pax_global_header00006660000000000000000000000064126062045350014515gustar00rootroot0000000000000052 comment=143d27ee6e6cbe47c79cb0cea2686b53239e4dc0 classified-ads-0.09/000077500000000000000000000000001260620453500143205ustar00rootroot00000000000000classified-ads-0.09/FrontWidget.cpp000066400000000000000000003153141260620453500172670ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include #include #include #include #include #include "FrontWidget.h" #include "log.h" #include "datamodel/model.h" #include "mcontroller.h" #include "datamodel/profile.h" #include "datamodel/profilemodel.h" #include "datamodel/binaryfile.h" #include "datamodel/binaryfilemodel.h" #include "datamodel/binaryfilelistingmodel.h" #include "datamodel/privmsgmodel.h" #include "datamodel/contentencryptionmodel.h" #include "datamodel/camodel.h" #include "datamodel/ca.h" #include "datamodel/trusttreemodel.h" #include "ui/profilereadersdialog.h" #include "ui/newclassifiedaddialog.h" #include "ui/newprivmsgdialog.h" #include "ui/newprofilecommentdialog.h" #include "ui/profilecommentdisplay.h" #include "ui/attachmentlistdialog.h" #include "ui/newtextdocument.h" #include "ui/editcontact.h" #include "ui/metadataQuery.h" // for query dialog static const QString internalNameOfProfileTab("profileTabNamed") ; static const QString internalNameOfCommentDialog("caCommentDlgNamed") ; FrontWidget::FrontWidget(Controller* aController, QMainWindow& aParent): iController(aController), iParent(aParent), iSelectedProfile(NULL), iViewedProfile(NULL), iAddSharedFileAction(NULL), iRemoveSharedFileAction(NULL), iExportSharedFileAction(NULL), iViewSharedFileInfoAction(NULL), iCopySharedFileHashAction(NULL), iEditNewSharedFileAction(NULL), iSelectedProfileFileListingModel(NULL), iViewedProfileFileListingModel(NULL), iReplyToCaButton(NULL), iReplyToCaToForumButton(NULL), iNewCaButton(NULL), iCommentCaPosterButton(NULL), iViewCaPosterProfileButton(NULL), iViewCaAttachmentsButton(NULL), iAddToContactsFromCaList(NULL), iCaListingModel(KNullHash,iController->model(),iController), iArticleTopLeft(0,40), iPrivMsgSearchModel(aController->model(),*aController), iPrivMsgTopLeft(0,40), iReplyToPrivMsgButton(NULL), iNewPrivMsgButton (NULL), iCommentPrivMsgPosterButton(NULL), iViewPrivMsgPosterProfileButton(NULL), iViewPrivMsgAttachmentsButton(NULL), iAddToContactsFromMsgList(NULL), iContactsModel(aController->model(),*aController), iEditContactAction(NULL), iSelectedProfileCommentListingModel(aController->model(),*aController), iViewedProfileCommentListingModel(aController->model(),*aController), iProfileListingKeyboardGrabber(NULL), iWindowSizeAdjusted(false) { ui.setupUi(this) ; ui.tabWidget->setTabText(0, tr("Classified ads")) ; ui.tabWidget->setTabText(1, tr("My profile")) ; ui.tabWidget->setTabText(2, tr("Contacts")) ; ui.tabWidget->setTabText(3, tr("Private messages")) ; // connect signals of profile details tab, that is to be removed connect(ui.profileDetailsSendMsgButton, SIGNAL(clicked()), this, SLOT(profileSendMsgButtonClicked())) ; connect(ui.profileDetailsReadersButton, SIGNAL(clicked()), this, SLOT(profileShowReadersButtonClicked())) ; connect(ui.profileDetailsCommentButton, SIGNAL(clicked()), this, SLOT(profileSendCommentButtonClicked())) ; connect(ui.searchAdsButton, SIGNAL(clicked()), this, SLOT(performAdsSearchClicked())) ; // add profile text editors to slot that enables "publish" button // when user edits the profile: connect(ui.profileNickNameEdit, SIGNAL(textEdited(const QString&)), this, SLOT(profileEdited(const QString&)), Qt::QueuedConnection) ; connect(ui.greetingTextEdit, SIGNAL(textEdited(const QString&)), this, SLOT(profileEdited(const QString&)), Qt::QueuedConnection) ; connect(ui.firstNameEdit, SIGNAL(textEdited(const QString&)), this, SLOT(profileEdited(const QString&)), Qt::QueuedConnection) ; connect(ui.familyNameEdit, SIGNAL(textEdited(const QString&)), this, SLOT(profileEdited(const QString&)), Qt::QueuedConnection) ; connect(ui.cityCountryEdit, SIGNAL(textEdited(const QString&)), this, SLOT(profileEdited(const QString&)), Qt::QueuedConnection) ; connect(ui.btcAddressEdit, SIGNAL(textEdited(const QString&)), this, SLOT(profileEdited(const QString&)), Qt::QueuedConnection) ; connect(ui.stateOfTheWorldEdit, SIGNAL(textEdited(const QString&)), this, SLOT(profileEdited(const QString&)), Qt::QueuedConnection) ; // have context-menu for "shared files:" iAddSharedFileAction = new QAction(tr("Add shared file.."),this) ; iRemoveSharedFileAction = new QAction(tr("Stop advertising selected shared file"),this) ; iExportSharedFileAction = new QAction(tr("Save file to disk.."),this) ; iViewSharedFileInfoAction = new QAction(tr("View file information.."), this) ; iCopySharedFileHashAction = new QAction(tr("Copy file address (SHA1) to clipboard.."),this) ; iEditNewSharedFileAction = new QAction(tr("Edit+publish new text document.."),this) ; ui.sharedFilesView->setContextMenuPolicy(Qt::ActionsContextMenu); ui.sharedFilesView->addAction(iAddSharedFileAction) ; ui.sharedFilesView->addAction(iRemoveSharedFileAction) ; ui.sharedFilesView->addAction(iExportSharedFileAction) ; ui.sharedFilesView->addAction(iViewSharedFileInfoAction) ; ui.sharedFilesView->addAction(iCopySharedFileHashAction) ; ui.sharedFilesView->addAction(iEditNewSharedFileAction) ; ui.profileDetailsSharedFilesView->setContextMenuPolicy(Qt::ActionsContextMenu); ui.profileDetailsSharedFilesView->addAction(iExportSharedFileAction) ; ui.profileDetailsSharedFilesView->addAction(iViewSharedFileInfoAction) ; ui.profileDetailsSharedFilesView->addAction(iCopySharedFileHashAction) ; connect(iAddSharedFileAction, SIGNAL(triggered()), this, SLOT(fileToBeSharedAdded())) ; connect(iRemoveSharedFileAction, SIGNAL(triggered()), this, SLOT(fileToBeSharedRemoved())) ; connect(iExportSharedFileAction, SIGNAL(triggered()), this, SLOT(exportSharedFile())) ; connect(iViewSharedFileInfoAction, SIGNAL(triggered()), this, SLOT(viewSharedFileInfo())); connect(iCopySharedFileHashAction, SIGNAL(triggered()), this, SLOT(copySharedFileHash())) ; connect(iEditNewSharedFileAction, SIGNAL(triggered()), this, SLOT(editNewSharedFile())) ; // and initially remove tab 4 "profile details" ui.tabWidget->removeTab(4); connect(ui.publisChangesButton, SIGNAL(clicked()), this, SLOT(publishProfileButtonClicked())) ; connect(ui.revertChangesButton, SIGNAL(clicked()), this, SLOT(revertProfileButtonClicked())) ; connect(ui.imageButton, SIGNAL(clicked()), this, SLOT(profileImageClicked())) ; connect(ui.profileReadersButton, SIGNAL(clicked()), this, SLOT(profileReadersClicked())) ; connect(ui.isPrivateCheckbox, SIGNAL(stateChanged(int)), this, SLOT(isPrivateSettingChanged(int))) ; setupPrivateMessagesTab() ; setupClassifiedAdsTab() ; setupContactsTab() ; ui.contactsView->setModel(&iContactsModel) ; connect(& iSelectedProfileCommentListingModel, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; connect(& iViewedProfileCommentListingModel, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; ui.profileCommentsView->setModel(& iSelectedProfileCommentListingModel) ; ui.profileDetailsCommentsView->setModel(& iViewedProfileCommentListingModel) ; connect(ui.profileCommentsView->selectionModel(), SIGNAL(selectionChanged (const QItemSelection &, const QItemSelection &)), this, SLOT(ownProfileCommentselectionChangedSlot(const QItemSelection &, const QItemSelection &))); connect(ui.profileDetailsCommentsView->selectionModel(), SIGNAL(selectionChanged (const QItemSelection &, const QItemSelection &)), this, SLOT(viewedProfileCommentselectionChangedSlot(const QItemSelection &, const QItemSelection &))); connect(ui.profileCommentsView, SIGNAL(doubleClicked (const QModelIndex &)), this, SLOT(ownProfileCommentDoubleClicked(const QModelIndex &))); connect(ui.profileDetailsCommentsView, SIGNAL(doubleClicked (const QModelIndex &)), this, SLOT(viewedProfileCommentDoubleClicked(const QModelIndex &))); // interestingly "enter" key is mapped into "InsertParagraphSeparator" // but that seems to be true for all desktop configurations of Qt iProfileListingKeyboardGrabber = new QShortcut(QKeySequence(QKeySequence::InsertParagraphSeparator),ui.profileDetailsCommentsView) ; assert( connect(iProfileListingKeyboardGrabber, SIGNAL(activated()), this, SLOT(viewedProfileCommentKeyPressed()))) ; ui.tabWidget->setCurrentWidget(ui.myProfileTab) ; assert( connect ( iController, SIGNAL(userProfileSelected(const Hash&)), &iSelectedProfileCommentListingModel, SLOT(profileSelected(const Hash&)), Qt::QueuedConnection)) ; assert( connect ( ui.tabWidget, SIGNAL(currentChanged(int)), this, SLOT(updateFileSelectionActions()))) ; updateFileSelectionActions(); } FrontWidget::~FrontWidget() { disconnect(this, 0, 0, 0); delete iProfileListingKeyboardGrabber ; iCaScene.removeItem(&iCaText); iCaScene.removeItem(&iFromField); iCaScene.removeItem(&iSubjectField ) ; ui.caMessageView->setScene(NULL) ; delete iAddSharedFileAction ; delete iRemoveSharedFileAction ; delete iExportSharedFileAction ; delete iViewSharedFileInfoAction ; delete iCopySharedFileHashAction; delete iEditNewSharedFileAction; delete iEditContactAction ; if ( iSelectedProfileFileListingModel ) { delete iSelectedProfileFileListingModel ; ui.sharedFilesView->setModel(NULL) ; } if ( iViewedProfileFileListingModel ) { delete iViewedProfileFileListingModel ; ui.profileDetailsSharedFilesView->setModel(NULL) ; } if ( ui.privateMessageListView ) { ui.privateMessageListView->setModel(NULL) ; } if ( iSelectedProfile ) { delete iSelectedProfile; } if ( iViewedProfile) { delete iViewedProfile; } if ( ui.profileCommentsView ) { ui.profileCommentsView->setModel(NULL) ; } if ( ui.profileDetailsCommentsView ) { ui.profileDetailsCommentsView->setModel(NULL) ; } delete iReplyToCaButton ; delete iReplyToCaToForumButton ; delete iNewCaButton ; delete iCommentCaPosterButton ; delete iViewCaPosterProfileButton; delete iViewCaAttachmentsButton ; delete iReplyToPrivMsgButton ; delete iNewPrivMsgButton ; delete iCommentPrivMsgPosterButton; delete iViewPrivMsgPosterProfileButton; delete iViewPrivMsgAttachmentsButton ; delete iAddToContactsFromMsgList ; delete iAddToContactsFromCaList ; LOG_STR("FrontWidget::~FrontWidget()") ; } void FrontWidget::publishProfileButtonClicked() { LOG_STR("publishProfileButtonClicked() ") ; if ( iSelectedProfile ) { iSelectedProfile->iNickName = ui.profileNickNameEdit->text() ; iSelectedProfile->iGreetingText = ui.greetingTextEdit->text() ; iSelectedProfile->iFirstName = ui.firstNameEdit->text() ; iSelectedProfile->iFamilyName = ui.familyNameEdit->text(); iSelectedProfile->iCityCountry = ui.cityCountryEdit->text() ; iSelectedProfile->iBTCAddress = ui.btcAddressEdit->text() ; iSelectedProfile->iStateOfTheWorld = ui.stateOfTheWorldEdit->text() ; iSelectedProfile->iTimeOfPublish = QDateTime::currentDateTimeUtc().toTime_t() ; iController->model().lock() ; iController->model().profileModel().publishProfile(*iSelectedProfile); iController->model().unlock() ; updateUiFromSelectedProfile() ; } } void FrontWidget::revertProfileButtonClicked() { LOG_STR("revertProfileButtonClicked() ") ; if ( iSelectedProfile ) { userProfileSelected(iController->profileInUse()) ; // re-load } ui.publisChangesButton->setEnabled(false) ; ui.revertChangesButton->setEnabled(false) ; } void FrontWidget::profileImageClicked() { LOG_STR("profileImageClicked() ") ; if ( iSelectedProfile ) { QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "", tr("Files (*.*)")); if ( fileName.length() > 0 ) { QPixmap profilePic ; if ( ! profilePic.load(fileName) ) { QMessageBox::about(this,tr("Error"), tr("Can't load image")); return ; } else { // see if there is need to scale: if ( profilePic.height() > ui.imageButton->height() ) { QPixmap scaledImage ( profilePic.scaledToHeight(ui.imageButton->height()) ) ; profilePic = scaledImage ; LOG_STR("Scaling image to height") ; } if ( profilePic.width() > ui.imageButton->width() ) { QPixmap scaledImage ( profilePic.scaledToWidth(ui.imageButton->width()) ) ; profilePic = scaledImage ; LOG_STR("Scaling image to width") ; } ui.imageButton->setIcon(QIcon ( profilePic )) ; iSelectedProfile->iProfilePicture = profilePic.toImage() ; ui.publisChangesButton->setEnabled(true) ; ui.revertChangesButton->setEnabled(true) ; } } } } void FrontWidget::profileEdited(const QString& /*aNewText*/) { // user touched her profile ; lets give her a clue that "publish" // might be in order ui.publisChangesButton->setEnabled(true) ; ui.revertChangesButton->setEnabled(true) ; } void FrontWidget::profileReadersClicked() { LOG_STR("profileReadersClicked() ") ; if ( iSelectedProfile ) { ProfileReadersDialog *profile_dialog = new ProfileReadersDialog(this, iController,*iSelectedProfile) ; connect(profile_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; profile_dialog->show() ; ui.publisChangesButton->setEnabled(true) ; ui.revertChangesButton->setEnabled(true) ; } } void FrontWidget::profileSendMsgButtonClicked() { LOG_STR("profileSendMsgButtonClicked") ; if ( iViewedProfile && iViewedProfile->iFingerPrint != KNullHash ) { NewPrivMessageDialog *posting_dialog = new NewPrivMessageDialog(this, iController, iViewedProfile->iFingerPrint.toString(), "", *iSelectedProfile, iPrivMsgSearchModel, KNullHash, KNullHash, ( iViewedProfile->iNodeOfProfile == NULL ? KNullHash : iViewedProfile->iNodeOfProfile->nodeFingerPrint() ) ) ; connect(posting_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; posting_dialog->show() ; // the dialog will delete self } } void FrontWidget::profileShowReadersButtonClicked() { LOG_STR("profileShowReadersButtonClicked") ; } void FrontWidget::profileSendCommentButtonClicked() { LOG_STR("profileSendCommentButtonClicked") ; if ( iViewedProfile && iViewedProfile->iFingerPrint != KNullHash ) { NewProfileCommentDialog *posting_dialog = new NewProfileCommentDialog(this, iController, iViewedProfile->iFingerPrint.toString(), "", *iSelectedProfile, iViewedProfileCommentListingModel, KNullHash, KNullHash, ( iViewedProfile->iNodeOfProfile == NULL ? KNullHash : iViewedProfile->iNodeOfProfile->nodeFingerPrint() ) ) ; connect(posting_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; posting_dialog->show() ; // the dialog will delete self } } void FrontWidget::performAdsSearchClicked() { LOG_STR("performAdsSearchClicked") ; selectClassification(selectedClassification(*ui.caAboutComboBox,*ui.caRegardingCombobox,*ui.caWhereComboBox,*iController)) ; iCaText.setHtml("") ; iSubjectField.setText("") ; iFromField.setText("") ; iCaOnDisplay.iSenderHash = KNullHash ; emit displayedCaChanged() ; ui.caAboutComboBox->setEnabled(true) ; ui.caHeadersView->setEnabled(true) ; } void FrontWidget::caTabAboutComboChanged(int /*aNewIndex*/) { // parameter not needed as selectedClassification() will ask it by itself */ LOG_STR2("caTabAboutComboChanged selection: %s", qPrintable(selectedClassification(*ui.caAboutComboBox,*ui.caRegardingCombobox,*ui.caWhereComboBox,*iController) )) ; iCaText.setHtml("") ; iSubjectField.setText("") ; iFromField.setText("") ; iCaOnDisplay.iSenderHash = KNullHash ; emit displayedCaChanged() ; ui.caHeadersView->setEnabled(false) ; iReplyToCaButton->setEnabled(false) ; iReplyToCaToForumButton->setEnabled(false) ; iCommentCaPosterButton->setEnabled(false) ; iViewCaPosterProfileButton->setEnabled(false) ; iViewCaAttachmentsButton->setEnabled(false) ; } void FrontWidget::caTabConcernsComboChanged(int /*aNewIndex*/) { // parameter not needed as selectedClassification() will ask it by itself */ LOG_STR2("caTabConcernsComboChanged selection: %s", qPrintable(selectedClassification(*ui.caAboutComboBox,*ui.caRegardingCombobox,*ui.caWhereComboBox,*iController) )) ; iCaText.setHtml("") ; iSubjectField.setText("") ; iFromField.setText("") ; iCaOnDisplay.iSenderHash = KNullHash ; emit displayedCaChanged() ; ui.caHeadersView->setEnabled(false) ; iReplyToCaButton->setEnabled(false) ; iReplyToCaToForumButton->setEnabled(false) ; iCommentCaPosterButton->setEnabled(false) ; iViewCaPosterProfileButton->setEnabled(false) ; iViewCaAttachmentsButton->setEnabled(false) ; } void FrontWidget::caTabWhereComboChanged(int /*aNewIndex*/) { // parameter not needed as selectedClassification() will ask it by itself */ LOG_STR2("caTabWhereComboChanged selection: %s", qPrintable(selectedClassification(*ui.caAboutComboBox,*ui.caRegardingCombobox,*ui.caWhereComboBox,*iController) )) ; iCaText.setHtml("") ; iSubjectField.setText("") ; iFromField.setText("") ; iCaOnDisplay.iSenderHash = KNullHash ; emit displayedCaChanged() ; ui.caHeadersView->setEnabled(false) ; iReplyToCaButton->setEnabled(false) ; iReplyToCaToForumButton->setEnabled(false) ; iCommentCaPosterButton->setEnabled(false) ; iViewCaPosterProfileButton->setEnabled(false) ; iViewCaAttachmentsButton->setEnabled(false) ; } void FrontWidget::replyToCaButtonClicked() { LOG_STR("replyToCaButtonClicked") ; if ( iCaOnDisplay.iSenderHash != KNullHash ) { /* * before continuing check this: we have the CA but * it is possible that CA poster pubkey has already * been expired in db as they're kept in separate * tables -> check that key is in place before * continuing or message encryption will fail */ quint32 dummy ; QByteArray dummyKey ; if ( iController->model().contentEncryptionModel().PublicKey(iCaOnDisplay.iSenderHash, dummyKey, &dummy) == false ) { // key not found, insert first: QLOG_STR("CA sender key not in db, inserting first. " + iCaOnDisplay.iSenderHash.toString()) ; iController->model().contentEncryptionModel().insertOrUpdatePublicKey (iCaOnDisplay.iProfileKey, iCaOnDisplay.iSenderHash, &iCaOnDisplay.iSenderName ) ; } NewPrivMessageDialog *posting_dialog = new NewPrivMessageDialog(this, iController, iCaOnDisplay.iSenderHash.toString(), iCaOnDisplay.iSubject, *iSelectedProfile, iPrivMsgSearchModel, KNullHash, iCaOnDisplay.iFingerPrint, KNullHash) ; connect(posting_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; posting_dialog->show() ; // the dialog will delete self } } void FrontWidget::replyToCaToForumButtonClicked() { LOG_STR("replyToCaToForumButtonClicked") ; // check which article we're displaying: Hash hashOnDisplay ; foreach(const QModelIndex &index, ui.caHeadersView->selectionModel()->selectedIndexes()) { hashOnDisplay.fromQVariant( iCaListingModel.theCaModel()->data(index,Qt::UserRole) ) ; break ; } if ( iSelectedProfile && hashOnDisplay != KNullHash ) { NewClassifiedAdDialog *posting_dialog = new NewClassifiedAdDialog(this, iController, iController->model().classifiedAdsModel().aboutComboBoxTexts().indexOf(ui.caAboutComboBox->currentText()), iController->model().classifiedAdsModel().regardingComboBoxTexts().indexOf(ui.caRegardingCombobox->currentText()), iController->model().classifiedAdsModel().whereComboBoxTexts().indexOf(ui.caWhereComboBox->currentText()), ui.caAboutComboBox->currentText(), ui.caRegardingCombobox->currentText(), ui.caWhereComboBox->currentText(), *iSelectedProfile, iCaListingModel, &hashOnDisplay, &(iCaOnDisplay.iSubject)) ; connect(posting_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; posting_dialog->show() ; // the dialog will delete self } } void FrontWidget::postNewClassifiedAd() { LOG_STR("postNewClassifiedAd") ; if ( iSelectedProfile ) { NewClassifiedAdDialog *posting_dialog = new NewClassifiedAdDialog(this, iController, iController->model().classifiedAdsModel().aboutComboBoxTexts().indexOf(ui.caAboutComboBox->currentText()), iController->model().classifiedAdsModel().regardingComboBoxTexts().indexOf(ui.caRegardingCombobox->currentText()), iController->model().classifiedAdsModel().whereComboBoxTexts().indexOf(ui.caWhereComboBox->currentText()), ui.caAboutComboBox->currentText(), ui.caRegardingCombobox->currentText(), ui.caWhereComboBox->currentText(), *iSelectedProfile, iCaListingModel) ; connect(posting_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; posting_dialog->show() ; // the dialog will delete self } LOG_STR("postNewClassifiedAd out") ; } void FrontWidget::commentCaPosterProfile() { LOG_STR("commentCaPosterProfile"); Profile* posterProfile (NULL); if ( iSelectedProfile && iCaOnDisplay.iSenderHash != KNullHash ) { if((posterProfile = iController->model().profileModel().profileByFingerPrint(iCaOnDisplay.iSenderHash) ) == NULL ) { QMessageBox::about(this,tr("Profile not in database"), tr("Try viewing profile first to obtain data")); } else { NewProfileCommentDialog *posting_dialog = new NewProfileCommentDialog(this, iController, iCaOnDisplay.iSenderHash.toString(), iCaOnDisplay.iSubject, *iSelectedProfile, iViewedProfileCommentListingModel, KNullHash, KNullHash, ( posterProfile->iNodeOfProfile == NULL ? KNullHash : posterProfile->iNodeOfProfile->nodeFingerPrint() ) ) ; connect(posting_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; posting_dialog->show() ; // the dialog will delete self delete posterProfile ; } } } void FrontWidget::viewCaPosterProfile() { LOG_STR("viewCaPosterProfile"); if ( iCaOnDisplay.iSenderHash != KNullHash ) { iController->userInterfaceAction(MController::ViewProfileDetails, iCaOnDisplay.iSenderHash ) ; } } void FrontWidget::viewCaAttachments() { LOG_STR("viewCaAttachments"); if ( iCaOnDisplay.iFingerPrint != KNullHash && iCaOnDisplay.iSenderHash != KNullHash && iCaOnDisplay.iAttachedFiles.count() > 0 ) { AttachmentListDialog *listing_dialog = new AttachmentListDialog(this, iController, *iSelectedProfile, iCaOnDisplay.iAttachedFiles, AttachmentListDialog::tryFindNodeByProfile(iCaOnDisplay.iSenderHash, *iController)) ; connect(listing_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; connect (this, SIGNAL(displayedCaChanged()), listing_dialog, SLOT(reject())) ; listing_dialog->show() ; // the dialog will delete self } } void FrontWidget::viewPrivMsgAttachments() { LOG_STR("viewPrivMsgAttachments"); if ( iPrivMsgOnDisplay.iFingerPrint != KNullHash && iPrivMsgOnDisplay.iSenderHash != KNullHash && iPrivMsgOnDisplay.iAttachedFiles.count() > 0 ) { Hash nodeOfMessageSender ; if ( iPrivMsgOnDisplay.iNodeOfSender ) { nodeOfMessageSender = iPrivMsgOnDisplay.iNodeOfSender->nodeFingerPrint(); } AttachmentListDialog *listing_dialog = new AttachmentListDialog(this, iController, *iSelectedProfile, iPrivMsgOnDisplay.iAttachedFiles, nodeOfMessageSender) ; connect(listing_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; connect (this, SIGNAL(displayedPrivMsgChanged()), listing_dialog, SLOT(reject())) ; listing_dialog->show() ; // the dialog will delete self } } void FrontWidget::replyToPrivMsgButtonClicked() { LOG_STR("replyToPrivMsgButtonClicked"); /* * before continuing check this: we have the msg but * it is possible that msg poster pubkey has already * been expired in db as they're kept in separate * tables -> check that key is in place before * continuing or message encryption will fail */ quint32 dummy ; QByteArray dummyKey ; if ( iController->model().contentEncryptionModel().PublicKey(iPrivMsgOnDisplay.iSenderHash, dummyKey, &dummy) == false ) { // key not found, insert first: QLOG_STR("msg sender key not in db, inserting first. " + iPrivMsgOnDisplay.iSenderHash.toString()) ; iController->model().contentEncryptionModel().insertOrUpdatePublicKey (iPrivMsgOnDisplay.iProfileKey, iPrivMsgOnDisplay.iSenderHash, &iPrivMsgOnDisplay.iSenderName ) ; } if ( iPrivMsgOnDisplay.iSenderHash != KNullHash ) { NewPrivMessageDialog *posting_dialog = new NewPrivMessageDialog(this, iController, iSelectedProfile->iFingerPrint == iPrivMsgOnDisplay.iSenderHash ? iPrivMsgOnDisplay.iRecipient.toString() : iPrivMsgOnDisplay.iSenderHash.toString(), iPrivMsgOnDisplay.iSubject, *iSelectedProfile, iPrivMsgSearchModel, iPrivMsgOnDisplay.iFingerPrint, KNullHash, KNullHash) ; connect(posting_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; posting_dialog->show() ; // the dialog will delete self } } void FrontWidget::commentPrivMsgPosterProfile() { LOG_STR("commentPrivMsgPosterProfile"); if ( iPrivMsgOnDisplay.iSenderHash != KNullHash ) { Profile* posterProfile (NULL); if ( iSelectedProfile && iPrivMsgOnDisplay.iSenderHash != KNullHash ) { if((posterProfile = iController->model().profileModel().profileByFingerPrint(iPrivMsgOnDisplay.iSenderHash) ) == NULL ) { QMessageBox::about(this,tr("Profile not in database"), tr("Try viewing profile first to obtain data")); } else { NewProfileCommentDialog *posting_dialog = new NewProfileCommentDialog(this, iController, iPrivMsgOnDisplay.iSenderHash.toString(), iPrivMsgOnDisplay.iSubject, *iSelectedProfile, iViewedProfileCommentListingModel, KNullHash, KNullHash, ( posterProfile->iNodeOfProfile == NULL ? KNullHash : posterProfile->iNodeOfProfile->nodeFingerPrint() ) ) ; connect(posting_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; posting_dialog->show() ; // the dialog will delete self delete posterProfile ; } } } } void FrontWidget::viewPrivMsgPosterProfile() { LOG_STR("viewPrivMsgPosterProfile"); if ( iPrivMsgOnDisplay.iSenderHash != KNullHash ) { if ( iPrivMsgOnDisplay.iSenderHash == iController->profileInUse() ) { iController->userInterfaceAction(MController::ViewProfileDetails, iPrivMsgOnDisplay.iRecipient ) ; } else { iController->userInterfaceAction(MController::ViewProfileDetails, iPrivMsgOnDisplay.iSenderHash ) ; } } } void FrontWidget::postNewPrivateMessage() { NewPrivMessageDialog *posting_dialog = new NewPrivMessageDialog(this, iController, "", "", *iSelectedProfile, iPrivMsgSearchModel) ; connect(posting_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; posting_dialog->show() ; // the dialog will delete self } void FrontWidget::isPrivateSettingChanged(int aState) { LOG_STR2("isPrivateSettingChanged() %d ", aState) ; if ( iSelectedProfile ) { if ( aState == Qt::Unchecked ) { // public profile iSelectedProfile->iIsPrivate = false ; } else { iSelectedProfile->iIsPrivate = true ; // add self to readers if ( ! ( iSelectedProfile->iProfileReaders.contains(iSelectedProfile->iFingerPrint ) ) ) { iSelectedProfile->iProfileReaders.append ( iSelectedProfile->iFingerPrint ) ; } } if ( iSelectedProfile->iIsPrivate ) { ui.profileReadersButton->setEnabled(true) ; } else { ui.profileReadersButton->setEnabled(false) ; } ui.publisChangesButton->setEnabled(true) ; ui.revertChangesButton->setEnabled(true) ; } } void FrontWidget::userProfileSelected(const Hash& aProfile) { QLOG_STR("userProfileSelected " + aProfile.toString()) ; iController->model().lock() ; if ( iSelectedProfile != NULL ) { delete iSelectedProfile ; iSelectedProfile = NULL ; setUpSelectedProfileFileListingModel() ; } if ( ( iSelectedProfile = iController->model().profileModel().profileByFingerPrint(aProfile) ) == NULL ) { iSelectedProfile = new Profile(aProfile) ; } if ( iSelectedProfile ) { iController->model().profileModel().setTimeLastReference(iSelectedProfile->iFingerPrint, QDateTime::currentDateTimeUtc().toTime_t()) ; } if ( iSelectedProfile ) { iPrivMsgSearchModel.setSearchHash(iSelectedProfile->iFingerPrint) ; } iController->model().unlock() ; ui.privateMessageListView->resizeColumnToContents(2) ; iPrivMsgText.setHtml("") ; iPrivMsgSubjectField.setText("") ; iPrivMsgFromField.setText("") ; updateUiFromSelectedProfile() ; iContactsModel.clearContents() ; iController->reStorePrivateDataOfSelectedProfile() ; ui.contactsView->resizeColumnToContents(0) ; ui.contactsView->setColumnWidth(2,30) ; LOG_STR("userProfileSelected out") ; } void FrontWidget::fileToBeSharedAdded() { LOG_STR("fileToBeSharedAdded") ; if ( iSelectedProfile ) { bool isCompressed ( false ) ; QString fileName = QFileDialog::getOpenFileName(this, tr("Select file to be published"), "", tr("Files (*.*)")); if ( fileName.length() > 0 ) { QFile f ( fileName ) ; if ( f.open(QIODevice::ReadOnly) ) { if ( f.size() > ( KMaxProtocolItemSize * 10 ) ) { emit error ( MController::FileOperationError, tr("File way too big")) ; } else { QByteArray content ( f.read(f.size() ) ) ; QByteArray compressedContent ( qCompress(content) ) ; LOG_STR2("Size of content = %d", (int) (content.size())) ; LOG_STR2("Size of compressed = %d", (int) (compressedContent.size())) ; if (content.size() > (qint64)(( KMaxProtocolItemSize - ( 50*1024 ) )) && compressedContent.size() > (qint64)(( KMaxProtocolItemSize - ( 50*1024 ) )) ) { emit error ( MController::FileOperationError, tr("File too big")) ; } else { if ( compressedContent.size() < content.size () ) { content.clear() ; content.append(compressedContent) ; compressedContent.clear() ; isCompressed = true ; } else { compressedContent.clear() ; } // ok, here we have content in content and it is // either compressed or not. size is checked. MetadataQueryDialog::MetadataResultSet metadata ; metadata.iFileName = fileName ; MetadataQueryDialog metadataDialog(this, *iController, metadata ) ; if ( metadataDialog.exec() == QDialog::Accepted ) { QString description ; // TODO: query user QString mimetype ; iController->model().lock() ; Hash fileFingerPrint ( iController->model().binaryFileModel().publishBinaryFile(*iSelectedProfile, QFileInfo(f).fileName(), metadata.iDescription, metadata.iMimeType, metadata.iOwner, metadata.iLicense, content, isCompressed) ) ; if ( fileFingerPrint != KNullHash ) { if ( ! iSelectedProfile->iSharedFiles.contains(fileFingerPrint ) ) { // addFile will also modify iSelectedProfile->iSharedFiles iSelectedProfileFileListingModel->addFile(fileFingerPrint) ; iSelectedProfile->iTimeOfPublish = QDateTime::currentDateTimeUtc().toTime_t() ; iController->model().profileModel().publishProfile(*iSelectedProfile) ; } } iController->model().unlock() ; } } } } else { emit error ( MController::FileOperationError, tr("File open error")) ; } } } } void FrontWidget::fileToBeSharedRemoved() { LOG_STR("fileToBeSharedRemoved") ; // ok, see what user had selected ; one file only: iController->model().lock() ; if ( iSelectedProfileFileListingModel ) { Hash fingerPrint ; foreach(const QModelIndex &index, ui.sharedFilesView->selectionModel()->selectedIndexes()) { fingerPrint.fromString((const unsigned char *)(qPrintable(iSelectedProfileFileListingModel->data(index,Qt::ToolTipRole).toString()))); break ; } if ( fingerPrint != KNullHash ) { if ( iSelectedProfile->iSharedFiles.contains(fingerPrint) ) { // addFile will also modify iSelectedProfile->iSharedFiles iSelectedProfileFileListingModel->removeFile(fingerPrint) ; iSelectedProfile->iTimeOfPublish = QDateTime::currentDateTimeUtc().toTime_t() ; iController->model().profileModel().publishProfile(*iSelectedProfile); } } } iController->model().unlock() ; } void FrontWidget::ownBinaryFileSelectionChangedSlot(const QModelIndex &aItem, const QModelIndex &/*aPreviousItem*/) { iSelectedOwnBinaryFile = KNullHash ; iController->model().lock() ; iSelectedOwnBinaryFile.fromString((const unsigned char *)(qPrintable(iSelectedProfileFileListingModel->data(aItem,Qt::ToolTipRole).toString()))); iController->model().unlock() ; QLOG_STR("FrontWidget::ownBinaryFileSelectionChangedSlot fp " + iSelectedOwnBinaryFile.toString()) ; updateFileSelectionActions(); } void FrontWidget::viewedBinaryFileSelectionChangedSlot(const QModelIndex &aItem, const QModelIndex &/*aPreviousItem*/) { iSelectedViewedProfileBinaryfile = KNullHash ; iController->model().lock() ; iSelectedViewedProfileBinaryfile.fromString((const unsigned char *)(qPrintable( iViewedProfileFileListingModel->data(aItem,Qt::ToolTipRole).toString()))); iController->model().unlock() ; QLOG_STR("FrontWidget::viewedBinaryFileSelectionChangedSlot fp " + iSelectedViewedProfileBinaryfile.toString()) ; updateFileSelectionActions(); } void FrontWidget::exportSharedFile() { LOG_STR("exportSharedFile") ; // ok, see what user had selected ; one file only: if ( iSelectedProfileFileListingModel ) { Hash fingerPrint ; if ( ui.tabWidget->currentIndex() == 1 ) { // 1 == "my profile" so this is export of my own file fingerPrint = iSelectedOwnBinaryFile ; } else { if ( iViewedProfileFileListingModel ) { fingerPrint = iSelectedViewedProfileBinaryfile ; } } if ( fingerPrint != KNullHash ) { // aye, found a selected fingerprint; openBinaryFile(fingerPrint,true) ; } } } void FrontWidget::viewSharedFileInfo() { LOG_STR("viewSharedFileInfo") ; // ok, see what user had selected ; one file only: if ( iSelectedProfileFileListingModel ) { Hash fingerPrint ; if ( ui.tabWidget->currentIndex() == 1 ) { // 1 == "my profile" so this is export of my own file fingerPrint = iSelectedOwnBinaryFile ; } else { if ( iViewedProfileFileListingModel ) { fingerPrint = iSelectedViewedProfileBinaryfile ; } } if ( fingerPrint != KNullHash ) { // aye, found a selected fingerprint; doShowFileMetadata(fingerPrint) ; } } } void FrontWidget::copySharedFileHash() { QLOG_STR("FrontWidget::copySharedFileHash") ; // ok, see what user had selected ; one file only: if ( iSelectedProfileFileListingModel ) { Hash fingerPrint ; if ( ui.tabWidget->currentIndex() == 1 ) { // 1 == "my profile" so this is export of my own file fingerPrint = iSelectedOwnBinaryFile ; } else { if ( iViewedProfileFileListingModel ) { fingerPrint = iSelectedViewedProfileBinaryfile ; } } if ( fingerPrint != KNullHash ) { // aye, found a selected fingerprint; QClipboard *clipBoard = QApplication::clipboard(); clipBoard->setText ( fingerPrint.toString(), QClipboard::Clipboard ) ; if ( clipBoard->supportsSelection() ) { clipBoard->setText ( fingerPrint.toString(), QClipboard::Selection ) ; } } } } void FrontWidget::updateFileSelectionActions() { // first check if we have open "own profile" tab or // viewed profile tab QWidget* currentTabOnDisplay ( ui.tabWidget->currentWidget() ) ; if ( currentTabOnDisplay && currentTabOnDisplay->objectName() == internalNameOfProfileTab ) { QLOG_STR("updateFileSelectionActions viewed profile tab") ; // viewed profile. it has 2 actions, "save" and "copy hash to // clipboard" so lets handle those 2 only if ( iSelectedViewedProfileBinaryfile == KNullHash ) { // no file selected so lets disable the actions QLOG_STR("updateFileSelectionActions viewed profile tab disable") ; iCopySharedFileHashAction -> setEnabled(false) ; iExportSharedFileAction -> setEnabled(false) ; iViewSharedFileInfoAction -> setEnabled(false) ; } else { // file selected so lets enable the actions QLOG_STR("updateFileSelectionActions viewed profile tab enable") ; iCopySharedFileHashAction -> setEnabled(true) ; iExportSharedFileAction -> setEnabled(true) ; iViewSharedFileInfoAction -> setEnabled(true) ; } } else if ( ui.tabWidget->currentIndex() == 1 ) { // own profile if ( iSelectedOwnBinaryFile == KNullHash ) { // no file selected so lets disable the actions QLOG_STR("updateFileSelectionActions own profile tab disable") ; iCopySharedFileHashAction -> setEnabled(false) ; iExportSharedFileAction -> setEnabled(false) ; iRemoveSharedFileAction -> setEnabled(false) ; iViewSharedFileInfoAction-> setEnabled(false) ; } else { // file selected so lets enable the actions QLOG_STR("updateFileSelectionActions own profile tab enable") ; iCopySharedFileHashAction -> setEnabled(true) ; iExportSharedFileAction -> setEnabled(true) ; iRemoveSharedFileAction -> setEnabled(true) ; iViewSharedFileInfoAction -> setEnabled(true) ; } } else { // no profile tab so lets disable all QLOG_STR("updateFileSelectionActions other tab disable") ; iCopySharedFileHashAction -> setEnabled(false) ; iExportSharedFileAction -> setEnabled(false) ; iRemoveSharedFileAction -> setEnabled(false) ; iViewSharedFileInfoAction -> setEnabled(false) ; } } void FrontWidget::editNewSharedFile() { QLOG_STR("FrontWidget::editNewSharedFile") ; NewTextDocument *edit_dialog = new NewTextDocument(this, iController, *iSelectedProfile, *iSelectedProfileFileListingModel ) ; connect(edit_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; edit_dialog->show() ; // the dialog will delete self } void FrontWidget::openBinaryFile(const Hash& aFingerPrint, bool aUseViewedProfileNodeAsNetreqDest) { bool netRequestStarted(false) ; QByteArray fileData ; iController->model().lock() ; BinaryFile* metadata (iController->model().binaryFileModel().binaryFileByFingerPrint(aFingerPrint)); iController->model().unlock() ; // first check if we have // the file or just know the fingerprint. both are possible. if ( metadata == NULL ) { // got no file, ask it to be retrieved: NetworkRequestExecutor::NetworkRequestQueueItem req ; req.iRequestType = RequestForBinaryBlob ; req.iRequestedItem = aFingerPrint ; req.iState = NetworkRequestExecutor::NewRequest ; req.iMaxNumberOfItems = 1 ; // if the file was shared by some other operator, // ask node of that operator first if ( ui.tabWidget->currentIndex() != 1 ) { // was not our own profile if ( iViewedProfile && iViewedProfile->iNodeOfProfile && aUseViewedProfileNodeAsNetreqDest ) { req.iDestinationNode = iViewedProfile->iNodeOfProfile->nodeFingerPrint(); } } iController->startRetrievingContent(req,true,BinaryBlob) ; netRequestStarted = true ; } else { QByteArray fileSignature ; Hash fileOwnerFingerPrint ; fileOwnerFingerPrint.fromString((const unsigned char *)(metadata->iOwner.toLatin1().constData())) ; bool dummy ; iController->model().lock() ; iController->model().binaryFileModel().setTimeLastReference(aFingerPrint, QDateTime::currentDateTimeUtc().toTime_t()) ; if ( !iController->model().binaryFileModel().binaryFileDataByFingerPrint(aFingerPrint, fileOwnerFingerPrint, fileData, fileSignature, &dummy) ) { LOG_STR("Got no file?") ; } iController->model().unlock() ; } if ( fileData.size() > 0 && metadata ) { QString suffix ( tr("files")+" (*.*)" ) ; if ( ( metadata->iFileName != NULL ) && ( metadata->iFileName.length() > 0 ) ) { int periodPosition = metadata->iFileName.lastIndexOf(".") ; if ( periodPosition > 0 ) { QString filenameSuffix = metadata->iFileName.mid(periodPosition+1) ; suffix = filenameSuffix + " "+tr("files")+" (*."+filenameSuffix+")" ; } } QString fileName = QFileDialog::getSaveFileName(this, tr("Choose file name for saving"), metadata->iFileName, suffix); if ( fileName.length() > 0 ) { QFile f ( fileName ) ; if ( f.open(QIODevice::WriteOnly) ) { f.write(fileData) ; f.close() ; } else { QMessageBox::about(this,tr("Error"), tr("File open error")); } } } delete metadata ; if ( netRequestStarted ) { iController->userInterfaceAction ( MController::DisplayProgressDialog, KNullHash , KNullHash ) ; } } void FrontWidget::updateUiFromSelectedProfile() { if ( iSelectedProfile ) { ui.profileAddressValue->setText(iSelectedProfile->iFingerPrint.toString()) ; if ( iWindowSizeAdjusted == false ) { ui.profileAddressValue->setMinimumWidth(ui.profileAddressValue->fontMetrics().width(iSelectedProfile->iFingerPrint.toString())); iParent.setMinimumWidth ( ui.profileAddressValue->fontMetrics().width(iSelectedProfile->iFingerPrint.toString()) + ui.imageButton->width() + ui.profileAddressValue->width() -55 ) ; iWindowSizeAdjusted = true ; } ui.profileNickNameEdit->setText(iSelectedProfile->iNickName) ; ui.greetingTextEdit->setText(iSelectedProfile->iGreetingText ) ; ui.firstNameEdit->setText(iSelectedProfile->iFirstName ) ; ui.familyNameEdit->setText(iSelectedProfile->iFamilyName ); ui.cityCountryEdit->setText(iSelectedProfile->iCityCountry ) ; ui.btcAddressEdit->setText(iSelectedProfile->iBTCAddress ) ; ui.stateOfTheWorldEdit->setText(iSelectedProfile->iStateOfTheWorld ) ; if ( iSelectedProfile->iTimeOfPublish ) { QDateTime d ; d.setTime_t(iSelectedProfile->iTimeOfPublish) ; ui.timeOfLastUpdateValue->setText(d.toString(Qt::SystemLocaleShortDate)) ; } else { ui.timeOfLastUpdateValue->setText("") ; } if ( iSelectedProfile->iIsPrivate ) { ui.profileReadersButton->setEnabled(true) ; ui.isPrivateCheckbox->setChecked(true) ; } else { ui.profileReadersButton->setEnabled(false) ; ui.isPrivateCheckbox->setChecked(false) ; } if ( !( iSelectedProfile->iProfilePicture.isNull()) ) { ui.imageButton->setIcon(QIcon(QPixmap::fromImage(iSelectedProfile->iProfilePicture))) ; ui.imageButton->setText(QString()) ; } else { ui.imageButton->setIcon(QIcon()) ; ui.imageButton->setText(tr("\n\n\nClick\nTo\nAdd\nImage\n")) ; } setUpSelectedProfileFileListingModel() ; ui.publisChangesButton->setEnabled(false) ; ui.revertChangesButton->setEnabled(false) ; } } void FrontWidget::showDetailsOfProfile(const Hash& aFingerPrint) { for ( int i = ui.tabWidget->count()-1 ; i >= 0 ; i-- ) { if ( ui.tabWidget->widget(i)->objectName() == internalNameOfProfileTab ) { ui.tabWidget->removeTab(i); break ; } } if ( iViewedProfile ) { delete iViewedProfile ; iViewedProfile = NULL ; iViewedProfileCommentListingModel.setSearchHash(KNullHash) ; // empty model } iController->model().lock() ; iViewedProfile = iController->model().profileModel().profileByFingerPrint(aFingerPrint) ; if ( iViewedProfile ) { iController->model().profileModel().setTimeLastReference(iViewedProfile->iFingerPrint, QDateTime::currentDateTimeUtc().toTime_t()) ; iController->offerDisplayNameForProfile(iViewedProfile->iFingerPrint, iViewedProfile->displayName(), true) ; } else { if ( iViewedProfileFileListingModel ) { iViewedProfileFileListingModel->clear() ; } // setting search hash to null will clear the model iViewedProfileCommentListingModel.setSearchHash(KNullHash) ; } iController->model().unlock() ; if ( iViewedProfile ) { iController-> sendProfileUpdateQuery(iViewedProfile->iFingerPrint, iViewedProfile->iNodeOfProfile == NULL ? KNullHash : iViewedProfile->iNodeOfProfile->nodeFingerPrint()) ; ui.tabWidget->insertTab(ui.tabWidget->count()+1,ui.profileViewTab, iViewedProfile->displayName()); ui.tabWidget->setCurrentWidget(ui.profileViewTab) ; ui.tabWidget->currentWidget()->setObjectName(internalNameOfProfileTab) ; updateUiFromViewedProfile() ; iController->model().lock() ; iController->model().profileModel().setTimeLastReference(iViewedProfile->iFingerPrint, QDateTime::currentDateTimeUtc().toTime_t()) ; iViewedProfileCommentListingModel.setSearchHash(iViewedProfile->iFingerPrint) ; // empty model iController->model().unlock() ; } else { ui.profileDetailsCommentButton->setEnabled(false) ; ui.profileDetailsSendMsgButton->setEnabled(false) ; } updateFileSelectionActions(); } void FrontWidget::showClassifiedAd(const CA& ca) { QLOG_STR("Show classified ad " + ca.iFingerPrint.toString() ) ; if ( ca.iFingerPrint != KNullHash && ui.tabWidget ) { ui.tabWidget->setCurrentIndex(0) ; // 0 is the ca tab if ( ca.iAboutComboBoxIndex >= 0 ) { ui.caAboutComboBox->setCurrentIndex(ca.iAboutComboBoxIndex) ; } else { ui.caAboutComboBox->setEditText(ca.iAboutComboBoxText) ; } if ( ca.iConcernsComboBoxIndex >= 0 ) { ui.caRegardingCombobox->setCurrentIndex(ca.iConcernsComboBoxIndex) ; } else { ui.caRegardingCombobox->setEditText(ca.iConcernsComboBoxText) ; } if ( ca.iInComboBoxIndex >= 0 ) { ui.caWhereComboBox->setCurrentIndex(ca.iInComboBoxIndex) ; } else { ui.caWhereComboBox->setEditText(ca.iInComboBoxText) ; } Hash groupFingerPrint ; groupFingerPrint.calculate(ca.iGroup.toUtf8()) ; iCaListingModel.setClassification(groupFingerPrint) ; // then perform (perfectly linear?) search ; no hopping or jumping at all: QModelIndexList matchingArticles = iCaListingModel.theCaModel()->match (iCaListingModel.theCaModel()->index(0,0) , Qt::UserRole, ca.iFingerPrint.toQVariant(), 2, Qt::MatchRecursive|Qt::MatchExactly ) ; if ( matchingArticles.size() > 0 ) { ui.caHeadersView->selectionModel()->select(matchingArticles[0],QItemSelectionModel::Select) ; ui.caHeadersView->scrollTo(matchingArticles[0]) ; } else { QMessageBox::about(this,tr("Error"), tr("Article not found from local storage")); } } } void FrontWidget::showSingleCommentOfProfile(const Hash aCommentFingerPrint) { if ( iSelectedProfile ) { activateProfileCommentDisplay(&iViewedProfileCommentListingModel, iController->model().profileCommentModel(), aCommentFingerPrint, iSelectedProfile->iFingerPrint ) ; } } void FrontWidget::updateUiFromViewedProfile() { if ( iViewedProfile ) { ui.profileDetailsCommentButton->setEnabled(true) ; ui.profileDetailsSendMsgButton->setEnabled(true) ; ui.profileDetailsNickNameValue->setText(iViewedProfile->iNickName) ; QString trustingProfileNickName ; Hash trustingProfileHash ; if ( iController->model().trustTreeModel()->isProfileTrusted(iViewedProfile->iFingerPrint, &trustingProfileNickName, &trustingProfileHash ) ) { ui.profileDetailsAddrValue->setToolTip(QString(tr("Trusted by %1\nSHA1 %2")).arg(trustingProfileNickName).arg(trustingProfileHash.toString())) ; QLOG_STR("Profile was trusted by " + trustingProfileNickName ) ; } else { ui.profileDetailsAddrValue->setToolTip(QString()) ; QLOG_STR("Profile was not trusted") ; } if ( isContactInContactList(iViewedProfile->iFingerPrint) ) { ui.profileDetailsAddrValue->setTextColor(QColor((Qt::blue))) ; LOG_STR("Profile was in contacts list, setting blue color") ; } else if ( trustingProfileHash != KNullHash ) { // was trusted by someone we trust: ui.profileDetailsAddrValue->setTextColor(QColor((Qt::darkBlue))) ; } else { // default color then: ui.profileDetailsAddrValue->setTextColor(QApplication::palette().text().color()) ; LOG_STR("Profile was not in contacts list, setting default color") ; } ui.profileDetailsAddrValue->setText(iViewedProfile->iFingerPrint.toString()) ; if ( iViewedProfile->iIsPrivate ) { ui.profileDetailsReadersButton->setEnabled(true) ; } else { ui.profileDetailsReadersButton->setEnabled(false) ; } ui.profileDetailsGreetingValue->setText(iViewedProfile->iGreetingText); ui.profileDetailsFirstNameValue->setText(iViewedProfile->iFirstName); ui.profileDetailsFamilyNameValue->setText(iViewedProfile->iFamilyName); ui.profileDetailsCityCountryValue->setText(iViewedProfile->iCityCountry); ui.profileDetailsBTCValue->setText(iViewedProfile->iBTCAddress); ui.profileDetailsStateOfTheWorldValue->setText(iViewedProfile->iStateOfTheWorld); QDateTime d ; d.setTime_t(iViewedProfile->iTimeOfPublish) ; ui.timeOfLastUpdateValue->setText(d.toString(Qt::SystemLocaleShortDate)) ; QString toolTipText ( tr("Time of last update ") + d.toString(Qt::SystemLocaleShortDate) ) ; ui.profileDetailsNickNameValue->setToolTip(toolTipText) ; ui.profileDetailsGreetingValue->setToolTip(toolTipText) ; if ( !( iViewedProfile->iProfilePicture.isNull()) ) { ui.profileDetailsImage->setPixmap(QPixmap::fromImage(iViewedProfile->iProfilePicture)) ; ui.profileDetailsImage->setText(QString()) ; } else { ui.profileDetailsImage->setPixmap(QPixmap()) ; ui.profileDetailsImage->setText(tr("\n\n\n(No\nImage\nSelected)\n")) ; ui.profileDetailsImage->setAlignment(Qt::AlignCenter|Qt::AlignHCenter); } if ( iViewedProfileFileListingModel ) { delete iViewedProfileFileListingModel ; iViewedProfileFileListingModel = NULL ; ui.profileDetailsSharedFilesView->setModel(NULL) ; } iViewedProfileFileListingModel = new BinaryFileListingModel(iViewedProfile->iSharedFiles) ; connect(iViewedProfileFileListingModel, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection) ; ui.profileDetailsSharedFilesView->setModel(iViewedProfileFileListingModel) ; iSelectedViewedProfileBinaryfile = KNullHash ; assert( connect(ui.profileDetailsSharedFilesView->selectionModel(), SIGNAL(currentChanged (const QModelIndex &, const QModelIndex &)), this, SLOT(viewedBinaryFileSelectionChangedSlot(const QModelIndex &, const QModelIndex &)))); } updateFileSelectionActions() ; } void FrontWidget::setUpSelectedProfileFileListingModel() { // always start by getting rid of possible previous instance: if ( iSelectedProfileFileListingModel ) { ui.sharedFilesView->setModel(NULL) ; delete iSelectedProfileFileListingModel ; iSelectedProfileFileListingModel = NULL ; } iSelectedOwnBinaryFile = KNullHash ; //, if we have profile selected, set up model again if ( iSelectedProfile ) { iSelectedProfileFileListingModel = new BinaryFileListingModel(iSelectedProfile->iSharedFiles) ; connect(iSelectedProfileFileListingModel, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection) ; ui.sharedFilesView->setModel(iSelectedProfileFileListingModel) ; connect(ui.sharedFilesView->selectionModel(), SIGNAL(currentChanged (const QModelIndex &, const QModelIndex &)), this, SLOT(ownBinaryFileSelectionChangedSlot(const QModelIndex &, const QModelIndex &))); } } void FrontWidget::setupContactsTab() { ui.contactsView->setModel(&iContactsModel) ; connect(ui.contactsView->selectionModel(), SIGNAL(selectionChanged (const QItemSelection &, const QItemSelection &)), this, SLOT(contactsSelectionChangedSlot(const QItemSelection &, const QItemSelection &))); connect(&iContactsModel, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection) ; ui.removeContactBtn->setEnabled(false) ; ui.viewProfileBtn->setEnabled(false) ; ui.sendMessageBtn->setEnabled(false) ; connect(ui.addContactBtn, SIGNAL(clicked()), this, SLOT(addContactButtonClicked() )) ; connect(ui.removeContactBtn, SIGNAL(clicked()), this, SLOT(removeContactButtonClicked() )) ; connect(ui.viewProfileBtn, SIGNAL(clicked()), this, SLOT(viewContactProfileButtonClicked() )) ; connect(ui.sendMessageBtn, SIGNAL(clicked()), this, SLOT(sendMsgToContactButtonClicked() )) ; connect(ui.addToContactsBtn, // this button is in "view contact" tab SIGNAL(clicked()), this, SLOT(addContactFromContactViewButtonClicked())) ; iEditContactAction = new QAction(tr("Edit contact.."),this) ; connect(iEditContactAction, SIGNAL(triggered()), this, SLOT(editContactActionSelected())) ; ui.contactsView->setContextMenuPolicy(Qt::ActionsContextMenu); ui.contactsView->addAction(iEditContactAction) ; } void FrontWidget::setupClassifiedAdsTab() { // note that later the index of the combobox must match // the enum. this has things to do with "insert policy" of // the combobox. fillCaSelectionCombobox(*ui.caAboutComboBox,true,*iController) ; ui.caAboutComboBox->setEditable(true) ; ui.caAboutComboBox->setInsertPolicy(QComboBox::InsertAtBottom) ; connect(ui.caAboutComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(caTabAboutComboChanged(int))) ; fillCaSelectionCombobox(*ui.caRegardingCombobox,false,*iController) ; ui.caRegardingCombobox->setEditable(true) ; ui.caRegardingCombobox->setInsertPolicy(QComboBox::InsertAtBottom) ; connect(ui.caRegardingCombobox, SIGNAL(currentIndexChanged(int)), this, SLOT(caTabConcernsComboChanged(int))) ; ui.caWhereComboBox->addItems(iController->model().classifiedAdsModel().whereComboBoxTexts()) ; ui.caWhereComboBox->setEditable(true) ; ui.caWhereComboBox->setInsertPolicy(QComboBox::InsertAtBottom) ; connect(ui.caWhereComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(caTabWhereComboChanged(int))) ; // for the bottom-screen buttonbox we need only custom buttons: ui.CATabBottomButtonBox->clear() ; iReplyToCaButton = new QPushButton(tr("&Reply to sender")); iReplyToCaToForumButton = new QPushButton(tr("Reply to &forum")); iNewCaButton = new QPushButton(tr("&Post new ad")); iCommentCaPosterButton= new QPushButton(tr("&Public comment")); iViewCaPosterProfileButton= new QPushButton(tr("&View profile")); iViewCaAttachmentsButton = new QPushButton(tr("Attachments..")); connect(iReplyToCaButton, SIGNAL(clicked()), this, SLOT(replyToCaButtonClicked())) ; connect(iReplyToCaToForumButton, SIGNAL(clicked()), this, SLOT(replyToCaToForumButtonClicked())) ; connect(iNewCaButton, SIGNAL(clicked()), this, SLOT(postNewClassifiedAd())) ; connect(iCommentCaPosterButton, SIGNAL(clicked()), this, SLOT(commentCaPosterProfile())) ; connect(iViewCaPosterProfileButton, SIGNAL(clicked()), this, SLOT( viewCaPosterProfile() )) ; connect(iViewCaAttachmentsButton, SIGNAL(clicked()), this, SLOT( viewCaAttachments() )) ; ui.CATabBottomButtonBox->addButton(iReplyToCaButton, QDialogButtonBox::ActionRole); ui.CATabBottomButtonBox->addButton(iReplyToCaToForumButton, QDialogButtonBox::ActionRole); ui.CATabBottomButtonBox->addButton(iNewCaButton, QDialogButtonBox::ActionRole); ui.CATabBottomButtonBox->addButton(iCommentCaPosterButton, QDialogButtonBox::ActionRole); ui.CATabBottomButtonBox->addButton(iViewCaPosterProfileButton, QDialogButtonBox::ActionRole); ui.CATabBottomButtonBox->addButton(iViewCaAttachmentsButton, QDialogButtonBox::ActionRole); iReplyToCaButton->setEnabled(false) ; iReplyToCaToForumButton->setEnabled(false) ; iCommentCaPosterButton->setEnabled(false) ; iViewCaPosterProfileButton->setEnabled(false) ; iViewCaAttachmentsButton->setEnabled(false) ; ui.caHeadersView->setModel(iCaListingModel.theCaModel()) ; connect(ui.caHeadersView->selectionModel(), SIGNAL(selectionChanged (const QItemSelection &, const QItemSelection &)), this, SLOT(CAselectionChangedSlot(const QItemSelection &, const QItemSelection &))); iCaScene.addItem(&iFromField); iCaScene.addItem(&iSubjectField ) ; iSubjectField.setPos(0,0) ; iSubjectField.setPen(QPen(QColor((QApplication::palette().text().color())))) ; iFromField.setPos(0,20) ; iCaScene.addItem(&iCaText) ; iCaText.setPos(iArticleTopLeft) ; ui.caMessageView->setScene(& iCaScene ) ; iCaScene.invalidate(0,0,100,100) ; ui.caMessageView->horizontalScrollBar()->setSliderPosition(0) ; ui.caMessageView->horizontalScrollBar()->setValue(0) ; // ui.caMessageView->centerOn(0,0) ; // have context-menu for "ca listing" view iAddToContactsFromCaList = new QAction(tr("Add selected operator to contacts.."),this) ; ui.caHeadersView->setContextMenuPolicy(Qt::ActionsContextMenu); ui.caHeadersView->addAction(iAddToContactsFromCaList) ; connect(iAddToContactsFromCaList, SIGNAL(triggered()), this, SLOT(addCaSenderToContacts())) ; iCaText.setTextInteractionFlags(Qt::TextBrowserInteraction) ; assert( connect ( &iCaText, SIGNAL(linkActivated ( const QString & )), this, SLOT(linkActivated ( const QString & )))) ; } void FrontWidget::setCaDocumentSize() { QRect messageViewSizeRect ( ui.caMessageView->rect() ) ; messageViewSizeRect.setHeight( messageViewSizeRect.height() - 10 ) ; messageViewSizeRect.setWidth( messageViewSizeRect.width() - 10 ) ; iCaScene.setSceneRect(messageViewSizeRect) ; iCaText.setTextWidth(ui.caMessageView->rect().width()-10); const QSizeF documentSize ( iCaText.document()->size() ) ; const QSizeF subjectSize ( iSubjectField.boundingRect().size() ) ; if ( documentSize.height() > (messageViewSizeRect.height()-(subjectSize.height()*2))) { // for long articles we need to adjust scene size so that all // text fits. messageViewSizeRect.setHeight(documentSize.height()+(subjectSize.height()*2)); iCaScene.setSceneRect(messageViewSizeRect) ; } } void FrontWidget::setPrivMsgSize() { QRect messageViewSizeRect ( ui.privateMessageView->rect() ) ; messageViewSizeRect.setHeight( messageViewSizeRect.height() - 10 ) ; messageViewSizeRect.setWidth( messageViewSizeRect.width() - 10 ) ; iPrivMsgScene.setSceneRect(messageViewSizeRect) ; iPrivMsgText.setTextWidth(ui.caMessageView->rect().width()-10); const QSizeF documentSize ( iPrivMsgText.document()->size() ) ; const QSizeF subjectSize ( iSubjectField.boundingRect().size() ) ; if ( documentSize.height() > (messageViewSizeRect.height()-(subjectSize.height()*2))) { // for long articles we need to adjust scene size so that all // text fits. messageViewSizeRect.setHeight(documentSize.height()+(subjectSize.height()*2)); iPrivMsgScene.setSceneRect(messageViewSizeRect) ; } } void FrontWidget::setupPrivateMessagesTab() { ui.privateMessageListView->setModel(&iPrivMsgSearchModel) ; connect(ui.privateMessageListView->selectionModel(), SIGNAL(selectionChanged (const QItemSelection &, const QItemSelection &)), this, SLOT(privMsgselectionChangedSlot(const QItemSelection &, const QItemSelection &))); connect(&iPrivMsgSearchModel, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; iPrivMsgScene.addItem( & iPrivMsgFromField); iPrivMsgScene.addItem( & iPrivMsgSubjectField ) ; iPrivMsgSubjectField.setPos(0,0) ; iPrivMsgFromField.setPos(0,20) ; iPrivMsgScene.addItem( & iPrivMsgText ) ; iPrivMsgText.setPos(iPrivMsgTopLeft) ; ui.privateMessageView->setScene(& iPrivMsgScene ) ; iPrivMsgScene.invalidate(0,0,100,100) ; ui.privateMessageView->horizontalScrollBar()->setSliderPosition(0) ; ui.privateMessageView->horizontalScrollBar()->setValue(0) ; ui.privateMessageView->centerOn(0,0) ; ui.privateMsgsButtons->clear() ; iReplyToPrivMsgButton = new QPushButton(tr("&Reply")); iNewPrivMsgButton = new QPushButton(tr("&New message")); iCommentPrivMsgPosterButton= new QPushButton(tr("&Send public comment to sender")); iViewPrivMsgPosterProfileButton= new QPushButton(tr("&View profile of peer")); iViewPrivMsgAttachmentsButton = new QPushButton(tr("Attachments..")); connect(iReplyToPrivMsgButton, SIGNAL(clicked()), this, SLOT(replyToPrivMsgButtonClicked())) ; connect(iNewPrivMsgButton, SIGNAL(clicked()), this, SLOT(postNewPrivateMessage())) ; connect(iCommentPrivMsgPosterButton, SIGNAL(clicked()), this, SLOT(commentPrivMsgPosterProfile())) ; connect(iViewPrivMsgPosterProfileButton, SIGNAL(clicked()), this, SLOT( viewPrivMsgPosterProfile() )) ; connect(iViewPrivMsgAttachmentsButton, SIGNAL(clicked()), this, SLOT( viewPrivMsgAttachments() )) ; iReplyToPrivMsgButton->setEnabled(false) ; iCommentPrivMsgPosterButton->setEnabled(false) ; iViewPrivMsgPosterProfileButton->setEnabled(false) ; iViewPrivMsgAttachmentsButton->setEnabled(false) ; ui.privateMsgsButtons->addButton(iReplyToPrivMsgButton,QDialogButtonBox::ActionRole); ui.privateMsgsButtons->addButton(iNewPrivMsgButton,QDialogButtonBox::ActionRole); ui.privateMsgsButtons->addButton(iCommentPrivMsgPosterButton,QDialogButtonBox::ActionRole); ui.privateMsgsButtons->addButton(iViewPrivMsgPosterProfileButton,QDialogButtonBox::ActionRole); ui.privateMsgsButtons->addButton(iViewPrivMsgAttachmentsButton,QDialogButtonBox::ActionRole); // have context-menu for "message listing" view iAddToContactsFromMsgList = new QAction(tr("Add selected to contacts.."),this) ; ui.privateMessageListView->setContextMenuPolicy(Qt::ActionsContextMenu); ui.privateMessageListView->addAction(iAddToContactsFromMsgList) ; connect(iAddToContactsFromMsgList, SIGNAL(triggered()), this, SLOT(addMessageSenderToContacts())) ; iPrivMsgText.setTextInteractionFlags(Qt::TextBrowserInteraction) ; assert( connect ( &iPrivMsgText, SIGNAL(linkActivated ( const QString & )), this, SLOT(linkActivated ( const QString & )))) ; } void FrontWidget::fillCaSelectionCombobox(QComboBox& aComboBox, bool isAboutComboBox, MController& aController) { if ( isAboutComboBox ) { aComboBox.addItems(aController.model().classifiedAdsModel().aboutComboBoxTexts()) ; } else { aComboBox.addItems(aController.model().classifiedAdsModel().regardingComboBoxTexts()) ; } } QString FrontWidget::selectedClassification(const QComboBox& aAboutCombo, const QComboBox& aRegardingCombo, const QComboBox& aWhereCombo, const MController& aController) { QString retval ; // check out if pre-defined string from combobox or // something that user wrote himself to combobox. // it seems like digging that information from combobox itself // is difficult to do .. user would need to hit enter // to set the indexes correctly and she won't if ( aController.model().classifiedAdsModel().aboutComboBoxTexts().indexOf(aAboutCombo.currentText()) != -1 ) { retval = aController.model().classifiedAdsModel().purposeOfAdString((ClassifiedAdsModel::PurposeOfAd)aController.model().classifiedAdsModel().aboutComboBoxTexts().indexOf(aAboutCombo.currentText())) ; } else { retval = aAboutCombo.currentText() ; } retval.append(".") ; if ( aController.model().classifiedAdsModel().regardingComboBoxTexts().indexOf( aRegardingCombo.currentText()) != -1 ) { retval.append( aController.model().classifiedAdsModel().concernOfAdString((ClassifiedAdsModel::ConcernOfAd)aController.model().classifiedAdsModel().regardingComboBoxTexts().indexOf( aRegardingCombo.currentText()))) ; } else { retval.append( aRegardingCombo.currentText() ) ; } retval.append(".") ; if ( aController.model().classifiedAdsModel().whereComboBoxTexts().indexOf( aWhereCombo.currentText()) == 0 ) { // explanation: the country names in "where" are not localized. // except for the first entry, "Any country" and if we get that, // lets put un-localized "Any country" in there -> note that this // same string appears inside tr() in datamodel/camodel.cpp retval.append( "Any country" ) ; } else { // if not the "Any country", then just take the literal // string value, regardless of index retval.append( aWhereCombo.currentText() ) ; } return retval ; } void FrontWidget::selectClassification(QString aNameOfClassification) { Hash groupFingerPrint ; groupFingerPrint.calculate(aNameOfClassification.toUtf8()) ; iCaListingModel.setClassification(groupFingerPrint) ; // and, put a request pending to request for more articles // from this classification: NetworkRequestExecutor::NetworkRequestQueueItem req ; req.iRequestType = RequestAdsClassified ; req.iRequestedItem = groupFingerPrint ; req.iState = NetworkRequestExecutor::NewRequest ; req.iMaxNumberOfItems = 1 ; req.iTimeStampOfItem = QDateTime::currentDateTimeUtc().toTime_t() - ( 60 * 60* 24 * 140 ) ; // select 140 days req.iDestinationNode = KNullHash ; iController->model().lock() ; iController->model().addNetworkRequest(req) ; iController->model().unlock() ; } void FrontWidget::contactsSelectionChangedSlot(const QItemSelection &, const QItemSelection &) { LOG_STR("contactsSelectionChangedSlot") ; iSelectedContact = KNullHash ; foreach(const QModelIndex &index, ui.contactsView->selectionModel()->selectedIndexes()) { iSelectedContact.fromQVariant( iContactsModel.data(index,Qt::UserRole) ) ; break ; } LOG_STR2("Selected contact %s", qPrintable(iSelectedContact.toString())) ; if ( iSelectedContact== KNullHash ) { ui.removeContactBtn->setEnabled(false) ; ui.viewProfileBtn->setEnabled(false) ; ui.sendMessageBtn->setEnabled(false) ; } else { ui.removeContactBtn->setEnabled(true) ; ui.viewProfileBtn->setEnabled(true) ; ui.sendMessageBtn->setEnabled(true) ; } } void FrontWidget::ownProfileCommentselectionChangedSlot(const QItemSelection &, const QItemSelection &) { LOG_STR("ownProfileCommentselectionChangedSlot") ; foreach(const QModelIndex &index, ui.profileCommentsView->selectionModel()->selectedIndexes()) { iSelectedCommentFromOwnCommentListing.fromQVariant( iSelectedProfileCommentListingModel.data(index,Qt::UserRole) ) ; break ; } LOG_STR2("Selected comment for display %s", qPrintable(iSelectedCommentFromOwnCommentListing.toString())) ; } void FrontWidget::viewedProfileCommentselectionChangedSlot(const QItemSelection &, const QItemSelection &) { LOG_STR("viewedProfileCommentselectionChangedSlot") ; foreach(const QModelIndex &index, ui.profileDetailsCommentsView->selectionModel()->selectedIndexes()) { iSelectedCommentFromViewedCommentListing .fromQVariant( iViewedProfileCommentListingModel.data(index,Qt::UserRole) ) ; break ; } LOG_STR2("Selected viewed profile comment for display %s", qPrintable(iSelectedCommentFromViewedCommentListing .toString())) ; } void FrontWidget::viewedProfileCommentDoubleClicked(const QModelIndex &/*aSelection*/ ) { LOG_STR("viewedProfileCommentDoubleClicked") ; if ( iSelectedCommentFromViewedCommentListing != KNullHash && iViewedProfile ) { activateProfileCommentDisplay(&iViewedProfileCommentListingModel, iController->model().profileCommentModel(), iSelectedCommentFromViewedCommentListing, iViewedProfile->iFingerPrint) ; } } void FrontWidget::viewedProfileCommentKeyPressed( ) { LOG_STR("viewedProfileCommentKeyPressed") ; if ( iSelectedCommentFromViewedCommentListing != KNullHash && iSelectedProfile ) { activateProfileCommentDisplay(&iViewedProfileCommentListingModel, iController->model().profileCommentModel(), iSelectedCommentFromViewedCommentListing, iSelectedProfile->iFingerPrint ) ; } } void FrontWidget::ownProfileCommentDoubleClicked(const QModelIndex &/* aSelection */) { LOG_STR("ownProfileCommentDoubleClicked") ; if ( iSelectedCommentFromOwnCommentListing != KNullHash && iSelectedProfile ) { activateProfileCommentDisplay(&iSelectedProfileCommentListingModel, iController->model().profileCommentModel(), iSelectedCommentFromOwnCommentListing, iSelectedProfile->iFingerPrint) ; } } void FrontWidget::CAselectionChangedSlot(const QItemSelection &/*aSelection*/, const QItemSelection &) { LOG_STR("CAselectionChangedSlot") ; Hash hashToDisplay ; foreach(const QModelIndex &index, ui.caHeadersView->selectionModel()->selectedIndexes()) { hashToDisplay.fromQVariant( iCaListingModel.theCaModel()->data(index,Qt::UserRole) ) ; break ; } LOG_STR2("Display article %s", qPrintable(hashToDisplay.toString())) ; if ( hashToDisplay != KNullHash ) { iReplyToCaButton->setEnabled(true) ; iReplyToCaToForumButton->setEnabled(true) ; iCommentCaPosterButton->setEnabled(true) ; iViewCaPosterProfileButton->setEnabled(true) ; iController->model().lock() ; iCaOnDisplay = iController->model().classifiedAdsModel().caByHash(hashToDisplay) ; iController->model().classifiedAdsModel().setTimeLastReference(iCaOnDisplay.iFingerPrint, QDateTime::currentDateTimeUtc().toTime_t()) ; if ( iCaOnDisplay.iSenderHash != KNullHash ) { iController->offerDisplayNameForProfile(iCaOnDisplay.iSenderHash, iCaOnDisplay.iSenderName, true ) ; } iController->model().unlock() ; emit displayedCaChanged() ; iViewCaAttachmentsButton->setEnabled(iCaOnDisplay.iAttachedFiles.count() > 0) ; QString trustingProfileNickName ; Hash trustingProfileHash ; if ( iController->model().trustTreeModel()->isProfileTrusted(iCaOnDisplay.iSenderHash, &trustingProfileNickName, &trustingProfileHash ) ) { iFromField.setToolTip(QString(tr("Trusted by %1\nSHA1 %2")).arg(trustingProfileNickName).arg(trustingProfileHash.toString())) ; QLOG_STR("CA sender profile was trusted by " + trustingProfileNickName ) ; iFromField.setPen(QPen(QColor((Qt::blue)))) ; } else { iFromField.setToolTip(QString()) ; iFromField.setPen(QPen(QColor((QApplication::palette().text().color())))) ; QLOG_STR("CA sender profile was not trusted") ; } if ( iCaOnDisplay.iSenderName.length() > 0 ) { iFromField.setText(tr("From:") + " " + iCaOnDisplay.iSenderName ) ; } else { iFromField.setText(tr("From:") + " " + iController->displayableNameForProfile(iCaOnDisplay.iSenderHash) ) ; } iSubjectField.setText(tr("Subject:") + " " + iCaOnDisplay.iSubject ) ; iCaText.setHtml(iCaOnDisplay.iMessageText) ; setCaDocumentSize() ; ui.caMessageView->horizontalScrollBar()->setSliderPosition(0) ; ui.caMessageView->horizontalScrollBar()->setValue(0) ; ui.caMessageView->centerOn(0,0) ; } else { iCaText.setHtml("") ; iSubjectField.setText("") ; iFromField.setText("") ; iCaOnDisplay.iSenderHash = KNullHash ; iReplyToCaButton->setEnabled(false) ; iReplyToCaToForumButton->setEnabled(false) ; iCommentCaPosterButton->setEnabled(false) ; iViewCaPosterProfileButton->setEnabled(false) ; iViewCaAttachmentsButton->setEnabled(false) ; } ui.caHeadersView->resizeColumnToContents(0) ; #if QT_VERSION >= 0x050000 // qt5 ui.caHeadersView->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents); #else ui.caHeadersView->header()->setResizeMode(0, QHeaderView::ResizeToContents); #endif } void FrontWidget::privMsgselectionChangedSlot(const QItemSelection &, const QItemSelection &) { LOG_STR("privmsgselectionChangedSlot") ; iPrivMsgOnDisplay.iSenderHash = KNullHash ; Hash hashToDisplay ; foreach(const QModelIndex &index, ui.privateMessageListView->selectionModel()->selectedIndexes()) { hashToDisplay.fromQVariant( iPrivMsgSearchModel.data(index,Qt::UserRole) ) ; break ; } LOG_STR2("Display private message %s", qPrintable(hashToDisplay.toString())) ; iController->model().lock() ; PrivMessage* msg ( iController->model().privateMessageModel().messageByFingerPrint(hashToDisplay)) ; if ( msg ) { iPrivMsgOnDisplay = *msg ; delete msg ; iController->model().privateMessageModel().setAsRead(hashToDisplay, true); iController->model().privateMessageModel().setTimeLastReference(hashToDisplay, QDateTime::currentDateTimeUtc().toTime_t()) ; iPrivMsgSearchModel.setAsRead(hashToDisplay, true); if ( iPrivMsgOnDisplay.iSenderHash != KNullHash ) { iController->offerDisplayNameForProfile(iPrivMsgOnDisplay.iSenderHash, iPrivMsgOnDisplay.iSenderName, true ) ; } } iController->model().unlock() ; if ( iPrivMsgOnDisplay.iSenderHash != KNullHash ) { if (iSelectedProfile && iPrivMsgOnDisplay.iSenderHash == iSelectedProfile->iFingerPrint ) { iPrivMsgFromField.setText(tr("To:") + " " + iController->displayableNameForProfile(iPrivMsgOnDisplay.iRecipient) ) ; } else { if ( iPrivMsgOnDisplay.iSenderName.length() > 0 ) { iPrivMsgFromField.setText(tr("From:") + " " + iPrivMsgOnDisplay.iSenderName ) ; } else { iPrivMsgFromField.setText(tr("From:") + " " + iController->displayableNameForProfile(iPrivMsgOnDisplay.iSenderHash) ) ; } } iPrivMsgSubjectField.setText(tr("Subject:") + " " + iPrivMsgOnDisplay.iSubject ) ; iPrivMsgText.setHtml(iPrivMsgOnDisplay.iMessageText) ; ui.privateMessageView->horizontalScrollBar()->setSliderPosition(0) ; ui.privateMessageView->horizontalScrollBar()->setValue(0) ; iReplyToPrivMsgButton->setEnabled(true) ; iCommentPrivMsgPosterButton->setEnabled(true) ; iViewPrivMsgPosterProfileButton->setEnabled(true) ; } else { iPrivMsgText.setHtml("") ; iPrivMsgSubjectField.setText("") ; iPrivMsgFromField.setText("") ; iPrivMsgOnDisplay.iSenderHash = KNullHash ; iReplyToPrivMsgButton->setEnabled(false) ; iCommentPrivMsgPosterButton->setEnabled(false) ; iViewPrivMsgPosterProfileButton->setEnabled(false) ; } setPrivMsgSize() ; iViewPrivMsgAttachmentsButton->setEnabled(iPrivMsgOnDisplay.iSenderHash != KNullHash && iPrivMsgOnDisplay.iAttachedFiles.count() ) ; emit displayedPrivMsgChanged() ; } void FrontWidget::receiveNotifyOfContentReceived(const Hash& aHashOfContent, const ProtocolItemType aTypeOfReceivdContent) { bool profileViewTabIsOpen(false) ; switch (aTypeOfReceivdContent) { case UserProfile: { if ( iViewedProfile && ( iViewedProfile->iFingerPrint == aHashOfContent ) ) { // ahem, we have this profile on display.. // do we have also the tab open: QWidget* currentTabOnDisplay ( ui.tabWidget->currentWidget() ) ; if ( currentTabOnDisplay && currentTabOnDisplay->objectName() == internalNameOfProfileTab ) { profileViewTabIsOpen = true ; } // ahem, re-display the profile if ( profileViewTabIsOpen ) { iController->userInterfaceAction(MController::ViewProfileDetails, aHashOfContent ) ; } else { // or just update the data: delete iViewedProfile ; iViewedProfile = NULL ; iController->model().lock() ; iViewedProfile = iController->model().profileModel().profileByFingerPrint( aHashOfContent ) ; if ( iViewedProfile ) { iController->model().profileModel().setTimeLastReference(iViewedProfile->iFingerPrint, QDateTime::currentDateTimeUtc().toTime_t()) ; } iController->model().unlock() ; if ( iViewedProfile ) { iController-> sendProfileUpdateQuery(iViewedProfile->iFingerPrint, iViewedProfile->iNodeOfProfile == NULL ? KNullHash : iViewedProfile->iNodeOfProfile->nodeFingerPrint()) ; } updateUiFromViewedProfile() ; } } } break ; default: break ; } ; } void FrontWidget::receiveNotifyOfContentReceived(const Hash& aHashOfContent, const Hash& aHashOfClassificationOrDestination, const ProtocolItemType aTypeOfReceivdContent) { switch (aTypeOfReceivdContent) { case ClassifiedAd: iCaListingModel.newCaReceived(aHashOfContent, aHashOfClassificationOrDestination) ; break ; case PrivateMessage: iPrivMsgSearchModel.newMsgReceived(aHashOfContent, aHashOfClassificationOrDestination) ; break ; case UserProfileComment: // listing models will internally check if the content was meant // for them so no conditioning here: QLOG_STR("Calling newCommentReceived for comment listing models with profile hash " + aHashOfClassificationOrDestination.toString() ) ; iSelectedProfileCommentListingModel.newCommentReceived(aHashOfContent, aHashOfClassificationOrDestination) ; iViewedProfileCommentListingModel.newCommentReceived(aHashOfContent, aHashOfClassificationOrDestination) ; break ; default: break ; } ; } void FrontWidget::addContactButtonClicked() { LOG_STR("addContactButtonClicked"); EditContactDialog *contact_dialog = new EditContactDialog(this, iController, KNullHash, "", false, iContactsModel) ; connect(contact_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; contact_dialog->show() ; // the dialog will delete self } void FrontWidget::editContactActionSelected() { LOG_STR("editContactActionSelected"); if ( iSelectedContact != KNullHash ) { EditContactDialog *contact_dialog = new EditContactDialog(this, iController, iSelectedContact, "", false, iContactsModel) ; connect(contact_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; contact_dialog->show() ; // the dialog will delete self } } void FrontWidget::removeContactButtonClicked() { if ( iSelectedContact != KNullHash && iSelectedProfile ) { iController->model().lock() ; iContactsModel.removeContact(iSelectedContact) ; iController->storePrivateDataOfSelectedProfile(true) ; // true == publish trust list too iController->model().trustTreeModel()->offerTrustList(iController->profileInUse(), QString(), iContactsModel.trustList()) ; iController->model().unlock() ; } } void FrontWidget::viewContactProfileButtonClicked() { if ( iSelectedContact != KNullHash ) { iController->userInterfaceAction(MController::ViewProfileDetails, iSelectedContact ) ; } } void FrontWidget::sendMsgToContactButtonClicked() { LOG_STR("sendMsgToContactButtonClicked"); if ( iSelectedContact != KNullHash ) { NewPrivMessageDialog *posting_dialog = new NewPrivMessageDialog(this, iController, iSelectedContact.toString(), "", *iSelectedProfile, iPrivMsgSearchModel) ; connect(posting_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; posting_dialog->show() ; // the dialog will delete self } } void FrontWidget::addMessageSenderToContacts() { if ( iPrivMsgOnDisplay.iSenderHash != KNullHash ) { EditContactDialog *contact_dialog = new EditContactDialog(this, iController, iPrivMsgOnDisplay.iSenderHash , iPrivMsgOnDisplay.iSenderName, false, iContactsModel ) ; connect(contact_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; contact_dialog->show() ; // the dialog will delete self } } void FrontWidget::addCaSenderToContacts() { if ( iCaOnDisplay.iSenderHash != KNullHash ) { EditContactDialog *contact_dialog = new EditContactDialog(this, iController, iCaOnDisplay.iSenderHash , iCaOnDisplay.iSenderName, false, iContactsModel ) ; connect(contact_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; contact_dialog->show() ; // the dialog will delete self } } void FrontWidget::addContactFromContactViewButtonClicked() { if ( iViewedProfile ) { EditContactDialog *contact_dialog = new EditContactDialog(this, iController, iViewedProfile->iFingerPrint, iViewedProfile->displayName(), false, iContactsModel ) ; connect(contact_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; contact_dialog->show() ; // the dialog will delete self } } QVariant FrontWidget::contactDataOfSelectedProfile() { return iContactsModel.contactsAsQVariant() ; } QList FrontWidget::trustListOfSelectedProfile() const { return iContactsModel.trustList() ; } void FrontWidget::setContactDataOfSelectedProfile(const QVariantList& aContacts) { iContactsModel.setContactsFromQVariant(aContacts) ; } bool FrontWidget::isContactInContactList(const Hash& aFingerPrint) const { return iContactsModel.isContactContained(aFingerPrint) ; } void FrontWidget::activateProfileCommentDisplay(ProfileCommentListingModel* aListingModel, ProfileCommentModel& aCommentModel, const Hash& aInitialComment, const Hash& aViewedProfile) { ProfileCommentDisplay* dialog = this->findChild(internalNameOfCommentDialog) ; if ( dialog ) { dialog->close() ; dialog = NULL ; } dialog = new ProfileCommentDisplay(this, iController, aListingModel, aCommentModel, aInitialComment, aViewedProfile, *iSelectedProfile) ; dialog->setObjectName(internalNameOfCommentDialog) ; connect(dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; // if selected profile is deleted (due to change), close // dialog also connect (iSelectedProfile, SIGNAL(destroyed()), dialog, SLOT(reject())) ; if ( iSelectedProfile->iFingerPrint != aViewedProfile ) { // viewing dialog is about "viewed profile" comments ; if // that profile is changed, also close the dialog: connect (iViewedProfile, SIGNAL(destroyed()), dialog, SLOT(reject())) ; } dialog->show() ; // the dialog will delete self aInitialComment ) ; } void FrontWidget::linkActivated ( const QString &aLink ) { QLOG_STR("FrontWidget::linkActivated " + aLink ) ; QUrl url ( aLink, QUrl::StrictMode) ; if ( url.isValid() && url.scheme().length() > 0 && url.host().length() > 0 ) { if ( url.scheme() == "caprofile" || url.scheme() == "caad" || url.scheme() == "cacomment" || url.scheme() == "cablob" ) { // classified ads link. handle internally. Hash parsedHash ; parsedHash.fromString(reinterpret_cast(url.host().toLatin1().constData())) ; if ( parsedHash == KNullHash ) { QMessageBox errorMessage ; errorMessage.setText(tr("Invalid SHA1 in URL") + " " + aLink ); errorMessage.setStandardButtons( QMessageBox::Ok ); errorMessage.exec(); return ; } else { if ( url.scheme() == "caprofile" ) { iController->userInterfaceAction(MController::ViewProfileDetails, parsedHash ) ; } else if ( url.scheme() == "caad" ) { iController->userInterfaceAction(MController::ViewCa, parsedHash ) ; } else if ( url.scheme() == "cacomment" ) { iController->userInterfaceAction(MController::ViewProfileComment, parsedHash ) ; } else { // handling for binary file. .. save it to disk, // we could also check other actions from metadata // but for now, lets just dump it into filesystem, // user does what user does. openBinaryFile(parsedHash, false) ; } } } else { QDesktopServices::openUrl(url) ; } } else { QMessageBox errorMessage ; errorMessage.setText(tr("Invalid URL") + " " + aLink ); errorMessage.setStandardButtons( QMessageBox::Ok ); errorMessage.exec(); return ; } } void FrontWidget::doShowFileMetadata(const Hash& aBinaryFileFingerPrint) { iController->model().lock() ; BinaryFile* metadata (iController->model().binaryFileModel().binaryFileByFingerPrint(aBinaryFileFingerPrint)); iController->model().unlock() ; if ( metadata ) { iController->displayFileInfoOnUi(*metadata) ; delete metadata ; } } classified-ads-0.09/FrontWidget.h000066400000000000000000000402061260620453500167270ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef FRONT_H #define FRONT_H #include #include #include #include #include "ui_frontWidget.h" #include "controller.h" #include "datamodel/calistingmodel.h" #include "datamodel/ca.h" #include "datamodel/privmsgsearchmodel.h" #include "datamodel/privmsg.h" #include #include "datamodel/contactlistingmodel.h" #include "datamodel/profilecommentlistingmodel.h" class Profile ; class BinaryFileListingModel ; class QShortcut ; class ProfileCommentModel ; class FrontWidget: public QWidget { Q_OBJECT public: FrontWidget(Controller* aController,QMainWindow& aParent ) ; ~FrontWidget() ; /** puts profile of any operator on display */ void showDetailsOfProfile(const Hash& aFingerPrint) ; /** displays a selected classified ad */ void showClassifiedAd(const CA& ca) ; /** displays a selected profile comment */ void showSingleCommentOfProfile(const Hash aCommentFingerPrint) ; /** * Method for filling ad-category-selection -related * comboboxes. This is implemented here in frontwidget but * is used by dialogs as well, and that is the reason * why this method is public. */ static void fillCaSelectionCombobox(QComboBox& aComboBox, bool isAboutComboBox, MController& aController) ; /** * Method for getting the fully qualified name of the group * selection that user has made, for reason or another. Called * also from dialogs, thus public */ static QString selectedClassification(const QComboBox& aAboutCombo, const QComboBox& aRegardingCombo, const QComboBox& aWhereCombo, const MController& aController) ; /** * kind of "observer" method called from controller when there * is new content available ; odds are that we're displaying * or waiting some of that */ void receiveNotifyOfContentReceived(const Hash& aHashOfContent, const ProtocolItemType aTypeOfReceivdContent) ; /** * kind of "observer" method called from controller when there * is new content available ; odds are that we're displaying * or waiting some of that. This variant is hit with notifications * about classified ads or private messages * @param aHashOfContent fingerprint of the object (ca or priv msg) * received * @param aHashOfClassificationOrDestination in case of ca, this is * fingerprint of the classification, in case of * private message, this is recipient profile * fingerprint. */ void receiveNotifyOfContentReceived(const Hash& aHashOfContent, const Hash& aHashOfClassificationOrDestination, const ProtocolItemType aTypeOfReceivdContent) ; /** * method for retrieving contacts list of the profile currently selected */ QVariant contactDataOfSelectedProfile() ; /** * method for retrieving trust list of the profile currently selected */ QList trustListOfSelectedProfile() const ; /** * method for setting contacts list of the profile currently selected */ void setContactDataOfSelectedProfile(const QVariantList& aContacts) ; /** * method for checking if given profile is in contact list of * selected profile */ bool isContactInContactList(const Hash& aFingerPrint) const ; /** * method for getting currently selected profile or NULL * if no profile selected */ Profile *selectedProfile() const { return iSelectedProfile ; } /** * method for opening a binary file, called from url handling and * from "save shared file.." selection */ void openBinaryFile(const Hash& aFingerPrint, bool aUseViewedProfileNodeAsNetreqDest = false ) ; public slots: virtual void publishProfileButtonClicked() ; /**< callback of publish btn */ virtual void revertProfileButtonClicked() ;/**< callback of revert btn */ virtual void profileImageClicked() ;/**< callback of image selection */ virtual void profileReadersClicked() ;/**< callback of reader-list edit */ virtual void profileEdited(const QString& aNewText) ;/**< callback for any UI actions that edit profile */ virtual void isPrivateSettingChanged(int aState) ;/**< callback of "is private" checkbox */ virtual void userProfileSelected(const Hash& aProfile) ;/**< called from controller when another user profile is selected */ virtual void fileToBeSharedAdded() ;/**< operator wants to share a file */ virtual void fileToBeSharedRemoved() ;/**< operator wants to stop advertasing a shared file */ virtual void exportSharedFile() ;/**< operator wants to save a shared file */ virtual void viewSharedFileInfo() ; /**< for viewing metadata of a shared file */ virtual void copySharedFileHash() ;/**< copies shared file SHA1 to clipboard */ virtual void editNewSharedFile() ;/**< initiates edit+publish of new text document */ virtual void profileSendMsgButtonClicked() ; virtual void profileShowReadersButtonClicked() ; virtual void profileSendCommentButtonClicked() ; virtual void caTabAboutComboChanged(int aNewIndex) ; virtual void caTabConcernsComboChanged(int aNewIndex) ; virtual void caTabWhereComboChanged(int aNewIndex) ; // slots for buttons at bottom of "classified ads" ta virtual void replyToCaButtonClicked() ; virtual void replyToCaToForumButtonClicked() ; virtual void commentCaPosterProfile() ; virtual void viewCaPosterProfile() ; virtual void viewCaAttachments() ; virtual void postNewClassifiedAd() ; virtual void performAdsSearchClicked() ; /**< callback of "search ads" */ /** * this slot is called when classified ads header listing view * has new selection */ virtual void CAselectionChangedSlot(const QItemSelection &, const QItemSelection &) ; /** * this slot is called when private messages header listing view * has new selection */ virtual void privMsgselectionChangedSlot(const QItemSelection &, const QItemSelection &) ; /** * this slot is called when contacts listing view has new selection */ virtual void contactsSelectionChangedSlot(const QItemSelection &, const QItemSelection &) ; virtual void replyToPrivMsgButtonClicked() ; /**< from priv msg tab btn */ virtual void commentPrivMsgPosterProfile() ; /**< from priv msg tab btn */ virtual void viewPrivMsgPosterProfile() ; /**< from priv msg tab btn */ virtual void postNewPrivateMessage() ;/**< from priv msg tab btn */ /** displays list of attachments of a private message */ virtual void viewPrivMsgAttachments() ; virtual void addMessageSenderToContacts() ;/**< called from messages tab */ virtual void addCaSenderToContacts() ;/**< called from ca listing tab */ // slots related to contacts-tab virtual void addContactButtonClicked() ; /**< new contact */ /** new contact from "view contact" tab */ virtual void addContactFromContactViewButtonClicked() ; virtual void removeContactButtonClicked() ; /**< remove contact */ virtual void viewContactProfileButtonClicked() ; /**< view contact profile */ virtual void sendMsgToContactButtonClicked() ; /**< send message to contact list profile */ virtual void editContactActionSelected() ; /**< edit */ /** * this slot is called when own profile comments listing is * changed */ virtual void ownProfileCommentselectionChangedSlot(const QItemSelection &, const QItemSelection &) ; /** * this slot is called when viewed profile comments listing is * changed */ virtual void viewedProfileCommentselectionChangedSlot(const QItemSelection &, const QItemSelection &) ; /** * this slot is called when user doubleclicks profile comment listing * of viewed profile */ virtual void viewedProfileCommentDoubleClicked(const QModelIndex &aSelection) ; /** * this slot is called when user hits enter while having keyboard * focus on profile comment listing */ virtual void viewedProfileCommentKeyPressed() ; /** * this slot is called when user doubleclicks profile comment listing * of own profile */ virtual void ownProfileCommentDoubleClicked(const QModelIndex &aSelection) ; /** * this slot is called when user clicks on link on document */ virtual void linkActivated ( const QString &aLink ) ; /** * called when user selects binary file from her own list of * shared files */ virtual void ownBinaryFileSelectionChangedSlot(const QModelIndex &aItem, const QModelIndex &aPreviousItem) ; /** * called when user selects binary file from list of shared files from * list of a viewed profile */ virtual void viewedBinaryFileSelectionChangedSlot(const QModelIndex &aItem, const QModelIndex &aPreviousItem) ; /** * sets up binary file listing actions in list of shared * files for both own profile shared file listing and possible * viewed profile shared file listing ; they share same * actions */ void updateFileSelectionActions() ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; /** emitted when ca on display is replaced */ void displayedCaChanged() ; /** emitted when privmsg on display is replaced */ void displayedPrivMsgChanged() ; private: /** * method that reads @ref iSelectedProfile and updates UI elements * accordingly into "my profile" tab */ void updateUiFromSelectedProfile() ; /** * method that sets up shared file listing model based on selected profile. * if selected profile is NULL, this will tear down the model too. */ void setUpSelectedProfileFileListingModel() ; /** * separate init method for setting up the classified-ads tab * as it is fairly complex */ void setupClassifiedAdsTab() ; /** * separate init method for setting up the private messages tab * as it is fairly complex. This must be called after each * profile re-selection */ void setupPrivateMessagesTab() ; /** * contacts tab setup */ void setupContactsTab() ; /** * Method that set selected ad-classification on display * @param aNameOfClassification is the classification, like * "ToBeGivenAway.Clothing.AtYourPlace" */ void selectClassification(QString aNameOfClassification) ; /** * method that reads @ref iViewedProfile and updates UI elements * accordingly into "viewed profile" tab */ void updateUiFromViewedProfile() ; /** * method for bringing up dialog for display of profile comments * @param aListingModel datamodel holding the comments to list (UI model) * @param aCommentModel datamodel holding the comment data (storage model) * @param aInitialComment if non-null, hash of comment to initially focus * @param aViewedProfile fingerprint of profile whose comments are shown * @return none */ void activateProfileCommentDisplay(ProfileCommentListingModel* aListingModel, ProfileCommentModel& aCommentModel, const Hash& aInitialComment, const Hash& aViewedProfile ) ; private: // methods void setCaDocumentSize() ; void setPrivMsgSize() ; void doShowFileMetadata(const Hash& aBinaryFileFingerPrint) ; private: Ui::frontWidget ui ; Controller* iController ; QMainWindow& iParent ; Profile *iSelectedProfile ; /**< components of selected "My profile" */ Profile *iViewedProfile ; /**< contents of "view profile" tab */ QAction* iAddSharedFileAction ; /**< context-menu action for adding shared file */ QAction* iRemoveSharedFileAction ; /**< context-menu action for adding shared file */ QAction* iExportSharedFileAction ; /**< context-menu action for saving to filesystem a shared file */ QAction* iViewSharedFileInfoAction ; /**< context-menu action for checking file metadata */ QAction* iCopySharedFileHashAction ; /**< context-menu action copying SHA1 to clipboard */ QAction* iEditNewSharedFileAction ; /**< context-menu action for editing new text doc */ /** model for displaying file list "operator profile" ; there may be 2nd instance * for displaying file list of some other profile that is not operators own */ BinaryFileListingModel* iSelectedProfileFileListingModel ; /** model for displaying file list of random viewed profile */ BinaryFileListingModel* iViewedProfileFileListingModel ; QPushButton* iReplyToCaButton ; QPushButton* iReplyToCaToForumButton ; /** button for opening dialog for posting a new CA */ QPushButton* iNewCaButton ; /** button for opening a dialog for commenting a CA poster profile */ QPushButton* iCommentCaPosterButton ; /** button for opening view of profile from CA display */ QPushButton* iViewCaPosterProfileButton ; /** button for displaying attachments of a CA on display */ QPushButton* iViewCaAttachmentsButton ; QAction* iAddToContactsFromCaList ; CAListingModel iCaListingModel ; /**< used for content of ad-listing view */ QGraphicsScene iCaScene ; /**< this is used to display elements of an ad */ QGraphicsTextItem iCaText ; /**< this is used to render text of classified ad */ CA iCaOnDisplay ; /**< Classified ad on */ QGraphicsSimpleTextItem iFromField ; QGraphicsSimpleTextItem iSubjectField ; const QPoint iArticleTopLeft ; // private message tab related variables PrivateMessageSearchModel iPrivMsgSearchModel ; PrivMessage iPrivMsgOnDisplay ; QGraphicsScene iPrivMsgScene ; /**< this is used to display elements of an priv msg */ QGraphicsTextItem iPrivMsgText ; /**< this is used to render text of priv msg */ QGraphicsSimpleTextItem iPrivMsgFromField ; QGraphicsSimpleTextItem iPrivMsgSubjectField ; const QPoint iPrivMsgTopLeft ; QPushButton* iReplyToPrivMsgButton; QPushButton* iNewPrivMsgButton ; QPushButton* iCommentPrivMsgPosterButton; QPushButton* iViewPrivMsgPosterProfileButton; QPushButton* iViewPrivMsgAttachmentsButton ; QAction* iAddToContactsFromMsgList ; // variables related to contacts-list ContactListingModel iContactsModel ; Hash iSelectedContact ; QAction* iEditContactAction ; // variables related to profile-comment display ProfileCommentListingModel iSelectedProfileCommentListingModel ; ProfileCommentListingModel iViewedProfileCommentListingModel ; Hash iSelectedCommentFromOwnCommentListing ; Hash iSelectedCommentFromViewedCommentListing ; QShortcut* iProfileListingKeyboardGrabber ; bool iWindowSizeAdjusted ; /** * binary file selected from "shared files" list of own * profiles shared files */ Hash iSelectedOwnBinaryFile ; /** * binary file selected from "shared files" list of viewed * profiles shared files */ Hash iSelectedViewedProfileBinaryfile ; } ; #endif classified-ads-0.09/LICENSE000066400000000000000000000636421260620453500153400ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! classified-ads-0.09/README.TXT000066400000000000000000000026321260620453500156610ustar00rootroot00000000000000Compiling: You need 5, libnatmpm, openssl and miniupnpc . The debian control file is made for qt5 but program compiles with qt4 also, then add libmagick and libqjson into dependencies. So, using your favourite package-manager install qtbase5-dev-tools libssl-dev libnatpmp-dev libminiupnpc-dev dpkg-dev (if going to build with dpkg-buildpackage) libgcrypt11-dev (if going to build with dpkg-buildpackage, it checks for this) libqt5sql5-sqlite (is needed at runtime, not compile time) imagemagick (alternatively download https://github.com/operatornormal/classified-ads/blob/graphics/preprocessed.tar.gz?raw=true and unpack that into same directory with the sources and skip the graphics-highres -part below) Libgcrypt-dev or libgcrypt11-dev are needed for test suite, some bignum tests are done against routines in this library but in normal runtime there is no dependency. If compiling in linux or other unix-like system, you do the following: - but skip this part for debian+derivatives (ubuntu,mint) if building with dpkg-buildpackage: cd graphics-highres make cd .. Then just say "qmake ; make install" and that should do the trick ; or if inside debian-ecosystem "dpkg-buildpackage -r" in this directory should produce a installable package for your environment ; this is the correct way anyway. For compiling under ms-windows, see readme-file in sub-dir windows. License: LGPL. Happy hacking. classified-ads-0.09/README.md000066400000000000000000000002151260620453500155750ustar00rootroot00000000000000classified_ads ============== Classified ads is a server-less program for internet communications, including public and private messages. classified-ads-0.09/classified-ads.1000066400000000000000000000022351260620453500172570ustar00rootroot00000000000000.\" Hey, EMACS: -*- nroff -*- .TH "CLASSIFIED_ADS" 1 "Mar 01 2015" .SH NAME classified-ads \- Program for posting ads online for others to see .SH SYNOPSIS .B classified-ads .SH DESCRIPTION Classified ads is a program for online communications. Main features include server-less design, public announcements, private messages, user data and comments. For longer explanation of the program, please see "About" dialog inside the program. .SH FILES For each individual user a file $HOME/.classified_ads/sqlite_db is created. This is a normal sqlite database that contains state of the program. For backup purpose a copy may be made and later restored while the program is not running. Restoring an old file fully resets the programs state to moment when backup was taken. Upon uninstall of the program, the datafile is left lingering around. Users who are sure they'll never user the program again should delete the file by hand. Note that users encryption keys are inside this file among other data so deleting the file will affect users ability to access private messages later. .SH AUTHOR Classified ads is copyright Antti Jarvinen 2015. classified-ads-0.09/classified-ads.pro000066400000000000000000000153771260620453500177320ustar00rootroot00000000000000# # Classified Ads is Copyright (c) Antti JУЄrvinen 2013. # # This file is part of Classified Ads. # # Classified Ads is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # Classified Ads is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with Classified Ads; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # QT += core network sql greaterThan(QT_MAJOR_VERSION, 4) { QT += widgets printsupport } #CONFIG += debug #CONFIG -= release CONFIG(release) { message("hardening flags for release build") unix:QMAKE_CPPFLAGS *= $$(CA_QMAKE_CPPFLAGS) unix:QMAKE_CFLAGS *= $$(CA_QMAKE_CFLAGS) unix:QMAKE_CXXFLAGS *= $$(CA_QMAKE_CXXFLAGS) unix:QMAKE_LFLAGS *= $$(CA_QMAKE_LDFLAGS) } else { message("debug build, no hardening") # enabled -DDEBUG to have console log via qDebug() QMAKE_CXXFLAGS += -DDEBUG win32.CONFIG += console } CODECFORTR = UTF-8 CODECFORSRC = UTF-8 QMAKE_EXTRA_TARGETS += translations_compile PRE_TARGETDEPS += translations_compile unix { translations_compile.commands = cd po ; $(MAKE) QMAKE_CLEAN += po/*.mo } win32 { translations_compile.commands = $(MAKE) -C po MSGFMT_PATH=/msys32/usr/local/bin/ QMAKE_CLEAN += po\*.mo } HEADERS = mcontroller.h controller.h FrontWidget.h net/node.h util/hash.h \ net/connection.h datamodel/model.h \ net/networklistener.h net/protocol_message_formatter.h \ net/protocol_message_parser.h net/networkconnectorengine.h \ datamodel/nodemodel.h datamodel/netrequestexecutor.h \ datamodel/contentencryptionmodel.h ui/passwd_dialog.h \ datamodel/profilemodel.h datamodel/profile.h \ net/publishingengine.h datamodel/mmodelprotocolinterface.h \ datamodel/mnodemodelprotocolinterface.h ui/profilereadersdialog.h \ datamodel/profilesearchmodel.h datamodel/profilereaderslistingmodel.h \ datamodel/binaryfilemodel.h datamodel/binaryfile.h \ datamodel/binaryfilelistingmodel.h datamodel/camodel.h \ ui/newclassifiedaddialog.h datamodel/ca.h \ datamodel/calistingmodel.h net/retrievalengine.h datamodel/privmsg.h \ datamodel/privmsgmodel.h ui/newprivmsgdialog.h \ datamodel/privmsgsearchmodel.h datamodel/contact.h \ datamodel/contactlistingmodel.h ui/editcontact.h \ datamodel/datamodelbase.h datamodel/profilecomment.h \ datamodel/profilecommentmodel.h ui/newprofilecommentdialog.h \ datamodel/profilecommentlistingmodel.h ui/profilecommentdisplay.h \ ui/profilecommentitemdelegate.h ui/dialogbase.h \ ui/attachmentlistdialog.h ui/settings.h ui/status.h \ datamodel/connectionlistingmodel.h ui/manualconnection.h \ ui/aboutdialog.h textedit/textedit.h datamodel/searchmodel.h \ ui/searchdisplay.h ui/insertlinkdialog.h ui/newtextdocument.h \ datamodel/trusttreemodel.h ui/metadataQuery.h util/jsonwrapper.h \ util/catranslator.h SOURCES = main.cpp controller.cpp FrontWidget.cpp net/node.cpp util/hash.cpp \ net/connection.cpp datamodel/model.cpp \ net/networklistener.cpp net/protocol_message_formatter.cpp \ net/protocol_message_parser.cpp net/networkconnectorengine.cpp \ datamodel/nodemodel.cpp datamodel/netrequestexecutor.cpp \ datamodel/contentencryptionmodel.cpp ui/passwd_dialog.cpp \ datamodel/profilemodel.cpp datamodel/profile.cpp \ net/publishingengine.cpp ui/profilereadersdialog.cpp \ datamodel/profilesearchmodel.cpp \ datamodel/profilereaderslistingmodel.cpp \ datamodel/binaryfilemodel.cpp datamodel/binaryfile.cpp \ datamodel/binaryfilelistingmodel.cpp datamodel/camodel.cpp \ ui/newclassifiedaddialog.cpp datamodel/ca.cpp \ datamodel/calistingmodel.cpp net/retrievalengine.cpp \ datamodel/privmsg.cpp datamodel/privmsgmodel.cpp \ ui/newprivmsgdialog.cpp datamodel/privmsgsearchmodel.cpp \ datamodel/contact.cpp datamodel/contactlistingmodel.cpp \ ui/editcontact.cpp datamodel/datamodelbase.cpp \ datamodel/profilecomment.cpp datamodel/profilecommentmodel.cpp \ ui/newprofilecommentdialog.cpp \ datamodel/profilecommentlistingmodel.cpp ui/profilecommentdisplay.cpp \ ui/profilecommentitemdelegate.cpp ui/dialogbase.cpp \ ui/attachmentlistdialog.cpp ui/settings.cpp ui/status.cpp \ datamodel/connectionlistingmodel.cpp ui/manualconnection.cpp \ ui/aboutdialog.cpp textedit/textedit.cpp datamodel/searchmodel.cpp \ ui/searchdisplay.cpp ui/insertlinkdialog.cpp ui/newtextdocument.cpp \ datamodel/trusttreemodel.cpp ui/metadataQuery.cpp \ util/jsonwrapper.cpp util/catranslator.cpp FORMS = frontWidget.ui ui/profileReadersDialog.ui ui/passwordDialog.ui \ ui/newClassifiedAd.ui ui/newPrivMsg.ui ui/editContact.ui \ ui/newProfileComment.ui ui/profileCommentDisplay.ui \ ui/attachmentListDialog.ui ui/settingsDialog.ui \ ui/statusDialog.ui ui/manualConnectionDialog.ui \ ui/aboutDialog.ui ui/searchDisplay.ui ui/insertLink.ui \ ui/newTextDocument.ui ui/metadataQuery.ui RESOURCES = ui_resources.qrc TRANSLATIONS = classified_ads_fi.ts \ classified_ads_sv.ts unix:LIBS = -lssl -lcrypto -lnatpmp -lminiupnpc lessThan(QT_MAJOR_VERSION, 5) { unix:LIBS += -lqjson -lmagic } # following line is needed for fedora linux, natpnp needs miniupnpc unix:INCLUDEPATH += /usr/include/miniupnpc win32:LIBS += "-L..\openssl-1.0.2d" win32:LIBS += "-lcrypto" win32:LIBS += "-lssl" win32:LIBS += "..\miniupnpc-1.9\miniupnpc.lib" win32:LIBS += "-L\msys32\usr\local\lib" win32:LIBS += "-lintl" lessThan(QT_MAJOR_VERSION, 5) { win32:LIBS += "-L" win32:LIBS += "..\qjson-master\build\src" win32:LIBS += "-lqjson" } win32:LIBS += "-lWs2_32" "-lGdi32" "-lIphlpapi" win32:INCLUDEPATH += "..\openssl-1.0.2d\include" win32:INCLUDEPATH += "..\miniupnpc-1.9" win32:INCLUDEPATH += "\msys32\usr\local\include" lessThan(QT_MAJOR_VERSION, 5) { win32:INCLUDEPATH += "..\qjson-master\include" } target.path = /usr/bin desktopfiles.path = /usr/share/applications desktopfiles.files = ui/classified-ads.desktop appdata.files = ui/classified-ads.appdata.xml appdata.path = /usr/share/appdata/ unix { # in unix install translations as part of appdata: appdata.extra = cd po ; $(MAKE) install DESTDIR=$(DESTDIR) } desktopicons.files = ui/turt-transparent-128x128.png desktopicons.path = /usr/share/app-install/icons/ manpages.path = /usr/share/man/man1 manpages.files = classified-ads.1 INSTALLS += target \ desktopfiles \ desktopicons \ appdata unix:INSTALLS += manpages unix:INSTALLS += appdata RC_FILE=classified-ads.rc classified-ads-0.09/classified-ads.rc000066400000000000000000000001271260620453500175210ustar00rootroot00000000000000IDI_ICON1 ICON DISCARDABLE "windows/turt-transparent-128x128.ico" classified-ads-0.09/classified-ads.spec000066400000000000000000000114531260620453500200530ustar00rootroot00000000000000Name: classified-ads Version: 0.09 Release: 1%{?dist} Summary: Classified ads is a program for posting ads online Group: Applications/Internet License: LGPLv2 URL: http://katiska.org/classified_ads/ Source0: https://github.com/operatornormal/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: https://github.com/operatornormal/classified-ads/blob/graphics/preprocessed.tar.gz?raw=true#/%{name}-graphics-%{version}.tar.gz BuildRequires: qt5-qtbase-devel BuildRequires: openssl-devel, libnatpmp-devel, miniupnpc-devel, gettext BuildRequires: libappstream-glib, desktop-file-utils %description Classified ads is an attempt to re-produce parts of the functionality that went away when Usenet news ceased to exist. This attempt tries to fix the problem of disappearing news-servers so that there is no servers required and no service providers needed; data storage is implemented inside client applications that users are running. %prep %setup -q -a 1 %build qmake-qt5 make %{?_smp_mflags} %install INSTALL_ROOT=%{buildroot} make install DESTDIR=%{buildroot} appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/classified-ads.appdata.xml desktop-file-validate %{buildroot}/%{_datadir}/applications/classified-ads.desktop %files %doc README.TXT %{_bindir}/classified-ads %{_datadir}/applications/classified-ads.desktop %dir %{_datadir}/app-install %dir %{_datadir}/app-install/icons %{_datadir}/app-install/icons/turt-transparent-128x128.png %{_mandir}/man1/classified-ads.1.gz %{_datadir}/appdata/classified-ads.appdata.xml %dir %{_datadir}/locale/ %dir %{_datadir}/locale/fi %dir %{_datadir}/locale/fi/LC_MESSAGES/ %{_datadir}/locale/fi/LC_MESSAGES/classified-ads.mo %dir %{_datadir}/locale/sv %dir %{_datadir}/locale/sv/LC_MESSAGES/ %{_datadir}/locale/sv/LC_MESSAGES/classified-ads.mo %dir %{_datadir}/locale/da %dir %{_datadir}/locale/da/LC_MESSAGES/ %{_datadir}/locale/da/LC_MESSAGES/classified-ads.mo %license LICENSE %changelog * Sat Oct 10 2015 Antti Jarvinen - 0.09-1 - Fixes to serious networking bugs - Translation additions * Mon Sep 28 2015 Antti Jarvinen - 0.08-1 - Links against qt5 instead of qt4 - Translation system is gnu gettext instead of qm files of Qt. - Better tracking of changing local network addresses - Numerous small bugfixes, mostly in networking code * Sun Apr 12 2015 Antti Jarvinen - 0.07-1 - Removed intermediate PNG files into separate tarball - Included code to generate intermediate PNG files manually * Mon Apr 6 2015 Antti Jarvinen - 0.06-1 - Included original high-res bitmaps in different format, conversion routines. - Fixed potential SIGSEGV appearing in debug build - Code indented + typos fixed * Wed Mar 25 2015 Antti Jarvinen - 0.05-1 - spec-file changes due to review comments. - tagged a new version to allow building of latest version. - added copyright notice to FrontWidget.cpp. - included LGPL_EXCEPTION.txt from Nokia alongside sources. * Tue Mar 17 2015 Antti Jarvinen - 0.04-2 - Changed packaging to happen in more civilized way. Lot of changes into spec file. - Package name has changed classified_ads -> classified-ads. - Added appdata, re-wrote the small manpage in less personal tone. * Sat Mar 14 2015 Antti Jarvinen - 0.04-1 - License change GPL->LGPL due to OpenSSL license incompatibility. - Minor UI changes as some bitmaps removed due to licensing issues * Tue Feb 24 2015 Antti Jarvinen - 0.03-1 - Rpm build fixes for fedora linux - Slower connection attempts to unreachable nodes - Better file extenstion handling - UI tweaks for small vertical screen resolutions, affects at least users of some mac models - Classifications entered by user now actually work too - If no local search avail, still offer network search - Possible crash case fix. Still having random crashes inside json serialize.. - Links between documents, still does not work with profile comments - Try miniupnpc also in unix build - Basic support for trust-tree based on trust lists - Translations * Sun Jan 04 2015 Antti Jarvinen - 0.02-1 - Libnatpmp is not used in windows build, - Profile comment document width setting was missing - Made main window slightly smaller vertically. - Now compiles also under Qt5 - Fix for grave bug: only message sender (not recipient) can read binary attachments - Error messages for some file operations - Fix for situation where published private profile breaks every node in network - Require c++ compiler for compilation of c++, when building rpm. * Wed Dec 31 2014 Tuomas Haarala - 0.01-1 - initial spec file scribbled together classified-ads-0.09/classified_ads_fi.qm000066400000000000000000001720541260620453500203030ustar00rootroot00000000000000<ИdЪяœ•Э!П`ЁНнB Ј;EdўЩ“ўгVЩХVг4GtЬзGЄбјKG~LLЯЕZlЪВ[*:`_Ум˜“ЇдT‰ЈЅ\жР[ч–хЭь0W! LЯр“ kТHZА5HйА5KЕn”љ&1љS&mѓ7 &mѓФ )Џd@в*–$Mћ*ІyNa*ЛN*а%я*а%O++дOг+‹ЏPЏ+ФЏQѕ?–сGayЭG…дкyG–ФбУGп _IУ–IXГЮIf#IlШJ6•иѕJ6•фюL™btL™b*.L™b3фL™b=_L™b?ДL™bJL™bUIM– 5›T3ЯWTЩѓ‹[f3 2`аЕmУ–mУрcй ‘ƒСф ќ5а‘Ž‘Ž8+- Ž p-ўбzJЏ)МJЏ8Ў~^Ѕ+Ъ“.оКŠШ&ШЛ2ŠП'Ъ­iOxемЖў€$зIC*ѕјъЮЋДЂЌДЂ(FДЂ4 ЁЅ>+ ЁЅ?я?кЪ V.Q:јZULтZUЩ wѕЮ;Т{ќSФ`’`Е‹Іь6AІь<†Ї–Ф ЖŠЅPJЖх”EИЧ9,И§єPыУёхн=м^‚:“ум/%fєk@$MйррОTИ]‚#JcРtЕ’jьчЖm љ .SЖVˆйа™ДШNЊs+вцD,Rжд*cзKХжѓюЭФ5ђŠsШћФ5П!+ѓМъ(PGЛPšƒВŽkcЙCtШ”›‹Ї˜гd‹Ї˜дФ‹Ї˜жq—ѓт[GBЈЈРKЗUХШšХvNРшЬХГ‰舉ІуЃхц_$ОѕsDI,о#ЦC;2%FЯУNH8Р$dлд%fСMЧgв )fgв 5Dgв V"xкЩWˆ|DР&'›ˆ˜Ц“›ˆ˜лˆœJТK0Є!3NЇiГ хГ(ISКіІФц5GЦ­UмYЬZ‚S№лн% žц‹jн јJm7кћќ, ЦЮ-ЦSЭ3ЦTЭѓ#eDХї$eU6{ЎN/8*YYvFMЂцвVбЅЧLYu#zZ~2 Z~Ощ\Юхњ`9~ГslОPŸКЮbЁ"~/ЕБГ sЦlRШжнУзкaŠйŸ№ 4ќiZf0BYRЅ5Фѕ#Ъ8tѕ8uTEэZ єЫпhIB"ijцх јmйЮ\mdк‰pc\…U6†…UТжЁc’'YЋŒу IЋŒууИйYёЙ0ШХlгGоwгGоAСеСФЦСхCЂЧ’ь УН{эLiZхіЇ^!§ŠоЗŒ њЅ0О њЅT(Ј4чљ.o sW sW1"ЁЩў2ьЏЉе<мДE>\cИŒ…7_ЪZƒмЬHcй-ЬчЉНЬЬчЩОьq ЮgЂљAPs)VvУФЏa /teС9eСBdhЬƒ]舂-ќ‘O‡(Ў‘O‡4€›ыВзщЂCuЂCuУД NтвЫRЊай~RaрƒЇЫщщФУъeѓљ O]iшc0Valitse nimi tiedostolleChoose file name for savingAttachmentListDialog VikaaErrorAttachmentListDialog4Vika tiedoston avaamisessaFile open errorAttachmentListDialogBTallenna tiedostojфrjestelmфlle..Save file to disk..AttachmentListDialogtiedostotfilesAttachmentListDialog@Tiedoston nimi tai SHA1 tiivisteName or fingerprint of fileBinaryFileListingModelAikaDateCAListingModelAiheSubjectCAListingModelElфimiфAnimalsClassifiedAdsModelIlmoitetaan AnnouncementClassifiedAdsModel"Missф maassa vain Any countryClassifiedAdsModel PyіriфBikesClassifiedAdsModelVeneitфBoatsClassifiedAdsModelKirjojaBooksClassifiedAdsModelOstetaanBuyingClassifiedAdsModel AutojaCarsClassifiedAdsModelVaatteitaClothingClassifiedAdsModelKoulutusta EducationClassifiedAdsModelSфhkіlaitteita ElectronicsClassifiedAdsModelTapahtumiaEventsClassifiedAdsModelRaha-asioitaFinanceClassifiedAdsModel Ruokatarvikkeita FoodstuffClassifiedAdsModelHuonekaluja FurnitureClassifiedAdsModelAnnetaan Giving awayClassifiedAdsModelAsumuksia HabitationClassifiedAdsModelTerveydenhoitoa HealthcareClassifiedAdsModelKodin tavaroitaHousehold appliancesClassifiedAdsModel KorujaJewelryClassifiedAdsModelTyіpaikkojaJobsClassifiedAdsModelElokuviaMoviesClassifiedAdsModel"MusiikkivфlineitфMusicClassifiedAdsModel Muita ajoneuvojaOther vehiclesClassifiedAdsModelFilosofiaa PhilosophyClassifiedAdsModel2Uskonnollisia toimituksiaReligious ritualsClassifiedAdsModelVuokrataanRentingClassifiedAdsModelMyydффnSellingClassifiedAdsModelPalveluitaServicesClassifiedAdsModelOhjelmistojaSoftwareClassifiedAdsModel UrheiluvфlineitфSportsClassifiedAdsModelTyіkalujaToolsClassifiedAdsModelKuljetuksiaTransportationClassifiedAdsModelAjoneuvon osia Vehicle partsClassifiedAdsModelHalutaanWantingClassifiedAdsModelVerkko-osoiteAddressConnectionListingModelOktettia sisффnBytes inConnectionListingModelOktettia ulos Bytes outConnectionListingModelrSinun tietokoneeseesi tфstф solmusta siirretty tietomффrф'Data transferred from peer to your nodeConnectionListingModel~Sinun tietokoneestasi tфhфn verkon solmuun siirretty tietomффrф'Data transferred to peer from your nodeConnectionListingModelSisффntulevaInboundConnectionListingModel˜Sisффntulevat yhteydet ovat sellaisia, missф etфjфrjestelmф aloitti yhteyden=Inbound connections are those where peer initiated connectionConnectionListingModelAvaamisaika Open timeConnectionListingModel(Solmun verkko-osoitePeer network addressConnectionListingModel(Yhteyden avaamisaikaTime when connection was openedConnectionListingModelZOperaattorin varsinainen verkko-osoite (SHA1),Actual network address (SHA1) of the contactContactListingModel OsoiteAddressContactListingModel„Antamasi liikanimi; operaattori voi antaa itselleen eri liikanimen>Locally given nickname ; user may set her own nickname himselfContactListingModelLiikanimiNicknameContactListingModelŠJulkinen lausunto operaattorin luotettavuudesta asioiden hoitamisessa?Public statement if this operator to be trusted in transactionsContactListingModel&Julkisesti luotettuPublicly trustedContactListingModelTuntematonUnknownContactListingModelTosi onYesContactListingModeljAvaamiseen sopivaa salausavainta ei ole kфytettфvissф!No suitable de-cryption key foundContentEncryptionModel\Salaisen RSA-avaimen tallettaminen epфonnistui%RSA Private key key saving went wrongContentEncryptionModeljSSL-avaimen rakentaminen epфonnistui, pakko poistua..-SSL key generation went wrong, calling exit..ContentEncryptionModelxx509-sertifikaatin rakentaminen epфonnistui, pakko poistua../x509 cert generation went wrong, calling exit..ContentEncryptionModelTietoja&About ControllerVaihda salasana&Change password Controller.Poista valittu profiili&Delete current profile ControllerTiedosto&File ControllerBValitse kфyttііn toinen profiilii&Select another profile ControllerxValitse uusi profiili antamalla haluamasi profiilin salasana&Activate another profile with password Controller(Kelpaamaton salasana Bad password ControllerfViimeistф jфljellф olevaa profiilia ei voi poistaa.Can't delete only profile. Controller~Solmun salausavaimen tai sertifikaatin lataaminen ei onnistunutCant load node cert or key cert ControllernValitse valitulle operaattori-profiilille uusi salasana"Change password of current profile Controller.Luokitellut ilmoituksetClassified ads Controller$Sisфllіn omistaja:Content owner:  ControllerPHaluttua kohdetta ei verkosta lіytynyt.."Could not find item from network.. Controller"Luo uusi profiiliCreate &new profile Controller0Salausjфrjestelmфn virheCryptographic module ControllerTietokantavirheDatabase error Controller(Tietokannan vikatilaDatabase module ControllerPфivфmффrф:Date:  ControllerbPysyvфsti poistaa tфmфnhetkisen valitun profiilinDeletes currently open profile ControllerKuvaus: Description:  Controller SuljeE&xit Controller&Anna uusi salasana:Enter new password: Controller\Anna salasana viestiesi sisфllіn turvaamiseksi/Enter password for protection of your messages: ControllerSulje sovellusExit the application ControllerPKaivellaan kohdetta verkon syіvereistф..Fetching item from network.. ControllerDTiedostokфsittelyyn liittyvф virhe File error ControllerzJos olet luonnut useamman profiilin, voit tфstф valita toisen!If you have multitude of profiles ControllerLisenssi: License:  ControllerFLuo operaattorille uuden profiilinMakes a brand new user profile ControllerMime-Tyyppi: Mime-Type:  Controller Nimi:Name:  Controller"Verkko-yhteydet..Network status.. Controller$Solmun asetukset..Node-wide settings.. ControllerFPoistetaanko profiili lopullisesti?Permanently discard profile? ControllerJulkaisija: Publisher:  Controller SHA1:SHA1:  Controller Etsi..Search.. ControllerAsetukset.. Settings.. ControllerREsitф selvitys sovelluksen tarkoituksesta Show the application's About box Controller’Tфmфn profiilin viestejф tai muuta sisфltіф ei ole mahdollista nфhdф enффNфytф viesti-osapuolen profiili&View profile of peer FrontWidgetRLisфф valittu operaattori osoitekirjaan..#Add selected operator to contacts.. FrontWidget6Lisфф valittu osoitekirjaanAdd selected to contacts.. FrontWidget*Lisфф tiedosto jakoonAdd shared file.. FrontWidget^Artikkelia ei paikallisesta tietokannasta lіydy$Article not found from local storage FrontWidget Liitetiedostot.. Attachments.. FrontWidget4Kuvan avaaminen ei onnistuCan't load image FrontWidgetRValitse nimi tallennettavalle tiedostolleChoose file name for saving FrontWidget.Luokitellut ilmoituksetClassified ads FrontWidgetOsoitekirjaContacts FrontWidget\Kopioi tiedoston osoite (SHA1) leikepіydфlle..'Copy file address (SHA1) to clipboard.. FrontWidget4Muokkaa profiilin tietoja Edit contact.. FrontWidgetVMuokkaa ja julkaise uusi tekstidokumentti.. Edit+publish new text document.. FrontWidgetVikaa..Error FrontWidget:Ongelma tiedoston avaamisessaFile open error FrontWidget.Tiedosto on liian suuri File too big FrontWidget:Tiedosto on aivan liian suuriFile way too big FrontWidget,Kaikki tiedostot (*.*) Files (*.*) FrontWidgetKeneltф:From: FrontWidget>Viallinen SHA1-tiiviste URLissaInvalid SHA1 in URL FrontWidgetViallinen URL Invalid URL FrontWidgetOma profiili My profile FrontWidgetAvaa tiedosto Open File FrontWidget$Yksityiset viestitPrivate messages FrontWidgetDProfiilia ei tietovarastosta lіydyProfile not in database FrontWidget"Vastaa foorumilleReply to &forum FrontWidgetPTallenna tiedosto tiedostojфrjestelmфlleSave file to disk.. FrontWidget8Valitse julkaistava tiedostoSelect file to be published FrontWidget^Lakkaa mainostamasta valittua jaettua tiedostoa%Stop advertising selected shared file FrontWidget Aihe:Subject: FrontWidget6Viimeinen pфivitysajankohtaTime of last update  FrontWidgetKenelle:To: FrontWidget0Johon luottaa %1 SHA1 %2Trusted by %1 SHA1 %2 FrontWidget‚Yritф valita profiili katseltavaksi ensin, yritф sitten uudelleen(Try viewing profile first to obtain data FrontWidgetHTarkastele tiedoston ominaisuuksia..View file information.. FrontWidget kaikki tiedostotfiles FrontWidget&Vффrфn mallinen URL Invalid URLInsertLinkDialogFNimeф ei lіydy nimipalvelusta (DNS)DNS lookup failureManualConnectionDialog VikaaErrorNewPrivMessageDialogPVastaanottajan osoite ei ole kelvollinenRecipient addr is not validNewPrivMessageDialog‚Vastaanottajan salausavainta ei paikallisesta tietokannasta lіydy/Recipient encryption key not found from storageNewPrivMessageDialog`Kommentoidun profiilin osoite ei ole kelvollinen#Commented profile addr is not validNewProfileCommentDialog VikaaErrorNewProfileCommentDialogˆValitun profiilin salausavainta ei paikallisesta tietokannasta lіydy/Recipient encryption key not found from storageNewProfileCommentDialogNSSL-sertifikaatin lataaminen ei onnistuCant load SSL cert NodeModelBSSL-avaimen lataaminen ei onnistuCant load SSL key NodeModelXSSL-avaimen luonti epфonnistui, poistutaan..-SSL key generation went wrong, calling exit.. NodeModelfx509-sertifikaatin luonti epфonnistui, poistutaan../x509 cert generation went wrong, calling exit.. NodeModelZVфhimmфispituus on 5 (kфytф silti ainakin 10)Min length 5 (use 10+) PasswdDialogPValitse salasana viestiesi turvaamiseksi.Enter password for protection of your messagesPasswordDialogАJos unohdat tфmфn sanan, viestiesi lukemiseksi ei ole olemassa mitффn helppoa menetelmффHIf you forget this word, there is no simple way to recover your contentsPasswordDialogOKOKPasswordDialog,Salasana on pakollinenPassword requiredPasswordDialogКUnohdapa tфmф salasana ja viestiesi lukemiseen vain ei ole olemassa mitффn helppoa menetelmффPShould you forget this word, there is no easy way to recover any of your contentPasswordDialog&%1 johon luottaa %2%1 Trusted by %2PrivateMessageSearchModel SuuntaDirPrivateMessageSearchModelNViestin suunta, lфhetetty/vastaanotettu#Direction of message, sent/receivedPrivateMessageSearchModelOsapuoliPeerPrivateMessageSearchModelAiheSubjectPrivateMessageSearchModelAikaTimePrivateMessageSearchModelLisфф kommentti&Add comment...ProfileCommentDisplay^Kommenttia ei paikallisesta tietokannasta lіydy$Article not found from local storageProfileCommentDisplay VikaaErrorProfileCommentDisplayNTallenna liite tiedostojфrjestelmфlle..Save attachment to disk..ProfileCommentDisplayLiitteet:  Attachments: ProfileCommentItemDelegateLфhettфjфSenderProfileCommentListingModelAiheSubjectProfileCommentListingModelAikaTimeProfileCommentListingModel˜Kommenttiin liittyvфn profiilin tietoja ei paikallisesta tietokannasta lіydy2Profile related to comment not found from databaseProfileCommentModel(Tarkastele profiilia View profileProfileReadersDialog<Lukijan nimi tai SHA1-tiivisteName or fingerprint of readerProfileReadersListingModel Avaa..Open.. SearchDisplayLihavoitu&BoldTextEdit Vфri.. &Color...TextEdit Kopioi&CopyTextEditMuokkaa&EditTextEdit$Vie PDF-muodossa..&Export PDF...TextEditTiedosto&FileTextEditKursivoitu&ItalicTextEdit6Tasattu molempiin laitoihin&JustifyTextEdit$Tasattu vasemmalle&LeftTextEdit Avaa..&Open...TextEdit Liitф&PasteTextEditTulosta.. &Print...TextEditTee uudelleen&RedoTextEdit Tasattu oikealle&RightTextEditRTallenna paikallisesti ennen lфhettфmistф&Save locally before sendTextEditAlleviivattu &UnderlineTextEditPeru&UndoTextEditTietoja Qt:stф About &QtTextEditTekstimuokkain ApplicationTextEdit>Pisteellinen lista (ympyrіillф)Bullet List (Circle)TextEdit<Pisteellinen lista (palloilla)Bullet List (Disc)TextEdit@Pisteellinen lista (laatikoilla)Bullet List (Square)TextEditKeskitettyC&enterTextEdit4Kuvan avaaminen ei onnistuCan't load imageTextEditLeikkaaCu&tTextEdit$Muokkaa toimintoja Edit ActionsTextEditSisфllytф kuva Embed imageTextEditTapahtui virheErrorTextEditMuotoileF&ormatTextEdit:Tiedosto on aivan liian suuriFile way too bigTextEdit,Kaikki tiedostot (*.*) Files (*.*)TextEditfHTML-Tiedostot (*.htm *.html);;Kaikki tiedostot (*)(HTML-Files (*.htm *.html);;All Files (*)TextEditApuaHelpTextEditLisфф viite Insert linkTextEdit”ODF Tiedostot (*.odt);;HTML-Tiedostot (*.htm *.html);;Kaikki tiedostot (*);ODF files (*.odt);;HTML-Files (*.htm *.html);;All Files (*)TextEditAvaa tiedosto Open FileTextEditAvaa tiedosto.. Open File...TextEditDNumeroitu lista (pienin kirjaimin)Ordered List (Alpha lower)TextEditDNumeroitu lista (suurin kirjaimin)Ordered List (Alpha upper)TextEditBNumeroitu lista (desimaaliluvuin)Ordered List (Decimal)TextEditHNumeroitu lista (pienin roomalaisin)Ordered List (Roman lower)TextEditPNumeroitu lista (suurilla roomalaisilla)Ordered List (Roman upper)TextEdit$Tulosta dokumenttiPrint DocumentTextEdit0Tulostuksen esikatselu..Print Preview...TextEdit$Tallenna nimellф.. Save as...TextEdit@Tallenna paikallisesti nimellф..Save locally &As...TextEditNormaalimuotoStandardTextEdithTiedostoa on muutettu, haluatko tallettaa muutokset?AThe document has been modified. Do you want to save your changes?TextEdit†Luokitellut ilmoitukset on viestintффn tarkoitettu tietokoneohjelma6 Classified ads is a program for online communications aboutDialogAо<html><head><meta name="qrichtext" content="1" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Luokitellut ilmoitukset on vapaasti kфytettфvф ohjelmisto. Voi kфyttфф, kopioida ja muokata sitф noudattaen LGPL-lisenssin (GNU Lesser General Public License 2.1) ehtoja.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Tфmфn ohjelman kopiointioikeudet omistaa Antti Jфrvinen, vuodesta 2013. </p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ohjelman keskeinen ominaisuus on &quot;ilmoitus&quot; - teksti, joka kuuluu johonkin luokitteluun. Ohjelma sisфltфф joukon valmiita luokitteluita ja kфyttфjiф rohkaistaan keksimффn uusia ; luokittelu-valintoihin &quot;ilmoitukset&quot;-vфlilehdellф voi kirjoittaa mitф hyvфnsф. Muut kфyttфjфt voivat katsella ilmoituksia, julkisesti kommentoida ilmoituksia ja lфhettфф viestejф toisilleen.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ohjelman toinen keskeinen ominaisuus on, ettei se kфytф keskitettyф tietovarastoa millффn verkkopalvelimella - yksittфisten kфyttфjien tietokoneet, joilta ohjelmistoa kфytetффn tallettavat ja vфlittфvфt kaiken ohjelman sisфllф esitettфvфn sisфllіn. Liittyфksesi tфhфn verkkoon sinun on tiedettфvф ainakin yhden sellaisen tietokoneen (solmun) verkko-osoite, jossa jo valmiiksi kфytetффn luokiteltuja ilmoituksia. Mikфli tilanne on sellainen, ettф &quot;verkon tila&quot; -dialogi nфyttфф 0 avointa yhteyttф, sinun on kysyttфvф joltain ystфvфltфsi hфnen solmunsa verkko-osoite ja syіtettфvф se ohjelmaan saadaksesi yhteyden luokiteltujen ilmoitusten verkkoon. Kun ohjelma on kerran liitetty verkkoon, se pyrkii itse yllфpitфmффn listan verkon muista koneista.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Johtuen suunnitelusta, johon verkkopalvelimet eivфt kuulu tфmф jфrjestelmф toimii parhaiten, jos jфtфt tфmфn ohjelman pффlle myіs silloin, kun et itse aktiivisesti kфytф jфrjestelmфф. Ohjelma vie jonkin verran tietojenkфsittelykapasiteettia koneeltasi ja aiheuttaa verkkoliikennettф myіs silloin kun et itse ohjelmaa kфytф - mutta muut kфyttфjфt kфyttфvфt. </p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Yksityisyydestффn huolestuneet kфyttфjфt huomatkoot seuraavat seikat:</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Tietovarasto on toteutettu hajautettuna tiivistetaulukkona (distributed hash table DHT), mikф kфytфnnіssф tarkoittaa ettф verkkoon postitetut ilmoitukset ja muu sisфltі pффtyvфt enemmфn tai vфhemmфn satunnaisille verkon solmuille sфilytettфvфksi, DHT-algoritmin mukaisesti.</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Kaikki verkon tallettamat tietoalkiot (ilmoitukset, kommentit, tiedostot, yksityiset viestit jne.) ovat digitaalisesti allekirjoitettuja. Tфstф syystф on hankalaa pyrkiф esiintymффn eri operaattorina kuin oikeasti on. </p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Operaattorin ainoa luotettava tunniste on hфnen salausavaimensa SHA1-tiiviste. SHA1-tiiviste on nфhtфvillф operaattorin tiedot esittфvфllф vфlilehdellф. Muut tiedot kuten liikanimi tai kaupungin nimi ovat operaattorin syіtettфvissф ja luonnollisesti voivat olla ihan mitф tahansa. Operaattorin profiilin tiedot verkkoon julkaistuna ovat myіs allekirjoitetut, kфyttфen operaattorin salausavainta - mikфli haluat kohtuullisella luotettavuudella tietфф onko joku verkon sisфltі tietyn operaattorin julkaisemaa vai ei, tфmф tapahtuu tarkastamalla lфhettфjфn SHA1-tiiviste. Luokitellut ilmoitukset tarkastaa saapuvien tietoalkioiden allekirjoitukset ja jфttфф tallettamatta sisфllіt, joiden allekirjoitus ei vastaa sisфltіф. </p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Kaikki luokitellut ilmoitukset julkaistaan ilman salausta ja ovat kaikkien luettavissa. Kaikki julkiset profiilit julkaistaan ilman salausta, ja ovat kaikkien luettavissa. Mikфli profiili merkitффn yksityiseksi, se salataan siten, ettф lueteltujen operaattoreiden salausavainta kфyttфen profiilin tiedot ovat luettavissa. Tфmф pфtee myіs profiiliin liittyviin kommentteihin ja jaettuihin tiedostoihin. Muutos ei ole takautuva, eli jos profiili on aiemmin ollut julkinen, sen kommentit ja tiedostot eivфt automaattisesti muutu salatuiksi kun profiili muutetaan yksityiseksi. Yksityiset viestit kuljetetaan aina salattuna. Liitetiedostot noudattavat sen dokumentin yksityisyyssффntіjф, mihin ne on liitetty.</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Kuten kaiken internet-viestinnфn kanssa tosi on, myіs tфmф pфtee: jos jotain sisфltіф verkkoon lфhetetффn, <span style=" font-style:italic;">ei ole olemassa keinoa pysyvфsti sitф poistaa.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Salaustoteutus on OpenSSL, useimmin kфytetyt algoritmit ovat RSA-2048 ja AES-256.</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Solmujen vфlinen liikenne kulkee SSL-socketissa eli tietoliikenteen seuraaminen verkon ulkopuolelta on haastavaa. Vierekkфiset solmut kuitenkin nфkevфt toistensa tietoliikenteenteen sisфllіn. Vaikka tietoliikenteen sisфltіjen kerффmiseen ei ole helppoa yksittфistф paikkaa, operaattorien on silti turha odottaa yksityisyyttф koskien tekemisiффn verkossa vaikka jonkin verran vaivaa yksityisten viestien <span style=" font-style:italic;">sisфltіjen</span> suojaamiseksi onkin nфhty. </p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ohjelmointityіn on enimmфkseen tehnyt Antti Jфrvinen, taideteokset Meeri Jфrvinen.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Tфmф tuote sisфltфф OpenSSL-projektin kehittфmфn ohjelmiston, joka on alunperin tarkoitettu OpenSSL Toolkit-ohjelmistoa varten (http://www.openssl.org).</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Riemullista ilmoittelua!</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html>м

Classified ads is free software. You may use, copy and modify it if you follow the conditions given in GNU lesser general public license version 2.1.

Classified ads is copyright ТЉ Antti JУЄrvinen 2013.

Main feature of the the program is an "advertisement" - a piece of text belonging to selected classification. There are several pre-programmed classifications and operators are encouraged to invent new classifications for new purposes ; the selection boxes in classification-selection tab are editable. Other operators may then view the ads, publicly comment the ads, the operators and also send private messages to each others.

Another important feature of classified ads is that it is designed to be operated without any centralized server infrastucture - it is you and other operators whose computers store and transmit all the content visible inside classified ads. To get connected you need to know address of at least one existing computer (a node) so if your network connection dialog shows no connections, you may need to contact someone you know is using the software and ask for address of her node to make initial contact with the network. Once connected the software should maintain list of addresses of other nodes.

Due to its server-less design the whole system works best if you leave the program running always when you have your computer powered on ; while processing other operators requests it will hog some computing resources and generate network traffic also when you are not actively using the program youself - others are.

Operators concerned about privacy of the content should be aware of following items:

- Data storage implementation is variant of distributed hash table, practically meaning that content posted by you gets copied some more-or-less random nodes in the network.

- Any data item (ad, comment, binary file, private message etc.) is digitally signed. This makes it more difficult to try to pose as another operator.

- Operators are reliably identified only by the SHA1 hash of their generated encryption keys. SHA1 hash is displayed when viewing details of operator profiles. Other identifying information like nickname or city name are entered by operator himself and can be anything. The operator profile, as it is published to the network, is also signed with the encryption keys of the operator - if you identify an operator by her SHA1 hash, you have a mechanism for identifying if any content inside classified ads is posted by this operator or not. Classified ads internally checks for digital signatures, throwing away content that fails signature check and tries to provide SHA1 hash of the operator who posted the content.

- All classified ads are posted as plain text, no encryption is used. All public profiles are posted as plain text, no encryption is used. If profile is made private, it is encrypted to be readable only by selected other profiles. This applies also to binary files shared by operators private profiles and comments about private profiles after the profile was made private (previously plain-text comments or files don't get magically encrypted afterwards). Private messages are encrypted always to be readable only by recipient and sender. Attachments follow the privary rules of the document, they're attachted to.

- As is the case with all internet-communications, this small fact is true for classified ads too : once something gets posted online, there is no way to remove it from network.

- Data encryption implementation for content is OpenSSL, relying mostly on algorithms RSA-2048 and AES-256.

- While connections between nodes are implemented using SSL, other nodes inside network do get to know what content is being transmitted in neighboring nodes. While there is no central point for easily collecting this information about particular classification or operator, operators still should expect no privacy regarding their doings online, although some effort has been been put into hiding contents of private messages and private profiles.

Programming was (mostly) done by Antti JУЄrvinen, artwork by Meeri JУЄrvinen.

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/).

Happy advertising!


 aboutDialogHTietoja luokitelluista ilmoituksistaAbout classified ads aboutDialog*LiitetiedostoluetteloList of attached filesattachmentListDialog <html><head/><body><p>Luottamuksen osoitus on profiilisi mukana julkaistava tieto, jonka profiilisi lukijat nфkevфt</p></body></html>n

Settings some trusted is public information to readers of your profile

editContactDialogBProfiilin osoitteen SHA1 tiivisteAddress (SHA1) of contacteditContactDialog2Muokkaa profiilin tietojaEdit a contacteditContactDialog*Paikallinen liikanimiLocal nicknameeditContactDialognTфmфn profiilin operaattoriin kelpaa julkisesti luottaa6This contact is to be publicly trusted in transactionseditContactDialog6 Klikkaa Lisфtфksesi Kuva Click to Add Image frontWidgetP<html><head/><body><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;">Ei</span></p><p align="center"><span style=" font-size:16pt;">Kuvaa</span></p><p align="center"><span style=" font-size:16pt;">Valittuna</span></p></body></html>Ї




No

Image

Inserted

 frontWidgetLisфф profiili Add contact frontWidget&Lisфф osoitekirjaanAdd to contacts frontWidgetBTC-osoiteBTC Addr frontWidget&BTC-lompakon osoite BTC address frontWidgetKaupunki/maa City/Country frontWidgetKaupunki/maa City/country frontWidget.Luokitellut ilmoituksetClassified ads frontWidgetKommenttiComment frontWidgetOsoitekirjaContacts frontWidget*Operaattorin profiiliDetails of operator profile: frontWidgetSukunimi Family name frontWidgetEtunimi First name frontWidget Koko maailmalle.For the rest of the world.  frontWidgetEtusivun lomakeForm frontWidgetTervehdysteksti Greeting text frontWidget–Jos meinaat saada maksuja bitcoinin kautta, julkaise myіs lompakkosi osoiteFIf you wish to receive payments via BTC, include your BTC address too. frontWidget,Viimeisimmфt kommentitLatest comments frontWidgetLVфhфn pidempi selitys maailman tilasta+Longer explanation about state of the world frontWidgetOma profiili My profile frontWidgetLiikanimiNickname frontWidgetFYksikффn kentistф ei ole pakollinenNone of the fields is mandatory frontWidgetSuoritaPerform frontWidget$Yksityiset viestitPrivate messages frontWidget Profiilin osoiteProfile address frontWidget0Profiilin yksityiskohdatProfile details frontWidget,Profiili on yksityinenProfile is private frontWidgetJulkaisePublish frontWidget"Profiilin lukijatReaders of profile frontWidgetPoista profiiliRemove contact frontWidget"Peruuta muutoksetRevert changes frontWidgetHakuSearch frontWidgetLEtsi luokiteltuja ilmoituksia aiheestaSearch for classified ads about frontWidgetLфhetф viesti Send message frontWidget8Lфhetф operaattorille viestiSend message to operator frontWidget Jaetut tiedostot Shared files frontWidgetMaailman tilaState of the world frontWidget>Edellisen pфivityksen ajankohtaTime of last update frontWidget"Katsele profiilia View profile frontWidgetLukijat View readers frontWidgetpaikassain frontWidgetkoskienof frontWidgetLisфф linkki Insert linkinsertLinkDialog>Linkin pффllepфin nфkyvф tekstiLink label in textinsertLinkDialogURLURLinsertLinkDialog.IPv4, IPV6 tai DNS-nimiIPv4, IPv6 or DNS namemanualConnectionDialog@Lisфф solmu yhteydenottolistalle%Manually add node to connection queuemanualConnectionDialogHSolmun vastaanotto-portti (TCP-port)Remote node listen portmanualConnectionDialog(Solmun verkko-osoiteRemote node network addressmanualConnectionDialogBSDBSD metadataQuery CC-BYCC-BY metadataQueryCC-BY-NCCC-BY-NC metadataQueryCC-BY-NC-ND CC-BY-NC-ND metadataQueryCC-BY-NC-SA CC-BY-NC-SA metadataQueryCC-BY-NDCC-BY-ND metadataQueryCC-BY-SACC-BY-SA metadataQueryKuvaus:Description of file: metadataQueryZSyіtф tiedoston ominaisuudet ennen julkaisua:0Enter information regarding file before publish: metadataQuery,Tiedoston ominaisuudetFile information metadataQueryGPLGPL metadataQueryLGPLLGPL metadataQuery2Kфyttіф koskeva lisenssi:License of use: metadataQueryMime-tyyppi: Mime-type: metadataQueryTiedoston nimi:Name of the file: metadataQuery&Tiedoston omistaja:,Owner of file (name or SHA1 if CA operator): metadataQueryPublic domain Public domain metadataQueryAiheestaAbout newCaDialog LisффAdd newCaDialog Liite: Attachment:  newCaDialog>Lфhetф uusi luokiteltu ilmoitusPost a new classified ad newCaDialogAiheSubject newCaDialogpaikassain newCaDialogkoskienof newCaDialog LiitфAttachnewPrivMsgDialogLiitteet: Attachments: newPrivMsgDialogVastaanottaja RecipientnewPrivMsgDialog0Lфhetф yksityinen viestiSend a private messagenewPrivMsgDialogAiheSubjectnewPrivMsgDialog LiitфAttachnewProfileCommentDialogLiitteet: Attachments:newProfileCommentDialog@Kommentoi operaattorin profiiliaComment a operators profilenewProfileCommentDialog(Kommentoitu profiiliCommented profilenewProfileCommentDialogAiheSubjectnewProfileCommentDialog LiitфAttachnewTextDocumentDialogLiitteet: Attachments:newTextDocumentDialogDokumentin aiheDocument titlenewTextDocumentDialogRMuokkaa ja julkaise uusi tekstidokumentti$Edit and publish a new text documentnewTextDocumentDialog<Kommentit koskien operaattoriaComments regarding operatorprofileCommentDisplayDLisфф valitut profiilin lukijoiksiAdd seleted to list of readersprofileReadersDialog SuljeCloseprofileReadersDialog2Lukijoiden nykyinen listaCurrent list of readersprofileReadersDialog.Ensimmфiset 100 osumaa:First 100 matching profiles:profileReadersDialog*Profiilin lukijalistaProfile readers listprofileReadersDialogPoista valitutRemove selectedprofileReadersDialog4Etsi lisфttфviф profiilejaSearch for profiles to addprofileReadersDialogVerkkohakuNetwork search searchDisplayHaeSearch searchDisplay$Etsi ilmoituksista Search ads searchDisplay"Etsi kommenteistaSearch comments searchDisplay(Etsi tietovarastostaSearch data storage searchDisplay"Etsi profiileistaSearch profiles searchDisplay SanojaWords: searchDisplay,Solmun nimipalvelunimiDNS name of nodesettingsDialogHTietokannan sisфllіn enimmфismффrфt:Data store limits:settingsDialogиJos solmullasi on pysyvф nimi nimipalvelussa, voit syіttфф sen tфhфn jotta muut solmut voivat siihen viitatagIf you have permanent DNS name for your machine, you may type it here to be used to reference your nodesettingsDialog˜Kuunteluportti. Tфmфn vaihtaminen edellyttфф ohjelman uudelleenkфynnistystф.8Incoming TCP listen port. Change requires node restart. settingsDialog Solmun asetukset Node settingssettingsDialog"Ilmoitusten mффrфNr of CAs to keepsettingsDialog0Binффritiedostojen mффrфNr of binary blobs to keepsettingsDialog6Yksityistien viestien mффrфNr of private messages to keepsettingsDialog"Kommenttien mффrфNr of profile comments to keepsettingsDialog>Talletettavien profiilien mффrфNr of profiles to keepsettingsDialog(Paikallisessa tietokannassa talletettavien ilmoitusten mффrф, koskien kaikkia luokitteluja. Viimeisimmфksi viitatut tullaan poistamaan ensimmфisenф.{Number of classified ads to keep in storage, total, including all classifications. Oldest referenced will be deleted first.settingsDialog$TCP-kuunteluporttiTCP listen portsettingsDialog SuljeClose statusDialog Avoimet yhteydetCurrently open connections statusDialog"Oma havaittu IPv4Detected own IPv4 statusDialogIPv6IPv6 statusDialog0Lisфф yhteys kфsipelillфManually add connection statusDialog2Verkon ja yhteyksien tilaNetwork and connection status statusDialogДJos ystфvфsi ei pффse verkon jфseneksi, yritф antaa hфnelle tфmф osoite porttinumeron keraRShould your friend have trouble connecting, give her this address with port number statusDialog2Kфytіssф oleva TCP-porttiTCP port currently used statusDialogˆclassified-ads-0.09/classified_ads_fi.ts000066400000000000000000005273001260620453500203120ustar00rootroot00000000000000 UTF-8 AttachmentListDialog Save file to disk.. Context menu item text for menu, that appears when right-mouse is clicked on top of a file in a list. Tallenna tiedostojУЄrjestelmУЄlle.. files In file open dialog this is text specifying what kind of files to include in listing, filtered by file name suffix. For example, user wants only PNG files, then text appearing in dialog filter field would say "PNG files (*.png)" and this work "files" here is the word after the word PNG. tiedostot Choose file name for saving Dialog title text for dialog asking user to give a name to file for purpose of saving it to filesystem. Valitse nimi tiedostolle Error Dialog title text for error dialog. Vikaa File open error This gives (no) explanation about reason for "file open failure"? Vika tiedoston avaamisessa BinaryFileListingModel Name or fingerprint of file Title text in a listing view where list of shared files are listed. This particular text gives text for column, where "name or fingerprint of file" is listed. Fingerprint in practice means SHA1 digest. Tiedoston nimi tai SHA1 tiiviste CAListingModel Date Header text for a column-list. The column that gets its header text from this string, is the date-column of an classified ad. Aika Subject Header text for a column-list. The column that gets its header text from this string, is the subject-column of an classified ad. Aihe ClassifiedAdsModel Buying Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Cars in Estonia" and this combobox text here is the first word of that phrase. Ostetaan Selling Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Cars in Estonia" and this combobox text here is the first word of that phrase. MyydУЄУЄn Giving away Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Giving away of Cars in Estonia" and this combobox text here is the first+2nd word of that phrase. Annetaan Wanting Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Wanting of Cars in Estonia" and this combobox text here is the first word of that phrase. Halutaan Renting Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Renting of Cars in Estonia" and this combobox text here is the first word of that phrase. Vuokrataan Announcement Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Cars in Estonia" and this combobox text here is the first word of that phrase. Ilmoitetaan Cars Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Cars in Estonia" and this combobox text here is the 3rd word of that phrase. Autoja Boats Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Boats in Estonia" and this combobox text here is the 3rd word of that phrase. VeneitУЄ Bikes Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Bikes in Estonia" and this combobox text here is the 3rd word of that phrase. PyУЖriУЄ Other vehicles Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Other vehicles in Estonia" and this combobox text here is the 3rd+4th word of that phrase. Muita ajoneuvoja Vehicle parts Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of vehicle parts in Estonia" and this combobox text here is the 3rd+4th word of that phrase. Ajoneuvon osia Habitation Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Habitation in Estonia" and this combobox text here is the 3rd word of that phrase. Asumuksia Household appliances Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Household appliances in Estonia" and this combobox text here is the 3rd+4th word of that phrase. Kodin tavaroita Furniture Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Furniture in Estonia" and this combobox text here is the 3rd word of that phrase. Huonekaluja Clothing Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Clothing in Estonia" and this combobox text here is the 3rd word of that phrase. Vaatteita Tools Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Tools in Estonia" and this combobox text here is the 3rd word of that phrase. TyУЖkaluja Sports Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Tools in Estonia" and this combobox text here is the 3rd word of that phrase. UrheiluvУЄlineitУЄ Music Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Music in Estonia" and this combobox text here is the 3rd word of that phrase. MusiikkivУЄlineitУЄ Books Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Books in Estonia" and this combobox text here is the 3rd word of that phrase. Kirjoja Movies Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Movies in Estonia" and this combobox text here is the 3rd word of that phrase. Elokuvia Animals Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Animals in Estonia" and this combobox text here is the 3rd word of that phrase. ElУЄimiУЄ Electronics Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Electronics in Estonia" and this combobox text here is the 3rd word of that phrase. SУЄhkУЖlaitteita Jobs Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Jobs in Estonia" and this combobox text here is the 3rd word of that phrase. TyУЖpaikkoja Transportation Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Wanting of Transportation in Estonia" and this combobox text here is the 3rd word of that phrase. Kuljetuksia Services Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Services in Estonia" and this combobox text here is the 3rd word of that phrase. Palveluita Healthcare Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Healthcare in Estonia" and this combobox text here is the 3rd word of that phrase. Terveydenhoitoa Foodstuff Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Foodstuff in Estonia" and this combobox text here is the 3rd word of that phrase. Ruokatarvikkeita Software Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Software in Estonia" and this combobox text here is the 3rd word of that phrase. Ohjelmistoja Events Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Events in Estonia" and this combobox text here is the 3rd word of that phrase. Tapahtumia Education Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Giving away of Education in Estonia" and this combobox text here is the 4th word of that phrase. Koulutusta Finance Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Finance in Estonia" and this combobox text here is the 3rd word of that phrase. Raha-asioita Jewelry Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Jewelry in Estonia" and this combobox text here is the 3rd word of that phrase. Koruja Religious rituals Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of religious rituals in Estonia" and this combobox text here is the 3rd+4th word of that phrase. Uskonnollisia toimituksia Philosophy Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Philosophy in Estonia" and this combobox text here is the 3rd word of that phrase. Filosofiaa Any country Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Philosophy in Any country" and this combobox text here is end part "Any country" specifying the location where announcement. MissУЄ maassa vain ConnectionListingModel Peer network address Tool tip text. When user hovers mouse cursor on top of network address field in a dialog, this text will appear. Solmun verkko-osoite Inbound connections are those where peer initiated connection Tool tip text. When user hovers mouse cursor on top of field specifying if connection is inbound/outbound this text will appear. SisУЄУЄntulevat yhteydet ovat sellaisia, missУЄ etУЄjУЄrjestelmУЄ aloitti yhteyden Data transferred from peer to your node Tool tip text. When user hovers mouse cursor on top of traffic-counter field in a dialog, this text will appear. Sinun tietokoneeseesi tУЄstУЄ solmusta siirretty tietomУЄУЄrУЄ Data transferred to peer from your node Tool tip text. When user hovers mouse cursor on top of traffic-counter field in a dialog, this text will appear. Sinun tietokoneestasi tУЄhУЄn verkon solmuun siirretty tietomУЄУЄrУЄ Time when connection was opened Tool tip text. When user hovers mouse cursor on top of time-field in a dialog, this text will appear. Yhteyden avaamisaika Address Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows network address (like IP-address) Verkko-osoite Inbound Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows direction (inbound/outbound) of the connection SisУЄУЄntuleva Bytes in Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows number of bytes transferred inside Oktettia sisУЄУЄn Bytes out Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows number of bytes transferred outside Oktettia ulos Open time Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows time when connection was opened. Avaamisaika ContactListingModel Yes Text in contact listing column view. This text appears in column telling if user is to be trusted or not and this value here denotes the positive case "user is trusted". Tosi on Unknown Text in contact listing column view. This text appears in column telling if user is to be trusted or not and this value here denotes the negative case "user trust is unknown". Tuntematon Actual network address (SHA1) of the contact Tool tip text. When user hovers mouse cursor on top of field where operators SHA1 digest is shown, this text appears. The field is part of contact listing view, where users frequent contacts are shown. Operaattorin varsinainen verkko-osoite (SHA1) Locally given nickname ; user may set her own nickname himself Tool tip text. When user hovers mouse cursor on top of field where operators locally given nickname is shown, this text appears. The field is part of contact listing view, where users frequent contacts are shown. Antamasi liikanimi; operaattori voi antaa itselleen eri liikanimen Public statement if this operator to be trusted in transactions Tool tip text. When user hovers mouse cursor on top of field where operators trustworthiness (boolean value) in users opinion is shown, this text appears. The field is part of contact listing view, where users frequent contacts are shown. Julkinen lausunto operaattorin luotettavuudesta asioiden hoitamisessa Address Column header text. Used in column view where operators frequent contacts are shown. This text gives title to column that shows operators network address (the SHA digest of operator) Osoite Nickname Column header text. Used in column view where operators frequent contacts are shown. This text gives title to column that shows operators nickname Liikanimi Publicly trusted Column header text. Used in column view where operators frequent contacts are shown. This text gives title to column that shows operators trustworthiness. Julkisesti luotettu ContentEncryptionModel SSL key generation went wrong, calling exit.. Error message that is displayed when SSL key generation failed. Text is displayed in a dialog, after user dismisses the dialog, whole application will exit. SSL-avaimen rakentaminen epУЄonnistui, pakko poistua.. x509 cert generation went wrong, calling exit.. Error message that is displayed when x509 certificate generation failed. Text is displayed in a dialog, after user dismisses the dialog, whole application will exit. x509-sertifikaatin rakentaminen epУЄonnistui, pakko poistua.. RSA Private key key saving went wrong Error message that is displayed when RSA private key could not be saved to database. This is rather fatal error, the operator profile that user tried to create will be un-usable. Salaisen RSA-avaimen tallettaminen epУЄonnistui No suitable de-cryption key found Error message text. This is displayed in situation where user tried to access content that he does not have encryption key for. This may appear frequently during normal operation and is no fatal error, only telling user that he is not going to see the content he was trying to access. Avaamiseen sopivaa salausavainta ei ole kУЄytettУЄvissУЄ Controller Classified ads Window title text for whole application. Luokitellut ilmoitukset Enter password for protection of your messages: Prompt text for password dialog Anna salasana viestiesi sisУЄllУЖn turvaamiseksi Fetching item from network.. Dialog text for a wait dialog (a progress-bar like thing will be shown next to this text and user is supposed to sit down and wait a moment..) Kaivellaan kohdetta verkon syУЖvereistУЄ.. E&xit Menu item text used in "File" menu item and when this particular item is selected, application will close Sulje Exit the application Menu item tooltip-text used in "File" menu entry and when this particular item is selected, application will close Sulje sovellus &About Menu item text used in "File" menu and when this particular item is selected, application will show a dialog telling why this application is and how to use it Tietoja Show the application's About box Tooltip-text of menu item text used in "File" menu and when this particular item is selected, application will show a dialog telling why this application is and how to use it EsitУЄ selvitys sovelluksen tarkoituksesta &Change password Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to change her password Vaihda salasana Change password of current profile Tooltip-item for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to change her password Valitse valitulle operaattori-profiilille uusi salasana Create &new profile Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password for a newly-created user profile Luo uusi profiili Makes a brand new user profile Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password for a newly-created user profile Luo operaattorille uuden profiilin &Delete current profile Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to confirm deletion of currently open operator profile Poista valittu profiili Deletes currently open profile Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to confirm deletion of currently open profile PysyvУЄsti poistaa tУЄmУЄnhetkisen valitun profiilin &Select another profile Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password of another profile that user will use next Valitse kУЄyttУЖУЖn toinen profiilii If you have multitude of profiles Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password of another profile that user will use next Jos olet luonnut useamman profiilin, voit tУЄstУЄ valita toisen Settings.. Menu item text used in "File" menu and when this particular item is selected, application will show a settings-dialog Asetukset.. Node-wide settings.. Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password of another profile that user will use next Solmun asetukset.. Network status.. Menu item text used in "File" menu and when this particular item is selected, application will show a dialog detailing network connectivity of the node Verkko-yhteydet.. Search.. Menu item text used in "File" menu and when this particular item is selected, application will show a search-dialog Etsi.. &File Menu bar title text for "File" menu. Tiedosto Enter new password: Password dialog prompt. Anna uusi salasana: Activate another profile with password Password dialog prompt. In this case the password dialog is not used for giving initial password or change password but instead password is typed for the reason of selection of another operator profile to be used. Valitse uusi profiili antamalla haluamasi profiilin salasana Can't delete only profile. Error message shown in dialog in situation where user tried to delete the last (one and only) operator profile in machine. There needs to be at least one profile and this error message is shown if user tries to get around that limitation. ViimeistУЄ jУЄljellУЄ olevaa profiilia ei voi poistaa. Permanently discard profile? Text shown in title of confirmation dialog. Poistetaanko profiili lopullisesti? There will be NO way to access content of this profile later Text shown inside a confirmation dialog. Dialog will have buttons OK and Cancel and this is the question. TУЄmУЄn profiilin viestejУЄ tai muuta sisУЄltУЖУЄ ei ole mahdollista nУЄhdУЄ enУЄУЄ Cant load node cert or key cert Error message that is shown in a dialog in situation where previously stored encryption keys of the node could not be accessed. Rather fatal error, will render node un-usable. Solmun salausavaimen tai sertifikaatin lataaminen ei onnistunut File error Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during a filesystem file operation. Actual explanation of the error is shown inside the dialog whose title text this is. TiedostokУЄsittelyyn liittyvУЄ virhe Database error Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during database operation. Actual explanation of the error is shown inside the dialog whose title text this is. Tietokantavirhe Cryptographic module Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during a operation inside crypto-module. Actual explanation of the error is shown inside the dialog whose title text this is. SalausjУЄrjestelmУЄn virhe Database module Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during operation inside database module. Actual explanation of the error is shown inside the dialog whose title text this is. Tietokannan vikatila Bad password Error message dialog title text for a dialog that is shown in a dialog in situation when password supplied by user was not good for any purpose. Actual explanation of the error is shown inside the dialog whose title text this is. Kelpaamaton salasana Could not find item from network.. Error message text inside a dialog when user had requested for an item to be opened but program could not find the requested item. Haluttua kohdetta ei verkosta lУЖytynyt.. SHA1: Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies SHA1 digest of the file. SHA1: Mime-Type: Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies mime-type of the file Mime-Tyyppi: Description: Text field explanation text. Part of "file details" dialog. This text gives explanation of field that gives longer explanation of the file Kuvaus: Publisher: Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies name of publisher of the file (in practice, who uploaded the file into classified ads) Julkaisija: Content owner: Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies name of the person (or organization) that owns (in copyright sense) the file or its contents. SisУЄllУЖn omistaja: License: Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies the license of the file Lisenssi: Name: Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies file name Nimi: Date: Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies file date PУЄivУЄmУЄУЄrУЄ: DialogBase File way too big Error message text shown inside dialog when user tries to select for operation a file that is much much too big. (there is currently 2MB size limit for shared files) Tiedosto on ihan liian iso File too big Error message text shown inside dialog when user tries to select for operation a file that is just-and-just too big. (there is currently 2MB size limit for shared files) Tiedosto on liian iso File open error Error message text shown inside dialog when user tries to select for operation a file that can not be opened (for example due to file permission reasons) Ongelma tiedoston avaamisessa Select file to be published Dialog title text. Dialog prompts user to select the filesystem file that will be published inside classified ads. Valitse julkaistava tiedosto Files (*.*) Text for file type filter field in file-selection-dialog Kaikki tiedostot (*.*) EditContactDialog Error Title text of error dialog. Vikaa Operator addr is not valid Contet text of error dialog. Shown after user has tried to enter operator address with intent of adding it to contact-list and the operator address fails format validation. Operaattorin osoite ei ole sopivaa muotoa FrontWidget Classified ads Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the first tab. Luokitellut ilmoitukset My profile Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the 2nd tab. Oma profiili Contacts Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the 3rd tab. Osoitekirja Private messages Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the 4th tab. Yksityiset viestit Add shared file.. Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, a dialog will appear asking which file to share LisУЄУЄ tiedosto jakoon Stop advertising selected shared file Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, the selected file in the listing view will no longer be shared Lakkaa mainostamasta valittua jaettua tiedostoa Save file to disk.. Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, the selected file in the listing view will be saved to filesystem Tallenna tiedosto tiedostojУЄrjestelmУЄlle View file information.. Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, information dialog about selected file will be shown Tarkastele tiedoston ominaisuuksia.. Copy file address (SHA1) to clipboard.. Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, SHA digest of the selected file will be copied to clipboard. Kopioi tiedoston osoite (SHA1) leikepУЖydУЄlle.. Edit+publish new text document.. Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, an editor will be displayed prompting user to enter text that will then be published for other users to see. Muokkaa ja julkaise uusi tekstidokumentti.. Open File Dialog title text for "file open" dialog Avaa tiedosto Files (*.*) Text for filter field of file selection dialog Kaikki tiedostot (*.*) Error Error dialog title text. Actual error message will be shown inside dialog whose title is this text. Vikaa.. Can't load image Error dialog content text. Shown when image file that user selected could not be opened (maybe because file permission problem or maybe image format issue or ..) Kuvan avaaminen ei onnistu Profile not in database Error dialog title text. This dialog is shown when user tries to comment another operator but required operator data is missing from local storage. Profiilia ei tietovarastosta lУЖydy Try viewing profile first to obtain data Error dialog content text. This dialog is shown when user tries to comment another operator but required operator data is missing from local storage. YritУЄ valita profiili katseltavaksi ensin, yritУЄ sitten uudelleen Select file to be published File selection title text. Prompts user to select a file for publish purpose. Valitse julkaistava tiedosto File way too big Error text shown in dialog. Shown in situation where user selected a file that really exceeds size limit (of 2MB) Tiedosto on aivan liian suuri File too big Error text shown in dialog. Shown in situation where user selected a file that slightly exceeds size limit (of 2MB) Tiedosto on liian suuri File open error Error text shown in dialog. Shown in situation where user selected a file that could for some reason not be opened Ongelma tiedoston avaamisessa files Part of filter text field in file selection dialog. If for instance user tries to open PNG files, then the text in filter field will be "PNG files (*.png)" and this word is the 2nd word in the phrase. kaikki tiedostot Choose file name for saving File selection dialog title text. Dialog prompts user to select location+name for an file to be exported into filesystem. Valitse nimi tallennettavalle tiedostolle Click To Add Image Text shown in placeholder for operators image in situation where user has not yet selected any image. In practice it prompts user to insert image by clicking at the text. Klikkaa LisУЄtУЄksesi Kuva Article not found from local storage Error message dialog content text shown when user tried to access article, that was not stored in local database Artikkelia ei paikallisesta tietokannasta lУЖydy Trusted by %1 SHA1 %2 Tool-tip text. Shown on top of operators address when user hovers mouse on top of the address field. The %1 will be replaced by nickname of an operator who trusts this particular operator. The %2 will be replaced by SHA1 digest of the operator who trusts the operator whose SHA1 is under mouse cursor. Johon luottaa %1 SHA1 %2 Time of last update Tool tip text. Shown when user howers mouse on top of operators nickname field. In code a date-string will be concatenated to this string, so in practice in the UI it will read "Time of last update 31 aug 2015" or similar. Viimeinen pУЄivitysajankohta (No Image Selected) Text for image placeholder, shown in situation where another operator has not selected any image for her.This text is shown place of the missing image. (Ei Kuvaa Valittuna) Edit contact.. Context menu item text. Context-menu is related to frequent-contacts column-view. Muokkaa profiilin tietoja &Reply to sender Push button text. Pushing the button will open an editor prompting user to edit+send a private message to operator who sent the classified ad currently on display Vastaa lУЄhettУЄjУЄlle Reply to &forum Push button text. Pushing the button will open an editor prompting user to edit+send a reply to classified ad currently on display Vastaa foorumille &Post new ad Push button text. Pushing the button will open an editor prompting user to edit+send a new classified ad. Uusi ilmoitus &Public comment Push button text. Pushing the button will open an editor prompting user to edit+send a public comment about operator who sent the classified ad currently on display Uusi kommentti &View profile Push button text. Pushing the button will switch to view detailing operator who sent the classified ad currently on display Katsele profiilia Attachments.. Push button text. Pushing the button will open a a listing of files that are attached to classified ad currently on display Liitetiedostot.. Add selected operator to contacts.. Push button text. Pushing the button will open an editor prompting user to add to her contact-list the operator who sent the classified ad currently on display LisУЄУЄ valittu operaattori osoitekirjaan.. &Reply Push button text. Pushing the button will open an editor prompting user to edit+send a private message to operator who sent the private message currently on display Vastaa &New message Push button text. Pushing the button will open an editor prompting user to edit+send a private message to some operator. Uusi viesti &Send public comment to sender Push button text. Pushing the button will open an editor prompting user to edit+send a public comment about operator who sent the private message currently on display EsitУЄ julkinen kommentti lУЄhettУЄjУЄstУЄ &View profile of peer Push button text. Pushing the button will open view that will show details of operator, who sent the private message currently on display. NУЄytУЄ viesti-osapuolen profiili Add selected to contacts.. Context menu item text. Appears in "message listing view" when user right-clicks on messages view. When selected, the operator who sent the message that is selected is added to contacts. LisУЄУЄ valittu osoitekirjaan From: Text field label. Label tells who sent particular classified ad. KeneltУЄ: Subject: Text field label. Label tells subject of classified ads. Aihe: To: Text field label. Label tells whom a private message was sent to. Kenelle: Invalid SHA1 in URL Error dialog content text. Shown in situation when user clicked on a link that contained SHA1 digest that was not valid. Viallinen SHA1-tiiviste URLissa Invalid URL Error dialog content text. Shown in situation when user clicked on a link that was not correctly formatted. Viallinen URL InsertLinkDialog Invalid URL Error dialog content text. Shown in situation when user entered a link that could not be parsed. VУЄУЄrУЄn mallinen URL ManualConnectionDialog DNS lookup failure Error dialog content text. Shown in situation when user tried to add connection to node whose name was not found via nameserver. NimeУЄ ei lУЖydy nimipalvelusta (DNS) NewPrivMessageDialog Error Error dialog title text. Actual error message will be shown inside the dialog. Vikaa Recipient addr is not valid Error dialog content text. Dialog is shown when user tries to send a message to operator, whose SHA1 digest (as entered by user) does not parse as SHA1 digest. Vastaanottajan osoite ei ole kelvollinen Recipient encryption key not found from storage Error dialog content text. Dialog is shown when user tries to send a message to operator, whose encryption keys are present in local storage. Vastaanottajan salausavainta ei paikallisesta tietokannasta lУЖydy NewProfileCommentDialog Error Error dialog title text. Actual error message will be shown inside the dialog. Vikaa Commented profile addr is not valid Error dialog content text. Dialog is shown when user tries to comment an operator, whose SHA1 digest (as entered by user) does not parse as SHA1 digest. Kommentoidun profiilin osoite ei ole kelvollinen Recipient encryption key not found from storage Error dialog content text. Dialog is shown when user tries to send a message to operator, whose encryption keys are present in local storage. Valitun profiilin salausavainta ei paikallisesta tietokannasta lУЖydy NodeModel SSL key generation went wrong, calling exit.. Error message text. Will be shown in error message dialog in case when initial SSL key generation of node did not succeed. After user dismisses the dialog, the application will close. SSL-avaimen luonti epУЄonnistui, poistutaan.. x509 cert generation went wrong, calling exit.. Error message text. Will be shown in error message dialog in case when initial encryption key generation of user did not succeed. After user dismisses the dialog, the application will close. x509-sertifikaatin luonti epУЄonnistui, poistutaan.. Cant load SSL cert Error message text. Will be shown in error message dialog in case when SSL certificate of the node could not be loaded from storage. After user dismisses the dialog, the application will close. SSL-sertifikaatin lataaminen ei onnistu Cant load SSL key Error message text. Will be shown in error message dialog in case when SSL key of the node could not be retrieved from local storage. After user dismisses the dialog, the application will close. SSL-avaimen lataaminen ei onnistu PasswdDialog Min length 5 (use 10+) Error message text. Shown in dialog when user tries to enter a password that is too short. VУЄhimmУЄispituus on 5 (kУЄytУЄ silti ainakin 10) PasswordDialog Password required Password dialog title text. Salasana on pakollinen Should you forget this word, there is no easy way to recover any of your content Tooltip text for password dialog. Shown when user hovers on top of password dialog. Unohdapa tУЄmУЄ salasana ja viestiesi lukemiseen vain ei ole olemassa mitУЄУЄn helppoa menetelmУЄУЄ Enter password for protection of your messages Prompt text for password dialog. Valitse salasana viestiesi turvaamiseksi If you forget this word, there is no simple way to recover your contents Tooltip text for password dialog. Shown when user hovers on top of password field Jos unohdat tУЄmУЄn sanan, viestiesi lukemiseksi ei ole olemassa mitУЄУЄn helppoa menetelmУЄУЄ OK Password dialog button text OK PrivateMessageSearchModel %1 Trusted by %2 Tooltip text. Shown when user hovers mouse cursor on top of message sender name. First %1 will be replaced with nickname of the operator whose message is hovered, %2 will be replaced by nickname of operator who has expressed positive trust towards the operator who sent the message. %1 johon luottaa %2 Direction of message, sent/received Tooltip text. Used in column view that lists private messages of operator. Explains the field that gives title to column that specifies direction (sent or received) of the message. Viestin suunta, lУЄhetetty/vastaanotettu Dir Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies direction (sent/received) of the message. Suunta Peer Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies messaging peer (another operator) of the message. Osapuoli Time Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies time of the message. Aika Subject Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies subject of the message. Aihe ProfileCommentDisplay &Add comment... Push button text. Clicking the button will open a dialog prompting user to add a new comment LisУЄУЄ kommentti Save attachment to disk.. Context menu item text. Context menu is shown when user right-clicks on file listing view. When this item is selected, a file selection dialog is opened. Tallenna liite tiedostojУЄrjestelmУЄlle.. Error Error dialog title text Vikaa Article not found from local storage Error dialog content text. Shown after user tried to access a profile comment and the comment could not be found Kommenttia ei paikallisesta tietokannasta lУЖydy ProfileCommentItemDelegate Attachments: Text field label text. The text field whose label this is will show number how many attachements there are in the comment. Liitteet: ProfileCommentListingModel Sender Column view column title text. The column view in question lists profile comments. This text gives title to column that tells who sent the comment. LУЄhettУЄjУЄ Time Column view column title text. The column view in question lists profile comments. This text gives title to column that tells when comment was sent. Aika Subject Column view column title text. The column view in question lists profile comments. This text gives title to column that tells subject of the comment. Aihe ProfileCommentModel Profile related to comment not found from database Error message text. Shown inside a dialog after user tried to send a comment to operator who had sent a comment and it turns out that necessary encryption keys of the commenting operator are not found and the replying comment can't be sent. Kommenttiin liittyvУЄn profiilin tietoja ei paikallisesta tietokannasta lУЖydy ProfileReadersDialog View profile Context menu item text. This context-menu is shown when user right-clicks list of operators that is shown in dialog that is made for listing operators (who are readers of another profile) Tarkastele profiilia ProfileReadersListingModel Name or fingerprint of reader Column view column title text. The column view lists readers (operators) of another profile. Lukijan nimi tai SHA1-tiiviste SearchDisplay Open.. Context menu item text. This context menu is shown when user right-clicks on top of search-results. This menu-item opens the currently-selected item from search results. Avaa.. TextEdit Help Menu title text. This is the help menu. Apua About &Qt Menu-item text used in "help" menu. Selecting this item opens "about" dialog about Qt library. Tietoja Qt:stУЄ Edit Actions Window title text for container-window containing actions. It seems to me that this text actually does not appear anywhere in the UI due to way, how container-windows are used. Muokkaa toimintoja &File Menu text. This gives text to "file" menu of a text editor. Tiedosto &Open... Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "open a filesystem file" Avaa.. &Save locally before send Menu item text inside menu in text editor. When selected, the text being edited will be saved into local filesystem file. Tallenna paikallisesti ennen lУЄhettУЄmistУЄ Save locally &As... Menu item text inside menu in text editor. When selected, the text being edited will be saved into local filesystem file and user will be queried for file name. Tallenna paikallisesti nimellУЄ.. &Print... Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "print" Tulosta.. Print Preview... Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "open print preview" Tulostuksen esikatselu.. &Export PDF... Menu-item text. Used in file-menu for triggering "export as pdf" operation Vie PDF-muodossa.. &Edit Menu text for "edit" menu of text editor. Muokkaa &Undo Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "undo" Peru &Redo Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "re-do" Tee uudelleen Cu&t Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "cut" (to clipboard) Leikkaa &Copy Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "copy to clipboard" Kopioi &Paste Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "paste from clipboard" LiitУЄ Insert link Menu item text inside text editor "edit" menu. After this menu-item is selected, a dialog is opened, prompting user to enter a link (URL) to be included in the text. LisУЄУЄ viite Embed image Menu-item text for embedding an image SisУЄllytУЄ kuva F&ormat Menu text. Gives name for a "format" menu inside a text editor. Muotoile &Bold Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle bold text style" Lihavoitu &Italic Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle italic text" Kursivoitu &Underline Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle underline" Alleviivattu &Left Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "left-justify" Tasattu vasemmalle C&enter Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle centered text" Keskitetty &Right Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "right-justify" Tasattu oikealle &Justify Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "justify both right+left" Tasattu molempiin laitoihin &Color... Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "color selection" VУЄri.. Standard Combobox item text. The combobox is used to select text style. The text style selected with this text is "standard" Normaalimuoto Bullet List (Disc) Combobox item text. The combobox is used to select text style. The text style selected with this text is "bullet list (disc)" Pisteellinen lista (palloilla) Bullet List (Circle) Combobox item text. The combobox is used to select text style. The text style selected with this text is "bullet list (circle)" Pisteellinen lista (ympyrУЖillУЄ) Bullet List (Square) Combobox item text. The combobox is used to select text style. The text style selected with this text is "bullet list (square)" Pisteellinen lista (laatikoilla) Ordered List (Decimal) Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (decimal)" Numeroitu lista (desimaaliluvuin) Ordered List (Alpha lower) Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (alpha lower)" Numeroitu lista (pienin kirjaimin) Ordered List (Alpha upper) Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (alpha upper)" Numeroitu lista (suurin kirjaimin) Ordered List (Roman lower) Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (roman lower)" Numeroitu lista (pienin roomalaisin) Ordered List (Roman upper) Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (roman upper)" Numeroitu lista (suurilla roomalaisilla) Application Warning dialog title text. This dialog is shown if user tries to exit without saving her text. Tekstimuokkain The document has been modified. Do you want to save your changes? Warning dialog title content text. Text asks what to do with modifications. The dialog has buttons Save,Discard and Cancel and this text is the question. Tiedostoa on muutettu, haluatko tallettaa muutokset? Open File... File selection dialog title text. Dialog will prompt user to select a document for opening. Avaa tiedosto.. HTML-Files (*.htm *.html);;All Files (*) Text for file selection filter field to be used inside file selection dialog. There are 2 parts, separated by ";;" and those semicolons must be left in place. Also the filter parts like (*.htm) must not be edited. The explanations like "HTML-Files" may be edited. HTML-Tiedostot (*.htm *.html);;Kaikki tiedostot (*) Save as... File selection dialog title text. Dialog in question prompts user to select name for file to be persisted. Tallenna nimellУЄ.. ODF files (*.odt);;HTML-Files (*.htm *.html);;All Files (*) Text for file selection filter field to be used inside file selection dialog. There are 3 parts, separated by ";;" and those semicolons must be left in place. Also the filter parts like (*.odt) must not be edited. The explanations like "ODF-files" may be edited. ODF Tiedostot (*.odt);;HTML-Tiedostot (*.htm *.html);;Kaikki tiedostot (*) Print Document Dialog title text. The dialog is printer dialog asking user how to print the text currently in editor. Tulosta dokumentti Open File File selection dialog title text. Dialog will prompt user to select a document for opening. Avaa tiedosto Files (*.*) Text for file selection filter field to be used inside file selection dialog. The filter parts like (*.odt) must not be edited. The explanations like "Files" may be edited. Kaikki tiedostot (*.*) Error Error dialog title text. Tapahtui virhe Can't load image Error dialog content text. Kuvan avaaminen ei onnistu File way too big Error message displayed inside error dialog after user tried to select for operation a file whose size greatly exceeds file size limit. Tiedosto on aivan liian suuri aboutDialog About classified ads Dialog title text for "about" dialog. Tietoja luokitelluista ilmoituksista Classified ads is a program for online communications 1st line of text inside "about" dialog, placed next to the turle logo. This text is then followed by longer explanation detail why this program is and how. This is kind of title for the longer explanation. Luokitellut ilmoitukset on viestintУЄУЄn tarkoitettu tietokoneohjelma <html><head/><body><p>Classified ads is free software. You may use, copy and modify it if you follow the conditions given in GNU lesser general public license version 2.1.</p><p>Classified ads is copyright ТЉ Antti JУЄrvinen 2013. </p><p>Main feature of the the program is an &quot;advertisement&quot; - a piece of text belonging to selected classification. There are several pre-programmed classifications and operators are encouraged to invent new classifications for new purposes ; the selection boxes in classification-selection tab are editable. Other operators may then view the ads, publicly comment the ads, the operators and also send private messages to each others. </p><p>Another important feature of classified ads is that it is designed to be operated without any centralized server infrastucture - it is you and other operators whose computers store and transmit all the content visible inside classified ads. To get connected you need to know address of at least one existing computer (a <span style=" font-style:italic;">node</span>) so if your network connection dialog shows no connections, you may need to contact someone you know is using the software and ask for address of her node to make initial contact with the network. Once connected the software should maintain list of addresses of other nodes. </p><p>Due to its server-less design the whole system works best if you leave the program running always when you have your computer powered on ; while processing other operators requests it will hog some computing resources and generate network traffic also when you are not actively using the program youself - others are. </p><p>Operators concerned about privacy of the content should be aware of following items:</p><p>- Data storage implementation is variant of <span style=" font-style:italic;">distributed hash table</span>, practically meaning that content posted by you gets copied some more-or-less random nodes in the network. </p><p>- Any data item (ad, comment, binary file, private message etc.) is digitally signed. This makes it more difficult to try to pose as another operator. </p><p>- Operators are reliably identified only by the SHA1 hash of their generated encryption keys. SHA1 hash is displayed when viewing details of operator profiles. Other identifying information like nickname or city name are entered by operator himself and can be anything. The operator profile, as it is published to the network, is also signed with the encryption keys of the operator - if you identify an operator by her SHA1 hash, you have a mechanism for identifying if any content inside classified ads is posted by this operator or not. Classified ads internally checks for digital signatures, throwing away content that fails signature check and tries to provide SHA1 hash of the operator who posted the content.</p><p>- All classified ads are posted as plain text, no encryption is used. All public profiles are posted as plain text, no encryption is used. If profile is made private, it is encrypted to be readable only by selected other profiles. This applies also to binary files shared by operators private profiles and comments about private profiles after the profile was made private (previously plain-text comments or files don't get magically encrypted afterwards). Private messages are encrypted always to be readable only by recipient and sender. Attachments follow the privary rules of the document, they're attachted to. </p><p>- As is the case with all internet-communications, this small fact is true for classified ads too : <span style=" font-style:italic;">once something gets posted online, there is no way to remove it from network</span>. </p><p>- Data encryption implementation for content is OpenSSL, relying mostly on algorithms RSA-2048 and AES-256. </p><p>- While connections between nodes are implemented using SSL, other nodes inside network do get to know what content is being transmitted in neighboring nodes. While there is no central point for easily collecting this information about particular classification or operator, operators still should expect no privacy regarding their doings online, although some effort has been been put into hiding <span style=" font-style:italic;">contents</span> of private messages and private profiles. </p><p>Programming was (mostly) done by Antti JУЄrvinen, artwork by Meeri JУЄrvinen.</p><p>This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/).</p><p>Happy advertising!</p><p><br/></p></body></html> <html><head/><body><p>Classified ads is free software. You may use, copy and modify it if you follow the conditions given in GNU lesser general public license version 2.1.</p><p>Classified ads is copyright ТЉ Antti JУЄrvinen 2013. </p><p>Main feature of the the program is an &quot;advertisement&quot; - a piece of text belonging to selected classification. There are several pre-programmed classifications and operators are encouraged to invent new classifications for new purposes ; the selection boxes in classification-selection tab are editable. Other operators may then view the ads, publicly comment the ads, the operators and also send private messages to each others. </p><p>Another important feature of classified ads is that it is designed to be operated without any centralized server infrastucture - it is you and other operators whose computers store and transmit all the content visible inside classified ads. To get connected you need to know address of at least one existing computer (a <span style=" font-style:italic;">node</span>) so if your network connection dialog shows no connections, you may need to contact someone you know is using the software and ask for address of her node to make initial contact with the network. Once connected the software should maintain list of addresses of other nodes. </p><p>Due to its server-less design the whole system works best if you leave the program running always when you have your computer powered on ; while processing other operators requests it will hog some computing resources and generate network traffic also when you are not actively using the program youself - others are. </p><p>Operators concerned about privacy of the content should be aware of following items:</p><p>- Data storage implementation is variant of <span style=" font-style:italic;">distributed hash table</span>, practically meaning that content posted by you gets copied some more-or-less random nodes in the network. </p><p>- Any data item (ad, comment, binary file, private message etc.) is digitally signed. This makes it more difficult to try to pose as another operator. </p><p>- Operators are reliably identified only by the SHA1 hash of their generated encryption keys. SHA1 hash is displayed when viewing details of operator profiles. Other identifying information like nickname or city name are entered by operator himself and can be anything. The operator profile, as it is published to the network, is also signed with the encryption keys of the operator - if you identify an operator by her SHA1 hash, you have a mechanism for identifying if any content inside classified ads is posted by this operator or not. Classified ads internally checks for digital signatures, throwing away content that fails signature check and tries to provide SHA1 hash of the operator who posted the content.</p><p>- All classified ads are posted as plain text, no encryption is used. All public profiles are posted as plain text, no encryption is used. If profile is made private, it is encrypted to be readable only by selected other profiles. This applies also to binary files shared by operators private profiles and comments about private profiles after the profile was made private (previously plain-text comments or files don't get magically encrypted afterwards). Private messages are encrypted always to be readable only by recipient and sender. Attachments follow the privary rules of the document, they're attachted to. </p><p>- As is the case with all internet-communications, this small fact is true for classified ads too : <span style=" font-style:italic;">once something gets posted online, there is no way to remove it from network</span>. </p><p>- Data encryption implementation for content is OpenSSL, relying mostly on algorithms RSA-2048 and AES-256. </p><p>- While connections between nodes are implemented using SSL, other nodes inside network do get to know what content is being transmitted in neighboring nodes. While there is no central point for easily collecting this information about particular classification or operator, operators still should expect no privacy regarding their doings online, altough some effort has been been put into hiding <span style=" font-style:italic;">contents</span> of private messages and private profiles. </p><p>Programming was (mostly) done by Antti JУЄrvinen, artwork by Meeri JУЄrvinen.</p><p>This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/).</p><p>Happy advertising!</p><p><br/></p></body></html> The long explanation of classified ads inside about-dialog. Note that this text must be valid html. Needs to start with <html> and end with </html> etc. This is easiest to edit like this: copy-paste the content in to a file, say /tmp/about.html. Then either open your favourite html-editor or open classified ads. In classified ads you can start constructing an ad, select from file-menu "open.." and select this file ;do editing and save from file-menu. The saved file is immediately in correct format to be be copy-pasted into contents of this field. <html><head><meta name="qrichtext" content="1" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Luokitellut ilmoitukset on vapaasti kУЄytettУЄvУЄ ohjelmisto. Voi kУЄyttУЄУЄ, kopioida ja muokata sitУЄ noudattaen LGPL-lisenssin (GNU Lesser General Public License 2.1) ehtoja.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">TУЄmУЄn ohjelman kopiointioikeudet omistaa Antti JУЄrvinen, vuodesta 2013. </p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ohjelman keskeinen ominaisuus on &quot;ilmoitus&quot; - teksti, joka kuuluu johonkin luokitteluun. Ohjelma sisУЄltУЄУЄ joukon valmiita luokitteluita ja kУЄyttУЄjiУЄ rohkaistaan keksimУЄУЄn uusia ; luokittelu-valintoihin &quot;ilmoitukset&quot;-vУЄlilehdellУЄ voi kirjoittaa mitУЄ hyvУЄnsУЄ. Muut kУЄyttУЄjУЄt voivat katsella ilmoituksia, julkisesti kommentoida ilmoituksia ja lУЄhettУЄУЄ viestejУЄ toisilleen.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ohjelman toinen keskeinen ominaisuus on, ettei se kУЄytУЄ keskitettyУЄ tietovarastoa millУЄУЄn verkkopalvelimella - yksittУЄisten kУЄyttУЄjien tietokoneet, joilta ohjelmistoa kУЄytetУЄУЄn tallettavat ja vУЄlittУЄvУЄt kaiken ohjelman sisУЄllУЄ esitettУЄvУЄn sisУЄllУЖn. LiittyУЄksesi tУЄhУЄn verkkoon sinun on tiedettУЄvУЄ ainakin yhden sellaisen tietokoneen (solmun) verkko-osoite, jossa jo valmiiksi kУЄytetУЄУЄn luokiteltuja ilmoituksia. MikУЄli tilanne on sellainen, ettУЄ &quot;verkon tila&quot; -dialogi nУЄyttУЄУЄ 0 avointa yhteyttУЄ, sinun on kysyttУЄvУЄ joltain ystУЄvУЄltУЄsi hУЄnen solmunsa verkko-osoite ja syУЖtettУЄvУЄ se ohjelmaan saadaksesi yhteyden luokiteltujen ilmoitusten verkkoon. Kun ohjelma on kerran liitetty verkkoon, se pyrkii itse yllУЄpitУЄmУЄУЄn listan verkon muista koneista.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Johtuen suunnitelusta, johon verkkopalvelimet eivУЄt kuulu tУЄmУЄ jУЄrjestelmУЄ toimii parhaiten, jos jУЄtУЄt tУЄmУЄn ohjelman pУЄУЄlle myУЖs silloin, kun et itse aktiivisesti kУЄytУЄ jУЄrjestelmУЄУЄ. Ohjelma vie jonkin verran tietojenkУЄsittelykapasiteettia koneeltasi ja aiheuttaa verkkoliikennettУЄ myУЖs silloin kun et itse ohjelmaa kУЄytУЄ - mutta muut kУЄyttУЄjУЄt kУЄyttУЄvУЄt. </p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">YksityisyydestУЄУЄn huolestuneet kУЄyttУЄjУЄt huomatkoot seuraavat seikat:</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Tietovarasto on toteutettu hajautettuna tiivistetaulukkona (distributed hash table DHT), mikУЄ kУЄytУЄnnУЖssУЄ tarkoittaa ettУЄ verkkoon postitetut ilmoitukset ja muu sisУЄltУЖ pУЄУЄtyvУЄt enemmУЄn tai vУЄhemmУЄn satunnaisille verkon solmuille sУЄilytettУЄvУЄksi, DHT-algoritmin mukaisesti.</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Kaikki verkon tallettamat tietoalkiot (ilmoitukset, kommentit, tiedostot, yksityiset viestit jne.) ovat digitaalisesti allekirjoitettuja. TУЄstУЄ syystУЄ on hankalaa pyrkiУЄ esiintymУЄУЄn eri operaattorina kuin oikeasti on. </p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Operaattorin ainoa luotettava tunniste on hУЄnen salausavaimensa SHA1-tiiviste. SHA1-tiiviste on nУЄhtУЄvillУЄ operaattorin tiedot esittУЄvУЄllУЄ vУЄlilehdellУЄ. Muut tiedot kuten liikanimi tai kaupungin nimi ovat operaattorin syУЖtettУЄvissУЄ ja luonnollisesti voivat olla ihan mitУЄ tahansa. Operaattorin profiilin tiedot verkkoon julkaistuna ovat myУЖs allekirjoitetut, kУЄyttУЄen operaattorin salausavainta - mikУЄli haluat kohtuullisella luotettavuudella tietУЄУЄ onko joku verkon sisУЄltУЖ tietyn operaattorin julkaisemaa vai ei, tУЄmУЄ tapahtuu tarkastamalla lУЄhettУЄjУЄn SHA1-tiiviste. Luokitellut ilmoitukset tarkastaa saapuvien tietoalkioiden allekirjoitukset ja jУЄttУЄУЄ tallettamatta sisУЄllУЖt, joiden allekirjoitus ei vastaa sisУЄltУЖУЄ. </p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Kaikki luokitellut ilmoitukset julkaistaan ilman salausta ja ovat kaikkien luettavissa. Kaikki julkiset profiilit julkaistaan ilman salausta, ja ovat kaikkien luettavissa. MikУЄli profiili merkitУЄУЄn yksityiseksi, se salataan siten, ettУЄ lueteltujen operaattoreiden salausavainta kУЄyttУЄen profiilin tiedot ovat luettavissa. TУЄmУЄ pУЄtee myУЖs profiiliin liittyviin kommentteihin ja jaettuihin tiedostoihin. Muutos ei ole takautuva, eli jos profiili on aiemmin ollut julkinen, sen kommentit ja tiedostot eivУЄt automaattisesti muutu salatuiksi kun profiili muutetaan yksityiseksi. Yksityiset viestit kuljetetaan aina salattuna. Liitetiedostot noudattavat sen dokumentin yksityisyyssУЄУЄntУЖjУЄ, mihin ne on liitetty.</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Kuten kaiken internet-viestinnУЄn kanssa tosi on, myУЖs tУЄmУЄ pУЄtee: jos jotain sisУЄltУЖУЄ verkkoon lУЄhetetУЄУЄn, <span style=" font-style:italic;">ei ole olemassa keinoa pysyvУЄsti sitУЄ poistaa.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Salaustoteutus on OpenSSL, useimmin kУЄytetyt algoritmit ovat RSA-2048 ja AES-256.</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Solmujen vУЄlinen liikenne kulkee SSL-socketissa eli tietoliikenteen seuraaminen verkon ulkopuolelta on haastavaa. VierekkУЄiset solmut kuitenkin nУЄkevУЄt toistensa tietoliikenteenteen sisУЄllУЖn. Vaikka tietoliikenteen sisУЄltУЖjen kerУЄУЄmiseen ei ole helppoa yksittУЄistУЄ paikkaa, operaattorien on silti turha odottaa yksityisyyttУЄ koskien tekemisiУЄУЄn verkossa vaikka jonkin verran vaivaa yksityisten viestien <span style=" font-style:italic;">sisУЄltУЖjen</span> suojaamiseksi onkin nУЄhty. </p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">OhjelmointityУЖn on enimmУЄkseen tehnyt Antti JУЄrvinen, taideteokset Meeri JУЄrvinen.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">TУЄmУЄ tuote sisУЄltУЄУЄ OpenSSL-projektin kehittУЄmУЄn ohjelmiston, joka on alunperin tarkoitettu OpenSSL Toolkit-ohjelmistoa varten (http://www.openssl.org).</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Riemullista ilmoittelua!</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> attachmentListDialog List of attached files Dialog title text. Dialog in question produces list of file attachments. Liitetiedostoluettelo editContactDialog Edit a contact Dialog title text. Purpose of the dialog is to let user change properties of a frequent contact in contact-list. Muokkaa profiilin tietoja Address (SHA1) of contact Text field label in contact-editing dialog. This gives label for field that shows SHA1 fingerprint of the operator whose data is being edited Profiilin osoitteen SHA1 tiiviste Local nickname Text field label in contact-editing dialog. This gives label for field that shows nickname of the operator whose data is being edited Paikallinen liikanimi <html><head/><body><p>Settings some trusted is public information to readers of your profile</p></body></html> Tooltip text of a checkbox label in contact-editing dialog. The checkbox is one that controls statement of trustworthniness of the operator whose data is being edited. Note html format. <html><head/><body><p>Luottamuksen osoitus on profiilisi mukana julkaistava tieto, jonka profiilisi lukijat nУЄkevУЄt</p></body></html> This contact is to be publicly trusted in transactions Label of a checkbox in contact-editing dialog. The checkbox is one that controls statement of trustworthniness of the operator whose data is being edited. TУЄmУЄn profiilin operaattoriin kelpaa julkisesti luottaa frontWidget Form Name of front widget. Wild guess is that this text actually does not appear anywhere in the UI. Etusivun lomake Classified ads Tab title text in front widget. When user clicks in this tab, the view is switched to one, that lists classified ads. Luokitellut ilmoitukset Search for classified ads about Prompt text next "search" button. User is supposed to enter search criteria for classified ads and then click "search" ; this is prompt text for this behaviour. Etsi luokiteltuja ilmoituksia aiheesta Perform Prompt text very next to "search" button. After user has clicked the button, he is supposed to be viewing list of classified ads matching the search criteria. Suorita of This part of search-criteria phrase. Normally the phrase reads something like "Buying of cars in finland" and this word is the 2nd word in that phrase. koskien in This part of search-criteria phrase. Normally the phrase reads something like "Buying of cars in finland" and this word is the 4th word in that phrase. paikassa Search Button text for button used to search for classified ads. This button has text "perform" just next to it so user sees actually 2 words "perform search" where the "perform" is in separate label above the button, and then is the text of this button. Haku My profile Tab title text in front widget for tab that shows details of operators own profile (==personal details) Oma profiili Profile address Text field label in "operators profile" tab. The field in questions shows SHA1-digest e.g. the real address of the operator. Profiilin osoite Nickname Text field label in "operators profile" tab. The field in questions shows nickname of the operator Liikanimi Greeting text Text field label in "operators profile" tab. The field in questions shows "hello world" text of the operator. Tervehdysteksti For the rest of the world. Tooltip-text of a text field in "operators profile" tab. The field in questions shows greeting text of the operator. Koko maailmalle. First name Text field label in "operators profile" tab. The field in questions shows given name (first name) of the operator. Etunimi Family name Text field label in "operators profile" tab. The field in questions shows family name of the operator Sukunimi City/country Text field label in "operators profile" tab. The field in questions shows place of residence of the operator Kaupunki/maa BTC address Text field label in "operators profile" tab. The field in questions shows address of bitcoin wallet of the operator. BTC-lompakon osoite If you wish to receive payments via BTC, include your BTC address too. Tooltip-text for a text field "operators profile" tab. The field in questions shows address of bitcoin wallet of the operator. Jos meinaat saada maksuja bitcoinin kautta, julkaise myУЖs lompakkosi osoite State of the world Text field label in "operators profile" tab. The field in questions shows what the user has to say about state of the world. Maailman tila Longer explanation about state of the world Tool-tip text of a field in "operators profile" tab. The field in questions shows what operator has to say about state of the world. VУЄhУЄn pidempi selitys maailman tilasta Profile is private Checkbox text in "my profile" tab. The checkbox is question is a toggle for public/private status of the profile. When checkbox is checked, the profile will be made private. Profiili on yksityinen Readers of profile Button text inside "My profile" tab. Clicking the button opens a dialog that prompts user to select list of operators that can read his profile that he has previously marked as private (e.g. accessible only to listed readers) Profiilin lukijat None of the fields is mandatory Explanation text inside "my profile" tab. YksikУЄУЄn kentistУЄ ei ole pakollinen Time of last update Text field label inside "my profile" tab. The field whose label this is shows the time when profile was last updated. Edellisen pУЄivityksen ajankohta Publish Button text for button inside "my profile" tab. By clicking this button user makes her edits known to rest of the world. Julkaise Revert changes Button text for button inside "my profile" tab. By clicking this button user discards her edits. Peruuta muutokset Details of operator profile: Text label on top of "my profile" tab. Below this label is a list of text fields and other stuff that user may edit regarding herself. Operaattorin profiili Click to Add Image Text in image-placeholder inside "my profile" tab. When user has not selected any image for her profile details, this text is shown in place of the image. Clicking on text gives user option to select the image file for profile. Klikkaa LisУЄtУЄksesi Kuva Shared files Title text inside "my profile" tab. Title text is for a list of files that user is currently sharing with other users. Jaetut tiedostot Latest comments Title text inside "my profile" tab. Title text is for a list of comments made by other users regarding operators profile. ViimeisimmУЄt kommentit Contacts Tab title text. When this tab is opened, user is shown a view of his frequent contacts. Osoitekirja Add contact Button text inside "contacts" tab. Clicking this button opens a dialog prompting user to enter details of operator to be added into contact list LisУЄУЄ profiili Remove contact Button text inside "contacts" tab. Clicking this button removes a contact from list. Poista profiili View profile Button text inside "contacts" tab. Clicking this button displays details of the selected contact. Katsele profiilia Send message Button text inside "contacts" tab. Clicking this button opens a dialog prompting user to send a message selected contact. LУЄhetУЄ viesti Private messages Tab text in front widget. When user selects this tab, he is presented with list of his private correspondence. Yksityiset viestit Profile details Tab text in front widget. This tab shows details of some other operator of classified ads. Normally this text is replaced with nickname of the operator but if nothing like this is available, this text may be shown, this is the "default text". Profiilin yksityiskohdat City/Country Label text of a text-field. The text-field in question shows place of residence of operator whose details are on display. Kaupunki/maa BTC Addr Label text of a text-field. The text-field in question shows bitcoin wallet address of operator whose details are on display. BTC-osoite <html><head/><body><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;">No</span></p><p align="center"><span style=" font-size:16pt;">Image</span></p><p align="center"><span style=" font-size:16pt;">Inserted</span></p></body></html> Text for image-placeholder inside "profile details" tab. When some particular operator has not selected any image for her profile, this text is shown in place of the image. Note html format. <html><head/><body><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;">Ei</span></p><p align="center"><span style=" font-size:16pt;">Kuvaa</span></p><p align="center"><span style=" font-size:16pt;">Valittuna</span></p></body></html> Send message to operator Button text inside "defails of operator profile" tab. When the button is clicked, a new-message editor is opened. LУЄhetУЄ operaattorille viesti View readers Button text inside "defails of operator profile" tab. When the button is clicked, dialog listing readers of the (private) profile. Lukijat Comment Button text inside "defails of operator profile" tab. When the button is clicked, a dialog is opened, dialog prompts user to enter a comment about the operator. Kommentti Add to contacts Button text inside "defails of operator profile" tab. When the button is clicked, the operator whose data is on display is added into contact-list. LisУЄУЄ osoitekirjaan insertLinkDialog Insert link Dialog title text. Dialog is for adding a link to text being edited. LisУЄУЄ linkki URL Label for a combobox-field inside "insert link" dialog. Next to this label is set of fields that together make up a valid URL to be inserted. URL Link label in text Label for a text-field inside "insert link" dialog. Next to this label is field where user is supposed the text that will be shown as the link. Consider <a href="url">the text</> then "the text" is text that user is prompted to enter with this label. Linkin pУЄУЄllepУЄin nУЄkyvУЄ teksti manualConnectionDialog Manually add node to connection queue Dialog title text. Dialog prompts user to manually add a network-connection to another node in the network. LisУЄУЄ solmu yhteydenottolistalle Remote node listen port Label text of numeric field. The numeric (input) field is TCP port of the remote node that will be connected. Solmun vastaanotto-portti (TCP-port) Remote node network address Label for text field inside "manually add connection" dialog. Text field whose label this is requires user to type in network address (ip addr or dns name) of the remote node. Solmun verkko-osoite IPv4, IPv6 or DNS name Tooltip text for a text field inside "manually add connection" dialog. The text field whose tooltip this is the remote network address input field. IPv4, IPV6 tai DNS-nimi metadataQuery File information Dialog title text for dialog that requires user to enter information about file to be shared with others. Metadata query dialog in practice. Tiedoston ominaisuudet Name of the file: Label text for a input field. The input field whose label this is asks for file name (filesystem file name) Tiedoston nimi: Owner of file (name or SHA1 if CA operator): Label text for a input field. The input field whose label this is asks for owner of the file contents. This may be copyright holder, depending on contracts and legislation followed. Tiedoston omistaja: License of use: Label text for a input field. The input field whose label this is asks for license under which the file may be used. Combobox lists some pre-filled options like GPL,BSD,CC-BY etc. but user may also enter any text into field. KУЄyttУЖУЄ koskeva lisenssi: Public domain Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated Public domain GPL Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated GPL LGPL Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated LGPL BSD Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated BSD CC-BY Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated CC-BY CC-BY-SA Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated CC-BY-SA CC-BY-ND Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated CC-BY-ND CC-BY-NC Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated CC-BY-NC CC-BY-NC-SA Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated CC-BY-NC-SA CC-BY-NC-ND Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated CC-BY-NC-ND Mime-type: Label text for a input field. The input field whose label this is asks for mime-type of the field about to be published. Mime-tyyppi: Description of file: Label text for a input field. The input field whose label this is asks for descriptive text about file about to be published. Kuvaus: Enter information regarding file before publish: Prompt text on top of "metadata query" dialog. Below this label is set of input-fields that make up the meta-data of a file to be published. SyУЖtУЄ tiedoston ominaisuudet ennen julkaisua: newCaDialog Post a new classified ad Dialog title text for a dialog that offers possibility to post a new classified ad for others to read. LУЄhetУЄ uusi luokiteltu ilmoitus About This label text is part of sentence, whole sentence goes for example "About buying of cars in sweden" where the words "bying", "cars", and "sweden" are combo-boxes that user may choose from ; this word here is the first word in that sentece. Aiheesta of This label text is part of sentence, whole sentence goes for example "About buying of cars in sweden" where the words "bying", "cars", and "sweden" are combo-boxes that user may choose from ; this word here is the 3rd word in that sentece. koskien in This label text is part of sentence, whole sentence goes for example "About buying of cars in sweden" where the words "bying", "cars", and "sweden" are combo-boxes that user may choose from ; this word here is the 5th word in that sentece. paikassa Subject Label text of a text field inside "post a new classified ad" dialog. The input field whose label this is, requires user to enter a subject (topic) for her posting. Aihe Attachment: Label text of a text field inside "post a new classified ad" dialog. The input field whose label this is, will show name file that is attached to the post. Liite: Add Push-button text inside "post a new classified ad" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. LisУЄУЄ newPrivMsgDialog Send a private message Dialog title text for dialog that prompts user to edit+send a private message to another operator LУЄhetУЄ yksityinen viesti Subject Text field label for input field inside "compose a new private message dialog". The text field in question is "subject" or "topic" field of the message. Aihe Recipient Text field label for input field inside "compose a new private message dialog". The text field in question is SHA1 address of the recipient. Vastaanottaja Attachments: Label text of a text field inside "compose a new private message" dialog. The input field whose label this is, will show name file that is attached to the post. Liitteet: Attach Push-button text inside "compose a new private message" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. LiitУЄ newProfileCommentDialog Comment a operators profile Dialog title text for dialog that prompts user to edit+send a comment regarding another operator. Kommentoi operaattorin profiilia Subject Text field label for input field inside "compose a comment about operator dialog". The text field in question is "subject" or "topic" field of the comment. Aihe Commented profile Text field label for input field inside "compose a comment about operator dialog". The text field in question is SHA1 digest (address) of the operator being commented. Kommentoitu profiili Attachments: Label text of a text field inside "compose a comment about operator dialog" dialog. The input field whose label this is, will show name file that is attached to the post. Liitteet: Attach Push-button text inside "compose a comment about operator dialog" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. LiitУЄ newTextDocumentDialog Edit and publish a new text document Dialog title text for a dialog that prompts user to edit+publish a text document. Muokkaa ja julkaise uusi tekstidokumentti Document title Text field label for input field inside "compose a new text document" dialog. The text field in question is "subject" or "topic" field of the text document. Dokumentin aihe Attachments: Label text of a text field inside "edit+publish a new text document dialog" dialog. The input field whose label this is, will show name file that is attached to the document. Liitteet: Attach Push-button text inside "edit+publish a new text document dialog" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. LiitУЄ profileCommentDisplay Comments regarding operator Dialog title text for dialog that will show a listing of previous comments regarding operator (user himself or some other operator, it is the same dialog in both cases) Kommentit koskien operaattoria profileReadersDialog Profile readers list Dialog title text for a dialog that prompts user to choose operators who will be able to read details, comments and shared files of his profile. Profiilin lukijalista Search for profiles to add Text field label inside "add profiles to list of readers" dialog. The text field whose prompt this is asks for search-words to be used to filter operator names/addresses from database. Etsi lisУЄttУЄviУЄ profiileja First 100 matching profiles: Text field label inside "add profiles to list of readers" dialog. The text listing-field whose explanation this is will list operators whose nickname,name or other search-term matches conditions entered by user. EnsimmУЄiset 100 osumaa: Add seleted to list of readers Push-button label inside "add profiles to list of readers" dialog. When user hits this button, operators that are selected from neighboring list will be added to list of readers of operators profile. LisУЄУЄ valitut profiilin lukijoiksi Current list of readers Text field label inside "add profiles to list of readers" dialog. The text listing-field whose explanation this is shows current list operators profiles readers. Lukijoiden nykyinen lista Close Push button label inside dialog that asks for list of operators who are readers of operators own profile. When user this this button, the dialog is dismissed. Sulje Remove selected Push button label inside dialog that asks for list of operators who are readers of operators own profile. When user this this button, selected operators are removed from the list. Poista valitut searchDisplay Search data storage Dialog title-text for a search dialog. Etsi tietovarastosta Words: Label text of a text field inside "search" dialog. The text field in question requires user to enter one or more words that are then searched from all available (public) documents. Sanoja Search Push button label inside "search" dialog. When button is hit, search using given words is performed. Hae Network search Check-box label inside "search" dialog. When box is checked, the search is done also in neighboring nodes in the network, not only in local storage. Verkkohaku Search ads Check-box label inside "search" dialog. When box is checked, the search may include classified ads in its resultset. Etsi ilmoituksista Search profiles Check-box label inside "search" dialog. When box is checked, the search may include operator profiles in its resultset. Etsi profiileista Search comments Check-box label inside "search" dialog. When box is checked, the search may include profile commetns in its resultset. Etsi kommenteista settingsDialog Node settings Dialog title text for "settings" dialog. Solmun asetukset TCP listen port Text field label for input field inside "settings" dialog. The numerical input field whose label this is has TCP port number of the node. TCP-kuunteluportti Incoming TCP listen port. Change requires node restart. Tooltip-text for input field inside "settings" dialog. The numerical input field whose label this is has TCP port number of the node. Kuunteluportti. TУЄmУЄn vaihtaminen edellyttУЄУЄ ohjelman uudelleenkУЄynnistystУЄ. DNS name of node Text field label for input field inside "settings" dialog. The textual input field whose label this is requires user to enter DNS-name of the node (or leave it empty, if no name is assigned) Solmun nimipalvelunimi If you have permanent DNS name for your machine, you may type it here to be used to reference your node Tooltip-text for input field inside "settings" dialog. The textual input field whose label this is requires user to enter DNS-name of the node (or leave it empty, if no name is assigned) Jos solmullasi on pysyvУЄ nimi nimipalvelussa, voit syУЖttУЄУЄ sen tУЄhУЄn jotta muut solmut voivat siihen viitata Data store limits: Text label inside "settings" dialog. Under this label is set of numerical input fields that user may use to adjust the amount of items he wishes to keep in his local storage. Tietokannan sisУЄllУЖn enimmУЄismУЄУЄrУЄt: Nr of profiles to keep Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of operator profiles to keep in storage. Talletettavien profiilien mУЄУЄrУЄ Nr of private messages to keep Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of private messages to keep in storage. Yksityistien viestien mУЄУЄrУЄ Nr of binary blobs to keep Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of binary files to keep in storage. BinУЄУЄritiedostojen mУЄУЄrУЄ Nr of CAs to keep Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of classified ads to keep in storage. Ilmoitusten mУЄУЄrУЄ Number of classified ads to keep in storage, total, including all classifications. Oldest referenced will be deleted first. Tooltip-text for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of classified ads to keep in storage. Paikallisessa tietokannassa talletettavien ilmoitusten mУЄУЄrУЄ, koskien kaikkia luokitteluja. ViimeisimmУЄksi viitatut tullaan poistamaan ensimmУЄisenУЄ. Nr of profile comments to keep Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of comments regarding operators to keep in storage. Kommenttien mУЄУЄrУЄ statusDialog Network and connection status Dialog title text for a dialog that shows network connectivity details. Verkon ja yhteyksien tila Detected own IPv4 Text field label for display-item inside "network status" dialog. The display-item shows ipv4-network address of the node. Usually it is (public) IP addr of the very machine that user is using at the moment. Oma havaittu IPv4 Should your friend have trouble connecting, give her this address with port number Tooltip-text for display-item inside "network status" dialog. The display-item shows ipv4-network address of the node. Usually it is (public) IP addr of the very machine that user is using at the moment. Jos ystУЄvУЄsi ei pУЄУЄse verkon jУЄseneksi, yritУЄ antaa hУЄnelle tУЄmУЄ osoite porttinumeron kera IPv6 Text field label for display-item inside "network status" dialog. The display-item shows IPV6-address of the node. Usually it is (public) IPv6 addr of the very machine that user is using at the moment. IPv6 TCP port currently used Text field label for display-item inside "network status" dialog. The display-item shows listen port of the node. KУЄytУЖssУЄ oleva TCP-portti Currently open connections Text field label for a list-item inside "network status" dialog. The list-item shows list of currently connected other nodes in the network. Avoimet yhteydet Manually add connection Push-button label for button inside "network status" dialog. When button is hit, another dialog is opened, asking user for details about the remote node to connect. LisУЄУЄ yhteys kУЄsipelillУЄ Close Push-button label for button inside "network status" dialog. When button is hit, dialog is dismissed. Sulje classified-ads-0.09/classified_ads_sv.qm000066400000000000000000001504261260620453500203340ustar00rootroot00000000000000<ИdЪяœ•Э!П`ЁНнB Ј;=юўЊ'ўВЮVЊKVВђGtЌљGЄБЪK?ђLLЏУZlЋ[*3о_Уl˜“OЇдLЈЅ>жЁСч–Уь0Ny LЏю“ЏkТ@”А5AА5Cйn”л&1љJД&mѓ0Н&mѓЄф)Џd9Т*–$Eџ*ІyFY*ЛF‰*а%*а%G ++дGЏ+‹ЏH‘+ФЏIŸ?–ПШGay­$G…дЙуG–ФБ‘GпEIУjIXГЂIf#иIl @J6•ИgJ6•Т L™bvL™b$ьL™b-аL™b6•L™b8ФL™bBLL™bLпM– /[T3ЏiTЩѓ[f3 v`А›mУvmУ5“mtU P}ВuНk еЅаЃ‰'ЁЌIЮ˜ЌR^ ХЩ|№ ЯЬ]е†ЭУЩsжЙЄЃKхTрcO ‘ƒЂі ќ/БޑŽ1п- Ž А-ўБHJЏ$hJЏ2@~^Ѕ&‚“.о †КŠШ!ИЛ2Š Ъ­iGhеМ>ў€$ЖчC%ŸјъЎзДЂЊДЂ# ДЂ-ћ ЁЅ7W ЁЅ8ћ?кЪuV.Q4tZUDоZUЉwѕЮ5&{ќSЅ.’`Е­Іь/яІь5ТЇ–ФЖŠЅH Жх”>ИЧ9'qИ§єHХУёхМСм^‚4ум/ xєk@UйрП|LB]‚# cРt—8jьч„m љœS—тˆйа.™ДЈдЊsевцD' жд%зKХЖЃюЭФЕђŠsЈ€ћФ5 ё!+ѓžR(P@3Pšƒ”žkcЙ;ЧtШ”—‹Ї˜Г‹Ї˜Дn‹Ї˜Ж—ѓРзGЈЈРSЗUХЉ0ХvNЂ.ЬХГ_舉VуЃТ<ц_Фѕs<Щ,о#Ї;2 FЯУцH8Р“dлГйfСEЩgв $gв /gв MšxкЩNш|DР!›ˆ˜Ї=›ˆ˜Л&œJТCPЄ!-PЇiГ =Г(IKКіІиФц5eЦ­UЛчЬZ‚K‚лн% јц‹jМ‡јJm1Žћќ&ЮЦЎOЦS­UЦTЎ#eDІЗ$eL—6{ЎF'8*YP FMЂУєVбЅЇЬYu#Z~,KZ~ E\ЮУ0`9~•alОGэŸКЮ|Ё"~)œЕБГнЦlIЫШжнЄБкaŠИћ№ 4›ќiQf0BYJM5Фѕи8tѕl8uT>gZ єЌ5hIBэjцх ШmйЮRЪmdЙ~‰pcШ…U0>…UЃРЁc’"=ЋŒу ‡ЋŒу/ИйQ Й0ШІ&гGоПгGо:‘еСФЇiхCЂЈ,ь УžээLiQЧіЇ^7§Šо˜ќ њЅ+D њЅKИЈ4Х) sW sW+ ЁЩў-ЏЉе6ДE>SИŒ…1ЪZƒЛ˜ЬHcИŸЬчЉŸ,ЬчЩŸjьq Ў‰Ђљ:*s)MтУЅ}a * eСkeС;*hЬƒTH€‚(Ц‘O‡#n‘O‡.^›ыВЗyЂCuрЂCuЄД NС,ЫRМай~JрƒЇ5щщФ7ъe љ OSВiХM2Vфlj ett namn for din filChoose file name for savingAttachmentListDialogFelErrorAttachmentListDialog,Fel i att іppna en filFile open errorAttachmentListDialog,Spara till filsystem..Save file to disk..AttachmentListDialog filerfilesAttachmentListDialogJNamn eller SHA1 kontrollsumm av filenName or fingerprint of fileBinaryFileListingModel DatumDateCAListingModel RubrikSubjectCAListingModelDjurAnimalsClassifiedAdsModelMeddelande AnnouncementClassifiedAdsModelAlla lфnder Any countryClassifiedAdsModel CyklarBikesClassifiedAdsModel BхtarBoatsClassifiedAdsModel BіckerBooksClassifiedAdsModelInkіpningBuyingClassifiedAdsModel BilarCarsClassifiedAdsModel KlфderClothingClassifiedAdsModelUtbildning EducationClassifiedAdsModel*Elektroniska aparater ElectronicsClassifiedAdsModelHфndelserEventsClassifiedAdsModel FinansFinanceClassifiedAdsModelLivsmedel FoodstuffClassifiedAdsModel Mіbler FurnitureClassifiedAdsModelDonering Giving awayClassifiedAdsModel Bostad HabitationClassifiedAdsModelSjukvхrd HealthcareClassifiedAdsModel"HushхllsapparaterHousehold appliancesClassifiedAdsModelSmyckenJewelryClassifiedAdsModel ArbeteJobsClassifiedAdsModelBioMoviesClassifiedAdsModel MusikMusicClassifiedAdsModelAndra fordonOther vehiclesClassifiedAdsModelFilosofi PhilosophyClassifiedAdsModel$Religiіsa ritualerReligious ritualsClassifiedAdsModelAtt hyraRentingClassifiedAdsModelFіrsфljingSellingClassifiedAdsModelTjфnsterServicesClassifiedAdsModelProgramvaraSoftwareClassifiedAdsModel SportsSportsClassifiedAdsModelVerktygToolsClassifiedAdsModelTransportTransportationClassifiedAdsModelFordondelar Vehicle partsClassifiedAdsModelжnskande sigWantingClassifiedAdsModel AdressAddressConnectionListingModelOktett inBytes inConnectionListingModelOktett ut Bytes outConnectionListingModel&Data frхn din dator'Data transferred from peer to your nodeConnectionListingModel&Data till din dator'Data transferred to peer from your nodeConnectionListingModelInkommandeInboundConnectionListingModelInkommande fіrbindelse фr sхdan nфr en annan dator іppnade datastrіmmen =Inbound connections are those where peer initiated connectionConnectionListingModelжppningstid Open timeConnectionListingModel0Grфnsande datorns adressPeer network addressConnectionListingModel4Tid nфr datastrіm іppnadesTime when connection was openedConnectionListingModel&SHA1 av din contact,Actual network address (SHA1) of the contactContactListingModel AdressAddressContactListingModelSmeknamn>Locally given nickname ; user may set her own nickname himselfContactListingModelSmeknamnNicknameContactListingModelLOm den hфr kontakt ska bli fіrtrіstad??Public statement if this operator to be trusted in transactionsContactListingModel(Offentlig fіrtroendePublicly trustedContactListingModel OkфntUnknownContactListingModelJaYesContactListingModelNHemlig nyckel fіr kryptering finns inte!No suitable de-cryption key foundContentEncryptionModel:Kunde inte persist RSA-nyckel%RSA Private key key saving went wrongContentEncryptionModelTKunde inte generera SSL-nyckel, utgхende..-SSL key generation went wrong, calling exit..ContentEncryptionModelRKunde inte generera x509-cert, utgхende../x509 cert generation went wrong, calling exit..ContentEncryptionModelOm &annonser&About Controller*Fіrфndra din lіsenord&Change password Controller$Radera vald profil&Delete current profile Controller &Filer&File Controller*Vфlja en annan profil&Select another profile ControllerJVфlja en annan profil med en lіsenord&Activate another profile with password ControllerFel lіsenord Bad password ControllerHMan kan inte radera den sista profilCan't delete only profile. ControllerDKan inte ladda smycken fіr din nodCant load node cert or key cert ControllerDFіrфndra lіsenorden av vald profil"Change password of current profile ControllerAnnonserClassified ads Controller Innehхllsфgare: Content owner:  ControllerPKunde inte hitta objektet frхn nфtverket"Could not find item from network.. Controller&Skapa en &ny profilCreate &new profile Controller$Fel med krypteringCryptographic module ControllerFel med databasDatabase error ControllerFel med databasDatabase module ControllerDatum: Date:  Controller<Ska glіmma allt om vald profilDeletes currently open profile ControllerBeskrivning:  Description:  Controller StфngaE&xit Controller Ge ett lіsenord:Enter new password: Controller"Ge ett lіsenord: /Enter password for protection of your messages: Controller"Stфnga av programExit the application Controller&Hфmtning objektet..Fetching item from network.. ControllerFel med filen File error Controller0Om du har flera profiler!If you have multitude of profiles ControllerLicens:  License:  Controller@Skapar en ny profil fіr operatorMakes a brand new user profile ControllerMime-Type: Mime-Type:  Controller Namn: Name:  Controller*Status av nфtverket..Network status.. Controller(Instфllningar av nodNode-wide settings.. ControllerRadera profil?Permanently discard profile? ControllerFіrlфggare:  Publisher:  Controller SHA1:SHA1:  Controller Sіk..Search.. ControllerInstфllningar.. Settings.. ControllerFVisa information av den hфr program Show the application's About box ControllertDet finns INTE en metod fіr att visa den hфr profil senare<head><meta name="qrichtext" content="1" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Annonser фr fri programvara. Du kan anvфnda, kopiera och modifiera det om du fіljer konditioner av GNU LGPL licens v2.1 (GNU Lesser General Public License). </p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright Љ Antti Jфrvinen 2013.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Den viktig funktionen av Annonser фr &quot;annons&quot; - dokument som har en klassificering. Program har flera klassificrings och anvфndarna kan skapa mera. Anvфndarna kan lфsa annonser, skapa kommentarer om dom och ha korrespondens.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">En annan viktig egenskap фr att Annonser фr inte serverbaserad, det anvфnder inte en databas i server іver nфtverket. Alla filer sparas i datorer av anvфndarna av Annonser. Fіr at kunna ansluta sig med nфtverket av Annonser man har at veta minst en adress av en dator som фr i nфtverket. Nфr program har anslutat sig med nфtverket det ska underhхlla sin egen listan om andra datorer i nфtverket. </p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Pх grund av partnerbaserad-konstruktion hela system fungerar bфst om du lфmnar program pх ocksх nфr du inte anvфnder program sjфlv. Program ska ta datorkraft och generera traffic іver nфtverket nфr du inte anvфnder program, men andra anvфndare ska bli betjфnad. </p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Anvфndarna intresserad av sina informationssфkerhet skulle veta att:</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Databas фr en variant av distribuerad hashtabell (DHT). Det betyder att filer skickad i nфtverket sparas i flera datorer i andra anvфndarnas фgo.</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Alla dataobjekter i Annonser har en digital signatur. <br /> - Den enda vфrdig identifiering fіr operatіr ar SHA1 kontrollsumm av hennes RSA-nyckel. Alla andra punkter om operatіr kan vara vad som helst.</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Alla annonser ska sparas i nфtverket utan kryptering - alla kan lфsa dom. Alla publik profiler sparas i nфtverket utan kryptering. Operatіrprofiler som фr privat ska bli krypterad bara fіr listade anvфndare. Samma gфller ocksх fіr kommentarer och filer av profil. Om en profil blir privat, gammal kommentarer och filer av profil фr inte krypterad. Korrespondens (brev) mellan anvфndarna ska vara krypterad alltid. Bilagor fіljer kryptering av sina фgande dokument. </p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Som фr fallet med alla kommunikation іver internet, det hфr gфller ocksх: om nхgonting фr publicerad i Annonser, <span style=" font-style:italic;">det finns inte en metod fіr att ta det bort senare</span>. <br /> - Programvara fіr kryptering фr OpenSSL, algoritmen mest avфnda фr RSA-2048 och AES-256.</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Kommunikationen mellan datorer i nфtverket фr krypterad med SSL. Din partners i nфtverket kan se alla trafik till din nod. Anvфndarna skulle inte ponera anonymitet eller hemlighet іver saker dom gіr i nфtverket. </p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Programmering gjorts av Antti Jфrvinen, konst av Meeri Jфrvinen.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Denna produkt innehхller programvara som har utvecklats av OpenSSL project fіr anvфndning i OpenSSL toolkit (http://www.openssl.org).</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html>м

Classified ads is free software. You may use, copy and modify it if you follow the conditions given in GNU lesser general public license version 2.1.

Classified ads is copyright ТЉ Antti JУЄrvinen 2013.

Main feature of the the program is an "advertisement" - a piece of text belonging to selected classification. There are several pre-programmed classifications and operators are encouraged to invent new classifications for new purposes ; the selection boxes in classification-selection tab are editable. Other operators may then view the ads, publicly comment the ads, the operators and also send private messages to each others.

Another important feature of classified ads is that it is designed to be operated without any centralized server infrastucture - it is you and other operators whose computers store and transmit all the content visible inside classified ads. To get connected you need to know address of at least one existing computer (a node) so if your network connection dialog shows no connections, you may need to contact someone you know is using the software and ask for address of her node to make initial contact with the network. Once connected the software should maintain list of addresses of other nodes.

Due to its server-less design the whole system works best if you leave the program running always when you have your computer powered on ; while processing other operators requests it will hog some computing resources and generate network traffic also when you are not actively using the program youself - others are.

Operators concerned about privacy of the content should be aware of following items:

- Data storage implementation is variant of distributed hash table, practically meaning that content posted by you gets copied some more-or-less random nodes in the network.

- Any data item (ad, comment, binary file, private message etc.) is digitally signed. This makes it more difficult to try to pose as another operator.

- Operators are reliably identified only by the SHA1 hash of their generated encryption keys. SHA1 hash is displayed when viewing details of operator profiles. Other identifying information like nickname or city name are entered by operator himself and can be anything. The operator profile, as it is published to the network, is also signed with the encryption keys of the operator - if you identify an operator by her SHA1 hash, you have a mechanism for identifying if any content inside classified ads is posted by this operator or not. Classified ads internally checks for digital signatures, throwing away content that fails signature check and tries to provide SHA1 hash of the operator who posted the content.

- All classified ads are posted as plain text, no encryption is used. All public profiles are posted as plain text, no encryption is used. If profile is made private, it is encrypted to be readable only by selected other profiles. This applies also to binary files shared by operators private profiles and comments about private profiles after the profile was made private (previously plain-text comments or files don't get magically encrypted afterwards). Private messages are encrypted always to be readable only by recipient and sender. Attachments follow the privary rules of the document, they're attachted to.

- As is the case with all internet-communications, this small fact is true for classified ads too : once something gets posted online, there is no way to remove it from network.

- Data encryption implementation for content is OpenSSL, relying mostly on algorithms RSA-2048 and AES-256.

- While connections between nodes are implemented using SSL, other nodes inside network do get to know what content is being transmitted in neighboring nodes. While there is no central point for easily collecting this information about particular classification or operator, operators still should expect no privacy regarding their doings online, although some effort has been been put into hiding contents of private messages and private profiles.

Programming was (mostly) done by Antti JУЄrvinen, artwork by Meeri JУЄrvinen.

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/).

Happy advertising!


 aboutDialog.Information om AnnonserAbout classified ads aboutDialog"Listan av bilagorList of attached filesattachmentListDialogИ<html><head/><body><p>Om du trіst pх en profil, det фr publik information</p></body></html> n

Settings some trusted is public information to readers of your profile

editContactDialogLAdress (SHA1 kontrollsumm) av kontakt Address (SHA1) of contacteditContactDialog&Redigera en kontaktEdit a contacteditContactDialogLokal smeknamnLocal nicknameeditContactDialogBDen hфr kontakt фr tillfіrlitlig 6This contact is to be publicly trusted in transactionseditContactDialogF Klicka fіr at lфgga till en bild Click to Add Image frontWidgetL<html><head/><body><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;">Ingen</span></p><p align="center"><span style=" font-size:16pt;">Bild</span></p><p align="center"><span style=" font-size:16pt;">Valts</span></p></body></html>Ї




No

Image

Inserted

 frontWidgetLфgg kontakt Add contact frontWidget0Lфgga till din kontakterAdd to contacts frontWidgetBTC-adressBTC Addr frontWidgetBTC-adress BTC address frontWidgetStad/rike City/Country frontWidgetStad/rike City/country frontWidget"AnnonseravdelningClassified ads frontWidget&Skicka en kommentarComment frontWidgetKontakterContacts frontWidget6Detaljer om operatіrsprofilDetails of operator profile: frontWidgetEfternamn Family name frontWidgetFіrnamn First name frontWidget Fіr hela vфrldenFor the rest of the world.  frontWidgetFormForm frontWidgetHфlsningar Greeting text frontWidgetbOm du will ta mot betalningar, ge din BTC-adress FIf you wish to receive payments via BTC, include your BTC address too. frontWidget&Senaste kommentarerLatest comments frontWidget*Tillstхndet i vфrlden+Longer explanation about state of the world frontWidgetEgen profil My profile frontWidgetSmeknamnNickname frontWidget:Ingent pukt фr obligatoriskt None of the fields is mandatory frontWidget UtfіraPerform frontWidgetKorrespondensPrivate messages frontWidget Adress av profilProfile address frontWidget$Detaljer av profilProfile details frontWidget$Profilen фr privatProfile is private frontWidgetPubliceraPublish frontWidget&Lфsarna av profilenReaders of profile frontWidgetTa bort kontaktRemove contact frontWidget ХtergхRevert changes frontWidgetSіkSearch frontWidget$Sіk annonser efterSearch for classified ads about frontWidget4Skicka en elektronisk post Send message frontWidgetSkicka en brevSend message to operator frontWidget(Filer i fildelning  Shared files frontWidget*Tillstхndet i vфrldenState of the world frontWidget,Tid av senaste фndringTime of last update frontWidgetVisa profilen View profile frontWidget&Lфsarna av profilen View readers frontWidgetiin frontWidgetavof frontWidgetInfoga en lфnk Insert linkinsertLinkDialogLфnktextLink label in textinsertLinkDialogURLURLinsertLinkDialog2IPv4, IPv6 eller DNS-namnIPv4, IPv6 or DNS namemanualConnectionDialog@Lфgga till en nod (anslutningen)%Manually add node to connection queuemanualConnectionDialog TCP-port av peerRemote node listen portmanualConnectionDialogNфtverk adressRemote node network addressmanualConnectionDialogBSDBSD metadataQuery CC-BYCC-BY metadataQueryCC-BY-NCCC-BY-NC metadataQueryCC-BY-NC-ND CC-BY-NC-ND metadataQueryCC-BY-NC-SA CC-BY-NC-SA metadataQueryCC-BY-NDCC-BY-ND metadataQueryCC-BY-SACC-BY-SA metadataQueryBeskrivning:Description of file: metadataQuery@Ange information fіre publicera:0Enter information regarding file before publish: metadataQuery(Information av filenFile information metadataQueryGPLGPL metadataQueryLGPLLGPL metadataQueryLicens: License of use: metadataQueryMime-typ: Mime-type: metadataQuery Namn: Name of the file: metadataQuery Innehхllsфgare: ,Owner of file (name or SHA1 if CA operator): metadataQueryPublic domain Public domain metadataQueryI frхga omAbout newCaDialogInkluderaAdd newCaDialogBilagor:  Attachment:  newCaDialog&Skicka en ny annonsPost a new classified ad newCaDialog RubrikSubject newCaDialogiin newCaDialogavof newCaDialogInkluderaAttachnewPrivMsgDialogBilagor:  Attachments: newPrivMsgDialogMottagare RecipientnewPrivMsgDialog"Skicka en ny brevSend a private messagenewPrivMsgDialog RubrikSubjectnewPrivMsgDialogInkluderaAttachnewProfileCommentDialogBilagor: Attachments:newProfileCommentDialog@Skicka en kommentar av en profilComment a operators profilenewProfileCommentDialogOperatіrsprofilCommented profilenewProfileCommentDialog RubrikSubjectnewProfileCommentDialogInkluderaAttachnewTextDocumentDialogBilagor: Attachments:newTextDocumentDialog RubrikDocument titlenewTextDocumentDialogDSkapa och publicera en ny dokument$Edit and publish a new text documentnewTextDocumentDialog4Kommentarer av en operatіrComments regarding operatorprofileCommentDisplay.Inkludera vald profilerAdd seleted to list of readersprofileReadersDialog StфngCloseprofileReadersDialogAktuell listanCurrent list of readersprofileReadersDialog>Fіrst 100 motsvarande profiler:First 100 matching profiles:profileReadersDialog(Lфsarna av en profilProfile readers listprofileReadersDialog*Ta bort vald profilerRemove selectedprofileReadersDialogPSіk fіr profiler som ska bli lфggad tillSearch for profiles to addprofileReadersDialogSіk i nфtverketNetwork search searchDisplaySіkSearch searchDisplaySіk annonser Search ads searchDisplaySіk kommentarerSearch comments searchDisplay"Sіk lokal databasSearch data storage searchDisplaySіk profilerSearch profiles searchDisplayAlla ord:Words: searchDisplayDNS-namnDNS name of nodesettingsDialog2Begrфnsningar fіr databasData store limits:settingsDialogDOm du har DNS-namnet for din datorgIf you have permanent DNS name for your machine, you may type it here to be used to reference your nodesettingsDialogŒTCP-port fіr inkommande trafik. Mхste omstarta programmen om фndrats..8Incoming TCP listen port. Change requires node restart. settingsDialog,Instфllningar av dator Node settingssettingsDialogAntal annonsNr of CAs to keepsettingsDialogAntal filerNr of binary blobs to keepsettingsDialogAntal E-brevNr of private messages to keepsettingsDialog"Antal kommentarerNr of profile comments to keepsettingsDialogAntal profilerNr of profiles to keepsettingsDialogџџџџ{Number of classified ads to keep in storage, total, including all classifications. Oldest referenced will be deleted first.settingsDialogTCP-portTCP listen portsettingsDialog StфngClose statusDialog$жppna datastrіmmarCurrently open connections statusDialog6Upphittade egen IPv4 adressDetected own IPv4 statusDialogIPv6IPv6 statusDialog$Lфgga till en peerManually add connection statusDialog*жversikt av nфtverketNetwork and connection status statusDialogžOm din vфn kan inte ta kontakt med nфtverket, ge honom den hфr adress med port RShould your friend have trouble connecting, give her this address with port number statusDialogTCP portTCP port currently used statusDialogˆclassified-ads-0.09/classified_ads_sv.ts000066400000000000000000002701021260620453500203370ustar00rootroot00000000000000 UTF-8 AttachmentListDialog Save file to disk.. Man kan spara pengar ocksУЅ? Spara till filsystem.. files filer Choose file name for saving VУЄlj ett namn for din fil Error Fel File open error Fel i att УЖppna en fil BinaryFileListingModel Name or fingerprint of file Namn eller SHA1 kontrollsumm av filen CAListingModel Date Datum Subject Rubrik ClassifiedAdsModel Buying InkУЖpning Selling FУЖrsУЄljing Giving away Donering Wanting У–nskande sig Renting Att hyra Announcement Meddelande Cars Bilar Boats BУЅtar Bikes Cyklar Other vehicles Andra fordon Vehicle parts Fordondelar Habitation Bostad Household appliances HushУЅllsapparater Furniture MУЖbler Clothing KlУЄder Tools Verktyg Sports Sports Music Musik Books BУЖcker Movies Bio Animals Djur Electronics Elektroniska aparater Jobs Arbete Transportation Transport Services TjУЄnster Healthcare SjukvУЅrd Foodstuff Livsmedel Software Programvara Events HУЄndelser Education Utbildning Finance Finans Jewelry Smycken Religious rituals ReligiУЖsa ritualer Philosophy Filosofi Any country Alla lУЄnder ConnectionListingModel Peer network address GrУЄnsande datorns adress Inbound connections are those where peer initiated connection Inkommande fУЖrbindelse УЄr sУЅdan nУЄr en annan dator УЖppnade datastrУЖmmen Data transferred from peer to your node Data frУЅn din dator Data transferred to peer from your node Data till din dator Time when connection was opened Tid nУЄr datastrУЖm УЖppnades Address Adress Inbound Inkommande Bytes in Oktett in Bytes out Oktett ut Open time У–ppningstid ContactListingModel Yes Ja Unknown OkУЄnt Actual network address (SHA1) of the contact SHA1 av din contact Locally given nickname ; user may set her own nickname himself Smeknamn Public statement if this operator to be trusted in transactions Om den hУЄr kontakt ska bli fУЖrtrУЖstad? Address Adress Nickname Smeknamn Publicly trusted Offentlig fУЖrtroende ContentEncryptionModel SSL key generation went wrong, calling exit.. Kunde inte generera SSL-nyckel, utgУЅende.. x509 cert generation went wrong, calling exit.. Kunde inte generera x509-cert, utgУЅende.. RSA Private key key saving went wrong Kunde inte persist RSA-nyckel No suitable de-cryption key found Hemlig nyckel fУЖr kryptering finns inte Controller Classified ads Annonser Enter password for protection of your messages: Ge ett lУЖsenord: Fetching item from network.. HУЄmtning objektet.. E&xit StУЄnga Exit the application StУЄnga av program &About Om &annonser Show the application's About box Visa information av den hУЄr program &Change password FУЖrУЄndra din lУЖsenord Change password of current profile FУЖrУЄndra lУЖsenorden av vald profil Create &new profile Skapa en &ny profil Makes a brand new user profile Skapar en ny profil fУЖr operator &Delete current profile Radera vald profil Deletes currently open profile Ska glУЖmma allt om vald profil &Select another profile VУЄlja en annan profil If you have multitude of profiles Om du har flera profiler Settings.. InstУЄllningar.. Node-wide settings.. InstУЄllningar av nod Network status.. Status av nУЄtverket.. Search.. SУЖk.. &File &Filer Enter new password: Ge ett lУЖsenord: Activate another profile with password VУЄlja en annan profil med en lУЖsenord Can't delete only profile. Man kan inte radera den sista profil Permanently discard profile? Radera profil? There will be NO way to access content of this profile later Det finns INTE en metod fУЖr att visa den hУЄr profil senare Cant load node cert or key cert Kan inte ladda smycken fУЖr din nod File error Fel med filen Database error Fel med databas Cryptographic module Fel med kryptering Database module Fel med databas Bad password Fel lУЖsenord Could not find item from network.. Kunde inte hitta objektet frУЅn nУЄtverket SHA1: SHA1: Mime-Type: Mime-Type: Description: Beskrivning: Publisher: FУЖrlУЄggare: Content owner: InnehУЅllsУЄgare: License: Licens: Name: Namn: Date: Datum: DialogBase File way too big Filen УЄr alldeles fУЖr stor File too big Filen УЄr fУЖr stor File open error Fel med УЖppningen av filen Select file to be published VУЄlja filen som du will ha publicerad Files (*.*) Alla filer (*.*) EditContactDialog Error Fel Operator addr is not valid Adress av operator УЄr inte giltig FrontWidget Classified ads Annonser My profile Egen profil Contacts Kontakter Private messages Privat korrespondens Add shared file.. Addera en fil til nУЄtverk.. Stop advertising selected shared file Sluta annonsera den markerade filen Save file to disk.. Spara filen till disk.. View file information.. Visa beskrivning av filen.. Copy file address (SHA1) to clipboard.. Kopiera SHA1 till urklipp.. Edit+publish new text document.. Skapa+publicera en ny dokument.. Open File У–ppna filen Files (*.*) Alla typer (*.*) Error Fel Can't load image Kan inte ladda en bild Profile not in database Profil finns inte i lokal databas Try viewing profile first to obtain data Du kan fУЖrsУЖka att se profil fУЖrst fУЖr att hУЄmta data Select file to be published VУЄlja filen du vill ha publicerad File way too big Filen УЄr alldeles fУЖr stor File too big Filen УЄr fУЖr stor File open error Fel med УЖppningen av filen files filer Choose file name for saving VУЄlj ett namn for din fil Click To Add Image Klicka fУЖr att lУЄgga till en bild Article not found from local storage Annons kunde inte hittas i local databas Trusted by %1 SHA1 %2 Betrodd av %1 SHA1 %2 Time of last update Tid av senaste УЄndring (No Image Selected) (Ingen Bild Valts) Edit contact.. Redigera kontakt &Reply to sender Svara avsУЄndaren Reply to &forum Svara pУЅ &forumet &Post new ad Ska&pa en ny annons &Public comment &Publik kommentar &View profile &Visa profilen Attachments.. Bilagor.. Add selected operator to contacts.. LУЄgga operator till din kontakter &Reply Svara &New message Skapa en ny brev &Send public comment to sender Skicka en publik kommentar om profilen &View profile of peer &Visa profilen Add selected to contacts.. LУЄgga till din kontakter.. From: FrУЅn: Subject: Rubrik: To: Mottagare: Invalid SHA1 in URL SHA1 i URL УЄr inte giltig Invalid URL URL УЄr inte giltig InsertLinkDialog Invalid URL URL УЄr inte giltig ManualConnectionDialog DNS lookup failure Namnet kunde inte hittas frУЅn DNS NewPrivMessageDialog Error Fel Recipient addr is not valid Adressen av mottagaren УЄr inte giltig Recipient encryption key not found from storage Kryptering-nyckel fУЖr mottagaren kunde inte hittas i lokal databas NewProfileCommentDialog Error Fel Commented profile addr is not valid Adressen av profil УЄr inte giltig Recipient encryption key not found from storage Kunde inte hittas kryptering-nyckel frУЅn lokal databas NodeModel SSL key generation went wrong, calling exit.. Kunde inte skapa SSL-nyckel, utgУЅende.. x509 cert generation went wrong, calling exit.. Kunde inte skapa x509-nyckel, utgУЅende.. Cant load SSL cert Kunde inte ladda SSL-nyckkel Cant load SSL key Kunde inte ladda SSL-nyckel PasswdDialog Min length 5 (use 10+) MinimilУЄngd УЄr 5 (du skulle anvУЄnda minst 10+) PasswordDialog Password required LУЖsenord krУЄvs Should you forget this word, there is no easy way to recover any of your content Om du glУЖmmer det hУЄr ordet, det finns inte en praktiskt metod fУЖr att visa dina filer senare Enter password for protection of your messages Ge ett lУЖsenord If you forget this word, there is no simple way to recover your contents Om du glУЖmmer det hУЄr ordet, det finns inte en praktiskt metod fУЖr att visa dina filer senare OK OK PrivateMessageSearchModel %1 Trusted by %2 %1 Betrodd av %2 Direction of message, sent/received Riktning Dir Riktning Peer Peer Time Datum Subject Rubrik ProfileCommentDisplay &Add comment... Skapa en ny komment.. Save attachment to disk.. Spara filen till disk.. Error Fel Article not found from local storage Annons kunde inte hittas i lokal databas ProfileCommentItemDelegate Attachments: TillУЄggade filer: ProfileCommentListingModel Sender AvsУЄndare Time Datum Subject Rubrik ProfileCommentModel Profile related to comment not found from database Profilen frУЅn komment kunde inte hittas i lokal databas ProfileReadersDialog View profile Visa profilen ProfileReadersListingModel Name or fingerprint of reader Namn eller SHA1 kontrollsumm av lУЄsaren SearchDisplay Open.. У–ppna.. TextEdit Help HjУЄlp About &Qt Information om &Qt Edit Actions Aktions fУЖr redigering &File Arkiv &Open... У–ppna.. &Save locally before send &Spara fУЖre skickning Save locally &As... Spara i lokal disk med namn.. &Print... Skriv ut.. Print Preview... FУЖrhandsgranskning &Export PDF... &Exportera som PDF &Edit R&edigera &Undo У…ngra &Redo У…terstУЄll Cu&t Klipp ut &Copy Kopiera &Paste Klistra in Insert link Infoga en lУЄnk Embed image BУЄdda in en bild F&ormat F&ormat &Bold Fet &Italic Kursiv &Underline Understruken &Left VУЄnsterjustera C&enter Centrerat &Right HУЖgerjustera &Justify Marginaljustering &Color... FУЄrg.. Standard Standardformat Bullet List (Disc) PunktuppstУЄllning (bollar) Bullet List (Circle) PunktuppstУЄllning (cirklar) Bullet List (Square) PunktuppstУЄllning (kvadrater) Ordered List (Decimal) Numrering (decimal) Ordered List (Alpha lower) Numrering (smУЅ bokstУЄver) Ordered List (Alpha upper) Numrering (stora bokstУЄver) Ordered List (Roman lower) Numrering (smУЅ roman) Ordered List (Roman upper) Numrering (stora roman) Application Annonser The document has been modified. Do you want to save your changes? Dokument har УЄndrats, spara? Open File... У–ppna filen.. HTML-Files (*.htm *.html);;All Files (*) HTML-Filer (*.htm *.html);;Alla typer (*) Save as... Spara som.. ODF files (*.odt);;HTML-Files (*.htm *.html);;All Files (*) ODF filer (*.odt);;HTML-Filer (*.htm *.html);;Alla typer (*) Print Document Skriv ut dokument Open File У–ppna filen Files (*.*) Alla filer (*.*) Error Fel Can't load image Kan inte ladda en bild File way too big Filen УЄr alldeles fУЖr stor aboutDialog About classified ads Information om Annonser Classified ads is a program for online communications Annonser УЄr en programvara fУЖr kommunikation УЖver internet <html><head/><body><p>Classified ads is free software. You may use, copy and modify it if you follow the conditions given in GNU lesser general public license version 2.1.</p><p>Classified ads is copyright ТЉ Antti JУЄrvinen 2013. </p><p>Main feature of the the program is an &quot;advertisement&quot; - a piece of text belonging to selected classification. There are several pre-programmed classifications and operators are encouraged to invent new classifications for new purposes ; the selection boxes in classification-selection tab are editable. Other operators may then view the ads, publicly comment the ads, the operators and also send private messages to each others. </p><p>Another important feature of classified ads is that it is designed to be operated without any centralized server infrastucture - it is you and other operators whose computers store and transmit all the content visible inside classified ads. To get connected you need to know address of at least one existing computer (a <span style=" font-style:italic;">node</span>) so if your network connection dialog shows no connections, you may need to contact someone you know is using the software and ask for address of her node to make initial contact with the network. Once connected the software should maintain list of addresses of other nodes. </p><p>Due to its server-less design the whole system works best if you leave the program running always when you have your computer powered on ; while processing other operators requests it will hog some computing resources and generate network traffic also when you are not actively using the program youself - others are. </p><p>Operators concerned about privacy of the content should be aware of following items:</p><p>- Data storage implementation is variant of <span style=" font-style:italic;">distributed hash table</span>, practically meaning that content posted by you gets copied some more-or-less random nodes in the network. </p><p>- Any data item (ad, comment, binary file, private message etc.) is digitally signed. This makes it more difficult to try to pose as another operator. </p><p>- Operators are reliably identified only by the SHA1 hash of their generated encryption keys. SHA1 hash is displayed when viewing details of operator profiles. Other identifying information like nickname or city name are entered by operator himself and can be anything. The operator profile, as it is published to the network, is also signed with the encryption keys of the operator - if you identify an operator by her SHA1 hash, you have a mechanism for identifying if any content inside classified ads is posted by this operator or not. Classified ads internally checks for digital signatures, throwing away content that fails signature check and tries to provide SHA1 hash of the operator who posted the content.</p><p>- All classified ads are posted as plain text, no encryption is used. All public profiles are posted as plain text, no encryption is used. If profile is made private, it is encrypted to be readable only by selected other profiles. This applies also to binary files shared by operators private profiles and comments about private profiles after the profile was made private (previously plain-text comments or files don't get magically encrypted afterwards). Private messages are encrypted always to be readable only by recipient and sender. Attachments follow the privary rules of the document, they're attachted to. </p><p>- As is the case with all internet-communications, this small fact is true for classified ads too : <span style=" font-style:italic;">once something gets posted online, there is no way to remove it from network</span>. </p><p>- Data encryption implementation for content is OpenSSL, relying mostly on algorithms RSA-2048 and AES-256. </p><p>- While connections between nodes are implemented using SSL, other nodes inside network do get to know what content is being transmitted in neighboring nodes. While there is no central point for easily collecting this information about particular classification or operator, operators still should expect no privacy regarding their doings online, although some effort has been been put into hiding <span style=" font-style:italic;">contents</span> of private messages and private profiles. </p><p>Programming was (mostly) done by Antti JУЄrvinen, artwork by Meeri JУЄrvinen.</p><p>This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/).</p><p>Happy advertising!</p><p><br/></p></body></html> <html><head/><body><p>Classified ads is free software. You may use, copy and modify it if you follow the conditions given in GNU lesser general public license version 2.1.</p><p>Classified ads is copyright ТЉ Antti JУЄrvinen 2013. </p><p>Main feature of the the program is an &quot;advertisement&quot; - a piece of text belonging to selected classification. There are several pre-programmed classifications and operators are encouraged to invent new classifications for new purposes ; the selection boxes in classification-selection tab are editable. Other operators may then view the ads, publicly comment the ads, the operators and also send private messages to each others. </p><p>Another important feature of classified ads is that it is designed to be operated without any centralized server infrastucture - it is you and other operators whose computers store and transmit all the content visible inside classified ads. To get connected you need to know address of at least one existing computer (a <span style=" font-style:italic;">node</span>) so if your network connection dialog shows no connections, you may need to contact someone you know is using the software and ask for address of her node to make initial contact with the network. Once connected the software should maintain list of addresses of other nodes. </p><p>Due to its server-less design the whole system works best if you leave the program running always when you have your computer powered on ; while processing other operators requests it will hog some computing resources and generate network traffic also when you are not actively using the program youself - others are. </p><p>Operators concerned about privacy of the content should be aware of following items:</p><p>- Data storage implementation is variant of <span style=" font-style:italic;">distributed hash table</span>, practically meaning that content posted by you gets copied some more-or-less random nodes in the network. </p><p>- Any data item (ad, comment, binary file, private message etc.) is digitally signed. This makes it more difficult to try to pose as another operator. </p><p>- Operators are reliably identified only by the SHA1 hash of their generated encryption keys. SHA1 hash is displayed when viewing details of operator profiles. Other identifying information like nickname or city name are entered by operator himself and can be anything. The operator profile, as it is published to the network, is also signed with the encryption keys of the operator - if you identify an operator by her SHA1 hash, you have a mechanism for identifying if any content inside classified ads is posted by this operator or not. Classified ads internally checks for digital signatures, throwing away content that fails signature check and tries to provide SHA1 hash of the operator who posted the content.</p><p>- All classified ads are posted as plain text, no encryption is used. All public profiles are posted as plain text, no encryption is used. If profile is made private, it is encrypted to be readable only by selected other profiles. This applies also to binary files shared by operators private profiles and comments about private profiles after the profile was made private (previously plain-text comments or files don't get magically encrypted afterwards). Private messages are encrypted always to be readable only by recipient and sender. Attachments follow the privary rules of the document, they're attachted to. </p><p>- As is the case with all internet-communications, this small fact is true for classified ads too : <span style=" font-style:italic;">once something gets posted online, there is no way to remove it from network</span>. </p><p>- Data encryption implementation for content is OpenSSL, relying mostly on algorithms RSA-2048 and AES-256. </p><p>- While connections between nodes are implemented using SSL, other nodes inside network do get to know what content is being transmitted in neighboring nodes. While there is no central point for easily collecting this information about particular classification or operator, operators still should expect no privacy regarding their doings online, altough some effort has been been put into hiding <span style=" font-style:italic;">contents</span> of private messages and private profiles. </p><p>Programming was (mostly) done by Antti JУЄrvinen, artwork by Meeri JУЄrvinen.</p><p>This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/).</p><p>Happy advertising!</p><p><br/></p></body></html> <html><head><meta name="qrichtext" content="1" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Annonser УЄr fri programvara. Du kan anvУЄnda, kopiera och modifiera det om du fУЖljer konditioner av GNU LGPL licens v2.1 (GNU Lesser General Public License). </p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright ТЉ Antti JУЄrvinen 2013.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Den viktig funktionen av Annonser УЄr &quot;annons&quot; - dokument som har en klassificering. Program har flera klassificrings och anvУЄndarna kan skapa mera. AnvУЄndarna kan lУЄsa annonser, skapa kommentarer om dom och ha korrespondens.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">En annan viktig egenskap УЄr att Annonser УЄr inte serverbaserad, det anvУЄnder inte en databas i server УЖver nУЄtverket. Alla filer sparas i datorer av anvУЄndarna av Annonser. FУЖr at kunna ansluta sig med nУЄtverket av Annonser man har at veta minst en adress av en dator som УЄr i nУЄtverket. NУЄr program har anslutat sig med nУЄtverket det ska underhУЅlla sin egen listan om andra datorer i nУЄtverket. </p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">PУЅ grund av partnerbaserad-konstruktion hela system fungerar bУЄst om du lУЄmnar program pУЅ ocksУЅ nУЄr du inte anvУЄnder program sjУЄlv. Program ska ta datorkraft och generera traffic УЖver nУЄtverket nУЄr du inte anvУЄnder program, men andra anvУЄndare ska bli betjУЄnad. </p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">AnvУЄndarna intresserad av sina informationssУЄkerhet skulle veta att:</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Databas УЄr en variant av distribuerad hashtabell (DHT). Det betyder att filer skickad i nУЄtverket sparas i flera datorer i andra anvУЄndarnas УЄgo.</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Alla dataobjekter i Annonser har en digital signatur. <br /> - Den enda vУЄrdig identifiering fУЖr operatУЖr ar SHA1 kontrollsumm av hennes RSA-nyckel. Alla andra punkter om operatУЖr kan vara vad som helst.</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Alla annonser ska sparas i nУЄtverket utan kryptering - alla kan lУЄsa dom. Alla publik profiler sparas i nУЄtverket utan kryptering. OperatУЖrprofiler som УЄr privat ska bli krypterad bara fУЖr listade anvУЄndare. Samma gУЄller ocksУЅ fУЖr kommentarer och filer av profil. Om en profil blir privat, gammal kommentarer och filer av profil УЄr inte krypterad. Korrespondens (brev) mellan anvУЄndarna ska vara krypterad alltid. Bilagor fУЖljer kryptering av sina УЄgande dokument. </p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Som УЄr fallet med alla kommunikation УЖver internet, det hУЄr gУЄller ocksУЅ: om nУЅgonting УЄr publicerad i Annonser, <span style=" font-style:italic;">det finns inte en metod fУЖr att ta det bort senare</span>. <br /> - Programvara fУЖr kryptering УЄr OpenSSL, algoritmen mest avУЄnda УЄr RSA-2048 och AES-256.</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Kommunikationen mellan datorer i nУЄtverket УЄr krypterad med SSL. Din partners i nУЄtverket kan se alla trafik till din nod. AnvУЄndarna skulle inte ponera anonymitet eller hemlighet УЖver saker dom gУЖr i nУЄtverket. </p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Programmering gjorts av Antti JУЄrvinen, konst av Meeri JУЄrvinen.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Denna produkt innehУЅller programvara som har utvecklats av OpenSSL project fУЖr anvУЄndning i OpenSSL toolkit (http://www.openssl.org).</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> attachmentListDialog List of attached files Listan av bilagor editContactDialog Edit a contact Redigera en kontakt Address (SHA1) of contact Adress (SHA1 kontrollsumm) av kontakt Local nickname Lokal smeknamn <html><head/><body><p>Settings some trusted is public information to readers of your profile</p></body></html> <html><head/><body><p>Om du trУЖst pУЅ en profil, det УЄr publik information</p></body></html> This contact is to be publicly trusted in transactions Den hУЄr kontakt УЄr tillfУЖrlitlig frontWidget Form Form Classified ads Annonseravdelning Search for classified ads about SУЖk annonser efter Perform UtfУЖra of av in i Search SУЖk My profile Egen profil Profile address Adress av profil Nickname Smeknamn Greeting text HУЄlsningar For the rest of the world. FУЖr hela vУЄrlden First name FУЖrnamn Family name Efternamn City/country Stad/rike BTC address BTC-adress If you wish to receive payments via BTC, include your BTC address too. Om du will ta mot betalningar, ge din BTC-adress State of the world TillstУЅndet i vУЄrlden Longer explanation about state of the world TillstУЅndet i vУЄrlden Profile is private Profilen УЄr privat Readers of profile LУЄsarna av profilen None of the fields is mandatory Ingent pukt УЄr obligatoriskt Time of last update Tid av senaste УЄndring Publish Publicera Revert changes У…tergУЅ Details of operator profile: Detaljer om operatУЖrsprofil Click to Add Image Klicka fУЖr at lУЄgga till en bild Shared files Filer i fildelning Latest comments Senaste kommentarer Contacts Kontakter Add contact LУЄgg kontakt Remove contact Ta bort kontakt View profile Visa profilen Send message Skicka en elektronisk post Private messages Korrespondens Profile details Detaljer av profil City/Country Stad/rike BTC Addr BTC-adress <html><head/><body><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;">No</span></p><p align="center"><span style=" font-size:16pt;">Image</span></p><p align="center"><span style=" font-size:16pt;">Inserted</span></p></body></html> <html><head/><body><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;">Ingen</span></p><p align="center"><span style=" font-size:16pt;">Bild</span></p><p align="center"><span style=" font-size:16pt;">Valts</span></p></body></html> Send message to operator Skicka en brev View readers LУЄsarna av profilen Comment Skicka en kommentar Add to contacts LУЄgga till din kontakter insertLinkDialog Insert link Infoga en lУЄnk URL URL Link label in text LУЄnktext manualConnectionDialog Manually add node to connection queue LУЄgga till en nod (anslutningen) Remote node listen port TCP-port av peer Remote node network address NУЄtverk adress IPv4, IPv6 or DNS name IPv4, IPv6 eller DNS-namn metadataQuery File information Information av filen Name of the file: Namn: Owner of file (name or SHA1 if CA operator): InnehУЅllsУЄgare: License of use: Licens: Public domain Lets not translate license names.. Public domain GPL GPL LGPL LGPL BSD BSD CC-BY CC-BY CC-BY-SA CC-BY-SA CC-BY-ND CC-BY-ND CC-BY-NC CC-BY-NC CC-BY-NC-SA CC-BY-NC-SA CC-BY-NC-ND CC-BY-NC-ND Mime-type: Mime-typ: Description of file: Beskrivning: Enter information regarding file before publish: Ange information fУЖre publicera: newCaDialog Post a new classified ad Skicka en ny annons About I frУЅga om of av in i Subject Rubrik Attachment: Bilagor: Add Inkludera newPrivMsgDialog Send a private message Skicka en ny brev Subject Rubrik Recipient Mottagare Attachments: Bilagor: Attach Inkludera newProfileCommentDialog Comment a operators profile Skicka en kommentar av en profil Subject Rubrik Commented profile OperatУЖrsprofil Attachments: Bilagor: Attach Inkludera newTextDocumentDialog Edit and publish a new text document Skapa och publicera en ny dokument Document title Rubrik Attachments: Bilagor: Attach Inkludera profileCommentDisplay Comments regarding operator Kommentarer av en operatУЖr profileReadersDialog Profile readers list LУЄsarna av en profil Search for profiles to add SУЖk fУЖr profiler som ska bli lУЄggad till First 100 matching profiles: FУЖrst 100 motsvarande profiler: Add seleted to list of readers Inkludera vald profiler Current list of readers Aktuell listan Close StУЄng Remove selected Ta bort vald profiler searchDisplay Search data storage SУЖk lokal databas Words: Alla ord: Search SУЖk Network search SУЖk i nУЄtverket Search ads SУЖk annonser Search profiles SУЖk profiler Search comments SУЖk kommentarer settingsDialog Node settings InstУЄllningar av dator TCP listen port TCP-port Incoming TCP listen port. Change requires node restart. TCP-port fУЖr inkommande trafik. MУЅste omstarta programmen om УЄndrats.. DNS name of node DNS-namn If you have permanent DNS name for your machine, you may type it here to be used to reference your node Om du har DNS-namnet for din dator Data store limits: BegrУЄnsningar fУЖr databas Nr of profiles to keep Antal profiler Nr of private messages to keep Antal E-brev Nr of binary blobs to keep Antal filer Nr of CAs to keep Antal annons Number of classified ads to keep in storage, total, including all classifications. Oldest referenced will be deleted first. Nr of profile comments to keep Antal kommentarer statusDialog Network and connection status У–versikt av nУЄtverket Detected own IPv4 Upphittade egen IPv4 adress Should your friend have trouble connecting, give her this address with port number Om din vУЄn kan inte ta kontakt med nУЄtverket, ge honom den hУЄr adress med port IPv6 IPv6 TCP port currently used TCP port Currently open connections У–ppna datastrУЖmmar Manually add connection LУЄgga till en peer Close StУЄng classified-ads-0.09/controller.cpp000066400000000000000000001302431260620453500172120ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include #include #include #include #include #include "controller.h" #include "FrontWidget.h" #include "log.h" #include "net/node.h" #include "datamodel/model.h" #include "datamodel/contentencryptionmodel.h" #include "net/networklistener.h" #include "net/networkconnectorengine.h" #include "net/publishingengine.h" #include "net/retrievalengine.h" #ifndef WIN32 #include // for getpid() #endif #include #include "ui/passwd_dialog.h" #include #include "datamodel/profile.h" #include "datamodel/profilemodel.h" #include "datamodel/profilecommentmodel.h" #include "ui/settings.h" #include "ui/status.h" #include "ui/aboutdialog.h" #include "ui/searchdisplay.h" #include "datamodel/searchmodel.h" #include "datamodel/profile.h" #include "datamodel/profilecomment.h" #include "datamodel/trusttreemodel.h" #include "datamodel/binaryfile.h" static const char *KPrivateDataContactsSection = "contacts" ; static const char *KPrivateDataContactsCache = "contactsCache" ; static const char *KPrivateDataTrustTree = "trustTree" ; Controller::Controller(QApplication &app) : iWin(NULL), iCurrentWidget(NULL), iApp ( app ) , iLayout (NULL), iFileMenu(NULL), iExitAct(NULL), iAboutAct(NULL), iPwdChangeAct(NULL), iProfileDeleteAct(NULL), iProfileCreateAct(NULL), iProfileSelectAct(NULL), iDisplaySettingsAct(NULL), iDisplayStatusAct(NULL), iDisplaySearchAct(NULL), iNode(NULL), iModel(NULL), iListener(NULL), iNetEngine(NULL), iPubEngine(NULL), iRetrievalEngine(NULL) { LOG_STR("Controller::Controller in") ; #ifndef WIN32 int pid ; if ( ( pid = createPidFile() ) != -1 ) { LOG_STR2("Signaling old instance %d", pid) ; if ( kill(pid, SIGUSR2) != -1 ) { // was success kill(getpid(), SIGINT) ; // then signal this instance to go away.. return ; } else { // the process did not exist.. LOG_STR("But process was not there?") ; deletePidFile() ; createPidFile() ; } } #endif qRegisterMetaType("MController::CAErrorSituation"); qRegisterMetaType("Hash"); qRegisterMetaType("ProtocolItemType"); qRegisterMetaType("QHostAddress"); iWin = new QMainWindow(NULL) ; iWin->setWindowTitle(tr("Classified ads")) ; // somehow Qt should calculate size from widgets. it gets too small vertical.. iWin->setMinimumSize(450,600) ; createMenus() ; iLayout = new QBoxLayout( QBoxLayout::TopToBottom, NULL ) ; QWidget *centralWidget = new QWidget() ; iWin->setCentralWidget(centralWidget) ; centralWidget->setLayout(iLayout) ; iModel = new Model(this); iDisplaySearchAct->setEnabled(true) ; displayFront() ; // put UI in place only after model has been instantiated iWin->show() ; iModel->getNetReqExecutor()->start() ; iNode = new Node(iModel->nodeModel().nodeFingerPrint(), iModel->nodeModel().listenPortOfThisNode()) ; iNode->setDNSAddr(iModel->nodeModel().getDnsName()) ; iListener = new NetworkListener (this, iModel) ; // network listener enumerates network interfaces and sets // possible ipv6 addr into iNode() -> if (!Connection::Ipv6AddressesEqual(iNode->ipv6Addr(), KNullIpv6Addr)) { LOG_STR("We have IPv6") ; iListener->startListen(true) ; } else { iListener->startListen(false) ; // ipv4 only } // lets pass iListner to net engine because it is also observer // for new connections so lets have it observering the // newly-connecting outgoing connections too, it doesn't // need to know who originated the connection.. iNetEngine = new NetworkConnectorEngine(this, iModel,*iListener) ; iNetEngine->start() ; PasswdDialog *pwd_dialog = new PasswdDialog(iWin, *this,tr("Enter password for protection of your messages:")) ; connect(pwd_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), this, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; pwd_dialog->show() ; iPubEngine = new PublishingEngine(this, *iModel) ; iPubEngine->setInterval(5000); // every 5 seconds iRetrievalEngine = new RetrievalEngine (this, *iModel) ; iRetrievalEngine->setInterval(5000); // every 5 seconds // network listener is also connection status observer so lets // have it to signal the pub-engine when connections are opened/closed // (also the failed ones that are usually of no interest) assert( connect(iListener, SIGNAL( nodeConnectionAttemptStatus(Connection::ConnectionState , const Hash ) ), iPubEngine, SLOT( nodeConnectionAttemptStatus(Connection::ConnectionState , const Hash )), Qt::QueuedConnection ) ) ; assert( connect(iListener, SIGNAL( nodeConnectionAttemptStatus(Connection::ConnectionState , const Hash ) ), iNetEngine, SLOT( nodeConnectionAttemptStatus(Connection::ConnectionState , const Hash )), Qt::QueuedConnection ) ) ; assert( connect(iListener, SIGNAL( nodeConnectionAttemptStatus(Connection::ConnectionState , const Hash ) ), iRetrievalEngine, SLOT( nodeConnectionAttemptStatus(Connection::ConnectionState , const Hash )), Qt::QueuedConnection ) ) ; assert( connect(iListener, SIGNAL( nodeConnectionAttemptStatus(Connection::ConnectionState , const Hash ) ), iModel->getNetReqExecutor(), SLOT( nodeConnectionAttemptStatus(Connection::ConnectionState , const Hash )), Qt::QueuedConnection ) ) ; assert( connect(iRetrievalEngine, SIGNAL( notifyOfContentNotReceived(const Hash& , const ProtocolItemType ) ), this, SLOT( notifyOfContentNotReceived(const Hash& , const ProtocolItemType )), Qt::QueuedConnection ) ) ; // after signals are connected, start publishing and retrieval iPubEngine->start() ; iRetrievalEngine->start() ; /* // debug thing: iModel->classifiedAdsModel().reIndexAllAdsIntoFTS() ; iModel->profileModel().reIndexAllProfilesIntoFTS() ; iModel->profileCommentModel().reIndexAllCommentsIntoFTS() ; */ LOG_STR("Controller::Controller out") ; } Controller::~Controller() { LOG_STR("Controller::~Controller") ; if ( iListener ) { iListener->stopAccepting() ; } if ( iNetEngine ) { iNetEngine->iNeedsToRun = false ; } if ( iPubEngine ) { iPubEngine->iNeedsToRun = false ; iPubEngine->stop() ; delete iPubEngine ; iPubEngine = NULL ; } LOG_STR("Controller::~Controller 1 pubengine gone") ; if ( iRetrievalEngine ) { iRetrievalEngine->iNeedsToRun = false ; iRetrievalEngine->stop() ; delete iRetrievalEngine ; iRetrievalEngine = NULL ; } if ( iNetEngine ) { #ifndef WIN32 deletePidFile() ; // if we did not instantiate net engine, we // did not create pidfile either QLOG_STR("NetEngine->terminate") ; iNetEngine->terminate() ; iNetEngine->wait(1000) ; // 1 sec max, then just delete.. QLOG_STR("NetEngine->terminate out") ; #endif } LOG_STR("Controller::~Controller 2 netengine gone") ; // .. connections reference iListener. // so in order to prevent random crash at closing, lets first get rid // of connections, only after that delete iListener ; iModel->closeAllConnections(false) ; // after all connections have been instructed to close themselves, // wait for some time to give them time to do so.. unsigned char waitCounter ( 0 ) ; while ( ( waitCounter < 60 && iModel->getConnections().count() > 0 ) || ( waitCounter < 2 ) ) { ++waitCounter ; QLOG_STR("Waitcounter " + QString::number(waitCounter) + " conn count " + QString::number( iModel->getConnections().count() ) ) ; QWaitCondition waitCondition; QMutex mutex; mutex.lock() ; // waitCondition needs a mutex initially locked waitCondition.wait(&mutex, 500);// give other threads a chance.. mutex.unlock() ; QThread::yieldCurrentThread (); QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents) ; } iModel->closeAllConnections(true) ; // forcefully delete the remaining // now safe to delete listener (and net engine) LOG_STR("Controller::~Controller connections closed") ; delete iNetEngine ; // will delete also connections opened by net engine LOG_STR("Controller::~Controller netengine deleted") ; delete iListener ; // will delete also connections received by listener LOG_STR("Controller::~Controller listener deleted") ; delete iModel ; LOG_STR("Controller::~Controller datamodel") ; delete iNode ; if ( iFileMenu ) { delete iFileMenu; } if ( iExitAct ) { delete iExitAct ; } if ( iAboutAct ) { delete iAboutAct ; } if ( iPwdChangeAct ) { delete iPwdChangeAct; } if ( iProfileDeleteAct) { delete iProfileDeleteAct ; } if ( iProfileCreateAct ) { delete iProfileCreateAct ; } if ( iProfileSelectAct ) { delete iProfileSelectAct ; } if ( iDisplaySettingsAct ) { delete iDisplaySettingsAct ; } if ( iDisplayStatusAct ) { delete iDisplayStatusAct ; } if ( iDisplaySearchAct ) { delete iDisplaySearchAct ; } if ( iWin ) { delete iWin ; iWin = NULL ; } } void Controller::userInterfaceAction ( CAUserInterfaceRequest aRequest, const Hash& aHashConcerned , const Hash& aFetchFromNode ) { LOG_STR2("Controller::userInterfaceAction %d", aRequest) ; if ( aRequest == ViewProfileDetails ) { iModel->lock() ; Profile *p = iModel->profileModel().profileByFingerPrint((aHashConcerned) ) ; iModel->unlock() ; if (p) { delete (p) ; iCurrentWidget->showDetailsOfProfile(aHashConcerned) ; } else { // seems like we do not have the profile. lets put a wait-dialog // in place and profile fetch request to network.. NetworkRequestExecutor::NetworkRequestQueueItem req ; req.iRequestType =RequestForUserProfile ; req.iRequestedItem = aHashConcerned ; req.iState = NetworkRequestExecutor::NewRequest ; req.iDestinationNode = aFetchFromNode ; // may be KNullHash startRetrievingContent(req,false,UserProfile) ; userInterfaceAction ( DisplayProgressDialog, KNullHash , KNullHash ) ; } } else if ( aRequest == ViewCa ) { iModel->lock() ; CA ca = iModel->classifiedAdsModel().caByHash(aHashConcerned) ; iModel->unlock() ; if ( ca.iFingerPrint != KNullHash ) { // classified ad was found from local storage iCurrentWidget->showClassifiedAd(ca) ; } else { // classified ad was not found from local storage, begin fetch NetworkRequestExecutor::NetworkRequestQueueItem req ; req.iRequestType =RequestForClassifiedAd ; req.iRequestedItem = aHashConcerned ; req.iState = NetworkRequestExecutor::NewRequest ; req.iDestinationNode = aFetchFromNode ; // may be KNullHash startRetrievingContent(req,false,ClassifiedAd) ; userInterfaceAction ( DisplayProgressDialog, KNullHash , KNullHash ) ; } } else if ( aRequest == ViewProfileComment ) { // ok, profile comment is tricky to display because it // is two-stage process. first state is finding the // profile, that may or may not be locally stored. // after profile is found and displayed, we may // continue with the comment itself, that again // may or may not be found. // // in order to know the profile, the comment is required // first. iModel->lock() ; ProfileComment* c ( iModel->profileCommentModel().profileCommentByFingerPrint(aHashConcerned) ) ; iModel->unlock() ; if ( c ) { // see if we have the profile too: iModel->lock() ; Profile *p ( iModel->profileModel().profileByFingerPrint(c->iProfileFingerPrint, true, /* emit */ true /* no image */ ) ) ; iModel->unlock() ; if ( p ) { delete p ; p = NULL ; iCurrentWidget->showDetailsOfProfile(c->iProfileFingerPrint) ; iCurrentWidget->showSingleCommentOfProfile(aHashConcerned) ; } else { // seems like we do not have the profile. lets put a wait-dialog // in place and profile fetch request to network.. NetworkRequestExecutor::NetworkRequestQueueItem req ; req.iRequestType = RequestForUserProfile ; req.iRequestedItem = c->iProfileFingerPrint ; req.iState = NetworkRequestExecutor::NewRequest ; req.iDestinationNode = aFetchFromNode ; // may be KNullHash startRetrievingContent(req,false,UserProfile) ; iHashOfProfileCommentBeingWaitedFor = aHashConcerned ; iNodeForCommentBeingWaitedFor = aFetchFromNode ; userInterfaceAction ( DisplayProgressDialog, KNullHash , KNullHash ) ; } delete c ; } else { // comment was not found, begin fetch for that: NetworkRequestExecutor::NetworkRequestQueueItem req ; req.iRequestType = RequestForProfileComment ; req.iRequestedItem = aHashConcerned ; req.iState = NetworkRequestExecutor::NewRequest ; req.iDestinationNode = aFetchFromNode ; // may be KNullHash startRetrievingContent(req,false,UserProfileComment) ; userInterfaceAction ( DisplayProgressDialog, KNullHash , KNullHash ) ; } } else if ( aRequest == DisplayProgressDialog ) { QProgressDialog* waitDialog = new QProgressDialog(iCurrentWidget) ; waitDialog->setLabelText ( tr("Fetching item from network..") ); waitDialog->setMaximum(0) ; waitDialog->setMinimum(0) ; connect(this,SIGNAL(waitDialogToBeDismissed()), waitDialog,SLOT(reject())) ; waitDialog->exec() ; } else { LOG_STR2("Unhandled user interface request %d", aRequest) ; } LOG_STR2("Controller::userInterfaceAction out %d", aRequest) ; } void Controller::hideUI() { if ( iWin ) { iWin->hide() ; } } void Controller::showUI() { if ( iWin ) { iWin->show() ; } } void Controller::createMenus() { iExitAct = new QAction(tr("E&xit"), this); iExitAct->setShortcuts(QKeySequence::Quit); iExitAct->setStatusTip(tr("Exit the application")); iAboutAct = new QAction(tr("&About"), this); iAboutAct->setStatusTip(tr("Show the application's About box")); iPwdChangeAct = new QAction(tr("&Change password"), this); iPwdChangeAct->setStatusTip(tr("Change password of current profile")); iProfileCreateAct = new QAction(tr("Create &new profile"), this); iProfileCreateAct->setStatusTip(tr("Makes a brand new user profile")); iProfileDeleteAct = new QAction(tr("&Delete current profile"), this); iProfileDeleteAct->setStatusTip(tr("Deletes currently open profile")); iProfileSelectAct = new QAction(tr("&Select another profile"), this); iProfileSelectAct->setStatusTip(tr("If you have multitude of profiles")); iDisplaySettingsAct = new QAction(tr("Settings.."), this); iDisplaySettingsAct->setStatusTip(tr("Node-wide settings..")); iDisplayStatusAct = new QAction(tr("Network status.."), this); iDisplaySearchAct = new QAction(tr("Search.."), this); connect(iAboutAct, SIGNAL(triggered()), this, SLOT(displayAboutBox())); connect(iExitAct, SIGNAL(triggered()), this, SLOT(exitApp())); connect(iPwdChangeAct, SIGNAL(triggered()), this, SLOT(changeProfilePasswd())); connect(iProfileCreateAct, SIGNAL(triggered()), this, SLOT(createProfile())); connect(iProfileDeleteAct, SIGNAL(triggered()), this, SLOT(deleteProfile())); connect(iProfileSelectAct, SIGNAL(triggered()), this, SLOT(selectProfile())); connect(iDisplaySettingsAct, SIGNAL(triggered()), this, SLOT(displaySettings())); connect(iDisplayStatusAct, SIGNAL(triggered()), this, SLOT(displayStatus())); connect(iDisplaySearchAct, SIGNAL(triggered()), this, SLOT(displaySearch())); iFileMenu = iWin->menuBar()->addMenu(tr("&File")); iFileMenu->addAction(iAboutAct); iFileMenu->addAction(iPwdChangeAct); iFileMenu->addAction(iProfileCreateAct); iFileMenu->addAction(iProfileDeleteAct); iFileMenu->addAction(iProfileSelectAct); iFileMenu->addAction(iDisplaySettingsAct) ; iFileMenu->addAction(iDisplayStatusAct) ; iFileMenu->addAction(iDisplaySearchAct) ; iPwdChangeAct->setDisabled(true) ; // enable when profile is open iProfileDeleteAct->setDisabled(true) ; // enable when profile is open iFileMenu->addAction(iExitAct); } void Controller::exitApp() { LOG_STR("Controller::exitApp") ; if ( iCurrentWidget && iLayout ) { iLayout->removeWidget(iCurrentWidget) ; delete iCurrentWidget ; } // iLayout is owned by iCurrentWidget so it should be // deleted there. if ( iWin ) { iWin->close() ; } } void Controller::displayAboutBox() { if ( iWin ) { const QString dlgName ("classified_ads_about_dialog") ; AboutDialog *dialog = iWin->findChild(dlgName) ; if ( dialog == NULL ) { dialog = new AboutDialog(iWin, *this) ; dialog->setObjectName(dlgName) ; dialog->show() ; } else { dialog->setFocus(Qt::MenuBarFocusReason) ; } } } void Controller::changeProfilePasswd() { if ( iWin) { // the last false tells dialog to behave in change-mode instead // of query-mode PasswdDialog *pwd_dialog = new PasswdDialog(iWin, *this,tr("Enter new password:"),false) ; connect(pwd_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), this, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; pwd_dialog->show() ; } LOG_STR("Controller::changeProfilePasswd out") ; } // Initiates UI sequence for new profile void Controller::createProfile() { LOG_STR("createProfile in") ; iModel->lock() ; setProfileInUse(iModel->contentEncryptionModel().generateKeyPair()) ; iModel->unlock() ; if ( iProfileHash != KNullHash ) { changeProfilePasswd() ; } LOG_STR("createProfile in") ; } // Initiates UI sequence for selecting a profile void Controller::selectProfile() { LOG_STR("selectProfile in") ; PasswdDialog *pwd_dialog = new PasswdDialog(iWin, *this,tr("Activate another profile with password")) ; connect(pwd_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), this, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; pwd_dialog->show() ; LOG_STR("selectProfile in") ; } void Controller::displaySettings() { LOG_STR("Controller::displaySettings") ; const QString dlgName ("classified_ads_settings_dialog") ; SettingsDialog *dialog = iWin->findChild(dlgName) ; if ( dialog == NULL ) { dialog = new SettingsDialog(iWin, *this) ; dialog->setObjectName(dlgName) ; connect(dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), this, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; dialog->show() ; } else { dialog->setFocus(Qt::MenuBarFocusReason) ; } } void Controller::displayStatus() { LOG_STR("Controller::displayStatus") ; const QString dlgName ("classified_ads_status_dialog") ; StatusDialog *dialog = iWin->findChild(dlgName) ; if ( dialog == NULL ) { dialog = new StatusDialog(iWin, *this) ; dialog->setObjectName(dlgName) ; connect(dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), this, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; dialog->show() ; } else { dialog->setFocus(Qt::MenuBarFocusReason) ; } } void Controller::displaySearch() { LOG_STR("Controller::displaySearch") ; const QString dlgName ("classified_ads_search_dialog") ; SearchDisplay *dialog = iWin->findChild(dlgName) ; if ( dialog == NULL && iCurrentWidget->selectedProfile()) { dialog = new SearchDisplay(iCurrentWidget, this, iModel->searchModel(), *(iCurrentWidget->selectedProfile())) ; dialog->setObjectName(dlgName) ; connect(dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), this, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; // pointer of current profile is inside dialog -> if that // changes, close the dialog ; user needs to re-open search // dialog if she switches profile in use assert(connect(this, SIGNAL(userProfileSelected(const Hash&)), dialog, SLOT(deleteLater()), Qt::QueuedConnection) ) ; dialog->show() ; } else { dialog->setFocus(Qt::MenuBarFocusReason) ; } } // Initiates UI sequence for deleting profile void Controller::deleteProfile() { LOG_STR("deleteProfile in") ; QMessageBox msgBox; iModel->lock() ; int numberOfPrivateKeys = iModel->contentEncryptionModel().listKeys(true,NULL).size() ; iModel->unlock() ; if ( numberOfPrivateKeys < 2 ) { msgBox.setText(tr("Can't delete only profile.")); msgBox.setStandardButtons( QMessageBox::Ok ); msgBox.exec(); } else { msgBox.setText(tr("Permanently discard profile?")); msgBox.setInformativeText(tr("There will be NO way to access content of this profile later")); msgBox.setStandardButtons( QMessageBox::Ok | QMessageBox::Cancel); msgBox.setDefaultButton(QMessageBox::Cancel); int ret = msgBox.exec(); if ( ret == QMessageBox::Ok ) { LOG_STR("delete profile..") ; iModel->lock() ; bool deletiaResult = iModel->contentEncryptionModel().deleteKeyPair(iProfileHash) ; iModel->unlock() ; if ( deletiaResult ) { PasswdDialog *pwd_dialog = new PasswdDialog(iWin, *this,tr("Activate another profile with password")) ; connect(pwd_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), this, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; pwd_dialog->show() ; } } else { LOG_STR("user is unsure") ; } } } void Controller::displayFront() { LOG_STR("displayFront") ; if ( iCurrentWidget ) { iLayout->removeWidget(iCurrentWidget) ; delete iCurrentWidget ; } iLayout->addWidget(iCurrentWidget = new FrontWidget(this,*iWin)) ; connect(iCurrentWidget, SIGNAL( error(MController::CAErrorSituation, const QString&) ), this, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; // // important: // connection is queued. in practice this signal is emitted at // situation where datamodel is locked. // UI in question will immediately try to obtain lock to datamodel // so we would end up in deadlock situation. Use queued signal // here so call stack of the caller is left to collapse // until this signal is delivered // assert(connect(this, SIGNAL(userProfileSelected(const Hash&)), iCurrentWidget, SLOT(userProfileSelected(const Hash&)), Qt::QueuedConnection) ) ; LOG_STR("displayFront out") ; } void Controller::handleError(MController::CAErrorSituation aError, const QString& aExplanation) { LOG_STR2("Error enum value %d", aError) ; QLOG_STR(aExplanation) ; switch ( aError ) { case OwnCertNotFound: QMessageBox::about(iWin,tr("Cant load node cert or key cert"), aExplanation); LOG_STR("Cant load node cert or key cert") ; break ; case FileOperationError: // type of non-fatal error QMessageBox::about(iWin,tr("File error"), aExplanation); LOG_STR("File error " + aExplanation ) ; break ; case DataBaseNotMountable: QMessageBox::about(iWin,tr("Database error"), aExplanation); LOG_STR("Can't open DB") ; QApplication::quit() ; break ; case ContentEncryptionError : QMessageBox::about(iWin,tr("Cryptographic module"), aExplanation); QLOG_STR("ContentEncryptionError " + aExplanation ) ; break ; case DbTransactionError : QMessageBox::about(iWin,tr("Database module"), aExplanation); QLOG_STR("DbTransactionError " + aExplanation ) ; break ; case BadPassword : QMessageBox::about(iWin,tr("Cryptographic module"), tr("Bad password")); QLOG_STR("DbTransactionError " + aExplanation ) ; break ; } return ; } Node& Controller::getNode() const { return *iNode ; } NetworkListener *Controller::networkListener() const { return iListener ; } Model& Controller::model() const { return *iModel ; } int Controller::createPidFile() { int retval = -1 ; #ifndef WIN32 QString path(QDir::home().path()); path.append(QDir::separator()).append(".classified_ads"); path.append(QDir::separator()).append("instance.pid") ; bool ok = false ; if (QFile(path).exists()) { QFile f(path) ; f.open(QIODevice::ReadOnly) ; QByteArray arr = f.readAll() ; QLatin1String content8bit(arr); QString content (content8bit) ; retval = content.toInt(&ok, 10) ; } if (!ok ) { QFile f(path) ; f.open(QIODevice::WriteOnly) ; QString content = QString::number(getpid()); QByteArray contentBytes(content.toLatin1()) ; f.write(contentBytes) ; f.close() ; retval = -1 ; } #endif return retval ; } void Controller::deletePidFile() { #ifndef WIN32 QString path(QDir::home().path()); path.append(QDir::separator()).append(".classified_ads"); path.append(QDir::separator()).append("instance.pid") ; QFile(path).remove() ; #endif } void Controller::setContentKeyPasswd(QString aPasswd) { iContentKeyPasswd = aPasswd ; } QString Controller::contentKeyPasswd() const { return iContentKeyPasswd ; } void Controller::setProfileInUse(const Hash& aProfileHash) { if ( iProfileHash != KNullHash ) { storePrivateDataOfSelectedProfile() ; } iProfileHash = aProfileHash ; iPwdChangeAct->setDisabled(false) ; int numberOfPrivateKeys = iModel->contentEncryptionModel().listKeys(true,NULL).size() ; if ( numberOfPrivateKeys > 1 ) { iProfileDeleteAct->setDisabled(false) ; iProfileSelectAct->setDisabled(false) ; } else { iProfileDeleteAct->setDisabled(true) ; iProfileSelectAct->setDisabled(true) ; } reStorePrivateDataOfSelectedProfile() ; emit userProfileSelected(iProfileHash) ; // must be Qt::QueuedConnection } const Hash& Controller::profileInUse() { return iProfileHash ; } // signal of received content void Controller::notifyOfContentReceived(const Hash& aHashOfContent, const ProtocolItemType aTypeOfReceivedContent) { LOG_STR2("Controller::notifyOfContentReceived type : %d", aTypeOfReceivedContent); if ( iCurrentWidget ) { iCurrentWidget->receiveNotifyOfContentReceived( aHashOfContent, aTypeOfReceivedContent) ; if ( aHashOfContent == iHashOfObjectBeingWaitedFor && aTypeOfReceivedContent == iTypeOfObjectBeingWaitedFor ) { emit waitDialogToBeDismissed() ; iHashOfObjectBeingWaitedFor= KNullHash ; // do not wait any more if ( aTypeOfReceivedContent == UserProfile ) { iCurrentWidget->showDetailsOfProfile(aHashOfContent) ; if ( iHashOfProfileCommentBeingWaitedFor != KNullHash ) { // stage 2: we were waiting for profile but actually // user wanted to see an ad: as we now have the profile, // lets ask for comment too // // lets check if we have the comment: ProfileComment* c ( iModel->profileCommentModel().profileCommentByFingerPrint(iHashOfProfileCommentBeingWaitedFor) ) ; if ( c == NULL ) { NetworkRequestExecutor::NetworkRequestQueueItem req ; req.iRequestType = RequestForProfileComment ; req.iRequestedItem = iHashOfProfileCommentBeingWaitedFor ; iHashOfProfileCommentBeingWaitedFor = KNullHash ; req.iState = NetworkRequestExecutor::NewRequest ; req.iDestinationNode = iNodeForCommentBeingWaitedFor ; iNodeForCommentBeingWaitedFor = KNullHash ; startRetrievingContent(req,false,UserProfileComment) ; userInterfaceAction ( DisplayProgressDialog, KNullHash , KNullHash ) ; } else { iCurrentWidget->showSingleCommentOfProfile(iHashOfProfileCommentBeingWaitedFor) ; delete c ; iHashOfProfileCommentBeingWaitedFor = KNullHash ; } } } else if ( aTypeOfReceivedContent == ClassifiedAd ) { iModel->lock() ; CA ca = iModel->classifiedAdsModel().caByHash(aHashOfContent) ; iModel->unlock() ; if ( ca.iFingerPrint != KNullHash ) { iCurrentWidget->showClassifiedAd(ca) ; } } else if ( aTypeOfReceivedContent == BinaryBlob ) { iCurrentWidget->openBinaryFile(aHashOfContent,false) ; } } } iRetrievalEngine->notifyOfContentReceived(aHashOfContent, aTypeOfReceivedContent) ; // offer profiles to trust list if ( aTypeOfReceivedContent == UserProfile ) { iModel->trustTreeModel()->contentReceived(aHashOfContent, aTypeOfReceivedContent) ; } } void Controller::notifyOfContentReceived(const Hash& aHashOfContent, const Hash& aHashOfClassification, const ProtocolItemType aTypeOfReceivedContent) { LOG_STR2("Controller::notifyOfContentReceived v2 type : %d", aTypeOfReceivedContent); if ( iCurrentWidget ) { iCurrentWidget->receiveNotifyOfContentReceived( aHashOfContent, aHashOfClassification, aTypeOfReceivedContent) ; if ( aHashOfContent == iHashOfObjectBeingWaitedFor && aTypeOfReceivedContent == iTypeOfObjectBeingWaitedFor ) { emit waitDialogToBeDismissed() ; iHashOfObjectBeingWaitedFor= KNullHash ; // do not wait any more if ( aTypeOfReceivedContent == UserProfile ) { iCurrentWidget->showDetailsOfProfile(aHashOfContent) ; if ( iHashOfProfileCommentBeingWaitedFor != KNullHash ) { ProfileComment* c ( iModel->profileCommentModel().profileCommentByFingerPrint(iHashOfProfileCommentBeingWaitedFor) ) ; if ( c ) { // we were waiting for profile but actually want to // to display one comment from that profile. we now // have the profile+comment iCurrentWidget->showSingleCommentOfProfile(iHashOfProfileCommentBeingWaitedFor) ; iHashOfProfileCommentBeingWaitedFor = KNullHash ; delete c ; } else { // stage 2: we were waiting for profile but actually // user wanted to see an ad: as we now have the profile, // lets ask for comment too NetworkRequestExecutor::NetworkRequestQueueItem req ; req.iRequestType = RequestForProfileComment ; req.iRequestedItem = iHashOfProfileCommentBeingWaitedFor ; iHashOfProfileCommentBeingWaitedFor = KNullHash ; req.iState = NetworkRequestExecutor::NewRequest ; req.iDestinationNode = iNodeForCommentBeingWaitedFor ; iNodeForCommentBeingWaitedFor = KNullHash ; startRetrievingContent(req,false,UserProfileComment) ; userInterfaceAction ( DisplayProgressDialog, KNullHash , KNullHash ) ; } } } else if ( aTypeOfReceivedContent == ClassifiedAd ) { iModel->lock() ; CA ca = iModel->classifiedAdsModel().caByHash(aHashOfContent) ; iModel->unlock() ; if ( ca.iFingerPrint != KNullHash ) { iCurrentWidget->showClassifiedAd(ca) ; } } } } iRetrievalEngine->notifyOfContentReceived(aHashOfContent, aTypeOfReceivedContent) ; } void Controller::notifyOfContentNotReceived(const Hash& aHashOfContent, const ProtocolItemType #ifdef DEBUG aTypeOfNotReceivdContent // needed only in debug build #else /* aTypeOfNotReceivdContent */ #endif ) { LOG_STR2("Controller::notifyOfContentNotReceived type : %d", aTypeOfNotReceivdContent); if ( iHashOfObjectBeingWaitedFor == aHashOfContent ) { iHashOfObjectBeingWaitedFor= KNullHash ; iHashOfProfileCommentBeingWaitedFor = KNullHash ; emit waitDialogToBeDismissed() ; QErrorMessage* errorDialog = new QErrorMessage(iCurrentWidget) ; errorDialog->showMessage ( tr("Could not find item from network..") ); } } void Controller::startRetrievingContent(NetworkRequestExecutor::NetworkRequestQueueItem aReq, bool aIsBackgroundDl, ProtocolItemType aTypeOfExpectedObject) { // here queue the item into retrieval-engine iRetrievalEngine->startRetrieving(aReq, aIsBackgroundDl) ; iHashOfObjectBeingWaitedFor = aReq.iRequestedItem ; iTypeOfObjectBeingWaitedFor = aTypeOfExpectedObject ; } void Controller::storePrivateDataOfSelectedProfile(bool aPublishTrustListToo) { if ( iProfileHash!= KNullHash ) { QMap m ; m.insert(KPrivateDataContactsSection, iCurrentWidget->contactDataOfSelectedProfile()) ; if ( iHashDisplaynameMapping.size() > 0 ) { QMap cache ; QMapIterator i(iHashDisplaynameMapping); while (i.hasNext()) { i.next(); cache.insert(i.value(), i.key().toQVariant()) ; } m.insert(KPrivateDataContactsCache, cache) ; } m.insert(KPrivateDataTrustTree, iModel->trustTreeModel()->trustTreeSettings()) ; iModel->profileModel().setPrivateDataForProfile(iProfileHash, QVariant(m)) ; if ( iCurrentWidget->selectedProfile() ) { iCurrentWidget->selectedProfile()->iTrustList.clear() ; iCurrentWidget->selectedProfile()->iTrustList.append(iCurrentWidget->trustListOfSelectedProfile()) ; if ( aPublishTrustListToo ) { iCurrentWidget->selectedProfile()->iTimeOfPublish = QDateTime::currentDateTimeUtc().toTime_t() ; iModel->profileModel().publishProfile(*(iCurrentWidget->selectedProfile())); } } } else { LOG_STR("No selected profile while storePrivateDataOfSelectedProfile") ; } } void Controller::reStorePrivateDataOfSelectedProfile() { if ( iProfileHash!= KNullHash ) { QMap privateData = iModel->profileModel().privateDataOfProfile(iProfileHash).toMap() ; if (privateData.contains(KPrivateDataContactsSection)) { QVariantList listOfContacts (privateData[KPrivateDataContactsSection].toList()) ; iCurrentWidget->setContactDataOfSelectedProfile(listOfContacts) ; } if (privateData.contains(KPrivateDataTrustTree)) { iModel->trustTreeModel()->initModel(privateData[KPrivateDataTrustTree]) ; } else { iModel->trustTreeModel()->initModel(QVariant()) ; } iHashDisplaynameMapping.clear() ; if (privateData.contains(KPrivateDataContactsCache)) { QVariantMap contactsCache (privateData[KPrivateDataContactsCache].toMap()) ; QMapIterator i(contactsCache); while (i.hasNext()) { i.next(); Hash profileKey ; profileKey.fromQVariant(i.value()) ; QLOG_STR("Inserting into iHashDisplaynameMapping key = " + profileKey.toString() + " name " + i.key()) ; if ( profileKey.toString() != i.key() ) { iHashDisplaynameMapping.insert(profileKey,i.key() ) ; // not how i.key() is profile name. this is // because in QVariantMap the key is hard-coded to be a QString } else { QLOG_STR("..Or not, because name was profile hash") ; } } } } } bool Controller::isContactInContactList(const Hash& aFingerPrint) const { return iCurrentWidget->isContactInContactList(aFingerPrint) ; } QString Controller::displayableNameForProfile(const Hash& aProfileFingerPrint) const { return iHashDisplaynameMapping.value(aProfileFingerPrint, aProfileFingerPrint.toString()) ; } void Controller::offerDisplayNameForProfile(const Hash& aProfileFingerPrint, const QString& aDisplayName, const bool aStoreInPersistenStorage) { if ( aProfileFingerPrint.toString() != aDisplayName ) { if (aDisplayName.length() > 0 && ( ! iHashDisplaynameMapping.contains(aProfileFingerPrint )) ) { iHashDisplaynameMapping.insert(aProfileFingerPrint, aDisplayName) ; if ( aStoreInPersistenStorage ) { storePrivateDataOfSelectedProfile() ; } } else if ( iHashDisplaynameMapping.contains(aProfileFingerPrint ) && aDisplayName.length() > 0 ) { QString& contentAsDescriptor ( iHashDisplaynameMapping[aProfileFingerPrint] ) ; contentAsDescriptor = aDisplayName ; } } else { QLOG_STR("Offered display name was profile hash -> discarding") ; } } void Controller::displayFileInfoOnUi(const BinaryFile& aFileMetadata) { QMessageBox infoMessage ; QStringList info ; info.append(tr("SHA1: ")) ; info.append(aFileMetadata.iFingerPrint.toString()) ; info.append("\n") ; if ( aFileMetadata.iMimeType.length() > 0 ) { info.append(tr("Mime-Type: ")) ; info.append(aFileMetadata.iMimeType) ; info.append("\n") ; } if ( aFileMetadata.iDescription.length() > 0 ) { info.append(tr("Description: ")) ; info.append(aFileMetadata.iDescription) ; info.append("\n") ; } if ( aFileMetadata.iOwner.length() > 0 ) { info.append(tr("Publisher: ")) ; info.append(aFileMetadata.iOwner) ; info.append("\n") ; } if ( aFileMetadata.iContentOwner.length() > 0 ) { info.append(tr("Content owner: ")) ; info.append(aFileMetadata.iContentOwner) ; info.append("\n") ; } if ( aFileMetadata.iLicense.length() > 0 ) { info.append(tr("License: ")) ; info.append(aFileMetadata.iLicense) ; info.append("\n") ; } if ( aFileMetadata.iFileName.length() > 0 ) { info.append(tr("Name: ")) ; info.append(aFileMetadata.iFileName) ; info.append("\n") ; } QDateTime d ; d.setTime_t(aFileMetadata.iTimeOfPublish) ; info.append(tr("Date: ")) ; info.append(d.toString(Qt::SystemLocaleShortDate)) ; info.append("\n") ; infoMessage.setText(info.join("")) ; infoMessage.setStandardButtons( QMessageBox::Ok ); infoMessage.exec() ; } void Controller::sendProfileUpdateQuery(const Hash& aProfileFingerPrint, const Hash& aProfileNodeFingerPrint ) { NetworkRequestExecutor::NetworkRequestQueueItem req ; req.iRequestType = RequestForProfilePoll ; req.iRequestedItem = aProfileFingerPrint ; req.iState = NetworkRequestExecutor::NewRequest ; req.iDestinationNode = aProfileNodeFingerPrint ; // try to get time of last poll.. iModel->lock() ; req.iTimeStampOfItem = iModel->profileModel().getLastProfileUpdateTime (aProfileFingerPrint) ; iModel->addNetworkRequest(req) ; iModel->unlock() ; } classified-ads-0.09/controller.h000066400000000000000000000300531260620453500166550ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CONTROLLER_H #define CONTROLLER_H #include #include #include "mcontroller.h" #include "net/protocol.h" // for ProtocolItemType #include "datamodel/netrequestexecutor.h" class FrontWidget ; class PublishingEngine ; class RetrievalEngine ; class QMainWindow ; class QMenu ; /** * @brief Class for keeping app state. * * C of MVC-pattern is considered here. * UI events are routed * via this class and this implements scheduling of events * so that things happen in correct order. */ class Controller : public MController { Q_OBJECT public: /** * constructor */ Controller(QApplication& app) ; /** * Destructor */ ~Controller() ; /** * method that starts actions regarding content fetch from * network * @param aReq specifies the content,at least iRequestType and * iRequestedItem need to be there * @param aIsBackgroundDl is true if the retrieval may be * queued into background as a low-priority item */ virtual void startRetrievingContent(NetworkRequestExecutor::NetworkRequestQueueItem aReq, bool aIsBackgroundDl, ProtocolItemType aTypeOfExpectedObject) ; /** * From MController. * * Method for requesting different things to take place in UI. * controller mostly routes these to FrontWidget but other actions * may be in order too.. * @param aRequest users orders * @param aHashConcerned possible hash parameter ; can be * null hash if action is not about specific hash * @param aFetchFromNode possible node hash parameter ; if * concerning item is not found from local storage, * try to fetch it from given node ; is KNullHash, * then just do fetch using normal algorithm. * @return none */ virtual void userInterfaceAction ( CAUserInterfaceRequest aRequest, const Hash& aHashConcerned = KNullHash, const Hash& aFetchFromNode = KNullHash) ; /** * method for hiding UI */ virtual void hideUI() ; /** * method for showing UI */ virtual void showUI() ; /** * method selecting user profile in use. */ virtual void setProfileInUse(const Hash& aProfileHash) ; /** * method getting user profile in use. */ virtual const Hash& profileInUse() ; /** * method for setting passwd used to open private content encryption * rsa key. this password is stored in controller * and is then used by content-open/sign-operations when crypto lib * asks for password. */ virtual void setContentKeyPasswd(QString aPasswd) ; /** * method for getting passwd of private content keys previously set, see method * @ref Controller::setContentKeyPasswd */ virtual QString contentKeyPasswd() const ; public: // methods /** * Method for node ; this may be changed during startup-phase * but not after that */ virtual Node& getNode() const ; /** * method for network listener ; it is parent of all connections, * also the outgoing */ virtual NetworkListener *networkListener() const ; /** * method for getting datamodel */ virtual Model &model() const ; signals: void userProfileSelected(const Hash& aProfile) ; /** used for signalling possible wait dialog about dismissal */ void waitDialogToBeDismissed() ; public slots: virtual void exitApp() ; /**< quitting */ virtual void displayAboutBox() ; /**< bragging */ virtual void displayFront() ; /**< this initializes the "normal" display */ virtual void changeProfilePasswd() ; /**< name says it all. initiates UI sequence */ virtual void createProfile() ; /**< Initiates UI sequence for new profile*/ virtual void deleteProfile() ; /**< Initiates UI sequence for deleting profile*/ virtual void selectProfile() ; /**< Initiates UI sequence for selecting profile*/ virtual void displaySettings() ; /**< Slot for displaying node settings */ virtual void displayStatus() ; /**< Slot for displaying network status */ virtual void displaySearch() ; /**< Slot for displaying search dialog */ /** * Method for handling errors inside application. * @param aError Reason for error call, from error enum above * @param aExplanation NULL or human-readable description about what went * wrong. */ virtual void handleError(MController::CAErrorSituation aError, const QString& aExplanation) ; /** * This is receiving slot of signals sent from actual content handlers ; * when we receive new content, this method is hit, reason for this * is that we may be waiting for specific content somewhere * @param aHashOfContent item that was requested * @param aTypeOfReceivedContent item type requested */ void notifyOfContentReceived(const Hash& aHashOfContent, const ProtocolItemType aTypeOfReceivedContent ); /** * This is receiving slot of signals sent from actual content handlers ; * when we receive new content, this method is hit, reason for this * is that we may be waiting for specific content somewhere. * This overload is mostly hit by classified ads. * * @param aHashOfContent item that was requested * @param aHashOfClassification of item that was requested * @param aTypeOfReceivedContent item type requested */ void notifyOfContentReceived(const Hash& aHashOfContent, const Hash& aHashOfClassification, const ProtocolItemType aTypeOfReceivedContent ); /** * This is receiving slot of signals sent from * retrieval engine; * when we try to receive content and we do not get any, * this notifies user that time-out is due * @param aHashOfContent item that was requested * @param aTypeOfNotReceivdContent item type requested */ void notifyOfContentNotReceived(const Hash& aHashOfContent, const ProtocolItemType aTypeOfNotReceivdContent ); /** * Method for persisting profile private data inside datamodel. * Tnis is supposed to be called every time after private data * changes. * * lock the datamodel before calling this method * * @param aPublishTrustListToo if set to true, has selected profiles * trust list to be updated profile data and profile published * with the new trust list. */ virtual void storePrivateDataOfSelectedProfile(bool aPublishTrustListToo = false) ; /** * method for restoring private data of profile currently in use. * shall be called after new profile is selected in frontwidget. */ virtual void reStorePrivateDataOfSelectedProfile() ; /** * method for checking if a profile is found from contact * list of selected user */ virtual bool isContactInContactList(const Hash& aFingerPrint) const ; /** * method for producing a displayable version of a profile. * in practice this utilitizes the contacts of the selected profile * and a cache that is collected from private messages, * ads, profile comments and profiles */ virtual QString displayableNameForProfile(const Hash& aProfileFingerPrint) const ; /** * method for keeping profile hash<->displayname relation up to date. * this is called when display names are seen in profiles, ads, * private messages etc. */ virtual void offerDisplayNameForProfile(const Hash& aProfileFingerPrint, const QString& aDisplayName, const bool iUpdatePersistenStorage=false) ; /** * method that puts dialog or similar on display, about a published file */ virtual void displayFileInfoOnUi(const BinaryFile& aFileMetadata) ; /** * method for sending a poll around network regarding possible * update for a profile and possible addition of comments about * given profile. * * datamodel should not be locked when this is called. * * in practice this is called after user selects a profile to * be viewed ; it could be called periodically too for selected * profiles.. * * @param aProfileFingerPrint is fingerprint of the profile concerned. * @param aProfileNodeFingerPrint fingerprint of node that is suspected to * be the node where profile is published from. * this is naturally good candidate for * sending the query. */ void sendProfileUpdateQuery(const Hash& aProfileFingerPrint, const Hash& aProfileNodeFingerPrint = KNullHash ) ; private: void createMenus(); /**< menus here */ int createPidFile(); /** leave a mark to filesystem about instance */ void deletePidFile(); /** remove mark from filesystem about instance */ private: QMainWindow* iWin ; FrontWidget* iCurrentWidget ; /**< normally points to "frontwidget" instance */ QApplication& iApp ; QBoxLayout* iLayout ; QMenu *iFileMenu; QAction *iExitAct; QAction *iAboutAct; QAction *iPwdChangeAct; QAction *iProfileDeleteAct; QAction *iProfileCreateAct; QAction *iProfileSelectAct; QAction *iDisplaySettingsAct; QAction *iDisplayStatusAct; QAction *iDisplaySearchAct; Node *iNode ; /**< our network presence object, there is single instance */ Model *iModel ; /**< data storage animal */ NetworkListener *iListener ; /**< Incoming connections handler, for ipv4 */ NetworkConnectorEngine *iNetEngine ; /**< Outgoing connections handler */ QString iContentKeyPasswd ; /** passwd used to protect profile private RSA key */ Hash iProfileHash ; /**< fingerprint of profile currently in use */ PublishingEngine *iPubEngine ; /**< Logic for handling content publish */ RetrievalEngine* iRetrievalEngine ;/**< Logic for fetcing stuff from other nodes */ /** * if user requests for item that we do not have, lets put a * wait dialog in place and start wait for the object to appear * from network. in order to properly dismiss the dialog, * have here type (and later hash) of the objects that we're waiting * for */ ProtocolItemType iTypeOfObjectBeingWaitedFor ; /** * hash of object that user needs to wait. */ Hash iHashOfObjectBeingWaitedFor ; /** * hash of profile comment that user needs to wait. This is * used in two-stage fetch process of profile comment where * the profile may need to be retrieved first, then the * comment: we store there the profile comment hash for * duration of profile fetch */ Hash iHashOfProfileCommentBeingWaitedFor ; /** * Node where to ask for profile comment once profile * has been fetched */ Hash iNodeForCommentBeingWaitedFor ; /** * profile hash<->display_name mapping */ QMap iHashDisplaynameMapping ; } ; #endif classified-ads-0.09/datamodel/000077500000000000000000000000001260620453500162525ustar00rootroot00000000000000classified-ads-0.09/datamodel/binaryfile.cpp000066400000000000000000000131231260620453500211020ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "binaryfile.h" #include "../util/hash.h" #include "../log.h" #include "../util/jsonwrapper.h" #include #include "../mcontroller.h" #include "model.h" #include "contentencryptionmodel.h" static const char *KJSonBinaryFileName = "fileName" ; static const char *KJSonBinaryFileFP = "fingerPrint" ; static const char *KJSonBinaryFileDesc = "desc" ; static const char *KJSonBinaryFilePublisher = "publisher" ; static const char *KJSonBinaryFileContentOwner = "contentOwner" ; static const char *KJSonBinaryFileTime = "time" ; static const char *KJSonBinaryFileLicense = "license" ; static const char *KJSonBinaryFileMime = "mimetype" ; static const char *KJSonBinaryFileEncryption = "encrypted" ; BinaryFile::BinaryFile(const Hash& aHash) : iFingerPrint(aHash), iTimeOfPublish(0), iIsEncrypted(false), // initially all philes are phublic ; right? iIsCompressed(false), iLocalStorageStatus(LocalStorageStatusUnknown) { LOG_STR("BinaryFile::BinaryFile()") ; } BinaryFile::~BinaryFile() { LOG_STR("BinaryFile::~BinaryFile()") ; } QByteArray BinaryFile::asJSon(const MController& /*aController*/) const { // first have a map ; that is the top-level JSon-object QMap m ; m.insert(KJSonBinaryFileFP, iFingerPrint.toString()) ; // no non-ascii chars if ( iDescription.length() > 0 ) { m.insert(KJSonBinaryFileDesc, iDescription.toUtf8()) ; } if ( iFileName.length() > 0 ) { m.insert(KJSonBinaryFileName, iFileName.toUtf8()) ; } if ( iOwner.length() > 0 ) { m.insert(KJSonBinaryFilePublisher, iOwner.toUtf8()) ; } if ( iContentOwner.length() > 0 ) { m.insert(KJSonBinaryFileContentOwner, iContentOwner.toUtf8()) ; } m.insert(KJSonBinaryFileTime, iTimeOfPublish) ; if ( iLicense.length() > 0 ) { m.insert(KJSonBinaryFileLicense, iLicense.toUtf8()) ; } if ( iMimeType.length() > 0 ) { m.insert(KJSonBinaryFileMime, iMimeType.toUtf8()) ; } m.insert( KJSonBinaryFileEncryption, iIsEncrypted) ; QVariant j (m); // then put the map inside QVariant and that // may then be serialized in libqjson-0.7 and 0.8 QByteArray retval ( JSonWrapper::serialize(j) ) ; LOG_STR2("blob metadata %s", qPrintable(QString(retval))) ; return retval ; } bool BinaryFile::fromJSon(const QByteArray &aJSonBytes, const MController& /*aController*/ ) { bool ok; QVariantMap result ( JSonWrapper::parse (aJSonBytes, &ok) ); if (!ok) { return false ; } if ( result.contains(KJSonBinaryFileFP) ) { QString fingerPrintString = QString::fromUtf8(result[KJSonBinaryFileFP].toByteArray()) ; if ( fingerPrintString != iFingerPrint.toString() ) { // huhuu, inside is different FP from what the key says?? LOG_STR2("BinaryFile: Fingerprint in json %s" , qPrintable( fingerPrintString)) ; return false ; } } else { LOG_STR("BinaryFile: No fingerprint in json??" ) ; return false ; } if ( result.contains(KJSonBinaryFileName) ) { iFileName = QString::fromUtf8(result[KJSonBinaryFileName].toByteArray()) ; } if ( result.contains(KJSonBinaryFileDesc) ) { iDescription = QString::fromUtf8(result[KJSonBinaryFileDesc].toByteArray()) ; } if ( result.contains(KJSonBinaryFilePublisher) ) { iOwner = QString::fromUtf8(result[KJSonBinaryFilePublisher].toByteArray()) ; } if ( result.contains(KJSonBinaryFileContentOwner) ) { iContentOwner = QString::fromUtf8(result[KJSonBinaryFileContentOwner].toByteArray()) ; } if ( result.contains(KJSonBinaryFileTime) ) { iTimeOfPublish = result[KJSonBinaryFileTime].toUInt() ; } if ( result.contains(KJSonBinaryFileLicense) ) { iLicense = QString::fromUtf8(result[KJSonBinaryFileLicense].toByteArray()) ; } if ( result.contains(KJSonBinaryFileMime) ) { iMimeType = QString::fromUtf8(result[KJSonBinaryFileMime].toByteArray()) ; } if ( result.contains(KJSonBinaryFileEncryption) ) { iIsEncrypted = result[KJSonBinaryFileEncryption].toBool() ; } return ok ; } QString BinaryFile::displayName() const { QString retval ; if ( iIsEncrypted ) { retval = iFingerPrint.toString() ; } else { if ( iFileName.length() > 0 ) { retval = iFileName; } else { if ( iDescription.length() > 0 ) { retval = iDescription ; } else { // no filename nor description.. retval = iFingerPrint.toString() ; } } if ( retval.length() > 40 ) { retval = retval.left(40) ; } } return retval ; } classified-ads-0.09/datamodel/binaryfile.h000066400000000000000000000054231260620453500205530ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CLASSIFIED_BINARYFILE_H #define CLASSIFIED_BINARYFILE_H #include #include "../util/hash.h" // for class Hash class MController ; /** * @brief Carrier-class for binary blob * * Instances of this class are stored and retrieved using * @ref BinaryFileModel. Lets decide that this class carries * the metadata only, actual octet-stream of the file * is retrieved using a QByteArray only, there is method * for that in the model. */ class BinaryFile { public: /** enum for storing information if we have file locally or not */ enum LocalStorageStatus { FileIsLocallyStored, FileIsNotLocallyStored, LocalStorageStatusUnknown } ; BinaryFile(const Hash& aHash) ; /**< constructor */ ~BinaryFile() ; /**< destructor */ /** * method for string that is shown to user about the file. * Most often could be original name from filesystem but * other explanation too.. * @return string to display to user */ QString displayName() const ; QByteArray asJSon(const MController& aController) const ; /**< returns file data as JSon stream */ bool fromJSon(const QByteArray &aJSonBytes, const MController& aController ) ; /**< parses json into members*/ const Hash iFingerPrint ; /**< file hash */ QString iMimeType ; /**< what kind of data */ QString iDescription ; /**< what is inside */ QString iOwner ; /**< fingerprint of publisher */ QString iContentOwner ; /**< if someone owns the content, name or SHA1 fp */ QString iLicense ; /**< restriction in usage;PD or GPL or C-C or anything? */ QString iFileName ; /**< name of the file-system file */ quint32 iTimeOfPublish ; /**< seconds since 1-jan-1970 */ bool iIsEncrypted ; bool iIsCompressed ; /**< needs to be in DB, not in JSon */ LocalStorageStatus iLocalStorageStatus ; /** file is stored locally, or not */ } ; #endif classified-ads-0.09/datamodel/binaryfilelistingmodel.cpp000066400000000000000000000150471260620453500235240ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include "binaryfilelistingmodel.h" #include "../log.h" #include "binaryfile.h" BinaryFileListingModel::BinaryFileListingModel(QList& aFilesToList) : iFilesToList(aFilesToList) { for ( int i = 0 ; i < iFilesToList.size() ; i++ ) { updateFileDataInArray( iFilesToList[i],false ) ; } beginInsertColumns(QModelIndex(),0,0) ; endInsertColumns() ; beginInsertRows(QModelIndex(),0,iNamesAndFingerPrints.size()) ; endInsertRows() ; emit dataChanged(createIndex( 0 ,0), createIndex( iNamesAndFingerPrints.size() ,0)) ; } BinaryFileListingModel::~BinaryFileListingModel() { } int BinaryFileListingModel::rowCount(const QModelIndex& ) const { return iNamesAndFingerPrints.size(); } int BinaryFileListingModel::columnCount(const QModelIndex& ) const { return 1 ; // for the time being .. maybe this could be configurable? // add one column for possible icon // add another for optional delete-button with a drawing delegate? } QVariant BinaryFileListingModel::data(const QModelIndex &index, int role) const { if(!index.isValid()) return QVariant(); if(role == Qt::DisplayRole) { return iNamesAndFingerPrints.at(index.row()).second ; //return iProfiles.at(index.row()).toString(); } if(role == Qt::DecorationRole) { // here return QIcon of size 26x26 featuring lenin reading pravda? // maybe iLocalStorageStatus could be used here? return QVariant(); } if(role == Qt::ToolTipRole) { return iNamesAndFingerPrints.at(index.row()).first.toString() ; } return QVariant(); } void BinaryFileListingModel::addFile(const Hash& aFingerPrint) { if ( ! iFilesToList.contains(aFingerPrint) ) { iFilesToList.append(aFingerPrint) ; updateFileDataInArray(aFingerPrint,true) ; } } void BinaryFileListingModel::removeFile(const Hash& aFingerPrint) { int i ; if (iFilesToList.contains(aFingerPrint) ) { iFilesToList.removeOne(aFingerPrint) ; for ( i = 0 ; i < iNamesAndFingerPrints.size() ; i++ ) { if ( iNamesAndFingerPrints.at(i).first == aFingerPrint ) { beginRemoveRows(QModelIndex(),i,i) ; iNamesAndFingerPrints.removeAt(i); endRemoveRows() ; break ; } } } } void BinaryFileListingModel::updateFileDataInArray( const Hash& aFingerPrint,bool aEmit ) { bool found = false ; int i ; for ( i = 0 ; i < iNamesAndFingerPrints.size() ; i++ ) { if ( iNamesAndFingerPrints.at(i).first == aFingerPrint ) { iNamesAndFingerPrints.replace(i, QPair ( aFingerPrint, fileDisplayNameByFingerPrint(aFingerPrint) ) ); found = true ; break ; } } if(!found) { // was not contained beginInsertRows(QModelIndex(),iNamesAndFingerPrints.size(),iNamesAndFingerPrints.size()) ; iNamesAndFingerPrints.append( QPair ( aFingerPrint, fileDisplayNameByFingerPrint(aFingerPrint) )); i = iNamesAndFingerPrints.size() ; endInsertRows() ; found = true ; } if ( aEmit && found ) { int minRow = i>0 ? i-1 : 0 ; int maxRow = i>=iNamesAndFingerPrints.size()? iNamesAndFingerPrints.size():i+1 ; LOG_STR2("Emit from row %d", minRow) ; LOG_STR2("Emit to row %d", maxRow) ; emit dataChanged(createIndex( minRow,0), createIndex( maxRow,0)); } } QString BinaryFileListingModel::fileDisplayNameByFingerPrint(const Hash& aFingerPrint) { // some kind of caching could be in order here? we'll repeatedly list // same profilenames, querying db for each and every listing is waste // of resources.. QSqlQuery query; bool ret ; QString retval ; ret = query.prepare ( "select display_name from binaryfile where " "hash1=:hash1 and hash2=:hash2 and hash3=:hash3 " "and hash4=:hash4 and hash5=:hash5 " ) ; if ( ret ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); ret = query.exec() ; if ( !ret ) { emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() ) { retval = QString::fromUtf8(query.value(0).toByteArray()) ; } } } else { emit error(MController::DbTransactionError, query.lastError().text()) ; } if ( retval.length() == 0 ) { retval = aFingerPrint.toString() ; } return retval ; } QVariant BinaryFileListingModel::headerData(int aSection, Qt::Orientation orientation, int role) const { if (role != Qt::DisplayRole) return QVariant(); if (orientation == Qt::Horizontal) { switch (aSection) { case 0: return QVariant(tr("Name or fingerprint of file")); break ; default: return QVariant(); } } return QVariant(); } void BinaryFileListingModel::clear() { #if QT_VERSION >= 0x050000 // qt5 beginResetModel() ; #endif iFilesToList.clear() ; iNamesAndFingerPrints.clear() ; #if QT_VERSION >= 0x050000 endResetModel() ; #else reset() ; #endif } classified-ads-0.09/datamodel/binaryfilelistingmodel.h000066400000000000000000000056171260620453500231730ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef BINARYFILELISTINGMODEL_H #define BINARYFILELISTINGMODEL_H #include #include "../util/hash.h" #include "../mcontroller.h" class BinaryFile ; class Model ; /** * @brief Model-class for helping display of shared binary blobs, * usually from a profile */ class BinaryFileListingModel: public QAbstractTableModel { Q_OBJECT public: BinaryFileListingModel(QList& aFilesToList) ;/**< Constructor */ ~BinaryFileListingModel() ; /**< Destructor */ /** * method for removing a reader. * too. * @param aFingerPrint is fingerprint of the file to add */ void addFile(const Hash& aFingerPrint) ; /** * method for removing a file. * too. * @param aFingerPrint is fingerprint of the file to remove */ void removeFile(const Hash& aFingerPrint) ; /** * method for retrieving display-name of a file */ QString fileDisplayNameByFingerPrint(const Hash& aFingerPrint) ; /** * re-implemented from QAbstractTableModel * @return number of rows in list */ virtual int rowCount(const QModelIndex & parent = QModelIndex()) const ; /** * re-implemented from QAbstractTableModel * @return number of columns in model */ virtual int columnCount ( const QModelIndex & parent = QModelIndex() ) const ; /** * re-implemented from QAbstractTableModel * @return data to display in list */ virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const ; virtual QVariant headerData(int aSection, Qt::Orientation orientation, int role) const ; /** * method for emptying model contents when viewed profile changes */ void clear() ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: // methods void updateFileDataInArray( const Hash& aFingerPrint,bool aEmit ) ; private: // data QList& iFilesToList ; QList > iNamesAndFingerPrints ; } ; #endif classified-ads-0.09/datamodel/binaryfilemodel.cpp000066400000000000000000001077701260620453500221370ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifdef WIN32 // include this as very first item? #define NOMINMAX #include #endif #include "binaryfilemodel.h" #include "../log.h" #include "../util/hash.h" #include "model.h" #include #include #include "binaryfile.h" #include "profile.h" #include "contentencryptionmodel.h" #ifndef WIN32 #include #endif #include "../util/jsonwrapper.h" #include "mmodelprotocolinterface.h" #include "profilemodel.h" #include "const.h" BinaryFileModel::BinaryFileModel(MController *aController, const MModelProtocolInterface &aModel) : ModelBase("binaryfile",KMaxRowsInTableBinaryFile), iController(aController), iModel(aModel) { LOG_STR("BinaryFileModel::BinaryFileModel()") ; connect(this, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; } BinaryFileModel::~BinaryFileModel() { LOG_STR("BinaryFileModel::~BinaryFileModel()") ; iController = NULL ; // not owned, just set null } Hash BinaryFileModel::publishBinaryFile(const Profile& aPublishingProfile, const QString& aFileName, const QString& aDescription, const QString& aMimeType, const QString& aOwner, const QString& aLicense, const QByteArray& aContents, bool aIsCompressed, bool aNoEncryption, const QList* aBinaryRecipientList) { LOG_STR("BinaryFileModel::publishBinaryFile()") ; Hash retval ; bool operation_success (false) ; Hash contentFingerPrint ; QByteArray encryptedContent ; bool encryption_was_used (false) ; QList namedRecipientsList ; if ( aBinaryRecipientList != NULL ) { namedRecipientsList.append(*aBinaryRecipientList) ; // encrypt to self too, or sender can not read the attachment if ( ! namedRecipientsList.contains(aPublishingProfile.iFingerPrint) ) { namedRecipientsList.append(aPublishingProfile.iFingerPrint) ; } } if ( ( aNoEncryption == false && aPublishingProfile.iIsPrivate ) || aBinaryRecipientList != NULL ) { encryption_was_used = true ; if ( iController->model().contentEncryptionModel().encrypt(aBinaryRecipientList != NULL ? namedRecipientsList : aPublishingProfile.iProfileReaders, aContents, encryptedContent ) ) { contentFingerPrint.calculate(encryptedContent) ; } else { return retval ; } } else { // no encryption contentFingerPrint.calculate(aContents) ; } // ok, now we have the content, encrypted or not, lets invent // some metadata. // fingerprint of a file is the content alone, metadata may change // but the file remains the same, from this programs perspective. BinaryFile metadata(contentFingerPrint) ; metadata.iMimeType = aMimeType ; metadata.iOwner = aPublishingProfile.iFingerPrint.toString() ; metadata.iContentOwner = aOwner ; metadata.iFileName = aFileName ; metadata.iLicense = aLicense ; metadata.iDescription = aDescription ; metadata.iTimeOfPublish = QDateTime::currentDateTimeUtc().toTime_t() ; metadata.iIsEncrypted = encryption_was_used ; QByteArray metadataJSon ( metadata.asJSon(*iController) ) ; // now, if the profile is private. .. we do not publish // plaintext metadata either. lets encrypt the metadata too if ( encryption_was_used ) { QByteArray encryptedMetadata ; if ( iController->model().contentEncryptionModel().encrypt(aBinaryRecipientList != NULL ? namedRecipientsList : aPublishingProfile.iProfileReaders, metadataJSon, encryptedMetadata ) ) { metadataJSon.clear() ; metadataJSon.append(encryptedMetadata) ; encryptedMetadata.clear() ; } else { return retval ; } } // ok, now we have content, possibly encrypted, and metadata, // possibly encrypted. ready to publish, except for the signature. QByteArray signature ; if ( iController->model().contentEncryptionModel().sign(aPublishingProfile.iFingerPrint, encryption_was_used ? encryptedContent : aContents , signature, &metadataJSon ) == 0 ) { // signature went ok, then insert/update table QSqlQuery countQuery ; operation_success = countQuery.prepare("select count(hash1) from binaryfile where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5") ; if ( operation_success ) { countQuery.bindValue(":hash1", contentFingerPrint.iHash160bits[0]); countQuery.bindValue(":hash2", contentFingerPrint.iHash160bits[1]); countQuery.bindValue(":hash3", contentFingerPrint.iHash160bits[2]); countQuery.bindValue(":hash4", contentFingerPrint.iHash160bits[3]); countQuery.bindValue(":hash5", contentFingerPrint.iHash160bits[4]); operation_success = countQuery.exec() ; if ( operation_success && countQuery.next() && !countQuery.isNull(0) ) { int count ( countQuery.value(0).toInt() ) ; LOG_STR2("Count of hashes in table binaryfile = %d", count) ; if ( count == 0 ) { // content was new -> insert QSqlQuery ins ; operation_success = ins.prepare("insert into binaryfile" "(hash1,hash2,hash3,hash4,hash5," "publisher_hash1,publisher_hash2,publisher_hash3," "publisher_hash4,publisher_hash5," "contentdata,is_private,is_compressed," "time_last_reference,signature,display_name," "time_of_publish, metadata ) values ( :hash1," ":hash2,:hash3,:hash4,:hash5,:publisher_hash1," ":publisher_hash2,:publisher_hash3,:publisher_hash4," ":publisher_hash5,:contentdata," ":is_private,:is_compressed,:time_last_reference," ":signature,:display_name,:time_of_publish," ":metadata)" ) ; if ( operation_success ) { ins.bindValue(":hash1", contentFingerPrint.iHash160bits[0]); ins.bindValue(":hash2", contentFingerPrint.iHash160bits[1]); ins.bindValue(":hash3", contentFingerPrint.iHash160bits[2]); ins.bindValue(":hash4", contentFingerPrint.iHash160bits[3]); ins.bindValue(":hash5", contentFingerPrint.iHash160bits[4]); ins.bindValue(":publisher_hash1", aPublishingProfile.iFingerPrint.iHash160bits[0]); ins.bindValue(":publisher_hash2", aPublishingProfile.iFingerPrint.iHash160bits[1]); ins.bindValue(":publisher_hash3", aPublishingProfile.iFingerPrint.iHash160bits[2]); ins.bindValue(":publisher_hash4", aPublishingProfile.iFingerPrint.iHash160bits[3]); ins.bindValue(":publisher_hash5", aPublishingProfile.iFingerPrint.iHash160bits[4]); ins.bindValue(":contentdata", encryption_was_used ? encryptedContent : aContents ); ins.bindValue(":is_private", encryption_was_used) ; ins.bindValue(":is_compressed", aIsCompressed) ; ins.bindValue(":time_last_reference",metadata.iTimeOfPublish ) ; ins.bindValue(":time_of_publish",metadata.iTimeOfPublish ) ; ins.bindValue(":signature", signature) ; ins.bindValue(":display_name", aPublishingProfile.iIsPrivate ? contentFingerPrint.toString() : metadata.displayName()) ; ins.bindValue(":metadata", metadataJSon) ; if ( ( operation_success = ins.exec() ) == false ) { QLOG_STR(ins.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, ins.lastError().text()) ; } else { iCurrentDbTableRowCount++ ; } } else { QLOG_STR(ins.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, ins.lastError().text()) ; } } else { // content we already had -> update QSqlQuery upd ; operation_success = upd.prepare("update binaryfile set contentdata=:contentdata," "is_private=:is_private,is_compressed=:is_compressed," "publisher_hash1=:publisher_hash1," "publisher_hash2=:publisher_hash2," "publisher_hash3=:publisher_hash3," "publisher_hash4=:publisher_hash4," "publisher_hash5=:publisher_hash5," "time_last_reference=:time_last_reference," "signature=:signature,display_name=:display_name," "time_of_publish=:time_of_publish, metadata=:metadata " "where hash1 = :hash1 and hash2 = :hash2 and" " hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5") ; if ( operation_success ) { upd.bindValue(":hash1", contentFingerPrint.iHash160bits[0]); upd.bindValue(":hash2", contentFingerPrint.iHash160bits[1]); upd.bindValue(":hash3", contentFingerPrint.iHash160bits[2]); upd.bindValue(":hash4", contentFingerPrint.iHash160bits[3]); upd.bindValue(":hash5", contentFingerPrint.iHash160bits[4]); upd.bindValue(":publisher_hash1", aPublishingProfile.iFingerPrint.iHash160bits[0]); upd.bindValue(":publisher_hash2", aPublishingProfile.iFingerPrint.iHash160bits[1]); upd.bindValue(":publisher_hash3", aPublishingProfile.iFingerPrint.iHash160bits[2]); upd.bindValue(":publisher_hash4", aPublishingProfile.iFingerPrint.iHash160bits[3]); upd.bindValue(":publisher_hash5", aPublishingProfile.iFingerPrint.iHash160bits[4]); upd.bindValue(":contentdata", encryption_was_used ? encryptedContent : aContents ); upd.bindValue(":is_private", encryption_was_used) ; upd.bindValue(":is_compressed", aIsCompressed) ; upd.bindValue(":time_last_reference",metadata.iTimeOfPublish ) ; upd.bindValue(":time_of_publish",metadata.iTimeOfPublish ) ; upd.bindValue(":signature", signature) ; upd.bindValue(":display_name", aPublishingProfile.iIsPrivate ? contentFingerPrint.toString() : metadata.displayName()) ; upd.bindValue(":metadata", metadataJSon) ; if ( ( operation_success = upd.exec() ) == false ) { QLOG_STR(upd.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, upd.lastError().text()) ; } } } } else { QLOG_STR(countQuery.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, countQuery.lastError().text()) ; } } else { QLOG_STR(countQuery.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, countQuery.lastError().text()) ; } } if ( operation_success ) { QList emptyBangPath ; iController->model().addItemToBePublished(BinaryBlob, contentFingerPrint, emptyBangPath) ; retval = contentFingerPrint ; } return retval ; } BinaryFile* BinaryFileModel::binaryFileByFingerPrint(const Hash& aFingerPrint) { LOG_STR("BinaryFileModel::binaryFileByFingerPrint()") ; BinaryFile* retval = NULL ; QSqlQuery query; bool ret ; // note: here signature is not retrieved. signature is in // file content+metadata so we verify when retrieving the // content too ; from this method the returned metadata // might not be from correct sender -> again, this is then // verified in content-retrieval mode ret = query.prepare ("select metadata,is_private,is_compressed from binaryfile where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( ret ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); } ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) ) { QByteArray metadataData ( query.value(0).toByteArray()) ; bool isPrivate ( false ) ; isPrivate = !query.isNull(1) && query.value(1).toBool() ; retval = new BinaryFile(aFingerPrint) ; if ( isPrivate ) { QByteArray plainTextMetaData ; if ( iController->model().contentEncryptionModel().decrypt(metadataData, plainTextMetaData ) ) { retval->fromJSon(plainTextMetaData,*iController) ; } } else { // was then public and profileData is in plainText: retval->fromJSon(metadataData,*iController) ; } retval->iIsCompressed = !query.isNull(2) && query.value(2).toBool() ; } } return retval ; } // unlike previous method, this does check signature. // it might be useful to check for presence of aPresumedSender // public key before calling this method.. for the sake of // producing meaningful errormessages. bool BinaryFileModel::binaryFileDataByFingerPrint(const Hash& aFingerPrint, const Hash& aPresumedSender, QByteArray& aResultingFileData, QByteArray& aResultingSignature, bool* aIsBinaryFilePrivate ) { LOG_STR2("BinaryFileModel::binaryFileDataByFingerPrint() %s", qPrintable(aFingerPrint.toString())) ; bool retval = false ; QSqlQuery query ; retval = query.prepare ("select contentdata,signature,is_private,is_compressed,metadata from binaryfile where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( retval ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); } retval = query.exec() ; if ( !retval ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) && !query.isNull(1) ) { QByteArray fileData ( query.value(0).toByteArray()) ; aResultingSignature.clear() ; aResultingSignature.append ( query.value(1).toByteArray()) ; QByteArray metadata ( query.value(4).toByteArray()) ; bool isCompressed ( false ) ; *aIsBinaryFilePrivate = !query.isNull(2) && query.value(2).toBool() ; isCompressed = !query.isNull(3) && query.value(3).toBool() ; if ( fileData.size() > 0 && aResultingSignature.size() > 0 && metadata.size() > 0 && iController->model().contentEncryptionModel().verify(aPresumedSender, fileData, aResultingSignature, &metadata ) ) { // good signature // so check if de-cryption needed if ( *aIsBinaryFilePrivate ) { QByteArray plainTextContents ; if ( iController->model().contentEncryptionModel().decrypt(fileData, plainTextContents ) ) { fileData.clear() ; fileData.append(plainTextContents) ; plainTextContents.clear() ; } else { // signature was ok but obviously we're not among recipients: retval = false ; fileData.clear() ; } } if ( fileData.size() > 0 ) { aResultingFileData.clear() ; if ( isCompressed ) { aResultingFileData.append(qUncompress(fileData)) ; } else { aResultingFileData.append(fileData) ; } if ( aResultingFileData.size() > 0 ) { retval = true ; // uncompress returns empty if data corrupt - signature to save? } } else { // empty phile? retval = false ; } } else { // signature failed retval = false ; } } } return retval ; } bool BinaryFileModel::sentBinaryFileReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QByteArray& aKeyOfPublisher, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& aFromNode) { const QList dummyBangPath; return doHandleReceivedFile(aFingerPrint, aContent, aSignature, dummyBangPath, aKeyOfPublisher, aFlags, aTimeStamp, false, aFromNode) ; } bool BinaryFileModel::publishedBinaryFileReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aKeyOfPublisher, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& aFromNode ) { return doHandleReceivedFile(aFingerPrint, aContent, aSignature, aBangPath, aKeyOfPublisher, aFlags, aTimeStamp, true , aFromNode) ; } bool BinaryFileModel::doHandleReceivedFile(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aKeyOfPublisher, const unsigned char aFlags, const quint32 aTimeStamp, const bool aWasPublish, const Hash& aFromNode ) { bool retval ( false ) ; bool hostAlreadyHadContent ( false ) ; QSqlQuery query ; retval = query.prepare ("select count(contentdata) from binaryfile where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( retval ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); } retval = query.exec() ; int count(0) ; if ( !retval ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) ) { count = query.value(0).toInt() ; } } if ( count > 0 ) { // this is ok situation, we had the content already retval = true ; hostAlreadyHadContent = true ; } else if ( (unsigned)(aContent.size()) > 0 ) { // ok, we did not have the content ; lets handle the signing key // first, by checking if we have that: Hash fingerPrintOfPublisher ( iController->model().contentEncryptionModel().hashOfPublicKey(aKeyOfPublisher) ) ; if ( fingerPrintOfPublisher != KNullHash ) { quint32* metadataLenNetworkBo ((quint32*)(aContent.constData())) ; quint32 metadataLen ( ntohl (*metadataLenNetworkBo) ) ; if ( metadataLen > (quint32)(aContent.size()) ) { return false ; // soromnoo } QByteArray metaDataBytes ( aContent.mid(sizeof(quint32), metadataLen) ) ; if ( iController->model().contentEncryptionModel().verify(aKeyOfPublisher, aContent.mid(sizeof(quint32)+metadataLen ), aSignature, &metaDataBytes, false ) ) { // if we got here then signature in the file did match // they key. iController->model().contentEncryptionModel().insertOrUpdatePublicKey(aKeyOfPublisher, fingerPrintOfPublisher) ; // next: //in binary file the content dictates the hash Hash calculatedFingerPrint ; calculatedFingerPrint.calculate(aContent.mid(sizeof(quint32)+metadataLen )) ; if ( aFingerPrint != calculatedFingerPrint ) { // err, what? LOG_STR("Binary file received: fingerprint does not match?") ; return false ; } // content was new -> insert QSqlQuery ins ; retval = ins.prepare("insert into binaryfile(hash1,hash2,hash3,hash4," "hash5,publisher_hash1,publisher_hash2," "publisher_hash3,publisher_hash4," "publisher_hash5,contentdata,is_private," "is_compressed," "time_last_reference,signature,display_name," "time_of_publish, metadata,recvd_from ) " " values ( :hash1," ":hash2,:hash3,:hash4,:hash5,:publisher_hash1," ":publisher_hash2," ":publisher_hash3,:publisher_hash4," ":publisher_hash5,:contentdata," ":is_private,:is_compressed,:time_last_reference," ":signature,:display_name,:time_of_publish," ":metadata,:recvd_from)" ) ; if ( retval ) { ins.bindValue(":hash1", aFingerPrint.iHash160bits[0]); ins.bindValue(":hash2", aFingerPrint.iHash160bits[1]); ins.bindValue(":hash3", aFingerPrint.iHash160bits[2]); ins.bindValue(":hash4", aFingerPrint.iHash160bits[3]); ins.bindValue(":hash5", aFingerPrint.iHash160bits[4]); ins.bindValue(":recvd_from", aFromNode.iHash160bits[4]); ins.bindValue(":publisher_hash1", fingerPrintOfPublisher.iHash160bits[0]); ins.bindValue(":publisher_hash2", fingerPrintOfPublisher.iHash160bits[1]); ins.bindValue(":publisher_hash3", fingerPrintOfPublisher.iHash160bits[2]); ins.bindValue(":publisher_hash4", fingerPrintOfPublisher.iHash160bits[3]); ins.bindValue(":publisher_hash5", fingerPrintOfPublisher.iHash160bits[4]); ins.bindValue(":contentdata", aContent.mid(sizeof(quint32)+metadataLen )); ins.bindValue(":is_private", (aFlags & 0x01) > 0 ) ; ins.bindValue(":is_compressed",(aFlags & 0x02) > 0 ) ; ins.bindValue(":time_last_reference",QDateTime::currentDateTimeUtc().toTime_t() ) ; ins.bindValue(":time_of_publish",aTimeStamp ) ; ins.bindValue(":signature", aSignature) ; if ( (aFlags & 0x01) ) { // file is encrypted ; insert fp as displayname ins.bindValue(":display_name", aFingerPrint.toString() ) ; } else { // file is not encrypted, parse metadata and extract displayname: BinaryFile metaData(aFingerPrint) ; if ( metaData.fromJSon(metaDataBytes, *iController ) ) { ins.bindValue(":display_name", metaData.displayName()) ; } else { return false ; // metadata did not parse } } ins.bindValue(":metadata", aContent.mid(sizeof(quint32), metadataLen)); if ( ( retval = ins.exec() ) == false ) { QLOG_STR(ins.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, ins.lastError().text()) ; } else { iCurrentDbTableRowCount++ ; retval = true ; // data saved } } else { QLOG_STR(ins.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, ins.lastError().text()) ; } } else { // signature did not verify.. LOG_STR("Binary file signature did not verify") ; } } else { // end of "if signing key looked ok" LOG_STR("Signing key could not be parsed when processing published/sent blob") ; retval = false ; } } if ( aWasPublish && hostAlreadyHadContent == false && retval == true ) { // re-publish new content until bangpath is full iController->model().addItemToBePublished(BinaryBlob, aFingerPrint, aBangPath) ; } if ( retval ) { emit contentReceived(aFingerPrint, BinaryBlob) ; } LOG_STR2("BinaryFileModel::published/sentBinaryFileReceived out success = %d", (int)retval) ; return retval ; } bool BinaryFileModel::binaryFileDataForPublish(const Hash& aFingerPrint, QByteArray& aResultingBinaryFileData, QByteArray& aResultingSignature, QByteArray& aPublicKeyOfPublisher, bool* aIsBinaryFilePrivate, bool* aIsBinaryFileCompressed ) { return doFindBinaryFileForPublishOrSend(aFingerPrint, aResultingBinaryFileData, aResultingSignature, aPublicKeyOfPublisher, aIsBinaryFilePrivate, aIsBinaryFileCompressed, NULL ) ; } bool BinaryFileModel::binaryFileDataForSend(const Hash& aFingerPrint, QByteArray& aResultingBinaryFileData, QByteArray& aResultingSignature, QByteArray& aPublicKeyOfPublisher, bool* aIsBinaryFilePrivate, bool* aIsBinaryFileCompressed, quint32* aTimeOfPublish) { return doFindBinaryFileForPublishOrSend(aFingerPrint, aResultingBinaryFileData, aResultingSignature, aPublicKeyOfPublisher, aIsBinaryFilePrivate, aIsBinaryFileCompressed, aTimeOfPublish ) ; } bool BinaryFileModel::doFindBinaryFileForPublishOrSend(const Hash& aFingerPrint, QByteArray& aResultingBinaryFileData, QByteArray& aResultingSignature, QByteArray& aPublicKeyOfPublisher, bool* aIsBinaryFilePrivate, bool* aIsBinaryFileCompressed, quint32* aTimeOfPublish ) { bool retval = false ; QSqlQuery query ; Hash fingerPrintOfPublisherKey; retval = query.prepare ("select contentdata,signature,is_private," "is_compressed,metadata,publisher_hash1," "publisher_hash2," "publisher_hash3,publisher_hash4,publisher_hash5," "time_of_publish from binaryfile where " "hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( retval ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); } retval = query.exec() ; bool contentIsOk ( false ) ; if ( !retval ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) && !query.isNull(1) ) { aResultingSignature.clear() ; aResultingSignature.append(query.value(1).toByteArray()) ; *aIsBinaryFilePrivate = query.value(2).toBool() ; *aIsBinaryFileCompressed = query.value(3).toBool() ; QByteArray metaData ( query.value(4).toByteArray()) ; quint32 metadataLenNetworkByteOrder ( htonl((quint32)(metaData.size()) ) ) ; aResultingBinaryFileData.clear() ; aResultingBinaryFileData.append((const char *)(&metadataLenNetworkByteOrder), sizeof(quint32)) ; aResultingBinaryFileData.append(metaData) ; metaData.clear() ; aResultingBinaryFileData.append(query.value(0).toByteArray()) ; fingerPrintOfPublisherKey.iHash160bits[0] = query.value(5).toUInt(); fingerPrintOfPublisherKey.iHash160bits[1] = query.value(6).toUInt(); fingerPrintOfPublisherKey.iHash160bits[2] = query.value(7).toUInt(); fingerPrintOfPublisherKey.iHash160bits[3] = query.value(8).toUInt(); fingerPrintOfPublisherKey.iHash160bits[4] = query.value(9).toUInt(); if ( aTimeOfPublish && !query.isNull(10)) { *aTimeOfPublish = query.value(10).toUInt(); #ifndef WIN32 #ifdef DEBUG time_t t ( *aTimeOfPublish ) ; char timebuf[40] ; LOG_STR2("Binary blob time of publish from db: %s", ctime_r(&t,timebuf)) ; #endif #endif } contentIsOk = true; } } if ( contentIsOk ) { // still need to handle they key of the publisher: quint32 dummyTimeStamp ; retval = iController->model().contentEncryptionModel().PublicKey(fingerPrintOfPublisherKey, aPublicKeyOfPublisher, &dummyTimeStamp ) ; } return retval ; } void BinaryFileModel::fillBucket(QList& aSendQueue, const Hash& aStartOfBucket, const Hash& aEndOfBucket, quint32 aLastMutualConnectTime, const Hash& aForNode ) { QSqlQuery query; bool ret ; ret = query.prepare ("select hash1,hash2,hash3,hash4,hash5 from binaryfile where hash1 >= :start and hash1 <= :end and time_of_publish > :last_connect_time and time_of_publish < :curr_time and ( recvd_from != :lowbits_of_requester or recvd_from is null ) order by time_of_publish desc limit 1000" ) ; if ( ret ) { if ( aStartOfBucket == aEndOfBucket ) { // this was "small network situation" e.g. start and end // are the same ; in practice it means that send all data query.bindValue(":start", 0x0); query.bindValue(":end", 0xFFFFFFFF); } else { // normal situation query.bindValue(":start", aStartOfBucket.iHash160bits[0]); query.bindValue(":end", aEndOfBucket.iHash160bits[0]); } query.bindValue(":last_connect_time", aLastMutualConnectTime); query.bindValue(":lowbits_of_requester", aForNode.iHash160bits[4]); query.bindValue(":curr_time", QDateTime::currentDateTimeUtc().toTime_t()); } ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { while ( query.next() ) { Hash hashFoundFromDb ( query.value(0).toUInt(), query.value(1).toUInt(), query.value(2).toUInt(), query.value(3).toUInt(), query.value(4).toUInt()) ; SendQueueItem fileToSend ; fileToSend.iHash = hashFoundFromDb ; fileToSend.iItemType = BinaryBlob ; aSendQueue.append(fileToSend) ; } } } classified-ads-0.09/datamodel/binaryfilemodel.h000066400000000000000000000317331260620453500215770ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CLASSIFIED_BINARYFILEMODEL_H #define CLASSIFIED_BINARYFILEMODEL_H #include #include "../mcontroller.h" // because enum from there is needed #include "../net/connection.h" #include "datamodelbase.h" class Hash ; class BinaryFile ; class MModelProtocolInterface ; class Profile ; /** * @brief This is part of datamodel for any binary blobs * * Initially this is for "shared files" profile-functionality but * this practically lets you share any octet-stream over DHT. */ class BinaryFileModel : public ModelBase { Q_OBJECT public: BinaryFileModel(MController *aMController, const MModelProtocolInterface &aModel) ; ~BinaryFileModel() ; /** * sends a file to selected nodes in network for others * to retrieve. * * Don't forget to re-publish the profile after successful * completion of file publish as list of files is part of * the profile itself. * * @param aPublishingProfile is the publishing profile ; it is used to * sign the content and its privacy-settings are used * decide if file content will be encrypted or not. * @param aFileName is string telling original file-system file name * @param aDescription is free text describing the content * @param aMimeType is mime type, like application/octet-stream or image/gif * @param aOwner who owns the file (content) * @param aLicense string for specifying usage permission, something like * "public domain" or "creative commons share-alike" * @param aContents is the meat being thrown * @param aIsCompressed indicates if aContent should be uncompressed * before use. * @param aNoEncryption If false then privateness of aPublishingProfile * is used to decide if content gets encrypted during * publish. If true then content will always go * out without encryption. Use-case for this is attachment * of public posting where everybody needs to be able to * read, also when poster has private profile. * @param aBinaryRecipientList Is list of fingerprints of profiles whose keys will * be used to encrypt the content. If these keys * are given, then normal "readers of publishing * profile" recipient-key-list method is not used. * Use-case for this parameter is attachment * of a private message; there is dual * recipient (sender and receiver) and that's it. * @return Fingerprint of the published file or KNullHash if * things went bad. */ Hash publishBinaryFile(const Profile& aPublishingProfile, const QString& aFileName, const QString& aDescription, const QString& aMimeType, const QString& aOwner, const QString& aLicense, const QByteArray& aContents, bool aIsCompressed, bool aNoEncryption = false, const QList* aBinaryRecipientList = NULL ) ; /** * Gets a file. Caller is supposed to delete the returned * object. Note that returned data contains metadata only, * for actual content use method * @refbinaryFileDataByFingerPrint and because signature * is calculated over metadata+content, this method does * not yet check for signature -> it is checked when * data is retrieved. * * @param aFingerPrint file serial number (hash) * @return file or NULL */ BinaryFile* binaryFileByFingerPrint(const Hash& aFingerPrint) ; /** * Method for getting file contents. Returned contents are un-encrypted * already when returned by this method, and un-compressed. And signature * is checked. Need to think a strategy around situation where we have * a file but we don't have public key of its publisher ; in this case * we just have no clue about origins of the file and this is possible * situation too. * * @param aFingerPrint profile serial number * @param aPresumedSender is fingerprint of the file sender from file * metadata -> file content verification against this key * must succeed. * @param aResultingBinaryFileData will contain profile data * @param aResultingSignature will contain profile signature * @param aIsBinaryFilePrivate will be set to true if aResultingBinaryFileData * is encrypted. * @return true if file was found */ bool binaryFileDataByFingerPrint(const Hash& aFingerPrint, const Hash& aPresumedSender, QByteArray& aResultingBinaryFileData, QByteArray& aResultingSignature, bool* aIsBinaryFilePrivate ) ; /** * called by protocol parser when a file is received due to publish * @param aFingerPrint is the profile @ref Hash received from protocol header * @param aContent is actual file data * @param aSignature is digital signature of the aContent * @param aBangPath is list of low-order bits of hashes of nodes * where this content has been. This is for preventing * sending content back to nodes where it has already been. * @param aKeyOfPublisher is the key that was used to sign the file. * that is transferred outside file just because the recipient * might not have the key beforehand ; if she does, the existing * key will be used in verifying process. * @param aFlags possible flags telling about encyption and compression * @param aTimeStamp timestamp of file (if encrypted, it must be carried outside..) * @param aFromNode hash of the node that sent the file. low-order bits * of the hash will be stored along with the content, serving * as bang-path of length 1. * @return true on success */ bool publishedBinaryFileReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aKeyOfPublisher, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& aFromNode ) ; /** * called by protocol parser when a file is received due to send * @param aFingerPrint is the profile @ref Hash received from protocol header * @param aContent is actual file data * @param aSignature is digital signature of the aContent * @param aKeyOfPublisher is the key that was used to sign the file. * that is transferred outside file just because the recipient * might not have the key beforehand ; if she does, the existing * key will be used in verifying process. * @param aFlags possible flags telling about encyption and compression * @param aTimeStamp timestamp of file (if encrypted, it must be carried outside..) * @param aFromNode fingerprint of the node that sent the content * @return true on success */ bool sentBinaryFileReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QByteArray& aKeyOfPublisher, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& aFromNode ) ; /** * method that returns unaltered binary file metadata+data * in single bytearray for purpose of publishing to other node * * @return true if content was found */ bool binaryFileDataForPublish(const Hash& aFingerPrint, QByteArray& aResultingBinaryFileData, QByteArray& aResultingSignature, QByteArray& aPublicKeyOfPublisher, bool* aIsBinaryFilePrivate, bool* iIsBinaryFileCompressed ) ; /** * method that returns unaltered binary file metadata+data * in single bytearray for purpose of sending to other node * * @return true if content was found */ bool binaryFileDataForSend(const Hash& aFingerPrint, QByteArray& aResultingBinaryFileData, QByteArray& aResultingSignature, QByteArray& aPublicKeyOfPublisher, bool* aIsBinaryFilePrivate, bool* aIsBinaryFileCompressed, quint32* aTimeOfPublish) ; /** * Method for filling connected peers send queue with items * that we have and that belong to said peers bucket. * * @param aSendQueue is send-queue of the connection that * serves particular node * @param aStartOfBucket is hash where bucket of that peer * starts. In practice it is the hash * of the node itself. * @param aEndOfBucket is hash where bucket of that peer ends. * That in turn depends on network size, * or number of active nodes in the network. * See method @ref NodeModel::bucketEndHash * for details. * @param aLastMutualConnectTime time when node was last in * contact. In practice we'll fill the * bucket items published after this time. * @param aForNode fingerprint of the node that asks for the bucket * fill ; reason for this is the recvd_from column * for preventing immediately re-sending content * sent from a peer */ void fillBucket(QList& aSendQueue, const Hash& aStartOfBucket, const Hash& aEndOfBucket, quint32 aLastMutualConnectTime, const Hash& aForNode ); signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; void contentReceived(const Hash& aHashOfContent, const ProtocolItemType aTypeOfReceivdContent) ; private: // methods /** workhorse of @binaryFileDataForSend and @binaryFileDataForPublish */ bool doFindBinaryFileForPublishOrSend(const Hash& aFingerPrint, QByteArray& aResultingBinaryFileData, QByteArray& aResultingSignature, QByteArray& aPublicKeyOfPublisher, bool* aIsBinaryFilePrivate, bool* aIsBinaryFileCompressed, quint32* aTimeOfPublish) ; /** * workhorse of methods publishedBinaryFileReceived and sentBinaryFileReceived */ bool doHandleReceivedFile(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aKeyOfPublisher, const unsigned char aFlags, const quint32 aTimeStamp, const bool aWasPublish, const Hash& aFromNode ) ; private: // member variables: MController *iController ; const MModelProtocolInterface& iModel ; } ; #endif classified-ads-0.09/datamodel/ca.cpp000066400000000000000000000173451260620453500173530ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "ca.h" #include "../util/hash.h" #include "../log.h" #include "../util/jsonwrapper.h" #include #include "../mcontroller.h" #include "model.h" #include "contentencryptionmodel.h" #include "profile.h" static const char *KCaJSonTimeElement = "timeOfPublish" ; static const char *KCaJSonAttachedFiles = "attachedPhiles" ; static const char *KCaJSonSenderName = "senderName" ; static const char *KCaJSonSenderHash = "senderFP" ; static const char *KCaJSonSubject = "subject" ; static const char *KCaJSonReplyTo = "replyTo" ; static const char *KCaJSonGroup = "group" ; static const char *KCaJSonText = "text" ; static const char *KCaJSonProfileKey = "key" ; static const char *KCaJSonCaVersion = "ver" ; static const char *KCaJSonCaAboutIndex = "aidx" ; static const char *KCaJSonCaConcernsIndex = "cidx" ; static const char *KCaJSonCaInIndex = "iidx" ; static const char *KCaJSonCaAboutTxt = "atxt" ; static const char *KCaJSonCaConcernsTxt = "ctxt" ; static const char *KCaJSonCaInTxt = "itxt" ; static const int KJSONCaVersionValue = 1 ; /**< if our format should change? */ CA::CA() : iFingerPrint(KNullHash), iTimeOfPublish(0), iReplyTo(KNullHash), iAboutComboBoxIndex(-1), iConcernsComboBoxIndex(-1), iInComboBoxIndex(-1) { LOG_STR("ClassifiedAd::ClassifiedAd()") ; } CA::~CA() { LOG_STR("ClassifiedAd::~ClassifiedAd()") ; } QByteArray CA::asJSon(const MController& /*aController*/) const { // first have a map ; that is the top-level JSon-object QMap m ; if ( iAttachedFiles.size() > 0 ) { QVariantList listOfPhiles; LOG_STR2("iAttachedFiles has size %d", iAttachedFiles.size()) ; foreach( const Hash& phile, iAttachedFiles ) { listOfPhiles.append(phile.toString()) ; } if ( listOfPhiles.size() > 0 ) { m.insert(KCaJSonAttachedFiles, listOfPhiles) ; } } m.insert(KCaJSonCaVersion, KJSONCaVersionValue) ; if ( iSenderName.length() > 0 ) { m.insert(KCaJSonSenderName, iSenderName.toUtf8()) ; } if ( iSenderHash != KNullHash ) { m.insert(KCaJSonSenderHash, iSenderHash.toString().toUtf8()) ; } if ( iSubject.length() > 0 ) { m.insert(KCaJSonSubject, iSubject.toUtf8()) ; } if ( iReplyTo != KNullHash ) { m.insert(KCaJSonReplyTo, iReplyTo.toString().toUtf8()) ; } if ( iGroup.length() > 0 ) { m.insert(KCaJSonGroup, iGroup.toUtf8()) ; } if ( iMessageText.length() > 0 ) { m.insert(KCaJSonText, iMessageText.toUtf8()) ; } m.insert(KCaJSonTimeElement, iTimeOfPublish) ; QByteArray encryptionKey ; if ( iProfileKey.length() > 0 ) { m.insert(KCaJSonProfileKey, iProfileKey) ; } if ( iAboutComboBoxIndex > -1 ) { m.insert(KCaJSonCaAboutIndex, iAboutComboBoxIndex) ; } else if ( iAboutComboBoxText.length() > 0 ) { m.insert(KCaJSonCaAboutTxt, iAboutComboBoxText.toUtf8()) ; } if ( iConcernsComboBoxIndex > -1 ) { m.insert(KCaJSonCaConcernsIndex, iConcernsComboBoxIndex) ; } else if ( iConcernsComboBoxText.length() > 0 ) { m.insert(KCaJSonCaConcernsTxt, iConcernsComboBoxText.toUtf8()) ; } if ( iInComboBoxIndex > -1 ) { m.insert(KCaJSonCaInIndex, iInComboBoxIndex) ; } else if ( iInComboBoxText.length() > 0 ) { m.insert(KCaJSonCaInTxt, iInComboBoxText.toUtf8()) ; } QVariant j (m); // then put the map inside QVariant and that // may then be serialized in libqjson-0.7 and 0.8 QByteArray retval ( JSonWrapper::serialize(j) ) ; LOG_STR2("ca %s", qPrintable(QString(retval))) ; return retval ; } bool CA::fromJSon(const QByteArray &aJSonBytes, const MController& /*aController*/ ) { bool ok; QVariantMap result ( JSonWrapper::parse (aJSonBytes, &ok) ); if (!ok) { QLOG_STR("QJson::Parser failed to parse " + QString::number(aJSonBytes.size()) + " bytes") ; return false ; } else { QLOG_STR("CA parse ok") ; } if ( result.contains(KCaJSonReplyTo) ) { iReplyTo.fromString((const unsigned char *)QString::fromUtf8(result[KCaJSonReplyTo].toByteArray()).toLatin1().constData()) ; } if ( result.contains(KCaJSonSenderHash) ) { iSenderHash.fromString((const unsigned char *)QString::fromUtf8(result[KCaJSonSenderHash].toByteArray()).toLatin1().constData()) ; } if ( result.contains(KCaJSonAttachedFiles) ) { QVariantList listOfSharedPhiles (result[KCaJSonAttachedFiles].toList()) ; QListIterator i(listOfSharedPhiles); iAttachedFiles.clear() ; while (i.hasNext()) { Hash h ; h.fromString((const unsigned char*)(i.next().toString().toLatin1().constData())) ; iAttachedFiles.append(h); } } if ( result.contains(KCaJSonSenderName) ) { iSenderName = QString::fromUtf8(result[KCaJSonSenderName].toByteArray()) ; } else { iSenderName.clear() ; } if ( result.contains(KCaJSonTimeElement) ) { iTimeOfPublish = result[KCaJSonTimeElement].toUInt() ; QLOG_STR("In ca time of publish = " + QString::number(iTimeOfPublish)); } else { QLOG_STR("Ca contained no time of publish" ); } if ( result.contains(KCaJSonSubject) ) { iSubject = QString::fromUtf8(result[KCaJSonSubject].toByteArray()) ; } else { iSubject.clear() ; } if ( result.contains(KCaJSonGroup) ) { iGroup = QString::fromUtf8(result[KCaJSonGroup].toByteArray()) ; } else { iGroup.clear() ; } if ( result.contains(KCaJSonText) ) { iMessageText = QString::fromUtf8(result[KCaJSonText].toByteArray()) ; } else { iMessageText.clear() ; } if ( result.contains(KCaJSonProfileKey) ) { iProfileKey.clear() ; iProfileKey.append(result[KCaJSonProfileKey].toByteArray()) ; } if ( result.contains(KCaJSonCaAboutIndex) ) { iAboutComboBoxIndex = result[KCaJSonCaAboutIndex].toInt() ; } else if ( result.contains(KCaJSonCaAboutTxt) ) { iAboutComboBoxText = QString::fromUtf8(result[KCaJSonCaAboutTxt].toByteArray()) ; } if ( result.contains(KCaJSonCaConcernsIndex) ) { iConcernsComboBoxIndex = result[KCaJSonCaConcernsIndex].toInt() ; } else if ( result.contains(KCaJSonCaConcernsTxt) ) { iConcernsComboBoxText = QString::fromUtf8(result[KCaJSonCaConcernsTxt].toByteArray()) ; } if ( result.contains(KCaJSonCaInIndex) ) { iInComboBoxIndex = result[KCaJSonCaInIndex].toInt() ; } else if ( result.contains(KCaJSonCaInTxt) ) { iInComboBoxText = QString::fromUtf8(result[KCaJSonCaInTxt].toByteArray()) ; } return ok ; } QString CA::displayName() const { QString retval ; if ( iSubject.length() > 0 ) { retval = iSubject ; } else { retval = iFingerPrint.toString() ; } return retval ; } classified-ads-0.09/datamodel/ca.h000066400000000000000000000052601260620453500170110ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CLASSIFIED_AD_H #define CLASSIFIED_AD_H #include #include "../util/hash.h" // for class Hash class MController ; class Profile ; /** * @brief Carrier-class for classified ad * * Instances of this class are stored and retrieved using * @ref ClassifiedAdsModel. */ class CA { public: CA() ; /**< constructor */ ~CA() ; /**< destructor */ /** * method for string that is shown to user about the ad. * * @return string to display to user */ QString displayName() const ; QByteArray asJSon(const MController& aController) const ; /**< returns ad data as JSon stream */ bool fromJSon(const QByteArray &aJSonBytes, const MController& aController ) ; /**< parses json into members*/ /** hash of the message text .. more specifically hash * of the ad when it is serialized into json */ Hash iFingerPrint ; QString iSenderName ; /**< nickname/display-name of sender ; may empty if private profile */ Hash iSenderHash ; /**< profile fingerprint of the sender */ quint32 iTimeOfPublish ; /**< seconds since 1-jan-1970 */ /** * file attachements ; they're published as normal binary blobs and * then just listed here */ QList iAttachedFiles ; QString iSubject ; /**< Subject of the post */ Hash iReplyTo ; /**< Possible reference to another post that this is reply to */ QString iGroup ; /**< about-concerning-where -string - a bit like usenet newsgroup */ QString iMessageText ; /**< actual message here */ QByteArray iProfileKey ; /**< in case of private profile, include only key */ int iAboutComboBoxIndex ; int iConcernsComboBoxIndex ; int iInComboBoxIndex ; QString iAboutComboBoxText ; QString iConcernsComboBoxText ; QString iInComboBoxText ; } ; #endif classified-ads-0.09/datamodel/calistingmodel.cpp000066400000000000000000000236621260620453500217650ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include "calistingmodel.h" #include "camodel.h" #include "mmodelprotocolinterface.h" #include "../log.h" #include "ca.h" #include "mcontroller.h" #include "model.h" CAListingModel::CAListingModel(const Hash& aForumToList, const MModelProtocolInterface &aModel, MController* aController) : iModel(aModel), iItemAndArticleHashRelation(NULL), iController(aController) { iItemAndArticleHashRelation = new QHash() ; connect(this, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; iModel.classifiedAdsModel().installCAObserver(this) ; if ( aForumToList != KNullHash ) { setClassification(aForumToList) ; } iListingHeaderDate = new QStandardItem (tr("Date")) ; ; iListingHeaderSubject = new QStandardItem (tr("Subject")) ; ; } CAListingModel::~CAListingModel() { LOG_STR("~CAListingModel()") ; // by this time ca-model has already been deleted // iModel.classifiedAdsModel().removeCAObserver(this) ; delete iItemAndArticleHashRelation ; delete iListingHeaderDate ; delete iListingHeaderSubject ; } QStandardItemModel* CAListingModel::theCaModel() { return &iCaModel ; } void CAListingModel::setClassification(const Hash& aForumToList ) { LOG_STR2("CAListingModel::setClassification hash %s", qPrintable(aForumToList.toString())) ; iCaModel.clear() ; iItemAndArticleHashRelation->clear() ; iForumToList = aForumToList ; if ( aForumToList != KNullHash ) { QSqlQuery q ; bool operation_success ; operation_success = q.prepare("select hash1,hash2,hash3,hash4,hash5," "display_name,time_of_publish,reply_to from classified_ad where " "group_hash1=:group_hash1 and group_hash2=:group_hash2 and " "group_hash3=:group_hash3 and group_hash4=:group_hash4 and " "group_hash5=:group_hash5 and jsondata is not null " "order by time_of_publish") ; q.bindValue(":group_hash1", aForumToList.iHash160bits[0]); q.bindValue(":group_hash2", aForumToList.iHash160bits[1]); q.bindValue(":group_hash3", aForumToList.iHash160bits[2]); q.bindValue(":group_hash4", aForumToList.iHash160bits[3]); q.bindValue(":group_hash5", aForumToList.iHash160bits[4]); LOG_STR2("Searching for ads with low-order group-bits %u", aForumToList.iHash160bits[4] ) ; operation_success = q.exec() ; QDateTime d; if ( operation_success ) { while ( q.next() ) { Hash articleFp (q.value(0).toUInt(), q.value(1).toUInt(), q.value(2).toUInt(), q.value(3).toUInt(), q.value(4).toUInt()) ; QString displayName ; if ( q.isNull(5) ) { QString displayName = "" ; } else { displayName = QString::fromUtf8(q.value(5).toByteArray()) ; } quint32 time_of_publish (q.value(6).toUInt()) ; quint32 reply_to (0); bool has_reply_to ; if ( q.isNull(7) ) { has_reply_to = false ; } else { has_reply_to = true ; reply_to = q.value(7).toUInt() ; } QList row_in_model ; QStandardItem* display_name_item = new QStandardItem ( displayName ); display_name_item->setData(articleFp.toQVariant(),Qt::UserRole) ; row_in_model << display_name_item ; d.setTime_t(time_of_publish) ; QStandardItem* date_item = new QStandardItem ( (d.toString(Qt::SystemLocaleShortDate) ) ) ; row_in_model << date_item ; if ( !has_reply_to ) { LOG_STR("Appending row to ca-model") ; iCaModel.invisibleRootItem()->appendRow(row_in_model); } else { QStandardItem* parent = iCaModel.invisibleRootItem() ; if ( iItemAndArticleHashRelation->contains(reply_to) ) { parent = iItemAndArticleHashRelation->value(reply_to) ; parent->appendRow(row_in_model); LOG_STR("Appending row to ca-model") ; } else { // there is parent but it is not found from our index -> display // as top-level item iCaModel.invisibleRootItem()->appendRow(row_in_model); } } iItemAndArticleHashRelation->insert(articleFp.iHash160bits[4], display_name_item) ; } } else { emit error(MController::DbTransactionError, q.lastError().text()); } } iCaModel.setHeaderData(0, Qt::Horizontal, QVariant(tr("Subject"))) ; iCaModel.setHeaderData(1, Qt::Horizontal, QVariant(tr("Date"))) ; } void CAListingModel::newCaReceived(const CA& aNewCa) { LOG_STR("New ad received") ; insertCaIntoModel(aNewCa.iFingerPrint) ; } void CAListingModel::newCaReceived(const Hash& aHashNewCa, const Hash& aHashOfClassification) { LOG_STR2("New ad received by hash, class high-bits = %u", aHashOfClassification.iHash160bits[0]) ; LOG_STR2("Currently listing classification high-bits = %u", iForumToList.iHash160bits[0]) ; if ( iForumToList == aHashOfClassification ) { iController->model().lock() ; insertCaIntoModel(aHashNewCa) ; iController->model().unlock() ; } } bool CAListingModel::insertCaIntoModel(const Hash& aArticleFingerPrint) { bool retval ( false ) ; QSqlQuery q ; bool operation_success ; operation_success = q.prepare("select display_name,time_of_publish,reply_to from classified_ad where " "hash1=:hash1 and hash2=:hash2 and " "hash3=:hash3 and hash4=:hash4 and " "hash5=:hash5 and jsondata is not null" ) ; q.bindValue(":hash1", aArticleFingerPrint.iHash160bits[0]); q.bindValue(":hash2", aArticleFingerPrint.iHash160bits[1]); q.bindValue(":hash3", aArticleFingerPrint.iHash160bits[2]); q.bindValue(":hash4", aArticleFingerPrint.iHash160bits[3]); q.bindValue(":hash5", aArticleFingerPrint.iHash160bits[4]); LOG_STR2("Searching for ads with low-order article-bits %u", aArticleFingerPrint.iHash160bits[4] ) ; operation_success = q.exec() ; QDateTime d; if ( operation_success ) { while ( q.next() ) { retval = true ; QString displayName ; if ( q.isNull(0) ) { QString displayName = "" ; } else { displayName = QString::fromUtf8(q.value(0).toByteArray()) ; } quint32 time_of_publish (q.value(1).toUInt()) ; quint32 reply_to (0); bool has_reply_to ; if ( q.isNull(2) ) { has_reply_to = false ; } else { has_reply_to = true ; reply_to = q.value(2).toUInt() ; } QList row_in_model ; QStandardItem* display_name_item = new QStandardItem ( displayName ); display_name_item->setData(aArticleFingerPrint.toQVariant(),Qt::UserRole) ; row_in_model << display_name_item ; d.setTime_t(time_of_publish) ; QStandardItem* date_item = new QStandardItem ( d.toString(Qt::SystemLocaleShortDate) ) ; row_in_model << date_item ; if ( !has_reply_to ) { LOG_STR("Appending row to ca-model from notify") ; iCaModel.invisibleRootItem()->appendRow(row_in_model); } else { QStandardItem* parent = iCaModel.invisibleRootItem() ; if ( iItemAndArticleHashRelation->contains(reply_to) ) { parent = iItemAndArticleHashRelation->value(reply_to) ; parent->appendRow(row_in_model); LOG_STR("Appending row to ca-model from notify") ; } else { // there is parent but it is not found from our index -> display // as top-level item iCaModel.invisibleRootItem()->appendRow(row_in_model); } } iItemAndArticleHashRelation->insert(aArticleFingerPrint.iHash160bits[4], display_name_item) ; } } else { emit error(MController::DbTransactionError, q.lastError().text()); } return retval ; } classified-ads-0.09/datamodel/calistingmodel.h000066400000000000000000000063441260620453500214300ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CALISTINGMODEL_H #define CALISTINGMODEL_H #include #include "../util/hash.h" #include "../mcontroller.h" #include "camodel.h" class BinaryFile ; class Model ; class MController ; /** * @brief Model-class for helping display of classified ads. */ class CAListingModel: public QObject , public ClassifiedAdsModel::CAObserver { Q_OBJECT public: /** * Constructor * @param aForumToList specifies the classification of the ads * to include into model */ CAListingModel(const Hash& aForumToList, const MModelProtocolInterface &aModel, MController* aController ) ; ~CAListingModel() ; /**< Destructor */ /** * method for getting the actual model for view to consume. * ownership of the pointer is not transferred. */ QStandardItemModel* theCaModel() ; /** * method for setting another forum to be listed * @param aForumToList specifies the forum */ void setClassification(const Hash& aForumToList) ; /** * notification method telling abuot newly-persisted * classified ad. From CAObserver. */ virtual void newCaReceived(const CA& aNewCa) ; /** * Notification method telling abuot newly-persisted * classified ad. Called from via controller. */ virtual void newCaReceived(const Hash& aHashNewCa, const Hash& aHashOfClassification) ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: // methods bool insertCaIntoModel(const Hash& aArticleFingerPrint) ; private: // data QStandardItemModel iCaModel ; /**< this model is exposed to UI */ Hash iForumToList ; /**< this model lists exactly one forum at time, given here */ const MModelProtocolInterface &iModel ; /**< datamodel reference */ /** * This qhash contains pointers to items inside iCaModel * but the key in hash is the low-order bits of the fingerprints * of the articles as there seems to be no convenient way * of finding items from model based on fingerprint, only * search seems to be text-based */ QHash* iItemAndArticleHashRelation ; MController *iController ; QStandardItem *iListingHeaderDate ; QStandardItem *iListingHeaderSubject ; } ; #endif classified-ads-0.09/datamodel/camodel.cpp000066400000000000000000001254641260620453500203760ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifdef WIN32 #define NOMINMAX #include #endif #include "camodel.h" #include "../log.h" #include "../util/hash.h" #include "model.h" #include #include #include "contentencryptionmodel.h" #ifndef WIN32 #include #endif #include "../util/jsonwrapper.h" #include "mmodelprotocolinterface.h" #include "ca.h" #include "profile.h" #include "const.h" #include "searchmodel.h" /** KStrToBeBought name of intent of ad: to be not localized */ const static QString KStrToBeBought("ToBeBought") ; const static QString KStrToBeSold("ToBeSold") ; const static QString KStrToBeGivenAway ("ToBeGivenAway") ; const static QString KStrIsWanted ("IsWanted") ; const static QString KStrToBeRented ("ToBeRented") ; const static QString KStrToBeAnnounced ("ToBeAnnounced") ; /** KStrConcerningCars name of object of ad: to be not localized */ const static QString KStrConcerningCars ("Cars"); const static QString KStrConcerningBoats ("Boats"); const static QString KStrConcerningBikes ("Bikes"); const static QString KStrConcerningOtherVehicles ("OtherVehicles"); const static QString KStrConcerningVehicleParts ("VehicleParts"); const static QString KStrConcerningHabitation ("Habitation"); const static QString KStrConcerningHouseholdAppliances ("HouseholdAppliances"); const static QString KStrConcerningFurniture ("Furniture"); const static QString KStrConcerningClothing ("Clothing"); const static QString KStrConcerningTools ("Tools"); const static QString KStrConcerningSports ("Sports"); const static QString KStrConcerningMusic ("Music"); const static QString KStrConcerningBooks ("Books"); const static QString KStrConcerningMovies ("Movies"); const static QString KStrConcerningAnimals ("Animals"); const static QString KStrConcerningElectronics ("Electronics"); const static QString KStrConcerningJobs ("Jobs"); const static QString KStrConcerningTransportation ("Transportation"); const static QString KStrConcerningServices ("Services"); const static QString KStrConcerningHealthcare ("Healthcare"); const static QString KStrConcerningFoodstuff ("Foodstuff"); const static QString KStrConcerningSoftware ("Software"); const static QString KStrConcerningEvents ("Events"); const static QString KStrConcerningEducation ("Education"); const static QString KStrConcerningFinance ("Finance"); const static QString KStrConcerningJewelry ("Jewelry"); const static QString KStrConcerningReligiousRituals ("ReligiousRituals"); const static QString KStrConcerningPhilosophy ("Philosophy"); ClassifiedAdsModel::ClassifiedAdsModel(MController *aController, const MModelProtocolInterface &aModel) : ModelBase("classified_ad",KMaxRowsInTableClassified_Ad), iController(aController), iModel(aModel), iNewCaObservers(NULL) { LOG_STR("ClassifiedAdsModel::ClassifiedAdsModel()") ; iNewCaObservers = new QList () ; connect(this, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; initComboBoxTexts() ; } ClassifiedAdsModel::~ClassifiedAdsModel() { LOG_STR("ClassifiedAdsModel::~ClassifiedAdsModel()") ; iController = NULL ; // not owned, just set null delete iNewCaObservers; iNewCaObservers = NULL ; } const QString& ClassifiedAdsModel::purposeOfAdString(PurposeOfAd aPurpose) const { switch ( aPurpose ) { case ToBeBought: return KStrToBeBought ; case ToBeSold: return KStrToBeSold; case ToBeGivenAway: return KStrToBeGivenAway; case IsWanted: return KStrIsWanted; case ToBeRented: return KStrToBeRented; case ToBeAnnounced: return KStrToBeAnnounced; } return KStrToBeAnnounced;// this statement never reached, but makes compiler // happy } QString ClassifiedAdsModel::localizedPurposeOfAdString(PurposeOfAd aPurpose) const { switch ( aPurpose ) { case ToBeBought: return tr("Buying") ; case ToBeSold: return tr("Selling") ; case ToBeGivenAway: return tr("Giving away") ; case IsWanted: return tr("Wanting") ; case ToBeRented: return tr("Renting") ; case ToBeAnnounced: return tr("Announcement") ; } return KStrToBeAnnounced;// this statement never reached, but makes compiler // happy } const QString& ClassifiedAdsModel::concernOfAdString(ConcernOfAd aConcern) const { switch ( aConcern ) { case ConcerningCars: return KStrConcerningCars ; case ConcerningBoats: return KStrConcerningBoats ; case ConcerningBikes: return KStrConcerningBikes ; case ConcerningOtherVehicles: return KStrConcerningOtherVehicles ; case ConcerningVehicleParts: return KStrConcerningVehicleParts ; case ConcerningHabitation: return KStrConcerningHabitation ; case ConcerningHouseholdAppliances: return KStrConcerningHouseholdAppliances ; case ConcerningFurniture: return KStrConcerningFurniture ; case ConcerningClothing: return KStrConcerningClothing ; case ConcerningTools: return KStrConcerningTools ; case ConcerningSports: return KStrConcerningSports ; case ConcerningMusic: return KStrConcerningMusic ; case ConcerningBooks: return KStrConcerningBooks ; case ConcerningMovies: return KStrConcerningMovies ; case ConcerningAnimals: return KStrConcerningAnimals ; case ConcerningElectronics: return KStrConcerningElectronics ; case ConcerningJobs: return KStrConcerningJobs ; case ConcerningTransportation: return KStrConcerningTransportation ; case ConcerningServices: return KStrConcerningServices ; case ConcerningHealthcare: return KStrConcerningHealthcare ; case ConcerningFoodstuff: return KStrConcerningFoodstuff ; case ConcerningSoftware: return KStrConcerningSoftware ; case ConcerningEvents: return KStrConcerningEvents ; case ConcerningEducation: return KStrConcerningEducation ; case ConcerningFinance: return KStrConcerningFinance ; case ConcerningJewelry: return KStrConcerningJewelry ; case ConcerningReligiousRituals: return KStrConcerningReligiousRituals ; case ConcerningPhilosophy: return KStrConcerningPhilosophy ; } // this statement never reached, but changes mood // of the compiler to be less angry return KStrConcerningPhilosophy; } QString ClassifiedAdsModel::localizedConcernOfAdString(ConcernOfAd aConcern) const { switch ( aConcern ) { case ConcerningCars: return tr("Cars") ; case ConcerningBoats: return tr("Boats") ; case ConcerningBikes: return tr("Bikes") ; case ConcerningOtherVehicles: return tr("Other vehicles") ; case ConcerningVehicleParts: return tr("Vehicle parts") ; case ConcerningHabitation: return tr("Habitation") ; case ConcerningHouseholdAppliances: return tr("Household appliances") ; case ConcerningFurniture: return tr("Furniture") ; case ConcerningClothing: return tr("Clothing") ; case ConcerningTools: return tr("Tools") ; case ConcerningSports: return tr("Sports") ; case ConcerningMusic: return tr("Music") ; case ConcerningBooks: return tr("Books") ; case ConcerningMovies: return tr("Movies") ; case ConcerningAnimals: return tr("Animals") ; case ConcerningElectronics: return tr("Electronics") ; case ConcerningJobs: return tr("Jobs") ; case ConcerningTransportation: return tr("Transportation") ; case ConcerningServices: return tr("Services") ; case ConcerningHealthcare: return tr("Healthcare") ; case ConcerningFoodstuff: return tr("Foodstuff") ; case ConcerningSoftware: return tr("Software") ; case ConcerningEvents: return tr("Events") ; case ConcerningEducation: return tr("Education") ; case ConcerningFinance: return tr("Finance") ; case ConcerningJewelry: return tr("Jewelry") ; case ConcerningReligiousRituals: return tr("Religious rituals") ; case ConcerningPhilosophy: return tr("Philosophy") ; } // this statement never reached, but changes mood // of the compiler to be almost cheerful return KStrConcerningPhilosophy; } Hash ClassifiedAdsModel::publishClassifiedAd(const Profile& aPublishingProfile, CA& aAd ) { Hash retval ( KNullHash ) ; QByteArray articleJson ( aAd.asJSon(*iController) ) ; QByteArray signature ; Hash articleFingerPrint ; Hash groupFingerPrint ; bool operation_success ( false ) ; if (aAd.iGroup.length() && articleJson.length() && iController->model().contentEncryptionModel().sign(aPublishingProfile.iFingerPrint, articleJson, signature ) == 0 ) { articleFingerPrint.calculate(articleJson) ; groupFingerPrint.calculate(aAd.iGroup.toUtf8()) ; QSqlQuery ins ; operation_success= ins.prepare("insert into classified_ad(" "hash1,hash2,hash3,hash4,hash5," "group_hash1,group_hash2,group_hash3," "group_hash4,group_hash5," "time_last_reference,time_added," "signature,display_name,time_of_publish," "jsondata,reply_to,time_last_reference) values (" ":hash1,:hash2,:hash3,:hash4,:hash5," ":group_hash1,:group_hash2,:group_hash3," ":group_hash4,:group_hash5," ":time_last_reference,:time_added," ":signature,:display_name,:time_of_publish," ":jsondata,:reply_to,:time_last_reference)") ; if ( operation_success ) { ins.bindValue(":hash1", articleFingerPrint.iHash160bits[0]); ins.bindValue(":hash2", articleFingerPrint.iHash160bits[1]); ins.bindValue(":hash3", articleFingerPrint.iHash160bits[2]); ins.bindValue(":hash4", articleFingerPrint.iHash160bits[3]); ins.bindValue(":hash5", articleFingerPrint.iHash160bits[4]); ins.bindValue(":group_hash1", groupFingerPrint.iHash160bits[0]); ins.bindValue(":group_hash2", groupFingerPrint.iHash160bits[1]); ins.bindValue(":group_hash3", groupFingerPrint.iHash160bits[2]); ins.bindValue(":group_hash4", groupFingerPrint.iHash160bits[3]); ins.bindValue(":group_hash5", groupFingerPrint.iHash160bits[4]); ins.bindValue(":time_last_reference",QDateTime::currentDateTimeUtc().toTime_t()); ins.bindValue(":time_added",QDateTime::currentDateTimeUtc().toTime_t()); ins.bindValue(":signature",signature); ins.bindValue(":display_name",aAd.displayName().toUtf8()); ins.bindValue(":time_of_publish",aAd.iTimeOfPublish); ins.bindValue(":jsondata",articleJson); ins.bindValue(":time_last_reference",QDateTime::currentDateTimeUtc().toTime_t()); if ( aAd.iReplyTo == KNullHash ) { ins.bindValue(":reply_to",QVariant(QVariant::String)); // NULL value } else { ins.bindValue(":reply_to",aAd.iReplyTo.iHash160bits[4]); // put low-order bits there } if ( ( operation_success = ins.exec() ) == false ) { emit error(MController::DbTransactionError, ins.lastError().text()) ; } else { // insert was successful: index the article aAd.iFingerPrint = articleFingerPrint ; iModel.searchModel()->indexClassifiedAd(aAd) ; } } else { QLOG_STR("ca insert failure" + ins.lastError().text()) ; emit error(MController::DbTransactionError, ins.lastError().text()) ; } } if ( operation_success ) { QList emptyBangPath ; iController->model().addItemToBePublished(ClassifiedAdPublish, articleFingerPrint, emptyBangPath ) ; // twist, twist. // // classified ads get published twice. first to content addr, // second time to group controller addr. iController->model().addItemToBePublished(ClassifiedAd2NdAddr, articleFingerPrint, emptyBangPath, groupFingerPrint) ; retval = articleFingerPrint ; iCurrentDbTableRowCount++ ; } return retval ; } bool ClassifiedAdsModel::caDataForPublish(const Hash& aFingerPrint, QByteArray& aResultingCaData, QByteArray& aResultingSignature, QByteArray& aPublicKeyOfPublisher, quint32 *aTimeOfPublish ) { bool retval = false ; QSqlQuery query ; Hash fingerPrintOfPublisherKey; retval = query.prepare ("select jsondata,signature from classified_ad where jsondata is not null and " "hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( retval ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); } retval = query.exec() ; if ( !retval ) { emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(1) ) { aResultingSignature.clear() ; aResultingSignature.append(query.value(1).toByteArray()) ; aResultingCaData.append(query.value(0).toByteArray()) ; CA ca ; if ( ca.fromJSon(aResultingCaData,*iController) ) { if ( aTimeOfPublish ) { *aTimeOfPublish = ca.iTimeOfPublish ; } aPublicKeyOfPublisher.clear() ; aPublicKeyOfPublisher.append(ca.iProfileKey) ; retval = aPublicKeyOfPublisher.size() > 0 ; } } } return retval ; } bool ClassifiedAdsModel::publishedCAReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aKeyOfPublisher, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& aFromNode ) { return doHandleReceivedCA(aFingerPrint, aContent, aSignature, aBangPath, aKeyOfPublisher, aFlags, aTimeStamp, true, aFromNode ) ; } bool ClassifiedAdsModel::sentCAReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QByteArray& aKeyOfPublisher, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& aFromNode ) { const QList dummy ; return doHandleReceivedCA(aFingerPrint, aContent, aSignature, dummy, aKeyOfPublisher, aFlags, aTimeStamp, false, aFromNode ) ; } bool ClassifiedAdsModel::doHandleReceivedCA(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aKeyOfPublisher, const unsigned char /*aFlags*/, const quint32 /*aTimeStamp*/, bool aWasPublish, const Hash& aFromNode ) { bool retval ( false ) ; bool hostAlreadyHadContent ( false ) ; bool operation_success(false) ; bool contentWasInserted ( false ) ; QSqlQuery query ; Hash groupFingerPrint ; retval = query.prepare ("select count(jsondata),count(hash1) from classified_ad where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( retval ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); } retval = query.exec() ; int count(0) ; int countOfHashes(0) ; if ( !retval ) { emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) ) { count = query.value(0).toInt() ; countOfHashes = query.value(1).toInt() ; } } QLOG_STR("Saving AD,count of data = " + QString::number(count) + " count of hash 1 = " + QString::number(countOfHashes) + " for hash1 = " + QString::number(aFingerPrint.iHash160bits[0])) ; bool needsToInsert (false) ; if ( countOfHashes > 0 ) { if ( count == 0 ) { // ok, we had the hash in the db but we did not have the content. needsToInsert = true ; QSqlQuery deletia ; deletia.prepare("delete from classified_ad where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5") ; deletia.bindValue(":hash1", aFingerPrint.iHash160bits[0]); deletia.bindValue(":hash2", aFingerPrint.iHash160bits[1]); deletia.bindValue(":hash3", aFingerPrint.iHash160bits[2]); deletia.bindValue(":hash4", aFingerPrint.iHash160bits[3]); deletia.bindValue(":hash5", aFingerPrint.iHash160bits[4]); deletia.exec() ; LOG_STR2("Delete done, rows = %d", deletia.numRowsAffected()); } else { // this is ok situation, we had the content already retval = true ; hostAlreadyHadContent = true ; } } else { needsToInsert = true ; } if ( needsToInsert ) { // content not found -> insert Hash fingerPrintOfPublisher ( iController->model().contentEncryptionModel().hashOfPublicKey(aKeyOfPublisher) ) ; if ( iController->model().contentEncryptionModel().verify(aKeyOfPublisher, aContent, aSignature, NULL, false ) ) { // if we got here then signature in the file did match // they key. iController->model().contentEncryptionModel().insertOrUpdatePublicKey(aKeyOfPublisher, fingerPrintOfPublisher); CA ca; ca.fromJSon(aContent, *iController) ; if ( ca.iProfileKey.size() > 0 && iController->model().contentEncryptionModel().hashOfPublicKey(aKeyOfPublisher) == fingerPrintOfPublisher ) { groupFingerPrint.calculate(ca.iGroup.toUtf8()) ; QSqlQuery ins ; operation_success= ins.prepare("insert into classified_ad(" "hash1,hash2,hash3,hash4,hash5," "group_hash1,group_hash2,group_hash3," "group_hash4,group_hash5," "time_last_reference,time_added," "signature,display_name,time_of_publish," "jsondata,reply_to,recvd_from) values (" ":hash1,:hash2,:hash3,:hash4,:hash5," ":group_hash1,:group_hash2,:group_hash3," ":group_hash4,:group_hash5," ":time_last_reference,:time_added," ":signature,:display_name,:time_of_publish," ":jsondata,:reply_to,:recvd_from)") ; if ( operation_success ) { ins.bindValue(":hash1", aFingerPrint.iHash160bits[0]); ins.bindValue(":hash2", aFingerPrint.iHash160bits[1]); ins.bindValue(":hash3", aFingerPrint.iHash160bits[2]); ins.bindValue(":hash4", aFingerPrint.iHash160bits[3]); ins.bindValue(":hash5", aFingerPrint.iHash160bits[4]); ins.bindValue(":group_hash1", groupFingerPrint.iHash160bits[0]); ins.bindValue(":group_hash2", groupFingerPrint.iHash160bits[1]); ins.bindValue(":group_hash3", groupFingerPrint.iHash160bits[2]); ins.bindValue(":group_hash4", groupFingerPrint.iHash160bits[3]); ins.bindValue(":group_hash5", groupFingerPrint.iHash160bits[4]); ins.bindValue(":time_last_reference",QDateTime::currentDateTimeUtc().toTime_t()); ins.bindValue(":time_added",QDateTime::currentDateTimeUtc().toTime_t()); ins.bindValue(":signature",aSignature); ins.bindValue(":display_name",ca.displayName().toUtf8()); ins.bindValue(":time_of_publish",ca.iTimeOfPublish); ins.bindValue(":jsondata",aContent); ins.bindValue(":recvd_from", aFromNode.iHash160bits[4]); if ( ca.iReplyTo == KNullHash ) { ins.bindValue(":reply_to",QVariant(QVariant::String)); // NULL value } else { ins.bindValue(":reply_to",ca.iReplyTo.iHash160bits[4]); // put low-order bits there } if ( ( operation_success = ins.exec() ) == false ) { emit error(MController::DbTransactionError, ins.lastError().text()) ; } else { retval = true ; // yes, yes contentWasInserted = true ; /* also check that profile key is stored in table profile, it will be referended * later when sending messages to user */ iModel.contentEncryptionModel().insertOrUpdatePublicKey(ca.iProfileKey, ca.iSenderHash, &ca.iSenderName) ; ca.iFingerPrint = aFingerPrint ; iModel.searchModel()->indexClassifiedAd(ca) ; } } else { emit error(MController::DbTransactionError, ins.lastError().text()) ; } } else { LOG_STR("No encryption key inside CA") ; } } else { // signature did not verify.. LOG_STR("CA signature did not verify") ; } } if ( aWasPublish && hostAlreadyHadContent == false && retval == true ) { // re-publish new content until bangpath is full iController->model().addItemToBePublished(ClassifiedAdPublish, aFingerPrint, aBangPath ) ; // twist, twist. // // classified ads get published twice. first to content addr, // second time to group controller addr. iController->model().addItemToBePublished(ClassifiedAd2NdAddr, aFingerPrint, aBangPath, groupFingerPrint) ; } if ( contentWasInserted ) { emit contentReceived(aFingerPrint, groupFingerPrint, ClassifiedAd) ; iCurrentDbTableRowCount++ ; } LOG_STR2("CAModel::published/sentCAReceived out success = %d", (int)retval) ; return retval ; } void ClassifiedAdsModel::installCAObserver(CAObserver* aObserver) { LOG_STR2("Installing new CA observer, this = %lx", (unsigned long) this) ; if ( !iNewCaObservers->contains(aObserver) ) { iNewCaObservers->append(aObserver) ; } } void ClassifiedAdsModel::removeCAObserver(CAObserver* aObserver) { if ( iNewCaObservers->contains(aObserver) ) { iNewCaObservers->removeAll(aObserver) ; } } CA ClassifiedAdsModel::caByHash(const Hash& aFingerPrint) { CA retval ; bool operation_success ; if ( aFingerPrint != KNullHash ) { QSqlQuery query ; operation_success = query.prepare ("select jsondata from classified_ad where " "jsondata is not null and hash1 = :hash1 and hash2 = :hash2 and " "hash3=:hash3 and hash4=:hash4 and hash5=:hash5" ) ; if ( operation_success ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); } operation_success = query.exec() ; if ( !operation_success ) { emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) ) { retval.fromJSon(query.value(0).toByteArray(),*iController) ; retval.iFingerPrint = aFingerPrint ; } } } return retval ; } void ClassifiedAdsModel::reIndexAllAdsIntoFTS() { QList articles ; QSqlQuery query; bool ret ; query.exec("delete from classified_ad_search") ; ret = query.prepare ("select hash1,hash2,hash3,hash4,hash5 from classified_ad") ; ret = query.exec() ; if ( !ret ) { emit error(MController::DbTransactionError, query.lastError().text()) ; } else { while ( query.next() ) { Hash hashFoundFromDb ( query.value(0).toUInt(), query.value(1).toUInt(), query.value(2).toUInt(), query.value(3).toUInt(), query.value(4).toUInt()) ; articles.append(hashFoundFromDb) ; } } foreach ( const Hash& a, articles ) { iModel.searchModel()->indexClassifiedAd( caByHash(a)) ; } } void ClassifiedAdsModel::fillBucket(QList& aSendQueue, const Hash& aStartOfBucket, const Hash& aEndOfBucket, quint32 aLastMutualConnectTime, const Hash& aForNode ) { QSqlQuery query; bool ret ; ret = query.prepare ("select hash1,hash2,hash3,hash4,hash5 from classified_ad where hash1 >= :start and hash1 <= :end and time_of_publish > :last_connect_time and time_of_publish < :curr_time and jsondata is not null and ( recvd_from != :lowbits_of_requester or recvd_from is null ) order by time_of_publish desc limit 1000" ) ; if ( ret ) { if ( aStartOfBucket == aEndOfBucket ) { // this was "small network situation" e.g. start and end // are the same ; in practice it means that send all data query.bindValue(":start", 0x0); query.bindValue(":end", 0xFFFFFFFF); } else { // normal situation query.bindValue(":start", aStartOfBucket.iHash160bits[0]); query.bindValue(":end", aEndOfBucket.iHash160bits[0]); } query.bindValue(":lowbits_of_requester", aForNode.iHash160bits[4]); query.bindValue(":last_connect_time", aLastMutualConnectTime); // shall a node misbehave (merely by having its clock grossly wrong) // its published works would be sent over and over again and again // if we didn't prevent future times from appearing here: query.bindValue(":curr_time", QDateTime::currentDateTimeUtc().toTime_t()); } ret = query.exec() ; if ( !ret ) { emit error(MController::DbTransactionError, query.lastError().text()) ; } else { while ( query.next() ) { Hash hashFoundFromDb ( query.value(0).toUInt(), query.value(1).toUInt(), query.value(2).toUInt(), query.value(3).toUInt(), query.value(4).toUInt()) ; SendQueueItem caToSend ; caToSend.iHash = hashFoundFromDb ; caToSend.iItemType = ClassifiedAd ; aSendQueue.append(caToSend) ; } } } void ClassifiedAdsModel::caListingByClassification(const Hash& aClassificationHash, quint32 aStartDate, quint32 aEndDate, QList >& aResultingArticles, const Hash& aRequestingNode) { QSqlQuery query; bool ret ; ret = query.prepare ("select hash1,hash2,hash3,hash4,hash5,time_of_publish from classified_ad where group_hash1 = :g1 and group_hash2 = :g2 and group_hash3 = :g3 and group_hash4 = :g4 and group_hash5 = :g5 and time_of_publish >= :startTime and time_of_publish <= :endTime and jsondata is not null and ( recvd_from != :lowbits_of_requester or recvd_from is null ) order by time_of_publish desc limit 1000" ) ; if ( ret ) { query.bindValue(":lowbits_of_requester", aRequestingNode.iHash160bits[4]); query.bindValue(":g1", aClassificationHash.iHash160bits[0]); query.bindValue(":g2", aClassificationHash.iHash160bits[1]); query.bindValue(":g3", aClassificationHash.iHash160bits[2]); query.bindValue(":g4", aClassificationHash.iHash160bits[3]); query.bindValue(":g5", aClassificationHash.iHash160bits[4]); query.bindValue(":startTime", aStartDate); query.bindValue(":endTime", aEndDate); ret = query.exec() ; if ( !ret ) { emit error(MController::DbTransactionError, query.lastError().text()) ; } else { while ( query.next() ) { Hash hashFoundFromDb ( query.value(0).toUInt(), query.value(1).toUInt(), query.value(2).toUInt(), query.value(3).toUInt(), query.value(4).toUInt()) ; quint32 ts ( query.value(5).toUInt() ) ; QPair p (hashFoundFromDb,ts) ; aResultingArticles.append(p) ; } } } return ; } bool ClassifiedAdsModel::caListingByClassificationReceived(QList >& aReceivedArticles, const Hash& aRequestingNode, const Hash& aClassification) { // start by figuring out which articles we already have QSqlQuery query; bool ret ; QByteArray selectStatement ("select hash1,hash2,hash3,hash4,hash5,time_of_publish from classified_ad where group_hash1 = :g1 and group_hash2 = :g2 and group_hash3 = :g3 and group_hash4 = :g4 and group_hash5 = :g5 and jsondata is not null and hash1 in (") ; const QByteArray closingParenthese(")") ; const QByteArray comma(",") ; for ( int i = 0 ; i p ( hashFoundFromDb, tsFromDb ) ; aReceivedArticles.removeAll(p) ; // removes 0 or more } } } // now aReceivedArticles contains only articles that we do not have if ( ret && ( aReceivedArticles.size() > 0 ) ) { LOG_STR2("List of ads: we did not have %d articles", aReceivedArticles.size()) ; quint32 current_time ( QDateTime::currentDateTimeUtc().toTime_t() ) ; QSqlQuery query2; ret = query2.exec("begin transaction ;") ; for ( int i = 0 ; ret && i #include "../mcontroller.h" // because enum from there is needed #include "../net/protocol.h" // for SendQueueItem #include "datamodelbase.h" #include class Hash ; class MModelProtocolInterface ; class Profile ; class CA ; /** * @brief This is part of datamodel for storage/retrieval of classified ads. * * This is persistent storage and search and retrieval of objects * that are the classified ads that this program is about. */ class ClassifiedAdsModel : public ModelBase { Q_OBJECT public: /** * In classified ads the ads are classified. The classifications * are defined here, first start about purpose of the ad */ enum PurposeOfAd { ToBeBought=0, /**< buy stuff ad */ ToBeSold=1, /**< stuff for sale -ad */ ToBeGivenAway=2, /**< crown jewels about to be given away here */ IsWanted=3, /**< something is wanted, against payment or not */ ToBeRented=4, /**< rental agreement, both ways */ ToBeAnnounced=5 /**< just announcement about topic */ } ; /** * Another classification for an classified ad: what item/real life * stuff the ad concerns */ enum ConcernOfAd { ConcerningCars=0, /**< is about cars */ ConcerningBoats=1, /**< is about thing floating */ ConcerningBikes=2, /**< is about 2-wheeled cars with no roof */ ConcerningOtherVehicles=3, /**< is about other vehicles like moon rockets */ ConcerningVehicleParts=4, /**< is about (spare) parts for moving things */ ConcerningHabitation=5, /**< is about places of residence */ ConcerningHouseholdAppliances=6, /**< is about machinery of residence */ ConcerningFurniture=7, /**< is about furniture items */ ConcerningClothing=8, /**< is about textiles */ ConcerningTools=9, /**< is about tools */ ConcerningSports=10, /**< is about sports, or items for sport */ ConcerningMusic=11, /**< is about music or notes or instruments etc. */ ConcerningBooks=12, /**< is about books */ ConcerningMovies=13, /**< is about movies */ ConcerningAnimals=14, /**< is about living creatures or accessories */ ConcerningElectronics=15, /**< is about electronics */ ConcerningJobs=16, /**< is about jobs like offers or requests */ ConcerningTransportation=17, /**< is about moving things or persons */ ConcerningServices=18, /**< is about services, any kind */ ConcerningHealthcare=19, /**< is about health-care services or products */ ConcerningFoodstuff=20, /**< is about things edible */ ConcerningSoftware=21, /**< is about computer sw */ ConcerningEvents=22, /**< is about events in time and place */ ConcerningEducation=23, /**< is about education */ ConcerningFinance=24, /**< is about financial services or products */ ConcerningJewelry=25, /**< is about items for accenting ugliness */ ConcerningReligiousRituals=26, /**< is about acts carrying attached meanings */ ConcerningPhilosophy=27 /**< is about meanings */ } ; /** * Classified ads are stored via this class (ClasifiedAdsModel) ; if * other parts of the sw wish to receive notifications about * about ads, here is observer that may be installed with * a method provided below. Method of the observer will be * called while datamodel is lock()ed. */ class CAObserver { /** * notification method telling about newly-persisted * classified ad */ virtual void newCaReceived(const CA& aNewCa) = 0 ; } ; /** * Constructor * @param aMController is application controller * @param aModel is datamodel * @return an instance */ ClassifiedAdsModel(MController *aMController, const MModelProtocolInterface &aModel) ; /** destructor */ ~ClassifiedAdsModel() ; /** string returned here is used for constructing hash of the classification */ const QString& purposeOfAdString(PurposeOfAd aPurpose) const ; /** string returned is displayed to user. idea is that when hash of the * classification is constructed, non-localized string from @ref purposeOfAdString * is used and same hash will be obtained regardless of the language used */ QString localizedPurposeOfAdString(PurposeOfAd aPurpose) const ; const QString& concernOfAdString(ConcernOfAd aConcern) const ; QString localizedConcernOfAdString(ConcernOfAd aConcern) const ; /** * sends a classified ads to selected nodes in network for others * to retrieve. * * @param aPublishingProfile is the publishing profile ; it is used to * sign the content * @param aAd is the meat being thrown * @return Fingerprint of the published file or KNullHash if * things went bad. */ Hash publishClassifiedAd( const Profile& aPublishingProfile,CA& aAd ) ; /** * method for getting ca data for publish purpose * @param aTimeOfPublish if non-NULL will have its value * set to publish time of the CA */ bool caDataForPublish(const Hash& aFingerPrint, QByteArray& aResultingCaData, QByteArray& aResultingSignature, QByteArray& aPublicKeyOfPublisher, quint32* aTimeOfPublish = NULL ) ; /** * method for getting CA data for any purpose, like display */ CA caByHash(const Hash& aFingerPrint) ; /** * called by protocol parser when a CA is received due to publish * @param aFingerPrint is the profile @ref Hash received from protocol header * @param aContent is actual ca data * @param aSignature is digital signature of the aContent * @param aBangPath is list of low-order bits of hashes of nodes * where this content has been. This is for preventing * sending content back to nodes where it has already been. * @param aKeyOfPublisher is the key that was used to sign the file. * that is transferred outside file just because the recipient * might not have the key beforehand ; if she does, the existing * key will be used in verifying process. * @param aFlags possible flags telling about encyption and compression * @param aTimeStamp timestamp of file (if encrypted, it must be carried outside..) * @return true on success */ bool publishedCAReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aKeyOfPublisher, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& aFromNode ) ; /** * called by protocol parser when a CA is received due to send * @param aFingerPrint is the profile @ref Hash received from protocol header * @param aContent is actual ca data * @param aSignature is digital signature of the aContent * @param aKeyOfPublisher is the key that was used to sign the file. * that is transferred outside file just because the recipient * might not have the key beforehand ; if she does, the existing * key will be used in verifying process. * @param aFlags possible flags telling about encyption and compression * @param aTimeStamp timestamp of file (if encrypted, it must be carried outside..) * @return true on success */ bool sentCAReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QByteArray& aKeyOfPublisher, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& aFromNode ) ; /** * method for installing observer for new ads */ void installCAObserver(CAObserver* aObserver) ; /** * method for removing previously installed observer for new ads */ void removeCAObserver(CAObserver* aObserver) ; /** * Method for filling connected peers send queue with items * that we have and that belong to said peers bucket. * * @param aSendQueue is send-queue of the connection that * serves particular node * @param aStartOfBucket is hash where bucket of that peer * starts. In practice it is the hash * of the node itself. * @param aEndOfBucket is hash where bucket of that peer ends. * That in turn depends on network size, * or number of active nodes in the network. * See method @ref NodeModel::bucketEndHash * for details. * @param aLastMutualConnectTime time when node was last in * contact. In practice we'll fill the * bucket items published after this time. */ void fillBucket(QList& aSendQueue, const Hash& aStartOfBucket, const Hash& aEndOfBucket, quint32 aLastMutualConnectTime, const Hash& aForNode ); /** * Method for fetching list of classified ads whose classification * matches given hash. This method produces content of reply to * protocol item KAdsClassifiedAtHash. * * @param aClassificationHash ad classification asked * @param aStartDate start of time period asked * @param aEndDate end of time period asked * @param aResultingArticles A list where results will be appended. * Hash is the CA hash, unsigned is its * timestamp * @param aRequestingNode fingerprint of node making the request */ void caListingByClassification(const Hash& aClassificationHash, quint32 aStartDate, quint32 aEndDate, QList >& aResultingArticles, const Hash& aRequestingNode ) ; /** * method for handling list of classified ads produced by method * @ref caListingByClassification. The thing is that we come to this * method when other node has sent us a list of ads available. * We may want to store the article fingerprints and try to obtain * them (the actual articles) later. For this reason the classified_ads * database table allows null values in content ; that may be fetched * later. Justification for this stupidity of not sending the article * with the hash is bandwidht: there may be a node keeping the list * of articles and rest of the ring keeping the articles. * * This will modify contents of aReceivedArticles to not contain * articles already found from db */ bool caListingByClassificationReceived(QList >& aReceivedArticles, const Hash& aRequestingNode, const Hash& aClassification) ; /** debug method, more or less. reads all ads and feeds them to * indexer */ void reIndexAllAdsIntoFTS() ; const QStringList& aboutComboBoxTexts() const ; /**< returns ui texts */ const QStringList& regardingComboBoxTexts() const ; /**< returns ui texts */ const QStringList& whereComboBoxTexts() const ; /**< returns ui texts */ signals: void error (MController::CAErrorSituation aError, const QString& aExplanation) ; /** emitted when new classified ad is received. * @param aHashOfContent is fingerprint of the article * @param aHashOfClassification fingerprint of classification * @param aTypeOfReceivdContent Type of content. This model mostly emits * ClassifiedAd -types */ void contentReceived(const Hash& aHashOfContent, const Hash& aHashOfClassification, const ProtocolItemType aTypeOfReceivdContent) ; private: // methods /** * this method is called from @ref publishedCAReceived and * also on method where CA that is sent to us is to be * handled */ bool doHandleReceivedCA(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aKeyOfPublisher, const unsigned char aFlags, const quint32 aTimeStamp, bool aWasPublish, const Hash& aFromNode ) ; /** initializes string lists used for classification comboboxes */ void initComboBoxTexts() ; private: // member variables: MController *iController ; const MModelProtocolInterface& iModel ; QList* iNewCaObservers ; QStringList iAboutComboBoxTexts ; QStringList iRegardingComboBoxTexts ; QStringList iWhereComboBoxTexts ; } ; #endif classified-ads-0.09/datamodel/connectionlistingmodel.cpp000066400000000000000000000147751260620453500235460ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "../log.h" #include "../mcontroller.h" #include "model.h" #include "connectionlistingmodel.h" #include #include ConnectionListingModel::ConnectionListingModel(Model& aModel, MController& aController ) : iModel(aModel), iController(aController), iTimerId(-1) { iTimerId = startTimer(15000) ; // every 15 sec updateModelContents() ; } ConnectionListingModel::~ConnectionListingModel() { LOG_STR("ConnectionListingModel::~ConnectionListingModel") ; if ( iTimerId != -1 ) { killTimer(iTimerId) ; } } void ConnectionListingModel::timerEvent(QTimerEvent * /* event */) { #if QT_VERSION >= 0x050000 // qt5 beginResetModel() ; #endif updateModelContents() ; #if QT_VERSION >= 0x050000 endResetModel() ; #else reset() ; #endif } int ConnectionListingModel::rowCount(const QModelIndex& ) const { return iConnections.size(); } int ConnectionListingModel::columnCount(const QModelIndex& ) const { return 5 ; } QVariant ConnectionListingModel::data(const QModelIndex &index, int role) const { if(!index.isValid()) return QVariant(); if ( role == Qt::UserRole ) { return iConnections.at(index.row()).iNodeFingerPrint.toQVariant() ; } switch ( index.column() ) { case 0: // addr if(role == Qt::DisplayRole) { return iConnections.at(index.row()).iAddr.toString() ; } else { return QVariant(); } break ; case 1: // inbound? if(role == Qt::DisplayRole) { return iConnections.at(index.row()).iIsInBound ; } else { return QVariant(); } break ; case 2: // bytes in if(role == Qt::DisplayRole) { if ( iConnections.at(index.row()).iBytesIn < 1024 ) { return QString::number(iConnections.at(index.row()).iBytesIn) ; } else if ( iConnections.at(index.row()).iBytesIn < (1024*1024) ) { return QString::number(iConnections.at(index.row()).iBytesIn/1024)+"k" ; } else { return QString::number(iConnections.at(index.row()).iBytesIn/(1024*1024))+"M" ; } } else { return QVariant(); } break ; case 3: // bytes out if(role == Qt::DisplayRole) { if ( iConnections.at(index.row()).iBytesOut < 1024 ) { return QString::number(iConnections.at(index.row()).iBytesOut) ; } else if ( iConnections.at(index.row()).iBytesOut < (1024*1024) ) { return QString::number(iConnections.at(index.row()).iBytesOut/1024)+"k" ; } else { return QString::number(iConnections.at(index.row()).iBytesOut/(1024*1024))+"M" ; } } else { return QVariant(); } break ; case 4: // time when opened if(role == Qt::DisplayRole) { QDateTime d ; d.setTime_t(iConnections.at(index.row()).iOpenTime) ; return d.toString(Qt::SystemLocaleShortDate) ; } else { return QVariant(); } break ; default: return QVariant(); // for unknown columns return empty } return QVariant(); } QVariant ConnectionListingModel::headerData ( int section, Qt::Orientation orientation, int role ) const { if (orientation != Qt::Horizontal ) { return QVariant(); } switch ( role ) { case Qt::ToolTipRole: switch ( section ) { case 0: return tr("Peer network address") ; break; case 1: return tr("Inbound connections are those where peer initiated connection") ; break; case 2: return tr("Data transferred from peer to your node") ; break; case 3: return tr("Data transferred to peer from your node") ; break; case 4: return tr("Time when connection was opened") ; break; default: return QVariant(); break ; } break ; case Qt::DisplayRole: switch ( section ) { case 0: return tr("Address") ; break; case 1: return tr("Inbound") ; break ; case 2: return tr("Bytes in") ; break ; case 3: return tr("Bytes out") ; break ; case 4: return tr("Open time") ; break ; default: return QVariant(); } break ; case Qt::SizeHintRole: switch ( section ) { case 0: return QSize(300,25) ; break; case 1: return QSize(50,25) ; break ; case 2: return QSize(50,25) ; break ; case 3: return QSize(50,25) ; break ; case 4: return QSize(50,25) ; break ; default: return QVariant(); } break ; default: return QVariant(); break ; } } void ConnectionListingModel::updateModelContents() { iModel.lock() ; const QList & connections = iModel.getConnections() ; iConnections.clear() ; foreach ( const Connection *c, connections ) { if ( c ) { ConnectionDisplayItem i ; i.iAddr = c->peerAddress() ; i.iIsInBound = c->isInbound() ; i.iBytesIn = c->bytesIn(); i.iBytesOut = c->bytesOut() ; i.iOpenTime = c->getOpenTime() ; iConnections.append(i) ; } } iModel.unlock() ; } classified-ads-0.09/datamodel/connectionlistingmodel.h000066400000000000000000000054341260620453500232030ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CONNECTIONLISTINGMODEL_H #define CONNECTIONLISTINGMODEL_H #include "../mcontroller.h" #include "../net/connection.h" #include class Model ; /** * @brief Model-class for displaying open network connections * This is the underlying data-container of the "network status" * dialog */ class ConnectionListingModel: public QAbstractTableModel { Q_OBJECT public: /** * instead of relaying the connections from Model::iConnections * we keep our local copy of the same stuff here, updating * it as necessary */ typedef struct ConnectionDisplayItemStructure { QHostAddress iAddr ; bool iIsInBound ; unsigned long iBytesIn ; unsigned long iBytesOut ; time_t iOpenTime ; Hash iNodeFingerPrint ; } ConnectionDisplayItem ; ConnectionListingModel(Model& aModel,MController& aController) ; ~ConnectionListingModel() ; virtual int rowCount(const QModelIndex & parent = QModelIndex()) const ; /** * re-implemented from QAbstractTableModel * @return number of columns in view */ virtual int columnCount(const QModelIndex & parent = QModelIndex()) const ; /** * re-implemented from QAbstractListModel * @return data to display in list */ virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const ; virtual QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; protected: // methods /** * for periodical stuff inside datamodel */ void timerEvent(QTimerEvent *event); private: // methods void updateModelContents() ; private: // data Model& iModel ; MController& iController ; QList iConnections ; int iTimerId ; } ; #endif classified-ads-0.09/datamodel/const.h000066400000000000000000000025701260620453500175550ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CA_CONSTS_H #define CA_CONSTS_H /** * @file const.h * * file for application-wide constants for various purposes */ static const unsigned KMaxRowsInTableNode ( 10000 ) ; static const unsigned KMaxRowsInTableProfile ( 50000 ) ; static const unsigned KMaxRowsInTableProfileComment ( 50000 ) ; static const unsigned KMaxRowsInTableBinaryFile ( 50000 ) ; static const unsigned KMaxRowsInTableClassified_Ad ( 50000 ) ; static const unsigned KMaxRowsInTablePrivate_Message ( 50000 ) ; #endif classified-ads-0.09/datamodel/contact.cpp000066400000000000000000000076271260620453500204250ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "ca.h" #include "../util/hash.h" #include "../log.h" #include "../util/jsonwrapper.h" #include #include "../mcontroller.h" #include "model.h" #include "contact.h" #include "../net/node.h" static const char *KContactJSonFingerPrint = "fp" ; static const char *KContactJSonNickName = "nick" ; static const char *KContactJSonIsTrusted = "trusted" ; static const int KJSONMsgVersionValue ( 1 ) ; Contact::Contact() : iFingerPrint(KNullHash), iIsTrusted(false) { } Contact::~Contact() { } QByteArray Contact::asJSon(const MController& /*aController*/) const { // first have a map ; that is the top-level JSon-object QMap m ; if ( iFingerPrint != KNullHash ) { m.insert(KContactJSonFingerPrint, iFingerPrint.toString().toUtf8()) ; } if ( iNickName.length() > 0 ) { m.insert(KContactJSonNickName, iNickName.toUtf8()) ; } if ( iIsTrusted ) { m.insert(KContactJSonIsTrusted, iIsTrusted) ; } QVariant j (m); // then put the map inside QVariant and that QByteArray retval ( JSonWrapper::serialize(j) ) ; LOG_STR2("contact %s", qPrintable(QString(retval))) ; return retval ; } bool Contact::fromJSon(const QByteArray &aJSonBytes, const MController& /*aController*/ ) { bool ok; QVariantMap result ( JSonWrapper::parse (aJSonBytes, &ok) ); if (!ok) { return false ; } if ( result.contains(KContactJSonFingerPrint) ) { iFingerPrint.fromString((const unsigned char *)QString::fromUtf8(result[KContactJSonFingerPrint].toByteArray()).toLatin1().constData()) ; } if ( result.contains(KContactJSonNickName) ) { iNickName = QString::fromUtf8(result[KContactJSonNickName].toByteArray()) ; } else { iNickName.clear() ; } if ( result.contains(KContactJSonIsTrusted) ) { iIsTrusted = result[KContactJSonIsTrusted].toBool() ; } return ok ; } QString Contact::displayName() const { QString retval ; if ( iNickName.length() > 0 ) { retval = iNickName ; } else { retval = iFingerPrint.toString() ; } return retval ; } QVariant Contact::asQVariant() const { QMap m ; m.insert(KContactJSonFingerPrint, iFingerPrint.toQVariant()) ; if ( iIsTrusted ) { m.insert(KContactJSonIsTrusted, iIsTrusted) ; } if ( iNickName.length() > 0 ) { m.insert(KContactJSonNickName, iNickName) ; } QVariant j (m) ; return j ; } Contact Contact::fromQVariant(const QVariantMap& aJSonAsQVariant) { Contact c ; if ( aJSonAsQVariant.contains(KContactJSonFingerPrint) ) { c.iFingerPrint.fromQVariant(aJSonAsQVariant[KContactJSonFingerPrint]) ; if ( aJSonAsQVariant.contains(KContactJSonIsTrusted) ) { c.iIsTrusted = aJSonAsQVariant[KContactJSonIsTrusted].toBool() ; } if ( aJSonAsQVariant.contains(KContactJSonNickName) ) { c.iNickName = aJSonAsQVariant[KContactJSonNickName].toString() ; } } return c ; } classified-ads-0.09/datamodel/contact.h000066400000000000000000000043271260620453500200640ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CA_CONTACT_H #define CA_CONTACT_H #include #include "../util/hash.h" // for class Hash class MController ; class Node ; /** * @brief Carrier-class for a profile that is in contacts-list * * Instances of this class are stored and retrieved by controller * directly. Also note @ref ContactsListingModel. */ class Contact { public: Contact() ; /**< constructor */ ~Contact() ; /**< destructor */ /** * method for string that is shown to user about the message. * * @return string to display to user */ QString displayName() const ; QByteArray asJSon(const MController& aController) const ; /**< returns msg data as JSon stream */ bool fromJSon(const QByteArray &aJSonBytes, const MController& aController ) ; /**< parses json into members*/ /** * Method for getting contact as JSon / QVariant */ QVariant asQVariant() const ; /** * reverse of @ref asQVariant() * @return node or NULL if */ static Contact fromQVariant(const QVariantMap& aJSonAsQVariant) ; /** hash of the profile that is presented here */ Hash iFingerPrint ; QString iNickName ; /**< nickname/display-name of contact ; may empty if private profile */ bool iIsTrusted ; /**< In addition to being in contacts-list, this user is also trusted */ } ; #endif classified-ads-0.09/datamodel/contactlistingmodel.cpp000066400000000000000000000171241260620453500230310ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include #include "../log.h" #include "../mcontroller.h" #include "model.h" #include "contactlistingmodel.h" ContactListingModel::ContactListingModel(Model& aModel, MController& aController ) : iModel(aModel), iController(aController) { } ContactListingModel::~ContactListingModel() { LOG_STR("ContactListingModel::~ContactListingModel") ; } int ContactListingModel::rowCount(const QModelIndex& ) const { return iContacts.size(); } int ContactListingModel::columnCount(const QModelIndex& ) const { return 3 ; // what are the columns? Hash, NickName, trust? } QVariant ContactListingModel::data(const QModelIndex &index, int role) const { if(!index.isValid()) return QVariant(); if ( role == Qt::UserRole ) { return iContacts.at(index.row()).iFingerPrint.toQVariant() ; } switch ( index.column() ) { case 0: // peer hash if(role == Qt::DisplayRole) { return iContacts.at(index.row()).iFingerPrint.toString() ; } else { return QVariant(); } break ; case 1: // nickname if(role == Qt::DisplayRole) { return iContacts.at(index.row()).iNickName ; } else { return QVariant(); } break ; case 2: { // is trusted if(role == Qt::DisplayRole) { if ( iContacts.at(index.row()).iIsTrusted ) { return tr("Yes") ; } else { return tr("Unknown") ; } } else { return QVariant(); } } break ; default: return QVariant(); // for unknown columns return empty } return QVariant(); } QVariant ContactListingModel::headerData ( int section, Qt::Orientation orientation, int role ) const { if (orientation != Qt::Horizontal ) { return QVariant(); } switch ( role ) { case Qt::ToolTipRole: switch ( section ) { case 0: return tr("Actual network address (SHA1) of the contact") ; break; case 1: return tr("Locally given nickname ; user may set her own nickname himself") ; break; case 2: return tr("Public statement if this operator to be trusted in transactions") ; break; default: return QVariant(); break ; } break ; case Qt::DisplayRole: switch ( section ) { case 0: return tr("Address") ; break; case 1: return tr("Nickname") ; break ; case 2: return tr("Publicly trusted") ; break ; default: return QVariant(); } break ; case Qt::SizeHintRole: switch ( section ) { case 0: return QSize(300,25) ; break; case 1: return QSize(450,25) ; break ; case 2: return QSize(30,25) ; break ; default: return QVariant(); } break ; default: return QVariant(); break ; } } void ContactListingModel::newContactAdded(const Contact& aContact) { // todo ; insert in correct order if ( isContactContained(aContact.iFingerPrint) ) { for ( int i ( 0 ) ; i < iContacts.size() ; i++ ) { if ( iContacts.at(i).iFingerPrint == aContact.iFingerPrint ) { iContacts.replace(i,aContact) ; emit dataChanged(createIndex(i,0),createIndex(i,2)) ; return ; } } } else { beginInsertRows(QModelIndex(),iContacts.size(),iContacts.size()) ; iContacts.append(aContact) ; endInsertRows() ; } } void ContactListingModel::removeContact(const Hash& aContact) { for ( int i ( 0 ) ; i < iContacts.size() ; i++ ) { if ( iContacts.at(i).iFingerPrint == aContact ) { beginRemoveRows(QModelIndex(),i,i) ; iContacts.takeAt(i) ; endRemoveRows() ; return ; } } } QVariant ContactListingModel::contactsAsQVariant() const { // for the qvariant to work, the list of contacts needs to be // of type QList so we need to make the contact to be // QVariant QList contactsAsQVariantList ; for ( int i ( 0 ) ; i < iContacts.size() ; i++ ) { contactsAsQVariantList.append ( iContacts.at(i).asQVariant() ) ; } QLOG_STR("ContactListingModel::contactsAsQVariant size = " + QString::number(contactsAsQVariantList .size())) ; return contactsAsQVariantList ; } QList ContactListingModel::trustList() const { QList retval ; foreach (const Contact& c, iContacts) { if ( c.iIsTrusted ) { retval << c.iFingerPrint ; } } return retval ; } void ContactListingModel::setContactsFromQVariant(const QVariantList& aContacts) { #if QT_VERSION >= 0x050000 // qt5 beginResetModel() ; #endif iContacts.clear() ; QLOG_STR("ContactListingModel::setContactsFromQVariant size = " + QString::number(aContacts.size())) ; for ( int i = 0 ; i < aContacts.size() ; i++ ) { iContacts.append(Contact::fromQVariant(aContacts[i].toMap())) ; } // ok, we've loaded the contacts, offer each and every one of // those to display-cache kept by the controller foreach (Contact c, iContacts) { QString fingerprintString(c.iFingerPrint.toString() ) ; QLOG_STR("Offering contact " +fingerprintString + " name = " + c.displayName()) ; ; iController.offerDisplayNameForProfile(c.iFingerPrint, c.displayName()) ; } LOG_STR("offerDisplayNameForProfile finished") ; #if QT_VERSION >= 0x050000 endResetModel() ; #else reset() ; #endif } bool ContactListingModel::isContactContained(const Hash& aFingerPrint) const { for ( int i = iContacts.size()-1 ; i >= 0 ; i-- ) { if ( iContacts[i].iFingerPrint == aFingerPrint ) { return true ; } } return false; } void ContactListingModel::clearContents() { LOG_STR("ContactListingModel::clearContents") ; #if QT_VERSION >= 0x050000 // qt5 beginResetModel() ; #endif iContacts.clear() ; #if QT_VERSION >= 0x050000 endResetModel() ; #else reset() ; #endif } bool ContactListingModel::contactByFingerPrint(const Hash& aFingerPrint, Contact* aResultingContact) const { if ( aResultingContact ) { for ( int i = iContacts.size()-1 ; i >= 0 ; i-- ) { if ( iContacts[i].iFingerPrint == aFingerPrint ) { *aResultingContact = iContacts[i] ; return true ; } } } return false; } classified-ads-0.09/datamodel/contactlistingmodel.h000066400000000000000000000057421260620453500225010ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CONTACTSEARCHMODEL_H #define CONTACTSEARCHMODEL_H #include #include "../util/hash.h" #include "../mcontroller.h" #include "contact.h" class Model ; /** * @brief Model-class for performing search on contact-list contacts * This is supposed to act as an underlying data-container for * an user-interface view (QTableView etc.) */ class ContactListingModel: public QAbstractTableModel { Q_OBJECT public: ContactListingModel(Model& aModel,MController& aController) ; ~ContactListingModel() ; virtual int rowCount(const QModelIndex & parent = QModelIndex()) const ; /** * re-implemented from QAbstractTableModel * @return number of columns in view */ virtual int columnCount(const QModelIndex & parent = QModelIndex()) const ; /** * re-implemented from QAbstractListModel * @return data to display in list */ virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const ; virtual QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const ; void newContactAdded(const Contact& aContact) ; void removeContact(const Hash& aContact) ; /** method for retrieving contact. * @param aFingerPrint tells what to seek * @param aResultingContact will have its field filled if match is made * @return true if contact was found */ bool contactByFingerPrint(const Hash& aFingerPrint, Contact* aResultingContact) const ; /** * whoever calls this method, must set Model.lock() first */ QVariant contactsAsQVariant() const ; void setContactsFromQVariant(const QVariantList& aContacts) ; bool isContactContained(const Hash& aFingerPrint) const ; void clearContents() ; /** * method that returns subset of contacts that are marked as * trusted */ QList trustList() const ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: // data Model& iModel ; MController& iController ; QList iContacts ; } ; #endif classified-ads-0.09/datamodel/contentencryptionmodel.cpp000066400000000000000000001201251260620453500235650ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifdef WIN32 #define NOMINMAX #include #include #include #include #include #else #include #include // for ntohl #endif #include "contentencryptionmodel.h" #include "../log.h" #include "../util/hash.h" #include "../util/jsonwrapper.h" #include "model.h" #include #include #include #include #include #include #include #include #include #include static const char *KJSonEncryptedMessageEkElement = "ek" ; static const char *KJSonEncryptedMessageIvElement = "iv" ; ContentEncryptionModel::ContentEncryptionModel(MController *aController, const MModelProtocolInterface &aModel) : iController(aController), iModel(aModel) { LOG_STR("ContentEncryptionModel::ContentEncryptionModel()") ; connect(this, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; } ContentEncryptionModel::~ContentEncryptionModel() { LOG_STR("ContentEncryptionModel::~ContentEncryptionModel()") ; iController = NULL ; // not owned, just set null } Hash ContentEncryptionModel::generateKeyPair() { Hash retval ; LOG_STR("ContentEncryptionModel::generateKeyPair in") ; EVP_PKEY * pkey; pkey = EVP_PKEY_new(); RSA * rsa; if ((rsa = RSA_generate_key( 2048, /* number of bits for the key - 2048 is a sensible value */ RSA_F4, /* exponent - RSA_F4 is defined as 0x10001L */ NULL, /* callback - can be NULL if we aren't displaying progress */ NULL /* callback argument - not needed in this case */ ) ) == NULL ) { QString errmsg(tr("SSL key generation went wrong, calling exit..")) ; emit error(MController::ContentEncryptionError, errmsg) ; return retval ; } EVP_PKEY_assign_RSA(pkey, rsa); X509 * x509; x509 = X509_new(); if ( x509 == NULL ) { QString errmsg(tr("x509 cert generation went wrong, calling exit..")) ; emit error(MController::ContentEncryptionError, errmsg) ; return retval ; } ASN1_INTEGER_set(X509_get_serialNumber(x509), 1); // key validity time ; starting from now X509_gmtime_adj(X509_get_notBefore(x509), 0); // and after 100 years someone needs to find a way to // 1) crack this encryption, or // 2) write feature for migrating the stuff to another node with a new cert X509_gmtime_adj(X509_get_notAfter(x509), 60L * 60L * 24L * 365L * (long long)(80+(qrand()%20)) + (long long)((qrand() % 10000)) ); X509_set_pubkey(x509, pkey); X509_NAME * name; name = X509_get_subject_name(x509); const char *countryCode = NULL ; const char *countryCodeFI = "FI" ; // Juice Leskinen const char *countryCodeSE = "SE" ; const char *countryCodeUS = "US" ; switch (rand() % 3 ) { case 0: countryCode = countryCodeFI; break ; case 1: countryCode = countryCodeSE; break ; default: countryCode = countryCodeUS; break ; } char randomName [11] = { 0 }; int nameLen = 5 + (rand() % 5 ) ; for ( int i = 0 ; i < nameLen ; i++ ) { randomName[i] = (char) (65 + ( rand() % 25) ) ; } char domainName [20] = { 0 } ; for ( int i = 0 ; i < 4 ; i++ ) { domainName[i] = (char) (65 + ( rand() % 25) ) ; } strcat (domainName, ".com") ; X509_NAME_add_entry_by_txt(name, "C", MBSTRING_ASC, (unsigned char *)countryCode, -1, -1, 0); X509_NAME_add_entry_by_txt(name, "O", MBSTRING_ASC, (unsigned char *)randomName, -1, -1, 0); X509_NAME_add_entry_by_txt(name, "CN", MBSTRING_ASC, (unsigned char *)domainName, -1, -1, 0); X509_set_issuer_name(x509, name); X509_sign(x509, pkey, EVP_sha1()); BIO *pri = BIO_new(BIO_s_mem()); BIO *pub = BIO_new(BIO_s_mem()); // EVP_bf_cbc() gives blowfish cipher ; is guud?? // at least it allows variable key len so user can enter crap of any len?? if((pri == NULL || pub == NULL ) || (!PEM_write_bio_PrivateKey(pri, pkey, EVP_bf_cbc(), NULL, 0, 0, (void*)qPrintable(iController->contentKeyPasswd())))) { QString errmsg(ERR_reason_error_string(ERR_get_error())) ; QLOG_STR("Write private key: " + errmsg) ; emit error(MController::ContentEncryptionError, errmsg) ; EVP_PKEY_free(pkey) ; X509_free(x509) ; BIO_free(pri) ; BIO_free(pub) ; return retval ; } PEM_write_bio_X509( pub, /* write the certificate to the mem-buf we've opened */ x509 /* our certificate */ ); unsigned char md[EVP_MAX_MD_SIZE]; unsigned int n; const EVP_MD * digest = EVP_get_digestbyname("sha1"); X509_digest(x509, digest, md, &n); retval = Hash(md) ; EVP_PKEY_free(pkey) ; X509_free(x509) ; size_t pri_len = BIO_pending(pri); size_t pub_len = BIO_pending(pub); char *pri_key = (char *)malloc(pri_len + 1); char *pub_key = (char *)malloc(pub_len + 1); BIO_read(pri, pri_key, pri_len); BIO_read(pub, pub_key, pub_len); pri_key[pri_len] = '\0'; pub_key[pub_len] = '\0'; BIO_free(pri) ; BIO_free(pub) ; QByteArray pubKeyBytes(pub_key,pub_len) ; QByteArray priKeyBytes(pri_key,pri_len) ; free(pub_key) ; free(pri_key) ; if ( insertOrUpdatePublicKey(pubKeyBytes,retval) == false || insertOrUpdatePrivateKey(priKeyBytes,retval) == false ) { QString errmsg(tr("RSA Private key key saving went wrong")) ; emit error(MController::ContentEncryptionError, errmsg) ; return KNullHash ; } else { // success return retval ; } } bool ContentEncryptionModel::deleteKeyPair(const Hash& aHash) { bool ret ; QSqlQuery query; ret = query.prepare ("delete from profile where hash1=:hash1 and hash2=:hash2 and hash3=:hash3 and hash4=:hash4 and hash5=:hash5" ) ; if ( ret ) { query.bindValue(":hash1", aHash.iHash160bits[0]); query.bindValue(":hash2", aHash.iHash160bits[1]); query.bindValue(":hash3", aHash.iHash160bits[2]); query.bindValue(":hash4", aHash.iHash160bits[3]); query.bindValue(":hash5", aHash.iHash160bits[4]); ret = query.exec() ; QLOG_STR("deleted profile encryption public key " + aHash.toString()) ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()); } else { QSqlQuery query2; ret = query2.prepare ("delete from privatekeys where hash1=:hash1 and hash2=:hash2 and hash3=:hash3 and hash4=:hash4 and hash5=:hash5" ) ; if ( ret ) { query2.bindValue(":hash1", aHash.iHash160bits[0]); query2.bindValue(":hash2", aHash.iHash160bits[1]); query2.bindValue(":hash3", aHash.iHash160bits[2]); query2.bindValue(":hash4", aHash.iHash160bits[3]); query2.bindValue(":hash5", aHash.iHash160bits[4]); } ret = query2.exec() ; if ( !ret ) { QLOG_STR(query2.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query2.lastError().text()); } else { QLOG_STR("deleted profile encryption private key " + aHash.toString()) ; ret = true ; } } } return ret ; } QList ContentEncryptionModel::listKeys(bool aPrivateKeys, char * /*aKeyUidToSearch*/) { QList retval ; if ( aPrivateKeys ) { QSqlQuery query; bool ret = query.prepare("select hash1,hash2,hash3,hash4,hash5 from privatekeys") ; if ( ( ret = query.exec() ) == true ) { while ( ret && query.next() ) { quint32 hash1 = query.value(0).toUInt() ; quint32 hash2 = query.value(1).toUInt() ; quint32 hash3 = query.value(2).toUInt() ; quint32 hash4 = query.value(3).toUInt() ; quint32 hash5 = query.value(4).toUInt() ; Hash hashFoundFromDb ( hash1,hash2,hash3,hash4,hash5) ; retval.append(hashFoundFromDb) ; } } if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } } return retval ; } int ContentEncryptionModel::changeKeyPassword(const Hash& aFingerPrint, const QString& aNewPassword) { int retval = -1 ; QByteArray pemBytes ; if ( PrivateKey(aFingerPrint, pemBytes) ) { EVP_PKEY *keyToModify = PrivateKeyFromPem(pemBytes) ; if ( keyToModify ) { // first set new password iController->setContentKeyPasswd(aNewPassword) ; // then update the key into database, this now happens with // the new password that controller has BIO *pri = BIO_new(BIO_s_mem()); if (!PEM_write_bio_PrivateKey(pri, keyToModify, EVP_bf_cbc(), NULL, 0, 0, (void*)qPrintable(iController->contentKeyPasswd()))) { QString errmsg(ERR_reason_error_string(ERR_get_error())) ; emit error(MController::ContentEncryptionError, errmsg) ; } else { size_t pri_len = BIO_pending(pri); char *pri_key = (char *)malloc(pri_len + 1); BIO_read(pri, pri_key, pri_len); pri_key[pri_len] = '\0'; BIO_free(pri) ; QByteArray priKeyBytes(pri_key,pri_len) ; free(pri_key) ; if ( insertOrUpdatePrivateKey(priKeyBytes,aFingerPrint) == false ) { QString errmsg(tr("RSA Private key key saving went wrong")) ; emit error(MController::ContentEncryptionError, errmsg) ; } else { retval = 0 ; } } EVP_PKEY_free(keyToModify) ; } } return retval ; } int ContentEncryptionModel::sign(const Hash& aSigningKey, const QByteArray& aData, QByteArray& aResultingSignature, const QByteArray* aOptionalMetadata) { int retval = -1 ; LOG_STR2("ContentEncryptionModel::sign in, bytesToSign=%d", aData.length()); EVP_MD_CTX md_ctx; unsigned sig_len; unsigned char sig_buf [4096]; int err ; QByteArray pemBytes ; if ( PrivateKey(aSigningKey, pemBytes) ) { EVP_PKEY *keyToUse = PrivateKeyFromPem(pemBytes) ; if ( keyToUse ) { // taken from openssl examples by Eric Young & Sampo Kellomaki /* Do the signature */ EVP_SignInit (&md_ctx, EVP_sha1()); EVP_SignUpdate (&md_ctx, aData.data(), aData.length()); if ( aOptionalMetadata ) { EVP_SignUpdate (&md_ctx, aOptionalMetadata->data(), aOptionalMetadata->length()); } sig_len = sizeof(sig_buf); err = EVP_SignFinal (&md_ctx, sig_buf, &sig_len, keyToUse); if (err != 1) { QString errmsg(ERR_reason_error_string(ERR_get_error())) ; emit error(MController::ContentEncryptionError, errmsg) ; } else { aResultingSignature.clear() ; // EVP-functions want unsigned char and unsigned len, where // Q-methods eat signed char and signed length. aResultingSignature.append((const char *)(&sig_buf),(int) sig_len) ; retval = 0 ; } EVP_PKEY_free (keyToUse); } } return retval ; } bool ContentEncryptionModel::verify(const QByteArray& aPemBytesOfSigningKey, const QByteArray& aDataToVerify, const QByteArray& aSignatureToVerify, const QByteArray* aOptionalMetadata, bool emitErrorMessage ) { return doVerify(aPemBytesOfSigningKey, aDataToVerify, aSignatureToVerify, aOptionalMetadata, emitErrorMessage ) ; } bool ContentEncryptionModel::verify(const Hash& aPresumedSigningKey, const QByteArray& aDataToVerify, const QByteArray& aSignatureToVerify, const QByteArray* aOptionalMetadata, bool emitErrorMessage) { bool retval = false ; QByteArray pemBytes ; if ( PublicKey(aPresumedSigningKey, pemBytes) ) { retval = doVerify(pemBytes, aDataToVerify, aSignatureToVerify, aOptionalMetadata, emitErrorMessage ) ; } return retval ; } bool ContentEncryptionModel::doVerify(const QByteArray& aPemBytesOfSigningKey, const QByteArray& aDataToVerify, const QByteArray& aSignatureToVerify, const QByteArray* aOptionalMetadata , bool emitErrorMessage ) { bool retval ( false ) ; if ( aPemBytesOfSigningKey.size() ) { EVP_PKEY *keyToUse = PublicKeyFromPem(aPemBytesOfSigningKey) ; if ( keyToUse ) { EVP_MD_CTX md_ctx; int err ; /* Verify the signature */ EVP_VerifyInit (&md_ctx, EVP_sha1()); EVP_VerifyUpdate (&md_ctx, aDataToVerify.data(), aDataToVerify.length()); if ( aOptionalMetadata ) { EVP_VerifyUpdate (&md_ctx, aOptionalMetadata->data(), aOptionalMetadata->length()); } err = EVP_VerifyFinal (&md_ctx, (const unsigned char *) aSignatureToVerify.data(), aSignatureToVerify.length(), keyToUse); if (err != 1) { if ( emitErrorMessage ) { QString errmsg(ERR_reason_error_string(ERR_get_error())) ; emit error(MController::ContentEncryptionError, errmsg) ; } } else { retval = true ; // ahem } EVP_PKEY_free (keyToUse); } } return retval ; } bool ContentEncryptionModel::encrypt(const QList aRecipients, const QByteArray& aPlainText, QByteArray& aResultingCipherText) { // significant parts of code here is stolen from openssl wiki. bool retval (false) ; // for SealInit EVP_CIPHER_CTX ctx; unsigned char **ek = NULL ; int *ekl(NULL); unsigned char *iv ( (unsigned char *) malloc ( EVP_CIPHER_iv_length(EVP_aes_256_cbc() ) ) ); EVP_PKEY **pubk = NULL ; int nr_of_valid_pubkeys ( 0 ) ; QMap resultJSon ; if ( aRecipients.size() > 0 && aPlainText.length() > 0 && iv ) { EVP_CIPHER_CTX_init(&ctx); pubk =( EVP_PKEY ** ) malloc (sizeof(EVP_PKEY *)*aRecipients.size()) ; if ( pubk ) { QByteArray pemBytes ; for ( int i = 0 ; i < aRecipients.size() ; i++ ) { if ( PublicKey(aRecipients[i], pemBytes) ) { EVP_PKEY *keyToUse = PublicKeyFromPem(pemBytes) ; pemBytes.clear() ; if ( keyToUse ) { pubk[nr_of_valid_pubkeys++] = keyToUse ; } } } LOG_STR2("Encrypt nr of valid pubkeys: %d", nr_of_valid_pubkeys); if ( nr_of_valid_pubkeys ) { // we got at least one valid pubkey ek = (unsigned char **)malloc(nr_of_valid_pubkeys) ; ekl = (int*)malloc(sizeof(int)*nr_of_valid_pubkeys) ; if ( ek && ekl) { bool alloc_failure(false) ; int k(0) ; for ( ; k < nr_of_valid_pubkeys; k++ ) { ek[k] = (unsigned char *)malloc(EVP_PKEY_size(pubk[k])) ; if ( ek[k] == NULL ) { alloc_failure = true ; } } if ( alloc_failure == false ) { if (!EVP_SealInit(&ctx, EVP_aes_256_cbc(), ek, ekl, iv, pubk, nr_of_valid_pubkeys)) { QString errmsg(ERR_reason_error_string(ERR_get_error())) ; emit error(MController::ContentEncryptionError, errmsg) ; } else { resultJSon.insert(KJSonEncryptedMessageIvElement, QString(QByteArray((const char*)iv, EVP_CIPHER_iv_length(EVP_aes_256_cbc())).toBase64())); QVariantList listOfEncryptionKeys; for ( k = 0 ; k < nr_of_valid_pubkeys; k++ ) { if ( ekl[k] && ek[k] ) { listOfEncryptionKeys.append(QString(QByteArray((const char*)ek[k], ekl[k]).toBase64())) ; LOG_STR2("Ek: %s", qPrintable(QString(QByteArray((const char*)ek[k], ekl[k]).toBase64()))); LOG_STR2("Eklen: %d",ekl[k]); } } resultJSon.insert(KJSonEncryptedMessageEkElement, listOfEncryptionKeys) ; QVariant json (resultJSon); // then put the map inside QVariant and that // may then be serialized in libqjson-0.7 and 0.8 QByteArray cryptoMetaData (JSonWrapper::serialize(json)) ; quint32 metadataLenNwBo ( htonl(cryptoMetaData.length() )) ; aResultingCipherText.append((const char *)&metadataLenNwBo,sizeof(quint32)) ; aResultingCipherText.append(cryptoMetaData) ; cryptoMetaData.clear() ; // only now go on with the actual data as we have keys and iv.. #define FOUR_KBYTES 4096 unsigned char buffer_out[FOUR_KBYTES + EVP_MAX_IV_LENGTH]; int pos ( 0 ) ; int len_out ( 0 ) ; bool failure = false ; while ( pos < aPlainText.size() ) { QByteArray fourKiloByte ( aPlainText.mid(pos,FOUR_KBYTES)) ; LOG_STR2("FourKByteLen: %d",fourKiloByte.length()); if (!EVP_SealUpdate(&ctx, buffer_out, &len_out, (const unsigned char*)fourKiloByte.data(), fourKiloByte.length())) { QString errmsg(ERR_reason_error_string(ERR_get_error())) ; emit error(MController::ContentEncryptionError, errmsg) ; failure = true ; break ; } else { pos += FOUR_KBYTES ; LOG_STR2("CipherTextLen: %d",len_out); if ( len_out > 0 ) { aResultingCipherText.append((const char *)buffer_out,len_out) ; } } } if ( failure == false ) { if (!EVP_SealFinal(&ctx, buffer_out, &len_out)) { QString errmsg(ERR_reason_error_string(ERR_get_error())) ; emit error(MController::ContentEncryptionError, errmsg) ; } else { LOG_STR2("CipherTextLen final: %d",len_out); retval = true ; if ( len_out > 0 ) { aResultingCipherText.append((const char *)buffer_out,len_out) ; } } } } } // free ek contents? for (k=0 ; k < nr_of_valid_pubkeys; k++ ) { free(ek[k]) ; } free(ek); free(ekl); } for ( int j = 0 ; j < nr_of_valid_pubkeys ; j++ ) { EVP_PKEY_free(pubk[j]) ; } } free(pubk) ; } // if pubk was mallocated ok free(iv) ; EVP_CIPHER_CTX_cleanup(&ctx); } LOG_STR2("Res = %s", qPrintable(QString(aResultingCipherText))); return retval ; } bool ContentEncryptionModel::decrypt(const QByteArray& aCipherText, QByteArray& aResultingPlainText, bool aEmitErrorOnFailure ) { // Yes, Sir. bool retval ( false ) ; // We have come here with high hopes that we're among the // recipients of ResultingPlainText, right? bool ok; if ( aCipherText.length() > 256 ) { const quint32* lenPtr = (const quint32* ) aCipherText.constData() ; quint32 metaDataLen = ntohl(*lenPtr) ; if ( metaDataLen < (quint32)(aCipherText.length()) ) { QVariantMap result ( JSonWrapper::parse (aCipherText.mid(sizeof(quint32),metaDataLen), &ok) ); if (ok && result.contains(KJSonEncryptedMessageEkElement) && result.contains(KJSonEncryptedMessageIvElement) ) { const QByteArray iv ( QByteArray::fromBase64 (result[KJSonEncryptedMessageIvElement].toByteArray())) ; QVariantList encryptionKeyList( result[KJSonEncryptedMessageEkElement].toList() ) ; // then obtain our private key: QByteArray pemBytes ; if ( PrivateKey(iController->profileInUse(), pemBytes) && iv.length() == EVP_CIPHER_iv_length(EVP_aes_256_cbc())) { EVP_PKEY *myPrivateKey = PrivateKeyFromPem(pemBytes) ; if ( myPrivateKey ) { pemBytes.clear() ; // de-cryption context EVP_CIPHER_CTX ctx; // try out each key in array that is in the encrypted document, // if one of those would happen to be for ours.. .. bool keyFound ( false ) ; foreach( QVariant keyVariant, encryptionKeyList) { LOG_STR("Trying private key..") ; const QByteArray key ( QByteArray::fromBase64 (keyVariant.toByteArray()) ) ; EVP_CIPHER_CTX_init(&ctx); if (EVP_OpenInit(&ctx, EVP_aes_256_cbc(), (const unsigned char *)(key.constData()), key.length(), (const unsigned char *)(iv.constData()), myPrivateKey)) { // yes, success keyFound = true ; break ; // out from foreach-loop } else { // key not found, cleanup context and try again with next key: EVP_CIPHER_CTX_cleanup(&ctx); EVP_CIPHER_CTX_init(&ctx); } } // foreach key if ( keyFound ) { LOG_STR("Decrypt: key found") ; // allocate space for plaintext: int len_out ( 0 ) ; unsigned char* plainTextPtr = (unsigned char*)malloc(aCipherText.length()-metaDataLen) ; if ( plainTextPtr ) { if (!EVP_OpenUpdate(&ctx, plainTextPtr, &len_out, (const unsigned char *)(aCipherText.mid(sizeof(quint32)+metaDataLen).constData()), aCipherText.length()-(sizeof(quint32)+metaDataLen))) { if ( aEmitErrorOnFailure ) { QString errmsg(ERR_reason_error_string(ERR_get_error())) ; emit error(MController::ContentEncryptionError, errmsg) ; } } else { if ( len_out > 0 ) { aResultingPlainText.append((const char *)plainTextPtr,len_out) ; } if ( !EVP_OpenFinal(&ctx, plainTextPtr, &len_out) ) { QString errmsg(ERR_reason_error_string(ERR_get_error())) ; emit error(MController::ContentEncryptionError, errmsg) ; } else { retval = true ; if ( len_out > 0 ) { aResultingPlainText.append((const char *)plainTextPtr,len_out) ; } } } free ( plainTextPtr ) ; } // if we got plainTextPtr } else { // too bad dude, you're not in the club.. if ( aEmitErrorOnFailure ) { QString errmsg(tr("No suitable de-cryption key found")) ; emit error(MController::ContentEncryptionError, errmsg) ; } LOG_STR("Decrypt: key not found") ; retval = false ; } EVP_CIPHER_CTX_cleanup(&ctx); EVP_PKEY_free(myPrivateKey) ; } } } // if parse was ok } // metadata length check } // length check return retval; } bool ContentEncryptionModel::insertOrUpdatePublicKey (const QByteArray& aPublicKey, const Hash& aFingerPrintOfKey, const QString *aDisplayName ) { LOG_STR("ContentEncryptionModel::insertOrUpdatePublicKey() in") ; bool retval = false ; QByteArray dummy ; if ( hashOfPublicKey(aPublicKey) == aFingerPrintOfKey ) { if ( PublicKey(aFingerPrintOfKey, dummy) ) { // key is already in db bool ret ; QSqlQuery query; if ( aDisplayName && aDisplayName->length() > 0 ) { ret = query.prepare ("update profile set time_last_reference=:time_last_reference, pubkey = :pubkey,display_name=:display_name where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; } else { ret = query.prepare ("update profile set time_last_reference=:time_last_reference, pubkey = :pubkey where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; } if ( ret ) { query.bindValue(":hash1", aFingerPrintOfKey.iHash160bits[0]); query.bindValue(":hash2", aFingerPrintOfKey.iHash160bits[1]); query.bindValue(":hash3", aFingerPrintOfKey.iHash160bits[2]); query.bindValue(":hash4", aFingerPrintOfKey.iHash160bits[3]); query.bindValue(":hash5", aFingerPrintOfKey.iHash160bits[4]); query.bindValue(":pubkey", aPublicKey); query.bindValue(":time_last_reference", QDateTime::currentDateTimeUtc().toTime_t()); if ( aDisplayName && aDisplayName->length() > 0 ) { query.bindValue(":display_name", *aDisplayName); } } ret = query.exec() ; QLOG_STR("updated public key " + aFingerPrintOfKey.toString()) ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { retval = true ; } } else { // key is brand new bool ret ; QSqlQuery query; if ( aDisplayName && aDisplayName->length() > 0 ) { ret = query.prepare ("insert into profile (hash1,hash2,hash3,hash4,hash5,pubkey,time_last_reference,display_name) values (:hash1,:hash2,:hash3,:hash4,:hash5,:pubkey,:time_last_reference,:display_name)" ) ; } else { ret = query.prepare ("insert into profile (hash1,hash2,hash3,hash4,hash5,pubkey,time_last_reference) values (:hash1,:hash2,:hash3,:hash4,:hash5,:pubkey,:time_last_reference)" ) ; } if ( ret ) { query.bindValue(":hash1", aFingerPrintOfKey.iHash160bits[0]); query.bindValue(":hash2", aFingerPrintOfKey.iHash160bits[1]); query.bindValue(":hash3", aFingerPrintOfKey.iHash160bits[2]); query.bindValue(":hash4", aFingerPrintOfKey.iHash160bits[3]); query.bindValue(":hash5", aFingerPrintOfKey.iHash160bits[4]); query.bindValue(":pubkey", aPublicKey); query.bindValue(":time_last_reference", QDateTime::currentDateTimeUtc().toTime_t()); if ( aDisplayName && aDisplayName->length() > 0 ) { query.bindValue(":display_name", *aDisplayName); } } ret = query.exec() ; QLOG_STR("### inserted profile encryption public key " + aFingerPrintOfKey.toString()) ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { retval = true ; } } } return retval ; } bool ContentEncryptionModel::insertOrUpdatePrivateKey (const QByteArray& aPrivateKey, const Hash& aFingerPrintOfKey) { LOG_STR("ContentEncryptionModel::insertOrUpdatePrivateKey() in") ; bool retval = false ; QByteArray dummy ; if ( PrivateKey(aFingerPrintOfKey, dummy) ) { // key is already in db bool ret ; QSqlQuery query; ret = query.prepare ("update privatekeys set prikey = :prikey where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( ret ) { query.bindValue(":hash1", aFingerPrintOfKey.iHash160bits[0]); query.bindValue(":hash2", aFingerPrintOfKey.iHash160bits[1]); query.bindValue(":hash3", aFingerPrintOfKey.iHash160bits[2]); query.bindValue(":hash4", aFingerPrintOfKey.iHash160bits[3]); query.bindValue(":hash5", aFingerPrintOfKey.iHash160bits[4]); query.bindValue(":prikey", aPrivateKey); } ret = query.exec() ; QLOG_STR("updated private key " + aFingerPrintOfKey.toString()) ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { retval = true ; } } else { // key is brand new bool ret ; QSqlQuery query; ret = query.prepare ("insert into privatekeys (hash1,hash2,hash3,hash4,hash5,prikey) values (:hash1,:hash2,:hash3,:hash4,:hash5,:prikey)" ) ; if ( ret ) { query.bindValue(":hash1", aFingerPrintOfKey.iHash160bits[0]); query.bindValue(":hash2", aFingerPrintOfKey.iHash160bits[1]); query.bindValue(":hash3", aFingerPrintOfKey.iHash160bits[2]); query.bindValue(":hash4", aFingerPrintOfKey.iHash160bits[3]); query.bindValue(":hash5", aFingerPrintOfKey.iHash160bits[4]); query.bindValue(":prikey", aPrivateKey); } ret = query.exec() ; QLOG_STR("inserted private key " + aFingerPrintOfKey.toString()) ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { retval = true ; } } return retval ; } bool ContentEncryptionModel::PublicKey (const Hash& aFingerPrintOfKeyToFind, QByteArray& aPossibleKeyFound, quint32* aTimeStamp ) { bool retval = false ; QLOG_STR("ContentEncryptionModel::PublicKey in " + aFingerPrintOfKeyToFind.toString() ) ; QSqlQuery query; bool ret = query.prepare("select pubkey,time_of_publish from profile where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5") ; query.bindValue(":hash1", aFingerPrintOfKeyToFind.iHash160bits[0]); query.bindValue(":hash2", aFingerPrintOfKeyToFind.iHash160bits[1]); query.bindValue(":hash3", aFingerPrintOfKeyToFind.iHash160bits[2]); query.bindValue(":hash4", aFingerPrintOfKeyToFind.iHash160bits[3]); query.bindValue(":hash5", aFingerPrintOfKeyToFind.iHash160bits[4]); if ( ret && (ret = query.exec() ) == true && query.next() ) { // yes, found aPossibleKeyFound = query.value(0).toByteArray() ; if ( aTimeStamp ) { if ( query.isNull(1) ) { *aTimeStamp = 0 ; // we had only profile key, no profile data } else { *aTimeStamp = query.value(1).toUInt() ; } } retval = true ; } if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } return retval ; } bool ContentEncryptionModel::PrivateKey (const Hash& aFingerPrintOfKeyToFind, QByteArray& aPossibleKeyFound) { bool retval = false ; LOG_STR2("ContentEncryptionModel::PrivateKey in %s", qPrintable(aFingerPrintOfKeyToFind.toString())) ; QSqlQuery query; bool ret = query.prepare("select prikey from privatekeys where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5") ; query.bindValue(":hash1", aFingerPrintOfKeyToFind.iHash160bits[0]); query.bindValue(":hash2", aFingerPrintOfKeyToFind.iHash160bits[1]); query.bindValue(":hash3", aFingerPrintOfKeyToFind.iHash160bits[2]); query.bindValue(":hash4", aFingerPrintOfKeyToFind.iHash160bits[3]); query.bindValue(":hash5", aFingerPrintOfKeyToFind.iHash160bits[4]); if ( ret && (ret = query.exec() ) == true && query.next() ) { // yes, found aPossibleKeyFound = query.value(0).toByteArray() ; retval = true ; } if ( !ret ) { LOG_STR("Error while doing select prikey from privatekeys where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5") ; emit error(MController::DbTransactionError, query.lastError().text()) ; } LOG_STR2("ContentEncryptionModel::PrivateKey out success =%d", (int)retval ) ; return retval ; } EVP_PKEY *ContentEncryptionModel::PrivateKeyFromPem(const QByteArray& aPemBytes, bool aEmitErrorMessage) { EVP_PKEY* retval = NULL ; BIO *pri = BIO_new(BIO_s_mem()); BIO_write(pri, aPemBytes.data(), aPemBytes.length()); retval = PEM_read_bio_PrivateKey(pri, NULL, NULL, (void*)qPrintable(iController->contentKeyPasswd())); BIO_free(pri) ; if ( !retval ) { long errorCode = ERR_get_error() ; LOG_STR2("PrivateKeyFromPem errorcode = %d", (int)errorCode) ; if ( aEmitErrorMessage ) { QString errmsg(ERR_reason_error_string(errorCode)) ; emit error(MController::BadPassword, errmsg) ; } } return retval ; } EVP_PKEY *ContentEncryptionModel::PublicKeyFromPem(const QByteArray& aPemBytes) { EVP_PKEY* retval = NULL ; X509* x509 = NULL ; BIO *pri = BIO_new(BIO_s_mem()); BIO_write(pri, aPemBytes.data(), aPemBytes.length()); x509 = PEM_read_bio_X509(pri, NULL,NULL,NULL); BIO_free(pri) ; if ( !x509 ) { long errorCode = ERR_get_error() ; LOG_STR2("PublicKeyFromPem errorcode = %d", (int)errorCode) ; QString errmsg(ERR_reason_error_string(errorCode)) ; emit error(MController::BadPassword, errmsg) ; } else { retval=X509_get_pubkey(x509); if (retval == NULL) { long errorCode = ERR_get_error() ; LOG_STR2("PublicKeyFromPem errorcode = %d", (int)errorCode) ; QString errmsg(ERR_reason_error_string(errorCode)) ; emit error(MController::BadPassword, errmsg) ; } X509_free(x509) ; } return retval ; } Hash ContentEncryptionModel::hashOfPublicKey(const QByteArray& aPemBytes) { Hash retval (KNullHash) ; X509* x509 = NULL ; BIO *pri = BIO_new(BIO_s_mem()); BIO_write(pri, aPemBytes.data(), aPemBytes.length()); x509 = PEM_read_bio_X509(pri, NULL,NULL,NULL); BIO_free(pri) ; if ( !x509 ) { long errorCode = ERR_get_error() ; LOG_STR2("PublicKeyFromPem errorcode = %d", (int)errorCode) ; QString errmsg(ERR_reason_error_string(errorCode)) ; emit error(MController::BadPassword, errmsg) ; } else { unsigned char md[EVP_MAX_MD_SIZE]; unsigned int n; const EVP_MD * digest = EVP_get_digestbyname("sha1"); X509_digest(x509, digest, md, &n); retval = Hash(md) ; X509_free(x509) ; } return retval ; } classified-ads-0.09/datamodel/contentencryptionmodel.h000066400000000000000000000245251260620453500232410ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CLASSIFIED_CONTENTENCRYPTIONMODEL_H #define CLASSIFIED_CONTENTENCRYPTIONMODEL_H #include #include "../mcontroller.h" // because enum from there is needed #include "../net/connection.h" #include // for EVP_PKEY class Hash ; class MModelProtocolInterface ; /** * @brief This is content-crypto-operations-specific part of the datamodel. * * This handles encryption keys and encryption operations too. */ class ContentEncryptionModel : public QObject { Q_OBJECT public: ContentEncryptionModel(MController *aMController, const MModelProtocolInterface &aModel ) ; ~ContentEncryptionModel() ; /** * method for generating a new RSA key-pair. * @return Fingerprint of new key, null-key on failure */ Hash generateKeyPair() ; /** * method for permanently deleting keypair (and related data) * @param aHash is fingerprint of the profile to get rid of * @return true on success */ bool deleteKeyPair(const Hash& aHash) ; /** * method for changing password of (private) key. * * Old valid password of aFingerPrint key must be stored * inside controller before this method is called. Upon * successful pwd change, this method will replace the * password stored inside controller with the new one. * * @param aFingerPrint fingerprint of the key that is to have the passwd changed * @return 0 on success */ int changeKeyPassword(const Hash& aFingerPrint, const QString& aNewPassword ) ; /** * for signing content * @param aSigningKey is fingerprint of the private key that * will be used to sign aData * @param aData is octets to sign * @param aResultingSignature will contain resulting digital signature saying * that aSigningKey was most likely present when * aData was sent around.. * @param aOptionalMetadata is optional part of aData that will * be included into octets from which the hash is calculated. * This is because binary blobs have separate content and * metadata but we want't to sign both of them -> 2 separate * signatures is stupid, contatenating content+metadata would * be possible but heap-consuming so lets have a 2nd bytearray * @return 0 on success */ int sign(const Hash& aSigningKey, const QByteArray& aData, QByteArray& aResultingSignature, const QByteArray* aOptionalMetadata = NULL ) ; /** * for verifying content * @return true if aDataToVerify as indeed signed by aPresumedSigningKey */ bool verify(const Hash& aPresumedSigningKey, const QByteArray& aDataToVerify, const QByteArray& aSignatureToVerify, const QByteArray* aOptionalMetadata = NULL, bool emitErrorMessage = true ) ; /** * for verifying content * @return true if aDataToVerify as indeed signed by aPresumedSigningKey */ bool verify(const QByteArray& aPemBytesOfSigningKey, const QByteArray& aDataToVerify, const QByteArray& aSignatureToVerify, const QByteArray* aOptionalMetadata = NULL, bool emitErrorMessage = true ) ; /** * for encrypting content. * @param aRecipients is list of fingerprints for that we wish * to have public keys for ; those fingerprints listed * but having no public key in database will be silently * omitted. If less than 1 valid public key is found, * this method returns false. * @param aPlainText contains the data to encrypt * @param aResultingCipherText on successful completion, this * bytearray will contain the encrypted data ready to * be signed. * @return true on success. */ bool encrypt(const QList aRecipients, const QByteArray& aPlainText, QByteArray& aResultingCipherText) ; /** * Reverse of method @ref ContentEncryptionModel::encrypt. * @param aCipherText contains the data to decrypt using * private key whose fingerprint is returned by * @ref MController::profileInUse method. * @param aResultingCipherText on successful completion, this * bytearray will contain the decryped data ready to * be opened. * @param aEmitErrorOnFailure if true, will emit an error signal * so that UI can respond accordingly. There are situations * where decrypt is likely to fail because selected operator * is not in list of readers and in those obvious cases * we don't want to flood the UI with error messages, so * "false" value is supplied there. * @return true on success. */ bool decrypt(const QByteArray& aCipherText, QByteArray& aResultingPlainText, bool aEmitErrorOnFailure = true ) ; /** * method for retrieving list of private keys ; these * are supposed to have something to with user profiles * we have * @param aPrivateKeys if set to true, returns list of known * private keys * @param aKeyUidToSearch is a string that is matched against * UID:s of keys. If NULL is passed, then all keys are * returned. * @return list of private key fingerprints */ QList listKeys(bool aPrivateKeys, char *aKeyUidToSearch) ; /** * Inserts or updates a public key into storage. * @param aPublicKey Key must be in X509 PEM. * @param aFingerPrintOfKey SHA1 of given key * @param aInsertWasDone output variable ; if set to non-null on calling, * this method will set value of pointed boolean to be true if * a new row was inserted into table * @param true on success */ bool insertOrUpdatePublicKey (const QByteArray& aPublicKey, const Hash& aFingerPrintOfKey, const QString* aDisplayName = NULL ) ; /** * Inserts or updates a pХ•ivate key into storage. * @param aPrivateKey Key must be in PEM-format private key. * @param aFingerPrintOfKey expected fingerprint of aPrivateKey */ bool insertOrUpdatePrivateKey (const QByteArray& aPrivateKey, const Hash& aFingerPrintOfKey) ; /** * Method for finding a public encryption key. * * @param aFingerPrintOfKeyToFind fingerprint of key to seek * @aPossibleKeyFound if key is found, this bytearray will after * return contain the key * @param aTimeStampOfKeyFound pointer to quint32 that, if not null, * will be written to value of time when * associated profile was last published. * If we have only key, no profile, then * 0 will be returned in this parameter. * @return true if key is found */ bool PublicKey (const Hash& aFingerPrintOfKeyToFind, QByteArray& aPossibleKeyFound, quint32 *aTimeStampOfKeyFound = NULL) ; /** * Method for finding a private encryption key. * * @param aFingerPrintOfKeyToFind fingerprint of key to seek * @aPossibleKeyFound if key is found, this bytearray will after * return contain the key * @return true if key is found */ bool PrivateKey (const Hash& aFingerPrintOfKeyToFind, QByteArray& aPossibleKeyFound) ; /** * Method for opening PEM bytes previously obtained using * @ref PrivateKey method. * @param aPemByteArray the key that routine tries to open+return * @aEmitErrorMessage if set to true, will emit() error messages * to application controller to handle. * In profile change situation it hurts. * @return key if success, NULL if error. Caller of this method * is responsible for free()ing the key using EVP_PKEY_free() */ EVP_PKEY *PrivateKeyFromPem(const QByteArray& aPemBytes, bool aEmitErrorMessage = true ) ; /** * Method for opening PEM bytes previously obtained using * @ref PublicKey method. * @param aPemByteArray * @return key if success, NULL if error. Caller of this method * is responsible for free()ing the key using EVP_PKEY_free() */ EVP_PKEY *PublicKeyFromPem(const QByteArray& aPemBytes) ; /** * method for getting x509 fingerprint of a PEM key */ Hash hashOfPublicKey(const QByteArray& aPemBytes) ; signals: /** * this is not method but signal ; if in error, get emit()ted */ void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: // methods /** * work-horse of verify-methods, * this is called from actual "verify" variants */ bool doVerify(const QByteArray& aPemBytesOfSigningKey, const QByteArray& aDataToVerify, const QByteArray& aSignatureToVerify, const QByteArray* aOptionalMetadata = NULL, bool emitErrorMessage = true ) ; private: // member variables: MController *iController ; const MModelProtocolInterface& iModel ; } ; #endif classified-ads-0.09/datamodel/datamodelbase.cpp000066400000000000000000000132131260620453500215430ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "datamodelbase.h" #include "../log.h" #include #include #include ModelBase::ModelBase(QString aDataTableName, unsigned aMaxRowsToKeep ) : iDataTableName(aDataTableName), iMaxRowsToKeep(0), iCurrentDbTableRowCount(0) { unsigned maxRowsFromDb ( getMaxRowsToKeep() ) ; if ( maxRowsFromDb == 0 ) { setMaxRowsToKeep(aMaxRowsToKeep) ; // side-effectively sets iMaxRowsToKeep } else { iMaxRowsToKeep = maxRowsFromDb ; } updateDbTableRowCount() ; } ModelBase::~ModelBase() { } bool ModelBase::setTimeLastReference(const Hash& aObjectFingerPrint, quint32 aTimeWhenLastReferenced) { QLOG_STR("ModelBase::setTimeLastReference table " + iDataTableName ) ; bool retval (false) ; QSqlQuery query; retval = query.prepare ("update "+iDataTableName+" set time_last_reference=:time_last_reference where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( retval ) { query.bindValue(":hash1", aObjectFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aObjectFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aObjectFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aObjectFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aObjectFingerPrint.iHash160bits[4]); query.bindValue(":time_last_reference", aTimeWhenLastReferenced); retval = query.exec() ; } if ( !retval ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } return retval ; } unsigned ModelBase::getMaxRowsToKeep() { QSqlQuery query; bool retval ; unsigned ret ( 0 ) ; retval = query.prepare ("select "+iDataTableName+"_maxrows from settings"); if ( retval && (retval = query.exec()) && query.next ()) { if ( !query.isNull(0) ) { ret = query.value(0).toUInt() ; } } if ( !retval ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } return ret ; } void ModelBase::setMaxRowsToKeep(unsigned aRows) { QSqlQuery query; bool retval ; retval = query.prepare ("update settings set "+iDataTableName+"_maxrows = :rows"); if ( retval ) { query.bindValue(":rows", aRows) ; retval = query.exec() ; iMaxRowsToKeep = aRows ; } if ( !retval ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } } void ModelBase::updateDbTableRowCount() { QSqlQuery query; bool retval ; retval = query.prepare ("select count(hash1) from "+iDataTableName); if ( retval && (retval = query.exec()) && query.next ()) { if ( !query.isNull(0) ) { iCurrentDbTableRowCount = query.value(0).toUInt() ; } } if ( !retval ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } QLOG_STR("Rows in db table " + iDataTableName + " = " + QString::number(iCurrentDbTableRowCount)) ; } void ModelBase::truncateDataTableToMaxRows(void) { QLOG_STR("truncateDataTableToMaxRows in, rows in db table " + iDataTableName + " = " + QString::number(iCurrentDbTableRowCount)) ; QSqlQuery q ; q.exec("begin transaction") ; while(iCurrentDbTableRowCount > iMaxRowsToKeep) { if ( deleteOldestDataRowInTable() == false ) { break ; // out of the loop, if this happens we would get eternal loop } } q.exec("commit") ; QLOG_STR("truncateDataTableToMaxRows out, rows in db table " + iDataTableName + " = " + QString::number(iCurrentDbTableRowCount)) ; } bool ModelBase::deleteOldestDataRowInTable() { bool ret = false ; QSqlQuery query; // odd-looking sqlite-specific operation here. intention is to // delete exactly one row from table. we could delete several but // then we'll lose count because qt documentation says that // numRowsAffected() works only for select statements .. that might // be true for old sqlite versions. anyway, this should work // regardless of sqlite versions ret = query.exec("delete from " + iDataTableName + " where rowid = ( select max(rowid) from (select rowid from " + iDataTableName + " where time_last_reference = ( select min(time_last_reference) from " + iDataTableName + " ) ) ) ") ; if ( ret ) { iCurrentDbTableRowCount-- ; } return ret ; } classified-ads-0.09/datamodel/datamodelbase.h000066400000000000000000000076011260620453500212140ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CLASSIFIED_DATAMODEL_BASE_H #define CLASSIFIED_DATAMODEL_BASE_H #include #include #include "../mcontroller.h" // because enum from there is needed class QSqlDatabase ; class QMutex ; class Hash ; class ContentEncryptionModel ; /** * @brief datamodel-parts common part. this is inherited and contains common funcs * * There are several datamodel parts (profiles, files, ads etc.) that * need some almost-equivalent functions ; this class is an attempt to * provide those with minimal code duplication. */ class ModelBase : public QObject { Q_OBJECT public: /** * Constructor. * * @param aDataTableName specifies the database table where (most) of the * data related to this model-part is stored in * @param aMaxRowsToKeep initial value (from const.h) for max * number of rows to keep in @ref aDataTableName table ; * class will check for modified value in settings table * and if there is any, it will be used. */ ModelBase(QString aDataTableName, unsigned aMaxRowsToKeep ) ; ~ModelBase() ; /** * this method sets time of last reference for an object. * this is supposed to be called in situations where we * know that a human requested the object to be displayed ; * calls from UI layer are natural, also maybe situations * where neighboring node sends a request that can only * result from UI action. * * Reason for the UI-requirement is this: we use the time of * last reference to remove content from database, starting * from data that has not been referenced for some time. */ bool setTimeLastReference(const Hash& aObjectFingerPrint, quint32 aTimeWhenLastReferenced) ; /** * method for controlling table truncation length */ unsigned getMaxRowsToKeep() ; /** * method for controlling table truncation length variable */ void setMaxRowsToKeep(unsigned aRows) ; /** * method that truncates the main data table size to * @ref iCurrentDbTableRowCount rows. This is to be * periodically called, currently via timer in model. */ void truncateDataTableToMaxRows(void) ; /** method for getting initial value for iCurrentDbTableRowCount */ void updateDbTableRowCount() ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: // methods virtual bool deleteOldestDataRowInTable() ; protected: /** * name of primary table where data related to each model part is * kept ; in runtime this gets values like "binaryfile" or "profle" */ QString iDataTableName ; /** * max number of rows to keep in db table whose name is in @ref iDataTableName */ unsigned iMaxRowsToKeep ; /** * Number of rows currently on table. This may get incremented by * classes that inherint this class. */ unsigned iCurrentDbTableRowCount ; } ; #endif classified-ads-0.09/datamodel/mmodelprotocolinterface.h000066400000000000000000000061601260620453500233460ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef M_MODEL_PROTOCOL_INTERFACE_H #define M_MODEL_PROTOCOL_INTERFACE_H #include #include "../mcontroller.h" #include "netrequestexecutor.h" #include "mmodelprotocolinterface.h" class MNodeModelProtocolInterface ; class ProfileModel ; class BinaryFileModel ; class ClassifiedAdsModel ; class PrivMessageModel ; class ContentEncryptionModel ; class ProfileCommentModel ; class SearchModel ; /** * @brief Pure-virtual interface of datamodel for message parser to use * * This interface is given to incoming-message -parsing part of * networking code. Main reason for existence of this interface * is testability; in unit-test situation we will have mock-up model * behind this interface, in normal situation the normal datamodel. */ class MModelProtocolInterface : public QObject { Q_OBJECT public: /** * method for adding a network request * @param aRequest is the request to add * @return none */ virtual void addNetworkRequest(NetworkRequestExecutor::NetworkRequestQueueItem& aRequest) const = 0 ; /** * thread sync: this claims access to datamodel */ virtual bool lock() = 0 ; /** * thread sync: releases data model to other threads */ virtual void unlock() = 0 ; /** * method for getting node-specific datamodel */ virtual MNodeModelProtocolInterface& nodeModel() const = 0 ; /** * method for getting profile-specific datamodel */ virtual ProfileModel& profileModel() const = 0 ; /** * method for getting blob-specific datamodel */ virtual BinaryFileModel& binaryFileModel() const = 0 ; /** method for getting the ads datamodel */ virtual ClassifiedAdsModel& classifiedAdsModel() const = 0 ; /** method for getting the private message datamodel */ virtual PrivMessageModel& privateMessageModel() const = 0 ; /** method for getting the en/de-cryption part of the datamodel */ virtual ContentEncryptionModel& contentEncryptionModel() const = 0 ; virtual ProfileCommentModel& profileCommentModel() const = 0 ; /**< method for getting the comment datamodel */ virtual SearchModel* searchModel() const = 0 ; /**< method for getting the full text search datamodel */ }; #endif classified-ads-0.09/datamodel/mnodemodelprotocolinterface.h000066400000000000000000000150451260620453500242160ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef M_NODEMODEL_PROTOCOL_INTERFACE_H #define M_NODEMODEL_PROTOCOL_INTERFACE_H #include class Connection ; class QHostAddress ; class Node ; class QSslKey ; class QSslCertificate ; class Hash ; /** * @brief Pure-virtual interface of nodemodel. * * Interface for node-specific part of datamodel. Exists Mainly for testing * purposes. Contains all methods of node-model that are of interest * to parties outside datamodel. See @ref NodeModel. */ class MNodeModelProtocolInterface { public: /** * structure used for communicating lists of nodes to connect * between datamodel and networking parts. Basically these * are nodes but reduced to plain addr/hash. */ typedef struct HostConnectQueueItemStructure { QHostAddress iAddress ; /**< ip addr */ int iPort ; /**< tcp port */ Hash iNodeHash ; /**< fingerprint of node, if known */ bool operator==(const struct HostConnectQueueItemStructure& a) const ; } HostConnectQueueItem ; virtual bool nodeGreetingReceived(Node& aNode , bool aWasInitialGreeting = false ) = 0 ; virtual Hash& nodeFingerPrint() = 0 ; /**< returns fingerprint of this node */ virtual int listenPortOfThisNode() = 0 ; /**< TCP listen port number method */ /** for setting of tcp listen port */ virtual void setListenPortOfThisNode(int port) = 0 ; virtual const QSslCertificate& nodeCert() const = 0 ; /** getter for ssl certificate of SSL sock */ virtual const QSslKey& nodeKey() const = 0 ; virtual QByteArray* getNextItemToSend(Connection& aConnection) = 0 ; virtual Node* nodeByHash(const Hash& aHash) = 0 ; virtual QList* getNodesBeforeHash(const Hash& aHash, unsigned aMaxNodes) = 0 ; virtual void closeOldestInactiveConnection() = 0 ; virtual QList* getNodesAfterHash(const Hash& aHash, unsigned aMaxNodes, int aMaxInactivityMinutes = -1 ) = 0 ; virtual QList getHotAddresses() = 0 ; virtual bool updateNodeLastConnectTimeInDb(Node& aNode) =0 ; virtual QList* getHotNodes(int aMaxNodes) = 0 ; /** * method for adding node reference from broadcast. * this needs difference in handling because in IPv4 * network this typically contains private addr space * addresses that we don't want to permanently store nor * give to others as node-references. * * For making connections inside LANs of organisations * having NATs and firewalls and whatnot this might * still be a handy feature. */ virtual void addNodeFromBroadcast(const Hash& aNodeFingerPrint, const QHostAddress& aAddr, int aPort ) = 0 ; /** * method for adding a node to connection-wishlist. * network connector engine will then later pick them up. * nodemodel will take ownership of the node and delete * the object later. * @return true if connection was queued */ virtual bool addNodeToConnectionWishList(Node* aNode) = 0 ; /** * method for adding a node to connection-wishlist. * network connector engine will then later pick them up. * @return true if connection was queued */ virtual bool addNodeToConnectionWishList(const Hash& aNode) = 0 ; /** * method for getting one node from wishlist. * caller is obliged to delete the node returned. * @return node or null if there is nothing in wishlist */ virtual Node* nextConnectionWishListItem() = 0 ; /** * method for checking if a node is already connected */ virtual bool isNodeAlreadyConnected(const Node& aNode) const = 0 ; /** * Method for checking if a node is already connected. * This version checks only hash, not addresses. */ virtual bool isNodeAlreadyConnected(const Hash& aHash) const = 0 ; /** * Important method regarding churn here. This is called from * @ref Connection class and this method is used to determine * what content belongs to same bucket with the node that * is being served by that Connection. Content in the same bucket * with the node is then sent over to node ; to keep the content * alive in the network. * * Intent here is find bucket size where we have approximately * 20 live nodes in a bucket. * * This is done so that we order the recently-seen nodes by hash * value of the node, then start from the fingerprint of the node * that is asking, and from that point we count to 20. The fingerprint * of the node at position 20 is the end of the bucket. The * fingerprint of the node that asks is the start. * * @param aFingerPrintOfNodeAsking fingerprint of node that wants to * have its bucket filled * @return Ending-address of the nodes bucket. */ virtual Hash bucketEndHash(const Hash& aFingerPrintOfNodeAsking) = 0 ; /** * updates last mutual connect time, used for deciding what content * to send automatically upon node connect */ virtual bool updateNodeLastMutualConnectTimeInDb(const Hash& aNodeFp, quint32 aTime ) = 0 ; /** called from settings dialog */ virtual void setDnsName(QString aName) = 0 ; /** called from settings dialog and own node construction */ virtual QString getDnsName() = 0 ; /** used to offer node to list of recently failed connections. * this model maintains a list of such nodes and tries to * not immediately re-connect a recently failed node */ virtual void offerNodeToRecentlyFailedList(const Hash& aFailedNodeHash) = 0 ; }; #endif classified-ads-0.09/datamodel/model.cpp000066400000000000000000001570051260620453500200660ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "model.h" #include "../log.h" #include #include #include #include #include #include #include "../util/hash.h" #include #include #include #include #include #include "../net/connection.h" #include "../net/protocol_message_formatter.h" #include "../net/node.h" #include "../net/networklistener.h" #include "netrequestexecutor.h" #include "contentencryptionmodel.h" #include "profilemodel.h" #include // library init #include // OpenSSL_add_all_algorithms #include // random seed things #include "binaryfilemodel.h" #include "camodel.h" #include "privmsgmodel.h" #include "profilecommentmodel.h" #include "searchmodel.h" #include "trusttreemodel.h" #include #include #include #ifdef WIN32 #include #include #endif Model::Model(MController *aController) : iController(aController), iMutex(NULL) , iConnections(NULL), iNodeModel(NULL), iNetReqExecutor(NULL), iNetReqQueue(NULL), iContentEncryptionModel(NULL), iProfileModel(NULL), iBinaryFileModel(NULL), iCaModel(NULL), iTimerId(-1), iPrivMsgModel(NULL), iProfileCommentModel(NULL), iSearchModel(NULL), iTrustTreeModel(NULL), iTimeOfLastNetworkAddrCheck(QDateTime::currentDateTimeUtc().toTime_t()) { LOG_STR("Model::Model()") ; connect(this, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection) ; iMutex = new QMutex() ; initPseudoRandom() ; if (!openDB()) { QString errorText (lastError().text()) ; emit(error(MController::DataBaseNotMountable, errorText)) ; } iNodeModel = new NodeModel(aController, *this) ; iConnections = new QList() ; iNetReqQueue = new QList (); iNetReqExecutor = new NetworkRequestExecutor(aController, *this) ; iContentEncryptionModel = new ContentEncryptionModel(aController, *this) ; iProfileModel = new ProfileModel(aController, *this) ; iBinaryFileModel = new BinaryFileModel(aController, *this) ; iCaModel = new ClassifiedAdsModel(aController, *this) ; iPrivMsgModel = new PrivMessageModel(aController, *this) ; iSearchModel = new SearchModel(*this,*iController) ; iSearchModel->setObjectName("CA SearchModel") ; iTrustTreeModel = new TrustTreeModel(aController, *this ) ; iProfileCommentModel = new ProfileCommentModel(aController, *this) ; iNetReqExecutor->setInterval(1000); // start is called by controller connect(iBinaryFileModel, SIGNAL( contentReceived(const Hash& , const ProtocolItemType ) ), this, SLOT(notifyOfContentReceived(const Hash& , const ProtocolItemType)), Qt::QueuedConnection) ; connect(iPrivMsgModel, SIGNAL( contentReceived(const Hash& , const Hash& , const ProtocolItemType ) ), this, SLOT(notifyOfContentReceived(const Hash& , const Hash& , const ProtocolItemType)), Qt::QueuedConnection) ; connect(iProfileCommentModel, SIGNAL( contentReceived(const Hash& , const Hash& , const ProtocolItemType ) ), this, SLOT(notifyOfContentReceived(const Hash& , const Hash& , const ProtocolItemType)), Qt::QueuedConnection) ; connect(iProfileModel, SIGNAL( contentReceived(const Hash& , const ProtocolItemType ) ), this, SLOT(notifyOfContentReceived(const Hash& , const ProtocolItemType)), Qt::QueuedConnection) ; connect(iCaModel, SIGNAL( contentReceived(const Hash& , const Hash& , const ProtocolItemType ) ), this, SLOT(notifyOfContentReceived(const Hash& , const Hash& , const ProtocolItemType)), Qt::QueuedConnection) ; connect(iPrivMsgModel, SIGNAL( contentReceived(const Hash& , const Hash& , const ProtocolItemType ) ), this, SLOT(notifyOfContentReceived(const Hash& , const Hash& , const ProtocolItemType)), Qt::QueuedConnection) ; // connect same to controller too: connect(iBinaryFileModel, SIGNAL( contentReceived(const Hash& , const ProtocolItemType ) ), iController, SLOT(notifyOfContentReceived(const Hash& , const ProtocolItemType)), Qt::QueuedConnection) ; connect(iPrivMsgModel, SIGNAL( contentReceived(const Hash& , const Hash& , const ProtocolItemType ) ), iController, SLOT(notifyOfContentReceived(const Hash& , const Hash& , const ProtocolItemType)), Qt::QueuedConnection) ; connect(iProfileModel, SIGNAL( contentReceived(const Hash& , const ProtocolItemType ) ), iController, SLOT(notifyOfContentReceived(const Hash& , const ProtocolItemType)), Qt::QueuedConnection) ; connect(iCaModel, SIGNAL( contentReceived(const Hash& , const Hash& , const ProtocolItemType ) ), iController, SLOT(notifyOfContentReceived(const Hash& , const Hash& , const ProtocolItemType)), Qt::QueuedConnection) ; connect(iPrivMsgModel, SIGNAL( contentReceived(const Hash& , const Hash& , const ProtocolItemType ) ), iController, SLOT(notifyOfContentReceived(const Hash& , const Hash& , const ProtocolItemType)), Qt::QueuedConnection) ; connect(iProfileCommentModel, SIGNAL( contentReceived(const Hash& , const Hash& , const ProtocolItemType ) ), iController, SLOT(notifyOfContentReceived(const Hash& , const Hash& , const ProtocolItemType)), Qt::QueuedConnection) ; iTimerId = startTimer(60000*10); // 10-minute timer } Model::~Model() { LOG_STR("Model::~Model()") ; if ( iTimerId != -1 ) { killTimer(iTimerId) ; } if ( iNetReqExecutor ) { iNetReqExecutor->stop() ; delete iNetReqExecutor ; } closeAllConnections(true) ; delete iConnections; delete iNodeModel ; delete iProfileCommentModel ; delete iPrivMsgModel ; delete iProfileModel ; delete iNetReqQueue ; delete iBinaryFileModel ; delete iSearchModel ; delete iTrustTreeModel ; delete iCaModel ; delete iContentEncryptionModel ; iDb.close(); iController = NULL ; // not owned, just set null delete iMutex ; } void Model::closeAllConnections(bool aDeleteAlso) { if ( iConnections ) { LOG_STR2("Model::closeAllConnections %d", iConnections->count()) ; // normally networklistener has been deleted before // model and networklistener is parent of connections, // that now have been deleted too due to parent->child // relationship -> usually the loop below is looped 0 times. for ( int i = iConnections->count()-1 ; i >= 0 ; i-- ) { Connection *c = iConnections->at(i) ; if ( c ) { c->iNeedsToRun = false ; } if ( aDeleteAlso ) { delete c ; } } } } bool Model::lock() { #ifdef __DEBUG__ assert(iMutex->tryLock(1000*15)==true) #else iMutex->lock() ; #endif return true ; } void Model::unlock() { iMutex->unlock() ; } bool Model::openDB() { bool tables_needed = false ; iDb = QSqlDatabase::addDatabase("QSQLITE"); QString path(QDir::home().path()); path.append(QDir::separator()).append(".classified_ads"); if (!QDir(path).exists()) { QDir().mkdir(path) ; tables_needed = true ; } path.append(QDir::separator()).append("sqlite_db"); path = QDir::toNativeSeparators(path); if (!QFile(path).exists()) { tables_needed = true ; } iDb.setDatabaseName(path); // Open database bool isDbOpen = iDb.open() ; if ( isDbOpen && tables_needed ) { if ( createTables() == false ) { return false ; } } if ( isDbOpen ) { // set file mode QFile databaseFile(path) ; databaseFile.setPermissions(QFile::ReadOwner|QFile::WriteOwner) ; // do cleanup to rectify previous bugs: QSqlQuery query; // removes every comment that does not begin with { as all json // is supposed but it still is not marked as private (==encrypted) bool ret = query.exec("delete from profile where profiledata not like x'7b25' and is_private = 'false' and hash1 not in ( select hash1 from privatekeys )") ; if ( ret == false ) { QLOG_STR("Profile cleanup: " + query.lastError().text()) ; } else { QLOG_STR("Cleaned away faulty profiles " + QString::number(query.numRowsAffected () )) ; } ret = query.exec("delete from profilecomment where commentdata not like x'7b25' and flags&1 = 0") ; if ( ret == false ) { QLOG_STR("Profile comment cleanup: " + query.lastError().text()) ; } else { QLOG_STR("Cleaned away faulty comments " + QString::number(query.numRowsAffected () )) ; } } return isDbOpen ; } QSqlError Model::lastError() { QSqlError e = iDb.lastError(); QLOG_STR(e.text()) ; return e; } bool Model::createTables() { bool ret = false; QSqlQuery query; ret = query.exec("create table settings " "(datastore_version unsigned int primary key," "node_listenport unsigned int," "profile_maxrows unsigned int," "private_message_maxrows unsigned int," "binaryfile_maxrows unsigned int," "classified_ad_maxrows unsigned int," "profilecomment_maxrows unsigned int," "node_maxrows unsigned int," "node_key varchar(5000)," "node_cert varchar(5000)," "dns_name varchar(256))"); if ( ret ) { QSqlQuery query; ret = query.exec ( "insert into settings (datastore_version) values (1)" ) ; } LOG_STR2("Table settings created 1 is ok, = %d", ret) ; if ( ret ) { QSqlQuery q2; ret = q2.exec("create table node " "(hash1 unsigned int not null," "hash2 unsigned int not null," "hash3 unsigned int not null," "hash4 unsigned int not null," "hash5 unsigned int not null," "listenport unsigned int," "last_conn_time unsigned int," "does_listen unsigned int," "ipv4addr unsigned int," "ipv6addr1 unsigned int," "ipv6addr2 unsigned int," "ipv6addr3 unsigned int," "ipv6addr4 unsigned int," "time_last_reference unsigned int," "last_nodelist_time unsigned int," "dns_name varchar(256)," "tor_name varchar(256)," "last_mutual_conn_time unsigned int)"); LOG_STR2("Table node created, retval = %d", ret) ; } if ( ret ) { QSqlQuery q3; // note how index is not unique. set of hash1+2+3+4+5 is // (fairly) unique but setting hash1 to be unique would // prevent storage of documents(nodes) where hash collides in // first 32 bits - that's fairly bigger chance compared // to hash collision in "full" 160 bits. ret = q3.exec("create index node_hash1_ind on node(hash1)"); LOG_STR2("Index node(hash1) created, retval = %d", ret) ; } if ( ret ) { QSqlQuery q4; ret = q4.exec("create table privatekeys(prikey varchar(5000) not null," "hash1 unsigned int not null," "hash2 unsigned int not null," "hash3 unsigned int not null," "hash4 unsigned int not null," "hash5 unsigned int not null," "last_msgpoll_time unsigned int," "private_data blob)"); LOG_STR2("Table for private keys created %d", ret) ; } if ( ret ) { QSqlQuery q5; ret = q5.exec("create table profile(pubkey varchar(5000) not null," "hash1 unsigned int not null," "hash2 unsigned int not null," "hash3 unsigned int not null," "hash4 unsigned int not null," "hash5 unsigned int not null," "profiledata blob," "is_private int," "time_last_reference unsigned int," "signature varchar(1024)," "display_name varchar(160)," "time_of_publish unsigned int," "recvd_from unsigned int," "time_of_update_poll unsigned int)"); LOG_STR2("Table for profile data created %d", ret) ; } if ( ret ) { QSqlQuery q6; ret = q6.exec("create index profile_hash1_ind on profile(hash1)"); LOG_STR2("Index for profile data table created %d", ret) ; } if ( ret ) { QSqlQuery q7; // usage of the following table is this: // when new item (profile,ca,privmsg,binary blob) is published // it is inserted into this table. // networking module will take items (identified by hash1-5) // from this table one-by-one, connect to 5 nodes one-by-one // (marked by bangpath1-5 where each bangpath contains the // low-order bits of the noderef of node where item // has already been sent) // when 5th node has been filled, row is removed from table // and stuff is considered published // itemtype is one of enum ProtocolItemType from protocol.h // // some object types have actually 2 addresses and are // published twice: classified ads to content address and // the group controller address ; profile comments to // content address and profile address. ret = q7.exec("create table publish(itemtype int not null," "hash1 unsigned int not null," "hash2 unsigned int not null," "hash3 unsigned int not null," "hash4 unsigned int not null," "hash5 unsigned int not null," "secondary_addr_hash1 unsigned int ," "secondary_addr_hash2 unsigned int ," "secondary_addr_hash3 unsigned int ," "secondary_addr_hash4 unsigned int ," "secondary_addr_hash5 unsigned int ," "bangpath1 unsigned int," "bangpath2 unsigned int," "bangpath3 unsigned int," "bangpath4 unsigned int," "bangpath5 unsigned int," "hostcount int not null," "last_time_tried unsigned int)"); LOG_STR2("Table for publish data created %d", ret) ; } if ( ret ) { QSqlQuery q8; ret = q8.exec("create table binaryfile(" "hash1 unsigned int not null," "hash2 unsigned int not null," "hash3 unsigned int not null," "hash4 unsigned int not null," "hash5 unsigned int not null," "publisher_hash1 unsigned int not null," "publisher_hash2 unsigned int not null," "publisher_hash3 unsigned int not null," "publisher_hash4 unsigned int not null," "publisher_hash5 unsigned int not null," "contentdata blob," "is_private int," "is_compressed int," "time_last_reference unsigned int," "signature varchar(1024)," "display_name varchar(160)," "time_of_publish unsigned int," "metadata blob ," "recvd_from unsigned int )") ; LOG_STR2("Table for binary files created %d", ret) ; } if ( ret ) { QSqlQuery q9; ret = q9.exec("create index binaryfile_hash1_ind on binaryfile(hash1)"); LOG_STR2("Index for binary blob data table created %d", ret) ; } if ( ret ) { QSqlQuery q10; ret = q10.exec("create table classified_ad(" "hash1 unsigned int not null," "hash2 unsigned int not null," "hash3 unsigned int not null," "hash4 unsigned int not null," "hash5 unsigned int not null," "group_hash1 unsigned int not null," "group_hash2 unsigned int not null," "group_hash3 unsigned int not null," "group_hash4 unsigned int not null," "group_hash5 unsigned int not null," "reply_to unsigned int," "time_last_reference unsigned int," "time_added unsigned int not null," "signature varchar(1024)," "display_name varchar(160)," "time_of_publish unsigned int," "jsondata blob ," "recvd_from unsigned int )") ; LOG_STR2("Table for classified_ads created %d", ret) ; } if ( ret ) { QSqlQuery q11; ret = q11.exec("create index ca_hash1_ind on classified_ad(hash1)"); LOG_STR2("Index for classified data table created %d", ret) ; } if ( ret ) { QSqlQuery q12; ret = q12.exec("create index ca_ghash1_ind on classified_ad(group_hash1)"); LOG_STR2("Index for classified data table group hash created %d", ret) ; } if ( ret ) { QSqlQuery q13; ret = q13.exec("create table private_message(" "hash1 unsigned int not null," "hash2 unsigned int not null," "hash3 unsigned int not null," "hash4 unsigned int not null," "hash5 unsigned int not null," "dnode_hash1 unsigned int," "dnode_hash2 unsigned int," "dnode_hash3 unsigned int," "dnode_hash4 unsigned int," "dnode_hash5 unsigned int," "recipient_hash1 unsigned int not null," "recipient_hash2 unsigned int not null," "recipient_hash3 unsigned int not null," "recipient_hash4 unsigned int not null," "recipient_hash5 unsigned int not null," "sender_hash1 unsigned int," "is_read int," "time_last_reference unsigned int," "signature varchar(1024)," "time_of_publish unsigned int," "messagedata blob ," "recvd_from unsigned int )") ; LOG_STR2("Table for private messages created %d", ret) ; } if ( ret ) { QSqlQuery q14; ret = q14.exec("create index privmsg_hash1_ind on private_message(hash1)"); QSqlQuery q15; ret = q15.exec("create index privmsg_dhash1_ind on private_message(dnode_hash1)"); QSqlQuery q16; ret = q16.exec("create index privmsg_rhash1_ind on private_message(recipient_hash1)"); LOG_STR2("Index for private message data table created %d", ret) ; } if ( ret ) { QSqlQuery q17; ret = q17.exec("create table profilecomment(" "hash1 unsigned int not null," "hash2 unsigned int not null," "hash3 unsigned int not null," "hash4 unsigned int not null," "hash5 unsigned int not null," "profile_hash1 unsigned int," "profile_hash2 unsigned int," "profile_hash3 unsigned int," "profile_hash4 unsigned int," "profile_hash5 unsigned int," "sender_hash1 unsigned int," "time_last_reference unsigned int," "signature varchar(1024)," "time_of_publish unsigned int," "commentdata blob ," "recvd_from unsigned int," "flags unsigned int," "display_name varchar(160) )") ; // display name might be message subject LOG_STR2("Table for profile comments created %d", ret) ; } if ( ret ) { QSqlQuery q18; ret = q18.exec("create index profcomment_hash1_ind on profilecomment(hash1)"); QSqlQuery q19 ; ret = q19.exec("create index profcomment_phash1_ind on profilecomment(profile_hash1)"); } // in sqlite there is special table type for full text search. if ( SearchModel::queryIfFTSSupported()) { SearchModel::createFTSTables() ; } return ret; } void Model::initPseudoRandom() { SSL_load_error_strings(); SSL_library_init(); LOG_STR2("Openssl %s\n", SSLeay_version(SSLEAY_VERSION)) ; #ifdef WIN32 OpenSSL_add_all_algorithms() ; #endif // first initialize random numbah generator QString randomFileName("") ; if (QFile("/dev/urandom").exists()) { // fast randomFileName = "/dev/urandom" ; } else if (QFile("/dev/arandom").exists()) { // bsd? randomFileName = "/dev/arandom" ; } else if (QFile("/dev/random").exists()) { // slow but good randomFileName = "/dev/random" ; } else { #ifdef WIN32 #define RANDOM_LEN (5*sizeof(quint32)) // this code is from MSDN examples HCRYPTPROV hCryptProv = 0 ; BYTE pbData[RANDOM_LEN] = { 0 } ; LPCWSTR UserName = L"Zappa, Frank"; // name of the key container if(CryptAcquireContext( &hCryptProv, // handle to the CSP UserName, // container name NULL, // use the default provider PROV_RSA_FULL, // provider type 0)) { // flag values QLOG_STR("Win32 seed: A cryptographic context has been acquired."); } else { if(CryptAcquireContext( &hCryptProv, UserName, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET)) { QLOG_STR("Win32 seed: A new key container has been created.\n"); } else { QLOG_STR("Win32 seed: Could not create a new key container.\n"); } } if ( hCryptProv ) { if(CryptGenRandom( hCryptProv, RANDOM_LEN, pbData)) { QLOG_STR("Win32 seed: Random sequence generated. \n"); RAND_seed(&pbData, RANDOM_LEN); unsigned int *pointer1intothemiddle = reinterpret_cast(pbData); srand(*pointer1intothemiddle) ; pointer1intothemiddle++ ; qsrand(*pointer1intothemiddle) ; } else { printf("Win32 seed: Error during CryptGenRandom.\n"); } if (CryptReleaseContext(hCryptProv,0)) { printf("Win32 seed: The handle has been released.\n"); } else { printf("Win32 seed:The handle could not be released.\n"); } } #else // oh dear. emphasis is on word pseudo. QUuid u = QUuid::createUuid() ; QString eight_letters = u.toString() ; eight_letters.remove(0,25) ; eight_letters.truncate(8) ; unsigned int seed ; char buf[30] ; sprintf(buf,"%.8s",eight_letters.toUtf8().constData()) ; sscanf(buf, "%x", &seed) ; LOG_STR2("Random seed %x", seed) ; srand(seed) ; qsrand(rand()) ; // note that in qt different threads may have // their own random seeds?? RAND_seed(&seed, sizeof(seed)); #endif } if ( randomFileName.length() > 2 ) { QFile randomFile(randomFileName) ; if ( randomFile.open(QIODevice::ReadOnly) ) { QLOG_STR("Used rnd-file " + randomFileName) ; QByteArray randomBytes = randomFile.read(1024) ; char *randomBytesPointer = randomBytes.data() ; RAND_seed(randomBytesPointer, 1024); unsigned int *pointer1intothemiddle ; unsigned int *pointer2intothemiddle ; pointer1intothemiddle = (unsigned int *)randomBytesPointer ; pointer1intothemiddle++ ; pointer1intothemiddle++ ; pointer1intothemiddle++ ; pointer1intothemiddle++ ; pointer2intothemiddle = pointer1intothemiddle ; pointer2intothemiddle++ ; pointer2intothemiddle++ ; pointer2intothemiddle++ ; pointer2intothemiddle++ ; srand(*pointer1intothemiddle) ; qsrand(*pointer2intothemiddle) ; // note that in qt different threads may have randomFile.close() ; } else { QLOG_STR("FATAL: Can't open " + randomFileName) ; assert(1 == 2) ; } } } // called from networklistener, at least void Model::addOpenNetworkConnection(Connection *aConnection) { iConnections->append(aConnection) ; // first thing for the new connection to send is some random // number to add confuzius // // second thing for the new connection to send is greetings // so that the other end can identify. // // wut next? aConnection->iNextProtocolItemToSend.append(new QByteArray(ProtocolMessageFormatter::randomNumbers())) ; // previous call to random number runs in same thread with model aConnection->iNextProtocolItemToSend.append(new QByteArray(ProtocolMessageFormatter::nodeGreeting(iController->getNode()))) ; // wyt next? we have node connected. what is she going to need? // lets do so that we wait until node greeting. there // she'll gossip us her latest node ref timestamp // so at least we can then send the node ref around // her starting from given timestamp .. for now, do no thing. // and did we already have too many connections.. if (iConnections->size() > KMaxOpenConnections ) { iNodeModel->closeOldestInactiveConnection() ; } } void Model::removeOpenNetworkConnection(Connection *aDeletedConnection) { int indexInArray = iConnections->indexOf(aDeletedConnection) ; if ( indexInArray > -1 ) { iConnections->removeAt(indexInArray) ; LOG_STR2("Removed client %d", indexInArray) ; } else { LOG_STR("deleted client not found from array???") ; } if (aDeletedConnection->node()) { for ( int i = (iNetReqQueue->size()-1) ; i >= 0 ; i--) { if(iNetReqQueue->value(i).iDestinationNode == aDeletedConnection->node()->nodeFingerPrint() ) { iNetReqQueue->removeAt(i) ; LOG_STR2("Removed associated netreq at %d", i) ; } } } } // this is called at least by connection itself, when // it determines it is open for communication. note that // when connection class this, datamodel is already locked. // void Model::connectionStateChanged(Connection::ConnectionState aState, Connection *aConnection) { // may be needed to call lock() in here.. LOG_STR2("Connectionstate = %d", aState) ; if ( aState == Connection::Open ) { // check that we don't have duplicate connection, it seems to // happen easily if we have broadcast together with multiple // ipv6 addresses per single network interface: broadcasts come // from one address, address included inside is another.. // and check self first if ( aConnection->getPeerHash() == iController->getNode().nodeFingerPrint() ) { // great, managed to connect to self aConnection->iNeedsToRun = false ; return ; } // then loop through connections foreach ( const Connection *c, *iConnections ) { if ( c ) { if ( c != aConnection && aConnection->getPeerHash() == c->getPeerHash() ) { LOG_STR("Double connection to same node detected") ; aConnection->iNeedsToRun = false ; break ; } } } } } const QList & Model::getConnections() const { return *iConnections ; } QList & Model::getNetRequests() const { return *iNetReqQueue ; } void Model::addNetworkRequest(NetworkRequestExecutor::NetworkRequestQueueItem& aRequest) const { if ( iController->getNode().nodeFingerPrint() == aRequest.iDestinationNode ) { QLOG_STR("Skipping network request destined to self") ; } else { aRequest.iTimeStampOfLastActivity = QDateTime::currentDateTimeUtc().toTime_t(); if ( iNetReqQueue ) { iNetReqQueue->append(aRequest) ; } } } void Model::addItemToSend(const Hash& aDestinationNode, QByteArray* aBytesToSend) { Connection* c = NULL ; const Node* nodeOfConnection = NULL ; // connections are in no particular order so linear search.. for(int i = iConnections->size()-1 ; i >= 0 ; i-- ) { c = iConnections->value(i) ; nodeOfConnection = c->node() ; if (nodeOfConnection && ( nodeOfConnection->nodeFingerPrint() == aDestinationNode ) ) { // yes. c->iNextProtocolItemToSend.append(aBytesToSend) ; return ; // work done, get out } } // no match found, just delete bytes delete aBytesToSend ; } MNodeModelProtocolInterface& Model::nodeModel() const { return *iNodeModel ; } ContentEncryptionModel& Model::contentEncryptionModel() const { return *iContentEncryptionModel ; } ProfileModel& Model::profileModel() const { return *iProfileModel ; } BinaryFileModel& Model::binaryFileModel() const { return *iBinaryFileModel ; } ClassifiedAdsModel& Model::classifiedAdsModel() const { return *iCaModel ; } PrivMessageModel& Model::privateMessageModel() const { return *iPrivMsgModel ; } ProfileCommentModel& Model::profileCommentModel() const { return *iProfileCommentModel ; } SearchModel* Model::searchModel() const { return iSearchModel ; } TrustTreeModel* Model::trustTreeModel() const { return iTrustTreeModel ; } NetworkRequestExecutor* Model::getNetReqExecutor() { return iNetReqExecutor ; } /** * method for getting next item to publish * @param aFound will be set to true if there is an item to publish * @return if aFound is true, returned item contains details about * the item to publish. */ PublishItem Model::nextItemToPublish(bool* aFound) { PublishItem retval ; *aFound = false ; QSqlQuery query; bool ret ; // don't pick up the same item again if less than 10 minutes passed ret = query.prepare ("select itemtype,hash1,hash2,hash3,hash4,hash5, " " bangpath1,bangpath2,bangpath3,bangpath4,bangpath5," "hostcount,last_time_tried,secondary_addr_hash1," "secondary_addr_hash2,secondary_addr_hash3," "secondary_addr_hash4,secondary_addr_hash5 " " from publish where last_time_tried < :now_minus_10_minutes" " order by last_time_tried desc limit 1" ) ; query.bindValue(":now_minus_10_minutes", QDateTime::currentDateTimeUtc().toTime_t()-(60*10)) ; ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) && !query.isNull(1) ) { retval.iObjectType = (ProtocolItemType) ( query.value(0).toInt() ) ; quint32 h1 = query.value(1).toUInt() ; quint32 h2 = query.value(2).toUInt() ; quint32 h3 = query.value(3).toUInt() ; quint32 h4 = query.value(4).toUInt() ; quint32 h5 = query.value(5).toUInt() ; retval.iObjectHash = Hash(h1,h2,h3,h4,h5) ; if ( !query.isNull(13) ) { // there is secondary addr quint32 h1_2nd = query.value(13).toUInt() ; quint32 h2_2nd = query.value(14).toUInt() ; quint32 h3_2nd = query.value(15).toUInt() ; quint32 h4_2nd = query.value(16).toUInt() ; quint32 h5_2nd = query.value(17).toUInt() ; retval.i2NdAddr = Hash(h1_2nd, h2_2nd, h3_2nd, h4_2nd, h5_2nd) ; } retval.iAlreadyPushedHosts.clear() ; if ( !query.isNull(6) ) { quint32 bangPath1Value ( query.value(6).toUInt() ) ; LOG_STR2("BangPath1 value from db = %u", bangPath1Value) ; retval.iAlreadyPushedHosts.append( bangPath1Value ) ; } else { LOG_STR("BangPath1 value in db was null") ; } if ( !query.isNull(7) ) { retval.iAlreadyPushedHosts.append( query.value(7).toUInt() ) ; LOG_STR2("BangPath2 value from db = %u", query.value(7).toUInt()) ; } else { LOG_STR("BangPath2 value in db was null") ; } if ( !query.isNull(8) ) { retval.iAlreadyPushedHosts.append( query.value(8).toUInt() ) ; } if ( !query.isNull(9) ) { retval.iAlreadyPushedHosts.append( query.value(9).toUInt() ) ; } if ( !query.isNull(10) ) { retval.iAlreadyPushedHosts.append( query.value(10).toUInt() ) ; } LOG_STR2("Publish item found was %d minutes old", (QDateTime::currentDateTimeUtc().toTime_t()-query.value(12).toUInt()) / 60 ) ; LOG_STR2("Publish had %u hops in bangpath", retval.iAlreadyPushedHosts.size() ) ; if ( retval.iAlreadyPushedHosts.size()) { for ( int ii = 0 ; ii < retval.iAlreadyPushedHosts.size() ; ii++ ) { LOG_STR2("bangpath content %u", retval.iAlreadyPushedHosts[ii]) ; } } *aFound = true ; // because item was found, mark the time when it was found // so next time it will appear at the bottom of our list QSqlQuery query2 ; query2.prepare ("update publish set last_time_tried=:time where hash1=:hash1 and hash2=:hash2 and hash3=:hash3 and hash4=:hash4 and hash5=:hash5" ) ; query2.bindValue(":hash1", retval.iObjectHash.iHash160bits[0]) ; query2.bindValue(":hash2", retval.iObjectHash.iHash160bits[1]) ; query2.bindValue(":hash3", retval.iObjectHash.iHash160bits[2]) ; query2.bindValue(":hash4", retval.iObjectHash.iHash160bits[3]) ; query2.bindValue(":hash5", retval.iObjectHash.iHash160bits[4]) ; query2.bindValue(":time", QDateTime::currentDateTimeUtc().toTime_t()) ; if ( query2.exec() == false ) { QLOG_STR(query2.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query2.lastError().text()) ; } } } return retval ; } void Model::addItemToBePublished(ProtocolItemType aType, const Hash& aHash, const QList& aBangPath, const Hash& aSecondaryAddr ) { // short-cut handling for private messages that have // destination node set: if ( aType == PrivateMessage && aSecondaryAddr != KNullHash && iNodeModel->isNodeAlreadyConnected(aSecondaryAddr) ) { struct NetworkRequestExecutor::NetworkRequestQueueItem sendReq ; sendReq.iDestinationNode = aSecondaryAddr ; sendReq.iRequestedItem = aHash; sendReq.iMaxNumberOfItems = 1 ; sendReq.iBangPath = aBangPath ; sendReq.iState = NetworkRequestExecutor::NewRequest ; sendReq.iRequestType = PrivateMessage ; addNetworkRequest(sendReq) ; LOG_STR("published privmsg sent via short-cut") ; } else { // check we don't have the item already: if ( aBangPath.size() >= 5 ) { return ; // consider it published } int count ( 0 ) ; QSqlQuery query; bool ret ; ret = query.prepare ("select count (itemtype) from publish where " "hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 " "and hash5 = :hash5 and itemtype = :itemtype" ) ; query.bindValue(":hash1", aHash.iHash160bits[0]) ; query.bindValue(":hash2", aHash.iHash160bits[1]) ; query.bindValue(":hash3", aHash.iHash160bits[2]) ; query.bindValue(":hash4", aHash.iHash160bits[3]) ; query.bindValue(":hash5", aHash.iHash160bits[4]) ; query.bindValue(":itemtype", (int)aType) ; ret = query.exec() ; if ( !ret ) { LOG_STR2("Error while selecting from publish %s", qPrintable(query.lastError().text())) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) ) { count = query.value(0).toInt() ; } QSqlQuery query2; if ( count == 0 ) { // item did not exist beforehand ret = query2.prepare ("insert into publish(itemtype,hash1,hash2,hash3," "hash4,hash5,hostcount,last_time_tried,bangpath1," "bangpath2,bangpath3,bangpath4,bangpath5," "secondary_addr_hash1,secondary_addr_hash2," "secondary_addr_hash3," "secondary_addr_hash4,secondary_addr_hash5) values " "(:itemtype,:hash1,:hash2,:hash3,:hash4,:hash5,0,0," ":b1,:b2,:b3,:b4,:b5,:sa1,:sa2,:sa3,:sa4,:sa5)" ) ; query2.bindValue(":itemtype", (int)aType) ; } else { ret = query2.prepare ("update publish set last_time_tried=0,bangpath1=:b1," "bangpath2=:b2,bangpath3=:b3,bangpath4=:b4,bangpath5=:b5," "hostcount=0,secondary_addr_hash1=:sa1,secondary_addr_hash2=:sa2," "secondary_addr_hash3=:sa3," "secondary_addr_hash4=:sa4," "secondary_addr_hash5=:sa5 " "where hash1=:hash1 and hash2=:hash2 and " "hash3=:hash3 and hash4=:hash4 and hash5=:hash5" ) ; } if ( ret ) { query2.bindValue(":hash1", aHash.iHash160bits[0]) ; query2.bindValue(":hash2", aHash.iHash160bits[1]) ; query2.bindValue(":hash3", aHash.iHash160bits[2]) ; query2.bindValue(":hash4", aHash.iHash160bits[3]) ; query2.bindValue(":hash5", aHash.iHash160bits[4]) ; if ( aSecondaryAddr == KNullHash ) { query2.bindValue(":sa1", QVariant(QVariant::String)) ; query2.bindValue(":sa2", QVariant(QVariant::String)) ; query2.bindValue(":sa3", QVariant(QVariant::String)) ; query2.bindValue(":sa4", QVariant(QVariant::String)) ; query2.bindValue(":sa5", QVariant(QVariant::String)) ; } else { query2.bindValue(":sa1", aHash.iHash160bits[0]) ; query2.bindValue(":sa2", aHash.iHash160bits[1]) ; query2.bindValue(":sa3", aHash.iHash160bits[2]) ; query2.bindValue(":sa4", aHash.iHash160bits[3]) ; query2.bindValue(":sa5", aHash.iHash160bits[4]) ; } if ( aBangPath.size() >= 1 && aBangPath[0] ) { query2.bindValue(":b1", aBangPath[0]) ; LOG_STR2("### Query 2 bindval for bangpath[0] = %u", aBangPath[0]) ; } else { query2.bindValue(":b1", QVariant(QVariant::String)) ; // null value LOG_STR("### Query 2 bindval for bangpath[0] = null") ; } if ( aBangPath.size() >= 2 && aBangPath[1] ) { query2.bindValue(":b2", aBangPath[1]) ; } else { query2.bindValue(":b2", QVariant(QVariant::String)) ; // null value } if ( aBangPath.size() >= 3 && aBangPath[2] ) { query2.bindValue(":b3", aBangPath[2]) ; } else { query2.bindValue(":b3", QVariant(QVariant::String)) ; // null value } if ( aBangPath.size() >= 4 && aBangPath[3] ) { query2.bindValue(":b4", aBangPath[3]) ; } else { query2.bindValue(":b4", QVariant(QVariant::String)) ; // null value } if ( aBangPath.size() >= 5 && aBangPath[4] ) { query2.bindValue(":b5", aBangPath[4]) ; } else { query2.bindValue(":b5", QVariant(QVariant::String)) ; // null value } ret = query2.exec() ; } if ( !ret ) { QLOG_STR(query2.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query2.lastError().text()) ; } else { LOG_STR2("Added/updated item to be published, type = %d", aType) ; } } } } PublishItem Model::addNodeToPublishedItem(const Hash& aContentHash, const Hash& aNodeHash) { PublishItem retval ; QSqlQuery query; bool ret ; ret = query.prepare ("select itemtype, " " bangpath1,bangpath2,bangpath3,bangpath4,bangpath5,hostcount" " from publish where hash1=:hash1 and hash2=:hash2 and" " hash3=:hash3 and hash4=:hash4 and hash5=:hash5" ) ; query.bindValue(":hash1", aContentHash.iHash160bits[0]) ; query.bindValue(":hash2", aContentHash.iHash160bits[1]) ; query.bindValue(":hash3", aContentHash.iHash160bits[2]) ; query.bindValue(":hash4", aContentHash.iHash160bits[3]) ; query.bindValue(":hash5", aContentHash.iHash160bits[4]) ; ret = query.exec() ; if ( !ret ) { QLOG_STR("addNodeToPublishedItem error 1 " + query.lastError().text()); emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) ) { retval.iObjectType = (ProtocolItemType) ( query.value(0).toInt() ) ; QLOG_STR("addNodeToPublishedItem object type at return = " + retval.iObjectType); retval.iAlreadyPushedHosts.clear() ; if ( ! query.isNull(1) ) { retval.iAlreadyPushedHosts.append(query.value(1).toUInt()) ; } if ( ! query.isNull(2) ) { retval.iAlreadyPushedHosts.append(query.value(2).toUInt()) ; } if ( ! query.isNull(3) ) { retval.iAlreadyPushedHosts.append(query.value(3).toUInt()) ; } if ( ! query.isNull(4) ) { retval.iAlreadyPushedHosts.append(query.value(4).toUInt()) ; } if ( ! query.isNull(5) ) { retval.iAlreadyPushedHosts.append(query.value(5).toUInt()) ; } } int howManyNodesIsEnough ( 5 ) ; if ( iNodeModel->getHotAddresses().size() < howManyNodesIsEnough ) { // really minimalistic network. might be a real condition tough, // a private installation of some sort. howManyNodesIsEnough = iNodeModel->getHotAddresses().size() ; LOG_STR2("Node-count to decide publishing completed = %d", howManyNodesIsEnough) ; } if ( retval.iAlreadyPushedHosts.size() >= howManyNodesIsEnough ) { retval.iObjectHash = KNullHash ; // set NULL hash to mark that this is now done for ( int ii = 0 ; ii < retval.iAlreadyPushedHosts.size() ; ii++ ) { QString qStr = QString::number(retval.iAlreadyPushedHosts.at(ii) ); QLOG_STR("Deleteting from publish because " + qStr ) ; } QSqlQuery q2 ; q2.prepare("delete from publish where hash1=:hash1 and hash2=:hash2 and" " hash3=:hash3 and hash4=:hash4 and hash5=:hash5") ; q2.bindValue(":hash1", aContentHash.iHash160bits[0]) ; q2.bindValue(":hash2", aContentHash.iHash160bits[1]) ; q2.bindValue(":hash3", aContentHash.iHash160bits[2]) ; q2.bindValue(":hash4", aContentHash.iHash160bits[3]) ; q2.bindValue(":hash5", aContentHash.iHash160bits[4]) ; q2.exec() ; QLOG_STR("Deleteted from publish, nr hosts was " + retval.iAlreadyPushedHosts.size() ) ; retval.iObjectHash = KNullHash ; } else { QSqlQuery q2 ; q2.prepare("update publish set bangpath1=:b1,bangpath2=:b2,bangpath3=:b3," "bangpath4=:b4,bangpath5=:b5 where hash1=:hash1 and hash2=:hash2 and" " hash3=:hash3 and hash4=:hash4 and hash5=:hash5" ) ; q2.bindValue(":hash1", aContentHash.iHash160bits[0]) ; q2.bindValue(":hash2", aContentHash.iHash160bits[1]) ; q2.bindValue(":hash3", aContentHash.iHash160bits[2]) ; q2.bindValue(":hash4", aContentHash.iHash160bits[3]) ; q2.bindValue(":hash5", aContentHash.iHash160bits[4]) ; int i = 0 ; // put the low-order bits into bottom of the list: if ( !retval.iAlreadyPushedHosts.contains(aNodeHash.iHash160bits[4])) { quint32 low_order_bits = aNodeHash.iHash160bits[4]; LOG_STR2("Pub: adding host low-order bits #1 : %u", low_order_bits); retval.iAlreadyPushedHosts.append(low_order_bits) ; } // and store list into db: for ( ; i < retval.iAlreadyPushedHosts.size() ; i++ ) { q2.bindValue(QString(":b%1").arg(i+1), retval.iAlreadyPushedHosts[i]) ; LOG_STR2("In addNodeToPublishedItem already contained : %u", retval.iAlreadyPushedHosts[i]); } // update remaining to be null: for ( ; i < 5 ; i++ ) { q2.bindValue(QString(":b%1").arg(i+1), QVariant(QVariant::String)) ; LOG_STR2("In addNodeToPublishedItem b %d is null", i); } if ( q2.exec() == true ) { retval.iObjectHash = aContentHash ; } else { retval.iObjectHash = KNullHash ; // set NULL hash to mark that this is now not done QLOG_STR("addNodeToPublishedItem error 3 " + q2.lastError().text()); emit error(MController::DbTransactionError, q2.lastError().text()) ; } } } return retval ; } // slot hit when content is received from remote nodes void Model::notifyOfContentReceived(const Hash& aHashOfContent, const ProtocolItemType aTypeOfReceivdContent) { LOG_STR2("Model::notifyOfContentReceived %d", aTypeOfReceivdContent) ; switch (aTypeOfReceivdContent) { case BinaryBlob: lock() ; for ( int i = (iNetReqQueue->size()-1) ; i >= 0 ; i--) { if(iNetReqQueue->value(i).iRequestType == RequestForBinaryBlob && iNetReqQueue->value(i).iRequestedItem == aHashOfContent ) { iNetReqQueue->removeAt(i) ; LOG_STR2("Removed associated netreq bblob at %d", i) ; } } unlock() ; break ; case UserProfile: lock() ; for ( int i = (iNetReqQueue->size()-1) ; i >= 0 ; i--) { if(iNetReqQueue->value(i).iRequestType == RequestForUserProfile && iNetReqQueue->value(i).iRequestedItem == aHashOfContent ) { iNetReqQueue->removeAt(i) ; LOG_STR2("Removed associated netreq prof at %d", i) ; } } unlock() ; break ; case ClassifiedAd: lock() ; for ( int i = (iNetReqQueue->size()-1) ; i >= 0 ; i--) { if(iNetReqQueue->value(i).iRequestType == RequestForClassifiedAd && // don't remove requests of other nodes, only UI-initiated // (having null destination node) iNetReqQueue->value(i).iDestinationNode == KNullHash && iNetReqQueue->value(i).iRequestedItem == aHashOfContent ) { iNetReqQueue->removeAt(i) ; LOG_STR2("Removed associated netreq ca at %d", i) ; } } unlock() ; break ; default: // no action break ; } } void Model::notifyOfContentReceived(const Hash& aHashOfContent, const Hash& /* aHashOfClassification */, const ProtocolItemType aTypeOfReceivdContent) { this->notifyOfContentReceived(aHashOfContent, aTypeOfReceivdContent) ; } // // this method is hit every 10 minutes - housekeeping here // void Model::timerEvent(QTimerEvent* #ifdef DEBUG event // in debug build logging needs event id #else /* event */ // in release this is not used for anything #endif ) { LOG_STR2( "timerEvent Timer ID: %d" , event->timerId()); const time_t currentTime ( QDateTime::currentDateTimeUtc().toTime_t() ) ; lock() ; // update mutual connect time: for ( int i = iConnections->size()-1 ; i >= 0 ; i-- ) { Connection *connectedNode = iConnections->at(i) ; if ( connectedNode->node() ) { iNodeModel->updateNodeLastMutualConnectTimeInDb (connectedNode->node()->nodeFingerPrint(),currentTime ) ; } } // then check for dead connections: for ( int i = iConnections->size()-1 ; i >= 0 ; i-- ) { Connection *connectedNode = iConnections->at(i) ; if ( connectedNode->iTimeOfLastActivity < ( currentTime - ( 60 * (Connection::iMinutesBetweenBucketFill+2) ) ) ) { // no traffic for minimum time + 2 minutes -> ask non-gently for closing: connectedNode->forciblyCloseSocket() ; LOG_STR2( "Connection at array pos %d has been dead -> abort()" , i); } } unlock() ; // // dead process checking now done // // continue with database housekeeping // QWaitCondition waitCondition; QMutex mutex; mutex.lock(); waitCondition.wait(&mutex, 50);// give other threads a chance.. lock() ; iNodeModel->truncateDataTableToMaxRows() ; unlock() ; waitCondition.wait(&mutex, 50);// give other threads a chance.. lock() ; // looks like profiles (or more specifically, public keys) are // inserted from multitude of places ; with profile model // lets do so that it is asked to update count first from table. iProfileModel->updateDbTableRowCount() ; // and then go to work iProfileModel->truncateDataTableToMaxRows() ; unlock() ; waitCondition.wait(&mutex, 50);// give other threads a chance.. lock() ; iCaModel->truncateDataTableToMaxRows() ; unlock() ; waitCondition.wait(&mutex, 50);// give other threads a chance.. lock() ; iPrivMsgModel->truncateDataTableToMaxRows() ; unlock() ; waitCondition.wait(&mutex, 50);// give other threads a chance.. lock() ; iBinaryFileModel->truncateDataTableToMaxRows() ; unlock() ; mutex.unlock() ; // then check out for local network addresses: if ( (iTimeOfLastNetworkAddrCheck + (120*60)) < // every 120 minutes QDateTime::currentDateTimeUtc().toTime_t()) { iTimeOfLastNetworkAddrCheck = QDateTime::currentDateTimeUtc().toTime_t(); lock() ; iController->networkListener()->figureOutLocalAddresses() ; unlock() ; } LOG_STR2( "timerEvent Timer ID: %d out" , event->timerId()); } classified-ads-0.09/datamodel/model.h000066400000000000000000000231741260620453500175320ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CLASSIFIED_DATAMODEL_H #define CLASSIFIED_DATAMODEL_H #include #include #include "../mcontroller.h" // because enum from there is needed #include "../net/connection.h" #include #include #include "netrequestexecutor.h" #include "nodemodel.h" #include "mmodelprotocolinterface.h" #include "mnodemodelprotocolinterface.h" class QSqlDatabase ; class QMutex ; class Hash ; class QSslCertificate ; class QSslKey ; class SearchModel ; class TrustTreeModel ; /** * @brief M of the MVC pattern. Handles permanent storage. * * All permanent data storage inside classified ads goes somehow * via this class here. If user wants to display data, view gets * it from here, if a peer wants to leech a phile, it comes from here */ class Model : public MModelProtocolInterface { Q_OBJECT public: Model(MController *aMController) ; ~Model() ; ContentEncryptionModel& contentEncryptionModel() const ; /**< method for getting content-encryption-specific datamodel */ virtual ProfileModel& profileModel() const ; /**< method for getting profile-specific datamodel */ virtual BinaryFileModel& binaryFileModel() const ; /**< method for getting binary-blob datamodel */ virtual ClassifiedAdsModel& classifiedAdsModel() const ; /**< method for getting the ads datamodel */ virtual PrivMessageModel& privateMessageModel() const ; /**< method for getting the priv msg datamodel */ virtual ProfileCommentModel& profileCommentModel() const ; /**< method for getting the comment datamodel */ virtual SearchModel* searchModel() const ; /**< method for getting the full text search datamodel */ virtual TrustTreeModel* trustTreeModel() const ; /**< method for getting the trust tree datamodel */ void addOpenNetworkConnection(Connection *aConnection) ; /** * Method for telling datamodel about a existing network connection * has been closed for any reason that is valid for a socket. * @param aConnection is pointer to the connection * @return none */ void removeOpenNetworkConnection(Connection *aDeletedConnection) ; /** * Method that other parts of this program use to append * items into send queue of node connection. * @param aDestinationNode specifies the node to receive bytes * @param aBytesToSend contains the message. Ownership of bytes * is transferred to datamodel i.e. after this method is * called, the caller is not supposed to delete the * bytes itself but that task is left to datamodel to do. * @return none. */ void addItemToSend(const Hash& aDestinationNode, QByteArray* aBytesToSend) ; /** * Currently open connections. */ const QList & getConnections() const ; /** * Currently pending network requests. * Even as this returns a pointer, not a reference, * ownership of the list is not transferred ; caller * may modiify content but is not supposed to delete */ QList & getNetRequests() const ; /** * From MModelProtocolInterface * * method for adding a network request * @param aRequest is the request to add * @return none */ virtual void addNetworkRequest(NetworkRequestExecutor::NetworkRequestQueueItem& aRequest) const ; /** * From MModelProtocolInterface. * thread sync: this claims access to datamodel */ virtual bool lock() ; /** * From MModelProtocolInterface. * thread sync: releases data model to other threads */ virtual void unlock() ; /** * From MModelProtocolInterface. * * method for getting node-specific datamodel */ virtual MNodeModelProtocolInterface& nodeModel() const ; /** * pointer to class handling network requests */ NetworkRequestExecutor* getNetReqExecutor() ; /** * Close all connections that might be open. Called before * deletia. * @param aDeleteAlso if set to true, will delete remaining * connections. if that needs to be done, * results easily in SEGFAULT as connections * are threads .. they should be closed so * that threads no longer run, run() returns * and thread cleans up itself.. */ void closeAllConnections(bool aDeleteAlso) ; /** * method for communicating the fact that socket is open or closed */ void connectionStateChanged(Connection::ConnectionState aState, Connection *aConnection) ; /** * method for getting next item to publish * @param aFound will be set to true if there is an item to publish * @return if aFound is true, returned item contains details about * the item to publish. */ PublishItem nextItemToPublish(bool* aFound) ; /** * Method for marking item already in datamodel to be published via * @ref PublishingEngine class. For example, if publishing a profile * user must first insert the profile into profilemodel, and only * after that call this method here. * @param aType tells type of an item - profile,privmsg,binary blob etc. * @param aHash fingerprint for identifies object * @param aBangPath list of low-order hash-bits of nodes where this content * is already supposed to be found * @param aSecondaryAddr is possible 2nd publish addr, used for CA and comment. * for private messages this is the destination * node, if known. */ void addItemToBePublished(ProtocolItemType aType, const Hash& aHash, const QList& aBangPath, const Hash& aSecondaryAddr = KNullHash ) ; /** * When publishing-engine is doing its job, it uses this method to * update the list of nodes that have received the published content. * * @param aContentHash identifies the published content that has been * pushed into one node * @param aNodeHash identifies the node where content was pushed to * @return The same item to publish, now updated. If the content is * already published into enough hosts (model decides) it will * return a PublishItem will null hash to tell publishing-engine * that this piece of content is now done and it is time to * move to next. */ PublishItem addNodeToPublishedItem(const Hash& aContentHash,const Hash& aNodeHash) ; public slots: /** * notification of content received */ void notifyOfContentReceived(const Hash& aHashOfContent, const ProtocolItemType aTypeOfReceivdContent) ; /** * notification of classified ads received */ void notifyOfContentReceived(const Hash& aHashOfContent, const Hash& aHashOfClassification, const ProtocolItemType aTypeOfReceivdContent) ; protected: /** * for periodical stuff inside datamodel */ void timerEvent(QTimerEvent *event); private: bool openDB(); QSqlError lastError(); // 1st-time initialization methods ahead bool createTables() ; void initPseudoRandom() ; /**< just calls srand() */ signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: MController *iController ; QSqlDatabase iDb;/**< actual storage here */ QMutex* iMutex ; /**< this mutex protects access to this datamodel */ QList *iConnections ; /** Network connections currently open */ NodeModel* iNodeModel ;/**< datamodel about our peers */ NetworkRequestExecutor* iNetReqExecutor ; /** * have datamodel own network request queue, this is our queue * of pending tasks */ QList * iNetReqQueue ; ContentEncryptionModel* iContentEncryptionModel ;/**< cryptographic animal */ ProfileModel* iProfileModel ; /**< Profile data storage */ BinaryFileModel* iBinaryFileModel ; /**< Random binary blob storage */ ClassifiedAdsModel* iCaModel ; /**< Classified ads storage */ int iTimerId ; /**< id of our periodical timer */ PrivMessageModel* iPrivMsgModel ; /**< storage of private messages */ ProfileCommentModel* iProfileCommentModel ; /**< comments data storage */ SearchModel* iSearchModel ; /**< full text search model part */ TrustTreeModel *iTrustTreeModel ; /**< trust list handling model */ time_t iTimeOfLastNetworkAddrCheck ; /**< timestamp of local addr update */ } ; #endif classified-ads-0.09/datamodel/netrequestexecutor.cpp000066400000000000000000001342541260620453500227450ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "../mcontroller.h" #include "netrequestexecutor.h" #include #include "../log.h" #include "model.h" #include "../net/protocol_message_formatter.h" #include #include #include "profilemodel.h" #include "profile.h" #include "contentencryptionmodel.h" #include "binaryfilemodel.h" #include "camodel.h" #include "privmsgmodel.h" #include "profilecommentmodel.h" #include "../net/protocol.h" #include NetworkRequestExecutor::NetworkRequestExecutor(MController *aController, Model& aModel) : QTimer(aController), iController(aController), iModel(aModel), iNowRunning(false), iLastTimeOfNodeConnectedNodeStatusUpdate(QDateTime::currentDateTimeUtc().toTime_t()) { connect(this, SIGNAL(timeout()), this, SLOT(run())); } NetworkRequestExecutor::~NetworkRequestExecutor() { } void NetworkRequestExecutor::run() { if ( iNowRunning ) return ; iNowRunning = true ; iModel.lock() ; QList & requests ( iModel.getNetRequests() ) ; for ( int i = requests.size()-1 ; i >= 0 ; i-- ) { NetworkRequestQueueItem& entry ( requests[i] ) ; if ( entry.iState == NewRequest ) { // yes, process entry.iState = Processing ; switch ( entry.iRequestType ) { case NodeGreeting: LOG_STR("Network request type NodeGreeting") ; processNodeGreeting(entry) ; break ; case RequestForNodesAroundHash: LOG_STR("Network request type RequestForNodesAroundHash") ; processRequestForNodesAroundHash(entry) ; break ; case RequestForBinaryBlob: LOG_STR("Network request type RequestForBinaryBlob") ; processRequestForBinaryBlob(entry) ; break ; case RequestForUserProfile: LOG_STR("Network request type RequestForUserProfile") ; processRequestForUserProfile(entry) ; break ; case RequestForProfileComment: LOG_STR("Network request type RequestForProfileComment") ; processRequestForUserProfileComment(entry) ; break ; case RequestForClassifiedAd: LOG_STR("Network request type RequestForClassifiedAd") ; processRequestForClassifiedAd(entry) ; break ; case RequestForProfilePoll: LOG_STR("Network request type RequestForProfilePoll") ; processRequestForProfilePoll(entry) ; break ; case UserProfilePublish: LOG_STR("Network request type UserProfilePublish") ; processRequestForContentPublish(entry) ; break ; case BinaryFilePublish: LOG_STR("Network request type BinaryFilePublish") ; processRequestForContentPublish(entry) ; break ; case ProfileCommentPublish: LOG_STR("Network request type ProfileCommentPublish") ; processRequestForContentPublish(entry) ; break ; case ClassifiedAdPublish: LOG_STR("Network request type ClassifiedAdPublish") ; processRequestForContentPublish(entry) ; break ; case PrivateMessagePublish: LOG_STR("Network request type PrivateMessagePublish") ; processRequestForPrivateMessagePublish(entry) ; break ; case BinaryBlob: // in practice, some other node has sent us query LOG_STR("Network request type BinaryBlob") ; processBinaryBlob(entry) ; break ; case PrivateMessage: // in practice, some other node has sent us query LOG_STR("Network request type PrivateMessage") ; processPrivateMessage(entry) ; break ; case UserProfileCommentsForProfile: // in practice, some other node has sent us query LOG_STR("Network request type UserProfileCommentsForProfile") ; processUserProfileCommentsForProfile(entry) ; break ; case UserProfileComment: LOG_STR("Network request type UserProfileComment") ; processUserProfileComment(entry) ; break ; case PrivateMessagesForProfile: LOG_STR("Network request type PrivateMessagesForProfile") ; processPrivateMessagesForProfile(entry) ; break ; case UserProfile: // in practice, some other node has sent us query LOG_STR("Network request type UserProfile") ; processUserProfile(entry) ; break ; case ClassifiedAd: // in practice, some other node has sent us query LOG_STR("Network request type ClassifiedAd") ; processClassifiedAd(entry) ; break ; case RequestAdsClassified: // some other node has sent us query about CAs by classification LOG_STR("Network request type RequestAdsClassified") ; processAdsClassified(entry) ; break ; default: LOG_STR2("Unhandled Network request type %d", entry.iRequestType) ; entry.iState = ReadyToSend ; break; } } // remove entries that are done, or more than 10 minutes old if ( entry.iState == ReadyToSend || ( entry.iTimeStampOfLastActivity + 10*60 ) < QDateTime::currentDateTimeUtc().toTime_t() ) { requests.removeAt(i) ; LOG_STR2("removing completed/old network req at index %d", i) ; } iModel.unlock() ; QThread::yieldCurrentThread (); iModel.lock() ; // if there is a lot of requests in the queue, give other threads // also a chance } // then do a peridical check ; if enough time has passed since // last update of statuses of connected peers, update them: if ( QDateTime::currentDateTimeUtc().toTime_t() > (iLastTimeOfNodeConnectedNodeStatusUpdate+300)) { // every 300 seconds iLastTimeOfNodeConnectedNodeStatusUpdate = QDateTime::currentDateTimeUtc().toTime_t() ; Node* nodeOfConnection = NULL ; // problem here .. the node returned by connection may be // incomplete ; it is not based on node greeting of the // node itself, it actually contains only hash and // ip addr.. QSqlQuery query; // sqlite documentation says that while single sql statement is // fast, transaction is slow. because here we after some time // running always make both insert and delete, lets have then // inside transaction so they hopefully will be handled // with single commit then..? query.exec("begin transaction ;") ; for ( int i = iModel.getConnections().size()-1 ; i >= 0 ; i-- ) { nodeOfConnection = iModel.getConnections().value(i)->node() ; if ( nodeOfConnection ) { nodeOfConnection->setLastConnectTime(QDateTime::currentDateTimeUtc().toTime_t()) ; iModel.nodeModel().updateNodeLastConnectTimeInDb(*nodeOfConnection) ; } } query.exec("commit;") ; // transaction } // that's all folks iModel.unlock() ; iNowRunning = false ; } void NetworkRequestExecutor::processRequestForNodesAroundHash(NetworkRequestQueueItem& aEntry) { const QList & currentlyOpenConnections ( iModel.getConnections() ) ; for ( int i = 0 ; i < currentlyOpenConnections.size() && i < aEntry.iMaxNumberOfItems ; i++ ) { const Node* conn_n = currentlyOpenConnections[i]->node() ; if ( conn_n && conn_n->nodeFingerPrint() != KNullHash ) { QByteArray* resultBytes = new QByteArray(ProtocolMessageFormatter::requestForNodesAroundHash(aEntry.iRequestedItem)) ; iModel.addItemToSend(conn_n->nodeFingerPrint(), resultBytes) ; } } aEntry.iState = ReadyToSend ; } void NetworkRequestExecutor::processRequestForContentPublish(NetworkRequestQueueItem& aEntry) { LOG_STR("NetworkRequestExecutor::processRequestForContentPublish in") ; doSendRequestToNode(aEntry) ; aEntry.iState = ReadyToSend ; } void NetworkRequestExecutor::processRequestForPrivateMessagePublish(NetworkRequestQueueItem& aEntry) { LOG_STR("NetworkRequestExecutor::processRequestForPrivateMessagePublish in") ; if ( aEntry.iDestinationNode != KNullHash && iModel.nodeModel().isNodeAlreadyConnected(aEntry.iDestinationNode) ) { doSendRequestToNode(aEntry) ; aEntry.iState = ReadyToSend ; } else { if ( aEntry.iDestinationNode != KNullHash ) { if ( iModel.nodeModel().addNodeToConnectionWishList(aEntry.iDestinationNode) ) { aEntry.iTimeStampOfLastActivity = QDateTime::currentDateTimeUtc().toTime_t(); aEntry.iState = NodeIsInWishList ; } else { LOG_STR("Failed to add node to connection wishlist??? when handling privmsg") ; aEntry.iState = ReadyToSend ; } } else { // destination node is not known.. aEntry.iState = ReadyToSend ; } } } void NetworkRequestExecutor::processNodeGreeting (NetworkRequestQueueItem& aEntry) { // here have possibility to have 2 meanings .. if iRequestedItem is // null, then just send some nodes. In practice send the hot nodes // or something. QList* nodesToSend = NULL ; if ( KNullHash == aEntry.iRequestedItem ) { // hot nodes nodesToSend= iModel.nodeModel().getHotNodes(aEntry.iMaxNumberOfItems) ; } else { // nodes around iRequestedItem -> lets do so that when content // has some hash, the nodes that store the content are the nodes // whose hash is immediately after the hash of the content. // // this is important tidbit of information if you need to // pinpoint a node containing some content nodesToSend= iModel.nodeModel().getNodesAfterHash(aEntry.iRequestedItem, aEntry.iMaxNumberOfItems) ; } if ( nodesToSend ) { if ( nodesToSend->count() > 0 ) { QByteArray* resultBytes = new QByteArray() ; if ( nodesToSend->size() ) { for ( int i = nodesToSend->size()-1 ; i>= 0 ; i-- ) { Node* n = nodesToSend->value(i) ; resultBytes->append(ProtocolMessageFormatter::nodeGreeting(*n)); delete n ; nodesToSend->removeAt(i) ; } } if ( resultBytes->size() ) { // datamodel will delete resultBytes iModel.addItemToSend(aEntry.iDestinationNode, resultBytes) ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } } delete nodesToSend ; } aEntry.iState = ReadyToSend ; } void NetworkRequestExecutor::processRequestForBinaryBlob(NetworkRequestQueueItem& aEntry) { LOG_STR("NetworkRequestExecutor::processRequestForBinaryBlob in") ; // ok, we'll want to send selected neighboring nodes // a request regarding a hash. if ( aEntry.iDestinationNode != KNullHash ) { // check if the punk is lucky right away: if ( iModel.nodeModel().isNodeAlreadyConnected(aEntry.iDestinationNode) ) { doSendRequestToNode(aEntry) ; aEntry.iState = ReadyToSend ; } else { // add host to connection wishlist: if ( iModel.nodeModel().addNodeToConnectionWishList(aEntry.iDestinationNode) ) { aEntry.iTimeStampOfLastActivity = QDateTime::currentDateTimeUtc().toTime_t(); aEntry.iState = NodeIsInWishList ; } } } } void NetworkRequestExecutor::processRequestForClassifiedAd(NetworkRequestQueueItem& aEntry) { LOG_STR("NetworkRequestExecutor::processRequestForClassifiedAd in") ; // neighboring node requested an classified ad if ( aEntry.iDestinationNode != KNullHash ) { // check if the punk is lucky right away: if ( iModel.nodeModel().isNodeAlreadyConnected(aEntry.iDestinationNode) ) { doSendRequestToNode(aEntry) ; aEntry.iState = ReadyToSend ; } else { // add host to connection wishlist: if ( iModel.nodeModel().addNodeToConnectionWishList(aEntry.iDestinationNode) ) { aEntry.iTimeStampOfLastActivity = QDateTime::currentDateTimeUtc().toTime_t(); aEntry.iState = NodeIsInWishList ; } } } } void NetworkRequestExecutor::processRequestForProfilePoll(NetworkRequestQueueItem& aEntry) { // profile poll has 2 functions: there may be update to profile itself // or new comments posted. we send single request for both those things, // and the receiver of the poll-request will send updated profile // and possible comments. // if node of the profile is known, it is stored at aEntry.iDestinationNode and // naturally we send the poll there, as it is the best place for // possible profile update. in addition to that, we'll find the normal // publish-nodes for the profile and repeat the query there. aEntry.iTimeStampOfLastActivity = QDateTime::currentDateTimeUtc().toTime_t(); // so, first possible destination-node if ( aEntry.iDestinationNode != KNullHash ) { if ( iModel.nodeModel().isNodeAlreadyConnected(aEntry.iDestinationNode) ) { doSendRequestToNode(aEntry,aEntry.iDestinationNode) ; } else { // add host to connection wishlist: if ( iModel.nodeModel().addNodeToConnectionWishList(aEntry.iDestinationNode) ) { } } } // then the normal publish-nodes sendRequestToNodesAroundHash( aEntry, true) ; // aUseContentHashNotDestination==true // above call will also set aEntry.iState so here we have no need ; // next state actually depends on that if all required nodes // were already connected.. } // very similar to binary blob handling void NetworkRequestExecutor::processRequestForUserProfile(NetworkRequestQueueItem& aEntry) { LOG_STR("NetworkRequestExecutor::processRequestForUserProfile in") ; if ( aEntry.iDestinationNode != KNullHash ) { // check if the punk is lucky right away: if ( iModel.nodeModel().isNodeAlreadyConnected(aEntry.iDestinationNode) ) { doSendRequestToNode(aEntry) ; aEntry.iState = ReadyToSend ; } else { // add host to connection wishlist: if ( iModel.nodeModel().addNodeToConnectionWishList(aEntry.iDestinationNode) ) { aEntry.iTimeStampOfLastActivity = QDateTime::currentDateTimeUtc().toTime_t(); aEntry.iState = NodeIsInWishList ; } } } } void NetworkRequestExecutor::processRequestForUserProfileComment(NetworkRequestQueueItem& aEntry) { LOG_STR("NetworkRequestExecutor::processRequestForUserProfileComment in") ; if ( aEntry.iDestinationNode != KNullHash ) { // check if the punk is lucky right away: if ( iModel.nodeModel().isNodeAlreadyConnected(aEntry.iDestinationNode) ) { doSendRequestToNode(aEntry,aEntry.iDestinationNode) ; aEntry.iState = ReadyToSend ; } else { // add host to connection wishlist: if ( iModel.nodeModel().addNodeToConnectionWishList(aEntry.iDestinationNode) ) { aEntry.iTimeStampOfLastActivity = QDateTime::currentDateTimeUtc().toTime_t(); aEntry.iState = NodeIsInWishList ; } } } else { sendRequestToNodesAroundHash(aEntry, true) ; // true == "use content hash" } } // in practice ; here we receive notifications about our wishlist-nodes void NetworkRequestExecutor::nodeConnectionAttemptStatus(Connection::ConnectionState aStatus, const Hash aHashOfAttemptedNode ) { LOG_STR2("NetworkRequestExecutor::nodeConnectionAttemptStatus %d in", aStatus) ; LOG_STR2("NetworkRequestExecutor::nodeConnectionAttemptStatus %s ", qPrintable(aHashOfAttemptedNode.toString())) ; // use model to lock our own resources too.. iModel.lock() ; QList & requests ( iModel.getNetRequests() ) ; for ( int i = requests.size()-1 ; i >= 0 ; i-- ) { NetworkRequestQueueItem& entry ( requests[i] ) ; if ( aStatus == Connection::Open && entry.iDestinationNode == aHashOfAttemptedNode && entry.iState == NodeIsInWishList ) { // was our wishlist-item and connection was success doSendRequestToNode(entry) ; entry.iState = ReadyToSend ; } else if ( aStatus != Connection::Open && entry.iDestinationNode == aHashOfAttemptedNode && entry.iState == NodeIsInWishList ) { // was our wishlist-item and could not make connection sendRequestToNodesAroundHash(entry) ; } else if ( aStatus == Connection::Open && entry.iWishListForNodesAround.contains( aHashOfAttemptedNode ) && entry.iState == RequestBeingSentAround ) { // was our wishlist-item for nodes and connection was success doSendRequestToNode(entry,aHashOfAttemptedNode) ; entry.iWishListForNodesAround.removeOne(aHashOfAttemptedNode) ; if ( entry.iWishListForNodesAround.size() == 0 ) { entry.iState = ReadyToSend ; } } else if ( aStatus != Connection::Open && entry.iWishListForNodesAround.contains( aHashOfAttemptedNode ) && entry.iState == RequestBeingSentAround ) { // was our wishlist-item for nodes and connection was not success entry.iWishListForNodesAround.removeOne(aHashOfAttemptedNode) ; if ( entry.iWishListForNodesAround.size() == 0 ) { entry.iState = ReadyToSend ; } } } // end of for requests.. iModel.unlock() ; } void NetworkRequestExecutor::doSendRequestToNode(NetworkRequestQueueItem& aEntry, const Hash& aNodeToSend) { aEntry.iTimeStampOfLastActivity = QDateTime::currentDateTimeUtc().toTime_t(); switch ( aEntry.iRequestType ) { case NodeGreeting: { LOG_STR("doSendRequestToNode type NodeGreeting") ; Node* n ( iModel.nodeModel().nodeByHash ( aEntry.iRequestedItem)) ; if ( n ) { QByteArray* resultBytes = new QByteArray() ; resultBytes->append(ProtocolMessageFormatter::nodeGreeting(*n)) ; iModel.addItemToSend(aNodeToSend == KNullHash ? aEntry.iDestinationNode : aNodeToSend , resultBytes) ; delete n ; } } break ; case PrivateMessagePublish: { LOG_STR("doSendRequestToNode PrivateMessagePublish") ; QByteArray msg ; QByteArray msgSignature ; QByteArray* resultBytes = new QByteArray() ; quint32 timeOfPublish ; Hash resultingDestination ; Hash resultingRecipient ; if ( iModel.privateMessageModel().messageDataByFingerPrint(aEntry.iRequestedItem, msg, msgSignature, &resultingDestination, &resultingRecipient, &timeOfPublish) ) { // message was found, lets send: resultBytes->append(ProtocolMessageFormatter::privMsgPublish(aEntry.iRequestedItem, msg, msgSignature, aEntry.iBangPath, resultingDestination, resultingRecipient, timeOfPublish )); msg.clear() ; msgSignature.clear() ; if ( resultBytes->size() ) { // datamodel will delete resultBytes iModel.addItemToSend(aNodeToSend == KNullHash ? aEntry.iDestinationNode : aNodeToSend, resultBytes) ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } } else { aEntry.iState = ReadyToSend ; QLOG_STR("Could not find msg supposed to be published, id=" + aEntry.iRequestedItem.toString()) ; delete resultBytes ; } } break ; case RequestForBinaryBlob: { LOG_STR("doSendRequestToNode RequestForBinaryBlob") ; QByteArray* resultBytes = new QByteArray() ; resultBytes->append(ProtocolMessageFormatter::requestForBinaryBlob(aEntry.iRequestedItem)) ; iModel.addItemToSend(aNodeToSend == KNullHash ? aEntry.iDestinationNode : aNodeToSend , resultBytes) ; } break ; case RequestForClassifiedAd: { LOG_STR2("doSendRequestToNode RequestForClassifiedAd (hash high-bits %u)",aEntry.iRequestedItem.iHash160bits[0]) ; QByteArray* resultBytes = new QByteArray() ; resultBytes->append(ProtocolMessageFormatter::requestForClassifiedAd(aEntry.iRequestedItem)) ; iModel.addItemToSend(aNodeToSend == KNullHash ? aEntry.iDestinationNode : aNodeToSend , resultBytes) ; } break ; case RequestForUserProfile: { LOG_STR("doSendRequestToNode RequestForUserProfile") ; if ( ! ( aNodeToSend == KNullHash && aEntry.iDestinationNode == KNullHash ) ) { QByteArray* resultBytes = new QByteArray() ; resultBytes->append(ProtocolMessageFormatter::requestForUserProfile(aEntry.iRequestedItem)) ; iModel.addItemToSend(aNodeToSend == KNullHash ? aEntry.iDestinationNode : aNodeToSend , resultBytes) ; } } break ; case RequestForProfileComment: { LOG_STR("doSendRequestToNode RequestForProfileComment") ; if ( ! ( aNodeToSend == KNullHash && aEntry.iDestinationNode == KNullHash ) ) { QByteArray* resultBytes = new QByteArray() ; resultBytes->append(ProtocolMessageFormatter::requestForUserProfileComment(aEntry.iRequestedItem)) ; iModel.addItemToSend(aNodeToSend == KNullHash ? aEntry.iDestinationNode : aNodeToSend , resultBytes) ; } } break ; case ClassifiedAdPublish: { LOG_STR("doSendRequestToNode RequestForClassifiedAdPublish") ; QByteArray ca ; QByteArray caSignature ; QByteArray* resultBytes = new QByteArray() ; QByteArray caKey ; quint32 timeOfPublish ; if ( iModel.classifiedAdsModel().caDataForPublish(aEntry.iRequestedItem, ca, caSignature, caKey, &timeOfPublish) ) { resultBytes->append(ProtocolMessageFormatter::contentPublish(KClassifiedAdPublish, aEntry.iRequestedItem, ca, caSignature, aEntry.iBangPath, caKey, false, false, timeOfPublish )); } caKey.clear() ; ca.clear() ; caSignature.clear() ; if ( resultBytes->size() ) { // datamodel will delete resultBytes iModel.addItemToSend(aNodeToSend == KNullHash ? aEntry.iDestinationNode : aNodeToSend, resultBytes) ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } } break ; case UserProfilePublish: { LOG_STR("doSendRequestToNode UserProfilePublish") ; QByteArray profile ; QByteArray profileSignature ; QByteArray* resultBytes = new QByteArray() ; QByteArray profileKey ; bool isContentEncrypted = false ; quint32 timeOfPublish (0 ) ; if ( iModel.contentEncryptionModel().PublicKey(aEntry.iRequestedItem, profileKey ) ) { if ( iModel.profileModel().profileDataByFingerPrint(aEntry.iRequestedItem, profile, profileSignature, &isContentEncrypted, &timeOfPublish ) ) { resultBytes->append(ProtocolMessageFormatter::contentPublish(KProfilePublish, aEntry.iRequestedItem, profile, profileSignature, aEntry.iBangPath, profileKey, isContentEncrypted, false, timeOfPublish )); } } profileKey.clear() ; profile.clear() ; profileSignature.clear() ; if ( resultBytes->size() ) { // datamodel will delete resultBytes iModel.addItemToSend(aNodeToSend == KNullHash ? aEntry.iDestinationNode : aNodeToSend, resultBytes) ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } } break ; case BinaryFilePublish: { LOG_STR("doSendRequestToNode BinaryFilePublish") ; QByteArray binary ; QByteArray binarySignature ; QByteArray* resultBytes = new QByteArray() ; QByteArray binaryKey ; bool isContentEncrypted = false ; bool isContentCompressed = false ; quint32 timeOfPublish ( 0 ) ; if ( iModel.binaryFileModel().binaryFileDataForSend(aEntry.iRequestedItem, binary, binarySignature, binaryKey, &isContentEncrypted, &isContentCompressed, &timeOfPublish) ) { resultBytes->append(ProtocolMessageFormatter::contentPublish(KBinaryFilePublish, aEntry.iRequestedItem, binary, binarySignature, aEntry.iBangPath, binaryKey, isContentEncrypted, isContentCompressed, timeOfPublish )); } binaryKey.clear() ; binary.clear() ; binarySignature.clear() ; if ( resultBytes->size() ) { // datamodel will delete resultBytes iModel.addItemToSend(aNodeToSend == KNullHash ? aEntry.iDestinationNode : aNodeToSend, resultBytes) ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } } break ; case ProfileCommentPublish: { LOG_STR("doSendRequestToNode ProfileCommentPublish") ; QByteArray binary ; QByteArray binarySignature ; QByteArray* resultBytes = new QByteArray() ; quint32 flags ; quint32 timeOfPublish ( 0 ) ; Hash profileHash ; if ( iModel.profileCommentModel().commentDataByFingerPrint(aEntry.iRequestedItem, binary, binarySignature, &profileHash, &flags, &timeOfPublish) ) { resultBytes->append(ProtocolMessageFormatter::profileCommentPublish(aEntry.iRequestedItem, binary, binarySignature, aEntry.iBangPath, profileHash, timeOfPublish, flags )); } binary.clear() ; binarySignature.clear() ; if ( resultBytes->size() ) { // datamodel will delete resultBytes iModel.addItemToSend(aNodeToSend == KNullHash ? aEntry.iDestinationNode : aNodeToSend, resultBytes) ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } } break ; case RequestAdsClassified: // we come here after nodes have been put to wishlist LOG_STR2("doSendRequestToNode RequestAdsClassified %d", aEntry.iRequestType) ; if ( aNodeToSend != KNullHash ) { QByteArray* resultBytes = new QByteArray() ; resultBytes->append(ProtocolMessageFormatter::requestForAdsClassified(aEntry.iRequestedItem, aEntry.iTimeStampOfItem, aEntry.iTimeStampOfLastActivity ) ) ; if ( resultBytes->size() ) { // datamodel will delete resultBytes iModel.addItemToSend(aNodeToSend, resultBytes) ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } } break ; case RequestForProfilePoll: // this sends a poll-type requst to node, asking if there // has been any activity noticed regarding a profile. // in practice it would mean new profile publish or // addition of a new profile-comment. LOG_STR2("doSendRequestToNode RequestForProfilePoll %d", aEntry.iRequestType) ; if ( aNodeToSend != KNullHash ) { QByteArray* resultBytes = new QByteArray() ; // in case of RequestForProfilePoll the "iRequestedItem" always // carries the hash of the profile whose update is needed // while iDestinationNode may have hash of the node where // operator is publishing her secrets. // // message formatter calls this "request for profile comments" // but in practice nodes will respond also with // updated profile, if one is found lying around. resultBytes->append(ProtocolMessageFormatter::requestForProfileComments(aEntry.iRequestedItem, aEntry.iTimeStampOfItem ) ) ; if ( resultBytes->size() ) { // datamodel will delete resultBytes iModel.addItemToSend(aNodeToSend, resultBytes) ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } } break ; default: LOG_STR2("doSendRequestToNode unknown type %d", aEntry.iRequestType) ; break; } } void NetworkRequestExecutor::sendRequestToNodesAroundHash(NetworkRequestQueueItem& aEntry, bool aUseContentHashNotDestination) { // here you see important tidbit of information: if we wish to find // an item from DHT we use hash of the item. From the hash we produce // list of nodes that are supposed to carry that item. This list // is produced in publishing engine ( ../net/publishingengine.cpp method // ::run() ) where it right now says that take 20 nodes *after* the hash // in question. If we wish to find the same content again, we must // use the same formula here. QList* nodesToTry = iModel.nodeModel().getNodesAfterHash(aUseContentHashNotDestination ? aEntry.iRequestedItem : aEntry.iDestinationNode, 20, // 20 nodes 300 ) ;// at most 5 hours old if ( nodesToTry == NULL || nodesToTry->size() == 0 ) { // try widening the requirements a bit: nodesToTry = iModel.nodeModel().getNodesAfterHash(aUseContentHashNotDestination ? aEntry.iRequestedItem : aEntry.iDestinationNode, 30, // 20 nodes 1440 ) ;// at most 24 hours old // uh, oh. do not try then. the request has failed. if ( nodesToTry == NULL || nodesToTry->size() == 0 ) { aEntry.iState = ReadyToSend ; } } if ( nodesToTry != NULL && nodesToTry->size() > 0 ) { while ( ! nodesToTry->isEmpty() ) { Node* connectCandidate ( nodesToTry->takeFirst() ) ; if ( iModel.nodeModel().isNodeAlreadyConnected(*connectCandidate) ) { doSendRequestToNode(aEntry, connectCandidate->nodeFingerPrint()) ; } else { // put the node into wishlist if ( !aEntry.iWishListForNodesAround.contains(connectCandidate->nodeFingerPrint()) ) { if ( iModel.nodeModel().addNodeToConnectionWishList(connectCandidate->nodeFingerPrint()) ) { aEntry.iTimeStampOfLastActivity = QDateTime::currentDateTimeUtc().toTime_t(); aEntry.iWishListForNodesAround.append(connectCandidate->nodeFingerPrint()) ; } } } delete connectCandidate ; } // if we managed to put any nodes into wishlist, // then keep the entry, otherwise mark it as "readytosend" // e.g. finished from this classes perspective. if ( aEntry.iWishListForNodesAround.size() ) { aEntry.iState = RequestBeingSentAround ; } else { aEntry.iState = ReadyToSend ; } } } // another node requested a binary blob: here is served void NetworkRequestExecutor::processBinaryBlob(NetworkRequestQueueItem& aEntry) { LOG_STR("processBinaryBlob in") ; { QByteArray binary ; QByteArray binarySignature ; QByteArray* resultBytes = new QByteArray() ; QByteArray binaryKey ; bool isContentEncrypted = false ; bool isContentCompressed = false ; quint32 timeWhenBinaryFileWasPublished ; if ( iModel.binaryFileModel().binaryFileDataForSend(aEntry.iRequestedItem, binary, binarySignature, binaryKey, &isContentEncrypted, &isContentCompressed, &timeWhenBinaryFileWasPublished) ) { resultBytes->append(ProtocolMessageFormatter::contentSend(KBinaryFileSend, aEntry.iRequestedItem, binary, binarySignature, binaryKey, isContentEncrypted, isContentCompressed, timeWhenBinaryFileWasPublished )); } binaryKey.clear() ; binary.clear() ; binarySignature.clear() ; if ( resultBytes->size() ) { // datamodel will delete resultBytes iModel.addItemToSend(aEntry.iDestinationNode , resultBytes) ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } } aEntry.iState = ReadyToSend ; } // another node requested a private message: here is served void NetworkRequestExecutor::processPrivateMessage(NetworkRequestQueueItem& aEntry) { LOG_STR("processPrivateMessage in") ; QByteArray msg ; QByteArray msgSignature ; QByteArray* resultBytes = new QByteArray() ; quint32 timeOfPublish ; Hash resultingDestination ; Hash resultingRecipient ; if ( iModel.privateMessageModel().messageDataByFingerPrint(aEntry.iRequestedItem, msg, msgSignature, &resultingDestination, &resultingRecipient, &timeOfPublish) ) { // message was found, lets send: resultBytes->append(ProtocolMessageFormatter::privMsgSend(aEntry.iRequestedItem, msg, msgSignature, resultingDestination, resultingRecipient, timeOfPublish )); msg.clear() ; msgSignature.clear() ; if ( resultBytes->size() ) { // datamodel will delete resultBytes iModel.addItemToSend(aEntry.iDestinationNode, resultBytes) ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } } else { QLOG_STR("Could not find msg supposed to be published, id=" + aEntry.iRequestedItem.toString()) ; delete resultBytes ; } aEntry.iState = ReadyToSend ; } void NetworkRequestExecutor::processUserProfileComment(NetworkRequestQueueItem& aEntry) { if ( aEntry.iDestinationNode != KNullHash ) { QByteArray binary ; QByteArray binarySignature ; QByteArray* resultBytes = new QByteArray() ; quint32 flags ; quint32 timeOfPublish ( 0 ) ; Hash profileHash ; if ( iModel.profileCommentModel().commentDataByFingerPrint(aEntry.iRequestedItem, binary, binarySignature, &profileHash, &flags, &timeOfPublish)) { resultBytes->append(ProtocolMessageFormatter::profileCommentSend(aEntry.iRequestedItem, binary, binarySignature, profileHash, timeOfPublish, flags )); } binary.clear() ; binarySignature.clear() ; if ( resultBytes->size() ) { // datamodel will delete resultBytes iModel.addItemToSend( aEntry.iDestinationNode , resultBytes) ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } } aEntry.iState = ReadyToSend ; } // another node requested a private message: here is served void NetworkRequestExecutor::processPrivateMessagesForProfile(NetworkRequestQueueItem& aEntry) { LOG_STR("processPrivateMessagesForProfile in") ; // ok, what do we do here? // we were requested for all messages for profile .. we can't // send them at once, so lets make a network request queue item // of each message that we manage to find. QList messagesToRequest ( iModel.privateMessageModel().messagesForProfile(aEntry.iRequestedItem, aEntry.iTimeStampOfItem) ) ; foreach ( Hash articleHash, messagesToRequest ) { NetworkRequestQueueItem newRequest ; newRequest.iRequestType = PrivateMessage ; // single message here newRequest.iRequestedItem = articleHash ; newRequest.iDestinationNode = aEntry.iDestinationNode ; newRequest.iState = NewRequest ; newRequest.iMaxNumberOfItems = 1 ; iModel.addNetworkRequest(newRequest) ; } aEntry.iState = ReadyToSend ; } void NetworkRequestExecutor::processUserProfileCommentsForProfile(NetworkRequestQueueItem& entry) { LOG_STR("processUserProfileCommentsForProfile in") ; QList messagesToRequest ( iModel.profileCommentModel().commentsForProfile(entry.iRequestedItem, entry.iTimeStampOfItem) ) ; foreach ( Hash commentHash, messagesToRequest ) { NetworkRequestQueueItem newRequest ; newRequest.iRequestType = UserProfileComment ; // single comment here newRequest.iRequestedItem = commentHash ; newRequest.iDestinationNode = entry.iDestinationNode ; newRequest.iState = NewRequest ; newRequest.iMaxNumberOfItems = 1 ; iModel.addNetworkRequest(newRequest) ; } // in addition to comments, check if there as been update to the // profile itself: time_t lastUpdateTime = iModel.profileModel().getLastProfileUpdateTime(entry.iRequestedItem); if ( lastUpdateTime > (unsigned)(entry.iTimeStampOfItem) ) { // yes, the profile itself has been updated too NetworkRequestQueueItem profileRequest ; profileRequest.iRequestType = UserProfile ; // single comment here profileRequest.iRequestedItem = entry.iRequestedItem ; profileRequest.iDestinationNode = entry.iDestinationNode ; profileRequest.iState = NewRequest ; profileRequest.iMaxNumberOfItems = 1 ; iModel.addNetworkRequest(profileRequest) ; } entry.iState = ReadyToSend ; } void NetworkRequestExecutor::processUserProfile(NetworkRequestQueueItem& aEntry) { LOG_STR("processUserProfile in") ; QByteArray profile ; QByteArray profileSignature ; QByteArray* resultBytes = new QByteArray() ; QByteArray profileKey ; bool isContentEncrypted = false ; bool isContentCompressed = false ; quint32 timeWhenProfileWasPublished ; if ( iModel.profileModel().profileDataByFingerPrint(aEntry.iRequestedItem, profile, profileSignature, &isContentEncrypted, &timeWhenProfileWasPublished, &profileKey) ) { resultBytes->append(ProtocolMessageFormatter::contentSend(KProfileSend, aEntry.iRequestedItem, profile, profileSignature, profileKey, isContentEncrypted, isContentCompressed, timeWhenProfileWasPublished )); } profileKey.clear() ; profile.clear() ; profileSignature.clear() ; if ( resultBytes->size() ) { // datamodel will delete resultBytes iModel.addItemToSend(aEntry.iDestinationNode , resultBytes) ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } aEntry.iState = ReadyToSend ; } void NetworkRequestExecutor::processClassifiedAd(NetworkRequestQueueItem& aEntry) { LOG_STR("processClassifiedAd in") ; QByteArray caBytes ; QByteArray caSignature ; QByteArray* resultBytes = new QByteArray() ; QByteArray caKey ; bool isContentEncrypted = false ; bool isContentCompressed = false ; quint32 timeWhenCaWasPublished ; if ( iModel.classifiedAdsModel().caDataForPublish(aEntry.iRequestedItem, caBytes, caSignature, caKey, &timeWhenCaWasPublished) ) { resultBytes->append(ProtocolMessageFormatter::contentSend(KClassifiedAdSend, aEntry.iRequestedItem, caBytes, caSignature, caKey, isContentEncrypted, isContentCompressed, timeWhenCaWasPublished )); } caKey.clear() ; caBytes.clear() ; caSignature.clear() ; if ( resultBytes->size() ) { // datamodel will delete resultBytes iModel.addItemToSend(aEntry.iDestinationNode , resultBytes) ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } aEntry.iState = ReadyToSend ; } void NetworkRequestExecutor::processAdsClassified(NetworkRequestQueueItem& aEntry) { LOG_STR("processAdsClassified in") ; /* * ok, here make distinction. if aEntry.iDestinationNode is * nullhash, then it was UI interface request by local user. * if iDestinationNode is some other node, then the request * was sent by a peer */ if ( aEntry.iDestinationNode != KNullHash ) { QList > listOfAds ; // in request with type RequestAdsClassified the field // iTimeStampOfItem contains requested start time and // iTimeStampOfLastActivity the end time, not actually // the last activity time of the entry itself. // this can be done because // - it causes confusion to reader // - this network request is one-shot type, there is no long life-cycle iModel.classifiedAdsModel().caListingByClassification(aEntry.iRequestedItem, aEntry.iTimeStampOfItem, aEntry.iTimeStampOfLastActivity, listOfAds, aEntry.iDestinationNode) ; LOG_STR2("processAdsClassified finds %d ads in response", (int)(listOfAds.size())) ; if ( listOfAds.size() > 0 ) { QByteArray* resultBytes = new QByteArray() ; resultBytes->append(ProtocolMessageFormatter::replyToAdsClassified(aEntry.iRequestedItem, listOfAds ) ) ; iModel.addItemToSend(aEntry.iDestinationNode , resultBytes) ; } aEntry.iState = ReadyToSend ; } else { // was UI request sendRequestToNodesAroundHash(aEntry, true) ; } } classified-ads-0.09/datamodel/netrequestexecutor.h000066400000000000000000000207051260620453500224050ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CLASSIFIED_NETREQEXEC_H #define CLASSIFIED_NETREQEXEC_H #include #include "../net/protocol.h" #include // for time_t #include "../net/connection.h" class MController ; class Model ; extern Hash KNullHash ; /** * @brief Logic for handling tasks received from other peers or from user. * * Here is class that takes requests sent (or generated locally) * from queue, obtains data needed and puts results into * send-queues of nodes that need to see the results. */ class NetworkRequestExecutor : public QTimer { Q_OBJECT public: /** * requests may be new, being processed, or ready * to be sent, have enum indicating the state */ enum NetworkRequestState { NewRequest, /**< NetworkRequestExecutor has not yet touched */ Processing, /**< is working in this very moment */ NodeIsInWishList, /**< node connection in progress */ RequestBeingSentAround, /**< request is sent to nodes around hash */ ReadyToSend /**< request completed but not sent */ }; /** * @brief Work queue item. * * Have this kind of items in the queue waiting to be processed * and finally sent to destination (if still connected) */ struct NetworkRequestQueueItem { /** * this iRequestType contais dual-use values. * if request type is RequestFor..something * and the iDestinationNode is KNullHash then * it means that it the user that is requesting * the content so this request is sent to * neighboring nodes. * * other possibility is that we receive RequestFor..something * from neighboring node, in which case we have the * iDestinationNode set, pointing back to node that * wants the content. In this case we try fetch * the content from local reposity and send it to * given node. */ ProtocolItemType iRequestType ; Hash iDestinationNode ; Hash iRequestedItem ; quint32 iTimeStampOfItem ; quint32 iTimeStampOfLastActivity ; NetworkRequestState iState ; int iMaxNumberOfItems ; /** bang-path is used in publish-operations */ QList iBangPath ; /** * this is initially empty. when iState is set to * RequestBeingSentAround then this list here gets * populated with the nodes around */ QList iWishListForNodesAround ; } ; /** * constructor */ NetworkRequestExecutor(MController *aController, Model& aModel) ; ~NetworkRequestExecutor() ; private: /** * method for sending one or more node references to * given node */ void processNodeGreeting(NetworkRequestQueueItem& aEntry) ; /** * method for sending nodegreeting around given hash. user initiates * this and this sends around queries about nodes around * given hash. the nodes that are sent the query are already-connected * nodes */ void processRequestForNodesAroundHash(NetworkRequestQueueItem& entry) ; /** * method for publishing a profile+ad+binary file+profile comment */ void processRequestForContentPublish(NetworkRequestQueueItem& entry) ; /** * method for publishing a private message */ void processRequestForPrivateMessagePublish(NetworkRequestQueueItem& aEntry) ; /** * method for requesting retrieval of a binary file */ void processRequestForBinaryBlob(NetworkRequestQueueItem& aEntry) ; /** * method for requesting retrieval of a binary file */ void processRequestForClassifiedAd(NetworkRequestQueueItem& aEntry) ; /** * method for requesting update of profile data and comments */ void processRequestForProfilePoll(NetworkRequestQueueItem& aEntry) ; /** * method for requesting retrieval of a operator profile. so this * means that some neighboring node sent us a request regarding * a particular profile and this method then finds it from our * local data store, or does not. */ void processRequestForUserProfile(NetworkRequestQueueItem& aEntry) ; /** * method for requesting retrieval of a comment of operator profile. * this is called in situation where user wants to locally view * a comment and it is not in local storage so we need to ask * other nodes to send it to us. */ void processRequestForUserProfileComment(NetworkRequestQueueItem& aEntry) ; /** * method for actually sending the bytes to peer * @param aEntry is the request to send * @param aNodeToSend is fingerprint of the node where to * send ; if KNullHash then aEntry.iDestinationNode * is used. If aNodeSend is not connected at the moment, * request is simply ignored. */ void doSendRequestToNode(NetworkRequestQueueItem& aEntry, const Hash& aNodeToSend = KNullHash ) ; /** * method for checking nodes around hash, sending request to * those and if not already connected, adding those nodes to * wishlist */ void sendRequestToNodesAroundHash(NetworkRequestQueueItem& aEntry, bool aUseContentHashNotDestination = false) ; /** * method for producing reply to request concerning a binary blob -> * e.g. this method sends a binary blob */ void processBinaryBlob(NetworkRequestQueueItem& aEntry) ; /** * method for producing reply to request concerning a private msg -> * e.g. this method sends a private message */ void processPrivateMessage(NetworkRequestQueueItem& aEntry) ; /** * method for producing reply to request concerning profile comments * e.g. this method sends a profile comments whose commented * profile matches the one given in the request */ void processUserProfileCommentsForProfile(NetworkRequestQueueItem& entry) ; /** * method for producing bytearray to send to other node containing * single profile comment */ void processUserProfileComment(NetworkRequestQueueItem& aEntry) ; /** * method for producing send queue items for every private * message that the requesting profile has in queue. */ void processPrivateMessagesForProfile(NetworkRequestQueueItem& aEntry) ; /** * method for producing reply to request concerning a user profile -> * e.g. this method sends a profile to remote node */ void processUserProfile(NetworkRequestQueueItem& aEntry) ; /** * method for producing reply to request concerning a classified ad -> * e.g. this method sends an ad to remote node */ void processClassifiedAd(NetworkRequestQueueItem& aEntry) ; /** * method for producing reply to request concerning a classified ad * classification -> * e.g. this method sends an listing of ads to remote node, the * classification of the ads match hash given in entry */ void processAdsClassified(NetworkRequestQueueItem& aEntry) ; public slots: /** * this class is no thread but lets try pretending.. */ void run() ; /** when connection is attempted, @ref NetworkListener will * emit the status (failed or success) of the connection, * emitted signal is connected here */ void nodeConnectionAttemptStatus(Connection::ConnectionState aStatus, const Hash aHashOfAttemptedNode ); private: MController *iController ; Model& iModel ; bool iNowRunning ; time_t iLastTimeOfNodeConnectedNodeStatusUpdate ; } ; #endif classified-ads-0.09/datamodel/nodemodel.cpp000066400000000000000000002217001260620453500207260ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifdef WIN32 #define NOMINMAX #include #endif #include "nodemodel.h" #include "../log.h" #include #include #include #include #include #include "../util/hash.h" #include #include #include #include #include #include #include #include #include #include "../net/connection.h" #include "../net/protocol_message_formatter.h" #include "../net/node.h" #include "model.h" #include "camodel.h" #include "binaryfilemodel.h" #include "profilemodel.h" #include "privmsgmodel.h" #include "profilecommentmodel.h" #include "const.h" #include "searchmodel.h" #include /** * How many nodes to keep */ static const int KMaxNodesInDbTable( 10000 ); NodeModel::NodeModel(MController *aController, const Model &aModel) : ModelBase("node", KMaxRowsInTableNode), iController(aController), iFingerPrintOfThisNode(NULL) , iThisNodeCert(NULL), iThisNodeKey(NULL), iModel(aModel), iTimerId(-1) { LOG_STR("NodeModel::NodeModel()") ; connect(this, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; openOrCreateSSLCertificate() ; // this method emit possible errors itself iTimerId = startTimer(20000*2) ; // 2-minute timer } NodeModel::~NodeModel() { LOG_STR("NodeModel::~NodeModel()") ; delete iThisNodeKey ; if ( iThisNodeCert ) { delete iThisNodeCert ; } if ( iFingerPrintOfThisNode ) { delete iFingerPrintOfThisNode ; } iController = NULL ; // not owned, just set null while ( !iConnectionWishList.isEmpty() ) { Node* wishListItem = iConnectionWishList.takeAt(0) ; delete wishListItem ; } if ( iTimerId != -1 ) { killTimer(iTimerId) ; } } bool NodeModel::openOrCreateSSLCertificate() { if ( loadSslCertFromDb()&& loadSslKeyFromDb() ) { return true ; } else { LOG_STR("No ssl cert in place, generating") ; EVP_PKEY * pkey; pkey = EVP_PKEY_new(); RSA * rsa; if ( ( rsa = RSA_generate_key( 2048, /* number of bits for the key - 2048 is a sensible value */ RSA_F4, /* exponent - RSA_F4 is defined as 0x10001L */ NULL, /* callback - can be NULL if we aren't displaying progress */ NULL /* callback argument - not needed in this case */ ) ) == NULL ) { QString errmsg(tr("SSL key generation went wrong, calling exit..")) ; emit error(MController::OwnCertNotFound, errmsg) ; return false ; } EVP_PKEY_assign_RSA(pkey, rsa); X509 * x509; x509 = X509_new(); if ( x509 == NULL ) { QString errmsg(tr("x509 cert generation went wrong, calling exit..")) ; emit error(MController::OwnCertNotFound, errmsg) ; return false ; } ASN1_INTEGER_set(X509_get_serialNumber(x509), 1); // key validity time ; starting from now X509_gmtime_adj(X509_get_notBefore(x509), 0); // and after 100 years someone needs to find a way to // 1) crack this encryption, or // 2) write feature for migrating the stuff to another node with a new cert X509_gmtime_adj(X509_get_notAfter(x509), 60L * 60L * 24L * 365L * (long long)(80+(qrand()%20)) + (long long)((qrand() % 10000)) ); X509_set_pubkey(x509, pkey); X509_NAME * name; name = X509_get_subject_name(x509); const char *countryCode = NULL ; const char *countryCodeFI = "FI" ; // Juice Leskinen const char *countryCodeSE = "SE" ; const char *countryCodeUS = "US" ; switch (rand() % 3 ) { case 0: countryCode = countryCodeFI; break ; case 1: countryCode = countryCodeSE; break ; default: countryCode = countryCodeUS; break ; } char randomName [11] = { 0 }; int nameLen = 5 + (rand() % 5 ) ; for ( int i = 0 ; i < nameLen ; i++ ) { randomName[i] = (char) (65 + ( rand() % 25) ) ; } char domainName [20] = { 0 } ; for ( int i = 0 ; i < 4 ; i++ ) { domainName[i] = (char) (65 + ( rand() % 25) ) ; } strcat (domainName, ".com") ; X509_NAME_add_entry_by_txt(name, "C", MBSTRING_ASC, (unsigned char *)countryCode, -1, -1, 0); X509_NAME_add_entry_by_txt(name, "O", MBSTRING_ASC, (unsigned char *)randomName, -1, -1, 0); X509_NAME_add_entry_by_txt(name, "CN", MBSTRING_ASC, (unsigned char *)domainName, -1, -1, 0); X509_set_issuer_name(x509, name); X509_sign(x509, pkey, EVP_sha1()); BIO *pri = BIO_new(BIO_s_mem()); BIO *pub = BIO_new(BIO_s_mem()); if((pri == NULL || pub == NULL ) || (!PEM_write_bio_PrivateKey(pri, pkey, NULL, NULL, 0, 0, NULL))) { QString errmsg(ERR_reason_error_string(ERR_get_error())) ; emit error(MController::ContentEncryptionError, errmsg) ; EVP_PKEY_free(pkey) ; X509_free(x509) ; BIO_free(pri) ; BIO_free(pub) ; return false ; } PEM_write_bio_X509( pub, /* write the certificate to the mem-buf we've opened */ x509 /* our certificate */ ); unsigned char md[EVP_MAX_MD_SIZE]; unsigned int n; const EVP_MD * digest = EVP_get_digestbyname("sha1"); X509_digest(x509, digest, md, &n); iFingerPrintOfThisNode = new Hash(md) ; EVP_PKEY_free(pkey) ; X509_free(x509) ; size_t pri_len = BIO_pending(pri); size_t pub_len = BIO_pending(pub); char *pri_key = (char *)malloc(pri_len + 1); char *pub_key = (char *)malloc(pub_len + 1); BIO_read(pri, pri_key, pri_len); BIO_read(pub, pub_key, pub_len); pri_key[pri_len] = '\0'; pub_key[pub_len] = '\0'; BIO_free(pri) ; BIO_free(pub) ; QByteArray pubKeyBytes(pub_key,pub_len) ; QByteArray priKeyBytes(pri_key,pri_len) ; free(pub_key) ; free(pri_key) ; saveSslCertToDb(pubKeyBytes) ; saveSslKeyToDb(priKeyBytes) ; } return ( loadSslCertFromDb() && loadSslKeyFromDb() ) ; } Hash& NodeModel::nodeFingerPrint() { return *iFingerPrintOfThisNode ; } int NodeModel::listenPortOfThisNode() { bool ret = false ; int port = -1 ; QSqlQuery query; ret = query.exec("select node_listenport from settings") ; if ( ret && query.next() && !query.isNull(0) ) { port = query.value(0).toInt() ; LOG_STR2("Our listen port previously set to %d", port) ; } if ( port < 0 ) { // had no port, invent one. port = ( rand() % 15000 ) + 20000 ; LOG_STR2("Our listen port now set to %d", port) ; setListenPortOfThisNode(port) ; } return port ; } void NodeModel::setListenPortOfThisNode(int port) { bool ret ( true ) ; QSqlQuery q2; ret = q2.prepare("update settings set node_listenport = :port") ; if (ret) { q2.bindValue(":port", port) ; q2.exec() ; } } const QSslCertificate& NodeModel::nodeCert() const { return *iThisNodeCert ; } const QSslKey& NodeModel::nodeKey() const { return *iThisNodeKey ; } // As is the case with most (all?) of the methods of this // datamodel, the caller must have called lock() first. // // This method here actually pretty much determines the way // how classified ads network works. This gives the next item, // always. Items are sent in certain order and certain // intervals and implementation of order and interval etc. // lies inside this method .. note also part where // aConnection.SendQueue is filled QByteArray* NodeModel::getNextItemToSend(Connection& aConnection) { // LOG_STR("NodeModel::getNextItemToSend in ") ; QByteArray* retval = NULL ; // a trick played here ; connection actually already has // the data but lets route it via datamodel so we can // start preparing for the next if (aConnection.iNextProtocolItemToSend.size()) { retval = aConnection.iNextProtocolItemToSend.value(0) ; aConnection.iNextProtocolItemToSend.removeAt(0) ; } else { if ( aConnection.iSendQueue.size() > 0 ) { SendQueueItem itemToPrepare = aConnection.iSendQueue.takeAt(0) ; switch ( itemToPrepare.iItemType ) { case OwnNodeGreeting: { retval = new QByteArray(ProtocolMessageFormatter::nodeGreeting(iController->getNode())) ; } break ; case NodeGreeting: { Node* nodeToSend = nodeByHash(itemToPrepare.iHash) ; if ( nodeToSend ) { retval = new QByteArray(ProtocolMessageFormatter::nodeGreeting(*nodeToSend)) ; delete nodeToSend ; } } break ; case ClassifiedAd: { QByteArray caBytes ; QByteArray caSignature ; QByteArray* resultBytes = new QByteArray() ; QByteArray caKey ; bool isContentEncrypted = false ; bool isContentCompressed = false ; quint32 timeWhenCaWasPublished ; if ( iModel.classifiedAdsModel().caDataForPublish(itemToPrepare.iHash, caBytes, caSignature, caKey, &timeWhenCaWasPublished) ) { resultBytes->append(ProtocolMessageFormatter::contentSend(KClassifiedAdSend, itemToPrepare.iHash, caBytes, caSignature, caKey, isContentEncrypted, isContentCompressed, timeWhenCaWasPublished )); } caKey.clear() ; caBytes.clear() ; caSignature.clear() ; if ( resultBytes->size() ) { retval = resultBytes ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } } break ; case BinaryBlob: { QByteArray binary ; QByteArray binarySignature ; QByteArray* resultBytes = new QByteArray() ; QByteArray binaryKey ; bool isContentEncrypted = false ; bool isContentCompressed = false ; quint32 timeWhenBinaryFileWasPublished ; if ( iModel.binaryFileModel().binaryFileDataForSend(itemToPrepare.iHash, binary, binarySignature, binaryKey, &isContentEncrypted, &isContentCompressed, &timeWhenBinaryFileWasPublished) ) { resultBytes->append(ProtocolMessageFormatter::contentSend(KBinaryFileSend, itemToPrepare.iHash, binary, binarySignature, binaryKey, isContentEncrypted, isContentCompressed, timeWhenBinaryFileWasPublished )); } binaryKey.clear() ; binary.clear() ; binarySignature.clear() ; if ( resultBytes->size() ) { retval = resultBytes ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } } break ; case UserProfile: { QByteArray profile ; QByteArray profileSignature ; QByteArray* resultBytes = new QByteArray() ; QByteArray profileKey ; bool isContentEncrypted = false ; bool isContentCompressed = false ; quint32 timeWhenProfileWasPublished ; if ( iModel.profileModel().profileDataByFingerPrint(itemToPrepare.iHash, profile, profileSignature, &isContentEncrypted, &timeWhenProfileWasPublished, &profileKey) ) { resultBytes->append(ProtocolMessageFormatter::contentSend(KProfileSend, itemToPrepare.iHash, profile, profileSignature, profileKey, isContentEncrypted, isContentCompressed, timeWhenProfileWasPublished )); } profileKey.clear() ; profile.clear() ; profileSignature.clear() ; if ( resultBytes->size() ) { retval = resultBytes ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } } break ; case UserProfileComment: { QByteArray comment ; QByteArray commentSignature ; QByteArray* resultBytes = new QByteArray() ; quint32 flags (0) ; quint32 timeWhenProfileWasPublished ; Hash profileHash ; if ( iModel.profileCommentModel().commentDataByFingerPrint(itemToPrepare.iHash, comment, commentSignature, &profileHash, &flags, &timeWhenProfileWasPublished ) ) { resultBytes->append(ProtocolMessageFormatter::profileCommentSend(itemToPrepare.iHash, comment, commentSignature, profileHash, timeWhenProfileWasPublished, flags )); } comment.clear() ; commentSignature.clear() ; if ( resultBytes->size() ) { retval = resultBytes ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; } } break ; case PrivateMessage: { LOG_STR("NodeModel sendqueue handling for PrivateMessage") ; QByteArray msg ; QByteArray msgSignature ; QByteArray* resultBytes = new QByteArray() ; quint32 timeOfPublish ; Hash resultingDestination ; Hash resultingRecipient ; if ( iModel.privateMessageModel().messageDataByFingerPrint(itemToPrepare.iHash, msg, msgSignature, &resultingDestination, &resultingRecipient, &timeOfPublish) ) { // message was found, lets send: resultBytes->append(ProtocolMessageFormatter::privMsgSend(itemToPrepare.iHash, msg, msgSignature, resultingDestination, resultingRecipient, timeOfPublish )); msg.clear() ; msgSignature.clear() ; if ( resultBytes->size() ) { retval = resultBytes ; } else { // we obtained zero bytes -> delete empty bytearray delete resultBytes ; QLOG_STR("Got 0 bytes to send as message, id=" + itemToPrepare.iHash.toString()) ; } } else { QLOG_STR("Could not find msg supposed to be sent, id=" + itemToPrepare.iHash.toString()) ; delete resultBytes ; } } break ; case RequestForSearchSend: { // this request has been put into queue locally and is // from here spammed to connected nodes: QString searchString ; bool searchAds ; bool searchProfiles ; bool searchComments ; Hash searchIdentifier ; iModel.searchModel()->getSearchCriteria(&searchString, &searchAds, &searchProfiles, &searchComments, &searchIdentifier ) ; if ( searchIdentifier != KNullHash && searchString.length() > 0 ) { // there were something to search for QByteArray* resultBytes = new QByteArray() ; resultBytes->append(ProtocolMessageFormatter::searchSend(searchString, searchAds, searchProfiles, searchComments, searchIdentifier)); retval = resultBytes ; } } break ; default: // for rest of the types, there is no need to send LOG_STR2("Unhandled send queue item type %d", (int)(itemToPrepare.iItemType)) ; break ; } } } return retval ; } Node* NodeModel::nodeByHash(const Hash& aHash) { LOG_STR("NodeModel::nodeByHash in ") ; Node *retval = NULL ; QSqlQuery query; bool ret = query.prepare("select hash1,hash2,hash3,hash4,hash5,listenport,last_conn_time,does_listen,ipv4addr,ipv6addr1,ipv6addr2,ipv6addr3,ipv6addr4,last_nodelist_time,last_mutual_conn_time from node where hash1 = :hash1") ; query.bindValue(":hash1", aHash.iHash160bits[0]); if ( ret && (ret = query.exec() ) == true && query.next() ) { quint32 hash1 = query.value(0).toUInt() ; quint32 hash2 = query.value(1).toUInt() ; quint32 hash3 = query.value(2).toUInt() ; quint32 hash4 = query.value(3).toUInt() ; quint32 hash5 = query.value(4).toUInt() ; Hash hashFoundFromDb ( hash1,hash2,hash3,hash4,hash5) ; QLOG_STR("Comparing hash " + hashFoundFromDb.toString()) ; if ( hashFoundFromDb == aHash ) { // yes, found retval = new Node ( hashFoundFromDb, (int)(query.value(5).toUInt()) ) ; retval->setLastConnectTime(query.value(6).toUInt()) ; retval->setCanReceiveIncoming(query.value(7).toUInt() > 0) ; if ( !query.isNull(8) ) { retval->setIpv4Addr(query.value(8).toUInt()) ; } if ( !query.isNull(9) ) { Q_IPV6ADDR addr = ipv6AddrFromUints ( query.value(9).toUInt(), query.value(10).toUInt(), query.value(11).toUInt(), query.value(12).toUInt()) ; retval->setIpv6Addr(addr) ; } if ( !query.isNull(13) ) { retval->setGoodNodeListTime(query.value(13).toUInt()) ; } if ( !query.isNull(14) ) { retval->setLastMutualConnectTime(query.value(14).toUInt()) ; } } } if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } return retval ; } QList NodeModel::getHotAddresses() { LOG_STR("NodeModel::getHotAddresses in ") ; if ( iHotAddresses.size() == 0 ) { retrieveListOfHotConnections() ; // fetch recent nodes from db } if ( iHotAddresses.size() == 0 ) { // if no nodes found // then try hard-coded one.. // QHostAddress seedNode("canode.katiska.org") ; int seedPort ( 31111 ) ; const bool hasIpv6 = !Connection::Ipv6AddressesEqual(iController->getNode().ipv6Addr(), KNullIpv6Addr) ; QHostAddress addrToConnect ; QHostInfo info = QHostInfo::fromName("canode.katiska.org") ; if ( info.error() == QHostInfo::NoError ) { // check for ipv6 addr if we have one foreach ( const QHostAddress& result, info.addresses() ) { if ( result.protocol() == QAbstractSocket::IPv6Protocol && hasIpv6 ) { MNodeModelProtocolInterface::HostConnectQueueItem p ; p.iAddress = result ; p.iPort = seedPort ; p.iNodeHash = KNullHash ; iHotAddresses.append(p) ; QLOG_STR("Added seednode IPv6 addr " + result.toString()) ; } if ( result.protocol() == QAbstractSocket::IPv4Protocol ) { MNodeModelProtocolInterface::HostConnectQueueItem p ; p.iAddress = result ; p.iPort = seedPort ; p.iNodeHash = KNullHash ; iHotAddresses.append(p) ; QLOG_STR("Added seednode IPv4 addr " + result.toString()) ; } } } else { QLOG_STR("DNS lookup error for canode.katiska.org") ; } } return iHotAddresses ; } QList* NodeModel::getHotNodes(int aMaxNodes) { LOG_STR("getHotNodes in") ; QList* retval = new QList() ; QSqlQuery query; bool ret ; QString conditional_recently_failed_condition ; if ( iRecentlyFailedNodes.size() > 0 ) { conditional_recently_failed_condition = " where hash1 not in ( " ; for ( int i = iRecentlyFailedNodes.size()-1 ; i >= 0 ; i-- ) { conditional_recently_failed_condition += QString::number(iRecentlyFailedNodes[i].first.iHash160bits[0] ) + "," ; } conditional_recently_failed_condition += "-1 )" ; } else { conditional_recently_failed_condition = " " ; } QLOG_STR("Failed nodes " + conditional_recently_failed_condition) ; ret = query.exec("select hash1,hash2,hash3,hash4,hash5,listenport,last_conn_time,does_listen,ipv4addr,ipv6addr1,ipv6addr2,ipv6addr3,ipv6addr4,last_nodelist_time from node "+conditional_recently_failed_condition+" order by last_conn_time desc") ; while ( ret && query.next() && !query.isNull(0) && retval->size() < aMaxNodes ) { quint32 hash1,hash2,hash3,hash4,hash5 ; hash1 = query.value(0).toUInt() ; hash2 = query.value(1).toUInt() ; hash3 = query.value(2).toUInt() ; hash4 = query.value(3).toUInt() ; hash5 = query.value(4).toUInt() ; Hash nodeHash (hash1,hash2,hash3,hash4,hash5 ) ; QLOG_STR("Hotnodes got node " + nodeHash.toString()) ; Node* n = new Node (nodeHash, query.value(5).toUInt()) ; if ( !query.isNull(10)) { Q_IPV6ADDR addr = ipv6AddrFromUints (query.value(9).toUInt(), query.value(10).toUInt(), query.value(11).toUInt(), query.value(12).toUInt() ) ; n->setIpv6Addr(addr) ; } if ( !query.isNull(8) ) { n->setIpv4Addr((quint32)(query.value(8).toUInt())) ; } if ( !query.isNull(13) ) { n->setGoodNodeListTime((time_t)(query.value(13).toUInt())) ; } if ( !query.isNull(6) ) { n->setLastConnectTime((time_t)(query.value(6).toUInt())) ; } if ( !query.isNull(7) ) { n->setCanReceiveIncoming((bool)(query.value(7).toUInt())) ; } retval->append(n) ; } LOG_STR("getHotNodes out") ; return retval ; } QList* NodeModel::getNodesAfterHash(const Hash& aHash, unsigned aMaxNodes, int aMaxInactivityMinutes) { LOG_STR("getNodesAfterHash in") ; // hmm hmm. // this program will do a lot of hash-matching, but in practice // the matches are made so that we know hash of some content // and that hash is exactly known in advance so search from db // table is easy. the "matching" part is about finding a node // whose hash is near the content hash and this is where this // method here comes into picture. ..if we keep only 10k // nodes in db table we can quite safely do things resulting // in full table scan and the performance will still be // in ok level .. or lets see. if not we'll need an extra column // that will somehow contain distance from hash in form that // is usable also when hash number rolls over QList* retval = new QList() ; QSqlQuery query; bool ret ; if ( aMaxNodes > iCurrentDbTableRowCount ) { aMaxNodes = iCurrentDbTableRowCount ; // don't try returning more than we have } // this is fine, will use index as there is index for hash1 QString conditional_inactivity_condition ; if ( aMaxInactivityMinutes > 0 ) { conditional_inactivity_condition = "and last_conn_time > :last_conn_time "; } else { conditional_inactivity_condition = " "; } QString conditional_recently_failed_condition ; if ( iRecentlyFailedNodes.size() > 0 ) { conditional_recently_failed_condition = " and hash1 not in ( " ; for ( int i = iRecentlyFailedNodes.size()-1 ; i >= 0 ; i-- ) { conditional_recently_failed_condition += QString::number(iRecentlyFailedNodes[i].first.iHash160bits[0] ) + "," ; } conditional_recently_failed_condition += " -1)" ; } else { conditional_recently_failed_condition = " " ; } QLOG_STR("Failed nodes " + conditional_recently_failed_condition) ; ret = query.prepare("select hash1,hash2,hash3,hash4,hash5,listenport,last_conn_time,does_listen,ipv4addr,ipv6addr1,ipv6addr2,ipv6addr3,ipv6addr4,last_nodelist_time,dns_name,tor_name from node where ( ipv4addr is not null or ipv6addr1 is not null ) and hash1 >= :hash_to_seek "+ conditional_inactivity_condition + conditional_recently_failed_condition + " order by hash1 limit :maxrows") ; query.bindValue(":hash_to_seek", aHash.iHash160bits[0]); query.bindValue(":maxrows", aMaxNodes); if ( aMaxInactivityMinutes > 0 ) { query.bindValue(":last_conn_time", (unsigned)(QDateTime::currentDateTimeUtc().toTime_t()-(aMaxInactivityMinutes*60))); } if ( ret && query.exec() ) { while ( ret && query.next() && !query.isNull(0) && ((unsigned)(retval->size())) < aMaxNodes ) { quint32 hash1,hash2,hash3,hash4,hash5 ; hash1 = query.value(0).toUInt() ; hash2 = query.value(1).toUInt() ; hash3 = query.value(2).toUInt() ; hash4 = query.value(3).toUInt() ; hash5 = query.value(4).toUInt() ; Hash nodeHash (hash1,hash2,hash3,hash4,hash5 ) ; QLOG_STR("getNodesAfterHash got node " + nodeHash.toString()) ; Node* n = new Node (nodeHash, query.value(5).toUInt()) ; if ( !query.isNull(10)) { Q_IPV6ADDR addr = ipv6AddrFromUints (query.value(9).toUInt(), query.value(10).toUInt(), query.value(11).toUInt(), query.value(12).toUInt() ) ; n->setIpv6Addr(addr) ; } if ( !query.isNull(8) ) { n->setIpv4Addr((quint32)(query.value(8).toUInt())) ; } if ( !query.isNull(13) ) { n->setGoodNodeListTime((time_t)(query.value(13).toUInt())) ; } if ( !query.isNull(6) ) { n->setLastConnectTime((time_t)(query.value(6).toUInt())) ; } if ( !query.isNull(7) ) { n->setCanReceiveIncoming((bool)(query.value(7).toUInt())) ; } if ( !query.isNull(14) ) { n->setDNSAddr(query.value(14).toString()) ; } if ( !query.isNull(15) ) { n->setTORAddr(query.value(15).toString()) ; } retval->append(n) ; } } if ( (unsigned)(retval->size()) < aMaxNodes ) { // we got less nodes so that means that hash we were trying // to seek was so close to end of list that there were less // than aMaxNodes nodes in table after the hash we were // seeking. so so .. here roll over, start from node zero QSqlQuery query2; // note here: no where-condition but only order by. // this will start from first node, return nodes // starting in order from zero, until maxrows is // reached. .. so in case we need to roll-over the // hash-space, this 2nd query here is our implementation // for the rolling-over. if ( aMaxInactivityMinutes > 0 ) { conditional_inactivity_condition = " and last_conn_time > :last_conn_time "; } else { conditional_inactivity_condition = " "; } ret = query2.prepare("select hash1,hash2,hash3,hash4,hash5,listenport,last_conn_time,does_listen,ipv4addr,ipv6addr1,ipv6addr2,ipv6addr3,ipv6addr4,last_nodelist_time,dns_name,tor_name from node where ( ipv4addr is not null or ipv6addr1 is not null ) "+ conditional_inactivity_condition + conditional_recently_failed_condition + " order by hash1 limit :maxrows") ; query2.bindValue(":maxrows", aMaxNodes - retval->size()); if ( aMaxInactivityMinutes > 0 ) { query2.bindValue(":last_conn_time", (unsigned)(QDateTime::currentDateTimeUtc().toTime_t()-(aMaxInactivityMinutes*60))); } if ( ret && query2.exec() ) { while ( ret && query2.next() && !query2.isNull(0) && (((unsigned)(retval->size())) < aMaxNodes) ) { quint32 hash1,hash2,hash3,hash4,hash5 ; hash1 = query2.value(0).toUInt() ; hash2 = query2.value(1).toUInt() ; hash3 = query2.value(2).toUInt() ; hash4 = query2.value(3).toUInt() ; hash5 = query2.value(4).toUInt() ; Hash nodeHash (hash1,hash2,hash3,hash4,hash5 ) ; Node* n = new Node (nodeHash, query2.value(5).toUInt()) ; if ( !query2.isNull(10)) { Q_IPV6ADDR addr = ipv6AddrFromUints (query2.value(9).toUInt(), query2.value(10).toUInt(), query2.value(11).toUInt(), query2.value(12).toUInt() ) ; n->setIpv6Addr(addr) ; } if ( !query2.isNull(8) ) { n->setIpv4Addr((quint32)(query2.value(8).toUInt())) ; } if ( !query2.isNull(13) ) { n->setGoodNodeListTime((time_t)(query2.value(13).toUInt())) ; } if ( !query2.isNull(6) ) { n->setLastConnectTime((time_t)(query2.value(6).toUInt())) ; } if ( !query2.isNull(7) ) { n->setCanReceiveIncoming((bool)(query2.value(7).toUInt())) ; } if ( !query2.isNull(14) ) { n->setDNSAddr(query2.value(14).toString()) ; } if ( !query2.isNull(15) ) { n->setTORAddr(query2.value(15).toString()) ; } retval->append(n) ; } } } return retval ; } // // see also getNodesAfterHash // QList* NodeModel::getNodesBeforeHash(const Hash& aHash, unsigned aMaxNodes) { QList* retval = new QList() ; QSqlQuery query; bool ret ; if ( aMaxNodes > iCurrentDbTableRowCount ) { aMaxNodes = iCurrentDbTableRowCount ; // don't try returning more than we have } QString conditional_recently_failed_condition ; if ( iRecentlyFailedNodes.size() > 0 ) { conditional_recently_failed_condition = " and hash1 not in ( " ; for ( int i = iRecentlyFailedNodes.size()-1 ; i >= 0 ; i-- ) { conditional_recently_failed_condition += QString::number(iRecentlyFailedNodes[i].first.iHash160bits[0] ) + "," ; } conditional_recently_failed_condition += " -1)" ; } else { conditional_recently_failed_condition = " " ; } QLOG_STR("Failed nodes " + conditional_recently_failed_condition) ; // this is fine, will use index as there is index for hash1 ret = query.prepare("select hash1,hash2,hash3,hash4,hash5,listenport,last_conn_time,does_listen,ipv4addr,ipv6addr1,ipv6addr2,ipv6addr3,ipv6addr4,last_nodelist_time,dns_name,tor_name from node where ( ipv4addr is not null or ipv6addr1 is not null ) and hash1 <= :hash_to_seek "+conditional_recently_failed_condition+" order by hash1 desc limit :maxrows") ; query.bindValue(":hash_to_seek", aHash.iHash160bits[0]); query.bindValue(":maxrows", aMaxNodes); if ( ret && query.exec() ) { while ( ret && query.next() && !query.isNull(0) && (unsigned)(retval->size()) < aMaxNodes ) { quint32 hash1,hash2,hash3,hash4,hash5 ; hash1 = query.value(0).toUInt() ; hash2 = query.value(1).toUInt() ; hash3 = query.value(2).toUInt() ; hash4 = query.value(3).toUInt() ; hash5 = query.value(4).toUInt() ; Hash nodeHash (hash1,hash2,hash3,hash4,hash5 ) ; Node* n = new Node (nodeHash, query.value(5).toUInt()) ; if ( !query.isNull(10)) { Q_IPV6ADDR addr = ipv6AddrFromUints (query.value(9).toUInt(), query.value(10).toUInt(), query.value(11).toUInt(), query.value(12).toUInt() ) ; n->setIpv6Addr(addr) ; } if ( !query.isNull(8) ) { n->setIpv4Addr((quint32)(query.value(8).toUInt())) ; } if ( !query.isNull(13) ) { n->setGoodNodeListTime((time_t)(query.value(13).toUInt())) ; } if ( !query.isNull(6) ) { n->setLastConnectTime((time_t)(query.value(6).toUInt())) ; } if ( !query.isNull(7) ) { n->setCanReceiveIncoming((bool)(query.value(7).toUInt())) ; } if ( !query.isNull(14) ) { n->setDNSAddr(query.value(14).toString()) ; } if ( !query.isNull(15) ) { n->setTORAddr(query.value(15).toString()) ; } retval->append(n) ; } } if ( (unsigned)(retval->size()) < aMaxNodes ) { // we got less nodes so that means that hash we were trying // to seek was so close to end of list that there were less // than aMaxNodes nodes in table after the hash we were // seeking. so so .. here roll over, start from node zero QSqlQuery query2; // note here: no where-condition but only order by. // this will start from first node, return nodes // starting in order from max value, until maxrows is // reached. .. so in case we need to roll-over the // hash-space, this 2nd query here is our implementation // for the rolling-over. ret = query2.prepare("select hash1,hash2,hash3,hash4,hash5,listenport,last_conn_time,does_listen,ipv4addr,ipv6addr1,ipv6addr2,ipv6addr3,ipv6addr4,last_nodelist_time from node where ( ipv4addr is not null or ipv6addr1 is not null ) " + conditional_recently_failed_condition + " order by hash1 desc limit :maxrows") ; query2.bindValue(":maxrows", aMaxNodes - (unsigned)(retval->size())); if ( ret && query2.exec() ) { while ( ret && query2.next() && !query2.isNull(0) && ((unsigned)(retval->size())) < aMaxNodes ) { quint32 hash1,hash2,hash3,hash4,hash5 ; hash1 = query2.value(0).toUInt() ; hash2 = query2.value(1).toUInt() ; hash3 = query2.value(2).toUInt() ; hash4 = query2.value(3).toUInt() ; hash5 = query2.value(4).toUInt() ; Hash nodeHash (hash1,hash2,hash3,hash4,hash5 ) ; Node* n = new Node (nodeHash, query2.value(5).toUInt()) ; if ( !query2.isNull(10)) { Q_IPV6ADDR addr = ipv6AddrFromUints (query2.value(9).toUInt(), query2.value(10).toUInt(), query2.value(11).toUInt(), query2.value(12).toUInt() ) ; n->setIpv6Addr(addr) ; } if ( !query2.isNull(8) ) { n->setIpv4Addr((quint32)(query2.value(8).toUInt())) ; } if ( !query2.isNull(13) ) { n->setGoodNodeListTime((time_t)(query2.value(13).toUInt())) ; } if ( !query2.isNull(6) ) { n->setLastConnectTime((time_t)(query2.value(6).toUInt())) ; } if ( !query2.isNull(7) ) { n->setCanReceiveIncoming((bool)(query2.value(7).toUInt())) ; } if ( !query2.isNull(14) ) { n->setDNSAddr(query2.value(14).toString()) ; } if ( !query2.isNull(15) ) { n->setTORAddr(query2.value(15).toString()) ; } retval->append(n) ; } } } return retval ; } Q_IPV6ADDR NodeModel::ipv6AddrFromUints(quint32 aLeastSignificant, quint32 aLessSignificant, quint32 aMoreSignificant, quint32 aMostSignificant ) const { Q_IPV6ADDR addr ; quint32 ipv6addrPart = aLeastSignificant ; addr.c[0] = (ipv6addrPart & 0x000000FF) ; addr.c[1] = (ipv6addrPart & 0x0000FF00) >> 8 ; addr.c[2] = (ipv6addrPart & 0x00FF0000) >> 16 ; addr.c[3] = (ipv6addrPart & 0xFF000000) >> 24 ; ipv6addrPart = aLessSignificant ; addr.c[4] = (ipv6addrPart & 0x000000FF) ; addr.c[5] = (ipv6addrPart & 0x0000FF00) >> 8 ; addr.c[6] = (ipv6addrPart & 0x00FF0000) >> 16 ; addr.c[7] = (ipv6addrPart & 0xFF000000) >> 24 ; ipv6addrPart = aMoreSignificant ; addr.c[8] = (ipv6addrPart & 0x000000FF) ; addr.c[9] = (ipv6addrPart & 0x0000FF00) >> 8 ; addr.c[10] = (ipv6addrPart & 0x00FF0000) >> 16 ; addr.c[11] = (ipv6addrPart & 0xFF000000) >> 24 ; ipv6addrPart =aMostSignificant ; addr.c[12] = (ipv6addrPart & 0x000000FF) ; addr.c[13] = (ipv6addrPart & 0x0000FF00) >> 8 ; addr.c[14] = (ipv6addrPart & 0x00FF0000) >> 16 ; addr.c[15] = (ipv6addrPart & 0xFF000000) >> 24 ; return addr ; } bool NodeModel::nodeGreetingReceived(Node& aNode, bool aWasInitialGreeting ) { LOG_STR("NodeModel::nodeGreetingReceived in ") ; bool retval = true ; Node *previousEntry = nodeByHash(aNode.nodeFingerPrint() ) ; time_t previousConnectTime ( 0 ) ; if ( aWasInitialGreeting && previousEntry ) { aNode.setLastMutualConnectTime(previousEntry->lastMutualConnectTime()) ; } if ( aWasInitialGreeting ) { aNode.setLastConnectTime(QDateTime::currentDateTimeUtc().toTime_t()) ; removeNodeFromRecentlyFailedList(aNode.nodeFingerPrint()) ; } if ( previousEntry ) { previousConnectTime= previousEntry->lastConnectTime() ; // ok, we had previous information, now we have new ; what // data to merge? if ( aNode.lastConnectTime() > previousEntry->lastConnectTime() ) { // aNode is more recent, trust that more. Note that if // we came here via node greeting up-on connect then // time of last connect has been set to wall-clock time // just recently so most likely we have more up-to-date // information here. aNode.setCanReceiveIncoming(aNode.canReceiveIncoming() || previousEntry->canReceiveIncoming() ) ; if ( aNode.lastMutualConnectTime() < previousEntry->lastMutualConnectTime()) { aNode.setLastMutualConnectTime(previousEntry->lastMutualConnectTime()); } retval = this->updateNodeInDb(aNode) ; } else { // our own entry was more recent previousEntry->setCanReceiveIncoming(aNode.canReceiveIncoming() || previousEntry->canReceiveIncoming() ) ; if ( aNode.lastMutualConnectTime() > previousEntry->lastMutualConnectTime()) { previousEntry->setLastMutualConnectTime(aNode.lastMutualConnectTime()); } this->updateNodeInDb(*previousEntry) ; } delete previousEntry ; } else { LOG_STR("Node was new to us") ; retval = this->insertNodeToDb(aNode) ; } if ( aWasInitialGreeting ) { // this was not normal node ref but the initial greeting // sent as first time after connect -> lets grab stuff // that needs to be sent to that node // so send node greetings so that network stays alive. // actual bucket-filling code is in connection.. struct NetworkRequestExecutor::NetworkRequestQueueItem hotNodesSendingReq ; hotNodesSendingReq.iRequestType = NodeGreeting ; hotNodesSendingReq.iDestinationNode = aNode.nodeFingerPrint() ; // so, automatically send noderefs around that node so // that it will know its own neighborhood hotNodesSendingReq.iTimeStampOfItem = previousConnectTime ; hotNodesSendingReq.iState = NetworkRequestExecutor::NewRequest ; hotNodesSendingReq.iMaxNumberOfItems = KNumberOfNodesToSendToEachPeer; iModel.addNetworkRequest(hotNodesSendingReq) ; } return retval ; } bool NodeModel::updateNodeLastConnectTimeInDb(Node& aNode) { QSqlQuery query; bool ret = query.prepare("update node set last_conn_time=:last_conn_time,time_last_reference=:time_last_reference where hash1=:hash1 and hash2=:hash2 and hash3=:hash3 and hash4=:hash4 and hash5=:hash5") ; if ( ret ) { query.bindValue(":hash1", aNode.nodeFingerPrint().iHash160bits[0]); query.bindValue(":hash2", aNode.nodeFingerPrint().iHash160bits[1]); query.bindValue(":hash3", aNode.nodeFingerPrint().iHash160bits[2]); query.bindValue(":hash4", aNode.nodeFingerPrint().iHash160bits[3]); query.bindValue(":hash5", aNode.nodeFingerPrint().iHash160bits[4]); query.bindValue(":last_conn_time", (quint32)(aNode.lastConnectTime())); query.bindValue(":time_last_reference", (quint32)(aNode.lastConnectTime())); ret = query.exec() ; } if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } return ret ; } bool NodeModel::updateNodeLastMutualConnectTimeInDb(const Hash& aNodeFp, quint32 aTime ) { QSqlQuery query; bool ret = query.prepare("update node set last_mutual_conn_time=:last_mutual_conn_time,last_conn_time=:last_conn_time,time_last_reference=:time_last_reference where hash1=:hash1 and hash2=:hash2 and hash3=:hash3 and hash4=:hash4 and hash5=:hash5") ; if ( ret ) { query.bindValue(":hash1", aNodeFp.iHash160bits[0]); query.bindValue(":hash2", aNodeFp.iHash160bits[1]); query.bindValue(":hash3", aNodeFp.iHash160bits[2]); query.bindValue(":hash4", aNodeFp.iHash160bits[3]); query.bindValue(":hash5", aNodeFp.iHash160bits[4]); query.bindValue(":last_conn_time", aTime); query.bindValue(":last_mutual_conn_time", aTime); query.bindValue(":time_last_reference", aTime); ret = query.exec() ; } if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } return ret ; } bool NodeModel::updateNodeInDb(Node& aNode) { QSqlQuery query; bool ret = query.prepare("update node set listenport=:listenport,last_conn_time=:last_conn_time,does_listen=:does_listen,ipv4addr=:ipv4addr,ipv6addr1=:ipv6addr1,ipv6addr2=:ipv6addr2,ipv6addr3=:ipv6addr3,ipv6addr4=:ipv6addr4,last_nodelist_time=:last_nodelist_time,last_mutual_conn_time=:last_mutual_conn_time,dns_name=:dns_name,tor_name=:tor_name where hash1=:hash1 and hash2=:hash2 and hash3=:hash3 and hash4=:hash4 and hash5=:hash5") ; if ( ret ) { query.bindValue(":hash1", aNode.nodeFingerPrint().iHash160bits[0]); query.bindValue(":hash2", aNode.nodeFingerPrint().iHash160bits[1]); query.bindValue(":hash3", aNode.nodeFingerPrint().iHash160bits[2]); query.bindValue(":hash4", aNode.nodeFingerPrint().iHash160bits[3]); query.bindValue(":hash5", aNode.nodeFingerPrint().iHash160bits[4]); // ..listenport is not supposed to change but .. maybe we'll have // UI feature for setting the port manually? query.bindValue(":listenport", (quint32)(aNode.port())); query.bindValue(":last_conn_time", (quint32)(aNode.lastConnectTime())); // if node has no network addr of any kind, don't set // "can receive incoming" as clearly there is no // addr to connect to: if ( aNode.ipv4Addr() == 0 && Connection::Ipv6AddressesEqual(aNode.ipv6Addr(), KNullIpv6Addr )) { query.bindValue(":does_listen", 0); // here 0 means false } else { query.bindValue(":does_listen", aNode.canReceiveIncoming()>0); } query.bindValue(":last_mutual_conn_time", (quint32)(aNode.lastMutualConnectTime())); if ( aNode.ipv4Addr()>0 ) { query.bindValue(":ipv4addr", aNode.ipv4Addr()); } else { // interesting ; null value is null string. even if the // db column is integer. query.bindValue(":ipv4addr", QVariant(QVariant::String)); } Q_IPV6ADDR ipv6addr = aNode.ipv6Addr() ; if ( Connection::Ipv6AddressesEqual(ipv6addr, KNullIpv6Addr ) ) { // has no ipv6, set null query.bindValue(":ipv6addr1", QVariant(QVariant::String)); query.bindValue(":ipv6addr2", QVariant(QVariant::String)); query.bindValue(":ipv6addr3", QVariant(QVariant::String)); query.bindValue(":ipv6addr4", QVariant(QVariant::String)); } else { query.bindValue(":ipv6addr1", (quint32)(ipv6addr.c[0]) + ((quint32)(ipv6addr.c[1]) << 8) + ((quint32)(ipv6addr.c[2]) << 16) + ((quint32)(ipv6addr.c[3]) << 24)); query.bindValue(":ipv6addr2", (quint32)(ipv6addr.c[4]) + ((quint32)(ipv6addr.c[5]) << 8) + ((quint32)(ipv6addr.c[6]) << 16) + ((quint32)(ipv6addr.c[7]) << 24)); query.bindValue(":ipv6addr3", (quint32)(ipv6addr.c[8]) + ((quint32)(ipv6addr.c[9]) << 8) + ((quint32)(ipv6addr.c[10]) << 16) + ((quint32)(ipv6addr.c[11]) << 24)); query.bindValue(":ipv6addr4", (quint32)(ipv6addr.c[12]) + ((quint32)(ipv6addr.c[13]) << 8) + ((quint32)(ipv6addr.c[14]) << 16) + ((quint32)(ipv6addr.c[15]) << 24)); } query.bindValue(":last_nodelist_time", (quint32)(aNode.goodNodeListTime())) ; if ( aNode.DNSAddr().length() > 0 ) { query.bindValue(":dns_name", aNode.DNSAddr()); } else { query.bindValue(":dns_name", QVariant(QVariant::String)); } if ( aNode.TORAddr().length() > 0 ) { query.bindValue(":tor_name", aNode.TORAddr()); } else { query.bindValue(":tor_name", QVariant(QVariant::String)); } ret = query.exec() ; QLOG_STR("updated node port "+QString::number(aNode.port())+" hash " + aNode.nodeFingerPrint().toString()) ; } if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } return ret ; } bool NodeModel::insertNodeToDb(Node& aNode) { bool ret ; QSqlQuery query; ret = query.prepare ("insert into node (hash1,hash2,hash3,hash4,hash5,listenport,last_conn_time,does_listen,ipv4addr,ipv6addr1,ipv6addr2,ipv6addr3,ipv6addr4,last_nodelist_time,last_mutual_conn_time,time_last_reference,dns_name,tor_name) values (:hash1,:hash2,:hash3,:hash4,:hash5,:listenport,:last_conn_time,:does_listen,:ipv4addr,:ipv6addr1,:ipv6addr2,:ipv6addr3,:ipv6addr4,:last_nodelist_time,:last_mutual_conn_time,:time_last_reference,:dns_name,:tor_name)" ) ; if ( ret ) { query.bindValue(":hash1", aNode.nodeFingerPrint().iHash160bits[0]); query.bindValue(":hash2", aNode.nodeFingerPrint().iHash160bits[1]); query.bindValue(":hash3", aNode.nodeFingerPrint().iHash160bits[2]); query.bindValue(":hash4", aNode.nodeFingerPrint().iHash160bits[3]); query.bindValue(":hash5", aNode.nodeFingerPrint().iHash160bits[4]); // ..listenport is not supposed to change but .. maybe we'll have // UI feature for setting the port manually? query.bindValue(":listenport", (quint32)(aNode.port())); query.bindValue(":last_conn_time", (quint32)(aNode.lastConnectTime())); // for nodes put connection time also into time_last_reference // as we use that for removing old entries from table, see // base-class ModelBase for details query.bindValue(":time_last_reference", (quint32)(aNode.lastConnectTime())); query.bindValue(":last_mutual_conn_time", (quint32)(aNode.lastMutualConnectTime())); query.bindValue(":does_listen", aNode.canReceiveIncoming()>0); if ( aNode.ipv4Addr()>0 ) { query.bindValue(":ipv4addr", aNode.ipv4Addr()); } else { // interesting ; null value is null string. even if the // db column is integer. query.bindValue(":ipv4addr", QVariant(QVariant::String)); } Q_IPV6ADDR ipv6addr = aNode.ipv6Addr() ; if ( Connection::Ipv6AddressesEqual(ipv6addr, KNullIpv6Addr ) ) { // has no ipv6, set null query.bindValue(":ipv6addr1", QVariant(QVariant::String)); query.bindValue(":ipv6addr2", QVariant(QVariant::String)); query.bindValue(":ipv6addr3", QVariant(QVariant::String)); query.bindValue(":ipv6addr4", QVariant(QVariant::String)); } else { query.bindValue(":ipv6addr1", (quint32)(ipv6addr.c[0]) + ((quint32)(ipv6addr.c[1]) << 8) + ((quint32)(ipv6addr.c[2]) << 16) + ((quint32)(ipv6addr.c[3]) << 24)); query.bindValue(":ipv6addr2", (quint32)(ipv6addr.c[4]) + ((quint32)(ipv6addr.c[5]) << 8) + ((quint32)(ipv6addr.c[6]) << 16) + ((quint32)(ipv6addr.c[7]) << 24)); query.bindValue(":ipv6addr3", (quint32)(ipv6addr.c[8]) + ((quint32)(ipv6addr.c[9]) << 8) + ((quint32)(ipv6addr.c[10]) << 16) + ((quint32)(ipv6addr.c[11]) << 24)); query.bindValue(":ipv6addr4", (quint32)(ipv6addr.c[12]) + ((quint32)(ipv6addr.c[13]) << 8) + ((quint32)(ipv6addr.c[14]) << 16) + ((quint32)(ipv6addr.c[15]) << 24)); } if ( aNode.DNSAddr().length() > 0 ) { query.bindValue(":dns_name", aNode.DNSAddr()); } else { query.bindValue(":dns_name", QVariant(QVariant::String)); } if ( aNode.TORAddr().length() > 0 ) { query.bindValue(":tor_name", aNode.TORAddr()); } else { query.bindValue(":tor_name", QVariant(QVariant::String)); } query.bindValue(":last_nodelist_time", (quint32)(aNode.goodNodeListTime())) ; ret = query.exec() ; QLOG_STR("inserted node port "+QString::number(aNode.port())+" hash " + aNode.nodeFingerPrint().toString()) ; } if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { iCurrentDbTableRowCount++ ; } return ret ; } void NodeModel::retrieveListOfHotConnections() { bool ret = false ; iHotAddresses.clear() ; int port = -1 ; QSqlQuery query; QLOG_STR("Hot addresses in") ; const bool hasIpv6 = !Connection::Ipv6AddressesEqual(iController->getNode().ipv6Addr(), KNullIpv6Addr) ; if ( iFingerPrintOfThisNode ) { // must be self initialized QLOG_STR("Hot addresses, my hash = " + iFingerPrintOfThisNode->toString()) ; QString conditional_recently_failed_condition ; if ( iRecentlyFailedNodes.size() > 0 ) { conditional_recently_failed_condition = " where hash1 not in ( " ; for ( int i = iRecentlyFailedNodes.size()-1 ; i >= 0 ; i-- ) { conditional_recently_failed_condition += QString::number(iRecentlyFailedNodes[i].first.iHash160bits[0] ) + "," ; } conditional_recently_failed_condition += " -1)" ; } else { conditional_recently_failed_condition = " " ; } QLOG_STR("Failed nodes " + conditional_recently_failed_condition) ; ret = query.exec("select listenport,ipv4addr,ipv6addr1,ipv6addr2,ipv6addr3,ipv6addr4,hash1,hash2,hash3,hash4,hash5 from node "+conditional_recently_failed_condition+" order by last_conn_time desc") ; while ( ret && query.next() && !query.isNull(0) && iHotAddresses.size() < 300 ) { port = query.value(0).toInt() ; Hash hashOfRetrievedNode ( query.value(6).toUInt(), query.value(7).toUInt(), query.value(8).toUInt(), query.value(9).toUInt(), query.value(10).toUInt() ) ; if ( hashOfRetrievedNode != *iFingerPrintOfThisNode ) { // don't connect to self const Node* nodeOfConnection = NULL ; bool alreadyConnected = false ; for ( int i = iModel.getConnections().size()-1 ; i >= 0 ; i-- ) { // and don't connect to already-connected nodes nodeOfConnection = iModel.getConnections().value(i)->node() ; if ( nodeOfConnection && ( nodeOfConnection->nodeFingerPrint() == hashOfRetrievedNode ) ) { QLOG_STR("Hot: Was already connected " + hashOfRetrievedNode.toString()) ; alreadyConnected = true ; break ; } } if ( !alreadyConnected ) { if ( hasIpv6 && !query.isNull(2)) { // prefer ipv6 Q_IPV6ADDR addr = ipv6AddrFromUints (query.value(2).toUInt(), query.value(3).toUInt(), query.value(4).toUInt(), query.value(5).toUInt() ) ; QHostAddress a(addr) ; MNodeModelProtocolInterface::HostConnectQueueItem p ; p.iAddress = a ; p.iPort = port ; p.iNodeHash = hashOfRetrievedNode ; if ( !iHotAddresses.contains(p) ) { iHotAddresses.append(p) ; QLOG_STR("Hot: Added hot addr " + a.toString()) ; } } else if ( !query.isNull(1) ) { QHostAddress a((quint32)(query.value(1).toUInt())) ; MNodeModelProtocolInterface::HostConnectQueueItem p ; p.iAddress = a ; p.iPort = port ; p.iNodeHash = hashOfRetrievedNode ; if ( !iHotAddresses.contains(p) ) { iHotAddresses.append(p) ; QLOG_STR("Hot: Added hot addr " + a.toString()) ; } } } } else { QLOG_STR("Not adding self node to list of hot addresses") ; } } } QLOG_STR("Hot addresses out") ; } void NodeModel::closeOldestInactiveConnection() { Connection *c = NULL ; int indexFound = -1 ; int numberOfNodesInPrivateAddressSpace ( 0 ) ; QList & requests ( iModel.getNetRequests() ) ; // construct a map^H^H^Hlist for faster lookups of hashes: QVector nodesOfNetworkRequests ; for ( int i = requests.size()-1 ; i >= 0 ; i-- ) { if ( requests.at(i).iDestinationNode != KNullHash ) { if ( !nodesOfNetworkRequests.contains(requests.at(i).iDestinationNode) ) { nodesOfNetworkRequests.append(requests.at(i).iDestinationNode) ; } } } time_t oldestActivityTimeFound = QDateTime::currentDateTimeUtc().toTime_t() ; for ( int j = iModel.getConnections().size()-1 ; j >= 0 ; j-- ) { c = iModel.getConnections().value(j) ; bool isInSameLAN ( c->isInPrivateAddrSpace() ) ; if ( isInSameLAN ) { numberOfNodesInPrivateAddressSpace++ ; } const Node* nodeOfConnection = c->node() ; if ( isInSameLAN || ( nodeOfConnection && nodesOfNetworkRequests.contains( nodeOfConnection->nodeFingerPrint() )) ) { // do nothing here, node is in our local lan or it // had pending network request so lets not kick him out.. } else { if ( oldestActivityTimeFound > c->iTimeOfLastActivity ) { oldestActivityTimeFound = c->iTimeOfLastActivity ; indexFound = j ; } } } // we have a constant in protocol.h telling how many connections // we wish to maintain ; from that count out the nodes that are // in our local lan i.e. never disconnect them unless they // disconnect self.. int numberOfRealOutSideConnections = iModel.getConnections().size() - numberOfNodesInPrivateAddressSpace ; if ( numberOfRealOutSideConnections > KMaxOpenConnections ) { if ( indexFound != -1 ) { iModel.getConnections().value(indexFound)->iNeedsToRun = false ; } } } QString NodeModel::dataDir() { return iDataDir ; } void NodeModel::addNodeFromBroadcast(const Hash& aNodeFingerPrint, const QHostAddress& aAddr, int aPort ) { // first check if node is already connected ; our neighboring // node will broadcast its presence often so odds are that we've // already made a connection: const QList & currentConnections ( iModel.getConnections() ) ; for ( int i = currentConnections.size()-1 ; i >= 0 ; i-- ) { // and don't connect to already-connected nodes if ( aNodeFingerPrint == currentConnections.value(i)->getPeerHash() ) { QLOG_STR("Broadcast: According to ssl fp, this node is already connected") ; return ; // was already connected } } // if we got here, the aNodeFingerPrint is not self, // and we don't have connection already. Node* n = new Node(aNodeFingerPrint,aPort) ; if ( aAddr.protocol() == QAbstractSocket::IPv6Protocol ) { n->setIpv6Addr(aAddr.toIPv6Address () ) ; } else { n->setIpv4Addr(aAddr.toIPv4Address () ) ; } addNodeToConnectionWishList(n) ; } bool NodeModel::addNodeToConnectionWishList(Node* aNode) { if ( iController->getNode().nodeFingerPrint() == aNode->nodeFingerPrint() ) { delete aNode ; return false ; // don't queue connection to self } for ( int i = 0 ; i < iConnectionWishList.size() ; i++ ) { if ( aNode->nodeFingerPrint() == iConnectionWishList.value(i)->nodeFingerPrint()) { // node already found from wishlist, don't add again: delete aNode ; return false ; } } iConnectionWishList.append(aNode) ; return true ; } bool NodeModel::addNodeToConnectionWishList(const Hash& aNode) { if ( iController->getNode().nodeFingerPrint() == aNode ) { return false ; // don't queue connection to self } for ( int i = 0 ; i < iConnectionWishList.size() ; i++ ) { if ( aNode == iConnectionWishList.value(i)->nodeFingerPrint()) { return true ; } } Node *n = nodeByHash(aNode) ; if ( n ) { iConnectionWishList.append(n) ; return true ; } else { return false ; } } Node* NodeModel::nextConnectionWishListItem() { if ( iConnectionWishList.isEmpty() ) { return NULL ; } else { return iConnectionWishList.takeAt(0) ; } } bool NodeModel::isNodeAlreadyConnected(const Node& aNode) const { if ( *iFingerPrintOfThisNode == aNode.nodeFingerPrint() ) { // "self" is considered connected return true ; } const QList & currentConnections ( iModel.getConnections() ) ; Node* nodeOfConnection ( NULL ) ; for ( int i = currentConnections.size()-1 ; i >= 0 ; i-- ) { // and don't connect to already-connected nodes nodeOfConnection = currentConnections.value(i)->node() ; if ( nodeOfConnection ) { if ( nodeOfConnection->nodeFingerPrint() == aNode.nodeFingerPrint() ) { return true ; // was already connected } } // there may also be connections in early stage where connection // is there but node greeting has not yet been processed: QHostAddress addrOfConnection (currentConnections.value(i)->peerAddress()); if ( aNode.ipv4Addr() && addrOfConnection.protocol()== QAbstractSocket::IPv4Protocol && addrOfConnection.toIPv4Address() == aNode.ipv4Addr() ) { return true ; // was already connected } if ( !Connection::Ipv6AddressesEqual(aNode.ipv6Addr(), KNullIpv6Addr ) && addrOfConnection.protocol()== QAbstractSocket::IPv6Protocol && Connection::Ipv6AddressesEqual(addrOfConnection.toIPv6Address(), aNode.ipv6Addr() ) ) { return true ; } } return false ; } bool NodeModel::isNodeAlreadyConnected(const Hash& aHash) const { if ( *iFingerPrintOfThisNode == aHash ) { // "self" is considered connected return true ; } const QList & currentConnections ( iModel.getConnections() ) ; Node* nodeOfConnection ( NULL ) ; for ( int i = currentConnections.size()-1 ; i >= 0 ; i-- ) { // and don't connect to already-connected nodes nodeOfConnection = currentConnections.value(i)->node() ; if ( nodeOfConnection ) { if ( nodeOfConnection->nodeFingerPrint() == aHash ) { return true ; // was already connected } } } return false ; } Hash NodeModel::bucketEndHash(const Hash& aFingerPrintOfNodeAsking) { Hash retval ; // here it is good idea to use same method that publishing-process // uses for getting the nodes .. we get a bit extra but // for sake of consistency it might still be good idea. QList* twentyNodes ( getNodesAfterHash(aFingerPrintOfNodeAsking, 20, // ask for 20 5*60)) ; // that have connect time 5*60 minutes or less if ( twentyNodes && twentyNodes->size() < 19 ) { retval = aFingerPrintOfNodeAsking ; // we got less than 19 nodes so our network is really small } else if ( twentyNodes && twentyNodes->size() >= 19 ) { retval = twentyNodes->at(twentyNodes->size()-1)->nodeFingerPrint() ; } else { retval = aFingerPrintOfNodeAsking ; // something odd happened. send all data. } // we have ownership of the array, it needs to be purged. while ( twentyNodes && twentyNodes->size() > 0 ) { Node* n = twentyNodes->takeAt(0) ; delete n ; } delete twentyNodes ; return retval ; } bool NodeModel::saveSslCertToDb(const QByteArray& aCert) { bool ret ( false ) ; QSqlQuery q2; ret = q2.prepare("update settings set node_cert = :cert") ; if (ret) { q2.bindValue(":cert", aCert) ; ret = q2.exec() ; } if ( !ret ) { QLOG_STR(q2.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, q2.lastError().text()) ; } return ret ; } bool NodeModel::saveSslKeyToDb(const QByteArray& aKey) { bool ret ( false ) ; QSqlQuery q2; ret = q2.prepare("update settings set node_key = :key") ; if (ret) { q2.bindValue(":key", aKey) ; ret = q2.exec() ; } if ( !ret ) { QLOG_STR(q2.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, q2.lastError().text()) ; } return ret ; } bool NodeModel::loadSslCertFromDb() { QSqlQuery query ; bool ret ( false ) ; QByteArray certBytes ; ret = query.exec("select node_cert from settings") ; if ( ret && query.next() ) { if ( query.isNull(0) ) { // normal situation in first time: there is no key, column is null return false ; } else { certBytes = query.value(0).toByteArray() ; } } if ( !ret ) { emit error(MController::DbTransactionError, query.lastError().text()) ; } if ( certBytes.size() > 0 ) { iThisNodeCert = new QSslCertificate(certBytes) ; } if ( iThisNodeCert == NULL ) { QString errmsg(tr("Cant load SSL cert")) ; emit error(MController::OwnCertNotFound, errmsg) ; return false ; } else { iFingerPrintOfThisNode = new Hash(*iThisNodeCert) ; return true ; } } bool NodeModel::loadSslKeyFromDb() { QSqlQuery query ; bool ret ( false ) ; QByteArray keyBytes ; ret = query.exec("select node_key from settings") ; if ( ret && query.next() ) { if ( query.isNull(0) ) { // normal situation in first time: there is no key, column is null return false ; } else { keyBytes = query.value(0).toByteArray() ; } } if ( !ret ) { emit error(MController::DbTransactionError, query.lastError().text()) ; } if ( keyBytes.size() > 0 ) { iThisNodeKey = new QSslKey(keyBytes,QSsl::Rsa) ; } if ( iThisNodeCert == NULL ) { QString errmsg(tr("Cant load SSL key")) ; emit error(MController::OwnCertNotFound, errmsg) ; return false ; } else { return true ; } } QString NodeModel::getDnsName() { QSqlQuery query; QString retval ; bool ret (false) ; ret = query.prepare ("select dns_name from settings"); if ( ret && (ret = query.exec()) && query.next ()) { if ( !query.isNull(0) ) { retval = query.value(0).toString() ; } } if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } return retval ; } void NodeModel::setDnsName(QString aName) { QSqlQuery query; bool retval ; retval = query.prepare ("update settings set dns_name = :name"); if ( retval ) { if ( aName.length() > 0 ) { query.bindValue(":name", aName) ; } else { query.bindValue(":name", QVariant(QVariant::String)) ; // null value } retval = query.exec() ; } if ( !retval ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } } void NodeModel::offerNodeToRecentlyFailedList(const Hash& aFailedNodeHash) { bool seen = false ; for ( int i = iRecentlyFailedNodes.size()-1 ; i >= 0 ; i-- ) { if ( iRecentlyFailedNodes[i].first == aFailedNodeHash ) { seen = true ; break ; } } if ( !seen ) { QPair newItem ( aFailedNodeHash, QDateTime::currentDateTimeUtc().toTime_t() ) ; iRecentlyFailedNodes.append(newItem) ; } } void NodeModel::removeNodeFromRecentlyFailedList(const Hash& aConnectedHostFingerPrint) { for ( int i = iRecentlyFailedNodes.size()-1 ; i >= 0 ; i-- ) { if ( iRecentlyFailedNodes[i].first == aConnectedHostFingerPrint ) { iRecentlyFailedNodes.removeAt(i) ; break ; } } } // // this method is hit every 2 minutes - housekeeping here // void NodeModel::timerEvent(QTimerEvent* /* event */ ) { const unsigned time10MinAgo = QDateTime::currentDateTimeUtc().toTime_t()-(60*10) ; iController->model().lock() ; // remove all nodes that have been more than 10 minutes on the list for ( int i = iRecentlyFailedNodes.size()-1 ; i >= 0 ; i-- ) { if ( iRecentlyFailedNodes[i].second < time10MinAgo ) { iRecentlyFailedNodes.removeAt(i) ; } } iController->model().unlock() ; } bool MNodeModelProtocolInterface::HostConnectQueueItem::operator==(const MNodeModelProtocolInterface::HostConnectQueueItem& aItemToCompare) const { if ( iAddress == aItemToCompare.iAddress && iPort == aItemToCompare.iPort ) { return true ; // match } else { if ( iNodeHash != KNullHash && iNodeHash == aItemToCompare.iNodeHash ) { return true ; } } return false ; } classified-ads-0.09/datamodel/nodemodel.h000066400000000000000000000304231260620453500203730ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CLASSIFIED_NODEMODEL_H #define CLASSIFIED_NODEMODEL_H #include #include #include "../mcontroller.h" // because enum from there is needed #include "mnodemodelprotocolinterface.h" #include "../net/connection.h" #include #include #include "datamodelbase.h" class QSqlDatabase ; class QMutex ; class Hash ; class QSslCertificate ; class QSslKey ; class Model ; /** * @brief This is node-specific part of the datamodel. * * This is node-specific part of the datamodel ; this handled * storage and handling of data that is directly related to * nodes themselves. Node is a peer in network. */ class NodeModel : public ModelBase, public MNodeModelProtocolInterface { Q_OBJECT public: NodeModel(MController *aController, const Model &aModel) ; ~NodeModel() ; virtual Hash& nodeFingerPrint(); /**< returns fingerprint of this node */ virtual int listenPortOfThisNode() ; /**< TCP listen port number method */ /** Setting of TCP listen port number method */ virtual void setListenPortOfThisNode(int port) ; /** getter for ssl certificate of SSL sock */ virtual const QSslCertificate& nodeCert() const ; /** getter for ssl certificate of SSL sock */ virtual const QSslKey& nodeKey() const ; /** * Method that network connections use to request for more * stuff to send to peers * @param aConnection is the connection in question * @return octets in QByteArray. Ownership of bytes is * transferred, datamodel does not keep a copy * and caller is responsible for deleting the * returned bytes after they've been sent. */ virtual QByteArray* getNextItemToSend(Connection& aConnection) ; /** * Method for getting node details by hash * @param aHash tells which node to retrieve * @return node or NULL if not known */ virtual Node* nodeByHash(const Hash& aHash) ; /** * method for getting node-connection prospects. lock() must * be called by caller. This does not return addresses of nodes * that are already connected-to. And this does not return * address of this same node. Idea is to use this method * internally to fish out some addresses that might be * worth connecting. */ virtual QList getHotAddresses() ; /** * method for getting node-connection prospects with idea * that we make node-greetings out of those and send to * neighboring node. This may and will also return address * of this node and this may and will also return addresses * of nodes currently connected ; it makes sense to give * others list of addresses that are known to be online. * @param aMaxNodes max number of nodes to return * @return a qlist that the caller must delete after it * is used. */ QList* getHotNodes(int aMaxNodes) ; /** * From MModelProtocolInterface. * * Method related to node database handling ; generic node * reference update method, that is used also to update * reference of this node (self). NodeModel must be locked * before this is used. * * Practically this is called on 2 occasions: one is a new * connection to peer, there peer sends node greeing as * the first thing. This may trigger other things inside * datamodel. * * Second possibility is that we've asked for node * references (around some hash) and then we'll receive. * * @param aNode is the node that had its ref sent * @param aWasInitialGreeting is true if this call was due * to initial node greeting * sent just as first time * after connect * @return true if data update was successful */ virtual bool nodeGreetingReceived(Node& aNode , bool aWasInitialGreeting = false ) ; /** * Method for getting node-connection prospects around * a given hash. This is used to obtain nodes that might * contain content with hash-value near hash-values of * nodes. * @param aHash is hash where to start returning * @param aMaxNodes max number of nodes to return * @param aMaxInactivityMinutes leave out nodes that have last activity * time older than this many minutes, if * negative value specified, just include * all. * @return a qlist that the caller must delete after it * is used. */ virtual QList* getNodesAfterHash(const Hash& aHash, unsigned aMaxNodes, int aMaxInactivityMinutes = -1 ) ; /** * this is like updateNodeInDb but updates only the time * of last connect */ bool updateNodeLastConnectTimeInDb(Node& aNode) ; /** * method for updating last mutual connect time of * a node */ virtual bool updateNodeLastMutualConnectTimeInDb(const Hash& aNodeFp, quint32 aTime ) ; /** * We'll try to maintain the connections in hash-space in * ring-like structure where each node is connected to the * adjacent node, "adjacency" means that nodes whose hash-values * are closest to ours, are our adjacent nodes. For this purpose * have methods for retrieving list of nodes just before * us in the ring and later list of nodes just after us in the * ring. */ virtual QList* getNodesBeforeHash(const Hash& aHash, unsigned aMaxNodes) ; /** * method that picks up a connection that may be closed with * smallest amount of hassle.. * * method also works a bit conditionally, it may be that * if there is for instance a lot of connections from * same subnet with us, it will not close any connection.. */ virtual void closeOldestInactiveConnection() ; /** * Method that returns path of directory where datafiles * are kept */ QString dataDir() ; /** * method for adding node reference from broadcast. * this needs difference in handling because in IPv4 * network this typically contains private addr space * addresses that we don't want to permanently store nor * give to others as node-references. * * For making connections inside LANs of organisations * having NATs and firewalls and whatnot this might * still be a handy feature. */ virtual void addNodeFromBroadcast(const Hash& aNodeFingerPrint, const QHostAddress& aAddr, int aPort ) ; /** * method for adding a node to connection-wishlist. * network connector engine will then later pick them up. * nodemodel will take ownership of the node and delete * the object later. * @return true if connection was queued */ virtual bool addNodeToConnectionWishList(Node* aNode) ; /** * method for adding a node to connection-wishlist. * network connector engine will then later pick them up. * @return true if connection was queued */ virtual bool addNodeToConnectionWishList(const Hash& aNode) ; /** * method for getting one node from wishlist. * caller is obliged to delete the node returned. * @return node or null if there is nothing in wishlist */ virtual Node* nextConnectionWishListItem() ; /** * method for checking if a node is already connected. This * will try matching against hash and network addresses. */ virtual bool isNodeAlreadyConnected(const Node& aNode) const ; /** * Method for checking if a node is already connected. * This version checks only hash, not addresses. */ virtual bool isNodeAlreadyConnected(const Hash& aHash) const ; /** * Important method regarding churn here. This is called from * @ref Connection class and this method is used to determine * what content belongs to same bucket with the node that * is being served by that Connection. Content in the same bucket * with the node is then sent over to node ; to keep the content * alive in the network. * * Intent here is find bucket size where we have approximately * 20 live nodes in a bucket. If size of nodes alive in network * is less than 20, returned hash is same as the one given * in argument, methods using the value must then implement * something like "send all data". * * This is done so that we order the recently-seen nodes by hash * value of the node, then start from the fingerprint of the node * that is asking, and from that point we count to 20. The fingerprint * of the node at position 20 is the end of the bucket. The * fingerprint of the node that asks is the start. * * @param aFingerPrintOfNodeAsking fingerprint of node that wants to * have its bucket filled * @return Ending-address of the nodes bucket. */ virtual Hash bucketEndHash(const Hash& aFingerPrintOfNodeAsking) ; /** called from settings dialog */ virtual void setDnsName(QString aName) ; /** called from settings dialog and own node construction */ virtual QString getDnsName() ; /** used to offer node to list of recently failed connections. * this model maintains a list of such nodes and tries to * not immediately re-connect a recently failed node */ virtual void offerNodeToRecentlyFailedList(const Hash& aFailedNodeHash) ; protected: bool insertNodeToDb(Node& aNode) ; /** * method for updating existing node in db table * @param aNode is the node to update * @return true if success */ bool updateNodeInDb(Node& aNode) ; void retrieveListOfHotConnections() ; /** * for periodical stuff inside datamodel */ void timerEvent(QTimerEvent *event); private: bool openOrCreateSSLCertificate() ; /**< opens the node cert that is for network traffic */ bool saveSslCertToDb(const QByteArray& aCert) ; bool saveSslKeyToDb(const QByteArray& aKey) ; bool loadSslCertFromDb() ; bool loadSslKeyFromDb() ; void deleteOldestConnectedNode(); /**< prevent db table from overflowing */ void countNodes() ; /**< internal book-keeping */ Q_IPV6ADDR ipv6AddrFromUints(quint32 aLeastSignificant, quint32 aLessSignificant, quint32 aMoreSignificant, quint32 aMostSignificant ) const ; void removeNodeFromRecentlyFailedList(const Hash& aConnectedHostFingerPrint); signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: MController *iController ; Hash* iFingerPrintOfThisNode ; /**< set by method openOrCreateSSLCertificate */ QSslCertificate* iThisNodeCert ; /**< set by method openOrCreateSSLCertificate */ QSslKey* iThisNodeKey ; /**< set by method openOrCreateSSLCertificate */ QList iHotAddresses ; const Model& iModel ; QString iDataDir ; QList iConnectionWishList ; /** * this variable holds list of nodes that we've tried to * connect and failed. purpose of this is that we don't * immediately try again */ QList > iRecentlyFailedNodes ; int iTimerId ; /**< periodical timer */ } ; #endif classified-ads-0.09/datamodel/privmsg.cpp000066400000000000000000000146631260620453500204570ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "ca.h" #include "../util/hash.h" #include "../log.h" #include "../util/jsonwrapper.h" #include #include "../mcontroller.h" #include "model.h" #include "contentencryptionmodel.h" #include "privmsg.h" #include "../net/node.h" static const char *KPrivMsgJSonTimeElement = "timeOfPublish" ; static const char *KPrivMsgJSonAttachedFiles = "attachedPhiles" ; static const char *KPrivMsgJSonSenderName = "senderName" ; static const char *KPrivMsgJSonSubject = "subject" ; static const char *KPrivMsgJSonReplyToMsg = "replyToMsg" ; static const char *KPrivMsgJSonReplyToCa = "replyToCa" ; static const char *KPrivMsgJSonText = "text" ; static const char *KPrivMsgJSonProfileKey = "key" ; static const char *KPrivMsgJSonRecipient = "to" ; static const char *KPrivMsgJSonSenderNode = "senderNode" ; static const char *KPrivMsgJSonMsgVersion = "v" ; static const int KJSONMsgVersionValue ( 1 ) ; PrivMessage::PrivMessage() : iFingerPrint(KNullHash), iTimeOfPublish(0), iReplyToMsg(KNullHash), iReplyToCa(KNullHash), iNodeOfSender(NULL) { LOG_STR("PrivMessage::PrivMessage()") ; } PrivMessage::~PrivMessage() { LOG_STR("PrivMessage::~PrivMessage()") ; delete iNodeOfSender ; } QByteArray PrivMessage::asJSon(const MController& /*aController*/) const { // first have a map ; that is the top-level JSon-object QMap m ; if ( iAttachedFiles.size() > 0 ) { QVariantList listOfPhiles; LOG_STR2("iAttachedFiles has size %d", iAttachedFiles.size()) ; foreach( const Hash& phile, iAttachedFiles ) { listOfPhiles.append(phile.toString()) ; } if ( listOfPhiles.size() > 0 ) { m.insert(KPrivMsgJSonAttachedFiles, listOfPhiles) ; } } m.insert(KPrivMsgJSonMsgVersion, KJSONMsgVersionValue) ; if ( iSenderName.length() > 0 ) { m.insert(KPrivMsgJSonSenderName, iSenderName.toUtf8()) ; } if ( iRecipient != KNullHash ) { m.insert(KPrivMsgJSonRecipient, iRecipient.toString().toUtf8()) ; } if ( iSubject.length() > 0 ) { m.insert(KPrivMsgJSonSubject, iSubject.toUtf8()) ; } if ( iReplyToMsg != KNullHash ) { m.insert(KPrivMsgJSonReplyToMsg, iReplyToMsg.toString().toUtf8()) ; } if ( iReplyToCa != KNullHash ) { m.insert(KPrivMsgJSonReplyToCa, iReplyToCa.toString().toUtf8()) ; } if ( iMessageText.length() > 0 ) { m.insert(KPrivMsgJSonText, iMessageText.toUtf8()) ; } m.insert(KPrivMsgJSonTimeElement, iTimeOfPublish) ; if ( iNodeOfSender ) { m.insert(KPrivMsgJSonSenderNode, iNodeOfSender->asQVariant()) ; } if ( iProfileKey.length() > 0 ) { m.insert(KPrivMsgJSonProfileKey, iProfileKey) ; } QVariant j (m); // then put the map inside QVariant and that // may then be serialized in libqjson-0.7 and 0.8 QByteArray retval ( JSonWrapper::serialize(j) ) ; LOG_STR2("msg %s", qPrintable(QString(retval))) ; return retval ; } bool PrivMessage::fromJSon(const QByteArray &aJSonBytes, const MController& aController ) { bool ok; QVariantMap result ( JSonWrapper::parse (aJSonBytes, &ok) ) ; if (!ok) { return false ; } if ( result.contains(KPrivMsgJSonReplyToMsg) ) { iReplyToMsg.fromString((const unsigned char *)QString::fromUtf8(result[KPrivMsgJSonReplyToMsg].toByteArray()).toLatin1().constData()) ; } if ( result.contains(KPrivMsgJSonReplyToCa) ) { iReplyToCa.fromString((const unsigned char *)QString::fromUtf8(result[KPrivMsgJSonReplyToCa].toByteArray()).toLatin1().constData()) ; } if ( result.contains(KPrivMsgJSonRecipient) ) { iRecipient.fromString((const unsigned char *)QString::fromUtf8(result[KPrivMsgJSonRecipient].toByteArray()).toLatin1().constData()) ; } if ( result.contains( KPrivMsgJSonSenderNode ) ) { iNodeOfSender = Node::fromQVariant (result[KPrivMsgJSonSenderNode].toMap(),false) ; } if ( result.contains(KPrivMsgJSonAttachedFiles) ) { QVariantList listOfSharedPhiles (result[KPrivMsgJSonAttachedFiles].toList()) ; QListIterator i(listOfSharedPhiles); iAttachedFiles.clear() ; while (i.hasNext()) { Hash h ; h.fromString((const unsigned char*)(i.next().toString().toLatin1().constData())) ; iAttachedFiles.append(h); } } if ( result.contains(KPrivMsgJSonSenderName) ) { iSenderName = QString::fromUtf8(result[KPrivMsgJSonSenderName].toByteArray()) ; } else { iSenderName.clear() ; } if ( result.contains(KPrivMsgJSonTimeElement) ) { iTimeOfPublish = result[KPrivMsgJSonTimeElement].toUInt() ; } if ( result.contains(KPrivMsgJSonSubject) ) { iSubject = QString::fromUtf8(result[KPrivMsgJSonSubject].toByteArray()) ; } else { iSubject.clear() ; } if ( result.contains(KPrivMsgJSonText) ) { iMessageText = QString::fromUtf8(result[KPrivMsgJSonText].toByteArray()) ; } else { iMessageText.clear() ; } if ( result.contains(KPrivMsgJSonProfileKey) ) { iProfileKey.clear() ; iProfileKey.append(result[KPrivMsgJSonProfileKey].toByteArray()) ; // set sender hash from the key: iSenderHash = aController.model().contentEncryptionModel().hashOfPublicKey(iProfileKey) ; } return ok ; } QString PrivMessage::displayName() const { QString retval ; if ( iSubject.length() > 0 ) { retval = iSubject ; } else { retval = iFingerPrint.toString() ; } return retval ; } classified-ads-0.09/datamodel/privmsg.h000066400000000000000000000053161260620453500201170ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef PRIVATE_MESSAGE_H #define PRIVATE_MESSAGE_H #include #include "../util/hash.h" // for class Hash class MController ; class Profile ; class Node ; /** * @brief Carrier-class for private msg inside classified ads * * Instances of this class are stored and retrieved using * @ref PrivateMessageModel. */ class PrivMessage { public: PrivMessage() ; /**< constructor */ ~PrivMessage() ; /**< destructor */ /** * method for string that is shown to user about the message. * * @return string to display to user */ QString displayName() const ; QByteArray asJSon(const MController& aController) const ; /**< returns msg data as JSon stream */ bool fromJSon(const QByteArray &aJSonBytes, const MController& aController ) ; /**< parses json into members*/ /** hash of the message text .. more specifically hash * of the message when it is serialized into json */ Hash iFingerPrint ; QString iSenderName ; /**< nickname/display-name of sender ; may empty if private profile */ Hash iSenderHash ; /**< profile fingerprint of the sender */ quint32 iTimeOfPublish ; /**< seconds since 1-jan-1970 */ /** * file attachements ; they're published as normal binary blobs and * then just listed here */ QList iAttachedFiles ; QString iSubject ; /**< Subject of the post */ Hash iReplyToMsg ; /**< Possible reference to another private message that this is reply to */ Hash iReplyToCa ; /**< Possible reference to classified ad post that this is reply to */ QString iMessageText ; /**< actual message here */ QByteArray iProfileKey ; /**< key of the message sender */ Hash iRecipient ; /**< Hash of the profile that will receive the msg */ Node* iNodeOfSender ; /**< When sending a reply, send it here */ } ; #endif classified-ads-0.09/datamodel/privmsgmodel.cpp000066400000000000000000000647061260620453500215030ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "privmsgmodel.h" #include "../log.h" #include "../util/hash.h" #include "model.h" #include #include #include "privmsg.h" #include "contentencryptionmodel.h" #include "const.h" PrivMessageModel::PrivMessageModel(MController *aController, const MModelProtocolInterface &aModel) : ModelBase("private_message",KMaxRowsInTablePrivate_Message), iController(aController), iModel(aModel) { LOG_STR("PrivMessageModel::PrivMessageModel()") ; connect(this, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; } PrivMessageModel::~PrivMessageModel() { LOG_STR("PrivMessageModel::~PrivMessageModel()") ; iController = NULL ; // not owned, just set null } bool PrivMessageModel::publishPrivMessage(PrivMessage& aPrivMessage, const Hash& aDestinationNode) { LOG_STR("PrivMessageModel::publishPrivMessage()") ; Hash messageFingerPrint ; bool retval = false ; QByteArray messageJSon ( aPrivMessage.asJSon(*iController) ) ; QList keysToEncryptMessageTo ; keysToEncryptMessageTo << aPrivMessage.iRecipient ; keysToEncryptMessageTo << aPrivMessage.iSenderHash ; // so that sender can also read later for ( int i = 0 ; i < keysToEncryptMessageTo.size() ; i++ ) { QLOG_STR("keysToEncryptMessageTo["+QString::number(i)+"]="+keysToEncryptMessageTo[i].toString()) ; } QByteArray encryptedJson ; // practically this also means that before we can send a private // message to any profile, the profile key must somehow magically // be stored in db.. this should be the case in every situation? if ( iController->model().contentEncryptionModel().encrypt(keysToEncryptMessageTo, messageJSon, encryptedJson ) ) { messageJSon.clear() ; messageJSon.append(encryptedJson) ; encryptedJson.clear() ; // so ; now ; the message json is encrypted -> proceed by making signature // of that } else { return false ; // encryption failed ? } if ( messageJSon.length() > 0 ) { QByteArray digitalSignature ; messageFingerPrint.calculate(messageJSon) ; if ( iController->model().contentEncryptionModel().sign(aPrivMessage.iSenderHash, messageJSon, digitalSignature) == 0 ) { QSqlQuery query; retval = query.prepare ("insert into private_message(" "hash1,hash2,hash3,hash4,hash5," "dnode_hash1,dnode_hash2,dnode_hash3,dnode_hash4,dnode_hash5," "recipient_hash1,recipient_hash2,recipient_hash3,recipient_hash4,recipient_hash5," "time_last_reference,signature," "time_of_publish,messagedata," "sender_hash1,is_read) values (" ":hash1,:hash2,:hash3,:hash4,:hash5," ":dnode_hash1,:dnode_hash2,:dnode_hash3,:dnode_hash4,:dnode_hash5," ":recipient_hash1,:recipient_hash2,:recipient_hash3,:recipient_hash4,:recipient_hash5," ":time_last_reference,:signature," ":time_of_publish,:messagedata," ":sender_hash1,1)") ; if ( retval ) { query.bindValue(":hash1", messageFingerPrint.iHash160bits[0]); query.bindValue(":hash2", messageFingerPrint.iHash160bits[1]); query.bindValue(":hash3", messageFingerPrint.iHash160bits[2]); query.bindValue(":hash4", messageFingerPrint.iHash160bits[3]); query.bindValue(":hash5", messageFingerPrint.iHash160bits[4]); if ( aDestinationNode != KNullHash ) { query.bindValue(":dnode_hash1", aDestinationNode.iHash160bits[0]); query.bindValue(":dnode_hash2", aDestinationNode.iHash160bits[1]); query.bindValue(":dnode_hash3", aDestinationNode.iHash160bits[2]); query.bindValue(":dnode_hash4", aDestinationNode.iHash160bits[3]); query.bindValue(":dnode_hash5", aDestinationNode.iHash160bits[4]); } else { query.bindValue(":dnode_hash1", QVariant(QVariant::String)) ; //null query.bindValue(":dnode_hash2", QVariant(QVariant::String)) ; //value query.bindValue(":dnode_hash3", QVariant(QVariant::String)) ; query.bindValue(":dnode_hash4", QVariant(QVariant::String)) ; query.bindValue(":dnode_hash5", QVariant(QVariant::String)) ; } query.bindValue(":recipient_hash1", aPrivMessage.iRecipient.iHash160bits[0]); query.bindValue(":recipient_hash2", aPrivMessage.iRecipient.iHash160bits[1]); query.bindValue(":recipient_hash3", aPrivMessage.iRecipient.iHash160bits[2]); query.bindValue(":recipient_hash4", aPrivMessage.iRecipient.iHash160bits[3]); query.bindValue(":recipient_hash5", aPrivMessage.iRecipient.iHash160bits[4]); query.bindValue(":time_last_reference", aPrivMessage.iTimeOfPublish); query.bindValue(":messagedata", messageJSon); query.bindValue(":signature", digitalSignature); query.bindValue(":time_of_publish", aPrivMessage.iTimeOfPublish); query.bindValue(":sender_hash1", aPrivMessage.iSenderHash.iHash160bits[0]); retval = query.exec() ; } if ( !retval ) { LOG_STR2("Error while private message insert %s", qPrintable(query.lastError().text())) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { // here user is publishing as "brand new" so set bangpath to 0 QList emptyBangPath ; iController->model().addItemToBePublished(PrivateMessage, messageFingerPrint, emptyBangPath, aDestinationNode ) ; iCurrentDbTableRowCount++ ; } } } if ( retval ) { aPrivMessage.iFingerPrint = messageFingerPrint ; } return retval ; } PrivMessage* PrivMessageModel::messageByFingerPrint(const Hash& aFingerPrint) { LOG_STR("PrivMessageModel::messageByFingerPrint()") ; PrivMessage* retval = NULL ; QSqlQuery query; bool ret ; ret = query.prepare ("select messagedata,signature from private_message where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( ret ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); } ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) && !query.isNull(1) ) { QByteArray messageData ( query.value(0).toByteArray()) ; QByteArray signature ( query.value(1).toByteArray()) ; QByteArray plainTextPrivMessageData ; retval = new PrivMessage() ; if ( iController->model().contentEncryptionModel().decrypt(messageData, plainTextPrivMessageData ) ) { LOG_STR2("message: %s", qPrintable(QString(plainTextPrivMessageData))); ret = retval->fromJSon(plainTextPrivMessageData,*iController) ; } else { delete retval ; retval = NULL ; ret = false ; } if ( ret ) { // hmm hmm. public key of the sender is inside the message // itself. it is possible that we do not have the key in // advance so the verification process may need it. verification // still ensures message integrity but origin of the message // surely is now unknown. QByteArray key ; quint32 timeStampOfPossibleExistingProfile ( 0 ) ; if ( iController->model().contentEncryptionModel().PublicKey(retval->iSenderHash, key, &timeStampOfPossibleExistingProfile ) == false ) { // we did not have the key: store it iController->model().contentEncryptionModel().insertOrUpdatePublicKey(retval->iProfileKey,retval->iSenderHash) ; } if ( iController->model().contentEncryptionModel().verify(retval->iSenderHash, messageData, signature) == false ) { // bad signature ret = false ; delete retval ; retval = NULL ; } else { // good signature retval->iFingerPrint = aFingerPrint; } } } } return retval ; } bool PrivMessageModel::messageDataByFingerPrint(const Hash& aFingerPrint, QByteArray& aResultingPrivMessageData, QByteArray& aResultingSignature, Hash* aResultingDestinationNode, Hash* aResultingRecipient, quint32* aTimeOfPublish) { LOG_STR("PrivMessageModel::messageDataByFingerPrint()") ; bool retval = false ; QSqlQuery query; bool ret ; ret = query.prepare ("select messagedata,signature,time_of_publish,dnode_hash1,dnode_hash2,dnode_hash3,dnode_hash4,dnode_hash5,recipient_hash1,recipient_hash2,recipient_hash3,recipient_hash4,recipient_hash5 from private_message where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( ret ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); } ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) && !query.isNull(1) ) { aResultingPrivMessageData.clear() ; aResultingSignature.clear() ; aResultingPrivMessageData.append ( query.value(0).toByteArray()) ; aResultingSignature.append ( query.value(1).toByteArray()) ; if ( !query.isNull(2) && aTimeOfPublish != NULL ) { *aTimeOfPublish = query.value(2).toUInt() ; } if ( aResultingDestinationNode != NULL && !query.isNull(3) && !query.isNull(4) && !query.isNull(5) && !query.isNull(6) && !query.isNull(7) ) { aResultingDestinationNode->iHash160bits[0] = query.value(3).toUInt() ; aResultingDestinationNode->iHash160bits[1] = query.value(4).toUInt() ; aResultingDestinationNode->iHash160bits[2] = query.value(5).toUInt() ; aResultingDestinationNode->iHash160bits[3] = query.value(6).toUInt() ; aResultingDestinationNode->iHash160bits[4] = query.value(7).toUInt() ; } else { if ( aResultingDestinationNode ) { *aResultingDestinationNode = KNullHash ; } } if ( aResultingRecipient != NULL ) { // in db receiver hash is not null aResultingRecipient->iHash160bits[0] = query.value(8).toUInt() ; aResultingRecipient->iHash160bits[1] = query.value(9).toUInt() ; aResultingRecipient->iHash160bits[2] = query.value(10).toUInt() ; aResultingRecipient->iHash160bits[3] = query.value(11).toUInt() ; aResultingRecipient->iHash160bits[4] = query.value(12).toUInt() ; } retval = true ; } } return retval ; } bool PrivMessageModel::sentPrivMessageReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const Hash& aDestinationNode, const Hash& aRecipient, const quint32 aTimeStamp, const Hash& aFromNode ) { const QList dummy ; return doHandlepublishedOrSentPrivMessage(aFingerPrint, aContent, aSignature, dummy, aDestinationNode, aRecipient, aTimeStamp, false, aFromNode) ; } bool PrivMessageModel::publishedPrivMessageReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const Hash& aDestinationNode, const Hash& aRecipient, const quint32 aTimeStamp, const Hash& aFromNode ) { return doHandlepublishedOrSentPrivMessage(aFingerPrint, aContent, aSignature, aBangPath, aDestinationNode, aRecipient, aTimeStamp, true, aFromNode ) ; } bool PrivMessageModel::doHandlepublishedOrSentPrivMessage(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const Hash& aDestinationNode, const Hash& aRecipient, const quint32 aTimeStamp, bool aWasPublish, const Hash& aFromNode ) { bool retval = false ; QByteArray key ; bool flagThisNodeAlreadyHadContent ( false ) ; // messages do not change nor get re-published. either we have // it or do not. if we did not, save it. QSqlQuery query; bool ret ; ret = query.prepare ("select hash1 from private_message where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( ret ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); } ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) ) { flagThisNodeAlreadyHadContent = true ; retval = true ; // this is normal situation, report as success } } if ( ret && flagThisNodeAlreadyHadContent == false ) { // store the message QSqlQuery query2; retval = query2.prepare ("insert into private_message(" "hash1,hash2,hash3,hash4,hash5," "dnode_hash1,dnode_hash2,dnode_hash3,dnode_hash4,dnode_hash5," "recipient_hash1,recipient_hash2,recipient_hash3,recipient_hash4,recipient_hash5," "time_last_reference,signature," "time_of_publish,messagedata,recvd_from) values (" ":hash1,:hash2,:hash3,:hash4,:hash5," ":dnode_hash1,:dnode_hash2,:dnode_hash3,:dnode_hash4,:dnode_hash5," ":recipient_hash1,:recipient_hash2,:recipient_hash3,:recipient_hash4,:recipient_hash5," ":time_last_reference,:signature," ":time_of_publish,:messagedata,:recvd_from)") ; if ( retval ) { query2.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query2.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query2.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query2.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query2.bindValue(":hash5", aFingerPrint.iHash160bits[4]); query2.bindValue(":recvd_from", aFromNode.iHash160bits[4]); if ( aDestinationNode != KNullHash ) { query2.bindValue(":dnode_hash1", aDestinationNode.iHash160bits[0]); query2.bindValue(":dnode_hash2", aDestinationNode.iHash160bits[1]); query2.bindValue(":dnode_hash3", aDestinationNode.iHash160bits[2]); query2.bindValue(":dnode_hash4", aDestinationNode.iHash160bits[3]); query2.bindValue(":dnode_hash5", aDestinationNode.iHash160bits[4]); } else { query2.bindValue(":dnode_hash1", QVariant(QVariant::String)) ; //null query2.bindValue(":dnode_hash2", QVariant(QVariant::String)) ; //value query2.bindValue(":dnode_hash3", QVariant(QVariant::String)) ; query2.bindValue(":dnode_hash4", QVariant(QVariant::String)) ; query2.bindValue(":dnode_hash5", QVariant(QVariant::String)) ; } query2.bindValue(":recipient_hash1", aRecipient.iHash160bits[0]); query2.bindValue(":recipient_hash2", aRecipient.iHash160bits[1]); query2.bindValue(":recipient_hash3", aRecipient.iHash160bits[2]); query2.bindValue(":recipient_hash4", aRecipient.iHash160bits[3]); query2.bindValue(":recipient_hash5", aRecipient.iHash160bits[4]); query2.bindValue(":time_last_reference", QDateTime::currentDateTimeUtc().toTime_t()); query2.bindValue(":messagedata", aContent); query2.bindValue(":signature", aSignature); query2.bindValue(":time_of_publish", aTimeStamp); retval = query2.exec() ; } } // if we already had the content or not if ( retval && ( flagThisNodeAlreadyHadContent == false ) ) { emit contentReceived(aFingerPrint, aRecipient, PrivateMessage) ; iCurrentDbTableRowCount++ ; } if ( aWasPublish ) { if ( retval && (flagThisNodeAlreadyHadContent == false) ) { iController->model().addItemToBePublished(PrivateMessage, aFingerPrint, aBangPath, aDestinationNode ) ; } } LOG_STR2("PrivMessageModel::published/sentPrivMessageReceived out success = %d", (int)retval) ; return retval ; } void PrivMessageModel::fillBucket(QList& aSendQueue, const Hash& aStartOfBucket, const Hash& aEndOfBucket, quint32 aLastMutualConnectTime, const Hash& aForNode ) { QSqlQuery query; bool ret ; // note how the private messages are placed into buckets // based on recipient hash, not by hash of the content // (like almost all other content) ret = query.prepare ("select hash1,hash2,hash3,hash4,hash5,time_of_publish from private_message where ( recipient_hash1 >= :start and recipient_hash1 <= :end and time_of_publish > :last_connect_time and time_of_publish < :curr_time and ( recvd_from != :lowbits_of_requester or recvd_from is null ) ) or ( dnode_hash1=:dnode_hash1 and dnode_hash2=:dnode_hash2 and dnode_hash3=:dnode_hash3 and dnode_hash4=:dnode_hash4 and dnode_hash5=:dnode_hash5 and time_of_publish > :last_connect_time2 and time_of_publish < :curr_time2 ) order by time_of_publish desc limit 1000" ) ; if ( ret ) { if ( aStartOfBucket == aEndOfBucket ) { // this was "small network situation" e.g. start and end // are the same ; in practice it means that send all data query.bindValue(":start", 0x0); query.bindValue(":end", 0xFFFFFFFF); } else { // normal situation query.bindValue(":start", aStartOfBucket.iHash160bits[0]); query.bindValue(":end", aEndOfBucket.iHash160bits[0]); } query.bindValue(":last_connect_time", aLastMutualConnectTime); query.bindValue(":last_connect_time2", aLastMutualConnectTime); query.bindValue(":lowbits_of_requester", aForNode.iHash160bits[4]); query.bindValue(":curr_time", QDateTime::currentDateTimeUtc().toTime_t()); query.bindValue(":curr_time2", QDateTime::currentDateTimeUtc().toTime_t()); query.bindValue(":dnode_hash1", aForNode.iHash160bits[0]); query.bindValue(":dnode_hash2", aForNode.iHash160bits[1]); query.bindValue(":dnode_hash3", aForNode.iHash160bits[2]); query.bindValue(":dnode_hash4", aForNode.iHash160bits[3]); query.bindValue(":dnode_hash5", aForNode.iHash160bits[4]); } ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)); emit error(MController::DbTransactionError, query.lastError().text()) ; } else { while ( query.next() ) { Hash hashFoundFromDb ( query.value(0).toUInt(), query.value(1).toUInt(), query.value(2).toUInt(), query.value(3).toUInt(), query.value(4).toUInt()) ; SendQueueItem privMsgToSend ; privMsgToSend.iHash = hashFoundFromDb ; privMsgToSend.iItemType = PrivateMessage ; time_t timePublish(query.value(5).toUInt()) ; time_t timeMutual(aLastMutualConnectTime); aSendQueue.append(privMsgToSend) ; char formatted_mutual [100] = {0} ; char formatted_found [100] = {0} ; #ifndef WIN32 ctime_r(&timePublish,&formatted_found[0] ) ; ctime_r(&timeMutual,&formatted_mutual[0] ) ; LOG_STR2("PrivMessage bucket mutual %s", formatted_mutual) ; LOG_STR2("PrivMessage bucket found %s", formatted_found) ; #endif } } } QList PrivMessageModel::messagesForProfile(const Hash& aProfileHash, const quint32 aLastMutualConnectTime) { QList retval ; QSqlQuery query; bool ret ; // note how the private messages are placed into buckets // based on recipient hash, not by hash of the content // (like almost all other content) ret = query.prepare ("select hash1,hash2,hash3,hash4,hash5 from private_message where recipient_hash1 = :h1 and recipient_hash2 = :h2 and recipient_hash3 = :h3 and recipient_hash4 = :h4 and recipient_hash5 = :h5 and time_of_publish > :time_of_publish" ) ; if ( ret ) { query.bindValue(":h1", aProfileHash.iHash160bits[0]); query.bindValue(":h2", aProfileHash.iHash160bits[1]); query.bindValue(":h3", aProfileHash.iHash160bits[2]); query.bindValue(":h4", aProfileHash.iHash160bits[3]); query.bindValue(":h5", aProfileHash.iHash160bits[4]); query.bindValue(":time_of_publish", aLastMutualConnectTime); ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { while ( query.next() ) { Hash hashFoundFromDb ( query.value(0).toUInt(), query.value(1).toUInt(), query.value(2).toUInt(), query.value(3).toUInt(), query.value(4).toUInt()) ; retval.append(hashFoundFromDb) ; } } } else { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } QLOG_STR("Returning list of private message len = " + QString::number(retval.size()) + " for profile " + aProfileHash.toString() + " since timestamp " + QString::number(aLastMutualConnectTime)) ; return retval ; } void PrivMessageModel::setAsRead(const Hash& aMessageHash, bool aIsRead ) { bool retval (false) ; QSqlQuery query; retval = query.prepare ("update private_message set is_read = :is_read, time_last_reference=:time_last_reference where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( retval ) { query.bindValue(":hash1", aMessageHash.iHash160bits[0]); query.bindValue(":hash2", aMessageHash.iHash160bits[1]); query.bindValue(":hash3", aMessageHash.iHash160bits[2]); query.bindValue(":hash4", aMessageHash.iHash160bits[3]); query.bindValue(":hash5", aMessageHash.iHash160bits[4]); query.bindValue(":is_read", ( aIsRead == true ? 1 : 0 ) ); query.bindValue(":time_last_reference", QDateTime::currentDateTimeUtc().toTime_t()); retval = query.exec() ; } if ( !retval ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } } classified-ads-0.09/datamodel/privmsgmodel.h000066400000000000000000000266341260620453500211460ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CLASSIFIED_PRIVMSGMODEL_H #define CLASSIFIED_PRIVMSGMODEL_H #include #include "../mcontroller.h" // because enum from there is needed #include "../net/protocol.h" // for SendQueueItem #include "datamodelbase.h" class Hash ; class MModelProtocolInterface ; class PrivMessage ; /** * @brief This is is part of datamodel for storing private messages * * Encryption keys related to messages need to be done using * ContentEncryptionModel but after it has done its job, * this part of datamodel handles that actual message-content. * * Private messages are handled differently in (at least) one * way worth mentioning: when other published content is * sent over network, the content is accompanied by public key * used to sign the content. Private messages have the public * key of the content inside the content and the content * is encrypted. This means 2 things: * - only the recipient knows who sent * - only the recipient can verify integrity of the data * so, while storing messages here, we do not try to verify. * When user opens a message, it is first de-crypted and * key obtained from inside, then verification takes place. */ class PrivMessageModel : public ModelBase { Q_OBJECT public: PrivMessageModel(MController *aMController, const MModelProtocolInterface &aModel) ; ~PrivMessageModel() ; /** * sends private message to selected nodes in network for others * to retrieve. as a side-effect will update aPrivMessage.iFingerPrint, * supposing the publish is successful. * * @param aPrivMessage is the message to publish. Messages are * "sent" so that they're published into * network. Recipient then may poll them. * Networking logick will try to short-cut * this if correct node seems to be already * connected but in principle messages are * sent by process of publish. * @param aDestinationNode if node of the recipient is known, * it may be given here. * @return true if things went all right */ bool publishPrivMessage(PrivMessage& aPrivMessage, const Hash& aDestinationNode = KNullHash ) ; /** * gets a message. caller is supposed to delete the returned * profile. * @param aFingerPrint messaqe serial number * @return message or NULL */ PrivMessage* messageByFingerPrint(const Hash& aFingerPrint) ; /** * Gets a message. Because message is signed .. and that means that * a particular byte-stream (containing actually a serialized json * object) gets signed those bytes can't be altered or signature will * not verify. This methods gets the actual signed bytestream * that has been checked against a public key. * * Note that this method does not check the signature any more, * idea is that we don't store into db messages that fail the signature * check so this method only gets the message, does not set it. * * @param aFingerPrint message serial number * @param aResultingPrivMessageData will contain message data * @param aResultingSignature will contain message signature * @param aResultingDestinationNode output parameter will get its value * set to fingerprint of the node where * the message is supposed to go. * May come out as KNullHash if the * node is not known. * @param aResultingRecipient output parameter will get its value * set to fingerprint of the profile that * is supposed to read the msg * @param aTimeOfPublish is output variable, if non-NULL, will * get its value set to time of publish of the message * @return true if message was found */ bool messageDataByFingerPrint(const Hash& aFingerPrint, QByteArray& aResultingPrivMessageData, QByteArray& aResultingSignature, Hash* aResultingDestinationNode, Hash* aResultingRecipient, quint32* aTimeOfPublish = NULL) ; /** * called by protocol parser when a message is received * @param aFingerPrint is the message @ref Hash received from protocol header * @param aContent is actual message data * @param aSignature is digital signature of the aContent * @param aBangPath is list of last nodes where this content has been, idea is to * prevent re-sending content to somewhere where it has already * been * @param aDestinationNode node where the message should be * delivered to ; may be nullhash * @param aRecipient recipient profile hash * @param aTimeStamp timestamp of message (if encrypted, it must be carried outside..) * @param aFromNode hash of node sending the message to us * @return true on success */ bool publishedPrivMessageReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const Hash& aDestinationNode, const Hash& aRecipient, const quint32 aTimeStamp, const Hash& aFromNode) ; /** * called by protocol parser when a private message is received by "send" protocol type * @param aFingerPrint is the message @ref Hash received from protocol header * @param aContent is actual message data * @param aSignature is digital signature of the aContent * @param aDestinationNode node where the message should be * delivered to ; may be nullhash * @param aRecipient recipient profile hash * @param aFlag possible flags telling about encyption and compression * @param aTimeStamp timestamp of message (if encrypted, it must be carried outside..) * @return true on success */ bool sentPrivMessageReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const Hash& aDestinationNode, const Hash& aRecipient, const quint32 aTimeStamp, const Hash& fromNode ) ; /** * Method for filling connected peers send queue with items * that we have and that belong to said peers bucket. * * Note that for private messages the bucket is kind of * 2-way process. This method checks for private messages * that are destined for this particular (connecting) * node. In addition this method checks for messages * where the destination profile belongs to bucket defined * by aStartOfBucket/aEndOfBucket. In addition to these * mechanisms this is also exploited by 3rd logick * (possibly to be implemented in networkconnectorengine) * that every-now-and-then creates connections to nodes * that (according to hash) are supposed to contain * private messages destined to profiles whose private keys * we have in storage. * * @param aSendQueue is send-queue of the connection that * serves particular node * @param aStartOfBucket is hash where bucket of that peer * starts. In practice it is the hash * of the node itself. * @param aEndOfBucket is hash where bucket of that peer ends. * That in turn depends on network size, * or number of active nodes in the network. * See method @ref NodeModel::bucketEndHash * for details. * @param aLastMutualConnectTime time when node was last in * contact. In practice we'll fill the * bucket items published after this time. */ void fillBucket(QList& aSendQueue, const Hash& aStartOfBucket, const Hash& aEndOfBucket, quint32 aLastMutualConnectTime, const Hash& aForNode ); /** * method for getting list of messages destined for given * operator that has been posted after the given date. * This is called upon network protocol message * KPrivMessagesForProfile. * * @param aProfileHash operator profile fingerprint whose messages are * requested. * @param aLastMutualConnectTime messages that are sent afer aLastMutualConnectTime * will be returned. * @return list of message fingerprints */ QList messagesForProfile(const Hash& aProfileHash, const quint32 aLastMutualConnectTime) ; /** method for marking private message as read */ void setAsRead(const Hash& aMessageHash, bool aIsRead ) ; private: // methods /** * Workhorse of methods @ref publishedPrivMessageReceived and * @ref sentPrivMessageReceived * @return true on success */ bool doHandlepublishedOrSentPrivMessage(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const Hash& aDestinationNode, const Hash& aRecipient, const quint32 aTimeStamp, bool aWasPublish, const Hash& aFromNode ) ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; /** emitted when new message is received */ void contentReceived(const Hash& aHashOfContent, const Hash& aHashOfRecipientProfile, const ProtocolItemType aTypeOfReceivdContent) ; private: // member variables: MController *iController ; const MModelProtocolInterface& iModel ; } ; #endif classified-ads-0.09/datamodel/privmsgsearchmodel.cpp000066400000000000000000000370511260620453500226620ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include #include "privmsgsearchmodel.h" #include "trusttreemodel.h" #include "../log.h" #include "../mcontroller.h" #include "model.h" #include "privmsgmodel.h" #include "privmsg.h" PrivateMessageSearchModel::PrivateMessageSearchModel(Model& aModel, MController& aController ) : iModel(aModel), iController(aController), iLeftIcon(":/ui/ui/leftarrow.png") , iRightIcon(":/ui/ui/rightarrow.png") { } PrivateMessageSearchModel::~PrivateMessageSearchModel() { LOG_STR("PrivateMessageSearchModel::~PrivateMessageSearchModel") ; } int PrivateMessageSearchModel::rowCount(const QModelIndex& ) const { return iPrivateMessages.size(); } int PrivateMessageSearchModel::columnCount(const QModelIndex& ) const { return 4 ; // what are the columns? Direction, Peer, time, subject? } QVariant PrivateMessageSearchModel::data(const QModelIndex &index, int role) const { if(!index.isValid()) return QVariant(); if ( role == Qt::UserRole ) { return iPrivateMessages.at(index.row()).iMessageHash.toQVariant() ; } if ( role == Qt::FontRole ) { QFont font; if ( iPrivateMessages.at(index.row()).iIsRead == false ) { font.setBold(true); font.setItalic(true); } return font; } switch ( index.column() ) { case 0: // direction, show icon if(role == Qt::DecorationRole) { if ( iController.profileInUse() == iPrivateMessages.at(index.row()).iRecipientHash ) { return QVariant(iLeftIcon); // here return image telling direction of message: to me } else { return QVariant(iRightIcon); // here return image telling direction of message: from me } } else { return QVariant(); } break ; case 1: // peer, either name or hash if(role == Qt::DisplayRole) { if ( iController.profileInUse() == iPrivateMessages.at(index.row()).iRecipientHash ) { // to me, from recipient, so recipient is peer if ( iPrivateMessages.at(index.row()).iSenderName.length() > 0 ) { return iPrivateMessages.at(index.row()).iSenderName ; } else { return iPrivateMessages.at(index.row()).iSenderHash.toString() ; } } else { // from me, so destination hash is peer if ( iPrivateMessages.at(index.row()).iSenderName.length() > 0 ) { return iPrivateMessages.at(index.row()).iSenderName ; } else { return iController.displayableNameForProfile(iPrivateMessages.at(index.row()).iRecipientHash) ; } } } else if(role == Qt::DecorationRole) { // here return QIcon of size 26x26 featuring lenin reading pravda? return QVariant(); } else if(role == Qt::ToolTipRole) { Hash peerHash ( iController.profileInUse() == iPrivateMessages.at(index.row()).iRecipientHash ? iPrivateMessages.at(index.row()).iSenderHash : iPrivateMessages.at(index.row()).iRecipientHash ) ; if ( iPrivateMessages.at(index.row()).iTrustingProfileName.length() > 0 ) { return QString(tr("%1\nTrusted by %2")).arg(peerHash.toString()).arg(iPrivateMessages.at(index.row()).iTrustingProfileName) ; } else { return peerHash.toString() ; } } else if ( role == Qt::ForegroundRole ) { Hash peerHash ( iController.profileInUse() == iPrivateMessages.at(index.row()).iRecipientHash ? iPrivateMessages.at(index.row()).iSenderHash : iPrivateMessages.at(index.row()).iRecipientHash ) ; if ( iPrivateMessages.at(index.row()).iTrustingProfileName.length() > 0 || iController.isContactInContactList(peerHash ) ) { return QColor(Qt::blue); // color blue if sender is in contacts or trusted } else { return QVariant() ; } } else { return QVariant() ; } break ; case 2: { // message time if(role == Qt::DisplayRole) { QDateTime d ; d.setTime_t(iPrivateMessages.at(index.row()).iMessageTimeStamp) ; return d.toString(Qt::SystemLocaleShortDate) ; } else { return QVariant(); } } break ; case 3: if(role == Qt::DisplayRole) { return iPrivateMessages.at(index.row()).iMessageSubject ; } else { return QVariant(); } break ; default: return QVariant(); // for unknown columns return empty } return QVariant(); } void PrivateMessageSearchModel::setSearchHash(const Hash& aSearch) { emit beginResetModel (); iSearchHash = aSearch ; // ok .. what next. .. don't search with empty if ( iSearchHash == KNullHash ) { iPrivateMessages.clear() ; } else { performSearch() ; } emit endResetModel () ; if ( iPrivateMessages.size() ) { QTimer::singleShot(0, this, SLOT(doUpdateDataOnIdle())); } } void PrivateMessageSearchModel::performSearch() { QSqlQuery query; bool ret ; iPrivateMessages.clear() ; ret = query.prepare ("select hash1,hash2,hash3,hash4,hash5,recipient_hash1,recipient_hash2,recipient_hash3,recipient_hash4,recipient_hash5,time_of_publish,sender_hash1,is_read from private_message where ( recipient_hash1 = :hash1 and recipient_hash2 = :hash2 and recipient_hash3 = :hash3 and recipient_hash4 = :hash4 and recipient_hash5 = :hash5) or sender_hash1 = :sender_hash1 order by time_of_publish" ) ; if ( ret ) { query.bindValue(":hash1", iSearchHash.iHash160bits[0]); // destined to me query.bindValue(":hash2", iSearchHash.iHash160bits[1]); query.bindValue(":hash3", iSearchHash.iHash160bits[2]); query.bindValue(":hash4", iSearchHash.iHash160bits[3]); query.bindValue(":hash5", iSearchHash.iHash160bits[4]); query.bindValue(":sender_hash1", iSearchHash.iHash160bits[0]); // or sent by me } if ( ret && query.exec() ) { while ( query.next() ) { PrivateMessageListItem item ; item.iMessageHash = Hash(query.value(0).toUInt(), query.value(1).toUInt(), query.value(2).toUInt(), query.value(3).toUInt(), query.value(4).toUInt()) ; if ( !query.isNull(5) ) { item.iRecipientHash = Hash(query.value(5).toUInt(), query.value(6).toUInt(), query.value(7).toUInt(), query.value(8).toUInt(), query.value(9).toUInt()) ; } item.iMessageTimeStamp = query.value(10).toUInt() ; if ( !query.isNull(11) && query.value(11).toUInt() == iController.profileInUse().iHash160bits[0] ) { // was sent by me, yes item.iSenderHash = iController.profileInUse() ; QString trustingProfileName ; Hash trustingProfileHash ; if ( iController.model().trustTreeModel()->isProfileTrusted(item.iRecipientHash, &trustingProfileName, &trustingProfileHash) ) { if ( trustingProfileName.length() > 0 ) { item.iTrustingProfileName = trustingProfileName ; } else { item.iTrustingProfileName = trustingProfileHash.toString() ; } } } else { // was destined to me, cant't check for trust yet } if ( !query.isNull(12) && query.value(12).toInt() > 0 ) { item.iIsRead = true ; } else { item.iIsRead = false ; } item.iMessageSubject = "-" ; iPrivateMessages.append(item) ; LOG_STR2("Appended into model a private message with ts = %u", (unsigned)(item.iMessageTimeStamp)) ; } } else { emit error(MController::DbTransactionError, query.lastError().text()) ; } } QVariant PrivateMessageSearchModel::headerData ( int section, Qt::Orientation orientation, int role ) const { if (orientation != Qt::Horizontal ) { return QVariant(); } switch ( role ) { case Qt::ToolTipRole: switch ( section ) { case 0: return tr("Direction of message, sent/received") ; break; default: return QVariant(); break ; } break ; case Qt::DisplayRole: switch ( section ) { case 0: return tr("Dir") ; break; case 1: return tr("Peer") ; break ; case 2: return tr("Time") ; break ; case 3: return tr("Subject") ; break ; default: return QVariant(); } break ; case Qt::SizeHintRole: switch ( section ) { case 0: return QSize(30,25) ; break; case 1: return QSize(100,25) ; break ; case 2: return QSize(150,25) ; break ; case 3: return QSize(150,25) ; break ; default: return QVariant(); } break ; default: return QVariant(); break ; } } bool PrivateMessageSearchModel::updateSenderAndSubjectOfMsg(PrivateMessageListItem& aItem) { PrivMessage* msg ( iModel.privateMessageModel().messageByFingerPrint(aItem.iMessageHash)); if ( msg ) { aItem.iSenderName = msg->iSenderName ; aItem.iSenderHash = msg->iSenderHash ; aItem.iMessageSubject = msg->iSubject ; aItem.iMessageTimeStamp = msg->iTimeOfPublish ; QString trustingProfileName ; Hash trustingProfileHash ; if ( iController.model().trustTreeModel()->isProfileTrusted( aItem.iSenderHash == iController.profileInUse() ? aItem.iRecipientHash : aItem.iSenderHash , &trustingProfileName, &trustingProfileHash)) { if ( trustingProfileName.length() > 0 ) { aItem.iTrustingProfileName = trustingProfileName ; } else { aItem.iTrustingProfileName = trustingProfileHash.toString() ; } } else { aItem.iTrustingProfileName = QString() ; } delete msg ; return true ; } else { // we have got a message but could not open it via datamodel // so the message is somehow faulty. return false ; } } void PrivateMessageSearchModel::doUpdateDataOnIdle() { LOG_STR("PrivateMessageSearchModel::doUpdateDataOnIdle") ; int indexUpdated(-1) ; bool updateSuccess ( false ) ; iModel.lock() ; for ( int i ( 0 ) ; i < iPrivateMessages.size() ; i++ ) { if ( iPrivateMessages.at(i).iSenderHash == KNullHash ) { indexUpdated = i ; PrivateMessageListItem& item ( iPrivateMessages[i] ) ; updateSuccess = updateSenderAndSubjectOfMsg(item) ; break ; // out of loop, e.g. do only one } } iModel.unlock() ; if ( indexUpdated > -1 ) { if ( updateSuccess ) { // so, if we updated something, give UI a clue emit dataChanged(createIndex(indexUpdated,0), createIndex(indexUpdated,3) ) ; // and re-schedule self to check if there is more // messages to handle } else { // update was not success, lets remove the message beginRemoveRows(QModelIndex(), indexUpdated,indexUpdated); iModel.lock() ; iPrivateMessages.removeAt(indexUpdated) ; iModel.unlock() ; endRemoveRows() ; } QTimer::singleShot(0, this, SLOT(doUpdateDataOnIdle())); } } void PrivateMessageSearchModel::setAsRead(const Hash& aMessage, bool aIsRead) { for ( int i ( 0 ) ; i < iPrivateMessages.size() ; i++ ) { if ( iPrivateMessages.at(i).iMessageHash == aMessage ) { PrivateMessageListItem item = iPrivateMessages.at(i) ; item.iIsRead = aIsRead ; iPrivateMessages.replace(i, item) ; break ; } } } void PrivateMessageSearchModel::newMsgReceived(const Hash& aMessage,const Hash& aRecipient) { bool wasAlreadyContained ( false ) ; if ( aRecipient == iController.profileInUse() ) { // was for me iModel.lock() ; for ( int i ( 0 ) ; i < iPrivateMessages.size() ; i++ ) { if ( iPrivateMessages.at(i).iMessageHash == aMessage ) { wasAlreadyContained = true ; break ; // out of loop, e.g. do only one } } iModel.unlock() ; if ( !wasAlreadyContained ) { beginInsertRows(QModelIndex(),iPrivateMessages.size(),iPrivateMessages.size()) ; iModel.lock() ; PrivateMessageListItem item ; item.iIsRead = false ; item.iMessageTimeStamp = QDateTime::currentDateTimeUtc().toTime_t() ; item.iMessageHash = aMessage ; item.iRecipientHash = aRecipient ; item.iMessageSubject = " " ; iPrivateMessages.append(item) ; iModel.unlock() ; endInsertRows() ; QTimer::singleShot(0, this, SLOT(doUpdateDataOnIdle())); } } } void PrivateMessageSearchModel::newMsgReceived(const PrivMessage& aMessage) { beginInsertRows(QModelIndex(),iPrivateMessages.size(),iPrivateMessages.size()) ; PrivateMessageListItem item ; item.iIsRead = true ; item.iSenderName = aMessage.iSenderName ; item.iRecipientHash = aMessage.iRecipient ; item.iSenderHash = aMessage.iSenderHash ; item.iMessageSubject = aMessage.iSubject ; item.iMessageTimeStamp = aMessage.iTimeOfPublish ; item.iMessageHash = aMessage.iFingerPrint ; iPrivateMessages.append(item) ; QLOG_STR("PrivateMessageSearchModel::newMsgReceived iSenderName = " + item.iSenderName) ; QLOG_STR("PrivateMessageSearchModel::newMsgReceived iRecipientHash = " + item.iRecipientHash.toString()) ; QLOG_STR("PrivateMessageSearchModel::newMsgReceived iSenderHash = " + item.iSenderHash.toString()) ; endInsertRows() ; } classified-ads-0.09/datamodel/privmsgsearchmodel.h000066400000000000000000000077141260620453500223320ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef PRIVMSGSEARCHMODEL_H #define PRIVMSGSEARCHMODEL_H #include #include "../util/hash.h" #include "../mcontroller.h" #include class Model ; class PrivMessage ; /** * @brief Model-class for performing search on private messages. * This is supposed to act as an underlying data-container for * an user-interface view (QListView etc.) */ class PrivateMessageSearchModel: public QAbstractTableModel { Q_OBJECT public: // types: struct PrivateMessageListItem { Hash iMessageHash ; Hash iRecipientHash ; Hash iSenderHash ; quint32 iMessageTimeStamp ; QString iMessageSubject ; QString iSenderName ; bool iIsRead ; QString iTrustingProfileName ; } ; public: PrivateMessageSearchModel(Model& aModel,MController& aController) ; ~PrivateMessageSearchModel() ; /** * Calling this method will populate the model with * messages that are either sent by profile given in * parameter, or destined to given profile. * @param aSearch profile fingerprint whose messages are * the item of interest * @return no thing, always succeeds */ void setSearchHash(const Hash& aSearch) ; /** * re-implemented from QAbstractTableModel * @return number of rows in list */ virtual int rowCount(const QModelIndex & parent = QModelIndex()) const ; /** * re-implemented from QAbstractTableModel * @return number of columns in view */ virtual int columnCount(const QModelIndex & parent = QModelIndex()) const ; /** * re-implemented from QAbstractListModel * @return data to display in list */ virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const ; virtual QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const ; void setAsRead(const Hash& aMessage, bool aIsRead) ; /** * notification method called when new private message * is inserted into database */ void newMsgReceived(const Hash& aMessage,const Hash& aRecipient) ; /** * notification method called when new private message * is inserted into database , this variant is called * from UI */ void newMsgReceived(const PrivMessage& aMessage) ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; public slots: /** * method called via QTimer::singleShot() that is used for * filling missing parts (message subjects etc.) from data that * model is listing */ void doUpdateDataOnIdle() ; private:// methods void performSearch() ; /** * Updates single private message from database, e.g. tries * to open encryption and everything * @return true on success */ bool updateSenderAndSubjectOfMsg(PrivateMessageListItem& aItem) ; private: // data Model& iModel ; MController& iController ; QList iPrivateMessages ; Hash iSearchHash ; QIcon iLeftIcon; QIcon iRightIcon; } ; #endif classified-ads-0.09/datamodel/profile.cpp000066400000000000000000000312241260620453500204200ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "profile.h" #include "../util/hash.h" #include "../log.h" #include "../util/jsonwrapper.h" #include #include #include "../mcontroller.h" #include "model.h" #include "contentencryptionmodel.h" static const char *KJSonNickNameElement = "nickName" ; static const char *KJSonFPElement = "fingerPrint" ; static const char *KJSonTimeElement = "timeOfPublish" ; static const char *KJSonProfileVersion = "profileVersion" ; static const char *KJSonNodeRef = "nodeRef" ; static const char *KJSonEncyptionKey = "key" ; static const char *KJSonIsProfilePrivateKey = "isPrivate" ; static const char *KJSonStateOfTheWorld = "stateOfTheWorld" ; static const char *KJSonListOfProfileReaders = "readers" ; static const char *KJSonProfilePic = "image" ; static const char *KJSonSharedFiles = "sharedPhiles" ; static const char *KJSonGreetingText = "greeting" ; static const char *KJSonFirstName = "given" ; static const char *KJSonFamilyName = "family" ; static const char *KJSonCityCountry = "city" ; static const char *KJSonBTCAddress = "btcaddr" ; static const char *KJSonTrustList = "trustlist" ; static const int KJSONProfileVersionValue = 1 ; /**< if our format should change? */ Profile::Profile(const Hash& aHash) : iFingerPrint(aHash), iIsPrivate(false), // initially all profiles are public ; right? iTimeOfPublish(0), iNodeOfProfile(NULL) { } Profile::~Profile() { if ( iNodeOfProfile ) { delete iNodeOfProfile ; } } QByteArray Profile::asJSon(const MController& aController) const { // may then be serialized in libqjson-0.7 and 0.8 QByteArray retval ( JSonWrapper::serialize(asQVariant(aController)) ) ; LOG_STR2("profile %s", qPrintable(QString(retval))) ; return retval ; } QVariant Profile::asQVariant(const MController& aController) const { // first have a map ; that is the top-level JSon-object QMap m ; m.insert(KJSonFPElement, iFingerPrint.toString()) ; // no non-ascii chars if ( iNickName.length() > 0 ) { m.insert(KJSonNickNameElement, iNickName.toUtf8()) ; } if ( iStateOfTheWorld.length() > 0 ) { m.insert(KJSonStateOfTheWorld, iStateOfTheWorld.toUtf8()) ; } if ( iGreetingText.length() > 0 ) { m.insert(KJSonGreetingText , iGreetingText.toUtf8()) ; } if ( iFirstName.length() > 0 ) { m.insert(KJSonFirstName, iFirstName.toUtf8()) ; } if ( iFamilyName.length() > 0 ) { m.insert(KJSonFamilyName, iFamilyName.toUtf8()) ; } if ( iCityCountry.length() > 0 ) { m.insert(KJSonCityCountry, iCityCountry.toUtf8()) ; } if ( iBTCAddress.length() > 0 ) { m.insert(KJSonBTCAddress, iBTCAddress.toUtf8()) ; } m.insert(KJSonTimeElement, iTimeOfPublish) ; m.insert(KJSonProfileVersion, KJSONProfileVersionValue) ; m.insert(KJSonNodeRef, aController.getNode().asQVariant()) ; QByteArray encryptionKey ; if(aController.model().contentEncryptionModel().PublicKey(iFingerPrint, encryptionKey)) { m.insert(KJSonEncyptionKey, encryptionKey) ; } m.insert( KJSonIsProfilePrivateKey, iIsPrivate) ; if ( iSharedFiles.size() > 0 ) { QVariantList listOfSharedPhiles ; foreach( const Hash& phile, iSharedFiles ) { QVariant v ; v.setValue(phile.toString()) ; listOfSharedPhiles.append(v) ; } LOG_STR2("Number of files in profile serialization %d", listOfSharedPhiles.size()) ; m.insert(KJSonSharedFiles, listOfSharedPhiles) ; } else { LOG_STR("No shared files in profile serialization") ; } if ( iTrustList.size() > 0 ) { QVariantList trustList ; foreach( const Hash& trustedProfile, iTrustList ) { QVariant v ; v.setValue(trustedProfile.toString()) ; trustList.append(v) ; } m.insert(KJSonTrustList, trustList) ; } if ( iIsPrivate && iProfileReaders.size() > 0 ) { // insert the readers so replies always get encrypted to // every operator in the list QVariantList listOfEncryptionKeys; LOG_STR2("iProfileReaders has size %d", iProfileReaders.size()) ; foreach( const Hash& reader, iProfileReaders ) { if ( reader != iFingerPrint ) { // self is reader LOG_STR2("adding reader %s", qPrintable(reader.toString())) ; encryptionKey.clear() ; // but has separate placeholder for key if(aController.model().contentEncryptionModel().PublicKey(reader, encryptionKey)) { listOfEncryptionKeys.append(QString(encryptionKey)) ; } else { LOG_STR2("reader pubkey was not found %s", qPrintable(reader.toString())) ; } } else { LOG_STR("not adding self to readers") ; } } if ( listOfEncryptionKeys.size() > 0 ) { m.insert(KJSonListOfProfileReaders, listOfEncryptionKeys) ; } } // ok, profile picture. if ( ! iProfilePicture.isNull() ) { QByteArray bytes; QBuffer buffer(&bytes); buffer.open(QIODevice::WriteOnly); // PNG might be politically more correct but replacing JPG // below with PNG caused .size() of bytes to jump from 18160 // to 72368 with my test image. This just won't do. iProfilePicture.save(&buffer, "JPG"); // writes pixmap into bytes in JPG format LOG_STR2("Size of saved image %d", bytes.size()) ; m.insert( KJSonProfilePic, bytes.toBase64()) ; } return ( QVariant (m) ) ; // then put the map inside QVariant } bool Profile::setFromQVariant(const QVariantMap& aJSonAsQVariant, const MController& aController, bool aOmitImage ) { if ( aJSonAsQVariant.contains(KJSonFPElement) ) { QString fingerPrintString = QString::fromUtf8(aJSonAsQVariant[KJSonFPElement].toByteArray()) ; if ( fingerPrintString != iFingerPrint.toString() ) { // huhuu, inside is different FP from what the key says?? LOG_STR2("Profile: Fingerprint in json %s" , qPrintable( fingerPrintString)) ; return false ; } } else { LOG_STR("Profile: No fingerprint in json??" ) ; return false ; } iSharedFiles.clear() ; if (aJSonAsQVariant.contains(KJSonSharedFiles) ) { QVariantList listOfSharedPhiles (aJSonAsQVariant[KJSonSharedFiles].toList()) ; QListIterator i(listOfSharedPhiles); while (i.hasNext()) { Hash h ; h.fromString((const unsigned char*)(i.next().toString().toLatin1().constData())) ; if ( h != KNullHash ) { iSharedFiles.append(h); } } } iTrustList.clear() ; if (aJSonAsQVariant.contains(KJSonTrustList) ) { QVariantList trustList (aJSonAsQVariant[KJSonTrustList].toList()) ; QListIterator i(trustList); while (i.hasNext()) { Hash h ; h.fromString((const unsigned char*)(i.next().toString().toLatin1().constData())) ; if ( h != KNullHash ) { iTrustList.append(h); } } } if ( aJSonAsQVariant.contains(KJSonNickNameElement) ) { iNickName = QString::fromUtf8(aJSonAsQVariant[KJSonNickNameElement].toByteArray()) ; } else { iNickName.clear() ; } if ( aJSonAsQVariant.contains(KJSonGreetingText) ) { iGreetingText = QString::fromUtf8(aJSonAsQVariant[KJSonGreetingText].toByteArray()) ; } if ( aJSonAsQVariant.contains(KJSonFirstName) ) { iFirstName= QString::fromUtf8(aJSonAsQVariant[KJSonFirstName].toByteArray()) ; } if ( aJSonAsQVariant.contains(KJSonFamilyName) ) { iFamilyName= QString::fromUtf8(aJSonAsQVariant[KJSonFamilyName].toByteArray()) ; } if ( aJSonAsQVariant.contains(KJSonCityCountry) ) { iCityCountry=QString::fromUtf8(aJSonAsQVariant[KJSonCityCountry].toByteArray()) ; } if ( aJSonAsQVariant.contains(KJSonBTCAddress) ) { iBTCAddress=QString::fromUtf8(aJSonAsQVariant[KJSonBTCAddress].toByteArray()) ; } if ( aJSonAsQVariant.contains(KJSonTimeElement) ) { iTimeOfPublish = aJSonAsQVariant[KJSonTimeElement].toUInt() ; } if ( aJSonAsQVariant.contains(KJSonIsProfilePrivateKey) ) { iIsPrivate = aJSonAsQVariant[KJSonIsProfilePrivateKey].toBool() ; if ( iIsPrivate ) { // add self to profile readers ; later used by encryption // routine.. iProfileReaders.append(iFingerPrint) ; // try to get possible keys of readers.. if ( aJSonAsQVariant.contains(KJSonListOfProfileReaders) ) { QVariantList keysOfProfileReaders ( aJSonAsQVariant[KJSonListOfProfileReaders].toList() ) ; LOG_STR2("Number of profile readers is %d" , keysOfProfileReaders.size()) ; foreach ( QVariant pemBytesOfKeyOfAReader , keysOfProfileReaders ) { QByteArray bytesOfKey ( pemBytesOfKeyOfAReader.toByteArray() ) ; Hash hashOfReader ( aController.model().contentEncryptionModel().hashOfPublicKey(bytesOfKey) ) ; if ( hashOfReader != KNullHash ) { if ( ! ( iProfileReaders.contains ( hashOfReader ) ) ) { // ever possible to have duplicates? sw bug? iProfileReaders.append(hashOfReader) ; } aController.model().contentEncryptionModel().insertOrUpdatePublicKey(bytesOfKey,hashOfReader) ; } else { LOG_STR2("KNullHash as profile reader out of key %s", qPrintable(QString(bytesOfKey))) ; } } } } } else { iIsPrivate = false ; } if ( aJSonAsQVariant.contains(KJSonProfilePic) && aOmitImage == false ) { QByteArray imageBytes ( QByteArray::fromBase64(aJSonAsQVariant[KJSonProfilePic].toByteArray()) ) ; if ( imageBytes.size() > 0 ) { QImage profileImage ; if ( profileImage.loadFromData(imageBytes) ) { imageBytes.clear() ; iProfilePicture = profileImage ; } } } if ( aJSonAsQVariant.contains(KJSonNodeRef ) ) { iNodeOfProfile = Node::fromQVariant (aJSonAsQVariant[KJSonNodeRef].toMap(),false) ; } if ( aJSonAsQVariant.contains(KJSonStateOfTheWorld) ) { iStateOfTheWorld = QString::fromUtf8(aJSonAsQVariant[KJSonStateOfTheWorld].toByteArray()) ; } return true ; } bool Profile::fromJSon(const QByteArray &aJSonBytes, const MController& aController, bool aOmitImage ) { bool ok; QVariantMap result ( JSonWrapper::parse (aJSonBytes, &ok) ); if (!ok) { return false ; } else { ok = setFromQVariant(result,aController,aOmitImage) ; } return ok ; } QString Profile::displayName() const { QString retval ; if ( iIsPrivate ) { retval = iFingerPrint.toString() ; } else { if ( iNickName.length() > 0 ) { retval = iNickName; } else { if ( iFirstName.length() > 0 ) { retval = iFirstName ; if ( iFamilyName.length() > 0 ) { retval = retval + " " + iFamilyName ; } } else { if ( iFamilyName.length() > 0 ) { retval = iFamilyName ; } else { // no nickname, no first name, no family name.. retval = iFingerPrint.toString() ; } } } if ( retval.length() > 40 ) { retval = retval.left(40) ; } } return retval ; } classified-ads-0.09/datamodel/profile.h000066400000000000000000000103061260620453500200630ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CLASSIFIED_PROFILE_H #define CLASSIFIED_PROFILE_H #include #include "../util/hash.h" // for class Hash #include #include // actually for qvariantmap class MController ; class Node ; /** * @brief Carrier-class for user-profile data * * Instances of this class are stored and retrieved using * @ref ProfileModel. */ class Profile : public QObject { Q_OBJECT public: Profile(const Hash& aHash) ; /**< constructor */ ~Profile() ; /**< destructor */ /** * method for string that is shown to user about the profile. * displays nickname or real name etc. or hash fingerprint * if no other data avail. the string returned by this method * must be no longer than 160 bytes in utf-8. some chinese * glyphs take up to 4 bytes so lets here limit max-len to * 40 characters. * @return string to display to user */ QString displayName() const ; QByteArray asJSon(const MController& aController) const ; /**< returns profile data as JSon stream */ /** * Method for getting profile as JSon / QVariant */ QVariant asQVariant(const MController& aController) const ; /** * reverse of @ref asQVariant() * @param aJSonAsQVariant is qvariant supposedly containing the profile data * @param aController application controller * @param aOmitImage if set to true, possible image will not be loaded from * data ; in cases where we know that we'll need only subset of * information and no image, we can skip this costly operation * @return true if QVariant looked like profile */ bool setFromQVariant(const QVariantMap& aJSonAsQVariant, const MController& aController, bool aOmitImage = false) ; /** * parses json into members * @param aJSonBytes is json text supposedly containing the profile data * @param aController application controller * @param aOmitImage if set to true, possible image will not be loaded from * data ; in cases where we know that we'll need only subset of * information and no image, we can skip this costly operation */ bool fromJSon(const QByteArray &aJSonBytes, const MController& aController, bool aOmitImage = false ) ; const Hash iFingerPrint ; /**< profile encryption key fingerprint */ QString iNickName ; /**< nickname selected by user */ QString iGreetingText ; /**< short hello-world by user */ QString iFirstName ; /**< given name */ QString iFamilyName ; /**< family name */ QString iCityCountry ; /**< location of residence */ QString iBTCAddress ; /**< payment addr */ QString iStateOfTheWorld ; /**< State of the world as explained by user.. */ bool iIsPrivate ; /**< if set to true, profile is published encrypted */ quint32 iTimeOfPublish ; /**< seconds since 1-jan-1970 */ /** * in case of private profile, list of reader encryption * key fingerprints */ QList iProfileReaders ; QImage iProfilePicture ; /**< If V. Lenin is too fine for you */ QList iSharedFiles ; /**< Fingerprints of files shared */ Node* iNodeOfProfile ; /**< physical contact addr of this profile */ QList iTrustList ; /**< Fingerprints of trusted profiles */ } ; #endif classified-ads-0.09/datamodel/profilecomment.cpp000066400000000000000000000154051260620453500220060ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "profilecomment.h" #include "../util/hash.h" #include "../log.h" #include "../util/jsonwrapper.h" #include #include "../mcontroller.h" #include "model.h" #include "contentencryptionmodel.h" static const char *KCommentJSonProfileFPElement = "commentedProfile" ; static const char *KCommentJSonTimeElement = "timeOfPublish" ; static const char *KCommentJSonProfileCommentVersion = "profileVersion" ; static const char *KCommentJSonEncyptionKey = "key" ; static const char *KCommentJSonAttachedFiles = "attachedPhiles" ; static const char *KCommentJSonCommentText = "text" ; static const char *KCommentJSonCommentSubject = "subject" ; static const char *KCommentJSonCommentorNick = "nickName" ; static const char *KCommentJSonReferences = "ref" ; static const char *KCommentJSonReferencedType = "refType" ; static const int KJSONProfileCommentVersionValue = 1 ; /**< if our format should change? */ ProfileComment::ProfileComment(const Hash& aHash) : iFingerPrint(aHash), iIsPrivate(false), // initially all profiles are public ; right? iTimeOfPublish(0) { LOG_STR("ProfileComment::ProfileComment()") ; } ProfileComment::~ProfileComment() { LOG_STR("ProfileComment::~ProfileComment()") ; } QByteArray ProfileComment::asJSon(const MController& aController) const { QByteArray retval ( JSonWrapper::serialize(asQVariant(aController)) ) ; LOG_STR2("profilecomment %s", qPrintable(QString(retval))) ; return retval ; } QVariant ProfileComment::asQVariant(const MController& /* aController */) const { // first have a map ; that is the top-level JSon-object QMap m ; if ( iProfileFingerPrint != KNullHash ) { m.insert(KCommentJSonProfileFPElement , iProfileFingerPrint.toString()) ; } if ( iCommentText.length() > 0 ) { m.insert(KCommentJSonCommentText , iCommentText.toUtf8()) ; } if ( iSubject.length() > 0 ) { m.insert(KCommentJSonCommentSubject , iSubject.toUtf8()) ; } m.insert(KCommentJSonTimeElement , iTimeOfPublish) ; m.insert( KCommentJSonProfileCommentVersion ,KJSONProfileCommentVersionValue) ; if ( iKeyOfCommentor.length() > 0 ) { m.insert(KCommentJSonEncyptionKey , iKeyOfCommentor) ; } if ( iAttachedFiles.size() > 0 ) { QVariantList listOfAttachedPhiles ; foreach( const Hash& phile, iAttachedFiles ) { QVariant v ; v.setValue(phile.toString()) ; listOfAttachedPhiles.append(v) ; } LOG_STR2("Number of attached files in profile comment serialization %d", listOfAttachedPhiles.size()) ; m.insert(KCommentJSonAttachedFiles, listOfAttachedPhiles) ; } else { LOG_STR("No shared files in profile comment serialization") ; } if ( iCommentorNickName.length() > 0 ) { m.insert(KCommentJSonCommentorNick , iCommentorNickName.toUtf8()) ; } if ( iReferences != KNullHash ) { m.insert(KCommentJSonReferences , iReferences.toString()) ; m.insert(KCommentJSonReferencedType, (int)iTypeOfObjectReferenced) ; } return ( QVariant (m) ) ; // then put the map inside QVariant } bool ProfileComment::setFromQVariant(const QVariantMap& aJSonAsQVariant, const MController& aController) { if ( aJSonAsQVariant.contains(KCommentJSonProfileFPElement) ) { iProfileFingerPrint.fromString((const unsigned char *)aJSonAsQVariant[KCommentJSonProfileFPElement].toByteArray().constData()) ; } if (aJSonAsQVariant.contains(KCommentJSonAttachedFiles) ) { QVariantList listOfSharedPhiles (aJSonAsQVariant[KCommentJSonAttachedFiles].toList()) ; QListIterator i(listOfSharedPhiles); iAttachedFiles.clear() ; while (i.hasNext()) { Hash h ; h.fromString((const unsigned char*)(i.next().toString().toLatin1().constData())) ; iAttachedFiles.append(h); QLOG_STR("ProfileComment had attached file " + h.toString()) ; } } if (aJSonAsQVariant.contains(KCommentJSonTimeElement) ) { iTimeOfPublish = aJSonAsQVariant[KCommentJSonTimeElement].toUInt() ; } if (aJSonAsQVariant.contains(KCommentJSonCommentText) ) { iCommentText = QString::fromUtf8(aJSonAsQVariant[KCommentJSonCommentText].toByteArray()) ; } if (aJSonAsQVariant.contains(KCommentJSonCommentSubject) ) { iSubject = QString::fromUtf8(aJSonAsQVariant[KCommentJSonCommentSubject].toByteArray()) ; } if (aJSonAsQVariant.contains(KCommentJSonEncyptionKey) ) { iKeyOfCommentor = aJSonAsQVariant[KCommentJSonEncyptionKey].toByteArray() ; iCommentorHash = aController.model().contentEncryptionModel().hashOfPublicKey(iKeyOfCommentor); } if ( aJSonAsQVariant.contains(KCommentJSonCommentorNick) ) { iCommentorNickName = QString::fromUtf8(aJSonAsQVariant[KCommentJSonCommentorNick].toByteArray()) ; } if ( aJSonAsQVariant.contains(KCommentJSonReferences) && aJSonAsQVariant.contains(KCommentJSonReferencedType) ) { iReferences.fromString((const unsigned char *)aJSonAsQVariant[KCommentJSonReferences].toByteArray().constData()) ; switch ( aJSonAsQVariant[KCommentJSonReferencedType].toInt() ) { case ClassifiedAd: iTypeOfObjectReferenced = ClassifiedAd; break ; case BinaryBlob: iTypeOfObjectReferenced = BinaryBlob; break ; case UserProfile: iTypeOfObjectReferenced = UserProfile; break ; default: iReferences = KNullHash ; } } return true ; } bool ProfileComment::fromJSon(const QByteArray &aJSonBytes, const MController& aController ) { bool ok; QVariantMap result ( JSonWrapper::parse (aJSonBytes, &ok)); if (!ok) { return false ; } else { ok = setFromQVariant(result,aController) ; } return ok ; } classified-ads-0.09/datamodel/profilecomment.h000066400000000000000000000066231260620453500214550ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CLASSIFIED_PROFILE_COMMENT_H #define CLASSIFIED_PROFILE_COMMENT_H #include #include "../util/hash.h" // for class Hash #include #include // actually for qvariantmap #include "../net/protocol.h" // for ProtocolItemType #include "../mcontroller.h" // for KNullHash /** * @brief Carrier-class for comments of a profile * * Profile-comment data-item behaves much in same way as profile. * These are either public or encrypted to profile readers, * they might follow the same publish/retrieval procedures as * profiles do. */ class ProfileComment { public: /** * Constructor. Fingerprint must be given, this is normal when * fetching a comment from storage. When publishing a new comment, * the fingerprint naturally is not known in advance, in which * case KNullHash may be used and real fingerprint can be then * updated during publish-process */ ProfileComment(const Hash& aHash = KNullHash ) ; /**< constructor */ ~ProfileComment() ; /**< destructor */ QByteArray asJSon(const MController& aController) const ; /**< returns profile comment data as JSon stream */ bool fromJSon(const QByteArray &aJSonBytes, const MController& aController ) ; /**< parses json into members*/ /** * Method for getting profile comment as JSon / QVariant */ QVariant asQVariant(const MController& aController) const ; /** * reverse of @ref asQVariant() * @return true if QVariant looked like profile */ bool setFromQVariant(const QVariantMap& aJSonAsQVariant, const MController& aController) ; // data is also public Hash iFingerPrint ; /**< fingerprint of the comment */ Hash iProfileFingerPrint ; /**< fingerprint of the profile commented */ Hash iCommentorHash ; /**< fingerprint of profile that posted the comment */ QList iAttachedFiles ; QString iCommentText ; QString iSubject ; bool iIsPrivate ; /**< if set to true, profile, and this comment too, is published encrypted */ quint32 iTimeOfPublish ; /**< seconds since 1-jan-1970 */ QByteArray iKeyOfCommentor ; /**< public key of profile that sent the comment */ QString iCommentorNickName ; /**< if commentor is public profile, its nick */ Hash iReferences ; /**< if comment is reply to another comment, this is the hash of the commented comment */ ProtocolItemType iTypeOfObjectReferenced ; /**< if comment reference is CA, or profile, or another comment */ } ; #endif classified-ads-0.09/datamodel/profilecommentlistingmodel.cpp000066400000000000000000000366051260620453500244260ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include #include "profilecommentlistingmodel.h" #include "../log.h" #include "../mcontroller.h" #include "model.h" #include "profilecommentmodel.h" #include "profilecomment.h" /** * as default content give user some indication that more is * to be expected..later */ static const QString KDefaultProfileCommentContent ( "...") ; ProfileCommentListingModel::ProfileCommentListingModel(Model& aModel, MController& aController ) : iModel(aModel), iController(aController) { } ProfileCommentListingModel::~ProfileCommentListingModel() { LOG_STR("ProfileCommentListingModel::~ProfileCommentListingModel") ; } int ProfileCommentListingModel::rowCount(const QModelIndex& ) const { return iProfileComments.size(); } int ProfileCommentListingModel::columnCount(const QModelIndex& ) const { return 3 ; // what are the columns? Sender, time, subject? } QVariant ProfileCommentListingModel::data(const QModelIndex &index, int role) const { if(!index.isValid()) return QVariant(); if ( role == Qt::UserRole ) { return iProfileComments.at(index.row()).iCommentHash.toQVariant() ; } if ( role == Qt::UserRole+1 ) { return iProfileComments.at(index.row()).iCommentText ; // here return html } if ( role == Qt::UserRole+2 ) { // return sender+date+subject as single string QString headerTextForListings ; if ( iProfileComments.at(index.row()).iSenderName.length() > 0 ) { headerTextForListings = iProfileComments.at(index.row()).iSenderName ; } else { headerTextForListings = iController.displayableNameForProfile(iProfileComments.at(index.row()).iSenderHash ) ; ; } QDateTime d ; d.setTime_t(iProfileComments.at(index.row()).iCommentTimeStamp) ; headerTextForListings = headerTextForListings + " | " + d.toString(Qt::SystemLocaleShortDate) ; headerTextForListings = headerTextForListings + " | " + iProfileComments.at(index.row()).iCommentSubject ; return headerTextForListings ; } if ( role == Qt::UserRole+3 ) { return iProfileComments.at(index.row()).iNrOfAttachedFiles ; } if ( role == Qt::FontRole ) { QFont font; if ( iProfileComments.at(index.row()).iIsRead == false ) { font.setBold(true); font.setItalic(true); } return font; } switch ( index.column() ) { case 0: // peer, either name or hash if(role == Qt::DisplayRole) { if ( iProfileComments.at(index.row()).iSenderName.length() > 0 ) { return iProfileComments.at(index.row()).iSenderName ; } else { return iController.displayableNameForProfile(iProfileComments.at(index.row()).iSenderHash) ; } } else if(role == Qt::DecorationRole) { // here return QIcon of size 26x26 featuring lenin reading pravda? return QVariant(); } else if(role == Qt::ToolTipRole) { return iProfileComments.at(index.row()).iCommentHash.toString() ; } else if ( role == Qt::ForegroundRole ) { if ( ( iController.profileInUse() == iProfileComments.at(index.row()).iCommentedProfileHash ) && iController.isContactInContactList(iProfileComments.at(index.row()).iSenderHash ) ) { return QColor(Qt::blue); // color blue if sender is in contacts } else { return QVariant() ; } } else { return QVariant() ; } break ; case 1: { // message time if(role == Qt::DisplayRole) { QDateTime d ; d.setTime_t(iProfileComments.at(index.row()).iCommentTimeStamp) ; return d.toString(Qt::SystemLocaleShortDate) ; } else { return QVariant(); } } break ; case 2: if(role == Qt::DisplayRole) { return iProfileComments.at(index.row()).iCommentSubject ; } else { return QVariant(); } break ; default: return QVariant(); // for unknown columns return empty } return QVariant(); } void ProfileCommentListingModel::setSearchHash(const Hash& aSearch) { emit beginResetModel (); iSearchHash = aSearch ; // ok .. what next. .. don't search with empty if ( iSearchHash == KNullHash ) { iProfileComments.clear() ; } else { performSearch() ; } emit endResetModel () ; if ( iProfileComments.size() ) { QTimer::singleShot(0, this, SLOT(doUpdateDataOnIdle())); } } void ProfileCommentListingModel::performSearch() { QSqlQuery query; bool ret ; iProfileComments.clear() ; ret = query.prepare ("select hash1,hash2,hash3,hash4,hash5,profile_hash1,profile_hash2,profile_hash3,profile_hash4,profile_hash5,time_of_publish,sender_hash1 from profilecomment where profile_hash1 = :hash1 and profile_hash2 = :hash2 and profile_hash3 = :hash3 and profile_hash4 = :hash4 and profile_hash5 = :hash5 order by time_of_publish" ) ; if ( ret ) { query.bindValue(":hash1", iSearchHash.iHash160bits[0]); // destined to me query.bindValue(":hash2", iSearchHash.iHash160bits[1]); query.bindValue(":hash3", iSearchHash.iHash160bits[2]); query.bindValue(":hash4", iSearchHash.iHash160bits[3]); query.bindValue(":hash5", iSearchHash.iHash160bits[4]); } if ( ret && query.exec() ) { while ( query.next() ) { ProfileCommentListItem item ; item.iCommentText = KDefaultProfileCommentContent ; item.iIsUpdated = false ; item.iCommentHash = Hash(query.value(0).toUInt(), query.value(1).toUInt(), query.value(2).toUInt(), query.value(3).toUInt(), query.value(4).toUInt()) ; if ( !query.isNull(5) ) { item.iCommentedProfileHash = Hash(query.value(5).toUInt(), query.value(6).toUInt(), query.value(7).toUInt(), query.value(8).toUInt(), query.value(9).toUInt()) ; } item.iCommentTimeStamp = query.value(10).toUInt() ; if ( !query.isNull(11) && query.value(11).toUInt() == iController.profileInUse().iHash160bits[0] ) { // was sent by me, yes item.iSenderHash = iController.profileInUse() ; } item.iNrOfAttachedFiles = 0 ; item.iIsRead = false ; item.iCommentSubject = "-" ; iProfileComments.append(item) ; QLOG_STR("Appended into model a profile comment with ts = " + QString::number(item.iCommentTimeStamp) + " from " + item.iSenderHash.toString()) ; } } else { QLOG_STR("At profilecommentlisting " + query.lastError().text() + " line " + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } } QVariant ProfileCommentListingModel::headerData ( int section, Qt::Orientation orientation, int role ) const { if (orientation != Qt::Horizontal ) { return QVariant(); } switch ( role ) { case Qt::ToolTipRole: switch ( section ) { default: return QVariant(); break ; } break ; case Qt::DisplayRole: switch ( section ) { case 0: return tr("Sender") ; break; case 1: return tr("Time") ; break ; case 2: return tr("Subject") ; break ; default: return QVariant(); } break ; case Qt::SizeHintRole: switch ( section ) { default: return QVariant(); } break ; default: return QVariant(); break ; } } bool ProfileCommentListingModel::updateSenderAndSubjectOfMsg(ProfileCommentListItem& aItem) { ProfileComment* msg ( iModel.profileCommentModel().profileCommentByFingerPrint(aItem.iCommentHash,false)); if ( msg ) { if ( msg->iCommentorNickName.length() ) { aItem.iSenderName = msg->iCommentorNickName ; } else { aItem.iSenderName = iController.displayableNameForProfile(msg->iCommentorHash) ; } aItem.iSenderHash = msg->iCommentorHash ; aItem.iCommentSubject = msg->iSubject ; aItem.iCommentTimeStamp = msg->iTimeOfPublish ; aItem.iCommentText = msg->iCommentText ; aItem.iNrOfAttachedFiles = msg->iAttachedFiles.count() ; QLOG_STR("Nr of attachments in comment " + aItem.iCommentHash.toString() + " = " + QString::number(aItem.iNrOfAttachedFiles)) ; delete msg ; return true ; } else { return false ; } } void ProfileCommentListingModel::doUpdateDataOnIdle() { int indexUpdated(-1) ; int indexDeleted(-1) ; iModel.lock() ; for ( int i ( 0 ) ; i < iProfileComments.size() ; i++ ) { if ( iProfileComments.at(i).iIsUpdated == false) { indexUpdated = i ; ProfileCommentListItem& item ( iProfileComments[i] ) ; if ( updateSenderAndSubjectOfMsg(item) ) { LOG_STR2("ProfileCommentListingModel::doUpdateDataOnIdle index = %d", indexUpdated) ; item.iIsUpdated = true ; } else { indexUpdated = -1 ; indexDeleted = i ; } break ; // out of loop, e.g. do only one } } iModel.unlock() ; if ( indexUpdated > -1 ) { // so, if we updated something, give UI a clue emit dataChanged(createIndex(indexUpdated,0), createIndex(indexUpdated,3) ) ; // and re-schedule self to check if there is more // messages to handle QTimer::singleShot(0, this, SLOT(doUpdateDataOnIdle())); } if ( indexDeleted > -1 ) { beginRemoveRows(createIndex(indexDeleted,0),0,2) ; iProfileComments.removeAt(indexDeleted) ; endRemoveRows() ; // and re-schedule self to check if there is more // messages to handle QTimer::singleShot(0, this, SLOT(doUpdateDataOnIdle())); } } void ProfileCommentListingModel::setAsRead(const Hash& aComment, bool aIsRead) { for ( int i ( 0 ) ; i < iProfileComments.size() ; i++ ) { if ( iProfileComments.at(i).iCommentHash == aComment ) { ProfileCommentListItem item = iProfileComments.at(i) ; item.iIsRead = aIsRead ; iProfileComments.replace(i, item) ; break ; } } } void ProfileCommentListingModel::newCommentReceived(const Hash& aComment, const Hash& aCommentedProfile) { bool wasAlreadyContained ( false ) ; if ( aCommentedProfile == iSearchHash ) { QLOG_STR("Got new comment for profile hash " + iSearchHash.toString()) ; // was for profile in display iModel.lock() ; for ( int i ( 0 ) ; i < iProfileComments.size() ; i++ ) { if ( iProfileComments.at(i).iCommentHash == aComment ) { wasAlreadyContained = true ; QLOG_STR("but comment was already found..") ; break ; // out of loop, e.g. do only one } } iModel.unlock() ; if ( !wasAlreadyContained ) { beginInsertRows(QModelIndex(),iProfileComments.size(),iProfileComments.size()) ; iModel.lock() ; ProfileCommentListItem item ; item.iIsRead = false ; item.iIsUpdated = false ; item.iCommentTimeStamp = QDateTime::currentDateTimeUtc().toTime_t() ; item.iCommentHash = aComment ; item.iCommentedProfileHash = aCommentedProfile ; item.iCommentSubject = " " ; item.iCommentText = KDefaultProfileCommentContent ; iProfileComments.append(item) ; iModel.unlock() ; endInsertRows() ; QTimer::singleShot(0, this, SLOT(doUpdateDataOnIdle())); QLOG_STR("Comment added to model.") ; } } else { QLOG_STR("Got new comment for profile hash that we don't search " + iSearchHash.toString()) ; } } // note that this method is called from ui/newprofilecommentdialog and // it does the calling so that datamodel is already locked -> no locking again void ProfileCommentListingModel::newCommentReceived(const ProfileComment& aComment) { if ( aComment.iProfileFingerPrint == iSearchHash ) { // was for profile in display bool wasAlreadyContained ( false ) ; for ( int i ( 0 ) ; i < iProfileComments.size() ; i++ ) { if ( iProfileComments.at(i).iCommentHash == aComment.iFingerPrint ) { wasAlreadyContained = true ; break ; // out of loop, e.g. do only one } } if ( !wasAlreadyContained ) { beginInsertRows(QModelIndex(),iProfileComments.size(),iProfileComments.size()) ; ProfileCommentListItem item ; item.iIsRead = true ; item.iIsUpdated = true ; // no need to update, we already had it all item.iSenderName = aComment.iCommentorNickName ; item.iCommentedProfileHash = aComment.iProfileFingerPrint ; item.iSenderHash = aComment.iCommentorHash ; item.iCommentSubject = aComment.iSubject ; item.iCommentTimeStamp = aComment.iTimeOfPublish ; item.iCommentHash = aComment.iFingerPrint ; item.iCommentText = aComment.iCommentText ; item.iNrOfAttachedFiles = aComment.iAttachedFiles.count() ; iProfileComments.append(item) ; QLOG_STR("ProfileCommentListingModel::newMsgReceived iSenderName = " + item.iSenderName) ; QLOG_STR("ProfileCommentListingModel::newMsgReceived iCommentedProfileHash = " + item.iCommentedProfileHash.toString()) ; QLOG_STR("ProfileCommentListingModel::newMsgReceived iSenderHash = " + item.iSenderHash.toString()) ; endInsertRows() ; } } } // this gets called when we're listing the "own profile" comments and // the selection of the profile changes. void ProfileCommentListingModel::profileSelected(const Hash& aProfileHash) { QLOG_STR("ProfileCommentListingModel::profileSelected " + aProfileHash.toString()) ; setSearchHash(aProfileHash) ; } classified-ads-0.09/datamodel/profilecommentlistingmodel.h000066400000000000000000000114171260620453500240650ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef PROFILECOMMENTLISTINGMODEL_H #define PROFILECOMMENTLISTINGMODEL_H #include #include "../util/hash.h" #include "../mcontroller.h" #include class Model ; class ProfileComment ; /** * @brief Model-class for performing search on comments about a profile. * This is supposed to act as an underlying data-container for * an user-interface view (QListView etc.) */ class ProfileCommentListingModel: public QAbstractTableModel { Q_OBJECT public: // types: /** * Structure that holds profile data inside model .. could be as well * the actual comment but this has some lazy-loading stuff in it */ struct ProfileCommentListItem { Hash iCommentHash ; /**< from ProfileComment::iFingerPrint */ Hash iCommentedProfileHash ; Hash iSenderHash ; quint32 iCommentTimeStamp ; QString iCommentSubject ; QString iSenderName ; bool iIsRead ; QString iCommentText ; /**< comments are html so this text is ..*/ bool iIsUpdated ; /**< updated via lazy load */ unsigned iNrOfAttachedFiles ; } ; public: ProfileCommentListingModel(Model& aModel,MController& aController) ; ~ProfileCommentListingModel() ; /** * Calling this method will populate the model with * messages that are either sent by profile given in * parameter, or comment a given profile. * @param aSearch profile fingerprint whose messages are * the item of interest * @return no thing, always succeeds */ void setSearchHash(const Hash& aSearch) ; /** * re-implemented from QAbstractTableModel * @return number of rows in list */ virtual int rowCount(const QModelIndex & parent = QModelIndex()) const ; /** * re-implemented from QAbstractTableModel * @return number of columns in view */ virtual int columnCount(const QModelIndex & parent = QModelIndex()) const ; /** * re-implemented from QAbstractListModel * @return data to display in list. If Qt::UserRole+1 is used to * obtain data, html of the comment is returned, Qt::UserRole * returns comment hash as QVariant. UserRole+2 returns * header data as single string, intended for list displays. * UserRole+3 returns number of attached files as unsigned. */ virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const ; virtual QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const ; void setAsRead(const Hash& aComment, bool aIsRead) ; /** * notification method called when new comment * is inserted into database */ void newCommentReceived(const Hash& aComment, const Hash& aCommentedProfile) ; /** * notification method called when new comment * is inserted into database , this variant is called * from UI */ void newCommentReceived(const ProfileComment& aComment) ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; public slots: /** * method called via QTimer::singleShot() that is used for * filling missing parts (message subjects etc.) from data that * model is listing */ void doUpdateDataOnIdle() ; /** * called from controller when user profile is selected */ void profileSelected(const Hash&) ; private:// methods void performSearch() ; /** * updates profile comment subject etc. from dabase. * @return false if update was not success indicating that * comment should be removed from list */ bool updateSenderAndSubjectOfMsg(ProfileCommentListItem& aItem) ; private: // data Model& iModel ; MController& iController ; QList iProfileComments ; Hash iSearchHash ; } ; #endif classified-ads-0.09/datamodel/profilecommentmodel.cpp000066400000000000000000000706621260620453500230350ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "profilecommentmodel.h" #include "profilemodel.h" // we'll need that also #include "profile.h" // profilemodel deals with profile so we need to include that #include "../log.h" #include "../util/hash.h" #include "model.h" #include #include #include "profilecomment.h" #include "contentencryptionmodel.h" #include "const.h" #include "searchmodel.h" ProfileCommentModel::ProfileCommentModel(MController *aController, const MModelProtocolInterface &aModel) : ModelBase("profilecomment",KMaxRowsInTableProfileComment), iController(aController), iModel(aModel) { LOG_STR("ProfileCommentModel::ProfileCommentModel()") ; connect(this, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; } ProfileCommentModel::~ProfileCommentModel() { LOG_STR("ProfileCommentModel::~ProfileCommentModel()") ; iController = NULL ; // not owned, just set null } bool ProfileCommentModel::publishProfileComment(ProfileComment& aProfileComment) { LOG_STR("ProfileCommentModel::publishProfileComment()") ; bool retval = false ; QByteArray commentJSon ( aProfileComment.asJSon(*iController) ) ; if ( aProfileComment.iIsPrivate ) { QByteArray encryptedJson ; // dig out the profile that is commented, readers of that profile // will be the recipients of this comment: Profile* profileCommented ( iController->model().profileModel().profileByFingerPrint(aProfileComment.iProfileFingerPrint,true /* emit */,true/* no image */)); if ( profileCommented == NULL ) { emit error(MController::ContentEncryptionError, tr("Profile related to comment not found from database")) ; return false ; } QList profileCommentReaders = profileCommented->iProfileReaders ; if ( !profileCommentReaders.contains(aProfileComment.iCommentorHash ) ) { const Hash& commentorHash ( aProfileComment.iCommentorHash ) ; profileCommentReaders.append(commentorHash) ; } delete profileCommented ; profileCommented = NULL ; if ( iController->model().contentEncryptionModel().encrypt(profileCommentReaders, commentJSon, encryptedJson ) ) { commentJSon.clear() ; commentJSon.append(encryptedJson) ; encryptedJson.clear() ; // so ; now ; the profile json is encrypted -> proceed by making signature // of that } else { return false ; // encryption failed ? } } if ( commentJSon.length() > 0 ) { Hash messageFingerPrint ; QByteArray digitalSignature ; messageFingerPrint.calculate(commentJSon) ; if ( iController->model().contentEncryptionModel().sign(aProfileComment.iCommentorHash, commentJSon, digitalSignature) == 0 ) { QSqlQuery query; retval = query.prepare ("insert into profilecomment (hash1,hash2,hash3,hash4,hash5,profile_hash1,profile_hash2,profile_hash3,profile_hash4,profile_hash5,sender_hash1,time_last_reference,signature,time_of_publish,commentdata,recvd_from,flags,display_name) values (:hash1,:hash2,:hash3,:hash4,:hash5,:profile_hash1,:profile_hash2,:profile_hash3,:profile_hash4,:profile_hash5,:sender_hash1,:time_last_reference,:signature,:time_of_publish,:commentdata,:recvd_from,:flags,:display_name)" ) ; if ( retval ) { quint32 flags ( 0 ) ; query.bindValue(":hash1", messageFingerPrint.iHash160bits[0]); query.bindValue(":hash2", messageFingerPrint.iHash160bits[1]); query.bindValue(":hash3", messageFingerPrint.iHash160bits[2]); query.bindValue(":hash4", messageFingerPrint.iHash160bits[3]); query.bindValue(":hash5", messageFingerPrint.iHash160bits[4]); query.bindValue(":commentdata", commentJSon); QLOG_STR("Length of profile data at insert = " + commentJSon.size() ); query.bindValue(":signature", digitalSignature); if ( aProfileComment.iIsPrivate ) { flags = flags | 1 ; } query.bindValue(":profile_hash1", aProfileComment.iProfileFingerPrint.iHash160bits[0]); query.bindValue(":profile_hash2", aProfileComment.iProfileFingerPrint.iHash160bits[1]); query.bindValue(":profile_hash3", aProfileComment.iProfileFingerPrint.iHash160bits[2]); query.bindValue(":profile_hash4", aProfileComment.iProfileFingerPrint.iHash160bits[3]); query.bindValue(":profile_hash5", aProfileComment.iProfileFingerPrint.iHash160bits[4]); query.bindValue(":sender_hash1", aProfileComment.iCommentorHash.iHash160bits[0]); query.bindValue(":time_last_reference", QDateTime::currentDateTimeUtc().toTime_t()); query.bindValue(":time_of_publish", aProfileComment.iTimeOfPublish); query.bindValue(":recvd_from", iController->getNode().nodeFingerPrint().iHash160bits[4]); query.bindValue(":flags", flags); if ( aProfileComment.iIsPrivate ) { query.bindValue(":display_name",QVariant(QVariant::String)) ; } else { if ( aProfileComment.iSubject.length() > 0 ) { query.bindValue(":display_name", aProfileComment.iSubject.left(40)); } else { query.bindValue(":display_name", aProfileComment.iCommentText.left(40)); } } } retval = query.exec() ; if ( !retval ) { LOG_STR2("Error while comment insert %s", qPrintable(query.lastError().text())) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { aProfileComment.iFingerPrint = messageFingerPrint ; // here user is publishing as "brand new" so set bangpath to 0 QList emptyBangPath ; // note how comments get published to address of the profile, // not to addr of the content iController->model().addItemToBePublished(UserProfileComment, messageFingerPrint, emptyBangPath, aProfileComment.iProfileFingerPrint) ; // and send notify to have possible ui-datamodels to be updated. // normally there is 1 or 2 emit contentReceived(aProfileComment.iFingerPrint, aProfileComment.iProfileFingerPrint, UserProfileComment) ; if ( aProfileComment.iIsPrivate == false ) { // index it too iModel.searchModel()->indexProfileComment(aProfileComment) ; } } } } return retval ; } ProfileComment* ProfileCommentModel::profileCommentByFingerPrint(const Hash& aFingerPrint, bool aEmitOnEncryptionError) { LOG_STR("ProfileCommentModel::profileCommentByFingerPrint()") ; ProfileComment* retval = NULL ; QSqlQuery query; bool ret ; ret = query.prepare ("select commentdata,signature,flags from profilecomment where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( ret ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); } ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) && !query.isNull(1) && !query.isNull(2) ) { QByteArray commentData ( query.value(0).toByteArray()) ; QByteArray signature ( query.value(1).toByteArray()) ; quint32 flags ( query.value(2).toUInt() ) ; bool isPrivate ( flags & 1 ) ; // if bit 1 is on, it is encrypted // for verification we need the key. .. we may have the key // if we've been dealing with the sender before, or not. // // sender information is only inside content so if that is // encrypted, we need to de-crypt first, so lets go: if ( isPrivate ) { QByteArray plainTextProfileCommentData ; if ( iController->model().contentEncryptionModel().decrypt(commentData, plainTextProfileCommentData, aEmitOnEncryptionError) ) { LOG_STR2("profcomment: %s", qPrintable(QString(plainTextProfileCommentData))); commentData.clear() ; commentData = plainTextProfileCommentData ; } else { return NULL ; // no need to go further } } retval = new ProfileComment(aFingerPrint) ; if ( retval->fromJSon(commentData,*iController) == false ) { delete retval ; return NULL ; } // ok, now we have the content, also the sender ; so lets try verifying // it is possible that we don't have the key yet. QByteArray dummy ; if (! iController->model().contentEncryptionModel().PublicKey (retval->iCommentorHash, dummy) ) { // didn't have key iController->model().contentEncryptionModel().insertOrUpdatePublicKey (retval->iKeyOfCommentor, retval->iCommentorHash, retval->iCommentorNickName.length() > 0 ? &(retval->iCommentorNickName) : NULL ) ; } dummy.clear() ; // ok, now we supposedly have key in the table, lets verify the bytes if ( iController->model().contentEncryptionModel().verify(retval->iCommentorHash, commentData, signature) == false ) { // bad signature delete retval ; retval = NULL ; } else { // this method was called from UI so lets update the reference // time too setTimeLastReference(retval->iFingerPrint, QDateTime::currentDateTimeUtc().toTime_t()) ; } } } return retval ; } bool ProfileCommentModel::commentDataByFingerPrint(const Hash& aFingerPrint, QByteArray& aResultingProfileCommentData, QByteArray& aResultingSignature, Hash* aResultingProfileFingerPrint, quint32* aFlags, quint32* aTimeOfPublish) { LOG_STR("ProfileCommentModel::commentDataByFingerPrint()") ; bool retval = false ; QSqlQuery query; bool ret ; ret = query.prepare ("select commentdata,signature,flags,time_of_publish,profile_hash1,profile_hash2,profile_hash3,profile_hash4,profile_hash5 from profilecomment where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( ret ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); } ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) && !query.isNull(1) ) { aResultingProfileCommentData.clear() ; aResultingSignature.clear() ; aResultingProfileCommentData.append ( query.value(0).toByteArray()) ; aResultingSignature.append ( query.value(1).toByteArray()) ; if ( !query.isNull(2) ) { *aFlags = query.value(2).toUInt() ; } else { *aFlags = 0 ; } if ( !query.isNull(3) && aTimeOfPublish != NULL ) { *aTimeOfPublish = query.value(3).toUInt() ; } if ( aResultingProfileFingerPrint ) { aResultingProfileFingerPrint->iHash160bits[0] = query.value(4).toUInt() ; aResultingProfileFingerPrint->iHash160bits[1] = query.value(5).toUInt() ; aResultingProfileFingerPrint->iHash160bits[2] = query.value(6).toUInt() ; aResultingProfileFingerPrint->iHash160bits[3] = query.value(7).toUInt() ; aResultingProfileFingerPrint->iHash160bits[4] = query.value(8).toUInt() ; } retval = true ; } } return retval ; } bool ProfileCommentModel::sentProfileCommentReceived(const Hash& aFingerPrint, const Hash& aCommentedProfileFP, const QByteArray& aContent, const QByteArray& aSignature, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& aFromNode ) { const QList dummy ; return doHandlepublishedOrSentProfileComment(aFingerPrint, aCommentedProfileFP, aContent, aSignature, dummy, aFlags, aTimeStamp, false, aFromNode) ; } bool ProfileCommentModel::publishedProfileCommentReceived(const Hash& aFingerPrint, const Hash& aCommentedProfileFP, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& aFromNode ) { return doHandlepublishedOrSentProfileComment(aFingerPrint, aCommentedProfileFP, aContent, aSignature, aBangPath, aFlags, aTimeStamp, true, aFromNode ) ; } bool ProfileCommentModel::doHandlepublishedOrSentProfileComment(const Hash& aFingerPrint, const Hash& aCommentedProfileFP, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const unsigned char aFlags, const quint32 aTimeStamp, bool aWasPublish, const Hash& aFromNode ) { bool retval = false ; QString displayNameForComment ; quint32 senderHashLowBits (0); // ok, lets see .. if we have this particular comment already in storage QSqlQuery existenceQuery ; retval = existenceQuery.prepare("select count(hash1) from profilecomment where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5"); if ( retval ) { existenceQuery.bindValue(":hash1", aFingerPrint.iHash160bits[0]); existenceQuery.bindValue(":hash2", aFingerPrint.iHash160bits[1]); existenceQuery.bindValue(":hash3", aFingerPrint.iHash160bits[2]); existenceQuery.bindValue(":hash4", aFingerPrint.iHash160bits[3]); existenceQuery.bindValue(":hash5", aFingerPrint.iHash160bits[4]); retval = existenceQuery.exec() ; if ( retval ) { if ( existenceQuery.next() && !existenceQuery.isNull(0) ) { int countOfComments = existenceQuery.value(0).toInt() ; if ( countOfComments > 0 ) { // we already had the comment, so lets not continue return true ; // return with success } } } else { QLOG_STR(existenceQuery.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, existenceQuery.lastError().text()) ; return false ; } } // ok, lets see .. should we verify first. // verify, if we can, e.g. the profile is public. ProfileComment c (aFingerPrint) ; if ( ( aFlags & 0x01 ) == 0 ) { // no encryption, lets go if ( c.fromJSon(aContent,*iController) == false ) { LOG_STR("Profile comment did not parse, returning false from datamodel..") ; return false ; // didn't parse } // it is possible that we don't have the key yet. QByteArray dummy ; if (! iController->model().contentEncryptionModel().PublicKey (c.iCommentorHash, dummy) ) { // didn't have key // lets see that the key parses.. EVP_PKEY* key = NULL ; if ( ( key = iController->model().contentEncryptionModel().PublicKeyFromPem(c.iKeyOfCommentor) ) == NULL ) { // did not parse LOG_STR("Encryption key from profile comment did not parse") ; return false ; } else { EVP_PKEY_free(key) ; key = NULL ; } iController->model().contentEncryptionModel().insertOrUpdatePublicKey (c.iKeyOfCommentor, c.iCommentorHash, c.iCommentorNickName.length() > 0 ? &(c.iCommentorNickName) : NULL ) ; } // ok, now we're supposed to have the key in storage, so lets try verifying if ( iController->model().contentEncryptionModel().verify(c.iKeyOfCommentor, aContent, aSignature) == false ) { // soromnoo.. LOG_STR("Profile comment signature verify failed") ; return false ; } else { displayNameForComment = c.iSubject.left(40) ; senderHashLowBits = c.iCommentorHash.iHash160bits[0] ; } } // also content of the comment should match the content: Hash checkFingerPrint ; checkFingerPrint.calculate(aContent) ; if ( checkFingerPrint != aFingerPrint ) { retval = false ; } else { // content had hash that was claimed to have.. QSqlQuery query; retval = query.prepare ("insert into profilecomment (hash1,hash2,hash3,hash4,hash5,profile_hash1,profile_hash2,profile_hash3,profile_hash4,profile_hash5,sender_hash1,time_last_reference,signature,time_of_publish,commentdata,recvd_from,flags,display_name) values (:hash1,:hash2,:hash3,:hash4,:hash5,:profile_hash1,:profile_hash2,:profile_hash3,:profile_hash4,:profile_hash5,:sender_hash1,:time_last_reference,:signature,:time_of_publish,:commentdata,:recvd_from,:flags,:display_name)" ) ; if ( retval ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); query.bindValue(":commentdata", aContent); query.bindValue(":signature", aSignature); query.bindValue(":profile_hash1", aCommentedProfileFP.iHash160bits[0]); query.bindValue(":profile_hash2", aCommentedProfileFP.iHash160bits[1]); query.bindValue(":profile_hash3", aCommentedProfileFP.iHash160bits[2]); query.bindValue(":profile_hash4", aCommentedProfileFP.iHash160bits[3]); query.bindValue(":profile_hash5", aCommentedProfileFP.iHash160bits[4]); if ( senderHashLowBits ) { query.bindValue(":sender_hash1", senderHashLowBits); } else { query.bindValue(":sender_hash1", QVariant(QVariant::String)); } query.bindValue(":time_last_reference", QDateTime::currentDateTimeUtc().toTime_t()); query.bindValue(":time_of_publish", aTimeStamp); query.bindValue(":recvd_from", aFromNode.iHash160bits[4]); //NULL query.bindValue(":flags", aFlags); if ( displayNameForComment.length() == 0 ) { query.bindValue(":display_name", QVariant(QVariant::String)); //NULL } else { query.bindValue(":display_name", displayNameForComment); } } retval = query.exec() ; if ( !retval ) { LOG_STR2("Error while profile comment insert %s", qPrintable(query.lastError().text())) ; emit error(MController::DbTransactionError, query.lastError().text()) ; // .. so. we failed to insert, that was our fault. it still might be // better to disconnect the peer by returning false, so she will not // waste her time sending more content to HD with 0 bytes left? retval = false ; } else { emit contentReceived(aFingerPrint, aCommentedProfileFP, UserProfileComment) ; QLOG_STR("Emitting contentReceived for profile " + aCommentedProfileFP.toString()) ; if ( ( aFlags & 0x01 ) == 0 ) { // index it too, as it is public comment c.iFingerPrint = aFingerPrint ; iModel.searchModel()->indexProfileComment(c) ; } } } if ( aWasPublish && retval ) { iController->model().addItemToBePublished(UserProfileComment, aFingerPrint, aBangPath) ; } LOG_STR2("ProfileCommentModel::published/sentProfileCommentReceived out success = %d", (int)retval) ; return retval ; } void ProfileCommentModel::fillBucket(QList& aSendQueue, const Hash& aStartOfBucket, const Hash& aEndOfBucket, quint32 aLastMutualConnectTime, const Hash& aForNode ) { QSqlQuery query; bool ret ; // in bucket filling we actually have 2 cases .. we may be bucket determined by the // comment content fingerprint or in the bucket determined by the commented // profile fingerprint. here fetch comments based on profile fingerprint ret = query.prepare ("select hash1,hash2,hash3,hash4,hash5,time_of_publish from profilecomment where profile_hash1 >= :start and profile_hash1 <= :end and time_of_publish > :last_connect_time and time_of_publish < :curr_time and ( recvd_from != :lowbits_of_requester or recvd_from is null ) order by time_of_publish desc limit 1000" ) ; if ( ret ) { if ( aStartOfBucket == aEndOfBucket ) { // this was "small network situation" e.g. start and end // are the same ; in practice it means that send all data query.bindValue(":start", 0x0); query.bindValue(":end", 0xFFFFFFFF); } else { // normal situation query.bindValue(":start", aStartOfBucket.iHash160bits[0]); query.bindValue(":end", aEndOfBucket.iHash160bits[0]); } query.bindValue(":last_connect_time", aLastMutualConnectTime); query.bindValue(":lowbits_of_requester", aForNode.iHash160bits[4]); query.bindValue(":curr_time", QDateTime::currentDateTimeUtc().toTime_t()); } ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { while ( query.next() ) { Hash hashFoundFromDb ( query.value(0).toUInt(), query.value(1).toUInt(), query.value(2).toUInt(), query.value(3).toUInt(), query.value(4).toUInt()) ; SendQueueItem commentToSend ; commentToSend.iHash = hashFoundFromDb ; commentToSend.iItemType = UserProfileComment ; time_t timePublish(query.value(5).toUInt()) ; time_t timeMutual(aLastMutualConnectTime); aSendQueue.append(commentToSend) ; #ifndef WIN32 char formatted_mutual [100] = {0} ; char formatted_found [100] = {0} ; ctime_r(&timePublish,&formatted_found[0] ) ; ctime_r(&timeMutual,&formatted_mutual[0] ) ; LOG_STR2("ProfileComment bucket mutual %s", formatted_mutual) ; LOG_STR2("ProfileComment bucket found %s", formatted_found) ; #endif } } } QList ProfileCommentModel::commentsForProfile(const Hash& aProfileHash, const quint32 aSinceTimeStamp) { QList retval ; QSqlQuery query; bool ret ; // (like almost all other content) ret = query.prepare ("select hash1,hash2,hash3,hash4,hash5 from profilecomment where profile_hash1 = :h1 and profile_hash2 = :h2 and profile_hash3 = :h3 and profile_hash4 = :h4 and profile_hash5 = :h5 and time_of_publish > :time_of_publish" ) ; if ( ret ) { query.bindValue(":h1", aProfileHash.iHash160bits[0]); query.bindValue(":h2", aProfileHash.iHash160bits[1]); query.bindValue(":h3", aProfileHash.iHash160bits[2]); query.bindValue(":h4", aProfileHash.iHash160bits[3]); query.bindValue(":h5", aProfileHash.iHash160bits[4]); query.bindValue(":time_of_publish", aSinceTimeStamp); ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { while ( query.next() ) { Hash hashFoundFromDb ( query.value(0).toUInt(), query.value(1).toUInt(), query.value(2).toUInt(), query.value(3).toUInt(), query.value(4).toUInt()) ; retval.append(hashFoundFromDb) ; } } } else { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } QLOG_STR("Returning list of profile comments len = " + QString::number(retval.size()) + " for profile " + aProfileHash.toString() + " since timestamp " + QString::number(aSinceTimeStamp)) ; return retval ; } void ProfileCommentModel::reIndexAllCommentsIntoFTS() { QList articles ; QSqlQuery query; bool ret ; query.exec("delete from profilecomment_search") ; ret = query.prepare ("select hash1,hash2,hash3,hash4,hash5 from profilecomment where flags & 1 = 0") ; ret = query.exec() ; if ( !ret ) { emit error(MController::DbTransactionError, query.lastError().text()) ; } else { while ( query.next() ) { Hash hashFoundFromDb ( query.value(0).toUInt(), query.value(1).toUInt(), query.value(2).toUInt(), query.value(3).toUInt(), query.value(4).toUInt()) ; articles.append(hashFoundFromDb) ; } } foreach ( const Hash& a, articles ) { ProfileComment *c ( profileCommentByFingerPrint(a) ) ; if ( c ) { iModel.searchModel()->indexProfileComment(*c) ; delete c ; } } } classified-ads-0.09/datamodel/profilecommentmodel.h000066400000000000000000000227341260620453500224770ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CLASSIFIED_PROFILECOMMENTMODEL_H #define CLASSIFIED_PROFILECOMMENTMODEL_H #include #include "../mcontroller.h" // because enum from there is needed #include "../net/connection.h" #include "datamodelbase.h" class Hash ; class MModelProtocolInterface ; class ProfileComment ; /** * @brief This is is part of datamodel for storing comments of user profiles * * This behaves largerly in same manner as profilemodel, data-carrier * is different */ class ProfileCommentModel : public ModelBase { Q_OBJECT public: ProfileCommentModel(MController *aMController, const MModelProtocolInterface &aModel) ; ~ProfileCommentModel() ; /** * sends profile comment to selected nodes in network for others * to retrieve. As a side-effect will set iFingerPrint of the * comment. * * @param aProfileComment is the profile to publish * @return true if things went all right */ bool publishProfileComment(ProfileComment& aProfileComment) ; /** * gets a comment or null. whoever calls this method is * obliged to delete the returned comments. * @param aFingerPrint profile serial number * @param aEmitOnEncryptionError if set to false, will return NULL * when no suitable encryption key is found and will not * emit error message that would be catched by UI and * shown to user * @return profile or NULL */ ProfileComment* profileCommentByFingerPrint(const Hash& aFingerPrint, bool aEmitOnEncryptionError=true) ; /** * Gets a comment. Because profile comment is signed .. and that means that * a particular byte-stream (containing actually a serialized json * object) gets signed those bytes can't be altered or signature will * not verify. This methods gets the actual signed bytestream * that has been checked against a public key. * * Note that this method does not check the signature any more, * idea is that we don't store into db profiles that fail the signature * check so this method only gets the profile, does not set it. * * @param aFingerPrint profile comment serial number * @param aResultingProfileCommentData will contain comment data * @param aResultingSignature will contain comment signature * @param aResultingProfileFingerPrint is output variable, that * will have its value set to containt fingerprint of the * profile that the comment is commenting. * @param aFlags will be set to flags values ; bit 1 on means * that content is encrypted. * @param aTimeOfPublish is also output variable, if non-NULL, will * get its value set to time of publish of the comment * @return true if profile was found */ bool commentDataByFingerPrint(const Hash& aFingerPrint, QByteArray& aResultingProfileCommentData, QByteArray& aResultingSignature, Hash* aResultingProfileFingerPrint, quint32* aFlags, quint32* aTimeOfPublish = NULL ) ; /** * called by protocol parser when a profile comment is received. * note the absence of signing key. if the profile commented is public, the * key is found inside the comment. if the profile commented is private, * the comment behaves like a private message, the recipient needs to * first open the encryption before she can verify that the comment * is from certain operator * @param aFingerPrint is the content @ref Hash received from protocol header * @param aCommentedProfileFP is fingerprint hash of the profile that the * comment concerns * @param aContent is actual profile data * @param aSignature is digital signature of the aContent * @param aBangPath is list of last nodes where this content has been, idea is to * prevent re-sending content to somewhere where it has already * been * @param aFlag possible flags telling about encyption and compression * @param aTimeStamp timestamp of profile (if encrypted, it must be carried outside..) * @return true on success */ bool publishedProfileCommentReceived(const Hash& aFingerPrint, const Hash& aCommentedProfileFP, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& aFromNode) ; /** * called by protocol parser when a comment is received by "send" protocol type * @param aFingerPrint is the profile @ref Hash received from protocol header * @param aCommentedProfileFP is fingerprint hash of the profile that the * comment concerns * @param aContent is actual comment data * @param aSignature is digital signature of the aContent * @param aProfileCommentPublicKey is the key that was used to sign the profile. * that is transferred outside profile just because the recipient * might not have the key beforehand ; if she does, the existing * key will be used in verifying process. * @param aFlag possible flags telling about encyption and compression * @param aTimeStamp timestamp of profile (if encrypted, it must be carried outside..) * @return true on success */ bool sentProfileCommentReceived(const Hash& aFingerPrint, const Hash& aCommentedProfileFP, const QByteArray& aContent, const QByteArray& aSignature, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& fromNode ) ; /** * Method for filling connected peers send queue with items * that we have and that belong to said peers bucket. * * @param aSendQueue is send-queue of the connection that * serves particular node * @param aStartOfBucket is hash where bucket of that peer * starts. In practice it is the hash * of the node itself. * @param aEndOfBucket is hash where bucket of that peer ends. * That in turn depends on network size, * or number of active nodes in the network. * See method @ref NodeModel::bucketEndHash * for details. * @param aLastMutualConnectTime time when node was last in * contact. In practice we'll fill the * bucket items published after this time. */ void fillBucket(QList& aSendQueue, const Hash& aStartOfBucket, const Hash& aEndOfBucket, quint32 aLastMutualConnectTime, const Hash& aForNode ); /** * method for producing list of profile comments that comment * aProfileHash and that are more recent than aSinceTimeStamp */ QList commentsForProfile(const Hash& aProfileHash, const quint32 aSinceTimeStamp) ; void reIndexAllCommentsIntoFTS() ; private: // methods /** * Workhorse of methods @ref publishedProfileCommentReceived and @ref sentProfileCommentReceived * @return true on success */ bool doHandlepublishedOrSentProfileComment(const Hash& aFingerPrint, const Hash& aCommentedProfileFP, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const unsigned char aFlags, const quint32 aTimeStamp, bool aWasPublish, const Hash& aFromNode ) ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; /** emitted when new comment is received */ void contentReceived(const Hash& aHashOfContent, const Hash& aHashOfProfileCommented, const ProtocolItemType aTypeOfReceivdContent) ; private: // member variables: MController *iController ; const MModelProtocolInterface& iModel ; } ; #endif classified-ads-0.09/datamodel/profilemodel.cpp000066400000000000000000000756111260620453500214510ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "profilemodel.h" #include "../log.h" #include "../util/hash.h" #include "model.h" #include #include #include "profile.h" #include "contentencryptionmodel.h" #include "../util/jsonwrapper.h" #include "const.h" #include "searchmodel.h" ProfileModel::ProfileModel(MController *aController, const MModelProtocolInterface &aModel) : ModelBase("profile",KMaxRowsInTableProfile), iController(aController), iModel(aModel) { LOG_STR("ProfileModel::ProfileModel()") ; connect(this, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; } ProfileModel::~ProfileModel() { LOG_STR("ProfileModel::~ProfileModel()") ; iController = NULL ; // not owned, just set null } bool ProfileModel::publishProfile(const Profile& aProfile) { LOG_STR("ProfileModel::publishProfile()") ; bool retval = false ; quint32 timeOfPublish(aProfile.iTimeOfPublish) ; QByteArray profileJSon ( aProfile.asJSon(*iController) ) ; if ( aProfile.iIsPrivate ) { QByteArray encryptedJson ; if ( iController->model().contentEncryptionModel().encrypt(aProfile.iProfileReaders, profileJSon, encryptedJson ) ) { profileJSon.clear() ; profileJSon.append(encryptedJson) ; encryptedJson.clear() ; // so ; now ; the profile json is encrypted -> proceed by making signature // of that } else { return false ; // encryption failed ? } } if ( profileJSon.length() > 0 ) { QByteArray digitalSignature ; if ( iController->model().contentEncryptionModel().sign(aProfile.iFingerPrint, profileJSon, digitalSignature) == 0 ) { QSqlQuery query; retval = query.prepare ("update profile set profiledata = :profiledata,signature=:signature,display_name=:display_name,is_private=:is_private,time_of_publish=:time_of_publish where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( retval ) { query.bindValue(":hash1", aProfile.iFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aProfile.iFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aProfile.iFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aProfile.iFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aProfile.iFingerPrint.iHash160bits[4]); query.bindValue(":profiledata", profileJSon); query.bindValue(":signature", digitalSignature); query.bindValue(":is_private", aProfile.iIsPrivate); query.bindValue(":display_name", aProfile.displayName().toUtf8()); query.bindValue(":time_of_publish", timeOfPublish); } retval = query.exec() ; if ( !retval ) { LOG_STR2("Error while profile update %s", qPrintable(query.lastError().text())) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { // here user is publishing as "brand new" so set bangpath to 0 QList emptyBangPath ; iController->model().addItemToBePublished(UserProfile, aProfile.iFingerPrint, emptyBangPath) ; if ( aProfile.iIsPrivate == false ) { iModel.searchModel()->indexProfile(aProfile) ; } } } } return retval ; } Profile* ProfileModel::profileByFingerPrint(const Hash& aFingerPrint, bool aEmitErrorOnEncryptionErrors, bool aOmitImage ) { LOG_STR("ProfileModel::profileByFingerPrint()") ; Profile* retval = NULL ; QSqlQuery query; bool ret ; ret = query.prepare ("select profiledata,signature,is_private from profile where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( ret ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); } ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) && !query.isNull(1) ) { QByteArray profileData ( query.value(0).toByteArray()) ; QByteArray signature ( query.value(1).toByteArray()) ; bool isPrivate ( false ) ; isPrivate = !query.isNull(2) && query.value(2).toBool() ; if ( iController->model().contentEncryptionModel().verify(aFingerPrint, profileData, signature) == true ) { // good signature retval = new Profile(aFingerPrint) ; if ( isPrivate ) { QByteArray plainTextProfileData ; if ( iController->model().contentEncryptionModel().decrypt(profileData, plainTextProfileData, aEmitErrorOnEncryptionErrors ) ) { LOG_STR2("prof: %s", qPrintable(QString(plainTextProfileData))); retval->fromJSon(plainTextProfileData,*iController,aOmitImage) ; } else { delete retval ; retval = NULL ; } } else { // was then public and profileData is in plainText: LOG_STR2("prof: ->%s<-", qPrintable(QString(profileData))); retval->fromJSon(profileData,*iController,aOmitImage) ; } } } } return retval ; } bool ProfileModel::profileDataByFingerPrint(const Hash& aFingerPrint, QByteArray& aResultingProfileData, QByteArray& aResultingSignature, bool* aIsProfilePrivate, quint32* aTimeOfPublish, QByteArray* aResultingPublicKey) { LOG_STR("ProfileModel::profileDataByFingerPrint()") ; bool retval = false ; QSqlQuery query; bool ret ; ret = query.prepare ("select profiledata,signature,is_private,time_of_publish,pubkey from profile where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( ret ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); } ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) && !query.isNull(1) ) { aResultingProfileData.clear() ; aResultingSignature.clear() ; aResultingProfileData.append ( query.value(0).toByteArray()) ; aResultingSignature.append ( query.value(1).toByteArray()) ; if ( !query.isNull(2) && query.value(2).toBool() ) { *aIsProfilePrivate = true ; } if ( !query.isNull(3) && aTimeOfPublish != NULL ) { *aTimeOfPublish = query.value(3).toUInt() ; } if ( aResultingPublicKey != NULL ) { aResultingPublicKey->clear() ; aResultingPublicKey->append(query.value(4).toByteArray()) ; } retval = true ; } } return retval ; } bool ProfileModel::sentProfileReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QByteArray& aProfilePublicKey, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& aFromNode ) { const QList dummy ; return doHandlepublishedOrSentProfile(aFingerPrint, aContent, aSignature, dummy, aProfilePublicKey, aFlags, aTimeStamp, false, aFromNode) ; } bool ProfileModel::publishedProfileReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aProfilePublicKey, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& aFromNode ) { return doHandlepublishedOrSentProfile(aFingerPrint, aContent, aSignature, aBangPath, aProfilePublicKey, aFlags, aTimeStamp, true, aFromNode ) ; } bool ProfileModel::doHandlepublishedOrSentProfile(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aProfilePublicKey, const unsigned char aFlags, const quint32 aTimeStamp, bool aWasPublish, const Hash& aFromNode ) { bool retval = false ; // ok, lets see .. should we verify first. QByteArray key ; // ok first stupid check: // lets say we have a node in network that says that profile is profile. // it has data and signature and public key, all is made public. // information about encryptedness of the profile is outside the // signing process. .. it is just a bit in the binary procotol between // peers. malicious node in the network starts flipping those bits, // causing non-encrypted pages to be tried with encryption and // nice-versa. so .. if it parses it is not encrypted. then check the // flag. // // we still have that malicious node that deliberatedly changes // content of the profile to be non-encrypted while it was originally // made encypted but that will then fail in verification stage bool parseResult(false) ; if ( ( aFlags & 1 ) == 0 ) { // try parsing only if non-encrypted // looks like QJson will set parseResult to true also // when content is actually encrypted so we can check only // for non-encrypted data here. it still needs to parse. QVariantMap dummyResult ( JSonWrapper::parse (aContent, &parseResult) ); } bool flagThisNodeAlreadyHadContent ( false ) ; if ( ( parseResult && ( ( aFlags & 1 ) == 0 ) ) || (( aFlags & 1 ) == 1) ) { // it did parse and encryption flag was 0 quint32 timeStampOfPossibleExistingProfile ( 0 ) ; if ( iController->model().contentEncryptionModel().PublicKey(aFingerPrint, key, &timeStampOfPossibleExistingProfile ) == true ) { // we have got the key, // check if we already had this version: if ( aTimeStamp > timeStampOfPossibleExistingProfile ) { // lets try verifying: if ( iController->model().contentEncryptionModel().verify(aFingerPrint, aContent, aSignature) == true ) { // good signature QSqlQuery query; retval = query.prepare ("update profile set profiledata = :profiledata,signature=:signature,is_private=:is_private,display_name=:display_name,time_of_publish=:time_of_publish,recvd_from=:recvd_from where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5" ) ; if ( retval ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); query.bindValue(":profiledata", aContent); query.bindValue(":signature", aSignature); query.bindValue(":recvd_from", aFromNode.iHash160bits[4]); LOG_STR2("### profile update, is private = %d", ( aFlags & 1 ) ) ; query.bindValue(":is_private", (bool)( aFlags & 1 ) ); query.bindValue(":time_of_publish", aTimeStamp); if ( aFlags & 1 ) { // profile is private; use hash as displayname query.bindValue(":display_name", aFingerPrint.toString().toUtf8()) ; } else { // profile is public ; dig out user-friendly name Profile p (aFingerPrint) ; p.fromJSon(aContent,*iController) ; query.bindValue(":display_name", p.displayName().toUtf8()) ; iModel.searchModel()->indexProfile(p,true) ; } retval = query.exec() ; } if ( !retval ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } } } else { LOG_STR("We already had the profile -> not continuing ..") ; retval = flagThisNodeAlreadyHadContent = true ; } } else { // we did not have the key already. published content is supplied with // key so we must trust that key is the key. lets try verifying.. ; // first check fingerprint, then save key.. Hash hashOfKey (iController->model().contentEncryptionModel().hashOfPublicKey(aProfilePublicKey) ) ; if ( hashOfKey == aFingerPrint ) { iController->model().contentEncryptionModel().insertOrUpdatePublicKey(aProfilePublicKey,aFingerPrint) ; if ( iController->model().contentEncryptionModel().verify(aFingerPrint, aContent, aSignature) == true ) { // good signature QSqlQuery query; retval = query.prepare ("update profile set profiledata=:profiledata,signature=:signature,is_private=:is_private,display_name=:display_name,time_of_publish=:time_of_publish,recvd_from=:recvd_from where hash1=:hash1 and hash2=:hash2 and hash3=:hash3 and hash4=:hash4 and hash5=:hash5" ) ; if ( retval ) { query.bindValue(":profiledata", aContent); query.bindValue(":signature", aSignature); query.bindValue(":is_private", (bool)( aFlags & 1 ) ); query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); query.bindValue(":recvd_from", aFromNode.iHash160bits[4]); if ( aTimeStamp + 60 > QDateTime::currentDateTimeUtc().toTime_t() ) { query.bindValue(":time_of_publish", (quint32)(QDateTime::currentDateTimeUtc().toTime_t())); } else { query.bindValue(":time_of_publish", aTimeStamp); } if ( aFlags & 1 ) { // profile is private; use hash as displayname query.bindValue(":display_name", aFingerPrint.toString().toUtf8()) ; } else { // profile is public ; dig out user-friendly name Profile p (aFingerPrint) ; p.fromJSon(aContent,*iController) ; query.bindValue(":display_name", p.displayName().toUtf8()) ; iModel.searchModel()->indexProfile(p) ; } retval = query.exec() ; if ( !retval ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } } } } else { LOG_STR("Hash of published/sent public key did not match the fp supplied in protocol") ; } // ok we got that far e.g. possible fingerprint+verify is done. // try save the actual stuff } } else { LOG_STR("Non-encrypted content did not parse") ; retval = false ; } if ( aWasPublish ) { if ( retval && (flagThisNodeAlreadyHadContent == false) ) { iController->model().addItemToBePublished(UserProfile, aFingerPrint, aBangPath) ; } } if ( retval && ( flagThisNodeAlreadyHadContent == false ) ) { emit contentReceived(aFingerPrint, UserProfile) ; } LOG_STR2("ProfileModel::published/sentProfileReceived out success = %d", (int)retval) ; return retval ; } void ProfileModel::fillBucket(QList& aSendQueue, const Hash& aStartOfBucket, const Hash& aEndOfBucket, quint32 aLastMutualConnectTime, const Hash& aForNode ) { QSqlQuery query; bool ret ; ret = query.prepare ("select hash1,hash2,hash3,hash4,hash5,time_of_publish from profile where hash1 >= :start and hash1 <= :end and time_of_publish > :last_connect_time and time_of_publish < :curr_time and ( recvd_from != :lowbits_of_requester or recvd_from is null ) order by time_of_publish desc limit 1000" ) ; if ( ret ) { if ( aStartOfBucket == aEndOfBucket ) { // this was "small network situation" e.g. start and end // are the same ; in practice it means that send all data query.bindValue(":start", 0x0); query.bindValue(":end", 0xFFFFFFFF); } else { // normal situation query.bindValue(":start", aStartOfBucket.iHash160bits[0]); query.bindValue(":end", aEndOfBucket.iHash160bits[0]); } query.bindValue(":last_connect_time", aLastMutualConnectTime); query.bindValue(":lowbits_of_requester", aForNode.iHash160bits[4]); query.bindValue(":curr_time", QDateTime::currentDateTimeUtc().toTime_t()); } ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { while ( query.next() ) { Hash hashFoundFromDb ( query.value(0).toUInt(), query.value(1).toUInt(), query.value(2).toUInt(), query.value(3).toUInt(), query.value(4).toUInt()) ; SendQueueItem profileToSend ; profileToSend.iHash = hashFoundFromDb ; profileToSend.iItemType = UserProfile ; time_t timePublish(query.value(5).toUInt()) ; time_t timeMutual(aLastMutualConnectTime); aSendQueue.append(profileToSend) ; #ifndef WIN32 char formatted_mutual [100] = {0} ; char formatted_found [100] = {0} ; ctime_r(&timePublish,&formatted_found[0] ) ; ctime_r(&timeMutual,&formatted_mutual[0] ) ; LOG_STR2("Profile bucket mutual %s", formatted_mutual) ; LOG_STR2("Profile bucket found %s", formatted_found) ; #endif } } } Hash ProfileModel::profileWithOldestTimeSinceMsgPoll(quint32* aLastPollTime) { Hash retval ; QSqlQuery query; quint32 timestampFromDb ( 0 ) ; bool ret ; ret = query.prepare ("select hash1,hash2,hash3,hash4,hash5,last_msgpoll_time from privatekeys where last_msgpoll_time = ( select min(last_msgpoll_time) from privatekeys ) or last_msgpoll_time is null order by last_msgpoll_time asc limit 1" ) ; if ( !ret ) { emit error(MController::DbTransactionError, query.lastError().text()) ; QLOG_STR("ProfileModel::profileWithOldestTimeSinceMsgPoll " + query.lastError().text()) ; } else { if ( query.exec() && query.next() ) { Hash hashFoundFromDb ( query.value(0).toUInt(), query.value(1).toUInt(), query.value(2).toUInt(), query.value(3).toUInt(), query.value(4).toUInt()) ; if ( query.isNull(5) ) { retval = hashFoundFromDb ; } else { timestampFromDb = query.value(5).toUInt(); if ( ( timestampFromDb + ( 60*10 ) ) < QDateTime::currentDateTimeUtc().toTime_t() ) { // was older than 600 seconds retval = hashFoundFromDb ; *aLastPollTime = timestampFromDb ; } } } } return retval ; } void ProfileModel::setPrivateMessagePollTimeForProfile(const quint32 aTimeStamp, const Hash& aProfile ) { bool ret ; QSqlQuery query2 ; ret = query2.prepare("update privatekeys set last_msgpoll_time = :last_msgpoll_time where hash1=:h1 and hash2=:h2 and hash3=:h3 and hash4=:h4 and hash5=:h5") ; if ( !ret ) { QLOG_STR(query2.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query2.lastError().text()) ; } else { query2.bindValue(":h1", aProfile.iHash160bits[0]); query2.bindValue(":h2", aProfile.iHash160bits[1]); query2.bindValue(":h3", aProfile.iHash160bits[2]); query2.bindValue(":h4", aProfile.iHash160bits[3]); query2.bindValue(":h5", aProfile.iHash160bits[4]); query2.bindValue(":last_msgpoll_time", aTimeStamp); ret = query2.exec() ; if ( !ret ) { QLOG_STR(query2.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query2.lastError().text()) ; } } } void ProfileModel::setPrivateDataForProfile( const Hash& aProfile, const QVariant& aPrivateData ) { QByteArray dataJSon (JSonWrapper::serialize(aPrivateData) ) ; QByteArray encryptedJson ; QList privateDataReaders ; privateDataReaders << aProfile ; // private data is encrypted only to self QLOG_STR("private data = " + QString(dataJSon)) ; if ( iController->model().contentEncryptionModel().encrypt(privateDataReaders, dataJSon, encryptedJson ) ) { bool ret ; QSqlQuery query2 ; ret = query2.prepare("update privatekeys set private_data = :private_data where hash1=:h1 and hash2=:h2 and hash3=:h3 and hash4=:h4 and hash5=:h5") ; if ( !ret ) { QLOG_STR(query2.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query2.lastError().text()) ; } else { query2.bindValue(":h1", aProfile.iHash160bits[0]); query2.bindValue(":h2", aProfile.iHash160bits[1]); query2.bindValue(":h3", aProfile.iHash160bits[2]); query2.bindValue(":h4", aProfile.iHash160bits[3]); query2.bindValue(":h5", aProfile.iHash160bits[4]); query2.bindValue(":private_data", encryptedJson); ret = query2.exec() ; if ( !ret ) { QLOG_STR(query2.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query2.lastError().text()) ; } } } } QVariant ProfileModel::privateDataOfProfile( const Hash& aProfile ) { QVariant retval ; QSqlQuery query; bool ret ; ret = query.prepare ("select private_data from privatekeys where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5") ; if ( ret ) { query.bindValue(":hash1", aProfile.iHash160bits[0]); query.bindValue(":hash2", aProfile.iHash160bits[1]); query.bindValue(":hash3", aProfile.iHash160bits[2]); query.bindValue(":hash4", aProfile.iHash160bits[3]); query.bindValue(":hash5", aProfile.iHash160bits[4]); } ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) ) { QByteArray encryptedPrivateData ( query.value(0).toByteArray() ) ; QByteArray plainTextProfileData ; if ( iController->model().contentEncryptionModel().decrypt(encryptedPrivateData, plainTextProfileData ) ) { QLOG_STR("priv data: " + plainTextProfileData) ; retval = JSonWrapper::parse (plainTextProfileData, &ret); if ( !ret ) { retval = QVariant() ; } } } } return retval ; } time_t ProfileModel::getLastProfileUpdateTime( const Hash& aProfile ) { time_t retval ( 0 ) ; QSqlQuery query; bool ret ; ret = query.prepare ("select time_of_update_poll from profile where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5") ; if ( ret ) { query.bindValue(":hash1", aProfile.iHash160bits[0]); query.bindValue(":hash2", aProfile.iHash160bits[1]); query.bindValue(":hash3", aProfile.iHash160bits[2]); query.bindValue(":hash4", aProfile.iHash160bits[3]); query.bindValue(":hash5", aProfile.iHash160bits[4]); } ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() && !query.isNull(0) ) { retval = query.value(0).toUInt() ; } } return retval ; } void ProfileModel::setLastProfileUpdateTime( const Hash& aProfile,time_t aTime ) { QSqlQuery query; bool ret ; ret = query.prepare ("update profile set time_of_update_poll = :time_of_update_poll where hash1 = :hash1 and hash2 = :hash2 and hash3 = :hash3 and hash4 = :hash4 and hash5 = :hash5") ; if ( ret ) { query.bindValue(":hash1", aProfile.iHash160bits[0]); query.bindValue(":hash2", aProfile.iHash160bits[1]); query.bindValue(":hash3", aProfile.iHash160bits[2]); query.bindValue(":hash4", aProfile.iHash160bits[3]); query.bindValue(":hash5", aProfile.iHash160bits[4]); query.bindValue(":time_of_update_poll", (unsigned) aTime) ; } ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } } void ProfileModel::reIndexAllProfilesIntoFTS() { QList profiles ; QSqlQuery query; bool ret ; query.exec("delete from profile_search") ; ret = query.prepare ("select hash1,hash2,hash3,hash4,hash5 from profile where is_private='false'") ; ret = query.exec() ; if ( !ret ) { emit error(MController::DbTransactionError, query.lastError().text()) ; } else { while ( query.next() ) { Hash hashFoundFromDb ( query.value(0).toUInt(), query.value(1).toUInt(), query.value(2).toUInt(), query.value(3).toUInt(), query.value(4).toUInt()) ; profiles.append(hashFoundFromDb) ; } } foreach ( const Hash& a, profiles ) { Profile* p ( profileByFingerPrint(a) ) ; if ( p ) { iModel.searchModel()->indexProfile( *p ) ; delete p ; } } } bool ProfileModel::deleteOldestDataRowInTable() { bool ret = false ; QSqlQuery query; // this overridden version from datamodelbase is different in // that way that this looks also into table privatekeys // and does not delete profiles that we have private keys for. ret = query.exec("delete from " + iDataTableName + " where rowid = ( select max(rowid) from (select rowid from " + iDataTableName + " where time_last_reference = ( select min(time_last_reference) from " + iDataTableName + " where hash1 not in ( select hash1 from privatekeys ) ) ) ) ") ; if ( ret ) { iCurrentDbTableRowCount-- ; } return ret ; } classified-ads-0.09/datamodel/profilemodel.h000066400000000000000000000271261260620453500211140ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CLASSIFIED_PROFILEMODEL_H #define CLASSIFIED_PROFILEMODEL_H #include #include "../mcontroller.h" // because enum from there is needed #include "../net/connection.h" #include "datamodelbase.h" class Hash ; class MModelProtocolInterface ; class Profile ; /** * @brief This is is part of datamodel for storing user profiles * * Encryption keys related to profiles need to be done using * ContentEncryptionModel but after it has done its job, * this part of datamodel handles that actual profile-content */ class ProfileModel : public ModelBase { Q_OBJECT public: ProfileModel(MController *aMController, const MModelProtocolInterface &aModel) ; ~ProfileModel() ; /** * sends profile to selected nodes in network for others * to retrieve. * * The reason why this method is in model (and not for instance, * in Controller) is that "publish" means that a particular * profile is stored into and marked as "needs to be published". * Before that happens we need to open network connections to * nodes that are supposed to contain the profile and once * connections are open, then same profile is pushed into several * nodes until it is considered "published". That opening and * pushing-part happens by networking-parts. * * @param aProfile is the profile to publish * @return true if things went all right */ bool publishProfile(const Profile& aProfile) ; /** * gets a profile. caller is supposed to delete the returned * profile. * @param aFingerPrint profile serial number * @param aEmitErrorOnEncryptionErrors if true and profile cannot * be opened because selected operator is not in list of * readers then an error message shall be emit()ted. * This is set to false for trust-tree related operations * where it is likely that selected operator is not reader * of every operator trusted by selected operator. * @param aOmitImage if set to true, possible image will not be loaded from * data ; in cases where we know that we'll need only subset of * information and no image, we can skip this costly operation * @return profile or NULL */ Profile* profileByFingerPrint(const Hash& aFingerPrint, bool aEmitErrorOnEncryptionErrors = true, bool aOmitImage = false ) ; /** * Gets a profile. Because profile is signed .. and that means that * a particular byte-stream (containing actually a serialized json * object) gets signed those bytes can't be altered or signature will * not verify. This methods gets the actual signed bytestream * that has been checked against a public key. * * Note that this method does not check the signature any more, * idea is that we don't store into db profiles that fail the signature * check so this method only gets the profile, does not set it. * * @param aFingerPrint profile serial number * @param aResultingProfileData will contain profile data * @param aResultingSignature will contain profile signature * @param aIsProfilePrivate will be set to true if aResultingProfileData * is encrypted. * @param aTimeOfPublish is also output variable, if non-NULL, will * get its value set to time of publish of the profile * @param aResultingPublicKey if non-NULL, will be written to * contain the public key of the profile * @return true if profile was found */ bool profileDataByFingerPrint(const Hash& aFingerPrint, QByteArray& aResultingProfileData, QByteArray& aResultingSignature, bool* aIsProfilePrivate, quint32* aTimeOfPublish = NULL, QByteArray* aResultingPublicKey = NULL ) ; /** * called by protocol parser when a profile is received * @param aFingerPrint is the profile @ref Hash received from protocol header * @param aContent is actual profile data * @param aSignature is digital signature of the aContent * @param aBangPath is list of last nodes where this content has been, idea is to * prevent re-sending content to somewhere where it has already * been * @param aProfilePublicKey is the key that was used to sign the profile. * that is transferred outside profile just because the recipient * might not have the key beforehand ; if she does, the existing * key will be used in verifying process. * @param aFlag possible flags telling about encyption and compression * @param aTimeStamp timestamp of profile (if encrypted, it must be carried outside..) * @return true on success */ bool publishedProfileReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aProfilePublicKey, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& aFromNode) ; /** * called by protocol parser when a profile is received by "send" protocol type * @param aFingerPrint is the profile @ref Hash received from protocol header * @param aContent is actual profile data * @param aSignature is digital signature of the aContent * @param aProfilePublicKey is the key that was used to sign the profile. * that is transferred outside profile just because the recipient * might not have the key beforehand ; if she does, the existing * key will be used in verifying process. * @param aFlag possible flags telling about encyption and compression * @param aTimeStamp timestamp of profile (if encrypted, it must be carried outside..) * @return true on success */ bool sentProfileReceived(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QByteArray& aProfilePublicKey, const unsigned char aFlags, const quint32 aTimeStamp, const Hash& fromNode ) ; /** * Method for filling connected peers send queue with items * that we have and that belong to said peers bucket. * * @param aSendQueue is send-queue of the connection that * serves particular node * @param aStartOfBucket is hash where bucket of that peer * starts. In practice it is the hash * of the node itself. * @param aEndOfBucket is hash where bucket of that peer ends. * That in turn depends on network size, * or number of active nodes in the network. * See method @ref NodeModel::bucketEndHash * for details. * @param aLastMutualConnectTime time when node was last in * contact. In practice we'll fill the * bucket items published after this time. */ void fillBucket(QList& aSendQueue, const Hash& aStartOfBucket, const Hash& aEndOfBucket, quint32 aLastMutualConnectTime, const Hash& aForNode ); /** * method for find a profile that we have private keys for and * that has not had its private messages polled for given * time (say, 15 minutes). See method * @ref NetworkConnectorEngine::createConnectionsToNodesStoringPrivateMessages * @param aLastPollTime output variable. this points to quint32 that * (if profile is found) will have its value set to time * of last message poll for the profile returned. * @return fingerprint of node or KNullHash if every profile * with private keys has had its messages polled recently */ Hash profileWithOldestTimeSinceMsgPoll(quint32* aLastPollTime) ; /** * method that is called after successful message poll ; it set * the message poll timestamp for a profile */ void setPrivateMessagePollTimeForProfile(const quint32 aTimeStamp, const Hash& aProfile ) ; /** * Updates private data of a profile whose private key we * stored locally. In first stage this private data includes * contact list, later maybe trust settings etc. */ void setPrivateDataForProfile( const Hash& aProfile, const QVariant& aPrivateData ) ; /** * Getter-method for private data of a profile. This "Private data" is * locally-stored settings-type of data specific to profile and it is * not shared inside network. */ QVariant privateDataOfProfile( const Hash& aProfile ) ; /** * Gets time of last (successful) profile update+comment poll. */ time_t getLastProfileUpdateTime( const Hash& aProfile ) ; /** * sets time of last (successful) profile update+comment poll. */ void setLastProfileUpdateTime( const Hash& aProfile,time_t aTime ) ; void reIndexAllProfilesIntoFTS() ; private: // methods /** * Workhorse of methods @ref publishedProfileReceived and @ref sentProfileReceived * @return true on success */ bool doHandlepublishedOrSentProfile(const Hash& aFingerPrint, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aProfilePublicKey, const unsigned char aFlags, const quint32 aTimeStamp, bool aWasPublish, const Hash& aFromNode ) ; /** * Overridden from ModelBase */ virtual bool deleteOldestDataRowInTable() ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; /** emitted when new profile is received */ void contentReceived(const Hash& aHashOfContent, const ProtocolItemType aTypeOfReceivdContent) ; private: // member variables: MController *iController ; const MModelProtocolInterface& iModel ; } ; #endif classified-ads-0.09/datamodel/profilereaderslistingmodel.cpp000066400000000000000000000150471260620453500244060ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include "profilereaderslistingmodel.h" #include "../log.h" #include "profile.h" ProfileReadersListingModel::ProfileReadersListingModel(Profile& aProfile) : iProfile(aProfile) { for ( int i = 0 ; i < iProfile.iProfileReaders.size() ; i++ ) { updateReaderDataInArray( iProfile.iProfileReaders[i],false ) ; } beginInsertColumns(QModelIndex(),0,0) ; endInsertColumns() ; beginInsertRows(QModelIndex(),0,iNamesAndFingerPrints.size()) ; endInsertRows() ; emit dataChanged(createIndex( 0 ,0), createIndex( iNamesAndFingerPrints.size() ,0)) ; } ProfileReadersListingModel::~ProfileReadersListingModel() { } int ProfileReadersListingModel::rowCount(const QModelIndex& ) const { return iNamesAndFingerPrints.size(); } int ProfileReadersListingModel::columnCount(const QModelIndex& ) const { return 1 ; // for the time being .. maybe this could be configurable? // add one column for possible icon // add another for optional delete-button with a drawing delegate? } QVariant ProfileReadersListingModel::data(const QModelIndex &index, int role) const { if(!index.isValid()) return QVariant(); if(role == Qt::DisplayRole) { return iNamesAndFingerPrints.at(index.row()).second ; //return iProfiles.at(index.row()).toString(); } if(role == Qt::DecorationRole) { // here return QIcon of size 26x26 featuring lenin reading pravda? return QVariant(); } if(role == Qt::ToolTipRole) { return iNamesAndFingerPrints.at(index.row()).first.toString() ; } return QVariant(); } void ProfileReadersListingModel::addReader(const Hash& aFingerPrint) { if ( ! iProfile.iProfileReaders.contains(aFingerPrint) ) { iProfile.iProfileReaders.append(aFingerPrint) ; updateReaderDataInArray(aFingerPrint,true) ; } } void ProfileReadersListingModel::removeReader(const Hash& aFingerPrint) { int i ; if ( iProfile.iProfileReaders.contains(aFingerPrint) ) { iProfile.iProfileReaders.removeOne(aFingerPrint) ; for ( i = 0 ; i < iNamesAndFingerPrints.size() ; i++ ) { if ( iNamesAndFingerPrints.at(i).first == aFingerPrint ) { beginRemoveRows(QModelIndex(),i,i) ; iNamesAndFingerPrints.removeAt(i); endRemoveRows() ; break ; } } } } void ProfileReadersListingModel::updateReaderDataInArray( const Hash& aFingerPrint,bool aEmit ) { bool found = false ; int i ; for ( i = 0 ; i < iNamesAndFingerPrints.size() ; i++ ) { if ( iNamesAndFingerPrints.at(i).first == aFingerPrint ) { iNamesAndFingerPrints.replace(i, QPair ( aFingerPrint, profileDisplayNameByFingerPrint(aFingerPrint) ) ); found = true ; break ; } } if(!found) { // was not contained beginInsertRows(QModelIndex(),iNamesAndFingerPrints.size(),iNamesAndFingerPrints.size()) ; iNamesAndFingerPrints.append( QPair ( aFingerPrint, profileDisplayNameByFingerPrint(aFingerPrint) )); i = iNamesAndFingerPrints.size() ; endInsertRows() ; found = true ; } if ( aEmit && found ) { int minRow = i>0 ? i-1 : 0 ; int maxRow = i>=iNamesAndFingerPrints.size()? iNamesAndFingerPrints.size():i+1 ; LOG_STR2("Emit from row %d", minRow) ; LOG_STR2("Emit to row %d", maxRow) ; emit dataChanged(createIndex( minRow,0), createIndex( maxRow,0)); } } QString ProfileReadersListingModel::profileDisplayNameByFingerPrint(const Hash& aFingerPrint) { // some kind of caching could be in order here? we'll repeatedly list // same profilenames, querying db for each and every listing is waste // of resources.. QSqlQuery query; bool ret ; QString retval ; ret = query.prepare ( "select display_name from profile where " "hash1=:hash1 and hash2=:hash2 and hash3=:hash3 " "and hash4=:hash4 and hash5=:hash5 " ) ; if ( ret ) { query.bindValue(":hash1", aFingerPrint.iHash160bits[0]); query.bindValue(":hash2", aFingerPrint.iHash160bits[1]); query.bindValue(":hash3", aFingerPrint.iHash160bits[2]); query.bindValue(":hash4", aFingerPrint.iHash160bits[3]); query.bindValue(":hash5", aFingerPrint.iHash160bits[4]); ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { if ( query.next() ) { retval = QString::fromUtf8(query.value(0).toByteArray()) ; } } } else { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } if ( retval.length() == 0 ) { retval = aFingerPrint.toString() ; } return retval ; } QVariant ProfileReadersListingModel::headerData(int aSection, Qt::Orientation orientation, int role) const { if (role != Qt::DisplayRole) return QVariant(); if (orientation == Qt::Horizontal) { switch (aSection) { case 0: return QVariant(tr("Name or fingerprint of reader")); break ; default: return QVariant(); } } return QVariant(); } classified-ads-0.09/datamodel/profilereaderslistingmodel.h000066400000000000000000000055361260620453500240550ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef PROFILEREADERLISTINGMODEL_H #define PROFILEREADERLISTINGMODEL_H #include #include "../util/hash.h" #include "../mcontroller.h" class Profile ; class Model ; /** * @brief Model-class for helping display of readers of a profile */ class ProfileReadersListingModel: public QAbstractTableModel { Q_OBJECT public: ProfileReadersListingModel(Profile& aProfile) ;/**< Constructor */ ~ProfileReadersListingModel() ; /**< Destructor */ /** * method for adding a reader. this change will be made to iProfile * too. * @param aFingerPrint is fingerprint of the reader to add */ void addReader(const Hash& aFingerPrint) ; /** * method for removing a reader. this change will be made to iProfile * too. * @param aFingerPrint is fingerprint of the reader to remove */ void removeReader(const Hash& aFingerPrint) ; /** * method for retrieving display-name of a profile */ QString profileDisplayNameByFingerPrint(const Hash& aFingerPrint) ; /** * re-implemented from QAbstractTableModel * @return number of rows in list */ virtual int rowCount(const QModelIndex & parent = QModelIndex()) const ; /** * re-implemented from QAbstractTableModel * @return number of columns in model */ virtual int columnCount ( const QModelIndex & parent = QModelIndex() ) const ; /** * re-implemented from QAbstractTableModel * @return data to display in list */ virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const ; virtual QVariant headerData(int aSection, Qt::Orientation orientation, int role) const ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: // methods void updateReaderDataInArray( const Hash& aFingerPrint,bool aEmit ) ; private: // data Profile& iProfile ; QList > iNamesAndFingerPrints ; } ; #endif classified-ads-0.09/datamodel/profilesearchmodel.cpp000066400000000000000000000070321260620453500226270ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include "profilesearchmodel.h" #include "../log.h" #include "../mcontroller.h" ProfileSearchModel::ProfileSearchModel(Model& aModel) : iModel(aModel) { } ProfileSearchModel::~ProfileSearchModel() { } int ProfileSearchModel::rowCount(const QModelIndex& ) const { return iProfiles.size(); } QVariant ProfileSearchModel::data(const QModelIndex &index, int role) const { if(!index.isValid()) return QVariant(); if(role == Qt::DisplayRole) { return iProfiles.at(index.row()).second ; //return iProfiles.at(index.row()).toString(); } if(role == Qt::DecorationRole) { // here return QIcon of size 26x26 featuring lenin reading pravda? return QVariant(); } if(role == Qt::ToolTipRole) { return iProfiles.at(index.row()).first.toString() ; } return QVariant(); } void ProfileSearchModel::setSearchString(const QString& aSearch) { iSearchString = aSearch ; // ok .. what next. .. don't search with empty if ( iSearchString.length() == 0 ) { iProfiles.clear() ; } else { performSearch() ; } emit dataChanged(createIndex(0,0),createIndex(iProfiles.size(),0)) ; } void ProfileSearchModel::performSearch() { QSqlQuery query; bool ret ; ret = query.prepare ("select hash1,hash2,hash3,hash4,hash5," "display_name from profile where " "display_name like :searchcriteria " "order by display_name limit 100" ) ; if ( ret ) { QString queryString ("%" + iSearchString + "%") ; query.bindValue(":searchcriteria", queryString.toUtf8() ) ; ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { while ( query.next() ) { quint32 hash1 = query.value(0).toUInt() ; quint32 hash2 = query.value(1).toUInt() ; quint32 hash3 = query.value(2).toUInt() ; quint32 hash4 = query.value(3).toUInt() ; quint32 hash5 = query.value(4).toUInt() ; iProfiles.append( QPair ( Hash ( hash1,hash2,hash3,hash4,hash5), QString::fromUtf8(query.value(5).toByteArray())) ); } } } else { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } } classified-ads-0.09/datamodel/profilesearchmodel.h000066400000000000000000000040401260620453500222700ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef PROFILESEARCHMODEL_H #define PROFILESEARCHMODEL_H #include #include "../util/hash.h" #include "../mcontroller.h" class Model ; /** * @brief Model-class for performing a name-based search of profiles. * This is supposed to act as an underlying data-container for * an user-interface view (QListView etc.) */ class ProfileSearchModel: public QAbstractListModel { Q_OBJECT public: ProfileSearchModel(Model& aModel) ; ~ProfileSearchModel() ; void setSearchString(const QString& aSearch) ; /** * re-implemented from QAbstractListModel * @return number of rows in list */ virtual int rowCount(const QModelIndex & parent = QModelIndex()) const ; /** * re-implemented from QAbstractListModel * @return data to display in list */ virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private:// methods void performSearch() ; private: // data Model& iModel ; QList > iProfiles ; QString iSearchString ; } ; #endif classified-ads-0.09/datamodel/searchmodel.cpp000066400000000000000000000627431260620453500212600ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include "searchmodel.h" #include "../log.h" #include #include "ca.h" #include "profile.h" #include "profilecomment.h" #include "model.h" #include static const char *KJsonSearchResultId = "id" ; static const char *KJsonSearchResultSet = "set" ; static const char *KJsonSearchItemType = "type" ; static const char *KJsonSearchItemTypeCA = "ca" ; static const char *KJsonSearchItemTypeProfile = "prof" ; static const char *KJsonSearchItemTypeComment = "comm" ; static const char *KJsonSearchItemFP = "fp" ; static const char *KJsonSearchItemSnippet = "text" ; SearchModel::SearchModel(MModelProtocolInterface& aModel, MController& aController) : iModel(aModel), iIsFTSSupported(queryIfFTSSupported()), iController(aController) { } SearchModel::~SearchModel() { } int SearchModel::rowCount(const QModelIndex& ) const { return iDisplayedResults.count() ; } QVariant SearchModel::data(const QModelIndex &index, int role) const { if(!index.isValid()) { return QVariant(); } else if ( role == Qt::UserRole ) { return iDisplayedResults.at(index.row()).iItemHash.toQVariant() ; } else if ( role == Qt::UserRole+2 ) { return iDisplayedResults.at(index.row()).iFoundFromNode.toQVariant() ; } if ( role == Qt::UserRole+1 ) { return iDisplayedResults.at(index.row()).iItemType ; } else if ( role == Qt::DisplayRole ) { return iDisplayedResults.at(index.row()).iDisplayName ; } else { return QVariant(); } } // datamodel better be locked when calling this method void SearchModel::setSearchString(const QString& aSearch, bool aSearchAds, bool aSearchProfiles, bool aSearchComments, bool aNetworkSearch) { #if QT_VERSION >= 0x050000 // qt5 beginResetModel() ; #endif iSearchString = aSearch ; iSearchAds = aSearchAds ; iSearchProfiles = aSearchProfiles ; iSearchComments = aSearchComments ; iDisplayedResults.clear() ; if ( aSearch.length() > 0 && ( aSearchAds || aSearchProfiles || aSearchComments ) ) { // ok, user has something to search for if ( aNetworkSearch == false ) { // then search locally iDisplayedResults = performSearch(aSearch, aSearchAds, aSearchProfiles, aSearchComments) ; } else { // spam search to every connected node. Here don't use the normal "net request // queue" but instead short-circuit the query into each connected nodes // send queue - will be faster, will query only already-connected nodes. this // is all right. SendQueueItem itemToSpam ; iSearchId.calculate(aSearch.toUtf8()) ; itemToSpam.iItemType = RequestForSearchSend ; itemToSpam.iHash = iSearchId ; QLOG_STR("Starting network search, search id = " + QString::number(iSearchId.iHash160bits[0]) + " model = " + objectName()) ; LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Searchmodel ptr") ; const QList & currentConnections ( iController.model().getConnections() ) ; for ( int i = currentConnections.size()-1 ; i >= 0 ; i-- ) { Connection& c ( *(currentConnections[i]) ) ; if ( c.connectionState() == Connection::Open && c.iNumberOfPacketsReceived > 1 ) { c.iSendQueue.append( itemToSpam ) ; } } } } #if QT_VERSION >= 0x050000 endResetModel() ; #else reset() ; #endif } bool SearchModel::queryIfFTSSupported() { bool retval ( false ) ; QSqlQuery query ; if ( query.prepare ("select trim(upper(sqlite_compileoption_get(:optNumber)))" ) ) { int i = 0 ; QString queryRes ; do { queryRes = QString() ; query.bindValue(":optNumber",i); if ( query.exec() ) { if ( query.next() && !query.isNull(0) ) { queryRes = query.value(0).toString() ; if ( queryRes == "ENABLE_FTS3" ) { retval = true ; QLOG_STR("FTS is supported") ; break ; } else { QLOG_STR("Sqlite option #" + QString::number(i) + ":'"+queryRes+"'") ; } } else { break ; } } else { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; break ; // out of loop } i++ ; } while ( queryRes.length() > 0 ) ; } return retval ; } void SearchModel::createFTSTables() { QSqlQuery q; bool ret ; ret = q.exec("create virtual table classified_ad_search using fts3(senderhash,sendername,subject,text)") ; if (!ret) { QLOG_STR("FTS3 table classified_ad_search creation: " + q.lastError().text()) ; return ; } // this trigger will handle unfairly documents where there is // hash collision in the first 32 bits, e.g. no full hash collision // needed. // // but this simplifies things, we don't need to fetch rowid after // insert and it is only 1/(2^32) chance so lets go. should be fairly rare // and then we lose only the search, the document is still there. ret = q.exec("CREATE TRIGGER classified_ad_search_del BEFORE DELETE ON classified_ad BEGIN" " DELETE FROM classified_ad_search WHERE docid=old.hash1;" "END;" ) ; if (!ret) { QLOG_STR("FTS3 classified_ad_search_del trigger: " + q.lastError().text()) ; return ; } // then search for profile: ret = q.exec("create virtual table profile_search using fts3(profilehash,nickname,greetingtext,firstname,familyname,city,btc,state)") ; if (!ret) { QLOG_STR("FTS3 table profile_search creation: " + q.lastError().text()) ; return ; } ret = q.exec("CREATE TRIGGER profile_search_del BEFORE DELETE ON profile BEGIN" " DELETE FROM profile_search WHERE docid=old.hash1;" "END;" ) ; if (!ret) { QLOG_STR("FTS3 profile_search_del trigger: " + q.lastError().text()) ; return ; } // then search for profilecomment: ret = q.exec("create virtual table profilecomment_search using fts3(profilehash,commentorhash,comment,commentsubject,commentornickname)") ; if (!ret) { QLOG_STR("FTS3 table profilecomment_search creation: " + q.lastError().text()) ; return ; } ret = q.exec("CREATE TRIGGER profilecomment_search_del BEFORE DELETE ON profilecomment BEGIN" " DELETE FROM profilecomment_search WHERE docid=old.hash1;" "END;" ) ; if (!ret) { QLOG_STR("FTS3 classified_ad_search_del trigger: " + q.lastError().text()) ; return ; } return ; } void SearchModel::indexClassifiedAd(const CA& aCa) { if ( iIsFTSSupported && aCa.iMessageText.length() > 0 ) { // dig out message text in plain text QLOG_STR("indexClassifiedAd setHtml, len = " + QString::number( aCa.iMessageText.length() ) ) ; QTextDocument* htmlParser = new QTextDocument() ; // create every time, because this method // is called from multiple threads htmlParser->setHtml(aCa.iMessageText ) ; QString plainText(htmlParser->toPlainText()) ; htmlParser->clear() ; bool operation_success (false) ; if ( plainText.length() > 0 ) { QSqlQuery ins ; operation_success= ins.prepare("insert into classified_ad_search(" "docid,senderhash,sendername,subject,text) values (" ":hash1,:senderhash,:sendername,:subject,:text)") ; if ( operation_success ) { ins.bindValue(":hash1", aCa.iFingerPrint.iHash160bits[0]); ins.bindValue(":senderhash", aCa.iSenderHash.toString()) ; ins.bindValue(":sendername", aCa.iSenderName.length() > 0 ? aCa.iSenderName.toUtf8() : aCa.iSenderHash.toString()) ; ins.bindValue(":subject", aCa.iSubject.toUtf8()) ; ins.bindValue(":text", plainText.toUtf8()) ; if ( ins.exec() == false ) { // if indexing fails, put out only log message, because we'll want // to have the actual document anyway.. QLOG_STR("insert into classified_ad_search exec : " + ins.lastError().text()) ; } } else { QLOG_STR("insert into classified_ad_search : " + ins.lastError().text()) ; } } delete htmlParser ; } } void SearchModel::indexProfileComment(const ProfileComment& aProfileComment) { if ( iIsFTSSupported && aProfileComment.iFingerPrint!=KNullHash ) { bool operation_success (false) ; QTextDocument* htmlParser = new QTextDocument() ; // create every time, because this method // is called from multiple threads htmlParser->setHtml(aProfileComment.iCommentText ) ; QString plainText(htmlParser->toPlainText()) ; htmlParser->clear() ; QSqlQuery ins ; operation_success= ins.prepare("insert into profilecomment_search(" "docid,profilehash,commentorhash,comment,commentsubject,commentornickname) values (" ":hash1,:profilehash,:commentorhash,:comment,:commentsubject,:commentornickname)") ; if ( operation_success ) { ins.bindValue(":hash1", aProfileComment.iFingerPrint.iHash160bits[0]); ins.bindValue(":profilehash", aProfileComment.iProfileFingerPrint.toString()) ; ins.bindValue(":commentorhash",aProfileComment.iCommentorHash.toString()) ; ins.bindValue(":comment",plainText.toUtf8()) ; ins.bindValue(":commentsubject",aProfileComment.iSubject.toUtf8()) ; ins.bindValue(":commentornickname",aProfileComment.iCommentorNickName.toUtf8()) ; if ( ins.exec() == false ) { // if indexing fails, put out only log message, because we'll want // to have the actual document anyway.. QLOG_STR("insert/update into profilecomment_search exec : " + ins.lastError().text()) ; } } else { QLOG_STR("insert/update into profilecomment_search : " + ins.lastError().text()) ; } delete htmlParser ; } } void SearchModel::indexProfile(const Profile& aProfile, bool aWasUpdate) { if ( iIsFTSSupported && aProfile.iFingerPrint!=KNullHash ) { bool operation_success (false) ; QSqlQuery ins ; if ( aWasUpdate == true ) { // was insert ; also do insert into index operation_success= ins.prepare("update profile_search set " "profilehash=:profilehash,nickname=:nickname,greetingtext=:greetingtext,firstname=:firstname,familyname=:familyname,city=:city,btc=:btc,state=:state where docid=:hash1") ; } else { operation_success= ins.prepare("insert into profile_search(" "docid,profilehash,nickname,greetingtext,firstname,familyname,city,btc,state) values (" ":hash1,:profilehash,:nickname,:greetingtext,:firstname,:familyname,:city,:btc,:state)") ; } if ( operation_success ) { ins.bindValue(":hash1", aProfile.iFingerPrint.iHash160bits[0]); ins.bindValue(":profilehash", aProfile.iFingerPrint.toString()) ; ins.bindValue(":nickname",aProfile.iNickName.toUtf8()) ; ins.bindValue(":greetingtext",aProfile.iGreetingText.toUtf8()) ; ins.bindValue(":firstname",aProfile.iFirstName.toUtf8()) ; ins.bindValue(":familyname",aProfile.iFamilyName.toUtf8()) ; ins.bindValue(":city",aProfile.iCityCountry.toUtf8()) ; ins.bindValue(":btc",aProfile.iBTCAddress.toUtf8()) ; ins.bindValue(":state",aProfile.iStateOfTheWorld.toUtf8()) ; if ( ins.exec() == false ) { // if indexing fails, put out only log message, because we'll want // to have the actual document anyway.. QLOG_STR("insert/update into profile_search exec : " + ins.lastError().text()) ; } } else { QLOG_STR("insert/update into profile_search : " + ins.lastError().text()) ; } } } QList SearchModel::performSearch(const QString& aForString, bool aSearchAds, bool aSearchProfiles, bool aSearchComments) { QList results ; if ( aSearchAds ) { QSqlQuery query; bool ret ; ret = query.prepare ("select classified_ad.hash1,classified_ad.hash2," "classified_ad.hash3,classified_ad.hash4," "classified_ad.hash5," "classified_ad_search.subject from classified_ad , " "classified_ad_search where " "classified_ad.hash1=classified_ad_search.docid and " "classified_ad_search MATCH :searchcriteria" ) ; if ( ret ) { query.bindValue(":searchcriteria", aForString.toUtf8() ) ; ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { while ( query.next() ) { quint32 hash1 = query.value(0).toUInt() ; quint32 hash2 = query.value(1).toUInt() ; quint32 hash3 = query.value(2).toUInt() ; quint32 hash4 = query.value(3).toUInt() ; quint32 hash5 = query.value(4).toUInt() ; SearchResultItem i ; i.iItemType = ClassifiedAd ; i.iItemHash = Hash ( hash1,hash2,hash3,hash4,hash5) ; i.iFoundFromNode = iController.getNode().nodeFingerPrint() ; if ( query.isNull(5) ) { i.iDisplayName = i.iItemHash.toString() ; } else { i.iDisplayName = query.value(5).toString() ; } results.append(i) ; } } } else { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } } // then search profiles if ( aSearchProfiles ) { QSqlQuery query; bool ret ; ret = query.prepare ("select profile.hash1,profile.hash2," "profile.hash3,profile.hash4," "profile.hash5," "profile.display_name from profile , " "profile_search where " "profile.hash1=profile_search.docid and " "profile_search MATCH :searchcriteria" ) ; if ( ret ) { query.bindValue(":searchcriteria", aForString.toUtf8() ) ; ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { while ( query.next() ) { quint32 hash1 = query.value(0).toUInt() ; quint32 hash2 = query.value(1).toUInt() ; quint32 hash3 = query.value(2).toUInt() ; quint32 hash4 = query.value(3).toUInt() ; quint32 hash5 = query.value(4).toUInt() ; SearchResultItem i ; i.iItemType = UserProfile ; i.iItemHash = Hash ( hash1,hash2,hash3,hash4,hash5) ; i.iFoundFromNode = iController.getNode().nodeFingerPrint() ; if ( query.isNull(5) ) { i.iDisplayName = i.iItemHash.toString() ; } else { i.iDisplayName = query.value(5).toString() ; } results.append(i) ; } } } else { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } } // then search comments if ( aSearchComments ) { QSqlQuery query; bool ret ; ret = query.prepare ("select profilecomment.hash1,profilecomment.hash2," "profilecomment.hash3,profilecomment.hash4," "profilecomment.hash5," "profilecomment.display_name from profilecomment , " "profilecomment_search where " "profilecomment.hash1=profilecomment_search.docid and " "profilecomment_search MATCH :searchcriteria" ) ; if ( ret ) { query.bindValue(":searchcriteria", aForString.toUtf8() ) ; ret = query.exec() ; if ( !ret ) { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } else { while ( query.next() ) { quint32 hash1 = query.value(0).toUInt() ; quint32 hash2 = query.value(1).toUInt() ; quint32 hash3 = query.value(2).toUInt() ; quint32 hash4 = query.value(3).toUInt() ; quint32 hash5 = query.value(4).toUInt() ; SearchResultItem i ; i.iItemType = UserProfileComment ; i.iItemHash = Hash ( hash1,hash2,hash3,hash4,hash5) ; i.iFoundFromNode = iController.getNode().nodeFingerPrint() ; if ( query.isNull(5) ) { i.iDisplayName = i.iItemHash.toString() ; } else { i.iDisplayName = query.value(5).toString() ; } results.append(i) ; } } } else { QLOG_STR(query.lastError().text() + " "+ __FILE__ + QString::number(__LINE__)) ; emit error(MController::DbTransactionError, query.lastError().text()) ; } } return results ; } void SearchModel::getSearchCriteria(QString* aSearchStrPtr, bool* aSearchAdsPtr, bool* aSearchProfilesPtr, bool* aSearchCommentsPtr, Hash* aSearchIdPtr ) const { if ( iSearchString.length() > 0 && ( iSearchAds || iSearchProfiles || iSearchComments ) ) { *aSearchStrPtr = iSearchString ; *aSearchIdPtr = iSearchId ; *aSearchAdsPtr = iSearchAds ; *aSearchProfilesPtr = iSearchProfiles ; *aSearchCommentsPtr = iSearchComments ; QLOG_STR("SearchModel::getSearchCriteria, search id = " + QString::number(aSearchIdPtr->iHash160bits[0])) ; } else { *aSearchStrPtr = "" ; *aSearchIdPtr = KNullHash ; } } QVariant SearchModel::serializeSearchResults(const QList& aResults, quint32 aSearchId ) { QMap m ; m.insert(KJsonSearchResultId, aSearchId) ; QList resultSet ; for ( int i = aResults.size()-1 ; i >= 0 ; i-- ) { QMap itemContents ; switch ( aResults[i].iItemType ) { case ClassifiedAd: itemContents.insert(KJsonSearchItemType,KJsonSearchItemTypeCA) ; break ; case UserProfile: itemContents.insert(KJsonSearchItemType,KJsonSearchItemTypeProfile) ; break ; case UserProfileComment: itemContents.insert(KJsonSearchItemType,KJsonSearchItemTypeComment) ; break ; default: QLOG_STR("Unhandled search result type " + QString::number( aResults[i].iItemType ) ) ; break ; } itemContents.insert(KJsonSearchItemFP, aResults[i].iItemHash.toString()) ; itemContents.insert(KJsonSearchItemSnippet, aResults[i].iDisplayName.toUtf8()) ; QVariant item ( itemContents ) ; resultSet.append(item) ; } m.insert(KJsonSearchResultSet, resultSet) ; QVariant toplevel(m) ; return toplevel ; } bool SearchModel::deSerializeSearchResults(const QVariantMap& aResultJson, QList* aResults, quint32* aSearchId ) { bool retval ( false ) ; if ( aResultJson.contains(KJsonSearchResultId) && aResultJson.contains(KJsonSearchResultSet)) { retval = true ; *aSearchId = aResultJson[KJsonSearchResultId].toUInt() ; const QList resultset (aResultJson[KJsonSearchResultSet].toList()) ; QLOG_STR("Search results set size = " + QString::number(resultset.size())) ; foreach (const QVariant& item, resultset) { const QVariantMap m ( item.toMap() ) ; SearchResultItem resultingItem ; if ( m.contains(KJsonSearchItemType) && m[KJsonSearchItemType].toString() == KJsonSearchItemTypeCA ) { resultingItem.iItemType = ClassifiedAd ; } else if ( m.contains(KJsonSearchItemType) && m[KJsonSearchItemType].toString() == KJsonSearchItemTypeProfile ) { resultingItem.iItemType = UserProfile ; } else if ( m.contains(KJsonSearchItemType) && m[KJsonSearchItemType].toString() == KJsonSearchItemTypeComment ) { resultingItem.iItemType = UserProfileComment ; } else { retval = false ; break ; } if ( m.contains(KJsonSearchItemFP) ) { resultingItem.iItemHash.fromString(reinterpret_cast(m[KJsonSearchItemFP].toByteArray().constData())) ; } else { retval = false ; break ; } if ( m.contains(KJsonSearchItemSnippet) ) { QByteArray textOfResult ( m[KJsonSearchItemSnippet].toByteArray() ) ; QLOG_STR("Text of search result= " + QString(textOfResult)); resultingItem.iDisplayName = QString::fromUtf8(textOfResult) ; } else { retval = false ; break ; } aResults->append(resultingItem) ; } } return retval ; } void SearchModel::appendNetworkSearchResults(const QList& aResults, quint32 aSearchId, const Hash& aFromPeer) { if ( aSearchId == iSearchId.iHash160bits[0] ) { beginInsertRows(QModelIndex(), iDisplayedResults.size(), iDisplayedResults.size()) ; foreach ( const SearchResultItem& i, aResults ) { if ( ! iDisplayedResults.contains(i) ) { SearchResultItem newItem ( i ) ; newItem.iFoundFromNode = aFromPeer ; iDisplayedResults.append(newItem) ; QLOG_STR("Search result name " + newItem.iDisplayName ) ; QLOG_STR("Search result type " + QString::number(newItem.iItemType) ) ; QLOG_STR("Search result hash " + newItem.iItemHash.toString() ) ; } else { QLOG_STR("Offered search result item was already included") ; } } endInsertRows() ; } else { QLOG_STR("appendNetworkSearchResults, our id = " + QString::number(iSearchId.iHash160bits[0]) + " offered = " + QString::number(aSearchId) + " model = " + objectName()) ; LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Searchmodel ptr") ; } } bool SearchModel::SearchResultItemStruct::operator==(const SearchResultItemStruct& aItemToCompare) const { return iItemHash == aItemToCompare.iItemHash ; } classified-ads-0.09/datamodel/searchmodel.h000066400000000000000000000165021260620453500207150ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef FULLTEXTSEARCHMODEL_H #define FULLTEXTSEARCHMODEL_H #include #include "../util/hash.h" #include "../net/protocol.h" #include "../mcontroller.h" #include // is actually typedef class MModelProtocolInterface ; class CA ; class Profile ; class ProfileComment ; class QTextDocument ; // for parsing html /** * @brief Model-class for performing text-based searches on objects in db * This datamodel part is dual-use ; it inherits listmodel so that * it may be used as underlaying data-container for list views. * It may also be used as engine of network searches that happen * invisibly to user e.g. those queries do not modify the content * shown to UI via QAbstractListModel. */ class SearchModel: public QAbstractListModel { Q_OBJECT public: /** * Data structure for search results. */ typedef struct SearchResultItemStruct { ProtocolItemType iItemType ;/**< If is CA, profile or comment */ Hash iItemHash ; /**< Fingerprint of item found in search */ Hash iFoundFromNode ; /**< Fingerprint of node where item was found */ QString iDisplayName ; /**< String to show on UI for this result item */ /** eevil thing, a method in struct. c++ permits. only the comparison */ bool operator==(const struct SearchResultItemStruct& a) const ; } SearchResultItem ; SearchModel(MModelProtocolInterface& aModel, MController& aController) ; ~SearchModel() ; /** * Method that performs search from local UI. This * will change model contens as is shown via * QAbstractListModel inheritance * * aSearch is the string to offer to FTS implementation * aSearchAds if true, classified ads are to be searched * aSearchProfiles if true, profiles are to be searched * aSearchComments if true, profile comments are to be searched. * aNetworkSeacrh if true no local search is performed, and datamodel * is emptied with idea that search results from * remote nodes will populate the model */ void setSearchString(const QString& aSearch, bool aSearchAds, bool aSearchProfiles, bool aSearchComments, bool aNetworkSeacrh = false ) ; /** * re-implemented from QAbstractListModel * @return number of rows in list */ virtual int rowCount(const QModelIndex & parent = QModelIndex()) const ; /** * re-implemented from QAbstractListModel * @return data to display in list */ virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const ; /** * method for actually searching the index. datamodel must * be locked when this is called */ QList performSearch(const QString& aForString, bool aSearchAds, bool aSearchProfiles, bool aSearchComments) ; /** * Method called from protocol parser in purpose of appending * search results from remote node into datamodel. Model is * locked during this call */ void appendNetworkSearchResults(const QList& aResults, quint32 aSearchId, const Hash& aFromPeer) ; /** * Method for serializing search results to be sent to peering * node. Usually items sent over to peering nodes like profiles or * comments are classes and they will (de)serialize themselves. * Search resultset is list of structures so lets have just * serialization methods here in model, these are called from * protocol formatter/parser. * * @param aResults actual results of search * @param aSearchId id from peering node * @return JSon-obj as QVariant */ static QVariant serializeSearchResults(const QList& aResults, quint32 aSearchId ) ; /** * opposite to @ref serializeSearchResults * * @param aResultJson json object containing search results. * @param aResults array where contents of aResultJson will be appended * @param aSearchId pointer to unsigned that will contain search identifier * from aResultJson * @return true on success */ static bool deSerializeSearchResults(const QVariantMap& aResultJson, QList* aResults, quint32* aSearchId ) ; /** * method for querying if search is supported at all * @return true if search is supported */ bool isFTSSupported () const { return iIsFTSSupported ; } /** method for checking if database has support for full text search */ static bool queryIfFTSSupported() ; /** method for creating db tables related to FTS */ static void createFTSTables() ; /** * method for adding a classified ad into index * @param aCa is the classified ad to add to index * @return none */ void indexClassifiedAd(const CA& aCa) ; /** * method for adding a profile-comment into index * @param aProfileComment is the comment to add to index * @return none */ void indexProfileComment(const ProfileComment& aProfileComment) ; /** * method for adding a profile into index * @param aProfile is the profile to add to index * @param aWasUpdate if the profile was updated instead of inserted * @return none */ void indexProfile(const Profile& aProfile, bool aWasUpdate = false ) ; /** * method for obtaining the search criteria inside */ void getSearchCriteria(QString* aSearchStrPtr, bool* aSearchAdsPtr, bool* aSearchProfilesPtr, bool* aSearchCommentsPtr, Hash* aSearchIdPtr ) const ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: // data MModelProtocolInterface& iModel ; QString iSearchString ; const bool iIsFTSSupported ; QList iDisplayedResults ; MController& iController ; Hash iSearchId ; /**< searches may be lengthty: this connects results */ bool iSearchAds ; bool iSearchProfiles ; bool iSearchComments ; } ; #endif classified-ads-0.09/datamodel/trusttreemodel.cpp000066400000000000000000000343061260620453500220460ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "trusttreemodel.h" #include "../log.h" #include "../util/hash.h" #include "model.h" #include #include #include "profile.h" #include "profilemodel.h" #include static const char *KTrustTreeTimeStamp = "treeTs" ; static const char *KTrustTree = "tree" ; static const char *KTrustTreeTrustingFp = "fp" ; static const char *KTrustTreeTrustedFp = "trustedFp" ; static const char *KTrustTreeList = "list" ; static const char *KTrustTreeLevel = "level" ; /** * How many levels of trust-lists to dig through */ static const char KHowManyLevelsDeep ( 3 ) ; TrustTreeModel::TrustTreeModel(MController *aController, const MModelProtocolInterface &aModel) : iController(*aController), iModel(aModel), iTrustTree(NULL), iLastUpdateTime(0) { LOG_STR("TrustTreeModel::TrustTreeModel()") ; connect(this, SIGNAL( error(MController::CAErrorSituation, const QString&) ), aController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; iTrustTree = new QMap() ; } TrustTreeModel::~TrustTreeModel() { LOG_STR("TrustTreeModel::~TrustTreeModel()") ; delete iTrustTree ; } void TrustTreeModel::contentReceived(const Hash& aHashOfContent, const ProtocolItemType aTypeOfReceivdContent) { if ( aTypeOfReceivdContent == UserProfile ) { QLOG_STR("TrustTreeModel::contentReceived(), profile=" + aHashOfContent.toString() ) ; iController.model().lock() ; TrustTreeItem operatorFromTrustList ( (*iTrustTree)[aHashOfContent] ) ; if ( operatorFromTrustList.iTrustingOperator != KNullHash ) { // ok, operator was in trust list. operatorFromTrustList.iNeedsUpdate = true ; recalculateTrust() ; } iController.model().unlock() ; } } void TrustTreeModel::offerTrustList(const Hash& aTrustlistOwnerProfile, const QString& aOwnerProfileDisplayName, const QList& aList) { TrustTreeItem defaultValue ; defaultValue.iTrustingOperator = KNullHash ; TrustTreeItem operatorFromTrustList = iTrustTree->value(aTrustlistOwnerProfile,defaultValue) ; if ( operatorFromTrustList.iTrustingOperator != KNullHash ) { // ok, operator was in trust list. if ( operatorFromTrustList.iLevel < KHowManyLevelsDeep ) { // ok, we need to consider her trust list too: iTrustTree->remove(aTrustlistOwnerProfile) ; TrustTreeItem itemToAdd ; // initially set trusting operator to self, it gets updated later itemToAdd.iTrustingOperator = aTrustlistOwnerProfile ; itemToAdd.iOperatorName = aOwnerProfileDisplayName ; itemToAdd.iTrustList = aList ; itemToAdd.iLevel = operatorFromTrustList.iLevel ; iTrustTree->insert(aTrustlistOwnerProfile, itemToAdd ) ; recalculateTrust() ; } } } bool TrustTreeModel::isProfileTrusted(const Hash& aProfile, QString *aDisplayNameOfTrustingProfile, Hash* aFpOfTrustingProfile ) const { TrustTreeItem defaultValue ; defaultValue.iTrustingOperator = KNullHash ; TrustTreeItem operatorFromTrustList = iTrustTree->value(aProfile,defaultValue) ; if ( operatorFromTrustList.iTrustingOperator == KNullHash ) { // default value was returned, profile was not found from trust list return false ; } else { if ( aDisplayNameOfTrustingProfile ) { // get name of operator who trusts: TrustTreeItem trustingOperator = iTrustTree->value(operatorFromTrustList.iTrustingOperator) ; *aDisplayNameOfTrustingProfile = trustingOperator.iOperatorName ; } if ( aFpOfTrustingProfile ) { *aFpOfTrustingProfile = operatorFromTrustList.iTrustingOperator ; } return true ; } } // work-horse here void TrustTreeModel::recalculateTrust() { Profile *currentlySelectedProfile = iController.model().profileModel().profileByFingerPrint(iController.profileInUse(),false,true) ; if ( currentlySelectedProfile ) { // stage 0 // initialize level of every potentially untrustworthy sucker on the list QMutableMapIterator i(*iTrustTree); while (i.hasNext()) { i.next() ; i.value().iLevel = -1; } // stage 1 // initially trust self setProfileTrustedInList(iController.profileInUse(), iController.profileInUse(), 0) ; // stage 2 // loop given number of levels of trust. must start from // 0 as it was given to self as trust level for ( char level = 0 ; level < KHowManyLevelsDeep ; level++ ) { QLOG_STR("Calculation level = " + QString::number(level)) ; QMutableMapIterator iter(*iTrustTree); while (iter.hasNext()) { iter.next() ; QLOG_STR("Item " + iter.key().toString() + " has list len " + QString::number(iter.value().iTrustList.count())) ; if ( iter.value().iLevel == level ) { foreach( const Hash& trustedProfile, iter.value().iTrustList ) { setProfileTrustedInList(trustedProfile, iter.key(), level+1) ; } } } } // stage 3 // should there have been any operators previously on list that still have // level -1 it means they're not trusted by anyone -> removal QMutableMapIterator iter(*iTrustTree); while (iter.hasNext()) { iter.next() ; if (iter.value().iLevel == -1 ) { iTrustTree->remove(iter.key()) ; } } delete currentlySelectedProfile ; } } void TrustTreeModel::setProfileTrustedInList(const Hash& aTrustedProfile, const Hash& aTrustingProfile, int aLevel ) { QLOG_STR("setProfileTrustedInList " + aTrustedProfile.toString() + " l " + QString::number(aLevel)) ; TrustTreeItem& operatorFromTrustList ( (*iTrustTree)[aTrustedProfile] ) ; if ( operatorFromTrustList.iTrustingOperator == KNullHash ) { // default value was returned, profile was not found from trust list // try obtain profile from model TrustTreeItem newItem ; newItem.iTrustingOperator = aTrustingProfile ; newItem.iLevel = aLevel ; newItem.iNeedsUpdate = false ; Profile *newProfile = iController.model().profileModel().profileByFingerPrint(aTrustedProfile,false,true) ; if ( newProfile ) { newItem.iTrustList = newProfile->iTrustList ; newItem.iOperatorName = newProfile->displayName() ; delete newProfile ; } iTrustTree->insert(aTrustedProfile, newItem) ; QLOG_STR("Operator " + aTrustedProfile.toString() + " was not on list, added, name = " + newItem.iOperatorName + " level " + QString::number(newItem.iLevel) + " list len = " + QString::number(newItem.iTrustList.count())) ; } else { if ( operatorFromTrustList.iLevel == -1 ) { // do not set 2nd time operatorFromTrustList.iLevel = aLevel ; operatorFromTrustList.iTrustingOperator = aTrustingProfile ; if ( operatorFromTrustList.iOperatorName.isEmpty() || operatorFromTrustList.iNeedsUpdate ) { // try update name Profile *oldProfile = iController.model().profileModel().profileByFingerPrint(aTrustedProfile,false,true) ; if ( oldProfile ) { operatorFromTrustList.iTrustList = oldProfile->iTrustList ; operatorFromTrustList.iOperatorName = oldProfile->displayName() ; delete oldProfile ; } operatorFromTrustList.iNeedsUpdate = false ; } QLOG_STR("Operator " + aTrustedProfile.toString() + " was on list, modified, name = " + operatorFromTrustList.iOperatorName + " level " + QString::number(operatorFromTrustList.iLevel) + " list len = " + QString::number(operatorFromTrustList.iTrustList.count())) ; } } } void TrustTreeModel::initModel(const QVariant& aPreviousSettings) { iTrustTree->clear() ; QVariantMap m (aPreviousSettings.toMap()) ; if ( m.contains(KTrustTreeTimeStamp)) { iLastUpdateTime = m[KTrustTreeTimeStamp].toUInt() ; } if ( m.contains(KTrustTree)) { QVariantList tree ( m[KTrustTree].toList()) ; QListIterator i(tree); // tree is actually stored as a list while (i.hasNext()) { // item in tree is a map QVariantMap itemInTree ( i.next().toMap() ) ; if ( itemInTree.contains(KTrustTreeTrustingFp) && itemInTree.contains(KTrustTreeTrustedFp) && itemInTree.contains(KTrustTreeLevel) ) { TrustTreeItem newItem ; newItem.iTrustingOperator.fromQVariant( itemInTree[KTrustTreeTrustingFp] ) ; newItem.iLevel = itemInTree[KTrustTreeLevel].toInt() ; newItem.iNeedsUpdate = false ; Hash trustedFp ; trustedFp.fromQVariant(itemInTree[KTrustTreeTrustedFp]) ; if ( itemInTree.contains(KTrustTreeList ) ) { // if profile has no trust list, this is missing QVariantList trustList ( m[KTrustTreeList].toList() ) ; foreach ( const QVariant trustListItem , trustList ) { Hash trustListItemHash ; trustListItemHash.fromQVariant(trustListItem) ; newItem.iTrustList.append(trustListItemHash) ; } } } } } if ( !iTrustTree->contains(iController.profileInUse()) ) { // must include self .. should have been there in settings but // maybe we're initializing for the very first time setProfileTrustedInList(iController.profileInUse(), iController.profileInUse(), 0) ; } // then update profiles that are on list and that have // been updated since last time QSqlQuery q ; QStringList queryString("select hash1,hash2,hash3,hash4,hash5 from profile where time_of_publish > :last_update_time and hash1 in (0") ; QMapIterator i(*iTrustTree); while (i.hasNext()) { i.next() ; queryString.append(","+QString::number(i.key().iHash160bits[0])) ; } QList profilesThatNeedUpdating ; queryString.append(")") ; q.prepare (queryString.join("")) ; q.bindValue(":last_update_time", iLastUpdateTime) ; if ( q.exec() ) { while(q.next() ) { Hash hashFoundFromDb ( q.value(0).toUInt(), q.value(1).toUInt(), q.value(2).toUInt(), q.value(3).toUInt(), q.value(4).toUInt()) ; if ( iTrustTree->contains(hashFoundFromDb) ) { profilesThatNeedUpdating << hashFoundFromDb ; } } } foreach ( const Hash& profileInNeedOfUpdate,profilesThatNeedUpdating ) { Profile* p ( iController.model().profileModel().profileByFingerPrint(profileInNeedOfUpdate,false,true) ); if ( p ) { TrustTreeItem& operatorFromTrustList ( (*iTrustTree)[profileInNeedOfUpdate] ) ; operatorFromTrustList.iTrustList = p->iTrustList ; operatorFromTrustList.iOperatorName = p->displayName() ; delete p ; } } iLastUpdateTime = QDateTime::currentDateTimeUtc().toTime_t() ; recalculateTrust() ; } QVariant TrustTreeModel::trustTreeSettings() const { // in practice the qvariant is a qvariantmap. data is stored in // keys in the map. QMap m ; m.insert(KTrustTreeTimeStamp, iLastUpdateTime) ; // insert the tree as array of qvariants if ( iTrustTree->count() > 0 ) { QVariantList tree ; // tree is actually stored as a list QMapIterator i(*iTrustTree); while (i.hasNext()) { QVariantMap item ; i.next() ; item.insert(KTrustTreeTrustingFp, i.key().toQVariant()) ; item.insert(KTrustTreeTrustedFp, i.value().iTrustingOperator.toQVariant()) ; item.insert(KTrustTreeLevel, i.value().iLevel) ; if ( i.value().iTrustList.count() > 0 ) { QVariantList trustList ; foreach ( const Hash& listItem, i.value().iTrustList) { trustList.append(listItem.toQVariant()) ; } item.insert(KTrustTreeList, trustList) ; } tree.append(QVariant(item)) ; } m.insert(KTrustTree, tree) ; } return QVariant(m) ; } void TrustTreeModel::clear(void) { if ( iTrustTree ) { iTrustTree->clear() ; } } classified-ads-0.09/datamodel/trusttreemodel.h000066400000000000000000000136551260620453500215170ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CLASSIFIED_TRUSTTREEMODEL_H #define CLASSIFIED_TRUSTTREEMODEL_H #include "../mcontroller.h" // because enum from there is needed #include "datamodelbase.h" #include "../net/protocol.h" // for ProtocolItemType class Hash ; class MModelProtocolInterface ; class Profile ; /** * @brief This is is part of datamodel for trust tree related operation * * Trust list of part of operator profile. Simple as that. This class * contains algorithms manipulating a tree constructed from lists of * operators where operators expores (dis)trust of * each others in complex web of nodes and vertices. Main goal is * fast query about trustworthiness of given operator profile. * * Classified ads treats trust as boolean ; operator either is trusted * or not. There is no distinction between recognizing the operators * identity and assigning trust to her - if operator is trusted it must * mean both at the same time: trusted operator is identified at * least somehow and in addition is recognized as trustworthy animal, * person or bot. * * Output is also boolean. There are algorithms for producing floating * point numbers for this purpose .. say, half of your trusted friends * give some unknown operator "true" for trust, the other half does not * (either recognize or trust) so you could decide that his operator * enjoys some 50% trustworthiness - this is not done. Motivation is * simplicity both in concept and algorithms, the floating point * methods tend to be computationally rather expensive. */ class TrustTreeModel : public QObject { Q_OBJECT public: TrustTreeModel(MController *aMController, const MModelProtocolInterface &aModel) ; ~TrustTreeModel() ; /** * method for injecting a trust list into model. This is called * when there is suspicion that trust list of a profile may * have been changed and this causes re-calculation of the trust * tree * * @param aTrustListOwnerProfile fingerprint of profile * whose list is about to get processed * @param aOwnerProfileDisplayName human-readable name for * the profile * @param aList is the list. This is a list of fingerprints * of other profiles that aTrustListOwnerProfile indicates * to be trustworthy. */ void offerTrustList(const Hash& aTrustListOwnerProfile, const QString& aOwnerProfileDisplayName, const QList& aList) ; /** * Method for making a query about a profile. * * @param aProfile fingerprint of the profile queried * @param aDisplayNameOfTrustingProfile pointer to string that, * if non-null, in case of this method returns true, * will have its value set to display-name of some * profile that trusts aProfile * @param aFpOfTrustingProfile behaves the same way as * aDisplayNameOfTrustingProfile but instead of display-name * carries a fingerprint * * @return true if profile is trusted. */ bool isProfileTrusted(const Hash& aProfile, QString *aDisplayNameOfTrustingProfile, Hash* aFpOfTrustingProfile ) const ; /** * method for initializing the model when profile changes * @param aPreviousSettings settings previously obtained using * @ref trustTreeSettings method * */ void initModel(const QVariant& aPreviousSettings) ; /** * Method that exports model state as QVariant. */ QVariant trustTreeSettings() const ; /** * method for emptying model contents in event of profile change */ void clear(void) ; public slots: /** activated when new profile is received */ void contentReceived(const Hash& aHashOfContent, const ProtocolItemType aTypeOfReceivdContent) ; private: // methods /** * method that takes contents of iTrustTree and if there is * any additions etc. takes them into account */ void recalculateTrust() ; /** * sets profile trusted in trust list. called from recalculateTrust */ void setProfileTrustedInList(const Hash& aTrustedProfile, const Hash& aTrustingProfile, int aLevel) ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: // member variables: MController& iController ; const MModelProtocolInterface& iModel ; /** * internal trust list item */ typedef struct TrustTreeItemStruct { Hash iTrustingOperator ; /**< who trusts this operator here */ QString iOperatorName ; /**< name of operator */ QList iTrustList ; /**< trust list of the trusted operator */ signed char iLevel ; /**< how many levels deep from our own profile */ bool iNeedsUpdate ; /**< profile needs to be updated from db */ } TrustTreeItem ; QMap* iTrustTree ; unsigned iLastUpdateTime ; /** ts of latest model update */ } ; #endif classified-ads-0.09/doc/000077500000000000000000000000001260620453500150655ustar00rootroot00000000000000classified-ads-0.09/doc/Doxyfile000066400000000000000000000007701260620453500165770ustar00rootroot00000000000000PROJECT_NAME = "Classified ads" INPUT = .. RECURSIVE = YES EXTRACT_ALL = YES EXTRACT_PRIVATE = YES EXTRACT_STATIC = YES FILE_PATTERNS = *.h INCLUDE_PATH = . WARNINGS = YES PERL_PATH = /usr/bin/perl SEARCHENGINE = NO OUTPUT_DIRECTORY = doxygen.generated GENERATE_HTML = YES HTML_HEADER = HTML_FOOTER = HTML_STYLESHEET = GENERATE_LATEX = NO GENERATE_RTF = NO GENERATE_MAN = NO GENERATE_XML = NO classified-ads-0.09/doc/ads-search.png000066400000000000000000003747031260620453500176230ustar00rootroot00000000000000‰PNG  IHDRЂb/nТbKGDџџџ НЇ“ pHYsФФ•+tIMEп 'фWРtEXtCommentCreated with GIMPW IDATxкьwœѕ§џŸŸйv ИТGЏVˆXE”Ф.hь-Б‹‰-~=ж_ŒЦо VPlIŒБЗиЂ$*6Tšєw\Пл:Ÿп{ЗЗefvfwoя€Я‹ЧrЛ3ŸЯћѓ™ЯДїsоŸЯgФЗп,#Єш€.Hа… ЛЊ:а—вђ ž|ъ)ЊЊЊшеЋЅЅЅтёx№zНhš†ЫхBг44M@г4„†РєoћwблDIIIIIЉЋеPЗ…ђŠо<ўФ“TUUQZZJii)xН^<.—+vnПЗЦпЇуязFї_ЃпЩŠ_жддDП~§ђк7nЄwяо–iVз§ФWОЪкњ…„e˜в‚J&9ž]њMъš'сЛŸыйeXOXќ}OjІJJJJJJёїg@м§9ЂЙ:юЯDлНЙ§ўћ'л3ўoм§7љ~œpї•2х~џ+(! чзЉIWц>с…OPвЫGЏ>…[šygщ3Ќo^ЫЄa'ц}пљƒ:7Э\ФcзьN"З:˜•ђ~ўИ ЃЇДЫƒЎЙ‰hnЂ*э`ˆH8СuКЫЫBд%xМ |BDЏ:\m­эƒ”hš0ќ+Dл5Љ­ „шXоС€шЖlДэ \€ІKJЄ&а„D  Z”+бЃuЁ к'M€;,!нEXDo нйКоO ]#р.@зМD„‡0nBвК†д5\BЃ§_КЇщžЖnЯO;””””””нŸУ‰їчtЁIДнЃ5:юбІQ=–в§ъўpљ)&Y9™‘•“i lсЭвкА‰‚=Рќѕ_0Иl}{ Эka№xн"р(џF)џчЛ $ —./aсAŠ(ˆ z„FOэŽуS:сх шD ]>tЭу—tŒg„h J“mзžЖПBoЯјыMXЖƒi:шмAгd D]ЂЏ$.-Кё!й š Ё€; ЛˆˆдЩшН FЛЋš ?@A!КзGФу%фrЃЙмH—]sсв:К§˜ниДЖpПaW\„!ѕ'? PRRRRRRjЛ? ?"сўv{ЂїgЭ…lЛ7k"њINЬ‡ЭФп›уяШТр~П> 4ZeўлСN™.o9у†ŸФ'+ц@OxЫ"|НёS~Y’gEр-і@р–ъXVЪџљу.щ@Єэк!нЎ|F{Іюл>х>"ЩьЗWSлФвщ[цуЈ_іЇЌ‡‡ „‚^ZЅ ”Ьzc%cFіb}u+Ѕ=МLо#:цѕЃy›in0uR?uРorr,g+O^бгм[HиЫOб1F4>мЈы:КЗ –7€†ЋэёДЋ< ЂœН „бklГ+ @Д§Z"у#ЂfŒРvЧ IIиЁxu№Ж BFЃ "mщ"2кХYhэсŒ;(ЃРMˆh?ъЎnн5з/5Дˆ@јŠан>"./!с\Иp‘Zл'љЉFћAЛсIу‰‰RЈ_uЭURRRRRJ{vEHИ?‡5рBn\ИЂЉ!єИ‡Ф’œuХMc]аЮЏWшзn‹2[C|Вє…И шіЦ~†"A^љсёияёƒ ЌЈ*бЯ•№Ъ'мЏˆƒіэ‡?С]рІ9$љч60ЄЊ˜C&UБdUџќl#'2)ЁІ9ЬqТчејђЧZ>јІš)ћŠ@A‘DђоМMTѕ+fєŽЅ{јnI}Ќ зз…=ЂgолTЉ‹Ющ<ž?о’(Lъž".вЅЕŸрAЄ”1Ђ’ˆ;Ыы—"x бн>Тš— .dDt %єŠŒеі‘Дw эxHжA˜Щ—Б’ЈІ \@XO;™ъбёЂЁБЖƒЖqЄ’6•H…Qw;„pТCА­‹n З„ЛсЌE-ИаuE=ˆјŠy|h./Ээ’лўЄешЉFќг LКтšD?UDTIIIIIЩ\мШЄћsРх%ЌЙp‰шЇ§О\]bхz?уvщХ†š ыkьЙS/t­jfЭ&?шWсcЗ‘=ЧfЅ‰ˆЦ+„+ъ˜цйOAЗxXэъЩžУ~Уќѕ+‚цDтЖЁ H]ТN}&т)ЈЄ))@P]@їКНk9B <4щбхЏ›]v‰.пa‡2–VXZ o™_ЂР№КЕC)Ÿ|]M“.ы_џ]вH@г˜А[oštAyŸ"š5АЙEЧыеhCiяBоћn ы6ћ˜Д[}+ д А Њ%чЇW9aoAЁЕwЧэафrR“„Н2–ЗYКыYXBи[HаэCг<„…;z Т‚" †%Ў:Ў3жОЖЧи”[—xD4тЉ НцiржAhQ№tщ—+:ьSG"mŸЖv{хыяd+nxh•.‚И9fdo” ‡УD"u*mнЏpбЭЖUdšYфЇ’ЂS2ˆ\gЭйоЭЬМшќCIфЖLaјCtЭYškяAЪ.zF)SMцЪІ…AйYлс  й™хк,@vNцnЏЬKШтј—zfфЏР.мV%Ѕ|Шхv#\.ж5ыќkŽO@ЁKP AЁ…Bрг$>MрuƒGИ5№hржn}…‹Kм!]AЉnЮмЅўКj6д‡Кѕ+\”Ж#žйeЮ,Л0єEЇчN~к(ЧЎ=aYIakCD^6ЩG8FF;,#џsМ>z8eЖŽи“мLж Ћ]fНHѓU˜ЌKwмчћй!ŒкU‘Кѓ­—mр˜ M  вˆmЎO™й@ЈДрЮt š”B&~‘ІyЅYГ-3]пБ-[жr}tїeЖЎ}ПЩŒз“ўИА\’ўaAњ§lя)ƒL›Fš&и*QккB; l&—NЯŒђ]sВИЬ()uuQрrёлСН™НJтŠH\€[‚лnк"Ѕ2:Ё”.EьјmMЈржЕш˜ад8zd%ўкj—o`ДџА4|•Šвvƒ  DEКйЈ!xиQ €9Jг~БNh3ƒ=•Ыk–љЕ*К%вДfmWdažЗs+пQ„aMS~Ъ”с ˆФщJdI0”n}ЪтиT†Та_Œu2€вlУЬс3еЛЬ-„:€œAhg‚ЈДhО4—1hv&ˆJћ šю!…х.Я.•HЮр9БЗ}Ј"вюЊЮф—юd[FШjŽЌЊрэѕрE  ащ˜Зукеж-ЗэЦн>ё”['њЮаJ|lЌ‡YОbe›o/ш]QNiiЉaкККz6WW3lшмnћ/Eжu`0H РуѕQPP@ЋпO(РчѓсѕzcЏbQк.NчЈУ*Гƒб<ИёCN*oš.ƒ­ЯИС2Ьш8›E`‰-щјЯТЊ.ZТfілi™ЄmЅЩ–™ЌO!LѓmЭ1ŒЪdM!KгФŒ$жŽиl_ŸД$Ќ2Юd Щ(zoхЂк L%jZИH—ЮNtk›€P›qЂ !”м@hN*žя>Б2‡™dІйЗ ЫЖІ BЛЏ:“_КЛэP(Ф€b7aFз%КН/ыztќЎоіrœф;Ћ”бї‹Ц(б-26}PгааHAa>Ÿ€х+W3ІЄ$4§~?K–.ЃgЯž465QfЋFRW_Я AƒЈЈш‚ˆ})Њ”’ъЭ›YГf ЅЅН№x<ъЈWъ˜˜>e†\™mrЩЅ&X‘UƒYWУyІœЕk–†вFEлf‰Žз[СfзТhєц"L`4amY&ІIN™7в4PšMрKaУŸ•Й=GmAЊ]ЈЕЕ )vь э*Э—мМа…3вy.™уњЪУjОЦmц<ЊЄ”G~йlK$z$ŒG11Ь KI$6MX^^Ц†ѕыhhh`Ы–-ђуќ№,ћзІБt_}§ ………ддTл†а@ Рцъvмq'zі*% тo#rПпO ЄWY;ьИ›6o&Ј#_Щ.dwћъ’Лtђ3kЯC:*$]™™ƒo‘Iкt"К‹укuнјRз'ЖЂДјjЕ^ІRAMœМ61L\`АЈэN\ЏKЩЗп~K$IL'e‚q™TT4IДћv>˜|lфm/gуЦ)ŒmХ-ŠKБqгІЄД6ї_Ъ.3п{(§~ДЛџЬkкэ!Д;uЩЕh%ћзџ Ч†кНfЫЬn™мКГJЊAžл”:“_Ж&л‘H˜žйБэ(–ћ‹1ЃYНz5с№ZZZЈojІ!И­ €љ?ќHAŸяПџž}&ŒЗe3‰АaуF…”рom% ;>ўжV„€Q;ьШњ ыеlОлIцфк-s^ЃЬa6_ГL:сRiЃfвЖУ"3Aп Кпmу0j:8J&ќБZoщМ2I'ЉL^kЅ2%$…$illрЄŽЧ№Тf œBjb9'p<яМѓиДigžq:cvй…ГЮ8ƒeK—1yв$›’™3Ћ ™ћљgќіф“ @5•+№yючŸqъ)'ЊLФl ј”к)jё№)е†4>B-жПЗuЕ{пЖуe ЁщгюиP{ЕъД;cFCUЗмmOЩ/љДнквbhЛЕЅ%/мхv’И(PЯфЏпх?у&‰Ht]чн%MЙУўlоД‰eЫWааА–cйWSz^im644PRв—лПЕХ2m(ФуѕQTTLCCeeeъLPВw"ƒ^—І§ ѓрТюOвwЮ АAУ.КvzвІЄ1™МЧ"“ё№Oг–Ш~МЈХњxGеЌ+nњnК …й tкИݲлБПЅс|Uэ^Ўˆџ“:ђ2БgkмiД0СyMшŽg#й-х$ЇƒnЗР–кюОѓN>ќїПinnfјˆ\zйхŒ;6hЄAљI |Ифі:циcйqЧAJyј!ŠŠŠљрУ№  СЩЇќ†ЂТBлOХ:Њ&M0cФ{вбkTвѕЈШ>uСЕаЮ~ˆdуЩЅ”йtеЭ#„к™ H:?œ=ЄЬ]Фд nKбPЛЧЅвжЅЮф+л[jj(ЏЈШ™эoИо•НЙшЂ?Ф|–gžyšoПљ–{яЛЏгЙЫvDTkЌЇђЭу(йu7ƒ46дSWW‡Œ„јъЋЏјјЃЉнRУЈ‘ЛQ\Д оІябZZвPЙNMM5}њєСпкD0HћёЗ4гЗo_jjЊ‰Dtu&l$й…з№lЃšйфяž]tэŽ#ГыЈ:щЪ+mЄЩЬЉ• !ЩцЕ–Žm{7NKЇVЦ"g†Ј’Е™&%цЂ /фЅ_bЮ /0dШМp—mѕљ>Ёе7 €%%ŒЛ;сж\КŸѕ6ВiгF†wђxХХ–6CЁRъ~‚Ё`ЪчЉ3hlnJXhЃџH$B(RgУіƒ 9ЃX™iй2›Ze Ѓv^2онaTZq%†“˜ЄёHЬ'<Бpнr•™GGг;Мq“мX9Ћв^TK •щaѓ tЌ#p6СTƒЉ$кŸ}і9‡v8ЗЉыH]GDаЅ;Ђкг|шЁМљі;Мњњ,]К”ПНєHИх/сЬГЯсЫЏПсўB xџНїXјгOМѓоћМѓоћьПџў ЃЏsBФЎї?ј —,сЩ3КШCA.Ир|і4‰ї?ќˆ~U§ИѕЏЗФѕк?]Эез\У?_{ё&nћШ#™ѓТ‹|јё' 4˜{юЙ‰dЩ’Х\{ЭŸ:ђя=!vэzђ‰'<1yЄ0{ЙGlœБсkAшЈtќuL$хOv~EЊЖъIу}&ткA ЯlЗaо P˜Єщј*тЊl‰Ћ‹ ѕ-Бc$iЁEкxеежВЧž{˜LІ#юW§ЋњЧVO™2•eЫ–!ЅЄЈИ˜eKFъ††”’ттbЖlйТЦиy—]‰ВЇLЕіяКЎ'КёRђнЗпввмЬyч_РДsЧI'Dђжлo1љ—Пт№)SКdП§іу§wпMЙЗ•єшAž=‘РЩЇœТѕз] о~Ћ-џс‡#ЅdR{~$Х%ХќМd1MMM 8А ТЌUщР™—Є}„Б_-г<{Г3 YšюVЅ  IЊДїБІ6‡jЪДC"Ќ;UHћ,ѕdЭЌ{ЏД“Х2ДiЫ Ќ:QbsŠЇœ†We–йdE+?ЗћЙЃЉќ xvіNћЭ)L;g={–ђТK/бдXO(ДЯ/ЖзЎ^Ч§>Ш^{эЩ’E?1jфž|joМёZжЖўЏ§ы f>3‹ЋЏМœ;n sцYg"„HoлК;WZi†O>х•VѓЩЇŸВvЩ72tЧ_аЗ—@‹ДВaэjžŸѕdЧ37amгэёр+,dУ†uDєpЪxаŸ§„ппšАLшЌпА_a!nЧКЮъГэ}кЂEzFљуЦ‘ed#1ПДsо$чѓЃэй0yEк<2MZ™:БЈAdЬКLƒšE:LгЅФЮ ъ%Э<–ЖŒгIГо mу5ЅљБ'Ѕљў’э@c_Œ{Ѕ‡ё5З#(ЅyHЦEMSг$к0ъІk•&Йж&“НDEЭьa”ЦC7“ўѕ*эEѕцЭР•un:ћЙg9ј йcьn<;kVєЉ/’ЛюО‡хЫ—ѓЋЩ“yђЩ'HілІћ;Ю63O?ЫWЄžˆF;Йmй†ѕЈЉЉaь˜бŒ3šc> ПпПЕ•Э›6QеПŠH{фVe•|ёХџ8ўиcиkїБќёџ.Ž9›7onЫЏЃыєЯџќ .dфЈQL=ќ0ЎЛіš[š“ЂШFCaЭg NB+ вZL>lіŠœ8{Щ]ƒ­вЫIЧК4|f.ЭЯyЩ5’qOУ]n?aыЅ™ўžaЌNнцAm™r]$-уsпњšm'хОЧњ:›:&къ~oѓžhtкJћљвлŽ|=Ыќ‰6ЄђћКсЧˆ_ъjkиАvЯ<7›>}ћёмœйдеVГЅfГ#~1В}ўEВћюЛГ|щ‚СЋV.cјˆa\qхUYл~х•WјзЋЏ1ћљчйuз]˜§ТK|ўљ\f=ћЌ-лйЪvзмцР|gT\№o>|љЪ чџс Юšv.У‡ЦЋ …[YГl_|ё?4‘јЌ з4JKKљqўOИ]ž”1Ђэ§Ќу?šЫХѓ ДДMгPк>ŸD‘ё `gТgљwЯЕ|Zm–ЯЩЌ™жиK$ЭІ@Mњък{M„щb‹qfVЖЬгЅ›4Хќ2›№J“У3J1ЗaБЯЅ4†вј‚Ь 4a‹dbїBУV”ЦcL'нСтѕ#F“ѓX=00Ÿцјёxянw CIР!цЕыжrћmЗё№#гљю‡9§Ь3b›6pр@žœ1“Їf>Эу>Ъ—џћ=ЂsцYgёб'Ÿ2h№`nИюКD`4ЧіeНћTвЗo_~\И(іYИфg|ОњїяЯЪ+-<лшчк?§‰“N9…oОŸЯН<Г]еП?+WЌ0,зчѕrуŸoтнї?`бЂE<=c†сћSЭ€г*M гjБ]™rЮЄšжч•эsKZž[щЯЏФ‡&щЮ-ыѓЪо$aцWœд‹TКёнЦ—Мќ^ЇэЃШx†\гЬ6Лхf Е;”CEB•ЬјЅvK kW-ч_ЏПACнj6orЬ/FЖ—.^ШвХ xhХв%,^№CжЖ++ћ№ќ‹/RTшeЩТ‰„ќ<џђп:dh^ИЫЖХЦНІбњ§ МЋžІŸЏ‰_u:;ь0 —Іqкя.gєˆ2мZ€ е[јђƒ'ћWІŸЅM—ЫEEy9ОЂц}ѓ-ОТЂФїи$} ‹˜їѕ7•QQ^ŽЫхRgƒ‚б.‚Q;“O8ƒQ™a^ы[Еqв ћьŒ+ЪbŠ™Жв2‡@*Ээ™ЯКb1‘Š…уlq˜JP›k(Е_š˜:…SГw^ZЭ›”ў„O@Сяw.п~ѓ5ЋVЎфгO>слЏПІА MгX№гєptђ„@0Hc}}tL”зn‹‡„6Рж@:‡аt+„*йс—-5е|іёlмА>#~1Вэїћ ЙШяїgmћзG…ЧэbеŠхƒAж­YM Е‰уO<1/мeD#‘r^ќr4?деrќoћpШ#2ъ 4ˆI‡œФˆAvсЁРЛW_љи–н={2lшPъыъјцыo№Ђ z8B($Žрв\ј љђЋЏЈЏЏgиаЁєшйS FЛFГБ!-Ÿ†gšзќжk^€Д&P4ьЄЇю˜{.Й‹ZЭъiщїЂЩЮ IDAT Z)d%Е†вєб‹ˆŽ”™ƒЉе+^,вvK ЈжZXTФœ_ЂЂЂ7чŸwGy$wпy6nФхvqжйчpнЕз0p№ .њУХœwю4Цл‹9Гg3pр@’ЛяМ“§&NфЈ#Ž`тФ‰LžќK~˜џЇžr 'Lрџј;Кікфў‹˜q\š‹Їf>ЭW_|Щ‡ЮoN>™џ|ђi,ћиOђђK/qјЁ‡rзwАлиБ)ліџnњ 3gЬ`яёуИј1bф($’tф?Ќ#ћlМ‡rLžL]]g}NzиД œца)M `#­ №”вђ\БгЋР.|f§LPlL6”nVъ\ЈXц/ jx—0#<ѓ{5СкHћy; „n/ъL~ЩЇэ5ЋWБaэкл5›6БrљВМp—˜ѓѕВUїа„—swЎЄzѓ&УщyзЌ\ЮЂ7ў€((dтoІФ@†zёѕ ѓЪуВdЭOHсehU“|€C†Ѕ­D(bѕš5,Y̘КкZ†JпО} јј |lмАe+WR^VЦЈv`аРx<u(ЕХq“Ћ8Яœ№5уIRM9/пБ ‘с"‘ІhaЃŠТFЙvы'lnžАZl˜IЄБ•о„0Џ–АоK"щиД>|Eš4ТіБd/ЉpvŒй>.…Уcйzп !№xМhš†Љы„У!"‘n—ЫMРпŠлэСхvGгHI$&уѕља4 )Ѓ…BA\.nЗЇ-­N(BзuМ^‘H˜H$’№НН>_~kJНЄ”„Уa"‘hdSг4мnObЙqюh.'6KЏЎыƒЖќ.мžјќ‚С З;:П`ћ2ЉЫt.­ѕГв;ЭвклЮкЁvђŽD™жžДчУK™~ ОявМѓгђЁevЏeIEЦє‡CЦ3уцЅЎƒcЬК№ ldвyљЦѕPК5Љ3љekБэrЙЈш]ЩŒUzИ Ш-(в P@|šРчИ4№iржn \\šбЌЙ&**.фЇ†1ь=ў8Š ŠбфfBОЊиzЗлЭˆНЯaнћЏАЙ ‹‹lйіx< 4ˆ’тж­_ЫЦ YГf mгRвЃ;яМ§ЋP^^Л+)%\Илf5u>n›ч+лfNЭдF\fћѕHš5Б:ilЬƒk)5Uм Р†E›з)оэiт]‘\?“tщг&–[%MtќJ™^6qAТ/ѓ)ўJ,ЇLЪ$ЇТ &eœ#LШ9й7Ж% ќa ІFН с4ЭЬКТДu,gуMоЇТь”j›‰а№F ":•|("NV>№Ї№m$&ЇЄ ЦЅ &х“RтomIјœІ]z$B0Бt‹Ѓ6м…энvSЗ7иД6ЁбЁsœЉSю4Š#ЅPАžv‹ЖeЋсг €к}u‹%Tv9€ZbtV™m7\c* Њф\Щ/[ЋmЇВMЩHIn+&Ѕ$ бмм‚ппJ(ЦуvSPPHqqQЧd%%ггnЄЧјЈ6ёБлШШŽHW%gљm…ьЙ‰І€ІхfлI'ьЌТ~єгIкt‘RыНц,ZjяАm8КŒ:>Ї„“Убё1,2=ЛзгГьRfуМgшџ””ЖUЙSOЉNЅmFлbчcGлЯ‘йvєЫ Œу2ЩиБЌSR!ІьgнЂQвtуW;J6ыщdЛe2IЛNBњžГ2iПЄДжЮЇАб~–нуѓЄРŽАJ-„хmAX< rтВ Гsатъ™_:•йoП”ŽŽ ;ЮГЬEлieкЪJGг™K›|!p„ДЙivсVк`hiГ;щЄ#Ј”98ŽqgчwGOHГЎМЪПVкF}эм€Ј’вЖ{’dе]7уЩŒŒC™і@в$ВiлNњќЦ№HТ6хIIkв0)]lMы”в0]ђгљЖ§iЩьH­щŒЎ­BX4žLrE2и›ёх —лœM&7™ИЁIЭc!&є-вмhЄЕK{pџРШ‰ЃžЄЁs>(2)3sdgкpšЯQziЋђвf:gрщ>ЅЭfБ”і 2'№ihN@аy/ѓL'лъ"Э"ПP%%ЂJJЙвŒЛыцH-Sd˜пФэВбХ6)­М–K(Mv„:ъ˜кKVZBЉ0Mю–(Ќ&.ВSѓFOгX;9„гL5HЕЊvl•эф•Ž&kніњд)Е—2{Л™@Њу< г>];d‰\ƒЇѕУ[[;>гЄЬIєSЈ’’’Q%Ѕмi4dЄжvв‡D­эXфЗ„в„јcк(iдфJуё9 HVPš;0Me,aІ6сTšИ|F€*MмY€šRгСfКМN€еМf[љžGWvвѕ+Їu2sхэ рьLшЬ<|f˜<УуRuСURкzATВЗQRЪ%Ь"› а:їŽuЛЭj“wi”ЯВ\ƒ вЅKЖ™HO‰CЅ0MџЭpж] 0F>D0Fpjѕj#‡Kи@&3K˜•aе5}wZуМЮЂšІ{:Ч€™-”eћj0йЭЯœеGкш‚iжвЖ92нLЫЖ,M>Ї32л}5Š§Д–H—бlЖЦз<+јДЙ лc‘3œH+чe љd\ @•Ж{W:KnTQ%Ѕœ)H)вњщжX63ьІЅ%ћ9„Zcо4ШдВ“НDaТ25†g1;o‡%s€MvќвЉ40bјaфќ™DcM`SРЉ0_+УЊ šеЛOeHM;ГЏ GKи„жlA)зя”оfA2зy)N@гœЧМlСjgBggЇEjщЈ&–@ж9№™СžЬr&ш\tŸM<Вœ‰ZЈ’RїQПпЯъеЋ5j”jiЅmH;nIR ;~И”fйэзДьAЉ=u ЅI… 7цЮєбRiˆ‚9г8š4Ь‘&jjN“š@štгЕЈжЮžДКПrЦ4Э^c<ЖРеСI#•уgиЦйЗŠ4њ“Q^guЪ8эQ­гЎАIWtGЬе9р™>3Žzv5|:;ТЄ}ЃN JJлˆ>ўју„Ca.И№ц}5чž{ŽщNW-­ДеЉs(ЭQ”4JmG7ггЃs(M–(DЦбR’{пІ‰–цL-сTXф0эѓi ЇЉ€* w4^`мŽТљвMц!lЇнH„1єŠєnhŽ™yЛ,fюŠg—2л2%p™вs›ŽXвIфвЄZBg‚gње žŸ6Ў9іOУќП‡WII)Ч zѕUWѓх—_&,Лх–[иsЯ=б#КjYЅmHуЁДыЂЄq w(MoЇSЂЅ ІЄŽ1ЕЇАiжб5]З^ћ€—в0h*вАl jтќ‰ДhНN($ьсf.&хщ†Ђ Р-{лЮэЫLe%ЬЈ{mІа™)фх<|f{ЦЈшЇ’R7Q€гN?_џњзБп=zєРуёЈVUкfЁДыЂЄЙ†Rk(Ь JЭ™аQ2г”КРІ`• œšљ7ТЬЦsЕЇ6гH˜%ГMiNЎжћF˜cbz?Sк3eBNёl•Ћ8iзИЉіщTцrЋ2зlъ*3Ќžtм] ]žРЇЬўhЫ%|&2ЃŠ~*)m5 *žГEEE”——',{єбG ƒ\|ёХ)щWЌXС}їоЧвЅKйqЧЙъЊЋЈьSЉі‚вVЄЙ€RUљ‡Rk 4B›pkŸUsІщ'?ъb8MЈ`оХз.Є‚Њ5dкUѓ}–ž4НŽбfWп’Ѕь*•f93K2›ВeŠ’YT9ГЪч:Л<Г„Ц\F=|*)mKОqŽ@4vђй:Ѕqкіy|eм„ОR‡Йсњ8јрƒИёЦxьБЧyф‘‡ЙёЦеTкf 4ѓЎЛ4šЉ(3$2КŠтп•bџэ0`)ь Ќ§ЎФ‰˜c€ЃиaP‘ЮСЉoˆщ[ƒїxІyЊХhM[яQuBЄЛ“ˆ,œ[ГїБfFŒ2ƒS"gDЮiАKН‚ь}ь\йЗвiўДWщЈZ2ƒ<™BnNзEfР­йМц$7^l.КЭЊЎЗJJЙё…sЂ4sцг<їмlЊЊЊxьБGMг.XА€––N=ѕT„œtвI†QS%Ѕ­љD”d”6œл1˜ш(Щˆ#0MqtІi*’Ѕ:y ЈiXЩ —4йз"Г˜HЩ†нlM_#jqiђЇДАMяе~Ф^8М?й3šqР2G‘ЮœћЇЙя–џњШ\> А§ —lКgœі9[шД٘н<Л2GvŒM(јTRккхюИ„:??ўxІN5фЖfкM›6SWWЧс‡O‰-‹D"|>ŸкJ JMnА2'Pк‘;Ћhi‚i6нlcц-`гьh ЈV/З‚T+Ї24… HM]™ЯЄЭ@dсЪ EŽl{q2Г}…EŽЫВ§ъ—LAБ“a3ЇР™&W. Гg"фхц\T№ЉЄДЭƒhfъбЃ„~§њйJ[^^FяоНyс…чUЋ+mзPъ(“_>Ÿmо8PЪ*ZjL­э…ErЇ‹MFV:ŒžІT+HЕ8„йVІPsšіЕ†LiV“]8Є™™ЏgЉ]}‹nЗЙѕЁeц—CfЦ ™X;8г\6х:s žцк%аЈЦ|*)mm šуѓДААˆъъjъъъ3f BfЬ˜Щ”)‡Ѓы:КЎ3pр@Е”Ж+(ВHІQЮСmќ €ЙгИœ–хNM`г:zjQSa§тzAњ(Њ1Єv”)lфЗР7{АšfgH€o Џ™˜9к.‚Е­ЁNПFf•LциІtb#ЇА™8hgBЇНњхЂ{lŽСSСЇ’вжшрцDsЌбЃwe№рС<њшЃ\}ѕUм~ћmм}їнМјт‹sъЉПU ЊЄ 4(EŽьt-˜лВ`Є<РЉ  ZFOMе ЪвDQ-!5 4Э}й4ћи6Ќšя aЕ„Ул‘ЬœDMЇ\лЫuЂ3а8w3ћЪ\”‘62*ГЌc6љ3ЮŒЖ аЙm‚gb•x*)mmГч§([Ѕ›&щхм+йМi#КQ-ЃЄд•'fЎњ#fІоFpjЯ^vМ!lNэ8*BdiRdT-Gv2мq"лЃ(g)ђSLзpfЮ3Wf2™CТЩl:йЭi%&s2ѓДАн:Лxv˜QрЉЄдеrЙ\єЎьУЬе^zИ Ш-(в P@|šРчИ4№iржn \\ИЃЏaQ ЉЄд­T)sЅ1MјšƒЈi’НxCYENЭь’6 iэtI‘Іi\W‹ЎОв$JнЄu иБ“hЫСIМ ™ŸїuЪm‡DsTŒЬc]ЅГ,6)4WАjšTfОсœ цfdn—Ѓ‚O%ЅmKwЭ=шРƒ —ПџСћЊU•”: JsІqpš™U“юМy†гЮT[j‰вœўL@еЌf˜вЂNцiПЕ; dѓМ[ v*єЪЬВЫлv•”9А‘]v™лнгЉа™c№Ь1(*№TRR Њ€SIi[г8Ч!L3У ‹ЈiNсДГ5ЧjTsЋг \JѓŒ€l@л€ЗыбЙQйщuЫZeЗCfП! ›љЮМAЇO%%ЅlAT’щ[D•””К#˜f ЇQгмСiвдAнPsЉЮ@5 Ќš@ІАi+[p5NъxneЧefМmВгюН9zOЈь”2ЬЁ+sЗЁЮMЩЮiў­8t*))u:ˆv\XтўЊ‹ƒ’в6ЇЙŠšцNу- УЏЮСбPЮЌ›)ЄZЯ`dчŠ*ьжLІ_”Ўdaп€В2Л_tVїйм™ЭлЮN2+ЛЈŽ2ЛMЫŒFsT–ЬGГАutнЭ§ЉРSIi›t8ГQ‰тN%Ѕэ LЛœцЉы­ДШщEZ0ЕQЫ `еј4[EdѓвYы[зЁг,k лQоn~ѓьŠЈhце™›аљ ™# ьšHЊ‚N%%ЅЎ‘;eЎ%%%ЇЇнP@jg€j†АъXMл@’Y‹х4JЦ{-/ч†нўНнцЦ);Пzљь"›ШЬ4Гл’.NJJJн DЃOtewЛЋ*))mƒpjЈЮJАЈи\ШІћ–cPЭV;ZmРЋ-cN^гНЩnЋуаœTRvЎљ<СeV9enЗNцБЌT~эœЃSAЇ’’RNAT URRЪ;œ&9J‰<™ƒjšPЭ ЌšзХ ДZlQж№jœSфœђ)5AO^ЉВkЋ.;ЏФмuеЭC]ђQf':p :•””:D;bЁъ‚ЃЄЄ”ƒ’k@Е‚дŒЃЈ†о\ЎA57АъдuvыbлxfaхNшќ—?<эЗТnq7–љЋaюЛъцiFcйyэ’шІN%%ЅЎQ)Ѓ!ЁCIIЉj’C–Ъ’9zХL@5ЗАja1У(kжыИ0б)I•ћLЗ пvзnК[“yЌC`PЇ’’RЗбјk`ћhQuЉRRRкЊеЄvЈкƒеьЖ6нqEцNyЮыоЅt™Џ'ЏлЮн4ї3чЪЎ­ЛьќњфГ­N%%ЅЎК7dsЩ‰‹ˆЊ —’’RїдЮ„дЮU{А*Рaі[я\­K—9цЗЎэ„Гэпяђ3cЎь~л—Gшэ*аTАЉЄЄД­Шэ„ЙКЎ‰D…‚Њ5s Ч‹ЫхBг4еJ RѓЉv@ЕГ`етк+jn[$г1Ѕіk&Л•ngє)ЗЎЊww%d*иTRRкn@Д="*3ˆˆ†B!„цЂjР |>ŸjЭ( В~нZ"ЁG5ˆ’RZЮA5CXЭŽБd‹Sjч3 ЬI’м)пдЛ}СDfsuu7нЎйG 4•””ˆ’4.Tк{ŸK8&Ž0j‡‘ДЖЖамдЈZ3в4aУ‡ГxсBрvЛжЋtTщ"ЧлS;ЉЖШED>a$}wмі}шЪК'„ѓHІ­—ЎфlrІnJл­ВІnпнth*))mŸ7ьfrыЉIGvъыыЕгЮДЖЖ‰DдŽШ‘t]ЇЅЙ…ƒБdс***bыbшƒЗћt0d§к5†‘уэ­T[t.BЪ<ќ ƒЌ[З–H8ˆЧуЕMyyщŽkгw—™жLdПЖ; Ь™mЁ›ЎŠf*)))m­rыRЂ#б\T#‘ЕЕЕбми Z1ЧŠ„C”єьImm-ЅЅЅИ\Ўh:Ђ3rјHЊ7oЂ&иЎлШыѓ1dи0~^М!ТБШёіиNЊ-КTsYѕzН :”ЅK– D(Ѕ'DFнq3_•_œ’YRwХдэ|В$йНлFAІ’’’RО@Tз‘B"uћ^]зimѕ#ЅŽЎыЊ;щFикъGзu\.W,НqУ:BеХвпвТІѕR"Члc;ЉЖиZ еbЖ†йМa§фчE ЈЈш—?л.Й6YЎћF%PфМЕфжйц .•”””К!ˆ†УТB'тЪ (u]uЫэlХG 7­_ЋЄM­­Mєэ_‹лm;ЉЖињniЂOU[ЖдвЋWijTДЋ№УQЗ\‡HЊКхvЪЩМ—ЈРRIIIIЩ9ˆЖј„4AаэЪ D#™ь–-[hnnfа AнмСo%‰PRRв%љЃАпŽ„УъЈMrFк#Чбіо~лIЕХЖЕ3uДѓ;S–@Г]vЫнzсOЅ’’’’RNAДЙйOи-y3бLo"ГfЭТхrqбEхdC>ћь3fЮœЩ“O> РЋЏОЪЬ™3ЉЎЎfњєщМўњыєяпŸ3Ю8У‘нK/Н”ЃŽ:ŠC=4Ѓze›?YлкФP~ПŸЕkз1bФ№œкUhЉЖPŽ}цъZ˜U Ї RIIIIiЛбК†&ЄW'Rйkd𛧇~ШГГžeХŠ”””0nм8ЎНюZлљэjШа!L™:‰ЄККšx€[oЛ•QЃFQRRТ–к-”––:.Џ§F›i=ГЭП-@ХТE‹˜>§1жЎ]Ы)'ŸDyE9Ÿ~ђnИс:ОўцўіЗПsчЗoѕ№Вš™VзЃcЎsн%3WmQWWЯхW\ЩэЗ§5a6чЎо>Ѕ­ 0Ж ШUћRIIIII)kн{ПУh@Ѓ.;oƒБ;Mџ[oОЩwоЩДiги{Ÿ},\ИMsйЪяD ф˜cАbХJњіэЫИqуcыїпrЖюS—ф— тЁ‡ЁЅЅ…+ЏИ}њdTўчsчђюЛяёџnМ!уmИф—qюДsиuз]ђж>є0Ÿ~њ„”––2fЬhN>щDzїN,ЇАА€ƒ:тттŒіWЎЖoЛ€Жнxž#%%%%%ЅmЧ_Щ DъёKVм@A0ЎB$aњєщœwўyœpт‰Бх;эМВ-—lЫ 9§дгиМy3•••\pсь?y2сp˜лoНO?§Ё ў№‡‹™2u ѓОšЧ=wпЭњѕы4hOЯz†ЙsчђиєGyцйY‚V­ZХ~“&0§БGy§ЕзщгЇ’ГЮ>]з™ѕЬ,ўљЪ+И\.NљЭo8ў„уhhhржПоЪ—_|AUџ*cѕŒззпРмЙs),,фШ_ЩДsЯM›џЅ_bіsЯбммЬЁ‡ЪW^щИН­`Ы–ZцЯŸЯвeЫ:dHlљ‹/Н@]]%%Хy=@Ус0kзЎeџ§ї‹•=`Р QЄЬyгЪоš5kИюњ™8qЎПю љёЧ)(,ЬИС`ЉgЗсp]зѓкѕuѕwмБvш!дззѓWўЩ_oНЭ0B-„р˜cŽЖњљм>%%%%%%%%Ѕ­OбзЗ шQ4”mKњŒKcђк—Ÿ/ЁЖЖ–У=Ь8MЛ ]тu{јЫ_ўBee%яМѓЗпv;“іФЇТтХ‹yійgб4-њ$]—мп}œpТ |№СlкД !уъЁGг 6Œ3fрrЙx§_ЏEЩW—МѕЦ›М§ж[мwп}455qйe—БЧюЛ3|јpюОѓ.ТЁ3fЬ ЖЖ–›nК)VЯx}ій\rЩ%ЌXБ‚Ы/ПœЩћOfдЈQІљkkЖ0§‘GxќёЧЉЊЊЂООоДэ лЙэЏеФ3ѕѕѕьИуŽќыеqсчА|љ VЎ\EUП~дее‚дЙњšыxтБщxН^чўў|юНћ.**ЪcЖž~f_Э›GccН{W№›“OfЯ=ї`Юѓ/0їПџЃЁЁ}їШяІУ† yь‰'XОl9 фwгЮa№рСќ~Є”œwў…œtт ”——ѓбGsнЕBDШиv­YЛ–3ŸaхЪ•Œ>œпџюм„zхЂ^|ёeFяК+гЮ>+ЖЌЊ_пXОoПћŽgf=KmmЛнsЮ>‹’’–-_ЮуOђ3ž~†ўUUœpќqМѕі;,\Дˆ?ўпХ<№рУ|ѓэЗpРЏ~KcД}ЭЭЭ<3ыYОљі[ЪЪЪ9ыЬгйyЇъпю иwтDš[šљц›oёИнœ~њЉьГїо–ЧOMM OŒeЫ–Q\TФŸЎО’ЊЊ*т)Оš7Mœњлп2yџ§xыэwјЧ+џDзuЦŒЭyП?—‚‚шCК7пz›з^ПпOYY'Ÿt"уЧэ…”’Wўљ*|№o„ІqфS9єƒcm“б>T‘C%%%%%%Ѕю,)ГЂ?ЅŽ IDATrWВЌe­ЋЏУуёPвЃФr|dћК‘ЃFpмёЧ1}њtjЖдPXXH]][jЗАУ;ФвВjе*4—ЦаaCл"Ќc1лПk.-ЁŒіuяНї'žt"C†FЃ†уЧчЫ/ПdарA|ќёЧ<5у) Ф СƒшзЏ_‚Эv 2€Бecйe—]XБrC‡ 5ЭяіИб4-ъ AqIqFуF­:ј656rъoNсО ЖЖ–ђВ2оzћm;ф`~ZА€ІЦ&vйi'њіщУ‚ ЛлnќќѓЯєэл‡оIАїѓвЅyФьЕчЬŸџ>є07§љF† ЬO pФ”Уйgя бЈf$Т]їмЫЛх‚пџžЯцЮхŽЛюцžЛюŒеwњCPRR‚Іi|іљмиЖˆИэ ‡Умsя§ьЗяD.љУ…ЬyўEž›=›K.ўCNлiў?pўяg˜fгІЭ<№РCL;чlFŽЮœ^ф‰'gpщ%гPWO0фŽ[џJss =2їо{Ÿ#˜ŠvкiGЎНњЊиУтТBЎПю xvі^|щe.ћу%lкД™{яЛŸГЮ<ƒ]wй…ІІІX]ЎЙњ*vоiG4MЃБЁч_x‘ПќљFњTVвии˜Qoa3Mss3я№={є ИЈˆ+W2tШnИіOј§ў„}ЕћnЛёбЧŸФ–§јгOьЕЧрјуŽсЌ3NcЭкuм~ЧŒЗW,BП}xіййДЖњЙѓЖлјjо<~d:їпswТ8в†Кz‚Сwнq;55[ИэŽ;йwт>ќѕц›јюћя™љє,&Œ‡”вєјyэѕ7шлЇ’Ы.љ?›)//gоМyЌ\Й’ЛюИ MЄŒnлИНіdяёу…BмyЯН|јбЧL9ьP>Ÿћ_^уMўpсљєЏъЯOЭ`у† руO>хгџќ‡kџtЭ--мvЧ]ьКѓЮєъе3'ћPIIIIIIIi[“–­)ЅсЇG„B! зЧчпДiW\~SŸТqЧ‡”’P(Фј у9љ”“ЙђŠ+Йфџ.aѕъеH)ЙцкkXЕj'ЯЯy>jOЖfвї„ђdGy=јxxŸ}іЕЕЕджжЂы:}њєщШ‹Œхkџ„B!юЙћŽ>ъhІ>…E‹ †,ѓsѓ-73ыйYœњлSљяџkкvVcЈ„ІŸІцfњіэУФ}ісƒHcc#п|ћt EEEQр‚q{эХWѓОFСЂE‹3ztŠ-€ђВ2*{їц€_§’ ЦѓŸЯ>яXW^Nii),]КŒЦЦFN9щDњіэУБG…зых‡~ˆЅwЙ\ИнQB€ Ё,!K—-Уяїsь1GSZZЪ‘GNeўќ,Зйi;…У‘ЖhVЉсњЯчЮeܘбLкw"§њѕуЬгOуЋyѓhmm!№x=TTT0x№ &OоŸ%?/MШяvЛqЛн!())ЁUeeexРЌ]З!ŸЭЫ˜1c˜Мџ~єю]СаЁCbmтriБvђx ihlЄЁЁВВ2ЪЫЫBаЇВ’ŠŠ њѕыЧ>&Аnн:„|єё'L=ќ0FяК+ххeбЎцmuќьѓЙL=ќpШŽ;ьР/ЦŒaў?цl*)))))))mkЪ~њJh1|8%%%|№ўћuдQFлЩЇž|ŠВВRўёП#„`ъд#b]гN:ёDŽ>ъ(юПџ~юМуNюПџ> ШwмЮ‚ Иќђ+иiЇлlЕз'ў{jyхххœrЪ)L:%ЁFэ3zЎ]Г&-ЛЩНџоћ|џ§їЬ˜1ƒ^Нzrйe—’ђВ2ЫќЦgќИqМўњмp§ МњъЋ8œeеФY …ТƒAŠŠŠ8єCИхж[qЙ\Œ7Ž’=(,,ЄЅ Ііоg7пr+gŸu&п~ї=Ч{Д]бВŒ.япП?ЋV­jћИЎzK ИтЂX}*+ЉЎйвaЗ (RЗЅнž fЫ8уьsbI"@(„ЯыЭI;yМ|^/ѕѕ †iЊkЖPYй'ЖЎМЂ—ЫеЖ-‰Ж{іьIKKKЂИя?-XРsГŸg§њѕxН^М^/AuM •••ЦuŒkЇЂтb.§у%Ьžѓю”д7$э›Єv/..Ёея!а\. ё–ЧЯ1ЧЭœ9ЯsщхWВїо8§ДS;v7Ž’ТТ"–,YB $‰ 4A ФуёФьЎ[ПžH8BEя ТтХKРќљѓ6lН{гЃGšš›б4-7Sъ&у>t sцЬaр  ш?€ѕж3zєh„Іq№!sџ§№ЧKџHЯž=ёћ§)3XЖOЖ ‡…У Ђы­ђћ§–.[ЪАaУ>b8С`P8„g j†ўж |> @џЊ*^љчЋќхЯ7"ŸЯGkk+:x0єчƒўЭЦM›иmЬ 04Ёыluu5ЅЅЅ ЫлзѕЎЈ`KM z$‚ЫyгцЭєЎЈHшЮ) ьЧ/ыUJYYw.уік3e]яŠr–-_Ы_SSC$Ёwя jjЊЙЈэШ€лэŽЧqЖ}ьqŽ:ђH<рWќД`г{"КЅЅЌ^Н:ЅŽnЗ=œhcїнvcь/~СП?ќˆ{я{€'›юЪEšu=JJЈ4˜%WXќРФ}іцЫ/ПЂЈАˆ}&L@Ÿ}ў9 .тЎлoЅЄЄ„[nН=–>yћzѕь‰Іiмuћэєэл'm§“x4qЙ”iŸigŸХqЧЭwпЫoМЩёЧЫSІpШA1ѓщY<ёфS\pояyіЙйм|гџcШрСќ§ЏАys5(.*ІЎЖЮ№8.эе‹ЃŽ<‚_§2uvю\ьC%%%%%%%%ЂЩ jбєјуЇА —_~™G~„ЂЂ"ЦŒУС‡ЬР‡~ШЛяМЫiЇŸЦmЗоЦБЧ‹ЫхЂ_П~xН^Оћю;юЛї>ZZZ8p _|1RJў(‹/І  €§їпŸ &№Х_Фъ{wg|нbQЩS ЎЖŽoИ‘––њїяЯC?DQQ]tг™Юх—]Nkk+•••TVV&и:рРјђЫ/9ує3…BБnЊRJгќ›Ћ7sгŸoЂККšВВ2.Кш"Š‹‹ПЪР$Кеъї#„РгцрyФTЬЫ№сУ№Жh{ўУ?œ‡~„§ї›„Л ў“ѕУ 6lkжЎхѓЙџхšЋЏŠ+П#В5jд(Jz”№ќ‹/qШСёйчs CќтП@JНЃо ‘ЕшяТТBЖдnЁЁБ‘wкMМјђп8рWПl{яЄЄЊЊ_$jŽ_Чw,7ўљ&f<3‹ƒјnЗ›ЅЫ–3zз]иwп‰МњкkќчѓЯ9r$Гч<Я^{юIqqqBН“ЗЃoпОЌ^ЕšЋVЁ AEяоD"бз!C!тЃ‹ћNœШез\Ы‡Ь/ЦŒЁЖЖŽ‘#GаЇOОœ7Њў§iimЁoŸОЌZНŠA2xШ`BЁсHŸг.œ"ŠšЄFћ­cйЄ}'ёїПП‚лэцЖ[o!ЂГ G"DкОЗлIоОСƒ1aТxž~іY~{ЪЩвааШАaC ъ/Нф: ayќЌXБ‚вв2М>••НiimeSu5‘p„ВВR шЯђ+Ђut)л2uDџ'юГ7oМљ;эДnЗ›umГv#DєИљзkTUUбЗo6mоЬŽ;ь@ ЬЭ>TRRRRRRRR šBЂ–ЋЇN’в`ШрСЬšѕLьїC=˜’ц—“'ѓЫЩ“SЪ3JЛЯо{GgЮ”2с{Л.ПќВX~!рДгNхДгNMБ]XPРЅ—ў‘K/§ЃщvњМ^nИсzУЖ0Э<џќGmgмоЦ‹ў@ДыgлњнЧŽeїБccП}^/ѕ БпуімŸЯЧО'šк\ђѓЯќщšыpЙнќі7ЇАУЈQЉafРЅЙИъђЫ™ўиуМ§ЮЛ 4ˆЋЏМŸз‹пяOxА vмaєРГЯЭсТѓЯуOW^ХуO>ЩkЏПAaa!Ч}4U§њхЌFŽСѕз^У /ОФЕзпˆІi :”!ƒ3xа .Йјbf>3‹ккZіи},г~7ЭДўэ‡ЦФ‰љѓM7SXPРe—ў‘sЮ:“gŸ›ЭгЯЬТчѓХкo@џў\rё˜ѕмlž|j&•••мyл­œpьq<јШУ|ќё'Œ?žуŽ=†ћxˆккZzѕьЩЇFqa‘ѓ—6Щ гHѓ§†ŒFGо•P(LEyHиwŸ‰|џ§|.НќJТс0НzѕЂgž IйО Я?igŸЭЬЇŸ‰ю!и}їнЙјЂ ы&-ъ,Сэr›?Ÿўч3оџƒшў9’3N;E‹—0cцLZZ[ЉЊЊтЌ3NЇoŸО{Ьбмvћ455QRRТ!=ф6mоЬџЛщ/ј|>4!(,( p мsп§ДЖЖвЗo_ўђчџG}}}nіЁ’’’’’’’в6&qљьdAЏrŠ*њrёшB6mм€žц=ЁPˆE qшдЉlXЛVЕb'Јjр@о~§uvмiG€X{џ№ѕМЌьA@ђщgŸёсGsЫM6LїЇkЏуЈ_џšН'Œяжэ4fЯН:ЅЖFЉЖш\544ќіЮ;>Šт§уяНЛє’PBBНї.нЈtь ˆв,€"`А€єfС(н‚ўО (`ЁHz…)@i—kЛП?.wф’KUРyП^ћкdwЖЭЮЮ=Ÿ™gžAЏ7ртъТ… XђоћLŸі CCoШ;tЈТSA рV@­VуW;OвЈЅW„Ћ \$p戓JТI-ЁV“ 4*  дЈU iбВ1I)—.W|VзKСЭi9ИF—ОЃЧŽВ|х*BB№мдg.m•л6’Їˆ@*ђтzУ'ŸmЂЈЈ___ю6ŒА2зw@ С•Ё)е–рыыGvqщU@“ЎпTЎщјž={бГgЏЫІ[Вxё:ŸD™TЄWЏоєъе[d„@ СѕЂёёёШЮh<М…Н…Pd…RŽ’’$ tКRŠŠŠP$‘пх)**DЇ+E[5јПœO"/юЌwh0з\@ 7дjЕu&’›Д9EЇ”ђѕ&k`тТЙLыє$Ua0HHH`ррЁœ=}JМЙ@§†”M c‘Іe‹ЕX‹ЕX‹ЕX‹ЕX‹ЕX‹ЕX_ПЕ^o уьd“БЦq*дj5ў|’ю|ucDЯef •%є'РM(Р[„3ЇRE&@ ‚Ž“Г3Ё УHLˆG2бh47ќšЊ“'OrўмЙЫі‚ @ рЮCWZЪљs™дЋЬХ‚‹7хššN]КRЄ7qЁH+о€@ @ ќ)еjЉD^^^ž^Јеъ+Ds.œG‡j@Ч@ ‚џ"ŠЂPЊ-E–х.DU"Л@ @p3BT @ Bˆ @ р?#DХФї@ @ ИЉBT`!33“mлЖqъдЉлўYŠ‹‹йИq#{іьљЯНЧ_~љ•Э›ЗмАѓkЕZvюмХО}ћnJ™мН{7gЮœЈ@ ріЂ~Е№іёХУгKфF9ЖlйТЊUЋqqqЙтcu:Ÿ~њ)уЧO`ШЁ<єа(ОќђЫэYŽџ‡ЏОњњІ_WQ^zi6&LDЋеVˆ“&Mfшаa 0Я>лDff&cЧŽхНїоП.з/,,фwо!))ё†=убЃЧXО|9…7eР€Л™1}КMњ.]КАdё"5jt]Ўc‰Э›пРМСУУƒ маМЬЩЩ!33“оН{пєђŸ@bb"&ŒП @ vиѓнwЌZЕƒС€‡‡aaaŒ;Цмt…|ёХ—ИИ8ГaУzsgЮŠЦЎЎ‰H.їwuЌ^Г–’’оxуuкЖmkГOЋе‚$нr!’ЂЃcЬ=iЭ#Џјо~ўПџУЯЯо}њмЯЅеjINNЁC‡іџJ^— 4ЫuљuFЃ‘|АђНHЭ"#kTЎjєcbpwwЇAHШ yюввRRRRшаЁУ ЯлQбDF6Лщя0**Ъ*шE83@ ‚ЪЩœ9Г)))aџў§Ь™3—uыжтяяEчJ=™ЪАaїрыы{ньт+AЙ MxUBtљВe8К{rߘгл‘šš‚ЇЇg% TyрРvюмIJJ*jЕšV­Z2eЪММlЧЏЦЧЧГgЯwDEE‘››‹““сссЬž§nnnГiг&ЂЂЂ9wюEEEВvэ4 zНžmлЖГoп>222 iРлoПГГ3ббfЃЧŽЌ[ЗЕZM“&MxњщЇЈ[Зn•Яj4љчŸащt 4€€€>љфcРЮŸ?ЗЗ7§ћїcєшбЈеjыyЖn§†?ўјƒєєtђѓѓqssуЭ7прЎЛюВ{нјјО§і[ЂЂЂ(,,Фгг“qуЦ1hа@bcуe™Ш2w%љh4йЖm?џќœ;wGGGъж­Ыєщг&//Я?џ‚#Gސ““C­ZЕ cоМWаh4МїоћьнЛ—O?§„кЕk№їп№иc[яУВдЈбxyyйИфххёх—_qј№aђѓѓ `єшбєщcл3XRRТЎ]Лј§їƒddd еj‘e™Ž; IRЕeєrљ`!33‹элЗsфШВГГ1˜L&š7П”ЗП§іп~ЛГgЯb0`ьи1tяоНZAћнwпёлoПsіьYДZmY~"%%…№№ЦЬœ9~љх>џќ ЮŸ?ŸŸ6ЌGЏ7№ілoѓілoгЖm[оxуuўњы/VЌXANN.:tрйgЇтссбhфеW_%99­VЫ3ЯLA–eОўzГе>2d0ЧŽ'!!€€цЮCHHШПŸ_SІNЅФЈPxƒz}§ќќ9}њ4щщщUŠ8EQјрƒјёЧНдЏ_ŸaУ†’••ХО}ћ‘$sцЬ@–eVЎ\ХЎ]Л№єєЄ]ЛvјњњАsч.’’’puuрФ‰lлЖШШH†Š^ЏG­VЁбhШЭЭeіь9ЄЅЅСрСƒ­ћЫ я( Ѕ}ћіœ9s†?ўјƒѓчЯГjеЪ*…MBB:Ž>}њаАaC‚‚(((р…^$--Ю;бЕkWŽ;ЪІMŸЃVЋ=z4EEEЌ_ПžРР@њіэ‹Z­&33ƒааPЛзмО};ЋWЏСЭЭ•N:сххEFFпe}РFˆж4WЎ\Хž={шдЉНzѕттХ‹œ:uŠ   ŒF#sчОЬ™3gшпПўўўœ?•JFcюh‰‰1i,ЁВ,KDD]ЛvРСACэкЕ­ЂЛ[ЗЎжћLNNfЮœЙгГgOќ§§јх—_YДh †Z? јј,X@~~>-[Ж`№рAœ;wŽ}ћіYЕ[nMѓрЛяОgхЪ•ЈT*:tш@=8rф жkьлЗŸЗоz‹АА†мsЯ=шѕ:’’’ЋmМHJJbС‚…dggIпО}8}њ GŽБ №dЂЇOŸІsч.hЕ%ќєгЯЬž=‡?оˆ‡‡Ч•3ЫљЪ‹шђл-Яd2™ˆ‹‹#88˜ЛяОлšЎeЫтзF Рƒ§ћї“ŸŸO:u0,XАО}ћ2wюж­[ЯъеkxљхЙ$'ЇЦЂEяки~sцЬІkзЎЈT*23Гx§ѕ7xюЙчhв$œuыжѓС0oо< GŽeщвёѕѕХССЏПоLDDž|ђIўўћ‹/fцЬ™Ьœ9ƒM›6БaУF.\№я б}бЃGѓілo3}њ ЦЫ AƒpppАIГmл6~ќq/={і`жЌYж§'Ož$..ЮšnѕъеькЕ‹СƒёдSOсффDAA[ЖlЅ]ЛvVhщС™4щiТТТlя›oОХщгЇ™1cКamСтЪкЉS'^zщEыіз^{пџsчЮhїYOœ0‹О1cFSЏ^=›}‹/!--_|‘^Нz0vьЦЯЯ?џŸU ФФ˜н‚‡ Ц№сїW›ЗGeеЊе4iЮќљѓ+ѕ[„…ЃЃЃЭИЫšфЃ,ЫќєгOДnнšљѓ_­tоииXRSS™8q"ЃGЊД???Ÿєєt›qЖЩЩЩhЕZњѕыЫ!C*мЇљ5+ѓЃ/))aўќшѕzо}їыіАА0о|ѓ- !##ƒ9sцрффФ{я-!""€O?§ЬЎа*OMЫгў§ћYКt)M›6eюм9V7‰'NрттBЃFц2іу?тттТћяП_Ѓ\YYYМєвlYВdБѕWЌXЩ‘#GhбТ,і IKKЃ}ћv,\Иаz_ѕыГfЭ<ШРЏЈœEEй ЮŠх%<М1))цжЕЎ]Л0rфёЫ"@Pџ§7їо{zНІOŸFXXCЂЃЃбjЕŒ3I’xр‘LŸ>Уzœ‡‡оооx{{[ЗI’ЪъЩіыЏПаІMЋGрфЩ“7n.d[{SRRйБc':uтйgŸ-'ўN ( -Z4З1І]]]­ЧZјѓЯ?‰ŽŽfј№сvE(@\œХ•еv`q:u(..ЉђYOœ8ЗЗw%ЫŸўIЯž=ЌтАККІІІVdі\i+ВqуЧИИИ0oо<Л"дh4’H“&MЌН”5ЭGY–1™LфццR\\lуЂj97@FF:ŠЂTъ%Ž-–M+ u{Яc+DwьиIvv6Я<3ХК 11 €€€кebr ЅЅЅМ§ілж^`ГаВˆDћjšzНž+VRЛvm^{mЁ5єz= Дhб•Jem§2dffж(xбš5kаjЕМѕж[6ї~тФ <==­чА4NДmлж&Ÿ-ЎкйййW\ЮЂЂЂ№№№ 8ИОЭ;‹‹'<<мZ^,уCkR@ ўЫ4oоœiгІQЋV-мн/йЮ.\ ??Ÿ{юЙзКЭd2ЁгщjtоѓчЯ`§пЯЯЕZЭ… чЋь +O­ZюжожZЕм)-еољЅZОlй ПHюњ‚f IDATлЖmYЕj%гІ=Gaa!ѓцНЪЉSЇјыЏП)**ІwяоqђфIvяоЭsЯMУ`0№шЃ№§їп№№У+ˆ?ГЁlщ=вщt$''гДiгJтшРмwпНUоыЅž"[У;33ГLи=Юh4РьлЗЏьКїUкwётE<==mDtљ^ЖЊШЪЪ"))‰nнКсууc7MBBzНоцYjš†QЃ"--Ч‚oПнfŸ–ќiеЊ?§є3“'Oс№сУ•Фwyai5UEя­шЦћыЏПтььLЧŽЩЪЪтШ‘Ѓ,Yђ[ЗnЅ}ћіДlй’мм\ўќѓOКtщb#фєz=ёё DDDиŒН-OMѓсрСCфчч3rф1С`Ащq}№С‘$‰gž™ЪЪ•ЋШЯЯЏђ§хххqшасJї^PP@ZZЭ›7З–_K™lомжЖААРкŠv%хЌЈЈ˜SЇNU*уЩЩ)шt:›(Убб1ЈT*kOГ@ Р>NNNкˆPoo|}}йЕkЇuљюЛ=5žоппŸЌЌs6Тжd2ся_Л†w&Ё”›ŠEЙEЂOЊІLzS.$Iф‘GСh4ВПY&%%№еW_1vь8&MšЬъеkЎoуЎƒOЅЕ{ттт1™LvсЩ“Ї№єєДŠ{DGGуььlувk>ouыж­TА,$&&ЂгщьŽILJJBЃбT *“™™EffІе RЏз“””DDD„Е—­*,BоrЌ=,bА|^д4ЦЯтХ‹ dЭš5Ь™3зZˆU*oНѕ&3gЮЄИȘљѓXнaЭз1їJ[ЦЖ*ŠBLL4ЭšUn АИёZоЕ^Џчєщг”––2~ќ~јцЮЫ‰'˜8q"/П<I’ˆ‹‹CQkяzu"бž№­YyŠЕ6ІTLgiљВаО};VЏ^MїюнйЙs'“&M&''ЧюѕЋКw{=ќQQQИЛЛбАЁэ8сПџ>@гІMЏЈœ%$ФЃ(ŠѕИђeп^y Б/+@ Ј9‘‘ЭPЉT|ђЩ'œ;wŽЬЬLвггk||яоН9zє(џћп/dddАrх*:wю\Ѕ.Й]амь жЉ€Vkvq-**`сТeниюTcWPPP)Гu:iiitъдЉмјPћ=šƒоъrhГ+kM›6ЕщIЫЪЪ"''Ч:Я—„IхырщщYI\юиБEQЌU0vEtEєz=juеЯ“’’ @уЦсWœ—>œHо{o oМё&П§і'OžДКќ№ЖlйŠЋЋ+cЦŒЎ6 Ѕ­}ФЫ/ЯeХŠdgчаБcGž}vъэŸ/6џ)˜ћj/з_[>MiгввЈ[ЗЎ№гjЕ|ѕхWДlй…€кfWWйd"ЂI›k”{шээЭщгЇ)*,Фнн€пџEQЈ[ЇŽѕ>ЂЃЃqpp МqуJїVЏn=>LJrВMЇ,ЫЈTЊrЎЌЭlŽЕЮЃYхѓž8qw77BCB*Ѕёѕѕ%66–‹љљVїШЃGБkз.Т6Є{Зn (D[Цу5kvйwPЏЌрўѕз_ 8 вГXD €ФЅїU“|4™LЈT*kоK\rџTЋT ›їъьф„“Ѓ#Z­…„јxГ nжєв{‰:QхГХX55ЇїіђТбб‘ чЯг4"т’ЋP&|}ЬКуутшйЃЛU =rфRU‘5-OОeт7>.žЮ;pўќRR’ РAЃEСh4кф‰ЇЇ%ПдvяСлл<І7))‰eБИȘcЧŽ™Eb PbcbЭSФD6ЗžчдЉSЬ_АY–™:ѕ™KїZУrцфhvɘбzlFFББqxxxрть ŠТХ2зbwwї[Ч‡C рфЁЈвf Ў_%‹WвTO<ўX%MЕlщ‡•ЖЕoзŽ6T:оХй™ОџЮ&}ХsnмАоњHƒ|ГuKѕЖEыеD^УLЂ7dбЂЂ"žсET*‘‘Э№№№Є р"ЧŽЇИȘ>}њаЉcGРЬшЋЏПцѕ7оЄk—.јћћSXTDtt4 ЬЗЖєьбƒѕ60ыљчщиЁ#щщ:d—h(Лh2™ˆЇqуЦ•"ѓŒ1œC‡ѓќ /вЕK\нмH;uŠˆІM™8a|•НЉ—йяa3™LФЦЦб<2вюд.}ћєцФ‰<џТ‹tюд‰sчЯsрР|}}xх•—mЂ§j4š”фUаАaCZЗnЭСƒ™>c&7ІИЈˆуџќУЦ ыqpp Ix8ќё'ЏЮ_Р”Щ“ ­Q>юоГ‡=ЛїаКM<>žќќ‹„‡7fтФ‰Œ=ЪjЛЛЛгЅsgв3в9vь8БqqвЂE :uъhФоƒб@TT4б11ИЙЙѓќЌ™фххсычK›ж­IJJbїю=єщг›ж­ZUКЏкЕkг4Ђ))Љ)џч222pЏU‹оНzRЗn]Оўz3чЮу™)“mzЗж­[ГГ3уЧГ› ьйѓмmюёЋ@XXnnn$$$pфшQJŠ‹ЙћюЛyс…ч­SШВЬђ+ cШрС5zy]:wІD[Btt qqq”hЕДnнŠіэкЁVЋ чтХ‹ФЦХвЗo_МННk”Єž<ЩбЃG‰ŠŠFЏз3dШ`&OzRRSINJця#GHLLТЭнqуЦ2ќ~ѓt3›ЫђqJЙ|\О| CC4ШжНYЇгБjеjZ4oNŸ>}ЌллЕm‹‹Ћ 1ББќѓЯ?ЄЅЅсююNЏ^= )ПЉбhhгК5ЉЉ'9rє(gЮžЅsЇNŒ;†ЬŒ š7oŽŸŸŸнМЋI>јјј\?˜иИ8Ž?ЮХ‹Œ9‚6­[sБр"нЛu#''‡ГщџчŽ;FNn.кЗgцŒщдЎэoїњДjйŠФФDŽ;FfV}zїfшАЁфццвЂE МММ8{ц gЮž%..ŽSЇваЈе 8€_|ЁвмВ5)g`ve %:&†cЧЃе–2bФp:wъduХuqqСбб‘   “’ˆŽŽЁ Рќ wюмYдœ@ w žо>$%&рчч[eаO *• 7їZќSш€“ T8H QF’аЈ$Th$PIцП-‹Д%UЏ” M0БŽ–sY™Ш&SЕ5 $$$2hш0ЮœJ§ЯПАЬз_ofхŠх•Ф“’xійч˜0~џь3‘р–žх@ ѕƒ@ мyз\@pK—@p-u‡ш-!D@P@№Џд'B Сэ*DХМT_лc и+ I@ Ј@ ‚T ю”šДцš№l:б#*ny*„Ћ@ ИRa)Љ@ ИRdYЦd2a0яИgsаhPЋеЈTЗЮьжЈЙ…ІsММ|“QpptД>МЂ(H’$жb-жЗщР з сwн…——зu“еЅЭХ‰?дu9ЋИ–™—х$IЌХZЌoзѕЅяYЁ.%t2eрЎЪzЁІгRoUeЃ$%%!ƒАQФZЌџУ6 €С`@урHƒPœœ-§‚HwШZЇг‘~: ƒAƒƒУ­!DЇLJ‰ёЦє6\Мx‘Иј8šЕhYЃ n?ђѓѓ‰:AГІxxx^“Н\К\œјF #ФIЂ—ЋШ{рэћфT‰+пhУЁЄиˆбЋэёД'F…"Х‚бhD‘TмоN‡NWzЧх…ZЅцЎ№&ФЦDc4бhў}Чиz'гNбВu5К W77ё5w %ХХhдj’hйЂХ  I;)ДїVся ђ^ ИSёw’e™УЅ "­FѕЧхiХtТFўл6Jy.аЌEKJKЕШ&г™&YFЇШ7!&ъ|}|юl!Њ–T„††RЫУC| СJ-BCBIMJМbqYsЁj^ЇуJ/7~…:NцmŽ*ё‚[ Н|mЧ+ „КJќZъZСmїњRI’Ъl”†ТFўƒ6Š@3™ШЫЫЧХХmIё-§<В,sсТЎюxЃWWђђђёђєD­V_ѓ=]‹_­ЦоЩ”^№ri]]psЏ%ОрЧ­V-\\]/е —˜їЧЧЧГtйGdfdpїн§™4i’н l e“и—isT][рюЌЌ,ќќќўUїY–9wюAAAWuќЩдT<<<№ѕѓQpЫрp ёєВйИP,п|9qjA’Ь.wЯ=7%K–рчч{E‚TQ”2Х§Šю­ЄЄ„д”"›7/Y ИMm”JBT–)еi‘eŠ"пвЯђл§,§p)[ОйzѕТQQ(еi1Щ2*;BДІ:яZE(Р-з—}Nэл‘™™yMiСПУ•ŠP€—.ЃwЏžlмИQЃF•38• Ыеc2™0 жџ‹‹‹щжЙџj~§њЫ/<:q‚н}яО§6ЏПЖАкуЇ>3…ўљG<С\ЋTЊммн8p ЕЎ[]T#pі‹/^ї'~пНќ№§їтU џvm#+5^ўњуOЦŒMчŽxїПЛшŠŽПЊEЙђћЌИмJXЃцоlіьоЭђ–‘”˜ˆ››экЗgё{яущщХшБcёЉЦoЙ&iСэ!BF#gЯœЁ_П~xzzU):•Вљ‹EБN[UўtЛwяbѕЪ•$'%сээЭаaї0cж,œЭ‘яР‚з^ЃcЇNжѓ•_ўэ<ГwЛvA6Щ5ЪW1ХрЮЉGЪ}пeeлЖwг\ж5j5ЃFВcЏДКˆЙ—ЋГ†пw/ююю|КщѓўЬ#FŒ$МIёђ‚[мŽ)oЛЬš5‹1cЧђюЂEфцц’ŸŸУ‹Хь%rЇќцkІLЪкŸrߘё7эЂ[Зlfі‹/2ѓљчщгЗк’~џэ7<<ЩЩЩ3mк4BCC0 (ŠТИёц^С‰&№Р#Џшaѓз_ГpўЋМ8{6={ѕцєщ4Ь›Grr>ўƒAлН‡nнК‹Т(ИcШж›ХЂЏCћ_ЧЫ‡aЉеjyрС‡јтѓMИКК2{і222())!44”^xž   ЫŠQ{ФDG“˜ˆNWJZZ 4ИЁy3vќxQ@‚бFЙTздЬ577'‡ТТBюПџ>|}} Д/Ы2жo`ыж­Јд*&L˜`m4ћт‹/XЗv&“‰Ž:2ў|\]]љс‡XЗv™™™№эЖoбjЕ,^ĘН{їтшшШ+ѓ^A­V“™‘СР((( WЏ^МќЪЫИИИм–яRUОМткh4ђж›oђќ‹/ђєЄЩ4nм˜–­Z1љ™gPЉTRПЙЙЙL~њ)–,Zd=v§кЕ<ѕФу6iєz=#юП6-[а(4„{‡сдЉSжcЮœ9ЭCŒЄqXCкДlСИ1Ѓ+нг‘ПџІ}›ж„7 уоaCI*амЎukьпРйГgh‚^o6fПјќsЦŽeНЏЭšв,Ђ O?љХEEЄІЄpWУPДZ-`Wв(4„ЬŒ QƒnyцЮžЭШћя#­мЗцёˆŒЮЋЏМ\­ЁhяЛ_А`!Mš4aхЊ•tюм™W_‡Ngž–A6}і);ЖocФˆсv{ј.mГэЩ4 ,~ї^š3‡qу'PП~}КvэЦЦO?хряПѓлжs=ŠFЁ!1—[,ъѕriЪKNv6#G>pй›ынЇ‡Вў№ряєюгз&С`рШпѓЩІMќoп~BBC­аd2ёШ„‰4nЮџіэcщGЫљѓ?*]Їб]wБyы78xˆњѕƒyї­ЗшиЉ#Чрш‘#FbЂЃ8~ь˜еХoР ќјѓџБчћHJJтЋ/ПЄaX „Xяџш‘#4 !ЈNQƒnyfО№Z­–'{”мм\sEv6?њ(КвRІЯ˜iЧГ_(ВLB|/ђ№Ф жЎЭC>ˆЃЃGЕŽWPI*IB*WЏ(Вl]('ИЪ/БББфццrЯНїкlЏSЇ.э;tА QEQјфГMФ&$ђжляXЯЗоy—Ÿўя4 cСЋfб—š’ТЌг™={лwэтјБc|§е—(ŠBtTM#šђыЌнАбцš=zіфУ‡­џ:t={Ёзы™єфtюк…Ÿџї?x§Е…жtоо>lњтKЖямErrŸ}њi%‘ЙэлoљxуF–.ћˆњ™#АйЏ( пlнТЗ[ЗђЩІM|Аtя/YL||<{ќ‘и˜~ић?ќє3нКїТH,7}ш:“Тњ32…FѓЖƒТКг2“Тп*\цэеŠ%šбЅПРпЯ€кмџ}$$$TЊ‹ЊВQЪ‹бввRvэиСˆ#ЙяўсlнВЃбXЉžЌЮЦ0 <љиЃtэо}ШТѓHOO'//Ÿўї?vџ=!ЁЁ5ВI™Y/МxE6JЭ5ŽЙGГ& (,_Бœ† 2iв$žzђI’““P™~јбcFв€цЭ#щдБ#ќёŠ"€ППuыеЅoпОœќџ?ŽЂ(ьйГ‡={вГW/ъдЉЫƒЃFйєЌzyyсууKppp!к‹уЧQPP€С`рЯ?џЄg/ѓЖЂЂb&Mž‚/=ё$П§і›ѕ8WW„„а0,ŒсУGpќиБJЯџэ7[yєБЧiпЁAA4 Љ”fчŽ<ђиc„…5Ђu›6tыоп;€ЋЋ+99Й\8???ќ§§…0ЫM_‚ ‚ТЧgdŠŒ Ÿ•Щг+Œ‚zЮvŽ“Эnnіъ{ѕ…Хрєє№ЄИИјŠ<7,ћ~ўi/nnnДiл–~§ћSPPРў}ћ*ЅЏЮЦ8vь(EEХL}і9ќќќyjвdіяпoняььlЕ*FэЎЪ&WnЃ\)WRЇyxx0cц vэоEЃЛ1ѕ™Љ”””pюм9>xџКwыNїnн9pр€ейВe #† wЏоlйВХ:< ХіњйййFmч*ЄѓєєЄАА№ŠюћVтІЯYрщх…^ЏЇААZЕ.EК[ќюЛбКMы6š6mЪО_Сгг“ьўИX№ѕѕЕFС<{ц,ѕъзЧССЁк{:|шoМіЉЉ)8ЛИXƒ›єшй‹7^{ Н^ЯсC‡xсЅљтѓЯ8hљљљДjн€O?љ˜ukжЃЃ#}ћї`шаaŒѕЏНё&Пўђ?žуZЗdіœЙМљЦыtlз€yѓчгЇoПWцќќ§ЩЩЮЦh2ЁVЉ…ЌsчЈэ_Л’AYЕqI9бzЉ!ЮЫл‹’’ pЏ0]TVVf™+‹bWр–пцээMAAŠЂ•™СO{ївМi„5MгfЭь_БўiвЄ іяУУУƒрр`ќ§§љу№arsshйЬІ7ЅЄЄЄвљММН)(ИXщZ™д­[ЗВ›bЙgШЪЬфЭз_чэ7пЬSУѓ№#ђј“O№јcrз]wБрЕз …\pг‰t‡!Еaї9……‰цВ|o D„ЛRЉ!О|+{љoA’$›ЦЄђuƒэ—a?ˆбхЦŒnпЖ~§яF’$мммшбЃ';ЖoЃO_[ЌъlŒЬŒLrrВirW#›oо2\чjl@p§l”*mљЪЇoqvrт™)Sјfы7ЄІЄрууУИqу6lh…z!ƒЅ.eнКЕ4jдˆ 6™™iлШ^v}/OOT*™4jдЈ\§%лЄ“,6€,п–яёІїˆFDDрссСЎ;j”~иНццпэйУаЁУ.@Й.œ?Yѕ?kЦ FCTl-_aнLНzѕйКe nnЎєюг—'N№у?аЛOдj5щgЯђк‚ЌZГ–˜ј~фбKЯкД)нХч›>#--={ŠšCp[1ё‘G˜0q">і8cЧЏRlVЗНIx8юЕjёЩ'Ÿ••Щз›7ЃзщhеЊЅ]CгвbZГвЮѕТУ›рэуУЮ uJzњYўўы/Кv3{.888b0jTwјљљ3dшPNФФr"&–Ји8ОоRГ9Л† ЦофЧ~`№р!eчѓ# РzО1БФФ'и .`зРќ§ks6=Нкkћљљ3сBы5Ђут™љќ <ђшcќяз}дЋWŸWцЮ…[№ЏбЭК–НясНЊmбЊ4SЅ:ЂЊЦ,{њє2uW^^ПўђiЛŒ4 IDAT п~Г•ж-šгКEsиЯO{їRRRb“Ж:УппŸРР@SR­KЪЉДЉЪ&WfЃ\•­aЏb~~>_Н™ддTЮž=ЫW_}…FЃ! €ЛяюЯgŸ}ЦёуЧЙpсџќsEQЌ.ў&“Љ,ю„ЅсэR-g9ПZ­Іoп>Мџўћ$%%‘‘‘AzzzЙ;ЅЪиЗ]шчŸ}vгЂц:::ђмДщМЖp&йDžН0шѕж @Йяўс|№ўћ8:8№н?^бЕ:wщ‚ЂРGЫ–2jєіФИКЙБnэМњ*...„5jD@`€нVХЎ]ЛЁзыЎ8аЋЋ++зЌц•ЙsYЙ|9 УТpЏUyтызоx“з.реyЏрттBлvэЌћю1‚?xŸ™<саСƒV №ьДiL?ž‹љљxzyY[gю0юЛИЈ-З%jЕšvэллm5ЌЊ5бAAAМћЮл6iEСХХ™лЗ]j­Ћ @m\h‘AQйФ>b$ЎЎЎЌYНšХ‹оХлл›СC†ђьДiжу'?3•fЭdлЗпpї€М<яU;­ŠцџУТТXДd ‹оy‡єє ќkћГhЩ{ДёіЖ9ЦОООtъдƒAO@йиFУšЕы˜їЪЫЌ_З–ZЕjёдЄЩ•ЦyVЕV…#G’““ЭЌг)**ЂџнXДd cЧуѕ… шїнŒ|№Arrs˜іьГЬ_o&ъDЏ-˜OaaЁЁ!Ь}ež0pџ*аРkЁJэN–јgeD’$ХЅЖL:9;Б}лЗeUbчŽэ6псю;lФhMиГ{<јP%{cи=їВsЧN>ZБ‚FwнХыЏ-фН>ЌвЦpppргЯ6ёв‹/АzеJjеЊХ3Я>W#!ZM"*л(зѓЉЉ‹kн:uXВdБну%ЬSбMœ0ЁвО уЧ3ЁТtMŠ,3yђЄJзwuuсх—чsmвwюдЩšЎџ~єяпяЖuЭ•ЖЄъ•ЃBЁ Ц•p>3“ЉzUj0HLLdаА{9š\eКф”dњ Œ““гПі€)ЩЩјјњb2йєщgDGGБnУЦ~]­V‹Ђ(lпЖЭ_ХіЛDm!ИЃ(/dt:џЗї{Т†й™jrЦ`еBыRŠЪдТЉ нН%"м!аQСQ%оƒ@pЇЁ—!K/[Ј№[><ЊФ_2ZЪz)-‚”rг2vДRКrЉЪїŠІЄІар+O^ZгyGџ-C дœђ6JUК&9%…ŽЛЂQIшѕК;6/œаMќuјТТьzk6Л‹яvnЇqуЦ—ѕцTЋедЌУgYЎдRƒЋFТU.8kРI%сЄ–PЋРI•„Fj д*;СŠ*ФАo€–KЃ\&]IqёП&DEaжЬФХЦтшшHћxэѕ7nЪЕџячŸ˜1mЭ"#YњбrQ юX PR\„BeзЊDЈЕЉF„VЊ  H&t:#ВЋ#ВЌP*#ФЈ@p‹ŠЩkA–ЭЦ ";`TЬ= ’ezЇ2Y)•)KKЇЂ(жtхы*ѓџ•]t ЈААRлуnMC д‹R•f‘дjммнљыЯУєюг$аыю<1ъшф„ГЋ+Пџє3nююHju•yЂ\&Мnhд\23гёєђBЅКљжЂ$IцqџC‡нУаaїˆЏ_pЧ#›LdffрьфRуjЊ’;l"T–хKуП…@Š8Y "РY…Щ$‰ЬюPВu2' дЁд%ВL„JŠ‚JЅВжіФhy r]$йи(Y™щxy{_•ђoкрzй( VЉ№іђ&77—яvяЄeыЖјћћнqyqўТŽџє3*ЕŠzuыЂОNкьZФш Ђ>о>фч“šœH`P\нмџA*n@х.Ы”‘•™AA~>>>оФfeё и~Є**[&Ђ/[кШщь‘Bј=Ѓ`W‡šE ЗŠ‚Сhрt‰L6N х В$_*I ЫеŠбђuŽ% Еm/ЉЙк№іђцb~>)I еЉ+lрЖQ|}}ЊMяъъB§њѕI?{–Ÿ~ќо:ф„‡‡д­WWW—[тžnxЈJ%‘—“CсХ‹тЋю;бVHF\]\pА3ЮЪžKЎх›РDB‹ЫхцгR“,ЃШ2юВО†xŽ*>,vtт…w A’–~R.nЃJBRЉPЋTH’„ЌRЁШ2ЊrтВМЕД‚UчЂ[бF)ЊТш”DC—@p[cБQ/3LPЅRсхщ‰‹Г3ЕkPЂ-ЙуђТеХZ899н2nжЈЙV›Б|(ЪЊ-бъ'ш*‡“ЃNŽNтKюP!jнfВ>›ЕЕWД|tЗђhEVЬЎxj2a2ЩFє=эŒй˜d“xСŠZЅF­QSтр€Ѓƒ#д*дjЕЙ>QЉP$’Њ‚а,ŽŠЂ •ѕšV“=ZСFБ':…юухВIT’„‹Г3ЮNNwddљђн.ЏѕЎ@^ƒsЎfЪдЉЌнјщM›GT ќъћYЅтџжоаЪ"ToаЃ+еQЊ+Х`0 г™чжh4ж ЂСƒЃЃ#NNŽ888`r2сфь„#fЏ ЕZ ВŒЌIQY ,Ћ+.х‚U!$k>Ё‹@ јЏa#и7Ш@pcдhѕѓcVLcqЩЕєšdйкЊ+еQ\R‚NWŠZуРа{яУЧЧЃСpйщІСэƒZЃAЃб“Э?|ЁЄ“ЩьAЁ’TfГE’ЬnКeu†ЊœёX>,nХ1ЂVaZ>tЎ@ „ЗƒЖTЎЫёŠѓ™5ш%A*›ddй„о ЇTWŠNW ’ŠG&'ћ<gOszЮBŒjдЈеj5š/>пdn€RЋPkдЈT’Щм[!YЎ.MЩrНЂ5­ГDЯˆ@ !*nqЊдќРЪч(ЄHVdLВŒС`@ЏзSRЂeфƒ‘sс<&“_џк899 #Q И9}*ѕЊ•ѕ& @nN6ƒ‡ х›-›бh48:š]u%•ŒJ6Gа•Є ‚Б†=žUEйСЭAФ)7\ЄV5u‹Э>k„]Ќbдd2a41”––туы‹б`РЧЯgga4 ЗюЧm ƒ_??JKK1 FL&“u ЙЕ§Šд/едA@ ј—„шђeЫ;^*зйНŠф—ŒE‹U0Щ&dймSa0gg‘ЧС­\\ыRVєz$• ЙЌ.0GеVьж7ВŽС ЂSІN­№г!ЗFЃS5rїьоЭрhжЖ­[1эйЉШхЇ‰З&“ЃС 2B ю@nјбММ<убkQЄKsrUЭNЌХZЌoнЕ,Ы—MWўћЖЄ—-џ›d$ЉВ›œY0JцЙA0šŒШeуCKKu”––RXXXe=ГuЫfцМє3fЭЂwŸО”––rтŸуЗЬ„Эръ‰‰1OТюш„‹Ћ jЕFƒJЅBЅR!!ЁR™m UймЁцuйPQЫT хЦ€Zъ+UЙЙFЋŒВ ЂўkБыmmЉƒ$œ\œ‰h——з'DЫЛХTGљ4еЅНxё"‰ ёxz{QЇN=ёk*мцдd|•%ђ­Нє–JХМгъbЇ(ц1_rйи/ЃбˆбdТ`0P\\ŒVЋ%//пn e4yыЭ7yiі}ќqыі–-[А~эZ>ќр}LВLїюнYђоћИЙЛГcћv>ќр}вЯž%((ˆ_ќЦњЕkYБb9E…… 1‚ЗоyWМtръ*‹jыˆььќќ|Ћч]vŽ€€@МННpqqСЭЭ 4ebT’$Г•$$I…di№–$k ЂŠ RхХeMЦ™‹БшрVЁЈЈˆјИ8"š5ХУУѓЦUсW  Џ›ЕVќ—36ЫЈ.э™гiд Жmœ]Ԙ.рNЂvЃцV D–/5a)ŠRiўP“Щ„lЂF#zНžЂЂ"Š‹‹Бš•n!..–œьlF<№€н{0h ƒ‡EЇгёи#ѓе—_ђиOEГf‘lоК•ЂЂbrВГyыЭ7иБk7ѕƒƒЩЭЭ/\ ИDGGsъф)М<НшоГ{ѕ†>оојњњрцц†ЛЛ;ŽŽŽhЪцUIjЕ$ U™АМ$0-НЄR%ZіR DЇЂрVЁTЋхœГ3gвNг,2ђЦЩP›рq5б„зKˆ^G4* ??\нмDЩ„,=ЂцiЌНЇВ‚")ЈЪ*4•Є2/*UY/‡ I%йmЫЫЭУббOOћ-ƒѕъеЗў=tш0’““Ќџ{{{уччŸŸ?ЈT*RR’iкЌт… WoЦи%%9…S'O1ŸддTB6Ќі\’JВж*•ЪІ~PIR9ї\ЋЕг#*„Ј@ ИнqusУ_Q8[RTm:“,CГШfЈoсaJ7єЮpvvЅF м0<НМаыѕинџщ'гЃkš†7ц“7ЂЏ"№‰‡‡kж­чЃЅKщгГПўђ‹Ш\р:’™‘A\l,Auъ№иSODLt ™™Y"s †8;;уррPх~EQиАa# .dіKsnщgЙ-"y”––RRR"Jž@№_ЧтЋWŽˆˆ<<<иЙc{ЅфщgЯђк‚ЌZГ–˜ј~фбjOпЋwo~ќљџxтЉЇyњЩ'аjЕ"Я‚ЋњVm]Лђrr8vє^ооєэпŸ Y™єэ7žž^;z”Ммм*чAЭйЙk7?ќ№)Љ)ьоГGбkaіœ9;vЬюОYЯПРСƒ‡ЎњмzН^”Xр6Цбб‘чІMчѕ… љфуœLM%.6–/6mТh2`’MшtКjЯЃеj9vє(%%%DDD гщ0ˆi#‚ыBBB"NNN <˜‚‹љШВLQA>‡ СбСЄЄ$‘I@p:tˆO?§”6mкp№?hйЊќ ‡џqKоЏцf_pїю=lлОММ<ќќќ5ъ!њєю]э1еэлЇ7!! Ўъ^VЌ\‰—ЇcЦŒ%W И-А_<іФИКЙБnэ^[А€ZЕjбЎ}†ЩГгІ1qќx.цчущхХ„‰эžумЙs<3e2чВВ№ѓѓуе Х8Qр:бЛ_œ(.Мˆli 2™а—–0тС‡0є”ŠŒ‚*0Щ2Y™™јљћлнЯ‡K—ТЛ‹s>#E‹—№иЃ№свЅx{ПJxxуџЎMJJbУЦМ№ќ,BCCЩЬЬТн§к 4шЊ5ŒЂT w„…бcЦ0zܘJлЇ>ћSŸ}ЎвіЙЏМbѓHHП:,2X ИпЉ^WŠ^ЇХhД§не Ш…€Rщс˜+—ШЪЬфи‘ПщбЛŸн§_~ѕЕjеbщGЫ)ʘЩdЂЄЈ€eЫ—ѓ№јёlоК…WцЮНЅžщІКцІЇЇSлпŸN:@ЋV-iдЈO<љ$QQQжДEZZšѕџЭ›З0jєЦŸР{їZЗO›>ƒпџ0Я­ГxЩ{<4j“'O!::њвЫЫЪтЅйsИяўс<ђшc\ИpўŸНѓŽЋВzјї^.K†€Ј   С;­м{я•š™ГЬНЕЁцЮQYцЖa§*Ы…[L­MsІ™“”!ŠЈLЙƒћћНpЙИ *иѓхѓ~юНч<чМч=я{ЮѓžёпЏ_OЧNНщлЇlЯ.E#„ТпLѕ“‡^кЛ Т#юЦнСЪЪќ8ЂBЏ#5%ЦxџujjКЋМBЈNŸъˆhЩ’%љpёbюФХёцАЗXђЩ'$$XЖ&ЄfЭxzzђђK/бЈQCuŠАГa$%%ЁP(2щ/— ppp VЭZT­V+•J*N! Іц–ѕђтіЭˆчтšŒЕН^ўс‘њLОНr’MŸUc>?wwwzѕьХМљѓбыѕ88уюНЛВFiѕ†МЂЂЂpww7ŠsrvFЉTВ|љ2<=<ŒЮЦ;wаjЕXYYe\МJ…VЋЭѕzA ліž5LџЈёgŠЫј|$Ѓ7в7z2}ЯђлрKPŸ)џЇ@JJ іііrг!?К‚є—Сž9ЭЩ“'ащвАVЉHŸŒЄ0y1œ’œЬёуЧAЁ jѕ(•ЪŒЖЎ7t LuФ#§Ђ07cB‘k?EЁ(ѕСюо‰EЉTйEOJ‹[j>N)žъkЧ .pћv,*јЃбhиЗ?^^etЇєЛvэЦЯз[[[tYІшФХХЧŸўЩсУGXМh‘ё…XYб A}жЎYЫР(VЌїяпЧппŸЪ•+ckkЫ_|IЇЮPЇІтцVв>r„6mZsїо=*ЪS.…Н{kF)6iи€ˆˆ”J%eЪ”Ёs—ЎŒŸ81пГ nнКEНыr%ќ_ЉrAШ_ €‹—.тфьDйВeщжЋ7NŽNёQ›NHH`ы–мŠŽцЪхKT­^УА>TlHA„tbЂЃ9sњ›Е0 OKKут?јћќy’S’Ю8QšЬ<)VЬž  jјњњЃPŽНqžЊ!š˜˜Ф–р-мИЪЪŠŠ•*2yв$њіщУЧK–0~Bzчбгг‡tз.ќИa_­[‡ЇЇ'“&NФЯЯзPљэŽ1‚UЋW3qвd uыдaђфIX[[3kцћ,]њ#†РбЩ‰iгоЃeЫ–œ8y’с#FRКti>§d жжжђЄ B#::šяј‘ *pіьY&Oœ€#GЮW~:ЮАуœ ѓsdЯВ+  $юЮ>_Л–ОЏєцЇˆŠŒФЛœЗAЮлл›ЈШєЕбббМ=e2ЇOТжжН^FЃЦЪЪT5Ž3†љѓчбЌIc:vьФŒ™3 ыиAАФ65нmпВ]sг вЧсПиг@–шн'gчЉыœШV Њ. Тsж‘Ь),ѓvпY?9Ќ7rеЂз“––†^Џ78Езh4h4RSSЙџ>‰‰‰и‹ЩБlЎЎЎ”*UŠRЅJёж№сДlоŒ„„<Ы”сЦѕЙызЏSІlњnн-^ŒЛЛ;'NŸAЁPP­Jelъ,­Vkuptdоќ3vC bэъеŒЫfMК fˆёgжяйє7Ъx—Їtщв8::RМxqlmmБЖЖЦккЅR‰•••ašБŸвє]!MO{є;ѓчЃяШњ;Л0A„g…FЃспkзžœš;яqЧUљЩ//я!CЖn2Y,+Тѓcˆš“1 Y:›i™:ЂпSz=iY R­V‡NЇEЃб’”œLJJ їюпЇSЧйž7>>žиилDGGГlщRќ+TРйй™žН^aёТдЈY[[[>[њ)§ћПЄOT*•ЄІІН0squХЩЩ‰элЖQЇn] ˆПOЉвЅБГГУЫл‹ј„xy !O§гUŸЙy гgŽХЅxqьээq(V kkVV*T*cTЉP€Bт‘ёјШ}dH>2@3˜–™bˆ ‚P˜HпYм=флMBЉ4 фf‹цзžЭ—!ZаДяўJЎ#Ђ;‚7гЉ[yВЁЂOcD4!!˜˜˜l8{xx№jŸо#ВnнК|ёе:КuяЮЭшh†dи5wР AŒ7ž уЦRЇVMT*^ооиййaeeХД3˜7wЕšЩSЇђoјП|їэџЈYЋ3fЮ’Brа&m5ЇEЂfвъЎ Џ§R}J—.“““Œˆ ‚№ŸGЃбВ=јЙИqд• IIIшѕi8::IeB!ча‘пВS(Œ5ŠЃF™ФљњњМmЛйtНћєЅwŸОFaгВq1%‚%ЦЉЉэ)ћ ‚ qнўi•E§тOЋ~U(•aЙщW=к„wEzjЎZ­FЏзSЗv-|МНXЙ|9zНž•Ы—SЋz5ЊUЉЬ‡‹Ёгщ 7)Л8s,_і5ЊQЇV-~XПоўХкЕTЊBPхJМѕц$%&АmыVš7mBХ ў4mдPкˆ < НћЩЃЃЂјћќyЉGAxђMеЄ­fЕ/ГГ5ѓт9@с?Џoѕzдj5 ‰IмOр^|їтуЙwпјHLL$5UmЁџцЇƒ*;хoщ?˜Тp)'ЯœСХХ+++ЖѓЭзыXћХ—ийй1zдHмJ”`№!9Ц™ЃFЭšРБ$š IDAT,_ЙŠKџaьшбTЌX‘ZЕkгІ][кwьHjj*C ф‡ѕыђЦќuі,AAUйАi‰‰Iв2ЁА`ў|д53оŸЩ—_|Ajj*ГчЮ•Š„gbžЄ™ AђЊQuii]нЅp/ю.ZісŽрщ# ™БVЉ(QЂj]Ў[ђjЈбgХŽрЭЩ™sѓЂTZœЮoкИ7оFКu3vkVЏb№!9ЦеЊ^јјtП€_М@У†№ёёСЧЧ‡Ž:Г}лVjеЎ——Зсм;vтђхK†пЎЎЎИЛ—”ЉТ‚№ЛБYiвА(•JЪ”)Cч.]?q"JЅ’’ІK“Ъ„gн~-š+‚ X„BЁ@Ѓе{'–ВeЫв­Woœ@‘ЩеЇ‘Рж-ЙЕйЉЛЯ‚Bcˆ”бЈШHМЫeŠоооDEFцЗqѓУлs~OНЫysсяПјцыu|Оf БББиииаЂU+i ‚№ MбшшhОџсG*TЈРйГg™[њ)§ћПžkœ9bbbˆ‰‰сШсУьмБƒрmлб>ммH—І#55UžzAxк§л\тcbb=J^=Г•љуЬfЯšЩї?ќˆ››WЏ\aќи1,[Б’РŠ 4ˆѕпЧ€ƒ˜9cC†ЅkЗnDEE›}Q%Bю=‰Ь›5f 3—V6+AА\гЊеЉ9Ю( юнЛ‡g™2єьеЫЌ\DФ о:„>^BЅJ•иЙsM›5Ѓy‹єэзаC‡0pХŠqѕЪЌЌTЪ=„ќ6_™š+‚№ЄьPt:mŽтFёi‡>ЊЂ\џ„пˆ0 S(Œ5ŠЃF™Шч—•yѓ?`оќЬЦ3–бcЦš„П7}К4 AxЂ:7{ЗlХJ‰Лs‡ЯзЎЅя+НљщРЙгЇNЁP(№ёѕ5„EGEБ7$„@?CчИjЕj|ђщRfО?ƒz/жeјШ‘ {kИмAШŸ%jќ™ѕЛ ‚№ŸB%U B‘ьЬfСее•RЅJQЊT)о>œ–Э›‘`"зЙKWœœ<рuЖэм…ГГ3%K–Ђs—.,љtЉ‰МЏŸ_џя[ў8s†ў§^ЅFšМ\ЏžмAШ­fiЋ^$ˆš{ЙdДFTЊR!Я*Иˆ”SiЎр–X/‚№4ˆ'6і6gЯ†БxбBќ+TРйййЌьф)SЉШЛoO cчЮ„ьйУЮл‰ŽŽцТ… ФнЙР‰Ч‰ЇД‡Х‹Л/•-a›ъѕњLGnƒЂв›Axк1Пі]Aк|*Qј‚ uХыссСЋ}zртъJнКuљтЋu9цГ`сBš5iЬў}ћhйЊK—-cоœ9DDDPЊti–~Ж З%˜?w.gУТ(VЌэкw YѓrСТމ%šљ3ыїl:@‚ B{IFКЕ№jвчnзмќ{›„ј|§ќHNNцъ•+†ѕaЙ‘Wљџ"WЏ\Ёxёт”pwЗ8ЭЭ›7qwwGЅ’йуBюКєа‘пВM’yэvця%мн ;wо№ЛUы6ДjнЦ$}№ЖэRя‚P ЭWoє™ѕЛ ‚зN‘о|?)W;ДpьVЄЬёМ–ŒС>ЉБкЇШŠeЫјўЛя8zˆwІNЕ8m^х‹:)))FПЬŸЯьY3sL3rФpўју‹Я‘””ФЫuы/S 3 J67„"аTѕц§Зdw˜єCdЈ B^эФŒ`SЭл{yБ гUЪ,eчŽ `ьwЕAЃ†4iвT*GAШХ6M_š–щx&‚ ќїy‚Хh4“CЃFЅb„Їз‘}јйrsŒT† b–W2gˆf§žsЋAž7ŠєˆЈFЃЁП~дЎYƒŠќйИсGвввјє“%д­]‹—ыжсЋ/П4ШБv-еƒЊTЙoНљI‰‰9ц?zфH>\ДШ№{с‚˜2iRŽiЎ]ЛFЯюнєїЃSћіќ}ўМEqI‰‰L?ŽJЈїв‹ьмБУЂИїо}‡—ъМ@€Ÿ/ѕ_~‰_~ўй—’’ТдЩ“ЉR1Њ•+гОmЎ]ЛfTоддT7ЈO Пд'dЯžlырїcЧ№ёіТЧл‹ˆˆЬ›3‡гІђ[Лf5Еkж R@~0пЄ~rК?YщкЉ#~Оtщи№№pCјоš7mBЊAМ3u jЕ€m[ЗвМi*V№ЇiЃ†\Мx‘Wzє Јr%^эг›шЈ(iѕ‚w{%VŠg[…Jк[х;НЗ“ [™м".LfxЅešЫe4%WBё(о8­˜ ‚ љеОOsНdўѓV.џь3‹Š^—ˆЊеjBфЋЏПсрс#ДlеšM7АyуFОџёG–Џ\Х‡‹rсТкДkЫо§иЕ'„K—.ёУњѕ9цпІm[B4ќ>qќ8›d?Јеj2h Еjеfџ/ПвКmОоŸ”””уfЯšEtt4ЛCі2kіlІLšШЙПўЪ5.ь?>r‡ŽќЦ!C7f4<`ЮЌ™\О|‰­;vВя'nоМЩНЛwЪlkkЫЪеk8vќЏШдЩ“ащtfырХ—^тђЕp._ ЧЫЫл(Џ-›7ѓхчŸГbх*~ўѕ ЏєюcRG9нŸЌ,ўшc~=Š… М?=ниНzх уЧŽaкєь сЬщгЌџ>}}я_gЯT•#ЧŽБюпЂбhxsШ`4jШСаP<<Yђ1зЎ^%АbE6mмШЦЭ[ LЏ kѓеGљ 4˜љsч‹ЃЃЃIн(ŠlwВнДqo {‹—ыеЫЖŽrК?Y  ФЭЭ!Cп oяWиЙsM›5Ѓy‹t}ћѕ#єа! €ЋЋ+юю%qw/ЩёуП“˜˜Фш1cQ*• >‚ю]ЛˆіzNiцmGŸŠ”wВ"^­ччјъ\"ЉКt5љyЋ|z&?oЋ‹Ь5ŽQЃTШНŠ&VVJЌЌЌаћїэЇYѓц”ђ(“> “бyїnЁЂRЉPЉЌАВ’~A„|[˜я-уОХ’ЋГќЪЭ˜љ!:*Šй3g2wіl }*Јп|НŽЯзЌ!66ZДj•c^ŽŽ4iкŒ];vрчяO``E#Ѓ,+Q‘Qx–)cdЈy—+Gdd))В‹EЃбр]Ў\І8oЮ†…х—…BЋЋ+ёёёмКu ЕZŸПЮѕЭлS&sњд)lmэаыѕh4љыЈGEFтээ•яћ“nnn†tЃЃЂиB ПпУ†ІЯжuNtT4wюФR) ‚!LЇг‘’’‚ННН(ЋЂ­chяkЯШNЌ=›Шё›Љx:X1І–3хUМs8}€ЊZtЇnЉх† E…BЕЪWюХнeЫІM(  P(Mk•Š’%K’”œŒB!o_Arя ™кlz3%}Žщ-9G^{eљ5Dѕy7Ђ%K–т­#шнЇЏQxdDsfЭbлŽTЎR…O—,сFФ\ѓ0p ГgОOн_ЂcчN9Ъz–ё$:* ­Vk08o\ПNйВepquЭ6Юннkkkn\ПN•  Ўџ{ВeЫц—н?~Н^““# …‚˜›7qrЪ~jпG‹уююЮ‰гgP(TЋR9[YkkkДZmЖёЅJ•цЦˆ|нŸ\z3Fщ;wщТ’O—Z№,”ФУУƒЃЧOˆОzŽP•†9В:,‘эW“г_Š$щ˜z—umмЉ]Ъ†г КЛ№гП)|іGЫšЙQв^Щ•ћZцПOdЂ€†elRе[%Ё‘Љ|іGš4=ЭНэш_йвХЌИ’Ц€НS gМ\œ :О:—ОўМG@1ЊЙл0ѓш=|œUŒ­х„П‹5џмеАшD<ЗSвЯхQЬŠ Jтh­рHT*ŽчVЯАъNи(1”ЕW@1њTtРNЅ јr2Ÿџ•hвT^Ћф@'ПbЄщсЧ‹I_NFЅ„‰/ЇA[єzX–@HxІ BЁГEŸDкЇуFдxшѓ ёЛtэЪЪхЫ9~ќwbbb8y"нбъв;|К4ЉЉЉFiЙrх2ЉЉЉ888rѓf4qwюа aњTмЭ›6вЙKW“ѓe–Џ]ћ\\]YјС\П~eŸ-хСƒ4jм$Ч8+++КuяСм9ГЙzх ћ~кЫЮлщоЃgŽq9сшшDГцЭYИ`бббœ~SM їŒѓе*iУё›ЉЈ” fеsсє-5Bb‰MIcDІЕŸїдiL8Ч[т(яЌЂЋ1“KoUЮŽю՘§ћ}§tЧЌ!йІМ=­Ыл39є.s~ПЧр G|‹ЋhPЦŽƒŠeаOБœИ™*Я’№„›jz[U(ииирфш@qg'\œpqvЦЅИёсшшˆ­­сeЊсKTс1,ЭТ­C•#G~ЎЊНoП~tяй“сУ†бИA}о}{*I‰‰”/_ž1уЦ1 ‚*Uф›oОЦллл`М^Лv-›7SЇn]*0wЮlCžНћєЅFЭšxzzšœ/ГМJЅтЫu_sцЬiZ4mТо=!Ќћциллч№ўЬ™xxxаОmfLŸЮЂ?2L9Э).'ц}АЕ:•M›№о;o“–ІУбЩбHfЬИё\Нz•:ЕjђBЭxy{cggg6ПъеЋгЅK^щй“Џї7йЗOпОєыпŸ1ЃFвЄQCV,_Р€AƒјтѓЕ„_Л–э§Б”РР@–.[Ц‡‹бЈ~=РеlŒKkkkОљпЗ;v”fг­s'~љхбMЯЮ6 hѕ$kL•mlrЮ™6#Jгƒ.Ы~GџЦk‰IжБљR•nњгФЫ–у1Љќ~3•›Щ:v]Kс…LmМ:ЛЉi†бг C4•Jnж8X+P)ЁzI~NЅВ›Šbж ОНФнд4~ќ'Щ(ПZ=‰:Ў'hйћoŠЁ™iэcЯЦ‹Щќy[Э­d‰І/ŽZ”ГcгЅdўзrюކ“1j^(eCŠVOq[%ЎЖVФ=HуЮƒ4yp„Ї†BЁ@ЉT>\jўАR*eJЎ B Os йќQЄ§ˆ:88že*ЈRЉdЬиqŒ;ЮD~є˜БŒ3ж$МB@Пќx жжжœ:y’ЗЇLІ|y“2oлnЖLсfІйЮ_Аљ ~зЈQУЈюЭеqЧNши)cZsvї'ЛћъщщiєЛUы6ДjнЦ$н{гЇ›НЗйеЙ№|ЏжcЇRPЬZabŒКSrёЎЦЂ|юЇъqДNя—ВЗЂa;іtГMяH—юisЭ#юAWяkЈ[к–DMQ‰:ю%]›ІGeс€Kмƒ4~Оё€'ючЙŒПмx@ЃВЖ$iєќ‘юJщюƒ4bStєнkб5*Ь–I‡G1Ћ\Ъ­у‡’иcfкюЦKЩlПšТшšNLЌэЬ„CwхŠfЃA,з™…yзмхŸ}Ц сЃHа=*kюk2єYўžWі§ќs‘.џєя3}Цћв(…ч>џ+‘Q5АVТ™лj<ŠYёfu'NпJхЬУŠЂ“t4(cЫDж n&e?"јkФ–7wуXДчюhpДQї ћЉЙOi=pу§Ћ8ЂMг3lgяhаыaP#{ЎЅ TЄћ5ШУЈфўыш_й‘№x-7t8й(Иz_KŠF_qПпLхчшSбˆD-Q‰:<Ќ8wGƒ‡ƒ*мyЦѕ-.тwTKTЁhkЧќлa9ЅеgБѕžTрЁбd­>ыйsџПPHwЭсyжКІ›ь O!EЋЇo%оЈцhфGє_ŸOтн‹гЦЧžC‘Љ,=ŸэiТуЕЬ;~Ÿaеœ(]ЬŠИ:цПo‘!ї 3ЗдX+1ьŠЋMгѓіс{LxС™оХHвшљюB—“-Оєнс)Ии*yяХтГV™Ъќуї О’Ь˜šN„FІВѓZ Хm•МџВ ХT Ђ’tŒљ%ŽŠЎжŒ­хD1•’ˆD-ЫюТ+OЎЉšoЋyI›пє‚ џKдФГx@Д wЭ} U§ŸŸšХН{їЈ\ЅŠ<а‚P„љ5тa*Ќ9.ое0pЏёди–›c пoЇшŒ~џ•ЪoQІЛЫЎЫнˆ{џш=“Аы ZЦ§g~,:•cбчй§ћЏ?09—^п]HтЛ ЦЛ_ŒxРСLз§эпI|ћwЮ2‚P”њY‚ ТуhЭТЋIŸ[CtџО},§d лwэЮQюЫ/О 55•йsч>‘rЄЄЄvЦЁдЋ^BжJ*X)X+Aѕ№гJ‘Оc­J™щS‘oW˜ЦЋ”ѓUfфkЅxјљPЮZЉР*“œ*‡ѓхїPN,EЇOMзІЅъє NгЃKЭУO­>#^“К‡П5™вiГШ=њ­бЅђгgЄгeЪO§№З!}–r=њ­yј;M_€#Ђ2**‚=Z4ЪYЄ бvmZѓїљѓ&сЏОіУоNЏоНŸiљnнКEНыr%ќ_i‚PР V­гЃЮ0OAAўу$“/EЧ-j/П§ю{д —/]dШ Aз%8;;гџѕЯД|:N\$BZ шйпЃДд… bЮ§љЁЂсˆ]Ax<”й+џмЂъ-Hѓd)сюŽЇЇ'%JИщў&===qvvцРў§Дnб€АА0кЖjIЕ*•ЉXСŸб#G’œlКIШжр`жЋG\\ЉЉЉ4nPŸ@?7ЈOШž=h4њїыGэš5ЈXСŸ~ЬVі>о^јx{Бiу†eG‹ЪМPЋ&.ZdŸ?w.ѕ^ЌK€Ÿ/S&MЪW‚№\йЂ€Z­&6іv>Ы чЬщгђЂIrhЇљmЋвъNёAЬjK ц…_~эМЧЗї”y)VvХ|6fЈхмОu‹””~:№3лvютт?јzн:#™?ЮœaіЌ™|ўеWИЙЙakkЫЪеk8vќЏШдЩ“ащtЈеjBфЋЏПсрс#Дlе:[йG\ОЮхkсєшй+Gйё&rјЗЃ,_Б’5ЋWqюЏП8њлoМ1ь-Ž?Юј‰ѓ•‡ в[ГV-._Оlѕ№№РнНфcх!E_ыšГ шџўўўЬ˜9Ы(|дˆИКК2gоМ<ŸІGžTЬЄ го}wwwЦM˜ ЯƒPЄкjžгЪhЈ BЮVЈ>ŸЦWAЙfyL5]h6+ЪЏ™ммJп№ћєЉS( ||} aбббМ=e2ЇOТжжН^FЃ6›_vВVV*‹eЕZ-3gЬ`ЯžнЈSSбщty>_^ђ„ЂJVOžэкw`щЇŸЂjЕš_~љ™ЯПј2_чшзПЁН~F#PdњHлПSTсљх?щL@ЁP­;щмЅ+ЏОіƒМN||К“ћ/ЦннЇЯpфи1Ќ­­ГЭ/;Y›‡ŸZ­6WйmССœ8ў;?элЯgџЂFЭšy>_^ђ„чЅ{лКMnХФf;rј0vvvМјвKь Ёyг&дЈФ;SЇ VgМœйНkU+WІzP>[š1MЗSћіьоЕ €ффdІLšDхРjVЋЪO{CLJuџў}ЦMЕ*•iеМ9П;f"sіlm[З"Јr%ЊT dТИБмПŸўB,/kв>Yђ1>о^4ЈїВсz›5iL_ZЗh.ыъ„чЧ•gY!ъS‘щр‰Ое{5-^э2yЪT*ђюлSащД†bn’d'ытъŠ““лЗmуњѕымИq=[YэУpЕFƒVЋEЁPфљ|yЩCž—О­››ѕ4 dO†ЯрН!{шиБџ†‡3~ьІMŸСЎЮœ>ЭњяП3ШеЉ[‡ŸіяgѕкЯYЙ|9œ9crЪ™3fpуЦuЖэмХ–­лЈ§Т &2ГоŸAbb"ћљ•з`ЬЈ‘&#—Зbn‘’œЬOћіГ9x+‘‘‘L< OkвЦŒЧхkсzИSјЬ32t(œ=ЫВ•ЋЄэ Я*‚ ф…"у(Ь(sџ/№]ЪЬїgPяХК 9’ao —чDxіэД`ќЗH] ‚ фЩРД$Ќp ’&BQ6BŠ+F‡ŽиВe3ЗoнІGЏ^”,YŠЮ]КАфгЅЙf­P(LtЕЛЛ;VVVDмИAх*UЬІ+QЂVVVьћљЪ—/oёЅмМy­VKЩ’Ѕ˜;{ЖaнЗBЁ Z•ЪйІГЖыЧаЇ IDATЖFЃ5žіыычЧзџћ–?ЮœЁПWЉQЃ&/зЋ'Я‹№\vЉA„чС Э257ыKШмr‹A(`ЋЯFЅОкЏ;Жm#єаAzіz€Ž;Вg;wl'::š .wчŽХчSЉTtш艙яЯряѓчЙqу:зЏ_ЇXБb(•JЮћ •JEЛі˜ѕў .^МHtT=k6ПииXŽ=Jxx8sgЯЂQЃЦИИИфiMzЙђх8JDФ Уšж'ŽOiŠw!!!^сЗU}ЖmевДz™ +‚НЎ,Р‰'YэЗ<йƒeˆ ‚  kд 5kеТЫл›F›рсс@`` K—-уУE‹hTПƒръеЋy:нМ>Ргг“ю]ЛаЖuk~>p•JХЁo0љЁ/Яљ рььLзNiйЂ9ЋW­2›WZZ3gLЇu‹цмН{——,Шгšє^ЏєЦооž–Эš1yтDдj5ѓчЮЅvъДiй‚ вЌy yN„gпNХ‹ ТГбНEdыžџЬдмшЈ(юнЛg2Н.)1‘sчЮётK/=сЗz~;r„К/ОˆQмпчЯутъŠЇЇчS­“иил$Ф'рыч' Wx.иВз$ЌUы6ДjнЦ$<ѓњp€…‹Оg^—эффФ'K?3›ўQЮЮЮfeВRЊT)Bіэ7 Яiнwж5щЎЎЎќАaЃQXviAAј/ЂШbNў3#Ђ_~ёыПџо$ќиБcL{ї'~ўффdњѕэCтУ233eв$Юdй­`СќљЬž5ѓ‰•iХВe|џнwвV…"ƒ^Џ™‚№œЗеGiЅН ‚ фYƒІŠLG!U™-|Ў…е[he[vбКѕШї4ЌWˆˆикктщщI‡N;n<666МўZ?6jФ›Уо*’RƒF IгЅI›„ч€ЌЛw ‚ ‚ <–Сљиk BІР бЇЫ§ћIJJЄs—ЎљЮуж­О[џ•ЋTсп№pо{ї™5gN‘Ф5j,эLђЌA(кmUˆ ‚ фW{BQ™˜knjЎЅ>KѕШчBZšŽ‰уЧГ`ўќ\wŠЬ 'ggмммЈUЛ6§њНЦбпŽф(П58˜†ѕъg~љв%jзЈЮЉ“'‰ŽŽЦЧлЫwўм9jUOї?FлV-ЉVЅ2+ј3zфH’““є]/7ЈO Пд'dЯ“ѓЇЄЄаЎMkжЎYmїі”Щ <Н^ЯМ9s˜1mš‰ЬќЙsЉїb]ќ|™2iС[ЖаЛWOCќ—ŸЮ№aoф—™Q#Fруэe8Z4k*­Y(| Ж€wфжjЕyкEW„'пVvd”ЊAШоъ,ЈMсђcчР;Ce~ьP}фsЂUы6ќАa#7nр­7о ЩЬњЩМpуЦuЖчИљЮgЮ0{жL>џъ+ммм сwяох!ƒywк4^ЈS'ЧѓмОu‹””~:№3лvютт?јzн:lmmYЙz ЧŽŸрѕ™:y’Б‘­з3aмXЊёЦ›УŒђ§ъЫ/9sњ4Ÿ.§,нЇa6§э7оіGgќФ‰ђ,/]ЖŒЫзТ ;wžrхЪ1є7Ѕ Я=‹,р“‡;зfeџО}tюао№;%%Хт|ГЪ>щѕо‚№\[Д‚ BЖіZž Ь<ˆщyтvшГпЌш…:uXОb%ћі§ФЊ•+ с;‚7›=ЬёJюT№ѕЁYуЦw)Ю š•‹ˆИС›C‡№бЧKЈTЉ’!\­Vѓц!Дmпор07­I­TЉНzї6кl(ЈjUмJ”`р С$$$kˆћ`ў|юмЙУ‚…‹Œђ;АЋV,чЫu_урш˜ыљ=<|НюЋ\њИйЋЯ€Р@zѕю РЮ;4рu‹JhNЖAЃ†4iвTnŸ№ь&hKAАEІЃ№ђЬнЗ?ў;#оFлvэ>rЄ!u …BЏЏQјэлЗ‰ŒŒdШodмО‡#’zН>ЧбI7ЗФЧп ::šЗЇLцєЉSиккЁзыбhдй}?эЅ[їюX[[g1Dїуыч‡[‰yдŠl;д9Хeхph({CBиwрgiПBськ>ХОiљђхщџњ4ХэШœЌЌїў‹mUІц ‚ PšЯ,/БљЈнГ{7§њєсе~ЏБbеjŠ+–Џ‹№№,ƒ‡‡GŽF(@ч.]yѕЕз<рuтуу сeЫ–eэ_2qТxУЈŠ““€бhІ%†рG‹уююЮ‰гg8rь˜‰СљЭwпГ{з.“‘šїgЭЦооžIЦчљњœœВ-gNq™QЋеLя]ІП?“юювŽ…BЌ`ѓЎ№ОXЛ–ъAUЊ\‰Зо4^zш ѕ^ЌKPЅŠЬœ1­V ЄПjнЂЙAюїcЧ kЈ#"npъфIъжЎEХ ўtщд‘K—.f+›yНЗ^ЏgхђхдЊ^jU*ѓсЂE†щћ9­?„џB[5щWШд\A„'ЋgѓlпдФмg<5зооžO?[ЦЄ)SP*ŸNQ&O™J…€@о}{ЊQxгfݘ0a"Ѓ†ПERRTЊ\™хŸ-%2"‚шшh‹ђзщв;БЉЉЉf7`ђђђbЭч_А№ƒ8юœ!мжж–UkжrцЬО§п7yКІ5kpуњu6oкDLL wтюXчррШ•+—IMMх›ЏзсффDћHMME­VKћžлІ][ію?РЎ=!\Кt‰жЏ7ФЙКЙёхКЏљaуFBCCYЛzЕй<^|щ%._ чђЕpМММЉР†M› §э(оохXєС‚le3Г58˜oО^Чк/Оd§иЕkЇayNыЯс?й?AKѕfuњL бІЭšбОC‡Ї~о rшрAіялg>xшPJ•.Э’>рУ>цјёу4kв˜Щ'PГV­\ѓ3n>>tьи‰Ы—/тЊV­Fх*UЈV­:#GfлЖ­fѓW(ЈT*УЬ‹тХ‹уычGЉRЅшїкkFyf•ЭЬІxуЭaдЉ[—ЊеЊ1fь86nјбŸгњsA(JэєёьаŒ?AсљDeЂ§!oўM рФŽрЭyZš™‹WЎfїЭЗпОП7}Кс{ wwТЮ7ќ~фd^ЁPАiKpFЕZ5v‡ь5Щ7ЋcњnнЛг­{w|}} оЖнlyТoDОOž2•ЩSвGewьоmoдЈ1чўО`RfЃњЪ$џˆ={вЃgOГђйХUр—ƒ‡ds"ЁШГtй2+flB6qќИ ]№ѕ:>_Г†ииXlllhбЊ•й<МЫy[ќшибЃЬ›3‡ЋWЏ`gooђТ);Ђ"#ё.—1JъээMTdЄYйЬыЯAAЬкc9йrz гfГd(ѕ1э@eц&‚№$unЛ—xx–СЧЧЧp<2 ##"˜3kЋжЌхм…8hpЖљ‡_ЛF™2eLТ­­­ kG1iТњОњ*gЯџЭВх+r”ЭŒg™2мИ~У№ћњѕы”)[жЌl^6„BпAЪkZ™ž+‚P@жiсTІЊьtПЅ—(џ#AxК*6oZGћp­Ж.MGjjЊIќН{їˆ‰‰!ќк5–|ќБ‰_€rхЫsсТЮŸ;‡RЉЄLйВшtZєz=<02ЭЩfІgЏWXМp5jжФжж–Я–~JџўЏЫžЛvšпiЕњ,‚ ‚e&gAЅ}JЂЯvзмBySѕzо:”Q#Fp§њuУzQKˆНMлж­XЙbЛvю$єаAi%…ˆcGвДQCBCБ№ƒљмЛwO*Ѕ€‰НMћЖmXНjЛwэтpш!‹гž8~œЮкsьиQ–ЖдhgыЧбzхЫ—gЬИq шпŸ Jљц›ЏёіNŸ[! 'Ož Q§zŒ7–о}њ№њ€&yTЏ^.]К№JЯž |Н?зЎ]cЮМљЌ]ГšъAUіЦPВ•ЭLЗюнщџњ†DпоЏаЁCG $ =ЄьК!‚ Т0 jзмќ—C%7ᘘ˜ЊTЉB• * x­Ÿ,§ЬтДЇNžbЪдЗ9}ъЋWЎрлѕ?H…>х—П9Bн_ФЦЦЦ$ўрЏП№эњѕМ?}:...ИИИ<ё2]Нr…тХ‹—8jЕšјјћИЛ—ЬwŸ?‹Ћ+žžž&qЇOfђ”Љœ>uŠЕЋWБюпZœя‘УЁЌZЛ–цЭЧЩЩggg“L}6ŽDЭ­џ.Sћ=f,ЃЧŒ5‘щнЇ/Нћє5[žЌkСч/XШќ dZfГж4Ћl5 п #FbФЈQЙž3ѓњsAKTAАEб(ІђП|RRRLТ<<<7a­лДх—CЁдЈYгтќкДmKѓ-˜4e лwэЦййљЙЋЃиилМ\ЗŽСЙ:|šd.Orr2§њі!1“ШЬL}ч]МММљтЋu|Дф“-Ч‚љѓ™=kІIјШУљу?LdВЪ?x№р‰еQцs-^ИЅŸ|jVЎ{з.„ьй“k~S'OЮv'зжmкаЌys&LšD№іyjу&LЄL™В|њйgМ?kvŽ]TAФ ArзНEЫ}Kš>o#АOЮЧižЧЧлЫь0sмКu‹Њ•+™‹Їr`+—/Яs9BФЧлыЙpЙ`ЎŽŠwЁoП~ИЙЙхX‡O‹ЬхБ„E PЃjP~ 5ЄI“ІЫdў>энwYЕbХЋ#KЪаЃGOƒkŸЧсpш!*јњ№Ч™3yNЛєгOhвЈaіэ8‡ЭŠA(dНЁ‚шMI{AА\GъѕйXhПYjу€žўЯŽˆъt:t71ЩЪЦФЮЮŽяО§–ДД4CјпчЯsэjЦРp`џ~ЃДпЌћWWWўїЭзFс?8`4zЮЙПў*rudmmЭиqуБЕЕЭБŸ™Ы“jЕšжЏGЉTВ=‹ЏШнЛvПP=”§E34jд˜&M›Z,“љЛFЃyЂudIйњѕяЏЏяcŸя_ƒ‹‹ пўяЃ№_љХЈ ќћяПќ}ўМб§ оВЅBЩоН!Fi?vЌ{И‚ <Н^вуіАЄН ‚ фEІЃ№ђмЂ#‡ПEхР^ЈU“-ЪVЮЧл o/6mм`ћўћя˜6} ё„Ъиl%,ьO^эг›ІђRшвБлЖf47oоф—_~fстХькЙгШйБ}];uфЅ:/аЄaњОв‹?џќгЄ<зЎ]ЃgїnњћбЉ}{CG]­VгЃ[WjзЈN_Кtь@xxИIњГgУhлКA•+QЅb Цхў§ ?„Пќќ3дЇb†{“ЛwящО _щбƒŠќЉ[Лџќѓй:JJJТЧл‹ИИ8ГёС[ЖаЛW†Яв/?џœсУоЬѕY ЃmЋ–TЋR™ъAU˜1mcGЂjхЪдЎYƒлЗ˜-ЄOnзІ5kзЌ6„э йƒ‹‹ oСїпeј˜MJJту?ЄKЧд­]‹Žэл1zФn\ПnRЎН!!4oк„Uƒxgъдj5ѓцЬaЦДi9>“™eВЪВфc|МНhPяeЎ^ЙB€ŸЏСhKNNІ‚ЏбQQFљНїю;МTч§§в7ЩZОœVЭ›шяЧыЏѕ#11СьЙvякEеЪщѕњйвŒiКкЗ7ф?Ќ_O“† ЈPСD.3яLТCvНyѓ&Пўњ ,\Шю]ЛŒкРЮлyЅGwеЏGыЭиџ5Юž=›щeЭ~œ‹gррAoоbt/7nиР‡‹ІwK qП4!!„„„<ЇЛzх wbcЭЦiЕкlу ’ффdўЪt?сБЬP}ўлjN/ёA„ч‡чж?a"‡;Ъђ+YГzUЖЃ—Џ…sљZ8=zірєЉSФмŒЁcчЮДяаXoэмЅ+:ŽoОћž_CуршHя>} ё[6mЂ^НњДnг–2eЫВ58Ѓ3нЇяЋийлѓkшaОћсДZ-]Кv5щp4ZЕjГџ—_iнЖ _яOJJ †S'OђѕЗпђѓСCјјњђўtSУчVЬ-R’“љiп~6o%22’Љ“'щў GМ5Œ “&Гwџввв˜:y2+WЌРЛ|9~?yŠ ›6SЎ\Йlы(З:ЬŽœЮ‘•лЗnёрС~>xˆџ}Пžm[ƒqqqeWHуЦgкЛяfяЋQЏgТИБT 2rХБсЧ єшб“Ю]КічŸ\Мx:vюDЭZЕ9qњ cЦŽ%  ЊUMŒ…ёcЧ0mњ v…„pцєiжџ]<ЏcЦŽуђЕp>‚ŸП?хЫћpьшQУ3YоЧЯ,ў-Уўј“QcЦpјш1ъж}‘5ЋW1сію?Р­˜#c;3uъжсЇ§ћYНіsV._nv э•Ы—ЉQГ‡ŽќЦђUЋЬЪ}ѕх—œ9}šO>]ŠB‘ўЦ-xѓf^~Й­ZЗЁLйВF#ЯЏєюƒН=?ј™ЏОљ­VK‡Ž ёС[‚щмЉ3mлЕчяѓчИњpіНН=ѕъзУЧЧїaЏД№іL_энлшх•Х/Ю2­%ЮЪЇK–АhсТ'^іУЁ‡xgъTРt-И фУœDFDA„<Ђњ‡jпВ?r‘Э ;‚7[tXJ…€JИЛѓrНzдЌU‹Ы—/›•SЉTЈT*CGzѓцM4oб[[[:tьФОŸ~2Œ(FEFтууKЙrхАЗЗЇq“&\Й’‘яцЭ›hзЁ:tdг†ŒQжЫ—.бЄISьээёђђЦПB"##ЪrцЬiюЦХ1ѕw(WЎЃЧŒХЮЮЮШ LйВ^”+WŽ7о–э:T[[[ЪzyQЙJ}ј!{і”˜ШЖ­С4l䘡нКсууУЬйsјioёёё888pуњuдj5О~~иллg[GЙеavфtsиииPВdIjдЈСЫѕъсYЦ“ђхЫгяЕў$%%™дп#>˜?Ÿ;wюА`aЦHxLL G‡вОC<==Љ§Т YюЯeкДm @ЫV­M\nьмЙƒІЭšбМE МММщлЏ_ОŒГ QЉDЅRaee@›vmљщсєдЧгЈQ#ГщJ”pЇTЉRє{э5RRRЈ[їE|}}iзЁƒбДзЬ”*Uš2eЫRЏ~}4hШщlž#J•*EЃFЉп ‘мЯіГzх ОјjŽŽ™кРfкЖo@ћіиВi“‘qлЈQcьээ)[ж ?ƒЁsыж-ާ–­ZQКtiЊUЏn4]:2"’ъ™vžЭJ ПaaaFa§њісыu_§юќ3ЪыкkAAžrџ §5чХОг ЗgЅq‡чйUfЇn=,:rCЁP еj™іюЛМPЋ&еЊTцЏГgбhдЙІеjЕьоЙ“жmк№rНz8:::ФeНМИrѕ џќѓїяпчРО§№зйГ\Лz•V­[аЎ}{ТТТ M@Х@іяпЧ§ћїЙxё"—.]2ј2|DTdžeЪ Rexеё.WŽШШ(3H ‹ж0–/_•JETtQ‘‘x—Ы8ЇЇЇgz\d$ЃЧŒ! 0fM3uђd’’’ђu EЖчЧ9Gёт.$%ІЫ[YYсшшHr6щї§Д—   Ќ­­3^tlп†ŸŸ?О~~щїЇ]{vlпf(k`Х@ЖmнŠVЋeлж­јљћ™фХо§§єїcюьймЙsч‰Д‡Ž;ВgZ­–_љ™F›фR?Хy№рaЭnёт.$%%чzW77туяч*чцVТHюРў§”)[З% a=KјЕЋ—&mлЕ#,,Ь0…МB`?џ|€ћїяsщв%._ОLйВeйГ_ЪћјаМy іяћЩpММН9yђdЁŸšћМ—Ез‚`ўŠLЭAxњЦ)f‹вЎЙE”{wяbccУџй;яИ(Žџ?зш  €tЄ)64ŠНwŠ-ЛXЂЦhь11bя&ПФ[ŠБDcWьНEMb4_{EЉА€‚pэїpоС ЂЂЮУk_мNлййнйyяЬgЦЬЬŒ­›7ѓї_Вwп~ў=Сш,f™"Exч‘У‡y№р_§‚JЪќA%’““uCl7Ќ_‡Е5C>D‹fM‘ЪЄ,џхgЖnй‚VЋЅiЃ†TЊPžю]3ж&мКy3+–/G!—гЂYS>4kkжЎYc'Wтут ђ…››Ћ1Х—ЏrЙ}ћ6*• GG'\\]‰ŽŠ6V*• W77Ќml˜6}свХ‹,[ВФhхU†ЖЖЖ$˜Аg3vŒИЙ оЋcчŽНa[7oсж­›TЊPžJЪѓп~K||<ž:Х“ЧйИ~=QQЗЈQ5˜5П­цъџхАсuttЂMHWЏпръѕ\ЛЩц­л ЄбЏTNXXІ ~~ўЌ^Е’[ЗnQЗ^НМ (ГЇеэцЇ'M"‘фЋvЪ.lт$,--=r„Юmлж aпМIcЊTЊHЯюн2м3эЈW­\‰B.'Єu+F|>kk6Ќ_РŽ№эDGGQПNmд­Ыв%KИ{ї.џћї_RSR8zфp†ф Э}ђј1#‡ЃДП5ЊUe{xИЮя‹бЃљюлouћ§ћіен;?-[FхJ)хчЫ—_Œб…1e+ 0uЪd|}ЈYН‡ЬWєQЋеЬš1rT­ќ{vя6юЇeЫЈPЖ eK3№“ў<Щ\ЖhняkЉWЛЅќ|Љ\Љ" цЯг} ШЫ†\—зlЖзІlюГь”§}Jц8п””ЦŒE`€?Ы—гѕ№›*Л?ŽЇAНКј•єІiЃ†oЄ'X№*šC/Wм@џъ3ŸГцф/єю($яˆЕkжрццŠЃ“3 , Иjе aЄЮFщJ%*•ЪшбЂііиккВmыVЊ#‘РЖ­[hбВ%a'щТ=s†Я>Ф;wЈYГ 6Т5Г'ЫnSЋеВ=|_}§5­ZЗ1h(†‡ocиˆєшй‹*WжѕвХЧХхшќрƒЪЕЗgжŒєше‹m[З№єщSъд­g0{o^$$$pъфIJИИ0wі,ъдЉKбЂE iлŽE Вeѓf*VЊФŒiSiвДvvv\Мp'gg,,,pїp')9Щh98ЫЕ ƒ*ХЦ Ј]Ї‰їŸѕ;FRRЪ–сфŸхА|QмннYњуOtщм‰ррЊXZYqўќ96lкŒ›ЛЛ.мрAйЖm+еkд`ъєщНŽџœ>ŸŸŸAК­кД!Єе‡4jМЪU‚yєшNŽŽН‚йББЖсЪхЫ4hиаdO/OvlпN—Ў]IИ—@ХJ•шгЏУ†Ё}‡НЛ…sss-YJ‹fMYНj%]ЛugЧіpО7Ž–Жв‰ˆŸќ‘;Ж3фѓЯщж­;A+ЂP(аjЕКgрж­[\Мx‘ЋVс\ЂЅRЩи/ЦpррњѕыOп~§pr.‘QнМ@3yв$тууйЙ{з6t(%K–ЬaЌObB3ІOckјv<<=uЂ,ЫVxС‹(@ПаPжќЖš^НCшбГmлЕcЯюн :„?Oџƒ……EОѓАцЗеlлЖЋVamcУф‰ŒцЏY‹цДlеŠДД4њ†іfэš5єэпŸkWЏTБkЧ#"тЃGŒРЦЦ–оЁЁ6фIIILœЦЃGБxщВ\Ыoјˆ‘Lž2•kзЎбГ{7ZДlIйrх8їяџ4ј3š5oЮЮэл ЮwbXббQlнОЙL†]Л\ЫnbX}ћѕЃmЛvФХХч9д_№шPa"*/TЯj_"nŽzјUеѕМх=Ђ ї5b­[ЖрбУ‡ЬШД iлџ€7ЈOЙРвDFFRЌXqƒИ2™ŒЏУҘ6u ­Z4gпоНьпЗ={сттЂлZДl‰ЇЇ';ТУёёѕе‰PШшЩЊ^ЃЇOџЭЃGшкЕ›Aмо}B‰МqƒK/R­zu1стъŠŸППсWЙœŸ—џЪйГghTП{vэfљŠ•yкRfGЃб01l __š6kNы6!lмА>зѓS˜™!•JЙ~=[[[М3‡ чe+ьхх•qюН{ЃбhˆМqуЙђАmыVњ2€*WІTЉRTЊє‰.ИИИрээMЋV­‰ˆИіь#QбЂИИИPЇN]†ЩЦѕы >"Г!ЯмlюœœpqqЁOП~9Ю7lТD№ёѕЅxqЧ\ЫЮЪкŠзЏ#“Щ  ŒЗО}TЖKЁCрFўbвVћrњеёйЁ|6dhw ќА(Яј?юBчЛшіћєэ—#ŒD"с№БуЙІ\•Kџ]5кPМq+ъЙЮЉdЩ’lиД9‡ЛЕЕ57Ѓcž Yƒ}}œœœиНoПQП в с‰ю_‡…ёuXXžeз˜‡ŽщаБcОŽБ{з.ЊVЋІ›Є'‹FгЈqcнўЌ9s ќЯž;o4?њПGљ‚бc2fђљч9ђгОCкwш№\зЇIгf4iк,‡ћИёу†oеК5­ZЗЮFџЗНН=kз= ЉЉЉЄЄЄАeѓfМK–ЄZѕъFгпЙгф§аЋwЈЎ‡ЮдqГ—Ћ~zІТiЕZЖщM"TЇN]Ю_ܘщТх+К0YИЙЙsѕњ\‡Yє)Ÿ ˜#Lѓ-hаАЁсаб\Њ”y PЊДnф№a™ЌP*•xшЭвьсщСљЬЩL cЖГГcщ?1}ъўя›o˜0i2ѕ40АЮ:пrхЫ­;ьээIJJЪ3њмНsЧјpќlЌјu9?.]JBBfff4ЪДЭЭŽЏ/БqЦ'івЗ!7…JЅbbXЛvэ$=- ЕZmдц^џ|янЛ‡JЅТ=›|neїнїѓ˜8!ŒUƒ4x0ohЂKT LеeёЊУ˜F*.ЄрMтююЮ№‘#EAшq`џ>*–/ЧњuП3oСBQ й›Є&ъЛ.Ўx{{ы6 Š/ŽBЁ0X6ъV”nЂ$[[;ю%м3šf§ иГџ§ dр'§IMM}.[с,[цМђ Ћ››б5‚ѕ‰‰aЪЄI,^КŒ‹WўЃwhŸ\ТЦтффdдOп†мљБЙ7vО2™Œ˜шhџмЪЎЄПЎ\Хђ+Y0ožЎG[№–З‘^Ж}%tЈ@ М~њšцUџ›кђ^№ziдИ1{|kђ[Ў|y‚ƒЋŠ ЇGЋжmИz§›ЗnЫu­еїЕf}ос~2™Œvэ;0uЪdn\ПЮОН{иОі2zэЋГgїnўўћ/юмЙУ“'УTSSS9{ц )))’––†RЉЄU›6ьоЕ‹эслˆчЪ•+мЯcіфМђeKЌбhшјQ'–,ZЬБЃGИ{ї.їячL[•9љZЃ&---‡џХ‹Иrх /\`сќљДжГ]ЯВ!Пyѓ&S'Oвй[[лpћv|ŽsЩЭ}vфr9ЖjЭФ a\Оt‰шш(ЂЂЂr-ЛПџў‹ЄЄ$œK” H‘Ђ$''‰л§­R bY@ ф[gцsВЂ‚аx1]\\J@№жеМЯЩ„‰џѕ8Z6o†НƒГч~ЃкЄiSў#Y I$цжMдjUЎ‘”*7Ўп }чЮ\ќїЌЩpББб|июЃ- B (Viс]”ЙА0nќxЃНЁ№ій огgеРЎIЅ@ МГBtсќљйп<п”EbЊЂм0ЖЬ@ xСіЉЈY‚ЗцYЯК@ М™VQоjьeє]СiОlCsпNкЖn…ПOIBZ}hАьСЁƒЉ[Ћ&Ѕќ|4р`џЁУ4mоŒо={ššЪžнЛЙxсцРс#д­W_—Пеkжy“9sП Y‹цьй€Лvsэк5жЎY# +б§ћібцУ–К§ддTq)‚WЎDA|y‚ќзВЯt˜с2XІУН|шЫ  їющ–dШB&“ЬъыююЁћнЊUk""Ў‰ЇI ШOЅkТd,Рз‡єtУa№Џќ‡ЕЕuз? €:w`{x8ЋVЎ`эКѕт‚ЏP† *ЏИЂ}йŠј%+ыBГцЩ‹.пЂƒƒƒnнИиX<<Ÿ >фr9qББЙњyxzЄ)•Jёіі&..–Чутъj *=<=‰#ДO HЏž=`њЬY”,Yвh>WќКœ—.%!!3335i"& П5Ї‰с%+V­&АLнО••UеЫЫ‹=3жщT*•bИ @чЃZ0“‰GM о]Єядйш­ѕхтъJtTДn?>.•J…Ћ›[Ў~Цˆ‰СЩЩW]и,ЂЃЂpss џ'јуф)<<<;&cЈЏBa†RЅ4HkЪЄI,^КŒ‹WўЃwhq @Q{{u›D"Ё^эZœ:yRІ|™@ўћя?ІOJЊСјћ”dЬЈQœ;wŽцMSОL Ѕќ|2x0)))@Цњ›M5дЅѓчЉSx{ИуэсNLL4_ŒЭwп~ЋѓяпЗ/П.џ€­[ЖаА~=JљљRПNmЎ^НJЇ(XšЎw&>.N\@ Ї"Eє‹ С{#D_Ф ДpЮšвЖЧeЫцЭмМy“‰ТhвДvvvЙњeБп^bbЂYМш>|HэкЕљрƒЪЕЗgжŒDEEБ`ў<ž>}JКѕˆŽŽ"ђЦ дj5~ў~$''рщхЩон{ˆ‹хЪ•+Ј2•UkдЄЅЅ‰;P xžfiклŸr$їюо%55•НВuћЎўw…_—/7ЗjЕjDDо$"ђІСP{c\8žВeЫёЧЉS,_Й ЅRЩ'}ћPЋNmŽ;F‰%˜ушшH‰%8љзпт‚ оiф Х ЧSgšБрхDaaўœ'ЭžбьЖЦ6В–PШGИЗЌ^VcНЁрэЂJpV,џ•ыФХЦЂбh^:MO//Ў\ЙТЅ‹Йrљ2IIIT fЯюнќ§ї_мЙs‡'O›Œ\Е*Љ”ЙГgЭ­[ЗˆМqC\,С;‡™™љk'я“т,H[ќьvљљбyЁїЄтJ ‚ЗЊц}†Ž­ ­?lIгЦёєђТЮжіЅrPЁBBBBшдБ#Н{і 22’&M›Т€~§ЈWЛБ11&'1R(ЌXЙŠSЇNв n]кЕiЭЁC‡ФЅМs(ЬЬ^k<@ ЮIdM!7}љm ОйKHИ‡НН2™Lм{С{ЪеыЦ{эээљхзF§Тwю4иoдИ17жэЗkпžvэлѕ›>sгgЮ2ˆ6qa'х8ЮИё9'Nђѓї7jk.МKШdrlllаЈе ЫлH­б`eeƒL?Ќ0‚Ї&|ёŠњ­юMIIЁJЅJl)юm@ ^•J‰‡—7щщщyNцЅеjIOKУгУЅ2]Џ‰#”Ј@ <ЗО|;:Dпn!Њ}3Bљ№QчЮ’ж;whлІ5Ѕ§§ЈVЅ2{їьˆ@№ВЌ@ x+x˜€Џž^оЈ5ввв2ЖЇ97•Z›‡'nž^<МŸ( O ^R#em…1kn6МММшбГWЄUМxqЦ~љхЫ—gэš5Œ3†ІЭš‹B^X‡ %*МMФGGсъцŽщ@фrгГшЊTJž$'% M ^ИєvёNLVдЏO(ў4iиPЗ}||<оюК0—.^ЄR…ђК§?ŽЇAНКјћ”ЄzpцЬЮАї:А?M54њeaбТ…TЊPžђe™;{ЖnzљЕkжPЏv-JћћQЁlцЯћ™LFѕ5АЖБЁBХ ёto€зЏ“˜№Bqггг_xљ@СН;ЗЙqˆ+—Ln7#ЎqяЮmQX@№!ЭІЖr[llЌq!‹ќQЇЮьй€ЖэкбЇw/žWКqББxx>[аУУƒИиXЃaŠ‘””1“ЏFЃср|?xb‚WФ†ѕыјjьXFŒEƒ†xњє)чўї/Riў­”JхsѕwыбCМ@№ФЦп&!ё>V––јћ–ЬЃЕ!КD wЙј"в+/НїzЄЈtсќљяЬ%бh4мКy Wl3­O0bfggЧн;wž+mWWЂЃЂuћQQQИКЙ +‘HtзD*•ђчщ0 t SяfCЅR1cњtЦ~љ}JЉRЅ 2:щXnЖоž:…З‡;оюФФd<я;wь \` §7@ы–-йЙcуОњ’jU*уяS’šеЋqшрA]ИддTО=š2Ѕ(HЫцЭˆŒŒзR№^r/!‘„ФћЄЄІ’(fШ‚‚F"‘шЖТŒt№!Ќ^Йђ­.ьшшhbcb˜1mjЕŠZЕkcmmMщР@ЮŸGlL ёёёК№­кДaпоН:xлЗoѓяй3yЃуGXЖt џœ>Э…ѓч™?я{>њЈSžё=zФЈУ Ž/^T‡цTЂ—/_"1!}”gќмlНЊVЋFDфM""oтюž1ЂJpіюпЯ’e?цАџЮтмПџcарЯ8њЧ њіэЧАЁCxњє)S&M$"т[ТЗГ{п^nпОЭУФХМwž~}BQЉTєъJЏаа<ѓ˜œœФп§Хƒћїqqqwœ@PР<Иџ333Š)’gиМlН% rЙaЕшффŒЋ›ЎnnдЊUлРўл0œ...єщзяўя["oм  T)6Ќ_Яњ›ШЈcЬ qбяORRˆŽ‰ЃЈН=ЕыдхпПNQЇn]іюоCTl,Оr/ЌЌ,EA СK`ьƒ}a6qЩэ›™­ш033cѓжm&§Ы•/ЯЮн{rИЇЇЇSГV-Z‡„№шбC&†…QщƒhдИ17ЮG"‘№щgŸёщgŸх№7~МСўЌ9stПнн=јп…‹тЩ^EŠ%==ЄЄ$ьььr ћ<ЖоЦАwpай›B"‘`ooORRwяо%==§Йmв‚w{ ї177ЇqгІD^НŒJЉ$ђк4nоŒ[Зrяў}МЌŒ˜Лh…Ј@ фЉЧ :юkš­HОpў|ЬlŠМWз-:*Š>Н{GбЂEiбђCzѕ7Д@№ˆлЖnЁ{žЙ†ЭЭж[ЁP RЉђ™љЉp% Z­[[$ wnпжй­ я#ѕ5ЦЪкšџ]BЉT LO'6ђ:m;~Фг'‰МіŸб6Ž@ оMфƒ‡ aй/+2+ќgЙ‹пgђ7ЗА…ѕтычЧ‘уˆЋ/М˜™™ёљАсL<ЕZMнКѕxњє)gЯœЁkїюиXлpхђe4lHЧ:1gжL‚*VФммœљѓОЇGІxѕєђтЪ•+\КxЉTjr2ВчСЦЦ– 2kцL&OJlL ?M№оq;цZ­–ДLлщ,RSRˆќя’шј‚ч@ЋЇлŒ‹/НIŠДЦ‡ыjѓшЭП&| !*.Ѕ@ x{j^у^пў§БВЖцЧeK™2iЖЖЖT ЎJћŽщJизуhбВeЎЖо*T $$„N;bccЭ’*,O›1“БcFгЈ~=<<<аhдиикˆk)xЏxššњB~@ x$ЦФiсCбl\Оt‰ЂііљžX(%%…зЏSЎ|yQxСЄKзЎtщк5‡{Ћж­iеКЕnп”­7Рє™Г˜>s–n?((ШР_пў;|чNЃПƒjЕŠЙпў …‚NŸfь˜бxyy‹ & €бfъP­ž‹іЕѓE.œ?џН[˜=5—ЏЏcFть™3љNыјБЃ|љХтО^[ѕњvёЫЯ?гА^]jT цћџћ–?,ы @ x%э$S[aD:xШїъm'ДWOqЇ ‚зТјА œПt™ЫWЏБmЧNЊUЏ. E С{мЄŒЮKnћ§ T*бŠY@ (ќˆїЕ@ ˜жcЏbљэsЄџ’н­Rг)цgƒ7й œžžN‡vmљ Ј~%Н iѕ!7oоDЋеR­JeŽ;І л.Є ›6nрЯSЇ№іpЧлУ˜˜h“щ3š~}BбjЕќsњ4СTЂ”Ÿ/!­[qэкUЃqH`€?•+Udюьйт! ДMЊ}хUKJJ ЮŸ…-†6–аЁ@Ј“aНݘ,{}WpzOњіЪаŒоЭNŸцзUЋ8xф(о%K2aќзH$š4mЦБЃGxњє)ЮŸЇNнКT­VˆШ›DDоФннУhкПќќ3gЯœсћyѓ‘H$јљћГnУFŽ8‰‡‡'ГgЬ4oјˆ‘?q’…?,bщ’Х\МpA<'AAUЙЭ+Џ]„нЗ@P№мНw—{ F§юнЛЧН{ FлXZž@ фO†>CЂЗхЗ dшЫДЪ ЭЌЙс›7ц+\ыvrИЙЙЙурр@џOаѕуЮ4kбœАqујrм8Юž9ƒЏЏ/ŽŽŽзF"A.7}ъіяујБclкВk›ŒeŠ)B‘"EшжН;_5оPѕѓї XётTЌT‰ˆˆЪ–+'ž аh49мZ4kЪхK—rИwэощ&> ‚зЫЊ5ПЫЃFрфшЄsП}ч.ГПљo//†”ЃЉdь™AnђдpжмТlGYh„Ј1љМ+VŒЄЄ$jдЈЩЃЄ$.^ИРсC‡ЈSЗ^Ог9А?%}|p(VLчvъфIІM™ТзБАДФТТ"G<•JХФА0vэкIzZjЕЅ2]<A бœН#ЋVџFКRIФЕЋє е-bmm- L ($Œ1ŠЁC‡А`бFŽ­ ЩII,јajЕšс#F NЫ9ЃНVQ@ xg‘ОSg#yжџ,—Ыщж­;ПЏ]Ы§ћiеІ …•J•k2&MЦвв’Q#†ымFA—Ў]9щ2 ў`4ожЭ›љћЏ?йЛo?џžП@PХŠт RˆЊ59Оы+^Š+€‹‹ ...иййqшрAъжЊI)?_ ј„штхц—…JЅbФАЯ)XšђeYПюwq‚РЮк’щ3gqїю=-YЦ“'OXИd)‰їя3{ю\ЌЬ/i$zD џМuЫЗd>k"‚2}УgнЃW/6mмˆZ­в-LящхХ•+WИtё"W._жѕ ъcnnЮтЅЫ8{і,ЋVЎ2ЅзjЕ<}њд`ж]kknпŽч~b"*u†РMW*QЉTH$ёD)DЕš|Я^ХЇ0bдhіь?€FЃс‹бЃѓєгgЯюн\Мp‡sр№ъжЋ/.‚@№$=zˆ—› cЦŽхњŒ3–Ш›ЗјђЋqИ8'9щ‘б•Ђ@‡т4Ъk4-(!њЎсффDš5 iзNчVЁBBBBшдБ#Н{і 22вh\;;;fЭ™УŒщгЙ{ї.SІMgйв%T([†§ћсŸi Z%8?ІN™LHлvјаИA}Ъ–&22RзK# @ˆЊѓп(нКe3ЕыдЅmЛvx{{3qђіюйMRRRЎ~њX[[“˜xŸ„{їprrТййY\рIМw—к5Њг­Gz‡†R-И2їю™h( Q@ x!š—[!AžП30цЭŸ™ЕЕ57Ѓctћ...мŒŽAЋе’œœLФЕk\8ŽYй–Q™>sгgЮ2šfјЮКпuъдхтк*С IDATх+4nв„ЦMšфonnЮšпзщіќАH<СЋЂЯб(‹ХУгУ ~ЫхФХЦцъЇO§ 0h Нzі €щ3gQВdIq!‚$.:ŠнКвДi3œŠ#ъFDЯ̘5W žOu’Э]›ЯИЏ*ŒiоЩбјИ8ЊUЉЬАЁC˜9{ŽСЄCр§Ђ.ЎЎDGEд *• W7З\§Вгџ“ќqђžŒ3Z\р%‰Кqs)DE^ЯЧ3/‚ч%Й…љЫjпТјŠpusуђеkт.о1ДMОыœЖэXДp![6oІbЅJܘ6•&M›agg—ЋŸОнї“”'Ј”*œœёѓїуТ…ѓт"/ћkЕМ_†@№ V !*&EЇі%уЎх[ Z‰ц/w­лuxmзl{x8ЁНzŠ›W xнѕeцкќќЯкєуЪd2?yРЕЫxx?б Œ@ xїH~’‚L&ЫQшзљ§/яž 5ОVKЮЙкBЉDпшамћїѓфЩcк„Д}mЧT*•тЅ$rБЊT*E*•bnnNBb"V––šЪљ3ЇE я0J•ŠФGIи;гељЉ3@ y+r)]8ў;ИFЃfф№сЬœ>§…†пЄЇЇгЁ][>Њ€_IoBZ}ШЭ›7бjЕTЋR™уЧŽщТЖ iУІјѓд)М=мёіp'&&:GКSЇL&Рз‡šеЋqшрAћ“Ч9|Ѕ§§ЈQ­*лУУѓх7~м8ЊUЉŒПOIд­УОН{ђO x/ЊJ‰ФшяЌ}Й\Ž\.ЧЬЬ KK"cтx”$&1оQ4 %‡Й…%fffКzРXaЊўСырХ?ЪТВ_VаІkзžэ&M›Бvнz>щпы|7oж66љŽЏT*љчєiТwюЄH‘Ђ|3g6ЦЭЏ+WбЄi3Ž=Jэ:uxњє)ЮŸЇNнК?vŒЊеЊёлкп3 @žГSИGЯ^ДmзŽ=Лw3lшў<§Lž4‰јјxvюоCDФ5† JЩ’%)[Ў\Ў~џž=ЫРOгЌY3Ž=ЪрAƒиОР2er'МЯт4ЋDЁP`ff†ЙЙ9666HЅR=&юnЂ(Јїщ5ЇеВ`о<ММНiдЈ7nРнУƒ† ””ФЗsчђеИq˜™›Ф]Зv-6ЖЖДќ№CbccйВyƒ>Ьт~ IгІјфšЮ‰?ўржЭ›tщжMч–žžЮ‚yпгЗџ'œјуdR)M›77yS&Mт“qvvрџО§†Ц›PОBЖoл†RЅЂ]ћіl\Пž*UЋтррРЬгљђЋqиdОч}џuыжЃbЅJЙžKGсцЭ›єье •JХљѓчйДa=Ÿ~6333.X@—Ў]йЙ};ŸŽFЃс›ЙsщдЙ3?-[ЪиЏЦaeeѕZЏЗЙЙ9ЖvEАВВТмм333 …Ў^ЂS LKBmШФW<ЏЬ›:Щ‚ZGДr•*,ќawњˆХ‹1rtЦ‚ёс›7 oЬžдЭЭњ2€Ўw Y‹ц„Ч—уЦqіЬ|}}qttд5r а,МММpqqЁWяо|3g6‘7nPЊ›6n`kјv||}ёёѕЅu›6nXOщР@“~Y‚вййW77>юв…?OdгЦŒЭ%M!DяЃјЬњЏПЩd2,,,аh4hЕZЄR)fffЂGє=ЄSчЮќєу2.]М€T*ЃOŸО8+РЅK)[Ж,юqŽ;ЦэлЗљВo_Ќ­­XЕr]КtЅD‰˜››Sдо''Ї\гБГЕХввR2цЈYЋ6ўўўœћї_Є2ЉŽЎ\FБbХž…бjqrvжэл;и“˜x'''  РН{їIЅИЙЙaž)Œmmžх%ЗsЩТжЦ†з#˜:yJЅ{{z…†ФЭШHьlmЉYГ&ћіьс~b"iщi8илЬкпVcia‘ыyН Вžs ,--БАА@&“хЈєы@ xпDЇі•h^жЏkQљ ЅX€JєЏПўфгhоЂ…юХkJpцEБbХHJJ Fštˆ:uыНPУиооžЄЄ$P*•xxzъќ=<=8ю\Ў~Ц№ёѕхЪхЫЯO xФЈ~oЈT*E.—ЃP(АААа}DR*•b6ЭїŒ””~[НŠ 'стъЪoЋWГdё"ІЭ˜ РљџЃVкК^C€Пџњ‹лУїѕx]/dФЕkhдjЊ “ЩАДДдХ3–dєаЩr{ZZ'OќСД3БББСЬЬ ™Lš#^vqeeeЅ cWЄR К}­FKБbidєўIQш[ЅRтшшШэјј\ЯE?яeшлП?666Н›Z­[lmmiбВќqœДД4Z~ј!666X[л ‘Hr=ЏWL&CЁP`nnŽЙЙ9 …Й\nP7ш‹Q@ JT_˜iо %*_8>f6EоˆнЕs'C?Ь€ƒ1j”б‰žГћьФфrКuыЮяkзrт?јцЛяP(ЈTЊчjkЕZŠ/ŽBЁ :*Š2eЫu+ 77З\§Œƒ““гsЧоv‘ЉеjsќЯђгЂYb4kЖL333]Ѓ<ы=Ђяџ]Й‚НƒƒnДHЏоНщйНRЉZЭѕы|ѕѕзК5 cЂЃљuљ/„Mœ„ŸŸŸA:‘‘‘єъб]чіЭœйLœ4™’%KцH' KЫ [E;;Л Сzю>d№ †сЌЌщжНЛI!jccЃKУЫг“ЛwящіoпЙMЭš5uћvvvилл“˜ˆЛЛJЅ’{їюсчяЯЧŽ™<— ŠunииX”ƒ>VжVиййбМEK6nи€L.Їq“&( ЌЌЌH$yzd}„ЪњeffІЋєEhіобьѕ‰ў@ x”h>еYA*б—ЂY6ЂY‰НЮqФ–––|?ЮnЇ щбЋ ыеУбБ8AAAxzyqхЪ.]МˆT*ХеЭ-_/X™LFЛі˜:e2SЇMчњѕЖ‡ocн†Йњeqт?(WО<зЎ^%|л6VЌZЏxСл,:_DЄf5BГ–lЩJGП!ЊP(Фl™я~ўўмН}‡Ы—.Q:0#‡сфш„““ЛvюЄ|љђК^O€M7вЖЅK—жЙ) њіяOпў§unCІWh(UЊT1šNYцdѕ&VЋ^=ћіыќ—-]Š\&%ДoП\Х•……….ц-ZђЭм94jдˆиИ8nD\gТФIXYY1gжLZЖjEйВхhкД)›6lРЧ燹­л№ёёЁtщв”.]кфЙф–w}45VVжXYYaeeХG;cІ0ЃH‘ŒдVV–h4šзn#šѕ1*KŒЪd2нІ?ƒю‹ŠM!NрЭѓF—oЉп С+MпЩЩ‰5kRЖ\Y[…  ЁSЧŽииXГфЧŸt"5/&LœШјЏЧбВy3ь˜=їЪ•/ŸЇРйГghеЂ9 33Ої5•3 yХоAjЌдTЉTŠFЃ1!ЁпK*—ЫuіЂ‚ї___FУќyпѓ№сC||}™%Нsм5у8rмН}иšъŠ­ ЌфЌЄ`) 9˜K%˜Ы$ШЄ`.ЙT‚\ 2 ШЄ™6ЂЁƒ>#љšї#>.ŽF ъушшШЬйsоЈоЕ†сЫˆРќи‰ыЭj4ъ T2ЬЇ}щ }С™]|fЏВ‹Ц‚ъ"T fЬfКпZMЮN€Ќп‰­FkЯ”}ШBŠ*3г<ŸYj~Ь\пЎnn\Оz­ам$с;wŠ'E№оŠжМФgv?§!Кй+Tcn‚ї›Жm iлЖаЄ#(ИњCџv!š]„žІќ„Иo;YLfіLˆ>|ˆЕ-)OЈ0‰D‚ЕЕ-їtn233ДOђwŒќhТЂ9ЈЭиr=jfжВТПЮ‚зТ™ЛJ.о}JђSБ|ƒ@№к+?cЯМ7-Яъ]œЌ!ЙzћZН:GЫГ}­AA:кќдSрmVЂFЄT7;ОD"б…‘ 1Œ“%^%Ям Ј~œlЧ4%ˆрMcg!ЃœЃ9e$Кі‘™Ћg2чГпК№ZэГxЩ3­–ьЂ‰ *ъ@PH0WHq+jЮХЛЩЩt{єр>eKЅФХЦ’ž––iC/A&3ЂfццИККтэуЧИ!D_„'iЬфTz"єЯƒ;йЖ|q7#АДБЅ|ек ›‹PkДa_5иСўMЋЗ№ЗB‘VAцG ШMˆšЃй цubдшЬК9‡ёцЂЯDЊр§#љбО;ˆZЭлв фc&оcЭќ\>s K[š~д“FэКФ;{ђОe* АВцї%пrbя6Д-AЕъгуѓёШ2g\•ы7ЇыА0ф 3ЃЧЫТXZN.l_ёGЖќ†D&Ѕy—OhдБЇюœv­^Тг'ЉоЌ-=GO5™Ÿ,V}Цџў8РуG)сщCеЦ­8Еg wcЃ(UЉ&ЭУвк­Fѓ\ЧНќЯ V;‘„јhœ=J2qљ$‰ЩВLšЪšяЇ№їэHe2ŠЛz0pв<œмН‰‹МЦЊoТˆŽИŒwщ „~5 'QыR1Š‘5EŠQ#Н њCsЕ&вбІ‚ї‹„лqt9‰У›WЃA‚&shl™Њu)SЕ.і%мйђгїм‰Сйл?CІІpхьŸ|<фklœш>zЊ.Эв•kp7.Z—VЪ“$ьŠ#U˜ыоЏYЗž~:­„„;ЗЉжИ5OSSЙqщЌ.,6§єЕZvфЬбНhДф№wђєЩќ`ј-рфц‰F+AЃU3ЉW+Z‡ЁJƒ–”,W9CP>М-ŽЎ^КДž$'cc"Пzв ™B…M,lŠаЈcolXIфх ˜YZЃRЉptѓфФоmдjй€cЛ6стхЫKџC­бцњ•§5T6†Жšњћ=ЁНгЌZТАW4GяЇЩоP1,W ^5oЇЭьн‹Кz‰ф‰TmвVч–Н=\/Є+Сл№яБ}ќ8e3зCanA…ZMЈXЗ9Њє4~јjGЖ§NЃBЙyхю~eўнjвRž RkљАзP: #ўfѓЧє%ЈvS<ќЫ№лџM&сv cm@*“cicЫ•гр_!˜aпЎ@*“{ѓ?MEП путэЯЂq8МѕwъЗыnєxYh4кiлЙЛ6ёљЗП’њ8‰yЃћрT ;‡blX4‹Б‹6RмХЧ RkІЁŒШЫчiо}k7eзЪиГцGN]„}1–NјŒУ[звЄs_Nькј\Ч]ѓнvшEе&mxp7Е&Ѓ9dЊ,зЬ›FмЭы|БhfVЬдG`чшЪ‚ЏQ­i§&ЮcгтйЌ7O&ЭOя["DГТі†цCŒ"Щ1ДW№~г CЦЧУ›~гxЩЮ˜›ФТвšІ]њГyЩЊ7яˆFЋц№–5є3y_єхqR2VЖEоtѓL ъzH {BuН њНЃzНЂњћy}ЯНЁрmFЃб№пеk” №з­Л,„h.„oо˜П€юt=Ђ<@Ў0УЬкЮЈЈ-.žиsІvH7ТўŽИЈHм|KSФЩUЎRНФнКŽJЃEЃ+лЂX)†U‘bЈ4ZŠ{d|ЕіЉPяР boFр\2€?їmaєqє|6ќK­­D‚&ѓыБFЃхяƒ; ЌZ—вUыPѓУЮ\ќћ8ЕCК=^ni§Йo > ХбУ€Рр:\<}œЭ; •ЪˆЛu>ЅБЗВEЅбM#{Y)†Е}qjДъЬ‰нё.ћAu›qе зЬвŠјЈh$R=§tчeЊ,OэйЬАяVыЪR.W жhЙ~ё_žІ<ЁiЗAH$RuъЧ7C;ПVЛ_СЫ‹QуCsѓАеЄйgнМчїZ4Z-ЊlїYjr2?OIѓžŸaYĘޟьё}”Ћба МVЋeЭџMРХ;€вUыщќšїјŒ‡ w8Еw ;WўР№яУІЈƒЩttu5Иo§ёZѕŽ)ZД™CssоЛДЄT•коМ’%aƒљrY8f––t1%C,gЦщ0t<>юЯІE3X9{}&~@х†­‰МЪѕ‹gйігwє8П `У‰.џs‚бmЋЃTІQДx :†sЩЂџЛ€ЅОЋƒ.Ÿ§“ДдЌ‹Х#0 Kk=|€™нЙж9fНЭъђеŸ”уЖЃ:ЛP]ЏЈЕ)zCС;и6ћ}§F=Š—Ї'_}1ZбМhнЎCОТ-ќћЁnЖ\3;TЪt’’aiф%Љеf уЭ oeW”фф$”-ЧЗ­цШ†х$?H@Ў0Ѓl(5]ЕJХцІqюи^TЪt4jСЪімOИ‡ZЅТЮЩе`і^ufŽО[тнxЮпЯ№цхu7ˆЛЃЧ3lмфLыСнx6§0Э‹ffІЅССХЙ•-ЁОl6;–ЯЃэЇуЌZзhІЪШЬкeкSвT*ЄRцжvїqЛ~1›Э?Lc|чz4њјtъkВ,янEЅLЧСЭ[—ЯŒF$о‰чёУDFДzжЈRЋy’šŠ™^O… p QSb­6ЧOmіaЙbHЎ $hЬZ›žžЦ?У?Ј:ЕBК“5№C™žЦџќAЫ>У Т‡/KтэXњM[jрTП%ѕ:†ВьыпЙž&]šL'уž–dŠЭ ї[WЮ‘ž–†OP5]>4ZLЮВkfS„І=>уЏН[јямiн0уьїН“+­њbЮ€RRR1ЗДТЛ|0охƒЉбІ~_ЦО5K)YЁjЖђŸrаaшЌl‹`imЋаЩ“БАЖAƒ”­Лp|ћя(гžRЋMWдZ V6ŠŠтРЁC4jарmЂoЧРЌЁЅN^XкиrњРvjДъbМСЂбъ E• RkИЫжE3ђ§:\|JБѕBюп‰ЭЪЊ%уK{fœі‡sуќiF,оŠ•]Q–}йЕF‹…­RЉŒ{q1Иј”~v@Љ•Je0ќеІh1*жџЧЬЪqйg€БДь‹SЏSЊ6ы#-џЪuўAmўкЕžх“†2q§IЃi˜*ЃЌЁ^*•Љ,cйŒ,Пч=ЎН‹}І,%ъЪ9~зWџr<МgД,хжH$юпНƒ“ЇюVTkДX)†]1gЦ­:dђ>МKb4[/h~–‰М‡ї\іК6/˜†]ё4я3вР§впЧ)цъ‰]qWћйƒс\9}œsW"•™™ЌKœ<|IО•Zk4нGУЬЁЏYю—џ>Fєе |бЊЂ.ЬЯ:y1~AеLž—T&CЃ•фZЗi‘"‘ќ?{ї^EБ7pќ{Jz!„@€є„Ž‚@шНзаЅЊ Йш‹ŠTE”о{'єŠ: -д„’FzяЇяћGтаDЎ ѓyžѓВ;;;;ЛgйпЮьl~7рЇг•vЎР哇ŠL7@ijN‰вNEЮЙйY˜˜šЁгKx7ыШсuѓ+L0ёWtz 3srВГџЖѓmбїxJЦw„>н=їqYLZЄKЎЌиkй3І ‚ М ._НŠџЮ]дЎ]›‹3rФЖяи…}I{|jе|лбwƒБ[ІТ„§ўУўeГбщѕTЌэ‹V­&њюuъuшџLŒє8Н„„о ЁеъаъuЈд* ву–СќР№ё2ZIЕFƒRЃ5n’\A&эиНx:Fќц–VHHи9:Fє§;Шd2ьЪ”Їzуі,л›J'›тVЭ‡МьLlJ:`UТОШњžT\^оЭ:ёћжeи—sУОœ i pЋV­ZE|x(Žn)у^ VZЃ)6ѓ‚Лс\а§QG”AgЫ$ckЊЮ Нђz#УnQжН"VіЅБАЖ%';ы™uЉ4ЗЂRн&\ѕ џѓ-снX  IDATщ‰БЈђrа$\ЊеF&“qhЭЏМпжЩ`Р`аурф.Ю6o{ њ'ƒбbвgф%ќ{#QCAwW€ЄGсмЙt’б‹vЃбj  9 Ѕ’gS­~+cZI’8В~>=ЧўˆмФ ЕFШPš˜MfJ5оGafZЃ%,ј4e=*‘—ЩЉЋqЏN‘2 P]lйѓrsQšхъЋ4ГФЗлLLM)L ІY—“УпvпOz2Р,м=їЩ‹Œi^Њ%єй]oEkЈ яЊћВzэzмнн™6}wЎ_eЦŒŒ1‚Ukзђ…эчxzzˆ@єu=љ*’z]Ё0Гфмю5\> 3 k\ЋецНця}2Но6eœiкїSж|7‚МЌ ,lJPЏc?Дњ?КЪ>^ІZ“„]>ЫмсаыДXл•Тмж­^ЂУЇпq`Щ,зЙ\AЫcј ѓj4эРВџТЬТŠОчсTё=ќЦџФ‘•?‘‘‹uЩвјџ Wы’EжїЄ2žе‹фхгЦЌДT6Nƒ:/ћВ.|ќѓ&rвSиOвР€TьМ?ЮГEц?Мq™'їЃгЊqtЏLП‰ 0БАAЃеuћ*^ЕRжЋ:WNьcџВ˜˜šу^Ѓ.]Ч|‹ЮY™юXEbф=,lJPБvcZ|8ІШzєe(Ў|ЊМ<”fцЦyО=?*И!Yp‘`fNnnЮ3Зэ3›kѓq+ЉєTєјФ€FHЦ`Дh~Я BEkЈ яЎ}bccУмyѓˆ‹ GЇеџ(ŠпцЯcир!8r„ЯG~њV•YЖ§ЁFЪеIdщЁЋE QсбыtЯ]HЇгAяƒИzём3г%%'бЙgL оKіЬŠлЕуЅŸ]z9…ЙИkљ’žƒвФ …‰ ю\cџТЩŒ^€ТФTTЮ?<}zўKПЃT^рўх3œXї УлљVф#МN<*{ёє'ў-+юач4wЪDSЈ яƒ*ЕŠВсG(эPКаМRхœАВД"16U^žqК…Ѕ%ЅЪ9ЃЮЭ!).ц…ыЈг [жЏСУнЅђљm–JЅwOіЈœАQ€ЅR†Ѕ,d`Ў3Й 3… …Ьф ”ЫPЪA!…ќlu+aBxК…\&Каќƒ\иЗ‘c;1шu”rёЂЫИŸ0(LŠŒђ+ќГ‚бBЉxTј‹нЙpŒ Д@'НљЏur)>h|Њ[юуєUКуŠQrAx7Nƒ:ƒї’ІЈТ‹ЮЯIO%;-ЕJUhz^n.ЩБбoх5е;ˆЖіД"рAZDŒђЯбxр8Whšцoы &М‘@єe‚бчЅŠТ+j9|в_r.љЋђўМТ-–RсГ`ZБ]qiЄ—Ь[сm=‚‡ Э]M9xЅшќ'[A_ežD_Bэ+Z‰ЃQоб`єyѓЅч>#*‚P4p”НF—[„ ‚№Ўб Ъї6HJNІМЫŸЗEўoлy o$_ƒС@\\м г%''ў№с+хЫлЗпъzеh4$''Нбuшt:R’“ХшЛH|•љВ‚з2Шž!ѓщi‚№Т_sNyоЙAЁ‚ ааPввгE њ2Юž9Cяž=ўдВЩЩIдЏћО1иЬ{Њ‰ћї'ќс€цГhС6mмРБЃGщвБУ —YЕr%›7mњSхЮ{CMёOчћгЌYЬћѕЗ7Кџ~›;—йГfН“Ч^о[к%тя F_6Э“щžО ёyњ3чЇŸPЉToM>тѓњŸч^чќ"‚ Мž&ЭZрющ%бнК2шрыtѓ+QТŽ~`ooObb"яU­ђкeЎXЉНњєycuђW•ѓiћїэcшрAџѓ}ќЎvг|Sћс]F_і‚Q тѓф'-5•Ю;А~нк"ѓbcbx№рM›5cлж­Дlж”еЊ2p@bbг­[Л/w7уч› ž™L&У`0№пЏОbдШO Ѕ -”O‹ІMžYюъдЊIXXXЁщПўђ ЕjМGЃѕ9rј№3—/Ў …жџЧGЏзZvЫІMTЋ\‰ юд­S›С~Hppq~cп†ЌYЕЊШ:/\H›–-пК€єЏ8Ÿ‚ Џ/!.†єд”w zыцMТBУ8ю‘‘‘od&&&Œћfffшѕzєz§kчщццЦРAƒпXНќUх|šVЋЯюНћс] FџЪ Hспэрtыв…шЈЈbч>|ˆ&M›bffFpP?NŸСўC‡1 ܘ6ݘ.';›?ЮА{м ЛЧгЇ›ЙЙ97oм _яо 8Rd}9ййx{{ѓ 8~ЂHNЧ‚љѓјdи0ВГГ Э;t№ 7n`ѓжm|7y _ŽSь#Я*ƒЏЏ/зnм4~LЛіэ‹ ЗŸ‘‘AнКѕИr=„НћігЈIc† H\l,I‰‰,YМFShл–/[JZzš8Я‚ Х %§по5wуЦ tщж•FГeгЦBѓіюйM§КяSЃZUfЯœQьђяћјp:№ESСУнјђІаЏ/999ИЛ8“ššj\ЮнХwgќЗo+XіѕъдІr/>5Šмммч–ћјБcДi™џікЕnEjUŸЛќю]Лhд ЉЉЉФЦФаЛgO*W№ЂnmBCC‹]Ягхќ§Ф šј6Єr/FŽNZZб I’XМp!>о5ЈQ­*?Яž](˜Кxс‚1пGЂ‰яU­ŠwѕjЬŸї[Ё‹ БЃ?ЇFЕЊДnб‚‹.кPЛVM*W№bћЖ­EИY3Іѓ^еЊдЋS›#‡Пtљ–/[JэZ5ЉRБГfф_d6mфЫ…ѓчijTЋJhh(†žнЛQЛІ7U*V`Ш Ьš9ƒоЏCеJ™6uъ ЗхЩ<*xИгЕSG"""žЙ^vп§“вПђ‚RјwŠŽŽbжO?ёA§ХЮ?t№ э;t@&“ёгœ94єѕХнн={њ=fddрPк333ЬЬЬŠnфK??F[d}™™™и—*eЬЇИwfЫхrR’“йОs'EЮч§ћ ZѕъДkпяš59tрzНž&ООьйНћЙeP*•иккbkkKZZ;wю`ђї?[7&І&”(Q‚ђNN ё)VVж\ЛvЬЬLДZ-nnюь№ї7ІпВe3•*U&#=ƒС№жžW^хм"‚№OІжh нP|’FЃA§ŒyЏуЏэšћ6rЉT*іэйCЯž~tыоџэлбщt„……1~м8&~їћ~цХЫѕ?ркЕk\Й|NЧ­›7Иvѕ*дЏ_ьrїУ#ИAOП^ил—bыv:ЬН{aЌ]ГцЅЗ#)1‘ММ<ŽŸ`Яў„…о-ВќЕЋWљсћ)ЌXН{{{/Z„‹›+ƒ/ГЭЎЎЎ/,gTTџљt_~5ž#ЧŽc0˜0~|БяКЕkXОr›ЗnуР§…ЪSяƒŒљ:;Лфєuп'ри1–._Ст… Йvѕ*пOžDvv6Ч~?Щ !ƒ§й(ДZ-†гЇXНvЇЮœЅUы6…ЪАyгFіюнЫК XПi3eЫМTљvюиСЊ+XДx 'NžЂwŸОЯ­{­VЫхр`6nоТб'HOO'јRы7mfнЦlXПŽчnЫyЌнАЇqї№`ђwп>s?МьОћ7ЃO^`ŠРTxвˆOGв aУbч%$$pћж-ZДhYdощРг…–KMMхќЙsЌ[ЛЦи*јЌ|ZЗiKп~§Š=гRS‰ŽŠfљВЅ\П~Нјџdхr&џnnEGМwџ•ЋT6ў]ЅJUТТТP(дћ NNN/,УVЏ\Iзnнptt|nj4vэмIjj nnnЄІІbmmУgЃGГjХ уMР5ЋW3О ЫrFFЦ[xОъyAœCAј7ˆ‹чоУ№"ЇJ­соУттџђuцwЭ§ѓ‰О5ЏoйЗkЧKЅымНgЁП РЪЪŠкuъPЅjUўће8OЂEЫ–иЗц-ZаЙKWš6kFР‘УEђlаА!GчwyКtёUЊT!88ŸкЕЙpўsћЮ+ОђžК‹nii‡Ї'НzѕцтХ‹ЏTfff”+WŽrхЪбЋO.]МdœїшQ4У?ўˆ9ПЬЅJ•ќч ­ЌЌ Н‹FЃ1ЎїEхмГ{7Ё[їюLљa* ъе%33[[[c:џэлјdјоЏ[€бcЦВlщ†}є‘ё?іЇЗПLGЪ;9QоЩ _пF\Йr…ооьлЛ—‡ршшШРAƒљхчŸ Н{зXfьээ‹”{яž=|2|ЕыдРЧЇ6III/,Ÿџіm|2тSъ7h№JѕяXЖ,іііtэжS'ЇRЅJдђёсЮэ[TЏ^§…лтффŒНН=Ÿ AџО}žЙ^vп§SƒбWэк-.$…тއ'‹€#‡iшы‹ЕЭS7Д6q§кUіь?`LпгЯЛwяr9ј2ГfЬ`ХЊе4єѕ}n>OBЈYЋУ>њˆ{їТќс>1‚Я>§RС€:/KK+уп––ЄЅЅх–4їз.џ‡мм\vјogЯО§Яќ­ž:Eѕ*•QЉT”+_ž™ГgS§НїИ~эЖ%liвД)2™ŒsgЯ’››C){{ъжЋ‡ЕЕ5щiiХžЃџI7ПAоu 5цибЃDDEухсŽRЁ@Ћг™пsБЏ/qбэ#ŒЁЁЁИzxСŸ|Гц[ˆ>\ОŠнЛvбЊud2VVV4iв”=ЛwбЂeKт)_pGљyš4mЦДЉSбh4\8žџ~=M7вЎ}{вггЉхуƒJЅzЅr•ДЗ'3ѓЯпEЖЗ/Uhљ+—/#“Щpї№0Nћ|єhІOŸFѓІMшдЉ3“ІLСЪъљGBlL .Ў.ЦПЫ•+‡RЉ$6&ІP њt:bcb^yћ“““бjЕtjпЮ8Я`0œœќТ,1!'Їђ/ЕO–/6&чb/J^&*QЂ9й9…џЮЩ}Ѕm)UЊ™™™Я\ЧŸйw" „g;|шн{§аСƒЬѓ3[Зћcggїј?ы† iаА!C‡ cўМп˜?я7c Z\>ЯRЁbE*TЌ@‡NаЗ/ŸŽќO‘›tЯbWВ$ЙЙ9O”y”*ѕъп™г899сUЁТ3гдћрfЮў ;;ЛBчњŒŒ lmlЩd 2˜ѕыж’——ЧрЁУАЖЖ!++K ‚ oЙмЬ ZЖnMРЁCDF=Тне™ˆЈh4Z m;t ;-ѕ/_g~з\OЮўЩЗcОгЯˆІЇЇsђїпйЙУяјxзрєщ@ސ››Ky''"ŸzNЏ8ЎЎЎ8;ЛрП};VV–4oб’Ž>Lѓ-P(…в›<єGрg§Gј:йO/пЅk7њј!У28VжжL›>ƒ'Oqћж-–/]њТr–+_žшЈhупqББшtК"ћгщЂЂЂŒiLLLžЛэЦ )? S(=ё;aір!їУ#hжМљ ы М“S‘ч,_І|eЪ8§ЈШ266Ж/ѕЎS™L†єD?ѕќm‘^m[žИ*n?Мhп§›Rqб(МЎд”.ъоџо=&~ѓ5+VЏyюMЏЪ•+“œ”ќЬ|^VхЪUаjЕdМТ  žžžмНsзјwhшнB7_жЩпЇeыжЯMcaaЋЋkЁ ђŸs5/xvЕGžœ?wŽ›7oвЉsgуrяJ *Ю'‚ ќ›efЄЃSхбЈIВsrИy'”мм<7iŠ:'›ЌЬПў1 ƒVMVЦПtАЂCтррРёпOr№Hp(р(’$qќиQКtэЦй3gиДaёёёФЧЧ=3Џ;2{ц ZДj…‰‰ uыжeСМyДяаБHZЛ’%БББaяž=DEEѕвeЖВВцСƒћЈеъWооёџ@…Š•јПЏ'љЃ'%%annŽГ‹3™Y™/,gзnн9s:нЛvС”Щ“hнІm‘‹П^НYОl)—ƒƒЙyуѓч§FЏ^Нѓw77юоНЫэ[ЗИ{чЮs[ў”J%э;tфћЩ“ #.6–›7nМдіњѕъЭвХK8xŠФФDRŸњyхыжЃЫ–,цЬщгФХЦrїЮ џжukжђрў}bcb^yŽ?Л-Хэ‡эЛk@*."…?уШ‘#д­W’%KЇЭћэ7LхЪ•QЋеЈеj$IBЃбpја!"##Й~§:K/6vу/.Ÿч9~ьїю…ёрў}fLћ‘ *RЪСсЅЫнЃЇ›7mфі­[9SSг‚@дМШhПтм!‚№vJIJФЦЪяšЕЈUЛ6–fЄОDCЬпAљ.Wіў}{щнЇ/хЪюОйЙKWіюйKч.]YБj53ІOућ)“БВВЂq“&ХцеНgO~ћu.mлЕ }‡Žœ?wŽ-‹|ЁP(јvв$І§8­FУј (_ощЅЪмЕ[7іяпЧЮ;(SІЬ+oѓЬYГhоД ЧŽхТљѓlмА>џ@ѓёaв”я_XЮƒГhЩR&ї-ёёёДlеŠ™Гg­=ˆ‹ууaCбщt 2”СC‡рээMзЎ]щэч‡ЕЕKWЌ|n™ЇЯœЩЄo'в­s'dr9-ZДdўТ…/q‘ж“ДдTўяыoˆУССO†xaљњіыGJJ2Ѓ?Evv6экw`о‚Œћ_ŽCчސЫИКЙa[Ьs`ѕЖЗ"#"ŸЛяўэAщ“Dї]сE:Hлvэ MЛrх2ћіюaоoŸЕ<}юІІf,YД;wю`ggG‹–-™№ЭзЯЬчyvэмСЩ“'QШхдђёaщђхЏTю-[вР‡єще kk+цЬ§{{{t:A—‚hвДС?“$I<|№?їЌynn^Ёб|Ÿ~ЦемТ‚ььЌЗіќ ‚ …gХJxUЌ€^Ћ%ђСН7ЛТзИL“mЈ‘ruYzшjCTФCє/шvЉгщˆ ї€A\Нxю™щ’“’щфзЛи!эAсueffђОO-ЮœП№Їnю§ељ‚ Т›ЄеjйяП ‡вЯю#“ЩА)aGfF:Мт §: Бe§<мн_8цRЉФйЭƒНjgl`Љ”a) ˜+СL.УL!C!39(х2”rPШ@!У]ser9QсФ#‚ МGЈсэ§кСу_• ‚ МI‘я#—??„“$‰ЬєДWBџзоh jiiЩЃШpТя‡‰ЃFAјЫѕєѓcЧЎнoM>‚ ‚№І„п #&*ЫШ›ош3Ђцh4*ю\ПЦkЏ<8Œ ‚ ‚ ТПн­ ffц˜››§ѓб7бxkjjŽЉЉЙ8zAAA„ќрZT ‚ ‚ ‚ QAAAAЂ‚ ‚ ‚ ‚№QётxAAAсˆ ‚ ‚ ‚ ‚DAAAˆ ‚ ‚ ‚ ТŸЃ|г+ШШЬ$"2užI2dHHШ‰oё-ОХЗјпт[|‹oё-ОХЗј.цђу'™&fІxzx`kcѓ DџтБŠВВГAЁЄžocJ–ДaП ‚ ‚ ТŸš’Bb|<й9йX[YПe’^#€|Ѓ-Ђ ‰‰М_П!ююXZY‰ЃGAAсO(ыX KKЎ^8‡ЕЇѕ;П=o453Qръъ†­-zН…BёТхдj5_}љnnю|ѕпџ™ŠЇЇ'&&&[ХmXПžуGВ`ёbЌD-‚ ‚ Тdck‹›Ћ7/_|aкЌьlЌпюхVdna‰Ѕ•;wь iуF4Ќ_ŸfMГfѕъч.wіЬ<Фі­[Š BявЗW/Кuщ‚NЇ{х21kњє—^іъеЋєшої}|ј юћ 4ЌЌL&;‘sчЯї?нaпL˜@HШѕзЮGЃб0vєhbccўtII‰Œї%тЬ ‚ ‚ o˜Ѕ•ц–ЯMЯУˆHю=џїЂ;ќ§;z4iiiH’DFFгќёХ“ЫЩ‹ЏlйrXZXрщщ‰Rљъ К}{їbхЪ•ФЧП8€Мzх НztчкеkЈT*$IтдщгLžєШdШdВџщЮZМhыжЎeўМyЏзФџћ†mлЖВzхЪ?ЧGC†Аmл6<(Ю ‚ ‚ ‚№7KJN!9%€мМ<’SRоо@tсќљotЋV­ФдЬŒй?§ФХ  і8ШЁ#GШЩЮfи!,˜ŸTЅЇЇгЏoo6Ќ_o\6''‡цMšаВy3іюй€RЁ BЅJTЈXб˜nкдЉ4oж”~}zzїnЁѕ9’6­Zб­KgЮŸ;‡С`@iЂруaУhзКqББ,^И€#G -—››KЏž=АВБeмW_xц ПŸ dхЊUЬљхW$IтгУiьлŸњЩИь–Э›щиЎmZЕф“?6ЖО††охЃЁCёmPПюн9uъ цЯЇeГfДhо”БcF*У–M›hоД 6dЬшЯPЋUhu:nнИIЇэљ~ђdRSS

Дkгšў§њђшб#dr9:НžХ вЁ]vјћгK’Фк5ЋщзЇ4 MЋœ9s†Q#GвОMkєэ‹FЃ1І ЅgюДkлкxLDGGглЏ'экЖсУ§IJJ`ќWуhгВ%={tcЯюнhЕZ~˜2…†ѕыбЌi&~ѓuЁК\ВhЭ›6СЗA}}ј!ЇNž4Ю›1}:Э›5ЅOЏ^мЙ}[œСAA„wNzf&Бё ”+_žFŒ lЙrФФ%‘™ѕV–W9ъѓЯYОz]њ|#+АЖВ&5-еЋVagW’њ љ]dЯœ9MppŸ}>š KЙtёQQL6 ™LFZF&r…•JЭcЧ`_Њцffœ?ŽЫСAŒ;–бŸЦЮ;(эP†ииX:wъШўёЊPпѕyєшeJ—FЅRБiуВГs јƒСРВЅKXЗn=––lкВ•5jљЯ€цффPПAF}і™q{š7oaќwvV6)Щ)Ј5j~љхg2t(Ы–-%91 …RСѕ7ИЦЩР@zћљ‘˜”Œc™вмОs›ЋW.ГvэZt:J…‚M7‘Рц-[йЕs'_O˜€•Е&&І?vŒТ`0’œLJJ2I‰‰Œ;–M›’›—‡ЕЕ5K—,смљГ:@_??R3в)SК4ЩЗnqхђъж­g,ПNЇ#1)‰ФЄDдjнКwЃCлvш ,-ЬљyЮЯ\Йr™ѕ7бизƒdРккšШˆŽ @­R‹$IьнГ›ž~~Ц ?ў№zIТЎ„IЩЩєэн k+k,­, Йqƒ&ОО\ "єю]КvэŒ\&ЧдФ”гІsѓц-–,]Jѓ&Q*MАДВ"*2‚гЇ№їїчt` іііФХЧВrХrZЕj…џіэш :”Ъ\–/_^o`цьйЬœ> `gWЙ\ЮБЧКx‘;їю1ю‹БlнВ•2eЪK—ЮиЛџUЋVg3AAс“›KєЃXьJ–ЄQу&\ЛtЦMšpјQ11x)нАДДxЛQ€’Ѕ3+XЙj-[Дрјё„мИIХ ^lиДШo•{В{ЋL&3f$INхЪБcз..œ;Ч”)S?nѓ,@.Я_юX@‡Цгн“ЇOgй’%žф—9s(]К4їюнЃaУ†ќ:o>’$сююЮ§ћ173cс’%8::RЃ†7iЉixUЌ` BюоЙƒVЇЧййљйAЖ5 /–"RЄ IDAT&;'›/Пј’%‹3h№`6oйJјУЄЅЇ3mъTbуb  B† k+ІOŸA•jUёєєЂGO?"#УЩЬШфлo'rэЪBBЎ1эЧЉ88”bР‡s&§ћѕ%*"’ЃG˜ѓѓ$НФРaƒЉV­уПЧсƒиЖu j­ŽšЕ|˜З`ЙЙ9”*хРЬ™3)ушШќљ pї№РмЬ +kkvэйCєЃGФХХ1kњtЖoлJOПžlиИ‘Вe;і Ъ;;ёŸс#+ќўћяь?pwwІЯ˜ЩђхЫўh(H зщЙsч6ссци–АЃoП~x=€Щd2ЊTЉ‚ГГ sчЭ+ђМЇB™'&&>Ї|2Ъ”)CВо˜*• zвггYЙ|9›ЗlF­V$$у€>2и—*…Їg~™fNŸЦЉSЇашtH …œ!7ЩHOЧЎ„_Œ€НН=ЧРЦЦooo Пћ­VЇgџОНьпПIЪя~іЬ™ќѕ!УССЁHњ‡Rx{{c0 Л‡V­aгІ lкД™L†о Чвв’Š*r18П=hкЌ?ߚ՘‡ГГГБ<Х)]К4Еjљ`ni\.ЧббWBУю‘œ’JTd*ЕŠе+W€ Щ”.]OwЮ;Kї.]hзЁ?LJїnнXДh1У‡LЏŠlк’?Је„ёуЙ}ћ6ƒЕV‹R.чж­[Є&'улЈФ!љ; НKbb}ўё#I еj‹tяAA„ЗYГ–­АДДтaшmДZ-Z†˜№tѓы…*7‡№АЗыїwЭ011с›‰љfтDКuюЬљ‹8uђ$ ђђђ^ИќУ+фЈU*,ž%JЁcЂ4СЮЮwїќж8I’hпЁ=7lР`аyйЋЃcYД:rљузШH’T$}ПN6nиHшна–O.—“‘‘Ž\.gыцMЬ_ИъUЋаЄi3‘_|0;uЪЖћћѓAНzдЉѓ>ћію%//$РЬмМpPom^2PЊ”ƒqšVЋСЦЪ //Jи–@ЏзбЖm[ІM§с™eЖ+i‡A’(aWвИ kkkМ<=я}577ЧЗQ#кЕoЯДЉSYПn-kжЌEЇгSКti H/еЬЏеj##!!€ЌЌ,d’„^Ћ%77k+kМММ0ЗА0ляз­ЫёпOђУ”)ь№пЮ’Х‹аiЕLŸ9gW–,^Фх+—iнВ%епЋЮЉР@š4mBЕЊеиНs'*Е MMPЉTEї›Lމ‰;;;<<<ŒЧB›ЖmФйLAAxgФGG"IъЇЎyѓrs Н$Io]™-ЂoЊkюosч’‘™Iя‘‘‘Сƒї135ЅAУ†ьоЕН™)“'}‡Ѕ…E‘ RЋе;z”Y3g–žAѕъеАЗЗ7ЮoмИ Ѕ$ююю4kоœ№ˆњјŒєtfЭšЭТ… ащuшѕz<<=115%3+‹€#Gаh4јљљёйЈџрццЮŒYГŒyїщзŸяЇL!:цŸŽNЫ–­ШЩЩсмйГ|3qт3З7=#ZЕ•5Э[ДррОНЯL›˜œ”)]†жmкАuK~—хїjдРвЪŠŒЌLfЯœI­ZЕˆХмм3SSТТBйПo/™™™Дjг†Еkж=zі@’@ЉTPЪСсЙћХжж™LЦ•Ы—йНkƒDC__Ž Рггƒў§ћ“››‹}ЉRXXX0яЗЙдђЉ…ЉЙЋW­ццЭxПWužŠѓgЯ’“CйВeiоВх+2™ŒїыехьйѓxH>8ЬЬLœœœ011aсќљдoаSSSжЎ]CHШuVЏZ‰ЅЅ%?L§‘џћf9йй<ŠŽЦТТЇђNДhеŠжЃP(hоЂцццм Ѕ_ŸоЈ5Z4Z5 K5iŒƒC)d€›Ћ+-[ЗцСƒ 4XœЭAA„w†ъ9{Њ—hјћ[бQŸNЎюЭEШћіэу^h(fцц$ƒV­ZбЂeKО™ј-уЧgеЊUШe2дZ5Ж%lББЕAЁPŸШЧŒJ•‡ƒ})vьиЩ§ЩdXYYQУл›ЩпџРфяОeуІlлЖЙ\†Л›_ŒћŠ7npє_~ё%Hz<<Мџпџ2њѓЯ˜ќнD H>ФеkзИyѓC‡ ЃRхЪЦВ_НFЭїоcїю]>xI’ає(фr$I2ŽN љ-iƒФ СCйНs‚.1lШ`дj5ц˜››Ѓзыбы Цe&|§ Ї9rєЇQЋеикк`nfЦЎн{шдБПўі+fІf˜(,[Й7W7  ТЪЪŠCGŽpуЦ n„„№ѕ„  lmmщщз ƒС€с‰ѕ=i№!Ќ^ЕŠƒ‡pќј1lmm<}–іmлpљЪUn‹^ЏЃlйВЬћm2@o0 T(љђЫqx{{sєи1жЎ_‡ЩІM”q,CахЋЦu †B7d`ь* бhўш!ЫКѕiPџ._ОҘЯ?CЇзуццЦ_ŽcюЏП —) ”J%Ÿ~:’Џ'L ;; ЅRVЋЃKЗn ћшc>ьп]Лvr№рT*5%K–Рдд„s/бБ][Ў]НŠ\Ё@.WRЎ|yЊV­ЦSЇёэџ}УІЭ›ёїї™ WW:wщ*Юh‚ ‚ ‚№Іб7Н‚­лЖБ{ї.Ў\Й‚­-;uЂy‹ќ‘g{єь‰™Й9ЯŸ'//ЊеЊб­{wьээYИh1.œ'+3 F}ў9 ёёмПЕZmlёыгЇNхЫs4рЙЙyјјдЂcЇNЌZГ†ызsыж-J—)MП~§)[ЎjšыWЏQІL†}ќ1іяЧУгГP `iiЩН‡YВxЗnнТТмœšЕ|шлЏWЎ\&)1 Џ XГn:'''ŽŸ<ЩЪх+HHLЄdЩ’xзЌ‰oЃFlнОлЗoGvvv&риqжЌ\IZz:ЅЫ”цƒњ ŒЯs:t˜ ызЃQЋЉщS‹fЭ›sіТfLџ‘œькДm‡ЋЋGŽВnэюоН‹ЅЅ%~НzчwіпСƒћїёЉ]ЛШ~БЖЖ!№ЬY~ž=ЕZMЯ^Н(ioЯ… `–/[ЦУАЗЗЇOП~ИКК2ѕЧ ЦОЄ=нКwЇFС3ЁЛїьaѕъU˜˜˜0ш‰–Ф’%KВ|х*”JVVVєщлЌЌ,:vъ Рђ•ЋиГ{цw ПrƒЅ‹‰ƒƒ§ћ \љђdgeqуЦ Jк—ЄGO?ЊV­ŠcйВјћoGЁPа AC:uюŒL&cџƒЌ_ЗŽ>"AAоIB20žнИ(—ЫЩхШŸzёя$лўP#хъ$ВєаХьб‘сш о{љ,:Ž№ˆzФе‹чž™.)9‰Ю=ћ`bbђ—Ж~НїIINAЇзГbх*ZЖj%Ž<сЙєz=U*x!Щф˜™™’••M [і<ˆЛЛ‡Ј AAсЁеjйЗc+ЅJчЁzс‘мЛŸœм\d2йЄќq:---Љ\Љ2.хЫ#“ЫŸ™иВ~ юю(•ЯoГT*•8ЙЙГOэ‚,•2,х`!s%˜Щe˜)d(ф`&Ѕ\†R (фOЕˆJHomЅK’ФШ‘Ѓ8}:Ё}„Џo#q$ /ЄP(XКb%;ќ§ЩЩЭсНїj0tша>C+‚ ‚ o3ƒ$Х­лЗбы ˜(•ОЩ?lЊђђИuыr”/яєзЕŒОFјЈ|W*Z&“1xшP*Ž:с•Дhй’Џ8ˆ’ ‚ ‚ МЭф2backƒ““н{ѕСЦк†ќ‘YGŠYYYьоЙФИ8bутpvr~+ЪЏЛPAAснb0аыѕшt::uщŽVЅ":%Љаk* =Vж6tши…K"“+0 EZLџ–@ZьBAAA„w—ЙЙ9YY™ щ‰A"+3 ‹ЗЎЬЂETAAсІбЈ‘Є‚з6JЛцў1MЃQПЈ$vЄ ‚ ‚ ТЛBЏз! qшhС4Н^їЂ‚ ‚ ‚ Т;хїˆ>9 юѓо-*QAAAсЕќб WТPdклH Vє—юќЧ:_DЏџѓхвы_-Нс5~[:8fџ †7ћ;јГЧ˜С і ‚ џЫk"ƒщ‰Ягў•ш§ћрс‘‰Їg†ёут’ХЅKњПmЃзЎегЎ]Їž^8jй2…>J.vЙ%Kђ№єLЦУ#‚jе"1"?нВej||"ё№ˆЂiг(ттђЗ-- |}SЈV-oя(||’љёЧМbѓ~јPЂvэTЮž}нН+ст’UЈоюоЭŸЉУЧ'wї(ZДˆE­–ŠtХmЫ;:|}cЉ];’J•hг&†Йs5Цљ'NЈЉ_?МНЌ*Rж•+гЉX1ƒјјЂWџН{'тхMЭšБ$'чзCj*ДkGнКдЌMЃF1|§uNЁхNœШЃ\Йt\]3&Э8}фШt<<2 ?]ЛІЂVУШ‘ЉИК&рш˜ТЈQёХжkpp&eЫцrхŠўЉѕщЉ[7…ђџVЉ џ$о? ŸHЊUKцЫ/3Q=Бљ.hЈR%•вЅГёєLЂyѓ$Жl)ў8>yRТЯ/•ъеSyј22 eЫdjдˆЁV­(jжLfђфмb—ML„КuS8|јё~9|XGНz№№ˆ nн(nоЬр<%|}S еЛ{&“&eЪSЃ‘xџ§dўяџ OЯЩЩ_зФ‰ЉЯМ1аИq*+Vф™}”NЅJЉhИwЏшo§Вшѕ0dH^^QXYхбПrЁ=zЄ—ё№Шр“Oџ0Пћ.%ВББЩс‹/R н„щб#gчxмм’йЙ3xЙКоМ9›ZЕтqqIХе5•Ў]9~МшёмЉS<^^‘дЋ‡N—?ПИэtuЭ2юЏУ‡sЈX1gчxКvMЉ ‚ џ’d(јHO| omЋшDwя†ЈЈУЄЄФ””MRR6ЩЩšП-mг&‚QЃЖsёbЁЁїxоФ‰yœ>Н…эляАsgс‹в)SЂ;і™™ЁшѕЦІMЬš'ž$11аsхЪQЊVЭЄію…+WюœNJJБќ№УfММЂаjч?i’šzѕЂЙzu!ыз?Ў—-[ДФЦю$.N"!AGRмО PЏ^ЩЩЫ•мМЙ‘Ъ•Ѓ •їYлђгO:Ю;@lЌ†Œ ССс|їнЏќіл#њѕS‘‰$ЩHI9AЛvзЙxёqО))№йg&мПџ;j†}РГQЋ$%RНњCвв`з.8yђ6‘‘ЉЄЄфЧмЙгщлї>шщбу62й t: Ы—/cоМXжЏЗ !a#‰‰ЙЦучђeшп?ƒЕk “х “eБdЩi *\ZZЗ%!a›6IwŠ`ܘzїОУэлGиЗ/?mh(ьлЇхсУ;$&f“СќљЛqtL$&&?РјёG ЁЁ›ЩтШЪЪрЪ•[ rЁ>uЌDвЙѓТ WЧŽС… ‘ФЧ?$99ЈЈІOп‚‹Ы#ђђяŸщгЕTЏўˆррŸYГ&џІФѕы0|x0‘‘HёћЪхФ‰ТП/;;5—/cѕъТ?љaУ2Й|љ,H%(Ј№oeСЮЮёœ9ѓ=ЋWыžњ]'QНz[Жмсб#9:юм„‰‰5ФЧыˆŒœУБcZ,аГkWqqик&А}ћBzєˆ1SgЯІšFB‚ŽФD=чЮхЏчЋЏљљчCXYeac“ЦЂE;?>€F"9~|: †(† ЙРЎ]ъ—ЊыI“ мОН•*ƒЬЬ\ŽПL—.зљёЧ(у6vшpSЇ~A­VЙwїђђ`чЮтЮijNŸжВ{З†оН/——†™™ŽуЧ—г A”јŸQA„7Ю`Š}}ЫлњœшџЈkЎ)UЊИpњДЇO;qў|)ўѓSЖoWбІM,Еj=ЂC‡т Е>ќ0Ÿ(кЗO 66Пт4шз/ƒš5ЉS'Š.]йЗOKЋV1дЊУШ‘[PцЭKaћіє"Ѕhз.РРKјјДч№aoBBJQЕъуљЛvХЃTіAЃ‘XЖьq лО}z~њ)GЧЊьнлА0w‚‚jБm›'&Рˆ ЈKxИеЋЗE­ОЬž=љЫЪdZJ”xsчjА{З75jє&.юМН1"—йГ/‘џNYЗBЇЅЉ03+Яєщv\П^Š›7mшб&MЪ )щнКu$<МddЬЂjеќжС TL„BЁ*#“хћ5kТчŸзРпПю4jд•*€хЫѕuЋУ`ЈoЌŸ3gЪrр€НqЛМНSQ(B17_Ф“я.ЮЬ„‹cP(&‘›ТтХ[/ж3aТ $)Sгњ…– авП"%KъYА >ССvќ№ƒ%]КРЕkv—&8И4juI{БtЉcЦ(№їјxK‚‚мqtьFpp.))љ-˜GЅJN\П^Šызэ9wЮ6lаSКt5юм)ЧеЋЮ88дdћv ЇOУнЛёxyuрСgцЬёAЇЫ`Щ’Д—ЊkЅв€RщУ7пxpђЄ3ызЗЅT)[ІOПРвЅy8ПџžAЕjŸэDЛv}‰‹ тлosŠ=Ї;чР”)VќђK*’”УтХеwЦУЃ‘‘б\И ўsAсЭzм"Zєѓ/DAЃ‘ ‘‘љЧЧУ!j.]:ERR&AAїю—W${і,#11›‹PЋV(11ЋWУЮ7‰‹ #!!'ІгЏпfЎ_O'>>™•+ч№еWqькп~ЪШ‘qЦV€ѓч!$ф2juoъе3сїпЕ”-ћxўš5ЂЃЃЉSGŽ™™чЯЋAжьйЉЈе5Ъ™† e˜›ƒЃ#Дo/+>,Љ^=„Њьl5ЖЖž|gЌBaРЭ š6…Ы—­qtУЃGљ-PгІY2lXzі,иЊГЄ$ …hАВ‚ ёTbЂЙЬ ;ДZkNŸЮyсЖ<Ю[NP„„h1`jЊФмœœРв6o–NСвВ:˜—›1CI‰Ешп_MLL 3gцw‡<~\OnnЕk[cn;[RЂ„'N<ŽЌеjAApс‚™,–МkV6ссAДn]“ТнТчЬQћЮЕикжcѓfsR bбAƒ T™‘#ЋŽ…–›81“ъе+УнЛ*0ngЅJPЅ ќђK& …?Э›{PЃFўМж­!(/ЮEЅ ЁLKJ•ЪяТЎзчЂR)‰7PЁB~љMMA.7CЅКРЏПjйГGZ}WW9•+ƒJхEZZ"ћіIјћЋаыЈ^нъЅъКрО!ііPЋtя.gк4wd2-3fфrр@.*UОО%Q( sч˜›+9x№ё;ИT*ЙБЮssСФЪ—W’—УЦ™„…AjЊkk{*Vџ9 ‚ ‚№ƒPƒd|.ƒdќHƒiHoaЋшџ$•ЩЂ ЛBџўЗшпџ-ZЄ‘””!˜•е‡ Њqюœ3ЛveБ†*UЦrљr5|}ћ“›Л—Сƒу ђQсььЭЅKоИК~RщСдЉейЖ­&ЅJuaл6]К@Ÿ>|іYI6|\†ыз $$Єafv–ЅKo0yђœœbЩ-xtl§њ8фr1Ђ$;ЫЩЮ>Хš5Y$$шАВВЧееєЙл9p`2юЅ~}кДyv:[[k4šЋмМ Аh‘%ffEг=zЄ”,YrWзTњіђ/ŠMMЫБbE4C†$Бo_*№™Ь№ТmЩw…РРЛєыw†щгЗ’™йџЧAY‡ |‰+WжRЃ†Эšх&ўўLLRКД#&X`mнsч’0 )I…$ecaan ж $I› ЩгHH8Oяоg;v7‰‰Q|ћ­ŽЌ,ppˆ@Ѕ*OЩ’Ѕм.Кр•j?ќp›ў§oбЇO$Ÿ|’UЈž† Ч`Hф›oЪА`šK—Тщке gчТuъсЁdо<ѓ—>vннэаjуИr%ЛиљUЊдРк:œ€HL”PЉ.Г}ћMцЬ9CнКˆŒд>3{{ђђBИu ьэaёbKlmŸ]žЏОЪ$(h?еЋ7eшPYСяBСА…!CB2$„>}bёї‡иX˜93›7ЮЊH^ЛwЧciщј1жT­jƒСрЯъељMЪVVљeyђfMў %ИrЅ<*еЎђџьнwXззРёяzQAХŠЈ * *JГMь]Бї{Ib/1&1šФо51**vН{‰%lЈDХADиђўЎЎДХ–ќђžЯѓИ3Г3wЮН3;gчЮн)SŽаЌй>vю|есйГд/2ђч/ЩфЩЏЖ мaмИх<{V‰еЋѓОHЌAЇЫЫхЫRЅЪ%rцМЯЭ›Љ1;sЦ­ж—ёуw3dHрЧ–-Ш›VЌаrџ~$­Z`їюi.숉эLŠuzŠWbgW„јx=<’БЗЗ2Дg ‹œ$'ЇМˆљu.]:bˆy­ZИt –-ЫMŽMXЗnўўgxђфызЦбQ> …Bёс<~єKkkєњзКшъєшѕ`iiЭУїџ}‰шŒiг^KЅ?P†ЎЯGО|^ЙфBЧŽ*rОvѓ/~(^ія†ЕЕ]КЄ^ЁЦЮЎ'NXFХ47зQ ИК*аhюao~~ TцEЉ|ТЃG0o^~F6О‚Оv- юŸ}цЫš5)_О.qqsщжэ!.ЄоЉIIЉШО}ЯyњTMEІNЕyqёmVЋцбЃŒїёћяoБyѓ@<<ЎaУ†XbbД@>МН­Гм—T%qs+JлЖ^4iRƒќљџЄnнXCзшА0[њіѕЁL™Юœ<Й€!CR3Т~ј›фdkrчЖbъд$,,ˆ‹;ЧмЙ:єz%`ЭƒŠЩ#ЄЄи№єЉ5:=ŽŽ~ДhсMhh єфЛя.qќИ†'Oђ’˜hgшСs 'ъ?.deеŸТЙ˜‹О}-_KcЙ{w)нЛ7 C‡д/ ОјBIJJьэ­_<пšBTit2ХЭ› Р++UКѓ>„чЯЭ‰wссCP*OсщщЯђххЈ^Н* ХF5К“I[АDЉЬMжeYЙђKџŽоh IDAT—#gЮЦ>ьќкёЅТвВuъИQЇŽM›Іvюкѕ1II)[жŽ™3Ешѕ ž?WrќИŽ;скЕ‡@a/NТкк Екёу“3-УŸBО|‡(XАaa~ДkW+ЋdКtЙgјkю\ ЯŸ ўТ8Нv358&NЬMлЖ prкK`р5ттр“O`йВ"ЬBѕъ.ЈT;ЈZѕЏ‰ї=єњ 4nьEЮœ%HLœMЗnЉн*†M GŽт4iтŒMcnоѓц5ќхqЪGВ&…}{ї VЋQЋU(•яя^ЄўHuЏ>}˜їл"ъЗjћУdNЁB ЖouЋчЏПв.ЅгЉаjSИљbЬ™лЗAЋеёќЙ•бГ“Y е:˜˜к-0.Ў ffI/жCš.‘ЅJЉ_œœžѓйgжЄЄXвВЅ77n<#<<‘gЯ&ЂV7#,ЬђEХžЧж6‚•+ЛЈ#<ќ,ЛwWЁGДWБп}ЯиБ(QтNœ(˜i$Ž ‹ЫXXф0z>5=yђ@ыжJьэ]швх ЁM›|ёEš5Kэ†йМљM,,JRЏžE–ћ’Ъ3gІюKѕъ•йЛw#ЋWЇW/(]ZХЯ?Ћ8yв…Я> bэк$zї†{їЎЁVчШ‘М9 EЋ]ТЪ•ehкДццOЙ{7 АсЏП@ЋН‚—WРPaoѓцЅЖ1clљњыЌ^]‚ќљŸ’˜Glly €јx іі B™ƒŸ~В!8и8>~~ЗјыЏ єъе“яПOНК?ий]#1ёГfй ЧŽљ1yr>VdЋхž=›LŽZ­‰‰I{W4<\ƒVЛ7ЗкTЊdУѓчј™ЅPЗ.јјЈтёуфt‘ЋWAЃЙEюм9(U*ѓr,Yђœ^НŽ’+зW\Нš?Э|­жТшЎЖFЇOkQ*яАc‡P г#9ЙЭš’ТгЇs13ыHX˜љ‹vr•ъ‘‘ѕвФњ%__ИsЇ" мІAhмXAётХxі,–˜˜т”)aacnЎЃo_л7N–а­›šnн ЉЭСƒ{иМйŽ1є hгЦWзJ$&ЦА|Й+;v\'99”Х‹SїЭеЕ/[Жh?.]:H‰ XАРŽcЧœЈ];Ž‘#“љљчЗ‹ѕЪ•‰$$ьЁR%||XГцonо| фрж-=ЯŸ_#(ШѕХвfИИшYЕЪіЕѓLžќ OІOwТпЊWџœШШ?XЕЪ•–-хS!„яBЉФLmFЮœЙxќ№kV­BЁP PЄЮ{™ZMžu*‰п~{ЬнЛщн;ˆВeЁjеЬїЅlйд8ЦФЈ˜?._NтђхЋ8:куъ ƒ=УУУ’\ЙL™ђœЄЄэфЭлƒ9s’Йuы*^^}шз/ѕтћяПaдЈ);–Ь˜1 ”kзЎцРЌYIJВЄV­WЯ:ЦЧЋ ƒЛw5,]zKЫ‡xzкђј1lмx‰Бc=ёѕЕтљѓЃ<}Z52ŽЯМyЮžЄhбVфЩ“ƒ  W.шд /v'.u`U–-гВmл\>§4ƒ)Mh? цЭƒ#GRXО\CRвlJ–ьBhЈ‚ЅKS—9yRСјёzЂЃВ{їatКŠќјcnŠKK nмИСoПфђхіQКt ЬЬRп›”Єfю\8~<‰Х‹u$'яЁAƒFTЈyЙFК‹Z&M 3qbъДњѕy-ёTёЭ7Џ^—)[З:rєh5 ѕ'GІNƒ……;vXуюЎХжv8ƒ9ўААтьоЦФ‰ёgмХеЫызЎХ0vlA T”t 3ГВ†gAOžЬ‰НН^^Џ’ў‹5,X % Р‚Ј(Иt)‰9,(PvьxЮбЃJЪ”1уьйєњ˜›УХРšЫhc“кbлЖЭlпЎF­Ж 9ЙЛw?!$$5гXНZI‹бЇЯS4=ЖЖЭXЛ6?ЧиѓрСzіЬфТбб’–-ы2yrоtŽ4šдcуєixј0‘'O.2yђѓmЬ’ ŠnKJŠ=‰‰Ћ=КРkћS‹­ща!ѕuTLœhЕЕž­[u(•WЩ‘У‰сУ_m1~ЎЪкЕЦIЈNWШшј]ПО оо~јa EЌЌђБk—#*DGƒЙљž<)`tЧШD6m:ƒ……&ЕZGџўeЉQ*THф?ўРвRСГg)XZzВzЕ#0jT~сrїюпЃ^“цŒoF—.Єјd§zАЕM}FьuГfi9q"77k†}5@аЯ?C‹ЉЃšЦЦТŠ№ХЉѓvюLHЅvmJО|JBBвŽŠ:{Ж†ШШ'*dХиБЉѓПћ.ѕІЋЋёВpсtы–њњњu˜9ѓББOЩ“Ч’Р@BCЬœ wяПЗ[7(P.„Ы—Sащ4,hIHˆ"н.ЙЩЩ0v, ––ЏіiуЦюоMЦЧЧŽСƒЭ^$!Аh‘ %eЪМ0“іЅC˜?_O\\ :K†QV##сїпŸrыVХ‹л2p 66А}{ъOЂ„†Џ7) Цƒ.]Rы%<\Ч–-)ZдšЏП~u{щRˆ‰IсщS >>цЋ(Pрѕ/+`Р€Ї<~œBчЮ9ЈT)ѕ 9r$Емэкoїю]˜9гxšƒєэ›~\GŒР№ЬщЫїЯŸŸя—Жo‡ЃG5<}š‚ЃЃ9~~**W~5џщS˜9SЯѕыЩилC‰цДmЋHгm|уFЫ–=СкZЭЗпкž“ ‡ѓч“бjЕфЯoAхЪJМНг?vFNmл/.ZК45Щ{]h(”, @LŒёМ2e aCуi‹AйВрц?ў˜+‡7Ы ЉЧйыЧ]ЋVезХ‹0n\UJu !„B!„ј˜$B!„BёqбгІБ$,L"!„B!„тЃPїъг‡—Яˆ !„B!„štЭB!„B!‰ЈB!„BID…B!„BID…B!„BH"*„B!„B˜žˆъбKD„B!„BdJoјЯ{HD…B!„BˆMQ!„B!„’ˆ !„B!„DєsётE\]œЙrљђ;Џы“ЊU˜6uЪ;ЏчоН{ИК8sєшiAйрыэХ’ААВю ыЇЈkсх~/\№х}}3]&6і&Ў.Юœ>}њЃ–mеЪ”єpЯrЙŸwЃwЯžвˆMЈ;SъвдИ‹Я1 „BˆџH"šЯуЧRЅ2юEн№*щIы–-иЛgдЪGє2ЉŽНљŸпзў}ћаЕsgЉєзvuЅaуЦ†зЫТУё*щ)Щkkš4k†ƒCЎt_П/еДkгФФФрътЬЙ?џќ лyђф Ў.Ю, џз—U!„ј'Љџ‰>~ќ˜&ђьй3ОјђKМ}Ъџф ыжЎЅcћv 6ŒЯЛїкџˆ””ЬЬЬў_ьЋŸ_ќќ*HЅП&Lœ”сыџm_ЏзЃеjQЋев@„B‘ЎфŽшияОуЏиXVЎZMгfЁИЛЛSЎ|yО§ў{Кvћœё?ќРЅKбОЦДix•є$rџў —9}њ4 ъеЅИ[ЊёћКui–iоЌ)cFm4mэš5Иu3šЖfѕj*т^д†ѕыёчйГiжuчЮњѕщЏЗЅJxаИaЂ"# ѓ5 пŽљПђw+By__:Жo—­И…6iТ7_2М[ДWg‡-2L=j$ЁMš˜\Ў7/+2сЇŸвЬЋR•1пŒ6М>qќ8­Z4ЧгН8e}МщжЅ зЏ_Яr’’’1lоЅJRЮЗ ЃG$%%Х0џњѕы|оЕ Ы—УЃXQ>ЉZ…_цЭEЇг–бjЕŒ;–В>о”єpЇgїЯyј№aІл

єјМНztgв„ TЌ€WIЯtпЗmыVjзЌAqЗ"”-уУаСƒHHˆ7ЬйНyѓІMT Ё”g ъжЎХ‰уЧГlsПЮ›Gэš5(UТƒВ>оtъаžЋWЎ-Г,<œj!Uq/ъ†OщR4iдаh™ИИ8ОшпВe|p/ъFHхJ†іѓ6]sг“й1•QнdжЎ“““љqќ8§+т^дъ!!,ZИНўе8ыЕ§ЌтёІ—ѕГfѕjBЊTІDёb†ЖjЪЙтф‰ДmеŠRž%(щсN§:Е}ШjYЕлЗoSЕR0ЕkжРеХ9нюђzНžЪ•?ю‡tЇџэЗях30Гc;ГВоО}›юнКRжЧїЂn0iТ„ ЗcЪчŽ)ѕѓЖч{!„т_•ˆj46Ќџ&ЭšQай9ЭќО§ћЁP(XЛfMšyZ­–ЁƒЖh!+WЏ!ИRЅtЗёфЩкЗi“S>6mнЦ”iгљeю\юмОэђ9|˜/єЇqгІьиН‡={1bи0ЃeтiжИ1:žEK–Аiы6jеЎM‡vm IыЏПЬcѓІML1ƒШƒ‡[В„ррJй*K`pQ"‰ƒЃугЂzqcJЙT*… F­6CЁPаЄYSVЏ^etБњЧЩ“\Й|™fЭB8sц4­Z4' 0›ЗАlх*lmmhеЂ9OŸ>ЭtfLŸFС‚YЙf-пŒУВ№p–,^ќ*–ёёј2СBvюйCПў˜ƒ]{їђ§уАБЕ}oчХЌŽЉŒъ&ГvнЏOo"іэуЧŸ~fзоН|5h“'Ndс‚Fл~ГэgŒђчЯЯо§ЉЧРц­лˆЙЫБ“'гьƒBЁ uлЖЌ\ОFc˜~№РbbbhеІЭ;зuVЧvfe6d0OžВtљ "Ђ0eк4 ЛКfќ%LŸ;ІФі]ЮїB!ФП*НuыЯž=ЃD‰щЮЗЕЕЃ@‚iО}O|–H—N9qќ8kзo „gЦЯБ-_ŽVЋeв”)ИЛЛSЦз— “'“˜˜˜эђЮ™=‹ р`њј‚Т… SЃfM>ябнh™ЫW гы˜2m^^оИККвЕлчT­ТвЅKˆНKЁB…(_о'''>ܘ6-лыONNц‡ёу)ячGбbХїуфШ™“… ~KwySъ.н6RЉ’!щ<юЯ““щаБ#Q‘Љѕyр@VVVј–-›э}АЗЯС„I“ёііІBХŠtяй“§™єJxЩЭЭо}њbaaНН=экw0zпЬгёѓЋРасУ)ZЌUЊVeьуиБc;.\0њkьуppp@­VгНg/тттИxёBІляіyw*WЉBЁB…(UК4SІMчЮл?vьХБyK++B>љ„|љђсVД(7ЦѕХўђeсFЏ 4ўвAЃб№ЫМЙlпЖИИ8ž'=')) ;ћд:Пsћ6 ё†‹дWuтЯж-[оК}yОёХFtt4JЅП ЦЯOњћАэЎИІАДДЄД—зЋO­ІL™2D_ȘюђoSwAAСќќуФХХIХŠЉR5„_цІvoŽŠŒФЏB…ЗzАdЉ’FЯќ(XЇ <{і,гv\ДX1ЃзŽŽŽFя‹Оx‘њ ІЉЯдуя‚сK+жpџо§д/Q7тф‰†љЧNўAЎ\Й8sц4sfЭ&њт=z„^Ÿš4Н ЋJе*ИИИф_‘ЪUЊр@šЕШ›7/gNŸІ„Ї'Йsчљ`чЗw9ІвsъдЉд} J{вуЙЭ7л~VёШˆ­­]š^.Іьз™гЇiвЌ …тb“Uћ0UŽ9ЈWПK—,ІNнК<|№€m[З0eкєїVзosltюк•У†В{ї.ƒЈ\Ѕ AССЦ.ЋЯSbћОлІBё%ЂљѓчЧЪЪЪшNЧытууЙuы/ъ5Јo4§гO?cYјRЂ"#ЉYЋV–л177ЯršR™і†АNЋMч}™ЎGЋеQЦз—uы7dœ€yyy№ћ#"8xрcПџžё?Œc§ЦFO™V–ZME"їячіэ[јbnnN@@‘‘ћЙrљ +V4\hšRЎє4mЪˆaCљюћіюнKbbЂбн­VKž=MTdmГљlђKffцiъ0z~7=Jeњ]:Гz_vз3eъ4’’’ гэээ‰‹‹Ѓehs6jФ„Щ“Щэ˜Е™U+W"%9Х@mкВ•ЃGŽЙ?Ы—-cьwпБ`Q˜!!ўаох˜J7&Z-JЅ’Гч/`mm­ЖџЖёHяzћeъ:оW;hлО= ъж!&&†m[З3gN>ЋQу=еѕлл-ZЖ$ф“OиЛg7‡L}žопŸ_[юЙ(ЋЯSbћОлІBaјьўи433ЃnНњЌ^Й’ПbcгЬŸ>u*zНž†MoпЁп~џ=}zѕ4tгЬˆЛ‡;б/%їяпKѓ<žЃcю4ƒм\О|)ЭКоBџЭgєМ}М9їчŸщюЯыlllЈYЋп|ћ-;wэ&.ю{їюЭVќ‚‚‚‰ŠŠ$j$С/ž ЊT‰ЈШ(ЂЂ"žџ1Е\oЊ]ЇJ•Š7АzеJЊUЏNЎ\ЙŒ’];w=CѕОDю Дy jдЌI‘"EШ“'7^#_ўќиккeY'%RZ­ievwwGЇгqєˆёoХ:tаЈ[yjz”i‚д„Юž9cx­бhју?(žСяОmнЉT*ќ§иЛgG&ЈR%”J%„/]ТЭ›72}6йЬЬьН$вйсюс‘fрІУ‡͘WТфѕtvІhБb†?•JХЩ'HL|Ъш1c№ђђ&$%=уiBBкИ№е AlмМЯ’%YНjUъХМЗ7ЮŸчў§{,ІSеMzэкЫЧNЧЎ;оЊ<™Ху}я——З7‘FЯЅgwйљLcBћіііЦлл›Ѕ‹ГlщRšЗhљоF6хиЮЌЌNNN4oб’ISІ2{ю\vяк•щј™}ю˜лyОB!‰шG7tјpђ(@hГІЌ^Й’K—Ђ9qќ8ЃFŒ`юœй :wїДшЭ[ДdТЄI ќђ‹L4ныE IDATЃ-Дy ™:y2:ŽЄЄ$F‘цуЪU*Г{з.Ў]Н Р‘#‡гЌЗлчнйВy“сїMoпКХдЩЦ?ЭаЂe+ђхЫGЇэйГ{77oорд0}кT6nXРЌ™3йАўwЎ^ЙТэлЗљ}н:ДZ-Хн‹Љп:/\№[–#mUЊФ­ПўтрС†gAƒ‚ƒ8x Š[§E`ppЖЪ•+++ъдЉЫoПўJФО}4 mn4Пп€/ˆ‰‰ЁgїюœœnЗБ7v-ЬљѓчЙ|щ>4 V“žв^^TЉZ•!ƒЙ?W._fЬ7Ѓ9}ъ={ї6jCЫ—…“VЋeбТF ЇсТвмœЁƒsќи1Ў^ЙТAƒxќшэ;tLwћo[w/лШ–Э›АЖЖСУУуE fеЪ•888žѕM7F… “˜˜Шў§<|№ MТі!єън‡ЃG0nьXЎ^ЙBФО} :„O?Ћ‘сГфІruuEЏзГяХ…їЃG:x0ЊзойКe ПЭŸЯљsчˆ‹‹cџўbЎ]3Ф.Дy r98аЙCЂ"#ЙyѓЂЂВќB,;L9І2Њ›єкЕ——75kеbф№с,_ЮЕkзИpў<Ы—…3yтФLЫ’U<ої~ѕщлsчЮёх€ўœ9sšызЏГyг&Ž9ќ^Я7yœАДДdЯю]мПЧgК|ліэљmўЏ\П~V­SGСоДq#M7">>>ЫэнОu‹sўiєwћіm“ŽэŒЪ:bи0"іэ#6і&111lоД‰\Йr‘'ƒnгY}ю˜[S–‰‰‰ЁiуF:xPЎЊ„BМe"Њџ8uppрї Љ_П>гЇMЅvДkг†Ы—/1СТLCД~ƒ†Ь˜5‹Q#†3џз_г]&GŽ,ZМ„Н{vуыэEъе(WЎ|šб7iJѓ- mк„ђООќ:oнпјЙŠŠўўŒџё'FNy__:uьРч=Œ—БГГcѕКпё)уЫ ЏО$Єre>як…гЇNЖimmХьYГЈWЗеЊVaщв%L>//o ѕїћО9’Ј,ё№№Р1wn)V<ѕbЂxqwЩ;б…Л)хЪHГцЁ\Иp\ЙrQЅjUЃyоооЌZЛŽ””dкЕiMѕќ &…\oёюыFўkkk‚єЏШЦ ы?€о}њRЛNеЏ‡П_yІM™BЯ^НВ\wЋжmpwwЇa§њ”ѕёfеŠ™.?uњ *њаЇWOj~і)GfоЏѓ u0lФђфЩKp@СмИ~ƒщ bcoŸƒ>§њђе—_№YѕjќљчY~[И''ЇtЗ§.u„FЃ!шЕчƒƒ+Ёбh Ъ№y2€ђ~~Дяа‘ў}ћRЮЗ ƒ њрчпВe™=wћіэЅЦЇещпЗ•+Wfв”ЩяМюžž|?іО9Пђ„6iB“ІЭШ•ЫсЕКБgы–ЭДnй‚JŒ:”v:аБsgУќUЋзPиЕНztЇZеЊ 6є­?Ыˆ)ЧTFu“QЛž6c&;wfжŒ|њI-›‡Вzе*Š/–iYВŠЧћо/Ÿ2e_Б‚[ЗnкЄ Еk|ЦœY3Q*”яѕ|ЃVЋљіћяYЙ|ў~~T Щtљzѕ`eeEе ,@м;;zдш'Ї22eђ$jзЌaє7mъ“ŽэŒЪЊеjјzфЊU­JƒКuˆ§‹А%K3М[›ечŽ)Б5e™ФЇO9vєh–?Ѓ%„тПGџ Єbхеd}ЂFOМъšнрЏзГьОЈбhИChыvœ<| УхюнПGН&ЭпЫЄџз8~œцЭšВ'"gg ˆBќƒюнЛG@?цЬћ…jеЋK@„Bќ+ЄЄЄАaѕrђфЮƒJЅтшБЃ899aІRЃPЄіT(FНП^вjЕмЙ{Џв^>ŠU. ˜ea (тъšхc)*Еš.…и”R;XЋX+СJ–jАP*АP)P)СB jЅЕT P)џ‡FЭ§ЏлП?‚V­лH*„џ№ќЃG7і{\]‹№IЕj!„тDє_Ђ_џ!„ј‡mнВ™ОН{уъъЪфiг3эЪ.„BID…BˆwVЏ~ъеo B!>0Ѕ„@!„B!„$ЂB!„B!$B!„B!$B!„B!‰ЈB!„B‘ѕ§Лql"ЊгщаjuhбJ4„B!„B˜Hџі‰шщгЇ1ПzГрц-БB!„BёAЉ›ЗhСsН’g 5№ЗDD!„B!Ф‡MDеj5ZН*‰†B!„BˆŸˆ*•J”z% НBЂ!„B!„тУ'Ђ*•Ѕ.5}‡gM…B!„Bќ?ђ.щЃZЁPЂP(P wD…B!„B|xj…B!‰ЈB!„BˆFљ2B!„B!>Z" H2*„B!„тЃxб5—зКцЪˆEB!„B!>%ШнP!„B!„1]Нj%зЎ^•dT!„B!ФЧID=š7kŠЏЗЅJxа nіюйcђњп”еў_ИpЖ­[ущ^œ’юthз–+—/ц_МxWg6nи@hг&”ієЄR` сK—–ЉФ;wѓЭhC™Ў\ОŒVЋeШ T ТЃXQ§+2|иPž>о‹о={fZoІДA_o/ІLžDЏн)уUšаІMВн6_:yтm[ЕЂ”g JzИSПNmЃЎžлЖnЅvЭw+Bй2> <ˆ„„ј4ЧоОН{љє“O№(V”Ц Ctt4ЁM›рщ^œЯЊ}bДо—uЛ{з.Z6ЅDёbT­Ью]Лxђф њѕЅ”g *јЖhЁQ™џўћo~љ%Оо^w+BнкЕиЕsЇб2Оо^ܘ6ў}ћрыэ•юёѕКukзRЂxБ4mdнкЕИuубЃGщОяаСƒИК8Їy_•р fݘaђy#ЋsРšеЋЉˆ{Q7жЏЧŸgЯfй>пьšћЖЧдѕызљМk*–/‡GБЂ|RЕ ПЬ›‹NЇЫжё’е9  ЧчншеЃ;“&L  bМJzвЉC{тттŒ–[Б|•_ХcпоНiК*ЛК8Г}лж4чхvmZgЋL†oЧ|ƒЏЗ%=мщй§s-\@QзТйњ,B!$5BЁРЩЩ‰#‡ѓјёу —;sц4­Z4' 0›ЗАlх*lmmhеЂ9OŸ>5,їјё#жџОŽЋWsъЬYќќќшёy7’““ЩŸ??{їGАyы6bnЦrьфЩїЖ~€јјxš6jФхK—˜6}ЛіюхћЦackkXGП>Н‰иЗњ™]{їђе ALž8‘… pъд)†Bп~§‰ˆ:РкпзгІm;”*UКБџгO4lдˆO?ЋAЬЭXbnЦвКm[УќгЇQА`AVЎYЫ7cЦА,<œ%‹ц?yђ„6mлВrѕ6lкLHЕjtщд‘шшh“жџКЌі?!!žж-[ PРЊ5kYОjЩЩЩДnй‚ФФDЃuMŸ6•яЦўР™sч2lУ† цТљѓь‹Œ"_О|ŒњzДЁLE‹CЏз“ЫСISІВkя^~њyЧŽaјаЁYЖХЬЖ—б—(oЛ­ьШЊm6jм˜q?ў„!гgЮЬДоВjƒ/Э™5‹кuъrьф,^В4лmѓe{mк„мyrО|[Жя {Я^†ЄїФёуtяж•J•*Гuћ&MžBDDњі{Ѓm=aњдЉ|7v,+VЏсљѓчєщй“_  KзЎЌ]ПтююєюбУp<Оєэ˜ohнІ-ПoмDЙђхщгЛНzєРЇŒ/k_Oлvэ5b„Q}їэн‹У‡2uЦ ЖlлN…ŠщкЙgЮїд˜3{ѕ4фјЇXОb%ПЏ[gt|НЎv:XлиАzе*ЃщK/Іv:фЪѕінХГЊSЮqGцЫ§iмД);vяЁGЯ^Œ6ь­Ы”нc*!>џ€@ц/XШЮ={шз“'NbY ь›В:ЇНД}л6ЬЬЭиБŸЈC‡љћяПљzфУќQQ 8–­ZБsЯ^њіыЯшЏGНU,L)гдЩ“YЙ|9п§m;wRбпŸ‰?џќVŸ…B!ФGїŽнЊџ‰2O˜4™/єЇМoCЉLЭЇM™J­кЕщѓкХщO&RЎŒ{vяЂnНњ@ъ7Ъc‡ƒƒн{ітЗљѓЙxё^^о–с}­љВp<ИЯкѕП“;w\\ жyўм9ЖlоЬОШ( .l˜џWl,a‹вЁcGboоФвЪŠO>СооЗЂEп:ОUCBшбЋькЙ“§ћшаБ#uые3ZОџ€/8ХЦѕыљтЋЏВЕ­ЌіYx8IIILŸ9ЫАo3fЭ&АbV,_n(@п~§qwOНЫRЇn]~ўq<ћїGPТг3уЌV3xШЋDайй…бcОЅMЋ–Lš2Е:у&žнэНЫЖВУдЖi*SкрЋФЉ.uъжMн_[лЗj›гІLЦг㓉“Ї~ŸјхvfޘŽŸ_†@бbХћУ8кЗmУ… (QЂЯŸ?gТфЩ*”кžzѕюCЯюŸ3sі>ЋQ€AC†R%8(ЭёоЃgOC;>rЋW­ЂH‘"†}uww'lбBC}Ÿ=s†}{їВtйrƒ‚ѕѕhN?ЮŒiг˜=wžaн 5ц“jе(VМ85kе2:О^gnnNѓцЭYКx1;uрЪхЫ9r˜•kжМS;ЩЊnLiGsfЯ"(8˜ўО0дгнЛqŒ|Q7й•нcЊTщв”*]к№кХЅWЏ\aнкЕДjгЦфэšzNsssЃwŸОXXXаЎ}† b˜?oюЊ†„аГwo *Фƒїјх—йŽEVeвщtќњы/єэзЯpЬЕяа‘гЇNБnэкv>B!ў-дK—,ЁtЙŠ8)іб6ZоЯНћ#9їчŸœѕwюмam:k111†;88рршhxэјтпїянЯД яk§gNŸІ„ЇЇ! {гЉSЇ€д.uщ%6UЊVСХХ… џŠTЎRџ€jдЌEоМyп*О^о>FЏ ,hд]яюнЛЬš1#GŽ№рў}4-ёёOpvvЮіЖВкџш‹бxzz.”rхЪ…Л‡б/-[ЌxqЃзŽЙsgY›7m"|ЩnоМABТSt:-Z­–[Зn’˜єМЭіоv[йajл4•)m№%Я7†Зi›gNŸІIГf†$4m›ИH§ ІUєї1яU"š#GЃ˜цЫ—€в^^†iNNNщяоЏ˜™™QкЋДб2yœ я‹ŽŽFЉTтWСјЙGџЖНбГXqуsЅЃcюLCkнЖ-sfЯцшб#јљU`Щ’ХxxxМѓ3–Yе)э(њb4MC›НQo]ІьS†_цЭeћЖmФХХё<щ9IIIийлekЛІžгŠ{ГюyšРГgЯАВВтRє%ZДjiДLЙrхп*Y•щі­[єњ ЫiЕ(•JЮžП€ЕЕuКЫиккБiЫVŽ9Bфў§,_ЖŒБп}Ч‚Ea† єь0c€ tКWїЮ;uh­­-#G}MAч‚XZZёх€ў$'ЇќЃQЅTf;Ю;wь _Ÿо 1’ р`rфШСЅшhкДjIЪн5пu{яВ­ь0ЕmšЪ”6ј’ЅЅхm›йaffžцœ‘:н,ЭД7ыэЭA– EКыЫюГˆЉэF•NЛЩИoŠГГ UCBXКx1>>eXГjВИУІT*3h:“ыЦдvdnnёЦkѓv ;–M70zЬЗИ{x`kkЫв%‹ [И([л5ѕœіЎчѓ7лн›Чэл”щcŸ„Bˆ ЅoйВИrсжэ[џhA vрў§{xћјАkчN4Э;­їeRІyу"с}­пЫл› чЯЪfО7:Ž];wd~ЇRсРWƒБqѓхЮл&з)эШнУ=Эн\S+zŸЧThѓдЈY“"EА'OndsSЯiІ(ю^œуЧŽM;~ќX:ѕ“›‡šК|љRЖЪ”П@llmгЌџЭзяыГJ!„јз%ЂГgЭфЦ›$?Oўh­Uу3цЮ™ЭЈ(ЂЃЃйЛgН{єРЬЬŒjеЊаoРФФФаГ{wNž8СЭ›78t№ #† 3q5+yœАДДdЯю]мПЯ0@вћZhѓфrp s‡DEFrѓц DEКVyyySГV-FЮђeс\Лv чЯГ|Y8“'N`ы–-ќ6>чЯ#..ާћ#ˆЙv ŒwзТœ?žЫ—.ё№сCž?nRyэээqptdяž=шѕz4 ?Ž—&Ё2u§Yэ‹–-БДДЄOЏžќyі,gЮœІWюиллг,ДyіОЌp-ЬсC‡И}ћ6>DЋеRФЭKббќ ЄŽа;uђ”вn?жЖLi›… &11‘§ћ#xјрO2Ќ7Sк`FоІmіщлsчЮёх€ўœ9sšызЏГyг&ŽIM>{ѕюУбЃG7v,WЏ\!bп>† ТЇŸеx/Iпл(эхE•ЊU2h ‘ћїsхђeЦ|3šгЇNž|UЊVХЩЩ‰Бп}KНњ АГГЫЂ­ЛттRˆп~§NGbb"#‡ЫVн˜вŽК}о-›7FsН}ыS'МŸ:*тцЦЁC —mйМ™6dkІžгLбЕлчьнГ‡™гЇsуЦ vякХЬЃ+xuДr•Ъ,_NBBЉRЅRСg5jМењГк[[;–„/CЇггДq#š7mŠЙЙ9‹—†gйMєM цЮ;T­LYobЎ]Ѓu›Жд­WŸ†ѕыPБ#† Эі€KІњXл2Ѕm–їѓЃ}‡Žєял—rОeсrїюпЃ^“цižзBˆџoО9’ЧГaѓf ЦџЭ›6бЛgN§3Ы;йя%91‚'ŽГqѓ ОBˆ4RRRиАz9yrчAЅRqєиQœœœ0SЉQ(RП U(ЈвљЉ=­VЫЛwё*э•aОW. ˜ea (тъšх/BЈTjђ;;ГY[;XЋX+СJ–jАP*АP)P)СB jЅЕT P)A™’’ТНЛїЄV…тxђф GaХђetыўЙф_nЮьY\КЭнЛwйЕs'п};†Кѕъ$єњѕыЌZЙ‚›7o№Wl,‹УОt ­ZЗ‘ŠBёŸЇоНkчGэ–+„џŸ4Ќ_лЗnбИiSљЭЧџGfіЬ™$$$PА`A4h@ППГњО) ‡…ёѕЈQшДZ\‹сџиЛяјšю?ŽуЏ{Г' ADlБї^UЊTэ=лR{tEQZЕ7еіЇЈЊYЋf[ŠЂZEK‹šAЌDЌьфŽпИЭ•„!x?ќєž{юї~ч9чѓ=уŽ3&ЭїЯ‹ˆˆ<‘hцЬ>8{f&Т  €TDфaкВu›*с 2gюМGі]ЙsчfеšяUщ""ђФzѓ™Ž•ЋT!кdНˆžRmŠˆˆˆˆˆHК2Њ DDDDDDDЈˆˆˆˆˆˆ(Q *"""""" DEDDDDDDˆŠˆˆˆˆˆˆQQ *""""""’Jж''§eћ6 фЭcћћhј0тууэ–НњJš5ilЗќъеЋŒ7жnйЦ в%ЭŒ˜ЇфвЬˆyJ)ЭŒ˜ЇфвTU}\ѕ$"""ђЌ0,;o6Y‰0C=‡S\9‹йlОы‡L&Ї‚ƒiбЖћл•тza—УhаД%NNNЖeббб\8оі:SцLdЩ’•“'Nи–9Л8˜›s!!ФЦЦк–чЭ—ызЎqѕъUлВ9r`0zšю.OЩЅ™5Ћ_†ЫSJi^ ЯpyJ.ЭИИ8ѕQѕбЧRO""""w“Рїп-С/ЋьљcйГgЧЩСƒŒF#ƒ‡$Ÿ5›Э\ Ѕd‰’)Ц{хЋж`ё‚yфЫ›GGЧЛцХСС‘lАфЧЫм ИСЭЎŽрb4рт`РС.Fp4p4‚ƒŒF)tО IDAT!‘g;е=Ђ""""""ђHйЂVЋ*DDDDDDDa *""""""Ђ@TDDDDDDˆŠˆˆˆˆˆˆ(‘'1егŠDDDDDDф‘Ђ""""""" DEDDDDDDЈˆˆˆˆˆˆˆQQ *""""""Ђ@TDDDDDDˆŠˆˆˆˆˆШГТqюœ9˜œШš;?ЏжєWˆˆˆˆˆˆHњЂ•*W&“_т]€Pеˆˆˆˆˆˆˆм“ењhё%ˆ6Y‰0Ѓ@TDDDDDDвуЬгqіЬЄKsEDDDDDфбЂ:t$жj ЦрœSˆˆˆˆˆˆHњЂ^оо8˜ЌXЬЊ IњљЙїџД"Ђ""""""ђH)Ђ""""""ђŒЂђƒЄ"""""""iDEDDDDDDˆŠˆˆˆˆˆˆб'ЩПџўKоР\œ8~\љКw}›^=zhфL#G 'o`.^Џ_/Щ{СССфЫHоР\ьпЗя‰ЎмW_ЉCП>Нэ–§Й?хЪ”цэЮ‰}*;етE‹(YЌh’х§њєІЫ[o=єя›ѓх—4iд№žЫDыђц›Œ;ц‰ЬћoЛwгЋGwЊVЎDс‚ЈUЃ:уЧ%&&&I@›70—н_Г&3|},]˜ƭ[QЎLiŠЂ^нWXВxQ’ѕNž8A‡vm)TˆRХ‹ёNп>\НzеnШШ шOйR%)RЈ ­Z4ча?џ$й.wэв™UЋ’70ћїOu^S“~hh(яПћ.U*V pС4|­>;wьx(щЧЦЦ2yтDдЋGёЂE(SВm[Зтїп~г ЂЩЩšе#GŽ№Япл-_Дp!9Ъw$$$dЈЪўё‡MДjбœз_й_|ЋЋk†я &“‰K—.eш›9€aУG0fмxъПіхЪ—Їгo№vЗnlкИ“ЩdїYŠ/nћK.аКГ>>:„šеЊ1~мXŽ=њШїK–-чНў§yсХЉXБУ† JеЊЌ]ћНmхЫ–Цє™Г(]І еЊWgє˜Бьйѓ;{~ПY—GŽaЫцЭ ёЯзЎMЩ’Ѕ˜>c&БББ|ѓЭcЌZѕъ|0d 5ТЭн=ељLMњ<ШсC‡јhд(ЊT­J‚щїЮЛ”)Sжжž’ОПП?kзoрЭЮЉZ­5k>ЧџОњ ЃбШ?lвQŽˆˆ(MN›vэXНjQQQlмАžЏ];I`фуыЫфЉгиМu+у'LфпgШ$Isк”ЩŒ9’ПЁWя>Iк`СзѓYін jдЌ™ъМ4ЈШ(О]В”э;w1uњtђЄbцмjЕ2fєh>9’ЉгgахэЎїUW#†ЃiГцЌYЗž&M›2xа@Ž>lЗЮчГ?уѕ†ићч_,YКŒеЋVБ№›oR§‡ўљ‡бLЕЪ•шдЁ=7nD0~тDКvыžф јЯ§ћјќЫџ1wо|N<Щ№‡аИIЦŒ——СgC>ТŒYГ;~<7цх:Џи–Зmпо–цьЯfбЂeKіьлЯк јeћ6Ц~њЉэ§ИИ8ђцbњДЉvyйДqХŠ'00wВЫЪWЈ€ГГ3Пюкe ИЂЂ"‰ŠŠфпџ`зЮИИИPЁbХt_џN4kм˜уЧŽ1}ЦL6oнЪ'ŸŽСУг3еэvЏ4в2~FќˆЖэкГzэ:ЪWЈ@я^=щйН;ЅЫ”eхъ5Дяа‘aC‡&щ{‰EFDPЅj5Оš7ŸŸ~ў™О§оaЪЄЩ,N4yђз_бЂYSВњeeб’ЅlјсGКѕшiw&ыA] ЇU‹ц\Лv•яV­" W.л{жЏЗ›МH;МэлЖђя‘#Ь™;Г>уч-[шб­+sПšУ˜qујvё.]МФˆaк>ГkчNіяOы6mјщч­єщлУ‡нѕ{—.YLз.]=цSКїь™тzqqqИЛЛурр`З|тФ  *D­ељ`рТТТ’|іЮњ˜z О№JнКМєђЫцІпЛяёўЛя№Ю{ясссбhЄLйВIк-Й€"ё2*VЊФЮ;ЈWП>Лvь RхЪX­VvюиAсТ…йЙs*VФйй нзOlЩтE„‡_fхšеdЭъg+Zм+ДŒŸю=z№Zƒ љpп-_NО|љl}(((ˆ_ЯOвї+^ЂХK”АН ЬЭЩ'XЕr%mкЕ`њд)-Z”ISІb0Ш“'ЯCлЖœ:uŠNэлQВTi&M™bWїqqqќМe _ГаЖьТ… L?Ž-?§d h5nLѕ5IHH`ёЂo1МнЕ›э3™2efќФIЖРЏQу&|Грk~пЛзжпюb76ОќтsžЏ]›Нz;wnТУ/'{I-Рф‰™ћеОš7Ÿ*UЋІXо#‡3ю\о0аVŸо|“ВeЫ‘йЧ‡ЃџaђЄIlлЖ~њ OOЏыУлл›–­ZгВUk._cэїkYГzуЦŒЁB…Š4lдˆњ 9sцGВЏXКd1рЛUЋmЫBC/сччg?Гj4’%K.]МtkP\]]meНЭЯЯПў§РљJMњ%J–ФЯЯI&0~тD|||йДq#;wьРd2a2™ьЦ`ZгOЮ№?Ф/[6ZДlЁЃQ š’6экБhсBЊV­Ъ{і0eкtЎ„‡'а-ZИГgЯ…ХbЦl6sўќyrчўя ;ЅƒуЗ;wЦзз—х+Wсхх•ц|ОеЅ CР–-›ЉV­:ЯеЊEѕ5ьњ’SКLЮŸ?ЯЄ (]І ОООїUOЅJ•Ж{3gN.‡]Ж[VАPAЛзYВdMђаŒфXЖlоL­чŸgстХdЯž§žy)V̘нSЮ€Ђ"#‰‰‰I2ыŸZ‰€%J@№ЉS/Q'''V­љоnЋWЏђћoП1ъуOюКЌzѕ,]В€;wPНF ЌV+ЛvюрЭЗоbзŽДlнц‘­ŸиС(RДЈ-pЙЉI#Еу'q?ѓѕѕХЩЩ‰%эл&[іьIњ^b&“‰џ}љ?lкФЅK—ˆ‹#66/o/Л<7mоќžуч~DFFаДQC^Ўѓ cЦKђлЗmХгггn"iфˆсфЭ›—ЏцЭ'22‚Ÿ~ќ‰ "ќђeŒF#5Ÿ{ŽGN2Ÿ}Ь‘#йsфАk‡ьйsиcGбЊ§­хЫ'?Ё5cЦtnмИСЪеk JБМGЅ}л64kо‚7яxXп~я$jлR”.S†—_x5ЋVл&’ЋФВfѕЃгoащ78pряіэЫСpхъzїщ›ьgЦЫьYГlЏg~6w:uш`[жЁcG†4ђžэЙіћ5|8d“ІLЁtщвe?Oб BЖзA… ГaгЉњЌ‡‡џ›;! ЂBйВ888PЈP!^kа€еЋVa0(§ФЌV+ Цж­[YДdi’VDD$ЂжGžІЭš1ігб 2˜кЕ_ GŽIбŸ~ќ‘ОН{1xш‡TЏQƒL™2qьшQкЕiMТ­ЫžnKщ@/П\‡Х‹ОeчŽIЮ IЏPƘЭvЏ[ЕnMэ^`ыЯ[и§ыЏ7яЋR…9sчнѕ`:WЎ\LŸ1“ЖmZгЂiSОYДˆ9r`0юљНЗ999йН6 IюЙЛѓL2€Хrї6§`Ш‚‚ ГfЭj^xОuъдЁСы yЎV­gщœьЯь0мњ.Ы}їS‚§eЉЙ?єЧ6‘/_~ ,xзeеkжdь˜O9sц ЛwяцНїћcЕZ™>ugЮœ!88˜ъ5j<ВѕЕДŒŸфњY’іNІя%6fєhж­§ž#GTИ0žžž|Л№ЬџњЪ‘šq рююNѕ5йЖѕgN2„&M›ЅЛvэbљw+Ш—?ПŽpDD$=XьјиGдлл›њ АsЧZЗm›ь:;~йNйrхxуЭ7 "{іь\ИЖ{•:vъФЈO>ЁwЯЌZЙвюН,YВrхЪЛeЧK’FіьйiйЊ5“ЇNcі_Аeѓf.^ИpЯяіЯ™“хп­РХе…fsњєiВfЩЪе$пћh/ДPЁ  ЬЮ_w3wў|м=ˆvrrТœL€рффŒйlJі3ЗящJќкЩЩ‰МљђЅј=ж'ѓДмd–•(Q‚L™21kЦt\œ)ZЌХŠЧйй‰Y3І“)S&J$:#›оы'VВT)Ž>ЬхЫaїн†їJуaŒŸДиёЫvZДlХ+uы’/_>ќќќ8sЋЯ'ЮѓŽэлгtOhjЧЉбшРдщгЉљ\-š7kЪ‘#GьжњёЧ$}$qš8№ѕЯ™ѓЁ>нКPP!іўё‡нВН{џHvнrхЪѓэ’%,]˜‡ IRWлЖnЅmыVtэж=UA(м<{A@Ю€ЛжGLL kПџžЎ]:SОLІM™LЉRЅйєуOЌпИ‰ЎнК'Й,61п,Y(PА эЯУгwwwЛeїК `ъ”ЩŒўфcОœѓU’  BХŠ>tˆааPлВ_wэ">>žJ•*Pўж}й[оj['**Š?іьЁbЅJЉn7ƒС`—їл—ОЇ5}OOВeЫЦ… јaгFъеЏџPвПљPЎЗиЗoп­XЉ TDDžЦŒ‰бŸŽaп_RМ‡2_ўќ;zдідЫ#GŽ0mЪд4OЫV­™8y2§п{—Х‹ўћMКчj=Ч–Э›9uђЄ-Jќ>РаСƒйОm!!g f§Кuјјјр—шAwу›% ‹—.УппŸцMsєшQЊUЏNXXыжЎр\HHŠOњMoƒJ•*ѓЩшOйГo?'O!*ъц}Е‰/БKЭњuыь&$:ЖoЧœ/ПLг8Mм&у&L ~§зhеМмќ™Œ;vршшHх*UЫ8ыђvWЖўќ3ГfЬрЬ™3lйМ™YЗžœzћЪЛ€Нd)/[Ю†ѕыщџо{ЖIЁukзђжhмД)ЕžžCџќcћЛ§PЅ-›73nьЖўќ3ћїэcщ’ХМбБ9rф AУ†w­>={2bи0ќ§§YМtлvьфНў§эЎ4HO#G gњдЉ 2___[йŽћoтЁYѓfјљљбЛgўњѓOvэмЩрAЉXБ’-H+RЄ/Мј"Ѓ>СЖ­[9x№Н{іРее•ЖЗ.MОШнўŽииXЎ]ЛЪЁўЙчЯŸЄ6§Х‹Бfѕ*іэнЫwЫ–бМIrцЬIЏ>}8§шшhкЕiЭ_§ХШQЃИvэš­,ѓсR"""їт˜2стт‚‹‹KŠяЗmзžуЧŽгшѕ8:9РЛяПЯ;}ћЄљЛ^oиWWWzѕшAtt4oОѕMš6уибcДhжЋЪW(OЗ=˜8ўП аl61ќУЁœ?WWWJ•.У‚…пІxљjrМММјzсBКНн…M›0С7Œ›0‘qc>eшрШ']Лї GЗЎЗS8:ђтK/ётK/Э•+сiњ|…Šщищ њѕщУ•№pъПж€ГfбІm;іќў;^ШШ>§ЉэЩЙНњєц№ЁCМZчeŒF# 5fаƒmiZ,ўиГ‡ZЯ?РцŸ~"gЮœ-VЬЖNrЫnЋ^Ѓ7l zš‰–еdнкЕЩ>=9НжПtё"ьйcЛєилл›хп­ргбЃщйНбббфЪuзЇ+;zŒгСЇlЏя•ЦУ?ЉЩЯА1xа@jTЋŠЋЋ+eЫ–ЅGЏ^v—ц–.S†EK—2qќxZ4mŠбhЄ`С‚|8|„m}{ї’'O^лыдŒг;'WF~ќёЭп]lй’Й_ЯgУњuМєr$O–}TЊUЏЮ˜qу˜>u“'MЄx‰ єною‚‹ЋKŠСШВяОЃMЋ–єще‹)гІБіћ5˜L&.XфЇ~~§}ўўўјјј№Чž=,ZИШШHќ§§ЉUЋ}њНƒЗЗї­I‚фыуƒ!CШ“7яcЋЇ•+V`2™2јƒ$“\лvмќ$OO/О]М„У‡гВy3œœœxёЅ—6т#ЛЫŒЇЭ˜СЈFвЇWObcc)SЖ,п.^bwFіф‰дЋћпYзS'OВiуF8|њЎyMMњБББL›:…аK—Шœй‡—ыМЬћ§иксAв?{і,мzКnћ;Ў*jйЊ5cЧGDD$#2,;o6Y‰0C]У .?—ьe•‰™L&NгЂmіџЖ+ХѕТ.‡б iЫ$ї‰$VЖTIоя?Рюч\юЅлл]Ш“'/ rзe"џM&™ЉXО'M~ 'X?lыз­ЃWюќѕї?їѕ ЕЇ­>DDD$e |џнќВњсррРž?і={vœ1n^f0’L6›Э\ Ѕd‰’)Ц{хЋж`ё‚yфЫ›їž'мШž3€жx9€ЛЃw#ИРе\Œ\ 8СХŽFŽFp0€ƒ1ƒœIs№ZЎuюИo,Йe"З]Пv;ІщїƒгУчГ?у…_$SІЬПk:§оy—7;wІTёbЩОПgп~ќќќRќќкяПч‹йŸqтФ )VМ8яОџ>+VвADDDDфprv~ЄŸ{иi ъццЦњ›lЏ8Р §™:}… Jsz+VzррчФёуtыб“ЌYџ МF:цЁ—нзз—‰“&Ї{w~ћm' Юія››#FŽД-ѓЫ–Эіп}ћНУ+uыкЅсу“rАќћяПбЛgоъм…ЩSЇЫДЉSшаЖ-[йAіьйЕUIgŽxzzb1›СсоaйbСннЧ ‘џGziЎбhЄXётЖПМyѓ/~ЛхЗХЦЦ2t№`J/FљВe1ьClяпyiю… шіvЪ•.EPќдЈZ•Щ'І€ц ЬХХ‹1ьCђцВћK|iютуу7v еЊT&Ј@~^Њ]›ЏчЯУjMљмє—цšL&Fќˆ*+P(>*”-Ы;}кіўќysЉPЖ,ыз­уЅкЕ)^ДЏе{•}{їкЅsщв%оэз—reJT ?ЕŸЋiwї‘#GhпЖ-Eƒ QЌp:ДчФёуvi8pРvIv­еYНjе}ЕГйlfЬшб”+]Šb…ƒшб­+WЎ\б–QDDDDв•Щ”@`žМФЧЧп5АZ­ФЧХ‘;0„„јg/MЋ™3ІРВ+љhфH/ZФТoОIq§СƒХЗK–В}ч.ІNŸNž[Сю ,H№йВfѕуЃQЃ>bћswwПkОњіюХіmл7~›Зnх§˜2iѓчЭKuйцќяKжЏ[ЧД™3йёыn,\H53|‡Ўжѓ888Аxб"L&111,њі[ВeЫF™ВeSќмСƒhгЊ%UЋUcэњ ,^ЖOOкДjITT”mНkзЎВfѕ*–~їќ›Š+вНылФЧп04kм˜уЧŽ1}ЦL6oнЪ'ŸŽСУг€ШШ˜qІ IDATкЖn…СЫWЌdЩђхФЧЧгЖu+ЂЃЃИqулЕ%{іЌлИ‰Љгg№П/Орт… inч™3ІГ`СзŒ9’?ўDщ2e˜8~МЖŒ""""’ЎЎ†_&‚фЮ“ГХB\\мЭПиЄ&Г™€РмфЮУЕ+с"џŽЙrŸЏ]›ю={PИpa6џєПlпFЇ7оHv§Г!МZЏEŠ GŽ”ЏPсЁцщ№ЁClXПžm;vкю# ЬЭЙ|=?ХМ%—змЙsSЁBEŒF#йГgЇhБbМŽ шЯ §mЏ›6o~зKˆ .ЬWѓцгЋGw>2‹ХBюмЙYДd)ооо)~nњдiМZЏžн§­у'NЂ|™вќМe3Џ5x§жЬŽ‰бŸŽСзз€n=z2їЋЏјїп#”,YŠ%‹~™•kVл.Ї ЬmKsёЂEФЦЦ2cжgЖќЬќl6е*Wbщ’%tzу –,^„йlfђдЉxxx0qЪъМјBšкйbБ№ХьЯщоЃЏ7l@зnн9№з_lмАA[GIWЮž!g@. )ŠЃcЪOУ5™ˆŠˆрBШ™‡њ§жxZQ†DK–*mї:g@'OœHq§ЗКtaшриВe3еЊUчЙZЕЈ^ЃƒсЁхщЏПў VъI+г1ѕейЂUK:ДmKЭъеxюЙчЈVН:/Н\77ЗGZЧwо#š9sf€›‡џ.юаБ#У?ЩСƒшкЅ -[ЗЂqу&ФХХёхŸгБ}{Vџ=YВfMі{ќѕ'/^Lі’чрр`лћњњт›%‹эu–[џ}9ь2 HбЂvїє&vєпЃ-Zд.(іёё!ЈpaŽў{ФЖNё%lA(@PP-јMm;_МpШШ*UЊlї~х*UˆŠˆˆˆШ#vщ"a—.>qљЮаЈѓПqcР€Х’rднЊukjП№[оТю_Ѕk—ЮTЎR…9sч=Д`дb6c4љћ№‘{^Т{з Лd)vќК›_Жoчз]Л§Щ'Œ§t kжЎЕ ФьъУй…зo$Y~эк5\\вў(цлїˆоЉ|…Šќ№гfлыL™3№ХьЯЩ'7n{Џt™2”.QœХ‹бГwяdПЧl6гНG~0јЎљ1’Џw‹хсі­dž–xYZкљЮДъ#БEDDDDžBЦЇ­@йГgЇeЋжLž:й_|С–Э›“мћї J–.…ХbaѓO?>pZд}ѕU>5ŠŸ6oсвЅ‹lнК5Хѕ *Шў§ћ’,пЗw/ŽŽŽѕ'gмнн)PА эяіHЋе‚б˜LЗ10[Ь)ІWЊti6џє&“щСъПT)Ž>ЬхЫaЩОT8ˆУ‡sуЦћеЋW9vє(…o]ВT8ˆЃџў‹йќ_~/_#444MэœУпOO/§ѓнђўў[[yl""Ѓˆ>JCfћЖm„„œ%88˜ѕыжсууcїs%ˆ–,EнW_хУ!CXВxЇNтШсУ,YМˆ)“&Ѕ:ЯfЭтћ5Ћ9yт.\`ѕЊU˜Эf Ѕќ36ЛМЭ{і0lшPіўё<ШџОќ‚ЙsцаЎ}{л{вSнWыёїСƒŒ;†cЧŽђЯпѓnП~ФЧХёђЫuRќ\пwо%88˜нКБп>Юž=Ую_eшрСIžh{7-ZЖТЧз—З:ubчŽœ={†];wВjхJрцYqWWWzїьС?џЭСƒшйНооо4oбв–Ftt4гІLСbБЫАЁCэЮšЇІF#пюТЌ™3m—џўлoI.?ІY“ЦьўѕWmEDDD$]Лp‘“СЇ9vтT†ЮЇ§ЅЙж'ЛвЭfУ?ЪљѓчquuЅTщ2,XјmšюнLщ3g1kц >›9“!|€——…‚‚шаБcЊгpwwcіgŸŒеb!L›1“’%KЅј™з4Рлл›гЇБЖѓїФХХ‘'O†|ј!mкЖ{$uќZƒФЦЦ0їЋЏ˜?w.ŽŽŽ.R„y_/ИыУ–J•*Хђ•Ћ˜>ž9rPЕZ5|н›y/ооо,џnŸŽMЯюнˆŽŽ& W.КМнOO/.ZЬ'ЃFбЌIc •*Wц›oй.БЭ”)_ГaC‡0oюWdЮœ™;qфŽŸŸIM;їън‡шЈhПо  ЂGЯžLœ№п“sЃЃЂјcЯ§Ќ‹ˆˆˆˆЄЋАЫс\ПyЬУх№pВІpлпуfXv2оmВa†WЌЧ Нxою’Хф˜L&NгЂmіџЖы.FƒІ-qrrRЏy |џнќ’ypчЕ78}&џœ9Љз ыжЌст… фЭH&oЏTЅ_Оj /˜GОМyяy2ЯССПўќ`(„—И;p7‚›\СХhРХС€ƒ\Œрh4рh8ŸТ{DEDDDDDž%Qббœ 9Ofjд|Ž?пMЭчž#SІЬœ9wŽшш˜ —gЂ""""""OАА№+ИИИ№R:œ:zSBЇŽ§ЫKu_СйЩ™А x‹˜нљVы“~“ЈˆˆˆˆˆШ3цљ_Тннƒ“џ"!!€„јxЮ:AЃfЭ‰Žтдб#7‘'ЫХГЇБZ­ФХЦк-‰ŽцдП‡АZ3о GЂ""""""OА蘘ћzяqв=Ђ""""""Ђ@TDDDDDDˆŠˆˆˆˆˆˆ(Ђ""""""" DEDDDDDžVЁaЁ„]Оœь{aaa„…]ЮјЈUэ("""""ђФјцлХŒ?аАPЛх/…ђщј‰,ZК,}Ој‚Gy‚Нћ~LЬјьs""#Иqу3f}†йlцwпЭpyV *"""""ђѓvwcє˜Б„††ёйч_ХЬЯП ќЪЦM˜€Л‹ГQyxn\ПFž Ф‰“'ywР ‚ƒOѓСр!јћe%тЦuЂ""""""ђp…‡…RЃjкЖo@Ї7о rХђ\Й–!ѓыЈ&yђ?{†іmл№Ъ+uёЫтЫ™“Ч3l^uFTDDDDDф)qцф œ VЮœ:‘ЁѓЉ3Ђ""""""O ЋеЪkW3|>гѕŒЈСjPOQŒѕQЃ1УŸyœ>yЃёщИЛ2]KсююNШщSœ:~TНFDDDDDф>:v”sgNуюс‘aђdХzпŸMз{Dнм\‰х№_rјРŸX,ѕ ‘4И}дХХWW—ЇЂLщўА"ggWœ]гє‹еŠеbСbБЊз‰ˆˆˆˆШCц ŒFŒ=Чц™DгЪbЖ|ц48 3Ј"""""ђQ#89оGdЌ7џussЃpЁ ќГчР`TPћTЂЋ•р3gјћŸpvrФd6Ћ…DDDDDфС2gіСЭе''' їyf46.ŽУGŽ€еBЮœЊи‡ˆ>ц+a­ СЇƒ1  ЂI‹Vxyzqs BDDDDD$ЭQ7nА|йbB/\Фг3 žї§єй„јx\\œ9{юœб‡ˆ>"Qбб\ИJю\8;9й–[,V, ЮNN4hи„ј˜Ю\U+‰ˆˆˆˆШ}ѓєєІAУЦ|1k&‹ƒС€ƒƒУ}ЅхрцFf 6&іОbž;…†…2џ›oiкА!љѓчS š^Ў_ПС™sчqvvТХеы—п:ЛИ`Š7тъъJшЅѓ5"""""ђ@nмИNЖьў ŒFЃэя~ЙИКсъцvп1Obnю„…]fђДщМйЉ#eЫ”V њА…]чќХKdЪœ™WыечфбУФнб(FƒƒтЙ}IЎ§…Й†фўIє_жDџŸьи_lMВ$бтфЏUОл{ )_Hœт{ЛB>Py“)гу,oвђм­LIы#i]ЈМЯzy“ы‡[офѓœњ1ЌђЊМІМaŸt?хНW™ИМщИ6ЄzџЌђЊМмѓx35ezфЧ”ЯxyMІŒ†›ЛЃС№@OЯЕРј1Ob~YГђѕТ…єъбƒЯџ7‡цMѓbэк D–s.p9ќ*ў9sRћХ9qфqББЩ'Рl1cБ˜яЛјыПї ЩnЪRu№~з eк7Ђї(ЉйH>MхНW ’ЄМ‰*сAЪ›К2ЉМ*oкƒы{я{—їЮoHУЮ?C—зОбUо PоЧ№“RоДф>Ш>ј^х%йm–Ъћt—7™}RJ'8юYІG{LiH’ћJ0<Ѓх5›Э€сцџ †ћ~XбЭьlћ•ћ‰y‹‰сzи%ц|5—ўяПЧвх+ИNѓ&MшЌэˆZгщiEQбQ\П @ЭчžушпHHHHВžƒƒУ­ю7^dНsЖЦмВ&гя=юЙБLaљЭїЌ)vЪоС`H.5ЌЌЩ  ћ(oЊ6АМ$ЛсПUk2хMВэHvЋЉђЊМщVоф?eАХ1жdш­i(/ЩЩ? х§Џ\*oЦ(oЪc8Ѕђкя“юПМwьƒ­ЄШЄT),OЯ}pвЖЗІ0СЄђЊМi ЬЧ1хнЪKrЧ”ЯLyБ #Н}ŸЉљжйЮдЦ<Щ‰‰Ž&фдqЦŒУЋuыВхчmT(WŽљѓ?hzёЯ™ woќљ'ыОџžМЙsс˜ЬЭСŽNN7gCnѕ ‹ХœtіжšЬЌе( ;џ{мпNВГ<ждЮJ?§хЕŸƒ3мyЬ—ДМ‰ГЋђ>ухMi'™ОхНї$хM2†яQо;Чpvўї>ш{ŒхMДЭRy3FyS,ѓ“RоtнfЉМ*o*Ъ›Ь>ЦšЦхэ˜2ЅЋvž™ђо~я!ЂŽNNЖ@4Е1OJТ/_fф'Ѓшєц›”.S–Шзˆ>ˆзЏ‘П`оооьиОу'‚Щ—7ggЛѕœ]lџm1™S=ƒ """""rЗРбl2=єt]l—оІ6цIЮХKЁЬ˜ѕсWЎ0фУa5їќй3dёЫЦыѓћю_“<ЪиЩЩoOoЎ^ПЪЯ[Ж№\­ZdЭ–…Ё"""""r_(pѕъ~йЖ 'GGœœ1<рC€Ь ююž888І9цЙ“Ћ›%J–ЄoП~8рBШйgЂ]љяˆ†‡…’ЯѓЕksь№?v26›MфЩ—ыI ‘7XНjЅFŽˆˆˆˆˆ<0'GGВљeУХйхС~КХj%>.ŽмЗ~r2m1ЯќќВ1iв$NŸ8Ю•Їјžа$ш_пў@–rEqЪ—ы‘}щызј{џо$ЫЏ_НBЁ Т8:9‚)Ўу‘gЃЃ#NŽŽ`ЕпщЬ@ BЮЄ9цЙSlLtЊж{ъкУЏh^Nя9D6Шњј3tёмYrцЁbЕšvї†F\ПЎб#"""""ї@:8`4јЗ9MІЂ""ю„J*бœeƒИv=šˆѓ—3D 7Oe‡‡…ЊuDDDDDDžЦ‰пgЏфњ™K˜туU""""""’:№ы&Ц’-_"S`6єhZyŒn>^XLfе„ˆˆˆˆˆˆ<š@д’`"*ьšjBDDDDDDM z|ЫvOЇIOŽn™Н№ёє$BWчЪ]XЌV,f3І„UЦГАaprВ=т\§CддІjSѕѕ“gЛMдІO<Ї4Ж}j=ШщLЧРЪХ‰6YoЂ–Ѓj%IТd2стцNЎЖŒnС‚…\Йr…wощЃ6 DѓцЭЈYГz’ї>љфS:vlOхЪ•˜3g.&“‰Ў]Л<ѕћыєюЯЙŸМѓЮћ4kж„ъеЋeиіYП~ ."<ќ “&gгІШ‘#­[ЗМЏ§вЃhгИјXЌV+VЫЃoглy2$zЈŽХbСh4оwšWЎ^хєщ3”-SњБл=Hўn[lэћИщŒЈЄr=ќЮ:aТ$~ўy+ƒ___Ъ”)MЧŽэЩ’%ЫmX­ждчwцЬЯШœ9mлЖЩ0um6[lužѕЎўёhњЧ”)гxс…кдЉѓ2Vы“г–OB№ёёЁL™вtша??ПД\ЙB‡oАvэъ'dР<о>”п§ЦoqщR(ЮЮЮdЭš…š5kвІM+œœœю™—ЛЉлcМL™2X,цЇ~ь§ђЫж­[ߘ1ЃŸКБПlйrЖmлЮŒг’vkж|ЯьйГxёХШ“'O†mч№№+Ьž§%У‡Hўќљ№№№рЪ•ЋdЪ”щV_Nл~щ‘Зi:N.œ9ТЅKЁ”/_Ц.HћѓЯƒфЯŸoooрцCvіэћ“*U*>ppky “%'OуффD` ЎЦR *ї9yђ№юЕkзhгК МЦх№Ы,ќf<šIЧ?ШЄa/!!сБЭјнЋЎ­– /ЋњЧ§є“ЩФйГ!Мєт dКЕ#ЭH}ьIязЎ]cё’% іГfNKћdЩŒХbybкФjНuАšљ}ŒmzхЪU>љd$љѓхуќљ ЬœѕбQQtыіі=3вИМ]OV‹…2ЅK==cяnлЉјјєп_<І~R­ZUцЮЯ…ѓчЩ‘#‡mљЎПRНz5Ќ Џж}%CЗѓ™гЇЩ–ЭЯжЊVЉќ_žгИ_zєmš>ВХb%44€ААpВљeM4Ž-X-џ}ЗеbЙ5ця?/џmG}РoЕмnc]yЊ@Tюoƒ‘N3H.ЎЮxxКус™›ц-šђо{ˆ‹Уйй‰_нЭќљпp§њuЊWЏJзЎ]prrтЧ7ГlйrТУУqssчѕз_ЃYГ&FЌЗўgƘщдЉ3яМг‡2З.Уxџ§дЏџ*Еk?oЗaњілХ|ћэbВeѓcЮœ/ˆ‰‰aіь/йБc'оооМѕV'jдHz иъеkXЖl11бдЎ§<НzѕРjЕВdЩ2жЏп€бш@гІiа >ГfЭцЗпіpуЦ |||шбЃ+*”рдЉ`&OžЪЙsч)XА€­Ю-V ‘‘‘|ўљ—ьйѓООYшбЃ+%JЧd21rф'œчвЅKфЬРŒSlљЋџZCњѕыЭ‹/О`ћž~ј‘хЫW~'''7nHЫ–Эm}"Й1>vьќ§sаЁC;оzыmњіэMЉR%9wю<}њМУ’% эюћ^Нz ‹-ХbБPЖliњѕыƒ››‹… В~§F\]]№№№ЄH‘Тe&?НлдЭЭ O/O‚ ЂnнWXЛv=Ћ…iгfІиџ–,YЦєщ3qttЄ}ћ6дЉѓђA*V,V _}5јјx[`ЛrхjОћn11БМўњktьио.//^bъдщ9ђ/>>>Œћ YГfMБo%ю'^^^д­[‡Пў:РбЃGЩ–-ƒ Ožм$$$0dШ0Ю;Oll,%K– _ОМlйВ•ЈЈ(ъеЋЫ›oомVЄДНOœFttљђхЃџwёїїЧbЕr№яПm§yЮœЯЩ–-лSбOrфШNО|yйЙk7 **Š№ц[АX-v—цІTiŸЗы;$ф111.DЯžн Lqп›ві=.>ސsЖі™0a,›6§hыпжD}HqпіиЦ~:ШсWЎрррˆŸ_VB/…’5‹Џн„вЁУGШš5 ЙrАћЗ=фЯ—__ў}ШvћLюР\јјмМ7<..Ž“ЇN‰““ХŠЦjБЧо}b6›ёЩœ™|љђ`4 ЛЬљ IHHРббl~~\ПATTЮЮЮ*˜777рц=НgCЮa2%рууCо<Й1 vi ќsd'gNлV)фмyBЮЧХй™вЅKrёв%.\Иˆйl!K_ђхЭЃ@T$Хйчt™‰ЗкfqcccйКuйВљсфш@Шй&MšТ€ўя‘;w Ѓ>УІ?PПўЋœ9s†B… ђЩ'# 9Тдi3psuхЕзънšёК9ѓTЙrEіялOщR%‰чФ‰“”.UъŽВXiйВ9­Z6Ч`0`ЕXјђЫ9\О|™ЉS&rіl“&OС?GђчЯgћдѕыз™;їk&NKіьйИq#ЋХТO?maѓц-|<ъ#ЂЂЂ6|$%K#Ož<;zœfMSЅjevюмХФ‰S˜7їKŒF##G~ТѓЯ?Чƒpєш1:|kFаТ_ќшЈhfޘЪюнП3~ќ$ўїхg˜L&іяџ“‰Цтыы‹ГГгcšVџИГмNуыљs№ђђТh4rсќЦŒOЯžн(ФМy_3mк 0аKЁDDD0cЦтШ–ЭяцtѕГфЗ^;zœЭ›RЕje–,]ЮŠЋ2x ™3gцг1уйИa7|jЗ‘‘‘Ќ[ЗžL™МqwscыЯлXЗv=C‡ Тйй™ &“Щл› ъѓљч_ђzƒзЈUЋ&—/‡пLчжпЪKnNR$ЪѓйГ!*T1Ÿvтєщ3Œўt,eJ—"(ЈPŠcМDёbќК{7V‹…ЋWЏЦПџЅd‰тќ{ф_Š)ŒУпSЅr%ЊUЋJB|Ѓ>ЭІM?а№ѕlмА‰элaФ№ЁИЙЙёП9_Ѕ_Н>Ю6MдЇ/] eыжmфєПѕ])їЌTЈ МЧ™3g˜8i Й)\8шПГ'ЗЮ pы щЯ?ocЭъя0р}rdЯ~sВ(QкfГ™#FRЁ|yњіщХ7Шты{зОuіl…ƒ‚xы­NьнЗŸ)SІгЏooњіщХЂEK˜7яk†}8SB‡aъ”‰ИЛЛ3~Т$:ЬШ†Щ№ЃЈYЃ: Иыіў№с#Lš4OO.\Фьй_2bјPАZ)^Ммќ‰†Їi_PГf vэкMЃ†Џ№ћя{ w`.[И}†<ЅњKыјМнf&ŒСЫг‹язЎcи‡1{і ,K’}янЖяV‹…мЙ™:eЂ­}6mњСжŸoя—Ќ чЮOqпіиŽгЉ/]ЛLж,ОјfЮЬйГ!DGEуццj{ПpPAМ<=1 ФЧ'PЁ\рП{G цЯ‡ГГ—УЏpъT0™МK№ябcdЪ”‰|yrc2™prtФjЕрфшHPЁ‚XБrђd0/^Т?Gvbbb№єp'00зЏпрT№iђхЭCО<Й9сТЭ}BСФЦЦqтф) фЯ‡››+ЧŽŸ$єR(йВљƒ‡‡;ЙsЫБ'ёіђФУУЌVrњч ЇџЭГњёёёœ={ŽbE уттŒЩdzъЏмH‰‘TЮˆ=ь?+№эЂ%Дnг–­кqрРп и‹ХТ/Пь \ЙВ”+W–ЌYГRЇЮKьлџчЭЯY­xzxтыуCЉR%iнЊ%›Зќ|sжЮzћо! •+WbїюпБX,>|„€€œdЪфmŸЋCЂšЩdтчŸЗёFЇјћч RЅ дЈQЭ›Зи}Юh4b49{і,ЎЎЎdЯž ‹ХТж­лx§ѕзШIЭё2+wIDATPP!Ъ–-УО§н*Џ•Ь™3уыуУkѕыёџіЮ<:ЎтЮїŸКїі*ЕКЅ^$y“-/0Цlƒ-‹Хи&УА„$L Щ„!@B€„Ьœ™w^2“эф„sоМ™ˆ М— 1Ы„ `cШbЏ`[6Т’мRkЕКЅюО5tЋе-йВМ[ђяу#Woїіэњ}kљU§ЊЎmлдззГukfDяЖПў+"‘0W\бВ“JЅXЗю-О№…л\wн’Щ${ыъrЃ”сp˜ввEEE'нFЂугGоЉŒЋ5kжОЩЌ‹gRЛА†ђђwп§%6n|—ЮЮNДж8NЪJK)/фŽщЛжОkЗГЯ5š’’ќ~?K_KOOгЇŸGEE9ѓч_ЮžНuЇФ&gZO?ѓ,Ÿ§ьчЙэі;йБc'їНяЂ”bеъ7ИщІ8яМiLš4‘Янњ^_•Б‰лэІООЅуЦ-ЩUЊп>э^\TŒпяgцЬ‹ИшЂ‹иОcчe|ЦŒ йЙsЩd’>иJUеЖmлŽmлlйђ3/š1ш7…BЁœЭЬП‚їзcл6oЎ[ЯM7оРДiS?~гІNtЃСІп}єяљє-Зђѕ{ОAQQїмѓЕœ †вџЬ™Q^aЮœЫЈYА€Еkзe#w\ў9VЏ~ƒ›nО‘ /8Ÿ`АŒЪŠŠ‚kйО}мyч‡CLž\жzHmѕэмыѓљИъЪZŠ‹‹;v сpˆE‹Ўfo^9(--%Q[[ƒлэfмИБLŸ~гІMeЯžНУЊяCС‘H˜oњKvюм•9П.дѓhгЩТšьмЙ‹ІІІLљxs=ЕЕ ѓъ†Ь еPљw<х ŽP^с+_О eќљЯ›лі­~hŸ|mцЗKCЕmgЬІйшЌ“љзглC{G'ў@ –УЄИИˆhKsю§\ј}vІиЦЮ‹wаЙЯЙ=. г ’JЇщMівйеE*•fь˜ N з­3ynN——ЫIYА”ЎC‡2яЁ1Lг4(+ `š&.—‡г",ЃЛ;Ž­mZb1ќ%>JJŠq8,BЁ2к::rч0Mг2)ісѓгйu(їнљџњтЂЛq”Ёp8Ї$ŸєwVЭˆОГq#Ээ]8KC,žсK8}#bZsу зГtщbž{юз4551БjкЖ‰67ГqуЛ|южлВеTWOЪ­Їаy#Џc*+ˆF›Г#‹§Ѓц3.8ŸЎC‡иН{яНї>Г.ž9јwфЄДЦZIЅRDТЁмkх‘0Лwя-8жыё№нGтWO=ЭГЯ§šЛП|ГgЯ"кмТВe+xђЩЇrreEyџКOнп іљ|tuvk‰ –ЁђFђћђМяzО§аw њЖXcВыeєYАжMєQЈ|і=ŽFЃD"смѓВвRLгфрСhоњ‘ўs(В›Ви§ 0yњщгR‘зKoo/щT У0(ђzIФуgTЇNЩuKЏЅЄЄ$ЗCЈЖmЂбf"сўМ-‡inŽЂm›oоџ ~Й|_Йћы|ц–›ИљІ ьsФYК< •ј|ъъЪjя№e|ь˜JŠ‹‹йЙc'›6mсsŸН…'~љ$Љd’M›6sнвoњОпџўU^|љwДЗЕa9ЬЙьRДmk‰ ѓlMnfoДЭŠ<ј­ћ™2e2П?wmлУж?@$ІnпОмLjnНdžЃбf"ЁаGє`”`0˜Ћ‡sЏЁ­:)**ІЛЛ;W.‰Ф :НяНx^-*ђwS}_RьуаЁC§k 9;жHžŠkЫИ№‚ѓYГцM–,^ФІM›љ›Џ~ЅАЮеCЗ—ГgЯ:ІђyИ:МВЂ<[_Ÿx§žпЖфЗKCЖmgЬІ']c,жŠлэТхpЂmMРяЇщ`”Б••y6Э[S™[+к-Щd’}зsшP7FvАиNлєєєfB™5ЛТfœСўsX†I:•Юꇂ5œ–йџžaЄmmkz{{ikярOяoюяz=G8‡•щЬ|/yыS e0yвDъ4pр@#уЧŽЁЄФwNњVУДvї0Ў4„ 5"vв+74Џ‡ввwмy;їнї oЎ[OMЭ|~?55ѓyрў{]‡Ю†lѕ]SSє ЅЅм{}ЃeЪP,YВˆUЋVГхƒ­мї{§г2IЅRЙзKќ>,ЫЂЁЉ)ЏпаиD0tьЌKfrёЌŸАjеќјЇ?cХ“јљєЭ7АhбеƒѓЏoд37zy=*#m&™Jbšfю}[kўb УрБŸџ”ŠŠђ‚s&‰Ьч8ѓ#\ЂB}фl˜g›`АŒ=Лїцž77ЗNЇ Ы8=ˆЏ‡ЖЖжўзњfzh)лФ‘Жгя•B&=ћŠ†‚ƒО#*ЃБЉ)їZCc#ЁP[лTT–ѓїї>ќ№#ўїїШфЩеŒ7.г‘Щ–ЙУ}WО†P§ГC•ёЫ.Э{zŸЭ[>р‹wмFUе^[Е[лLœTUpЭбh3ЫW<Х~є&VMрзПyžƒЃик&r Ё!їљkШF‹MЪЪJsыКŽGџ4 •Л|;J4l:тя№ќДДФib(m д‰RdvщэЋkД.˜ШЏ–QлжјJ†_пї•{[л˜fa=5кк€kЎЙŠпЎ|—ЫЩљчOЇ,XšЇL^•ЧZ>gГƒбfџIЉпѓЫtўуЁкЖ3т„žЂяŽХкшщщeѓ–­ЙќHЇm::;)..ъŸйЯЋћкЙОЅOБL“ /8”bЫ–mикЦВL’ЩdСgћЪyѕh єр:ЖЏьъ\ŸЬЦВ,?UЦ ю{ :G Вƒ"љч/і1§М)ДДФиSЗN?{nяr1–~ъSЄгiёД„Ё—S’Bхѕxјьgnцйч~M2™фŠ+цёЮ;яВ~§Ђбfъъібжж– iйГЗŽКК}ьоН‡чŸљѓ/Я†сЙЈЏ?@OOЖmГdёЕЌYЛŽt:MuѕЄA牄йДy MMMьмЙ €к… XБтiъы?сwўШ[oНMmmMСqёx‚;wЧ?a<Щd’оо$55ѓљэЪйКu;---lлОЃ Д0?дЌoЛі)S&уї—№јЫihhЄББ1—чJ).П|.Ы–џŠ}ћіFљhїž‚а} lsV„э`}Ю65 Ў`гцЭЌ]ЛŽXЖ|sц\ŠЧуЮ’цоДiМѓюйЖ-ЃЅюxМ?фp€–ђЭ5†ЃXџЎКВ–—^ўOЖoпСGЛї№›џXЩUWжbл6лЖmЇГГ‹@ BзеuˆЂ"/^Џ—uыоЪ–ЙІAЁЙ…eЕџљPe|охsyѕЕU„‚eИ]..Нєž}іџ3wюœAзžJeж<ЅS)zzzrk—ћ~Я /ОЬћяoЂЅ%F{{ћЈ Э=в{GгK,FKK kжМЩ[оІvс‚\(v]н>вщtнj.р…_цЯ›6F ТfmлfкД)И\.ž\ё4 дэлOGGЧкЌrсУЖ.,гѕAж™Јэc­яћЮ‡иП?{іьeяо::;ЛF•N2K)цаккЦѓП}‘Eз\5(l8љw,хГя7ПћюгддФЪ•/бееХŒž”њ=_;љэвPmлhБi<ž ;ЇККŠЉSЋ™:ЕšiS'уѕzhmЭќVЇУA[{;===twЧQЪР4 b­m$ ‰žЬl2št:ѕcl[уёИ1 Х'Ÿ4H$шюŽ“L&ћrхPуч§ЕЌkл””јhoя жк–ЛЖоофсЯ‘w~‡гAgW‰D]]‡HЅRЙдхraл6щtšІІ(бh3Жm<>SЖ?-3Ђ‡@ ž–0єЈи)Эа†1,КцjVЎ|‰ 6RГ`>їпw/O?ѓ,бh3ЅЅИя^|Х>аабоС?§ѓ9tЈ›+krУѕЖ55ѓчГaУFжЎYЧЂEW№ћ™qсLœXuипpUm-zя}Ољ­GˆDТќј‡?рЮ;ОШВх+xј‘ясѓљјлЏIU…ЧЧZb<іѓџCЌЕПП„Люќ"^‡kЏЙšŽі~іГЧшŽЧЉ(/чпџ_ЙјЗзZc(ƒя~ч!~Йl?ђ( ˜\= ЇУЖ5_§Ъ—YўфЏxє{џ€a(f_r мoоЖцg~KpбGсё‡ГM$сСoоЯђ'Ÿ"жкЪьйГј›ЏољLnS•ўs\vщlЖnнЦO~њszzz(--% ѕŸЛoѓї]Jч…qъQ­‡|jЬЇЙЙ…џфgЄг6з-]ЬuKЃmЭSO?Ыž={qЛ]Ь›;—Kf]ŒBqЧoуЉЇўT:ХчџъV–.ЙЖрЫ ЖљЯЫгЁЪјгЇуrɘ3ч2Д­™;ч2VЌxš… цКюH8ТgnЙ™њчŸаееEqq1K—\‹Ж5 kаббСуO,ЫмoАЄ$Гйж(ГiжЄ‡=їPњŸ<Йšп>џЯ<ѓххЬ/~ё|ѓaŠ‹‹yфс‡дж dІF2ЯSфл„ъмэh†_пч—ћъI“X0>џ№пЧуqѓ№ЗПХфЩеЃJ'ЫС•Е5МѕжлЬЭ–ЏB Р1•ЯОчЋWџeЫV љЮУтvЙrГг'RПчз)лЅ#ЖmgЌьŸ\ЧЅ­­"ЏЏЛp9`А4@CуA*+"DТ!>Ў?@kk;%%>Ц­ЄВи”Y8ЉTŠНuuмzћМџЮёвF)ЉTŠ=uu\у|МoЯYs]Я<ѓНЩ$_ўвCtn4нё8Ÿ|r€Чћ~єУяŸГёї'ТјЊ)ќюЅЈž8БрЖЂбУHбƒ 6D'ЧJ"‘рЎ/}'џПј|ОsдІ{Йfё>оЗW Р(cBе$VПўе' В=РЅWд№џž^СЄУhc ІiŒ”ГЪ<Ÿ ^Kс5РЃРmЫPИL…i€ЫЫPX˜ L#{ћ–оо^ъ{(M‹N]}!ˆMбЩ1џfЗ{TkpИ6mыhХхvг“ GF>‡–XlHлŸVGєѕW_Х<ЪДЋpЎ:ЁE^я§ёдд.ЄГ­…Dќф50вб8{qyМј!жЎ]C‘зsимNЕ>F:ЃIпgƒЄО› Ђсєйдыѕђчї71яђЫщl‘HHћ>ђ <јќel|{^ЏїЌиЅзŠT”Ck'–У!UD~_ uѕГъЕз™yё,ЪB™{<)2 Б%})@KЌ™пџз+(­)7ўˆ •шCє z™ЉиTR)ћRіfгЖі§Ќ§У.œqe‘ЬНl•­$‰i,уoЌЦ4 *#хg‡#:oо<žћЭJЪ'yёО„ТбЏ‡Б•445ёЦыЏвйе%™rр+.& SYQлы}ˆDbSБЉшDtrйдуѕ0Жb MЌ_ћІиt”и>SY^Ч{vьd­_Зžžо^ЦŒ ШЎxB!†RјJ|ИœBeeЙmЫ…Q>сvS\фХщvcфнZє!z=ˆMб‰шфмБЉгщ X›Ž"лЛŽbћгъˆFЃQЎ]|-‡вb$с№•‘луСхvчю]&Œn”RЈaVRЂбƒшAl*ˆND'ЃгІЗиєœГ§isD?}Ы-tЇ4т„ #PР‚шC=bSAt"ˆM…‘‡!Y ‚ ‚ ‚ 3'0[.ŽЈ ‚ ‚ ‚pZGTAAAŽЈa˜ДЖЕRфѓI. ‚ ‚ ‚ Œ`JЂЭQ У<{QУ0№yиАюMЊЊЇP\тЫ ‚ ‚ ‚ Œ@|~?уЊЊy{§zМE удЮZЧыˆњ}%ьћјc^~щEцЬЛ‚ЉуЋаZЃ”’TRI%•TRI%•TRI%•tЄ-ЭЭМјТJRН ЊЦ?=Žш/ўэ_ VŽcђE— ЫmцЦGn‡1•465ёђЪџ ГЋK†AAAFкŒhq1Ё`ˆ1•И=žaЃћvЭЕўтњы‰Жuq0EG\ з5”ТWтУхr –‘H$Ф‚‚ ‚ ‚ # ЗлMq‘ЇЫ1мћЦjаЖ}ќŽш„ U„ЦhЦІ4щФЧtАЁnЗ—Ы>oXAAA83(ЅPУu@ѓ$‰ШŒЈ ‚ ‚ ‚0,NhзмЏпѓЗtЇ4iАї"sЂ‚ ‚ ‚ ТPhРNŸЌ]sЕ–ЭŠAAA„ЃxЂ:у?ž G4б[QAAAA8"ё№ 0 …Ѕ цHn ‚ ‚ ‚ G%ц`ЉŒ?i*ы`*TvЦSК`љЇR*ѓОЁ5&‡‚ЦРк\AЩQAAAсˆДzТ4ІрP`Ђ1ДЮ9ЃŠОџ2NЉTіЙжЧдp˜ ‡Ёpš —‚}‘™4ЇзtIю ‚ ‚ ‚ 9zMEуйšK3ыO:L…C)LР †RЊп эsH`Y€А•SaІ5Бв) L‘\A„QB*•:ъg,ЫЂЛЛћ˜ЯэѕzшьhЧсpАmћ|>nЗЗлeY˜І‰iš™ЌРгЁѕš #‹W^yЅрЙЧуAkM"‘єYЗлRŠx<^№њМЫ.ХщvѓсGЛЅ:ХX МY'дЉ4р0Р4†‘йŒЈЯUшЌCЊ2ŽЈЫЉШ|ЪЮxЋ&рDaлВ{Ў ‚ Œ’Уhз&РБoХя33iZЇp*яТrY8-…л6qh0ЕЦ e ”Т0ŒьЙЮvтtA%ПƒWиЧгƒ:}т‡ Т(ЈЃкcžѕйУПюЖ“ИЕ%uаiР0TfyЇnœ ,,РЬЎ0”Ю:Ѓ ай@]Аœ`gœQ А4и lCjuAA-єуžуNK‘4Ž} кkeњ qeуRzу)–mсФ…K)†Ц0l”20 э№ѕwђњ:€ƒg&№ќh@щУТˆЋЃКкOјNRИ”-uащpDCgf@-2NЈгШLj:LА …ЉВ)§сИ9gАйЉSЫ†Є –™ёKe>TAFІ:zЫю2 ћ˜ЯэЭо ЎKЇq+?„™,ТL:pЄ“И,K+кРаІЁPи™™ 4J:љТќйˆў™‹ўрсТфФо‚0вHvžG4ФЅгR2AЕ™5Ё#3j’uF …Ё2yefCsћfHћRА\&$г  0ШLYkРЖЅ@‚ Тшщ4нu+шжЧо№d;].Ц­mHФ1z{АR.щNлТЁ кЦDaшLаШ^S_ЊђџњBхшŸ["wјŸ8Ђ‚0ђHuužG4…KЇЅ: dnб’й-з4ВыCЭŒкч|:TпбЬŸЧџржЭlvѕ`хIENDЎB`‚classified-ads-0.09/doc/interactions.txt000066400000000000000000000034661260620453500203410ustar00rootroot00000000000000 * connection -class - is related to one node - sends protocol packets - receives protocol packets - hands protocol packets to -> protocol_message_parser - may ask from datamodel for more packets to send - normal mode of working is this: 1. wait for input from other node, for some time 2. if indication of received data is present, try receiving data, handing it over to parser class 3. if no indication of received data, ask for datamodel for next packet to send to this peer ; it may or may not appear 4. that's all folks, connection should be simple? * datamodel class - has list of all known nodes - has list of all connected nodes - has list of "good" nodes, that it will spam around. ..good methodology for producing this list needed? - for each node, based on info given (available) produces a queue of protocol items to send. queue contains 1. node greeting 2. if last contact is long time ago, a fresh list of nodes 3. possible private messages destined to said node 4. any object that belongs to nodes in vicinity - when more object appear (are sent from other nodes, or appear by user from UI) they are subsequently put into queue of each node. * protocol_message_parser - gets raw bytestream parts from connections - sees if they look like a valid protocol element, if yes, gives them to datamodel for storage and re-send to next nodes; in practice the datamodel may put the newly-received objects into send-queues of connected nodes. * Network listener listens to incoming connections - connection -instances notify datamodel directly about the node connected, network listener only needs to listen and traffic does not need to through it, instead see protocol_message_parser classified-ads-0.09/doc/profilecomment.png000066400000000000000000002345201260620453500206240ustar00rootroot00000000000000‰PNG  IHDR]ћ7Ёѕ…bKGDџџџ НЇ“ pHYsФФ•+tIMEп evжtEXtCommentCreated with GIMPW IDATxкьw`ХіЧПГїІ') ‚JQ”ІbУ‚ѕЁ?}ЂЈЯЂ‚ }ЯgБЁя=БKQ@PDбWlt%H(!хж=П?іцц–эЛїцsє’фюЬ™ййййѓй3s†oпF€ъ?D  ~‡†я˜єєє=’sсЂ_ГаuXдЏЬL~ІЊY_љІNТxСЬ@ЙЬа™ш?І+3žЉu C ԘсЦTЊЉŽ|LgZfМ›0fљž2аыЬѕU+З}œ‡Jš9ШB-uф%ЙoHOНЩр)Sxrв_3"gAZœ”Ž’І 2P-внX*)Щ@ZеJ’ХŽJАV,/žlКзˆР…‹еa>јHeg ЦЄc ‡ыП“ЌƒzЎbAšœѕПŠ Р%†ТV}БО.L:Ќяр\L ІŒЬк7ЅІо˜`&Bв„'fж Sх1в~L-mTЖˆtЄ“/Iё€<дЩъU(ЬHZйУЄЋaУке@џa‘њ™RЄ’ŒъLXщ‡™ю&>c;cЬтp’XЯ лъCdоќдЭLЄц v2й4aШ$dщТвHpЃžžєRBeлnOВI)й4fй4цp[”‹=O$ šФР#—$’@KВ“I %0‰“QОBС‹х ‚T=pшѕž-1@TЁž. Й%X .­.аЃЉЦФ#ƒ€&•ќЄЩ9ъДE† 0–дЪ&uХLqщЈЂ„A?XЩ;ОдСŠЩ]+ІR{RШЧtœ1щiLІ™о„_Lw‘vУ”UHj,ИKˆ##g­ чЄ+ŸZЁ@^˜i'2XSШŠќšщ"вyd_зŽч‰юК„ZВvџ‘>z3ЩHЬD=јД+.všЃ DЦЄљ€ЌТB<]ВOƒ—‹І0{Vњо\`AяV(p‰ˆѕяЮыŒБ†iœИИиcхи_d˜v4ѓ›šКЈЫАЖ`LяC9N^А0L"Н•Ui/…i†Ьа3žЉsšN›“ЇГ(+G9 гmD1]yѕлAЬь[‹~излdsГмSyеЩ \)Љ`ЦKЁ­}|dФлЫTAE?ПФТ›%пfъЄо†z.гyЩ\~“ЂЖИpБпe$љЌъНZ,0KE ‚x\ŠФ € TРЫY[DRЮ pL-"@CМ]`Э f\ИизйЃ?ЋfўнгтKЖ3b8шЈчеДWд LЃNP06­:Ÿ‘2ˆЩцб6ђєУ˜ЖЗJ Е.Г+˜щьdGзVHаHoЁ5Rqy„щ†fИ–dфэтWЬrхЩp™:Ы№зF Kп9“ъНЏ10л:mа>“ЕЛ–4ЉЫ„WЪr~pЯ—˜ ,ЬНLђrI>/b ~щeЊБ x…ЬŒ<]A˜ Ў€K$b€(JЖ+СO,Ф;ЦЄ5^Œw{.Б6”ЬТSєРlnэ—Qhвi ˜2„zСH7(1-#‚…з‰щИЄi†Рy№`rѓšKkЖТжpIЦ  о-‘"IрхІ•ОG0N.Ч€… `*њ˜‰61 az]fŸы:СJе# fВ‰™ЩkЊ˜9ђХПШxГЋЂ:ц*2yьDRЛ/5cБ-„Х­ПЦщ§Ъq3Л(жkШHЇёk 5‹ƒЦцї‘‰<цЊNІ§–dOSщ­ІЭ7YЯIvшрІ —Ф!0Ѕ~=— шСr‚р`d BРЛР/FAф МЩuўњЫЏakКФ@‡—<_’ЫŒˆСG5—_Dр˜єSчzz.\ЫЦ1ЎУŽ  Ж­ЁPєdЃaLЦ*Т —Ю5[ЊѕcЦ+ЂHатк-ЕМІМYFћ-щ„3ГН•bЂеvЈЃФ0bїœг /дM`eњЄИ2{п™Ѓ.ГЫŸ4WДRЌzŽYПOIБCђя\Na`€иА†Ыс'8išЁ7Ёа )юD аLњUh ЊŸfXгхrЛсv{”œDCR& „ŠЏ.?Єщ„>b№3`сX(Аqс’hЗŽхЧнc‚‹•'Ьj&е+СlЎ–ЩВtkВшЁŠЫ+n%vуйњ)ѕ@Г€ЬFHвЪЅ^–БѕtdgХ`$N­6)БЦэЊ@‹ФрrМˆш' І(y˜|VA iЭc7е{ЙX}дwVpЖхЗmT<Ѓ~НV§дAI…љћ!Р/М$@d ~b№ƒ7pћуOx.'‰ЩУОnyЭ‹СљЦv˜ЅЦ`із”ХМївУя"&№нz’l†ƒ(ЦqъХЂdѓг yЏЈ1.ЁШŠп•–WNБь9\И$цS‡$_v'ЃРz.Bс!ѕS 'k˜‚(@šRX?Еа!Hї‘ГДД-[Е†}'Qr‡љƒг Cжw‘\>МxС 2Ÿˆ‚Рo..ЧйeПkФСИfVrФЫј'+чg’>)v-ЬЌ^ŒFd‘єЁN ќФгЕAБ‘ѓ`1k.Хя:л,ЩzћOеІQ“КqЫЫёk" ЂQ˜'‰IŒDЩЛEŒVшgЅ§ЛH )ZМr0чO?џŒ1­ZЂkH`p}“<]ѕkИ|$A–—x Р“М`ќотr\IЬњk І"ЦЩЦ<.@LЋ@P•XСŒŸŸTprŸЉШ”0чпuZvVжXTEjєўР,ЈЁуџ>сТХfшr0)ŠЛ#И‚S„РŸШF`ކ(…RyiyVрџрŒёОqыv ZшЌуђeјIRю%/|$РE №0x‰СiКЁSђrсТmЊXЈdЧељZ+Ž—чШГQЙ ”ИB‰]):nл€Ћй)q•гIгЏЙpБ.Fp‚ФNˆH&B2DЄ2‚“‰HЊ?&Hг  8i-˜ƒЩO1tТЬ#А> ИЪ$ Yч”сƒ@У ИмФрa&tЬ@›Ь$пПпЯЏ—1ђX|Ћd)о‹Sy,і9XŒЏMŒн@цдГиw%fo™ђыХicdЛЇћ5’=HQЦЈэссѕlЧ+kкŽЭ”ЭZёd%ЗЅЬ6ž/Х%‹Баїё)Šwɘ-ЇLp`O•ьЌ…H"РL„ >„Рl@1А' xЛDBрй ЦЬ‚$8ыЉџъ“‚jіщЊ‡­€ЬЧЄ5]&р–ю™№­@y•—O1<‘й‰YЫl)@3kjšЭЯŒќЉЃНњДЂъ9­НЌєNЫгš&ЉВfI+!гаЪд•0fюл[0SЧ™кЅж8Ю4~e ЧДњ 3~ ‚—0cбЯаёњЭ#m/Mи"9.вy\ ЈЌЉ0–t‘ТЌ8™ш ђ/КŽ7\Gе–U=.]>sЧ1ЅЧјqhї еoєF!,кDMšiHЉ›@W‰Єы ѕ|Ё3ЙЩА0жВ…nXkr˜сrBƒ—™&uЫХыПUC ЄM p0G‘ъЗInш[˜OHўHs†> Y0Оa§Фњ\b# ФH B€Ўш˜Я‘ ИнЎFo$" ФФg†3рУЁKэ+kа%kdы.Xb6ЅЉD˜В2qЅь”ящLHБfСŽ)чmхЖФ%ЊІQRxŸ;NК\&K˜"­уQ_Э1Yлˆ…mЌЦl5„ЬƒVД%e/p0ДmЎXBЉ4Ÿ˜†ЊXBщ‡.- WНфжв.}бѕC—}'t%}Хв>Yt‹?МRЉ—wШС';jФD’fѓеs‘„Iд04В@y™Ос fОdџ2)АћpБ†щ†~b(ЬLBy•WЖв>Ÿ;wэим yЙЭ-›іШ‘Ѓ8XQіEэрt:u7Є(Š№x,dў!kx‹I'ШяW|YPUu ЉiщHIIьм]‚S33Ѓ ЪхraлŽb4iвЧЊЋ‘ЃfrqфшQ"77Œ1јEiЧh"BХСƒиЛw/ВГ›"))‰Гг ‡Ršd(Ћ5В“СLhK І^ у™lkW‹Š4Н]Ф”ZЊЧеРЊqСKъ™x… Ј№4сpEažMYјвА0яVK1Жй{ъ2НЇгГЅЖЂєшYДеXРџi…qБЄѕЈ1aбю Œd3˜Хk•э^..qБ…Ovн‰~$ Lђ6ј'$FШиF=–ЂzАгЪ…іСяї)oж,;~ќ 9Эrсѓљ––†Э7Ё_гLˆ™Y№чЗќјѓ/ШЮЮAeeКvюЈЋlЗлЪC‡бГgO8“’ріx‚pш…DЂMsrž‘‰M›6 /77\ƒ’ЬКЩ­лјЃ^p3IZzŒk§€ЂЧУЁЈŒM3“?dвлЅr\Ќ МЂƒ)ќЊvœТ'…FS^Љ€“ГdXЈБЮdрŠBŠŽ˜\+gа‡е‹)YсжЇXŽ ОјJЯCEиRдиЊЌЌФБcU(**2[Чp%вДB•VвOY&зrщЅ2{Wю"‰Ќz›NEYБД…ЙnIќ~МЂ;\71Ÿwзыдž())ЯW†ккZ­ЎA•g„дУ€›6#5е… 6рЬgшвщїћQV^†Ю:ƒpееСуvУуё4|мnИъъРаЙKWь/лЯЃ*к0Т%ШЫHƒКД ЅижШШ›NвQ3в§p&]Ї‘чЇсц'‚БІИ˜Т~ЈW5дHюнXDЦА_I)Sјл9ШЬb;*cМТок…І {™GRУИъjУJЃˆ$‘щƒŸ”$SŽœ.йRz%2 \u.]rљТ/kT}=ЂгE_™Ћ!s] ‹Н‡s‡EЯюнёыЯПрсщсеWц МўкЋј№ƒŒ{ЗHО‘Цq„^уИє>7єРИо1ŸŒшњзrщЋUЬžŒшх:‘ІЪйТ•јЫнїрœСƒqї”)8xр€)[8–vvˆ9tЅЛbшЯ+qш G…зчУЪmеpgvEљ(оЙ [ЗnУEі€ЃКJ—ЮЊЊ*dffСсtТUW ЏЧЃјЉЋ­…гсDzzЊЊЊРЅ1ЙLUдˆcљ†о„›~“iМДfkщ/=ы;МЌE<#“2ФdжaИДс‹"њТoПmХ­Зм‚ўЇ†§ћcвM7aпоНКс‹фр‹ЂсK/€‘œ.Y#8xЇїэ+OFъшЃФ_*teєЃРYХЭœё^{ѕеФD*gCre Дє^Уђ0чЉЇ№є3Ят??ў„^Н{cи№с8cр@ЩЉЪdЏqToв€-вqп’Œ!4PљH… \z‚g˜ѓ)Fc>,љіF,Œэc™Lf;1М\rЖpyy9rѓrёђ+Џ"-=ГŸœeЪŽЅ­ІЛ|џ~[uOŸ6 ћыГ№ИнAЏПі*юИ§іFсƒ˜B—pь(š~)2{єЦБcЋ:Š#GŽ€ќ^ќјујfЭз8|Ј;ѕFFњ)HЎоЁЖVƒbETVV ??ЎКjxц2їг ѕ,АW}.[[ћбxрЅ6EIxis*fЦqНЦœ|‘цлs-јЂ(;]Ю œћвK8{а <1kКuя†ТТЖИъъЋ‘™• јі›Е5ђ|єылwпu9АyгFŒПј" pЮ<у <љјуxрОћ0А :ћ,|ўљВ ёџиЃ3qю!шлЋЦ_t^ѕU\8v,њіъ…›'§ ЧЊ@№‹~Ь{i.†œ}6Ю2oџѓŸСЖž9s†„^={`иЙчр›oО‘жЫuявнЛtС'}Xn— #‡CЏž=0bј0Ќ\Й"‰јfЭŒ6 Н{іФ“'у№с# 6mм„‹ЦŽУщ}zЃoЏSёР}їЂъШ‘ ў/WЎРЈ‘#pFП~xxњCpЛ= –,^‚Q#GЂwЯžyоy оzsњї;Їїэƒ;&пŽъšъ вМєТ шоЅ3†Ÿs@„šъLНџ~єэе чŠ/>џˆ—^xQіf\ЕjЦ‹ГЯ<Ю˜л#{‡O%KАе&FїЇъ”п№уЦЇќЪ<'Ї'Рeh=ŸjЭьйг9Іš4^Э9Іd зTCЩюXњйgxцщY8{а УЖАœюyѓцaкдЉЈ­Љ‘tеес‰'žРГЯўеВnЏЧƒЏПњO>ё$˜:ѓ^š‹%‹лRяќцyXјўXГцLО§vМПш}Мћо{hзЎ~н6^ћ˜zКRRжЂ.e +3=ћє…ЏЎ б…§eх8p :ЖщдI Œ U^ЏD"}хy‹дЭ;М^І-iwѕ`Ѕ1эєНm‡|}Пn.Кx<ію-С=wп…ЛюЙЫ–ЏЬ|јa€€ЪC‡рqЛБrе*МѕЯaйВeШЩЩСgK—тЮ;ЇрёGƒЯыиДinЛ}2жЌ§§ћїЧ› р‰'gaйђ8x№ >Xє>@РЇŸ|‚Я>§џ|ч<џв\ќ§Йч№ћПƒˆАiуFќпmЗсЋoжт†oТ§їн W]]№Œ~лЖ Пmл†ё—^цыINIС‹ѓцсляРФkЏУCгЇУяѓ‡9aJіьС”;яФ”ЛЅѓ$"<єр4 ]ЊЎЎЫ–ЏРћ~„§ћїcњєA я,Ц§їо‹iгТт%KБ~§Џј`б"€[ЖlЦ)=zbЭЗпс7пˆ0ђќѓёљђјlщ2ьиБОџ~№‚м~Чјmл6Ќ^Г`іЌ'Q^^ŽХK—с‘30}к4lйВ ТџѓLКљfЌ]ї=Ім}VЙ [ЗnХŠ/WaХ—Ћ0hШа0•ЯыУ/?џŒ7М‰/V~‰SN97Oš—ЋЏпЏ[‡зоX€е_ЏСyчРо=%ИgЪ]Иыю†ы>ус‡‚}Їsч.СіюгЇ/A€рЂюЩ;wтСЉSёрƒгёй’ЅиИa#>њ№C^-=ї[Ћ‘:iТ”ЮiР6zЗT&EЊЄS)в> 4Ъ‡Рч=Й,xЙьV˜єЅf Л=n<їќѓ1т|<0uЊa[XNїУ<‚к:yфЋ>†YГgcзЎ=xrж,ЫКПYЛГgЯЦп_xзпp#^}c^zi.–}ОЬВюC‡*‘œфРи /ФцЭ[0|јpфф4EEХFсAiЪ†ьРЊx#ШOнp$U‚2›џ^ёХјхЇџbЧжјьѓ•јfнёеЪЯq№рС†|4чыЛ]nxН>јМо(Oз?ўѕ6’ŽАяќ>oаћeпš“љ#JН•ѕbƒakИlЂ`~sk=HVщЭj`!ЦМЮњJ?дЫDd•tQu„ђ9’bšшЖ Јы’OЇœFuZZЄ1(ЄЁСа#™ќQЦ мТŸБ-* …Ѕ‰0f#єИнnджж"ЗY3Ш­'ZЖt) ŒQЃGЃE~>І?ќVЏ^cЧЄyчЩЩЩh’•…nнКbР€hйВ-ђ[рВ+Ў@mm ія/HŠ˜““ІM›тŠ WТхrЁwяоhUP€ FТќ€АlЩмєЇI(jзНzѕТр!CёУКяƒ ѓrѓ›л з]HБkзЮ ‘,њ§§~(F]ГЎ]К"+3ЏЛеЧŽЁЂЂ"Ќ­–.Y‚AƒaьИБhнКzdVЏZ…ЊЊЃ )))hб":wТЌЇžЦ—+WЂККЫ?џCЯ9ƒ‡ A‹–-pх•WaнКя1;ьlщœлДi "BAA+фхцЂuЋV=z Š‹‹ƒѕg`§"HсїљАјГЯ0эСQXиУ† УиqтгO> ъЮЯЯGгІMаwHiLеѓLTв!ъЫЇњ#lнЯааќцЪІ`ˆ e‹ЉйТƒЮ„‹/ЙG2e GъіИнјз;яЂЎЮ…Iš„нЛKАpбЂр˜dEїО’R<џт‹шзяtlћ} :wъˆзпX€ВВrЫКНцП<ОџоќЧ?ё§їы0gіь >]К 0‘жtxЇаЏcдЌ9RwяСQцУкЕ?`пЖ_–žЂЎНАџ@)ЊEйО,ќчыИуžЉ<Uп#8“’’–†ВВRdffHsђCdћя[Ђh59)ћЫЪ’–gRпяС‡—о\$w­лЦђКїgђ!йеuШдRГт1ПЕТШЫ„g!М•ТУ3™Н‘”вEН0TиМ‰!b6ŸBјw2Јl%“NОQъ7жЅˆMu#=ЅŒ1•ЗЁВCAdл4ќUR^yџ%ЖгьSšŸdt тGrr2вввp№рСР=ŠvmлEw5ЅњјEДmзћЫЪк–(PPVV&]їРV,ЙЙ!з]ѕe}И—ЂММ_Ў\‰ОН{Ы8ЅGgF ;M•Џ‡ž жtФ(ь{,‚%‘•h…†іcSœ3Ё?p†UO—…yŠFњj,ђля%ГOДlсЮ;cяžтАћFЏ-,ЇлуqУчѕрoПƒ‰W_…зпxGW ъшЫКo›|;D‘АsЧ6РžнХшаБ=юЛџьиі›%нЫ–}ŽХŸ-СЛя-B‹љxчНїqех—Ap:pе•tъЖяк ЕuЕЈ |\uЕpЙjQчЊCЋ.— .wмnWpA›зызыЯчƒO#Фb{4RЎ/€gыWјњƒyh–ЪpлїсЦI7ЃCQ[$ x}uи[ќўћпџ@Р1ду№ ‚€ььllоИNGRнзЯ7 §6mм„ььlг;[sQ|кšьŽz3Ыob(7XНSBь{H“м#S+DИхt*г I~" iшRNЇЕ _йЧў6^ЭoeкSшлxхћ€BІ#*O} kЦ€ј<А^(2MAA+ь-) žyщўRј§~Дjе*Њг3†АЉ,еC‚a­a‡, x›7oŽЧžx›ћ›ћ[џи†{яН/joG xЯ@R’єЮЎЄжiIŸŸyyyјў?џХšoП“6 ŒxэWPP€Н%%AнЅЅћЄѓ,(_ЄџъУњцх7G^ѓц;n\АО[~џяјaј5”QКЏO?ѕцЮ{ы7mЦu7\<ž”” ЏЯ,?77III(й[,ЗЄd ZЕ’ ~!њE\уXГі[Жm+M­щ*нЗљљљ!Ђ†є­АwoI0эўв§ыо:”рЂюdŠ№Ю*ЗdТFЪєV]їЉо[кїWУ}ЅчоRПЏєАQqЂ)Еѕ˜fІЦbœж;м^рв~кZ.НгбOVрвc W:€КкZSЖА’юУ‡*БoЯN,^К UGЁђр[tяју7ьјckX]wэи†?ЖnВЌЛyѓ|,\ДщiЩиілfјН.,ќрCЕ+j>:vъŠКЂ}Ч.(ъаэкwBЛЂŽhлЎ лЕG›Т"Дjг- ZЃEЫVШkоЭr›ЃivВВšЈ*?жoъ6ьBђžЗа2Ѕч\tКtщ ‡ рк[юEЯŽ9p n”UТџVПŸk7|hЉЊгсp ЗY3ЄЄЇтЇ_~EJZzxќ§ˆOjZ:~њљЄgІпs9‘РKЯТhcрE&ѓЊ?–ф %ФбГ oPIГf&р‹”ѕEoЅ/z‘ПŠ‘ЈвMIРй `jыСўћєьйН ›6n@yyYDmЅџъНFnA—D1и………јaн:ьнЛжo€Р\tёx<ѓєгиUМ_­^Я—-УХ_5­” ­НлБ}ъъjбБCGTWзDGmАцЋЏPКw/Мё:Ž=ЁgŒœС 0fьXЌ[ЗЫ–,Сž=ЛёєSГЅіШЬMz]223P\\ —лQЃFaХŠјјУQМc;~§хg”юл­uYv‚–(ЉоCЁ:TюЭ`5ЊАEPпŽС lЉ?DьѕnщYŸK*cЗЪ 1g –Œ—ж‹Й“ИєиТSюњ 0e Ћщ>TYuпЌFyй~лtЛ\.YћнхrYж}сE!ЩщРž];сёxPКЗюКj\vХТBMM5jƒŸде>uЕЈЋ­ xПърvЙрvЙ›ŒЙсѓzсѓЉ/:ѓћ›aбџzbг‘УИьš|Œо ŒЄqлТB 9 “а­cR“Ы№й'пшЊtV“&h_T„ЃGŽр—ŸAJjц€шѓцhњсHIMУџ~ќGEћЂ"d5iТ!щ„/+:Hѕ-ЇйМЪвщѕвГqnŒоІBљ)mŸч‹ЂЭѕL о/ир§R0эЗє*oъ#з­D”жН{wќыwБmлИіъЋqѕ„ јшƒqфh ZЕТ‹sчbомЙИtќx8œ<1k–4…BOnC_u#0ВОрВЫ/УјK/Снwп…бчŸЧfЮDMuuЙ…х#€ ІMŸŽgž™ƒЫ/Лп~їmPн>љьмЙC ТрГЮBы6mš’ЖЖЃMыжxaю\Ь}ёE\ˆ\уЕF=тБސэ*­ р ~‘Aр‰С-JПЛ§ .0дСхgЈ&†[;9Pq№€lЈХНЛwтїew€ЅІсЌЋч"3й ђ6?Ѕ)Рчѓс“WoЧЖН[@,Eщ:юДiз^ѓМН^/JіюХЖ?ўР‘У‡QTT„-ZРэr#%5хee(оНЭrrаЙKЖi#Moс;aыwŒeћ•™Ћ€œ*ухжСL~Х4Šf:ЊШt”ЋЗ~Lчщ1ЕЏe31 ]к*˜rŘњUb}SНћ24Lw_в“дсt"99EzУFП(E^E‡)))`‚ŸЯл Ссp"99Ў:iOУф”iН”ЧHKЯ€л%щHMKƒзы…пяc iiщЈЋ­8Ixм. ЮЄ$8N0Ц Š"мn7BJJ*|>/ќщфЉЉiС@‡ЮРИъѓyсїљBкJ@RrrpЪIч@жЬ‚р@RRc№ћ§№љМ "|Лv-žћы_Бlљr0&@ExНž Qšˆрѕz Š"œЮ$0†АЕНNЇ‡3˜жяѓСч“кЄОŽD"м.Љ-’’“рp8AD№y=СsOŽh ‡УЄЄф`›yН^ˆ!гюkkk1№Œўјїџ~Dnn.Hсёx^@†єєtдеж†’p8HNIcќ>i-A\їККк U˜Иі‚ %5Mšўяѕћ–  Q„ЫUЌЗЪЛ3}Џœ4QвgЏi›ђїг4ідR}Ag-|l<[ Љmэ–о-;`‰Œ—/_уcѕ,maЎ;р=ЫkŽЗИ?R™ˆј‘"ŠHD$3B2FHf"ŒС!Œ 08Уч•зП”`*cђ^P`V?Љ[щiиRu*žq)вS3 аAxS Т„ў ЅЋ>Ќв2вu5jRRк"3#ЅћїЁМЌ{їю­_р€ЬЌ,tяо ­ ZЃYГ8Np‰ЧЫ\€№ ФЬР…єO вјAO ЅМѕ_1­T!Ad‹VЎSш#–ЉЄ }\30*“<€EЅюИђ4ќE‘lўEи_ЪD=›ƒ9eР)2€8…` ”ilЪы’ Рd!ЬяѓЁЮч“}yсїћP[ы“ЩуE]p–ƒлхЋf=T‚Y}нkkЊƒчфѕz  ыžЈђмЉѕљЄpёО8ѓ…ж?ДлЗл%Ѕ!m#њ}pћ}Šw—BбЂ”Oю|^/|^oєЃŒHІŽигЪЃQ оќ>ŸтˆPџгуrЁЖІ&ъЈt="ъъїУW[e€†_ї@}BъюEджж;^§9Ћз:bЅзNеЅ+† eЖєлPЈF‡-UdДL‰,У~ЧWЈЕXкТ\w |;KЪIрЅж~|Фр nb‰Су<ИХ€Ї‹ИDЩгu[gЇЂЇ+њ§Џ{ONzУщEM4 выѓ!ЩщDjj22вƒoBЙФY3M–›)№’Бў ыaZU2–_—‰щШnч+ ЊTO[O:Ічє{ЕŒЄеђ€Љ_5c^0}=@џxУ`hh2|O1#нбpffяGтp8рLJR„.›ž жRj›Œ!==uЕ5AиАmџ"ЦЁН€e ВtyГЂ4hй[– ьx…-3§им§Ш+~Ж№ЩЌлvO—(њ!B.QD0PРHd bвБњП™ХЫ vlћi’1†ффd$''ШцА“8#€єУ|…{Ќ,yНL…ІW№\щЎ‹К‡J>UD}eГGx{T=_iЂNЧ‚їKХ[Ѕш§ЂМUъŽ,{<`aЙѕxС ,rъ•„щѓ†Z—фсDоІ`d)оcZые@пL”N•Л‚3f$OŸ_Хf ЁєdА`Ме‹Hвк8њЬУ•A˜Œ;dєiЎŸ=AЫ”Y„ЈуЖьЅ“Жтa sні‰ГdO ZЗ ьТЄ§XˆDщЇє{`o9Q1A}A,.ЁƒcJм?ј2ЅЃ1с+КMH‹њгтдCSiу ` ˆщš2^А№g2ЉЎ3 aj ІdдъŸšЎ3*›V ХЕ–z PY*“­;Г‰_ћбbЇЁЊЉЦрƒ”LzHw9dЌZq‡ЌЦ-§e ЖШ@?ГДf‹У–хћ Kаѕљ_рІI“Ђk…х ПY`p`ђQ”xЧхЂe%иБ™r€EЌN5!™Ш=ЊuŠ(D‘sд[ДСћЅЕоЌЁtІГžFЮ›"€є>ЕgџQФu‰j?ЈZLGћЉNЁ эц'ЧLіL-5cЊC-SyёaФ,тff!Љx—хbІѓZšrh:а†М‹J4)xЌtыбЮ/J;gЙJЧ‚ž.зƒЛюњ ­BГм|\qеUшyZ?јќ~МїоиКЃЮд Н`кwяƒ*АqЧ.моuП*\ОТ dы№ЅЎGлеЅЎG%П*€…љ•4Н_ |ќ,%P0ћ ,š'˜„щ1R0oф`ŒL70ІdZ`Ѕ•зœ5`я˜ВЃёЫж:™зa*o,р*–€eВ8h™LnВ_ђi„\И„‰ДO—HHr8qЯ=ї ЛY.ж~ї=оzы-ЬщнжoРО}ћ0yђdјр€›96ЌGaз2;Оsсв№%ЭЯ МЗM4p‘†*ЩхS-W&8‡VКHсЄОЄ‡˜bКапdЃЊ@“{^j@“1ЕpєrЦгJЦS*Cm.žі”@љМЦМUŠWкf˜В VЗј 3ВlЋщ˜FІдвК™I+тЅ.каШg42ІоpьњгЊт‹ЉЈ‚ђcžhщ<нk­nLlW А˜Уa‹KlђH#ŒЦVз"б>ЏрєBiј)*j?1Œ9яјЊЊЊ’’‚ъšjTзT#ЗE+8!РicуккZ~!И$|е}Б=ТŒ +‘ЃсI•s œ<[)УRtй‘S`,ŠіЭЈDIlаЄ k‘FŽ„‘ŒйШуLЮаQ№В)€Щ€Sў"X†к4ЕНХHШ4#,ъ0*˜N@Г vяƒxТB“†…iО#PЅLE†}КР,–€+ШRIM†jЂ Б-WвbDN;І†п #‚rит’РтЌЈTTVт•љЏa[ёN$ЅЄˆрѓља­{7 :яМ§6ђ[ЕХ9ЃF#5ЛN;э4lмБлі Й\.””” sчЮ еP•••ШЭЭх=І‘сЋЄЄYYYШЮЮж~‰˜›SР,N]” }ІЖ XDЁL6хKл FВиc„…“l o˜n‹hR˜jЈЦд RqІЩ‡ЙW…*ЅPѕ ЦН.H3pг7rdлиzЋшй4X_^cu2WњЮшtОˆн_ФВ4@ЫД7ЋБAЫXГmccВ~Чpитr<‰Pя {oс{hвД ^zщEќѕйgсt8‚ЋЧŒ)SІ iгІXѓѕ@ff&zѕъeK%^}ѕUЬ›;№г?сo§[B5вЯ?џŒЛІм8|ј0&\1ИнюКƒ4ъљі+uд>ішcиКuЋсXњ˜лW.tK„АŒŠ6F щ’YžЉя+Э„Њщ‰г’Ё:EЦFUЌlXк†VЮYЁ[GЗВю2УoУЈ+ЅZџЈ[Xe\ˆдѕЇђНЏ0К™ЛMсі ™;;іc‡zZЅГˆК‰Uюs5НJу‚С/еŸ@ВЩѕ?бdu™\`в0 ˜ЬVОe—уGœ%%{сіx!њ§`'<^/˜#)иБ+++сіR›4EГм\м%yЗ*++сlв @ВюТІ>0џћпџТО{ђЩ'qњщЇCє‹q?љ ЮП^Џ7ьЛїН‡цЭ›+ОЪЪЪТиБcбДiSTVVтЪ WтЫU_ЦМ^K—-EZZZ\лgЭš5XМx1ўі7{!xъSqкщЇсŠ+Ў~їілocЧі˜1s†цd+o­{П€Шщ‡ пш}ЯhжІ­'&^0™ЁЉ)‚Jc‚z>#сз5jFЮОМYfы`L—ещƒtзу.€ГДДпЌYƒK.ЛѓцН‚ЩЗO†#)ЙyљHJJТЖХјшг%№1ђ к`шљ€ˆАyѓдУ”SG*№кыЎХ…^1IIIжO=§:vьќ;''GНСœN\{нЕQ!Šb\ъ•ššїЖёy}‰!…Ьmаѕ@5ЕіЫnS KІЬ?†ъ`ТЂъ.VФT Т ˆ)=Ы™’бХфуfдЇVŒЗС”’ЉB)SšњЕaЪHЄmS‘>U „eдшД*ЬО!ЂqЁLl<+SfЅЎdВzdИ1АВL€Yяmv‚V8йаы9lq9оЁkюМЙ ~9"1ј №CŸоНqЪЉНс!(РЭЄ@ƒB-† LOOGГfЭТО›?><юМѓЮЈєЛvэТпŸћ;vьиЎ]Лт@ѓќцЖ5@“&MЂъ_}ѕ^™џ ъъъаІM›рїuuu;f,>ўфурwУ‡ мџ§8џ‚ѓcV/"Т{яН‡їНПп‹Ч_ŒnИ‚  ИИЯ>ѓ,JJJsчЮХЧŒяПџUUU(,,ФАсУ№хЪ/QZZŠ>}њр‘ ==›7oЦЬ3Q]]:рўюGЛvэызЏžп;яОƒ–-[Цоt!Тлџz‹/† ˜pх\rЩ%Q#љ_|wпyHOOЧ%—^‚ЋЏО‚ Ю) т`ъ№$?:AN?—йaк9ФД` ž1#@& eъ@ЅЬ”Џ™6UлюˆЌƒ3z75vQЬ4›гDVЪ&Š" U6WљxVЃC–E@Вг›ХA‹ —8BWаk@бЫ"Їр‡Mу…Ь=З’\кЈ9бвя>Ÿ<ќFŒ83f<‚W^yѓцЭХŒ3lД№Ѓoъ]Лvс™9ЯрўћяCзЎ]БxёЌ[З.Ђ1~_ЙrHЦОmсЃыЕzе*|іщgxќёЧ’’‚'žxйM›т’K.СђrTUUaС‚7рёxаЂE ќўћяИцšk0hа МѓЮлxбћxќёЧ““ƒ3fbщ’%ИтŠ+аЖАЯ=ї7ЄЅЅcоМyx§Езёју єъе Я>ћ РQПЮЯŽ“‹ьд№§ђ/–cХŠxійgP]]˜ŠО}њ }ћіaљwякnнКс–[nЦž={0gЮ3HOOЧјёуM˜n!f*zЂ€…(2`!єb8"Н D1=ИІ:dИIЏі$[І2LۘcбQщ™–'ГO–‘ЭžхyM1ЏQаaLЫ`b 9Ѕ§ЮЬб™И%lЫРl'ŸXПBвiœ6Ж~}РCFѓk:дШPЕШDГ@g+Ь#&Œf%ДК=Џь˜њЧЇrIМ!моMБœDb71iЪUp!.‘а0+P81 YiLо|ѓ-М§і;€‚‚МђЪ|ХД[ЗnEmm-&NœЦ&L˜ ы Г"љЫ_‚ž‘ГЯ> <№жЌљœsЯ=pЦ§%шR‡Уaћu­зШ‘#0yђdЌXБ—_~zіь Иік‰xџ§‚^ ”””Јѕh99йШЭm†БcЧbљђСМC‡СŽХЄ)žYYY€qуЦтo{.ЬX‹ХљНёЦќуџ ўэѓљpжYgJpЙz5.ПќВ З­џ~јщЇŸB ЋAВВВаМys4oо7мp=/^‚ё_Ж™+3u“EokvЃ\DУІщI2aбЦ†Џй"ІС2ЙHсZ3-У(œeЇ *nгЅьIcљЃZXЇЅІпЫ п:зx™vDйфСВ‡cѓЯсF€4sхы‡2ЃG—cЭ \щ‡AЋ€Ѕ“ЇВŒї]ВIМ Z\Иш„.5D<‚р…zCHtЌр&`цЂ—]vЦŒ-юtЊІ=pр Ž9‚QЃFПѓћ§pЛнHIIБЅІO0hЬЇІJ**++‘ŸпЂQ/LhНвггххаВeA0MЫ–-qрР]њВВВрvЛ!Š"A@ffъъъHSчЯ%%%HIIБ­mефђЫ/УЈQЃ‚/^М8x.РМy/ух—чЦbBЋV­5uтРrUx2 `’]o€5фЖфkDГ2U0Ј^Ќ”Œ&uSлРT Шд ЈhЈb:€, ъH EHg`І<ц@‰й '‹Ae5lЖЭeнй0ХЌl…+\vVAV8аиs/rатТХш ьЕB2!ˆы!,$žk§Ÿfn—ЌЌLны‚š5ЫA^^о{oaЬ YГмЈњфччуЗп~гЬ[ФчѓiЄ]ѕ*+лќ{џў§ШЯЯ7ј€}c.§>gЮ3ИъЊ+1fЬЌ_Пsц<€т$ј|ў˜Д{“&MаКuы~б$]Эš5УUW]ezЄММЭšхЊZ6–МW‘™Z†–М`:!L]ЏмыnћAЌсk…•PНbк0Іd*§€)e!jДЏ:P‘0‹РtУ‹ЊЬй52H†F–P gЏНHц‡›Ъ4TiТY рJƒVЌ­ˆ;`й YЪФе(€Фзhq9оХяїСG>L„ њђƒ˜‘„Ря&}F ўЮ‚аХющ‚Ь0‡7…ьW‹‡^ZZ:***pфШQœzъЉ`ŒaС‚71zєЈ`ДРаРVЅЊЊ ‡ ў‘‘aУЮХТ… БtщR 80И'—8dddрыЏПFЯž=С‹i ‰ѓЯ‰7оX€nнК!99oП§.Мpœ Щ"‚лэлшД  ;wкž IDATюФіэ;  љљљШЬЬŒyч>|.|mкДAЋV­АџўрДШДД4cР€€элЗcчЮ№ћ§xчwqоyУС“iя•M њH { ,$Їj8‚˜XЉ{ХTjЪд7AeаіŽЩYC™LG~TбfƒtРЌ*Ј™ы˜6Р[#ЩёP'гaчЩR2ВY'бa+XiР•ъŠ%`щЋŸSќl†,Z\И%ЋId @КHc@#Є8€Hqp„d8Р)0 О‡`Ќ1gЂXЯž=аЖm[ЬŸ?SЇ>€ЇŸ~ §ы_Бhб"ddd`тФkl…ЎЉSЇ†§}з]S0nм8<ёФуxх•W1wю<ЄЅЅЁ_ПгЃђ ‚€лnЛѓчПŸЯ‡›nК ]taЬкцМѓЮУСƒxшЁ‡Ѕш…_ŒёуЧ[ж;eЪxљхљxёХ—ššŠ=zКvэ‚aУЮХнwпєєt<іиЃшкЕkЬћРиБcqфШQЬœљ(jkkбЊU+Мјт С /М№ 8rфІN†ъъjŒ9"lя/#р O–І!& „ЩыRс8€˜ŒЉzХ`L @4МcЊ@UЪv›Ц5ж fЪƒЉ]fаа#ѓдЅЄбН_ЫV Ѕ&’“ehzМШb­ф7WІЮ €ubBVx•8dq9БЄЖІ€>&ТM~д‘ˆdADЩ‚фЩJfƒ\ѕž.A ‚Р yЛ~нј‰ŒA "1јСр /ƒGd№Ђ!dМ›9р"ЕpрŽSвp№@9DбЯЏ —ИЪ+ѓ_ЧуСwоГ2˜]sЊ,A˜ŠЅk ФєщГf[3] ˜Q=†Š`U2Sе2ЄЧф…cV{‘mАФтSLу0•mxe—2ЃР@ЄkёVШh2c€DцOR?Ќ%:`%d5ЈсХхФ‡Умцљxi‹ щ№#•‰H!?RLB—“7).њ&–,žАА_m№†Eш UdЩ#ІЄšŽ*uƒ˜F$_W•щŠЄ?ЊnЄоzє„ы2p՘Iу;TХg?,:qЈЫІb(Žu%cYt—]`І˜дТFСБ‚ЋX–ВВЗЛиGДИp1.6@—ўяМсчЩ~ПjѕЊF9љDЋйњ&rc)џwыџ5€йa! ֍쇑g‹5Œщ2 "eвQ€2=`fІHЅNЪРЄПЕcmё‡Лу†b xd.;йЌл З‰lаa-;й{yb X6C–ЭPФ!‹ —„€.§’h`pМЪЩV mЈй a!ЩH3gZЋxУlБXӘЭ@ІЪl30eЄH9Ѓ hГo wCЦ•RЬыfаШЦѓ ы'kАŠ\Х А8dqсТЁ‹ —“Т,ƒ˜Š7Ь>‹k‘p0fƒ2 0S*ІS—UH“Oj8ЦЅс2­УIz‹-5ђ~Чš)&eˆeHіЈqU›ц?NрŠ.КТ‡~гrсЂљ0ГЫfˆ…jbВП‡$93са,ЉGза3J1Н5#эЏДJfњш(ЫмЋ)€іЉл‚ЋЉЅFЊ#Y;5sфeSYfСё1§аўŽЩ!‹ 6—З їtqсвˆ–X ЇщƒЄ’г $1MгQK`&іо`Ћ0ѓО FЦZ_Н1Ѓ ЫТt{ямˆl o—yZˆх)ФЊl‚ŸЦёqРтТхD]\Иœ„ –80fШbe&СЬœ)ЖС\‹йъх‚щЋ—{ƒYл8QшŠb_„Љв(&u!ћOI3Уq6§.КИpсrr€˜Œ+AŒAoр ІŠЭPfЬbh:@M—2#Ёч›bŽ;цВЅ’[ѕq)K9ЩоГЃ8–ЭjБщАИpIИС[КОї.Йф8œЩ ƒ…~˜є 76.\8ˆ™„БpvВС3fШь2{РLЙ.FMхŒ,ƒš|Nfћs$Ž0Ћр‰ѕŽiе)v%к7н0u‰G™1„ X\И4ЎЌ[З)>7Fž3Иa ’о R(8EќNЁ1/Ю­›ЗР9aƒС…Ы bБ€15 3э“Е\ь†2{РЬЈ™ЦєжEЗrsюТL`ŠŠ%Р3)!‹Пк?н0N‘%)vэЏ‡+.\[њѕыTбcYsкƒгЦТtPФ'r№сУ.'1ŒEбмdSX{ Ь^0Sбhв{fж Цb’”?PnЙDjhZХБqW\И_’’’Œ48@ЃЦ 9f"…3555 B’ќЋП^‹НЅћСRва­ћ)}сxЄdd†Uр№сУиuрЈ{Џ(8уТ…ЫI c€,6PІЬЌ­ S ™yдіК7*IХkКт‰ѓ„В?‚!5nн)іѕ‰чT@W\Иœ@6SрчкЕп"'Х!ћcOЩ|Лr%Њ@ЧЖ…ИєЂБШЬHƒпчЧмysБgW1ъjЊq§uз€D?>§фSЊ<ˆЬєД†@D„7М‰яж§-[ЗС!CpрШQlиАфHЦ%WLˆDјщЇŸАk9вr[№+Т…Ы cБВи@™>0# d§ьBšzщd3Ћ4nœТп(OфBJМѓ‹#р5TqАтТхфСƒ!~TWУЊ/Wсœ3ЯDaAsЌ^ў>њ№#\§Dј|>lоВ=јše7EJ’‹/F—ЮqУсз_~i€ЎхЫ—улЕпbР™gтњ›&9œ№УГЯ>‡’’’`С?ќ№ўиГO9E=zѓ+С… ВјAYЌРLХ$ƒ4fo‹˜]ІПf”8v’‘_Uo$рkL т`Х… —z[‡aїюнhнІ Кuя†&bь˜1˜3ћIдеЙ*Hi›чхЁIf„Рѓ4=#M›6ХЙч• ЫэrугO?A^^nМёFN'ќTЋЦ‘ЃGQPиp№РAlоДEнOСЉНzЁП\Иp ‹”™3kt†…DфТ… —F„2у­бЇjиДКНл8$сБрфНgbGTWїЦ^KЦэ.\Ии`KЄЇЇЃb_e№яЃGТ/њ‘“ЃKŠ‹‹K—,СВЯ—'’SRбљ”žyСhДlS/ЅЅћžž†Іййpѓ1Œ .q0†ь3#S №Ѕ1ЇъДSЩlЭ,žФ‰63‘тЊрD˜jШНT\Иp9БЅ]QжџчќЖѕЗрšЎ=z --фvщƒЎšкРнwп…єЬ,ЄЄg"ЛY.Ш™ ‘xcZЫ…ДœfМеЙpсr‚‚™ЭІƒHb +ё‹VHЧ%’ф<(Бл†.\I233qоˆѓ№эЪ•X^YŽNэктвё—ъЮяšч5ˆЂˆŽ:РG ~<€Ф@Ьe†Œєt­:л $ЅžД~ј№aќўћя№‹gRA> cќ'џЩђŸќ'џЩђŸќ'џЩЦљgНxН^а­k7фdgл№іJк Ћm›BмxуHD$AD@„””dМ2џe8гOМцjиX‹Hђtuц@|Жd)^ziњѕяьмцЈЉscлю=˜4щ4ЭЭtщвџўuVЏ^VEPMpJŸ“ ИŽ=ŠЭ›З {ЯžШЖzЙpсТ… .\ИpсbПЭ~ф6oо„S{іDгІMН>NhžŸGgЮРЛ пЧњ р'†œмцшд§ЄЇЇŸжЗ/ъиБЏ Х;w"Їuл“ююмЙНњєAЧŽž‘С{4.\ИpсТ… . &Е55Hr:PМ}њєiќmЎ‚ћtЕnеЙчˆ@ШєB"Брš.СсР€3Ю@oц€›д6d‹дееˆžžоh цŠŠк#ЋIЭДЧŽd…„—фТ… .\ИpсТ…Kl%ЋIЕЧЎтІuиЙДTЬ4”§ љ›dО‹—м{я}јёЧŸdM™rОћю;гКнnЗЎtiiщШШЬд•іъ №экЕqяduuu ЅЫЮњpсТ… .\ИpсЂG22Гžnmfš"ЫЛ“ЩЯЇŸ}†kЏНcЦŒХ 7мˆ/W­вЮРMЙcч8Eэл›ЊЫ /МˆE‹оз>R–-]Šбœ.;рєО}pзw@ХFщ\K—,Сз_—0КьЌ.\ИpсТ… .ё`ЛKЮЦ8љпџЏНњ|№AtшиЅЅЅ–Їр;жt^ЏЯk:я‡МЇNХ=їо‹s‡ ‡ЫхТ†ѕП#Ц[М^Џmavэаeg}ИpсТ… .\Иp9Х:H.(CŸ}{ї"??gu&ZЖhгњіEчN"мp§ѕXџыњ`кёЧЎ;ƒ“*.\ˆKЦ_‚ WLРŸLwћŸo—ІђЁњи1<5ћ)ŒПx˜ц‰ЧC—ŽpжРјњЋЏ‚пПёкkшеуєшо Зоr3jЊЋŸ}њ)†3];uФ9ƒnПэVtявЇїэƒgчЬ ъЈ­­Х§їо‹ю]:ЃЯЉ=БrХrРў§oЖAQaьн[XБ|9†3Н{іРДю‡ЧуQ,/T"u‰ЂˆчџўњŸжћїУ› „гщ}ћ kЇŽ˜іР§Š:Beњƒг0 пщшвБ.9/Я‹У†ЁKЧИnт5ЈЎ–жХ-wнwпсмЁCаЉ}F?ЅЖЌЋЋУїн‡SКvAЯюн1њ‚ѓБsчNРќ+.Н=КwУеWNРўвR>rpсТ… .\ИbS”ьўЦ‡.вГgOTTTрХ_BEE…ЁМ]ЛvХK/Нˆ)SІрх—чcыж­QiцЭ›‡ккZМўњkИ№Т 1{іS№љ|№ћ§˜>§!tъд М‡~Э›K{”]sЭ5јт‹ЯёќCw]Жnн‚ЪŠ \zљхŠiЎНюz|ѓн:мђЗтЎ;я€Ы%эX}ўЈ Аbеj,ћb9Жmл†ї.lкИ=zєФКџo§ыmРнїќп}џцЮ{ЏО2›7mЬ|ф””ьСgK—суO?УiЇŸ8cРlпЙ лwюB›6…(оБwOЙ=ќ–-_Ž_~ў п}GБМP‰дѕсяуЃ>РЛ‹aюЫѓёьœЇёлoПЁВЂГg=‰ўыmќяч_№З§YQGЈlјu=&пy'Оћспшпџ МњЪ|Ьzњ)ЌXЕЪЫёю;R=–;ѓ‘G№ЇI“№ыЦxщхљСЭs•кђёGgbћіmјtЩR,џr%ЪЪЪpф№axН^мђЇ›pірAјцлoбВeK<ішL>€qсТ… .\ИpIlшЪЯЯЧѓЯџ•••Ис†ёЬ3Я#§iЩiЇѕEЋV­pжYgbшаЁјњы5aЧEQФš5прOК ЙЙЙ7nМ^/vэк…­[ЗтиБcИх–›бВeKtэк%hŒ ƒУс04-№№ЁУHNNV§пЎ];рњn€(ŠиY\ hгІ(**ТиБуА}ћЖ`žœœфх5GQQ SчЮШЭЫУР3ЯDŸО}Б}ћvј§~|ќб‡xdЦLtщв:vD^`“kЦœN'œNiішвЅKpЮЙчbи№сhгІW]sMX€ШђB%RзЇŸ|‚IЗм‚ЮЛрє~§0dшP|їэZ$%'CьиБYYYaК"uDJnnђѓѓqЭФ‰ЈЋЋCџўg }ћі5f ЖnйbЊмєŒtяи‡У‰.]КЫRjЫ?ј и–mк"9) №Ы/?ЃККwм9yyЭёЗ§k!8 .\ИpсТ… ]†Ѕ}ћі˜9s,xeee˜3ч™zz]y-qшаЁp:|>Ÿўѓэ3f,ЦŒ‹šš>|@^^žmы­šfgУуё ЊЊJ3-c 999СДџќЧ[rіY8Ѕkќу­7сёЪЏ+ѓљ|xшСqzп>8ѕ”юиДq#М^<ŸЯ‡6……šeя/-ХŠхЫбЅctщиO<і*++MѓўвR<6sfPз—+WЂВЂMš4СЋЏП—^xУ†СšЏП6оžM›ТхrСяїўЮFЭџГwосQTmОgЖ'йєNBЏщи_EдW?Q)bE+bEEAEQ;ŠXшХNя’ЄїьfлЬїЧn–,^лЙЏk2›™9§ььљЭsЮ3е–sJwњŒ7ЩЬЬЄgїnЬyчэгжeAAvЛцIIѕ”їХХEДjй‚фЄц 8€ЋUxd@ 4­zе#zTѕјZ-е#„Tе­‰|4ŠШШHnЙхf&O~JKKіШ‘#ощuюВ,3oо—_Nя>}XМhїн3’m;wеЧi*ШнЋ<§N’Ž>лt›5oЮ‚В}л6nЛu8:tфHnnНui6 Iљyy'9t‰ˆˆ ::šп6nw @ ‚'шяz/@Њoэ—ъ9ЮqM…њчXКіюнЧњѕы9zє(999,_ОœИИ8кДiУвЅпrј№a NrН^\\Lqq1ЋV­f§њ \yхО*RЋхвK/хэЗg“““Caa!оИF#sцЬсшбcdggSYYItt [Зn%??ŸДДД—CЏзѓРƒёќsЯБрƒїЩ:x}{їВhсТг†sz,9.ХuЦїƒ9]nСbw8p:ощZ­–Aƒ‡№ь3OГoя^>ФЁC‡Hhк”ДД4іюйCкО}TTT0xшP~ќс–}Л”cЧŽ‘––FI,]ѕХ5ьškx{ж,6nќƒќќ|6or‹ЋеЪЖ­[БX,Дnн›Э†УсЈ7ŽsсlгнДi#DEGLeeХ)ы2 РЬх}ћђЪЫ/sьи16oкDUU5нКwG’e^›:•ммУфффxЇˆ @ ўйИ\.œN'‡ЛgГйэиь6jlvjl6яfЕеИЗš:›еŠЅІэЎНћP$—",уR%TIЦ ’'.'Z\Z=N­ЇF‡]cŒgљЊЊJ>ћьs:„VЋЅuыжLšє8#FмЪдЉЏ2fЬXdY&&&їKЭRR’YДh1ѓцНKll,?>‘$Я”0EQМжЋЧ[oЭтўћЧ!I]t“&=ŽNЇуХ_рѕзЇqїнwc6›™<љYЎОК7ўСнw$::ŠйГgЃѓЌщ9џ7r$~ўўМ;o.S&OЦl6гЕ[wЎЛс†S†iкД)у|;nЛђВ2‚‚ƒЙ§Ž;N!6ЎхЇ Иђђ>иэvТ#" р…—^тЉ'&qн5У5Ц?6џоy'У† уІn РŸ9яОG‡xѓ­ЗxaЪrss‰ŒŠтЭ™ovкВЕoпўЄИnЙѕVŠKŠuяНTUVвДiS–|Г”ТЂ"ЦŽM~^ссс<3љ9ыЃC‡gнgЮ6нŸž];wтччЧ€ƒИМя8ЮгдхЫL|leШС\pеbЕX„шњ‡ёўќљ|іЩ'8NZЖlЩ[Гп‚K рoŒеbi|$ЊŠЊЊžхYю5\ЊЌ‚ЂЂJ’{/ƒЊxЮKxўWЉ]эЅJ •[ѕDбхT8­шВ(`qЊTКрŽ&5фџi–Ўџ5ЙGr‰‰%)Йеyѓ‚(@ ЮŠЂq cЧŽзЄЩY‡ЏЕtН›­!@VМ–.ƒЊ`Џ.'"8ƒЦmХ2ШnЫ–VRбд™^Xзв%TУYFEy9‡ГR]]u’Ѓ@ @№ч‰­ъЊ*eЄВМœ№3ј083u=ЊЄ8Р{яО‹ŠтЖ€Ё Њ ЈžџUХГе§ЌPялjKKK3f /Пё&С!ѕgДІЦЪъѕПpЧ—x"Uџ i4‘$ЗХђВrбГ@ ‚ПN—“Щ„о`8'R;ЅTЉЮєBЏКswO3tŸSeO8№§,іц›n"+; џ3э;vaТOb6›щ?p ЇЬˆ^o ЁiТПВ #ƒQєf@ рŒЪёwmЙ—tеЎе:.ФTщјыКT`ЋћYД§єчтЫzcБXйДi (Ш ~ЋwMW}ШВLЫ–Щ@h @ @№cяžНIOCЉЉтђžнбЋ*e%Ѕ<ѕф“X*ЪhпЖ їќпјn%еZЩ$ЏhSљПwоERRЉmк0тіл‘eЋеЪ §ЉЈЈ`њгјъЫ/Н џёћя|џнw8О[ЖLД„@ @ јGbЕZщлЗ/ƒ &::№ѓїcьиБ<>iGŽaХђ(ЊŠЂЈЈŠŠЂPчГ{;Ѓ#N:Бп>яџййYџ3зь@ @№g‘œмs ™  @L&ЊЊЂзы '**’‹/юEFF†Џ# ”“jјˆЎОџŽТТBŸ„:tьDцСLЌV+ŠЂ“sˆІBt @ ‚4*FЃбћЎ.Ÿ3ž5\ўXЊ-žЕ[ЊзСр‰›шš7g‡rr|" &!!}{ї™‘NhhўўўЂ @ С?ЋЕЦы.оэОжЋЁл’%сYЗЅЈЈŠ‚ЊЈрйЋŠЧкЅœТeќ‰tябƒэлЗc№&5ЕЈ}@ @№'=§ЦЄDќu26ХI­СЋжЅМЊz}Кѕ{8”?ћєrssЩЮЪТсpд›XЯžНиГ{ЛwяЂmЛvЂі@ С?ƒСРњѕXКt)йYYxќЧзПМ›ЂЊю пНЊЊ(*h?Y̘з^{ “_‰Э“?)Б   RZЕТ‰†РР@,uмШџKо‰,Ј‡ввRі8€ЊЊhuzdYі*I’Ф^ьХ^ьХ^ьХ^ьХ^ьџgћZ;­R’ nдxЗuыжtMMС(ЋUZэq’нЛwу’‹ККЇJž)зО,йcёBЉмЊЈ рRT\ ИTp*рTTя{Кl.›ЂRуЋ ,N•Jм[CaAŠЫ%TШПˆђђrvяйMjліюЬ@ СљЄЌЌŒ}ЛwбІm‚ƒЮ:МFЃ!<2Š9 ў’т#К ВŠ^RбЫ KюЯZ 4’ћВ ВЊЂ‘A’hиšЎгSЧЎ&јз••E‡Hjб?сXE @№ТR]VЃс`z::Д?‰s~ЕV4ЩŸCMM .—ыOѓYZZJЕХB\“&ч^–$›5Ч(S @№—ТHГФfdeЄ7*F‹FVаЪ “4шPбiTєKd$Ё•Ud 4’ŠF–q[Оdщ<‰.›њ6› ƒСpNa'=ё$ƒ ЄoпО,пџ=МˆттbІM{хЫ—У-ЗмЬ'Ÿ~†FЃaфШЛЯ)nЃŸўт-@ јKтo6cђї;'R&33Э‚ьЈAВY‘э6$— йх@V\ЈŠ­тDR$\HŠИTеsЬэf^оЕm ЛЖoeїŽmьйЙНЛvАoїNвіьцРО=ЄяпGц§dgfp(ћ G"яшŠ ђ)+)iTEќєгOŒ3љHс IDAT†!C†rѓЭЗ0uъд“^<іWeУ† <ѕдг”ЊŽттbоyg<ђ0Ÿ~њ ЩЩЩ\tбEДoсМOцхх1щё‰єьо)ЯMі9WQQAыф–М=kжIсJŠ‹џШ#tюаžфЄц ь5ыз­УnЗѓТ”)tюаžŽэк2ў‘GМ6їэнKЛдж$ЦЧбЊe РяПЂ(>qЛ\.}јaFн{ЯёоŸФј8я6aќxяЙo—~Ух—]JЋ–-xшqX­ж•eёЂEДi•BГ„x:ДmУmУ‡ГsчNяљщгІqQз.ЄІ$sгѕзs03ѓЄКИюšaм>тж“ŽgЄЇ3xрRZ$qЯнwS]U@ZZкЗЃYB<Љ)Щ 8€oОўк'ьДз^Ѓ]jkzvяЦпя=~ћˆ[}ъ 1>ŽеЋV‘——ЧН#яІMЋzvяЦќwп­ЗНGпw/з в њОЄgOууhб,‘>—^Т SІPQQс=ПhсBRZ$‘GЛджм6|8ыжЎmPkh_ЈmЃ.:њћdёbњ\z Љ)ЩмzЫЭфціžKNj~R;vЌоОdГй|яoж“ЧЖ­[ы­ПњђRћ0gц›3ИђђЫ6xыз­;)‰ёq8Nвгpгѕз“в"‰нК2ѓЭ>ёulзЖоќчччѓwў—6­[qUпОќєгo˜-›73dр@кДJс–џмФсУ‡\з iЫSѕчm[ЗžTЦо—\ €гщф™ЇžЂs‡ієшж•ysчˆб„@ .8!!!DDDC\| M›вМys’ZД 99™”V)ДjнšжmRiгІ mкЕЅ]ЛvДяаžі:аЁcG:vъˆl4š0ыn#FƒƒС€AoР`аЃгыбыєшt:t:Z­FsЮXЙr%SЇОJŸ>}˜9ѓMž{n2ЉЉЉH’єЗhЇгљ—ˆ‡"22’Ю;„VЋЅWЏ^ДisaоГv$7—k† &2"’…‹3ўБ >ч?џєSŒF#/\ш3@ГZ­ќчЦЩЬЬрЭЗfБbѕFKpHЅЅЅ””Гш“OY№бBжЏ[ЫтEющ™NЇ“ЛїАjэZю5Š9яМЭƒуЦyуоНk7пx#+–џxR~ЋЋЊyЯНьЯШdF&/Мє‡тБGхљ_тз?6RUUЭ›3І7Ј,eЅЅtэжЛї№ѕвoIHlЪэЗЇКК€^—\ЬТХ‹YБz5С!!МўкЋ>ёюйН›ћ№лЏП’Sч%хЊЊ2fд}єшб“еыжQYYС+/ПьЎ?‹‡УЩЖЛXНn=џЙљfyшA6oкРїп}ЧТ…ёщч_№єГ“yшq>ЂсbгжmоэвЫ.cяž=$'Ї№УŠ•LzђI^x~ ћїяїЩы{ѓцБiуFŸcЇЋя‚‚|}ђ)ПmмФ‹/ПТіmлИvиPЊЊ*Зc–юн/bчžН|љѕ7\rйЅŒКї-\xЦ>жОPTTШЃ?ЬЫ/ОруєGUU6orчщћх+P…Ÿо'я.ќиЇŽЂЂЂМчvlпЮœwоЎї;ёс  сЃј?U^jя+З Ю§x§7јhбb.ОфvюйынnПуП 8­VKtt cЧcнO?ѓъыЏ3}к4вгxуЌЊЊbчžНоОР3O=I||<7mfд˜1ŒЙя>l6.—‹{FоЭШ{ясЭ›IJjС““&5ИЎЯд–ЇыЯ&“ЩЇО—,§€…}ФЎ];YЙz яНџ3gЬ`ћЖmb4 ‚ ‡ ~~~˜ $$8˜АаPТУУˆ  *2‚шШ(bЂЃˆŽ&6&†&11ФХЦКЗ&MˆїlЪš.—ЫХ{яЭчЎЛюткkЏёONNіФgЭšХ† ?ФШ‘wsйe—№у?ђщЇŸQ\\Œйlfа lлЖ§ћїХOL"11‘в™6m………H\~y_ЊЊЊју?ащtŒ5Š>}z““УЬ™o‘™™IJJ2<ђ>q8zіьЩC=ˆбh`зЎ]єя?€ > 22’E‹Гlй2dYцІ›ndиАaTVVђњыгиКu+ббQTVVT/‡ƒ‰'rјp.‹…V­Z1nм§$$$ИŸђ>ѓ ™X­VЦŽCП~§иДiГgЯІИИ„юнЛ3nм§bЗлЩЭЭѕцoњє7јс‡‰ˆgФˆ'Ѕ§ыЏП2ўћ”••qщЅ—0zєht:]ƒлєЙЩЯђ#G2ђž{ы=ПhбЧ<љдг<7љY~кАо}њ№щ'ŸPQQЮвяОУd2˜˜ш їњЧЯЅ—]FvvЖїI’ "((ˆИИxRZЕb@П~мvЧэtыжЃGpн 7`ЉЎfѓцM>љ)//'<"ќЄщЁлЖn%ЉE .Офю9’ё<Ь„‰ŸБ,zНРР@™0ёq>ўш#rssIIIЁ{ї‹(.*BUUšж)'РЧ/dш5У8vє(Ÿ,њ˜ ЛКiћі‘™™Щ7ЫОУh4ђРƒ1ђџюbђ”)žz€рр`‚ƒƒЙэі;XєёЧьйГ›ЎнКёѕ’%мzыRлД!ЕM>x>п/[Цџ €€?>љш{ХєНт xщХ9”“MJJŠWа/ќшCтI>\№7мщъ Рl&""‚ˆˆКvыЦ}њ№ўќљм?юtzЗю’““1›yёљчЙіњы1™LЇэcgъ ее"Ѓ"™7>їо}ЗOИзІMѓўнѕзѓўќљ>q{žpеїрeт„Ч˜њкkм6|ИЯЙММ<жЎ]Уьwосў1cxіЙ)zж?ž*/}ј!ц@33OАЂjЕZoјœœОќђ жЌ[€йlцВоНq:dfdHhH(‹Nч [—Д}ћИѕЖл№`шАa<ђаƒ”••ЁЊ*%ХХє0Н^Я€yrву Ўы3ЕevVжњГTo}ЇэлKЯ^Н ',<œ””VфффаБS'1(СCBB’<2ВЄ"I2ВЄ IВЄ ##K Ы*2*’g—Є‚ф9&џ™?x№ eee\uе•ѕžч91{і,FХДioщ™Šuјp.­[ЗтУpчwђс‡бЏ_?цЮCJJ2ѓчП@ii vЛwпЧ‹/ОШкЕk1›ЭЬšѕ#FмЪ[oН…гщФщt2yђstъд‰љѓп#,,œ9sцzуАйlЬ™ѓoО9ƒœœ–zžКДkз–яО[Цwп-#**Š+VВjеJ^yхežxb|АР+fЮtЇ7kж[мџИz­„NЇ“={і2eЪsЬ;‡ЄЄцLšєvЛ‡УС–-[™2х9о>=zєриБ<žўnЛэvоyчmEaњєу"ЅiгІоќЕjеъ”э‘››ЫдЉЏrЯ=#™5ы-іэKу‡~hp{VWWГjхJ>]ќ )-’шпя*віэѓžпКe љyљ :”ƒёщ'‹Нч~кАžƒyзЉАлэlќc#={ѕ:х5-[&гБS'~Zяž&еяъўм2|xНжг’’~ћѕW|№>ЧŽѕOJjAfFлЗmУсp`БX8ZчќщЪREQјъЫ/ !!!С{|Тјёtщд‘ьЌ,ю5к{МІІ†oПљ†ыЏПkЎНŽ/>џЇг Ип„о41б+іSZЕЂВВ’МММ“внЖu+йYYДoпС6ЅUŠї|ЋV­9pр@ƒл63#ƒВвR:vъ|\`?ћ M|œ  _їЋЇЋябыѕ Лцo[еЧ 7оˆХRЭЖ­[ЯиЧЮдš6mЪc&рњuˆ?mјщД}Ќ.М?Ÿюн/Ђsч.'ћъ‹/шйГ§ЎюOl“&|Нф+ŸяхЉђђЭзKШHO'5%™‹КvслЅпœtЭќwпхškЏѕБИ;vŒЭ1ќ›ј8aсюї-––” I3пœСЪ•+|Ќѓ—ѕюУєiгШЭ=ЬьYoбЃgOЂЂЂˆŠŠ"%%…чž}–тЂ"о7—kЎЛЎСu}ІЖ<›ў\—ЫzїсгХŸАiгF~љљgЪсВоНХh@  ўбUQQNЇ# G ŠЂАzѕjFŽМ‡ИИ8zѕъIяоНYЙr•їџ‚ƒƒЙђЪ+ !!žшшhЎОК?є^Їгщ !99™іэлNLL ƒ ЂІІ†ТТBвввАZ­ ~ !!!мxу lйВХgpNbb"§њ]EZк>эЋбhМjэк5\wнu$$$ššJ—.]иКu+NЇ“Ÿў™Ляў?тууiзЎ-QQ‘ЇЌŸ˜˜bccЙяОћe™muІаDGGF`` ыж­ЅsчЮєэ{9БББŒ=Š_§ЊЊjяѕuѓw*6lи@Зn]щоН;QQQ 8€­ЇX‡RYb4y{юЖякMџ3z”w€їх—_аїŠ+0 <„•+VP^^ю?‘‘QЇ_UU&Œ”жЉЉ\uUПг^MIж^У єюs9›7mІoŸоќњЫ/Дiл–‡}”ћюIЛдж<7љYДкусг•`§КЕtэд‰Ж­[ёьгOqЯ}Ѓ|хЫSЇђѓoПŸЯCŸ’Еjх ќ§§щмЅ W^ulXяЖdX­Vќ§ќМзњy>[-Р=}ЌkЇNДo“ЪЕУ†выт‹iзоэЕЦjХЯЯПNXO8€з_}•vЉ­i—кšAњћдQyy9ЃяЛ—GЧ?цЕ<ќёћя”—•3`рРFпЂcNпVzНžаPJJJЮиЧгjYМhлЗmѕZоjЙхІНuєШCzыцƒљяѓрУзз—_~С€AюѕXƒ ц‹Я>kPвггydќxЖюиЩЋЏOу‘‡тш‘#оѓ‹…/>џŒЛюњП“юiщЬzћІL~–лЗnыт3“'cЗйy~ђdюИm„wJьЈ1cШHOч†kЏхз_чю‘юux’$1~ТD–,љŠЫ{_ЦŽэлЙс†ѕНЋл–gъЯ‹Х[пэR[Гxб"ЎюпŸ&qMИєhF П…kЎНސё+.!КN…йlЦсpјˆƒZJKKq:DGGљќ œ"ЎЏЃГ9€šы)ЏГXмчdYЦd2aЕZ),,ЄЌЌŒЁC‡1dШPюП6›эЄEёAAAѕцЙ–ТТ"цЬ™Ы!C2d(Пџў;eee”——Ѓ(JНSfN‡$IФЦЦRXXXяљ‚‚Ÿz GЃбPXXpVщђЫ/Пzѓ=wю<ЪЪЪОж"гВe2&“‰‘#я!3#ƒТТBœN'п/[FПЋЏ GЯž№§wпюiqgЪя”ЩЯrша!fЬœyЦМ=z”ааа3^зГW/юМы.fЮšХшБc}жmМч^~пД™Дє ЎЛўzš5oю-чщЪRя+VАrѕцНїѓцМУВoПѕiгИИxžzњVЏZхu №ѕ’%\yU?$IТппŸЫ.ыЭ7_/м 8ЋыЅк5bЁaaо‡?ЌXСŠеkјќЋЏ(**тйЇнN^‚CBАXЊы„ЕvМ~юОч~XБ‚VЌрНї?№ЗZ­мyЧэ\|Щ%мUg м[3g2цўћЯЫ}рLmeГй(-)!44єД}ЌБ}р‡яПgкkЏВрЃ…'Нь{ЦЬЗМuєФ“O№ёG1xШz§Лwэ"ырAЎъч~@0`р@vюмIVVж™ПKЭš7Чh4rYяо$ЇЄјLеќљЇ 4iв„Є-N k44x0W^еo—.ѕоГўsѓ-<2~<пџИœлЗ{зт=њ№CŒŸ0п7mfкєм?f4yyyTTT0ёБё|ље6oлЮЁУјПЛю>п6nbйї?№ХŸГќЧХЏИ@ .чг{УŸВІЋYГfјГnн:{Мsе‚VЋ%//ŸЄ$ї`7/я‘‘ЇВ I>OЛO§р[ђЉ:I’PU %,,Œ… ?jЊMKЋет:a|HH7нt#W{хЕ(Š‚VЋхшбЃДlйђЌъЊ  р”ƒ™ˆˆвг3|Ф“Ых"""ђ”"Е>BBBщгЇ=6ўœк3&6–ъъjЋРї VƒСРњuы(--eвФ <ѕ„{Ree%_/љŠ[†чЂ=X№С<ўФ“ѕЎ!ћђѓЯYЛv-_/§іŒSгввиБ};?ёФYх?%%…o–|}вёВВ2~ј!ЗоvРЫю5]ЕтКI\п|§5[Зlf№_/­ж= O’(++cнкЕшѕzО[і­WєШВŒХbЁYѓцфdgSSSƒбhфРў§„††zХ$сM3::šoК‰=N š7oNкО4q\їяOcр A>тттO*ћSOзоpнЕ|ёе’ГЊѓššО^ВФ[oѕёщ'‹ёѓѓЇSчЮTTTœВ5Ж/dЄЇ3iт,ќи+АыuR­[Л–џрЗgяG-’ШШЪц›ЏПFUUњ]сћ:ˆo–,9ЅeЌ–ииXrВshзЮmЉДеи0ŒоѓkзЌсЪ~ЇЗіjЕdљфчiўФ6iBaa!еUUќђѓЯЬ~Чэ№кыЎуйГиБ};†А№pZЕn Рƒ?LЇіэ|,Кg[зuл27ї№њГToŸ\ўум?ю$IЂMлЖ <„пћ•ЋћїЃ@ ќхiМшR=Jч,<љщДZ†ЮмЙsQ\.КtщŒЭf#--rEпОЬ›;—БcЧpјp.ызoрЕWЇzв№luгЋM_­ћ=*L=Q•ЉДm“Š,K,ј`§ћ_Ђ((ŠB“&MNŽЃЮ>::š,Я‚pY’ˆˆŒфђ>}јєгЯhKLL yљљДIME–$Ўшл—йГпцўБc ЄЦZsrНy>џілotьа ~ЂВВ’N;њцСѓЙ6Н5kжа*%…wп›OЯž=№їЋПќuъРd2‘™™‰нfЃїe—2юYПО;mRSЉЊЊ"$$фЄ5;Оё7**ŠЎнК1mкы<6a"3пœСE=zФвoОfРР<§ьqђлЖneьшQфчч3ќж|И`ЗИ•GЧ?FXx8йYY˜Эf:wщТдW^fкєFl6’$Ёзы=YP),,ЄЂМœэлЖёЪЫ/1`р яbўSaЗлYГz5­SS)++уэйГщбГЇї|II {іьfъK/тvuІВ8vї*‹…7ВvэZ^™:€/>џŒ;Ђ(*ЏНђ ={ѕТппŸХ‹Ю’o–К”G” МКЋW­dШаaЄІІђъдWИѓЎЛ˜ўЦ4nИё&ŸІ())Ссp‘žЮ‚ї? {ЗгŽыoИ‘G~ˆƒ‘ЭЮ;xлГfёTdfdАrХrжЎп€нnw‹D­VKжЁуюдWЏZХЬ7g4Xp•–”›{˜Œє :ƒџоy—їМЭfЃАА|Š™3f№єГЯb2™0™LЇьcщ 3ІOчі;ўKJJŠWЬщѕzякДВвR‹šйlцГ/Пєў_]]M›V)ьЯШDЃбАьлЅLzђIЏаЗЗЧoП]zFб5h№цЭy‡={№лЏП’—wŒ^_ь=ПcЧFэfлж­X­VттйЙc'?|џ= <Ђ{ѓІMш BB‚YЛf YвЙsgќќ§‰mв„?њˆЗпЮŽэл8tш-[ЖD’erВГйА~=:wц“E‹ˆ‰‰9ЋК>][Жl™|†ўЌždС %99™ЏОќ‚.]ЛP^VЮ† ыЙїОQтW\  г*gюќО‰X{~Jrі\wэŘL&Оњj sчЭУЯЯ6mRЙђЪ+ЙяО{ykж,FKPP?є-ъ™Ns^*@ЋхљчŸgЦє|ўХјљљ1ќ–[мЂы4$ЗlЩх}њ0~ќc˜L&žyњ)@yy9ЯП№"‹…˜˜ІП1 “ЩФ}їнЫМyя2щ‰'БX,^/nѕёуЫ™5k6‘‘‘<ћь3оЉ'У“OLbіьЗ)*.цЂ‹К3юўTюЫ/яУ† XНf њїgт„ Ь{ї]e-„ &œ^tРє7пфб‡ІGЗЎЄЖiУ[ГпІІІ†U+W2яНљ^7еб’Рwп~Ы]wпЭ_~Х‹/<ЯoПššš5kЦИфШ‘(ђѓѓЙѕ–›Нa›ФХёЫoПc2™ащttым ƒС@ѓЄ$ю5š;юМѓŒy-++уэYoБoп>‚ƒƒщ{ХLЌуэš!ƒбhЕєяпŸбcяЧЯЯЏAe  спЇs‡і yф‘G‡ Цвo–2dш0ІMŸСуючЃ шнчrxанЮ&??ДZ ;ДGЋеMпОW0щЩ'З'Т[GмЦM7м@@€?гІЯ8у”ЛmлЖR^^NчŽМЧЎПёF^ŸіЦ9ЯЂЂЂЙуЖhЕZbbbЙъъ~Œ{рAЬf3AССlоД‰n;`І]ћvМ=g.W\yхiћаЈОАuыО]њ 3І/пЯП§цЕЖœјоД^|Щk§<‘Э›7Q^^Ю№сЗњМ<ќПwнЩќїоeяž=ЄžцЕ cЧ#//ОН{ФМїц{ыHUUffвЌ™Џ5.;;›WЇОBQa! MyўХ—Мž2ЗlйЬМ9sЉЊЊЄEЫ–М=g.Бž{лœyѓx|Т:qqq<џТ‹4OJрЅWІ2qТc”гЊukЏPoH]7Є-OеŸСmхэжйз#съЕыxђЉЇ™8aїшA`` УЎЙ–oКI &@№З@š>ѓU•IFQ%ЕИT U–qЂAвhqЂAбhqI:Н—Ю€Ђ3ра™˜|i ђѓNzпŒрьБZ­\{нѕ|іщ'ѕКxў+‘ž‘С•§њЃ?Хє.@ рЯФfГБfхrZx*ž †№Јhž§щZЛЫ†ЦnУˆBBL$Сў&tШ’‚šZї№’ћI=юF^лЌY3Яњ&E•Q$ E•qN4Ј’ŒC•qЩ2U‹CЋХЁбуДи4zбšџb,–j!К@ IЌееŽ# ƒKNuЂsйQЊЋ9rфКИX‚ќ§ЈГјщЄ­аFGGЃŠ Š*сBТЅJИTpЈ2 vUТ‰Œ]‘БЩl’dДЧ—‰vm4F“‰~јўoQŸ&“‰МcЧ ЎwбО@ @№gЁ(.ђђŽa4Яi\]Цd4aB‡е…lаcбI”ид}ЅTзџУ ’ЫsL–eY–‘<›\g“dЩѓЦeљј›˜ыlHЂAџ­„††RQVFіС ЊЋ*Няў@ ў<БЅPUYIvf&ee„y^IrЮHјшНо@ йŒц :ШЅ(ьнГ—gŒЌM#8L&В,QR\LEyЙЈ@ С_Їг‰ŸŸщ‚,…бщuhДЇ‘QЊЪтХŸАfе*т™ђм3 ]‡ЛKЃIДЂƒСшѓ!@ рпЮŠ•ЋYГv-Y9йќИ|9 ^ŒГhёb:$jQ @ ъaлж­|ёхДoзŽя—/ЇmЛv|ќё"ф‡y”ŸљхŒЈТS†@ @ ј—ЂЊ*Ѕee(J§ТшрСƒМџС‡ФЧХёд3ЯR”wŒ)Sž'6.љЎџў—&'М”U @ ЧЉЈЈрPN6Ng§я'^інwјјѓмѓ/P]YŽKQАTWђкыЏЃmлЎ-*рRсёI“ИуŽ;IJNрЉЇŸfєшћ Œ`гцЭЌлИ CPm:u%,>БVі S˜@ @ јgPО $8Е ссСT—œфсGЦcвыpк-(. 8ш4ђйy/ŒŠŠЂ}ЗюV[йВkƒУ€0б(@ рOuu5ešS›Tі'.—УЧЅМнfC~чwЈЊЊjP" ёё˜iKLL4……EЂц@ С?ž3M/t:8œŽzЯi ™3g.>ќ0 5јЭ~~~TиэЂі@@A~>;vэє>Ф“p?тSQ‘Юi_7žsэлЕ'22RTЖ@ ўЮ4Н№th‡ЦoО ЊŠŸЩDyE9ЊЊКЇ0ЊžŸLЯ?Њч'мІ5C`ˆЅ\@№ЏІАА-[ЗJLTдIЃкbaыж-tщк•ˆ№Qщ@ јпЁЊ ЙНVWUQІQ<ЫНмšIѕш$еч“'Јчэњѕы‰q;ЪhlІњ IDATб"‰ѕыжгЄIНEQ|єЊЋБX,.,сиБ<К$ЅˆF‚92Kxh(у…yaК­ІЃбHЦt!К@№ЇPYYСБC9ЖNі9Ў(*‡r’•‘NЕ й3oCFUAkБZ=z4C† сН№ЪдWбшt„EХ`єќ€ЦФФАiг&ўиБ“˜8:vьŒ€?ЕБѓa№ВZ­d<ˆЫх:х5:­ŽИј8Эцdc:tˆ§4шк”фdўІ $ЩїнмŠЃ[Щ8*їсЈHУQ™€>(9]`*њnШк€ѓžЇгIYYU••TVVRYщž"`і' РŒ9РLHH0Zю„rЈH’tЮщ–••aЗ;ˆˆ?e<ЊЊRTXˆNЏ'88ИQпЏЃЧŽžSии˜XL&гyЉыŸљ“Щtвї\BТщrбВEсссчЙПЉTW[eI’МћкЯВ,5ЊџъьоГ—ђŠ L&бQQоm'RRZF~AVЋ•’[ЖhPќ’Ђ‚ЩЯя‚•СфчGЈч Ѓ˜`!‚ >V­Gп˜Эющ…aсСTzчЪсРў§јdF#+Ш€F’‘$IUбNxь1T@QСппŸБcЦрR%\*иU Л§њ]EEƒ]–БIZlЊL•ЂPз|жX~§эwFНџ”чэ6хќ№§їјћiлІЭyIїЙ)/pјp.ВFцG& гШО."eЩ=$”ŽЏ/ЈŸI’„ЭсфW_Fq)tьи‘1Ѓя=чМь?p€БуlаЕoН9НQЂKQTЊkœи\*И\рt!ЋJУТJ2’N‹*Iј4ѕšZЋr> *kК€TBкП‚ЌЧšї^$$ЪNHˆ– І §/IЦ^sŒЊ’Ѕ”|@б>[=‰1ђЪѓіЅ***ф@к~є#~~&ТBУHlкН^еjЅЄД”#GrIЯH'))‰ЈЈ(ьv;ћіюЅВВ’ІM›ŽэPXTH\L %%Х„…е/4JJŠ №ї#їh^ЃDзбcGЙЄg/ Ж,ЫЇМОюЙ ПќLRѓЄѓRпСССєОќ ЊЋЋOИ‘™љјЃœ_QэrЙјьЫ%И\.ќќќ№її?iѓѓѓУh4bГйАлmШ’„б` РпяscWUŠJJЩЬчp.ЉЉЉH’ФЗп.ЅyГDДк3;Й5šLоtЃбˆЩЯ„@ В,ЁгщЈ,+ѓ9~шPС!!„јaаiаШnљ •eмjJ=;—ё' тŽ…жЭЮ[AjЧь–ъjŸМЫхТnЗSU]ЭсУ‡išJFz:ЛvяІ]лЖN7їШzш!223щжыR‚ќŒ^!)љф­VxсyJюо—W[ЩиЗ—ЫХђЫџ6ЇКЦЩЊ…”Y%Њ ‹аL#РVб щ_iЧž˜Œ1аŸЖMLti‚QпАюT™1‹.юцHњ 7н…6 :зOtИИ њ€KбD!UPЫаJ­1D8‰+!ЎlvŒЧšA)#ыЯ}`ъp8ШHOЇДДŒииXL~~єz4 .— ЋеŠFЃ!,4s@Ћ•ьЌlŠ ‹АTWЃ7шiзЖ-;vэ:gбe2њЫЮ]Л >i€ыt:ЉЊЌІybsJЪЪнцŠЂxE—,ЫЇ`'N/n гпœЩю={йЖm‡bюмЙLœ8бчš—_~™QЃFLrr2њ_Э}їŒlДЊКкByy9SЇNѕZЗjЗКeu:8ЊЊЊШЫЫ#33T•”–IшNАpžoь'ZžkЏЛŽУ‡ѓХчŸqѓM7ž7б)IўўўюДьUЅ>ЙmЗл1 hЕZEХЅ(чє#ёћІ-фžsžЃ##шб­KЃЪНjЭZч9ч№ёqMИВяхЛєџьr СПГŸ?zƒй#КdYFFA‚Ц‰ЎИИИѓ–еEПW№сЇл5†уƒ!ЩmW’5dYF#ЫєzvяйУm#F№љчŸГ{ЯžF[МEaкгHINСсt"KО^=zыБхў,Kрp*ЄЇЇуrЙP”Цл§œNgƒž.7›SЁШкЗ$kSсљ{‰/ЬhPиƒёШkлsl,йХ…ДiЊbд7А[*5HЖЭФ7я‡бoЊК‰Ј˜+‘›#I6TW.#ˆ[lШ&#УPRЛю ?g GўиFјEŸ“№r8lоМ“бHBB<:UQЈЉЉ9e?“‰ФФІc6› ЄЌМх4гaЯD€9€‚Т|:ДoЧЮнЛOВ\=z”эл‘_O@Рљ›R[W`Юкеѓgтѕ7Іsфш1"##iоМ9ћіэ#::š9sцј\УЎ]ЛhоМ9Н{їІМЂ’—ЇОЦуЦ7*}Г9€€€žyцТУУ8p -ZД№Ÿ’ф~rЅзыёѓѓ#""‚””ўју~ўэ.ъж?г…ГАTVWгЊUk 111”WTœзјNЇW8кlЖS^gЕZбщthЕкгNѓ>Лїю;Љ}ыцХсpрp8МŸNЇЧa“›)SІ4ZtmлОЃбyhŒјјГвџ3ЫнЊMЛFЕYкž]bм&ў–hu:Дњг? еž~5ж‰вC­чјљaЧС"Z4o~<5YvЇЈЊ^Б#Ы2Z­жmаjщгЛ7Ћж§ФНЏ,ЅIJW$еэI$&дШШ> _ЂЊ*NЇEQ% NfљІ†‰AЕDEѕZTѕм­Њ 6››ЭэŠџtТЫщtbГйнЮTЮб NE!ЗФJюбœ{в0нн АЧЊќШiQŒ‚%зйї Ї Щ/‚А№H?0QlvŸhT4H’ >ujGђO%"!ЇcХћІкaкY—§Рў˜ŒFТBCqЙ\' 0eIBQы/S`` [И9ЈДјћ“‘™IbгDLF#UUUощuUUU˜ŒFL&YY9ДLny^WUUГВЮ|Н$qьXОЯБГYуѕЫЏПa0иКu+Ы–-#11‘ЄЄЄSцэНїоЃOŸ>$$$ зыЦ‰.I’ўŸБXЌ”•—Бjе*š5k†гщє~ЯжЏ_OPP$%%Ёеj1 \|ёХ8Nв32щаЎэЛYлl6***0Ќ_ПžЖЉЉч]tеоOjjj|йuБX,шt:4 vЛ§”з‰р@3з_§9чЗEѓЦЯ ˆkTZЗJљ[Іџg—[ ўЙдеAѕ}>ƒ0kйЊ рRT\ ИTp*рTTlŠ{­—Э6EЅЦ V, Xœ*€Х­дЦ 1kU9ŠтЊ%сUE!Щ2’,Ѓб_;фчяOпЫzЊ№ѕЎZЖыРЎ[А9У0h–ЖЂ(ДJiхxВ„N#1ИGЫ“‘ZывуR_QUl'.—тИ+.хœыЂЄД”ђЪ*ЊЊЊqЙ Ц§$^UUOZNl6х•U””–rŽSьм…ђЂ1‰4ˆ€цЭ)пНYЏЧ?1—еJоЊUФєы‡Њ(”эм‰ZщЎ7—Ы…ЊQЯКИTŠЭк@T їg { еY{qУQœЌб  ‰ЦлS\3Р#r4aDЧЇRДy жЃЫ0Х jpкљљљ”””з„šžњзддxМtZQTƒо€бh 00ЦнЁŽу/НгzŽk›k54ВD~AmSSYџЫ/ЄДtїНм#GИьт‹Щ/(@Ѓе ‘хЦ}ЯдуS eYц`V;thаЏіэлћЎёњљg’ъ<$9эwлjѕљЎэмЙг;˜—$ ›ЭЦбЃGНпkEQhлЖ-‡ЦЯЯН{їЁ(.ДZ-ZVCXXиY9г‘%‰?$ ВВ—Ых]’$QVV†ПЩHvжA, :t@’$ДZ-ЉЉЉ,\Иmл\АлxH ™_~љ™мУɘЭєЙє’FпSы~Я‡звeБXм ъ‰ПЊЊЪ]ЯZ­ЛŸŸуН§†k‡]рпН3чщПЗјŸЄѓWKџЯ.їп2]@ 8Э8й„Y~Z ?LhqR’wьЌlкUп}ƒ*I(Њ„Š„"Щ(Њ{іЁCв "уDƒKжрД8Е:=NYMk€˜аѓRЎъЊRЈѓВeЉv€WgpІбhащѕžЇп 7№Wш{щХ8ьыxoэ КєКŒъЊrO8ЉuъЖTI’„ЫЅ`Е;YН5ЋAa/iSQ=S •SZG†ФбЃGЉЌЌТщtbЗM*22’ввRl6ƒс‚ДƒŸЩDЗNщжЉу‰ПvњЄWtЂnЋЊЊМг ыŠe@ ў­фЩЅдiCЋибЙьh4.;ZЩ­ЙdЙacqmП!зЂ?~џ}ћ <ЩвхRРцRыЕtUКЊЯK,e…Ш.Лw€PыŠЛіщwэдBНС@ddЄ[tщѕFƒ‚Й}Ф-ј›Пу§ѕПRUV€FnИЉ’$сRЌ6'З‰?>Pѓќѕ†TХcёЊБЗt)ŠrVгЭ,V++VЏ№zQ+**ЂЌЌЛнбhGЇгz­{ЕE‡УIMЂЂ"Вr‘q0‹ŠŠ ЊЋЋщwХхZ{ЂѕѓУKХО}hŒF жЏGD“‘u:4~~(Kлљ€ ѕ| (Њ —г  4рЊ)Ѕ<џДў.ќcВ(8ЌTt'qm5}˜Š]ы0Зю ’ЛUєRkєЦ?А•ўŽ)Њџг-)-ёZOklЧзo•WT`4 ЁИИЋЅКV§еjХbБ"IВїЫЅ(j#EЖ›авіРZSCг„ІlјymлДХZSCYy9­R’ЯлЭЃ>kж…\уUз­ОVЋEЏз{уЈ§^dч:ЅшЊ{/hšпˆ‡VЊwк\]iЕZ=l›Эцѓ ЦjЕ"I’р>_ьOЯрh^>NЇ“ђђrJJJшкЙ;v8яЂЋ6џ‹х”зUVVb0аxжбž+iщЄШh№ѕ­’[аЊющЯ–э;wБmЧЮ_пЉC{:ЖoїЗЭЧйІѓП*П@ ќ]‰‰‹?ЩвЅ“\ькјлйБџ*r:l(іšк‘бё5]дYЯЅбряO‹Є$V,_NYy9vЛ—g!pгФDЦ bЬ ›<ЂЋaтК,ЇKЅЦю`kz^ƒТЖMŒ№Š.UUQЮbMWAaрvƒl6›)//Ї  €вв2яSuНо=Х№ИшrbЗЛ-]”——ыd…EE4?їAЉНД”ђН{Щ[Нš–#Gbjв„€-ЈЩЯGыяOоЊUд=ŠˆЫЅ :ч&<œNœд сLльG@+)TWK8ьўDєќYAMў ВіПDГе8гŠЈЮйƒ1ЊЙЇ}§0њЃ|oƒDWUe%FƒЛнюYЧЇтt9бiĘЭ””–’œм’ˆˆьv;[ЖlЁІІНчeс.—а6jэ^}"&аlцш‘#4kжŒж)­(((@’рш‘#šЭvfбPu!œjдЕtе ъ|Џыz<ё:їћГŽПGK="їФЕJЊЊbЕZЩ+( ЈИ˜&qёžѕ™nЖџ~ТBCЮћ{М\.{іЅqѓЭ7{эоН›ƒ™чџўъqšрччwЪ5]ЊЊRYY‰NЇѓ™~y.ќќыя'9sЈѕBkЗл=ЎљЯl˜2eЪ]+WЏ9ыМ\бёПЪG}щœиЮфHCˆ.@ №ў:žЗ˜ў2ЂЫaЗcЗXНƒ-ЗЧ@ YUqЉ‹‚,Ёгщ  УшчУaGqКp) .ЇKK;Е'џоg}§~œЉ:ХыЎжве:!МоjЏ§qRыXК.wxUUЯЪвUT\Œ,Ы^+WUUеџГwпёQдљЧ_3Г›lz %Ё„оЄŠz Š vАќP<і;ЛbAEядѓєЮ‚чЇой*и{Ч ˆд-=[gцїЧl–$$йЩюlфѓфБ%ЛГ3ГГ“ЩМїћЯ—ььlцЭћSх˜ѕЎЉ{т—m•OOOќнОcgЬЁЫ)]ОœЊеЋёQњ§їt<рjŠ‹йИhy‡BхЏПZczuC70B:Ібђ“бЏ„šђpgхтЪШ!)Г€Єœ„ЬЕЄ–г1Џ†ВŸoЁуЈЧЌыЕTЂUз“пХE \G ИQ ?І™Lzš‹me?лZnUU%ЉЉ)TUUЁЊInЊІтvЙиБc'§єЃsЇЮЌ\Е’фdOфD5))9ќ™сЧ ccuьи‘MХ›шоН;:ubХЪ•lйВ…т-[(Ш/HhрЊНЦЫЩ UoПjфwЂБВэЕћ{mWbkат]KQтКЕ-Yu—]{эVye=z2rфHРъvXRRТsЯ=ЧIЧ›moš&K–,сшЃрћяПgдpчOx›6m"%%ЅЩ№XnблКu+555ЭVђŒf`џО-*ц0іп%l9|X‹жхЈ GьеыбвхДжћBˆіЎM„.аC!М~oнГ2k<Ј?_§АŠ›JТзŸ˜˜І>™3MЋKŸa‚nшќЖЅ_ €в‚oФ г дЉ=Gl˜лъЎКE5 rmPKZ}юЯф)S#?oлЖž={ЖhлѕяпŸМММШЯkжЎŠљsаkjиђю7VЈ6Нў:›/ЦдutŸšѕы#Я™`ЕtC˜fЫv#-ЕЅ5[ЩJ_ ц:Ь %) EƒdеtЪ‡пэz/)ŽЄь' Cѓc$х &ЁИГ T‰[I"Xi/tUVV‘л1UгТ…44г…aш˜ІAЇМN‘iЋ+ЋшоН;ў@ 2ЦQУсѓљЌ5%ХƒišlоМ™‚‚F ЮGLfV&))ž=ђ{щTыZню…ЎH гФ­ihš†ІЉ‘аe Эnщr0tеFQ…sЮ9ЇўКK—.хЭ7пЄwaa\ƒR7EQ† Hye)))ј|>ж­[ЧIЧMux9VИsЛн‘}ЗБ/‡***ЩШШ@зuмnw\-{cўcў][јѓТ‘Gо&Цj­ѕh+яW!D ]†aR^Б“лwђ№“Џь:іІCŸ§#Aˆz'pu ™ РѓoОЩв ы8Ќ‡НЗgЛЎя˜{ѕХёдЕ`œЎdOJНыDЪЫЫyђЩ'[ДМkЎЙ†‚‚‚zѓŒхЬ4рIЇ"#ЪQ\uf ƒ‰ Щс З<Щ„4щ ЈJHЧ4ZVL"kШŸйДђЏЌЏZ‰jTЁтМѕ>Kе•NFп‹ы,›ІIHW Ѕ!вРяЧ№{СэЧФf0Q‚Ё .MУэr…ЛnBUU в’ЙvЈW/жўі[$P7&--A9ђ{““УЖэлшиБ#ЉЉЉЄЇЇ‘––ОGТ•“н–уo,€UaахвPU-мвeu?TХъn\џ—=ЎахrЙъ]g6ў|ђѓѓщгЇЃFТуёpјс‡“ŸŸЯ“O>Щ /НЬє“NtМ‹с† 9tм8’““YНz5§њіqМ+ijj С`У0HNN&;;›Ѕe4Иіѓ—+шйГgНp&„Bˆ&Я*ъUŒЗzМ™„ SЕЪ Ј˜(˜„.Го]L^ўЁš<њЗ№ЕYЛZ‹4ЭХЮеЌпXYЏхЉідЧд:щ€KЋсЇЯ>ха3ЕњL#ЎnыHУіЖpiюzЁKзuJKK#?kšF—.]ъu/мКukН’хʡ盇KscкМЃюzІtыAё‰БjћvЋ5БЮ5-‘жХ№Юd* jzZj:Ё`гtЗ`”HЮHзџб`Ї5QКkчщнќ:.M'ъŠ+ЛКсC1]„‚Хјuwц [ЫOЯHMбHJNFS­nl>ŸU:ОЄЄ„.]ЛŸŸO~~~н3і]IП™mЋP(D~~~dЌЎсУGP\\ьXobгfЈВsвп’ЯЛЙю…uC˜ЫUлЪЅЁ†[Ђ"з}…УWМлмФ*љяrЙъЕt•””0tШ`VЎј…wоy‡K/НАК№^~љхмwп},ћфSsˆc‡ъP(ФŠ•+9їќѓqЛн|ѓЭ7 0€DЭЮЮЮЂММœŒŒ ЬляОЧш§GбЋА'55^VЎZХч_~Хe—]ЙІ+žэќй—_ГeыЖ&Ÿяв)/ЎСcYЇwпџЂM›š|О[AG1ОеўT'j}ЂЭ7šжоNG…ТЩc’эуRИ:rPa„Ј*Ј˜И…p}јЖбвѕЭЯE$Ѕt"Єя *TCAЧJ‹Šb…,-ЖjџЏЊ FИtЃbZ%№mo'Уtь›н–XаTŸўydй†apЭ5зд T ЏЋ№x<‘“EАЦ•њєгO#'Ы;wF'дЂ=Ъ4LtHM#ЃР…K5УнэЌqСЌn:Ё?!г…‰B( ?oЦљЧвŠгІa€b€RЇ,ЛюЅІф]*VнCf†Š™1<9ђaКR1|?рЋ2qwВ7†RFz%[JШЩЩ!й“ŒЊЈЈšF†™з[УЏЋ­"y:елЮЕ4rНЁгПиІIZj*ђ:ёез_3bјp<IЩIЛuЯ‹GУВ№БЎXп_нРUwyЛ*”jЛЎх ЏШ}ƒ‚NЌOm Ћ-ЄбЕKшЯ_}Х‚ ˜1cС`єєtІOŸЮŸyЦбаЕfэ:Вsr(**Тыѕђх—_rљe—$dћїъй“ЏПўšž={2eЪ222јёЇŸxmсЄЅЅбЃGHЋЙюРP?ўќKНbVѕЯšHњлnЛ-Ўа‹я–/КN­6Е> чл0шл)ЄБЇB—BьСЬ0­jо^ŸЊВ2єпjнR TРК"НAKз{‹a( сqКа@Q ЂЂ+!\]nz ц№ ™UЂ^7дpˆŠŒ>%š …)ж Юn h йДюЊо‚n~Vщѓ]Aхжлц’™™ѕ5ЬК€ЪЪ BЁ=Кu%ћЁKQT† R/@5ЇБ*cuO>SRR№x<,]К”ƒ>˜ŠŠЪo|У4ЈЈЈЄ|Ч6’C‡d/6nРчѓгНGwВГ2 †Bx}жn АЁЪƒ?hRКГ<м%Яˆ—UjУ—BmћeYёЧ”НzIƒа3тЮ†4?„ќшЁbBOЦ`лЁЋ(TD0 Щ•>СWIё$cUUеьиБƒВђr:wюDNN‡†пБ“ўEEИ4 наљщЇŸЉ(Џр”i'“š’ЪoП§FFF&‹НMVVƒDQtCЇ  лn­>1АѓˆИъŽщOшЊн‡V/tiсаУзrašќ~Д№ѕwNЏВ2ЋBhэЕeтСњІщВУуіYех иБs'ЁP(Rт>^ПЌXЩАaУpЛнќ№Ує.,tlо :v ,ј'ЃFЂџўLš4‰)SІDŠˆ˜ІIqq1?ў8чœsNмс;;3Ѓйb}{їjѕ?ŒЙ;6ЛN и'ж'к|Ѓiээ „{;…`(DiY];х2ё˜ЩdeЄYч˜€І‚кАЅkТФIЖЧщr6t™сІ+]‰ W:V‹–‰еšЅсЩУ§ ƒXЇ…ТЇыnнz]Е•шjэмЙ“›nИ‘@ @JJ 7п2gЗѕ …BфчГuЋ‹ВввШыuн~+г–-[qЛw}<№~јadК• .EQHIIс№Учј>ŸЪЪJЖlйJnާы€LЌ–.EQHOMІkЧdŠW-чЅЇžbћіЬК№|z@Р"U R‘ЊГMwЃ%ЙиБЃŒ`а*ЛюФ.‹тbWљƒ`ШGJЧИ4дЬЄЄхb>а“A р­јŠjC!ркфŽіZ r:фтё ŸLgdfX-,ЊB—ќ|є№ЗПŠЊрvYн&•КAз4у^[6oaблoЃы:eee‘ЧѓrѓЙЌТ(ў@€Вђrж­_Яђя­qwВsВqiЧLœDЇЮb [-<ЁЎ [ЛЪь-jэЋmMjќ‹‡:н U-Ф4UЅММŒЏОњŠввВШрОЩЩЩєщгЗE_n4І6мд4xзя)]Кt! ЂыzН.МN”ЌЏЯok~cъБЧтvЛљх—_<АТў ЄЄЄpќБSxт‰'1b#GŽ$??Ÿ””JJJXЗnЏПў:~П?Fу)\2эФулмХ&№l+ IDATпЯ<Ѓ]ЌO[{ŸBБЏ …Чъеѕу'…№ГЅИЗKC4ХФ4t'КšЕѕгу™CИЅ+RДаъ6h„CAј1+p™жxК]с,dU”Ч4AWLkь\›ыЄы:Ё:ЁЫ4MМееѕК]д­кюЁP=гФФ$ Ђišе5Чцr7mкBjЊU†<pйe—БpсЬ›wIIIИнюШрШЕзЗдЖšІЩœУe—]ЦцЭ›щзЏхххlкД…мь>vЯќЌxc˜‘.–@ŠŠJЖoпСіmл)/+ЃЊВŸЯЯчЃКк  1 …є№њ&сбЂуи aНШœ.П#ЈФ“кŒ˜>@гЎд„*№j‡аa№dT-Эжђ]šЦ AƒиЙsЇu ‘ЊЂЙvuaKNё ЄЅE Жд­‚ЉдйnБ*++у“O?хєSЇ“œьсљ_dУ†$'%qмБSpiZdўЩn7Ч;…gўћ,ЁPˆ>Н{sТёЧQSSУoНХФЃŽ&33Ѓ%gњ-b†aP\\\oКввR:ффио.—kЗВкБЛъ†Mг"3ЌV-•Э›7sўљГ"гƒ}ьQђrscќЬШ:еНf `ѕoЋ ‚|љЭЗŒ3&2ž—ЊЊlнК•ЬЬ м.WмХ<JЖ”––Nnn.КЎГfЭІN:к‘y7ЅWЯž\tўy|іХ,|§uJKK щ!:vшHЧ8щјуиT\Ьѕз_@їnнHvЛКNqЄVљ+П/’ЯUБ—“’““Љ*пiбhx>до“еєІЂ*&AУ:ЙеТgЙV7BS%|нVmЉ5Ц’CГZшTLUХе‚ЏтuC'XЇ{ЁU%O'Єы(555ЛЎP(„?ќMИa˜C!ђ иPДбіrЫЫ+иВХ„йяїгЕkWЦŒCЧŽHNN"))Щ*kюrEJhз=?ўpEaѓцЭ$''Gцй’}Щ0t4еŒ ыїћHIёаЛw/rrВq'Й)/ЏРыѕтѓљЈЊra$с2џ:С@Шю…JЃЙ\4wИ*ЁjbšЩсђз !ГwцўduЬ#-Їeнaвггёx<ІІЈVЋ‰Њ Љ ЊоЦ КvыЧтƒ&9йz_=zє`уЦ"&MšиhYђМм<Žš0З/І{ЗnЄІІrрЃљщчŸ9јwй^v—ЮљрУ#?o)йЪˆ#šэ2Xћ\З№ВWЌXA0"77зіrfHOЏп›••офJНыЗLгD7v]KW^QЦ‚Ч ƒL8ьАmwУ0ЈЈЌdЫ–RSS#нъ\.КЎ“‘‘СЏП­ЅcЧŽ}єб <˜ВВ2ыККЄ$VЎ\IчNлжЎ_ЯРqЛнЌ[ЗŽммŽ‘псDJNNbмЁc›|ОGїn|аq/'Z!&їб8 l4єюRДЉИХЏыVЯ‘‡п+з!жх%тН !D;Hfдm0†ПАЕ†– 7м„џп&BWIiЫ–ЏВZLТ-9nќ&Є(0œŸ‡ћ|сщŒ: %К .еХж [ьŸђ›рѓz#]Žќ~?С`ЏЯG’žDeeхn+ сѕyёћ}жЯС •-К§АCFжћљщЇŸцШ#ЊКм‘oфk‰­н†a2yђdž~њщzуњєюбЭў ˜[ЅАc;JЫШ№(дјUj|:Й]z0ёи№zНdffQVФя3№љ !HNUp)žЂ‘™’B‡Ьd”D$E%вСIq…C‚–ЄсqЇ“œ•ѓЌk?kУ0p)jmТ&# SжoиРяъЅ ызsРш§щлЇщжЩСƒQМɘѕ6АџўЃ"aь“O>kQшJKKЃ_П~ЛОьаš.ѕЏЊ*ЁPˆ@ ylеЊUј|~rѓr[єžнn7™™™tщв вr[ЛœM›6Y]:ыŒпщv>`mлОЧ,РЅ*7uJ‹–Џы:/ј'ЅЅЅЄЄЄpЪ)ЇдkС6 ƒЛяО›@ €пяЙP.лŸЮO?§ФлoПЭ™џwšcћAQб&?ЗлMII хeхмћРƒtяжi'яhA“–.c§†1НЖgю~иЁ-~]УBЕъr‘.œЕœ.Аёнђяc^Ї‚GkЏCSЫkИЬf iHшBћ™ЋУhњ2#—УЫŠIя‚ дЭаЉНМЋЖBЁ]Е]]XзpЙУЯЛъ<Џ›VЋ—ЎЙј ћ'чŸw.<њщiiИ\.*++Йъšk ж7фЛЎ`0HMU5>Џ` @0)‰тттИ*эиБƒЁC‡“IRвюЁЋaїТœœvьигВеЅtKЋ&XSF’' н„ЎC йЄuЬ"еД*ъ†–jт1p*ІЫtю—Ч…y&eлq+Yѕv(yељЏ EQ1№8Vа"rrkZЅ№•џnVVUђЩЇŸ3`@_–ї=( cЦŒ‰њКУЧчйчžунїоcша§јљч_ЈЎЎvvд;h‘3.—‹+VФИ€HЫв AƒHII!55Ч)ŽёЫ/ПXЫlPсPUUввв(*.т?O>IВцbЪфcbицU”––2ў|мnw$p[е9ѕHзaŸЯGMM 555”——ГvэZVЎ\Щ–-[8mњЩt ‡F'ЄІЅRUU…лэцР$;;›ў§ћ3ў||>?Љ И]ї$ќяџ{ЃŸqн“як[н–ЯyѓцХКЂвhŠг6r;vˆi=шПзЎCЌЫsтНџђУr9BьгЁ*mЂЅЋЊ&@EyЕuвešЈŠŠ†ІL IрQ `@ВjѓЈ§о ЋUlЛ™I*eхіЋјwмT гр?‚ЁЌ\Й’ЄЄЄШ Yэ hУnX›Š‹ Ќ‹ЮkЋІgФ>˜эр§2d0™™сЎ…ЛJh7fиА§јхЧяcZ–ІiЄЄxШЯеш˜­[УЖ5RИЃЩ(Є(@* n$%Йw+Hр|јRЌš2ћФ.€ƒw0}ќ1ЫП_N^n.ЧwЌ­J„šІqьдЉМЖp!??ї.—‹Уšщ&цŸЯЧіэл щFL ррCЃhУz6mмHEEEН§LQ6lи@‡н+ѓђђ8fђdюЛя^6Іхgfd““Уuз]gkПvЛнx<zvяЦШсCщ{тёЄЄЄ8К]{ВtщR ЩЮЮ&0oо<њѕэуhрШЫНšн~CЧєКЖRHуїgžбюжЁ-Мg!„ЛђZЄC^Йз0 `б›opФб“mW/Ќ ™Tъ0ЃsлЖlŽЋ…gењЭМОє{Ћ+™ib˜ †5`ЎiЂ›fјzЎpх ”ШxIŠЊXЇbЕ)сЎbSNџž]лќЂС@ŸЯЧЦЂMќјуC!‚pЗ“@Рjqг\.’мVИЉ-Д1d№`ztяŽ'Хƒ'9ЙйЖлЮPЇ‹U|yЅў ЗbяP]]]ЏHFSGŒмМ\rrrb^ЮЖэл)++krџјёЇŸ#БКЖЫЃІЊnэЪЭЭхРFЧ5€ЙЎыTVU5jUфdыwЊЕіух?ќРч_|E(Ђkз.Аџ(Кьuћ‘Њj|ѓЭWtяж­оиv 9^ъ:E›Š9r4†ЁЫ/БBˆ„б4МЮ]yzk:ЄКRUЋ‘Ч­шќ№Х'tыкЬŸ.y=рŒџGРчESL\uЊтLѕТјѕяй•ЋЮьк>?PUEѓx№x$'ЇШ'D;уїћйИ~AПЗлuњвВ2VЏ^ЉЈ$%%EТšiš(Š"їr/їћш=@ рУЄ_ПОdgeй:ЦШ1CюхО§+b=^4ЊтNdŽг‹P(ЊFџƒ№ћМјЅдАэŽЊYЧ€Ÿ~јžP(„Ыеє!ЉММ‚+W0tјHВГГeу б•••ђуђх 4ЬЬцOЄф˜!„/ь/œеАrЁѕџ=К***:b$>o5КЎяБФыѕЂы:щщщmb>BД'FШРєšіъЭп}K‡9MNЛnУ:FŒMПО§HMK“'D;TS]ІjќКbУ† mvZ9f!Ч ЛЧ‹жАGB—Ўы”–•‘’šJMUЅН“Г№Е_vК ЕФХ]ЬД“Ofђ”)mb>BД7!#HjZ:ЅeedeeЂiZЃгiŠBя^НЩШЬlбќЋЋЋ1Mƒєє йиBьх223щеЋ7П­ZuкXBˆіwМp”йроЉаKWGУ0№љМКŽiж/…јьГЯђєSOГmл6КtщТyчŸЧ”)S˜>mГgЯfџбћ;Л]LsЗѕиSѓЂ=2Mг:&F“ЁЫ“’JZ -ЩЇŸ2 /ОФб/DМ^/))rЊ{BzF)Љб[Ўb=f!кпё"іdЦ6NWЌЉЫ4ЭzЏй9СЊk†Быu?џќ3їпw?wЬ›Gџў§)**"##У0 ƒІYozЇвЈi80_Їц#Dћ^ЭKyмяї3 o>\і………‘ЧЧќ;цнyуЦЧtјWrыж­|рќЖnН|dBьЉЃ…ѓŽfžпЙcgž1ƒSN=•Г~6[Жlс–›oтЃeЫШЬЬфќYpЮyчЩЦЂ=/Ђф•цЮџNb6rs&tХН!vЕ ­_ПŽЎ]Л2nмatэкЅо4^pSІNс–[naіьй|ќбЧЄЄІpТ 'pбEpз]wБlщ2ЪЪЪшиБ#з]cЦŒ ЂЂ‚ЙšЫgŸ}F~A>х‘Њgžy†Ч<ŽЎыtаAмrы-ЄІІВxбb,XРцЭ›щмЙ3/ОєbГѓЂ=+*кˆЊjфччяімІЂ"E!П `Џ}КЎябыP…изЌ_ЗUгшоНћюЯ­_Ђ(єшбУБхНБp!wоqххeѕџљЇŸшп7о<‡хп}Ыхјc=”Ш‡$D;=^Ф‘pvЛпуƒу˜ІЙ >Œ­[Зrїќљ””lЉї˜<јапјфгЙщІ1MƒYГЮч•W_fоw№єSOБbХ LгрчŸ~fцY3yщх9эДS™sѓ|>/Іipзw јЯSџсњыЏУхr…АСјёуxцПOѓŸџ<ЩкЕkxхх—1Mƒ+~Ёџ€ўМњк+мџ}Qч#7ЙЕчлќЛюfжљчГqу†zЏ_ПžYГ.рž?џyЗз$кCўсћ aєШ‘ќяПџ<>nь>ћєгШЯCbхЪ•N>ёF Fп^…?u ыж­Ћ7ЯТюн(ьоžŽ—_z‰SЇO‹<їЯ Иш‚YђзQn˜}=гN<ѕ ~ЧжЎYУє“Oт–›orty7nрžПќ…п|HНЧ˜0ЋЎЙ†=zpьqЧгЙK6Ќ_'эјxoь2Э]ю{|]КtС w[ьмЙ ЙЙyфpФ„ Ќ]Л.ВьЌЬ,ВГsШ/(ˆ:ЙЩ­=пЎИђ*|>?з\s;w–b&;ЖяркЋЏ!№ЧЫЏмэ5‰ю”;|Ф^]јwЮП‹ЙЗоТЗп|гьєС`ЏПњŠ?ѕя/YJaЏ^ЛШWЏ]ЧъЕы8yкtљ+(DЎОі:М^/чŸ{;wю`ћіэœwЮ9ј}>ЎИђ*G—wсEs№!‡4;ЭoЋWSVZЪˆ‘ЃфЂ/bO[u—i‚Iлjщ2MƒоН{qз]wђьsџЃxS1sџ47ђMxн–Є`0Р=wпЭфc&sд‘GБrХ С@ЄU гŒќ?3+“ЪЪ vюмatъ”Wџі№Д/<џ<'Ÿ|2G~8/<џС№ќЬксзD›мфжžo}њітЮљwSМi7мpххeЬž}[JJИч/ЁWaVoщ;іP 9ъш‰L=і8^{ѕ[Џ+(шF=8жЛ5—Ы…ЫхBQљ+(DFŽЩ=Й— 6pбЌY”••qсЌѓ).оФ}§+У†oеѕ)//чт /ръkЎ%//O> !фxсЎщ2уzЅйDс‰Ny˜9ѓLfЯОг0qЛн„‚СШєo/~›яО[Юўѓ$YYYќё—[Ё'м2e†џ  `&r:рrЙ(кXTЇЖuqнцтЭ<№РпxьБGщлЗ/џќчlоМйšG8ЅжЮЏЙљ˜RHCДsŸŸƒЭЕз_Яќ;яфјуNрЦ›ч0rФ~ŸcЫЊ­t ъЏƒппdФю=КГт—_ЌcCƒь›вБcG***š|ою|„›8iГoИ‘ywмЮAс*ХsnН•#&йЊысѕz9ћЌ™Œ;VŠh!Ч )ЧФnr9ЗJfLгuОхўёЧŸ())aР€ƒ.\H=0LƒЎљ]YВd)нКwЃКЊš`(˜С(Vа2ъДŠеЗa РФ‰Йїо{ЙъъЋШЪЬТыѕaš&СP€Тчї… @ZѓЈ­z™_3ѓ1Є†xН5ќёёєўУяЯ>›)SŽЁІКЪЦqСД}шsЙ\tюм™_W§JП~§Ћ*йіэл)шж­бЙЌ[Л–Ў]­"™lпО-њЊгš•+0 сrЙТѓЩ`ћіэђС ‡ГЮ>›ЂЂ<љяsЮЙч1уŒ3у<яhљ!7пx#љљљм|Ы­ђбЎŽБНЎБ)Ь&nѕBз{‹a( * A4PT‚ЈшŠFA—›^C†9•Й0]!ЅВЂœџ>ѓ ызo@г4† Ь-ЗмŒiœ§ћпsлmЗѓж[o1nмa\}ѕU|ёљܘqЁPˆœœВГГТѓЋmu2" 4 ыч?ќсRzшя\yХUдддаЉS'ђђђШяк•ГЮšЩеW]CEE™™™œxт ˜†БЋ;fumj>uЇЂ=ЋЎ,ч’K.сшЃ'вП__Њ*Ы›?(˜БO8ё$цп9єєtВВГЙџоП0bфHzѕъ™ІЄЄ„’’>ўш#Оў:/ПњЃЭ“џњ7ƒ!%%УЦяovNМіъЋŒ>р†ЮЦ xё…{шЁьиЙCv!bp§ 72щ˜ЩŒeуZ*‡—[Нšwо^ЬK–X­чšІEО\BДГу…нsГЙюКЏw$™0qК !B†‰пнПnт7L|!№šPc4žцbyuЛфtаAtаAЛOoš аŸЇžzВоуЗо:Їбi}є‘zѓ~ц™Ї#?{<ЎКъJЎКъЪн^wц™gpц™gьіјХ_ИлК67!„ЅЊЂŒТнЈЌ(Г}\АпЮeЙъšk\vЩХј§~Цz(<Ж ђќАУy№opчЗSXXШ>Фр!CЌ/O.П‚+/џ#ЧN™ŒЊjєшй“ЬŒŒfзSг4nš3‡;nП` Р5з]Ч™3ЯтЎЛясоПќ™ыЏН†:pњŒВбBšІБџшбЖЯ%œ<Чњілo(//gдˆ]з„œ<}:Йї>љ`„иЧNНІ9{јыгж7ЫBˆН—з[умЃ‘юЛIIIЬЙѕOЬЙѕOОцŽywrЧМ;}.''‡'ў§dЃЯ­лXљзЎ]ы§|ъiЇsъiЇз›ўфiг8yк4љР…HА–œ74WЈчБЧЏїѓДщЇ0mњ)В…hЇЧ уMј^БўЏцЇKU5Jwь$)9Yі!кБd‡элЖЁЊZдiЋ*Ћdƒ бЮUWVкžVŽBШёbOQ”№­6ћь‰•а4єєtОјќ3RгГHNіШ^!D; \Љi|ёйчЄЇЇ7Yq Х“ТцM1t]6œэ”ЎыlоДбжyƒ3„у…нуEьZГza UU%;;›5kж№цkЏ2bџ§ЩЫ•Б0„hoЖnпЦ{яМЂB~~TЕщяr:t МД”еЋVаЕ iщЭN/„иw†Aue%›7mЄМЌŒŽ:D}3„у…нуEт‚X…4bžqmyПHѕxш^P@Qq1‹пzГй1p„ћІЬЬL:wюLЗќ|R=žf#)ЩЩЈ˜ьмЖŠвRйxBДCЁNŠЧc]šхМCŽBШёТюёЂёˆ[)ЦЪХУ,ЄЁЊ*YYYx<:ххсѕzeяЂIII!3#ƒффd[п@''{Є;ВТ69f!Љ%ЙЬ‘аыcŠЊтII!йу‘RыBДCŠЂ „–#€B!кL Šѕм$RБАўџлФˆuOМ„B!„ЂM$ЏиNНŸd˜u!„B!„p,Љ™ д/ЈЙˆтЈI“e !„B!„нpeЗdќв%KЈіжpфб“XЈB!„Bь+Ё*ўW™€Ы0 n3‡•+хќ /UKdШB!„BˆЖŸЙЬeъјё‡ѓШc xу…м4{6оšйШB!„B%“™Э…Б:Й† ЮэwЬувK.хПЯ<УЬsЮрЃ%‚ЂDEW4BИКмє2ЌЮ<Ѕ‰K!„B!viЄzсЗп~УГЏgмјёœ>cFфЩБуЦЃрзMќ†‰/^jŒЦУ\,6ћ5^мžТЪjWНеЋ[т^юх^юх^юх^юх^юх^юхоЮ=РРд'vђв5I)ЃФоЌдxѕBз{яОЫ 7ЬцЬГЮцœѓ/РTTBFыфПЭ~{ŠВм1™г{ШˆёB!„Bˆј§МУЧŸ‹’ЙК[YЬСЫI.ЧУэѓюdќа аczЙх/|q{ ƒ;&3Љ0ƒn2d˜B!„"~=2мМДЭУ%U1цgR‘ ИЦŒ‹шFзfХиПpeЕ‹г{xш–сЂ_v’ьB!„BG юшслjbЫO&˜ІsЕ+"ЭKя,z“#Žnн’•?{\ЊьB!„Bˆ˜љZыZЉІšЕъ>ОиLRŽB!„B$0‰IшB!„BтUS\N-LFыB!„BДХp”˜зиŸГ” B!„B')އ.iыB!„BДUfЋ.Љб’ё’Й„B!„’ЙZ№šІ2~а4Уе MЉ^(„B!„ЮSънKшB!„Bˆ’а%„B!„ѕ˜Ž^>UяšЎї/ТP T ‚h ЈQб.‚.7Н† “ЯA!„BбŽc™ѕЏХЁkТФIш&„ &~tќК‰п0ё…РkBбитЄ’†B!„Ђэ…ЃDЊњЏЋћњ]їRНP!„BБ/ЇЎжy ь^НаДў/зt !„B!DВ^mv“а%„B!„ $ЁK!„B!ZФlpп<—S‹BˆНZQ|ђ |ѓ ќіlмUUрѕ‚ЧiiPPНzСАap№С0`€l7!„B4’ъє/t9;з6ТчƒТB()i~КЄ$XЗКvmљ2юП~ќБm}И> jЦЫЗо‚_l[ыxеU0hаюџы_pій­П>—\>иќ4ќ#<ћlгЯїщoМййЮЌг“OТЕзFŸюŠ+рКыюЂ‹ l;Ÿ{П~MЏыX'šoПэwЕ9ыз[ћо /ић}ўђЫњ?wя'žgž ЃG;Лn7ZлІ9ѓцС9ч8ЗЬaУ`ыжшгmкšжќ4O<_}^“&СдЉђЧY!D‚ГљІЩvЎШѕ iИœzmЊХы‰'Ђ.€@Р OѓчЗ|‹СтХmkzјсњЁkљrxќёЖЕŽЇжxшjЫЪЫ›пŸJJ`ЪxчHMy55ііпЪЪцќўЖГ ЧŒi:tmлfя§ъКsыѓуpЫ-№ъЋёЭwуFxрыv№СpгM0yВ3ыЈыбЗЫЌY•'ŸьЬ2ЗnЕїY˜6Žј‹7џeE­ьl ]B!кdфŠ/ЭЫA IDAT™сџ[џS{'БмAзсЯЖ?§#@E…ь">Ÿ|'Ёl‹ЖЌЊЪj1^zЩй їщЇVј>њhXЛЖuоЎУџ§Мїž|ЖB!„УY%ъwŒ-Ш3ћ^!чžƒ5kьO_^n/!тЕx1\zЉl‡ЖъЋЏЌАѕ№УЮ†­†оyЧZЮџўз:я+€iгр—_ф3B!кЈ}/tХвU№ўћ­!тѕШ#№—ПШvhk^{ ЦГ dД†Š 8§tыšЋжPVfuблЖM>k!„bŸ ]fКšынw­ы˜ZЊИиоЕBиqэЕ№њыВкŠ—_ЖК~ждДўВoМбКvЌ5ЌY'œ _ !„­ІщkІ>Ѓ:ЛР=|Qз}їэ™з Q—aРgРŠВ-іДeЫЌЇDv'Œfю\ЋВhkјфИь2љм…BˆИГJЌ‹ _ fдПпwКЎ\i•HеЗпТ‡Ъ>)œQQaЕ:H‘–=gл68ѕдЖQХё€яОke=њЈ\Ї*„BДR”k>о™‘ъ…ѕJЦПЗx†Ђ` b DE%ˆŠЎh„ptЙщ5dXл{зїпWЧћюƒёуejЫіпп 3N‰6RМ_ܘa]OЄ(ђйЕЖѓЮƒЭ›[і—ЫК6ъју­}­АаРы… Ќ“_^yЅeнјќ~ЋЪрђхрvЗNШ:9Dі!„"‘ЉЫfќЈК&Lœ„nBШ€aт7@7РЏ›ј _М&д –eюсKЛJK­eуЕp!Ќ^ }ћFŸvбЂ–ЯџџГК:E3c<ѕTќячњы­[Klйboк‚(*j§ЯzФk,ЄНХТ…pчpУ ­Л\ŸЏхЏЙ№B{-$=fšЖь7ЌАлGiU6ьгgїчвгa№`ыvЦжОџЧ?Zeчэњхk ю+ЎHќћр”SЌќМ<љЃ(„Ђ}g#3Цз8pію…џќgє‹фЧЗNœšc№аCВg gЭ™яП/лЁЕ\}Е§щХмјw\щж ^|бЂЂ%-WsчЖ^—гM›Ќ/y Cі !„bлћC—aР?ў}КYГьЕ2=ёTWЫž!œЃыжОW\,лЂ5МќrЫŠ˜<єPьХ'ІOoY№*+ƒ Zo[Мїžњ…B‘бЏъЊНэ§ЁkбЂшcяdeYз{nєљ•—Уў#ћpжж­{ОŠ^{qяНіЇНјbИшЂј–wТ -+ џЗПЕnьyѓрэЗ[џsа4gЇB!і–fюКќЊіOОъиœїTЩјŒ>ЭiЇAJ t тЬ<…hЉЅK­юe"qжЎЕЪІлQP`]oч„kЏЕwlXЗ>џМў&Ьœ %%­ћYиm§kТ"B!$ ЕvViКію–Ў5kьД8чœ]џЗгкѕгO№СВ чн~Л MHЯ?oк9s 3гЙ€qлm‰YO'””X@Zѓњ. ]B!$оEnjТцм ]?Н›Ю~ћСюњљЬ3!)ЩоМ…h‰œœшг†Urћvй^‰№о{іІKOЗJИ;iъTшмйоДNo;ћРЛяТќљК„BHr"Ћ˜ЛЊИлЁюЉїwц р_џŠ>]нV.€м\{у<НќВuŽv§§яаБcєщŠ‹сќѓe{9Э0ьwл›>=z5гXBЦŒіІ§ўћшWэ:№@ИђJ{гоr |ѕ•„.!„’Й–WŸ“kЏнz/МлЖEџc~ЦБчžkўЕС <ў8Ьž-{j[ВqЃ5іUМF†.]œ]ЗТBk,ЖI“ЂЬxхЋŠ][яjoВfUЧŽD ‚>nœНBЁќјc§Vјxм}7|ї]єЁ ‚A+~ћ­5шs"йJŠьЛB!іђ8ноКьtџ›:ЕёA: КwЗNр›ѓиcpнu ЊВOЕoПэL%ЖчŸ‡iгœ_П#ДŠ3\{mєiЏИТ:љЗ3ЗˆnэZћг:vт™яКuЮ­‡ІСГЯZ_&Ќ_пќДЋVY-c‰юBэьtB!Фо’Уи=‹ЉЮЭН;ўђ ,[}КГЯnќqUЕЎэВsЗ'J-‹Нл5зРЉЇFŸЎЊЪj‰•2ђЮXЗЮоtЉЉ0`@bжЁKћ-ЈбТQKхцТK/Ч}кGqІХИ9vЏ5“а%„"с)(Ц[C̘сз›{uѕТЧ‹>MчЮpЬ1M??sІНe=њЈьЋЂх†>нчŸ;WЖМНлЙгоt;‚Ђ$n=rsэMWZъќВGВ•чŸŸи‚.вв%„B"žƒе [[ `o№т3ЮW3Н' АзЕgсТжпFь§ввЌb,vОэŸ;зКGФЧna Л-0‰NвhhцLИьВшгmйџРаNlg ]B!кJЦ›­лЛ№•Wь};kЇ%ЫNУ`ў§oйSDЫѕщO=НU%ДіEП_ЖY<|>{г956WSВВьMчѕ&nюНЦŒ‰>н /Р3Я$fКvЕ7]ЇNВя !„HЌDх”FЇЕQН№НХ‹0… (*ATtE#„‹ ЫMЏ!УімF{ќёшг УlЌуiЇY”ƒб—iЇ0‚ Mž —\>иќt?ўЗо*] уaЗєxuubзУюќэŒ+—Ыъ0|8TV6?эЅ—Тс‡лIvѕш}šддФ‡`!„"СYЮжŸцК?L˜8 н„!УФo€n€_7ё&ОxMЈ1b_`\жЏЗјŒЦN Xз^s МіZѓг­ZK–Xх …hЉЛяЖJyџќsѓгнsœt’lЏXй-Q^V–иѕА{­VЂKЖїъe…§ГЮŠОО\§8иR™™ж­ЂЂщiœЖA!„h"9ЈЬцчо`{WѕТ§ЫЕ9Њ ЇŸnžv3ЕгТ&DcRRрщЇЃЗlш:ќўївЭ0ž“|'CQЂCWkД№Ьœi ЭыЏлЛVЖЅЂЕv9нК&„B8šUboVR%rs0tЕЦЖ2э][5fŒu2SUeяvФž}О/НdM/іЌsЯ _Gч-ct5gФИэЖшг§ќГНСuХюКwЗ7]Ylк”˜u(/>ўŸн@т”G‚‚шг§ёЮwНŒі™фчЫ~+„Ђ]ˆ;t™­ЕІK—кќtй2ШШАЫЫГІЊЋ­u…ˆееW[ƒ!GГaƒlЋXкŸіѓЯГ_|aLž=[gЛффX_XE+шRZъќKб‚ekm!„Ђ•˜MќSš{т[ыкBС§Kі$;U…'Ÿ”й‰2`€§bŸ|’˜uјш#ћгмzлfТИтŠжџLЂ…Ў–e!„ЂГЪ–Э›бCzєљк= м+6TMUкxO[ЖЬ^k›Mщоўёй‰рёиЋZ V™єPШсКi `GŸ>іQvЪМyіЗ“ћЛ„.!„{ЁОџžэv†ЉкЇBз‹/F/{м*)й”1ЛDќN; Ž?^ЖC"zЈНщ6oЖŠG8щ§їaЭ{гŽлњл&9й*Єi­ЗLiщBБ—?с(zѕщ-`6lюŠД–)unN ŽœhO>йv>'Ÿlї,іm=$у%Т‰'кŸіЖлЌŠ‘N0MјгŸьOТ {fћŒmЬh-уЦ5_аfШйg…BДI;Ж•PYЧ03JЕt™1ўГeг&ыфЖbэZјјcйE| d фD;ж~ђoП…ћюsfЙ XнэШШ€I“ім6š;WZ˜„BД+Бф”иЛZM]JŽвHЄЇžŠ>6WkkK-obяuбEpШ!ВœЄЊpс…іЇŸ3>ќ0Оe~ё…U™вЎГЮВЎ?лSввфКB!„"ŠёŽДбНАЉШЕћmя]mЭѓЯЫЖ"~Š=}аdб2_l Hm‡з SЇЦМ>џŽ>**ь‡Тжьоз”I“ь ЏхЫaж,ЋZc~>ьП?\wЩО*„ЂЭкОu+хЅŽЭЏm—Œ_О~ќбо‰Lqqќц.Zdя§–•СТ…В7Šј  з_/лСIЙЙpеUіЇЏЎ†#Д^cwpрš+8Œk ˆlзя}ћЖэtп}аБcb—qгM0rЄѕхТ/ПXLОљюОДЊH !„‰cNљё‡яйБ}‡НyлрjгЩn+зјёіЏуhЮ‘GBчЮPRboнN>YvфжінwpћэЮЯїКыьёфДn€чžƒ+фѓuЪѕз[уъйmMбuИї^+œ}6L™b……ддњAыЛяр7р‰'Ќбщщ‰йwc•—gНчГЮJЬќoПюИЃљА{ц™•emo!„Ђ БКісЃЭ-L]Е?†Ћж>цPшŠeДу( ўћ_{гўпџ9ГLMƒSNП§-њДoО ;wB‡ВWЖІЏПЖnNЛќђ=К’“с‘GЌJoТiiж№GеВkBЗlБ œмyЇе§ГC+xyНАcG|•KxР™/‡œ4sІЕœ.VДukѓЋюqўђЫ%t !„HА–џ§v) е••@jlsUъм7 ]я-^„Ё(Ј(б@Q ЂЂ+!\]nz з›АeЩЋrЁV'[œfЬАКkРцYГd?ё;ь08ѕTxіYйN9тЋ{лмЙ1ŸM+hэиџКœ~Ке‚ж§ѕЏ0b„sхѓСъЊэѓй›vѕjјс:TіY!„ћHРЋ_НаФЌК&Lœ„nBШ€aт7@7РЏ›ј _М&д g›€шѕєгіІ;цШЮvnЙ}њРoПEŸі™g$t чмs5`oMl ЇќщOАqЃеpO7nЯ.?š§іГ*i>ј sѓДsќЌkЭ ]B!ƒZу5Эi›е §~xёE{гžrŠѓЫ?ѕT{г-[&И„sКwЗЎ-Юzь18џќ=Гь#Ž€з^ГZфлВЙs-Њбвn˜mmX!„"Ž€зXэ@5!sŽЗzс[oYЃёxриcпZгЇл?Qю`ТIз\={Ъvp’ІСЃZ-‰­yноЙчZЧВЬЬЖПrrрЖлœ›_K_–Сš…BДvВq3эЮЛQJ[[mщВ[Fј˜cЌŠ`N1њѕsv]…А#%ўќgй‰pѕе№щЇ‰яЦжЙГUrС‚Нk ЖYГ`и0gц5q"ИlжiъжЭ:ц !„ћRРk№Xл ]UUіЧРВл" ЛѓўцXЕJv0сœiгЌa„ѓіпО§жЊщt‹bVмx#ќњkbM‰ЂiVQ 'ињюЛ­J‘B!Ф^™АšK^ЛnmЏd|I \{­НiбЕАжЙчкяŠTQ!ћœpж_џ ЃF9[QNь ГfYПуЏОj•LћmћеіЮыCЌъ„gž™˜–їж4~МŸ>ўyЭŸouќёЦŸwЙЌVнгO—}R!Ф G‰Ы7u;š82N—УЕ=њє[oнѓŸMяоЮЏЧ~ћС-ЗDŸЮЉ.>БHOЗЗŽN_Їђћп[ЗЖш_џВn­iи0…Zw™SЇB—.бЇ5ЪйхЎ[ЗчТзI'YЗъjјш#јь3јў{ЋšоІMVЫЛпouLKГЖOЏ^0dˆUщєаC!771ыWXпИ`Бzю9чЖя‚pкiVeФ?†ђrЋћхQGС•WZЧD!„b/Эj-љ+эrb]R2~_Дп~mџ$#=Нm„^бњІNЕnэQZšuвФ‰В8эШ#­›Bб6Г“cЏЉŸ”z9ЩхШЛд%„B!„иWR—“Ы2лjѕB!„B!„hыaЮf ‹„ЎЃ&M– '„B!„-J^ЛџЌ„;жv2t-]В„jo G=ЉubžB!„BьБ`дљІўp(Њaм:g§эoшRžZ!„B!ЅŽ8<Ж€7оXШMГgу­Љ‘­"„B!„1j8<В `и№см~Ч<.НфRўћЬ3Ь<ч<>Zђ!(*ATtE#„‹ ЫMЏ!УdK !„B!кuАjђAГўџ]п~ћ 7ЮОžqуЧsњŒ‘зŒ7нПnт7L|!№šPc4HqцžУS!„B!š GflЏ‰њКF/ћЊ}а n[—њоЛяrёpТ‰'1їі;HIIIќЛB!„BˆН;ЮбTБ†CЛ<ЗЯЛ“ёGL@7@7уYhkМF!„B!SœЫ*Ў1cЧbК!H!„B!œљEoЖrzB!„BˆН—+9ЉщxTЇБЬ%›J!„B!ZЮ­Йwх,УФ4MLТїІ.:hюjщB!„B]m??ЭН+tUT”‘’–†Ђ(д­Џ(Jь-]лМ%^Rqњ:3!„B!„p6!Еє5&ЌоФmЈ@šІа#MЃw–žЦФЅiЈЊ š‹O>ў„C~ї;r;uAsЉЈІ‰ІІ[шк\ePцеIKвъЎ“B!„Bь+™‹м4) $k шХ•Ёz]CЁ}њѕЃx§zЊ*ЋXєж›Ј˜(Šд”№x]1…Ўm5Aв’\#MgЛ„B!„ћRьУCБ†еJVrR]UxЩOU]YAЏ^НIRЖoнLШяCSЌзЛT%жа™dx 9K!„BБЧ5Ћ(ш@’Ір ‘аАsыV КucР€ўhŠ‚Њšh (€І˜ЈJе Œ№ !„B!ФОЙ г il(Н‰ьSЖs'•Ѕ;P1P1QХU1Pˆ3tIрB!„BьГБЫ0У#ЦKЊb.ouZЙЬoB!„B‘афћЭ4­мc ›&Кa?+­њu5†a…žz-]я-^„Ё(Ј(б@Q ЂЂ+!\]nШщ‰еНP!„B!іE†ib*DКкЩ?&&ЏНО?ў˜n]Йњ—е]&NB7!d@Ш0ёVџEПnт7L|!№šАДШg­JxЖж?!„B!„hKbЩ)ЕщІЖЁЩ@AЧD5ЂЯkйЧŸ№ёgŸАБЈˆ%Ы–ЦбНаДnB!„BБ/ЊЭ<†ibMвЈѕУO?ёЦ[‹6t(o.^Ь~C‡ђђЋЏЧКLLщ^(„B!„иG™fИ‚amјjІеi§†М№т+tяжй7мШЊŸ~р–9sШяж-Ю’ёђ9!„B!іQЕ™Ч0MtгDi&}Аd iщiм2w.%›6 C”qї=wЧКT LE>!„B!ФОЩ4УзuŠ !гDmЂЏрхW^EzЇв­Х„‚A P]К3Жа•хбищ3Ќ–ЎxJРKяD!„B!DB“SьЏ1АZИЌLtн KšЋбоЪ2|!ПЕNу”ЗЦл5]НГнd$)сЌGс{<јЗ=r$;Жowќѓ9sЦ N>MvT!„B!іъдл ]†a]ЧЅVјЪMеи//ЙбЅј}~~ЃЯХКzdЙщ“уŽчm4щЊ+Џ`фАЁ>wљ.cєШ‘‘Ÿkjj№њМ„tнёЇККŠšъšИч˜wћэ|јСВЯЗџyђпќsС‚Јг-[К„97н”u}B!„ЂЭЦ­Ш­o7ћuJftО‡1нSк)Й^+–]ъоО!ЏНюz–џ№#;wv|о/Мє2Џ.\ї||>>ђ0ызЏ“=П xцщЇљђЫ/ЂNїСћяѓњkЏ&ddŸB!„h?\ћФ›p%цmЈЊ*{ˆB!„"О\БЗП<є…нЛ …"­ўѕWЮ>k&ƒњїcфАЁмxУl|>_фљ/Ојœ3gЬрпDПоН8`дH~[НzЗyЯw.ю?Šў}zsјИУXЖliфљeЫ–rтёЧбПOoН?wЭ›‡ПN?еЂЂœuц|рєэUШР~}ЙфЂ YКd чs6ћ ФИрќѓиЙcGфu~№гN:‘‘У†вЇА'#‡ х/їмУЋЏМТ ЧЫ€О}5b8ѓnП=В}kНџо{L| §zїbьСѓФ?џYяљ‡џёw&OšШ~ƒбЇА'оŸљwн‰о ћщ[oОљ,ŽžpD“ћWiiiНЯsчЮTVVrУьы9l(ƒњїуьГfВqу УрФууˆёу‘ЯmњI'qќд)ѕж%к>!„B!і~ё79[#Т0 6oоМлу^ЏЗйзmоМ™щ'ŸDZZ:з\{[ЗnхБGСяѓѓч{яры/Пbйв%\~х•tъд™’-[шšŸпь|ЋЋЋ9ћЌ™єэз;юМ ŸЯЧ–Э›#­aї?№Ёu2]Кs'ЗЬЙ™aУ‡“’’BUUЇžv:уЦ ААpЗe6n<Я?ї,@€ЄЄ$Оќт ’’’8рРƒ˜ч<ќП3mњ)Œ9’џўїЮ>k&‹пy—^Н{VїЙ§†хъkЏEз Кvэкш{КјТ XЖt)ЇžvdSб&ђrѓXКd gŸ5“!C†pѕЕзў?{їEџqќ5ГЛй’оZBяН *XЛЂžэ,gїьэєьbЏ(JUwиAD@AŠ"НЗ@zo›н™п СH‚@x?\ЬьЬwf>;Щэ›яwОУ–Э[x§ЕWYЛv oН3€ЬŒLfЯšХˆѓЮЇKзЎlоД‰7пxЯ>§”ЁУ†qлЗГyг&ЦНѓ‡ƒ—_} €•+V№гТ…м~ЧDEE1oо<ЦО№<>ŸѓЮ?ŸГЯ9‡яП›УыЏНJƒ† ИlфхеыяW\Nї=xрС‡˜;ї{Мџ>"ТУ9wФцЭKNv67џѓŸ˜?ЬŸЧ+/Н„ЯчcЬ 7VŸ{ч.]ИњškпчћЦ“O=]§sxx8С`‘—^ТŠхЫЙцкыˆŒŒфЅЧ2ђвK™ўѕ78NџЯ“ <ˆ—_|‘›ўљO&Мџ>K–,цг/ОФсpTЗw kBDDDDA^љ+Ж9ЌЁы0ЩЯЯЇwю{}-Ў*ьЭ+/НDaa!г>ћŒ† UжЬЖyыЭ7Иїўћ‰ŒŒЌ^wє˜zhт–Э›ЩЯЯчкыЎуДAƒїx§ЗЫЎyсссМќъk5†(Жiл†г‡нч>N0€ёяНЫќyѓЊ?ˆ/\И€ЎнКсёxШШШрЭ7^чќ .ф‰'Ÿ`ШаЁєще“ |РПюНЗК­NшSVіцЛйГ™ѕэЗќћ‰џpсEэёњc>Bƒ ˜њёџсvWЮа’’šТЃ?Ь‚ЄGЯžеыžyжYє=ёDќўrо7ŽЇŸ}Ч@NN_}љхћИцКыp:\tЩ%lиАЏзЫ= РЅ—ЄOя^|;sfѕy<ўиЃ4iк” “&уt:ЙјвK9sј0ЦНѓNuшhаА!ПњъЪїтЪ+9sј0І§ї5BWRRв~п‹]B\Ў=жћќГЯXМhЯ>џgŸsMš6хŠ‘—1{ж,N0€–-[2jє^zq,={ѕтё?Ц?ЎEЋV­jДu kBDDDDŽ ў ?lмЎ=ѓХ!^xшЇŒ ч­wЦэёеЋwя§nї§їsшвЅ+ ‰”——S^^Nž= ЌZЙђŸajуЦФХХѓи#0cЦє=†ЋэђоЛујvцLž|њ’’’jЕО'žHtt4_}UP‚С ‹-ЂOпОќјУ|У†Ћ>ЗааPZЖjХВeПдj_3ІOЧщt2тМѓіx-++“U+Wrі9чV. :œЭž=kŸэЖkп`0XЃ—В}ћ”––жjЙЧvэкГmыжнІiвЎm;В2+™™Щš5k2фt‚С`ѕљїъе›•+Wьѓ§шнћвvЄВ_ЈяПŸƒгщdрiЋЃ[їю†Qу}}У ЄЄЄrЩE’˜Ш˜oд_#‘Пм_ѓˆЋŒЬ,6nйJy…ПЦђrППfOз7_}‰eX˜XTрУЄ“ с €“ Ї‹Цm;івИ\NN0`хŸLћыжЎлчvyЙЙlXПž–ЭšюљZ^о>ЏзЫЄ)SxшСИњЪ+iа !wмu'УЯ8Гz7ђи#pбХ3`рРZяУщt2tиp>џьSzј/^DAA}ћVі"хцц•ЯћНV­[зj_ййYDGGяЕЇ/'Їr? {aŸЯЗпgЂ…††Pі›a ОЊeЅЅ%еЏяЙoЁЃОP%Ѕ%5Ю§ХБ/№тиіиОЈЈЈF/fЖУB)Ўтy(фхцhЗ—šчџцsЙ\є;Й?ыж­ЅE‹еCFEDDDЄющмЕѓnЇ› IDATПŸУЖэ;hмЈ.гЄ"dѓ–mЛCзРСЇД hCР‚€eSnAа‚ђ MЙeS€RJЌНчЦЃAdd$Љsя}їяёZ“ІMџTлЭš7чНї?`еЊU<њаCм0z4ЩЩѕшжН;ЖmsзЗЧПюЙЗЦvЛюс ­юуТ‹.т§ёяёэЗ3љiСBшиЉSеЙE№ŸЇžЂyѓ5CЁЯWы:ххх kмc]™ж32~l )))!6.nŸэUЯ-Аmћ7ЫŒЊeьg;ЃЦ6П_Ж+P]6ђђъ!}5aиС‡[‡ѓ о ‡УЙзДШШH<&MЎ>З]~TW,_ЮЛяМУщC‡ђљgŸ1§Ћ/Ћ‡Ёжцš‘?юЏКЅЋДЈњіхћY3йЖ=Fѕ“йВmў@ХЁИЇЫ>ЊŠкГW/>ћєS4lH||ќaйGЋV­xѕѕзiлК?§ДnнЛѓёGёУќљМёіл„ў.„††тrЙиО}ллnлЎ:wцƒёуйВe CNZ§СОG˜ІЩ†ѕ8яќ ўdz3qТ>œ:…ѓ/ИАЦkqqёДoпџ§їџИ~єшъšЩ'pъЉўђї511‘ддT–-ћ…zшOMч}PяEtt4………ОGэ шђЩ{н6 rы-џЄOпОМќъk\}х•м}ч]єье›ШШШ§^[ЗnСщtэsљ ТZ-cNQa!!.'н{ітЇчГrЭ:L,њєэ[7žгѕ[зУчŸ}ЦУ†ђЗП ))‰‚‚"ЃЂИh/УђжІM›x§еWшвЕ+.WпЯ™SРZS^^ЮSџy‚† a[гПк=iDŸ>} у„>}˜œЗп|ƒЛяМ“E?-ЂMлЖфххвЊUkТНїпЯч`Ф9g3tјpЖnйЪ„оgшАatщкѕˆМЗwмu7з_w-чœu&ƒ &22’ДД4N<щ$zіъuаэœаЇOќћ1Ия^š6kЦъUЋyфБЧіКžmлм0zЇœz*›7mцтK/eи№сМѕЦ\нЕќmФy4kоŒ@E€ЬЬ юИыn&Nј€ukзђЪkЏ№аЃrJП“јЯѓшcџЎnџїзФe#/чДSOХуёАhщЯzVœˆˆˆШ1$/'›фzЩДiлŽП.Ѓ}ЧŽјŽЧуЁSчЮ5^ЛїўЈWП>“&NdЦєщ„‡‡гДiГїP ЇгЩћ'ёфO№е—_№б‡SIHH`Ь7аЃgOо?žЇўѓž|т ЂЂЂИђяWqЫmЗБїvШщЇѓж;уxqь <џмГ8œN6lHї=jеЮхW\Сњuы˜:e †aвКukŠ‹‹їИпЌSчЮм}Я=МњЪ+Ь›;—ддT†Ÿy&NЇ“&эЎн„В‰‹‹ЋЃEE…<ѓєг\6ђrRRR*sr2W_s-/Н8–ЋЎО†Цяѕš ЁQЃFјBCИDDDD…ПxЪјєД4R›6ЁqуTVАmуzŒќRЫЖ€ eзъžЎ’€Ma†‡l%mы‚С@­шžŒЦ\а&–ъyi‚ЧЉ™Л>ДŸдЗ/ЗоvћŸъ9о”,жцљ™—VЪФ•й<ПБжm8œN’4фS#ТрsјL№р2‚ќ§ф“ъЪЪЪИѓілyјСYКtiu‹ŒŠ",<Мj- 3‘у[AQщ™$&%qЩШ‘$$&’–žљуѓџо{ќђѓR~љљ&Mœ€a@aQ1EE…dчd3yвD6nмHVV;wюdУњѕЊЌˆˆˆˆˆїJЫJйБ#ˆШ(zєьХВХ?бЛO"#"1MЃrbŒ] УРQ5ЄаЖ!.6–|ˆ ЮП—гХ'гІUЏї›ЭDDDDDDŽ[9Йљ„„„pbП“иВa-СŠ›зЏЅџ€SqhcУ€ИјxzХЦёёДЯ)//ЃАА№7khhЁˆˆˆˆˆд1ЕŒ9=zŸ@ЈЯЫі kTT`ПŸ›7тtИ\”••А‘єєt г рtЙє&ˆˆˆˆˆˆTЩкЙlл"P^†љ›Ѕ%Ѕ8Ню,гУгO=‰ЧКЧГЗ***XКd M›FII) ъ5РыёЈЊ""""""UЪЫЪ1Бі:=Мyу?oЁ  Щ“'ѓўјё”–—†/д‡щ0ЩЩЩхљчŸgЫж­x=F^~9ІУ8NUWDDDDDd?œУ† #ФуaбO‹(+Џ i‹–є?u Ёсмzыm,_ЙŠЂR?БIЩє0˜Œ‚Bж­]ƒ тvЛuG—ˆˆˆˆˆзll,+ˆД0 гУЖ1 Лr"pђ)ЇД hCР‚€eг­{w:wэNyаІмВ) РлoНI…У…гA‹-€RUYDDDDDŽK–eБ#m;[ЗlЄДИƒ 6† ІФЖlj5>аЖmN8Ё›vІгКSWBуMЊДˆˆˆˆˆЫЖЩиЙ“uызc+p:•С ``€iе.t†Aї=hkAIРІ0ˆfŒ‘:шРAЧ4 в3в %9!ŽACN'2<г41m‡ ІQЫž.Љdй–e шъ@ххЄхgсt80Љ \иСНЮh(""""""ЕрvЛ)..ФВРВ+‡ZЖeЉЇKDDDDDЄІ?p U…пmлии`еиЖЅа%"""""ђgYVлВАMл6*˜ЖЅа%"""""rh‚—mƒecYTvt™д~Ъxй;лЖЈ`haSљаdлVш94ЁЫВБ , лЎ ]–†ŠˆˆˆˆˆЂаЕЋЇЫ6СІђО.MЄ!"""""rhX– FхTё`TMяœ6­œёф’c‘”l№я'’ˆŠ{юЩcнцrCИё–HBЃ €ї'–‘]Фn–ртє“lUWDDDDDъћФœЪ{Й*яуЊКЃ лЖ0G.gЩ’љdgёѓЯАi œЦЌY‘›[ТЪ• =z;996sчТ/Пь Ј(‡’’r22Vън…4ЫЎœ2~їг‘Ёj™ EEg2mZs>њ(‰3ŠHKћ/ЉЉѓЮ;iзюTЪЫрЅ—ђ0Œ œ{n,>_+UWDDDDDŽ{yИН^*gЗБ-ЛrИЁ цЎ• 5~њЉ ЇgŸэ!6.ЙФзл‰CЊЛи›аP№љT\9>™†‰iš8NцЭGАТ"6.шИ8Ђутˆ‰'6!qЯ‰4lлA0`чЮЪŸГГСВ,‚ ЃцКUZDDDDDŽзд…ЫщФFQ^_~ё9&6†aa•OIо#t ъуЙJљц›|ZЖ‹dмИrŠ‹—аЇрRaEDDDDDг0p:x=МёqX?І &6NУРРЦРТ КАэн]XџЛ›•ЋЛёэь/yрІ`Єб ѕЦŒ gЦЗ`Yбƒ•ы[– -"""""Ч1УРхrтv‚У‡гЈьѕТЦљж[ЁјТРщД V…ЈЧoШФЩ#XБЖ„њ :qюљЪ-›~§ ФŠЃu'›>}дѓ%"""""uбСЯo†iT.LœІ‰‰UК Њз.#F˜”[a-(юоaџўPbAIМ^Н""""""ћcЊ""""""Gqшњ#OjQш….….…Ў?J7u‰ˆˆˆˆˆЦа%"""""" ]"""""" ]"""""" ]""""""Ђа%"""""Ђа%"""""Ђа%"""""r<Бс“Б*tmлЖбзџƒЬŒ U_DDDDDЄœc_xžofЮ$==З7”жmлqюyвЙ[wUGDDDDDфЯ†Ў/>џœыFЂeыЖ3}Цзмsї]\yЭЕ ;g„*$"""""ЧЁC7ОаљжляXЏAЫ&hAыvэ ёјїілtьо“zѕэuУ_—-cѕжэ вBя‡ˆˆˆˆˆШ>˜ЩѕъэБ№тK/У`іьй{МfYпЮќ†5ЋWгЛї Њ ˆˆˆˆˆШ~8їЖач %>>Дmлk,/їћљtђ$Š6ƒ‡ŸEаэУЖГTE‘}Је”ёяН;ŽЂЂ"Ю1ŸЯЇъ‰ˆˆˆˆˆќ‘аU\\LffѕдЏБМM›ЖdffВuыVUNDDDDDф`BзŽДД=NјрАmњдЏЦђ>}њ0dШщ|ѕхlмИQе9чпџ~%џИ~-лДЁ А„щ3ОfкДOИђškiиЈAЋц:wЏяцЭЅHQEDDDDDіКЬ[oОЩЮєtмо0ZЗmЫУ>F—ю=(ЗіОQ‹-Б]ц/§RZЉŠ""""""ћ ]7мtЃoКЉњ9]AЌнkа /Оќ e(­ZмАa#Ђъ56ЈŠ""""""ћ`ўљ&lUQDDDDDъC›qLTDDDDDф№QшQшљыи‡p„ЁB—ˆˆˆˆˆШaЄа%"""""Ђа%"""""Ђа%"""""" ]"""""" ]"""""" ]""""""uгЁ›3^ЁKDDDDDф0RшQш9NC—mЋˆ""""""‡-t‰ˆˆˆˆˆˆB—ˆˆˆˆˆШБК4ОPDDDDDф0†.Qш9œGгС”,Н#"""""rфй€QBWгRVd—б(мЅ7UDDDDD‰m…Vd—бмUzTЯ ]CBГx-'€6Б]"""""ђЇ­Ш.cUn9з†f)t%8ќ\Ж‘/rу˜˜сее!"""""ZsW)з†fя№+tэ ^##вteˆˆˆˆˆШQУ>„Цвь…""""""‡‘B—ˆˆˆˆˆШQКlQDDDDDф№….QшQшЉcўє”ёЖnъ9цXЖ ЈЈЈ{!ЧхТt80 Ѓn„.9Жм^ RRpЛниvнј^QюgыІM”—–рtљШЃа%""""r<Ў`‡+„ц­ZSZRLIqQ;G‡УIѓV­Yљы2 œ‡B—ˆˆˆˆˆќ5Š iпЕ+%%…К,~JJ,RšЄђЫЂХDEE)t§UJKK№zНњm‘уN0Є  зKQ~оQ}ЌЖm“M\\мкођћ ŒЂ  №№pGАЗыЈНаяїдВкxтЉgјuХŠЃц|DDDDDўъ Sц/ЫЦВЌCі№ћ§5–•––ўЉ6јсGюОћž?е†mC™Пл>В“џ’аѕgNс‘?ЮгЯ>_cй‚…?ёЬѓcИьX‘—ŸЯuЃoаoЙˆˆˆˆ=ЬВj§ѕЮ;у1тЪЫЪj,ПюКQ,_ОМњчьЌlЮ9gФкЧЎ/Њ‚вŸjуH…œп9ЂУ 7oйТіД4**ddf’@ иу,їЖьXБ+i‹ˆˆˆˆ5ŸQэк}>­ЈЈрЋЏІcпЮšХРvVT`лvu›` ђ3Аm§‰уГБmўTGK|8ЂЁkжьяшеЃй9ЙЬўn#Ю=ЇњЕUЋзpљUз№дуџоыВМќ<ЦОќ %%Ѕ4lа€ЋЎИœzѕ’јuљ ЦO˜@vvMЇrїЗ0iђT^{у-"#"yщХthп€wпџ€%KІЈЈˆфЄ$zѕьСмљѓЩШШЄuЫ–\нЕxНlлfкЇŸ1sж,LгфєСƒxъ){ДёћіъcПъŠЫiнКЏНё7mТчѓrл?oІ^r2Зп§/Ю=ы,zїъЉП""""r˜иЕю˜7o>aaс x*_|1SЋ>CeЇд]wнР)ЇœЬ%—\РАagpуЃ9ёФ=њВГsˆсŠ+FвЛw/vюLч…^dеЊеDGGёјуaл\zщбГgOЦŒЙЧsЬUћˆ….ПП‚,ф–›n ++›‰SІpЮйgс0+G<ЖlбœлoН‡iВfнк=–y}^юК§6<'MaъЧsушQdffђТK/sй%гІUKŠŠ‹Ћї{ЪЩ§щнЋ'‹/сЕ7отйЇž$$ФХЦ›>єtКvщЬ'Ÿ~Ц_}Х ЃFСиW^aжwп1dаi|?wпЯ›ЯЗмBIi O=ѓ­[ЖЄAƒњlмИ‰aCгЅKgўДЈК§]оz§ULУр§ IˆуЦбзSXTDLt4ІiвВE ттbѕw@DDDDoьЊeшњzЦ7œ|r?N:БяО;žЭ›6гЈQУъзzш~кЕmƒišффф№ёG“+?џš&†apЧэЗЫЌog3vьKєшо лЖy№С‡щкЕ 7ŒEAAБ1бlмИ‘ˆˆ| ђОЎ'Ÿz–O?§œsЯ9ы˜Ћѕ›HcЩЯKёxм4mв„N:RRRЪЏП.Џ~н0 ІYТіЖ,дч#)1‘ЈШHњї;‰Д;˜џукЕmCпzCЃ†Л/†„„xbЂЃ9ѕ”“Бl›єєєъз""ТЋлђћ§ДhоŒФФКwэЪж­л*ў?2јДдЋ—LГІMiзЎmЩ9"Ѓ"‰‰ŽцДЇюбўЎc7 ЗлMfVI‰‰„„„pѕ•WаМY3§‘УЊ6RdeeГєч_шнЋ'бббДlй‚oО™љ›лhlŒЊЯыЖНЛЭ0ŒЫRSS уєгS\\BNN.+WЎЂАА‘—]B||M›6СЖmlЫТуv“””DНzѕ8љфўЌ^НКVЧ}Д8b=]ѓX@чŽ1 лMЛЖm˜џуtьаў лXЕz5“І|ШЮ; СU\fjIУ0 ЃИЄdзB}>ќў ,ЫТ4MB}>ЪЪЫШЩЭaТЄ)Lœ<Еђ_l›Ф„„§ЖКЧыg Ъф?тЮнKюнИш‚ѓёT= \DDDDфpЋMOзœ9пSП~=’“Б-‹оНz2э“OЙє’‹0 ЃњsёЎ6mЫоcйй9МќъkЌ^Н–~?™™™ФЦФbќn}лЖБйнfDXХEХ~‚Œ#КЮ>ŒєЬLМОPъ7Hс„~§Иш’‘‡uЇХХХ,ћѕWœN' ~њ ЈœRн0LЪЫЫq:œСšК—eoО3ŽЁC†аџЄYЕz oО3€ШШHЖmп~РуЈК<і–ШjОbе?DFD2t№`N:БяAЗяtVfл`0X§|ЧУШK.цЬaCynьK|љеtЮ:cИ~ћEDDDф/Q› *О›ѓ=;wІ3ђŠЋ‚”––ђыђхДmлЇУIE ЂКMгQ92­"PQ§љwТФIDDD№ц/c—М ‹ШЈHВsrjЌЛ+t§і8mlЌпLжqL…Ў+ЏКŠVmкRRZЦКѕXЕfэaпщO‹ЮНwнYp*ќмћрC,§љиЖ};[ЖnХ0 bcbˆпc™ЌœJВђXЛУSЏž=ИяС‡љnЮїДkл†мМ|š6i|HŽНwЯ|іХ—$%%’OfV懆…†тѕzљqСBš7k †AII Q‘QИBBˆ‹‹ЅЄъСЭЏПљ6§ћD‹цb(""""‡1tdбŽ;йАa#?t_бdЯ>7–яПŸGыж­HHŒgС INJЂЄЄ„ ъ󃚘3g.-[ЖР0 С ІaTvВTuJи–E‹цЭpЛнŒ7žгO„п_AttTeИВwguћ‹zКьC8ѕЁѓŒ3ЯТ‚–MЋ6эbCр7чБvЭ&}ј›ЗЇс ‹"Еu[њ„+4тяєЧ… 9БObbbj,яйЃ;?.XШ ЃЏЇWќћ?OтёxИaдѕ4NMнcйe—\ФФЩSyТDBмюЪ@дKNfдuз2qђоџ>qёq<њр‡Є`§ћDaQ/Оќ*Ѕee$ФЧsянwюwг4Й№МLš2•@0ШЙgŸEff&3gЭ i“Ц\tСљ-‹5ыжвО][Pш‘У*2МЬ›7ŸV­Zюб)0pР)М7~W\~)#Ю=›^|…YГПЃgюŒКўZ.НфBЦŸ@ р‚ Fpю9gђвЫЏsѕ5Ѓp8Lтууp98юКѓV^}эMnКљvТТТИ§ж›РЊ9МаЖmјЭЦc‰БegЎIаВ ZЌ ]ЫfХкuмп ?чotьжƒВ СЗѓц“–“Ый\LЉст4{-;w`ƒКrEDDDDŽb@€ ›61єŒ3иВq]?пF[№йДџв$5ЕКwэ`8т“˜aЖ м>ЇЯЏ.#Швљsˆ‹Чс€5+–CˆУР…УгЇibba`c8љd.ОшBўѓФу|7{vюКЉSІвЃgO†Ÿq&‰II$&&2ќŒ3Ј№WА}лv]Е"""""Чгt“›‡лу­гчщёњШЪЮТ4GќXœу?ј€_~]Ц/П,уСћяЇUлv<ёєГ'ызЎ%ПАˆЙ?,Рщѕсp‡т ‹ $"ŠТТBbрЈyЪГˆˆˆˆˆ(p™„њМ,ZИО'Ha^6eUs д%nЏШЈ8fЯžEЈЯ‹išGєxœ­ZЗІEыжœ}ю†ŸЕ”1cn`жЗпrђ€­ gœy&чœх–MYJm(Б $`SЈ…"""""ЧTшŠ `гЖ­|=}:v"&.ЈœyлЎ#пГsВјтЫЯ1l›Ф |шњэѕы7 7/€fЭ›Гxб"Юќлљ`˜КJEDDDDŽqŸ—њIЩьHOgцŒЏ(,*ЊsчF\\<ЩIIx|G~Ѕsс‚DХЦВcЧNо}w<.Ї“^={pољpџНїѓђ‹/rкАс„„F’‘_РђѕiеЁ3FXф!JQDDDDD/г0Чт".&†ВВВК,=ТB}„x<˜UЈ:ЂЁыŽлoЃИЄ„˜и8кЖяШѓc_ЄQJ ЫІYГf<№№УLљшc^;лс&К^=RZЖСэёрз5+""""rL/з‹луЉ~ўU]bЦQЖЊCзЬYГЋŸгѕл)уwiвЄ 7џѓ–Ногхз=]""""" 'ВџЋˆˆˆˆˆˆ(t‰ˆˆˆˆˆ(t‰ˆˆˆˆˆˆB—ˆˆˆˆˆˆ;гZ’ IDATB—ˆˆˆˆˆШsgutЊš""""rДАl+$дйst:˜ЧA??ЊК&К@ЖЦ.W­j|иGo‰ˆˆˆˆ сQбДhгwˆЇЮžgЙПœ5+–S˜—‹гщ<`Mм^ RRpЛниЖОяя{EЙŸ­›6Q^ZrР+t‰ˆˆˆШёИ‚AМaсtъжƒВвЪЪJыьЙ::uыСO?ЬЃДИЇУБЯš8\!4oеšввbJJŠtЁt4oеš•П.#ЈиgїчP>2ZЁKDDDDŽИЂЂ":їшMiI1С` NŸk `QVZLЋЖэ™3sQ‘‘{ЏIa!эЛvЅЄЄ`  ‹Є65Жќ”и)MRљeбbЂЂЂŽшё(t‰ˆˆˆШ )((ФыѕR\\x\œГпя'44œ‚‚BТУТpќЎ'fWM<^/EљyhV^>лŸ~–‚•Ћpј§aaи“а&MЈѓ˜Q‘uКЦ–пOxdTeУУїЈБB—ˆˆˆˆ7lлІм_Fа b[ж!o?-=‹OgЬуТГц;ъЮлоЫ,yЖmSц/ЫЦЖk_“М/ІГспOлЕ  ",1У0(ЪЬ$ыЇŸX4ќ,šнuQCN;fЎ“mлЖVЋ^+л†2љ^k|l…Ў#|""""RwXіЁ ][г28џІБ <ГЏy”_П›АPяБUЋvŸЗѓПœСКGЁйЅ—тіљи4sХлЗуѕК‰hж”˜эё6NaеНїбв†ШС‰:<іи\vйЅєш᧘ˡнКtцМ /dє 7qJџ“1.p8ImкŒЇЧОЬїнЧКM›qz}8мЁмvџƒќАx)ЫVЏХУРСЭєзADDDD‰Cйг•–‘ХeЗНТ…ŸC‡N­)Йюю—џьЭмvЦŒЏџо{lкД™ШШ<kЏЛІzС›nК™юнЛsёХ№ЩДOx§ѕ7xыэ7IHH8иГ=ф5Бђ XљјЄ =’;X2ы;š^v)ŸF0;‡Ќлю Чwb}ŸЦЪЧŸ {Яю˜‘l{У†М3ю]–/_išДlб‚nEbbт_smи•ЕЈе5r”є9?ќшcТ"#p:МїўmкІЫРш1c(*ѓSп2qЛнtьд‰д­)Цlз_9$jлЋѓо‡_ёцџЭgPцќыЦ‹Ћ—Їgц0ђж—8ј“bIп™AИЧ?<р>>™і Я>ћ,ЃFЂWя^ЄmOущЇŸfуЦ<§ЬгецmлЦВl~јс^zщe^ћqqёЕ>‡жЄНыž{а„('ПЬўš>“'M '—ьЧŸРн­A\фяиŠУхЦ—ЭКч^ й}wяЗн-[Жpлэwrт‰}yєб‡№љМќќѓ2|ЁОCо;ЙПecџ…ћ;„Ё+Еqc, hй4JI!hCР‚€eSnA\|<сA›rЫІ,Ѕ6xН^l—#ѕЧADDDDбЧъZєbŒџh:gЎуЬГOcщ’5<њќћм=ц"2sђyы t;Ё'‘‘>2в3Hп™ЭŸЫИЧЎкя>ЏМђ ЃGтьГЯ ^r2Я<ѓ ^x! , [ЗnЛRЫ§•xGy˜ІMš†{вьZЕ™ПnсБ1l§yM.КWT$ййЄпr;Б[SО=›вђ,–џА„”†DХЧ‘ПnнїёўћщиБcFџЃzYƒњѕ(/+gє˜ЩЮЮ!66†+.ПŒоН{QQQСПюЙŸДДгЄIcnНхf’““иЙ3ЦОФЊUЋ‰ŽŽтё?J\\,“Ї|Ш_|‰išœsЮY 6ДЦѕq8юћ;ьЁKПк""""rДЈM/ЦG3гОc{ ‹hм8‰%Ы~хgоaўвЕДъдЗлЩЮєL*Ъ+˜5ѓ{^{ш Z4mИп}ЌYЛ–ќќ| PcНФЄ:tшР?. Kз.и6ЌпА &rлэЗвЉsЇУжcе"dlкŒЇkJГГh9dўь2nњ' ЭSАVlРvљѕчхєКѕ6Мў*;ЪŠ0 ќмЧ’%KЙщЦ1{]ЯщtpћmЗЫЗГОcь‹/гН{7***XЕj5O?ѕaaЁ|0aЏНіїнї/‚С >є]ЛvaЬшы)(, &&š_У7п|ЫCоOqq1<јэкЖ%%ЅQх№BлЎU=ŽІ~ЕEDDDфЈ№›{vцЋ{ы,YМŒŒ”””гМu[–Ќ]CjыЂЃ’ЈЈА”–№эз3yююKhз<ѕ€mцчхсёx№yН{МG^^^UO‹ЭЌogсp˜4kкЌVЧ]лоšкДЖ,Y‚UTD '—Дn&Є рœ…јгж3џчхtЙѓ"ћˆз ЬЭ!p€}јЫЫ)++#:*rŸы4NM!<,ŒЁCQ\\BnNnѕ9ЦХЦ’Я™У‡БzЭZlЫbеЊе2ђв‹IˆЃY“&`лЬž=‡3‡ЅA§zДlбœЮ:Вtщвъšл–}Xj|ИЉЇKDDDDŽЕщ-К}дyфўћ-–­]A“fэp…и4os"Nђr‹ЩЩнЮъKxўž1tlгє кŽˆ ЇЌЌŒЂЂ"|Ё5Ї—ЯШЬЄeЫXЖ…mУЅ—]ТŽ;5j4/Œ}ŽњUУэŽdMм))[V`2oПГ8oV„;™[џѕ/Ђ$ћУё:l|Nƒ`Ѓ”§юУсtрvЛЩЩЭныzйй9МђъыЌ^Н–Ъy!ќ~є*+з, UлSq…Dуp:).]ЯŠ_~ф™нHчvЭКнЦЩWгЇsц™gT/пЙ3eП,уЂ‹.ЌjЫЦ4MnОљFLУрж[oчх—_$2ђр8l†šxš6-+№њЉ№f‘U†стПMчЛю"њДјГГ ~4•`^ ІЯЋi“юЃM›VЬ™3—nнКьёк„‰“‰ˆˆрз_Т0 F^~5ЖmUЗi[•џНыYY–eIvN.5ZЩYgч”SњяYЛВЇKУ EDDDDў„?2LяЩ{ЎЁi|"›зЯ&>)žŸ…s?ч‰лЎЇGЧЕjЫ4 ўўї+yэезљpъGЌ_ЗžЙпЯхŽляЄK—ЮtюдБr]›ъЁncЦŒ"5%…‡z+< У эƒўjsнеd™xcBl/СяцKПEѓЋЏ%ЌSGВ&MЅ№Ц1„dь„шv8"hsнеlїoчžУ ђц›уиДi3лЖmчЛйп““C0лЦ_ю'ж8цЧoяўЙEѓцИнnо}ї}vюиЩ–Э[),(Єя '№џЦŠЋШЩЮaеЪеел{М^6oо‚ДКG /‘Ѓ†eџБЪЯ<0Šбw?Ыw3пeчж- a>:нz3‹яПŸжѕ<и9œъ pв;”~ј>ё 3Ї„ДH+В+шђрЭažіНiгЦм{ЯLš4•Лџu?Іiв85…†) 8їœ3yщхзЙњкQ8&ёёq8]ЮнCmЋjHцюŸNwнy+ЏОі&7§ѓvТТТИэж›8хдўф№є3ЯSZZJbb?t?^Џ‡Aƒ№ілябН{WъеK>ІЎk#ПДВAЫ&hБЧ”ёA Ъ7e|‰%›Т Ў&+#+ЈЙуEDDDЄі7oт‚K.'mлІ?мŽmлLљd6Э7 KћfG§yзoд˜‰яНCу”TœNч5йАiCЯ8ƒ-зеКэпЭeсгЯбд,Ђ^ˆA!†AАеdU0ŒюЗмDђI}ъєЕеЈq >›і_šЄюYу§q8Ф&$ђЕЃ%с№9 |&x pA–ЮŸC\D8ЌYБŒј˜B,&˜8M [=]""""rф™Іƒмм\м/хeЅЈ У08џŒўЧФљzМ>ВВВ0MЧ~k’“›ї‡j’|RNяв‰ХЏНХїЫ—ШЪТt8pЦФпН Ї_ћwœaЁuњšђx}deяПЦ….9ТЫФчѓ1wЮl JЁ‘CYii=_зGxd_|њ>Ÿг4їZ“PŸ—E вїЄ)ЬЫЎuMœaЁєИх†]‘Дъћё1 žлы#2*ŽйГgъѓюЕЦ ]""""r\…ЎШ№6oлТ?ў={[gЯ7++‹гПІТ_JJƒFћ ]‘сlкЖ•ЏЇЯ CЧNФФ%WЧ'[пїћ=;'‹/ОќУЖIlа№….ћаT….9т<^ѕ“й™‘Юџ>žJaQQ=з№А0тттЈ—˜ŒЧыйwM|^ъ'%Г#=™3ОЊг59<5Ž'9) Я{ФGЁKDDDDŽ8г0Чэ!6&–ВВВК0=ТB}„Ин˜†qрš„Иˆ‹‰Љг59l5іxі[c….9ю‚—ЧуСэvW?гЉ.2 у ƒ€ixМ^мOЎЩ‘ЌБB—ˆˆˆˆшГЈ&ЧИ?=‡eYЧЫ$("""""rАwхœЃ%tй–…R—ˆˆˆˆˆдЅдeйGQшВ‚AН)"""""RЇR—<šB—mЉŸKDDDDDъVь:š†ЪБŽ""""""GкІŒз]"""""Rg‡ібXšHCDDDDDЄFъВЎс…х†KoŠˆˆˆˆˆд)e‡0ч˜†и```ЦюpW§П6&•Џ›&UIЭ4 œфјєŽˆˆˆˆˆH’уKРiTцžЪџєтутШЬЮУЈ^hšрРРTСX† Gа&'КQЭі8pЫВ(..цЛйГщзП?aaaiсц|їсссtъм€єє,YМ„†вІMлC*їЅАА№ˆџЎФ\^^ŽЧу`ёЂE†Aч.]іЙЭж-[XЙrЇ \cљв%KƒtыжэуќyѓHLJЂI“&ћ]vЌš9ѓRSSiвЄЉўРІM›XЗv-мяz@€ЏgLЇї }ˆŒŒ<ъЮcЦєщДlй’F)){}}ХŠхAттуёx<фччГzеJkќnޘ>F))$''W/s8„††юЗЅЅЅxНо#vў?ЬŸOLL Qбб8NvюмСЦ iпО}uMГgЭ"44”V­[ XЖьмnНO8ЁК­… PŸO‡ qЛYГf5yЙЙєызŸwх?жege‘™™IDDkжЌ!&6–:дБЈ}Ы˜ћ§їДiлЗлЭŽД4ж­[Ч }|§Ј§ВВ2~ZИњ m[lXПььlњєэKDD„ў0ˆˆCœјЊWˆaуТР ИLp˜ІUЌА111ьЪџfзMYP5ќpWЧ–ѓДгђбGSЙѓю{1€` ‚ЏОјœГўvяОїP9Žб™№ю{ЌнИ‘ќтr"bуhжЖ=НћѕУы !ƒœœ\>§d}њєeЭšефццбВeK7iB  ‡P‚„;*OцзeЫXОќWNъзŸффdІOџŠ˜шКuя^}Т7l`ўќљ\tёХ”””Аpс2вгЉЈрѕziкД):vмw`)ЮЧt„;`Эъе,\ИЮ]КаІM~љљgЖnнТаaУЋЗ)))су>d№р!ФХЧ$H  ЛИ€  ##ЏЧKліэiоМyѕvSЇLІuы6фчч‘––†aЄЄІвЕk7LГіs–ЄЇЇГiуF6oоL›6mhзО}eŠ.-Т0 ЖЏ]ХŠхЫёћ§$&&вЋwoМ^/7l`ёмЪџ›PљІЄЄтrЙиМn-лзЌ gЯ^4oб‚ЉS&гВe+rssЩЬЬФВ‚4nм„Ўн|ьЅЅЅdnZЯ ;циsYQцNОž1чЛъж‡SЇ№З#(//gъ”Щ xРa]?))iЏчАdё"ЖoOЃЂЂ‚ааPкДiCѓ-*џё 0WEYѕѕЛЏ:ьЋ лЖљё‡HпЙ“’’м^ѕызЇsч.„„„——ЧЇŸLуф“OaХŠdeeтѓљшж­;ё ,\А€­[ЗтЂ]ЛіДhйrПџPАxб"ВВВ№——Jѓц-hеКuhШЪЬфчŸ&33А‰ŒˆЄkїю$$ь§^Эƒљ= ”,ЬЋЎU0фћ9s(ШЯч”ЇZљ›ЗnУщ/ЃAЬ \пЭžaФЦЦВrхJ**ќ4hи^НzГ#-ЅK–PT\L|B<'œаŸЯWНэњuыXіЫ/””–M‡Ž˜љЭзœ6hpѕЙ s ”WŸЧŽi|7k6экЗЇmЛvєlпЖцХEcчѓыВeєэкЉњї&X˜KЄ3•њбћџр§ћzќДp>љЙyЄ6nLjуЦDEE§Ѕџ‡3Аoя?ЇФЧPАc;iыVгЖIeшZНvХ;єЗПUDеšЏПžAi‹І$$&’——GккUœxтIЄ$Wж6ЉkgІNТіuЋшаЁђяwxbЉ‰qЌћe1Ž2Я~пv9˜іГrВЩйЖ‰г "!Ёr8|rd В6o`УВЅœдЏпŸj?<дУў'жиЎQ\ S&O"{ыFъwшЈO0""Чг4*oЅ2С…Ч„œ&8й5:АrЁU=фАђПэЪ{КЬнЃmРљЗ#=j47оt ŸйГfсrКшбЃ;яއ‰У‡сЁF^zЁ‘‘ьЬЬс“/О МĘЁgœ…e№џэwxењЧ?3ЛЩ&›Є‡Љ$Ё)$!TADКŠzх*іђУŠ ЂWQDEАqХЎщHБ ]Š ЁP@‚Ё‡є­3П?vwv'xНо{еѓyž<ЩО{цЬ™S&ѓїœїP))иЪKйЕm W @TT$v›ВђrlхЅ˜d•@Ќ_ї ЧŽcШ!„GИўЩ*–J$ЛГбћ@hTьи+J5лкѕkQ…A§ћa2™(//ЇДДTwLMœеЈ&ђЖK~~§њ]AВP’VœеК<YХV^ŠПЄ`6JTЛЏkл†Еdgча-Л‡dгзkˆ гЎС^YFўŽ­єыпŸОНzpЁЄ„E‹вЬа 0єхь™3rшаA, ­['в+7›V ШВ{ЉЕŠуEЧ‘ьЎшн‡нЮ7kзВcг:Ўx™ЉIHv ›7oтЖлЧзЈrl6;W ЄГл+ЫШлў-§ЏМ’+ћіІЌЌ”хK—apкшоЃ‡і№ќцыЏ““л…ЌЌlяьбУ„ње4ЄN[xˆguчŠ‹HNNцмЙsT]8ы*Ѕч ч—#ЧQЊ+Е‡šп3НС я/6›•‹Рх=Кк$”ВВ2*+ЋД~сЈ*УрАелз.–‡ЂИњ~яюЙQZZЪІй^^Jџ.oЄЇŸmпДŽœ.Й„хtfзЮјfЭJbbbhнК5крШO?Бљ›/iЁѕНšT:Ќ4 Ѓs‡Ж˜Lўœ,>ЩњuыU2лЖеD§ч‹?#%%•A§ћb2™8sц ў8ъНЮЦŒSƒг†ЃВЬ5vЊЋYГbƒЬАAƒ5Q pьаZХF58~k_Q41ЃZЋ8~ќ8gkєщEeU_}ёжВ 8vzцц"Щ2п|§5пm^Я•Џ Јш8ОZMnnWRRS8О„ЭжКЦЄІж/vUKЊЕŠ`ЯЌoW>пЛ‘­жd"ОE<9]ru"АЎњшлГ;?ўx˜ƒ…йЕ} aaсЄЅЅ‘ššJpHШхŸНВГ9H+ущЂc„њтН–жёБ8Ћ*8ћЫqтbјЉИ[y)I-у№їДЕбŸˆа N§|ѓЅыМoc jTпhLўХŽ­МГQжх);mœ8R„љђЫ~Sўuозx”љU}\ џЂ U—gЫˆKpљЫюЅV@‘Q‘нž,Pн[hyюїn—Ч&БSЇЮDGEГfѕ*†_} K—,bарAјЩ2(Š+3 ќŒ2ЃFТсTБ)б 3ћŸя0bшP%LЊ[йКєюEBŒћMy€?ж2—]ЖYXБ`.eЅЅм0zŒnЪ…ZYŒйЧЉbtкБ•_аlŠOа&=‘Ў7•QЁСл`Ѕ9+ЫйєNЇ“ыG"99E_Љ6 ЮЪrнy(иЪ.`R˜eЈp_Wіe=ш˜юzрŠшТюл8ёг!ZDЙ|хЅddЖ%#1€ ˆ0’тšsЌp].щаР›діьaOA%%%$%'б3'›ддTЭ ЂwЉTbА[вПŸіZбЁ_~љ%цAЎKƒУ†НМTw]juЊЭVЫю(/%1)‰ЬЄж˜›6ЁkчKYБl—хцряяS…Ша šјыŽ?Д;Ÿ”ж ѕлd1M›PtИіЉЩьљщ0БЭš ЊPќгaZD†Stј бMC ёsНкўНгћRЗ“ВгХмxЯ=š&ІЉоћтЈ(У`ЗдЊЗFч!Ы\он;н*Кi(ў=КёщЧ3tРШВЌыgв\§4МGwvoпFГж­Д>ЦЎo7ыњ^MZEGв*:RћгД eЇŠйПѓ{ВкЛDзwзhbHџ~šї+ЖYУ^ЇЦŒSƒнŠНЂЫ…ѓЬћєbc›3tи0 oн;ф1jЬ кqeeeЌ_ЗŽУ‡КЎ!!ЖэкбКu"NЇ“]Лv"K]rЛzЧУЪ ~}Еq№sBK~јс{юр­ЪкeъЦЦЮ-›hAьЮZниЫ.АbљrLЊC+ЃМЃУЦїзГcЧЎ9’V ѕжЭщSЇјaѓ.ынГь}ШО$=ИИxЭfЮœ>Х† јiяn?^Ёuе‡9аDчЖ™tn›Ieeћіюcяž|6|БŠё-hлЎщџБ)ˆyyЛ(:|›ЧоЂ•БќЬI§ќkŒ ?ЇЊsg0Ы`)9‡Z]Aг§НЬ,УЩт“uŽ)ge9XBъoО4&џVб‘ј+vЖ­ћšСC†hІА№?э+@q* дыбџWЪ№ѕЋ№W\š™ŽI0@№GТЕ^ЫЕ†ЫOvyИ И…—,ЙƒЊШ(ШШШЊw —kкЁфž^(!ЛЇ% Ў9’% вЙsљyy<љє3””” Њ В~Ј’ФЖ­[љzэ7œ9{Ћ]Ѓ{U5–ВТТУ1Љ ŽŠ2ZDFшѓbЯcŸїо‚‚‚И}ќкњ$_1 л,КуŒ;ЮŠrЭжЕѓЅ,Y̘ƒЛѓHJJ&5-фффзe)U•Ф†5хТ… Ќ[ЕŠФqуtk)d›ЅЊRw^*ŽŠ2ќ'’Зќ­cbtщBќŒTŸ?Џй•D7 ­•цф™г:[Mц-YЬ§ћIKkУ­їоsёљџ–jЂ›4!Шр§ODеЙ3ь6ќ§§1:lККг:‘ЕЌЖZvGeqсa:{Btжв*ЯžЁI\ мyы­КуЊЊЊјiп† шЏ[—-9О9пэјŽРЋЎтШўН$'&ЂЊptџ>zuЩсЇНdeчќЧвћR|фG"CBˆh`НžГВƒнVo;6&‚нЛйОm%%чБXЌЈЊ‚­ВkщТТТъьgAfдъ*т#Уuч2ШКОWЋп+ 7n`пžН”–•сАлБлэhЧ:DЇЮuсb4fœэvЊЮeЮЬddЖхъЋGдЃћbpиIiЏнЄ-[JxD87މеjaпО§Ќ˜?ŸŠŠr$I&55•a#FxЯ]Ч8h`Т,KКv3ъЦЦЉЃGЩЮбї…Єј8혿Œ‰ _ЌЦRmсЎ{ю!::Коz9uъЭ~‹экгЋKŽюЛ+|ІЎ%6%!6–—_šFaо.rКtЉЗ>| ІgN6=sВ)**bўмЙ,Ÿ?Ы€\~yп:ЫДfЭj6Ќ[Ї}sУ˜LўМ;gŽfЫэк•!C‡]Днѓѓѓј|СЎНn$IqЭѕиuЄLIDAT/qœŽZ§аYYdГ(lЗсЈы^dБдКїњоЗ%ЋОŸ9&M|мћт"&†ћxАQљšќЙaфH–,^ФДЇŸB–eЂЂЃЩLJ$oз.%PœџzўК1ЂЊЌXЖŒƒљљм6~bDUrєШоx}нКї`шА‹ ˜VqбјI ЅчNjчЊЋ>tяY,ефчхѓ§їпQx ицБ xй9йѕЖ_п^нЩэ|‰W6m ’ФЃ=ЈйЬAц‹ЖџцYМx7пr‹ЖўЪCЈйФщгЇє}SU);ŠІ!0BГр,РQM@€з+WVršГ_чWmеH5кQ5te7њUў)­[№№џнеbСbЕвЄIо3‡PГ ГПŒЊJП)pMСўє“)tŸ+ўЇOлЗˆa~з жЈ(žЇХjГrћИ[ywЮІ?ї,=ђ(ёёёкƒiоŽэм}ЯНК|L!СuоіbТылuйщ@БZ1aќt`?ІЕ4?>шЊgUечЄV-щлЛ/Н8 {U%7мxЃЎЎ x}цk 2Дж:Щњ8qт%чˆhв“,е[6›М]ЛиО}ЛwгЌY3rКф2ъškˆmоќЂч15 %МImЏyh`lЃџщ,[Ж”5ЋVqїНї‘™™Yыћ”„V|Зe3еeЅк‹Ќ}{їa)/#=) “,‘–œ„ЃКŠТ‚Вsrм"вТЁН{8hP}XБYьЖпIДl^ЛьП6“9Ps чЯŸgчЖoщля wšп–ПЭfcіЌYœ}ћ\F“ зл]‡УСГSІачђЫщйЋUUUьЭлЩЈ‘зjeЉЫцЙЖŒдd6Џ[Kvv6Fз”АŒд6Џ[KЇN4ля~лж­ЌYНš‡}ГйLпоНјjѕчܘізMTt4gNŸІфТКwяЎЕ­СЇ­чЭЫљѓчИѓЎЛ]^…‹фХЖM(?–ˆШH~ўљg–/ќLзЏъыgиkї+ЩЁя{5ЫNсО2“ЩФŽэлйОy#fsvЬеC‡№ффIМћі Иr AAA=r„&M›аІM:SŸŽіэ;0№ЊЋ=N ЊF™;nЧћяНЧд)OђиФ'HLL$П`ВтЄ}fКц_z UЧ80ЊNЈ1оќPtcc№•јЧГЯАfХRrЛvуDQ+—.Ў]їюёœ–”ШЄ‰ёмГЯтЈЎфі;Ц#I2лЖneжЬзшнЇ:Дуфёcк9у[ДР`0АkчN i“žNPP'ŠŽГhб"š…бГ[.&ƒTo}Ьš9ƒC‡“›л…'L)ѕ?С‡МЯ—_|СЭco!<4XЛ>ЃбHœ[@їще•KёіЌŒs‹…оy›ДФжДMOC’$’ZЕ cЛLц~јЁцBBCYјйќ$•ў—їжълfГQќЫ/Ў._UAUљз9%‰Vѕ„эџ7п|C€ЩŸШШ(Š‹‹Yјйg„7 сšсCМ?7&ЋеЪєчџAёЩbюОћnlUœЌЊ 8$„p!Рр†kw-YrЏЩ-А ,Й‚z"ЪЈрўлхѕryС$UвМ\’ЊКІJ˜0™L(*(ЊЧгхDЦ5Нpиа!?vŒюНЃŸ‘11Œu=/OЩUdIХaЗ"K*>Ы,jй{єшŽЩпШєi/a­ЎdарС\vY/Žџ|ŒЩввл0x№UЬ§фS-/‡УЪœйoqіьќ§M$ЅЄ0qтујћеWищАЃ(-`3'MфХЉS™єј#L~ђ)ЦПO>zŸйoНNLL У†`к‹/ Ѓ4x]NЇ е'o‡н ЊS—FU8v­1dYYШЪъ„ХbЁЌЌTЫCuкQа—EBб•1#=+њѕeЦЫ/QVZFзюнљП шзЏ/ћі№и#Q]]Хэуя џ€8ьV† СбЃGXќй|$YІGЯ^мpУhэ<ŠЄВwO>э;ДХ УЎОЃi“[{ˆъВyhл6ƒoЗlЂmлL-ЯЖm3иМi=экeжЊЃп+}ЩЙ3ьн“ЏЕ]HА™gІ<Э‡|РєiSБZЌDFE2dш0эЇнІkлуЧŽpВј]Пj(ў§ћQtќ=2ƒбHdd$зŽМ†ЏОЂЕY}§ЌЎ~UГяе,ЯиБ7ѓжЏsчэЧпфOjj*C‡fЭЊеZšддd&?9‰ЙŸ|Тф‰"KёёёŒНuœ–fџоЂ"ТЕЯЇЈNœvЋћГФИqЗ`ђ3№дЄ‰<1yлЖnцвK:рgќmбъЊъФщА586кЗoЫпoЧТљ ˜їщЧДNLdдЈыyё…Љ˜ќ uŽчж -yzЪS<9щ fМђ2ї?№пnо€еRХšUŸГfечКВ§sЮЛ„‡‡ФўН|Йf%ее儇‡гЁCGЎНю:B‚Эю—uзЧ 7Ž!&6і_кnтпСњoОЦjЉтэ7gщь111Мёжл.AdfђфIМѓЮ;L~т1ŒF#ГВИхжq}„Ь§їпЫ{sохещгАйЌЄЄІ2iђ$ТšyУрŸ,>С„яз>џљ([ЗlB–e.^в`Y“ПЭZЭgѓ?ЅфќyB‚CШЪЩfєш1Z;ќ–ќЯž9Хо=љLyjВюиО}ћqчнw‹ч@ јƒ!Йƒ`И„—{пbЗSTЗЬ-а<ž.Tdw Щ§—‡LВ:Uu -зк/ХчГчoEQЕЯNе“NеŽё ’(ју1jфHnМщ&ЭЃбўёь3ФЦ6чŸрuйŠЂpУшQ<№ШђйыыПЭцM›xсљч˜їйТZ›џыC ‚П2]уйgK–\{<]N‡ƒЕkV†б “—З‹шШќ mн—,IŒю“%ЩхщТ=_бхѓЈ6ЏЧЫЅк$е}rEEuЯgTTwсTб@шЮхt ЃbќгНвлЄб­k7н1uйЅeх tY.§Џі‘ ц“““CHH( љчлoвГGš„џ%ыC ЯnYBлќX–нО+YBrЏщ’дkК№ёtЉю}М\!у%Mч\ОТK$ЏИТ%РTOьyїnЬТЭѕGБc@сзЬј}§uВ ТУš2іц›ўыхи“П‹Ÿ|DUUбббєэн‹Пн<ЃќзЌ@ u/мSqyЋ<ž/OфBЯњ-ЏрBrлМСЗTЩсєlя…[HyЇz~ƒїГ7­Я1ЊЋ@Њpw @ ‚?ВиrыIђˆ.яTC p8ь|Еr)сaсјdvюкItT$~Fƒ+ЂЁlpmЛe0И—ф/yЯ ЭєdюgЎРО‚Ыѓ’;‚‡з&@ HбЈ>bЫWyЖжТ3НаЋ\ž(яCpŒЅ^Јк/й-І|Н\H^ё…фГžKЊK @ ќQѕвFђnЛЅ‰.ЯєB$МS ё .еGpQН.Љ†ФѓxЏХЦG`ЉођhŠй…@ рŒTcЗNtI^O—${іщђЬt 1UU]{ozTЈ.O—G8е^.ЃAЎэйв‰ЎтK @ ў"Lв/Н’нћЋzТСKЊ7RЁGpyвЛCbФоWxЙч0zD•oЌz№ђM/@ FСЅ§MэЉ†оп’[pyэЊ‹Ъш{„ЄzєxН$IвЂzж{iyLB| @ ‚?“иRы^žžOBOљbЫ#ЕŒ5-zсхUuюхažа№О%AФа@ &ххZИЇШnсхEеM'є§V ЄЁ—Nš<ЋW|oьzo†b.@ @№Їа[ОЅКЧЃ}|їюrI/U'Ц|џ6њшЌкЊЎЕЇ А'–„ЋK @ ќљ˜юO_Ёх‰NXз”BjŠ.t ­ёUK•!ТФ @ ‚П†ов-ЛТ ЃvЇNтСћяувŽHMJЄwЯКЉЈрЦ1cHOM!#-•›џv#?>ЌЫcїюнкДв^нЛБlщвЉN'SŸ{ŽK;Д'#-•;ЧпЮљѓчХ]@ @№Лтpиiб*›Эж Йh зgЭ$..ŽЯ/сщ)S˜7w.Ÿ|ќqНщє*+*љtў6nљ–3gвЪ-ьj’”œЬбуEDDDђє3Яpєx‘іc6›,з}їмЭЦ xqкKЌ]Пž ?ЬЋ/ПЬяПпшJšѓЮ?YЕr%ЏНў:›ЗnуЃO>Ё{їџѓлГзe цЭ‹Ус ККšЙŸ~JTT/ЙЄоу v3њњыШэк•ЯW­fоg bєѕзQYYЉЅЛpЁ„хЫ–В`б"ђ і••ХЗп†Эf ММœk†ч№ЁCЬœѕ:kзЏчЯO%(8€ŠŠrЦŒКI‚…‹—0сBl6cF]OUUeeeмtУЂЃcXЙц fЬœХ;ГgsВИјWЗѓыГfђбGђд”)Ќљъk:tьШєiгФ]@ @№ЛRrю,‰IЩДl•€SQАZ­Ў‹ўЧxБŒ.ын›;юК €ДД4ж~§5›6nрцБcыL_tМˆ+ЄM›6ФФФаЉsчыХэпЗеЋVБaѓmнW‹-9QTФG~Poйъ*kЫ–-щм9 Y–‰ŽŽ&=#у?оX>ќ>ќіљъkЏmpdZZяОџwпy“&>ŽЂ(Дlй’ЙѓZяq3gМЦ•ъжЃM›ў2:v`н7k4xˆ[Б;xюљЉ„……0ўЮЛxянw),<@Лvэ™?o.чЮeЩђeк”а-ZjyЮ›;‹ХТЌ7одЪѓњ›oб5'›ѓчsѓиБЬŸ7ЇгЩ+3fРєW_хŠЫћќЊvV…йoНЭwоЩЁУИ}ќьЮЯgЭъетN @ ј])>ў3ЭутIi“ŽбXw4Уџ€іC [3дIENDЎB`‚classified-ads-0.09/doc/scenarios.txt000066400000000000000000000007641260620453500176230ustar00rootroot00000000000000Small stories that have some consequences and hopefully not many unintended consequences: 1. node with empty datastore connects a node -> good outcome is that it can receive list of other nodes currently on line and connect at least some of those so that its own presense in the network with valid network address gets shared. 2. node with stored list of peers is opened -> about some intention as in previous case "with empty datastore", now we have some nodes to start with. classified-ads-0.09/frontWidget.ui000066400000000000000000001074041260620453500171610ustar00rootroot00000000000000 frontWidget 0 0 855 932 Form QLayout::SetMaximumSize 0 0 4 0 0 Classified ads 0 0 0 0 14 true Search for classified ads about Perform Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter 0 0 of 0 0 in Search 400 400 QDialogButtonBox::Cancel|QDialogButtonBox::Ok 0 0 My profile QLayout::SetDefaultConstraint QFormLayout::ExpandingFieldsGrow Profile address 0 22 16777215 22 10 Qt::ScrollBarAlwaysOff Nickname 290 0 Greeting text For the rest of the world. First name Family name City/country BTC address If you wish to receive payments via BTC, include your BTC address too. State of the world Longer explanation about state of the world Profile is private Readers of profile None of the fields is mandatory Time of last update 0 0 Publish 0 0 Revert changes 13 75 true Details of operator profile: QLayout::SetMaximumSize 0 0 354 451 354 451 Click to Add Image 354 451 0 0 Shared files 0 0 25 25 16777215 16777215 QLayout::SetMaximumSize Latest comments 0 0 Qt::ScrollBarAlwaysOff QAbstractItemView::SingleSelection QAbstractItemView::SelectRows true true 0 0 Contacts QAbstractItemView::SingleSelection QAbstractItemView::SelectRows true false 10 10 Add contact Remove contact View profile Send message Private messages Qt::ScrollBarAlwaysOff QAbstractItemView::SingleSelection QAbstractItemView::SelectRows false true false false false QDialogButtonBox::Cancel|QDialogButtonBox::Ok 0 0 Profile details QLayout::SetDefaultConstraint QLayout::SetMaximumSize QFormLayout::ExpandingFieldsGrow Nickname 0 0 160 0 Greeting text 0 0 160 0 First name 150 0 Family name 0 0 150 0 City/Country 0 0 160 0 BTC Addr 0 0 0 26 16777215 26 Qt::ScrollBarAlwaysOff State of the world 0 0 QLayout::SetMinimumSize 354 451 <html><head/><body><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;"><br/></span></p><p align="center"><span style=" font-size:16pt;">No</span></p><p align="center"><span style=" font-size:16pt;">Image</span></p><p align="center"><span style=" font-size:16pt;">Inserted</span></p></body></html> Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop 16777215 26 Shared files 0 0 0 0 Qt::Horizontal Send message to operator View readers QLayout::SetMaximumSize Latest comments Qt::ScrollBarAlwaysOff QAbstractItemView::SingleSelection QAbstractItemView::SelectRows 130 true true Qt::Horizontal Comment Profile address 400 0 16777215 26 10 Qt::ScrollBarAlwaysOff Add to contacts profileNickNameEdit greetingTextEdit firstNameEdit familyNameEdit cityCountryEdit btcAddressEdit stateOfTheWorldEdit isPrivateCheckbox profileReadersButton imageButton publisChangesButton revertChangesButton profileCommentsView addContactBtn removeContactBtn viewProfileBtn sendMessageBtn privateMessageListView privateMessageView privateMsgsButtons caAboutComboBox caRegardingCombobox caWhereComboBox searchAdsButton caMessageView CATabBottomButtonBox profileDetailsBTCValue profileDetailsStateOfTheWorldValue profileDetailsSendMsgButton profileDetailsReadersButton profileDetailsCommentsView profileDetailsSharedFilesView profileDetailsCommentButton profileDetailsAddrValue contactsView tabWidget caHeadersView classified-ads-0.09/graphics-highres/000077500000000000000000000000001260620453500175475ustar00rootroot00000000000000classified-ads-0.09/graphics-highres/Makefile000066400000000000000000000035031260620453500212100ustar00rootroot00000000000000# -*- Makefile -*- -*-coding: utf-8-unix;-*- # # Classified Ads is Copyright (c) Antti JУЄrvinen 2013. # # This file is part of Classified Ads. # # Classified Ads is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # Classified Ads is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with Classified Ads; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # The file turt-transparent.xcf is highest-resolution version available # of the turtle logo. It is not used in runtime in that high-res but instead # converted to 2 smaller resolutions. This makefile handles the resizing # using imagemagick. If turt-transparent.xcf is modified, say "make all" # in this directory to generate the small-resolution versions that are # used at build stage. # all: ../ui/turt558.png ../ui/turt-transparent-128x128.png ../ui/turt558.png: turt-transparent.xcf convert turt-transparent.xcf -resize 558 +set date:create +set date:modify -define png:exclude-chunk=time ../ui/turt558.png ../ui/turt-transparent-128x128.png: turt-transparent.xcf convert turt-transparent.xcf -resize 128x128\> -gravity center -background none -extent 128x128 +set date:create +set date:modify -define png:exclude-chunk=time ../ui/turt-transparent-128x128.png clean: rm -f ../ui/turt558.png ../ui/turt-transparent-128x128.png classified-ads-0.09/graphics-highres/README000066400000000000000000000007041260620453500204300ustar00rootroot00000000000000The file turt-transparent.xcf is the highest-resolution version available of the turtle logo. It is not used in runtime in that high-res version but instead converted to 2 smaller resolutions before build. If you modify the high-res original, have imagemagick installed and say "make all" in this directory to produce the smaller-resolution versions that are then used at compile+install stages. Smaller-resolution versions reside at folder ../ui/. classified-ads-0.09/graphics-highres/turt-transparent.xcf000066400000000000000000102512041260620453500236130ustar00rootroot00000000000000gimp xcf fileяђC•џьC•џьG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) ЎяђLiitetty tasoџ     lяђ!RT!R`!Rl!Rxяђœ/WUі{G›ЖВЃЭЄѕл%ЂUќ†>ЕMрs J5s\XtЎ—шК†о…Ц/ _{eРБ№§!?QzЖГvтќ Š.ŠVS€ЌА"пzЮ@kpQ …аНљ13ak’ ТVь( Ј4UaЧŒzВ оx Т >ї o) Ÿ| Яу G 0К a ’щ Т тЗ  ?В o ŸЩ аФ $ 1{ a9 ‘ Ся ђb "Ч RГ ƒ, Д еC7sgъ˜ˆШыљQ)ЂYћŠNКUъ0nJЎzљЌvЯ„Y1Юb~“(Ф(єЈ%UN…ИЖц…мGAwЈЉЬ`ќТ,kY~W­ьп]п@ip№ЁqбшŠ3 cЏ”ЪЙГтФчA"oA˜hЩјњ”+е\NŒлНэТZNш§ЁЯцћ)ZIђiЮš№ЫФљa МJvЃЈи— "9ЭZМЎ•зк38cц”ЁТЬсW 7eh1˜РЩ_љи•:хVaq—•WЛ&сž ‹ -ц S xt ž; Фф ы !U!7‚ўњўўўћўўњњ§§ўћўўєћ§§љєёёњўўћўўѕћў§ћўћў§љњ§§ћўћщўљј§ўњ§§љјћљ§њ§§љ§§ћљљўўѕњјєѕћ§ўўњћўўўћўў§ћўћћўђћўљњ§§їїћ§§ћћ§§ўўћўўќћўў§§ѕўњјјєїћўўћўўћўўћў ў§ќљњњ§§ўўћўў§ўњ§§јѕяєњћћ§ўўћ§њўўћўўў§ўўќ§њљћћљ§§њ§ўўяћўњяыђїћњ§њѕљ§љћўўєћњјљўўћ§§њћўўёњћћўћўў§§ћўў§ћњњ§юњ§§ћ§ўўљњўћ§њѓёѕљ§§ўњћўўњњўўўћўўё§љ§§њ§ћўўњћљћњ§§ўњўўўњ§§іњђёєјљћњ§ўўќћўљ§§ўќ§ўћўўћњўћћўљўўи§њљјјњљћјјћћ§љћ§ўўћ§њњ§јљђёљ§§њ§њљћћ§њћўў§ўѓљјљћњ§ў§њ§њ§ўўїњ§њћњњљћљљ§љѓћ§ўўњћјђѓљ§њў ўќњћљћћ§њѕњўўћўўєћўў§ћњ§њњ§§ўў§§ћўўљ§ћѓяѕљў ў§§јњ§§љљјњ§§њўўѕ§љ§ўўћў§њ§ўўњћўўћў§§љ№§ўћѕяѕњ§ўўћўўћћўўљћ§ћљљ§ўўѕ§њ§ћљњљњ§њўўќћ§љўўњўїўўї§њћњ§њ§§њњѕћљћћ§ўўўљўўўћўўўњўўњўќћ§§ўўўћўўћћўћћўў§шћљђюђј§ћўў§§љњћћ§њ§§њў§њњ§ўњўўўћўў§јћњ§§ћўћўўўћўўњ§їѓѕ§ўў§њ§њњэ§ћ§њ§њњ§§ћћјћ§§њ§љћћ§§ћўўњ§ћќњўћўўѕ§њ§јѓѕљ§ћў§§чњўњљјјћљљћјћ§ћјљјћ§њ§ўўћўўљћўћўњћўўўћўўўћўў§ћјїѓјўў§ћћњўћћўўўћўўљњ§§њ§ћўўќћўћўў§ўњ§љѓѓј§§ўўћўўўћўўћћўўћўўћјњњјљњњ§§ћњ§§ћўўђћўўћ§њњћљјєњћўўќ§љњ§§ўћ§ўћўўћљљћјїћ§ўўѓ§јљћ§њ§њ§§њїўўє§јєєћ§ўўћњљўўіњћ§њћљј§§ўўў§ўўћ§ўў§ўўяљњўўњћњўўјљ§§љ§њўўї§ћљїђѓњ§ўўќљћ§ўўўћўўўћўў§ўѓћ§њ§§ћњљ§§њњўўљћў§§њїѓѓњћ§ћћ§њњњ§ўў§њ§§њњ§§ўћўўўћўўш§њјјћљ§ўў§љїїјљљјњћўў§§ўўѓћєюѓћўћ§§љћ§ў ўіњљњљјљ§§њ§§ў§ўњўўћћўћ§ўўѕњ§ўў§јѕј§ў§§ћўўћўў§ўњ§§њўћ§ћћ§§ўњћћ§њћўўћ§њњљјјўљ§§ѕњўўњљљјћўћўўўћўўћўўћўўќћўћўўќћњ§ўўўњ§§ќћўўњњћ§њ§њ§§јљјјѕњ§њўўўћўў§ќњ§љ§§њ§ўўћўў§ћў§ћ§ўўњњўўћћўўњўіћјєњњ§њњљ§§ќўћў§§ќњ§њ§§њ§ў§ўћўўњћ§§ћћ§§љїѓѓњўћўўќ§њћўўўћў ўўћўўњ§ў§§ў§§ќћўў§§їћўўћњљћћ§§јћјњјёёјўў§ў§ўћћ§љњњўўў§ўўљ§љљћњњўў§ўћћњ§њўўёњљњєђјњ§њ§ўћ§љ§§ў§ћ§ўўўћўўі§ї§ўў§њўћ§§ќљ§њўўўћўўўћўў§њё§ћљѕєјћћјўўњўћўўўљўўўћў ў§њћўўјћўўњњљ§ўў§јўћѓяёј§ўўќњћћўў§§ўћўўўћўўћўњњћћўћўў§ћ§њњ§ўў§§љ№§њ§јєїћ§њ§§њјњњ§§њўћўўњњћўўћ§ўў§ћїў§љљ§§њњ§§ьљјј§њљљћљ§љљћњјѕѕћ§ўўѕ§њњ§§ћў§§њ§§њћўњўћўў§ўњ§§њц§ў§§ћўўњ§§ўўњњљњєєѕ§ў§ўћћўўћћўћў§§ўќћўћ§§ѓњљ§ўў§њћўћў§ўўшћў§јљћјєњњўћўњњ§§ўњўў§ў§§ўђ§ћњ§§љїћў§§ўўњњ§ўщњљљѕћљљњўўћўў§њѕњњћўў§љљўњ§§ўьњ§§ћљ§§љљћњњћљћ§ћћљўўўњўўўћўўќћўњ§§љћњўўљњњјѕєћћўўћўў§ў§§њ§ўўі§њўўћћ§ўћўўі§јѕяєћћўў§§ћњї§ћўўѓћўў§њ§§њњ§њ§ўў№ћўћў§њљ§њњ§њњ§§ўўфњјѕњњ§§њ§њњјѓюѓњљћњўўњњў§њ§ўўў§ўў§§њўў№ћўўњўњ§§ўћўў§§њ§§їњўњљњњ§њ§§љћњѓёђњ§§§љ§ўўфћўћўћњљњ§њњ§њњјѕћ§ћљљњ§ћћўћўў§љўћћўћў§§ў№ћ§ћћљљњљѓѓєћ§§ћўўўћўўќљўћў ўўњ§§ћў§§ћ§§ћьў§§ћћљњњїђїњћњ§ўўћћўўўћўўњњљћ§§ў ўњ§ћњјљћћјњ§њњћљ§ўўєњљњљёцыїј§њўўў§ўўјњ§§ћљћљ§§§ћў§§ўњ§§љњ§њ§ћћ§§ўћ§§јњ§њњ§њњ§§ыћљяьёњ§њ§њўўњћћљћћњњўў§њї§њћўњ§ћћ§§ў§§ў§§їњ§§ћў§§љўўє§ўў§§ћћїєљњ§§§њ§ўўѕ§ўћўћћњњўў§§ўњ§§ћњљ§ћ§§ћўљ§§ўљ§§яњ§њћјљѕђяѕњљ§њўўћћўўћ§§ыљћ§§љўўћўў§ћљљћ§§њ§§ўў§ўњ§§ў§§љћћљјїѓѓї§ўўѕћњ§§њљљћ§§ўў§ў§ѕћљ§§њћћ§§ћўўщћўћ§§ўўњњћњ§јѕѕћњћ§§њњўў§јљ§њњўњ§ћћ§ўј§љ§§њ§љћћј§љ§љ§§ћљљїњјћћњњљљћћѓљїћњњ§§њњ§љљўў§§ћў§ §њћ§§њўћћљћѓљћњћ§§љљјљњљћћњјёљјјњљћјњњљћљ§љ§§њ§ў§њњћњќўћў§§ќћўў§§ћў§§њ§§яћўў§§њ§ўў§ћѕѓєњљ§§ѕљ§§ћљћћ§§њ§§њ§јў§њћћ§§ўўј§њљўћўў§§ў§§ўћўўњ§ѓћїєѕљўћўћўўћ§§§ћљ§§њњ§ћњњ§§ўў§ўўќ§ћљ§§ћўљ§§ўћљљѓњїјљјјѓюёјћћ§§ћ§љў§ћјљјњљ§ўћўў№§ћљјјњћ§њ§њў§§ў§§ўћ§§љњђюђљћ§§ћўњ§§ћ §ўћњњ§ћћј§§ў ў§њљјєїћ§§§њ§ўўѕњ§ћћљћћљ§ћњњўјћћљћљўъ§њ§§ћћј§њ§§њ§њњћћљѓђї§§§њ§ўўћ§њњљћћі§ўў§ћњњћњћћ§љћ§§нћљ§ў§њ§ћњјљѕљћљћ§јћћ§§њљћјљѓѓљ§ўћ§њњѕ§њўў§§ћјјљћћљћћјњћљ§§ћ§њ§љљёјћјњ§§ўћњ§§ўњљћћљљјњјєљ§ §ћ§ћњљљ§њ§њћћ§§ў§јњ§ў§ћћ§ўў§ьўћ§їїљѕјњћљњ§љњћљћћ§§§ћјћћ§љћ§§ћњ§§њ§§ћќљћљ§§ќњ§ћљљ§ўў§§јћѓєїћ§§ћ§љћљ§§ћљћћ§ўњ§§ўћ§§ћ§њєљњјњїњјљ§§љћћхњїјѕєљњћњўўћњљљћњ§ћћљњўў§љўўыњ§ўў§њњћћњ§ўў§§љ§њ§њћћяјљћ§њћћљљјњјюѓјљ§§ў§њ§ўў§§њ§њњў§ћў§§ўњ§§ќњ§§ўўћ§љљјћћ§љњјјћ§њћћљљћћ§§ћўўћћўћњўў§ўљ§њњ§њњўўљўћњћјјћћљтћњєђђѕњњћћљћљљњ§ћњњ§§ўћў§§ћљљњњќ§њљўў§ўў§ўў§ўћўўјћ§ћїяѓљўўў§ўўўћўў§§ў§ћћў№§ћћ§ў§ћ§ћ§њћћ§ћ§§јћњћћ§ў§ўўј§јђєњ§§ўўў§ўўў§ўўю§ў§ў§§ћћњћћ§њћћ§ћўўќ§ў§ўўў§ўў§§ћ§§ћјэѕњўўњ§ў§ў§ўўќ§ў§ўўў§ўўё§ћ§ћћ§§ћ§ћ§ћў§ўў§ўћ§§ђћ§ћѕьѓљћњ§ўў§ўўћ§ћ§§ўўњ§ў§ў§ўўќћў§ўўќћ§ћњњћљ§ћ§ћ§ћўўљљѓьєћћ§§§ћ§ўў§ўќћ§§ўўќ§ћњўў§љћў§ўћў§§ўћ§§ъћњћў§ў§ўў§љѕѓјћ§ћ§ћ§§ўўў§ўў§ўќ§ў§ўўђ§ў§§ћ§ћ§ћў§ў§ћћ§ьћ§§ў§ў§§ћ§љєюїњћњ§ћўўї§ўћ§ћ§§ў§§ўў§ўўќ§ў§ўўєћ§ћ§ћ§ўћћњњћћњњ§§ўў§§јћ§јєђљћ§§ў§ћ§ўўрћ§ћ§ўў§ўћћњ§ћўћ§ћ§ћў§ўў§ћ§њ§§ћњћћў§ћћђњћўў§ћїёёјћ§§ўўі§ў§њћћњћћ§§ўў§ўўћ§њ§ћ§§шћў§ў§ў§ў§§ўў§ў§ўћћѕђєћ§ўўъ§ў§ў§ў§§ћ§§ћћ§ў§§ћћ§§ўўќћўћўў§ўњ§ў§ў§ўўћћ§ћ§ћћ§љћјјњ§ћў ў§ћњћћќў§ў§§ћњћ§ў§§љў§ў§ўћўў№§ўў§ўў§ўћ§њ§ћ§ћ§§ўњјјњ§ћў§ў§ўўў§ўў§ў§§ћўўќ§ў§ўўќ§ў§ўўіћ§њјєяѕњћўўђћ§ў§њњћ§ћ§§ўћ§§њћ§ћ§§ў ў§њћў§§ћўўў§ўўђ§ў§§љѕњ§§ў§§ћ§§ћ§§ћ§§ћђњ§њ§ћ§ћћњћњћћўў§§ў§§ћњў§ўўђ§ўћ§ћњѕђј§ўўћ§§тћ§ћ§§ў§ў§§њћћњћњћћњјњњћ§ћў§ў§ўў§ ўў§ўўјћ§ћњѕїњўўј§ўћ§њћ§ўўў§ўў§ўћ§§ўќ§ў§ў ўќћ§§ўўіћјєѕњ§ћ§§ўўў§ўўќ§ў§ўўў§ўў§§ћњњњљњћ§§ћћ§ўћўўњ§ў§ўў§§ўїўљўўђ§ћў§ћ§ћў§ў§ў§ўўў§ўўћњњћњ§ўў§§ќћњћ§§њћ§ўў§ўўѕћњїїњ§§ўў§ўўў§ўўєћ§њћћ§ћў§ўћўўъ§ўћў§ћ§ў§ў§ў§§њ§§ў§ћћ§§ўў§ўўћљљєѕљ§§ўўј§ўњ§§ў§ўўј§ў§ў§ў§ўў§ўћўўїћ§§ћћљћћ§§ўь§ў§ў§ў§§ћљљѕюѕњ§ўўћ§§§ћў§§ќћ§ћ§§ўћўўў§ўў§§ў§§њћє§ўћћњћ§ћћ§§ўўњћ§§ў§ўўђњїяѕњўў§ћћњ§§ўўы§ў§§ў§ћњћ§ћ§ћ§ћўў§ћ§ў ўўћўў§ёў§њїњћўћ§ћ§ўў§ўўў§ўў§іћ§ћ§ћўў§њћћў§§ў§§ўћњњђћ§ћ§§ўў§ћљїћ§ўўў§ўўў§ў ўњ§ўў§ћўўљћ§ћ§ўў§ §№ћ§ћћњїјљћ§ўў§ў§ўў§§ўћћљ§ћўћ§ћ§§ќћ§ћўўў§ўўєћ§ў§њ§ўў§ў§ўў§њўњїїњ§§ћў§ўў§§ћ§§ќћ§ћ§§ќћ§§ўўў§ўўќ§ў§ўў§ћ§ўўя§ўў§ћћњ§ћ§ћ§њѕєњўўі§ў§ћ§ў§ў§ўўў§ўўќ§ў§ўўў§ўўя§ћ§§ћўћ§ћў§ўћ§ћ§ўўњ§ћ§ћћњљїѓєњўўћїў§§ћ§ўў§ўў§ћў§§ў§ћў§ў§ћћќњ§§ўўтћ§§ўў§ћ§§ўў§ћњїєї§ћ§ћўўћћ§ћ§§ўўћ§ўў§ўўљ§ўћўћў§§ўѕ§ћ§ў§§ў§ў§ўўў§ўўќ§ўћ§§њћњјєїњњќ§ў§ўўў§ўўў§ўўќ§ў§ўўў§ўў§щўћў§ў§ў§ў§§ћ§ћ§ўћѕьѓњћў ўњћ§§ў§ўўў§ўўњ§ў§ћњўўў§ўўўћ§§ўћ§§§ћ§ћћ§јїђѕћћ§ћ§§ќћ§ћ§§ў§ўіћў§ўў§ћ§ћўўћ§§ћ§§ќћ§ћ§§ћѕ§ћћњњїєјћћўўў§ўўўћ§§ѕў§§ћ§ћ§ћ§§ў ўўћ§§ўћ§§шћўћ§ўў§§ћ§§ў§§ћњїѓј§ў§§ўўє§ў§ўў§ћ§ћ§ћўўў§ўўє§ћ§ћ§ў§ўўћ§ўўњћў§ў§ўўэћ§ћћїїљ§§ў§ў§§ћў§ў§§јћ§ћ§ћў§ўў§ѓњ§ћ§ћћњўћ§ўў§§ђћ§ўў§ћћ§њћћ§§ўўњ§љјљ§ўўў§ћћћ§ћ§ћўў§ћў§ћћѕњ§§њћњ§њћћўўў§ўў§§ћ§ћћ§ѕўћљљњјїњў§ўўљћ§ћ§ћ§ўўі§ўћ§ћ§ћ§ћўў§љў§ўў§§ўўќ§ў§ўўў§ўўі§ўў§§јїїњўўјћ§ћ§§ўћўўњ§ўћ§ћ§§ќћ§ћўўў§ўў§§ўћ§§§ћ§ўў§ћ§ѕњѕёѕљћњ§ўў§§ў§ў§ўљ§ў§ў§ў§§ў§оћ§ћ§ћ§ћ§§ў§ў§§ћ§ћ§ћћљѕьєљ§ћ§ћћ§ў§ўўў§ўў§ўћ§§ћ§ўј§ў§ў§§ћўў§ќћ§§ўўћєњћћљјѕђїњ§ћўўњ§ў§ў§ў ўў§ўўў§ўў§јћ§ћўћ§њ§§ўћўўёћ§њњћњљѕєѕљћ§§ўўќ§ў§ўўј§ћњ§ћў§ўўя§ў§ў§ў§ўћћљ§ћћњњ§§чњћћў§ў§ў§ў§§ћљјятэѕњћ§ўў§§ў§ђћ§њћњћћ§ћў§§ћ§§юћ§ћ§ћ§ћћњ§ћ§ў§ћ§ћ§§іћ§ћћјђыѓљ§§ў§§њћћєњ§§ў§ўћ§ћ§ћ§§шў§§ћњњ§ћ§§ўћўћ§ћ§ћ§ўў§§ўўь§ў§§ћћњљїљ§§ћ§ћ§ћ§ћўў§§ў§§ў§єў§§ћћ§§ћ§§ўћћ§ёњћћ§ћ§ћ§ћ§ћ§ћћ§§њјљєэєљћћўўє§ўћћ§ўњ§ћў§ўў§ўњћћ§ўћўўј§ћ§ћ§ћ§ўўў§ўўћіњћњњљѕѕљћўўћ§ћ§§ћћ§ќў§ўћћэ§ћў§ўћ§њћћ§§њњ§ћў§ў ўќ§ћў§§ѕћ§§њјјћ§ўћ§§ўњ§ўћ§ћ§§ђћњњћњ§ћ§§ўћўћ§§ћіњћћўћўћ§њћћьљ§њњ§§ћћњћњћњљљћ§§ћ§§ћуў§ўћ§ћ§ћўў§ћ§ћ§ћ§ћ§ћ§њ§ћ§ўћњћћўњћћъљћћ§ћћ§ћ§ћњћњћњњљљњњјњњћ№њљљћњћћўћ§ћ§§ўћ§§§њћ§§ўэ§ћ§њўў§ћ§ћ§ў§ћ§ћ§ћўўўћ§§чўћњјѕїњћ§ћ§ў§ћњћњњ§ћ§ћ§ћ§§№ћўћ§њњћ§§ў§ўћ§ћўў§јћ§ћў§§ћўў§§ў§§їћ§ћћљїјћўўш§ўў§ћ§њћћ§ћ§ћћ§§ћ§ћ§§ўћўў§§ўћћя§ћ§њћћ§ћ§ћ§ћ§ћ§њћћшљћњћњњѕьэїњћћ§ћ§њћћ§ћ§ћўўт§ўћ§ћ§ћњњћћ§ћ§ўў§ў§§њћњњљњћ§ћ§§мћўћ§ћўћ§ћ§ћљєђєљњ§ћ§ћ§њћ§§ћ§ћћњћћ§ћ§§їћ§ћ§ћ§ћћ§§юћ§ћ§ћњћ§ћў§ў§ў§ў§ўў§ћїъљћћ§ћ§ћў§ў§§ћћњћњћћ§њљљњљћњњћћњћћўѕ§ў§ўћ§ћ§њњ§§ђћ§ћ§§ћњљѕѓљ§ћ§§ћў§ўў§§шћњњћћў§§њљљћ§ћњћћњћ§ћњћ§§фњљњћ§ћњћњ§§њњ§ћ§ћћњљѕѕј§§ўћ§§љћ§§ўћ§њњћћњћњћћњіљњћћ§ћњњ§ћћё§ћ§§ћ§§ў§§ћў§ћњњыћњљїїј§ћ§ћ§ћ§ћ§ћ§њћћ§§њ§љњћћя§ћ§њћћ§ћў§ў§§ћ§ћ§§ѓў§њњћў§ўћ§ћ§ћћўћ§љѕјњњєћ§§ў§њћњњћ§ћћњћ§§ћ§§юћ§ћ§ћ§ћњњћћњћ§ћ§ћ§§ўњћћ§эћ§§њїїљћћ§ћ§њњ§§ћ§ћћў§ћћњїћ§ћ§ћ§ћ§ћћш§ћ§§ћњњћ§ћ§§ћљњљћљњћ§ћўњњїљїєїјњњ§ўўя§ћћњ§ћћњћ§ўў§ўў§ўўќ§ћў§§њ§ўћўў§§шћњњ§ћњ§§ћњћћњљјђяїћћ§ћ§ўўѓ§ў§ў§§ћў§ў§ўћћ§§ћ§§ўќћ§ћ§§ќћ§ћ§§тћў§ўў§ћћњћњћћ§ћњїїњ§§ћњњћћњ§ћўўњ§ў§ў§ўўњћ§§ўћ§§ћў§ў§ў ў§§ћњњ§ћњћћчљїєєјљљћњћњћћ§ћў§§ћ§ўў§§ћћ§§ћ§ўўў§ўўў§ўў§ћјєїћўўќ§ў§ў ўљћў§ў§ў§§єћў§ў§ў§ў§ўћўўњјѓї§§ўўє§ўћўћў§§ћў§ў ўѕ§ў§ў§§јћј§ўўњ§ў§ў§ўўќ§ў§ўў№§ў§ў§ў§ўѕєѕћћ§§ўўў§ўў§њћ§§ў§ўўіћїѓѕћћў§ў§§ўў§ўўў§ўў§ћ§ўўў§ўўі§ў§ў§ў§ў§ўўў§ўўє§ћїїљ§§ў§ў§ўўў§ўў§§ў§ўўјћ§ћў§ў§ўўє§ў§ћѕїјћћ§§ўўњ§ў§ў§ўўў§ў ўў§ўў§ѓў§ўћўњ§ћўћ§§ўў№§ў§ў§њјљљў§ў§ў§ўўў§ўўќ§ў§ўў§ўќ§ў§ўў§§ў§§ѕўћ§ћ§ћў§ўў§§ўјћљѓћњў§ў ў§љћ§ћў§§ў ўј§ў§ў§ў§ўўў§ўўњћљѕљћў ўќ§ў§ўўќ§ў§ўўў§ў ўќ§ў§ў ўћ§ў§ў§§љўћћ§њ§ў ў§ўћўў§§ў§§ћў§ў§ўў§ўѕ§ў§ў§ўњћљњ§§ўў§ўўў§ўўў§ўў§њњјїљњўў§§ў§§ћў§ў§ўўў§ўўќ§ў§ўўў§ўўў§ў ў§ќљњ§ўўф§ў§ў§ўћў§ў§ў§ўћ§ћ§§ў§ўћ§ћ§ћўўњ§ўћ§§ў ўј§ўњљњњ§ўў§јў§ў§§ўў§§ђћ§§ў§ўћўњћ§ў§ўўљ§ўћњњћўў§ўћўўњ§ў§ў§ўўў§ўўјњћљћ§ў§ўўќћ§њћћќ§ў§ўўќ§ў§ўўї§ў§ў§љњћў ўќ§ў§ўўјћў§ћћ§§ўў§ўњ§ў§ў§ўўњќј§§ўўў§ўў§§ў§ўўў§ўў§ў§ћў§ў§ўўјћ§њјљћ§ўў§ўўћўўў§ўў§§ўћћћў§ў§ўўі§ўћњїђї§§ўўќ§ў§ўўі§ў§ў§ў§ў§ў ўљ§ўћўћ§ўўјћўћ§ћ§§ўўў§ўўі§јњї§ўў§ў§§ ўј§ў§§ћў§ўўў§ўўќ§ў§ўўј§ўў§ћўћўўќ§ў§ў ўњ§ў§ў§ўў§ўћў ўћ§ў§§ћћћў§ў§ўў§ќљћћўўў§ўўќ§ў§ўўъ§ў§ў§ў§ў§ў§ў§ў§ћљћћў§ў ўў§ўўќ§ў§ўўў§ў ў§§ў§§ ў№§ўў§љњњў§ў§§ўў§ўўі§ў§ў§ў§ў§ўўќ§ў§ўўў§ўўђ§ўћ§§ў§ў§ўїћњўўў§ўўў§ўўќ§ў§ўў§ѕў§ўћўћљїњњўўќ§ў§ўўќ§ў§ўўў§ўў§ўў§ўўќ§ў§ўў§њњѕљ§ў§ўў§§ў§ўўў§ў ўў§ўўњ§ў§ў§ў ўі§ў§ў§њїњњ§§ўў§ўўќ§ў§ўўє§ў§ў§ўћљєїћў ўў§ў ў§ћ§ўўѓ§ў§ў§ў§ў§ў§ў§§ыў§љѓњћў§ў§ў§ў§ў§ў§ў§ўўў§ўўќ§ў§ўў§њў§ў§ў§§ћў§ўћ§§јћ§њљїћћўўђ§ў§§ўў§ў§ў§ў§ў ўј§ў§ў§ў§ўўў§ўўќ§ў§ўў§јњјјћ§ў§ў ўњ§ў§ў§ў ўј§ў§ў§ў§ўўў§ў ў§ћќјћ§ўўђ§ўў§ўў§ў§ў§ў§ўў§їў§§ћ§ўў§ўўњ§ў§ў§ўўј§ў§§ћ§§ўўњ§ћјћ§ўў§§ў§ўўљ§ўћў§ў§§ћў§§ћ§§§ћ§ў ў§§ў§§єў§ўў§ћћњћј§ўўњ§ў§ў§ўўњ§ў§ў§ўўў§ўўў§ўў§ћљћњ§ўўќ§ў§ў ўј§ў§ў§ў§ўўє§ў§ў§ў§ў§ў§ўў§§ў§ўўє§ў§ћїєїћћ§§ўўњ§ў§ў§ўўў§ўўў§ў ў§ўі§ў§ў§ў§ў§ўўэ§ў§ў§ў§ўћћїјѕћ§ў§§ў ў§ёў§ў§ўћўћўћ§§ў§ўўў§ўўќ§ў§ўўєћ§ћ§ћњїєј§§ў#ўќ§ў§ўў§ў§§њћјјћ§ў§ў ўќћ§§ў ўћ§іћ§§ў§ў§§ћўў§іћњђђёњћў§ўўў§ўў§§ў§§§ў§ўўх§ў§ў§ў§ў§ў§ўћ§§ў§ў§ў§ў§ў§ў§§ёў§ў§ўћњѓяєћ§ў§ўў§ќћ§ћ§§ўј§ў§ў§ў§ўўј§ў§ў§ў§ўўі§ў§ў§ўў§§ўўя§ўў§ўћ§њњљў§ў§ў§ўўў§ўўў§ўўќ§ў§ўў§ћў§§їћў§ў§ў§ў§§ўє§ў§ћњћѕљїћћў ў§ћў§ў§ўў§јћ§ћў§ў§ўўј§ў§ў§ў§ўўіћ§ћ§ћњїљљўўі§ў§ў§§ћў§ўўў§ўў§ћћў§ў§§ўў§ўўі§ўћў§ћљћћўўќ§ў§ўў§§ў§ўў§њћ§§ў§ўўё§ў§ў§§ћ§ћў§ў§ў§§ўћ§§ў§яћ§ћ§љ§ћў§ў§ў§ў§§ўўќ§ў§ўўѕ§ў§ў§ў§ў§ў§§єў§ўћ§ћ§ћ§ћ§ћћшў§§ћ§ћўћ§ћ§ћ§њћћўћњћћњ§ћћ§љў§ў§ў§ўўј§ўў§ћў§ўўю§ў§§ўў§ў§ў§ў§ў§ў§ўўќ§ў§ўўѓ§љљњњ§§ў§ў§ў§§їў§ў§ў§ў§ўў§§ў§ўў§ўќ§ў§ўўў§ўўі§ў§ўћњјљћўўю§ў§§ћў§ў§ўћў§ў§ў§ўўяћ§§ў§§ћ§§ў§ў§ў§ў§§ћюўћљєѕљ§ћў§ў§§ћў§ў§§ўћ§ў§ў§§ўў§§ў§ћј§ў§ў§ў§ўўў§ўўу§ў§§љјѕјљ§§ў§ў§§ћў§ў§ўў§ћў§ў§§ыў§ў§ў§ўћў§ў§ў§ў§ў§ў§ў ўі§ў§љњњћў§ўўј§ўћ§ћ§ћ§§јћўћћ§§ћ§§ќћ§ћ§§ў§§ў§§§ў§ўўђ§ўћ§љљњњ§ў§ў§ўў§§ў§§ўћўў§ћіўћ§ћ§§ў§ў§§ѓў§ў§§ћћ§ў§§ћ§§њў§§ћћљљ§ўў§ўўў§ўў§ћ§ќћ§ћ§§ћњ§ћў§ў§§ѕў§§ћ§ћ§§ў§ўўў§ўўўћ§§ћюљјњ§ў§ў§ў§ў§ў§ўћў§§ѓћњ§§ў§ў§§ћў§ўўї§ў§ў§ў§ў§§ўќ§ў§ўў§рјњњўњ§ћў§ў§§ћ§§ў§ўћў§§ћ§ћў§ў§ў§ўўј§ў§ў§§ћ§§њў§ў§ў§§юў§ў§ў§ў§§њњјњћў§ў§§іў§ўћ§§ўћў§§§ў§ўўы§ў§ўћў§ў§§ћ§§ў§ў§ўћўћћњўћ§§ў§§њљњјњњ§§ўўі§ўћ§§ўћ§§ўўў§ўўў§ўў§§ў§§§ў§ўўњ§ў§ўћ§§ьћ§§ўћ§ћ§њћјјѕљћў§ў§ўўў§ўўњ§ў§ў§ўўє§ў§ў§ў§ў§ў§ўў§ёўћ§ћў§ўњћљ§§ўћ§§ќћ§§ў ўў§ўўњ§ў§ў§ў ўў§ўўћћ§ћ§ћ§§ћјћћўћ§ћ§§ўќ§ў§ўўњ§ўћ§§ўўќ§ў§ўўў§§њћўўўћ§§њњ§ўўњ§§њј§њ§ћљ§§ўўѕ§њ§њ§§њћўўћћ ўћћўўњў ўўћўў§ўљўўўћў ўћўћўўћўўћўўћўўћўўњўўўћўўўћў ўћєўћўўњўћ§њ§§ўўўњўўћўў§ўўћўўћўўў§ўў§ўњўўћћўўћўўўћў ўћўўћў ўѓћўў§њљљћ§§њ§ўўўћўўї§њћўњњўћўўјћўўњћўњўўћ§њўћўўњћ§ћњљ§§љљћћљ§§ўўћѓўћўўњљћўћўўћўўўћўўщњ§љћ§њўљњ§§њўўћўћўћњљњўў§њљ§ўћћўўўћўўўћўўќњ§њўў§їњўўўћўў§§ћўўћћўў§ўўўћўў§§љ§§ўћўўћљўћўўћ§ўўїњљј§њћљњўўћќўњћўў§ўќћ§§ўўћўќ§њ§ўўќћўћўўўћўўќћўћўўўћўўўћўўљњ§§њ§§ўўўћўў§§љћ§§ў§ќњ§ћўўїћўћћўў§њ§§§ћўћћјњ§њњўўћўўт§ўўњћћ§ћћўўћћљљћњўўљ§њ§§њў§§ћўў§ўўћўўћ§ўћ§§ўћўўўћўў§ўћ§§ўљўў§ќњ§њўўћћњћћўўўћўўўћўўћћўў§ўўњ§§њ§ўўяћўўћўћўћўўћўў§ўў§§ћњў§љўўћ§њњ§ўўљћўў§§њ§§ўњўўј§њћўћўў§§ўћўњўў§ћњўўћўў§ўўўћ§§ўљ§ўў§§њўўќћ§њ§§ўћўўўћўўўћўўјћљўћњ§§ўўћўўћўўўћў ўј§њ§ћљљњљљћњјћћљћ§§њ§§њўўќћњ§ўўўћў ўўћўўћљ§ћ§ўў§їњљћјљћћ§ўўў§љљћњ§ћњўў§ћў§§ћњў§§ўўћўў§ўўўњ§§ ўћћ§ћћ§§§ўћўўћ§ћћј§§љюћљљћћњ§§њўўљј§§њ§ў ўќ§њ§њњћ§ў§ћў§§ћћњњ§ўўї§ўў§§ћўў§§ќў§§ўўњрћўў§њ§§ћћ§љљ§њ§§њ§§ћ§ў§љњ§ў§§ўў§§ў§ћћљћћўўѓћўўћјћљјљ§§ћўўўћўў§№ћљћњў§њ§§њ§§љћ§ўў§ўїћњўў§ўњљ§§љњ§§љ§ћўў§ўќ§њњ§§ѓћўўћћ§§њўў§њў ўњњ§§њћўўўћўўќњљ§ўўўћўўўћўўћћў§§ћћіљћ§ўўћўћў§§љњћўўћћўўћ§ћљ§ўўј§ўўћўћћўўўњўўќћ§§ўў§§ўћ§§њњ§§ў§љљёћљћјњљњ§§њњћ§њўў§щљ§§ўўћћўћўћћўњ§§њ§ћў§њ§§§ўћўў§ћ§ўњ§§іћ§њ§њ§њ§§ўў§ћ§ќћўћўўюћ§§њ§њўў§љћљћњјњћ§§§њ§ўўќћ§§ўў§њѓ§ћўћўў§њўўћњў ў§ђњѕћ§њњљћћљјћћ§§ўќћў§ўў§њўћћў§ўў§ўњ§ћ§њњћћћ§њ§ћ§§ўњ§§ўїћ§ћћјїјљўўћ§њ§§ўўі§њћћўўћўћ§§ўњ§§ўњ§§ћј§њ§њ§ћ§ўўі§њљ§§ўћўњ§§љћў§ћњ§ўўўћўў§ћў§§ѕњ§њљћ§§ћљћ§§ўћўў§юњўћўўћћ§њњ§§њњ§њњ§§ќњўћ§§ўњ§§ћњ§§њ§§ўњ§§ѕћ§§ўћў§њћјўўўћў ўєћўў§§љ§ў§ћљћћљ§ўљњў§§љћ§§њћјјћњ§§ўњ§§їћўћ§§њњ§ўўјњ§њњ§љљ§§хў§њњ§љћљњ§љћљ§њ§§ћљ§§њћћњ§ћћіј§ћњћћ§§њ§§ўўћўўўћўўђ§њ§§њ§њњ§§њћљћћќ§њљћћў§ўўќ§њ§ўў§эўћў§њўў§§ўўћ§§љћљњ§§ўњ§§љћљ§њ§§ћћє§њ§§њ§њћљћћ§§њў§ўўћўў§њњ§љћњњў§§ћћў§ўўљ§њћўўњћћњ§ў§ўѕћ§§ћљћ§њ§§ўўў§њњє§ўњљњўћћў§§ўўўљўўњњѕєћњ§§§ўћўў§њў§§љ§ўўёњ§њњ§њ§§ў§ћћњњўў§§ћўўќњћњўўюћ§њњљ§§ўў§§њ§њ§љ§ўў§ўўњўўњћўўћў§§ќўћћ§§§ўћ§§ўњћ§ћљњ§§њ§§љўўч§љўћњњ§§њћўў§§њћўў§ў§ў§ћўўў§ўўќјћўњњ§іў§§њ§њњ§њ§§ќўћћўўњэ§њ§§њћћњљљјјїњјћ§ћ§§§ј§ўў§іњўўњўў§ћћ§§њў№ћў§њ§§ћў§њљћјјћ§§љћ§ѓћљћњїјњјљћ§§ўўќњ§§ћћљњ§њ§§њљљ§§ћѓјјўњћћѓљјјњћљ§§ћљћљ§§њњ§§ј§ћћљћљћ§ѕћљћ§§њњ§љњјјђ§љћїїѕѕјћћљћ§њњ§ьћј§§ўћ§њ§њ§њ§§њ§§њў§§ћўљћћ§ўњ§їљћњјћњўў§§јњћ§§ўўњ§§ќў§њўўњ§њў§њўў§ћњ§§јњћљћ§ўў§§ў§ўіћўљ§њ§§љћ§§ўћўўўћўўјћўўћћ§њ§§њљћњ§§ўўї§љћњўћћ§ўўіћ§§љњ§ўњў§§§ћљ§§ўњ§§їњ§§њњ§њљ§§§ћ§ўў§ћљ§§§њ§ћћўљ§§іњ§ўћ§§їїљ§§ћљ§љњ§§ћњ§њњ§§ўўћ§§њ§§ўњ§§§ћњ§§ћјј§§ўњћњ§§ыњ§§њћњ§§ћњ§§њ§її§ўў§њњўўћўўќњўћ§§ўї§љћљ§§ўў§§њљћћљњ§§ўќћўћ§§ќњ§ћ§§юћ§њўћўўњ§§њћ§§љ§§ўўўћ§§ўњ§§јћ§ўўћўў§§ѕўњў§ћљћљљћ§§їњўўћћњ§њ§§§њћ§§њќўњ§ћћћ§њћћўўї§њљњ§ўћљћћ§іњ§љјљљћњ§ўўќљјј§§љўљ§§ћ§ўўўћўўѓ§њўў§њ§љўўћћўўќћ§њ§§ў§њњ§јћћ§§ў§§ўћўўќњ§ў§§њњ§§ўћўўўћўў§ћ§љћўіњ§ћњ§љ§њњўў§ўљ§ћ§њўў§§ќњ§ў§§ўўћўўћўь§њ§§љћћ§ўў§њћћњњ§јј§§ѓўњљћљїјљўў§ћўўє§ћўў§њњ§ў§ћ§§ќўћћўўљњїјћћњ§§ћњћѕћ§§љћіљћјјћћ§§ћўў§њ§ўўєћ§њњ§ўў§љњћ§§ўћ§љљ§њњ§§њўўўњ§§ўњ§§ўћў§ћ ўњќљ§ћўўќїўў§§ўћ§ћ§њўўьљћћ§ўћўўћўћўњ§њћїћљ§§§ўћўўўћ§§ћњўћ§ћћћљћ§§ўўљ§њ§њ§њўўћјў§§ўў§юњћљћњ§љљћ§§љњ§§љћў ўїћў§ћћј§§ўўћўћљўњ§§ћћјјќњјћ§§ўўњўў§ўњўў§ўњ§ћћљ§ўўњї§ћћїєњљћјј§љ§ўўћєў§§ў§ћћњ§љ§ўў§њќ§њњўўў§ћћјќћјј§§њѓўћ§њ§њўћўћўў§§ў§ћўћўћўў§ћўњњћўќћўў§§љ§њ§ўњўўўћўўјћљ§њљ§§ўўўћўў§ўўћўў§§њ§ўўіјљљ§љљњўў§§ќћўћўўў§ўўј§њљјј§њўўћќў§ўћћї§ћ§ћ§ўў§ўўќ§ў§ўўќ§ў§ўўў§ўў§§ћ§§ћў§§ћ§§іћњўћ§§ў§ў§§ўћўўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўђ§ўћ§ўў§ў§ў§ў§ўўњ§ў§ў§ў ўќ§ў§ўўў§ў ўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўўў§ўў§ўћћ§ћ§ўўќ§ў§ўўў§ўўў§ўў§§ў§ўўќ§ў§ўўў§ўў§ќћ§§ў ўў§ўўў§ўўєћ§ћћњ§ћ§§ў§ўўћћ§ўў§§ўў§ўў§ўў§ўўќћ§ћ§§ў§юў§ў§ћ§ћ§§ћњћћ§ћў§ўў§ўў§ўўќ§ў§ўўю§ў§ў§§ћўњћ§ўў§ћ§§ўўє§ћ§ў§ўћ§ћўћўўў§ўўў§ў ўў§ўў§ўћўў§ўўћўўў§ўўў§ўўўћўўќ§ў§ўўє§ў§§ў§ћ§ћў§ўўў§ўўў§ўўў§ўўі§ћћ§§ћћ§§ўўў§ўўћ§ўћ§ўўќћ§§ўўњ§ўћ§ћўўў§ўўў§ўўі§ў§ў§ў§ў§ўўў§ўўў§ўўў§ўўў§ўўў§ўў§јћ§ћ§§ў§ўўѕ§ћћњ§ћ§ћ§ћўўєћ§ћ§ћў§ў§ў§ўў§§ћ§ўў§ўђ§ў§ў§ўћўў§њћћўўўњћћў§ўўюћ§ћ§§ўћ§ўў§ўћ§ћў§ў ўќ§ћ§ўўє§ў§§ћњћ§ћў§ўўі§ћћ§ћ§§ў§ўўў§ўўј§ў§ў§ў§ўўў§ўўў§ўўў§ўў§ў§јћ§§ћ§ў§ў ў№§ўћў§§ћ§ћ§ў§ўў§ўў§ўћўў§їћ§ћ§ћ§§ў§§ѕў§ў§ў§§ћў§ўўў§ўў§ў№§ўў§ћ§ћў§§ўўћ§§ўў§ћ§ћћўў§ўўљ§ћ§§ў§ўўў§ўўў§ўўў§ўўќ§ў§ўўў§ўў§ћњћћљћћњїћ§ћњћњ§ћ§§ќћ§§ўўћ§ћў§ўўќ§ў§ўўў§ўўњћњћў§ўўђ§ћ§ўћњћњћћў§ўћћћ§ћў§ўўў§ўўў§ў ўў§ўўјћ§ћ§ў§ћўўіћў§ў§§ћ§ћўўў§ўўі§ўћћњ§ћ§§ўўо§ўћњњ§ћ§ћ§ћ§ћћњћћњњ§ћ§§ўўћћ§ћ§ћў§ўўў§ўў§ѓћњћћ§ћ§ћў§ў§ўўіћ§ћ§ћњ§§ћўўњћў§§ћўўљћ§ћўћ§ўў§іў§ўћ§ћ§ўўћћ§сћ§ћ§њ§ў§ў§ћўћ§§ўћ§ћ§ћў§ў§§ћ§ћ§ћћў§§ўњњњћ§ўћ§ўўў§ўўў§ўўј§ўћ§њћњ§§ћћ§ћ§ћћўќћ§§ўў§§ў§§ќў§ћ§§юћўћў§ў§§ћў§ў§ў§ўћ§§§ћ§ўўѓ§ћ§§ўћ§ўў§ў§ўўљ§ў§§ћ§ўўњ§ў§ћћў ўє§ў§ў§ў§§ћњњћћўі§ў§§ћ§§ў§ўўђ§ў§§њћћў§ў§ћ§ўўў§ўўь§ћў§ў§§ћўў§ћ§ћ§ћ§ў§ћћњћљћ§ћ§§ђњ§§ў§ў§§ћ§ћў§ўў§ўћ§§ўўћ§§ўћўўќћ§ћўў§§ћ§ћћэ§ћ§ћ§ћ§§ў§ўћ§њћћ§ћўўў§ўўћ§яў§ћ§ћћњљњљћћ§ћ§ћўўі§ўў§ћў§ўћ§§ў§§ў§ўўќ§ў§ўўў§ўў§ъћ§ћ§ћ§§ћћ§§ћњћћњњћћ§ћўўќћў§ўўњћ§ћ§ћўўѕ§ћ§ў§ўћ§§ўћћ§ѕћњћћ§ћњћ§ћ§§§ћ§ўўћњюјњћў§ў§ў§ў§ўћ§ћћ§ўў§ўі§ўћ§ћћ§§ћ§§њћ§њћњ§§ўћ§§њћ§§ћћўўњћ§ў§ћўў§ђћ§ўўћћ§§ўў§ў§ўўњ§ў§§ћ§§њћњ§ћњћћѕ§ћ§ћ§ћ§ћў§ўўі§ўў§ћ§§ў§ўўўћ§§ўћ§§ћћ§ћ§ћћ§ўўћћћ§ћ§ћ§§њћ§ћ§ћ§§їћ§ћ§ћ§ћў§§ўў§§ћ ўі§ў§ў§ўћ§ў§§њњћњћњћћї§ћ§ћ§§ў§ўўѓ§ў§§ћћњ§ћ§ћ§њњљћ§§ћ§ћ§§ћћ§ћћўў§§ћ§§ў§§ћ§§ћ§§ћ§§ћќњћ§ћћ§ћј§ћ§њњ§§њњёћњ§ћћљњњ§ћ§ћ§ћўўќ§ў§ўўќ§ўў§§шћ§ћ§§ћћ§њћњћњћћ§ћћњћњћћўўљћ§ћў§ў§§ў§ћў§§ћўў§ћ§ћћў§ћћ§цћ§ўўћ§ћ§њћњћ§ћћ§ћ§њћњћћ§ћ§§ќћў§ўўњ§ў§ўћ§§їћ§њ§§ўћ§њњў§ўўєћ§ўў§§њћњћњ§§ёћў§ў§ў§§ћў§ўў§ћћњњћ§ћ§ўўўћ§§њћў§ў§ўў§ўћўўћ§ў§ў§§ѕћњ§ћ§ћ§ћ§ћўўє§ўћ§ћўћ§ћћ§ўў§їћ§ћ§ў§њћ§§ќў§§ўўц§ћ§ў§ў§ўў§§ўў§ћў§§ћ§ћ§ћўћўўі§ўћ§ћ§§ў§ўўќ§ў§ўў§њћ§ћ§ћўўьћ§ћўў§ћ§§ўў§њћ§§ћ§ћ§§ќћў§ўўіћў§ў§§ћ§§ўўяћ§§ў§ўћўћўћў§ў§§ўўў§ўў§ќћўћ§§јћ§ћ§ћ§§ўўч§ў§§ћ§ћ§§ћњ§ћћњњљљњћћњћ§ћћ§ўћћ§§ў§§љўћњњ§ћ§§ў§§ў§§§ћў§§ўћњњ§ћ§њ§ћћљјњљњћњ§ћўўє§ў§§ћ§њћњћњћћћ§ћ§§ћћћ§ћћ§њњьљњњћћњњљњћћ§њћњћћ§ћ§§њћ§ћњњћћјњћњћћњњћћ§њћ§§ћўљњњ§єћњњћљњњћњћњ§§ћћ§ћўў§§ћЮ§ћ§§ўћ§ћ§ћ§ћћњћњћњћћ§ћў§ў§§ћ§ћњљњњ§ўўћ§ћ§§ћћ§§ў§§ћћњўћ§§ў§§їўћ§§ў§ў§ўўх§ћ§ћ§њћњ§§ўћ§ћ§ћ§ћў§ўћ§ћў§ўў§љћўњ§ћ§ў ўќ§ўў§§јћ§ћћ§§ћўўї§ў§ўћћњ§ўў§чў§ўћ§ћ§ћў§ўћ§ћ§ћ§њћћ§ћ§ћ§§њћ§ћ§ћ§§ќћ§ў§§ќњ§§ўўћ§ћ§ћ§§јўћњњћ§ћ§§ќўћ§ћћѕ§ў§ў§ћ§ћћњ§§ќћ§§ўў§ьћ§ћ§ћ§ћ§ћ§ћћ§§ћ§ћ§њћћїў§ў§§ћ§ћ§§іћ§њ§ћ§њ§ћ§§ў§ћў§§ўк§ў§ў§ў§ўў§ћ§§ў§ћњћћ§§ўћ§ћћњћћ§ћ§ћў§ў§ўў§§ћ§§ћњ§ћ§ћћ§ў§ћћ§њ§ћћ§ў§§ћ§§љћ§ћ§њ§ўў§ђћ§ћ§ћ§§ўў§њћњћћў§ћћс§ћ§§ў§ўў§ћ§ћ§ћ§њ§ћ§ћ§ўў§ћњћњ§§ўў§ўћ§§ћњћ§јћњћћњ§ћўўќ§ћ§ћћўљ§ћњћў§ўўљ§ўўћ§ў§§ўў§ўўњ§ў§ўћ§§цћўў§ћ§ћ§ћ§ћ§ћ§њњћ§ћў§ў§§ћўўћ§ў§ў§§јћ§ћ§ћ§§ўўїћ§ћ§њњћ§ћћїњў§ў§§њ§ћћ§љў§ўћ§§ўўф§ўћўћ§§ўћ§ћ§ћ§ћ§ћ§ћўћ§ћ§ћў§ў ў§ћћњћћў§§§ћњ§§яћ§ћ§ћў§ћњћћњћў§ћўўќ§ўћўў§єў§њ§ћ§ћ§ћ§ћўўўљњњьћ§§ћ§ћ§њ§њ§ћ§ћћњћњћњњљћњ§ћў§ўў§ў§ѕћўў§ћњњ§ћћўўћў§ћћ§эћ§§ў§ў§§ћ§ћ§ћ§ћ§ћ§ўўў§ўў§ўћўўњ§ў§ў§ўў§§ў§ўўѓ§ћ§ћ§§ўў§њ§§ўўќњћћўў№§ў§ў§§ћ§њћњћћ§ћўўђ§ћ§ћ§§ўў§њћњњћћў§ўў§ўѓћ§§ўў§ћ§њћњ§ћћї§ћ§ћ§ћњ§ў ўћћњ§ћ§ў ўў§ўўќ§ћ§њњїљњњћ§ћ§ћўўў§ўў§§ћ§ўўёћ§§ў§§њњћ§§ў§ў§§ћљњћћљћћњњћ§ў§ў ў§іћўћћњ§ћўћўўі§ў§§ћ§ћ§ћ§§ўћ§ћњћњњіћ§ћ§ћ§§ўў§§ў§ќћ§§ўўќћ§ћўўќ§ў§ўў§ў§§ћ§ћћ§ќћ§ћ§§њћ§§ў§ўўў§ўўў§ўўўћ§§ўћўўў§ўў№ћ§ћ§ћў§ў§ў§§ћ§ћўўѓ§ћћ§ўў§ў§§ћ§ўўј§ћ§ў§ў§ўў§љћ§§ћ§§ўўў§ўўўњ§ў§ў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўў§ўўњ§ў§ў§ў)ўў§ўmўў§ўўў§ўўў§ўўў§ўўќ§ў§ў1ў§ќў§§ў ўў§ў ўў§ўўњ§ў§ў§ўўѕ§ў§ў§ў§ў§ў§§ќћ§§ў ўў§ўўћ§ўў§ўўў§ўўўћўўў§ўўў§ўўў§ў!ў§§ў§ўўў§ўўј§ў§ўћ§§ў ўў§ўўў§ўўў§ў=ўњ§ў§ў§ў ўі§ўћ§§ў§ў§ўўў§ў ўњ§ў§ў§ўўќ§ў§ў ў§ќћўћўў§ўћўўњ§ў§ў§ўўў§ўўў§ўўќ§ў§ў ўј§ў§ў§ў§ў ўќ§ў§ў-ўў§ўўќ§ў§ўўј§ў§ў§ў§ўўќ§ў§ўўј§ў§ў§ў§ўўў§ўў§ўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ў+ў§§ў§§ьћў§ў§§ћ§ћ§ћ§§ў§ў§ў§ўўў§ўўќ§ў§ўўў§ўўћ§ўћўўњћ§ћ§§ўўњ§ў§ў§ў ўќ§ў§ўўњћ§§ў§ўў§єћў§ў§ў§§ћ§ћ§§§ў§ўўњћў§ў§ў ўђ§ў§ў§ўћ§ћў§ў§ўўј§ў§ў§ў§ўўў§ўўў§ўўў§ў ўў§ўўќ§ў§ўў§њў§ў§ў§§ћў§ў§ўўў§ўўќ§ў§ўўї§ў§ў§ўћ§ў ў§§ћ§§ўў§ўў§ђћ§§ў§ў§ў§ў§§ћўўў§ўўє§ў§ў§ў§ў§ў§ўўў§ўўњ§ў§ў§ўўќ§ў§ў ўќ§ў§ў ўў§ўўј§ў§§ћ§ћўўќ§ў§ў ў§ўў§ўўў§ўўї§ў§ў§ў§ў§§ѕћ§§ўћў§ў§ў§§ў§ ўњ§ў§ў§ўў§ўў§ўўј§ў§ўћў§ўўќ§ў§ўў§ќћў§ў ўў§ўўќћў§ћћ§ў§ўўў§ўўњ§ў§ў§ўўў§ўўъ§ў§ў§ў§ўћў§ў§§ћўћ§ћў§ў ўќ§ў§ў ўў§ўўьћў§ўћ§ћў§ў§ў§ў§ў§ў§ўўљћ§ћўћ§ўўў§ўўў§ўўі§ў§ў§ў§§ћ§§љў§ў§ў§ўўўћўўў§ўўќ§ў§ўўќћў§ў ўљ§ў§ў§ў§§ѓў§ўћў§ў§ў§ў§ўўќ§ў§ўўђ§ў§ў§ў§ў§ў§ў§ўўў§ўўц§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўў§§ўўќ§ўћўўћ§ў§ў§§єћўћ§ћў§ў§ў§ўўѕ§ўћ§§ў§ў§§ћћѕў§ў§ў§ў§ў§ўўњ§ў§ў§ўўс§ў§§ћў§ў§ў§ў§ўћ§ћўў§ћ§§ў§ўћ§§ў§§ўў§§љћ§§ўћћ§§ћў§ў§ў ўј§ў§ў§ў§ўў§єћ§ћў§§ћ§ћ§ћўўў§ўў§ўў§ўўў§ўў§ќћ§§ўўј§ў§ў§ў§ўў§ўћўў§іћ§ћў§ў§ў§ўў§§ў§§ў§§ў§§ўў§ўў§јћўћ§ўў§ўўў§ўўі§ўћў§ў§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўў§іћ§§ў§ў§ў§ўўў§ўў§ўў§ўўі§ў§ў§§ћў§ўўў§ўўўћўўў§ўўў§ўўў§ўўў§ўўќ§ў§ў ў§ћў§ў§ўўў§ўўќ§ў§ўў§єћў§ў§ў§ў§ў§ўўў§ўўќ§ў§ўўў§ў ўў§ў ў§ў§їў§ў§ў§ў§ўўј§ў§ў§ўћ§§ћћўћњћћћў§ў§ўўў§ўўў§ўўў§ўў§§ў§ўўќ§ў§ўўљ§ўћ§ћў§§§ўћ§§іћў§ўћ§ћћњћћ§ўп§ў§§ћ§ћ§ћ§ћў§ў§ў§ў§ў§ўћўћўћћ§§ћ§ћћќў§ў§§уў§ў§ў§ўћў§§ћ§ћ§ћ§ћў§§ўўћ§§ў§ўўњ§ћћўћ§§эўћ§њћћ§ћ§§ў§ў§ўћў§ўўњ§ў§ў§ўўў§ўў№§ў§ў§ўћ§ћ§ћ§ћў§ўў§ћ§ў§ўўј§ў§ўћў§ўўў§ўўў§ўўў§ўўў§ў ўћ§ў§ў§§ўњ§ў§ў§ўўў§ўўћ§ў§ў§§§ў§ўўі§ў§ў§ўћў§ўўќћ§§ўўў§ўў§ўх§ў§ў§§ћў§ў§ў§ў§ў§ў§ў§ў§ў§ў§§ўі§ў§ў§ў§ўћ§§ћў§ў§ўў№§ћћ§ўў§ў§ў§ў§ўћ§§§ў§ўўш§ў§ў§ў§ў§ў§ў§ўћў§ў§ў§§ћўў№§ўў§ў§ў§ў§ўў§§ў§§ћў§ў§ўўќ§ў§ў ўє§ў§ўў§ћ§ћў§ўўі§ў§§ћ§§ў§ў ўћ§ў§ў§§љў§ўћў§ўў§§ў§§ћўћў§ўўї§ў§ў§ў§ў§§ўј§ў§ў§ў§ўў§ќћў§ўўќ§ў§ўўљ§ў§ў§ў§§ѓў§ў§ўў§ў§ћ§§ўўъ§ўћў§ўћў§§ћў§ў§§ћ§ћ§§ўўќ§ў§ўўќ§ў§ў ўќ§ў§ў ў§ў№§ў§ў§ў§ў§ў§ў§ў§ўўў§ўўњ§ў§ў§ўўў§ў ў§§ў§§іў§ў§§ћ§ћ§ўў§§ўћўўў§ўўў§ўўі§ў§ў§ў§ў§ўўќ§ў§ў ўј§ў§ў§§ћўўљ§ўћ§§ў§§ћў§ў§ўўљћ§§ћћ§ў ўё§ўў§ў§ў§ў§ў§ў§ўўѓћўћ§ћў§ў§ў§ў§§іў§§ћ§ћ§ћ§ћћ§ ўў§ўўќ§ў§ўў§ќњ§§ўў§ћў§§љў§ў§ў§ўўє§ў§ў§ў§ў§ў§ў ўў§ўўќ§ў§ўўњ§ў§ў§ўў§ўќ§ўћўўі§ў§§ћ§ћў§ўўњ§ў§ў§ўў§јћ§§ўћў§ўўњ§ў§ў§ў ўў§ўўѓ§ў§§ћ§§ў§§ћў§§ўў§§ўњћ§§ў§ўў§§ў§§ѕўћўћћ§ў§ў§ўўў§ў ўў§ўў§§ў§§ўѓ§ў§ўћўћўћ§ћўћћўў§ўўњћ§§ў§ўўє§ў§ў§ў§ў§ў§ўўўћ§§іћў§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўўў§ўўћ§ў§ў§§їў§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўў§§ў§ўўќ§ў§ўў§§ў§§§ў§ўў ўњћўљўћўў§ў§їњ§§њњ§њћўўњњўћњ§ўўќњ§§ўўњњўўњћўўўћў ўўћў ўўћўўўћўўі§њўћўўњ§ћўўќћїћўўњ§љћјљњњ§ўћўќћўћўў§ўљ§§юљњњћ§§ўњњ§њњћњ§њ§ўўўћўўўћўўўћў ўћўўћ§§ќўћў§§ўћўіљњћ§ћўћўћўўўњ§§ўў§ўўљћў§§њљўўўћўўўћўўўћўў§§њћўўѕћўњўў§§ўўћўўјћўўћўўћўўћ§ўћњўўјћўўћћўў§§ўўћўў§њ§њњ§ўњўў§ќљњ§ў ў§ўћћљњ§ўў§ўћў ўєћўћўўћўўћўћўў§ћќ§ўњўўўњўўђ§њ§§ћјјњњјњљ§ўўўћўўћћўњњўў§ћњўўћћўўњўў§ћљ§ћњ§њљ§§іўћўў§ў§§њљљ§ўњўўўћўўўћўўўњ§§ўњќћ§њўўўћўў§ ўў§ўў§ўњ§§§њћўўўћў ўђћўўћўўћћњ§ўўћўўўћўў§§њћўў§§њ§§§њћўў§ўњ§§ў§§ўћ§§эњ§њћўљў§§њњ§ћ§ўў§ћўўћў§ўўћў ўћћўњљўўўћўў§љ§§ўћўўћћ§њњ§§іњ§њ§ўћўћњ§§ў§§љ§§іўћўўћ§њ§§ћћ§њў§ўўћ§њ§§ўўћ§ўћћўў§їњ§§љћћ§§ўўњћњ§њ§ўў§њњ§§ўў§§ўў§§ў§њї§ћћњћ§§ў§§ўћљљ§ўњўўѕћўћћњ§њњ§њ§§ўћћњї§ўўћўў§§§ћљ§§ў§ћўњќ§ўў§§ўћўўћўў§ўўћўўјћўћўў§§ўўўћўўљ§њ§љњ§ўў§ќњўў§§ўљњћ§§ўћўўўћўў§ў§љўћћў§§љљњўў§ўўћ§њњћўўіћўў§њ§њљљ§§ўњћў§§љўўњ§ќњўў§§ўўћўў§њў§њ§њ§§ўўћўўўћ§§ўўљ§§ўћўўўћўўўњ§§ќњ§§ўўќ§њ§ўўѓњ§њ§ўўњ§ўў§њ§§њўуњ§њўћћўўћў§ўў§њћўўћ§§њћћ§њ§§ў ўўћўўѓ§њ§њ§ўў§§њ§њ§§юњўўњњ§§ћѕѕјњ§§њ§ў§§ќњ§њўўўћўў§њўћўў§ўўћўўіћ§ўўњњћљљ§§ќњ§§њњћ§њњ§ўў§ћўњ§њ§§ќњ§§ўўћћўўћўўќњћ§њњ§њљљјћћљћ§§јћў§§њўћўў§іљњњћ§§њ§§ўў§ѕњћў§јїїњћљ§§ў§љњ§§њўў§ўўњћ§§љњўўў§ћћўњ§§ћњљљјћћѓљїѕњљљїјјљљњўў§њўћљ§њўўўњўўњїў§§љ§њ§§ўўћ§§љћћ§њљћћ§§ћћєљћљ§њњћљ§њ§ўўњњ§љњ§ўўў§ўўўћўў§ќћљњ§§ўљћћќ§њњ§§ћ§ћ§ў§ћњўў§ўў§ў ўњ§§ћљћћћњ§ўўњњњјћ§ўў§§ўћўўўћўўр§њћћљљ§њўўњљ§§ўћўўћўў§њ§њ§ћљћћњ§§јћљљ§§њњ§§ўњўў§ћњўўўћўў§ќўљњўў§ћўўћўўѕћўћўў§њ§њњ§§јњ§§њ§§ћ§§§њ§ўўњўћ§§ќљјљ§§њћјљ§ћљћљњўўќњ§њўў§љћ§ўў§ћћ№љћћ§§ўў§љљ§§ўћў§§ў§ўљћћќ§ћћ§§ќњјћ§§ќћљ§ћћљєћљљћњ§§ў§њњћћќўћ§ўў§юњўњњљћњ§§ўћўњњ§љњ§§ўшћњ§њ§њ§ћћљ§њћљћћј§§љњўў§ §ўў§њњўўњ§§ўљњћ§§ћћ§§ћљћ§§ўўњ§ћўћў§§ћўљ§§ћњљљћ§§ћ§ўњћћ§§љћ§§ќњ§љћћў§ћћўљћћ§іћљњ§ћљљћћ§§њ§ћљћћћ§њ§§ћћ§ўў§§ќњ§§ўў§њћјњјљћћ№љћћјљљћљјјњјјњћ§§§ў§ўў§§њ§ўўўњ§§ўћўўћ§њћјћћјїњјљћћј§§ ўіћњ§§јѕћ§њ§§щњ§§њњ§§ћў§§њњ§њћљ§њњ§љ§§тњўў§§ў§§њ§љ§§љћћљћћњўў§ћћљћћљ§§ўњўўћљ§§ћўў№§љћћ§§њ§ўћў§њ§ћ§§їћљ§§њ§ўў§§іњ§§њ§ћљњ§ўўљћўњњћ§ўў§ћ§§њ§§§њ§ўўљћўўњњћўў§§ћњўў§ўўћўўјњљљњњћ§ўўћўјљ§ћћ§ўў§§јњ§ўћ§њљ§§ўќ§њћўў§§њўўћћўўћўўўћўўпњ§§њњћўўњћћљ§§љћ§њњўўћ§§јћ§§њўћћўўњѓћјїњљљњљљњ§§ўўћћњљ§њ§§ќў§љћћ§ў§§њ§§§ћў§§јў§јљ§њљ§§§њћ§§ьњ§ўћ§њњ§љњўўњњ§§ўўћўўўћўў§ћљћћ§ўўўњўўњѓў§љјњњљљћћњћўўўћўў§ўњўў§ћў§§ў§љ§ўќ§њў§§ћњ§ўў§§ў§ќњ§њўўўћў ў§ёњ§ўў§§ћњўў§њњ§ўўљњ§§њ§њўў§љњљћњїљ§§јњ§њ§њўњўўќћўњ§§њѓљњћњ§ўћўў§§њљљі§ўћњњўўњњ§§њ§ўў§§ўўњўўўћўўњћ§њ§ћўў§ўћўўћћўњњ§§њћљћ§ћ§§њћљћ§§ўўћўї§ўћў§§ћјўў§ўњ§§ў§ћњ§§ђњ§њ§њўћў§§ћћ§ўў§§њўўќњ§§ўўєћўў§§ћћљ§§њўўўћ§§іћўў§§ўўћ§њњ§ў§ўћћўњћўў§љњ§ўў§ћ§§§љ§ўў№ћўўћ§§љ§њ§ўћћњњ§§ў§ќњ§њў ўўћўў§§њ§§ўћўўћўќћ§§ўўќ§њњўўўћўўћ§ћљј§§§њћўў§ўў§§љњ§њћћљўўѓ§ћў§ћћўћўћў§ўўј§љўћўўћўўѕ§ўўћ§§ћўўћўўїћ§§ўўћўћўў§ћ§ў§љ§ъћ§ўўћ§§ўўћћў§§ћў§њњ§њўў§ўјњ§§ўћўћўўўћўўўћўўјњљћ§њ§њўўјћњ§љ§ўў§§ўњћ§ћ§§ўўњў§ўў§њ§ўўћћњ§њўўћљ§љљћћ§ўўўћўўўћўўћў§§љ§§ўў§§§ў§ўўњћўўњ§ўў§§љўўёћ§њњ§§њўўњўћ§§ўўіћўћўћћўўћўў§§њўўћўћўўћўўћљ§ўўћўўўњћћўўћћўћўћ ў§§ћўўў§ўўјћ§ўўћћњўўњ§ўў§§ўўћўќћўћў ўўњўўўћўўўћўўљњўўћўњўўўћўўўћўўўњў$ўўћўў§§љћўўўћўўўћўўўћў ўћўўћўў§ўўћ§§њ§§ўћћўјћ§њ§ўўћўўўў§ўўњ§ў§ў§ўўћў§ўўјћ§ћ§ћ§ћ§§ђћ§ўў§ў§ў§ўў§ћўў§§ћ§ўўў§ўў§ўў§ўўў§ўўў§ўўў§ўўїћ§§ў§ў§§ў ў§ћћњ§ў§§јћў§ў§ў§ўўњ§ў§ў§ўўњ§ўћ§ћ§§ћљ№њ§ћў§§ћ§ўў§ћ§ћ§ўўњ§ў§ў§ўўќ§ў§ўў№§ўў§ћ§§ў§§ћ§ћ§§ўўј§ў§ўћў§ўўў§ўў§њћ§§ўћўўњћ§§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўє§ў§ўћ§ћ§ўў§ўў§§ћўўњ§ў§ў§ўўћ§ў§ў§§ўў§ўўј§ўћ§ћ§§ўўћ§ў§ў§§ўў§ўўњћ§ў§ћўўќ§ў§ўўѓ§ў§§ћ§§ўњћ§§ўўќ§ћ§ў ўў§ўўќ§ў§ўўђ§ў§ў§§ћ§ћ§њњћўў§§ў§ўўћћ§ћ§њњљїњљћћў§ў§ў ўќ§ў§ўўќ§ў§ўўфћ§ћ§ћћњћћ§ћ§ћ§ў§ћ§§ў§ўћўћ§§ћћ§ўђ§ў§ў§ў§ў§ў§ў§ўўє§ў§ў§ў§§ћ§ћўў§ћ§ўў§ўўў§ў ў§јћў§ў§ў§ўў§ћў§ў§ўў§љћ§ћ§ћ§ўўў§ўўў§ўўў§ўў§ўљ§ў§§ћ§ўўїћ§ћ§ћ§ћ§ўўўћ§§њћ§ћў§ўўї§ћћўў§ћћ§§љў§ў§§ћ§§јњћўўћў§ўўў§ўўі§ўў§ћ§ћў§ўўў§ўўў§ўўў§ўўќ§ў§ўўєћ§ћ§ћ§ћўћ§§ўўўћ§§ўћ§§яў§ў§§ћ§§ўћўћ§ћ§§ўўћћ§§ћњњћ§ўў§§љћў§ў§ў§§ўо§ў§ў§ў§ўћ§ћ§ћ§ћ§ћњњ§ћў§ў§ў§ўў§ћ§ћўў§ьћ§ћ§ћ§ўўћ§ћўћ§ћў§ўћ§§ўћўўї§ћўћ§ћ§њћћї§ћ§§ў§ў§ўў§њћ§ћ§ћўўќ§ў§ўўў§ўў§іћ§њћћ§ћ§ћўўјћ§ўў§ў§ўўў§ў ўў§ўў§§ў§§љўћ§ћ§ћўўў§ўў§ўћўўќ§ў§ўўі§ў§ўћ§§ў§ўў§ьћ§ћў§ў§ў§§ћ§§ў§§ћ§ћўўћ§њ§ћўўў§ўўў§ўўіћ§§ў§§ћ§§ўў§ћ§ћћ§яў§ўћў§ўћ§§ў§ў§ў§ўў§ћѓ§ћ§ћў§ў§§ћў§ўў§ћі§ў§§ћ§ћў§ўўќ§ў§ўўќ§ћћ§§ѕћ§§ћ§ћ§ћ§§ўўы§ћ§ћ§§ў§ўћ§ћў§ў§ў§ў§ўў§ўћ§§щћў§ў§ўћ§ћў§ўў§ћ§ћў§§ћў§§ўћ§§ѓў§ў§ў§ў§§ћ§§ўў§§ў§§ќўћ§ўўћ§§ћњ§§ўћўўў§ўўќ§ў§ўўљ§ў§ў§ў§§ќўћћ§§ўћ§§іћ§ўў§§ћ§њ§§јћ§ћўћ§ћ§§ў§ўћ§§ўі§ў§ўћ§§ў§ўўђ§ўў§§ў§§њћћ§ћ§§ўћ§§ўћ§§ћў§ў§ўўћћ§ћў§§ћ§ќћў§ўўў§ўў§ўњ§§љћ§ћ§§ћњњёћњ§ћ§ћў§§ћ§ўў§ўўє§ўћ§ћ§ћљљћћ§§ўћўўіћ§ћ§§ўў§њљљњњћћ§ћўўў§ўўы§ћ§ћ§ћ§ўў§ўћў§ўў§ћў§ўўѕћњњћ§§ћ§ћ§ћћњћљћњћ§ћў§§ћўўјћ§§ў§ў§ўў§њў§ў§ў§§јћўћ§ћ§§ўўў§ўўћњћј§ћћњћћ§њњїћњўћ§§њћ§§ў§љћ§ћў§ў§§јў§ў§ўў§ћћђ§ћ§ћ§ћўњћњћњћњњчћ§§ћ§ћ§њћћ§ћ§ћ§њњћ§ћў§ў§ўўіћ§ћў§ўћў§ўўћ§ў§ў§§ѕћњћћњћњ§§ў§§іњћў§§ћ§ћ§ўўј§ў§ўћ§њћћ§їў§ўћ§ўў§ўў§ѕњћњћ§§ћ§ћњћћ§њћ§ћ§§ўўў§ўў§§ў§ўўєћ§ћ§ћ§ћ§§ў§ўўќћ§ћўўњ§ў§ў§ўў§№ћ§ћ§ћ§§ћћўћ§ћ§ћ§§ў§єњ§ћ§ћ§ћњћ§ћ§§њћўњћћ§ќў§ў§§ў§ћ§ћћ№§ўўћћњћњћњњћ§ўўћћўпћ§ћ§ћў§§ћ§ћ§ћ§ћћњћњ§њћћ§ћ§ћ§§ћћ§ћћћ§њћњћћўњћћ§њћўћ§§ўўўћўў№§ў§§ћ§§ў§§ћњ§§ћўў§іћў§§ћ§ћ§ћўўм§ћ§ћ§ћћњћћ§њћњњ§§ћћ§ў§§ћ§ћ§ћ§ћ§ћ§ћў§§ў§њћ§ћ§ћўўї§њћ§њћћ§ћћјњћ§ўў§§ўўшћ§ћћњћћ§ћ§§ћћњћ§ћ§њћћ§§њњќ§ћ§ћћ§§ћ§§њўњњћњћћњћњј§ћ§ћњў§ћћ№њћћ§ћ§§њћњњћњћњ§§ћхњћњ§ћўћ§ћ§ћћ§§ћў§ў§§ћћњљњћњњїћњћњћћњћњњіљћћ§ћўћў§ўўњћ§ћ§ћ§§ў§іћ§ћ§ћ§ћ§ћўў§§ў§§юћњћњћћљњћњћ§§ћ§ћ§ћћ§§ћўўў§ўўь§ў§ў§ўў§ћ§ћ§њћ§ћћ§ћ§§ўћ§§њћў§§ћ§§ћ§ћб§ћ§ћ§ћ§§ўў§ћўћ§§ћћ§ћћњћћњњ§§ўћћњћњћћ§ћ§ћ§ћ§ћ§§ўўњ§ўў§ћўўђ§ў§ў§§ўћњ§ћ§ћўў№ћ§ћўћ§ћ§ћ§ћ§њћћ§§ўњћ§ћ§ћ§§§њћ§§ќў§ў§§§ўћўўћ§ћњњ§§фћ§ћ§ћ§ћў§ў§ў§ў§ў§§ўў§ўў§ћћ§ўўќћ§§ўў№§ўћљљћћў§ў§ў§ў§ўўћјњ§§ўћ§ћ§§їўћ§ў§ћ§§ўў§§ў§§§ў§ўўќћ§§ў ўў§ўў§ќћ§§ўўљ§ћњўћ§ћћ§ўјћ§§њћ§§ўў§ѓћњћљћћ§ћћ§§ћўўў§ўўј§ўћ§ћ§ћ§§ћљњћћ§ћў§§тћ§ўўћ§ћ§ћўћ§ћ§§ўћ§ћ§§ћћ§ћ§ћўў§§ћ§§ў§§њћў§ў§ўўї§ћћњћћў§ўўў§ўў§§ў§§єўћћњљљћћњњ§ўўњ§ўћ§§ўўѓћ§ћ§ћў§ў§ў§§ћћї§ћў§ў§ўћ§§цћ§ћ§ћ§ћ§ћўў§ћ§ћўў§ћ§ћ§ћ§§ўўј§ў§ў§ў§ўўўћ§§ўјћ§њ§ўўћ§§ўу§ћ§§ћ§ў§ў§§ћ§ћћљћћ§ћ§ћ§ћ§ћ§§ўўя§ў§§ћ§ћ§ћ§ћ§§ў§ћ§§љў§ўћ§§ћћў§ў§ќћ§ћ§§іћўћ§ћ§ћў§ўўў§ўўў§ўў§ўў§ўўњћ§ўў§ўў§№ћ§њћњ§ў§ћ§њћњ§ћўўј§ў§ў§ў§ўўќ§ўћўўѕћ§ўў§ўў§ћ§ћћ§§ћўў§ўћ§§ўњћ§њћћўўєћ§§ў§ў§ў§§ћўўѕ§ўћ§њћћ§ћ§ўўќ§ћ§ўўљ§ћў§ўћ§§іћ§ћ§§ўћ§ћўўў§ўўю§ў§§ћ§ћў§§њ§ћ§ћўћўўќ§ў§ўўі§ўў§ћўћ§ћўў§јћ§ћ§§ўћ§§§ў§ўўќ§ў§ўўќ§ў§ўў§єћ§ћ§ўў§ў§ў§ўўў§ўўћњћ§§ўў§§ў§ўў§јњћћ§ћ§§ўў§ућ§ў§ћ§ћ§ћ§ћ§њћўў§ўћў§§ўў§ў§ў§§јў§ў§ў§ћўў§§ў§§ў§§ў§ўўі§ў§ўў§ћў§ўўё§ў§§ћ§њњћ§§ўћ§ћћљ§ћ§ћўћўўќћ§§ўўћўў§§юћ§§ў§§ћ§ўў§ў§§ћ§§ўўњ§ў§ў§ўўќ§ў§ўўќ§ћњ§§§ў§ўў§іћ§§ўћ§ћ§§ўўцћўћ§§ў§ў§ў§ў§ў§§ћў§ў§ў§§ћўўў§ўў§ ўћњћ§ўў§ўўќ§ў§ў ўќ§ў§ўўќ§ўўћћ§ўћ§§§ў§ўў§іћў§ў§§ћў§ўўў§ўўќ§ў§ўўќ§ў§ўўј§ў§ў§ўћ§§юћў§ў§ўў§ћў§ў§ў§ў§ўўў§ўў§§ў§§ўќ§ў§ўўў§ўўў§ўўќћ§ћў ўў§ўўў§ўўў§ўўў§ўўў§ўў§ўў§ўўіћў§ў§ўў§§ўўњћў§§ћў ўў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўћ§ў§ў§§§ў§ўўў§ўўњ§ў§ў§ў ўє§ў§ў§ў§ў§ў§ўўў§ўўў§ў ўљ§ў§ўћ§ўўў§ўўў§ўўў§ўўў§ўў§іћ§§ўў§ћ§ћ§§ўў§ўўў§ўўњ§ў§ў§ўўі§ўћ§ћў§ў§ўўўє§ў§ў§ў§ў§ў§ўўў§ўўќ§ў§ўўў§ў5ўў§ўўў§ў ўћ§ў§§ўўў§ўў§љўћўћ§§ўўў§ў/ўќ§ў§ўўњ§ў§ў§ў ўў§ў ўќ§ў§ў ўќ§ў§ў%ўќ§ў§ўўў§ўўў§ўўќ§ў§ў ўќ§ў§ўўќ§ў§ў ўќ§ў§ўўќ§ў§ўўќ§ў§ўўћ§ў§ў§§ўў§ўўћ§ў§§ћћќњћћўўю§ў§ўћ§ћ§§ў§ў§ў§ў§ўўј§ўћ§ћў§ўўќ§ў§ўўњ§ўћў§ўўў§ў ўў§ўўј§ў§ў§ў§ўўў§ў ўќ§ў§ўўњ§ў§ў§ўўњ§ў§ў§ў ўў§ўўў§ўўљ§ў§ў§§ўўќ§ў§ўўў§ў ўі§ў§ў§§ўў§ўўј§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўў§§ў§§јћў§ў§ў§ўў§ўў§ў ўї§ў§ў§ў§ў§§ ўў§ўўј§ў§ў§ў§ўўў§ўўў§ўўў§ўўў§ўўє§ў§§ћ§ћў§ў§ў ўј§ў§ў§ў§ўўў§ўў§§ў§§ћў§ў§ўўў§ўўќ§ў§ўўќ§ў§ў ўў§ў ўў§ў ў§§ў§§ўќ§ў§ўўќ§ў§ўў§ўў§ўўќ§ў§ўў§§ћ§ўўў§ў ўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўў§ўўќ§ў§ў ўќ§ў§ўўј§ў§ў§ў§ўўњ§ў§ў§ўўќ§ў§ў ўњ§ў§ў§ўўў§ўўќ§ў§ўўў§ўўј§ў§ў§ў§ўўќ§ў§ўўў§ўўў§ўўіћў§ўћ§§ў§ўўњ§ў§ў§ўўћ§ў§ў§§§ў§ўў§§ў§§љў§ў§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўўў§ўўў§ўў§№ћ§§ў§ў§ў§ў§ў§ў§ўўў§ўўў§ўўќ§ў§ўў§§ў§ўўђ§ў§ў§ў§§ћ§§ў§ўўќ§ў§ўўћ§ў§§ћћћў§ў§ўўќ§ў§ўўі§ћњ§ћ§ћў§ўўј§ў§ў§ў§ўўћ§ўў§ўў§љћў§ў§ў§§ђў§ўћўћ§ћ§ћўћћ§§ўў§ўўў§ўўў§ўўі§ў§ў§ў§ў§ўў§їћў§ўћ§ћў§§ў§§ў§§§ў§ўў§ўў§ўўю§ўћ§ўў§ў§ў§§ћ§ћ§ћ§§ўѓ§ў§ў§§ћў§ў§ў§§§ў§ў ўў§ўўі§ў§ў§§ћ§ћ§§ў§§ў§§ўњ§ў§ў§ў ў§њћ§§ў§ўўў§ўўц§ў§ў§§ћ§ћў§ў§ў§§ћў§ў§ў§ў§ўўі§ў§ў§ў§ў§ўўў§ўўє§ў§ў§ў§ў§ў§ўўј§ў§ў§ў§ўў§§ў§§щў§ў§ўћ§§ў§ў§ў§ўћў§ўћ§§ўўў§ўў§ўіћ§ћ§ћ§§ў§ўў§ўќ§ў§ўўє§ў§ў§ў§ў§§ћ§§ђћў§ў§ў§§ћў§ўћ§§єћ§ћ§ћ§§ўћў§ўўќ§ў§ўў§§ў§ўўі§ў§ў§ў§ў§ўўѕ§ў§ў§ўћ§ћў§§§ўћўўє§ў§ў§ў§ў§ў§ўўќ§ў§ўўњ§ў§ў§ўўђ§ў§§ћў§ўў§§ў§ўўў§ўўѕ§ўћ§§ў§ў§ў§§іў§ў§§ћў§ў§§эў§§ћў§ў§ў§ў§ўћ§ћўћ§§§ћў§§їў§ў§ў§ўћ§§љћў§ў§ў§§ђћ§ћ§§ў§ўћ§ћ§§ўўќ§ў§ўўў§ўў§§ўћћ§§ћў§§ћўњћћ§ў§ўўј§ў§ў§ў§ўўі§ў§ў§ў§ў§ўўљ§ўћўћ§ћћѕў§§ћ§§ў§ў§ўўў§ўўћ§ў§§ўўњ§ў§ў§ўўў§ўў§§ў§§яўћ§§ў§ў§ў§ў§ў§ў§ўўў§ўўѕ§ўў§§ўћ§ћў§§ў№ћў§§ћ§§ў§ў§ў§ў§ўўў§ўўј§ўћ§§ў§ўўў§ўўђ§ў§ў§ў§§ћў§ў§ўўљ§ў§ў§ў§§§ў§ўўў§ўў§§ў§§їў§ў§ў§ў§ў ўў§ўўќ§ўћўўў§ўўћ§ћўћў ўќћ§§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ўўјћ§§ў§ўћўў§§ў§ў ўљ§ўћўћў§§ћў§ў§ў ўє§ў§ў§§ћ§ћў§ўўњ§ў§ў§ўўќ§ў§ўў§ўі§ў§ўћў§ў§ўўњ§ў§ў§ўўќ§ў§ў ўњ§ўћ§ћў ўў§ўўў§ћћ§ ўў§ўўќ§ў§ўўњ§ўћ§§ўўє§ў§ў§ў§ў§ў§ўўќ§ў§ўўј§ў§ў§ў§ўўќ§ў§ўў§ўќ§ў§ўўќ§ў§ўўћ§ўў§ћћ§љў§ў§ў§ўўі§ў§ў§ў§ў§ўўќћў§ўўњ§ўћ§§ўўў§ўўј§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўўў§ўўѓ§ў§ў§§ћ§§ў§ў§§ўў§ўўќ§ў§ўўў§ўўј§ў§ў§ў§ўў§ўћўўў§ўўў§ў ў§њћ§§ў§ўўќ§ў§ўўў§ўўј§ў§ў§ў§ўўў§ўўќ§ў§ўў§ћў§ў§ў ўў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўј§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўўј§ў§ў§ў§ўў№§ў§ў§ў§ў§ў§ў§§ћўўў§ўўў§ўўў§ўў§ ўў§ўў§§ў§§§ў§ўўј§ўћ§§ў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўў§§ў§ўў§ўќ§ў§ўўўћўўў§ў ўў§ўўў§ў ўў§ў ў§§ў§§ўѕ§ўў§ў§ў§ў§ўўў§ўў§ўќ§ў§ўўў§ўўў§ў;ўќ§ў§ўўўћўўў§ўўў§ў ўў§ў‚ўў§ў5ўќ§ў§ўўј§ў§ў§ў§ўўўў§ўўі§њњўўћўўћўўїћњ§љњ§њњўўї§љћљљњ§§ў ўўћў ўќћ§§ўўўћўўћўњњ§ўћћўў§ќњ§ћўўљћўћўўњ§§ў§њўћћўўћўўљћ§§ўўћўўўћўў§ћћўњњўў§ўўћўўыћўћњ§ўўњњ§§ўў§§њ§§ўњ§§ћ§ ўјњўўћўўћўўњ§§ћўўѕ§њ§ўћћўўћћўўњќћ§љћћњ§њўўћўў№ћўў§њњў§љњўўћњњўўѕћў§ћљ§њўћњўўћўє§јљћ§§ўўћ§§ўўўћўўўћўўћўўћўўњћ§§ўћўўћўјћўўњњўћўўўћўўћў§ўўўњ§§ћљўўћўўўћўўўњћћўњћўўњљўўћўўћўўћіўњў§ћљ§§ћўўўћўўўћўўўњў ўўћўўќћўћњњ§§ў§§ћњћўћў ўўћўўќњ§ћўўњћўћўћўўўћўўўћ§§ўўћўўўћўў§ўњљљўњўўўћ§§ ўћњћўћўўўњў ў§§ћўўє§њњ§ўўњ§ўўћўўћўљњњўћўћўўћћ§ўњўўњ§ћў§їљњљјљ§ўћњњў§ўўњљќћњњўўўћўўў§ўўћўўћўў§њћ§§ўў§§њњ§њћћўўћњљћљ§§њћљ§њ§ўў§ћњўў§ћњўўћћўўћўўћћўњ§ўўћўћў§§њўў§њ§ў ўўћўўўћў ўўћўўћ ўўћўўћћњўћўўўћўўћ ўўћўўўћўўјћўўћ§љљ§§§ўћў ўўћўўјњћў§ўўћў ўњ§ќњўћўў§њћўўўћўў§ћњ§§ўўћўўљњћ§§ўћўўќ§њ§ўўўћўўўћўўї§ў§љ§§ћћљљђ§ўўћћўў§§њ§ўћўўќћўћўўќћўњўўўћўўўћўў§њћ§њњїўўўњў ўћћўўћўўў§ўў§ўўћўўўћўў§§ўћћўќњўћўўќћўћўўўћўўўћўўўћўўў§ўўќ§њћўўњўћњ§ўћўўќћў§ўўї§јљ§ўћўћўў§§љўўўћўўћўћўўћўўўћўўњћњ§§ўћћўіћ§§ўћў§§ћўўјњћўўћўћў ў§ќњ§§ўў§ќћўћўўўћўўўћўўјћўўћњћћўўњћўўћћў ўє§љљњњ§§њњўў§§ўћ§§ўћћў§њ§§ў§њ§ўўўћўўћ§їњ§њўўћўћўўћњ§љњўўўћўў§ќњ§ў§§љўћ§§ўў§§ћњ§ћљ§§ћљ§ўћўўўћў ўўњўў§ћњўўўћў ў§ћ§ўў§§њ§§ўўћўўѕћўћўњ§§љ§§њњўўћћўўћ§§њ§ўћўў§ўћўўўћўўћўњ§§њј§ўўћў§њўў§њў§ўўћў№§љњ§ўў§јћћ§§ўўћўўўћўў§њ§ўїћњњћњ§§ћ§§ќћўћўўїњ§љћљњўў§§ђњ§ў§њ§ћ§љћљњћўўўћўўјћ§ћљћ§њўў§ўњ§§їњ§ўћўћўў§§ўњ§§ўўћў ўћњ§њњўўњњ§ўўћўў§њ§ўўўћўў§ћњўўј§ўћњўўћўўўћўўчњ§ўў§њљћћўў§§њўўћўў§§љћљ§§ў§ўњўў§ўћўў§§ўћўўѓћўћћ§§њ§§ўўћўўў§ўў§љў§§ўўћўўі§ћњ§ў§§ўћ§§єћўўћўћўћўњњўў§ўќљ§§ўўћ§ўўћўўїћ§§ћњњ§§ўўќњ§§ўўќћ§§ўўћ§ўћўўћћўўћўўћў§§њўўѕћ§ў§њ§ў§ўћўўўћў ўћћўћћўўў§љљќњўћўўўћўў§њњўўћў§§ўћљў§њўўћўўњўћў§љўњўўўћўўўћўў§ў§§ћўўўћўўўћўўє§љћћ§ўў§§ўћўў§§ћ§ўўўћўўћћњўћўўї§њўў§§њћўўњњљњ§њ§§ћ§ўњўўњћўўћћўўўћўў§§њ§§јњ§ўћў§ћ§§ў§ў§њў§§њћљљјјњљ§§ўћўўћњўњ§ћћњ§њ§§ћўў§ўўњ§§ўіћўћў§ўћўћўў§њў§ўў§§ћјљљђћ§њ§њ§љћћљњњў§§ў§§њ§§љўћћўњћ§§ўћў ўўћўў§§њ§§ўј§њ§њњ§њўў§ќњћ§ўўўћўўў§ўў№ћњњћўўћўћў§§ћћњ§§№њ§њњўўћўўњћїјљњ§§ўўћўўіћўўћўўћ§ў§§ў§§њ§§ўв§њњ§ўњ§§њљўћўњ§ћљћњ§ћћўњћѕ§ўћ§§ўљћћў§њћў§љ§њљ§§јњ§§ћњљ§ўўћў§ўўћўўќћўћўўтћўћўћћ§њ§њљћ§§њ§ўўћўў§ћљјљ§њ§ўўњ§ьљћјїњјїћљњњ§њћћўўћў§§эў§њў§љ§§ћўў§§њњјћ§ўўўћўўЬњћўћўўњљљћ§њњ§њ§ўћў§§ћћљљћ§§љњўћўў§ћљјјїљ§ў§љћњ§§ўў§§ўўћўўўњўў§§ўћўўўњўўњ§њ§ўњўўњњ§§ўў§§љўћћўћћўўўћўўћўћ ўћ§ўћўўќњ§§ўўѓћў§љљћ§§њћўњў ўќћўњ§§ўћўўўњўўј§њњљњўћў ўў§ўўўћўў§њљ§§ћћў ўўћўў§ќўћўћћўљ§љј§§ћўўћўў§§ў№ћњ§њўњўў§§ћўўћ§љљїњћ§§ћљ§њўў§ўћћњ§§љљ§јћ§§њјћњў§ћљ§ўўўњ§§ђўћљњјјћ§љњњјљћћ§ўўћўўњћўњ§§ўў§ќњ§§ўў§ўїњљћ§§ћљљ§§ўљњ§§ўўћўўїћўњўў§њ§ўўыћўњ§њ§ћћўћ§§ў§§ўћўћћўўћњ§њ§ўўѕћ§њ§ўў§љњ§ўўўћўўўћўўњњў§ћћўўіњ§§њћљ§§ў§§јњ§§ћўўњўў§ўўћўўћћўўћўўўћўўњў§љўћњљљњўўќћўћўўњў§ўўўћў ў§ћ§ў ўўћўўѕћўўњ§њ§§њ§ўў§ћњўў§њћўўўћўў§ўљ§§ўњ§§љўњўўўћўў§іћљћњ§љћўћўўїћњљ§њ§ћћўўћ§ќћўў§§ћў§ўўћўяњ§ўўњ§љћњљћ§њћўћўўѓњљћћњ§§њћћњћўў§ўњўўћўў§њњў§ўћ§ўњўўћћњћњў ўўћўўјћўћњњ§§ўўћћўў§ўўўњ§§љўћћњњ§ў ў§ў§ўє§љћљ§ўўћўћ§ўў§њљћћљўў§§ўўћ§§ўї§ўў§ћў§ћ§§ўћѓњћћ§ћ§§ў§ў§§ўўў§ўўљ§ћў§ў§ўўў§ўўў§ўўў§ўўќ§ў§ўў§§ћўўў§ў ўў§ўўќ§ў§ўўщ§ћ§ћў§ў§ў§ў§ў§§ћ§§ў§ў§ўўі§ћћ§§ў§ў§ўўј§ўў§ћў§ўўќ§ў§ўўќ§ў§ўўї§ў§ўћ§ўў§§яў§§ћ§ўў§ў§ў§ў§ў§ўўќ§ћў§§јћў§§ћ§ћ§§јћ§ћњњ§ћўўќ§ў§ўўќ§ў§ўўў§ўў§ў§ўў§ўўю§ў§ў§ў§§њћћњњћћ§§ўўє§ў§ўћ§§ўћў§ўў§ўіћњћ§§ўў§§ўўќ§ў§ўўѓ§ћћњ§ћў§ўћ§§ўўў§ў ўї§ў§ў§ўћћўўў§ўў§§ў§§ўў§ўўў§ўў§їў§ўў§ћ§ћўўў§ўўў§ў ўў§ўўќ§ў§ўў§ћњћћ§ўўў§ўўў§ўў§ўў§ўўќ§ў§ўў§§ў§§љћўћ§ћ§ўў§ўљ§ў§ў§§ўўў§ўўє§ў§ў§ў§ў§ў§ўўє§ўћ§§ў§ў§ў§ўўњ§ў§ў§ўўќћ§§ћћў§ўўќ§ў§ўўќћ§ћўўќ§ў§ўўў§ўўњ§ў§ў§ўўў§ўўі§ў§ў§§ўў§ўўўћ§§ўў§§ўў§ўў§ўў§ўўў§ўў§ўњ§ў§ў§ўўќћ§ћўўѓ§ўћ§ў§ћ§ћћ§ў§§ў§ћќњ§§ўўў§ўўќ§ћ§ўўў§ўў№§ў§ў§§ћўћћ§ўћ§ћ§§ўћ§ў§§ћћ§ўў§§їў§ў§ў§ў§ўў§ћў§ў§ўўќ§ў§ўўќ§ўў§§§ў§ў ў§§ў§ўў§ўњ§ў§ў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ўўў§ў!ўў§ўўў§ўўі§ў§ў§ў§ў§ўўњ§ў§ў§ўўћ§§ћў ўў§ўўј§ўў§ўўћўўў§ўўў§ўўј§ў§§ћ§§ўўќ§ў§ўўў§ўўј§ў§ў§ў§ўўў§ўўћ§ћ§ћўўў§ўўњ§њћ§§ўў§ўќ§ў§ўўњ§ў§ў§ўўїћўћўћ§ўњћћўўћ§§§ў§ўўў§ўўў§ў ў№§ў§ў§ў§ў§ў§ў§ў§ўўў§ўў§§ў§§ўў§ўўљ§ў§ўћћ§§ќћ§§ўўў§ўўќ§ў§ўўў§ўўі§ўћў§ўў§ћў ўў§ўўў§ўў§ўњ§ў§ў§ўўў§ў ўќ§ў§ўўј§ў§§ўў§ўўя§ў§ў§ў§ў§ў§ў§ўћ§ўў§ўњ§ў§§ћўўў§ўў§ѕў§ўћ§ћ§§ў§ўўњћў§ў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўћ§ћ§§ўў§§ћўў§ћ§ў ўў§ўўќ§ў§ўўј§ў§ў§ўћ§§ўћўў§§ћ§ўўў§ўўў§ўўў§ўўў§ўўў§ўўћ§ћ§ёў§ћћ§њ§ћ§ћ§ћў§ўўјћ§ћ§ћў§ўў§ўў§ўўў§ўўћћ§ћ§§ўў§ќћў§ўўч§ў§ў§§ћ§ћўћ§ћўўћћў§§ћ§ћ§ћћљ§ћћў§§ўўј§ў§ў§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўўћўўњћ§ћ§ћўўў§ўў§ ўў§ћћ§ўќ§ў§ўўї§ћћ§§ўў§ўўў§ўўћ§ўћ§ўў§§ћ§§ўћўў§ў§ќћ§ћ§§ўў§ўўю§ўў§ў§ћў§§ћњњ§ћў§ўўќ§ў§ўў§§ћ§§яћ§ћў§ўў§§ћ§§ћњћ§ћћў§ўўш§ћћњћ§§ўћ§ћ§ћўћ§ћўћћњћ§ўўў§ўў№§њћњћ§ў§ў§ў§ћћ§ћћ§§ў§ўўћћ§ћ§ћўўў§ўўќ§ў§ўў§§ў§§ў§ўў§ўўђ§ћ§ў§ў§ў§ў§ў§ўў§§ў§§ўў§ўўў§ўўў§ўўў§ўў§ќўћ§ўў§ќћ§§ўў§ћєњћћ§ћћ§ў§ў§ўў§§ћ§ўў§іћ§ўў§§ћ§ћўўў§ўўўћ§§ўћўў§§ў§§ўў§ўўјћ§ћўћ§§ўў§ћњ§§ћўї§ћ§ўў§ў§ўў§ў§ћ§ўўќћ§§ўў§§ў§§ўќ§ў§ўўьћ§ў§§ћћў§ў§§ћў§ў§ў§ўўћ§ћў§ў ўњ§ў§ў§ўўю§ў§ўћ§§ў§ўћўћ§ћўћўўќ§ў§ўўѕ§ў§ў§ў§ў§§ўўљ§ў§ў§§ћћљ§ўў§ў§ўўќћ§§ўўї§ћ§§ў§ў§ўўќ§ћ§ўўњ§ў§ў§ўў§ћў§ў§ўў§ћ§ўў§ўўњ§ўћ§§ўў§§ћўўќ§ў§ўўћњњћў§§ћўўі§ў§§ћњћў§ўўќ§ў§ўўў§ўўэћ§§ўћ§§ў§ў§ў§ў§ў§ў§§ћў§ћћњјћ§§ў§ў§ўўќ§ў§ўў§ћ§њў§§ў§ћћяў§§ћў§ўў§ћ§ћўћћ§ћћљњљћћ§§ўўё§ў§§ўўћћњњћ§ћ§ўўђћ§ћ§§ў§§ћ§ћў§ўў§ўј§ў§§ћ§ћ§§ўћўўљћ§ћ§ћњћћ§њћ§§ў§ёў§ћ§ћў§ў§ў§ўћ§ћћў§ћњ§ћ§ўўќ§ў§ўў§ћ§ћћѓў§ўў§§ћ§§ћ§§ўўіћ§ћ§њћ§ў§ўўќ§ў§ўўћ§ў§§ўўї§ў§§ћћњ§ћћљ§ћ§ћ§§ўўў§њњњћ§ћ§ћўўњ§ў§ў§ўўяћўћ§ћ§§ўћ§ћ§ћћўў§§љћў§§ћ§ўў§њњћњ§ћўў§§њ§§ћўћ§§ўў§ўўћ§§ѓўћ§ћ§ћћњ§ўћ§ўўє§ў§§ћў§ў§ў§ўўќ§ў§ўўјћ§ћ§ћњћ§§ў§јњћњћћ§ћўўў§ўў§ћњѓљњћњћ§§ћ§ўў§ўўћ§ўћ§§ќў§ћўўћ§ќћњћўўі§ў§ў§ў§ў§ўўў§ћћ§ўћ§§ѕў§§ћњњћћњћ§§ѕў§ўћњћњњћћ§§фћњ§§ћў§§ћ§ћў§ў§ў§ў§ў§ў§ўў§ћўўќ§ў§ўўњ§ў§ў§ўў§ўў§ўўї§ћ§§ўћ§ћўўў§ўўќ§ў§ўўј§ў§ў§ў§ўўў§ўў§њћ§§ў§ўўћ§ўў§ўў§ўў§ћћўќ§ў§ўўј§ўћ§§ћ§ўўў§ўўј§ў§ў§§ћўўљ§ўћ§ћ§ћћўў§ўў§ўћўўђ§ўў§ћ§ћ§ўў§ў§ўў§§ћ§ўўћ§ћ§§ўўћўћ№љњћ§њћћ§§ў§§ћў§ўўљ§ўў§ћ§ћћљ§њ§ћ§ћ§§ўћ§љў§§ћ§ћўў§њћљ§њћњњ§§ћўўў§ўўў§ўў§шћў§ў§ўћ§ћ§ћћ§ў§ў§ўћ§ћ§§ўўѓ§ћњћ§њћћ§ћ§§ўўћ§ћ§§ўўў§ўў§ћћ§ў§ўўќ§ў§ўў§ўўћ§§ўћўўћ§ў§ў§§ёћ§ўўћћ§ћў§ћ§§ћў ў§§ў§§§ўћўў§њћ§њћћ§§ќћ§ћ§§ўћўўў§ўў§§ћ§ћћ ўў§ўўў§ўўў§ўўў§ўўў§ўў§ў§ћў§ћќ§ў§ўўў§ўўђ§ў§ў§ў§ў§ў§ў§ўў§ўќћў§ўўў§ў ўў§ўў§ћћ§ћў§ўўў§ўўў§ўўё§ўћ§§ћћ§ћ§ћ§ћ§ћћѓ§ў§ў§ў§ў§ў§§ћћљњ§ћўў§ўўњ§ў§ўў§§ўњ§ў§ў§ўўў§ўўљћ§ўў§§ћћї§њњћў§ў§ўў№§ўў§ћў§§ћћњљћњћўўђ§ў§ћњњ§§ћ§њњ§ўў§ќћ§§ўўўћ§§їўћ§ћ§ћ§§ўўў§ўўћњљњ§ўўњ§ў§ў§ўўў§ўў§ќћ§§ўўј§ў§ў§ўћўўў§ўў§ќћ§ћўў§ќћў§ўўє§ў§ў§§ћў§ў§ўўў§ўўў§ўўє§ўћ§§ўћћњћћўўњ§ўћў§ўў§ўћњњћўў§ўўў§ўўў§ўў§ўў§ўўў§ўўў§ўўў§ў ўќ§ў§ў ўў§ў ўў§ўўў§ўўќ§ў§ў ўў§ўўќ§ў§ўўѕ§ў§ў§ў§ў§ў§§ўќ§ў§ўўќ§ў§ўў§ў§ќћў§ўў§ўў§ў ў§§ў§§ўў§ў+ўў§ўўў§ўўћ§ў§§ў<ўј§ў§ў§ў§ў=ўў§ўўў§ўўў§ўў§ў§§ў§§ ўў§ў#ўў§ўўў§ўўў§ўўў§ўўў§ў ўў§ўўљ§ў§ў§§ўўў§ўўњ§ўћ§§ўўў§ўў§§ў§§ ўєћ§ўў§ў§ў§ў§ў ўў§ўўў§ўўў§ўўў§ўyўќ§ў§ўўў§ўўќ§ў§ў%ўў§ў ўќ§ў§ўўќ§ў§ў%ўњ§ў§ў§ўў§jўў§ўўў§ў/ўў§ў'ўў§ў ўў§ўўќћў§ўўў§ў3ўў§ўўў§ўўў§ў'ўќ§ў§ўўќ§ў§ў5ўќ§ў§ўўў§ўў§ћў§ў§ўўќ§ў§ўўў§ўўў§ў ўў§ўўў§ўўі§ў§ў§ўћ§§ўўў§ў7ўќ§ў§ўўі§ў§ў§ў§ў§ў ўў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўўј§ў§ў§ў§ў ўќ§ў§ўў§§ў§§ ў§§ў§§§ў§ўўі§ўћў§ў§ў§ўўў§ўўќ§ў§ўўў§ўў§ўћў ў§§ћ§ў ўќ§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўўў§ўўќ§ў§ўўј§ў§§ћў§ў ўќ§ў§ўўќ§ў§ўўў§ў ўќ§ў§ўўў§ў ўў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўў§ў ўќ§ў§ўўў§ў ўў§ўўў§ў%ўј§ўћ§§ў§ў ўў§ўўќ§ў§ў#ў§§ў§§ўў§ўў§ўў§ўўќ§ў§ўўў§ўўў§ў ўќ§ў§ўўў§ўўќ§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўіћ§ћўћў§ў§ў ўќћ§§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўќ§ў§ўў№§ў§ў§ў§ў§§ўў§ў§ўўј§ў§ў§ў§ўў§§ў§ўўў§ўўў§ўўў§ўўў§ўўў§ўўћ§ўћ§ўўў§ўўў§ўўј§ўћў§ў§ў ўўћўўќ§ў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўў§ўўј§ў§ў§ў§ўўў§ў ўў§ўўў§ўўњ§ў§ў§ўў§ћў§ў§ўў§§ў§§§ў§ўўіћўћ§§ў§ў§ў ўњ§ў§ў§ўўў§ўў§ќћў§ўўў§ўў§§ў§§ћў§ў§ўўђ§ўћўћ§§ў§ў§ў§ўўќ§ў§ўўўњўўў§ўўњ§ў§ў§ўўќ§ў§ўўў§ў)ўќ§ў§ўўњ§ўћў§ў!ўќ§ў§ўўћ§ў§§ўў§ ўњ§ў§ў§ў ўќ§ў§ўўў§ў ў§ќў§ў§§ўў§ў ўљ§ў§ў§ў§§љў§ў§ў§ўўќћў§ўўќ§ў§ўўѕ§ў§ў§ў§ўћў§§§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўє§ў§ў§ў§ў§ў§ўўў§ў ўў§ўўќ§ў§ўўќ§ў§ў ўў§ўўќћў§ў!ў§§ў§§ѕў§ў§ў§ў§ў§ўўќ§ў§ў+ўњ§ў§ў§ўўќ§ў§ў!ўќ§ў§ў'ўў§ўўў§ўўє§ў§ў§ў§ўў§§ў ўњ§ўћў§ў ўњ§ў§ў§ў ўў§ўўў§ўўќ§ў§ў ўў§ўўј§ў§§ћ§§ўўљћў§ў§ў§§ўў§ў ўќ§ў§ўўњ§ў§ў§ў ўћ§ћ§§ўўў§ўўќ§ў§ўўў§ў ўў§ўўў§ўўќ§ў§ў ў§ ўўћўў§ўўћўўќћўћў ўѕћўњўўњћўўћў ўњћ§§љўў§ ўћўћўќ§ўћўўќћўћўўћў§ўљ§§ћњ§њћўўњѕўћњ§§ўўћњњўў§ўћўў§ўўўћўў§§њўўќћ§§ўўўћўўўћўўўћўўўћўўћўўћўўќћўћўўўћўўќћњћўўўћўўњљ§њњћўћўўћњ§њћў ўћўўћўўіћљ§њљњљ§њ§§ўњўў§ўўћўўћќ§ћњўўњћњўўћў ўўћўўўћўўўњўўўћўўћўћљњ§ћўўћўўћўўўћўўњћўўћњў ўњўћўўўћўўјњ§ћўћўћўўњ§њњљњўўўћўўўњўўўћўўўњўўњњ§ўўћўўњћ§ўўћўўўћўўїњўўї§ўўћў ўўћўўўћўўќћўћўўќћљћўўў§ўўўћў)ўћў§ћњўўћћўўћў ўўћўўћњўћћў§ўўўћўўў§ў ўўћўўўћў ўўћўўќњ§§ўўќћўћўўўћў*ўћћўћњўўћўљўўў§ўўјћўўћўўћўўўњўўўћў ўћћўўћў ўўћўўќћўњўўўћўўњћўўњћўўўћўўўћўў§ўњўўўћўўўћўўўћў ў§њ§ўўќћњ§ўўўћў ўћ§ўўћўўќћўўћћњ§њїј§ўўћћўўћўўћћўўћўў§ ўўћўўќ§љ§ўўў§ўўўћўўќћ§§ўўћћњ§љњўўќћўћўўћіў§ўў§љўўћўўўћўўўћўўљўћўўќћўћў ўћњў§њљћўў§њћў'ўћўћ ўўћў ўћћўўћўўќћўћўўўћўўўћўўћўќћўћўў§јћўўќћўћўў§§ўћўўћўўћўўўћўўўћўўўћўўўћўўўћўўћўўћўўўћўўў§ўўўћўўўћўўќћўћўўѕћўўћўўњћўћўўўћў ўљћ§њ§§ћўўў§ўў§ћ§ўўћўћћўўњўўњ§ўћўўўћў%ўў§ўўўњўўћћўўћўўћўўћўўћ§ўћћўўўћўўќћўћў ўѕћўўћњўўћўћўўќћўћўўњћўћўћўўћўўћўўўћў ўќ§ўћўўўћўўћўњћўўћћўўћўћўљћўўњћћўўўћўўќћњњўўћ§ўћўўњћўћўћў ўћњўћћўћўўћўўћўўўћўўќњўћўўўњў ўў§ўўўћўўўћўўўњўўўћў ўўћўўўћў ўћўіњ§ћў§њўўћў ў§њћў ўћћў§§ўўќ§ўћўўќћўћў ўј§њ§§ўўћўўћўњћўўћћўўћћљўћћўўњћўўљћў ўћќ§ўњўўўћў ўўћўўњћњўўћўўљћўњўўћўўўћў ўўћўўўћўўўћўўўћўў§њћўўўћўўўћўўќћњћўўў§ўўћ§ўћўўњљ§ћўћўўљћўћўў§ўўћўќћўћўўњћўў§њўўћћўўњўўўњўўўћўўўћўўћћўўћўўћў§ўљћўўћўћўўќћўћўўћўћўўћўўћўўћўўћћўўћўўўћў ўіћўўћњўў§њўўў§ўўњ§њ§њњўўўћўўіћўћўћћўћћўўћћўўћўўўћўўњќ§ўћ§§ћњћўћў ўўћўўњўћўћњ§§њўўўњўў§ўюћ§§ћћјњўћўўћњ§§њњўўїћўўћћўћњўўіћ§§ћїњћњ§ўў§§њ§§ўўњ§§§ћ§ўўћњ§љ§ўўўћўўћўўћўў§§њўўј§љљћ§§њўўњњћћ§њў ўћњўўћўўќћ§§ўўэњўћћў§§ћ§њ§§ўћ§ўћћўўљљњўћўћўўќћўћўў§ўњўўўћўўћ§њћћў ўћўўњўўњћўўћћўўќћўћўўўћўў§њ§ўў§§ўћ§§јўћўћўўћўўћ§ў§њњњ§ўўћћўўќћ§њ§§§ўћўў§ў§ўўћўўўћўўўћўўѓ§ѕёѕўўћў§њћў§§ўћўўћ§њ§§ўў§ўњўўћњђєњўўўћўўўћўўћўј§њ§§ћўўњњўќ§ўћўўћ§њ§ўћћљўњљђђ§ўў§ћўћћўўњ§§ўћўўё§њўћўў§њ§њњћ§§ўўњўћ§њљ§ўўљ§ћћњўћў ўўћўўњ§њ§§њ§§ћњћљњўў§ў§ўњ§§јњћјљћ§љ§§ў§ўўћўўћўў§§њ§ќњ§ћўў§ћў§§ў§§ўћўў§љїјњљњ§ўћњўўўњўў§њ§ўў§ўњ§§њћ§њўћ§§§ўћў ў§ў§ўљћ§њћћўўѕћ§ћўћўўћўњ§§ќњ§њ§§ћњљћљ§§ўћўўўћўўћў§ўћўћїў§њљјјљљ§§ў§§њ§§јўћўўћўўњњћ§ў§њ§ўўўћўўњњћљћ§ўў§њљ§§їњўћњ§ўў§ўўє§њљўўњљїїјњўўєћўћўћњњ§њњ§ўўўћўўўћўўі§њ§ћћњћў§њњћ§ў§ў ўў§ўўљ§ћў§ў§ўўў§ў ўќ§ў§ўўў§ўў§њћўњ§ўў§ћў ўў§ўўќ§ў§ўўќ§ўћўўњ§ў§ў§ўўћ§ў§ўћћњ§ћ§ћ§ўўў§ўў§ўќ§ћ§ўў§§ў§ўўј§ўћ§ћў§ўўў§ўўќ§ўћўўќ§ў§ўўіћ§§ў§ўћ§§ўўў§ўўў§ўўў§ўўў§ўўў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўўі§ў§§ћ§§ў§ўў§§ў§§ўў§ўўќ§ў§ўўќ§ў§ўўћћ§ў§ў§§њћ§ћў§ўў§ўћўўў§ўўћ§њ§§ўўќ§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ўўј§ў§ўў§ћўўў§ўўў§ўўў§ўўў§ўўј§ў§ў§ў§ў ў§ўј§ўћ§§ў§ў ў§§ў§§§ў§ўўў§ўўў§ўў§ ўўћўўќћў§ўўў§ўўў§ўўў§ўўє§ў§ў§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўўќ§ўћўўњ§ў§ў§ў'ўј§ў§ў§ў§ўўў§ўўў§ўўќ§ћ§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ў ў§ўћўўў§ўўў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ўўќ§ў§ўўў§ў ўў§ў ўќ§ў§ўўў§ўўў§ўўў§ўўњ§ў§ў§ўўћўі§ў§ўў§ўў§ў ў§ў§§ћўўў§ўўў§ўўћ§ћ§ћўўє§ў§ў§ў§ў§ў§ўўљћљљњ§§ўўў§ўўќ§ў§ўўњћ§ћ§§ў ўў§ўўќ§ћ§ўўў§ўўј§ў§ўћ§§ўўј§ўў§ћў§ўўў§ў ў§§ћўўў§ўўў§ўўў§ўўў§ўўў§ўўў§ўўў§ўўў§ў ўў§ўў§ћ§ўўў§ўўў§ў ўў§ў ўќ§ў§ўўў§ўўў§ў ўћ§ўў§ўўў§ў ўў§ўўњ§ў§ў§ў ўў§ўўќ§ћћўўў§ў ўў§ўўќ§ў§ўўў§ў-ўќ§ў§ўўє§ў§ў§ў§ў§ў§ў ўў§ўўў§ўўќ§ў§ўўќ§ў§ўў§ћєў§ў§ў§ў§ўћ§ўў§ћ§ўўњ§ў§ў§ўўќ§ў§ўў§ўў§ўўў§ў ўў§ўўў§ў ўў§ўўќ§ўћўўў§ўўў§ўўќ§ў§ў ўњ§ў§ўћў ўј§ў§ў§ў§ў ўњ§ў§ў§ўўў§ўўі§ў§ў§ў§ў§ў ўў§ўўў§ўўў§ўўќ§ў§ў ўў§ўўў§ўўў§ўўў§ў ўў§ўўќ§ў§ў ўў§ў ўў§ў ўў§ў ў§§ў§ўўќ§ў§ў'ўќ§ў§ўўў§ўўў§ўўњ§ў§ў§ўўўћўўў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўўі§ў§§ўўћ§§ўўј§ў§ў§ў§ўўў§ўўў§ўўў§ўў§іћў§ў§ў§ўћўўў§ў ўњћ§ћћ§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўўў§ўўў§ўўў§ўўўћўўў§ўўў§ўўў§ўўў§ўўў§ўўќ§ў§ўўў§ўўў§ў ўў§ўўў§ўўў§ўўў§ўўў§ўўў§ўўќ§ў§ўўў§ў ўў§ўўї§ў§ў§ўћ§ўўў§ўўўћў ўќ§ў§ўўќ§ћ§ўўњ§ў§ў§ў ў§ўў§ўў§ўў§ўўў§ўў§ќћ§§ў ўў§ў+ўў§ўўў§ў ўў§ўўќ§ў§ў ўў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўў§ўўђћ§ўў§ўў§§ў§ўў§§§ў§ўўќ§ў§ў ўў§ўўў§ўўў§ўў§їћ§ўћ§ћ§§ўўњ§ў§ў§ўў§ўў§ўўќ§ў§ўў§ќћ§§ўўў§ўўђћ§§ў§ўў§ћћњ§§ўўј§ў§§ћ§§ўўў§ўўћ§ўў§ў ўмћ§њћљћ§§ўў§ў§ћ§ћћ§ћў§ў§§ћ§њ§§ўў§ћўћўўў§ў ўў§ўў§яў§ў§ў§§ћћњ§ћ§ўў§ўўњ§њњћ§ўўў§ўў§ѕў§ў§ў§§ўў§ўўє§ў§ўў§ћў§ў§ўў§іћўћ§ћ§§ўћўўў§ўўў§ўўљ§ў§§ћ§ўўќ§ўћўўќ§ў§ў ўў§ўў§ўў§ўўє§ў§ў§ў§ў§ў§ўўј§ў§§ћў§ўўў§ўўј§ў§ў§ў§ўў§ћћўў§ћћќ§ў§ўўќ§ў§ўўў§ўўў§ўўўћ§§ўі§ў§ўћ§ћ§ћўўі§ў§ўћ§ћ§§ўў§ћў§ўўў§ўўќ§ў§ўўќ§ў§ўўј§ў§§јђњўў§іў§§ћ§ўў§ў§§ћ§ў§ўўњ§ўћ§§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўћљєї§ўўњ§ў§ў§ўў§ўћўў§ў§§ў§ўўќћ§ћўўњ§љѕљћўўў§ўўі§ў§ў§§ћ§ћўўўћўўђ§ўћ§ћ§§ўћ§ўў§ўў§ёў§ўћ§ў§§ў§§њћ§ўўў§ў ў№§ћ§§ћ§ћ§ћ§ћ§њћ§ўўцћ§§ўўћћ§ћ§ћ§ћћ§њћћњћў§ћ§§ўўћњ§ў§ў§ў ўљ§ћ§ћ§ћ§§њћ§ћ§ћўў§јћ§ўўћ§ћўў§ћ§ћћћ§ў§ћўў§§ў§§§ў§ўў§ўўћ§§ќћ§ћ§§ўћ§ћћ§ўў§§ў§§ћў§ў§ћћўќ§ў§ўўў§ўўћў§ўўћћ§ўў§ў ўљ§ў§ўў§ўў§ьћ§ћ§ћ§ћ§ћ§ћњћ§ћ§ћ§ћўўј§ў§ў§ў§ўўј§ўћ§ћ§§ўўў§ўўў§ўўў§ўўїћ§ћњњћћ§ћћў§ўў§ћ§ћћ§ў§ўќћ§ћўў§ћў§ў§ўўю§ў§ў§ў§ў§њћњћў§ў§ўў§ћњ§ћ§§ў§§јўћў§ўћ§ўўљ§ћћњ§§ўў§ўћў ўј§ў§ў§ў§ўўє§ўћ§ћњњ§ў§ћ§§њўў§ў/ўњ§ўћў§ўўў§ў4ўћ§ўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўqўќ§ў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўўў§ў ў§Mўў§ў5ўў§ў-ўў§ўўў§ўўўў§ўъўў§ў!ўќ§ў§ўўћћњћ§ў#ўќ§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўў§ў-ўў§ў€ўў§ўfўў§ўДўў§ўўў§ўўў§ўMўў§ўўў§ў ўў§ў-ўќ§ў§ўŒўў§ўўњ§ў§ў§ў3ўў§ўўќ§ў§ўўў§ўўќ§ў§ў ўў§ўўњ§ўћ§ћўўў§ўў§њћўћў§ўўў§ўў§§ў§§ўў§ўўў§ўў§њћ§§ў§ўў§ўў§ўўў§ўўў§ўўў§ўўў§ўўќ§ў§ў?ўў§ўўў§ўўў§ўўќ§ў§ў ўў§ўўќ§ў§ўўў§ўўћ§ћљњўўў§ўўќ§ў§ўўў§ў ўў§ўўћћјњ§ўўќ§ў§ў ўў§ў ўў§ўўћ§љћћўўќ§ў§ў ўў§ўўў§ўўў§ўўў§ўў§ўћўўї§ў§ў§ў§ў§§ўў§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўђ§ў§ў§ў§ў§ў§ў§ўўќ§ў§ўўў§ў ўќ§ў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ў&ў§§ў§ўўў§ўўј§ў§ў§ў§ўў§ћў§ў§ўўќ§ў§ўўћ§ўћў§§ўў§ўўў§ўўў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ўўљ§ўў§ў§ўўў§ўўў§ўў§ќћў§ў ўќ§ў§ўўќ§ў§ўўќ§ўў§ўљњ§љ§ћўћћ§њћўўў§ў ўўћўўђњ§ўўћћўћ§§њ§§ўўўћўўўњў ўўћўўўћўў§ћ§ўўјћўћїїћњў ў§§њўўќћ§§ўўўћўўўћўўўћўўў§ўўњ§љјљљўўћўћўяћўћўћўћ§њљўўћўўћњњћ§ўўћўўћћўўћўўћўўћўўўћўўўћўўћћўўћўўўћўўўћўўћўќћ§ћўўњ§ўўћўўўћўўўћўўћўљћњћўў§ўўўћў ў§§ћўўњ§њљ§њ§§ўєћўћўўћњћўћў§§ћўђћўўћћўћўћћ§њњўў§њўћўўћўўўћўўўћўўќћўћўўќ§њ§ўўўћўўћўўћўўћћўўћў ўўћўўўњўўўћўўўћўўўћўўћўќћўћўўњћўўћў ўёћў§§ўўћљїїј§ўћў ўўћўўўћўў§ў§§ћўўўћўўўћўўўћўўўћ§§§њ§ў ўќћўћўўћўћћўўћўўўћўўћњћ ўўћўў§§ўњ§§ўўћўўњћўўњњўўўћўўўћўўћћїњњўў§ўєћўћ§ўўћћўўњ§§ўњћўћ§§ў ўўћўўєћўўћўўћўћўћўўњћўћћњўўћ ўўћў ўўњўўўћўўќћ§§ўўўћўўўћўўёћўўњўћўўћўўћњћўўњ§ўћўўћћўћњўњ§ћћўўћ§єљјњўњњўўћўћўўўћўўћў§§њўўўћўўљћњ§њ§њўўўћўўўћўў§њ§ўўќњћћўўћў§ўћў ўњ§њњ§љўў§ўћћњўњўўўћўўўћўўћќўњњ§§ћі§ћћљћљ§§ћўўњњљўўћўўћўўћўўўћўўёњ§ўўћўў§§љїљ§§ўўћўўћў ў§њљўўўћўў§ўќћ§§ўўљћўў§љњўўћќўћ§ўўўћўўўћўўћћњўћўўўћўўћўєњ§§њћў§њўўћўўћўљћўћўўћўўўћўўћћўўћўўўћўўњњ§ћћ§ўўћ ўћћўћћўўћўљњ§ўўћћўўўћў ўўћў ўћњўўћўў§њљўўўћў ўњњ§њўўћў!ўћњўўћўўћўњўўўћўўўћў ў§ћћљљћў ўћ ўўњўў§ћ§ўўїљ§њљ§љўў§§ќћўћўўљ§ўў§њ§ўўћўњћўўљ§ў ўўћўў§ќљ§ћўў§§њ§ў ў§ї§ўў§ўњў ўўћўў§њћў ўўњ§§ўўћўўўћўў§ўћўўўћўўћўў§§§ћ§ўўњћўћўћў ўўћўўўћўўћњ§њћўћўўљћўўћњ§ўўћўўћўўћўўћў ўўњўўњћ§њљљўў§њћўўћћў§§ўўўњўўўњўўўћў ўўћўўўћўўћўјњ§§љўўљ§§ўќћ§ћўўўћўўѕћўћћўўњўўћўўћўўћўўўћўўјћўўњћўћўўўћўўўћўўћўўћўўўћўўљ§њњўўћўўўћўў§ўўњњћћўўћўўўћўўќ§њњўўўћўўњћўўњ§ў ўўћўўў§ўўђ§љњћ§§ћћўћўўћўўўћўўўћўўќћў§ўўўњўўўћўўћ§њўћўў§ўўћўўўћўўќћўћўўј§ћўўћўћўўћћјћћўўњ§љћљћўўћўўћўўўћўўћњўћћўўўћўўћ ўћњўўћўўўћўўћћўў§ўўўћў ўћўјћњў§§љњўўўћў ўўћўўќћўћўўўћўўїћўўћўўњ§ўўќ§љ§ўўќњўў§§ћњўўћўўўћўўўћўўўћўўўћўўљ§љљўњјўўњћўљ§њўўўћўўўћўўў§њњўћўўўћўўўћўўєћўћћњ§ўћћўћў ўўћўў§єњўўћ§њњ§ўўњўўљўћўўїћўўћўўћћўўўћўўўћўўўћўў§њњ§љ§њћўў§љњўўќћўћў ўўћўўћўўћўўў§ўўћћўўћў ўћўїћњњўњњћћўўћћўћћўўўћўўўћўўћўѕњѕњўћўњ§ўћўў№љњјј§њљ§§њўўћўњ§§ўўћўўўћўў§§њўўўћўўќћ§§ўўћћў§§ўў§§њўўўћўўќћўў§§ўўћўўўћў ўћњ§њњўўўћўўўћўўћћўўћў ўћўћўўћўўћ§њ§њў ўўћў ўўћўўўћўўў§ўў§ћњўў§ћў§§љњўўћћўћћўўћў ў§ўњ§§њ§§ўќњ§§ўўўћўў§љў§ўўћў§§ћњ§ћ§ўўўћўў§њћўўў§ўўє§њ§§њљ§§ўњћўўђ§ћўћў§љ§њ§њњўћћўћ§њ§§ўўўћўў§ћњў ўќћўћўў§ћњ§§ћўў§§њ§ўўћќўћњ§§ўњўў§њћўўј§њљљјљћ§§§њ§ўў§њњ§њ§њўўљ§њ§њўћў ўї§ћњ§њ§јћўў§ўњ§§ўњ§§ўњћљў§§ўўўћўўўћњњўћўўћњћўўћћўљ §ўљ§§ўњє§њњ§ћњўў§§њўўўћўўўћўў§ћљюјњњјјћћ§њњўў§§ў§§љљћљњњўўћћ§§ў§ўўћўўњћўћ§њўўїћўўћ§§љћ§§љќћ§§ўўљ§ўћўњњ§§ќњ§§ўў§§ћўўјљњњўў§њ§§§њ§ўўћљўћћўў§ўўѕ§њ§§ўћўўћћўўўћўў§њљ§§§њ§ўўю§ћјњљњњ§њїњљ§ўў§њўўіћњњ§њў§§њ§§ўўњўў§єљћїљљњњ§§ўћўўј§ћљњ§њ§ћћў§љњ§§ћ§ћ§§њљљўњ§§ў§њњ§њ§љјћћѓљћјљћњ§§љјјљњњўќљњњўўњ§ѕњ§њ§§љљњ§њ§§ўћўў§ўљ§§њњљњ§њ§ў§§ўћћ§ў§ўўќ§ў§ўўњ§ў§§ћўўњ§ћ§ћ§ўўќ§ў§ўўў§ўўў§ў ўљ§ў§ў§ў§§§ў§ў ўі§ў§ў§ў§ў§ўў§ўљ§ћљљњ§ўў§ў§§ћўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўў§ўљ§ћњћў§ў ўў§ўў§§ў§ўў§ўў§ўў§ўќ§ў§ўў§ўў§ўўў§ўўќ§ў§ўўќ§ў§ўўћ§ўў§ўў§јћў§ў§ў§ўўў§ў ўў§ў ўќ§ў§ўўј§ў§ў§ўћўўњ§ўћ§ў§§јћ§§ў§ў§ўўќ§ў§ўўјћ§ћ§ўў§ўўў§ўўў§ўў§ћ§ўў§ћќ§ў§ўўў§ўўќ§ў§ў ўќћ§ћўў§ўў§ўўў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўўћ§ў§ў§§ў§ўќ§ў§ўў§іћў§ў§ћњ§ћўўќ§ў§ўўў§ўўў§ўў§ћў§ўўќ§ўћўўљ§ўў§ћћ§§ўў§ўўў§ўўў§ўўў§ўўќ§ў§ўўў§ўў§ўў§ўў§ўћ§§ћў§ўўў§ўў§§ў§ў ўў§ўў§ўќ§ћ§ўўќћў§ўў§іћ§ћў§ў§ў§ўўћўќ§ў§ўўў§ўўў§ўўњ§ў§ў§ў ўў§ўўў§ўўњ§ў§ў§ўўј§ўў§ћў§ўўў§ў ў§ўќ§ў§ўў§§ў§ў ў§ўў§ўўћ§ўў§§ўў§ў ўў§ўўў§ўўќћ§§ўўњ§ў§ў§ўўў§ўў§§ћ§ў ўќ§ћ§ўўў§ўўј§ўў§ћў§ўўі§ў§ў§ћ§§ћўўє§ў§ўћ§ўў§ў§ў ўў§ўўњ§ў§ў§ўўў§ў ў§ћўї§њњћњћ§ћўўњ§ў§§ћў ўў§ўўў§ўўў§ў ўў§ўў§§ћўў§ћ§§ў§ўўў§ўўќ§ў§ўўў§ўўќ§ў§ўўј§ў§ў§ў§ўў§§ћўўђ§ўћ§§ў§ў§ўћў§ўўў§ўў§ўў§ўўў§ўўњ§ў§ў§ўўў§ўўѕ§ў§§ћ§ўўћ§ўўў§ўўў§ўўў§ўўќ§ў§ўўј§ў§§ўўћўўў§ўўў§ўўў§ўўў§ўўќ§ў§ўў§§ћўўў§ўўј§ў§ў§ў§ўўў§ўўў§ўўњ§ўў§ћўўў§ўўў§ўў§ћў§ў§ўўњ§ў§ў§ўў§§ў§§ў§§ў§ўўў§ўўў§ўўњ§ў§ў§ўўљ§ў§ў§§ћћ§њћўўў§ўўў§ўўўћўўђћ§§ћ§ўў§ћ§ћў§ўў§ћўћ§ћўўў§ўўј§ўћў§ў§ўўњ§ў§ў§ўўћ§ў§ўўћ§§ў§ў ўўћўўў§ўўј§ў§ўћ§§ўўў§ўўњ§ў§ў§ўўј§ў§ў§ў§ўўљ§ћ§ћў§ўўњ§ў§ў§ў ўњ§ўў§ћўўў§ўўў§ўўў§ўўјћ§ћњћў§ўўў§ўўј§ў§ў§ў§ўў§ћ§ўўў§ўўј§ў§§ўў§ўўў§ў ўў§ўўў§ўўў§ўўў§ўўў§ўўѕ§ўћ§ўў§ў§§ўўќћ§§ўўў§ўўњ§ў§ў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўњ§ў§§ћўўљ§ћ§ћ§ћўўў§ўўў§ў ўў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ў ўў§ўўј§ў§ў§ў§ўўќ§ў§ўў§ўў§ўўў§ўўў§ў ўў§ўўў§ўўўћ§§ ўіћ§§ў§ў§ў§ўўј§ў§ў§ћ§ўўў§ўўў§ўўј§ўћў§ўћўўјћ§ўў§ў§ўўњ§ў§ў§ўўў§ўўў§ў ўў§ўўў§ўўў§ўўў§ўўў§ўў§ўј§ўћ§ћў§ўўњ§ў§ў§ў ўў§ўўў§ўўќ§ў§ўўђ§ў§ў§§њў§ў§ў§ў ўѕ§ћњўў§ў§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўј§ў§ў§ў§ўўќ§ў§ўўў§ўўі§ў§ў§ў§ў§ўўќ§ў§ўўў§ўўњ§ў§ўћўўѕ§ћћ§§ўў§ў§ўўњ§ў§ў§ўўў§ў ўў§ўўў§ўў§ћћў§ў§§ўў§§љўћ§ћ§§ўўќ§ў§ўўў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўћ§ў§ў§§ўў§§§ў§ў ў§§ў§ўўћ§ў§§ў ўўћ§§ўў§ўўў§ўўќ§ў§ўў§ ўј§ў§ў§ў§ўў§њћ§§ўў§§§ћў§§ўќ§ў§ўўў§ў ў§§ў§§ћў§ўўњ§ў§ў§ўўі§ў§ў§ў§ў§ўўў§ўўј§ў§ў§ў§ў ўў§ўўћ§ў§§ўўў§ў ўў§ўўќ§ў§ўўќ§ў§ўў§ў§ћ§ўўц§ў§ћљњћ§§ўћћ§ў§ў§§ћ§ћ§ўў§ўўт§ў§ў§ў§ў§ўћ§§ў§ў§ў§ў§ў§ўћ§§ў§ўў§ћћў§ў§§ўў§ўўў§ўў§іћ§ћћ§ў§ў§ўўѕ§ўў§ў§ў§ў§ўў§ќћ§§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўў§ ўј§ў§ў§ў§ў ўјћ§ћ§§ў§ўўў§ўўў§ўўў§ўўќ§ў§ўўљ§ў§ў§ў§§їў§ў§њ§ў§ўў§њћ§§ў§ўўў§ўўў§ўўц§ћћ§ћў§ў§ў§ћ§§ћ§§ў§ў§ћћў§ўўц§ў§§ћћ§ўћў§ў§§ћ§ћ§ћњћ§§ў§ўўў§ўўќ§ў§ўўѓћў§§ћ§ћ§§ўћ§ўўќ§ўћўў§ћў§§ћ§§ўє§ў§ћ§§ћў§ў§ўўњ§ўў§§ўўќ§ў§ўўќ§ў§ўўњ§ў§ўћ§§іћў§ў§§ћ§ћў ўј§ў§§ћ§§ўўў§ўў§ћўњћћў§ћћћ§ћ§§ўўё§ўћ§ћ§ћ§ћ§§ў§ў§§§ћ§ў ўў§ўўћ§ўћњ§§ўў§ўўђ§ўћћ§§ћ§ћ§ћ§ћўў§ўќћ§§ўўў§ў ў§ўў§ўўћћ§ћ§ћћј§ћ§ћ§ћўћћў§єћў§ў§§ћ§§ў§ў ў§хћ§ћ§ћћњћћњљљњњјњћ§§ў§§ћўћ§ћћњћ№§ў§ўў§ћ§ћў§ўћ§§ўўў§ўў§ў§ћ§ћћў§ћћљњ§ћў§ў§§ўў§§іћ§ћ§ћ§§ў§ўў§§њўў§§ў§§їўћ§ћ§ћ§ћўўў§ўўў§ўў§ў§ўћўў§ћў§ћ§ћћљ§ћў§ў§ўў§њјљћ§§ћ§ў§§ќўћ§ўў§№ћў§§ћ§ћ§ћ§ћ§§ў§ўў§ћјљјјњљ§ћўў§їўћњћ§ћ§ћўўў§ўў§ѓћ§ћћњ§ћ§ўўћ§ћћї§ћ§ћћ§ўћ§§ђћ§њћњћћњњћњ§ћ§§ўў§§ў§ўў§§ћј§ћ§ћ§ўў§§њћ§ўў§ўўјћ§ћ§ћ§ћ§§§ћ§ћўў§ў!ўў§ўўў§ўўў§ўAўў§ўўўћ§§ ўў§ўўў§ўўў§ўў§ќћ§§ўўќ§ў§ўўќ§ў§ўAўў§ўўќ§ў§ў=ўњ§ў§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўMўќ§ў§ўўў§ўўќћў§ўўў§ўўў§ўўў§ў1ўў§ўўњ§ў§ў§ўўў§ўўў§ўўќ§ў§ў ўў§ў]ўў§ў/ўў§ў ўў§ў ўў§ў?ўў§ў'ўў§ў ўќ§ў§ўўў§ў)ўў§ўўј§ў§ў§ў§ў;ўј§ў§ћ§ў§ў1ўў§ўўў§ўўў§ў#ўќ§ў§ўўў§ў3ўў§ўQўў§ўўў§ўKўў§ўў§'ўќ§ў§ўўќ§ў§ўўў§ў'ўў§ў ўў§ў ўў§ўўў§ў#ўќ§ў§ўўў§ў#ўќ§ў§ў7ўў§ўCўў§ўўў§ўўў§ў/ўќ§ў§ўўњ§ў§ў§ўўў§ў{ўў§ў/ўќ§ў§ўCўў§ўEўў§ў ўў§ў7ў§ўќ§ў§ўœўў§ў3ўќ§ў§ўўў§ўўќ§ў§ў5ўќ§ў§ў ўў§ўўў§ў5ўў§ўўќ§ў§ўўў§ўўў§ў,ў§ўў§ўVўў§ў)ўў§ўўј§ўћў§ў§ўўў§ўўў§ў ўў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўMўў§ў)ўў§ўўў§ўўќ§ў§ўўў§ўўќ§ў§ўўћ§ўў§ўўј§ў§ў§ў§ўўў§ўўў§ў ўќ§ў§ўўў§ўўў§ў ўў§ўўќ§ў§ўўќ§ў§ў ўќ§ў§ў ўі§ўћўћўћў§ў ўј§ў§ў§ў§ўўў§ўўњ§ў§ў§ў ўќ§ў§ўўў§ўўў§ў)ўќ§ў§ўўј§ў§ў§ў§ўўќ§ў§ўўќ§ў§ў ўь§ў§ў§ўћ§ћ§ћўћўћў§ў§ўўў§ўў§њћ§§ў§ўўќ§ў§ўўў§ўўў§ў ў§љћў§ўћў§§ўў§ўўј§ў§ў§ў§ўўў§ў ўў§ўўњ§ў§ў§ў ўў§ўўќ§ў§ўўњ§ў§ў§ў ўі§ўћў§ў§ў§ўўў§ўўў§ўўі§ў§ў§ў§ў§ўўњ§ўў§ћњњ§ћ§ўўњ§ў§ў§ў ўі§ў§ўћ§§ў§ўў§ћў§ў§ўўљ§ў§ў§ў§§љћ§ћ§§ў§§ќў§ў§§§ў§ўўќ§ў§ўўќ§ў§ўўє§ў§ў§ў§ў§ў§ўў§ћў§ў§ўўў§ўэњћљїљћјјїїјѕњ§ўћўћўўћ§њ§§љљўњўўѕћ§§њўўћћўћўў§ўћўўћњѓ§ћўўћў§§ћўњ§ћћљўћ§§љыјћљ§§ў§§љњўў§§њњљњўћўў§ќњћћўўўћўўўћўўќњ§њ§§њ§ўњ§§њі§њ§ўў§њ§§ўўўћўўў§ўўўњўўў§ўўњњ§ћўўћћўћњњљћ§§ўўќћўўћћћўћњ§ўўыњ§ўўњњ§§ўў§ўўћ§§њњ§§јјўљўўўњўў§ўњўў§ўўњ§§њўї§љљћњћљћ§§њћљњјјњњћўўўћўўњўўћўў§ўњ§§љїїљћњћњ§ўў§§єћјјљљћљљњ§њўўў§ўўўњ§§њў§ўўўћўўћўў§§ћњ§ўћ§§§њљўў§ћ§ўў§§њўўў§ўўўћў ўћ§ўћўўћўќњћњ§§љњћўћ§њўўћїўћўћўўћњўў§ ўўћўўљ§љ§§њ§ўўћѕўћњ§§ўњљњњ§§њў§ўўњўћћўўћўў§§њўў§њ§ўўњ§іћўў§њћ§њњ§§јљўўћўў§њњ§љјљљўњ ўљћ§ћўўћўў§љ№§ўўњ§ў§њ§ћ§§ўўћўўєљњњ§ў§њ§§јњ§§њў§ћњ§њ§ўўћ§ќљњїћћњљћјљћ§§њ§њњљњњћўўўћўўўћњњљўњў§њ§ўў§љўњ§§њў§§ўњ§ћњљњњўўёћў§њ§ћљњўћўћћњўўўћўў§ўњљўћўў§§ўў§ћћќњ§§њњўіћњ§ў§љћўћўўѕњљјјњ§њљњћўў§њ§ўўўћўўњћњўљ§§ћјјљћћњ§њў ўўћўўўћўўўћўўўћўўњэўћўњћўўћћ§§ћїѕ§ћўћ§§њ§ќћљ§ўўєњћњѕјњћўў§њўўќ§љњўўћўўћўўѕћўћўў§ћѕ§§ўў§јћјїїјћ§ўўјћњѕј§ўћњњфјљњљљњ§ўўћўљ§ўўћўў§њўўњњ§ўў§§ћјљ§ћўўњћњњ§ў§§ў§єњћўў§§њљ§§ћљљђѕ§њњ§ћўћ§§јўў§§ћўўћўўњќў§§ћћљњћњљћ§њњўћўўўњўў§ћњўў§ќњ§њ§§ ўє§њњ§ў§ћљљћћ§§ ўўћўў§ќћўћўўўћјјњљ§§ћћўўў§ўў§ўђњўў§ћўћўў§љћў§§§ћў§§њќ§њљўўўћўўњћўўћћўўќњў§њњњћ§њўњ§§ў§ѕў§љњўўњ§љњ§§§ўћўўќћўў§§ќњ§ћўў§љћўў§§њ§§ћїўћћўў№§њћљјњћјѕїњћ§њ§ћћј§§ў§њњцћјљјћјћ§§ў§њљ§љњў§§њ§§ўўћ§§ў§ћњ§§њњљљћљћћђ§њњљћћљ§§ўў§§ўўћњ§§њўў§ї§њњў§ў ўќћўћўўўћўўќњ§ћўўѓ§њњјћњ§ў§њ§ћўўњђ§ў§ћћўћћ§§њљ§ўўљћўћћўў§§ўјњљњ§њ§§ў ў§љћўў§јњ§њўћўћўўў§ўўўћўўћў§ўўњѕ§њњћћўњњ§§ћћ№њћўћў§љњњўўћўўћўў§ўўћўўњћ§њ§ћўўќњ§ў§§ўјћў§§ћ§њўў§ёњўћўў§§ўћўњ§љњўўѕћўўњњўўћњњўўћћўўћўўўћўўњћ§њљћўўѕћњ§ћњљ§§љћ§§ўўћўўѕћњљњњ§њўћћўўћўњ§ўћўђћўўћњ§њ§§ћљљ§ўўўћўўўћўўћћўўћўўўћўўёњ§њљћўўћћ§§њњћўўѕ§љ§њ§ўўћўћў ўўћўўўћўўњѓћ§њњћњ§њ§ўўћўўўћўўўћўўљћўћўћћўўќњћњўўєћ§њјљ§ў§§ћ§ўўїћњћјњ§§њў ўўћўўўћўў§ќњ§њ§§њњўћўўњњ§њњ§њ§њћўўњњўћњљ§§§њ§ўўћўњћўўћћўў§ќћљїњњў§ўўўњ§§ўњ§§ћљћјћ§§ћњљ§ћўўњ§ћћўћњљўў§§ћў ўљћў§ћўћњњћўћђ§љњњїјћ§§њ§њ§ўўќћњ§ўўўћўўюћўў§њњўћўљњњўў§њњўўљ§ѓўћњ§њњ§§ћљћљ§§ћјњћ§ўўўћўўўћўў§ўњ§§щњў§њ§§њ§§љ§§ўћњћўў§њ§њћћ§їњ§ўў§њ§§ўўўћўўўћўў§њїћў§§ўўћћўўќњ§ћўўћћўћћўў№§њљјћљўўћўў§љњћўўўћўўјћўўњ§ўў§§њћљјћћљљў§њњў§ўўјњљ§ўўћњ§§њћњљїєѕѕ§њ§ўўіћўўћњњћњњ§§ўї§§јњ§§ў§њњ§§ўїўўєњ§њћ§ћ§§ћјєђђќєїјў ўќњ§њћћљљћ§§ўўћ§§њњ§њўћўў§њ§љљўњ§§єўњњ§§ћћјєєюђђѓ§љњўўўћўўї§ћћњ§љ§§ўў§ћўњњї§њ§§њ§ўћўў§іћљњ§§љ§њљјјїїѕєѓђѓђѕєўўўћўўўћ§§ўќћўћўўћўўњњтћ§њ§§ћўљ§ћ§§љїѕѓєѕѕєєђђѓѓђђћњћћўўћўўўћўўѕњ§§ћљњ§§њњ§§ћўћњ§љљпјїѕѕѓђђёєѕєѓєђяяыяђўћћўњњўў§§ћўўћћ ўњѓјљјљј§љњљњ§ў§§јћїєёэёєїї§јѓђђћїћњњљљ§љњћ§§ўћ§§њ§ў§йљћљњљјћјљљјњјїєїєяьэёѓєєѕѕяѓћљ§нћў§љћћњњ§ќљ§§ўў§њ§ўўњю§ўў§њњљћљљћљћљїїєѕѕчѓђѓѕїѕїѓїјёѕмЃaћў§ћћ§њљ§ўўўњ§§ў§њя§љљјњњ§§њњ§љјєѓёѓѓ№єѓєяёёћёžˆoT`њљ§§ћњ§§њљљ§§ў§§ѕўћњљљјљњњ§ўўѓњљљћњћњїѕѓёђѓѓѕѓєѕїћћЅQOOQ^ћўўћўјћ§§њ§њ§ўўўћўўћњ§§њ§§кљћ§§јїѕєђёђєєѓђёѓљїэпа—J@hN?Yћўњ§њ§њњўўыћўўњ§§ўћњњўћўўћњљјїћ§§њњљјєѓєѓѓьѕїѕѓѕљњєШdPaQJTNI@ўћћўў§њњыў§њ§ћјљњњћўўћњњљјћљћљљѓ§њљїєёэёѕѓђёѓѓюѕяэОЁge[ZYTYHL§§ўў§јњ§§њ§љљ§§бћўў§§ћјћљјјћљ§ћѕєђђяђїѓёєѕєњћх”Z\ZTPLVZVTMCўњњўў№ћњў§њњ§§њ§§ћљљћљљњћљљјјїїмјєёююђєѕєѓѕ§љдЈnLEANILLPVNHGGўўћћљњў ў§љвїјјњјјљћ§јљјєђёђђёюђєѓјїњёК„TFPEOQQPTNQSVSPўћўўћўѓћ§§њ§њўўћўћўњњд§њњћљћѓјљѓёэяюђєѕѓђћѕЩ|PCLM^PNMOPPLSSPPTњњ§њњўњ§ѕћљјћћњ§ћўљ§§ќњјљјјўїђђтєѕѕј§ѕЪnLCUIPMBMLSVMILIFHHVehњњћљљљњљњњћњћћъњ§ћћўўћ§ў§ћњјѕѓєёюѓѕљўўољЦoCIZ`ZYZQW`cZSNOPNT^dњљћћ§ћњљњћ§§Чћў§ў§ў§§ћњњ§ћћњљїђыьыяєѕњўђТƒqdMV\ZWJJLMTYTZ\[]\TWPћњћћ§ћћ§ўћ§§Юў§ћћњћњћљљјјѕђьчщяѓўўњЋVJghNUWPJHCFJMPMQUPTQOOPњњћћјњћ§§ћ§§ћћО§ћћњћњњјѕєєѓђяюяїўўщJZkzd[UOLJPNNJOQPQQUQJFLQћћў§ў§§ћ§њћ§ћњ§ћ§ћ§ћћњвјєёђѓђђєїўљМkHJJHSTTUQNOZVLQTQPOUWTPHGF§§ў§§њћћњќљњњљљжњљљїѓьяёѓјўўа˜x]QQh\[VPVSAdaVNNQSUNLIUUMOWє§ў§ўћ§§ўњ§ћў ўј§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўўў§ўў§ѕћ§§ўћў§ў§ў§§їў§ў§ў§ў§ўўў§ў ўњ§ў§ў§ўўъ§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўўќ§ў§ў'ў§ўў§ўўќ§ў§ўўў§ўўњ§ўћўћў ўќ§ў§ўўќ§ў§ўўњ§ў§ў§ўў§ў§њў§ў§§ћћ ўў§ў ўњ§ў§ў§ўўђ§ў§ў§ўћўћў§ў§ўў§§ћў§§§ў§ў ўњ§ў§ў§ўўў§ўўќ§ў§ў ўў§ўўў§ўўќ§ў§ўўў§ўўў§ўўњ§ў§ў§ў ўў§ўўў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ў ўј§ў§ў§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ўўў§ў ў§їћўћ§§ў§ћ§§ёў§ў§ў§ў§ў§ў§ў§ў ўў§ў ўќ§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўјћ§ћ§§ў§ўўў§ўў§ ўў§ўўў§ўўє§ў§ўћўћ§§ў§ў3ўљ§ў§ў§§ўўў§ўўќ§ўћўўњ§ў§ў§ў ўў§ўў§ўў§ўўі§ў§§ћўњўћўўќ§ў§ўўі§ў§ў§ў§ў§ўўў§ўўў§ўўњ§ў§ў§ў ўќ§ў§ўўњ§ў§ўў§§ўў§ўўў§ўўў§ў ўј§ў§ўћ§ћ§§§ўћўўў§ўўў§ўўњ§ў§§ћ§§§ў§ўў§§ў§ўўў§ўўі§ў§ў§ў§ў§ў ўў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўў§ўќ§ў§ўўў§ўўј§ў§ў§ў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўў§їўћ§ћ§њћћўў§љћў§ў§ў§§ў§§ў§§љў§ў§ў§ўўў§ўўў§ўўќ§ў§ўўі§ў§ў§§ћ§ћўўћ§ў§§ўўў§ўўў§ўўў§ўўў§ўўў§ўўў§ўўј§ў§ў§ў§ўўў§ўўќ§ў§ўўў§ўўњ§ў§ў§ў#ўќ§ў§ўўћ§ћ§§ўўў§ў ўў§ў ўќ§ў§ўў§ўќ§ў§ўўў§ўўў§ўўў§ўўў§ўўќ§ў§ўўў§ўўў§ў ўќ§ў§ўўњ§ў§ў§ў'ўў§ўўў§ў ўќ§ў§ў1ўў§ўўў§ўўќ§ў§ў/ўў§ўў§ўў§ўўў§ўўќ§ў§ўўј§ў§ў§ў§ўў§ўў§ўўќ§ў§ўў§ќћўћўў§ўў§ўўў§ўўў§ўўў§ў ўє§ўћ§ћ§§ў§ў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўј§ўћ§ћ§§ўўќћўћўўў§ўўќ§ў§ўўў§ўўў§ўўњ§ў§ў§ўў§§ў§§§ў§ўўў§ўўў§ўўў§ўў§§ўћћў§ўўў§ўўћ§ў§ў§§ќў§§ў ў§ўѓ§ў§ў§ћњ§ћћљћўўўћўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўѓ§ў§§ћњјјљњјћў ўљ§ў§§ћў§§ўќ§ў§ўў§ћў§ў§ўўљ§ў§ўљњјјљ ў§њћўў§§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўљ§ў§ў§ўћћіњљњїјљћљњўўў§ўўј§ў§ў§ў§ўўя§ўћў§§њћњњљћњњљјљљўњўўє§ў§§ўў§ў§ў§ўўў§ўўч§ў§§ћўњћћњјњјњљћјњјљѕњїјўўў§ўўљ§ў§ћћ§ўў§§ў§§№љјїјїњњ§њћљњѕј§ўўї§ў§ў§ў§ў§§§ў§ўўў§ўў§§ў§§јў§ў§ў§§ћћђ§љљјєєљјћљћљљўўѕєўў§ў§ў§ў§ўўњ§ў§ў§ўўў§ўўј§ў§ў§§ћ§§шўњћљћљћјљљ§љњї§ў§ўѕЖ‚ўў§§ўў§ўўў§ўўј§ў§ў§ў§ўўї§ћћљњїњљњњљ№њўўЕœ‰k|ўў§ў§ў§ўўі§ў§ў§ў§ў§ўўј§ўћ§ўў§ўў§іћўћћњћїїѕљљћћљњћўўљЗcdet{ўўќ§ў§ўўэ§ў§ў§ў§ўў§§ў§ўњћћљјјщњљњјљўўљэщЎ\\|eVpўў§ў§ў ўў§ў ўя§ўћў§ў§ў§§ћњљњјњљљћњљћћўўѕй}g{j^kd\Yў ўњћў§ў§ўў§ўў§§эўћў§ўћўјљїљїљјњїљњўўѓШКЊˆ‚|xtmmjeўўє§ў§ў§ў§ў§ў§ўўі§ў§§ћўћўћ§§јљњјњјљјњњў§ўўюяЅjvvtoenzpmcdўў§ў ўі§ў§ў§§ћ§ћ§§эў§ў§ћњ§њљјљєљјњљњљўўяцМ|b\\mememzmmcgўў§щўћўћўћ§§ў§ўњњјљјјїјјњјўўюЪh[o^ehnmejtvrnoў ўў§ўўћ§ў§ў§§ићўљљїљїњїњљљћўўс˜e^bg…mjjmooiojnhk§ў§ў§ўў§§ў§§ўћ§§ўў§ўўЫ§ћћўњћјјљњљћ§ўўл\PgeW`dggkcbe^^di||§ўћ§њ§њ§ћўћћ§§ћў§§ўё§ў§ўњћљњјєѕїј§ўўмЫ|S\e{zmppnvtoknhdknx~ћўћў§§ћўњ§§ў§ўў§ѕўњњѕїяїѓјїўўдЭ‹~{amtum^c\`gmooqkumijq§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўўёћ§ћћњћљљѕѓђђѓјўўжЛd]{u`bhkj`daZ^bbnmiihijk§§ўў§ў§ў§ў§ў§§ћў§§гў§ўћћїјјњѕїѕїњўўјžZkƒ…pmkcbc`a`V]dehohd^abk§ўўњ§ў§§ћ§§ў§ћјкѕљѕјѕ§ўўШ|[WT[jgegjbgjdh`dccjgnth[^c§ўўє§ўћўћ§§ўћўњћћ§јљћјѓяјїўўтлЈ‡tgq|ojiikdQ}tgc^[gdc]dhojjn ў€;wўџ:ўwџџ8wџ7ў€џџ4wџ3ўwџ џ0w џ/ў€џ џ-wџ+wџ)wџ(ў€џџ'ўwџџ%wџ#wџ#џ#џ"ўwџџћ§ўє§њ§њњўў§њњљћћўљ§§ўњћћ§ў§ў§§ћјјјїјљ§њ§§ўўљ§ћњћў§ўўћў§єњўў§њ§љјћ§ї§§ќњ§§ўўќ§љљћћ§ў§ћњћћў§§§ўћўўўћўўњ§ўў§њўў§ќњўў§§ќљ§§ўўњљ§§ћ§§јўљљњўћў§§њўћєўћћў§њњћў§њ§§§њћ§§ћљњ§љњ§њ§њњ§§ћѕјљљњљ§§ўћћўўіћўўњ§§њњ§ўўўњ§§љў§њљљћљљѕјћљ§ћ§§њћњ§§єњ§§љћљљјјљњ§§њ§ѓњ§ў§§ћљћљ§њњўўў§њњў§ўў§ўњ§§ўјњў§њљћћњњўћўўўњўў§§њ§ўўњњљљјј§§ћњљ§ћњњў§ўўю§њњљјћћљјљљћљћ§§њ§§§ћљ§§ќљјњ§§ѕўњњ§њљљћћў§§ўњћўў§ћљљўњўўњћ§§њњљљћї§љјљљб§ўњ§§ўњ§њљћјјљљњ§§ўўћў§§њ§њ§њ§њ§ћўўћў§љ§њ§§ў§њ§§єљ§њљћўў§њћў§§њњ§њ§ћўўэљ§§ћј§њ§њљћћўўћњњћўўњ§ўђ§љњћљљњ§њ§њљљ§§ўњ§§яћјјљћљјјњћњњ§љ§ў§§њ§§њ§§јўћћў§§ћњњљў§ўћћњ§§ўќћњњўў§§њ§§эњ§љјњћћљїїћњўўћњ§њ§§ўњ§§ўњљљш§њ§§ўњ§њ§ўў§§њњ§њ§§њ§ћћљљўњјјњюљјљљћљћљј§ћћўћўўњўўјћўўњњ§§њњўіњ§њ§§њјћ§ўў§јљїјњћљћјјњљїїњљїїщѕђјћћНўўћў§§њўўћўћўўћ§ўўћўў§§яљ§љњћ§§љ§њ§§њњ§њ§§ъљћљјњћљј§ў§ЭМЂ\ўўћўўћўўўћўўўњўўњ§єљјїћћєѕјњћњўўшћ§њњ§§љјњјљњћљ§ћћљЖ{IJNўўћўўњњќ§њ§љљљћ§њ§§њ§§яљ§њћљјњјћљћљјљњјљљјўєјјўћ§§гыОuI`x\?ўћ§љїљ§§ѕљњўўњњљљњ§њ§§њћјљљјљ§њњјїѕїјјљў§љљхѕјѓћћюЮ’a^gT^]`Pљћљљћ§§њ§§ўўђ§њњ§ћљљћћљјњјљљќћљљјјљрћњ§њ§њћљњјљљк—]FCg„tkjV8ў§ўњњ§§њњъ§ћ§§ћљ§§ћљњ§њљћћљјћјћљљ§јњјјЭћјњјљ§§ллЦ~gPSYWTUH89Hњўўњњљњ§§њћўњљњјњїјљћљњњ§§љћ§§њљћљјљјјуњјїјљїьм”NUUQhgVYUeC12Aўћўўћўўћњ§§ћ§§ўњ§§љбњ§§њћћљњњљљњїѕїћ§§ѓдДo@:FTFB>@>>FHBNpўћўў§§љљњ§§ќњ§§њњ§ўњ§§ћћљћљњњђѕєјћћїеŸ`Y\?POOѕQONMOSIGP\ўў§ђљјљљћ§љћјћљљњ§§жњ§љњ§§љљњјїєѕј§ьБ‰d:WJQ:MOPMBGLMZ\UQSU§§їњњї§њњљ§§њ§љљ§ћњ§§њжљїїњљћљїѕђѓјјѓтЖ„L7@P^PLEMMIP[SNJNUTNNO§ћўў§§њ§§§љ§ўўўњ§§ћћљѕљјјиїєјїѓыТ[TNCSSQHIGOLJMQNTTLJ:?EIўњћњњљћ§§іљћљћљљњњљ§§ањћћ§ћјћ§§ѕспЊmLILWY``TIHGLMNNWPNOJG5@II§ўћњ§§ћ§њњћљ§њ§њњЧ§њћљљјїћњљєѕєыёР”YCJ@GFM284?GHHEF@JO§љјљљћњ§ћћўўЭњћљ§њ§љјјњјњїћјчшуЋiJELjmUIC9@ZONH?><5(%.8>@EIJPHAJPH8GIIJHCHFCEGAIJSOLљћћўўћўўўћўўлњјїѕєѕѓћ§ћнЖvmNQ\d\USQLNG@CFJIQQPPLIJJєIBCEFEQTSJPћћ§љћљљ§љњтѕѓёэёјћѓЖ`F::NTY`QUQPMMTTNIFNQQэNHFBG@74AHGAPQV\dљћћќљћљћћУјїљєїёѓ§ўћёг|IWVTNQYMBMCMJU[NIGEIHIQJC>A<5.;<@PNSWVbdћљњљћљјїїќјѕѕєєЫѓя§§У‡QCFVWTJY^Z5>@?>EJOMHMHMJMIF??89@:79BM]TLOVљљћћљљЦњїљѕєєѓѓёє§јФjYLH4JA:AIUJ3?AJJOPUUTJNTљљњњїєѕєђђтѕєјёеЋeI@GSIG5GH8ECFAIFIE?OJF@@ыC@?BABC<<@I\VMOt„qQCC;AJTљјјТїѕэюыюћ§жСФ‹VOE[VSLIBBHLG>GCE>:?G9?F>O‚БДƒI9-(B3?GNQ[[WNOV`bUMF:4C`OBEau‰„z˜‡C49:98;-7::CAPVWћр‚j`…iANQJIOZYZVQT@ENUQIMHTa`ZZTO>5:AYeo‚„›˜c#@55@:@CHAGMOJMPЕ{e``BO`WOJHFFGL>W^WMMUNNMPYddNFPU;PЋœmtŠžŽ}U?"&7;88?AJEBMJHNOooUUC7CB>EMGF@EGdTTWZVSGJSTWSQPEYTNˆпшЌ…‚p‚gMMBC3>JJC<52?B>C@AAEB@0@BLhS7*-7GPUYPOMMOE@GLNS[`\TQLICOQAZ‹ˆˆ‡tt‹~F!*8.22;BBHE>5>CB;3@JNPNJGAGFNGH?BGBBF;GEHHLS\WQFFQm’|toopxpjQ:%$1.223.AMMJI<:5AICBGFG?C;NLGHJJCBEHPTMGHJHMV\YMVaq‰”{{ncL~H(%))€д-5885:GILLHHF@GIJCCIhtLPLQJQOPB7LJNHPQTQZWJ9@aЎеЧœvjWek[[8&AE;5&2;CBBCBFGCHNNGJE@C?MLMIIMQTVI<48@AIINSUQYcB9IŽ–’‰™‘k\dZ8*%F?804>>BBI@9:@@GGJEMNMQ^ULJg”ОЄƒ‹ˆ‚‘{woPM.<9>A:;<AGOQOMJLNU?Aw‹’Ћ”~ƒ}r‹}|nB!)01@GOJCBGLL€ћTMLHMMP5<`joSNOWYULOLLPTUTUUMUVG„Џž’–ˆ|zp`2%7E94-(,FHG?CGEHOHNPUNANU\……otI)HI@:70?EJNNI:[ŸЇ…zƒ{wLIJCFLHFOV•ž”ЇВЄ‹ŠДЏАŸˆg{ЄЇg2 &&*EQJFFHEAEE7:2FB;5a™”ƒ}„‹}\aU[YWTLGPii…™ЖЋ‡ecŒЈНЦЋn]rŠ‘I:G!3:>CHFCC>7?H;(5@9<>OМŠvnrŒƒcSўя§ћў§ўћ§ћ§§ў§ћ§§ћњњћь§ћ§ћ§§њњћћ§ћўў§ћў§§њњўћ§§ѕў§ўћў§ўўћ§ўўќ§ў§ўў§§ўћћњ§ўўћ§ћћђњћўћ§ћ§ћ§ўў§ўћћњјћ§ћ§ћ§§ўў§ќћ§§ўўќћ§ћўўњ§ў§ў§ўў§ћўћ§§ўўў§ўўщћ§ћ§ћ§§ў§§ћ§ў§ћў§ў§ў§§ћћёњћ§ћ§§ўў§§ў§ћћ§§§ў§ўўў§ўўћћ§§ў§§јћ§§ўћ§ћўў§ўћ§§ћћ§ћћњњћ§ћўў§ўўў§ўў§ўћ§§№ћў§ў§ћћ§ћўћ§ћћњћћќў§ў§§їњ§ћ§ћ§ћ§ћћњћћ§ћ§ћћ§єћ§§ћ§§ћњћњћ§§ћў§ўћ§§ўћўўќћ§ћ§§єћ§§ў§ўћ§ћњњ§§ўњ§ў§ў§ўўыћ§ћ§ћў§ў§ўћ§ћ§ћ§§ўћў§§ўћўўјћ§§ћћњњћћўњћћ§ћюњўћ§ћћ§§ћ§ћў§§ћ§§ўў§јћ§ћў§ў§ўў§§њћћј§ў§ў§ўћ§§ўїћў§ћњћћў§§№ћ§§ўћ§ћњњ§ћў§§ћўў§іћ§ћ§ћ§ћ§ћўўіћўћ§ћ§ў§§ћћєўћ§ўў§ўћ§ўўћћ§ўў§ћћ§ў§ў§їћ§ћў§ў§ў§§їњћћ§ћ§ћ§ћћї§ћћ§§ћ§ћњњћњ§љњ§§њћ§ў§ћ§§јћ§ћ§ћ§§ўўќћ§њ§§ўљ§ћ§ћ§§ўў№§ўў§§ў§ўћ§ћ§ћ§ћ§§цћњљњњћњљў§§ўў§ћ§ћ§ћ§ћ§ћћ§ћћ§§ћ§§юћ§ћўў§ћ§§ћ§§ћ§ћњњћћўљњњљћўњћћў§ўўў§ўўњ§ў§§ћ§§ёў§ў§ћ§§ћ§ћњћў§ўўѕћ§ћ§ћћњљњћњњёјљћљћњћљјѕњўўСўўћ§ћћ§ўўј§ўћў§ў§ўўєћ§ћўћћљњћ§ў§§ўћ§§ћў§ћћњњљњћњўўїжУЃZў§ў§ўўў§ўўќ§ў§ўўў§ўў§§ћ§ћћњљћњњљњ§ўў§ѕћ§ћњљњћ§њћўўљњЗwOOJўў§§ћ§ћћўњ§§юћ§ћ§ћ§ћ§§њћњљњњћњћћ§ћњўћњњўєђЦ‚Mg~a;ўў§ћћі§ћ§§ў§§ћћ§§ѓћ§њњћћ§ўћ§§њљљњћў§ћћр§њњўўёЯ’j`oU`^`Cћњћћњћћ§§ћў§ў§ў§§ѕћњћћњњћњљ§ћћіњћћ§њњћћњ§§чњћ§њћ§цœ`GFmŠkjiS0ўћў§§ћ§§§њ§ћћѕ§ћњћ§ћ§ћћњћћњћіњљњњћњњљњўўктрЩƒqUVQVYOA+58§§ў§§ћ§ћ§§ўў§ћљњљњњћњћ§§ћєњ§ћ§ћ§ћњћ§ћњњшљњљњћњюм—SV[SghZSUk@<3?ўўў§ўў§ћ§§ћ§§§ћ§ћћю§ў§§ћ§њњћ§§ўћљљјљўўьљжЖqAF^ZSFB7<;804:7@NNHCJLњћ§ћ§ћ§§ќћ§њћћў§ћћРњљјїєющМ™…VP\ESa]YE??ALSUVNCHFFA;B@INIOLLQўў§§ў§§њў§§ћћњњвљњњўјумуАbHVZUMHLHGNQNLOQLOHHJNOHAGIEFMGVZUWўўў§ўў§љњљјјљњўўЮрИ{iOP]ec[STPLNOOILVUUVOSOMISQNGIINP`\QOњњћћњћћў§ћћљЭјѕђѕјњўљЖ]M<:UT`[]ZVTQSUTOCLUUWYQOOHCGEBGINPT\a]^ћњњњћњћњћњњљљјјѕјїўўбљй}IT]OJOZQOLMGQTVVMLQNNQNMGHFBCA@ECH[c^bhjњћ§ћћўњљљќњљјїїЫѕїўўР‰TEN[\VPTa^BJGCEHHMNHLMG@ITS^bdhea[VOћћљјмїєѓєїћўѓзЎdJ>HQLAJGFE9<@ECJHFFJPHFNLLэJLJOQPSSUbno\TQUUћњњтљјѓёєѕєєѕылОЅmFZM;JUSCEGC@9:BNNMIшJNMJLJMWjh`a–М›eYIIPYWћњњРљјїьэяўўмШЩŠ\TE^[QMJHCGGHG@>GQOFHMNLLNOMIFBH?;MxЊЖЊˆUB@IMNMEјјљїї€шѕєїўўхŒwbNHTY]^UJHIQTWVNJBGNFCEBEIGGLOTGI[Lc›лцЏcB;@B@@584>CmT7.9:GU\SVQMUTJGGNTW^ea][ZTN[dW…УбедММжКo?HGONIOFLIHEGE>?F>9B@FHC@JNIU?LMMOTOJIINNSSOPNOQVWZ]qn„ОжЦРЕЎžФСvBGCIGJMPNFEHMNMGGCIIOC<>N„mVPSMQQVQJFGUSTOZWYY\QEGmСѕюлЛЌЄЌДž‡U>AALPONWW^rbUS‚ЩэшШЪЪЭбЦФБviHMNTTQNQSNJJGHGELMPPQQ<AGONMMUUOIVaWBUЇщкЕАLGP]VMJOOSWG\juЊЩЧцўямеШУФРШУИuE>:GFLJIIFC<:BIPLHGCFTr]cЁЊЦдМЗБQMNUUMJJ@]aPmЅншЫСйшпЭСЖСШЋЏ‹QPBMGEC;JOIHHJB@GG€JOOSN?nТпЭЧШРЛВMMLLMSJL[dЋСЮмылФШёчюмТЅРэцžT93GA><<7OVSGGNHEFAB@BGG:>xШйЭШЪЩЮЊЇYZ`e\PU^ˆЂШмусЩЇЁЪнщядЎЂЛкН]PZ3>7CHJHBILCBF@ABHGA@\ўўє§ўћў§ў§ў§ў§ўўњ§ў§ўў§§ўћћ§љ§ўўэцС|TG`jba\O`Vd[Ziўў§§ў§§љў§ў§ў§ўўў§ўўњ§ў§ў§ўў§љў§ћљњћўўыуЊqmvUgcjdbdWhkj[eqxўўѓ§ў§ў§ў§ўћўћў§§ўќ§ў§ўўі§ўћ§ћўњњћўўщРЁuEm^eUakoda^\kxxknmoўў§§ў§§ќў§ў§§ьўћў§ў§ўў§ћ§њ§ћ§ћ§ћњўўхїТЂWMSiqjccai`kmqj^aitnjo§ўўј§ў§ў§ў§ўўћ§ў§ў§§йћўћўћўњћћўўњбhd[Wak`]b[bi\kjenr`hUVaaўўњ§ћў§ў§§ўћ§ўў§ўў§ўћўўѓуТ~^a`mp~|hh[\^icenqccVWYWbh§ўўў§ўўњ§ў§ў§ўўн§ў§§ћўћ§њ§њўњѕћШ˜cWNTcdWBWmQdY]bdHHWјZ``VWag§§ ўЬ§ўћўћўњўўѓяьКpZI[~‰g[VM]}pba[^JNGQSYSboh`^a`ћў§ў§ў§ўўј§ў§ўћ§§ўўвћ§ћ§љњјњѓЮЈ‘j`rZhz~oYTJ`^gkm^^TbYUSOWYhjegcjћўўљ§ў§ўћў§§ћћўћ§ўўлЭˆU^j]ojkuki\[\`^]`edV^h[TNOWcge\eikў ў§§ўћћћўћўћўўжьчђИr[otobaY^bgecdjdga^`adgW]]aa[]gcqmp§ў ўј§ўњћћў§ўўыыЦŽ}cehx{nmcbieg`b^ikkтrcbWjge[bY`Ydozio§ўћ§§ў§ў§ў§§ћћћљћњ§ўўжФi]IJadkvnktjdhhneeaopmghg\]WWS^^]^ejpzt§§ўћ§§јћ§§ћњ§ћњњўех‡WeweZjdd``Z\btojcidkob]\`aYZOQQYZ^pqvq{}§§Сћ§ћ§њ§ћ§љњјњљћўўЯ˜cY`xoecopzMU[WVa`d[hgojhbcb]SQPZYUWZhqphnp§ў§§їў§ћњ§љ§јљљЯњўўн~q]YE]]VUgchC`S\POY`]^U][][c`^STYW[henkthjgj§§їћњћљњјњѕўў€ічЛza[^iYWTWQZVOGMV]\\becUYZ\]Y[YWY`Z^`SZ^he^c`iћўћўњћїљѕњїћљєцШЗ~VkgSdicZTYUPOVT]]Z\[][\QPWYTNV]atpdkЄƒ`V\SUbp§ћћўњћјєёїўўцжмžtcSwvi`^TZ^b[[SY[ab\Q]WY]e[YSNNSH@MpœД–tPJETT`]cљћљњјјїјњўўѓŠwb[hoqnkd^chngjdPVVZUNEQP\VTT][SM]WaУЧ–bJ9?NQ\c\ZљћїњјљўўШђИ‡V]udaxvtmkknbohopp^d`k]VNGBFF?MJI[YVSQIIMEIJVpooga`[c``[]Wa^WYWP[]dhieuk^am‘Ж—Žˆ‚‘ƒcNAGHMIPGMEZigda[VLWZ[MPZe`kUgabgpbbZ\aige`dgiagnmkttˆžЏ•”ˆ}e‘b:LJSHBIHQU[\hn`g\^VkdbVS`›”maae`kgh[[]ipmoknipnbQWzТђеЕƒr}pmL?bY]GHBOSWV^c`YYdjcei`VT]]`daecrno^Y]ON\dhgituqtYMhЈБАЃЕЁz}nII@(SWWNGP[[UVWTUOY[hjvhYY\erha]UY`W^U\Wgbjiiaghcoqb‘ЕФБ™•ЁЖЖŒPFVSGSNTHLVY[OMZWQVaakkbOS:Ejnkja^][Z[WV]hhdbkh|i`[{ЋжЦЂЁ™Є•‡b]SLNNYLOQVZZYaYWQ]akebeOEEWnaadnqkob`[]gjheacouVZ„˜ЄСВ’‘Ё–…^458FGGQ[a^i]^ee€єhc\gcgghUNtvhkvzpek\hotppomdrpV›ФЕЅДЏЅ˜”Œ‘ŠqJJMPPZbZ]he^^dix`GS‡УА~|a\bpna]egedPeopБŸЧыйСЊ’”’—™–ЁmFUhdZ]aa[\UOL\ZYOEwБЌЁ—–Ÿ˜putqptn`WaxƒЕСЭЂƒxЂЛЯкЕwjˆЋЇWG]18HBJILZ]a]ZV\PYNVPNB\Q`ЏеЂ‹‘Јn]Пўw<§wџ;ќwџџ8wџ8ўwџџ5wџ3w џ2ў€џ џ1ўwџ џ-w џ+wџ)wџ'wџ$wџ#ў€џџ wџwџў€џџw!џў€џ#џw%џўwџ'џў€џ(џw*џў€џ+џўwџ,џў€џ-џў€џ.џ ўwџ/џ w2џw6џўwџ7џўwџ8џw:џw§џўљћўњћ§§ўўњћћўћ§ўўћ§ўњјјйєїљљ§љ§ћ§§ћћљљ§љјјдЩБЪчЫКНЂЈЇ{žА~§§ўўћўўш§ћљљћњњ§§ћўў§§њњћљљћјїї§§сїзлТИ’”x\v…‚JUMdmnqQS^NATV>§њљўўћўё§љљћљ§§ўњћѕјћљњњ§кћљћяэЯКŸ^aWA;;I^P0:NNOFL\b[B>5TOMP:јїљљ§іљ§њ§§љљјћљљЭћ§ћ§§љ§ѓВ}UN]CPQJp[?;GOPOLMNMLPW^VSI@FFOLE8ћјљћљљѕјј€Пѓїїјјљјћћ§ћ§ёШЇbgcYemZ\m[EN\ZQWTZWTEELMHNSVWLMG?@>FNB*љњ§ўњ§њћћљљјјљ§ћћ§рЏ‘tbO89EZgZP4I\PCLOVY\b\ZULOVUONJOOUPI>>CHHE4§њ§њљћљѕњњћљ§§ьЪЈ…VMU^rnSCHVYTNJB1@A@@LUa\YUQVSSPSSQTWSWVF:4:?4.љћњљљћњў§§œяЩ™wc{t`noedgZFGJSZOO@@EBEAIOYZYZVVUSPTYQMPQWSEB;B8јєјїѕљ§ћь‰kbYV[iaVQZ[\W`WFOWYc›kOHH9?7OE07јњћ§§чСЃJ4PP9F]^TTSWPW][GILOHFFIBG;;BHIHCLYVIFJNPP`drLEIS[UOH?9ћћыз–W`z|PEBIQTTVVOSUUYUUQNPCA@;B@C@3343?CIQTUT[YL57Wg1-Z[QGBBYJЫ~OL?H^eB&2BGQQJY`[ZWGLQNIJIB978??5HN;9;HCIJOJNOME2-Bk:05>$!(&4io]QhbeexJLQFBHOQV]^SJ;EB?B@@AHFFAFPYWOHIV[LIMHH@B:1;@77254&171+FO;BIHMPOMGOMLNJOPZ`xNAEE9@GIMNOFELJJPMALSTSNJIHFIA<53.1,."$%4ZYTMVOOаSIINMPLIJGJVYTMMHNFLBELECBHBGHLOOTVPOG@:27+)9A344€&"##9FLJPMLHPTNVQNHHMHPMOPPNONISHICELJEIFFNLQMLHNPIE:;879BI4"#MGJFGAGMS\[VYSGMUQSTUUVZULMNMP92P@I>-.2S|YHCINF0>CCGIG-!"#&! EEMJF>CGCGSTSMQSZWQVOMFN[>104**:>0+*<.AFMHCEQPH0<#! EBPMHJEJ>BJLMTOLMLEC>>@QO+54%%#)(0" #9A8J>%0QS]tj2%%#()&C?GMGJFQPIGA:B33@GIGINQ`L8431*,3<:<80(.J>I98]x}ސˆv!#$!*{cOGIJGC?E<:MWTeQTOUWYQO;..&&%2531.)3-GIdZI‹wwx{–}A"- %eWG@?84?@ES][[JIFNOPPVSFA+-%+&14..508;P@FH>J~Ё‡or{m1  J9*;7;?EFEWGQQLFHIB>PO5>:*.HS]NC?C:;,84C@7CSVuŽŠ–};"F:?GHE><8@IOJGCFJB4-02-3?I:@[NA23:A70:   ICBBHEBI99>GF:@CCaQGaVFFLYTTU^PI<1<72(:TGNME@81LUUQPJFBEBWZUUVQNJLIFCIJILB@;47?O@)7?E1;bi9)01(  HLOH<@`iSZQONW`OZ[PTUWOPPHId}\?1*%1780&%$*-5:2O;0;  !!C:JOTW]bVTVUMO\WPUMLQOAEA;GSZZ{xB0:30+."!!237.M.]|B  ,2+SOH:FNLQPNSWPFIMOTPGFMISLMPNOUHB"0??4$*!$+2HJG!+5F5* #1 YZ\SVTYQUSTVY\WWaVOFA8;MGJQSQ@A;41*270179$ Egg\7-5.(" Z\[PZ[Y`ZHHOLmŒjuM-49;?CEEBHMI;75*,""13,*Pj\I7%*G# $okgcb[QPQTOH31FSBBZIIJC?79:>IJJCC:4.A::1$25:81!)w™…voi&BJ-&3-LQZdpFGHHJGGB@83:?CCBA>GH::579CB8.L9;LmƒŒŠƒ`0B:+!3>,SQSUP9CHIFBCA,9002013C?BF>78?AE>CEWahZdx˜ihaHG;4*#$()($"C+MQOUVMEBJOTYME;8:?G<4@CIUQ97BHH\P;@x˜‡xw‚‹c;#- $&"#!*;Y+HGHMQJ;FE>>F@GFGIFFB>;<3FLC>?F;LE7+*2!:A<(*3OeECJNE?9<;C5*)($782.$#%;BCFnƒo\biaYpqrptuj5$%.$%%14;.5PdrEEFI@GAB@@97-,1*+,-;:9GWMO„žЁŽmQSIHCZjtu}ƒi97 ($MSbNLGF8@?;-.14@B:("3:5&+@hŽЁ›xv{bLPPMMIhhgv~]&%:-20(( O‚~YUTJ?;?A.+&)CIL:074)"Oz~Ё˜~kppaSWnvaWCg˜IBC &08&-$*3.*&,GPWjTVTH48>B:3107;B,"B?LmЅŒ‹~pPe\U[]`gh`[gv8;g7!+40..*% FZLaUJMOLCECG3!-3&!,cj|Ž‚‡ƒ~wojhYddv{|tqg}ЁЅFr~I,"12-%,,0.!2Vuu`dQUVG89A?..0(!$-Unpquokz…~nZ[^``brmenj^jКЇO;  -",-Ui]doPSNA3@$4:JwŒn\q„‡~|wbL`i]V[gg€hckˆМ|(%+%.0A*7TmgZNI<4BHNb…Šxr{vuƒxtkijnrnWYbYOen•Јe*!-%70$8-YixkkiIF:89;EHk—{Z\]b^aevtuzmjZcpontL7OP]]cm›Ѕb??4901,IA+&,JS]‰xvtCFGGE22Givhppi`korzxxojbdvzme[bpneaopr…d-$97492$&UkijdbH?A??CNakbWi‹t]MNgropjbb^d`…‰…v]h]UWYWSOYb^WV[k{”—Y2)#%.,*.:1+FGad^iv|d[\IEQ[Zg~„hodVmormkib\b`Z[ccZ[]jroti %#FBB;.)!>atYPWb„ˆzdid`hzwxbbhg]]aipqeaZTMPQZbc`SQJT8 *0((0A>B?0!")Z‰‰{‰zqij|{xjachaVY\]]ZdtqaZ^aWhTapicVVgeF ).+47;@;>7.!EPE[nptjd^M|”~O$OLUGQadV?E>OZTWIњњћћў§ћћќ§ћ§ћћўњћћўдѓБaZcLWOIn^@8GUWUMLQLNQ[`[JHNLSTZQEњњћњћћ§њњљћњ§ћњўўдѓЭЉjnk\dr^ax`FQ]`WNY]a[MFJOMMPZWPIILGEJSQGў§§ћћ§њњћћ§§ћўўбчБnQ<>IbkUP;IbPPJU[\`\[aVIOY]TOOMNJPVNEBCFLML4A§§ўў—юФЃ‹L7PQABaeYUZZUZgZTPQLILJMNB>:AECAENSWNIIOSV^nzQMSY^]UNLIўўёзЁ^d{WEFOTPSTPSV\[WYUYTJHBACAEB:229B?>FT[VV€‹N2>Yq9+WaTM<9:;HHA89CHHLJOJMJG?0Hn>&AP,)45;qn\WhbgeEJJLFJJMV]`YFB>EBBEBBEB>EHP^^VMLSZN??ECFEBCFGC?E?744€Є5;LS7><;315A]^MSPOSVMHJLQSMPONQV^YMIIELFGGEFEABC?BHHNSSMHHF?>VL;CdmˆI(+,(-))--8EIGH@FHJEA><9>@EGEEINYjJ5;4,%+:899€О.#3IIQ;>rЃЏЗЛЪмдœ@,40,!(,,44iEB?@BA>3>@NYVmYY[UV[ZME()*0+12440.,,8ENxe\ЗхФУФЧпУd;2:-$%>j[FA;::9<@Y]a^ZTMMVTV]WJA5-0,,0753477@YMM]N`ЁмЭЖРЧб—H2$*# H?,79<@?@L^MPQONIIFBSOH?39)(IVWN>BB€х>B?HHNI]jЊЫЮмЖY>3.%$NGEILEC:;BQTLHHB?<7:;;38CC@E\OF?;?A>99CJTaw8>TxЉЗК}PcoP$-#"(1JEAGGJNHEBMQIGFGB]UMaWJIP\UZ^iOI88;@9;A[S[aWIThžмУnB:!$$&"$(-PNGE?BGQOQYPE@@OY\LP\WTJHGHPZUUN85097:ECOWZSF4:{Е‰aJ434*,%%#TSJ>8+QOTT€нF:??I`bVZ]ZSNJJGHQPNQBA@<:LVYYQYQO>MŽЂP4525:81*$"#&OOMM;Aad]QVOOQcPaZUU]]VNMNOhƒY>>31><:CLJBEBLP[Uxh-&E@()++().7;2GIIS\]dg^Y[SPT\^]SSQPPMFHMQ]dg~|E;FI@FAA<8AGMO\{]47iŠE,+7++>?@ATSPIJMTQQVZ]VPOPTUQMLMTQTPOQNIPN8FIJEF>??€ˆ,IF^xg:"1??O@?;4>AC>;[bWPUWTWZYYZ\\]^b\TA@HLFJLLTTPOLHCGEAAFLLJ5n”Ѕ‚NB3789?CB<5754,5*bi^[a`a`WOMNJgŠoxF3@?CAEIIMNVSPMCCBACCHI@&uВЉkI833€—,?O;848<7:;3jphecY[TPQVM87NWGAVNPQOAB>?LGC4O™ТЃQA<#0(%(+,221:;9>&bbd[VTSCIQWVVPMLJMNOTOGCBC?BGEAEB?>A;?AN^…ЛЧЦm#9?;20&%&-2,9@;4MWY]UUOJFBGNSVUNHE9EIPOIAA@HBCAEEAMNTMCFЪОЗЖ™BLS><941-)*,-+5>?-5QU^bnGGCIMOGIH@?@CGOOILOPJFGFJJIMAGb\g…ЏШЫУНŽ+598>AB;11Ab<@zEHQSIIGIJGMTOQTVSOQLHIPOUUSU[NS~ДТЧФАžЋФбЯЛJB3*-4::CAB9CGLLMQIGIJIGGBIH>CeqkœУОЌЉЄЊЁНЮдДHLSLA97:<8?CMI?9-8SˆЌEHLMIE@?E@EBGFHF?EEIJH;8SYV[”УМЈЏЄЂЉОЕЗКМЦ™&$B0@42238;:CIH2I…ЊЋEINGCBGCFFIEC?8?EJNPNQVdggАбхрСЄŸžЄЈНМЛС֘O?31,089415857>2;ŽЉЉNOOGE@E@?AGGьJIHMOTT@FP„СарФШЫБЁЈЈоŸ”ЕЖЗЖЛz43B33.:>?:8;2*,)4rРаЭ^`SCFF<€Й?EHL]\QLQL?FuЉДйзУФСНДЈВДЖВЊ›ВдпЕ[GP-$7ABGBJA>7:5A!7„ЅœЃЉQWVOIIQLGLMGA$>F[”ЕФеЭбЫЩФНЕАЎЅВМСМЛЖЕУьн] 0‹^:;BG?>?CFH7GˆИНЗКQWUMFFJLLCMP>C]ŽЗЛОСЛРФЫЯРЈББЌЈБЗЗИЕАБВцОYJ>1%#)8>:0::?CAGV™МЏБЕPTTNNIY[T4HTWwЕФШВЈМРТФФНДЅЌБАЋЌЎЏЎЌЋЖЭя4>E93..-247Hg™КЕАЏЏБЏБКОСОКВЎЎБДАЎЎ€ыАДБДДЕЖР…<,:HE:;5983JEA,1IŒЉЌБЕЊ‹CIOJaq–ОМЪИДЎАББЕОУРРЗАЉЏБЗВЋЅЄЊЌЉЋАЕУЩ’B45?B@@BFJ@NdT[zn„ЋСЊЉКБ@?:MŸТБАЅЅЄЃЂЇАЕКНМЋЖЎЄЃЅАЗЕЏЉЂœЄЊБЕРРž?&#)4-2??HGMUa\V;:cœЧƘ™ЉUMOiœИ˜ЂЅЃŸЂЅЊАЗМОРРЋœžŸЈЌЏЎЉЇЋБЖЗЗЦС‡CIOQM8A‰НМДœЖЈЃКОЉЏЋЎЏЏэЋЅЉЏАЌ™œА–ƒ›œ™™œЃЌЌдЊААЛЩЕS(98;?CNPOJ5C‰›ЂЌЄžЁžНЈЋЋЉЋЎЈЇЅЉЉШАВДЎЉЅЃžЄЈЈЉЇЇЉЏВЏЋДДАБЃe5>95+-9AHBHj”Ѕ›ЉЖЗЎАЇЃЄЋЋВКСМКЌЉЊИМЖАВБЊЃЁœЁЇЇЄЄЈЃВВМЈW(E83,554+JIJEAA:@?BCEHF0OЁŒЈЕДБЏАЅ•ФпЪœŽ‘ЊЎЎЌЊЇЇж•ЕЪДАЊЇЈЏЕИЗИЖЊЇŠŽŒm,9,+ 31>BIECH:YžСОЈЈМЃЄЅЉ„ЊФЖЇЉЈЎВВАЉЄЁ˜’ЋЉЉŸžЃЈАЗКЛЖЏЉЗĘj50#($%&?:;B@HQOB;eВЏЌЉЅЅЃЇЄў§ўў§ўў§§ў§§їўћўћ§ћўћў ў№ьлацўмбЮАККŒЋЛўў§ ў§§њ§ўўфчєжЩŸЉrЎbva}……hk{dWheP§ўў§§ў§§ќў§ў§§ўў§§ўнсеИxwqUSLZwkBTbgh[ZtƒqPUNe``cOћў§ў§§њўћў§ў§§ўў§§§ў§ўўЫЦœzj{`qo^‰uTLUhqm`ahc]eqvmm`ZaZehbJ§ўћ§§ў§ўћў§§њў§§ћўўапД~zuxŠ}|ˆoYjq~vpvv}iaY^^`bnpqb]VSU\]bWPўў§ў§ў§§њў§ў§§ўўЮѓСЎ”~aOP\v~n^Geuma`mnwx~|xigkwqecbhc\a`\UYW]YS§ў§ўўћ§ўћћўўЦћмТЃpdmv”‚n^dnrwpZVWWZ^]]{|ƒrprtitnojhjmjqodU[V[C<§§ўўћ§ћўўЦрД}•’‚‡…tgcgnnjnQT[Z[[^kurptqwqgkhoieihocYUTQOEAћўњ§љўўЧЂ{qpp‚}}n{txx|rnjqvxВ…Y^V`QYbhnktmmp^``c\hedSMSMQWY\CB§ўў€1§ЭНœ^CaeST|vwhhgpgtoghg[\a\c^]JNYVYQY]hb]Q^b]`rvˆZT`adb^WSWўў§ђЗvw‘œoU\gcbhoriojpooqdgaZVUWUWVMQQJHOPUagiec^]CIcu@7bmaYOSkZп’dgShv„^@?O^jejvvoqkcehb][USPNNLPGV]VLTZ[]UZ^\YUHE1TxCCPU>1.;8Iƒ…to‚~{‚•c^[U^Zehpntd^PZQ[PTMUTTUMWahod`YgnYUJJSNOSQISMPHIC>17CHtqghciinb\TWdbaaО\Vdgh][SQWYYVUYNUNVUNPYchb\[SNPJHGSMUVQFBEB:#)CbV^^cchaba[cbW[Y^VV€1a`ZVZW\YWLTVTOMJQOOYUM`dgZ[TWUVVY[M;9+2;4:3V]eaZ]^[[e``]]Vg^`]\a]ad``TQPZC?VIMEHA9cmYYmh\YYa`c]cG<@7550-10QZYVUPJSOTc^^cZ^Y]WUYWVWeF95@:3%$JP@33FOI[^^bWU`dTBOG;?1).?;434U]TUQNUNIOFTYUYQQSA8FLUnh7JCB;C95B@@1.%>@TQIcU?Meku”|F7.9??B@>UPY]QVTUVTJMIGCSWW[`chi~`ALG8;B?PNJLB>N^ZcJGr•‘™ЅЎЇ~<$A>9)25@>:~VNSTOL9GEWaku‡dkkqjhkjM85E<<@LIJC?GHNda‰uaЁИŽ–‹Ћ‘T:5C:.+.+8TzqZLCECLNVkwtuohgdgjikj\QNGC7AGCFPHNLSi`Yi\b‹А‡‰˜Ї{E4!1*+#$7cV;FFPSTVZo`hneb`c^UbkYQMP9CTov\PYVSJHO]W\J^ixŠЂŸЊŽO;9502:.4-7`ZWhb^YUQQeg`[[d\]UJLFTUSYSVoeWTLN[ZVNTVVa}9C;902,(3#]hh€УOUt}quhier~cqzhknrpnacgƒ›mUN;>SHGJJNCOHOUZTmZ-)G@7&>71"(8-7:`jinnruxrkjniojvrnhghd]\Yaeq}|•—QHSMZJNG@E@EOUVgN4AxŒT&;4-55BIGjkbc]dhnhjqpkdbkeihd^ghghkdhegb]:IOWTJGE@A.JOad^;3A;@2&vzu{oqqzug^e`}ЊŠ`FYQL`[Ydaa^]ZPONHIFHJPU%%a{uYN9?:41HWCA<-7CH@3…ƒ{uvthodmghII^jZVh`^i^`O^P\agd]PQJHAQLOB8SqtIG9-8<*;33(&,<:AE&w|wohpaa\eeqmc`a``hegie^YVNWPONOA1.((-7.:C@.Eqphgdee]W]ceojdYOOPceb\\YYTUNONNFLWTJA<…Ї‘‚~x@TZLCE:>&$%,,4;AG85dpqŽ]U^`kccUPTOUV]\Y]ZcbYSQ[^[UOFQeNNa„œ›˜|.BVOF5<;.@B<3)C[]:ImnnthJQ][ckcUTGPVWOPOUO^bZWTSYZVZ]qw{vx‘ЖЌ|}|e^SMG:<5?@EC5!8\M;^nmina^[^itpdUUWTOZUPT`^ieePWS^{oSUˆЃ•‹Ѓ”ЁŠxP?:I??>:?JGH@8?Jc49Q`bdg^WQ\`cdgaa]\\ZVWQOWW]`\[]OVm„–—•~bq‘ž•‡A>82F9ACIHIOqQ-3><7Mb[^bhVTHVW[TVQVVUZJTUPSPONWEN`eUrœxmiciƒ–ЉŽBLm\WE<2A@NL\OL;25JiS[`bYWLLQQJHH>HHPNQLPI;FQ^Z]˜ˆnxmkq„‡‹‰‹+-U?.B@488kˆŠ‚bgi`QMSSCMEI5>Hp‹ŒŠ’‚‹–Ѕ™Šmpx{rƒ‡}}~u}ЭЏcPC42(.93-GBA>IEIMo‹z…^ggcUVVcV4Smxtt]dcOUZ`NEV`k{•™”‹„‡–›‹|}…~jkmonq|–ЊС|2?2??C:&+AQME>3HEh‚‹|[QIFGIЊ‰…x{qpkq|‡‹•’}zoomt|~rmb]ip{‡‹~?0,>>II@JT\j^S83Ce‘„bewWEBJqŒexvpzzwu~‰•Ё—•uacgmu~|tvv}ƒz{}Œ’uC]T?95JBOGLMTTU.MVЖСЈjajOh|„’Ѓ‡}~vr~Ё„ˆ•Цžw{edahdimqqpu{{…Šm-2;ILALGIGHSa\P3BxŒ”‹dbnŒ‘”x|xwxvz}|{rxhPqihcbmtw{rqw…•|G,>MBGEPHSOOV[QS+;h`ezp`bjŽnrxrnpumjquzuw{}qpnnptzrgk‚ƒxuz~|‚ƒU4F58-0@OLVWZVd\E3GƒЇ˜ˆwjrjxwrzvz{xtvnqm˜—‡zohejne`dt{‚zt{|i{zSSY44ё:AGUPYVYY[Veww€ƒ–Є‡vhiˆ‚~{wzrЁЂ˜…puuiigdbZgpkmkm|‹ЅЋk0*H;;9?3BCPJJN[QJ@Vbzqip‡‡otv^mnvq—›}ƒqt‚…ˆ{~wwoqqovvq{w‚ƒ„‡x;-M814.407ZWSOOL:?F9:5QSPSOL?B}›АЁŠ‘•Œ’~tuŠ‹Ž|}vqppqnqm}Š‚vnpogip{tkn{z`#,,4@G?FJWOTPSE+4auZh}ƒˆ{vnbЎ”eQWpprqohbT~Ž‚{rku‡—…}}~xoVV]O@$+&3AGMLQML2Ux‰roiomjoSVœ~oo}‚{tkinYYomdjgpnv}Žxpxz‚dS8:%))-)OALIW[^WF3SuŠ~vvptmh(ўwџџwўџ&ўwџџ!ўwџџўwџ%џw'џўwџ+џ wљwџџwwџ,џўwџ5џўwџ6џw:џw }џбrn]kYa]ƒЉЈm`T`ЋдКЛЭТшј§ћћ§ћ§ћљћјљјїїѕјњћ§ўўњћўўњћњ§њћўўћнўћї?SbBE7;Q^PWNHI>`^IJE:FNq}w—Ярљћ§§ћћљњћњњїљњњљњћ§§ўўЬњљјѕљњњїCc[SM>BHHOQJQTTM<55?SQcv]:LdheuuzЃБЂЋОкўћљћ§§љўљ§јћљїїљЪћѕћ1>H:;B@EY@@<4erj’ЇЫѕјћї-94*(7:AFGES{VFJjeaet…$0.2:;:<.3:BAFMQ??BEIFIMNIMUJBFMA>HMNNVTOSQP[VTOTESSBPUdVUjn;95:>E;;54@:A@;ACjOCECCB;IHA;>BEBBPGIJILFINFJNPPNGGBFLMMNSTS8HM[j5(.73;<@>;>9>@AFA4HMJ?GHH8GNI@9?>95;HNZ[SMOLAOONMLPiQB5<:,+YeS40B58>8B8>A:HCA<>>?4CC>C?;:;:5(9BYUa][VTSWW?CE?7  >V9!989HE<@15>:CJHJLHC545?GA984545BF;FIFNNLQ172;@;,"$! JIC,ESe> :@FBA:?CE@01@7<9<<@gU>C<@9?<<>9<:3AGFE:8.2@?-.32* *0<9FNIS20",CIJ77::81?^! !057:  ,!!).#(M>81-A>8**2*$ * !*-!-~5H.  # $ G`ZUZP3!  % &    ! л#CO[ˆ‡j.%..#"#!.!  я %9M? "Щ  $1‚‚OB;,#+"+5   !AЏ  $!I`HTT58-1&"+9?4^8 #% ж  #!>O;&  ! :Ta9О  !"!)#*!$   !Lkia?!€E1&     ":4 !&-&- 4-OOW>#( . "#(!%.! (*3(Q`iaCA[IB5-#%  %3.!0.++ "&"Eh\S-3ImqY70(&!!-0  %<(#* ", &SSYQ! IbzeVcjgA5:4&2&),&,( @$7[J<&+-"44+*" &mjVCOV5:I`gn|…ndhW@?E0E1*%&"! 0G#Ze`UO7$+-0$)0QiVSUWCni`]cjnodamcVq}dUdv^0NUbeY]cekaZiWP^!#)GO(!&#& +, *?hiutJ4""GPWˆg]^`JgˆmBczŠp[IATHV`eZHQC*LTOP]kbenn€z‡”|I4 #!" -!@qhkpdkzO+^j{bc^EC4&.P^YSFQSb``bYx—ЅЫНžb#%:8&# "!Ht‡ƒpmcmO^hYTZaZGF2IYdTNEVMpe^jk]‹ŸИТ—‡aC !# # $1SjeZVBOHIJOY\TQZHI#UPJIn`qwuvoq‹ЈСЛЂœ‚c&   * $8^}t`VSO{\LUa\T7:8LCB@<&WUJaaejrq‚‹˜—nka5&>2 !%  О2\jod[P[`Z`bPLN^b{mQ@G2BaTIMYzxŠ””–~ˆ‡xT,   € 7emb]TaY^PPbjog]oŽ}LHSNNIYowv{Ž™œ”‰Ѓ”™?# "  ""UkodZgcWTS[V\W?LQ]dPECJQ\ugt~~ŠŒœ˜Œ…}‚~eG"$( (*(" 8djˆgd^VJP:5PSVcbZJSm\-Pnxkke~Љ››‰‰ЃЋ|xE% %IaqFcq‚aLJWWISTcTWezBCocabd‚œ›”‘‘Œ‡{m…|eA"+(#)QQnha`]Fht{h^[aiS,?QQgh\„ЗБ™”–’ВНŽhWduP%+0.$  "3 $Jhh\Q<&2aceTBI9B<$*[U,Am„ŠŽ–ЁœЂДбИ‰MH^rL)$.* €E9"MWEJM<(,-9FZoQ>4.")cZYMk‡ˆŒ–ЂЈЎЧЛЁkUemwS!0  .(^Yc@2[j8-2joB-$Th}qan|‘…|ЃЎА”—ЗТ‚N^‡Ѕ–‰L.!4,,#47!#@P:]E85BFNeY1O<:HTScwx‡ЏЛВеУН‹ŽŒŠt>d”’e4(8J- %TTAP- UW]Y]0$FU077Q^tgQ!;<Am‡eghpЋН™ƒ…‚ТЃjbtrnud33  8C?.h^W^OGJ[W\OI,V\TII&JYLbdjwuvˆЃŽ‘˜’›Л˜|nkeZvaF:?;8!%()A,3a^U@B%G;(75JSZUSLkŒ’–’‰‡–”ˆ|ƒ‰Š‡wkn‘Ђƒ02#!$ $h`JLAPN3#FT(-IUM8.>LOMMHJLhv|•…{}v{|wx…wppqp„•YB<#)!.G+9H9" .iWSH73LT\ki‚‰…’‚m‚|xu…‰‡|xbiqw–C&!*+*"1@vxqQVSUQ5F77HOH8BJOOMSEM`ˆmW`okqzznc‰НЁ›Јx[hnut‚j|m+3))*!?8"]cQT]50BH11MUN#(.B.4>>-B[Tbh]cpwpWtЈœ‘…‚zrkorru}Œg.*,4*Na]TT.%OIIdUPGBMMPPNOWaZb„ttum]‘…|k™œ™‘ƒuhmnw{xz„Є”G &,4&щŠˆk‚n{kДЎ™ue[gЎкРМжШыўўѓћњ§ћњњљљњљћћўўї§ў§ўў§ћ§ўўп§ўћGZjOTJI[kQ\WNPCncPMFAFVz‰ƒžжцўўНћ§њљњљљћ§§ў§њћ§§ў§§ў§§ћ§§ћMjbaVNQMOOMNO\ZQ>A@?PZgueCPihp{‚ЉВЈЋЦс§ўўќћ§§ћћўњћћЮњ§ўCFIOOWZUSTUTUUMPOONNVT[a\J\i>I\\]bmnMHOWuin…Ъєўў§њљћћШњўBGINOVUIF>@PTOIILJHNUOIJJHHGLLPQT]OLQd^V[NBO`Lc~Œ”Шьўўчњў@GIHEFFHLEAQUOTVTMIFHCJJмNEGHJMQSVNIIGEBMST>8E@FgCB?Amzr„™Ќгўўю:BHB;?MQOICC98>C>HHŒLCEAOPIHHIHLGCILFCAGOSOJQTOZb[E>U”~[MSqjehtŽ9AFCGFB>>€0;>><>>Ek‹T>>?;<>>B;5<@?>CCHFCBHLG?BFLLEFOJHEGHLSQONAPhGIJLH@EB@@;BN]r5!488745:87;>A?BCE@BAECF<@?CCA?<8459BQ`bWSQNNLEBLMGaO@3>42*)[bS+,0<.9><<-7?CG@B@BB:.7<@;39:<:77;59<84:IG?GLHLPSP?;@AFBA:1+&"VdF$AF`>2;:?;@>>@?:5:GF@>;EkMFCBECC›ACCAC<;?HHE?%@C1" 0577;HC;;AOLB:9INEJS9?&-+2PNIELG@88Hc"1AHFA1!",3!&,)($TEE@@€ЫG>::;4&!+%##$! !)8<9##;Š,)#$+10.+"!#GVgzo]795#&#"#*%!*4?PNJLHB59.$*53!!:9FŸыыМa#*1*(&#!#&&!&$$#(#%1+!%:FJPQGTB(*"( )#B—шеd#-7)%$"#!(""#"$)21$%5LNLB8*-#! +.8BxДŠSG30(+.,)$"$"#(",,.1(4TtqdgSB1+$"2TLcbiЋЖŠ>$+11€Р+)*!#(*+# ""7Hgh.2374274210 %!$%#$)0<4-LŸЄZJA*152+($)*..,$".+)+Ip0+*01+%*%$-))")*#"%#)(.33>?e|W[\H870+&%&,)$!"&&LSiœ\(3-%($!%,5813102) 2,*)2743JQ7--œ(&($)*0.)+%*&%:dƒЇp0".+#+($0*,)*&%.022338:58<$&02.&%%&)"%*")&48iЊКœq<$# +J580*))Ж0,*#!++1;;330.22+*&0341-.,%(#"HM83tЄЃ‡r[YhH-,;8-8954,,44)(*F*##€2"$!&#"$#$049031,52%#:?AJ‹ЂЌЁ{J{ŸŸ–khOI?05475;4)$.9:70#.:4(%#E:3&&"(18720,0-7822-)!9oЏЉЁƒV@kx™ЛМ™pZM<>57;;:4-",8@>B9*--,0-0*-*,@P@H<#(1453485>3!-TЁЃЉƒmwm‡ЅЛЖЋАЛЎvZUN0&:C952;<<;403;:82(05"3U>4IpdS?E;@GGFA8#4)LЃМЁ–Ђ˜hcjЅЈВЭЭЛЇЄ‚dYcS^NE99354:58<2.80122C];,8pˆŠ‚jF8EF>?A<:)YžЖЉЁЇЂe^ŒЕЗВЉАЗККЊЋД›qM?CHA@<2.4<45)%$,541 *:F]uУнЕ‚cVA20EC@`’ТЪЋ™ЌО›v˜ЎЋЏЋБЗДДБДЅЂ–\FB\pHC;:>923++3470,*%1A(3;\ЁЛЂЕЅpI;9;:}ŸЊЯЏЊЃЅ…|~‚ЏФЋЋЏЌЇЋЗМТЎИЇ„A),9979:A8,1522-+&#(.!#8YŽРЇˆЋСМžmc™œЇЌЌЃ˜ŸŽm^zœЌЂЂЉЈЏАДЖЖИЧЯжЇb?5*92:E?984>82,..0*,-1.CGiЂЂАРЖЗЛ”UžДШВЌž—‡„{›ЌЁЂ›ŸЇЌЋЉžОйрѕјЮ‡90LCJMMC:577)$%+,,7:A98kЋЮЫЖАЉЈŒЇДЃЄЇЇž‹Ž’’ВЈЁЁž™КВЏЊЏЈЫпюјжИ‹b7)AJC>?>?B:-($&*!08AB78G{ЉАЊЇ’—™››€ЅЉž›”…ŽuЃœЄНВЕМЛЛСМЫуюёхпЩЅS)4JB@:@;:<72"!$39C<+&9MˆМЖЃЁžИžžЂЉЉœ‚‚Žž‰Œ‹‰ЃЅЉЕДАНЛВЦЮбеЭЖА›Z@UH><798<3?,!($)**31&$M‹ЌЛЊЃЁŸЇЉЈЃЁŸЌАТИœ‹•АЂЁЌЦЧУФЯббаУЪЭАwI)+:4893--&#"#((*")1*)3J‘ОЏЄЃЎАЊЊЄЂЊЌЋЊЋдΘ{ž™™˜œ™ЉЗТШЪаккгЧсбгЈe9:F838528+)*#$*,137<2HwЊКЋ›ДЋЋЃЅЅ€­ЂЁ‡™ЃЌЉ•—œœЃТЕЧТЪлЯежеЫЦУФИœk>1:CFA>>97+)05ECC934),8bЃДЭЌЉЌЈœ‘ЉЏЅЄЃЗ›uУУКЖДФЦбдеаЭпуеТБpB&-?E:A91+.*+8:?+*))?1;|ЃЗБАЗЪЌ’‘ŸЅ‹›ЇЈЉЉЊЧ”oНИЖЕАШлзййдЯгЮУЗШЛ•Y24HEA;82.&*88€ш53221)W‰ЖИИВЈ„ЉТТЈЃЇЅЖЌ‚‡…‘ЅЏНДЇЖчшбгджлщїдАžЅЕ‹?8LGB>;3+#,4;:.*250>O4TŠЖКЕŸ‚n„ЇЖБ}‰˜Œ…u}ЉЈ„‡БЫЪгежммпїцЭ‘БИwFA>;<8;9753+29A?)ЏБмН‘r‹‹Že`Y]cnƒ™ЌФЖЂЖТЮбЧЕмуыЩЦмђЪ–ЄЯцлРnB:CIB@973+.>CGVA>92iŽЇ—Ѕˆ‰ЂЎ‚iuœ’‚‘œЃЊОМКгстўчђЦШЭйЮЎƒŸбжг•O;GeE>,1*(+G`aVhC<88ž›ЄЉБmŒЂŽ’ЁЊКАЄ™Œˆ]b’ЌИЋЉЏЏжщйУЮгмїнЏЇДКВКŽQ@;3.973.48CLIC997?ЈЂžЄ•‘’œœ–„ƒЂКЌœ—›‘™•ЕЏЕЗМЛУсжЭЪЫЮбшнТИВЌŸЖФ\[TLJ?<;03FNGM338<ЌЏЂ–…‰‡™œЁeWЁ‘Ž‘–ЇЃЋДЗТМЫЯаадзжгЮУЌЕЏЎАЮКiZU9<:EB59:<914239ЋЌЛЂ„|Š—™ЅЏžˆ˜œžЄЌЉЄЅЌЉФебеджзклдЛЗТФСИЖИЏ~Y`U49<>7:94*&-;>>˜››ЉНЁœœ™™Œ‚–vStžНЄЊЉЊЉЇЂЋЊЛЮдккжжддЯеФОРЛДДЗЧЯž{W8;:;:392+*5BB?–‡–ЁŒ‡ЁЃceiНЗВ››•ŸЂЂœŠЂМкжж€KежййеУДМККЗВВЌауAC782-259835>;7Б›–ŽŽŠ‡‘БВ”‹„Š”‘”–˜žŸœž’ВЫаЯбЯЮЮЯЮШТЛОТЦНЖДЕЫкЂEE>.A428?7959<)ЏЄ–˜”‘…’~w–Є‘’”˜›˜–˜’ЊЗФббЫЧФУТСЛМССТНВБЏЕСФuZQBB>:;B;54(+(Žuo‰‘‘‚wj~jВž—zžžЁЁЏЉЧШУЦКЎОМРТОНОЦЪТДВБЗНУкРa.GJ@BAGE9*LCFP$&*8ЕЪЅ‰”—‰Ž‰Œ••Œ‡‰—›žЂЁЁЫВЈЌАДИИДЖЎаяаЯнСЅИИДОКУШЩ—S1ICBC@?IC513ЉДžŸЊˆ„Š•˜›–”ސ‹’”–—™t”Ѓ›ЏЏВЕЛОЛОчеЯЫЦНЛЗДЗЛКМОЦŒONI?99Л>;748ЇЁЃЇЁzw‹ЃК˜˜œ™™—•˜ЂЉЈЁЊЯдРМЖБЉгШТБмдЯЩЧРИБЖЗЛМНТуШk88>;7?:>A?;щ„‡u„n|u™ЗЗЉ‰xguНуШЧубњўў§њўћўњ§ћћ ўў§ўўсћNj{VVOScuhodchYz~^WYMbhŠ™”Њчђў ўђ§ћњўћ§§ў§ў§ў§ўўа§ў§ў§ў§ћU‚zmW]T\]]cijnodQQVOkk}ŒvPc„‚‰”Ž’МНБКдяўў§їћўћўћў§ў§§Яў§ўHZ\YTVdccgahkjmebheidhjwwiivTWumm|„]^bi„xv˜еўўћўў§§ЧўњўLY]PW`^`QSY\dham`^^baZ\i^c]\`a[cgt]\j{kjn`Mcrew‘ЗЁЇжљўўСњўTZPPQT\Y\WWb^[ejmhUWSVZdi`][^eW]gab\V\PYW\`LIQNYuZQNJ{ˆ„–ЈИсўў€!AOOJLOZ`\TYQPZQUZWVSU\VcZ\\Y\^ZTTWQWUWOSZ\WU\gaeqhUNdЏ•n[c‰}ww„žBBFGVYPPIJFSHLIOJVc]GMBONIMUWVSVSQTTOTWWZca]Q\][b^be^gagVgjxno‡MSTPOOPMOHJTOPJQNŸgILJSHJONPH?HQJJY[ZTSLWQOHUVY`\VST\V^`dgeZP`rZ\WSYT@FJGHLMLGUYm‡C1@?JFLIILIFNHZQPTWTOPSPNEUWOLHHCAOEUZrpg\a[^TYQPVUeZH?G@).4jto-".JCTOPPLULINWWU€’TIGUMQGBNNINHMNESebpnjidgmoJJHL?)%&,1:iu\7EISW^VMTSVYY`h^Z[UWMWUTNSUa\UOLEGNUNQEPVUV[cdAMNVOPM@708?9!g|h>!&SgvN$-IQSSQS]\VSPSPVN\P[V‰gTYUWUSPQQ€|NQOSOSPONFPUQ0&$%2Pe3 ?-#&)BAMQOUTSN\bhSOWZ^d^oPT2+&B?@Gc]]SNPIFFSr4>?LLJQ4#&#-"EA,1.7@AIC04dUNZZWQPULWJ78;!&-4513,-%!(87IH2(G›%9MVPTM;*4,0.))!&))",;130*BHTUQGHQTTevT?39:5314+,45#&,,07<23*!$&(&044$##"%$53O–зНV"157-&,-83*$>..02%04,!)+:7:?;3##!.+8.8127.18]gk›Є„@23@>?34389057,12+%!#295ANeU-)*,259?177#*1"0(41),(.1*;9B3#2S–›`SJE?7;581>IEA-$%)0#<@E2&@V2,-1"(..3105)8-,01**"+0)A08AFIawZgmVHCC>73:79B;:27,&-2-7:\WWpT#*(-&.$08:.)$&1+-&,+"8*3??@P\BB;88324*-2>0)(.2*.&"!%&(24:959;98>-B7:?241(-#31>9U„„kM1,I8,$-.)$.,)4+)**)"3>HF@>0029?.7,8<@>9319870(&"MUB3\gu[G71E2%1B27395?*9,*531W8$0"7+2(##%**-+>;92@7>G?780.1!?LJ?gx~tWGehr`W?A@$98475;201BBJHE3:>G,$"S?99+47<;B?:73EA;A>:2%4UugU&:I`‰vIL;57<>;0A9159>EHNAB83&.! 7?0+22EWHIA%)7>@:?5?F<-LmxutH7A8]w…|oz…‚bFN>,)AL8<0.7CA4B:A?:0>18&>^H;JrgVGG€{AJHH>;%2M…‰peinC-4N[vq{’Ÿ‰tZWcNaWGB13,BE>?H<1*7494T`9,:jztcL9CHLCJA8Ammeeo32N|}zrzŒ‰x}ˆz[B8EPOC5F;H,4$,0&)42-"47EatЉЕ—t\PC30?C2OnŠŒrbu‡eGhjwznpv‚~xz…jqrHECZmE<@C:2?5-%8<<;&0*;5+9CT‚’zЇ^G<8;7Wp{ЃwvmqZMNIxŽrvw‚x‚‚„’~…}vB*,58<84:723$+01-43..(,B[…œVx‘ŸˆtaZhhmxtg^e[9%Eboim{ƒ{}‚ƒƒ‰™ЄЌŠZB.3:-<79:.2,,?14"(#397FAVz„ƒ~…iGozŠxro^VJOIjrnac^irvu|mŒЅЛтгВp2$F0%&*0;*4;C78Mn}rq]bd\edigc\h[N@2ek[`zv„‡‡‹‰ЁШагЛЗ™{119;A57---04)94(Bpx‡~wvxuumutpgO`g{~^[Vgnv„zŽ””ЅЄБАœ˜‘™uT:0@eo~~wdPv‡‰qknnthJWJUopz{t‹ЫЪЋЁЊЅЊУйЂxor…n:3HBGB87)!79+,!0(-VGtm~[90&*+;@vЇ}UEWTFSM.!(19ZuŒ‚kƒ’ЅЂ‘ŒНУТЇžШж•cpœИЏ˜]<;HPB.)25"7F@LSA5>%:Te[r\EMPUb{eO5H\QJWdn{‘‹”ИбШюййЁЌЋŸ…OtЉЉЅ{H@MhC;:&.3.LohYdF55>djmoqLAUpQZ\qq…t`V\Q0.]‚wƒ‹Мг˜˜ЖлЕ{p‡Ž|Ž{UF1439.::*9SPMA0->C}tgrWVbade[TLi{k`\\Zc[x|‡Œ„‡•СЗŸЉЂЋЪВ…z}k‡”xUWHZO?;?89MULL434;tzkSWS`jgedH1)PgVTOM\gwoq}‹‘‰ЂЇЁЅЉЉВЊЃ”||x‚ŸVUSA18@EE<>?:3+754r„hUP@T`krwcOGN^Sakmwtpruu˜ЇЊЎЊБВБВЅ‹…”›˜‹‡…„d]bU:E>??€Ў<0-5BF2<@;8:BHFLzdZ`aZPP]vpWOTHVPLHV[d`dec{œЇАЉŸЁЏАЇ˜’’€Й•™–‡ˆЃД’GH<.8874>CC@B@)wp]bTcbcM\^IEda[STT^^a`[[Wp„‘ИЖЃ˜™”—Œ’”Ž•—މ~‡ŒœЉrVO?CAB7>E@);2)VGI5CPbTG93I8TxocWPE`b^m~|Ÿ™ЃŠ{ŠŒˆ’‘”Ё™ƒ{~ƒ‰’ЋЅW4;H?9;GLF-*I\‡…zjgcj^MINTJ@S\ZUacpztzoYw›Œ‚‚‚‚Ÿœ€и›Ž…~Š•˜РМ](,>{ŒcHT@\VPP[aaYU]^`bcee^k›pv}|‡}ЃаВЅН‹w…ˆŽŒŽ™Ё}G.MHG@ILQUQ`ZGe”Апїћў§§њњўїњњ§ўЬ<.,>1#)!#! $+8>.FE8MNC?74@>?AQe[MGGaoPan~Трћћ§§ћљљУ§њњўJ?;E$75:MG::;GG?U^\eW^–Уђћ§§њў€d$$9<  ")&?IHHNBC?A@?;.CFAFG;A@G4)(&.<>>HECFIIQWU@nuY[MISbЕйь§ћ§cdW-  #(E9@A?25C2*79CGC?B@;(&@LJA0EBOSS`tnSGMOavЏы#>7$    (0)19>@BA?>CLGAA@FTZEe[TJNUSJJLQTV`\aje]m!($ # ,<>>AA<>7JVYOGC?*Ad`aMJSQYWGG;CPZ[\b]V]ai"#!  !"#9<8A3239MEGQF59?24.327<@B;274BCFHC??EGGLOS "!%!  %%BFGFA<$ ()(90+$7AHG72842->B:0<@CEGJ€= # PgQNIB:2 $#*;C494.#:932-81*@JB-*:CFJP   !)!%0+8..751(,"$)2-554-$"2:1)1-212AEB@3<@AG:  "*)%!& A?EC41573.;@;5+)#!$.123099BEC?E@;<8%) 535^p\$&*#*"0;:8+,%&,7();5.05<<:@FF@7:;  ,$ Gpp~|kVO<135"93.($"!#*-))00-0-7>72?BC>A? ".WZ@Cj~hBb|xYNC.)AWSH4!$"$.2,82;:4722+-9C   4>&$  8]hƒŠrmoWJT—zovV?2.$!$*0%78*"3AEEA ,\W9$ *.-$O\V^mj]`cr}™ДТТЧ™J14+$+%%.0+5::"(1! %3PgVUmgW^chvŒЋЂ˜ЈНЋxM&)$.*22%1>< #!  )5&#(74[hvVZwTi”˜™•ŒЉМЎoOTU4&#$":< !   ( + -8 !  )<[kg[LP~‰}ƒ™›–u]qnbcY#%""87)!)-2   $  +#GWSBU{pxДЏoJkvn{ŠrO3Q# &"8+€Ÿ !& )2-&  *#EOA]igu‚~‚tWp{qjaanZH;9.$?%$T(  ("$0.  $%*Ojz‡|oj}aYkmgqnecLGaQ9JBc^@ -&%24) %$8oz|wcWbZ^edii][U`ˆt]gYVPLZ>"-\G),  ""Adˆtdgd[``[[kb^ceodpdT]NLhtM3C4:G)8h]  #$%+A3ALhnC;F^``extdmko{m^cZVP?OEMi5) 0AT8   &*LB?H33NAJ;AUTZkvonmpkeae[]F@W^cU{q" ,"-%%  +$$+7`xPGY]nh]kwrjaŸp]wuUtŒ}dLC48)0C1".423YaN``d]djojnˆS@[\]zV+GEUjuS,393"&    1E4-;F]^vdbabmP^d\a^WQYALGGE@bZUN8!9:  ,b(€Щ 1 2NeNS[]jUhqkigPQH<@HMOUm{t’…P$!   *   8 PnbdbEhj|tmJ.BNSUZacbTYh‘•xN?>M" +)#    !&SbhW Zi‚qOI9CQNJijmqozqj{|mYb]\P[[]`mP0)B  !(1IASS8#>]db[[cm{wt{xonmkdVJQbxrd`nI   У[mZQYG?[qe[mmpmbqpo|zTObmoc\\deaWjˆh3  ўєI3  +[mkLL€ІFQCV[[Zdon]PTSPVY^MG8diU]n}…wV(   ).)#LVSI"#7.O]Y\d]rmWVZ[`\]comSU^[ent~ƒ‚T4!4   & 1nqM>FIHLQZbgdo‚I!IA>FF\vu^V\WZhop„[S?&  $*%! OicTL%:BGOJU]]\V^VTMMOPhmm^J[^Ucnhd]SI>GN+#  # "Z^OEMJMLIYVNNкPHLNSaumh\WUPSWjgSP?&#J%  єїљѕѓјљљњћ§§ўўќ§ў§ўўў§ўўќћўћўўђ§ў§ўў§§ўћ§ћ§§ўўў§ўўњ§ў§ў§ўўьэѕєљјјљњњћћўўћ§ћћ§§ўўў§ўўў§ўўћ§ў§§ўўэёхэћўёѕёѕјњчѕ§ўњљћ§§§ћ§ўўў§ўўў§ўўќ§ў§ўў§ўъ§ўўюФЌЯыѕыщыѕўўцйљ§япўў§ўћўўћћ§ў§ўўў§ўўў§ўўьяЪЫущшђцргенИЇЮлжжјўўњњ§ўў§ўўў§ў ўъьЮФрщўёСŠЖЉ{SkЇƒŠЌЅчўўўњћћї§ў§ў§ў§§ўў§ўў§ўўў§ўўс§ў§ЊЕЇЄФЉЉЕЅ{W?7:FBA7GSPv‚ЄЭѓўўў§ўўјћ§ћ§§ў§ўўќ§ў§ўўў§ўўп§mWPJVGY\P8IJ:>BCHB][AB`\IP^vŠОнўўё§њњћћ§ў§§ў§ћ§§ўўў§ўўй\YJ<4?SG.9874982"N{UB?8:Nbc^NVjŽЇаяяѕўўўћ§§ћќњ§њ§§ќћ§ћўўд§H?EAFA<<80,0+&*,+3IA@?@HSWYLQQW`aЄWg‰ЊНыўўћј§њ§њћћњћћў§дZSG7JHONIHECHGLLP\oibQ\hzYmtƒШчўўћўў§§ШWM[MP?0-,)#(&1527EIMLLJLLUOOFMOSTQOONCF\ddkYe’Ујўў§ўФ§z5:@P%"#&"!#%+,%4AGJOPPLMLGFBGMTTPUZVVUUreUh…ƒdmƒЦѓўўТM7JJ@!"%&!;BA74?:@ECE<5CIMINQMGNWY[ZPQHJ^a`grvWIOSbxАя4WI@00+("--8:;@GIPFFMUOLJQPhnZ{dZWUUZVQMSab\Wbqkeu+0+-030+)#$"$$"91@GGIIGNT\ZSJEB9ItoiYZS^a]WHGHSZ\`cY[Zgh!%!,:013+"#33*&&€‘8?AIJLCA;AFFINNLE>FEFJMIGFHJMOUS"!!+.11.*+!#&&..-54CCQOOJ<11957:5AAЅ>?CU]VJHFC9@MOICAMNILN$,*,1(,$))-&*!,*-JtWUTOO@799?@@JPQGBFSQMGEFAMUSUЌ"&-:9@?;8;<EEIG;CA9BABFJNOLF@IJFC?@@CEIQQEA@MTQQ%",47;;89?<19UTTЂOMLHBFIIGINNEH>:GIJIJHIIBGLPMMGHJC?"!!"$%).0",,159:OO]‘˜xC::@AFCIFEGJLA?8>CBGMIHIBAGGJJMM‰J@;!"#&(00503+,248+(%-3jЊЗЫЯМЃ‹|aPSL>GLIC@@B?Y”Ÿ„ˆБСВЎТАv]T?Wig]P?>FBEAAFFH€˜FGAEEFJ!$&(++!C@9734512:-2a‘ЖШЯИЕДКŸ•МУŸŠ‹mTF>-:BFBH@?GGF@@HB@@GBGB@C::>I2%"F3355с040>?;AYt‘œЄКЂЃДДТЭпмзтэж•bJBGGъ?@EEBEFAHFCE97>NE!%)((€;J3-84422157*8?ISbŽДЛЅЊКŸВЯжсгЭшљцЉ–ŽƒbICLOCH>C;?GBG238@<9)&)($!"$)-833,$#.,-3;;.1Lk–ЎЋЗЭКЋЈКЭЧеїлЄ–ЊЃ™˜iW5.::7@LmœРЭЗНдычДЕКОРЫУž\AF?>89A`H%5::8940,).7;?E;.22323:BNGQFGo‰Ž˜АЎИУУСИАЕКЖДЛОЅ•Œƒe:5H:8>9;:""%.($.,8?A>#%&7hЂТФРЋЈЇЋЋЎЎЏВЎЅžЈдР›ЋЈЉЃžo;.<<:MiV<>530(,&()((0098797&4[™ЦРАЎЌЌЋЎЎАЌЎЇЉВЕББЊЈЇЂ—ЌЎŠriY\cC*8;CV„u<174**(*-11.(,+)79>@A1@chg…ЏК›ŠЇЋВБЖММКЖМОИДЇЉЋЈ˜‘›ULo}UB??E[eF&5>972-*-245,0*,(1AMd^TVW55hŽŽŠŸЇЁЎОТОИКЛЗЋЊЋЇВx˜ББŸЈL04<09:>4BE93@,++8,155**%9?A@9@A8.TdŠЗ˜ЂАЗЖВБЖЛВЈмИЎРЛМкЦЕЅ‰bBEJWJLMLCIH?%-$&,0.$&<4:318BW3A?0Wˆ˜ЖЮЗВБВДАБЕсьСДЌДКуЏЅЅ‹zgIM9CCFFLeW9,%-&%.-)($&01.,.1HU\qC,\ŠЎЋДИАВААДЖЕСž‘ЈЇЊСЁƒ’”ЇЗУ‘b\U@4+<),1472028-&(.0)&212305+HhQ7@TeЉЗТЌЋЉЎБЉЋЉЈЈЄЃЄЇ•‘—œœ”ЋЇ‘~N8LN).4073::999<;+%++€j0!(,30..8@HEA:>2+U…ЇЗЃ5”БЧКЈ•…‹‘|‚˜ЊБЎЌЛЛЪОЇž‰]>?4@CJHE@@73124**-54+)2,,@JF@9>4))N{ЂЃ7mУзЫВВАƒvƒv‹ЖЧВВДКМбШКО›vNB;@BJ@C;:97972-%%1+%2)&#<78M>><:89;<0&*)03%%))+( $@S@4>Q>;nЈЧЎЄЋЕƒkЊЛебФШЩФРСЦЧУкзИЁ}WSBUIA:>BEBB8-.+7+.+.+#$4<8:;E:M\˜ЇžЈm””ДбЭОКЕЕКТСНБИŸ‘–Ž„h?*7AA@A?GF70.-#(&#!#$*%#(054"7;;7rœЁАСЅŠmczŸЧСžŸЕЖЛСРНЛЇ–—›ЋДАŠoMEJJAFILA7;5+).1"&(&%05A?>85c–ЊЂЊЈЃ›erˆ’žЛВЖВЗМСРЧЎЌЋЉЂАБЈŠmdP08FB?<34(.0.,"("),#$-:@@<;I`{ВВЌЏЭЌ~ˆŽ•œАДЕЗОМКЗКЕЏЎЈЌЈЇЗЭмШ}JNdH>HAB8:940-2120*(%0:<4,).153++$(.22--(CE8[•™™nu‡•…žЃЋЏЏрБЏВНСМЕВДЏЊЃЄЈЏТКЅžЈt4<>CBEBA;288ю0.)(%0$&&(5>8F’Ак”ŠœБЇЁЈАБЎЌЈЋЏТФŸœЊААЋЈЉБЗДЌДЮа˜Q.0;9;;€K983.-+&&!(WG3+$4Q‡ЋБЁ”ˆi‰•ƒ›ЁЃЅЅЈЄžЁЂžžЃЋЈЇžЁŸЈЋЉВЦЮОž]:2>A;2?53,--+!&#$$?<>4&.ALh—‘’„ˆ‡’˜ЂЈЉАББЈŸЁЇЈЇЉЊЗД™–ŸЇЎКСЫЦСŒiE;O[80089:1#$,,*+7..-**??dЉБ™‹‚ˆ•—™žЉЏАЏНx—ŸЁœ—ЈЖИЏЄЁЇБИНОШЦЋŠZ<7%)49897:98%*:SMYSUUgik]VU[eg…Џ]m‡ЈЌпўўќ§ћў§§њћ§ћў§ўўв§ўgUNFEFAJA7-31.*2887@5gVZZWaca[\YW^pŒ^kkw”ВЮўўњћ§§ў§ўўЬ§ў§ўjt\L?;9.>90*2?2:3.$>Z|ccZdoea`[T\c`\[]cd|q[~ДЩјўўў§ўўќ§ў§ўўоNPHOEA>9A:9:82$$.152LLJ]amb`WPVQUU№V`zu`U^tŽi}‰•бѕўўСћ§ћў§ў§ў][d[^I7+-2-2*"%7)*718@JVZ]`eZUSVSULG\^[PYTZUVj|v~mvЂбўўў§ўўЦ…>3NW$!*!.&-!*&&2*2.@PQU``^TYQUQNQZ]WQ]`c^^d‡th{œ•x™жўўТQBIIC(+!""$,+$!*-),4GNIITOPO:?G>HOTQUS\gbbeoo\‹Žpoj\d{Фщњўў€W|„oM9",0-"%#"()"!0>?FIIBITIAMIUYQTVSTQIN]\SVa[vmpƒ‡‡jY^kuˆКў.9--(!(! *)*$"2@MOGHMLNUJNWVVQIITouW{mc^aejg``eqrpnvz…?@47247;&)$".*(351()%NIJQSQPHMSdd[NNH;NxuqV`chrrg\WWVjoxvtnkzˆ-&*)7<;<78(0)"23>@.,+4CQSTWTLGGEVSWGGMUPVdcMPPLSGHHLQV`Wdbgcjna$$#$&%$.:8?++$3,7>.+*3<>ISSUFHEQ[TME@BBFMGMSNJJFINTPZ\UOV^a`hjm,*(*")<3?;7+*-%7$+)59:MOSZMJG*0400@;@HIAFMS[QFLQFGMQYOMSVQ[^d+*#&%+17.:2<52-7*0"#,`}`ZWUOB>:9:EBFWYGEENNJEILLAHScZWSQWZch.+,*)%,,",2&5BBCF@EJMQ?>AHIOHJMNGINWTWOVVYUa.%!%!!,109@@?B.,?48OQVSGMOPGIELUSTBE@:99BEBIJMHMPVNWOQMPQM+$*!+$*..795G59++78NMNm‰m@47@>EQIIMPOJC99<>?ABLLPOPHJIPY]TTII&&**.),:,<1?PTN?@A;48?;<9(;HqnZ\‚—‚YumWMBA]qk`NB?2CJBCEFJ@JFHGCGVMJ$1-0H748;7)FOFG8;5-<4)+Lex›‰‚‰h[b‹ЉŽ…ŽgQA909CGB;:EIFFCBBEHWSP!+"+)"%-)"E|tOE34508EE€'A\qr|}zv‚‘œВЩдзлАYEF5N9&%*+b8F4@;<(..071<>@.?CC<0!"0.!*$?:@:023+,)54&#@Pg~u‚ž…utЃ”АЮИvcpncq`P:(*3899;AF,2A?A;;)330"+(;797701+-+0.-!+&?Om|}j[i–Є‘œЕЕЏ‹m„”„t}m3#EF8ELHHЯFIJ-7380505430:>@1<48*,(,0.->?:BYcmSd‹›‰ЊУСˆ[{‰‰€K˜‰mLeJ8:@.B5I]O%40-9508:-5.@-5?HC>.&(!-88FGE5;UaZjwrˆ˜Œi…Œ‡|x‰kaZUN-:9TG:<8PuH,404:4984@1;@HTS$$%,.9@;09BA`ˆ›…xzr‚z|~td]~kAW^ztJ3#*EC4CAC.C3B>NF<7585&#-%,0A??#"#+S}ŒŠvppowxt{vxbdp‘quqrtkjP%"0CB@83227>Pp[FH933$#)#!+@8733&H|™‡zvunrtrtvtqz}{xq{ni‚‰kbWPS^4%;EFV’„B;95)"&**%&,%1<9@<5BZJG^‚aIiwwuŽ‰|z„Œ„oumkaVa^EB^wMA+AN]pQ%::;89!+1).*,,+);:A\ZVYC4,Q^P]aagcwƒ‰Œˆƒˆ~|~wnx]LcxvmŠ…>,1-3@>>8LJ;8E7+("((2#",;:?E@J0#dxqwzVz™‹‡eIUdmimrprmox—…ZNVj>,93EI?89:")).++*+0%57C5<.&;arvj.m~œ„u^F]Y>IMbq~pŒ–‰t{uN99.3A?N@<<1+32#*,%*-#*$!$9AA8771#%Eqwv0SnŽЄ”w~p@3?8Ln‰xtw…ŽˆtY>7%84;?-%&(+$..& )-C7+-74:U8Jo‘™}{oMA7Wrmwƒƒ‚Œ‘ŠŽnG+%5:C8,04+334)0(()&(!& "AN8-%C<;iŒ–}{zpQ;duŒ˜”Œ’’œ‘‰’”’ЊЄƒnVHC;C?47:A<7B2-+.-*%!#$..,+;H?JLvt`orU;][UЄЁˆ{z‚––{…p\ba^?,0599<>7<4-01-%!!$))-1->9+PkixƒiVF)Hh’rju}…‰Ž‡‡p`baiv}ZT:>G;7A?>99,+&% %$1-GA<;3Pmztqpd`F:BNYiŒ~~‚…‡ˆŒ‘pr~umvze\\G"1>7.,-+-!*1#(3-)(*>FEICVZVvxq|”zMJS`mivw~Їˆ…ƒŠ}qjrtm}’АЃk@Ga<5C0:30*,$%&.8$+*3@S<3;,:&&5(#!).-.4$BNBJaUbaC@YQPitmoov{…„ƒŒ‹ƒ~|xm`gq…‚omƒa11*5+-29-%)5!%$#.2*91!8qodiTQi‚tmz‚~{z‚{„™‘ierzvoktxwpn™™w>#58.53-5124#$cL5B3Im|}gaYE4YgTgmnmr{~kideceenkdaoxep~˜…k@!%2+)$$))##(&(&EHB82@;9jd`YC7LIdhhqut‚}reemptor‚xaajpxƒŒ—ž`I;4>C)#&)-*&,A@98,5>.L}‚hQLNYa]djpzv‚Œ]CZZSY[q‡ˆujmu|~ƒ„—”tj]A5)z&%+04552*+Eku^;3T\]\]^hnjca]WW[dt„|ijicbjwng[H2GZE0%,3>8.)7!"3ўw(џўw ўwџџўw$џwќџwwџџw џўw$џўw)џўw*џўw-џўw0џўw 5џўw8џўw:џўw;џ;џўw<џќ€џ џўћў ўљћў§ўўћ§§ўўћўўњўћўўўћўўћўњўћўўшћўўћ§њўўњ§§ћў§ћўћў§ўў§њўўїћўћўћћўћўўїћўўћўўћћўўљ§њњўћўћўўѕћўўћўўћўњњћћўћўўћўўўћў ўћўўћўўњ§ўћўўњћўў§§ћћј§њўў§§њўўўћўўћњўњ§ћњ§§ ўўњўўњћўўћћўўћњљњ§ўўт§ў§њљљњ§§њћўў§њ§љ§§љ§ўћћўўћ§§ўўјњўћўўћћўўўњўўўћў ўћ§ўћўўўњўў§њћўўћ§њўћўў§ўќћўћўўўћўўўћўўњўќњћњўўў§ћћ§њћњњ§§ўўћўўћўўњђ§њљљјјљ§њ§ћћљ§§ўљњўўћўћўўўњўўўћўў§ўњњљ§њћўўњћўўћњўў§њљ§§ўўћўўўћўўљћўўћўћўўћўўћўўљ§њ§ўўћўўўћўўўњўўљћў§ћ§ћўўќњўћўўћ ўўћўў§ћў§§ўўћўўўћўўќ§њ§ў ўўћў ўщћ§њљљјћјљ§ўўњ§§њ§њ§§њњ§§ўўћў ўћјў§ћ§§ўўњњўњњўў§њўў§њў§ўўљљ§§ћћњ§§ћћљ§§њњўўћ§§ћўўћўўі§њљўњ§њўћўўћћўўћўўўњўў§њ§њњ§§ўћћў§љћўњ§љљўўњўћўўіњўћўўћўўћўўћўћћўћјўўђћўњјљ§§њњўћћњћћє§њњўњћўћўўњўўўћўўћ§ьњћўўћўћћњ§њњ§§њћ§њњ§§њјњћљљ§§ћєљ§§ўўћўњћўћўўўћўўќћўў§§ќњ§њўўьњўўњ§§њ§ћљљ§§‘Кћ§ћ§јјќћњћўўњїљњ§ўћњўћўўћћ§јљўўўљўўўћўўќ§ћћњњњ§њљ§њ§§юњћd`Оѓћћњј§§ћўћњ§§ћўљћ§§ўўћўўќ§њћўўїћўў§љјњ§ўўюQmWNhŸє§љ§§ћњњ§§љ§§њї§ћњ§њљјљњњ§ўўћўў§ћўћћ§ўћўўєћў\]UIY[gЦ§§єћїјљ§њ§љ§љћ§§ќњ§§ўўћўѓњћћўћћўњ§њўћўўўћўў§пњSVU4<}\UvЉх§ћїјљ§њ§ћўњ§§ћ§њњ§њўўїћўћўћўўћў ўћ§њьљYNPOHW^MFAH|сњћ§§љ§§њћўўњњ§§њљ§§ћўћћўўћўўжћњ§њљњ§ў§љ§§ћћўљJNMMCCJNWFFiue•пљ§њљљ§ўўћ§§ўњўўћѕњўњўўћњўњ§ўўћћўўћўўћу§>CNJ>8?BIC5Oq>-,>?:BHTJLFEHLIIOYZQ;A|Тљ§§њњњљ§§њњ§§ ўћоў52231-,*::28NLGGFG2@?JA@wа§§ўїљљєћјјњљўўћ§ћћњњ§ўћўўм3.$-35,(321755-BG@AA>A?<HJI:75<;@C<@9<>88;3FEZY[Nnкћўћјњјљњ§§ћњ§њљ§§ўЯA38-"#%$-#1.1:49;<>@>IHFCEGBNiVQZ[UTxЯєћ§њјћћїљљ§§ћљљњўб§њ§§?!-LGH:75:(2;C?;FF>GHGE@E;;JOM?NbaS?Patp~дћћјлњ§њ§њљљ§ћњњ§ћљ§ћdŒƒB*%1.1-)3<9::ACEFLLЂOQMIJSQ>?a`A7;$@M?OŽзљљћњћјљљњ§њ§§љ§§њ§§њ^nnghI&0#!0.135;4B@FFLNTOOT\]c"?C@9BE<7BLNWЕђћћљјљћњњУћљ§§њ§љњњ[Q?NSJAL.(@:17-53;EHGHC@BEI<:1+>AA2:OEHBH>9LxЕњ§§ћ§§ўњ§§ХљYZWUV\`rVHP8BUTB;@MSTPJC><>@G<4:9>>50gVTQVr`WBFлћ§ћ§§љјј§§„e`mh`MVTYeƒxbL;,%-PNUI9HC<98<>>88>CFEYMGLPNMACLvpЧ§ћ§їїјљ§§љњњўўggmvrYYU`qx]ZQPI)(kZ47BABAC>?7<532?JWMIJMWWSNk„]F‡к§ћљњљћћ§§Фњocdm]\][Th`UhdgS#*}p-(32>@BB@??7-)3)%&+2MTUO;G^`AGPcФћ§ћњћ§§€—љ§§xucq|ЖАtPTQSPPewn‡, *&.179714;43;;><3:;$)0Ch–Яћћљјјљљ§cquuvrkmocU]e[PˆЁhL$,#.+)&,:7<8A@28@HG::BGLMF4HW^Z]Щћћљїїјї]btoqj`ekicVVm{PHZ]]cU,847PW4,40:?CG8,8?>4;3,,BELWP`Цћ§§јњ;exxnchjxj]dih\QHO]c`jpeYJE4+$#,84>:*59:?41.05@>?3GVBJ?4JЕћљњњ%Tewkhiedbhbb[WUU[YY€Q\zogr`4028A71,9BABEA;9508<@EGPNE0)#OРљћѕ &U^coh^Z\\io]\TVZNBOEWЖЪВ”}]!AWZP014?EEC@>G:A52995BPPNS[SOmп§§5M^ŠnbY[WYUSV\\THAE42+mvz~ghZ3!;+)-<3aTb{zvrŠgM>3TZVVPIPm‡ЉЎКЇ…gB5"75059;32774.9<<@941GM?M),QƒitwnG‰ЇœzF&87942+1\TUPI&# ASU]vZScm˜А„]5@ZTTUTQ>N\i„kcptea>!A7$,-:?E[ˆŠ}|…•‘o1(")*4:@E>;9:80&+:!"JwuWGc|‡UFTYZ\QCIBI4@b^n}x~rENƒz+%G*5709;:942*12:>8& >\gOUN‰™cULMIHP^[NHBUphaahWQQUrpM4!I7(,(+$"BA,-&:ўў§ўўўћўўјћ§ћ§ћ§ћў ўў§ўў§ўє§ў§ў§ў§ў§ў§ўўў§ўўў§ўўќ§ў§ўўў§ўў§ўў§ўўѓ§ўћ§§ў§§ћўў§ўў§ћў§§ўў§ўўў§ў ўћ§ћ§§ўўў§ўўў§ўў§њўќ§ў§ўўќ§ў§ўўў§ў ўў§ўўў§ўў§ўў§ўўћњ§їў§§ћ§§ў§ўўў§ўў§јћўў§ћћ§ўўў§ўўў§ўўў§ўў§эў§ћў§ў§ўћўћ§ўў§§ћ§ўў§ћћ§ћўћўўі§ўў§ћў§ў§ўўў§ў ўў§ўўќ§ў§ўўќ§ў§ў ўє§ў§ў§ў§ўћ§§ўўў§ўў§јћў§ў§ў§ўўќ§ў§ў!ўў§ў ўіћњњћћ§ћ§њ§§ўћўўў§ўўї§ў§§ћ§ўў§§ќћ§ћўўћ§ўў§ўўј§ў§ў§ў§ўўќ§ў§ўўќћ§§ўўє§ў§ў§§ў§§ў§ўўњ§ўў§§ўў§њў§ћ§ћўўў§ўўў§ўўў§ў ўў§ўў§ў§§ў§ўў§§ў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ў ўў§ўў§іћ§ћ§ћ§ћў§ў ўњ§ўћ§ћўўў§ўўъ§ўў§§ћћ§њњћ§ўў§§ћ§ћ§ћ§§њћ§ћ§§ўўў§ў ўў§ўўљћњћ§§ў§§ћў§ў§ўўўћўўњ§ў§§ћ§§љў§ўў§ћўўјћ§ћ§њўћ§§ўјћ§ћ§ўў§ўўљ§ў§ў§§ўўў§ўўњ§ў§ў§ўўњ§ў§§ћ§§ўћўўіћ§ўў§§ўў§ўў§ ўў§ў ўў§ўўј§ўў§њћћ§§ўў§ўўќћ§§ўўњ§ў§ў§ўўў§ўўў§ўўјћ§ћ§§ў§ўў§їўћ§§ўћ§§ўў§њљћћї§ћ§њћћ§ћўўў§ўўў§ўўў§ўўњ§ўћ§ћ§§§ў§ўў§ўћ§§јњћћ§ћ–Кўўяњ§§њ§ўў§ўў§§ў§ћ§ўўђ§ўў§ћў§ў§ў§ў§ўўљ§ў§§њћ§§ьўћ§ћ§ћ§ўhd…Цѕўў§§ћ§ўўњ§ћ§ћћўўќћ§§ўўї§ў§ў§ўћ§ў ў§§ў§§ўў§ўўї§SjZSpЄ§ўўўњ§§јћўћ§ћ§ћ§§јњ§ћ§ћ§ћ§§ќћ§§ўўќ§ў§ў ўё§ў§ў§OjVJdgi~Ъўўњўћ§§їћњћ§ћ§ћ§ў ўў§ўў§ўў§ўўшћ§§Yb]5Fƒ‡c]}Џюўўћњћћ§ћўўќћ§ў§§§ћ§ўўњ§ў§ў§ўўќћ§ћ§§№ўZ[YUNYdQOFNƒщ§ўў§ѓћў§ў§§ћ§ћўћ§ўўў§ўўљ§ўў§§ћ§§ќў§ћўўяPSYQMHILVBJnzj•чўўќћўћўўјћ§ћў§ў§ўў§ў§§ћўўў§ўўў§ўўтћ?L[WQJOMF>TTNUPbЈзўўјљњњћњ§§ўў§єўћ§ћ§§ў§љњ§ўўњ§ўў§ћўўыBHSMOTUOGHMJFYW`iˆЗьўўў§ћћь§ў§§ћў§ў§ў§ў§ўў§ћў§ўўћ§ў§§ўўч§ћHGFBEGEECCMMx™^9@V9J‘тўў§ћњћћњў§ћ§§ўўќ§ў§ўў§ћ§њњќ§ў§ўўпћ§ћў§ўўMGIGHEGHNJ?OЈ@1JSHB9[Џ§ўўљ§њћў§ћўў§ўћўўўћўўў§ўўп§ў§§ўHGFGEC@BFM?P|?7IFOZaNhrYuЅѕўўќ§ћ§ћћќњћћ§§ў§§ћ§§ўрћў§IIF;EBA>?EP^{N)ABFISP?WcMUНўў§ўћ§§ђћў§ћњ§ћ§§ћћўў§§ўсFGC>@FG<;BBFPNLEGJOQOOT``T@F|Чўў§§ўћ§§іћ§ћ§ћ§ћ§§ў ўпJA;;>C@?;@?ACAFACCOPAEG?8;?QAEйўўћ§ўњ§ўў§ў§§ўм§H@?;<<:>8;@?AFIIC;?<;@M[ZOLgvзўўўњћћљ§ћў§ў§ўўа§ўћў§ў§ўў§ћBBABFA@;9;<>BIGC?@@B?HFCBGILNEBQZgИљўў§ў§ќћ§§ўўе§ћ§§:9A@BB?:48>;5>;3:<8;@BHHACEAELEQ[ghƒЌ§ўўњћ§ћ§§ўўћ§јћ§ћ§ўўћ§§и38??@;??7;319;89EHCBB>ABCB?AC;<;>:;A@ACEEGBBEJICBTp]]`bY\еўўў§њњћ§ўў§§дћjIPbk]JA>AJAEFIJCEFCLHABAECINL@Ugh[@Um|qйўўњ§ѕћ§ћ§ћўћў§§ћћб§њЊЭДmJ@JG;H}БўўСћ§ћ§ћ§ћ§ћ§ћ§ћЅЂŸЂ™–Аx]jSU^^E@HWZZQG@<25ABC?8>B<:5d^WW]x\SCHсўўС§ћћ§§ћ§ћ§ћ§ћЏЈЗЎЎž–ЃМЃz^O;L:[a^PAIE94:@@>??BHIJ`SMMOUN@IP}wЫўў€љћ§ўћ§ћ§§ў§ЕДЛОЗЃž™ŸЋМЂŒ…m]?0Ha8EGFC@AA;>9;:9BC@EE@>@B;:5144.;9T\[O8Nce;HQmЮўўњТ§ћћў§ћЕЏБЗОчыЗœЂŸЃЂЎЗЎШЕT+7J?89847378:959;?bv[UOI@SGILTUe^‰ђўўљћњћњ§§ЉЉХЋЇИРШМЎЄœœЅЇ„kЅЌr27T80-58.3?9<>>CG;FBA@<7CB5!+-3@j›еўўћњ§ћћтЈЊДММЛИЖСЖЎЋБЭмЉcеуРžzH51,:@;;ц7<>CC<>>BGM?77JNH@9AAIUQThYIhiЉхўўСћ§њЊФЧЛМОУФЦЪСАЎДДАЇЅЊАКБЗЉЋ{^VHB@>>;7>>:5QdUeЫўў§€ѓwЖЮЮМИЖМННЏКБЏАЉЃЃЊЋБДФЕЅ‰i^UB:98;?;81424@@;:?@@EB8?EQCF:1PМўў§љQЏОЮИИЗДВДЖКЕЌЅЁЃЂЃЇЅЂРВАА‰P4EFJC8289>?>FHC??;>CFCJOPJ8&VЩўў§38\ŸАЖЗВЏЌЊЏЗБЏЄЂžžœ”ЄєўяеТ’JVdc]@>BEJJCCB>@7598>CJLMMTaZPrцўўN9Iq˜ФЕЈЉЇЉЉЈЅЃЄЂ›™˜‘—|ДИЧШАЃ‰S4G?HGE@>702.:8;;AFFЉBILQUQW`rзў@1BBP—УЗЈЋЋЊЂЃЄЋЊЂœ›—ЗБАЏЈАЉЋуж—QJM7>>?A?95EPPTMPQQgjN{щ:98:GQ›ЦЌŒžЃЃ€юЈЏЌЉЃ••’{’•ЌЅЇЖДЩФИБ›YBJVPMLFFHNGBCEHHLJNNMMQOMH>‹40#13ASt”~~ЁНААЊЗРЎŸŸŽŠŸ™™ŸЄЊЊСЭдуЦ”[8ISTNA2:>BH?899;BNPSPSbQAC$+12CF83zЈЈФННМШжИžŒz’ЂЁЃЅЅЈŸИЫтщђнФЁgL5JE88:49;58374<@A@.8TPCQ(++3AF-#uММИФЗВ—УкжЦ–iŠЄЇЇЄЂЄАРзтЗ‘œА–qH8@755.3329:95;9881YY…UJ*(5:A@*8Z~›ЋЗЄ—ЉКпяЯЊ„‹žЁЇЌЊ›}n˜ЁБЪВЎИМВ‘ZHSM;47.0:>E?C?0?9INQ`r1782403F>Pp–ŸЋЎЋЊОебЇ„ƒœŸŸЁž™”–‰ˆЂЫЪУРФбаŸZC@2-%&,1;<>349PУЧЏЄВМлФ”˜žЃЁž˜˜•––˜МСНИКЊМА—xTYoT<039<>;98:>AI97B4452487558@AwНТЇ‘ЋКЮЦœЃЃЄЅЃЄЂ”’‘„’АЋДКНЩН‚ŠШЉSGZ8559;2-3:<<;@CB?*(#9AA-,5*0mЇЎ–••ЩаœЄЄЁЁЃЁ–•›ЖВЇЎБЅ–—›МИŽTJ7SA<7,#%*#JGG;@?ўњ§ў§ў§ўўў§ў-ўў§ўўў§ўўў§ўўў§ўў§/ўњ§ў§ў§ўў§;ў§ўќ§ў§ў ўў§ўўў§ўўќ§ў§ўўј§ў§ў§ў§ўўњ§ўў§§ўўў§ўCўў§ў=ў§іћў§ў§§ўў§ўўњ§ўў§§ўўў§ўўў§ўўќ§ў§ўўњ§ў§ў§ў!ўќ§ў§ў ўў§ўўќ§ў§ў*ў§љў§ў§ў§ўўў§ўўі§ў§ў§§њ§§ўўю§ў§ў§ў§ў§ў§ў§§ўўћўўќ§ў§ўўў§ў ўњ§ў§ў§ўўў§ўў§§ў§§ћў§ў§ўўќ§ў§ўў§ўў§ўўќ§ў§ў ўў§ўўў§ўўўћўўћћў§ў§ўўў§ўўќ§ў§ўўјћў§§њў§ўўў§ўўђњћћ§ћў§ў§§ћў§ўўњ§ў§ў§ўўћ§ў§ў§§ќўЅШўўўњ§§ўў§ў ўќ§ў§ў ў§њћ§§ў§ўўѕ§ў§ў§ў~v˜дўўќ§ў§ўўќ§ў§ўўў§ў ўў§ў ўњ§ў§ў§ўўљi…geЗўўѕ§ўў§ў§ў§ў§ўў§§ў§§ўў§§ћў§ў§ўўіpi^twx”мўўљњў§ў§ў§§љў§ў§ў§ўўў§ў ўъ§ўk{qHS˜ž{q•Лљўўћўћў§ўўј§ў§ў§ў§ўўь§ў§ў§ўnpjaZkzm\YZёўў§ўќ§ў§ўўў§ўўі§ў§ў§ў§ў§ўўяYehdZ[aijVZŒzЅјўў§ўў§ўўў§ўўў§ўўфS\baTZac\SemiiguЗчўўћ§ћ§§ў§ўўђ§ў§ў§ў§ўў§§ћ§ў ўў§ўўыJ\``Pagh[^^[`pjp~žЩћўўќћўћўўў§ў ўў§ў ўў§ўўч§ўPWTGJNTSVW^^ƒАkPVjC\ёўўўћ§§ўќ§ў§ў ў§ќћў§ўўў§ўўчJVQWQPLZ^]IeМ—YH^ebTJk•Уўўћ§ћў§ўўќ§ў§ўўу§ўSVZTPTJSZZGc’QI]abjtaŠtŒАўўњ§ў§ўћ§§њћў§ў§ўўј§ў§ў§ў§ўўс§ўPUJNMJGMON`p]?PZabg`Okvhh”аўўі§ў§ў§ў§ў§ўўј§ћћў§ўћўўў§ўўсTMAIHMHJFFGNdc^a]``[[genwcSWŒйўўў§ўўє§ў§ў§ў§ў§ў§ў ўюJFFBCIEHNHFITPU\VbbѓTOZVCQYbQV‘щўўѕћ§ў§§ћ§§ў§ўўў§ў ўнJHCEE?FCGFLGLNNPV[][VZOMSZaoqgcxŠуўў§ќћў§ўўк§ў;EFLE@BEBGJTUYZUOPTW`W^YWW`ehaVbn}Тўўў§ўўќ§ў§ўўж§ў§ў5@EF@C;<7IFBICEJTPIMUSY[]hu;\`ZWVS[NZeioСўўљ§ћћ§ўў§§ыў§ў§ў§ўvqQWi]Q]IANJEGGрINPJPILFJOQJBO77W`Y\PehgZ\LJ\Сўўф§ў§ў§ў§ў§ў§§qmhjhnp„hQVNV`bOOр[\ceVHAFLLOQUSMQPYMononpiVUэўў§§ў§§Цў§ў§ў§ўru„|rcimmw‘‰m`JAHCankaH\YMJIHOLJMTZ`]whdagcdT\c—‘пўўњ§ћ§ўў§§ўŠ{‹ƒrjou‡—ngoaWA.GŒm>PVWNTMIJIMCHS`cqagbenrmk…žt]žюўў§ћћ§§ў§ў§ўƒ~u‚~tnjdrucuzu\;FŠLCHNMVOLIIJJAFE@>@EBJBJLJLNv”oh^Y`i]d^hivg˜ўў€€ћ§ћ§§ўxpw}t„Ÿƒ|kbgejT:t~[%.S9#5;<1EGHHLJQNQI]UTOPLUTV19<;QzЊпўў§ћ§§ћўt}‚„ˆˆ{w‚{pq{–Ѕn-cЁК™ue@3:.GB<;@FFEPNNMPO\Y\LQb^ab@\kxoqлўўСћўћўur~ƒˆ|z||zoqv„ЋŠcintqpoALJSgnHGECHGPMHCIHHBEGMMA?-JJNVY@HPN]wdqеўўСћўS~”‚|x‰‚z~vpoaahtpz„ƒqWSPE:@F8@CGANMCJLJIGMNVTTVZPmZ^S@YЪўўСћEcr‡Ž‡|xwr{„|pjgeirioapŽ‚„‡qE1GMNSJ;HGJJMOTJQGLI]YYad]`LF.gжўў€0J{tz‚wtmr}‡redkjbUY\nЫнЭД‹r:TnpnNENPVTQIQHLHCGLP`^badhxjd…їўўV9;]p‘}vt|xtkjmmncYaT^[Gi‘’ŽtuwJ>WOEILQF>:4CAGEOPWWYa`gdpjgq‚хў9+.;8h‹‚pqtwrgmotm\`bh}~z{}zЛЇwPNJ;AJSHHMMT]aedjddi„a‹ї44944>u–}Zhnnioxvq`VMHFVWppo‚ƒ”‰ŒMANbSTWPMSWOSLVSVVebb`bdk`eTЁ+,99NcOOjƒxqp}ŒridMTcY\biqir—ЂЉУ›uN4QWZ\ICHGJPNFQC[UdbcchuoSW2(2:AE1$ZmctŠ„‚œzbI:ShiodhdqŸЗНкР•zSN:OJH9CBACJBJ?JJVWWAFdkVd.0->IG+"g”ˆ‡ŒŠ|]žЗЎ^5QPgnm^]htˆЃШˆaexgW?8L<:@E>:>?I@I<7G1*5?gŒŽwnxƒЊƒZ[ighk\WOV`[dŠŽ’wpm\IWneE:3@@?JHGEFLTGFS-25<3;<;59?;W‹„e^t”–mgbjmhhZcY\OWrw‚™•›ŠYU—F>[AC:F?@B<82.OOLGNN€ўw=џўw;џўw:џўw9џўw4 џw2 џў€0џўw.џўw+џў€*џўw&џў€%џўw#џўw!џў€ џўwџў€"џўw#џў€$џў€&џўw(џўw*џўw,џўw.џўw/џўw 0џўw 1џў€ 5џ 4џўw5џўw6џў€7џўw9џўw:џ:џ:џ:џ:џ:џ:џўw;џўw=џ§wџ=џўwџ~џўў§§ўўћўўўћўў§§њ§§іљњњћљ§ўћўњњі§њћўўћ§§ћўўўћўўўћўўў§љљ§њќўћћўўя§љјњїєљњњљўўњљ§§ўўў§ўўј§њ§њ§њњћћћўњўћўў§ўўћ§§ўљћўћћўћўў§ѕњ§§љљјњ§ўћўўљ§њ§ўўћўўћјјћњ§§њћўўїћњњћўўћ§ўў№њўўћўўћўћўњњ§ћўњњ§ўњўќћўў§§ў§ўћ§љї§ўў§њ§њ§ўўўћўўњњўћ§§ўўў§љљўцњ§§ўћўў§њњ§њ§ўњњ§§ўћўўњњћўў§њ§ўўѕ§њ§§њўў§§њ§§ўћћўў§ћћўўћўўїћўњ§ўў§ћўў§ќў§§ў ўіћњћћњћ§§њўўѕљњњ§§њў§њ§ўўч§њљњћ§ћўўћўћћўћњ§ўњ§њ§ўћ§§ўњ§ўўњўў§іњћљћљњњћћўўўћўўў§ћћўў§§ўўћўўўћўўўћўўўћўўї§њњ§§њњў§§ўўћўў§ўіћ§ўўћўўћћўў§ќњўўћћўћіњљљњћћ§§ћ§§љњћћјњ§ўўўћ§§ўњў№§ўћўўћўћ§§ўћўњћўўћ§ї§§ћћђјњ§ћ§њ§њ§љљ§ћўў§ўї§њ§њћћ§ћўўѓћўћўћўњћљ§ћћўўћћњљ§ўўћћўў§ўўћўыћ§§њўћўћўўћћўћњћљ§ўћў ўєћўўњњљљў§њњўўє§њљњ§§ћћњ§њ§§ўћўўћўіњўўћ§њњ§§њњш§њ§љјњ§њљ§ћ§§ћ§ћ§њ§љјћљћћўў§§ўєњ§§њўўњљћљњўў§§њўўћўњ§ўњ§§ѕљўўћљ§ўўћњўўњ§ћєњљў ўјћњ§§ўўњћћќљћ§ўўўћўўћўјћўњћўўњўўўњ§§іњ§њљћўњ§§ўўўћ§§юћљљ§§ў§њљўўњ§ћљћ§ћћ ўїћўўћўўњњ§§ъўњњљњњ§§љјїљ§ўў§њ§§ћј§§њћѕјўћњ§ћљњњћўўіћўћўњњ§ўћўў§љ§ўўћіўћ§§ћћњ§§ўўљ§љ§§ћћљљ§§ћўўћћљ§§љ§§ўћўў§ўў§ў§§њўў§љ§ўўћ§ў§љљћљљ§§ўўіњљћјљ§§ћњ§§ўќћўћўўќњ§§ўў§ўњўў§ћњ§њћўўў§ўўћјўћ§§њ§њўўќњ§§ћћќњўћ§§њі§њ§њўўћћў§§ќўћ§ўўє§њ§§њ§§ўњ§§ўўчћњњ§§њўўћћўўћћ§њљћћ§њ§њћўўўћўў§§љ§њњ§їўћњљљ§њ§ўў§ћў§§јћўїјјљљ§§ћњўўћўўњњ§њ§§ўўћў§ўўћўўўћўўќ§њћўўўћўўђњ§§ўўњ§§њ§§њњўўњ§ћїєљ§§ўђћўў§§њўўћўћўћўў§ћњ§њћў ўњћўњљљњњў§љљў§ўўє§ћљ§§ћ§њћћњўўёћўўћњ§§љјљ§§љњўў§ћљ§њ§ўўћњћљљў ў§њљ§§њљўўўћўўњњ§ўўћўўљњў§§ўћўўўњ§§њќћјјљљћў§ўўўћўўњјљњљ§њњћўў§ћњўўўћўўњњ§њњћўў§љљњ§§ўў§§ў§ўїћў§ўўћўњ§§љў§§њ§ћњњў§ўўњњ§њ§§ўўњ§ћћ§њ§§ўњњ§§ўћўўѕљўўћўўњњ§њўўўћўў§§њљљќњ§§ўўўћўўјћўћў§§њ§§ўўћўўњ§ ўўћўўњ§ѕљ§њ§§ўћўўћўўљњћћ§њљ§§ўўћўўќћ§њўўњў§ѕўћўћўћњћћўћћўўњ§§ѓљњ§ўњњљњўћћў§§ўњўўњєўћћўћњўўћўћўўќ§њ§ўў§ыњўћўў§њўўњњјњњўў§њўў§§ўњ§§љњћњћљљ§§ёўћўњ§§њљ§њљћњ§ўўћј§њўўћњ§ўўўћўўї§њўўћўўћўўђ§њњўњњћњњћљ§ћўў§њўћьљћћ§љњ§њћљљњ§њљњљљњљљў§ўўћўћњ§ўћ§§ћњ§§њўўћ§ўћўўљњ§ћўўћўўљћ§§њ§§љљќњ§њўўћ§ћўћ§§ћ§ћњ§ўњўўїћўў§љј§њўўњњ§§љњўўх§љ§ўў§њ§њ§ўћћўњћћљ§њ§§њ§љћ§§їћў§њ§њўўћћ§њћјјћћњўўћћўў§§њњўћўљўў§њ§єљњ§ўўћўў§ўћўў§њ§їњ§ћљљњ§§ўўљї§ўўљњў§§њњ§ўьћў§њјњ§ўўљњњўў§њ§ћў§§љњ§ќњ§§ўўўћўўњћ§љћ§§њ§ћўўўћўўўћ§§јњ§њ§њ§§њњў§њљњњ§ьњ§ўў§њ§ћљљ§§њ§§ћ§§њўўђћњњ§њљћљћљ§ўў§§ўї§љћњњ§њњ§§ѕњћўў§њўўћў§§ќњ§њ§§њћўћњ§ўўўћўўёћўў§њ§њ§ўћњ§њ§ўў§ўќћ§§ўў§њљћћљћ§§ќљ§њ§§§ћњўў§ќњћў§§№њ§§ў§§ўўњ§§њћљ§ўў§ўњ§§ўїњ§§ћћњ§ћўўњ§љсћњ§§њњўўћњљљ§ў§§њўљ§њ§§њ§§љѕњћљљћњ§ўўњ§ўўћўъ§њњћњњ§ўћў§њњљњ§§њћћљ§§юњўўћўўњћ§§ў§§ћћ§њўўђљњ§ћўњ§§њў§њљћћљ§юўњ§њ§ћћўў§њњ§јњћ§ћћэљћ§§ў§ўўћћўўћўћўћћўў§§ћљљќјћљћћ§єћў§њўўњћ§§њўўѕћўњћћјљћљћ§§їћљ§§ћњњ§ўў§іњ§ћўћњ§њћўўћіўћўў§ўљ§њ§§§ўћўўўћ§§њ§ћњ§§ўќћ§§ўўѕћ§ћљћ§§ў§§ўўљ§њ§ўўћўўўћўўы§їљ§љљјјљњњ§§ћўў§§ўћўў§ўћўўћљў§§њ§§ўўћ§ћўњ§§ќњ§њўў§ћќ§љњ§§ќњ§љ§§іњ§њ§ўћћўћўў§ўњўўћўњњ§њ§§ўўіћўўћўћўўњ§§єћ§ўњњ§љ§§њ§њњїўћћўњљњ§ўўцњ§њ§њљјјѕїјљ§њјћљћћј§ўўћћўў§ћ§љљћљњ§њљљјћћј§њљјљ§њўў№§љјћ§ћў§§ћћљћљњ§§њћљњ§ў§§ўў§§ў§ђў§§њћљћјљљћњњ§§ћќљћњћћћњ§љљ§§юњћўћћў§њњ§ўћћњћў§ћћљљћјњћ§§ўўюћ§ўњјјљљћљјћњ§ћћњћћѓљћћњ§њўњњ§ўћўўф§ћћљћљњњўў§§ћћљљћњњ§§ћћљћњњўўћіљњјјћљћј§њњъўљјћћљїјјћ§§јјљљєћћљћљљёћ§њљћћљљ§§њ§њ§ўўэћ§јћ§ўћћ§ћјљјјљ§њљњњ§ўўљљцјћ§§љјљ§§љћ§њ§ћў§ћ§њўћ§§ў§§лњ§ћњњїњњјћћјјїјљюљћњњ§јћљћњњљ§§њ§њњ§ўўѕљњ§љ§њўўћўћћїўћ§њ§§ћћњњъ§љћћјњљћњћћљњјњ|шћљњћ§§њђ§ћћњ§њ§§њ§ћ§§ћћђјћ§ўў§њ§њ§ўўњљљњљћ§њўў§§ўђњ§њ§SiРћћјјњїљљљјєјјљћњњ§ћњ§§§ћјїїјљ§ћ§њ§њ§§ў§ўњћћ§ћєў§§UVƒ§§ћјљћћљтћљћљ§љњњ§њ§љћўў§љњћ§ћўўћњ§§њњ§§ўњ§§цњ§љ§ўў§љљћ§§ўўU9:Зљ§љїћљљ§§ўљћћјљјњћўўњ§§ќћљћљљїјљћ§§њ§њ§§ўў§ўўэ§љљјјљ§ўmkSnцљћјљћљљќ§њјћћьњјћ§њ§ћљљћљћљћљћћљљћћїјљ§§њ§њљ§§љјњ§њљ§њ§ўў№]\J?pю§ћїљњљњњ§ћћіјљ§§љћљћњ§§њњ§њўў§§јњљјјљњ§ћћќљ§§ўўњы§њўNMI]r˜јљћјљћјћњ§§њњљћ§Йњћў§љњ§јјљњњљњ§њ§љћћ§њљћ§§њљљњњ>23G7<•ј§ћјњјїјљљјљјјљјјљјљїћўњѕјїњљїјћљљћћљњћљљјћјјљљјѕљљќїјјљљўћ§ћ§§ўўў§ўўќ§ў§ўўќ§ў§ўў§§ў§§ѕћ§ћ§ў§§њћ§ўў§їћ§ўў§ўћ§ўўќ§ў§ўўў§ўў§ћќў§ћ§§ўў§ўўў§ўўў§ўўћјњљњћћ§§ўўњ§ћћ§§ўў§ўў§§ўў§ўўіћ§§ўў§ћ§§ўўў§ўўњћ§ћ§ћ§§ћ§ў§ўњћ§ћ§§ўўћ§ў§§ўўћћў§ў§§ўћ§ў§ў§§ќћўў§§ќћ§§ўў§ў§ќћ§§ўўјћ§ћ§ўў§ўў§ћ§ћћўў§§ўћ§ў§ў§§єўћ§§ў§ў§ў§§ћћў§ќћ§§ўўўћ§§ўћўў§ѕў§ў§§ћў§ў§ўўѕћ§ћ§§ў§§ћ§ћћ§ў§ўў§ўўў§ўў§ћћў§§ўўќ§ўћ§§ќћў§ўўї§њњљћћ§§ўў§јћ§§ўћ§ћўўєћ§ћ§ў§ўў§ў§ўўќ§ћў§§ўћћ§ћў§§ќћ§§ўўѕћ§ћ§њћњћ§§ўўћ§ўў§ўўќћ§ћўўќ§ў§ў ўќ§ўў§§ўћ§§іў§ћ§§ў§ў§ўў§ў§ ўћќ§ў§ўўрњћљћћ§ўўћ§ў§ћ§ћ§ћ§њћ§§ћў§ўў§ћ§§ўў§§ў§§§ў§ўў§§ћўўќ§ў§ўўь§ў§ћћњћ§§ћўћ§ћ§ћў§§ўўќћ§ћўўі§ўћ§ћ§њњћў ўћ§ћћ§ўўњ§ў§ћћўўў§ўўќћў§ўўў§ўўў§ўўі§ў§ў§ўћ§§ўўћ§њћћўўў§ў ў§ўјћ§§ў§ўћ§§ћћ§ўў§§§ћ§ўўў§ўўў§ўў§ўћ§§§ћ§ћћі§ћ§ў§њ§ћўћћњ§ћћњћўў§юћ§ўў§§ћ§§ў§ћњћ§ў§ўўњћ§ўў§ўў§§ћ§ћћ§ў§ўўўћўўњ§њћљћўўў§ўў§ђћў§§њћњћњ§§ў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўќћ§ћ§§ў§ўћўў№§ћ§њћћ§ћўћ§ўў§§ћћ§њћўўў§ўўў§ўў§јћ§ћў§§ћ§§ьћњћћ§§ўћ§ћ§њ§ћ§ћ§§ћњњўў§ћћ§§ў§ўў§ўћўўњ§ў§ўћўўў§ўўя§ћњњ§ћ§§ўў§ћ§ћћњћћ ўљ§ћўћ§ћў ў§ўћ§§ћўў§ћ§ўў§ўў§ўўрћ§§ў§§ћћњћћ§ћў§ў§§ћњњћћ§ў§ћ§ћў§ўўю§ў§§ћ§§ў§§ћ§§ў§§ћ§§ўќћў§ўўћ§ў§ћјњћ§ўў§ћ§§њћ§ћ§§ўў§ѕћ§ћ§ћўў§§ў§§ќћ§ћ§§ђћ§§ў§ў§§ћ§§ў§ўў§ўћћ§ћ§ўўќћ§ћ§§іћўў§ўўћ§ћўў§љћў§ћњњћћћ§ћ§§ўў§§ў§§ўћўўў§ўўћ§ћў§ўўњ§ўў§§ўўў§ўўў§ўўі§ў§ћћў§§ћ§§ќћ§§ўў§ўњћћћ§ћў§ўўіћ§§ў§ў§ў§ўў§ћћ§ћ§ўўў§ўўў§ўўў§ўўќ§ћћ§§ћўћїўћ§њћ§ў§ўўѓ§ў§§ћћњћћ§ў§ўў§ћ§ћћѕ§ћў§ў§§њћћўўђ§ў§ўћ§ћўћ§§ў§ўўў§ўў§ўј§ў§ўћ§§ўў§ўћ§§њћњўћў ўњ§ўћ§§ўў§ўќ§ў§ћћ№§ћћў§§ћ§ћ§§ў§ў§ўўљћ§§ў§ў§§ў§ўћ§§ћћ§ћћ§§ўћўў§њћ§ћ§§ўўю§ўў§њћћ§ћ§ћ§§ў§§ћўўў§ўўў§ўў§ў§§ў§§ћ§њћў§ў§ў ўўћ§§ћћ§ћ§ўўў§ўў§ќћў§ўўў§ўўќ§ў§ўў§јћ§ўћ§§ћўўю§ў§ў§ў§ўў§§ўћ§ћў§ўўљћ§ўў§ў§§§ў§ўўњ§ћћ§§ў ў§ѓћ§ћ§ћ§ћў§§ћ§ўўѓћ§ћ§ћ§ћ§§ў§ў§§ ўќ§ўў§§ђў§§ћ§§ў§ўћ§§ў§§ўў§§№ў§§ћ§ћ§ћ§ћ§§ў§њћћь§ћ§ћ§ћ§§ў§§ћ§§ўћ§ўњ§§ёў§ўў§§ў§ў§§ўў§ўўў§ўў§§ў§§ўў§ўў№ћ§§ў§§њљљћћ§ўў§ўў§ўћ§§ўў§ўў§ћў§§ќњћћ§§іћ§ћ§§ўћћ§ўўў§ўў§§ўћ§§њћ§§ў§ўўі§ў§ў§§ћў§ўўѕ§ў§ўў§ћ§ћ§ћћўў§§ўц§ў§ўћў§ўћ§ћ§њћћ§ћ§ћ§ћў§ў§ўўћ§ўћћ§§ў§њћ§ћ§§ўў§іў§§ўћ§ћ§ћўўў§ўў§єћ§ћћњ§ћ§ћўў§§§ў§ўў§§ћњњ§ћ§ўў§јћ§ћ§§ў§ўў§ўћ§§єћ§ў§ћў§ў§ўћўўњћ§ћ§ћ§§љћ§ћ§ћ§ћћ§ўў§ћћўќ§ўћ§§ќћ§§ўў§ў§ўў§§ў§ћ§ћћ§њћ§ћ§§ўў§њўѓ§ћ§ў§ћ§ћў§ў§ўўў§ўўіћ§ћ§ћ§ћ§ћ§§љў§ў§§ў§§ўћ§§ќў§§ћћ§іћўћ§§ў§ў§ўўќ§ў§ўўљ§ў§§ћ§ћћёњћ§§ўћ§ћў§ўћўњ§§ћћ§ћ§ўў§ўћ§ћ§ћ§§ћћ§ћ§ўўћ§ћў§ўўў§ўў§ўў§§ћў§§ћўўќћ§§ўў§ћњћў§ћћю§ћ§ћ§њ§ўў§ў§§ћ§§ў§§ђћўћ§§ўў§ћ§њћћўўшћ§ћ§ћ§ћ§ўў§§ћћњњ§§ўў§ў§ўўќ§ўў§§јћ§ћћњ§ћ§§ўў§ћћќўћћўў§јћ§ћ§ћ§љћћњ§ўў§§ ў§ўў§§ў§ђћ§ћ§§ћњћћ§ћ§§ўўќ§ћћ§§ћцњ§§ў§ўў§ћў§§ћ§§ўћ§ћћњћњћў§§ќћўћўў§ќћ§љћћњїћњ§ћўћў§ўўќ§ў§ўўў§ўў§§ўћћњзћњћњ§ћўў§§ўў§ў§ћ§§ў§ў§ў§§њћ§ћњћњ§ћ§њћћ§ў§§ў§њћ§ћ§ћ§§ўќ§ћ§ўўў§ўў§љўћ§ћ§ћўўњ§ўў§ћ§§јћ§§ћ§ћ§ўў§§ћўўћ§ћћў§ў§§ўў§ўў§§ўћћљ§ћћњњћ§§ћћў§ў§§§ў§ўў§јћ§ўў§ў§ўў§ђћ§ћ§ўў§§ўў§§ћ§§їў§ў§§ћћњћћ§ћћ§ћ§ћћљ§ћ§ћ§ћўўђ§ў§ўў§ћ§ћ§§ў§ўў§ћћ§ћ§ўўў§ўўі§ў§§ћ§њ§ў§§њћ§ћ§ћ§§ўћ§ў§ћўў§ѕћњњљљњћћ§§ћћќњ§ћўўў§ћћњ§ћж§њћњ§§ў§ћћ§§ў§ў§ћњћћўў§ћћњћњћ§§ћ§ћ§ћ§ћ§§ў§§јћ§ћўћ§ћўў§іћўћ§§ћћњ§ћћ§њћ§ћњњћћ§§ћњњѕ§ћўў§ћ§§ў§ўўўћ§§ўљ§ўўћћњћћњіљћћ§ўў§ўў§§њћєњћњћ§§њћ§ћњћћќњ§ћ§§ўю§ў§§њћћњћ§§ў§§ћћњћћ§їћ§њћћњ§§ўўњљ§њћњ§ћ§§ўћ§ћњћњњћ§ћќњћњћћњњ§§ўњћћ§ў§§њћўўіћ§ў§§ћ§§ў§§їћўўћћ§њ§ћћў§ћћъ§ћўў§њ§§ўў§ћўћ§ћ§ћњљњљљњјћњњљњћїўўѕ§ћ§њћњ§§ўћ§§ўћўўў§ћћў§ўў§ћўњ§§ћ№њћњњћћ§ћњћљњљ}эўўќњ§ћ§§њ§щћ§ћўћћњћњ§њ§ўўћ§ћ§ћў§§ћћ§ћ§ўы§ћ§ўў§ў§§ћ§ћUqЦўўњњљћћљњћњњћњ§§јў§ћћ§њњљљћњћ§ў§§ќћ§ћўўѓ§ў§§ћ§њћњ§ћ§ўўњ§ћ]\„ўўљњћћњћњћћ§§ў§§ўј§ўћћљћћўў§§ћ§§фћ§ћ§ћ§ћ§ћўћў§§ћћњ§ћў§[;4Оўўћћњўћ§ћўњњєћ§§ўў§§ћ§ћ§ћћёњћњ§ћ§ћ§ћ§ћў§ў§§пў§§ћћњњћ§ўumZmяўўњћњћћўћ§§ћњћљњњ§§ўњћћўњћћўњћћњњћ§ћћ§§ѕўћ§ћўћ§ћ§ў§§ўѓeiQ@wѓўўћћ§ў§§ёњћњћњњћ§ћћњћњ§ћћ§ўѕ§ћ§§ћњњћ§ћњњьћ§§ў§ў§ў§§ћ§§UQQ^t—ўўјњћњ§њ§ћ§§ћсњћћ§ћ§ћ§§ў§§ў§ћ§ћћљљћ§ћ§ћћњћћ§ћћ§ћ§јG?;L;Bœўўёњљњћ§ћў§ћ§њћ§§ћћў§њћўњћћћњћ§њћћњћ§ћњћўќ§ў§ўўѕ§ў§ў§ў§ў§ў§§ў§§ў§ўўў§ўў§љў§ў§ў§ўўћљўћў§ў§ўўќћў§ўўў§ўў§ћў§ў§ў ўў§ўўќ§ў§ў ўї§ў§ў§ў§ў§§§ў§ўўќ§ў§ўўљ§ћ§§ў§ўўў§ўўў§ўўў§ўўњ§ў§ў§ў ўќ§ў§ўўќ§ў§ўў§ўћўўњ§ў§ў§ўўў§ўўў§ўў§ўќ§ў§ўўі§ў§ў§ў§ў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ў ўў§ўўў§ўўќ§ў§ў ў§ћ§ў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўі§ў§§ћ§ћў§ўўў§ўўў§ўўє§ў§ў§ў§ў§ў§ўў§ўў§ўўќ§ћћ§§ўђ§ў§ў§ў§ў§§ћ§§ўўќ§ў§ўўў§ўўў§ў ўі§ў§ўћ§ћ§§ўўў§ўўў§ўўў§ўў§ ўќћў§ўўў§ў#ўў§ў ў§ўћўўј§ў§§ўў§ўўў§ўўў§ўўњ§ў§ў§ўў№§ў§ў§ў§ў§ў§ў§ў§ўў§ўћћў§ўћћўќ§ў§ўўќ§ў§ўўќћ§§ўўќ§ў§ўўў§ўўў§ўў§ћў§ўќ§ўћ§§$ўј§ў§ў§ў§ўўў§ўў§§ў§§ўў§ўўњ§ўћў§ўўњ§ў§ў§ўў§ў§ћ§ў§§ў§§їў§ў§ўћ§§ўўњ§ўћ§§ў!ўј§ў§§ўў§ўў§ћўћ§ћ§§ўњ§ў§ў§ў ўў§ўўў§ў ўў§ў ўў§ўўј§ў§§ћ§§ўўј§ў§ў§ў§ўўў§ў ўќ§ў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўњ§ўћ§ћўўі§ў§ў§ў§ў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўј§ў§ў§ў§ўўў§ўўў§ўў§ўіћўћ§ћў§ў§ўў§ўў§ў ўў§ўўј§ў§ў§ў§ўў§њћў§ў§ўўўћўўў§ў ўњ§ў§ў§ўў§љў§ўћў§ўўўћўў§ўћўўі§ў§ў§ў§ў§ўўњ§ў§ў§ўў§ ўј§ў§ў§ў§ў ўў§ўўћ§ўў§ўўђ§ў§ў§§ћў§§ћ§§ў ўњ§ў§ў§ўўќ§ў§ўўўћўўљ§ў§ў§§ўўў§ўўў§ўўђ§ў§ў§ў§ўћў§ў§ўўњ§ў§ў§ўў§јћў§ў§ў§ўўў§ў ўќ§ў§ўўј§ўћ§ћ§§ўўј§ў§ў§ў§ў ўў§ўўњ§ў§ў§ўўў§ўўўћўўњ§ў§ў§ўўў§ўўў§ўўў§ўўћ§ў§ў§§ў§ўј§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўўќ§ўў§§ўў§ўўі§ў§ў§ў§ў§ўў§іћў§ў§ў§ў§ўўљ§ў§ў§ў§§§ў§ўўў§ўўў§ў ў§ ўў§ўў§ћ§ўњ§ў§ў§ўўў§ўўё§ў§ў§ў§ў§ў§ў§ў§§ ўў§ўў§§ў§ў ўў§ў ўє§ў§ў§§ћ§ўў§ў ўє§ў§§ћў§ў§ў§ў ўќћ§§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўє§ў§ў§ўћў§ў§ўўќ§ў§ўўњћўћўћўўњ§ў§ў§ўўў§ўўі§ў§ў§ў§ў§ў ўњ§ў§ў§ўўѓ§ў§ў§ўћ§ћў§§ўўќћ§ћўўў§ўўј§ў§ў§ў§ўўњ§ў§ў§ўўќ§ў§ўўј§ў§§ўў§ўўў§ўўђ§ў§§ўў§ў§ў§ў§ў ўє§ў§ў§ў§ў§ў§ўўъ§ў§ў§ў§ў§ўў§§ўћ§§ў§ў§ўўў§ўўњ§ў§§ћ§§ўў§ўў§їў§ў§ў§ў§ўўў§ўўђ§ў§ў§ў§ў§ў§ў§ўўў§ў ўњ§ў§ў§ўў§ўў§ўўў§ўў§§ў§§ѕћў§ў§ў§ў§ў§§ўќ§ў§ўў§§ў§ўўў§ўўњ§ў§§ћўўј§ў§ў§ў§ўўј§ўў§§ў§ў ўћ§ў§ў§§ћў§ў§ўў§ўљ§ў§ў§ў§§ћ§ўћ§§ўў§ў ўј§ў§ў§ў§ўў№§ў§§ўў§ўћ§§ў§ў§ўўіћў§ў§ўћ§§ўўќ§ў§ўў§љћ§ћўћў§§§ў§ўўћ§ў§ўћћ§ўћ§§ќћ§§ўўњћў§§ћ§§ќћ§§ўўў§ўўњ§ў§ў§ўў§ўћ§§ћћ§§ў§§љў§ў§ў§ўўі§ў§ў§ў§ў§ўўў§ў ўј§ўњў§ў§ўў§§ў§§їўћў§ў§ў§ўўў§ўўјћ§ћў§ў§ўўќ§ў§ў ўўћ§§ћ§§ў§ўў§ўќ§ў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўўъ§ўћ§ћўћ§§ў§ў§ўћў§ў§ў§ўўњ§ў§ў§ўўњ§ў§ў§ў ў§§ў§§ќў§ў§§љў§ў§ў§ўўќ§ў§ўўь§ў§ўћўћ§њћћў§§ћ§ћ§§ўўўћўў§ўћ§§ќў§ў§§іћ§§ў§§ћў§ўў§ћўц§ўћ§ћ§ћў§ў§ў§ў§ў§ў§ў§ў§ў§ўўў§ўўў§ўўќ§ўћ§§ђћў§ў§ў§§ћ§ћ§ћ§§ўќ§ў§ўўќ§ў§ўўў§ўўљћ§ћ§ћ§ћћ§ў§ўўт§ў§ћњ§ћ§§ўћў§§ћўћ§ћ§ћ§§ў§ў§ў§ўў§ўћ§§ўќ§ўћ§§єћў§ў§§ћ§§ў§ўўхњў§§ћ§§ў§ў§ў§§ћ§ћўњћћў§§ћ§ћћю§ћ§ћ§ћ§ћ§§ў§§ћ§§ў§§§ў§ўў§ўјћ§ў§ћ§§ўўќ§ў§ўў§ѕўћўћў§§ћў§ўў§ўў§ўўї§ў§ў§ћњњћћў§ћћќ§ћ§ўў№§ў§§ћ§§ў§ў§ў§ў§ўўњ§ў§ў§ўўј§ў§ўћ§§ўўэ§ў§§ћћњ§ћўћ§ћћњћ§ўўљ§ў§ў§ў§§љў§ў§ў§ўўљ§ћ§ћў§ўўќ§ў§ўў§ўќћ§§ўўќ§ў§ўўј§ў§ўbƒбўўћ§§ћўћћ§§ў§ўў§№ћ§њ§ћў§ў§ў§ў§ў§ўўі§ў§§ћ§§ў§ўўњ§ўqt—ўўђћ§ћ§ћ§ћ§ћ§ћ§§ўўќ§ў§ўўћўј§ў§ў§ў§ўўњ§ў§ў§ўў§ў№rJIЪўў§ћћ§§ў§ўў§§ўш§ў§ў§ўћ§ћ§ћў§ўћ§§ў§ў§ў§ўўў§ўўђ§ў§ћћў§ў…ƒj§ўўяћ§ћ§§ў§§ћ§ћћњ§§ў§§ўћ§§ыћ§ћ§ћ§ћ§ћ§§ў§ў§ў§ў§ў§§љў§ў§ў§ўўњwriVƒўўъћ§§ў§ў§§ћ§ћ§њ§§ў§§ћ§§ўўќ§ў§ўўѕ§ў§ў§ћћ§§ў§§ўѕ§ў§ўccbu‡Ћўўўћ§§ўў§§§ўћ§§іћ§ћў§ў§ў§ўўч§ў§ў§ў§ћћў§ў§ў§§ћў§§ћў§ў§§їўTOM^JNЈўўћіњћ§§ў§ћ§ћ§§§ў§ўў§ќўњ§ћћ§ћћ§ћ§ћћ§ќњћћ§ўўћўўёћ§§ўћў§јљ§ўў§§ўў§ўћ ўњќћ§њ§§љўћћўўћўўћњ§ўћўў§ђљ§ўћўў§§њњ§§ћўўњяћ§§ўў§љїљ§§њњ§§њўўўњ§§ќћўў§§ўљћ§§ўўњўўћўшћўћ§§ћћ§њ§§ўў§ћ§њ§њ§§ўњ§§ўњўўёћњњ§ћњћ§ў§§њ§§ћћљљћ§§њ§ўўљћњћў§њ§§ўњўўўњўўј§њњћў§њћћљєўњњ§љћњўјљљ§§ўўћўўєћњљ§ў§§њњ§§ўўћєљ§§њљ§§ўў§§ўўњ§љ§ўўўћўўьћўў§§њ§њ§њњ§§њ§§њ§§ўўћўњ§§њўўў§ўў№ћўўћ§§љ§ў§љљћћ§ўў§юњ§ћўћњњ§ўўћћўўћўњљљњћљћ§њўўќ§њ§ў ўѓћљњ§§ћњљњљњ§ўўћў§ўў§§ўјћћ§љћ§§ўњўўє§њўў§њўћњљњўў§њљћ§њ§ўў§њљ§§ыўњ§њњ§§ў§§ўўњљљњљљћћ§§ўћўўѓ§ѕљћљўўњ§њћ§ўўїњ§јљњћ§њ§§ўљ§§њў§їњ§§ћўў§ћўў§њўћі§ўў§њўў§§ўў§ћ§ѕњ§§њњ§§њћћўўў§ўў§њ§ўњ§њћў§љ§ўўќ§њњ§§єњ§љљ§ўў§ћ§ћўўћћў§љ§§ћ§њ§њњё§ћјћћњ§ў§§њ§њћўў§ўўћўўіћ§§ћљћ§ўћўў§јњ§§њњ§њ§§јњ§ћћ§њњўўѕћ§§ўљ§§љњ§ўўўћўўјљњўћў§њўўѕњћ§љїњјћјљ§§њіљјєїєѕћ§њ§§њ§§ўњњїў§љјјњљњўўћћўўћўўяњ§њњљ§§њўћўћў§ўў§§љћ§ўћў§§ўўћ§§ўњ§§ўќљў§ўўўњўўўћ§§ћ§ўћўўўћўўњўќњ§§ўўћћўўћўўмћў§њ§§њ§њ§ўўјјћћјјњљћ§њ§§јћјјћњњўћў§§ўїћњ§§ћњўў§§њ§§ў§§ўј§ћћўћўў§§ў§њњ§§ўћўўћў§њљ§§јљћћ§ўўћўў§§њўў§ћњўў§њњ§§њљ§§ёћўћўў§њ§њ§§њ§§ўўщ§њўў§§ћ§§ўўњ§њўћў§љ§ћў§§§ўћў ўўњ§§ўў§љљ§њ§ўўћќўњћўў§§ўћўўё§њўћў§§ўћў§ўћў§§њ§§њўў§ў§њўўћўўяћўћћў§ћћљ§ћњњ§§њўў§њј§§§њ§ўўўћўў§ ўћўў§ўўћ§ўћўўћњ§§њ§§љўћўћњњ§§іњ§ћ§§њћўћўўїњљњ§§њљћўўў§ўўїћњ§љј§ћў§§ћљ§њ§ўўї§њ§њ§њўћ§§§љњ§§њњљјћћўў§ћњ§ўћўўяћ§§њ§њ§њљњ§§њћљ§њњњў§њ§§ўўо§њ§ћј§њњћў§њњ§ў§њљ§§љ§њ§§њ§њњўў§§ўўћ§ў§њњ§§љ§ўўћћ§§њўўјњ§љњљћ§ўўєћў§њ§љњњ§§њ§§ћјњњћўў§ўњћћ§ўњ§§ўўћўўњћўўњњ§§ќљўњ§§ќњўњўў§ћў§§њњљњњ§ўў§іћўўћњњ§ўћўўўћў ў§њњ§њ§ћўўўњўўњћ§§ўћўўњћўў§§ўўћњ§ўўњ§њњў§ўўўћўў§§њўўї§ћљћљ§ўў§§ќћљњўўлћљ§ўћўћў§љ§њњ§ћўўћў§ўћўў§ўћ§њ§љљћ§§њ§§њ§ў§ўњ§љц§ўў§ћњћўў§ўћњљћњћљљј§ћўўћўўњќ§ўњ§§ўўћўўћєњљћљћћљћљљњ§§ыњ§§ћљљњ§љњў§§ћјљљ§ўў§§јњћјљљњњ§§ћљћ§§ўўњћўљ§ §§ћў§ §юњљ§ўўћўўњ§њњљљћ§ћљљћј§ћ§њўњ§јјљљћ§§ћўњ§§јћљ§њ§§љ§§іњ§§ўћћ§њћўўјћ§§њљўўњњ§ўћћўў§ўўєњћљћљњ§§њ§§ўў§ўч§ўўћњњљ§ћўўњўўћў§єљ§§ўўњ§§њ§§њ§љљђћњњ§ўў§ў§§їњћўўу§љ§§ўљјћћ§љњњ§ўћўўћћњћћњћўўћ§§љњ§§ћћј§§љћјљ§ћљћћќњљћ§§њ§§њ§ў ўќ§њ§ўўјћўў§њћљ§§іњ§§њ§њ§§њ§§ўљћћ§њўћўћћўўћ§њљ§њњ§ќњ§§ўў§ћј§њњ§ўўћўўќ§ў§ўўњћўўњњ§§ўњўўљ§ў§ў§ћєљћњ§§ўўњљљњ§§ўљ§ћљ§њњ§§ўўњ§§їћљњ§ў§§њ§§ѕљ§ўўћћњћћ§њњ§ќј§§ћћ№љјљ§§њњ§ћ§§ўў§§ўўљћ§§њ§§љљјћ§ћљњўў§§њћў§њњ§§ўњ§§ѓњљ§§ћўўћў§њљћћіљњ§ћљ§ўў§ўў§њў§ўўњњ§ћљљ§§љ§ўњћўў§§ўў§ўњўўўћўў§ўј§љљ§ўў§ўўѕ§љњњјїјћњ§ўўњ§ћ§ўћњњ§§ћўўј§ћўћўћ§ўўњђ§ћўљ§њ§§њњ§§љ§§ўњ§§љыћ§ўў§§љљ§њњљћўў§§ћћў§§ќњўўћћўљћўў§§љ§§ѓњ§§љћ§ўћўљ§њ§§љњўњ§§њўўў§ћћљљјћ§ўўћўўх§ўћ§§љљћћљљњ§ўўњ§§њњљњ§§ћ§ўў§їљћћњ§љ§њўў§яћјњљњњўћўўћў§ћјћ§§ўћ§§њїўљћћљњ§њ§§ўњћўћўў§§њњ§§њјљљѓњ§§ўў§ћћў§§ћљљ§яњћћњњ§њ§њљјћјјљљ§§ўўћњњ§ёў§њћљњ§ћў§§љћљћћ№њ§њњ§њ§њ§§љ§њњў§§ћњ§ћњ§§їњћњњљљњњ§§хћўњљїћљљћ§љјїѕјћљњўўњљљћћњ§§ѕњ§§њ§§ћўўћўў§ў§њћ§њ§њ§§ўћўїњљћјћћљљћћёњћњ§њњ§§њљ§ў§§ўўњ§ќњћў§§ўњ§§љўќћјћ§§ћўљ§§ў§њ§њў§ўўя§љћћ§њњўў§§ўўћ§њ§§шћўў§њњ§њ§§њ§§њћў§њ§ћћ§§ўўь§њўў§њ§њњ§§ћћљ§њ§љљћћўіћўўњ§јћћ§ўў§§ў§§ћљ§ћјїїћ§§ўњўўў§ћћ№ј§§љњѕљњљћ§§њ§љћћќў§њ§§љќћ§§ўў§гљ§њњўў§њ§њ§§ћљ§§ћћњљїјћћ§љјњїїљњјњјћ§ћћљћљљћўўј§ћљљјјњћћїљјјћјњћњ§§ќћљњјјєїјљјњњјјћљњјјћљћћ§њњћћ§ћћњњ№јћћўћ§§њ§ўў§§ўў§§ўћћўњњ§§јљћ§њ§§њ§§ьћњ§њўњљћћљљћљ§§ў§§ў§§ўўћ§§іћїјїјјћ§њ§§жњ§ћћ§њ§ћјјљ§§њљ§ћўљ§§љњ§ў§ћћљћњ§њ§§ћ§§ћјњўўћўњ§њ§§њ§§љћљј§ўњ§§ќњ§љ§§яњ§§ћ§њћў§њ§§љ§§ћ§§ўј§ўћ§ћјњћћ§ѕњўљњјњљљћљћћћљјјљ§§ћљјњјјћљ§§њ§ѕњљћћљњњљњ§ўў§њљћћљљћћ§§њ§§ьњћљњћћљјјњњјњњїљїљїњњјчњљљ§ћћљћњњјїїљњљћћљјјўњњ§§ўљ§§ў§њ§ћћјњ§љћ§ћћјјъњјїјљћћјњњљћ§§њ§§ћ§§ћјјнњљћћњњ§§њњўћ§љљў§њњћ§ўўњ§ћ§њ§§њљјћ§§ўћњњљђћњїјїљћљїїњћћ§§ѕљ§§љћћњ§ћљћћњўћў§§ћћєљњњљћћљћњ§§ћћњ§њ§ћљњњѕјњњјћљљїїљћћљ§ћ№§њ§ћўў§ћљ§њ§ћјљ§§јўњ§ћњ§њ§§њї§њњ§љњњћ§§ѓљћћјјњћ§ћљћћ§§ўїњ§§љ§§њњўўѕ§њ§§ћћљљ§§ўўўћ§§ђћўўћњўњў§§ћљћ§§ћљћўњ§§ѓў§ћљњ§ўњ§§јћњњќћўћўў§єћўњ§ўћ§ћљћњ§§ѕћљћћљјјїјћљљ§љёњљћљљћљљ§ўўњ§ћ§§ў§ћ§ўўї§њћћўў§ћўўќћ§§ўўў§ўў§їўћ§ћ§ћ§ћўўў§ўў§ўћўўў§ўўєћ§ћ§ћ§§ў§ўћ§§§ћ§ўўѕ§ў§§њ§ћўў§ћћ§§ћ§§њћ§ўў§ўў§§ћ§ўўќ§ћ§ўў§§ћўўў§ўўў§ўўћ§ћњњ§§њћў§ћњ§§ћљў§§ћ§§ўў§јћњ§ћћўћ§§ўћњњјћњћ§§ћ§ўў§ќћ§§ўўѕ§ў§ў§ўћ§ўў§§њћў§ћћњ§ў§ћћќ§ћћўўў§ўўў§ўў§§ћ§§ўћ§§ќћў§ўўќ§ћ§ћћўћ§ћў§ўўі§ў§ўў§§ћћўўў§ўў§њћ§ћ§ћ§§ќћ§ћ§§ўћўўў§ўў§ўўћўўќ§ў§ўўњ§ћўћўћћ№њ§§ўў§ћ§ћў§ў§§ћўў§ћјњћњ§§ў§ўўј§ў§ўћ§ћўўў§ўў§ћћљћ§ў§§§ў§ўўф§ў§§ћўћ§ћ§ћ§њћњћњ§ћ§ћ§ћ§§ў§ўў§ў§ўѕ§ў§ўў§§ћћњ§§ў§ђўћћ§ћ§ћў§ћ§§ћ§§щћў§§ўў§ћћњњћћ§ћ§ўў§ўћўћћўљ§ћ§ў§§ўўў§ўў§эћљћћ§ћ§§ўћ§ћ§§ў§ўћ§§јћў§ўћў§ўўј§ўў§ћ§§ўўљ§ћњћћў§§эў§§ћў§ўћ§ћћњ§ћ§ћ§ћ§§ћў§ўўі§ўћў§ў§§ћ§§ѓћ§ћ§ћ§ћ§§ў§§ћћўќ§ћ§ўў§№ћ§ћ§ћћў§§ўћўћў§ўўѓ§ћ§ћ§ћ§ћўў§ћ§§ћј§њњ§ћўћ§§ў§ўћўўў§ўўћ§ўў§ћћ§њћўўњћ§ћ§ћ§§њћ§ћ§ћ§§ьњћћ§§ў§ўў§ћўў§ћў§ћ§ў ўљ§ўў§§ў§§ўэ§ўћћњљњњ§ћћ§ћ§§ћњћљљћў§ћћ§§ћў§§їўћћњњљћ§ўўў§ўўў§ўў§јћ§§ўћ§§ўўљћў§§ћ§ћћ§ћў§іћў§ўћ§ћ§ћ§§ўўћўўў§ўўё§ћ§њћћ§ћ§ћў§ў§ўў§§ў§§љў§§ћ§§ўўќ§ў§ўўћ§ў§ў§§ѕћ§ћ§ћў§њњћњњўљћћњ§ћ§§ћњњ§ўќћ§ћўў§ћі§ў§§ћ§ћ§ћ§§њћўћ§ћўўўћўў§§ћ§ўўќ§ўћ§§ўћўўђ§ў§ўћ§ћ§ћњњ§§ўўјћ§§ў§ў§ўўњћ§ћ§ћ§§љћ§ў§ћ§ўў§њћ§ћћ§ўў§іў§§ћњћ§ўў§§ўєћўћў§§ћ§§ў§ўўш§ў§ў§ў§§ћ§ћў§ў§§ўћћ§ћў§ўўњ§ўћ§§ўў§ўћћ§§ў§§ћў§§ћ§§ў§єћў§§ћ§ћ§§ў§ўўі§ў§ў§ў§ў§ўўєћњњћћў§§ћ§§ўў§ќћ§ћ§§ўў§ўўќћ§§ўўј§ў§ў§ў§ўў§§ў§§ў§§ћ§§ѓћ§§ў§ў§§ћ§ћ§ћћ§§ў§ўўј§ўў§ћ§§ўўњ§ўћў§ўў§іћ§ћў§§ћ§ў§§сў§ў§ўћ§ћ§ћ§§ўћ§ћ§ћў§§ћ§ћ§ћ§ћ§њўўўћ§§ўќ§ўћ§§їћ§§ћ§њћћ§§ўў§§ћўћћ§ћњ§§ўўћ§§ћўћ§ћ§§іћ§ћ§§ў§§ћўўў§ўўўћ§§ћћ§ў§ўўѓћ§§ў§ў§ў§§ћљћћўќ§ў§ўўјћ§ћў§§ћ§§єћ§ћ§ћ§ћ§љљњўўї§ў§ў§§ћ§ўўјћ§ћ§ћ§ћўўц§ў§ў§ў§§ћ§ћў§§ћ§ћ§§ў§ў§ў§ўў§єћ§ћ§ћћ§ў§§ћўўћћ§ћ§ўў§ўћўўў§ўўє§ў§ў§ў§ў§ўћ§§ўў§ўўј§ў§ўў§ћўў§§ћўўў§ўў§ўў§§љў§ў§ў§ўўшћ§§ў§§њћњћћў§§ћ§њћ§ў§ў§ўўўћўўћ§ў§§ў§§ўќћўў§§ћћњ§ћ§ћћ§ѓћў§§ћў§ў§§ћ§ћћ§ћўћћ§ўўјћўў§ћњ§ћћ§ўќ§ў§ўў§іћўў§ћ§ћў§ўўн§ўў§ћњћћњћњћћ§ћ§ћ§ћ§ћ§њћћ§ћћ§ўћћњ§ћћѕў§§ћ§§њњћћ§§ѕћ§ћњћћўў§ў§§оњћњћћ§ћ§ћ§ћ§ћ§ћ§ўўћ§ћ§ћ§ћ§ћ§ћ§§ўћўў§ћњњ§њћћўўћїў§§ћ§§њњћћїњ§ћў§§ћ§ћћ§іћўћ§ћ§ћ§ћ§§ўћўўњћ§ўў§ўўї§ўў§ћ§ўў§§ўћўўњ§ўћў§ўўц§ў§§њћњћ§§ћ§ћ§§ў§ў§ћћ§§ўћўў§ћў§ўў§§ўћњ§ћў§§ћћ§§ћ§§љћ§ћ§ћ§ћћўњ§§щўћў§§ў§ўў§ўћўћ§§ћћњњћў§§§ў§ўўю§ћњ§ўў§ўћ§ћ§ћ§ћћњћћя§њ§ћ§њћњћњћ§ћњ§ћ§§јћ§ћ§ћ§ћўўў§ўў§ў§љњћ§ћ§ћ§§њћ§ћ§ћ§§ќћ§ћњњјћ§ћ§§ў§ўўќ§ў§ўўќћ§ў§§ўћ§§ќћў§ўўљ§ћћњњћ§§ўњћўћў§ўў§ьћ§ћ§ўў§ћћўћ§ћ§ўў§§ћўўфћ§ћ§њћњћњ§ћ§§ў§ћћ§ћ§ћў§§њћћ§§њћ§ћ§ћўў§ћћ§њћ§§§ћ§ћћ§ўћўўћ§њћћ§§ўћ§§ћјњћћњћ§ћ§§јњ§ћўў§ћўўљ§ўў§ћ§ћћўњћћ§њўћ§ћў§§њћ§ћ§ћ§§§ћ§ћћўїћ§ћњњћћ§ћћ§§ўћўўўћ§§ўћўў§љњћћ§ћ§ћћ§ў§ўћўўќћ§§ўўќ§ў§ўўљ§ўћ§§ўћћ§ђўћў§ўћћљљњљњћ§§ўћў§іћў§ў§ў§ўћўўђћў§ў§§ћў§ўћ§ћ§§њћ§ў§ћ§§ѕћ§ћћњ§§ўћ§ћћ§ў§ўћўўћћ§ћ§ўўў§ўўћј§ћ§ћ§ћ§ћћў§іћ§§ў§§ћ§§ўўћўњћћ§ў§ўўћћўў§ћћіњћћ§ћў§§ћ§§јў§ћ§њ§§ўўю§ћћ§ћ§ћћњћ§§ў§§ў§ўў§јћњњљћ§§ўўў§њњї§ћ§њ§ћ§§ўўђњћћ§ћ§ћ§ћ§ћ§§ўўў§ўўњћ§ћ§ћ§§ћљ§ћ§§ўћўўќћ§њћћљ§ћ§§ћњ§§ћќњћ§ћћ§§ћўў§ўћ§§яњћ§ћў§§ћћњћњћњ§ћ§§мћўћ§§ўћ§ћ§ћў§§ћћ§ў§§ћћ§§ћ§ћ§ћў§§ћћњћћюњљљњњћ§ў§§ћћњћ§§ћ§§ћћ§ћ§ўў§јћў§ўћ§ћ§§іћ§ћ§ћ§ћ§§ўўћ§ў§ћњњћ§њћњњї§ћ§§ћћ§ћ§§ўћўў§јћ§ўў§§ћ§§їћ§ћ§ћ§ћћўўю§ў§њћ§ћ§њњћ§ћ§ўўћ§§ўћ§§№ћў§ўћћњћћ§§ўў§ћўўєћ§ћ§ћ§ћў§ўћ§§јћ§ћ§§ўў§§ћњћћ§ўў§ўў§§ќњћћ§§ћјњћњў§ў§ўўс§ћ§њћћў§ў§ў§ўћўћ§ћўў§њ§њћњ§ћ§§ўўўћњњ§ћјљјјљћњћ§§ћњјўћ§ћ§ћ§ћћќњ§ћўўїћ§ћўћ§§ў§§ћђ§ћћњњјљњћњ§ћњљљіјљњљњњ§њњћћ№њў§ўћњћћњњљћњњћњњѕљњ§ћ§ћ§њћљњњў§њњќћњљњњїћљ§њњћњњ§§ћњљњўё§ћ§ћўў§ћўў§ћ§ћўў§ћ§§ћ§ћћ§іћ§ћ§ћ§њ§ћ§§ћўњћћ§§ўћ§§цћў§ўћ§ћ§ћћњњћњњћћ§ћ§ћ§ћћњ§§њћ§цўћў§ўћ§ћ§ћўћњњћњ§ћ§ћ§њ§ћћ§§ўќћ§ћ§§їћ§њћ§§ў§ћћ§ќћ§ћ§§ћх§ўўћ§ћ§ћ§ћўћ§ћ§ћ§ўў§ўў§§ўћњњѓћњћћ§ћ§§ў§§љћћњђћњћњњћ§ћ§њћњљњњћ§§ћ§§№ћ§ћ§ћ§ћћњћљљћ§ћўў§§ћњњ§ћњћћ§љњћ§њћћњњ§љњљљїјљјњљљњљњњкљћћ§њћћњљњњљљјљћњћћњњў§§ћ§ћў§§ћ§§ў§§ћњњњ§ћћњ§њњьљњћњћњљљћњ§ћ§ћ§њ§ћћњњћљћћњ§§љћ§§ўў§ўў§јњ§ўў§§њ§§іћ§ћњњ§ћ§њљљћїњљљњћћњћљљњќ§ћ§ћћњ§ћћњ§ћћњўю§ћћњћњћ§§ћћњћњ§ћ§њњ§ћњ§§§њћљљ§њљњњћјљћћњњћњћћє§ћ§њћ§§ћў§ўћћ§ѕњ§ћ§ћ§ў§ћћ§§ќћ§ћ§§ћљљњ§ћ§ћћњњэ§њћњћћ§ћў§§ћ§ў§ћ§§ўў§ёћњњћћ§ћў§ўў§ћ§ўўў§ўўєћ§њћњ§ћ§ћ§њћћъњћ§§ћ§ћ§ћўћњћ§ћўў§ћ§њ§§ўѕ§ў§ўћ§ћ§ўў§§эўћњћњ§§ћ§њћњњћ§њћњћћћў§ћ§ћћ№§ћњћћњћћ§§ў§§њ§ћўў§ўўќ§ўћўўў§ўўў§ў ўў§ўўњ§ў§ў§ў ўў§ў ўњ§ў§ў§ўўў§ўўў§ўў§ў§іћ§§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўўў§ўў§§ў§§ў§§ў§ўўќ§ў§ўўњ§ў§ўћўўћ§ў§ў§§§ў§ў ўњ§ў§ў§ў ўў§ўўј§ў§§ћ§§ўўљ§ўћ§§ў§§ўў§ўў§љў§ў§ў§ў ўћ§ў§§ўўў§ў ўќ§ў§ў ўќ§ў§ўўі§ў§ў§ў§ў§ў ў§§ў§ўўў§ўў§ќћ§§ўўќ§ў§ўўў§ўў§њћ§ћ§ћ§§ ўў§ў ўі§ўћћ§ў§ў§ў ўў§ўўј§ў§ў§ўћ§§љў§ў§ў§ўўў§ўўў§ўўќ§ў§ўў§§ў§§§ў§ў ўќ§ў§ўўњ§ў§ў§ўўђ§ў§ў§ў§§ўў§ў§ўўєћ§ћ§ўў§ў§ў§ўў§ћќў§ў§§ћў§ў§ўўќ§ў§ў ўќ§ў§ўўќћ§ћўўў§ўўў§ўўј§ўћ§§ў§ўўќ§ў§ў ўђ§ў§ў§ў§ў§ў§ў§ўўў§ўў§ўє§ў§ў§ў§ўћў§ў ў§ћў§ў§ўўј§ў§ў§ўћ§§ўќ§ў§ўўў§ў ўњ§ўћ§§ўўь§ў§ў§ў§ў§ў§ў§ў§§ћў§ўўў§ўўќ§ў§ўўў§ўўћ§ўћћ§§њў§ў§ўћћљ§љ§ћў§ўўќ§ў§ўўў§ўўњ§ўћў§ўўќ§ў§ўў§ўќ§ў§ўўќ§ўћўў§ўћ§ў§ў§§ ўі§ў§§ћў§ў§ў ўў§ўўќ§ў§ўўњ§ў§ў§ўўћў§ћћє§ћў§ў§§ћўћ§ўўў§ўўќ§ўћўўі§ў§ў§ў§ў§ўўў§ў ўќ§ў§ўўќ§ў§ў ўћ§ў§ў§§ўў§ўўђ§ў§ў§ў§ў§ў§ў§ўў§§ў§§§ў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ўўќ§ў§ў ўќ§ў§ўўћ§ўћ§ў ўў§ўўў§ўўў§ўўў§ўўј§ў§ў§ў§ўўў§ўўњ§ў§ў§ўў§ўќ§ў§ўўј§ў§ў§ў§ў ўў§ўўў§ўўњ§ў§ў§ўўі§ў§ў§ўћў§ў ўњ§ў§ў§ў ў§ўј§ў§ў§ў§ўўў§ўўќ§ў§ўўљ§ў§ў§ў§§ўќ§ў§ўўѕ§ў§ў§ў§ў§ў§§§ў§ўўў§ўў§§ў§§§ў§ўўї§ў§ў§ў§ў§§љў§ў§ў§ўўў§ў ўј§ў§ў§ў§ўўў§ўў§ќћ§ћў ўы§ў§ў§ў§ў§ў§ў§ў§ў§ўћ§ўўќ§ў§ўўњ§ў§ў§ўўі§ў§ў§ў§ў§ў ўњ§ў§ў§ўўў§ўўќ§ў§ўўў§ўўњ§ў§ў§ў ўў§ўўў§ў ўў§ўўў§ўўў§ў ўў§ўў§ў§§ў§§ўў§ўўњ§ў§ў§ўўў§ўў§§ў§§§ў§ўўќ§ў§ўўў§ўў§§ў§§ўўћўў§§ўћ§§ўќ§ў§ўўќ§ў§ўў§ўћ§§ѕћ§§ў§ў§ў§ў§§§ў§ўўћ§ћў§ўўѓ§ў§ў§ў§ў§ў§ў§§ўь§ў§§ћ§ћ§§ў§ў§ў§ў§ў§ўўђ§ў§ў§ў§ў§ў§ў§ўў§§ў§§ќћ§§ўў№ћўњў§ў§§ћћ§§ћ§§ўўъ§ў§ўћ§§ў§ў§ў§ў§ў§ў§ў§ўўў§ў ўќ§ў§ўў§§ў§§ў§љў§ў§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўќ§ў§ўў№§ў§ў§ў§ў§§ћ§§ў§ўў§ўђ§ў§ў§ў§§ўў§ў§ўўќћ§§ўўі§ў§ў§ўў§ћўў§љћ§ћ§ћў§§ѕў§ў§ў§ў§ў§ўўќ§ў§ўў§§ў§§№ў§ў§ў§ў§ў§ў§ў§ў§§ћў§ў§ў ўњ§ў§ў§ўўњ§ў§ў§ўўі§ўћ§§ў§ў§ўўќ§ў§ўўєћ§ўў§ў§ўў§§ўўє§ў§§ћ§ћ§§ў§ўў§§ў§ўў§їў§ў§ў§ў§ўўє§ў§§ћў§ў§ў§ўўў§ўў§љћў§ў§ў§§єўћ§ћ§ћ§§ў§ў§§ўў§ўўў§ўў§ќўћ§ўўў§ўўў§ўўў§ўў§ќў§§ўў§јћ§ўўћ§§ўўњ§ў§ў§ўў§єћ§§ў§ўћў§ў§ўўў§ўўў§ў ўў§ўўќћ§§ўўі§ћћўњћћў§ў ўўћўўќ§ў§ўўў§ўўѓ§ў§ў§ў§ў§ў§ў§§ў§§ў§ўўў§ўўќ§ў§ў ўѓ§ўў§ў§ў§ў§§ћўўњ§ў§ў§ўўќ§ў§ўўјћ§ћ§§ўћў ўњ§ўћ§ћ§§ўї§ў§ў§ў§ў§§ўє§ў§ў§§ћў§ў§ўўј§ў§ћћ§§ўў§ћћ§§ў§§§ў§ўўѓ§ћ§§ў§ў§ў§ў§ў ўў§ўўі§ўћўћ§§ў§ўў§шћ§§ў§ўћ§§ў§ў§ў§ў§ў§§ћў§ўўљ§ў§ў§ў§§ўь§ўћ§ћ§ћ§§ў§ў§ў§ў§ў§ўўќ§ў§ўўў§ўў§љў§ў§ў§ўў§ђћ§ћ§ћўћўњ§ћ§§ўў№§ў§§ћў§ў§ў§ў§ў§ўўў§ўўј§ў§ў§ў§ўўќ§ў§ўўњћ§ћ§ћ§§ўћ§§њњ§§ў§ўў§§ў§ўў§§ў§§№ў§ўў§§ў§ў§ў§ў§ў§§ў§ќў§ў§§§ў§ўўј§ў§ў§ў§ўў§ќћў§ўўў§ўўњ§ў§ў§ўўі§ў§ў§ў§ў§ўўј§ў§§ћў§ўўў§ўўћ§ў§ў§§ѕћ§§ў§§ћ§ћ§ўўњ§ўћ§ћў ўў§ўў§љўћ§§ў§ўў§ёў§ўћњћ§§ў§ў§§ћ§§ўћ§ў§ў§§ўў§ўўў§ўўю§ў§ў§ўћ§§ўћ§њ§њћћ§§ћњћ§ўћ§§ў§ўўћћ§ѕњћ§ћћ§§ў§ў§§ыўћўћ§ћўћўњћњўћ§§ўћћњ§§їў§ўћўћ§њћћ§ўќ§ў§ўўў§ўўќ§ў§ўўў§ўў§њў§ўћў§§ўў§§њў§ў§ў§§ѕў§ў§§ћўћ§ћ§§ў§§ў§§ўљ§ў§ўћўћћыў§ў§ў§ўћ§§ў§§ћў§ў§ў§ўў§ў§љћ§§ў§ў§§ћўћ§§ў ўє§ў§ў§§ћ§§ў§ўў§ўў§§їў§ў§ўћў§ўў§§ў§§ўњ§ў§ў§ўўў§ўўь§ўњ§ћ§ћў§ў§ў§ў§ћ§§ћ§§§ћ§ћћ§ќў§§ћћъ§ћў§ў§ў§ў§ў§ў§§ћ§ћўћ§ўў§ќћ§ћўў§ѕў§ў§§ћ§ћћњћћњї§њўћћњћњћћ§фћ§§ћњћњ§њћћ§ћ§њћўў§ў§ўў§§ў§ўў§§ў§§ќў§ў§§ћјўњўњў§§ћћ§ќў§ў§§ёўћўњћћ§ћ§§ў§ў§ўўљ§ў§ў§ў§§ў§ёў§ў§§ћ§§ў§§ћўћ§§ћћ§ћ§ћћњ§ћ§њћ§§ѓў§ўћў§§ћ§§ўћ§§ўя§ўћ§ћ§ћў§§ћ§ћ§ўў§§љћ§§ў§§ћћјњћ§§ћ§ћ§§№ћ§ћ§ћ§§ў§ў§§ћ§§ўўћћ§§ў§§§ў§ўўјћў§ў§ў§ўўю§ў§ў§ћћ§§ў§§ћ§ћўњ§§њћ§ћў§ўўњ§ў§ў§ўўі§ў§ў§§ћ§§ўўќ§ў§ўў§ьћ§§ў§ў§§ћ§ћ§ћў§ў§ў§ўў§ўј§ўћ§§ў§ўўќ§ў§ўўў§ўў§єў§ў§§ћ§§ў§ўћћї§ћў§ў§ўћ§§ќћ§§ўў§ў§ў§њњ§ўњљћћѕњ§§ў§њїћ§њўўўћўўўћўўљ§ћљћљњўў§ћњљљчњўўћўўћўў§њњўў§§њљ§§њњ§§ўўћ§ў§ћћіљњўћўўћўў§§ўњ§§ќњ§§ўўћ§њѕ§њ§§ћљ§ћўћўўѕћњњљњ§ўўћў§§§њ§ћћћњћўћ§§ўњўўћ§њћћўўћ§њўћўў§ў§ўњ§§ќљћљ§§яњўўњўћўўћћўўћћўћўўњћ§§њњўўћћ§ў§ўўѕћўњћ§§њў§§њњ§њњў§њ§ўўѓ§ўўћћўњљ§њ§ў§§§њћўў№ћўћћўћ§ћњ§§ўўћў§§ћњ§њ§њњў§ћћўћјў§§љ§§њ§§ў§њ§ўўћћў§§ўўўћўўћћ§§њў ўќћўўњњўћњњ§њ§љћњњћљўўњўўћћўњњ§§њћў№њ§ўў§ўћўўћўў§њћўўњѓљћљ§њљ§ўћўўћўў§њњ§§ўћўўўћў ўђ§њ§ўћћў§ўћљ§§ўў§ћ§ўўўњўў§њњ§§ћ§ўўљ§љј§ўў§§ўћўў§§њўўє§ўўњ§њљљњ§њўўћћ§ўћўў§ў№ћўў§§њњў§§њњ§њ§ўўѕ§њћљљ§ўћўњўў§ўљ§§§њ§ўўўћўўўћўў§ўі§њ§§њ§ћў§њњћћ§љњ§§§љњўўўћўўќћўў§§ћљўћћўўћў ўѕћ§§ћўўњ§§ћўўћўћў§њў§ўўјћ§њњ§ўћўўћўњў§њ§ћћ§ћћўўћ§§ќњ§§ўў§ќњ§§ћћў§ћ§љљў§ўўїњўћћў§њњ§§њњў§њћњ§§њћ§њљ§ўўћћўћћ§§ўњўўћў§ѓћўў§њўњ§§њћћ§§єћ§њњ§њ§њ§§њ§ § ўќљњћ§§ћћў§њ§§њ§ћњљ§§ћћ§§ўљњ§§њўћўўўћўўёћ§њ§ћћўњњ§њњўњ§§ўњ§§ћњ§§њ§§ў §§њћ§§ўћўўњћ§§ўњ§§ўљћўўћўў§§ўљ§§ўњ§§§ўћўўўћў ўўњ§§љњ§§ћўћўўўћ§§ўўћўўў§ўўўћўў§§њ§§њњљўўћўў§ўњўўќљ§§ў ўў§ўў§њ§ўўћўў§ўўњў§ћћ§їњ§њўњњ§ћўўћ ўь§љљ§ўњ§њ§њњ§ўўћўўћњ§§њќў§§њњ§њі§ў§њ§љјљ§ўўј§ћ§њњ§§ўў§§њўўэ§ћљ§ўњљўћљњ§њ§ўћћў§§ўўњ§§ўє§ўў§њ§јјљћћ§§ќњ§њўў§љ§ўўћ§ћ§ћўўћ§њњћўўї§ўўћўўњў§§ћњ§њ§ўўўћўўўњ§§ўћњјў§ўў§§ћўўўљўўћ§њўћўўў§ўўћћўў§ћћј§њћ§њљњ§§ћњ§њ§ўўўћўўј§ћћљ§ўћўўќћўў§§ѓћ§§љљћ§§љћ§§ўў§ў§њљњљ§§ўўў§ўўќ§њњ§§ў§ћћњўў§ўўўћўўч§њћ§§ў§њўўњ§ўўћћўћў§њ§ўў§§§љ§ўўўћўўћњљўў§§љђњўў§§љ§њў§њ§§ўўјћўўћ§§њўўўћўў§єљћљћњњ§њўўћўў §јўћ§ўўћћўўўњўўўћўўћ§њћћўў§њ§ћњ§ћљћњ§§ўњўў§љњ§ў§ћћўўўћўўјћўўњўўћўўўћўўќћўў§§ўљ§§ќћњ§ўў§њњљїўў§§ќљњћў ўќћўћўўї§ўћўћўўњ§§ўњ§§ў§ћњўў§ћћ§юњљњ§§њљљћљ§§њњў§њ§§ёљ§ћћўћўў§§њ§њћўўўњ§§ ў§ўњ§§њќљћ§њњњ§њњљњўў§ќћўћ§§њў§ўўћўў§ўў§њљњњ§њўў§ўћўўћћўўћўўў§ўўљњ§њњў§ўўўњўўўћўўјћ§§ўў§§ўўќ§њ§ўўќћ§§ў ўўћўўћћ§њ§ўўќћўњ§§ўї§ўўњ§ўўћўў§ћ§љќћ§ў§§ўўћўўќњўў§§њљ§ў§њ§љўў§§ћѕћћјљ§§ўўћћ§§јўћ§јљ§§ўўћњ§ў§ўўћў§ўўћўў§ћњ§§ћњўћўўћўўўћўў§§ћўўјњљљ§њўћў ўјћўћў§љ§ўў§ўўћўўњћўў§љў ўўћўў§њќћ§њўўўњўўўћўўћўўњўўў§ўўўњўўљ§њњўўћўў§ўљћ§§ўћњўў§њ§њћљјљ§ўў§ ўћўўћў ўћ ўўћўў§ўўћўўў§ў ўіћњћњ§§ўўћўўћћўўњ§§њјћў§§њ§њўўўћўўћћўўћўўўћўў§њћўўћћўўћўў§њ§ў ўј§њ§ўњњ§ћћќњ§ўњњ ўўћўўћћў§њ§§ўњњўњўћўў§ћў§§њќћљ§њњќ§ўў§§єњ§§ў§ћўћћўћўўўћўў§ћўћњћўўѓњ§ћўўћћўў§њћ§ §њћў§§ћўў§ўћўўўћўўќћ§§ўў§ѕўњљјћћ§§ўў§§ѓўњ§љјјљ§ћўўћў ўѓњ§§ўљљњњ§ўўћў ўј§ћљњћћљ§§њї§ћћњ§§њ§ўў§ўњ§§ў§ ўјњўўћћ§ћ§§ќњ§§ўўіћўћў§њњ§§ўўўћўўњ§ќњўћўўўћўўъћўћўўћћў§љјј§§ћљљјљ§§ўўћ§ћљљ§§ўћўћўћўўћўўќњћћ§ §њћљљћћ§§ћћўћ§ўўјљњћјљњћў ўўњўўћћўћўћћљўјјљ§њ§§љћњљћљљњњі§ўўћћўўњњ§§њќљњљўўўћў ўњ§ћўјћ§§њ§ўњ§§ў§ўћўўћћўќћ§§ўўњћў§§њ§§ўћўўі§њ§њћћљћћљљћєљћњўў§ћљїїљћћ§ћћўўћўўў§ўўљћњ§§њњ§§їњ§љњ§љјјћћўњ§§ў§§ћ§§ўћњњ§љћљ§§ћћўўшћњўўћў§ћ§§љ§§љ§њњљљ§ў§њ§§ўњћ§љћљњњъљћћ§§ў§њ§ў§њљљ§њ§§ўћњўўёњ§њ§њ§њљћўў§њњ§§јњ§љљ§§ј§§їњљљјњјњћјј§ћљћћ§љ§љљў§ћћьљ§њў§љћјїљљ§ћљјљћў§ћћ§љћ§§уњ§љћїјјљћјњћћјћјјњј§њ§ћћљњ§њћћљћњћјћ§§ў§єљјњјљњўў§§њ§§ўњ§§љјўљћћїљњ§ўў§њњ§§њњ§§ћћ§§фјњјћ§јћљљћњ§§њљњ§њљљћ§ћћњјћ§§ћэљћ§ћћњњћљћћљљ§ћљћћјјљћ№љћ§§ћћјњћљјњјїћ§§§ћјљљћђњјјњћћ§§ћћљћћ§§їћјѕїњћћјљљћ§њђ§ћњњјјњјљ§ў§љ§§ўѕјјћь§њљћ§§ћњѕњјљћљћ§њњ§ћћюљћљ§њ§њ§§њћў§§ћљљ§§ўњ§§ћў§њњћ§ћђљј§њ§љј§њ§§љљћћјљ§ћћљјјћћ§ћ§ћ§ўњ§§ўў§§§љјљљјњљјјљљћћ§јљ§§ўћ§§ѕљњјјљћћљ§њћћьљњ§§ў§§ћћ§§ћљћљ§ћљћ§§тћњћћљљћ§§љљћћјћћјјљ§§љ§§њ§§њњљљ§јїљљћјћ§јїѕѕэ§ћ§ў§ћ§ћ§ћў§ћњћњ§ћ§§љўњ§§ў§ўўў§ўўў§ўўћќў§§ўўѕ§ћћўў§ў§ў§ўў§ўњћ§§ўћ§§ќћ§§ў ўћњњћњў§ўўя§ў§ў§§ћ§ћ§ћ§ћ§ћ§ўўў§ўўќћ§ћ§§ћў§ўўї§ў§ўў§§ћ§§ў§ўћ§§ўћўўљ§ў§ўћ§ћћќ§ўў§§§ћњўў§ў§ќћў§ўў§ўћ§§§ћ§ћћњ§ћ§ћ§ўўў§ўўў§ўўў§ўўўћ§§ўќћўћўўї§њћ§§ўћћ§§јћ§ћ§ћ§ў§§ў§ў§§ћ§§њћ§ћ§§ўўќ§ў§ўўћ§ўћў§§љў§ў§§ћ§§ўў§ўўіћ§ў§ћ§ћ§ћўў§§ў§§ў§ўћўўў§ўўћј§ў§ў§ў§ўўї§ў§ў§ў§ў§§§ў§ўў§њћ§ћћњ§§ўў§ўўљ§ћ§ћ§§ўўє§ў§§ћўў§ўў§ўў§ў§јћњћ§§ћћўўњ§ў§ћћ§§ўћў ўќ§ў§ўўќћ§ћўў§ћі§ћў§ўў§§ў§§љў§ўў§ћ§§ьўћў§ў§§ћ§ћў§§ћ§ўў§ў§§јў§ў§ћ§ў§§ћќ§ћ§ўўўћўўј§ў§§ћў§ўў§њћ§§ўћ§§ўтћ§њћћ§ўў§ў§ў§ўћ§ћ§ћ§ћ§ћ§ћ§ћў§ўўќ§ў§ўўћ§ћў§ўўќћ§ћ§§ў§ђў§ў§ћ§ћ§ћћ§ў§ўўў§ўў§§ўћћќ§ћ§ў ўў§ўўїћ§ўў§§ћ§ў ўќ§ў§ўўћ§ўћўўўћ§§ ўѕ§ў§ў§§ўў§§њњћў§ўў§єћ§ћ§§ў§ў§§ћ§§ўћўўћ§ўў§ћћ§ћў§ў§ўў§ьћ§ћ§§ўћ§ўўћ§ћ§ћ§ћ§ћ§§§ўћўўє§ў§ўў§ћ§ћ§§ўўў§ўўњ§ћ§ўў§§ѓў§§ћ§њњћ§ћўћ§§№ћ§ћ§ћ§ћ§ћ§ћ§ћў§ўўќ§ў§ўўш§ў§ўћ§ћ§ћ§ћ§ўўћ§ћ§ћ§ћ§ћ§§ьћ§ћћњћћ§њњћ§ћў§§ћ§§ўўњ§ў§ў§ўўќћ§ћўў§јћ§§ў§§ћ§§ћћ§ћ§ћ§§ќћ§§ўў§юћ§ћ§ћ§ћ§ћ§ћ§§ўћ§ћўўќ§ўћ§§ћћ§ћ§ўўў§ўў§ћїўћ§ћ§ћ§ћўўќ§ў§ў ўѕ§ў§§ћ§ћ§ћ§ўўє§ў§ўў§ћ§ћў§ўўћ§ў§ў§§фў§ў§ў§ўћ§ћ§ћ§ўў§ў§ўў§ћ§ћ§ћ§ўўљ§ћў§ў§ўўќ§ўћўў§§ћў ўў§ўўћћў§ў§§љћњћњћћ§§їў§§ћў§ў§ўўќ§ў§ўўќ§ў§ўўў§ћћўў§§яћў§ў§ўў§ћ§ћ§§ўћћ§§ўћ§§ћћњћ§ўў§§њ§§ћ§§ў§§ѕў§ў§§њћћў§ўўћ§ћ§ћўў§дћ§ћ§ћў§ў§§ћ§§ў§ў§§ўўћ§ћ§ћћњњћ§ћ§ћ§§ў§ўћў§ў§ўў§іњ§ўў§ўћ§§ўў§ў§§ћ§§ ўљ§ћ§ћ§§ўў§єўћ§ўў§ў§ў§ў§§ўљ§ў§ў§ў§§ўњ§ў§ў§ўў§ў§ћљ§ћ§ћ§ћ§§§ў§ўўѕ§њћћ§§ў§ў§ўў§юћ§ћ§ћўћ§ћћњ§ћћњ§ћўўц§ў§§ћ§§ў§§ћ§ћ§ћ§ў§ћ§ћў§ў§ўўњ§ўћў§ўўўћ§§ёћ§ћ§§ўў§ћ§ћ§ћ§њњћ§ўўћўўќ§ў§ўў§§ўћ§§љў§§ћў§ўў№ћ§ћў§§ћ§ћ§ћ§§ў§ўўї§ў§ў§ўћ§ћћј§ў§§ћўћ§§ќћў§ўўў§ўўћњ§ў§ў§ўўєћ§ћњћњ§§ћ§§ўўў§ўўќћ§ћ§§ѕћ§ћ§ћ§ћўў§ўўђ§ў§ў§ў§ў§ў§ў§ўў§ўј§ў§ў§ўћ§§њћ§ћњњћћќњ§§ћћ§§ў§ўўіћ§ћ§ћ§ћўћўўў§ўўў§ўўў§ўўќ§ў§ўўў§ўўьћ§ћ§ћ§ћ§ћ§ў§ћў§ўћ§§ўў§њћ§ћћ§ўўі§ў§ў§ў§ў§ўўўћўўї§ћ§ћ§ћ§ћўўї§ўћ§§ўўћњњё§ћ§§ў§§ћ§ўћњћћ§§єћ§ў§ўў§ў§ўћ§§ў§њћ§ћў§ўўў§ўўю§ў§§ћ§ћ§ћ§ћ§ћ§ћ§ћ§§ћ§њћ§§ў§ўўќ§ў§ўўѕ§ћ§ћў§ўћ§ћ§§§ў§ўўє§ўћў§ўў§ћ§ў§§њў§ўћ§ўўў§ўўњ§ў§ў§ўўњ§ўћў§ўў§њћ§§ўћўў§ўў§ўўі§ўў§ћў§§ћўў§ўћў§ўўў§ўўў§ўў§ўѓ§ћ§ћў§ўћўў§ћўўѓ§ў§ўћ§њћњ§ћ§ћћїњћўћ§ћ§§ўўє§ў§ў§ў§ў§§ћ§§ъћўћ§ћў§ў§§ћњ§ћњћњћћ§§ўўєћ§ћўў§§ћћ§§ўў§ќћўћўўќ§ў§ўўњћ§ћ§§ўўј§ћ§ћћњћ§§§ў§ўўў§ўўѓ§ў§ў§ўћў§ў§§ћћ§ћў§ў§ўўњ§ў§ў§ўў§єў§§ў§§ћў§ў§ўўќ§ў§ўўі§ў§ў§ўћў§ўўќ§ў§ўўў§ўўя§ўћ§ћ§ћ§ћ§§ўћ§§ў§§їў§ў§ў§ў§ўўў§ўўќ§ў§ўўіћ§§ў§ў§ў§ўўў§ўўњћ§§ў§ўўі§ўў§ћўў§§ўўўћ§§яћ§њћњћћў§ў§§ћ§ћ§ўўў§ўўњ§ў§ў§ўўј§ў§ў§ў§ўўў§ўўњћ§ћ§ћў ў§ўќ§ў§ўўі§ў§§ћў§ў§ўўѓћ§ћ§§ў§§ћ§ћ§ўўј§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўўў§ўў§§ў§§ўќ§ў§ўў§ќў§§њњќ§ћў§§ўў§ў ў§њћ§§ў§ўўў§ўў§§ў§ўўіћ§ћ§ћ§§ћћ§§ўїћ§ћ§ћ§ў§ўўј§ў§ў§ў§ўўњ§ў§§ћўў§§ћўўр§ўћ§ў§ћ§ћ§ћ§ћ§ћ§ўўћ§ўў§ў§§ћ§ћ§ћўўќ§ў§ў ўћ§ў§ўўњћ§§ў§ћћяњ§ћў§§ћ§ўўћћњ§ћ§ўўў§ўўє§ў§ў§ў§ў§§ћўў§ўћў ў§њњћ§њњћћ§јњћ§ћћ§§ўўђћ§ћ§ћ§§ћћ§ћћ§ўў§ќћ§§ўўќ§ў§ўўщ§ўў§њ§ћ§ћ§ћ§ћ§ћ§§ў§ў§ў§§њћ§§ў§ўўћ§ў§ў§§јћ§ўў§ў§ў ўј§ћњћ§ћњћћў§ўў§ћњћћ§§ћўўў§ў ўќ§ў§ўўў§ўўў§ўўѕ§њћћ§ћ§ћ§ћ§§ћњњћћ§ћўўўћўўњ§њњћ§ўўќ§ў§ўўў§ўўќ§ў§ўўњћљ§ћ§ћ§ћ§§§њ§ћћ§ўј§ў§§ћ§ћ§§њў§ўў§ўўў§ўўў§ўўў§ўўьћў§§њ§ћ§ћ§ћ§ћ§ћ§ћ§ћ§§шћ§ћ§ћ§ћ§ћў§ўћ§ћ§ћ§ћ§ћў§ўўў§ўўі§ўў§ћў§ў§ўўј§ћ§ћ§ћ§ўўіћ§ћ§њњћћњћћїњћњћњ§ўўћћєњћњћњ§ћ§ўў§ўў§ћў§ў§ўўњ§ўў§ћ§§пћ§ћ§ћ§ћћ§§ћњ§ћњњ§§ћ§ўў§ў§§ў§ћ§ћў§§ћ§§ћўў§јњ§ћўћ§ў§§ћјўћ§ћ§ћ§ўўў§ћћ§ѓћњњћћўћ§ћўћ§ћћї§ћ§§ў§ў§ўў§ќћњў§§њћ§ћ§ћ§§ћ§ѓћ§ћ§љјјњљњљћњњћњ§ћ§ћћў§ўўѕћ§ў§ћћњћћўћћя§ћў§§њћњћњ§ћ§ћ§ћ§§ћњјћњњљћњ§њњўљ§§њѕћ§ћ§њћњћћ§њњы§ћ§ћ§ћў§§ћ§ћњљњћ§ўўћ§§ћњ§ћ§ћ§ћћњіћњћњћћ§ћў§§хћ§ћ§ћ§њњћ§ћ§љњњ§§њћћњ§ћ§§ћ§§ћіњљњњћ§ћњњћћјњљљћћњњћћ§њћњњћцњћњњћњћ§њћњљњћњљњћњ§ћ§ћњњћћћњћњћњњѕћљњњљњћћ§њћћєњ§ћ§ћћњјљљњћћќњ§ћ§§юњљљњњљњћћўћўћ§ћ§§њњњћњћћ§ћћѕ§њљњљњћњћњ§§ћэњћњћњћћ§ћ§ћ§§ўў§ћњћћѕ§ћ§ћ§ћ§њњћ§§§њћњњ§ћњ§§№ћ§ћ§њћњћњћњћњћћ§§ѕћ§ћ§ћ§ћћњћњњїћњћћ§њњћњњёћњ§ћ§њњћ§ћњњ§ћ§§іћ§ћўћ§ћћњјјњќјњњћћчњћњћ§ћћ§ћўћ§ћ§ћљњњћћњћћ§њњѕћ§ћ§ў§ћћњ§ћћѓ§њћњ§ћ§ћ§њ§њћћ§њ§ћћњєћ§ћўћ§§ћћ§§ћћ§§њћћ§њћњњњћњ§њњјќ§ў§ўўў§ўў§јћ§§ў§ў§ўўў§ўўњћ§ћў§ўў§ ўќ§ў§ўўў§ўўў§ўўў§ў ўњћ§ћ§§ўў§§ў§ўўў§ўўў§ўўє§ў§ў§ў§ўћ§§ўўњ§ў§ў§ўў§ўў§§ ўў§ўўў§ўўћ§ўћ§ўўў§ўўў§ўў№§ў§ў§ў§ўћў§ў§ў§ўўќ§ў§ў ўќ§ў§ўўђ§ў§ў§ў§ў§ў§ў§ўўў§ўўє§ў§ў§ў§ў§ў§ўў§ўє§ў§ў§ў§ў§ў§ў ўќ§ў§ўўў§ўўў§ўўў§ўўў§ўўћ§ў§ў§§ћў§ў§ўўњ§ў§ў§ўўў§ўўў§ўўў§ўў§§ў§ў ўќ§ў§ўўў§ўўњ§ўћ§§ўўў§ўўў§ўўљ§ў§ў§§ўў§ўќ§ў§ўўў§ўў§§ў§§§ў§ў ўў§ў ўў§ўўќ§ўў§§ў§§ў§ўў§їў§ў§ў§ў§ў ўў§ўўь§ў§ўў§ўў§ў§ў§ў§ў§ўћўўќ§ў§ўўў§ўўќ§ў§ў'ўў§ўўў§ўў§ўў§ўў§ћў§ў§ўўњ§ў§ў§ўў§§ў§ўўњ§ў§ў§ўўў§ўўі§ў§ў§ў§ў§ўўў§ў ўњ§ў§ў§ў ўќ§ў§ўўў§ўў§§ў§§§ў§ўўь§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўўј§ў§ў§ў§ўўј§ў§ў§ў§ўўљ§ўћ§§ў§§§ў§ўўќ§ў§ў ўў§ўўў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўўђ§ў§ў§ў§ў§ў§ў§ўўў§ўўў§ўўќ§ў§ў ўў§ўўќ§ў§ўўў§ўўј§ў§ў§ў§ўўќ§ў§ў ўў§ўўњ§ў§ў§ўўњ§ў§ў§ўўў§ўўў§ўўє§ўў§ћ§ћў§ў§ўўў§ўўўћў ў§ўњ§ў§ў§ўўњ§ў§ў§ўў№§ў§ў§ў§ў§ў§§ћ§§ўў§ўў§ўўќ§ўћўўў§ўўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўћ§ў§ў§§љў§ў§ў§ўўў§ў ў§ўў§ўўў§ўўј§ў§ў§ў§ў ўњ§ў§ў§ўўќ§ў§ўўў§ўўў§ў ўў§ў ўў§ўў№§ўћўў§§ў§ў§ў§ў§ўў§ќћ§§ўў§ћў§ў§ўў§јћ§§ў§ў§ўўё§ў§ўў§§ў§ў§ў§ў§§ўј§ў§ў§ў§ўўљ§ў§ў§ў§§ўў§ўўќ§ў§ўўў§ўўў§ўўј§ў§ў§ў§ўўў§ўў§§ў§§ўі§ў§ў§ў§ў§ўў§§ў§§§ў§ўў§§ў§§љў§ў§ў§ўўў§ўўў§ў ўў§ўўє§ў§§ћўћ§§ў§ўўў§ўўќ§ў§ў%ў§§ў§§љў§ў§ў§ўўќ§ў§ўўњ§ў§ўћўўј§ў§ў§ў§ўўў§ўў§ёў§ў§ў§ў§ў§§ћў§ўўј§ў§ў§ў§ўўќ§ў§ўўќ§ў§ў ўц§ў§ў§ў§ў§ў§ў§ў§ў§§ћў§ў§ў§ў ўќ§ў§ўўњ§ў§ў§ў ўј§ў§ў§ў§ўўў§ўўќ§ў§ўўў§ў ўў§ўўў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўў§ў ў§љћ§§ў§ў§§ўќ§ў§ў ўњ§ў§ў§ўўў§ўўє§ў§ўћ§ћ§ћў§ўўў§ўў§ќћў§ўўў§ўўќ§ў§ўўі§ў§ўћ§ћў§ўў§§ў§ўўќ§ў§ўўў§ў)ўј§ў§ў§ў§ўўў§ўўў§ўўў§ў ўў§ўўў§ўўў§ў ўћ§ў§ў§§§ў§ўўњ§ў§ў§ў-ўќ§ў§ў ўў§ўўў§ў ўў§ўўњ§ў§ў§ў'ўў§ў ўќ§ў§ўў§ўў§ўўњ§ў§ў§ўўў§ўўђ§ў§ў§ўћ§§ў§ў§ўўј§ў§ў§ў§ўўў§ўўў§ўўђ§ў§ў§ў§ў§ў§ў§ўўў§ўўњ§ў§ў§ўў§ўњћўћ§§ўўќ§ў§ўў§ћў§§ўў§ўўў§ўў§ћў§§ћўўњ§ў§§ћўў§ўњ§ў§ў§ўўў§ўўќ§ў§ўў§ѕў§ў§ў§ў§ў§ўўў§ўўў§ўўќ§ў§ўў§ћћў§ў§§ћў§ў§ўў§§ў§ў'ў§їћў§ў§ў§ў§§їўћ§ћ§ћў§ўўўћўў§ќћ§§ўўќћў§ўўћ§ў§ў§§ќћўћўўў§ўў§їў§ў§ў§ў§ўў§ђў§ў§ў§ў§ў§ў§ў§§ћў§ў§ўўќ§ў§ўўј§ў§ў§ў§ў ўў§ўўј§ў§ў§ў§ўў§§ў§§ѓўћ§ћ§ћ§ћ§ћ§§ўўєћ§ћў§ўћ§§ў§ўўў§ў ўі§ў§ў§ў§ў§ўўђ§ў§§ћ§ћ§§ў§ў§ўўњ§ў§ў§ўўј§ў§ўћ§§ўў§ѕў§ў§ў§ўў§§ўўњ§ў§ў§ўў§ћћ§§ў§§ўў§ўўј§ў§ў§ў§ўўч§ў§ў§ў§§ўў§ў§ў§ў§ў§ў§§ћў§§ѕў§ў§ўњњћћњћћ §ўљ§ў§ў§§ћћ§ћўћ§§ўў§шћ§ћ§§ў§ў§ў§ў§§ћўћўћ§њћћ§§ћ§ўў§§ћў§§ћ§§јћ§§ў§ў§ўўі§ў§§њўћ§§ўўќ§ў§ўўю§ў§ў§ў§ўћў§ўћ§ћ§§ўўї§ў§ў§ў§ў§§љў§ў§ћћ§§оћ§§ў§ў§ў§ўћ§ћўћ§ћў§ў§ў§§ћ§ћўћ§ћўћ§§чў§ћ§§ўћў§§ћўћ§§ў§ў§§ћўћ§ћћіўћ§§ў§ў§ћ§§ќћ§ћ§§ћъ§ћў§§ћ§ћ§§ў§ўћўљ§ћ§ћў§§њћў§ў§ўў§ћў§ўўо§ў§§ћўћўћ§ћў§§ћў§§ћњћў§§ћ§§ў§ўћ§ћ§§јћў§ў§ў§ўўѓ§ў§§ћў§ў§ў§ў§§љў§ў§§ћ§§ўћ§§юў§ў§§ћ§ћ§ћ§ћ§ћў§ў§§ќў§ў§§ўћ§§ќћ§ћ§§ћ§ћћ§§ў§§ќў§ў§§љў§ў§ў§ўўш§ўћћњ§њћњ§ћў§§ћ§ћ§ћ§ћў§ўўѓ§ў§§ћўћ§ћ§ћў§§ѓў§ў§ўћ§§ўћ§ћ§§ќў§ў§§юћ§ћў§ўћ§ћ§ћ§§ћњ§§ўўў§ўўѓ§ўћ§ћ§§ўћ§ћ§ћћљ§ћ§§ўњћ§ў§ўўћ ўќ§ћћўўўћў ў§§њћўўїћўў§§њўћўўљћўњ§§ўћћўў§ў ўёћ§ўў§њњћћ§ћўўћўўћћњћћў ў§ћў§§јћў§њљљ§ўўэћў§ўўњ§љћјњљ§ўўћў§ўўѓ§њњ§ўћњ§§ўўћўў§љћўћўў§ўўў§ўўњўћў ўўћўўўћўўўћўўќћўћўўўћў ў§§њљ§§јњ§њњљњ§ўўўћўўўћў ўўћў ўўћўўљњ§њўўћўўњћўћњ§ўў§ўњћўў§њўў№ћўўћўўњ§§ўўћўўћўўј§ўў§§ћћљљў§ўўўћўўћўўћўўћ§њ§§ўўўћ§§ўњ§ћљћњўўўћў ўћћўњњў ў§ўњ§§ўќњ§ћўўїћўћўўћўўћћ ўњ§ўћўўљњ§§ўћћўўўћўў§ћњўўєћўўћўўћћњјћўўћўќћўћўўўњўўњћўћўћўўћ ўљ§ћ§§ћ§ћћўљћўўћўћўўњќ§њљўўѓћўћўћ§§њ§§ћћўўјћўћў§§њўўћ§ўўћўўўћўўўћўўњћўўћў§§§ћўћћњўћўўћўўћ§ўњ§ў ўњћўўћ§ўўћўќћў§ўўўћўўы§љћ§ўўћ§§њўўћў§њўћўћўўћў§§ћўўўћўўћўћў§ўўўћў ўўћ§§ўћўўћћў§њўўэњўў§љј§§ћўўћўњ§њ§§ў ў§њђўћћўў§њ§ўў§њљўўњ§ўћўњ§ўў§њўўўћўўћћўўћўўќћўў§§ўћўўўћўўўћўўўћўўўћўўїћўўћњљ§њўўўњўўўћўўўћўўњ§њњ§§ўўљћўўћњњўўћ ўђњћљ§ўўћћўў§ўћў ўћўїћўњњ§њ§§ўўћ§§њўўћћўўћўўўћўўўћў ўўћў ўћўќћўћўўўћўўўћўўўћўўћўўћўўўћўўњўќћўћўўњћњ§§њўўўћўўћўќћ§ћўўјћў§њўўћўўѓћўћљ§ўњ§ўћўњўўўћўўќ§ћћўўћћўћћўўіћўњ§ўўњ§§ўўўћўўўћўўћўўћўўќ§њњўўќ§ўћўўћўў§ўў§ўјћўўћўў§ўўњћўћўћў ўћћњљ§ўўўћўў§§ўћў ўњњ§ўўћў ў§§њўўўћў ўўћўўўњўўћћњ§§ўў§љћўўњ§ћўўўћўўћ§ўђ§њћћњњћјљњњљњ§§ў§ўўћўў§љўўћўўћўњјљћћ§њњ§ўў§§њўў§њ§ўўњћњ§ўћўўћўћў§ўњў§ўўўћўўўћўўќћўћўўћњ§§њўўцћњ§§ўўћўњћћўўљўћўўћўћћўўњўўўњ§§ўў§ўўњћўћўћўўўћўўўњўў§ћўўћўўўћўўўћўўћў§јњћ§§ўўњўўц§љ§§ўў§§јљ§§њљўћњ§њ§§ўўћ§ўў§ўћ§љљ§ўўўћ§§ћї§љљ§ўћ§љњњ§ ўўњўўўћўўѕ§њњўњњ§§ћћўўљћ§ћћўћў ўћўўћўў§њ§ўўњњ§њњ§§ўўњўўћўўћўўћўўўћўўћљ§§њўў§ћљјњ§ў ўѓћўћўћў§§ўўћћўўў§љљђћњњўўћў§љљ§§ћљљў§ўўћўўєћўћўў§§ћ§њ§њњщ§ћњ§ўўњњљ§њўўњ§њ§њњ§ўћўўэћўўћћўўњўћћњ§§ћјјћ§§ўђњ§њј§§ћјљљ§§њўўўћўўљњ§ћћњћўўшњљћљћћ§§ћљћјјљ§ўњњћњљњ§њњ§єљ§љљ§§љљњљљћћљћќљњљ§§хњ§§љћљћјћљћ§§њ§§ўў§њ§њњљћјњњпћ§§њ§ћћњјјћ§њњћ§ћћљ§§љљјћњјљљ§ћћ§§ћўњ§ў§§ыћљћљјљњљњњ§§љўў§§љћљћћ§љћљљћћљ§§ќћјњ§§ёћљћћљїјћ§§љјљћ§§ћїљћ§§љћљљ§§дњ§§њ§ћљћљљјјњћ§њ§§љњћ§њ§ўў§љћћјїѕњљћ§ћљћљћћљљяћљћ§§љњ§ўў§§њ§њњ§§ьћјјљћћљ§§њњ§§ўўњћљћјјћўљћћќљ§§ўў§ћјљњћљљїњћћћ§ў§ћјјњј§ћљ§§ўў§§љњљћ§ћћљљьњљћњ§ћњљ§§љјјњљњћћњ§§№љћњ§љћњњ§ћљљјћћ§§љњ§ћћљћљљѕњ§§њњћћєјљ§§ѕћўћ§ћљћљћћ§§јњ§§њњўћўўцњў§ў§љјћ§њ§§њ§§ћљћњљћћјјћ§§ћ§љћљљђ§њћўћ§ћјјћњћћљљћ§њїјјѓїѕњћ§ћјљљїњњљљљћјћ§љљњњќјњјљљўњћћ§єїјјљњћјюњјњїћћњјљјјћљћћљјљљћњћњ§§њљ§ўћўўќ§ў§ўўќ§ў§ўўў§ўўўћўўў§ўўў§ўўћ§ў§ћўўњ§ўћ§§ўўќ§ў§ўў§ўћўўў§ўўў§ў ў§ўњ§ў§ўћ§§ўќћў§ўўў§ўў§§ў§§љћўўћ§ћ§§ ўёћў§§ћћњ§§ўћў§ў§§§ў§ўў§ћў§§ћўўќ§ў§ўўј§ў§ў§ў§ўўќћ§ћўўќ§ўћў ў§§ў§ўўў§ўўў§ўўќ§ў§ўўў§ўўў§ўў§њћ§ў§ћ§§јћ§ћў§ў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўў§ўўљ§ў§ўћ§ўўў§ўўљ§ў§ў§§ў ўў§ўўќ§ў§ўў§ћ§ўўќ§ў§ўў§ћ§ў ўљ§ў§ћ§§ўўђ§ў§ў§§ћў§§ћњњћћўј§ў§ў§ў§ўўќ§ў§ўў§ўћў ўќћ§ћўўњ§ћћњ§ўўў§ўўў§ўўў§ўўј§ў§ў§§ћ§§ќћ§ћ§§љћ§ўў§§ў ўў§ўўљ§ўў§ў§ўўў§ўў§ђћў§ў§ў§ў§ў§§ћўўў§ўўў§ўўў§ўўў§ўўў§ў ўў§ўўќ§ў§ўўў§ўўљ§њ§ћўћў ўќ§ў§ў ў§§ў§ўўэ§ћ§ћ§ўў§ў§ў§ў§§ћў§ўўј§ўћў§ў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўћћ§ћ§ў ў§ўў§§§ў§ўўў§ўўќ§ўћўўќ§ў§ўўўћўўќ§ў§ћћљў§ўћ§§ўў§ўќ§ў§ўўў§ўўї§ў§ўў§ў§ўўќ§ў§ўўќћў§ў ўќ§ў§ўўњ§ўћ§§ўў§ўъ§ў§ў§§ћ§ћ§ўў§ў§ўћ§ћ§§ў ў§§ћ§§ўѕћ§ћўў§§ў§ў§§њћ§§ў§ў ўў§ўўў§ўўќ§ў§ўў§љўћ§§ў§ўўў§ўўў§ўўќ§ў§ўўљћ§ћ§ў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ўў§ўў§ў ўў§ўўў§ўўўћ§§ќћў§ўў§ўў§ўўќ§ў§ўў§ќњћћўў§ћў§ў§ў ўў§ўў§ўћўўў§ўўњћ§§ў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўќ§ў§ўўў§ў ўў§ўў§§ў§§ћў§ў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўў§§ў§§ўќ§ў§ўўќ§ў§ўўў§ўўј§ўћў§ў§ўўќћ§§ўўў§ўўћ§ўћўўў§ўўў§ўўўћўўў§ўўў§ўўњ§ў§ў§ўўѓ§ћў§§ћ§§ў§ў§ўўќ§ў§ўўў§ўўў§ўў§љў§ћ§ў§ўўќ§ў§ўў§їў§§ћў§ў§ўўў§ўўќћў§ўўѕ§ў§ўў§ў§ў§ўўђ§ў§§ћ§§ў§ў§ў§ўўў§ўў§ўў§ўўў§ўўі§ўћ§§ў§ў§ўўќ§ў§ўўў§ўўў§ўўј§ўў§ћ§§ўўў§ўўђћ§ћў§ў§§ўў§ў§ўўў§ўўљћ§§ћў§ўў§ў§ћ§ўіћ§ћ§ћў§§ћўўў§ўўћћ§ћћўўў§ўўј§ў§§ћћњ§§ўћўўђ§ў§ў§ўћ§§ў§§ћўўљ§ў§ў§§ўўќ§ў§ўўъ§ўћ§ћ§ћў§ў§ў§§ћў§ў§ў§ўўў§ўўљ§ў§§ћ§ўўљ§ўў§ћ§ўўќ§ў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўі§ў§§ћ§ћ§ћўў§ўў§ўўў§ўўѓ§ў§ў§ўў§ў§§ћўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ў ўў§ў ў§ыћ§§ўћ§§ў§ў§ў§ўћўћ§§ўћћ§їў§ў§ћ§ћ§ўўћћ§ў§ўўќћ§ћўўћ§§ў§ўўњћ§ћўўћћў§§ћљљљ§ћ§ўў§ўўќ§ў§ўўў§ўўч§ў§ўћ§§ў§§ћ§ўў§ў§ў§ўў§њњўўљ§ў§ў§ў§§ўў§§ўћ§§ўћўў§§ў§ўўў§ўўў§ўўў§ўўё§ћ§ўў§ў§ўћ§ћ§ћ§§§ў§ўўў§ўўў§ўўќћ§§ўўћїњ§§ў§ў§§ћћ§§њћћў§ўћў ўљ§ћњћ§ћ§§§ћњ§§ѓў§§ў§§ў§§ћ§ћ§§ўў§ўўў§ўў§ћ§њњёћ§ћў§ў§§ћ§ћ§ћњћћљ§ћў§ў§ўў§ќњћ§ўўѓ§ў§ўњћњћћ§њћњњћїў§§њ§ў§ћ§§іћ§ћ§ћ§ћћ§ћћљљћћњћњћћѓњћљћћ§ћ§ћ§ћњћћўњћћ§§ћў§§ћўњљљїњ§ћ§ћћњљњњ§љў§њћћ§ћћѓ§њљњћћ§њњћ§ћ§§њћўћ§§ћћћњјњћ§§ўћўўєћ§ћњћњњћћ§њћћсњћћ§ћњ§§ћ§ћњћћњћћњћћ§ћњјћћ§ћћњћћќ§ћњћћћ§ћ§ћ§§ћћ§ћњћћњсљћћ§ћ§ћљћћ§ћўў§ћћњњљњљћњ§њћњћњћћўњћћѕ§ћ§ћўў§ћ§ћ§§ћћ§§ћњњњћњњћћ§§њћ§ўў§ћћў§њњќћњћњњћ§ќў§§ћћў§њњ§§њћћ§љћњњќ§ў§њњљњ§ћэ§ћ§ћ§ў§ћ§ћ§ћ§ћњћњњћћєљћњ§ћў§ћћ§ћњњэјљњћ§§ћ§ћ§ћћ§§ўћ§§ћћњњћњ§ћ§§њ§ћњћћ§§ћ§§єњћћњћ§ћ§ћ§ћўўћњћ§ќћ§§ўўћ§ў§ў§§ќћ§њ§§ѕћ§ћ§њћњ§ћћњњћі§ћ§њћњњћњћћ§ўћњќ§ћњћћњњћњљљњњќљњљћћљњјјљљњћћ§§њћћќњљљњњћљљћњњљљњњћљђњћњњљњљћњњљњјњњћўњћћњњљљћњ§§ў.ўў§ў ўў§ў ўў§ўўў§ў ўќ§ў§ўў§ўќћў§ў ўј§ў§ў§ў§ўўў§ўўћ§ўў§ўўў§ўўўћўўў§ўўў§ў.ўѓ§ў§ў§ў§ў§ў§§ў?ўў§ў ўў§ў ўў§ў ўќ§ў§ў ўј§ў§§ћўћўўќ§ў§ў ўў§ўўћ§ћ§§ў ў§§ў§§їў§ў§ў§ў§ўўў§ўўќ§ў§ў ўў§ўQў§ўњ§ў§ў§ўўњ§ў§ў§ўўў§ў,ўќ§ў§ў ўћ§ўў§ў*ў§ўћўўў§ўўў§ўўў§ў+ў§ўў§ўўњ§ў§ў§ўўќ§ў§ў ўў§ў ўў§ўў§ўў§ўўў§ў ўў§ўўў§ўўќ§ў§ў$ўў§ўўќ§ў§ў ўў§ўў§ўў§ўўњ§ў§ў§ўўў§ўўў§ў'ў§$ўў§ўўњћ§§ў§ў(ўў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ў$ўў§ў ўќ§ў§ў ўў§ўўў§ўўќ§ў§ўўў§ўў§ў§ўў§ўўј§ўћўћў§ўўќ§ў§ўўў§ў ў§ ў§њћ§§ў§ў ўў§ўўў§ўўќ§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ў4ўўћўўќ§ў§ўўў§ўўќ§ў§ўўѓ§ў§ў§ўў§ў§ў§ў ўў§ўў§ўў§ўў§§ћўў§ћќ§ў§ўўў§ўўќ§ў§ўў§ўў§ўўј§ў§ў§ў§ў$ўќ§ў§ўў§§ў§§§ў§ўўў§ўўўћ§§ў§ўў§§ўћўўў§ў ўђ§ў§ў§ў§ў§ў§ў§ўўў§ўўј§ў§ў§ў§ўў§ћќ§ў§ўўє§ў§ў§ў§ў§ў§ў ў§ўћўў§єћ§ћў§ў§§ћћ§ўўљ§ўў§ў§ўў§§ў§§кћ§§ўћ§ћ§ћ§ћ§ћ§ћ§§ћ§ў§ў§ў§ў§§ћў§§ћў§ў§ўўк§ў§ўў§ћћўћўћ§§ў§ўћ§ћўћ§§ў§ў§§ћ§§ўћў§§ћћ§љў§ў§ў§ўў§ёўћ§ћ§ћњњ§§ў§ў§ўў§ѓћў§§ћўћ§ћў§ў§§хў§ў§ўћў§ћўћў§§ћњћў§ўћ§ћ§ћў§§эћў§ў§ў§ў§ў§ў§ўћў§ўћћћў§ў§ћћ§ў§ўў§јћ§ћњњћћ§§ѕћ§ћ§§ў§§ћў§§ўё§ў§ў§ў§ў§§ў§ўћ§§§ў§ўўў§ўўєћўћ§ћў§§ћ§ћ§§ќћў§ўўў§ўў§§ўћ§§ќћўћ§§ќў§§ћћэњў§§ћ§§ў§ў§ў§ў§ў§ў§§ўў§§ћ§ўлћў§§ћўњњћ§ћў§ў§ў§§ћў§ўћў§ўћ§§ўћ§§ў§ў§§ъћўћ§§ў§ў§ў§§ћўћ§§ў§ў§ўўќћ§ћ§§ўњ§ў§ў§ўўћ§ў§ў§§њў§ў§ў§§єћ§ћўћў§ў§§ћ§§ўћ§ќћ§ћ§§ћћ§ћ§ћћѓ§њћћўћћњ§њћњ§§ёћ§§ў§§њћћўњћћ§ћћ§§љ§ћћ§ћф§ћўњўћўћ§§ћћњћў§§ћ§§ў§§ћўћ§ћћ§ќў§ў§ Рќўћ§ћћщљјјњњјњљћњ§§љљћјћњїэёї§§ђљњ§§ўў§§љћњљњ§§ўўњ§§ўѓњ§§ћјјћљјјћ§ўўћђ§ћїњѕѕђђёћ§ўћўўђћ§њњ§§њ§§њ§љћ§§ўњј§ўў§ўњњ§§§ћљ§§ёљћћњўў§ћїђёєљњўўў§ўў§ћўѓњўњ§њ§§ўћ§§њ§§ўўћў ўї§ў§ћјєѓњўў§ћљ§§ў§§њ§§ўђ§њњ§§љћљћљљ§њўў§§њўў§ћњ§§ўћ§§єў§љјїљњјљњљ§§§њ§ўўќњћћ§§ћ§ќћјјћћў§ўў§ћ§ћўљћ§ўўі§ћћјєњ§ўў§§яўћњљћ§ў§ўћўњ§ћјјћћў§ўў§ў§ћћ§ћўћўў§ћњ§ўћ§§ўўўћўўћћў§§ўўќљјњћћ§ўћ§§§ўћ§§ћњўћњ§§ў§ў§ъњ§§ћјєэјљњњћћљћњ§ўўњ§ўў§ћљє§њ§њњљљњ§ћў§§ў§яћљ§ћўўњћјњјїѓѓѕћўў§ћ§љ§ўў§јњ§§ћљњў§§ўњўўљњў§§ћў§§їљћ§њ§§љњ§§№њѕѕєљљ§§њћ§њўћў§§ќњљњ§§юњ§њўњњљ§§њ§ўћўўњ§ўўќњ§§ўў§ћ§ўћўўќњјљћћ§ўњњўћў§ћћёљњўћўўћўўњњўћћўўћњ§§ћўўўћўўњј§љњјњ§ўњњћћљњ§ўў§ ўўћў ўњћўњњћўўыљјћћ§ў§ћ§§љјјњњљїћ§ў§§њўћўўѓћўћњўўћћўћ§§ўўўћўў§ ўєћўў§§њ§їј§ў§§ўњ§§ўћ§ўћўўѓњћўўњ§ўўњ§њњўў§њё§ћљћњ§љћљњљњ§§ўў§ќњў§ўўљ§њћј§њўўћўћўјњћўўћ§њ§§щћљљњњ§њ§њ§§љћћ§ўў§єёїљ§§ўїћўў§§њћљњњ§ћўњњћўўјћўћўћ§њў ў§љћўў№§љ§ћљїюуѓњћњ§ўћўўўћўўўћўўўћўў§ѕњљњ§ћўўћўћўўїњ§ћњњѕљћ§§ћўћўњ§§ўўћўў§ўћњ§љњўў§§њ§§ќњ§§ўўћ§њљћўўўћўўўћўўўћўўўњўўћўў§ўў§яњўў§њњ§їѓѓљљјљњћўўћ ўњњ§ўўњ§§ўћњћ§ћўўё§їљљ§ћљјјњїјћ§ўўў§њњ§§њ§ўўћўњћ§њ§љў ўњ§ћјњњўўћ§ћљ§ў ўї§њ§љњ§ћћ§§ћўјћўћѕљћ§ўўњњўў§§ћћј§њ§§љњћ§§њјћїјћўўўћўўћўћўњ§їљћ§ўўў§ўўћўћњўўћ§§ўћўќћ§§ўўё§ўћњ§њћ§§њ§§ўў§§ўћ§їћњћ§ўћўћўўў§ўўў§ўўћјўњўў§њ§ўў§њ§ўўї§ћљњїєїљўў§ўљўўѓ§њљћљ§ћјљњ§ћўў§ўђћўћўў§§ўўњ§ћћўў§юљјћњљњўўћ§ћ§њўћўћўў§њ§ўўќљ§ў§§ў§§њ§§јћљљјјћ§ўў§ўўћўў§ѓњћ§ўўњњјћ§њ§ўўу§ћћ§§ћћњћўўћў§њ§ћўћў§ћўў§§њњ§§§ўћўўћњўўњўў§њ§§љ§§ќљ§§ўўѓћјћ§§љ§њ§ўўћўўўћўў§§њўў§ўўћў ў§ўўћ§§ћљјћ§ўўќћўћўўћћўўћў ўўћўўњї§ў§њћљ§§ўўўћўўїњћјљњїјћўўћўўћўўћ ўўћўўї§љљћ§§ћћўўўљўў§јњћї§ўўњўўљ§њ§ћўћўўшњў§љљ§§љ§§њњћћўћњ§§ћўњ§ўўћўэ§њ§ћћњўў§ћљњїѕњњ§§ўўўћўўјћ§§ў§њ§ўў§§њљљ§ћ§ћћўфћ§њ§ћўўћўћњ§§ўў§§ћїїј§ўћћўћўўі§ўўњћ§§ћў§§ўћјў§љњўўћ§§ўњўў§§ћљўўљћўўћўћўўўћўўўћўўў§ў ў§њ§ўўњ§љњ§њўўћћўўћўўў§ўўўћўў§ўњћўўћћўўњўўћўўћћњћ§§ўўўћў ў§њ§ўўѓћњ§њњ§§ўўњ§§ўўљњ§§њ§§ўўўћўўњ§љјћ§ўўўћўўўћўў§ўўћўўћ§ўњўўќњљ§ўўћєњўћўў§§ћјјћў ўј§љ§§ўўћўўћўўћўўљћўўћўћўўўћ§§ўў§§њњљїј§ўў§љњћљ§ўћўўєћўўћўўћњ§ћћўўћўўћўўўћўў§ўњўўўћўўћћўўћўўљі§ўўћўў§§ћўўљ ўћћ§§њўў§ўўћўўўњ§§ўјњљјћ§§њ§§ўљјјїћ§ўўњњ§њўўѕћўў§ў§ћўўћўўќћўћўўћ§ўћўўњїћћ§§ћћћљ§ўў§§іћњњћ§§ў§§ўўўћўўўћўўњў§ўўўћўўўћўўўћўў§ўћўўь§ћћ§ўўњњ§ћўўћўўњ§ўў§§ѓјњњ§§њ§ўћўћћўўћњў§ћўўќ§ћћўўѕћ§ћўў§§ћњћ§§ўї§њћ§§њў§њњ ўћў§ѕўћўўњ§§ўўћўўњ§љєѕћўў§ќћњћўўўћўўћяўћ§њњ§§ћћўўћћўў§ўўќ§њћўўўћўўўћўўўћўўїћўўћўћўћўўўћўўўћўў§ўўњўў§§њ§§љћјљ§ћћўўќћ§њўўјћўўћњ§њўў§їћўўћўўћћўўђ§љїјњїљћњњ§§ћўўў§ўўћўљ§ћ§ћўўњњў§ўўі§ћјїњљјћ§ў ўўћўўўћў ўўћўўњћњњ§њўўїћў§њјјћ§ўўўћўўўћўўўћўўћ§њ§ћўўўћў ўўњ§§ўњ§јњљњўўћћўўћў ўћћ§§ћўўћўьћўўћўў§§њ§ћњљћћјћњљ§§їўћў§љїїћўўўћўўќћўћўўўћўў§ћњљўћўўћ§љљ§ўўљњ§ћњњћў ўєћўўћўћўњўўћўўќњ§ћўўћћўўћўўўћўўќћњј§§§њћўў§ўўћўў§цћљћ§ўћњ§ўўћћњ§љў§§њљљћљ§§ўўћ§њћњ§§ќњљ§ўўєћўћљњ§ўћўћ§ўў№ћњ§§ўў§ћљњ§§њћћ§§љј§љўњ§ћњўўћњјћ§ўўїћў§њћўњњўўњ§љ§њћњњѓћўў§§ћћљљњў§ўўќњўў§§ў§ћљњћњ§§§њљћћўўћўў§ў§ћњ§§њ§§ўћ§јјћ§ўћўћўўћ§ћњћўў§ўњўўћўїњћћ§њўўћўўќћўћўўќ§ћћўўўћўў§єњ§ћљћ§њ§њ§ћўўљњ§§њњ§ћћўї§ћ§§љћњ§ўўј§њ§ўћљ§ўўёљћјљљћјїїљ§њ§§ўўћўћљьћњ§ўўћњ§љљ§§њ§ўўњ§њўўћћўў§ўўєњўћўњћљљ§§њљљыјїћњўћўўћўўњ§§њњ§§ћћ§§ўўћўўѕћўў§ћљ§њ§ћјўў§њњєћњњљљњљћћ§§ћћрњћћљїєєћ§ћ§ћ§ћ§ћ§§ўћ§ћњ§ў§§ћ§ћ§ћћђў§ўў§ћ§ћў§§ћ§њњћњћћ§ў§ўўё§њћљњјєяјњ§§ў§ўўќ§ўў§§ћ§яћ§ћћњ§ћ§ћў§ў§§ћў§§љћ§ћ§ћ§ћћя§ћћњ§ўўћћљєѓљћ§§ўўє§ћ§ў§ўћ§ћ§ћўў№§ў§ў§ў§§ћ§ћ§§ўћ§§њћ§ћ§§ў ўіћўћњњїѕњ§ўўў§ўўюћ§ћў§ўћ§ћ§ћў§ў§ўћ§§ћќњћњћћў§ўўоћ§ўў§ў§ў§§ћ§ћўћ§ћўћљїљћ§§ћљћћ§ћ§ћўўѓ§њћћ§ћћњ§ћћ§њњыћ§ў§ў§§ћ§ћ§ћћњ§ћўўћћўўє§ўћњњїїњћўў§§эћ§ћ§§ў§ћњћ§§ўў§ўћћњњѕћњћњ§ўў§§ћўўј§ћ§њћњ§ўўў§ўўєћ§ћћњ§§ўћ§§ўўќћ§§ўўцћњљњњћћ§ћўћ§ћўў§ћ§§ўў§ћ§ћўўтћ§§ў§ўћћ§ћћњњїјњћљљћњћњ§ћўў§ћўўјћ§ћћњћњћћђ§ћ§§ћћ§ћў§§ћ§ўўњћ§њўћўўѕ§ћњљњљїѕјћўў§њњћњћћўўњ§ўў§ћ§§ћћ§ў§ћ§§ўѕ§ўћ§ўўћ§ћ§ћћщў§§ћ§§ћћ§§љјєїјћ§ћ§њћ§ўўѕћ§ћ§ћ§ћ§ћћ§§їў§§ћ§ћ§ћўў§ўћўў§ўћўў§ўђ§ўљїјћњћћ§ћў§ўўћ§ўў§њњ§ў§ўў§ў§ўћўўќ§ўў§§љћљ§§ћў§§ћњјљ§ўў§ћ§ўўў§ўўў§ўўў§ўўћ§ў§ў§§щў§ў§ў§ћњ§ў§њ§§ћњњљњјљњ§§ќћ§ћ§§ўў§ўўў§ўў§§ў§ўўў§ўўњ§ўћ§ћўўњ§ў§ўћ§§№љњћўћ§ћ§ћ§ћ§§ў§ўўљ§ў§ћ§ў§§ўў§ўў§§ћ§§ћќњ§§ћћљ§ў§ћ§§ўўњћ§§ўћўўљћ§њ§ћ§ўўў§ўўў§ўўќ§ў§ўўќ§ўў§§њћ§њћћ§§ћіњћћўў§їѓѕћћў§ћћ§њћ§§ўћ§§§ў§ўў§ўњ§ў§ў§ўўђћўћњћљёэђљњ§ћўўў§ў ўїћ§ћ§§ћ§ћўўў§ўўы§ћћљљјјњ§ћ§§ў§§ћ§ћў§ўўќ§ў§ў ўіћ§§ў§§ў§§ўўїћ§ћ§ћ§ћ§ўўћ§љјњўўњ§ў§ў§ўўў§ўўў§ўўў§ўў§§ў§ўўъћ§ў§§ћ§§ўћ§ў§љїњћћ§ћ§ў ўќ§ў§ўў§ѕў§ћћ§§ў§ў§ўўј§ў§ў§ў§ўўш§њћў§ўў§љјћ§њћњњљљњћћў§ўўњ§ў§ўћ§§ўћ§§ ў§§ў§§ ўћќњљ§ўўћћњћ§ўўш§ў§ў§ўћ§ћў§§њњћ§ћ§ћћњў§ў ў№§ў§ў§ў§ћјјњ§§ў§ўў§ў§ћ§ўў§ћїљћћ§ћ§ћ§ћћњўў§ўўў§ў ўљ§љјњ§§ўўў§ўўў§ўўњ§ўћ§ћўўч§ўћ§§ўў§ўў§ћ§њћћ§§ћў§§ћ§ўўјћ§ћћљћћўў§ўў§ў ўўћўў§ўѕћ§ћў§ў§ў§ў§§ўї§њћљљѕљћўўќ§ўћ§§ўў§ўў§ћ§ћћї§њ§ћ§ћў§ўўћўј§ћћў§ўћўўў§ўўѓћ§ћћњћ§ћ§ў§ўћћ§ўј§ў§ўў§ћўўў§ўўќ§ў§ўўњћўћ§ћўўќ§ў§ўўїћ§ћ§ћњћћњњљ§ўў§ў§ўў§ќћў§ўўў§ўўў§ўўў§ўў§ђћ§ћ§§њћў§ў§§њ§§§ў§ўў§іњћћ§њњ§ў§ўўђћ§ћў§ў§§ўў§ћћ§§њћ§ћ§ћўўњ§ўў§§ўўўћ§§ћў§ћћ§§ў§ўўњ§ћћ§ћ§§ўў§ўўў§ўў§їў§ў§ўћ§§ўўў§ўўў§ўўњ§ўћ§§ўўѕ§ћ§ћ§ћћњњћў ўњ§ў§ў§ў ўў§ўўѓ§ћўћ§њћћ§§ў§ўўў§ўўј§њ§ћљљњўўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўљ§ћћњ§§ўўў§ўўъ§ў§§ћ§§ћњ§ўў§§ўўћ§ћў§ўў§§ў§ћћ§ќћ§§ўўњ§ћ§ўў§§ў§ўђ§ў§ћњћљљјљ§§ћўўќ§ў§ўўќ§ў§ўўє§ћўћ§ћў§ўћ§ћћќњћњўўњћ§ћў§ўўѓ§ћ§§ўћ§њљљ§ћўўњ§ў§ў§ўўў§ўўю§ў§ўћў§§њ§ћў§§ћ§§ўў§ѕў§§ўў§ћ§ћ§ўўќ§ћћўўњ§ў§ў§ўўў§ўўў§ўўў§ўўќћў§ўўў§ўўѓ§ћўў§ў§ў§ўћћ§§ў§ўў§ўўњ§ў§ў§ўўќћ§§ў ў§љў§ў§ў§ўўіњљњ§ћў§ў§ўўќ§ў§ўў§§ў§ўўўћ§§љћўў§ћ§ўў§§ћ§§ўћўўњ§ћњњ§ўўў§ўўў§ўўњ§ў§§ћўўј§ў§ў§ћћўўў§ўў§ў§ћ§њњўў§ўўњћўћ§§ўўў§ўўќ§ў§ўўў§ўўў§ўўшћ§ћўћ§ћ§ћљњ§§ў§ћћ§§њћ§§ўўњ§ў§ў§ўўћ§ў§§ўўў§ўўј§ў§ў§ў§ўўњ§ўћ§§ўўў§ўўў§ўўў§ўўў§ўўё§ў§ўўћћў§ў§ўћ§ўўќ§ћ§ўў§јћ§ћ§ћў§ўўј§ўў§ћ§ћўўј§ў§ћ§ћћ§§ќћ§ћњњ§љў§§ћ§§ўўў§ўўћўў§ўўў§ўўў§ўўњ§ћћњћ§§ыўћ§ћњљњњ§ћўћ§§ў§ў§ў§ў ў§ќћў§ўўў§ўўў§ўўњ§ў§ў§ўў§§ўћћўњ§њћћў§§ў§§ў§§љўћ§ћ§ћ§§ўћ§§ўў§ўў§ўўћўўў§ўўу§ўў§§ћћљћћ§ћ§ћ§§ў§ўў§§ўћ§§ўћ§§§ў§ў ў§ўћўўќ§ћ§ўўў§ўўј§ўћћјјњўў§ўћўўњ§ў§ў§ўўў§ўў§§ћ§ўўќ§ўћўўљ§љћўў§ўўў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ўўњћ§§ў§ўўіћ§ћ§ћћњћћўўў§ў ўќћ§§ўў§§ў§§ў§§ћўўў§ўў§ћњњљљјњ§§ўћўўў§ў ўў§ўўњ§ў§ў§ўўќ§њ§ўў§ўћўўќ§ў§ўўі§ћїљљћ§ћћўўў§ўўќ§ў§ў ўў§ўўў§ўўњ§ў§ў§ўў§њћ§§ў§ўў§§ў§§њћўќ§ў§ўўў§ўўћ§ћ§§ўў§њћ§ћ§ћўўњћњљћ§ўўў§ў ўў§ўўћ§ўћћўўќ§ў§ўўќ§ўћ§§цў§ћњњ§њљћ§ћ§§ў§§ћљљћўў§ў§ў ўў§ўўѕ§ў§ў§ў§§ћ§ўўў§ўўў§ћћёў§ў§ў§§њњљћ§ў§ўўњ§ў§ў§ўўќ§ў§ўў§ўў§ў ўў§ўўў§ўўјњљњ§ћ§§ўў§§ў§ў ўћљњћњћ§ў§§ў§јўћћ§ћћњћћчў§ў§ў§ў§ў§§љћ§§ћ§ћ§§ћћў§ўў§ўќћў§ўўо§ћћўў§њћ§§ћ§њћћ§ћћў§ўў§§њ§§ў§§њћћўўљ§ўў§§ў§§ў§ћў§§ў§§ѓў§ўћ§њњћћ§ўћўўќћ§ћўўёћ§ћ§ћћљњ§§ћ§ћ§ўўў§ўў§§ў§§їў§ў§ўћ§ћ§§іћ§ћ§ћ§ћў§ўўљ§ћ§§њћўўћ§ћљћўўњ§ўћ§§ўў§њњћћ§§ў ў§§њўўў§ў ўяћ§§ћњћњ§§ћ§§ўў§ў§§ўљ§ў§ў§ўћћќ§ћњ§§ў§ў§ўћњњљљћћ§§ўўњћћќњ§ћўўў§ћћ§ў§їў§ў§ў§ўћўўў§ўў§§њћћ§ћњјїљћ§ўў§ђћ§§ћћњњ§ћ§§ў§ўўќ§ў§ўўљ§њћћ§ћњњў§ђўћћњћћўћ§ћў§ў§§єўћћїљјћ§ў§ў§§§ў§ўў§їў§ў§ў§ў§ўўў§ўўї§ў§§ћўћ§ћћў§ўў§ћјњћѕћј§§ўўќ§ў§ўўў§ўўњћ§§ў§ўўъ§ў§ў§ў§ў§ў§ўћ§ўў§ўћ§§ўўљћњјїљ§ў ўќ§ў§ў ўњ§ў§ў§ўўј§ў§ў§ў§ўўњ§ћјљњўўќ§ў§ўўќ§ў§ўўі§ў§ўћ§ћ§§ўўў§ўўќ§ў§ўўў§ўўќљћњ§§ћћў§ў§ўў§єћў§ўћ§§ўћ§ћ§§ўі§ў§ў§ўћ§§ўўўћўў§ќљњњўў§ћў§ў§ўўўћўўў§ўўіћўћ§ћ§ћ§§ўўў§ўўј§ў§§ћ§§ў ўњ§ўћ§§ўўў§ў ўў§ўўї§ћў§§ћў§ўўў§ўўќ§ў§ўўў§ўўў§ўўљ§ћјўњ§ћћ§ўў§ўўњ§ўћўћ§§јў§ў§ўћ§ўўќ§ў§ўў§ўћњќїљћўў§ќћў§ўўѓ§ў§ў§ўћў§ў§ў§§ўў§ўўј§ў§§ћўў§§ў§ћїїњњ§§ў§§ўў§§ў§§§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўў§ўїћљ§ћ§ћў§ўў§ћў§§ўў§ўўў§ў ўј§ў§§ћ§§ўў§ќњћ§ўўў§ўў§ўњ§ћ§§ў§§ћ§њћњњ§їў§ў§ў§ў§ўў§ ўў§ў ў§ўћўўї§ў§ў§ў§§ўўў§ўў§§ў§§ёўћ§§ў§§ћў§ў§ў§ўўў§ў ўћ§ћў§ўўћ§ў§ў§§ўў§§љў§ўћ§ћўўњ§њїјћў ў§§ў§§їў§ў§ў§ў§ў ўў§ў ўў§ўўє§ў§§њєьїћ§§ўўњ§ў§ўћў ў§§ўћћљљњ§§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўўћ§ћњ§ў2ўќ§ў§ўўі§њ§§ћў§ў§ўўў§ўўў§ўўў§ўў§єњ§§ў§ћћўњўћў ўњ§ў§ў§ў ўњ§ў§ў§ў ўћў§ўћ§ў§ў§§љў§ў§ўћўўјћўћћњ§§ў ўў§ўўђ§ў§ў§ћћў§ў§ў§ўўћў§ўў§ќњ§§ўўў§ўўў§ўўў§ўўў§ўўў§ўўќ§ў§ўў§§ўћћ ўў§ўўў§ўўў§ўўў§ўў§ћћњ§њћўў§ў§ўћ§§ўј§ў§ўћўћўўќћў§ўўў§ўўў§ўўў§ў ўћ§ў§ў§§ћўћ§§ўўў§ўўј§ў§ў§ў§ўў§§ў§ўў§§ћў§§ўў§ўўў§ўўј§ў§ў§ў§ўўў§ўўє§ў§ўћў§ў§ў§ўўї§ћў§ў§ў§ў ўў§ўўў§ўўў§ўўі§ў§ў§ўћў§ў'ў§ќћў§ў ўј§ў§§ћ§ћў%ў§ ўј§ў§ўћў§ўў§њћў§ў§ўўќ§ў§ўўў§ўўќ§ў§ўў§љћњћћў§ўўў§ўўў§ўў§њћўћ§ћў ўќ§ў§ўў§ќњ§§ўў§ўћ§ў§§ўўў§ўўњ§ў§ў§ўўќ§ўћў;ўќ§ў§ў ўў§ўўў§ў ўў§ўўћ§ћ§§ўўў§ўўќ§ў§ўўќ§ў§ўўњ§ў§ў§ў ў§ќћ§§ўўў§ўўў§ўўў§ўў§ќћў§ў ўў§ў#ўў§ўўј§ўў§њћ§ўў§§ў§§ўў§ў!ўў§ў!ўў§ўўў§ўўў§ў ўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўў§ђћў§ў§ў§ўћўћ§§ўўў§ў ўў§ўўј§ўћ§ћў§ўўј§ў§ћњ§§ўўў§ўўў§ў!ў§ўћўўќ§ў§ўўў§ўўє§ў§ў§ў§ў§ў§ў ўќњў§ў ўў§ўў§§ўћћљў§ў§ў§ўўў§ўўў§ўў§ўў§ўўў§ў ўћћўљ§ўўў§ў#ўњ§ў§ў§ў ўќ§ћћў-ўў§ў ў§§ўћћўў§ўўў§ўўў§ў ў§њћўћњњ§§$ў§ўї§ћћњћ§§ћў'ўў§ў ўњ§ўћўћўўў§ўўњ§ў§ў§ўўќћў§ў'ў№§ў§ў§ў§ўћ§ћ§§ў§ўў§ќњ§ћўўў§ў ўќ§ў§ўў§ќњўћўўў§ўўљ§ћў§ў§ўў§ў§ўў§ўўў§ўў§ ўє§ўћў§ў§ў§ў§ў ўў§ў ў§ѓў§ў§§ћў§ў§ў§ўў§ўќ§ўћў ўў§ўўќ§ў§ўўў§ўў§ўћў ўў§ўўє§ў§ў§ћ§ў§ў§ўў§ўє§ў§ў§ў§ў§ў§ўў§§ў§§ўћ§ћўћўўў§ўў§ќћў§ў ў§ўќ§ўў§§ўў§ўў§§ў§ў ўјћў§ў§ў§ўўќ§ў§ўўў§ўўѕћў§§ћћњ§ћў§§ўўћўў§ўњ§ў§ў§ўўў§ўў§ћў§ўћ§§ќљњћўўў§ўў§§ў§ў ў§ћў§ў§ўќўњ§ўўћћњњљ§§ћўў§§ўєћњљ§њў§§њљћўў§§ћўўћўіћ§љ§ўћў§§ўў§ћљњљћ§§ўњўўћў§ћ§ўўіћ§њ§§ўўњљўў§ ўћјў§§ћљњћ§§љћїјљћњўўћћўўћўўўћўўђћњњ§ўўћ§§њњ§§ўўўћўўёћўћўљ§§њ§§ўў§§ўўц§ћјљћ§§ћјљњ§§ўў§їљїїњљљ§§ўў§ўў§ўўќћ§њ§§ўў§§їњўў§§ћњњ§§ўєњў§љјњћљј§ћўўўћўўћў§ўўќћњ§ўўћћўћћўўўћўўў§ў ўћ ў§ў§ћћњ§§ўў§њћў ўўћўўћњ§§њўў§њњ§љўћўўѓћ§њ§§ћћљўў§љўў§ћў§§ћўє§њћћ§ўўњљ§ў§§њћљћ§§ўўћњўўћўўїљћ§§ћўўћўўћњўћ§§ћўў§ћэ§љ§ћ§љ§ѕљњ§§њўўњћћўўўћўўіњ§§ћљљ§љ§ўўўћ§§ўћћўўћўўќћўћўўљ§ћўў§ћљљѕњўћ§њ§њњ§њ§§ўќ§љљ§§§њ§ўўћћўўњўўўћўў§ў§§њўўї§њ§ћљјљ§ўўћјўњћћљ§§ўўћ§њ§§ўўљњћ§ўўћўўќћў§ўў§ћљўћћўўњ§§ ўѕћўўћњњ§ўўћўў§ўўћўўўћў ў§ўўћўў§ўўћў ўќљњњ§§ќњ§њ§§ўўћўўќћўњ§§ўўћўў§ў§ўњўў§љњ§§ї§§ћњ§ўў§§ќњ§§ўўљњ§љљ§§ўў§ћўћўћўўшћњ§ћјњўћўўћўћњћћјљ§§љ§§ўўўћўўяћўўњњ§ћћљћљ§§њ§њ§§§ћўћћўї§ћљ§§ўўћўўўћўўўћўў§ў§ў§§њ§ўў§ћў§§єўћў§јљћ§ўњњў ўўћўўћўќ§њљў ўњћў§ў§ўў§ ў§ќўћћўўќћ§љ§§ћћљњњ§§ўўћўўўњўў§§њ§ў ўў§ўўњў§ўў§њў§њ§§ўўћјў§љўўћћўўўћўў§ћў§§ўѓћ§ћ§§њ§§њ§§ћўў§ћўћћ ўўћўўћћ§§њўўўћўўќћўћўў§ћў§§§ўћўўњ§њњ§њўўў§ў ўўћўўњ§ўўњ§ўўѓћўўћћўљњ§§њ§ўўњћўў§љўўќћњњ§§їўћўўћћўћўўљћўћўћћўўїљ§ўћў§њњ§§ў§њў§§њўў§§њўўўћўўќ§њ§ўўљћўўћўћў ўўћў ўќїљ§ўўўћўўћ ўўћўўјћўў§ў§§ўўўћўў§ўќћўћўўўћўўўњўўўћўўўћўўўћўў§ў§§љ§ўўї§ўћў§ћ§ўњњј§ўў§§ћћўўўћ§§ўїћўўћћў§њў ўўћ§§єћўўћўћ§§ўўћўўљћ§ўљњ§ўўўњўў§њћ§§ќњљ§љљ§їћљћћњїїћ§§њњ§§ўћўў§ў§јњљў§њ§§ўў§ўьњљ§§ћљљ§јћ§њћ§ћљ§ўћўўўћўўўћўўўљўўў§ўўњћ§ўћћўўўћўў§ ўўћўўѕћўўњћћўћўў§§ћњ§њћўўђњљћјљњћјћ§њўў§§љ§љљњњљ§§ўўћњў§§ћћўўњћўћњ§ўўхљњўўћўўњ§ћ§њ§§њ§ўўљњ§ћ§§њћўўќћўћўў№§ћјњћўћњњћўўћўћ§§ўћў ўјћўўћћўћў ў§њћўўўћўў§ђљћ§§ўўљњњћ§њњ§§ћћњ§њ§ўўўћўўўћўўьћ§њњ§§ў§ћћњћћ§њњ§§ў§§ўњ§ўћўћўўћўўћў ўўњ§§іў§њњћљ§§ћў ў§ў§њ§ўўјњ§њ§њћћўў§ўњњ§ћ§ўћўўўћўў§њёў§§њћўў§љћ§§ћћў ўўћўўўћўўўћўўћћ§ўўћўўїњ§њ§§њћњ§§ў§љњўўўћў ўњћўћўњўўўњўўќљњњўўћ§љ§њўўѓњ§ѕћ§§ўўћў§њўўўћўўњљ§ћћўћћўў§їњ§§њўўћ§ў ўќњї§ўўўћўўўћўў§ ўћў§њњ§ўўћўўњћљњћћў ўјћўћўў§§ўў§ќљ§§ў ўў§ўўіћўў§§њ§ўў§§ќњўћўўўћўўўћўўљћ§њњ§љўўўћў ўћћўћћўўќ§ћ§ўўўћ§§ћњ§§њўўќ§ј§ўўћњ§§њў ўљћўњ§љ§ўўіљїїћ§ўўћћўўў§ћћљўњўўћ§ўўћўўљћўњ§§њ§§ўњўўўћўўј§ћћ§ўўћўўќћўћўўїћњћћљ§њњў ўђћўћўћ§њњ§ўўћ§ўўўћўўљњ§ўћњћўўњ§њј§§ўў§њњ§ўћўћўўў§ў ўљ§њ§њ§§ўўќћўћўў§ќњ§§ўўўњў ў§§њ§§§њћўўў§ўўљћў§љўћўў§§ўћўўћњ§§њўўѕћљњњ§ўћў§љўўўћўўћњ§§њўўўћўўўњ§§ћњ§ўњўўў§ўўјћ§њўћћ§ўў§ћњўўўћўўљќћњ§ўўўћўўњњћўњ§њњ§ћљћљ§ў ўћћўўћ§§ћў§њ§ўўћћўўћўўўћўўјћў§њўўњўў§ўћў ў§ћњ§ўћўўќћўћўўўћўўјћ§§њ§§њ§§ў§ў§ўћ§њћў§§њ§ўўћўўў§ўў№§ўћўћћ§ћљњњ§њ§§ўў§ўћў ў§ћўћћўћњўўћўўћ§ўћўњ§њ§§њ§§љњ§њ§љљўўўћўў§ќњ§њ§§ўўћўўўћўўќ§ўћўўќ§њ§ўў§њў§ў§ўўћў ўўћўўќњ§§ўўћњћўћўўћњў§њ§љ§§ўњ§§ќљ§§ўўќћўћўўњїћ§§њњ§ўўњњўјћњњљњ§§ўўўћўўљћўў§§њ§§ў§ўњћћ§љћ§§њ§ўў§§ўњўўћўўљћўњ§њћў ўњ§ўў§ўўќћўў§§ќљ§ћўў§ўє§њњ§ўћўћўћћўў§њў§§ћњњ§§љњ§§ўўћўўњљўћњњїљћ§ћ§њ§љ§§њљ§њў§ўўўћўўю§ўћўњљњћ§ўў§ў§ћћ§ўўј§љјњћ§ћўў§§ў§ћћїњ§љњљћ§§ћћњ№ўћўў§§љўћћїћ§§ўћћўў§ўў§ћћ§њњ§љљћћљ§§ўўљћ§ћљћњ§§њїћљњ§§њ§њ§§њьўћўњ§њ§§ўћўћ§§ћћјљљњњўћ§§њўљ§§тњјћћљјїњјњћћ§§њўўћўћўўћў§§ћљњ§§ћ§ўў§§ћ§ќћљјїїѓљјјњћ§§ў§ў§§љљјјћћјћљј§§ўњўўѓ§њљћћљ§ўў§ћћљљћљяћљћњ§§њ§њћљ§љћ§њћћёњ§њ§јћћљћћљћћ§ћўў§§ѕў§ўў§§ўћ§ћўўѓ§ћ§ћў§ў§ў§ћћ§§іћ§ўў§ў§ўћў ў§љў§§ћў§ўўђћ§ћ§ћў§ћњ§ћ§§ўўњ§ўћў§ўў§ќћ§§ўўў§ўў§ќћ§§ў ўьћ§њћљћћ§ћ§њћњћњ§§ў§ў ўў§ўў§ў§§ћ§§њћў§ў§ўўі§ў§ў§ўўћћ§§њћўў§ћўўћ№њћњ§ћћњћ§§ћў§§њљљћ§§ћўў§ќћ§ћўўћ§ў§§ўў§ќћ§ћ§§фћ§§ў§§ћў§§ћ§ћ§ћў§ў§§ћњљћћ§ћў ўў§ў ўѕћњ§ўў§ўў§ћўўў§ўўў§ўўў§ўўќ§ўћўўў§ўўїћ§ўўћ§ћњ§§§ў§ўўў§ўў§њћ§§ў§ўўўћ§§ўў§ўўђћ§ћ§њћћўў§ўў§ўўюћ§ћ§ўў§ўћ§њћћў§§ў§§єћ§ћњћњћ§ўў§ўўў§ўўњ§ћњћћўўў§ўўў§ўўћ§ў§ўўъ§ўћ§њћћўћўћўћ§ћ§ћ§§ў§ўўў§ўўў§ўўљ§ў§§ћњћћіўћў§ўў§ћ§ўўѕ§ў§ў§ў§ў§§ўўї§њћћў§ўў§§ѕћ§ћ§ћў§ў§§ћћћ§ћ§ћўў§ўњћ§ћў§ўў§ќў§ў§§ўњћћ§ў§ўў§њњћћ§ћўўі§ўћ§ћ§§ў§ўўќћў§ўўў§ўўў§ўўј§ўћ§ўў§ўўі§ўћ§ћ§ўў§ўўў§ўў§ў§§ћўўю§ўћ§ћў§ў§ў§ўћ§ўў§ўўў§ўўќ§ў§ўў§ўћ§§ќћ§ћўўў§ўў§њћ§ћў§ўўя§ўў§ћў§§ћ§§ў§ў§§ћћ§юћўћ§ћ§ћў§§ћ§ћ§ћ§§ўўў§ўў§ћћ§ўў§ўўќћ§§ўўќ§ў§ўўњ§ћњ§§ўўє§њњ§ћ§ћўћ§§ўўќ§ў§ўўэ§ўў§ћћњћњћћ§§ћ§§ћ§ўў§ўњћћў§ўўў§ўў№§ў§§ћў§ў§ў§§ћ§§ўўћ§ћ§ћўўј§ў§§ћ§§ўўљћ§ћњћў§§§ў§ў ўў§ўўћ§ўћ§ўўў§ўўќћўћўўћ§ўћ§ўў§ћ§ўўњ§ћ§ћ§ћћ§ќћ§ћўў№§ў§ў§ўћ§ћ§ћў§ў§ўў§ќў§ў§§єў§ўћ§ћўћ§ћ§ўўў§ўў§ўў§ўўў§ўўў§ўўќћ§ћўўі§ўў§ў§ћ§ћ§§ўћўўў§ўўў§ўўў§ўўў§ўў№§ў§ўўћћ§ўў§ў§ў§ўўў§ўўќћ§ћўўў§ўў§ў§§ў§§ћў§ў§ўўќ§ў§ўўў§ўўњћў§§ћўўњ§ў§ў§ўўїћ§§ћ§ћў§ўўў§ўў§јћ§ћ§§ў§ўўў§ўўў§ўўћ§ў§ў§§ўў§§јћ§ћ§§ўћ§§ёў§ў§ўћ§§ў§ћ§ў§ўўќ§ў§ўўєћ§ћў§ў§ў§ў§ўўќ§ў§ўў§§ў§ўўќ§ў§ўўў§ўўў§ўўњ§ў§ў§ўў§ў§ќћў§ўўє§ў§ўћ§ћ§ћў§ўўќ§ў§ўўў§ў ўў§ўўњ§ў§§ћўўј§ўћ§ћўћўў§їў§§њ§§ўў§§љўћ§ўў§ўўќћ§ћўў§§ў§ўўќ§ў§ўўњ§ўћ§ћўў§§ћўў§§ўћћ§§ћўўї§ћћ§ћ§§ўћћњ§њћњћљљѕњћ§ћ§ћћўў§ўўћ§ћ§ћўўђ§ўў§ћ§ўўћ§ћ§§ўўў§ўўў§ўўћї§ўў§ћ§§њћћњ§њ§§ўћћ§§ў§ўўє§ў§ў§ў§ў§ў§ўўњ§ў§ў§ў ўў§ўўўћўўўћўўў§ўўј§ўў§ћў§ўўў§ўўў§ў ўў§ўў§њћ§§ћ§ўў§ћђў§њњћћ§§ўћ§ћ§ћћѕ§ў§§ћћ§§ў§ўў§ўћўўѕ§ћў§ў§ў§ў§ўў§ўњ§§ѓћ§ћў§ў§§ў§ћ§ўўў§ўўћјњљњўў§§ўўќ§ћ§ўўў§ўўў§ў ўў§ўўў§ўўњ§ў§ў§ўўх§ћћњ§§ўўћљљњћ§§ћ§ћ§њћњ§ћ§ћўўў§ўўў§ў ўў§ўўќ§ў§ўўю§ўўћћ§§ћћўћћњљњњћ§§іћўћ§ћ§ўў§ўў§ўќ§ў§ўўў§ўўў§ўў§єћ§ћўћ§§ћћ§ћўўў§ўўі§ўў§ћў§ў§ўў§ўћўў§§ћ§§ўў§ўўћўў§§јў§§ў§ў§ўў§ўћ§§ћўћћ§ўўћќњ§ћўўњ§ў§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўўњ§ўў§§ўўў§ўў§іћ§ў§ћ§ћ§ћўў§§ў§ўўў§ў ўў§ўў§ўў§ўў§§ў§§ўі§ўћўћ§§ў§ўў§§ў§§ћ§ўњћ§§ў§ўў§ўћўўі§ўў§ћ§ћ§§ўўўћўўў§ўўќ§ўћўўў§ўўќ§ў§ўўє§ў§§ћў§ў§ў§ўўќ§ў§ўўљ§ћ§ћў§ўўў§ўўў§ўўќ§ў§ўў§іћў§ўћ§ў§ћўўў§ўўќ§ў§ўўўћўўќ§ўћ§§љўћ§ћ§§ўўў§ўўўћ§§ўў§ўўќ§ў§ўўќ§ў§ўўњ§ў§ў§ўўќћњћўўў§ўўєћ§ћ§ћ§ћћ§ў§ўўј§ў§ўћ§ћўў§ўћўўў§ўў§ќћўћўўў§ўўјћљљћћў§ўўј§ў§ўћћњћћў§ўўє§ўў§ћ§ћ§§ў§ўўў§ўў§§ћ§§ћљ§ћ§§ў§ўўљ§ўћњњ§ўўў§ўўј§ћњћћ§§ўў§ўћўўўћў ўў§ўў§ћћўў§ўўќ§ўћ§§їў§ўћ§ћ§ћ§§ўћўўњ§ўћў§ўўў§ўўі§ўћ§ћ§ћ§§ўўќ§ў§ўўњ§ў§§ћ§§ќћў§ўўў§ў ўљћ§§ћ§§ўўќ§ўћўўњћў§ў§ўў§§ћўў§јћ§§ў§ўў§§ўў§ўўў§ўўў§ўўј§ў§§ћ§§ўўє§ў§ў§§ћ§ћ§ћўўў§ўўќ§ў§ўўіћў§ўў§ў§§ўўќћў§ў ўќ§ў§ўў№§ў§ў§ўўћњ§ћў§ў§ўў§ў§§ћ§ћћў§ў ўј§ў§ўў§ћ§§ ўў§ўўўћўўў§ўўі§ўћ§ћ§ўў§ўўў§ўўўћ§§ћў§ў§ўўњ§ў§ў§ўўўћ§§іћ§ћ§ћў§§ћў ўў§ўўћ§ћ§ћў ўў§ўўћћ§ўўћћ§њћ§§ў§ўўі§ў§ўў§§ў§ўўўћўўќћњћ§§ўћўўі§ў§ўћ§ўў§ўўњ§ў§ў§ўўі§ў§ў§ў§ў§ўўњћ§ћў§ўўю§ћ§ћћ§ћ§ћ§ћ§ћћ§ў§ўўў§ўў№§ў§§ћ§ћ§ћ§ћ§ћ§ћўўќћў§ўўњ§ў§ў§ўўњ§ўў§§ўўќћ§ћўўћ§щў§§ћ§ћ§ћ§ћў§ўћ§ћ§ћў§ў§ўўў§ўўў§ўўќ§ћћўўќ§ў§ўў§ћ§ћћё§ћ§ћ§ћ§ћ§ћў§ў§ўўў§ўў§§њћ§§ќћўў§§ѓў§ў§ўў§§ў§§ћўўў§ўўў§ўў§§ћ§ћћїў§§ћ§ћ§§њњјћњћ§ћ§ћ§§§ћўћћ§ў§ўў§єў§ў§ў§ўў§ћ§ўўћ§ў§ў§§іћўў§§ў§ў§ўўі§ћ§ћ§ћ§ћ§ўўјћ§ўў§ўћ§§§ў§ўўў§ўўі§ћ§ўў§§ћћ§§њћ§ћў§ўўю§ў§ўў§§ўћњљњљћњ§њ§§єў§ћ§ћ§§ў§ў§ўў§§ў§§аў§§ћљњ§ўўћўћўў§§ў§§ћњљћћў§ўў§ћ§ў§њћњ§ћў§ћњ§ћћњћ§§њў§ўћћўўњћ§ўќ§ўћўўў§ўў§ћўњ§§ћьњћћ§§ў§ўў§њћњ§ћ§ћ§ћ§§юњћ§§ћ§ћ§ћ§ћ§ћ§ћ§§ўў§ўћўўј§ћћњњћћљљјњ§ћ§ћ§ћ§§ъћ§ћ§ћ§ћњњћњљљњљћњ§ћ§§ўў№§ўў§ћњћ§ћ§ћ§ўўћ§§№ћў§§ћћњћњћћ§њћњљљѓјњњљњ§ћў§ўћ§ћћў§њњћъ§ћ§ћ§§ў§ў§§ћћњћћў§§њњћћўњћћњњћњ§ћ§§ћў§ћћњ§њћњћ§§њ§ћњћћ§њ§њўў§ўўњ§ў§ў§ўўќ§ў§ўўјћў§ў§ў§ўўј§ў§ўћў§ўўє§ў§ў§ўћ§§ў§ўў§§ў§ўўќ§ў§ўў§ћѕў§ў§§њћћ§§ўўќ§ў§ўўў§ўўў§ў ўњћў§ў§ўўў§ўўєћўћ§§ўћў§ў§ўўі§ўљ§њћћў§ўўќ§ў§ўўў§ўўє§ў§ў§ў§ў§ў§ўўў§ўўњ§ў§ў§ўў§ћ§ўќћ§§ўўў§ў/ўў§ўўљ§ў§ў§§ўўќ§ў§ўўќ§ў§ў ў§ўћўўў§ўўњ§ў§ўћўў§ўћўўї§ў§ў§ў§ў§§§ў§ў ў§ў§ўћўў§§ў§§§ў§ўў§§ў§§ўќ§ў§ўўў§ўў§ўі§ў§ў§ў§ў§ўўј§ўћў§ў§ўўў§ўўў§ўўў§ўў§§ў§§§ўћўў§ќћ§§ў ўќ§ў§ўўў§ўўў§ўўќ§ў§ў ўќ§ў§ўўў§ўўў§ўўў§ўў§§ў§§ћў§ў§ў ўќ§ў§ўўў§ўўќ§ў§ўў§§ў§§§ў§ўўќ§ў§ўўќ§ў§ўўў§ў ў§ќћў§ўўў§ўў§ў§јћ§§ў§ў§ў ўі§ўћ§ћ§§ў§ўўќ§ў§ўў§ўў§ўўќ§ў§ўўќ§ў§ўўћ§ў§§ўўќћ§§ўўў§ў-ўў§ў ўў§ўўј§ў§ў§ўћўўќ§ў§ўўў§ў ўў§ўўў§ўўў§ўўў§ў ўў§ўўў§ўўі§ў§ў§ў§ў§ўўў§ўўў§ўў§§ў§ўўў§ўўў§ў ўњћў§ў§ўўў§ўўј§ў§ў§ў§ўўў§ўўј§ў§ў§ў§ўўќ§ў§ўўў§ўўў§ў%ўќ§ў§ў#ўќ§ў§ў ўќ§ў§ў#ўўћўўў§ў ўќ§ў§ўўў§ўў§ўќ§ў§ўўў§ўўў§ўўў§ў ўў§ўўў§ўў§ўѓћў§ў§ў§ўћўћў§§іћўњ§§ў§ў§ўўќ§ў§ўўў§ўўќ§ў§ўў§ћўћ§§ўўќћ§§ў%ўў§ўўў§ўўќ§ў§ўўѕ§ћў§ў§ћћў§ўў№§ў§ўў§§ў§ў§ў§ў§ўўў§ўўў§ўўў§ўў§ћў§ў§ўўњ§ў§ў§ў ўјћўћ§ўў§ўўќ§ў§ў+ў§§ў§§ўюћўћ§ўў§ў§ў§§ћ§§ў§ў%ўўћўўіћ§ћ§§ў§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўњ§ўћ§§ў ўў§ўўў§ў ўњ§ў§ў§ў ўќ§ў§ў ўќ§ў§ў)ўў§ўўє§ў§ў§ў§ў§ў§ў!ўў§ўўќ§ў§ўўњ§ўћў§ўўў§ўўў§ўў§)ўў§ўўќ§ў§ў ўў§ўўў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ў'ўў§ўўќ§ў§ў ўў§ўўў§ў ўў§ў ўћ§њ§ћў ўњћ§ћў§ўўњ§ў§ў§ў ўњ§ў§ў§ўўќ§ў§ў ў§ўќћ§§ўўќ§ў§ўўў§ўўў§ўў§ўј§ў§ў§ў§ўўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ў ўњ§ў§ў§ўўў§ў#ў§ўў§ўўє§ў§ў§ў§§ћ§§ўўј§ў§ў§ў§ў#ўќ§ў§ў ўќ§ў§ўўј§ў§ў§ў§ўўў§ўўќ§ў§ўўў§ўўќ§ў§ў ўў§ў ўј§ў§ў§ў§ўўў§ўўў§ў ўі§ў§ў§ў§ўћў ўќ§ў§ўўњ§ў§ў§ўўў§ўўў§ўўў§ўўј§ў§ў§ў§ўўќ§ў§ў-ўѕ§ўћў§ў§ў§ў§§ ўј§ў§ў§ў§ўўў§ўўњ§ў§ў§ў ўќ§ў§ўўљ§ў§ў§ў§§ћў§ў§ўўќ§ў§ў ўў§ўўќ§ў§ў ўќ§ў§ўўў§ўўљ§ў§ў§ў§§ўў§ўўќ§ў§ў ўќ§ў§ўўћ§ў§ў§§§ў§ў ў§§ў§§ќћњћ§§њў§ў§ў§§ўў§ўўў§ўў§ќћў§ўўў§ўў§ќћўћўўѓ§ў§ў§§ћў§ў§ў§§љўћ§ћў§ўўњ§ўћў§ўў№§ўћ§§ў§ўћўћ§ћў§ўў§јў§ў§ў§ў§§ёў§ў§ў§ў§ў§ў§ў§ўўќ§ў§ўўы§ўћ§ћ§§ћћўћ§§ў§ў§ў§ў§§њў§ў§ў§§ќўњўћћ§§ў§ўўі§ў§§ўў§ў§ўў§ў§јўћ§ћ§ћў§§њћњ§њ§ћћ§ўљ§ўў§§ћ§§єћ§§ўћ§ћў§ў§ўў§ќћўћўў§ћћ§§ў§§љў§ў§ўћ§§ѕћў§§ћ§ћў§ў§§њћ§ћ§ћ§§ў§єћ§§њњљ§њ§ўћўўќњљ§њњў§ўўњ§ћўћћўўўћўўћўіћўў§љљњ§ћўўўћўў§ўўћўўўћўў§ўўћўў§ўўћўўљњўў§§ћў ўіћў§њ§§њ§њўўњњїјћ§ўўќћўћўўћўўћўўљ§љљћ§њўўјћўўћў§њўўўњўўњ§јљњ§ўўўћ§§ўњўўћўўћўўћќњўћўўўћў ў§єњўўћўњљљ§њћўўўћўўћћўўћўўќћўћўў§ўўћўўјћњњўћў§ўў§ў§њ§ўїћњ§њ§§ўћўўћ ўўћўўљ§њљў§њљљ§ћ§ўњ§§ўўњ§§ќљћљўўўћўўј§љћћ§ўћўўћљўћћўўћў ў§ ўјћўћћњњћўўўћўў§їўћў§§ўўњ§§§њ§ўўќћўўћћўњњ§§љ§ўўёћўў§њўћћўў§§њ§ў ўўњўўњћ§§њ§ўўўћўўўћўўќћ§§ў ўћўўћўўѕћ§њњћњў§§ћў ўўћў ўўњ§§ўћўўўћўўўћ§§§ўњўўќћўњўў§ўњўў§ћў§§§њљ§§њњћћљ§ўў§ ўўћўўћ§њљћўў§ћўћўћўў§љ§ћћэљњњћўћўўњћ§њљћњјћњўўєћњ§њњ§ўћ§§њўўѓћўў§њўњњ§ўўћў ўј§њ§§ћћљ§§јњ§њў§§њўўўћўў§ўћўў§ўћўўћћўћњ§§ўўћўўє§ћћ§§ўў§§њћў ўћњ§ўћўў§ќўћћўўћўўћў ўњў§ўїћ§њњћўўћўўћњ§њ§ўўљћўўћўћўўўћў ўњўїўўћўћўњћўў§§ўўўћўўў§ўў§ћ ўќћўў§§ўњўўў§ў ў§ўўћўўўћўўўћ§§§њћўў§ћ§ўћўў§іўћўў§§љўў§§ўїћўўњњ§§њ§§ћћ§љњ§ўўїўћўўћўўўћўўћњў§§ўў§њўїћњ§ўљњњћўўћ§§њ§ў ўћћўўћўў§ђњ§њ§ћ§ћўўљ§њ§ўўћўў§§ў§§њћўўўћўўљ§ћ§§њў§§ўў§ўўўњ§§ўњњ§§ўўћћ§њўўћўў§ў§їћўћўћў§њћћјўњњўўћ§ўўћў§њў§ў ўўћўўўћўўќ§њњ§§љћўўћўћўў§ўў§ўўўњўў§ў§§њ§ўўўћўўњїћљўў§§ўћўўўћўўћћўўћўўћўћћўўћўўўћўўєћ§§њ§ћўўњљћ§§ћў§њњўўўћўўћэў§§ћћњћ§ўўћўўћ§§њ§ўў§љ§ўў§їњўў§љњћњ§§ўў§§ў§ѕў§љћћњљљњ§ўў§ўљ§§ў§ ўўњ§§ўњ§ўўћўўўћ§§њўњњ§ў§§њў§њ§§ўўјћўўћўћћўўњћўћњ§ўўќњ§§ўў§ўћўў§ў§ўћўўћўўўћўўў§ўўїњ§§ћўў§§ўўіћўў§њ§њ§љћћ§ўўћў ўњњў§ў§њњћўћўў§§њ§§ўћўў§§њљљ§ўў§§ ў§ўћўўњћў§ўћўўћўњ§ћћљњ§§ў§ўћњњќјљљ§§ќњ§§ћћљћћљњ§ћўўўћўўќћўў§§ўћўўўћўўіћўћўў§§њњўў§ўўћўўх§ћњїјћ§ўћ§ћўўћћўў§љћћљћ§§њ§§ўћ§§ўњўўј§ћўњ§њ§ўўњћўћўћўўњћўњ§§ўў§ћў§§ўўћўўћ§ўћўўћ§њњћўў§њў§ћћ§ўў§§ѕћўўњљћњ§ћљ§§§њ§ўўљћўћћ§ћўўі§љљћ§§њ§§ўўћћўўњўў§ќњ§ў§§њљ§§њ§ўў§њљѕћ§њ§§ўўћћ§ў§ўўћ§њ§ћўўљ§њўўњј§§ўўњ§§ќћўћ§§ўўћўў§ў§ђљ§њ§§ўћ§§њў§њ§§ўћўў§ёњ§§њ§§ўўћўћў§§ћћ§ўљ§§јў§§њњ§§њњќ§њўњњєљўњ§ћљљ§§њ§ўўћћўўћ§§ќњўћўў§њљћ§јћў§§ўўћ§§ўўћўў§њћљјћ§ўўќ§њњћћ§ўњ§§ўќ§ўў§§ќћўў§§ў§јњћ§њћўћњњў§ўўќћ§ћўў§ўњћўўћў§§ўќћўћ§§ў§§ћљ§§ђњ§§ў§њ§јћјћћњљљўњўўљћўњњ§§ўўўћўўўћўўјћњўњ§§љ§§јњ§ўў§љ§ўўўћўўїћўћўўњ§§ўў§ѕјћ§§ўћћ§њћўўћћўўћўўћћўњњ§§§ўћўўўћўў§ўћўўїћ§§њ§ўў§ћћў§ўўўћўўў§ўўў§ўўўћўўўћўўўћўўћћўўњ§§ўњ§§ўњўцњ§§њ§ћўўњљњњўўћћ§§ўњ§§њњ§ўўќћўћўўћ§њћћ§§ћњљњ§ўўєњўўћћљ§§њ§ћ§§ў§ў§ћњўў§јћњњ§§њ§ћћ§ўћўћќўћњ§§ћўћўњ§§ќћўў§§ѕўћўњљј§§ўћўў§ѕћўћњ§§ў§њ§ўў§ ўўћўўћњ§§њ§§љўњњ§§ћўўєљ§њў§њ§§њњћўў§ћњўўѕћў§љћ§§њўћўўє§љћјљћњ§њњћ§§ѕї§§њћћўњљљўў§ћњ§§ѕў§ћў§њњ§њњў ўўћўў§§љ§§§ћ§ўўћўћћўўћўўўњ§§њўћўў§њњќ§љљ§§ўы§њ§§ћјљњ§ўћўўћўўћњ§љ§§ў§єў§§јљњљћ§њћњњќљћњ§§њ§њў§ўў§ёњћјїјљјњљњ§њ§§ўў§ќњ§§ўў§ќњ§љ§§ћњ§§ў§§њњ§ўўћўўњ§јјћњ§ў§њ§§ьћњ§ўў§љћљјљљ§§ћљ§ўў§§ўњўўќћўў§§ўњћќљ§ўћћњљњњ§њ§§њ§ўљћћ§ўўћўўѓњ§њљљјљј§§ўў§§ќљјј§§ўќћўњ§§љћ§њ§§њўў§ўўћўўћ§ў§ўў§єњўўћўўћўњ§њћћљљўў§§љ§§ќњўћўўљћўћўўњ§§њїўћ§§ўњ§§ўўі§ћћ§њ§§љћљљђ§ћћјњјїћ§њњўћўўўћўў§ћњ§§њўўћћ§§љ§§ўќ§њњ§§ћљ§њњ§§ў§њ§ўўў§ћћљњч§љ§§ћљћњњўў§ћ§§њћљјћ§§њћўў§ћ§љїћљјћљљњњўў§ў§љјљљјјћљ§ўўќ§јј§§ў§ћўў§§њљћ§ўў§§§њ§ўўќћўў§§ў§ћљјњ§§ўћ§љ§§ўў§ўўћћњ§ћћ§§ў§љћњљћјћљ§§јњўћўњљ§ўўыћўњњ§љћјћћљћњ§ўўњћћњўўњё§ў§њњћњ§§њ§§љљ§§љў§ќћњћ§§ўў§§§ў§ўўќ§ўћ§§ўњ§ўћў§ўўў§ўўў§ўўћ§§ћўўќ§ў§ўўќћ§§ў ўі§ўћ§ћ§ћ§§ўў§њћ§§ў§ўўњ§ўўћ§ўўќ§ў§ўўў§ўўќћ§ћ§§ўў§њњў§ўўў§ўў§§ў§§ћќњ§§ўў§§ћўўћ§ў§ў§§ўћ§§§ў§ўўњћ§ћ§§ў ўќ§ў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ў ўќ§ў§ўўјћ§ћ§ћў§ўўњ§ўў§§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўњ§ў§ў§ўўћ§ў§ўўќ§ў§ўўў§ўўў§ўўњ§ў§ў§ўў§ўў§ўўј§ў§ўћ§§ў ўў§ўўі§ўћ§ћ§ћ§ћ§§їћ§ћ§ћў§ў§§ўћўўў§ўўў§ў ўќ§ў§ўў§ўў§§ћў§ќћ§§ўў§јћ§ћњћў§ўўј§ўћћњњћўўў§ў ўі§ў§ў§§ћў§ўўў§ў ў§ўў§ўўў§ўўў§ўў§ќћ§ћўўіћ§§ў§§ћ§ћ§§ ўы§ў§ў§§ћ§ћћ§ў§ў§ў§ўћ§ўў§њћ§ћў§ўўќ§ў§ўў§љў§ў§ў§ўўў§ўўў§ўўі§ўў§ћ§ћў§ўўі§ў§ў§ўћ§§ўўў§ўўў§ўўў§ўўў§ўў§ўќ§ћћўўў§ўўў§ўўў§ўўў§ўў§ќћ§ћўўў§ўўђ§ў§ў§ўћ§ћ§§ў§ўўќ§ў§ў ўќ§ў§ў ўі§ўћ§ћ§§ў§ўўь§ў§§ћ§ћ§ћ§ћ§ћ§њћћ§§ўў§§ўћћўў§ўў§§ў§§ўў§ўўэ§ў§ў§§ћћўў§ў§ў§ўў§њњћћљљњўўє§ўў§§ћњљњњ§ўў§§ћ§§ўќћ§§ўўўћ§§ўў§ўўј§ў§ўћ§ћњњќћ§ћ§§ћўћ§§ўўњ§ў§ў§ўўљ§ўў§ћ§ўўј§ћћў§ў§ўў§јћ§§ў§ў§ўўч§њћћ§§ўћ§§ў§ў§ў§ў§ў§ў§§ћўўњ§ўў§ћўўў§ўўќ§ў§ў ўќ§ў§ўў§ў§ќћ§ћўўќ§ўў§§ ў§њћ§ћў§ў ўњ§ў§ў§ўўў§ўў§ўќ§ў§ўўњ§ў§ў§ўўў§ў ўњ§ў§ў§ўўў§ўўў§ўўќ§ћћўўў§ўўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўўњ§ў§§ћўўј§ў§ў§ў§ўў§ћќ§ў§ўўўћўўќ§ў§ўўњ§ўћ§ћўўќ§ў§ўўј§ў§ў§ў§ўў№§ўў§ћ§ћ§§ў§ў§ў§ўўю§ўћ§ћ§ўў§ў§ў§ўћ§ћўў§§ћўўњћ§ћ§ћўў§єћ§ћ§ћўў§ћ§ћўўў§ўўў§ўўќ§ў§ўў§§ў§§єћў§ўћ§ћ§§ў§ўўђ§ўў§ћўў§§ў§ў§ўўўћ§§ўў§ўўў§ўўў§ўў§єћ§ћ§ћњћў§ўў§§§ў§ўў§ѓћ§§ўў§ћ§ћ§ћ§ўўі§ў§ўў§њ§ћ§§њћ§ћў§ўў§ѕў§§ћ§ћ§§ў§ўўћ§ћ§§ўўњћ§ћ§ћ§§ўё§ўћ§§ў§§ћў§ў§ў§§ўў§ўўјћў§ў§ў§ўўќћ§ћ§§јћў§ў§ў§ўўў§ў ўў§ўўўћ§§њћ§ўў§ўўў§ўўь§ўћ§§ў§ўћў§ў§ў§ў§ў§ўўњ§ў§ў§ўўѕ§ўћ§§ў§ўћћ§§ўљ§ў§ў§ў§§ћћў§§ћўўў§ўўў§ўўі§ў§ў§ў§ў§ўўр§ўў§ћ§ћў§ў§ћњ§ћ§ћ§ћ§ћ§ћўћ§§ў§ў§ўўў§ўўюћ§њњљћ§ў§ў§ўў§ћ§ћўўњ§ў§ўћўў§ѕћ§ћ§§ўћћљћ§§јћ§ў§ћ§ћўў§§ћ§§ћъњљјјљ§ўў§ў§ўћ§ў§ћ§ћ§§ўўњћ§§ў§ўўя§ћћ§ћ§ћ§ћ§§ў§§ћ§ўўц§ўћ§ћ§ћў§ўћўћ§ћўћ§ћ§§ў§ў§ўўў§ўўў§ўў§§ћўў§ўћўўњћ§ћ§ћўўў§ўўљћ§§ў§§ћћўќ§ў§ўўќ§ў§ўўўћўў§јћ§ўў§§ћўўќ§ў§ўўљћ§ћ§ћћњњћ§ў§ўўќ§ў§ўўў§ўўњ§ўћўћ§§ў§ўћ§§ѕћ§ћ§§ў§ў§ў§§ћљ§ћў§§ћўўў§ўўњ§ў§§ћўўќ§ў§ўў§§ў§§ўў§ўўћъњћ§§ћ§§ўћ§ћ§њњљљњћћ§ћ§§ќћњњћћјњћћ§ћў§ўўў§ўўў§ћћ ў§ќћ§§ўўћћ§ћ§ўўђ§ћњљљњњ§ўўћў§ўўћўњћћ§їћ§ћњћ§ћ§ўўў§ўўіћў§§ћ§ћў§ўўў§ўўќ§ћ§ўўћ§ћ§ћўўў§ўўќ§ў§ўўќ§ў§ўў§ў§ўћ§§шњћњ§ћ§ћўћ§ћў§ў§ћњ§ћњћ§ћ§§§ў§ўўўћўў§§ўћћ§њћ§§ќћў§ўўј§ў§ў§§ћ§§јў§ћ§ћўћ§§ўјћ§ћ§ћ§њ§§ќћ§§ўўњ§ћ§ўў§§ўњўўіћ§ўў§§ћ§ћўў§ќћ§ћўўњћ§ћў§ўўѕ§ўћ§ћћўў§§ћћэ§ћ§§ўћ§§ўћ§ћ§ћ§ћў§ўўў§ўўў§ўўј§ўў§ћ§ћ§§яћў§ў§ў§§ћћњћњ§ћўћћ§§ћ§§ўћ§§ўћ§§ўћ§§шћў§§њћћ§ћ§ћў§ў§ў§ўў§ћ§§ўўј§ў§§ћ§§ћћіњ§ћ§ћў§§ћўўћўў§ўўпћ§њћњњћў§ўћ§§ћњћћ§§ћћ§§ў§§ўўћ§ћ§ўў№§ћ§ћў§§ћ§њ§§ў§ў§§ўђ§ўћў§ў§§ћ§§ў§ўўў§ўўњћ§ћў§ўўэ§ћ§ћў§§ћ§њћћ§ћ§ћ§ћ§§љћўћ§ћ§њњњ§ўћћ§ўў§§ў§§ўћўўў§ўўц§ў§ўў§ў§ћ§ў§ћ§ћ§ћў§§ў§§ў§ўў§§ћ§ўўљ§ћ§њ§ћўўјћ§њў§ў§ўўњ§ў§ў§ўў§њћ§ћ§§ўў§јћ§ћ§ћў§ўўѓ§ћ§ћў§§њћњ§§ўўќ§ўћўў§ўў§ўўњ§ў§ў§ўўќ§ў§ўў§ќћ§ћ§§ћћ§§ў§§љў§§ћ§ћўўќ§ћ§ўўўћ§§ўћ§§ўћўў№§ў§§њћћ§ћ§ћ§ћў§ўўў§ўўћ§ћњ§ћ§ўўљ§ћ§ћ§§ўўњ§ў§ў§ўў§ьћ§ћ§ћћ§§ћћ§§њћњ§ћ§ћўўў§ўўў§ўўћ§ћ§ћўў§іћ§§ў§ўћ§ћўўњ§ћћ§ћўў§ћ§ўў§§ћ§§ўќћ§§ўўј§ў§ў§ў§ўўў§ўў§§ћ§ћћяў§§ћ§њў§ўў§§ўћ§ћ§§ ўћњњ§ћ§§ўў§ћю§ћњ§ћ§§ћћ§ћ§ћўћ§§ўўѕ§ћћў§ўў§ћ§ћћї§ћ§ў§ўўћ§§ ўў§ўўў§ўўћћў§§ћћўў§ўўў§ўўќ§ў§ўў§ќћ§ћўў§ћћ§ћўў§§ћћњњћ§§ў§§ћ§ћћћў§§ћ§§ћћ§ћњћћѕ§њњљљћћ§§ћ§§ўћ§§йћў§ўћ§§њњћњћњљћ§ћ§ћ§§ў§ўћ§ћћ§§ћў§ўў§ћ§ћћ§§ћ§§њћўћ§ћ§§ў§ёћ§ћ§њ§§ўћ§ћ§ћњ§§чўћўњћњћћ§ћњћ§§ўћ§ћ§ћ§§ў§ўў§ћћ§§ў§§ѕћњњў§ўўњњћ§§ћћ§ћ§ћ§§їћ§ћњњћћ§ўўф§ў§ўў§ћ§ўў§ћ§§ћў§§ћ§ћћњ§ћ§ћўў§іћ§ћўћ§ћ§§ўўіћ§ћў§ў§ў§ўўіћў§ўћ§§ў§ўў§ыћњћўў§§ћўћ§ћ§ўў§ў§ў§ўў§ўћ§§ўўћ§§ќћ§§ўўі§њћћ§ћ§ћњћћї§њћњљњћњ§§ўњњў§ўћ§§§ћ§ўўюћ§ћ§ћ§ћў§ў§ў§ў§ўћ§§іћ§ћ§ћ§ћўћ§§іћ§§ў§§ћў§ўў§њћ§§ў§ћћ§ўяћњћ§§ћјњњ§ћ§ўў§ўћћэњћњћћ§ћ§ћћњћњњћћ§§ўўў§ўўљћ§ўўћ§ћћњўћњњћўы§њњћ§ћў§ў§ў§ў§ўћ§ћ§ћўўљћ§ћ§ћ§ћћўї§ћ§ћ§ћў§ўўцћ§ћ§§ўћ§њњћћ§§ћўў§ћ§ћ§§ўћўў§њѕћ§ћ§ћўў§ћ§ћћњѓћњ§њћћ§ћ§ћ§§ўўњ§ћ§ў§ўў§ћљњ§њћћњ§§јў§ћњ§§ў§§ќў§ћ§§ћќ§ћ§ћўњ§ў§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўќћў§ўўў§ўўњ§ў§ў§ў ўў§ўўў§ўўў§ўўњ§ў§ў§ўўњ§ўћ§§ўў§§ў§§ў§§ў§ўўќ§ў§ўAўќ§ў§ўўќ§ў§ўMўў§ўўў§ўўђ§ў§ў§ў§ў§ў§ў§ўўќ§ў§ўўі§ў§ў§ў§ў§ўўќ§ў§ўў§§ў§§ўќћ§§ўўў§ўўў§ў ўќ§ў§ўўў§ўўј§ў§ў§ў§ўўћ§ў§§ўўў§ўўќ§ў§ў ўў§ўўќ§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ў+ўќ§ў§ў ўћ§ў§ў§§їў§ў§§ћћ§ўўў§ўўў§ў ў§ћў§ўўј§ўћ§ћў§ўўњ§ў§ў§ўўў§ў ўќ§ў§ўўќ§ўћ§§ћў§ў§ўўў§ўўќ§ў§ўўќ§ў§ў ў§ќћў§ўўў§ў ўў§ўўў§ў#ўќ§ў§ўўќ§ў§ў ўў§ў!ў§pўў§ўўў§ўўў§ўўњ§ў§ў§ў ўќ§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўј§ў§ў§ў§ўў§ўќ§ў§ўўў§ў ўў§ўў§ ўќ§ў§ўўј§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўўј§ў§ў§ў§ў ў§љў§ў§ў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўј§ў§ў§ў§ў ўў§ўўў§ўўў§ўўќ§ў§ў#ўќ§ў§ў ўў§ўўў§ўўў§ў ўј§ўћ§ўў§ў5ўќ§ў§ўўєћ§§ў§ў§ў§ў§ўўў§ў ў§ќўћ§ўўќ§ў§ў ўњ§ў§ў§ўўћћўћў§§љў§ў§ў§ўўђ§ў§ў§§ћ§ћњюћ§ўўј§ў§ў§ў§ўўў§ў ўј§ў§ў§ў§ўўќ§ў§ў ўќ§ў§ўўўњўўў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ў ўў§ўўћћў§§ўўў§ўўќ§ў§ўўќ§ў§ўўќ§ўћ§§ў§ ўў§ў ўў§ў ўјћ§§ў§ў§ўўѓ§ў§§њћћўћ§§ў§§ћў§ўћ§§њћ§ћ§§ўўў§ўўќ§ў§ўўљ§ћњњ§§ў ўюћўћўћў§ў§ў§ў§ў§ў§ў ўў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўє§ў§ў§§ћ§§ў§ўўў§ўўћ§ў§ў§§ћў§ў§ў ўјћў§ў§ў§ў ўі§ў§ў§ў§ў§ўўќ§ў§ўў§§ў§§ћў§ў§ўўћ§ў§§ўўў§ўўќћў§ўўќ§ў§ўўў§ўўў§ўўј§ў§ў§ў§ўўў§ўўњ§ў§ў§ўўј§ў§ў§ў§ўўј§ўћ§ћ§§ўўт§ў§ў§ў§ў§ў§ў§ў§ў§ў§§ўў§ў§ў§ў§ўўќ§ў§ўўє§ў§ў§ўћ§§ў§ўўў§ў ў§§ў§ўўј§ўћўћў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўў§§ў§§ўќ§ў§ў ўќ§ў§ў ўў§ўўќ§ў§ўў№§ў§§ћў§ў§ў§ў§ў§ўў§ћћ§§ў§§ўќ§ў§ўўє§ў§ў§ў§ў§ў§ўўќ§ў§ў ўќ§ў§ўў§§ў§§ў§ўњ§ў§ў§ўўњ§ў§ў§ўўќ§ў§ўў§ќћ§§ў ўў§ўўі§ў§ў§ў§ў§ўўў§ўўќ§ў§ўўў§ўўњ§ў§ў§ў ў§ћћў§ў§§ўў§ўў§§ў§ўўњ§ў§ў§ў ўі§ў§ў§ўћў§ўў§њћ§§ў§ўўќ§ў§ўўћ§ў§§ўўў§ўўќ§ў§ўўў§ўўј§ў§ў§ў§ўўў§ўўќ§ў§ўў§ўў§ўўњ§ў§ў§ўўўћўўњћ§§ў§ўўќ§ўћ§§їў§ўћў§ў§ўўў§ўў§ўќ§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўў§§ўћўўќ§ў§ўўі§ў§ў§§ћў§ўўі§ў§ў§ў§ў§ўў§ўт§ў§ў§ў§§њ§ћў§§њўћ§ћў§ў§ў§ў§ў§ўўљ§ў§ўћўћћ§ћў§ў§ўўў§ўўў§ўўє§ў§ў§ў§ў§ў§ўўњ§ў§ў§ўўь§ў§ў§ў§§ў§ўў§ў§ў§ў§ўў§їћ§ў§ў§ў§ўўњ§ў§ў§ўўќ§ў§ўўі§ўћ§§ў§ўў§§ўќ§ў§ўўї§ў§ў§ў§ў§§ћўћў§ў ўњ§ў§ўў§§ўі§ў§ў§ў§ў§ўўќ§ў§ўўў§ўўў§ў ўў§ўўњ§ўћўћўўј§ў§ў§ў§ў ўњ§ў§ў§ўўњ§ў§ў§ўў§ўћўў§ћ§§ў§ў ўњ§ў§ў§ў ў§§ў§ў ўю§ў§ў§ў§ў§ў§ў§ў§ў§ўўў§ўў§ѕў§ў§ўћ§ћў§ўўі§ў§§ћњњ§§ўўїћ§ћ§ўў§ў§§љў§§ћў§ўўў§ўў§§ў§§ћ§ўњ§ћњў§ў ўќ§ў§ўўј§ў§ў§§ћўўњ§ў§ў§ўўќ§ў§ўў§ќћў§ўў§§ў§ў ўј§ў§ў§ў§ўўњ§ў§ўћ§§єћ§ћ§ћў§ў§ў§ўў§ўє§ў§ў§§ћ§§ў§ўўќћ§§ўўё§ў§ў§ў§ў§ў§ў§ў§§ўў§§ъћўћ§ћћњћўњњћњ§ўћћўўћћўў§ћў§§ўњћћўї§љћјћћљ§ўўјћўў§њў§ўўќћўћўўњўћљљ§јћ§§ўўћўўњўћ§њ§њўў§ћљњўўћћўўћўўўњў ў§ћљўў§ћћўћ§ў ўўћўўњ§ў§ї§ўў§јњ§ўћўўћўўќ§њћўўћ ўјњљљјћўћўўіњ§ћ§ўћћўў§§ћўќћўћњњўњњ§њ§§ўўў§ўў§ќњ§ћўў§ћў§§ўўћўўўћўў§њ§ўўў§ў ўўћўў§§ћљ§§ўј§ўўћўћћўўљћ§њ§ўћўў§ѕњ§§њ§§ўћўњ§§§љћўў§њћўў§љњўўўћўў§њ§ўўќћўўњњў§ўў§ћў§§ќў§§ўўў§ўўњў§ўўќ§њњўўўћўўіћњњ§њњўўћўўўћўўјљ§§љњљћўў§ўљћ§ћўњ§ўў§ў§ўћўўўћў ўўћ§§ўќ§ћ§ўўўћў ўўћўўўћ§§ўўћ§§ћўўћўў§ў§њ§ўўўћўўўћўў§ўћўћћўўћўўўћўўќ§ћ§ўўўћўўўћўўќћў§ўўњћўў§ћўўьњўўћўўћћўўћўћўћўўћћўўўњўўўћўўѕ§њњ§§ўў§§њўўўћўўўћўўў§ўўњеўњ§љљ§ўћћ§ўўњћћљњљњ§§ћўћўћўўљ§§ћўўћ§њљљћћ§ўўќћўћўўћћўћўњњў§ўўўћўў№ћ§§ўўћўўћљ§§ўњ§ўўўњ§§ќњћњў ўўћўўјћў§§љљ§ўў§ ўћ§ў§ўўўћўўћўѓћўћў§§ўћўњњ§ў ўњћ§њњћўўћњўћњўўўћўўўћўў§ўњ§§ўўћў ўћ ўўћўўў§ўўћќўћћўў§ўњўўћљћљ§ў ўњћўћўћўўўћў ў§њ§§њ§§њ ўњљћљљњўўўћўўњњ§ўўћћўўўћўўўћўўњћ§њ§§ўўёћў§ўўњ§ћїљ§ў§њ§§ўњўўљћў§§ў§њњў§ўўўћў ў§ќњ§ў§§јњ§љљњћ§ўўћўїњљћњ§§њћўўўњўў§ѓњ§њњўўћћўў§§ўўћ§њ§њ§§ќњ§§ўўќћўћўў§њњўћўћўўњћў§§њўўќћ§§ўўў§ћћў§ўўўњўў§ќў§§ўў§§њўўќ§њ§ў ўўћўў§њљ§ћљњ§§ўўўћўўјћўў§§њ§ўўўћўўќћњћўўћћ§њ§§ўўўћўўѕћўўњ§§ў§ўў§§§ўћўў§§ўћўўћ ўѕ§њћћњљ§§њ§ўўўњўў§ўў§§ўљњ§§ћњњ§§їњ§ћћњњўћўўўћўўўћўўў§ўўњћў§§ћўўќњ§§ўўўћў ўћћњљњ§§ўўћў ўўћўўўњўўћњљњњўўќњ§§њњ§ў§§њўўў§ўў§ў§ќњ§њўўўћўўњ§њњўњ§§їњљњ§§љѕљ§§ў§јљ§њњ§§ўњњ§§ћўўќћњњўўћўћў§ўњ§§ўћўўќњљћ§§ќљћ§ўў§тљћљ§јљљ§ўћўњўўћћўњ§њ§ћњјљ§ўўћўў§њ§ўў§ќњ§ў§§ў§јњћўћўўћўў§ўљћўњњўў§§ћїњ§њ§§ћјљ§§ўњўў§ћљўћћўўљћўў§ћњ§§ўў§§ћќ§ўћўўљњљљћљјћћ§§ћў ўќ§њ§ўўќњўћ§§ўњњў§ўўњњќ§ўћ§§ўњ§§ўќ§њ§њњїљћљ§њ§њ§ўў§јћљ§§ћўњ§§ўў§§ўў§§њњ§ў§љ§§ўќћўћўўћћўњ§њњі§ўљњўў§њ§ўўљћњ§§ћљўўыћўўћћўћ§§њљћљњ§ўўћ§ћўў§љљ§њ§ўћўў§ћљћ§§ўўўњўўу§љљћњћћљ§ўў§њ§§њўћўўљњћћљљњ§њњќ§љњ§§ўњљ§ћљљћњ§§њўћљўў§§њј§ћљ§§ўў§§щњљћљћћ§§ў§њ§њ§§њ§њ§ћћўњњ§ўћўўі§љљ§§ўўћњ§§іћ§§њ§љћ§§ўўњї§љћјњњјћњњњ§њ§њњ§§ќњљ§ўўњ§ўћўў§§јљћњ§њћћўўўњ§§ўў§њњћўљјјљљћ§ў§њ§§ќњ§§ўўўћўўћўњ§њјљћљљўњ§§њ§ўїњ§§њњ§§ў§§ќњћћ§§ў§ўўћўўў§ўў§ў§іљјњљљ§§љњўў§њњ§ўћў§§§ўћўўїњ§њ§§њњ§ўў§ўњј§њћ§§ўћ§§ћ§ѕћ§§ўћћў§§њњ ў§ўљћўћ§њ§ўўђњћћљ§§љћљћћљљ§§ѕњћ§§ћ§§њ§§ўўќ§њ§ћћ§§њ§§њ§ўћ§§ўћўўњћўўњљ§§ћ§љ§ўў§ўћ§§јћўўњњўњ§§ў§ѓљћњўњњљћњ§§ћўў §ђњљћљћњў§ћћјјћ§§ўњњљјњ§ўўќ§њ§ўўяћў§њљњњћ§§њ§ўў§љ§§ўљ§§ўњ§§њћљљ§њ§§њћ§ўћњ§§љ§ћјћўћўў§ћўћ§§ўўќ§њњўўў§њњўќ§ћљ§§§њ§ўўћћњ§њ§§ћњ§§њ§§ьў§§њћўўћўўћњ§њўћўћў§§ћ§§ћўў§яњўў§њ§§њњ§њ§§њљљ§§§њљ§§ўњ§§ќјљ§ўў№ћўўћўўћўў§§ћљћћ§§ўњўў§хњ§§њ§њњ§љћћњјћћљћћљљ§ўў§ўў§§њњљњћћўўсћўўњљљ§ћћљљћћљћћљљ§§ћљњљњ§њњ§њ§§ўѕ§њўўћ§ћ§њњ§§ѕў§ћјћјњ§§њўўќћўў§§ў§њїќњћ§ћћіљћ§ћљљћћњ§§ўњћ§§љљћћњњїњјљўў§њ§ўњ§§ўћўў№ћњ§њљћћ§њњ§§њ§ћўўѓ§ћћљљњћћњ§§љ§§ѕјњћљљ§§њњћљљќћљљ§§ўњ§§ўњ§§ўњ§ћљ§њў§њњ§§§ћњ§§љњ§љљћ§ўўљњў§ћћњўў§њљўўћ§ўњ§љљњњћћљћћљњјњ§§ј§§§њћ§§њњћљ§§љўў§жћљћјјљћћ§ћўўњ§ћјљљћћљћљћћљљћћљћ§§њћ§љћјћјљљћќљћћ§§њќћљ§ћћћњ§§љњњ§љћ§§ћњћљљћћћљ§§ў§§ўїћўўћ§§ћљ§§ѕљћњљћјјћљљ§§ўќњ§љњњїў§§ћљћћљ§§њћљјћ§ўў§њў§њњ§њўѕћ§ўў§§њћљљћћј§њ§ћљјћўўќћяљћћ§§њљћћы§њїљћљ§њњ§љљћјњ§љћљљ§§ёљјјљјћљ§§њљћћњ§§іњ§ћћњѕєшј§ §љѓћ§§ѕљћ§њњћљћ§§њћјјњјњњјјњљћљћћљ§§щњ§§ў§њ§ћјјћ§ў§§ўў§§њў§ўў§ў§ўњ§§ћ§њљ§§ћєљћ§њ§§ћћ§њ§ўўњ§ў§ўћ§ўњ§§§њћўўћўњћљїњ§§њ§њў§ћћ§јћљћћјћњ§§љћћ§ћћњњщљ§љћћљјћјћјљћљљћћњјњћћ§§ќњ§њћћљљ§§ћјљћћіњћљљћљљјјћћљћ§јњјјјљћљћћ§ў§§јљћћљћћљћћёѕ§њњ§ћјјїјћ§ћљјјћљ§ћћјјјњћѕјњћљћћўєћўў§ўў§§њ§ћўўў§ўўї§ўў§ћ§ћ§ўўђ§ўў§ћњћћњћћў§ўўўћ§§ ў§ўњћћњћ§ў§ўўш§ў§ў§ў§ўћ§ћ§§ўў§ћ§ћћ§ў§ўўј§ў§ў§ў§ўўљ§ўў§ў§ўўњ§ў§ў§ўўў§ўўј§ўћ§ћ§ћўўўћўўў§ўўі§ў§ўћўћўћўўў§ўўў§ўўћ§§ћўўў§ўўє§ўћ§ўў§ў§ў§ў ўј§ў§ћћњњўўў§ўўў§ўўў§ўў§ћўћћ§ћ§ўўў§ўў§§ў§§ѕў§ў§§ћ§ћ§§ўў§ўњ§ўћ§ћ§§ўі§ў§§ћ§ћ§ћўўў§ўўў§ўўћ§ў§ў§§љў§ўћў§ўўђ§ў§ў§ў§ў§ўћ§њћћљў§ў§ўћўўў§ўўќ§ўў§§ћў§ў§ўўј§ў§ћћ§ћ§§ўћўўј§ћћ§ўў§ўў§ўў§ў ўђ§ў§ў§ў§ў§ў§ў§ўў§ќћў§ўў§ќћў§ўўћќўћ§ўў§ў§ўћўўќћ§§ўўў§ўў§ќћ§§ўўў§ўўћ§ў§ўћћѕ§ўў§ўўћћў§ўўъ§ўћў§§ћў§ў§§ћў§§ћў§ў§ў ўї§ћ§§ў§ў§ўўј§ћњ§ўў§ўўќ§ў§ўўў§ў ўњ§ўћ§ћўўј§ћ§ўў§§ўўў§ўўў§ўўі§ўћ§§ў§ў§ўў§ўњ§ў§ў§ўўћў§ўўі§ў§ў§ў§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўў№§ў§ў§ў§ў§§њ§ўў§ўўў§ў ўќћў§ўўў§ўўўћўўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўќ§ў§ў ўќ§ў§ўўўћ§§єћў§§ћ§§ў§ў§ўўљ§ўћў§ў§§ќў§§ћћўѓћў§§њћ§§ћ§ћ§ўўћўі§ўћ§ћћњњћў ў§ўў§ўў§ћ§ўў№§ћў§§ўў§§ћ§ћ§њ§ўўў§ўўў§ўўў§ўўќ§ў§ўўњћ§ўўћўў§ќћ§§ўўў§ўўў§ўўўћўўў§ўўў§ўўќ§ў§ўўћќ§ўў§§ ў§ћ§ўўќ§ў§ўўј§ў§ў§ў§ўўў§ўўў§ўўў§ўўє§ў§ў§§ћ§ћ§ћў ўў§ўўў§ўўў§ўўў§ўўњ§ў§ў§ўўј§ўћў§ў§ўўў§ўў§ќћ§§ўўћ§њћ§ў ўў§ўўў§ўўў§ўўі§ўў§§ў§ў§ўўќ§ўћ§§§ћ§ћћ§ўі§ў§ўўњћћ§ўўј§ў§§ћў§ўўќ§ў§ўўў§ўўў§ўўќ§ўў§§ўћўўў§ўўъћў§§ћћљћћўћ§ћ§ћ§§ў§ў§ўўј§ў§ћћўћ§§ўћўўъћ§ћ§ћ§ћўћ§ћ§ћћјљњ§§ў§ў ўј§ћњ§ћ§§ўў№§ў§ў§ў§ў§§ћ§ћ§§ўў§јћў§ў§ўћ§§ќћ§ћ§§њћў§ў§ўўў§ўў§јћў§ў§ў§ўў§ќћ§§ўўњћ§ўў§ўўњћњњћћўўў§ўўј§ў§ўў§ћ§§ўћўўњ§ўћў§ўў§їў§ў§ў§ў§ўў§ћў§§ћ§§њњћ§ћћўўў§ўў§ќћ§ћўўћ§ўў§ўўі§ў§ў§ў§ў§ўўњћ§ћ§§ўўў§ўўў§ўў§ѕћўћў§§ћ§ћ§ћћўј§ўћ§ћ§§ўўў§ўўћ§ў§ў§§њљ§ў§ћ§ћўўў§ўўіћ§ћ§§ћћ§§ўў§ђћў§§ћ§ћ§ћњњ§§ўўќ§ў§ўўћ§ў§ў§§ўў§ўў§ћ§ўўќ§ћћўўў§ўўў§ўўў§ўўє§ўў§ў§ћ§ћў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўў§ќў§§ўў§§ћ§§ћў§ўўћћ§ўў§§ўћ§ћ§§ўўќ§ў§ўўў§ўўўћ§§ўњ§ў§ў§ўўфћ§§ў§§ћ§§ў§§ћћ§ћћ§ћ§§ўћ§ћўћ§§ќћўў§§ў§§ў§§ўў§ўўї§ў§§ћћ§§ћћўы§ћњ§ћ§ћњћў§ўћ§ћћњўћ§ћћў§§ў§ћћїў§ў§ў§§ћўўћћ§ћћ§§љћ§ћў§ўћћў§ўўі§ў§ў§ўћ§ћўў§ўѕћ§ћ§ћ§ћ§ћ§њњё§ћ§ћ§њњћ§ћ§§ў§ўўћ§ўћ§ўўў§ўў§ћњ§ћ§ћћ§§ћ§§јћ§ћњњћћўў№§ћћњћњњћњњћў§ў§ўў§ўў§§ўўћћќў§ў§§ўў§§ўђћ§ћћ§§ћ§§ўћ§ћ§§їћњћћ§ћ§ћўўѕћ§ћўў§ћў§§ћћўўћћіўћ§ћ§ћўћўћћ§ў§ўўў§ўў§ўћ§§єћўў§§ўћ§ћў§ўўќ§ў§ћћўў§ўўќ§ћ§ћћљ§ћў§ўћўўў§ўў§ћ§ћћ§§ћўўќ§ў§ўўў§ўўю§ў§ў§§ћўў§ћў§ў§ў§ўўя§ћћњ§њћћ§§ўћ§ћћ§ўўі§ў§ћњћћ§ћ§§ћ§ћћ§ўў§§їњћћњ§§ћ§ўў§ќћ§ћ§§ѕњћћ§§ўћ§ћ§ћћњї§ћўћ§ћ§ћ§§ў§ћћ§ћћўўю§ћћ§ћў§ў§§ћ§ћ§ћњћ§§љћњћ§ўў§§јћњњљљњњ§§ќћ§ћ§§їћ§§ўћў§ў§§ъў§ўћ§ћћњ§ћ§ўў§ў§§ћ§ћў§§њўћњњћћњ§ў§§ўћ§§њћў§ў§ўў§§ў§§§ћњћћ§ўћ§§оћ§ћў§§ћћ§§ћ§ў§ћ§ћ§њњћ§ћ§§ў§§ћ§ћў§ўўќ§ўћўўяћ§ћў§§ћ§ћ§ћ§ћћњљћћѕ§ћ§§ў§§ћ§ћўўќћ§ћўў§јћ§ћћ§§ћўўћќ§ў§ўў§ѕћ§њ§ћўў§ћћњњљ§њ§ћ§§ўўўћ§§ўі§ўў§ћ§§ў§ўўќћ§ћўў§ѕњћў§ћћњћњњћћх§ћ§ў§ћњћћ§§ћў§ўћ§ћћњћћ§ћ§ћ§§іћ§ўў§ўўћћўўў§ўў§їў§ћ§њњћ§ўўћ§ћ§њћћќ§ўў§§ёў§§ћ§§ў§ўћ§ћћњ§§њћњ§ћ§ўў№ћ§ћ§ћ§ћ§ћ§§ўњћњ§§њѕ§њћћ§§ў§§ћ§§ўў§§ћў§ў§ўўѓћ§ћљљћћ§§ћ§ўћћњ§ћ§ћ§ћћћ§ћ§ћ§§њћ§њћћ§§ќћ§ћ§§ѓћўў§ћ§ћ§ћўў§ћћў§љўћ§ўў§ўўњ§ўћ§§ўў§йў§ўћњћ§ћ§ћ§ћў§ўў§ћ§ћ§ћћ§§ћ§ћ§ћ§ћўћ§§ў§ўўњ§ў§ћ§ўўѕћ§ћњњ§ўў§ўћћѕ§ћ§ћ§§ўћ§ћ§§чћ§ћ§§ћћ§ћ§ћ§ћ§ћ§§ћћ§ћ§ћ§ўўў§ўўс§ўћћњћњњћ§ћ§ўў§ўћ§§ћћ§ћ§§ћћњњљњњќћњњћћўў§§яўћ§ћ§ћ§ћ§ў§ўў§ў§ўўђ§ћћ§њњћћњњћњњћћљњћљћ§ћ§§ћљ§ћўў§§ўўќћњћ§§№ћ§ћўћњћћ§§ћ§§ў§ўў§§ўћћі§ћў§ў§§ћ§љљ§њћњњћћњћњћћѕњ§ћ§ћ§§ўў§ћћњљъњћў§ўћ§ћћ§§ћ§ћ§ћ§ћ§ћ§ўўѕ§ћ§ћћњћ§§ћ§§ўіћњњћћ§њњ§ћћѕ§ћ§ћ§ћ§ћњљћћ§ыњћћўњћћ§ћ§ћ§ћ§ћ§ћ§ћў§§њћ§њњћ§§ћј§њ§ћ§ћ§ћћ§њћўўѓ§ўћњњ§§ў§ў§§ўўћ§ћ§§ўў§ћї§ћў§§њћћњњћё§ћ§ћ§ћ§§ћћ§ћ§ћ§§њњћћ§ћўўщћ§њћњ§ћћњњћў§ў§§њ§ћћњњћћњћњїћњ§ћ§ў§ћњњў§ћћњъћњњћћ§ћ§ћ§§њј§њћњ§ћ§ћљљћё§ћ§§њћћњћњћњћћ§§ёћ§ўў§ў§ў§ўў§ћњћћє§ћ§ћњљћњњћњћћў§ћћоў§§ћћљњ§ўћћњћњњћ§ћ§њћћњћў§ўћ§ћ§§ћ§§ќћ§§ўўјћўў§ћ§њћћћњћћ§ћћњўёћљјћњћћ§ћ§ћ§§ћњњ§ћўћњћ§§ћх§ћћњћћ§ћ§ћћњ§ћњњћћ§§ћњћ§§ћ§§њ§љњїїќ§ћ§ћћќ§ћ§ћћь§ћћњ§ћ§ћњћ§§њћњћ§ћ§њњ§љњљљњљљћњћњњћћћ§ћ§ћ§§њѓћ§ўћ§§ўћћ§ўћўўшћ§ћ§§ў§§ћ§ћ§ћ§ћћњ§ў§ћ§њћћї§ћ§њњћ§ћўў№§ў§§ћ§ћў§§ћ§ћ§§ўў§јћ§§ў§ў§ўў§њћ§§ћ§§§ўћњњћє§њћњњћњ§§ћ§ћћњљјћ§ћњњћћњњњ§ћњћћњњїљњњћ§ћ§ћ§§њћћ§њ§ћњњј§њћћњћћњњ§ћњћћ§њћњњф§ћњћњњћўћ§ћ§ћњњћњњћћњњ§ћ§§ћњњњ§њ§њћњњћњјљњ§њљњћњњ ў§ўў§ўўј§ў§ўћ§§ўўќ§ў§ў ў§§ў§§ћў§ў§ўўќ§ў§ўўњ§ў§ўћўўў§ўўќ§ў§ў/ўў§ў ўў§ўўќ§ўћўўќ§ўћўўќ§ў§ў ўў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўќ§ў§ў ўњ§ў§ў§ўўў§ў!ўў§ўўў§ўўќ§ў§ў ўў§ўўў§ў ўў§ўўў§ў ўў§ўўў§ўўў§ўўќ§ў§ўў§ўў§ўўќ§ў§ўўў§ўўў§ў;ў§Xўў§ўўќ§ў§ўўќ§ў§ўўќ§ћў§§§ў§ўўў§ўў§§ў§§ўќ§ў§ў ўў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ў/ўќ§ў§ў7ўњ§ў§ў§ў?ўќ§ў§ўўќ§ў§ў5ўќ§ў§ўўў§ў ўќ§ў§ў#ўќ§ў§ў ўњ§ўћ§ћўўќ§ў§ўўў§ўўњ§ў§ў§ўўі§ў§ўћ§ћ§§ў ўў§ўўў§ў ўќ§ў§ўўў§ўў§љў§ў§ў§ўўў§ў ўќ§ў§ўўў§ў ў§ўћў ўњ§ў§ў§ў ўќ§ў§ўўў§ўў§ўќ§ў§ўўў§ўўќ§ў§ў ўў§ўўњ§ў§ў§ўўќ§ў§ўўі§ў§ў§ў§ў§ў ўќ§ў§ўўў§ўўў§ўўљ§ў§ў§§ўўў§ўўў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўў№§ў§ў§ў§ў§ў§ў§ў§ўўј§ў§ў§ў§ўўў§ўўў§ўўў§ўўјћ§§ў§ў§ўўі§ў§§ўў§§ћў ўј§ў§ў§ў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ў ўў§ўўў§ўўї§ў§ў§ў§ў§§ўі§ў§ўћў§ў§ўўў§ўўњ§ў§ў§ўўє§ў§ў§ў§ў§ўћўўі§ў§ўћ§ћ§§ў ўќ§ў§ўўў§ўўў§ўўќ§ў§ўўў§ўўќ§ў§ўўє§ў§ў§ў§§ћў§ўўў§ўўў§ўўў§ўўќ§ў§ўўў§ўўў§ў ў§ћ§ў ўј§ўў§ћў§ў ўќ§ў§ўўў§ўўў§ў ўі§ў§§ў§ћ§§ўўў§ўўю§ўћў§§ўў§ў§ў§ў§ў§ўў§јћ§§ў§ў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўў§ћў§§ўі§ў§ў§ў§ў§ўўњ§ў§ў§ўў§§ў§ўўѕ§ў§ў§ў§ў§ў§§§ў§ўў§§ў§§ћ§ћў§ў§ўўќ§ў§ўўў§ўў§§ў§§§ў§ўўќ§ў§ўўў§ўў§§ў§§ћѓў§ў§ў§ў§ў§ў§ўўї§ў§ў§ў§ў§§љў§ў§ў§ўўў§ўў№§ў§ў§ў§ўў§§ў§ў§ўўќ§ў§ўўў§ўўю§ў§ў§ў§ў§ўћўћў§ў§ўўў§ўўў§ўўў§ўўў§ў ў§ўќ§ўў§§ћў§ў§ўўў§ў ўќ§ў§ўў§љћў§ў§ў§§їў§ў§ў§ў§ўўў§ўўђћ§ћў§ў§ў§ў§ў§ў ўљ§ў§ў§ў§§ўќ§ў§ўўў§ўўќ§ў§ўўї§ўћ§§ў§ў§§§ў§ўўі§ў§ў§ў§ў§ўўў§ўў§љў§§ўў§ўў§§ў§ўўќ§ў§ў ў§ћ§ў§ўўэ§ў§ў§ў§ў§ў§ў§ў§ў§ў§§їў§ў§ў§ў§ўўњ§ў§ў§ўўў§ў ў§ўў§ўўў§ўўў§ўў§ћў§ў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўњ§ў§ў§ўўў§ўўћ§ў§ў§§їў§ўў§§ў§ўў§§ў§§ў§§ў§ўўў§ўў§§ћў§§ўў§ўўі§ў§ў§ў§ў§ўў§§ў§§§ўћ§§ђћ§ўў§§ћ§ўў§ў§ўўў§ўўў§ўўј§ў§ў§ў§ўўј§ўћ§§ў§ў ўў§ўўі§ў§ўњ§ћ§ў§§ў§їўћў§ў§ў§ўўћ§ў§ў§§ћўњўћўўў§ўўќ§ў§ўўќ§ў§ўўђ§ў§§ћ§ўў§ў§ў§ўў§ўъ§ў§ў§ў§ў§ўћўћ§ћў§ў§ўћ§§їў§ў§ў§ў§ўўў§ўўћ§ў§ў§§љў§ў§ў§ўўњ§ў§ў§ўў§ўќ§ў§ў ўќ§ў§ўўў§ўўѕ§ў§ў§§ћ§§ў§§юў§ў§ў§ў§ўћў§ў§ў§ў§§ќў§§ўў§ўў§§ў§ўћ§§љћў§§ћў§§ќў§ў§§ўў§§ўў§§ўж§ў§ў§ў§њ§§ћ§ўў§§ћўћўћў§ў§ў§ўћ§ћ§ћў§ў§ў§ў§ўўї§ў§§ўў§ў§§њў§§ћў§§§ў§ўўњ§ўћћњўў§ўў§§ўў§§§ў§ўўќ§ў§ўўќ§ў§ўўќ§ўў§§ѕћ§ћў§ўћўћ§ўўђћјњћ§ћў§ў§ў§ў§§ў§їў§ў§ў§§ћўў§чћў§ў§ў§ћ§ўћў§ў§ў§§ћў§ў§ў§§їўњјљљ§ў§ўўќ§ў§ўў§ўў§§шў§ў§ў§ў§ў§§ћўћўћўћўћў§ў§§ўў§ўўљ§ў§ў§§ћћћ§ўў§ў ўќ§ў§ўўь§ў§ў§ў§ўћ§§ў§ў§§ћўћўў§ўќ§ў§ўўќ§ў§ўўќ§ў§ў ў§§ў§§ўќ§ў§ўў§ў§эў§ў§ў§ў§ў§§ћўћ§њћћ§§љў§ў§§ћ§§ыњўћў§ў§ў§ў§ў§ў§ў§ў§ў§§ќў§ў§§ўћ§§ћўћ§ћ§§ђћ§ћћњћћ§§ўћ§§ўў§§ў§§§ўћ§§ќћ§§ўўљ§ў§ўћў§§юў§ўћў§ў§§ћўћў§ўћў§§§ў§ўћћўћћўўїњ§§ћўћ§ћўўјњ§§ўўћўћћљўћўўћњўўќћ§§ўўўћўў§ўўћўўўћўўўћўўћћўњљњњ§љўњўўљќћј§ўў§іћў§љћњ§§њ§§ўњ§§љњ§љњњћўў§§њўў§ўљўў§ўћ§§љќњљљ§§ћљ§њћ§§ўњўўњњ§§ўњ§§љўћњћ§§ўўўћў ў§ћўўњљљњњћўў§ўўћћўўњўўўћўўњ§њ§њ§ўўўњ§§љўћ§§њ§ўўјћўћњ§њ§њњћ§ўњ§ўўўњ§§ўћћўў§ў ўїћњ§§љћўў§§эњћўўћ§§љљћњ§њћњ§§ћўў§§љў ўў§ўўљ§ў§љњњљљћћњўўћћў§§њ§ўў§ўўњњњљћћўћўўўћўўўћўўўћўўўћўў§њ§ў ўўћўўњњ§њ§њ§§ўў§§§њ§ўўљ§ўњ§§њ§§њ§љћўўњ§њўў§ўћљљјјћјјњњћўў§ћў§§ўњ§§шњ§§њљјљљњњ§§њўў§§њ§њ§љћ§§эњ§љљњњ§§њ§§ўћўњ§њњ§§ќїљћ§§ўњўў§§ўћњњљѓўћњ§ўћўњ§§ўћўўўњ§§ўњћ§§ўћўўў§ўўќ§ўћўўўћўў§ќњўћўўћ§ўўњў ўћћњ§ћћњњ§ў§ўћў ўљ§яћњ§§ўўћўўћўњњљљњ§§ўщћўћўњ§ўўћў§љјњћ§њ§њ§§ћўўў§њњўћ§ћљњ§§њњљћ§§њњћўћ§њўў§ў§ћњ§§ў§§њљћћјљ§§ћњ§§ўў§§њ§§ўњ§§§њљњњў§ўўў§ўўћ§њњ§ўў§ћќњ§љ§§љў§њ§њ§ўў§їњљљњњ§ћјћћ§§љ§§ўѕљњ§ћўўћўњ§ўўњ§њ§§њљљ§іў§њ§§ћў§§ўў§§њ§§љўћўўћћўў§ёњјњњ§њњ§§њ§§љћ§§ўјћўў§§љљ§§ўѓћў§љњ§§њњўў§њњљђћ§§ўўћўўћў§њ§ўўќ§ћњ§§ќў§§њњќ§ўћўўћћўњ§њњ§љ§ўў§ёњўћўўњ§љћћ§§ћњўўќ§ўў§§ќљњ§ўўўћўў№ћўћўћўў§њ§§њўўћўўўћў ў§њ§§њ§§яњ§њ§ћўћўў§ўў§њћћ§§ќћљ§ўўћ§њњ§ўў§њћўў§ђњ§ўў§њ§љјљњ§њўўѕ§њјћјјљћ§њ§§іњ§ў§§ћ§§ћўў§§ўћўў§іћѕєљњњ§§њ§§љњ§њ§љњўўэњљњћљљњ§§њњў§§њ§§љўўўћў ў§јўћћўўћћўў§ў§§њ§ўўљњ§љ§ўў§§љњ§њ§§ћўўїћўў§њњўћўўћћўћћўўќ§ћћўўўњ§§ћќ§њ§ўўї§ўћћў§§ў§§ёњћўўњўћў§§њ§§ў§§ўњўў§ўљ§њ§§њљ§§ў№њ§§ћљљњўњњ§љљњ§њњќ§ўў§§ў§ћўћўћўў§§љўў§ўћўўў§ўў§§ћњ§§єћљћ§ћјјљўљћўўѕћњў§њ§ћўўћўў§ћў§§њ§ў§ўћјў§§њ§§љ§§њљўћўњ§љ§§ћњ§§њ§§ў§§ѕ§§ў§њѕћ§њ§ћ§ћћ§њ§§ў§ўє§љјљњўў§ћ§§ўўќ§љў§§јњ§њ§љ§§њњўѓњ§њ§§ўў§љ§ўћўў§§љ§§љ§ўћ§ѓњ§ўўћў§ћћ§§њўўњї§ўў§њўћћўўњ§њњћў§§јњ§§ўњњ§ўў§ўљњљјѕљћ§§ћњ§ўћњњќ§њ§ўўћ§ўћўўћўјћўћўњўў§§њў§§њњ§§ќњ§њ§§ѕњљјјњїљћњ§ўўѕњўњ§§њ§§њ§ўўўћўўўњўўўћўўѕ§љњўљ§§њљљ§§шњ§§њ§љћјјљљјљљћљњњћў§њћ§§ѓњ§ћљ§ўћўњњўў§§њўћўћ§ўўўњўўўћўў№ћўў§ћўћўњљјњћћљ§§јў§ћ§ћћјўў§іћ§њњ§њљљњўў§јћљњўўћўњњ§§њћўўў§њњї§њ§њ§§ў§јјѕљњљ§ў§њўўћњњ§ќћ§њ§§ў§§њ§§ўјћ§§њњ§§ћћўўћўўўћўў§љњћјљљ§ўў§љў§ўўўњ§§ўњќ§ўў§§ўњ§§ўљ§§яњўћ§њњ§§ћћ§§њњћћ§§§њћўўќћљњўўјћўћў§љњўўх§њљњњ§љћњїјљњљјљњўўљљјљ§њњ§§ўљ§њњўўћўўќћўњ§§јћ§ўў§§ћ§§љњ§ўњ§њ§§ўњ§§ќњ§§ўў§ѕћўўњ§§ў§§њ§§њ§ўэћ§њњ§§њћјњњћљћљ§њњ§§јљ§ћ§њњ§њњўјћ§љљњ§ћўў§ћў§§ў§љўћ§§ћњіћјјїїњљ§§ў ўћћњ§§њ§§љњ§§њ§§љљќ§њ§ўўњў§ћў§§љў§ўўћћ§§шћљ§§ћљњ§ў§њљљѕњ§§ў§§љћњўўћћњћў§§ўћўўћ§ўўћўў§іћљњ§§њњ§ћўў§ўѕ§њљ§ўў§њўћњњўћњњћўћњ§§њљљ§§њ§§ћћ§јњ§ў§ўўћ§§њўў§ўўюћўўћўћў§њ§§ўўњћ§ћўў§јћљљћљљћ§§њ§љњ§§ў§§њњ§ўњўў§ѕћњўўљњўўћћ§§їћ§§њ§љ§њўў§ўљњљћ§§њ§§ўњ§§њўњњ§ў§§ўќћў§ўўћљ§њњ§§ў§ўїћ§§њћљ§§ўўўњ§§ўўћўўў§ўўіћўћњўўњ§њ§§ўњ§§§њ§ў ўњћўўћњўўўћўўќћ§њўўіћў§ћћ§§њ§ўўђћўўћћўў§ў§§љј§§њщ§њ§§њњћўћћ§њўўћўњћўўћў§§ќњљњўўўћўў§ќћјљ§§њ§чўћўў§њ§§ўўњњљ§§ћўў§§њўў§ўўћў§іњ§ўћўњ§§ћўў§§љјјљљњ§§њ§љљќњ§§њњ§ъјїћљ§ўўћўўњњ§ўћ§§ўў§§ўўђћўњ§§њљћљ§ћў§љљњј§§њљњњ§ў§ћњ§љњ§§ўљњњњ§ћјњњљљќјњ§ўў§ћћљњ§ўўўњ§§ўњўўќњўћўўїћўў§ћћљћ§§ўћўў§ћў§ўў§щћў§§њњљјїїјћљљ§ћўўћўњњ§§њ§§ћ§§ўѕћћљћю§њ§ўў§§ў§§њ§ћ§§љ§ўўьњћћј§њ§њћў§§њњљ§§ћљћћѕљћјљћљћњћљ§§ўњ§§њ§§ћјјљћ§§њњћўўњ§њј§ўњњ§§њўўё§ћјљ§љљћњўў§§ћўў§ћ§ўў§ћљѓ§ўњ§ћљ§њњўўњ§§ўќћўћўўэћў§§ўўћ§љљћљћћ§§ћћ§§ў§њњ§§ћјћћњ§їљ§њљњљћњўўћ§љњњўўћщўњ§њ§њ§њњљњњ§ўњ§љњјјљљћћ№љњћћ§њ§§њњ§ў§њњўў§њїћ§ћјћ§ўћ§§ћј§њїјјўїћћњљ§љћћљљ§§ќњ§ў§§њњї§§ћљљїјљћјѕїјјћћ№јїћљћћљїњћћјњјљїїѓњјјїѕљ§§ћ§њћјјњўћљљћљњјјћљјљљ§§ў§§ќў§њљљѕћљјјћљ§§ўў§§ўљјјљјћњєїї§њљљћ§љђћљ§њ§њћўў§§љћ§§§њ§љљўњўў§єњћћљјљћњјљљћћјљњљїњ§§ћћ§њѕљњ§њ§њ§§ћљјјўћљљўњ§§ёў§§њ§ћўўљњњљњњћћњјњїїјїї§їљћњ§љћљљћћњњћљћљћћћ§њ§§ўўїћ§§ћљћљћ§§ћяњ§ћћњјљљћљјѕѕјљљ§§ўћ§§ћјъљњ§њ§ћљљњ§њњљћ§ћў§њљљ§§ыћљњћјљљњѕљјћћљјњњјјљћћюљњњјњљ§њњћћљ§њ§ўљ§§љљћћњљћњњјїљњљћњљћ§њћћўњ§§љћњ§§ћљјјѓљћћљћћ§љћјљљ§§љћљњ§§њ§§њћљ§§њљљћјэћ§§ћћљјњјјїїљњїљњљћћќљ§§ћћ§ў§ўўі§ў§ћћў§ўћўўќ§ў§ўўј§ћћў§ў§ўўў§ўўђ§ў§ў§ў§ўћ§§ў§ўўі§ў§ў§§ћў§ўўј§ў§ў§ў§ўўў§ўўј§ў§ў§§ў§§њћ§ћћ§ўўі§ў§ўћњћ§§ўў§тћўў§ћњ§§ћ§ћ§ћћ§§ћ§ћ§ћ§ћў§§ўў§ўў§§ў§§ўњ§ўћ§ћўў§ѕћњћ§ћ§ћћ§ўћћў§ћћљ§њ§ћ§§ўўё§ў§ў§ў§§ћў§§ћ§ўўўћ§§ѕў§ў§ў§ў§ў§ўўњ§ўў§ћўў§ћѕ§ўў§ћ§ў§ў§ўўј§ў§ў§ў§ўўњћ§ћ§§ўў§њћ§§ўћ§§§ў§ўўћ§ћ§ћ§§§ћў§§ўў§ўўј§ў§§ћћ§ўўј§ўћў§ў§ўўњ§ў§§ћўў§їћ§§ў§ўў§ћћўњ§§эњ§§ћў§ў§ў§§ўў§ў§ў§ўўђ§ўћў§ў§ћ§§ћ§§ћћ§њ§ўўљ§ў§ў§§ћћі§ћў§ўћ§ћў§§ўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўћ§ў§ў§§ўў§ўў§чћ§ћћ§ћўћ§ћ§ћў§ў§ћ§§ћћ§§ћ§§§ћ§ўўќ§ћ§ўўћ§ўћ§ћћхўћ§њ§ћ§§ў§ў§ў§ћћ§§ћћ§ћ§ћ§§ћћ§ёћ§§ўћ§§ћ§§ћњћ§ћћќ§ћ§ћћѓ§ў§ћ§ћ§§ўў§ћ§§ђћ§ўўњћћ§ћ§ћ§§ўўї§ў§§ћ§§ў§§ћў§§ћўў§ўћўўў§ћћљў§ўћћ§ўў§їў§ў§ў§ўћўўў§ўў§ќћ§§ўўќ§ўћўўћ§ћўў§§ќћў§ўўљ§ўћ§ћ§ўўў§ўўќ§ў§ўўћћў§ћ§ўў§§ў§§ћў§ћћ§§ў§ўў§§ћўўя§ћћњљњћ§ћ§ћ§ўў§ў§§ў§єњћ§§ћ§§ћњ§ћ§§ѕўћ§ўў§ћћ§§ўўў§ўўђ§ћ§ћў§ўћ§ћ§§ўњњћјў§ћ§§ў§ўўєћ§ћ§ћ§ћ§ћ§ћ§§ќћў§ўў§ћў§ўћ§§ўј§ћњњ§ћўћћфўћ§ћ§ћў§ў§§ћ§§ћћ§§ћњ§њћњ§ў§ћћыў§ў§§ўў§ў§§ћў§ўћ§ћ§§ћћ№§ћўћ§ћ§ўўћ§§ў§ў§§ћ§§ћўўўћ§§ўћ§§љћ§ћ§ћњћћўў§ћћё§ћ§ћў§ў§ў§ћћ§ћ§§ўўћ§§ћјњ§ћў§ў§ўў№ћ§ћў§ўћњљ§ћ§ћўћ§§ўћўўў§ўў§ўћ§§ўт§ћћ§§ў§ў§§ћњњ§ћњ§ў§ўћў§§ћ§ћ§ћўўў§ўўђ§ў§ў§ўћ§ћћ§ў§ўўў§ўўў§ўў§ћ§ђћ§ћ§ћ§ћ§ћ§ћў§ўў§ћў§§ѓћњ§ћ§њћћў§ў§ўўўћ§§ўў§ўўь§ў§§ћ§ћў§ћ§§ћњћ§ћ§§ўўљћ§ћњ§§ћћё§ћ§ћ§ћўћ§њ§ћў§ўўњћ§§ў§ўў§ћї§њ§ћћ§§ћ§§ўћ§§§ћ§ўў§јў§њћћ§ћ§§ћў§ћ§ћћ§ў§ўўў§ўўў§ўўќћ§ћўўў§ўўћ§ў§ўћћў§§ћ§§ўь§ў§ў§§ћ§§ўћ§ћ§ћ§ћ§њўўў§ўўі§ў§ў§ўћ§§ўўќ§ў§ўў§ўљ§ў§§ћ§ћћњўћ§§ћў§ўћўўї§ћўћ§ћ§§ўўўћ§§єћўћ§ћ§§ў§ў§ўўћћ§§ў§§ўћ§§ъћ§ћћ§ў§§ћњћћ§ў§§ћўћ§ћ§§ёћў§§ћ§§ўў§ћ§ћ§ћћўдћў§ў§§ћ§ўў§ў§ўћ§§ў§ў§ў§ўћ§ћћ§§ћ§ћ§ћњћњћћњњћўўў§ўўњ§ўћ§ћўў§ўћ§§іћ§§ў§§ћў§ў ўўћ§§јћўћ§ћ§§ўў§јў§ћ§ћ§ћ§§§ћ§ўўхћ§ћ§ћў§§ћ§§ћћ§ћўћњњћ§§ћ§§ўћћсў§§ћњћ§§ўћњћ§§ў§ўў§ћўћ§ћ§ћ§ћўћ§§ѓў§§ћ§ћ§ўўћўћўўћ§ў§ўћћў§ћћћ§ћў§ўўћќ§ћ§ўўљћњњ§ћ§ўў§њћўў§§ўў№§ў§ўћ§§ў§§ћ§ћ§ћ§§ў§§ўћћѕў§§ћ§§ћњ§ћ§§ўў§§њћ§ћў§ўўќ§ў§ўўќ§ў§ўўњ§ў§§ћ§§ўћ§§ўћ§§јћ§§ћњњљћћ§ўј§ўў§ћ§ћ§§ўў§ўўњ§ў§ў§ўў§јў§ўўћ§§ћћљ§ћћ§ћћњњћы§ћћњћ§§ўўћ§њћћ§§ћњўћўў§ўўћћў§§ў§ўўќ§ў§ўў§ўд§ћњљњћћ§ћ§ў§њћњћћў§ўў§ћ§ћћњћ§§ћ§ћћ§ў§ўћћњў§ўў§њћ§ћћ§ўў§ўћ§§ђћўћ§њњћ§ў§ў§љўў§§ћ§ћћљўћ§ћ§ћўў§§ў§§ѓћ§§ў§ўћћ§§ћ§ўўњ§ў§ў§ўўў§ўўћћ§§њћћ§§ў§ўўћ§ўћ§ћћ§іў§ў§ў§ў§§ћћ§ўў§§њћў§§ћ§§№ћ§ћ§ћ§ў§ћ§ћ§§ўћ§§ћ№њ§ћ§§њњ§ћ§ћ§ўў§ўўќ§ў§ўўњ§ў§ў§ўўќћў§ўўќћ§ў§§јћњљљњћ§ћћј§ў§ћћ§ћ§§њћ§ћ§ћўў§ўќ§ў§ўў§тћ§њ§§ўћ§њ§ћ§ћ§ћў§ћ§§ћ§ћ§ћ§ћ§ћ§§ьћў§ўћћўў§§ћ§ў§ћ§ћ§ћ§§њћ§§ўў§§єћ§§њњљљњћњћ§§јћ§ћћ§ћў§§ўћ§§ўћ§љ§ўўћћ§ћ§ћћ§ўћљњ§ћћњњ§§њљћ§ћў§ў§ўўќ§ў§ўўўћ§§ўћ§§§ћ§ћћ§ў§§ў§§ўќћ§ћ§§ўѕћ§ћћњћћ§њћ§§ћ§юћўћ§ћњ§ў§ўў§ўўћ§ћўў§ўі§ўћ§ћњћ§ћ§§іћў§ў§ўћћ§ўўї§ўў§§ћћў§§ў§ўю§њўў§ћ§ћћ§§ћ§ћ§ћ§њњћё§ћ§ћ§ћўћў§ўћ§ћ§§ўў§§ ўњћ§ћ§§ўўцћў§ў§§ћ§ћ§њћћњћћњћћ§ћћ§§ћ§§ќћўћ§§фћ§ћ§§ў§§ћњ§ў§ў§ў§ўў§ћ§ћўћћ§ћћў§ўў§§ўћћў§ћћўі§ћњ§ћ§ћ§ћ§§їћ§ћў§§ћўћћї§ћ§ћћ§ў§ўўќ§ћ§ўўњ§ў§ўў§§ћ§ћў§§ћўў§ўї§ћ§њћћ§§ўўњ§ў§ў§ћћћ§ћў§ўўўћўў§ўў§§ўћ§§іћ§ћ§ћў§ў§ўўќ§ў§ўўў§ўўў§ўўј§ўў§§ў§ўўіћњњћћ§ћў§ўў§ћ§љћ§ћћ§§ўў§ћ§ўўќ§ў§ўўќћ§ћ§§ўў§ўўјћ§њ§ћ§ћ§§ќћ§ћўў§§ћў§§ёўћ§ўў§§ћ§§ўћў§ўўљ§ў§§ћћ§§њў§§ћ§ўўћњќћ§ћ§§ћ§§ћ§§ћњ§ћњћћўў§іћўў§ћў§§ћўў§їћ§ћњћ§ўўћћ§ўћ§§њћўў§ћ§§ћћ§ћћ§§§ћњ§§ћ§ѕў§§ћњћ§ћў§ўў§јћ§ћ§§ў§ўўќ§ў§ўўќ§ћњћћњ§ћ§ћ§ўўћњєћў§ўћ§ћ§ўўћ§§ќћњљњњћ§ў§ўў§ќћ§ћ§§ћє§ћ§ћ§ћ§њћњћњњћњ§§ўћ§§яћ§ћўћ§ћ§§ў§ў§§њњ§§лў§§ћ§§ўћ§њћњћњњћњњћњћњљњћћ§ћ§ћ§ћ§ћ§ћ§§ћњўћ§§ў§ўћ§§ўў§§§ћ§ўўќћњњћћі§ў§§ћў§ў§ўўі§ўў§§ў§§ћњњћєў§§њћћ§§ўў§ћћўў§ўўњ§ў§§ћўўћчњћњњ§ћњњ§ћ§§ўћ§ћ§ћћњ§њћњ§§ћљ§ў§ћњ§ўўі§ћћ§§ў§ў§ўў §ћљљњњљјћњњћћљњњ§§ўћ§§ўў§§ўє§ў§§ћ§ћ§§ўћњњїћўў§ћ§њћњњњљћњ§§њњўћ§§ћњњћћ§ћ§§ђўћћ§ћ§ћ§§ўћћњћћњљњўћњњћѕњјљљњћњљњјљљњљћћ§њ§§њњљўњћћњљљњћњћ§ћћіўћ§ћ§ћў§§ћћ§њћњњіћ§ћў§§ћ§ћњњћњњјљњћ§ћћњ§ћ§ћћ№њћћ§ћ§ўў§§ћћњ§ћ§§ћь§ўў§ў§§ћ§њњћ§ћњљњћћњњћёњјљљ§ћњњћњ§ћ§ћ§§ѕћ§ћ§ћ§ћ§њћњњћћ§ћ§ћ§§ќћ§ћўў§іћљљњћњћњњљљњіћњћћ§ћњ§§ћћљњћњњ§њћћњњћ§ћ§§ўўйћ§њћњћњ§ћ§ћњњ§ћћњљњћћњћњљњњћћ§ћ§њ§ћ§ћ§њњўћњњїћ§ћ§ћњћћ§§ћћњћў§§ћј§ћ§њћљњћћљўјњњэћњљљњњћњћњћњћљљњљћ§§њћ§ўћњќ§ћћљљњљјљыњљћњ§§ћњћ§§ћ§ћћ§§ћњћњњћќњћњћћ§њ§ћћь§ћ§ћ§њћ§§ћ§ћ§ћњћћ§§ћћњц§ћћњћњљњњљљјљљјљћњћњћћ§њћњ1ўў§ў ўў§ўўі§ў§ў§ў§ў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ў ўў§ўўќ§ў§ўўє§ў§ў§ў§ў§ў§ўўћ§ў§ў§§§ў§ў ўў§ўўќ§ў§ўўў§ўўў§ўў§§ў§§ў§ўќ§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўўў§ўўќ§ў§ўўє§ў§ў§ў§ў§ў§ўўў§ўўў§ўў§ ўў§ўўў§ўўў§ўўў§ў%ўў§ўўў§ўўў§ўўў§ўўў§ўўќ§ў§ўўў§ўўў§ўўќ§ўћ§§§ў§ў ўў§ўўі§ў§ў§ў§ў§ўўќ§ў§ўўў§ўў§§ў§ўўў§ўўі§ў§ў§ў§ў§ўўј§ў§ў§ў§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ў ўў§ўўў§ўўў§ўўў§ўўќ§ў§ў ўў§ўўќ§ў§ўўћ§ў§§ўўў§ў ўљ§ћў§ў§ўўў§ўўў§ўўї§ў§ў§ў§ў§§ћў§ў§ўўў§ўўў§ўўќ§ў§ўўњ§ў§ўў§§ўќ§ў§ўўђ§ў§ў§ў§ў§ў§ў§ўўў§ўўќ§ў§ўўј§ў§ў§ў§ўўќ§ў§ўўњ§ў§ў§ўў§њћ§§ў§ўўў§ўўў§ўўі§ў§ў§ў§ў§ўўў§ўўў§ўўў§ўўў§ў ўі§ў§ў§ў§ў§ўўќ§ў§ў ўњћ§§ў§ўўљ§ўў§ў§ўўў§ўў§ўњ§ў§ў§ўўў§ўўў§ўўў§ўў§ћў§ў§ўўќ§ў§ў'ўў§ўўє§ў§ў§ў§ў§ў§ўўљ§ўћ§§ў§§ўќ§ў§ўўќ§ў§ўў§ќћў§ўў§љўћў§ў§ўўќ§ў§ўўў§ўўў§ўў§№ў§ў§ў§ў§ў§ў§ў§§ўўћ§ў§ў§§§ў§ўўў§ўўў§ўўў§ўўњ§ў§ў§ўў§ўї§ў§ў§ў§§ў ўў§ў ўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ў ўў§ўўќ§ў§ўўќ§ў§ўўњ§ў§§ћўўў§ўўќ§ў§ўўќ§ў§ўўњ§ў§ў§ў ўў§ўўќ§ў§ўўѕ§ўћў§ў§ў§ў§§њўћўћ§ўўў§ў ўј§ў§ў§ў§ўўў§ў ўќ§ў§ўўќ§ў§ўўђ§ў§ў§ў§ў§ў§ў§ўўќ§ў§ўўј§ў§ўћў§ўў§ўќ§ў§ўў§ќћў§ўўќ§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўўј§ў§ў§ў§ўўў§ў ў§§ў§ўў§ўў§ўўє§ў§ў§ў§ў§ў§ў ў§§ў§§ћў§ў§ўўў§ўўў§ўўф§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўћўћ§ћў§ўўў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўћћўћћ§§ўў§§§ў§ўўў§ўўў§ўўў§ў ўў§ўў№§ўћ§ћў§ў§ў§§ў§ћўўђ§ў§ўў§ўў§ўў§§ўўў§ўўќ§ў§ўўќ§ў§ўўі§ўћ§§ў§ў§ўўў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўј§ў§ў§ў§ў ў§§ў§ўўў§ўўў§ўўў§ўў№§ў§ў§ў§ў§ў§ў§ў§ўўј§ў§ўћ§§ўў§ћў§ў§ў!ў§§ў§§їўњў§ў§ў§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ў ўњ§ў§ў§ўў§ћў§ў§ўўђ§ў§ў§ў§ў§ў§ў§ў ўќ§ў§ўўј§ў§ў§ў§ўўў§ўўљ§ў§ўћў§§ўў§ўўќ§ў§ўўћ§ћў§ўўќ§ў§ўўў§ўўј§ў§ўў§§ўўі§ўћ§њћ§ў§ў ўј§ў§ў§ў§ўў§ўў§ў ўњ§ў§ў§ўўь§ўў§§ў§ў§ў§ў§ў§ў§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўј§ў§§ўў§ўўќ§ў§ўўў§ўўў§ў ў§ўќ§ў§ўў§ќў§ў§§јћў§ў§ў§ўўќ§ў§ўўў§ўўў§ў ўў§ўўћ§ў§ў§§ўў§§ўў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўј§ў§ў§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўќ§ў§ў ўў§ўўў§ўўі§ў§ў§ў§ў§ўўў§ўў§ ўњ§ў§ў§ўўў§ўўў§ўўў§ўўў§ў ўќ§ў§ў ў§ѕў§ў§ў§ў§ў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўю§ўћўћ§ўў§ў§ў§ў§ў§ўўі§ў§ўў§ћў§ўўў§ўўў§ўўў§ўў§§ў§§ў§§ў§§ўў§ўўў§ўўє§ў§ў§ў§ў§ў§ўў§ў§ћў§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўўѕ§ћ§ћў§ў§ў§ўў§ўќ§ў§ўўє§ў§§ћ§ўћ§ў§ўўь§ў§ў§ўћў§ў§ў§ў§§ћ§ћ§§ўў§§§ў§ўўњ§ў§ў§ўўќ§ў§ўў§§ў§§§ў§ўўў§ўў§§ўћ§§ўў§§ёўћ§ћў§ў§ў§ў§ў§ўўќ§ўћўўњ§ў§ў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўј§ў§ўћ§ћўўў§ў ўў§ўў§§ў§§§ў§ўў§ўў§ў ўў§ўў§ўў§§љў§ў§ў§ўўў§ўў§іћ§ўў§ў§ў§ўўў§ўўў§ўў§§ў§ўўћ§ў§ўћћћўэ§ћ§§ўћ§§§ў§ўўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўўљ§ў§§ћ§ћћ№њћ§§ћў§§ћў§ў§§ћ§§ћў§ў§ўўњ§ў§ў§ўў§єћўћ§ћ§њўћ§ћўў§№ћ§њ§ћ§ћўћўњ§њ§њћћћњ§§ў§§§ў§ўўљћўћ§ћў§§ћњў§ў§ў§§ўё§ў§ўў§ў§§ў§§ћћ§§ўђ§ў§§ћўћ§§ўњћ§ўў§§ў§§їў§ў§ўћ§§ўўў§ўў§§ў§§ќў§ў§§§ў§ўў§§ў§§тў§ћћў§ў§§ћ§њ§њћ§ў§§ћ§§ў§ў§ў§§ўў§§ў§§ќўћў§§їў§ў§ў§ў§ўўю§ў§ўћ§ћўћ§ћўњ§ћўћўўъ§ў§ў§ўћў§§ћ§§ў§ўћ§§ў§ўўў§ўў§јў§ў§ў§ў§§њўћўћћ§§ћћ§њў§§ўў§§хў§ў§ў§§ћ§§ўћ§§ў§ў§ў§ў§ўў§§ўўљ§ўћў§ў§§єў§ў§ўћ§њў§ўћћчўћўћ§ћўћ§§ћћўћ§§ў§ў§§ўў§ўў§ўўћћєўњ§њ§њњћћ§ћ§§цўћ§ћў§ў§ўћў§ў§ўћўћ§ћў§§ћў§§јў§ў§ў§ў§§ѕў§ў§ў§ў§§ў§§рћ§§ўћў§ўћ§ћўћўћ§њ§ћ§њў§§ћ§§ў§§ћ§њћљљћћ§§ўћў ўўћњњ§њўў§§їћљћћљћљњ§§ћ§ў§ћљњњ§ўўј§ѕў§ћ§њ§§ўњ§ћћјљљњњў§њњ§іљ§§љљ§њћљћћћљћњњ§§§њ§њњ§ўљћћїљјјєјјљљћћјўљћћќљјњ§§ћњ§§ў§§яљњјњћљ§њ§њћљњјјњћћ§њў§ўўћћў§љћћўљ§§љљћљјљјљљѓњ§§љћ§ў§њњћјљљїћњљћљњ§њћћюњљ§§њ§љјћљ§§ўўњњ§љљ§њ§§љњњњћўўњћўўјћњ§њ§§ћ§§љћ§њљћљљўћљљћљћј§њћ§§њћљћљњ§§љњђћљј§§љњ§њћј§§ўўў§ћћўљћћљ§ў§ўњ§§їјљљњўћўў§§ѕћљљћљњњ§§љ§§ќјћљћћљьњћ§§њљљћћљ§§ћѕјјћ§§њњ§јљћњњјњћўўћўє§ћљљјјљљћћ§њњї§ћћњ§§њњћћњщћљ§§њ§§љћћљјјћ§§њљјјљљјјиљ§§њўћўњ§§ћћљљ§њ§§ћљћћ§њљ§ћљћ§§њљњњјљ§љјјњўљћћўјїї§њїјјљћўљ§§щљћ§§њ§§њ§њ§љљјљљћљћ§њ§ћћцњљ§§њљ§§јјњњћјћћјљћљљњјљћљљјјњїѕ§§њ§§ћѕ§ў§њ§њћў§§ўўўњ§§ћњ§§њ§§ћћљћ§ў§§љћљљћѕћљљъјљћ§§њ§§ћњњ§§њљћљњўўћўўћћ§ћљљ§§чљјљљњўў§§ћћљћљћљљјїјјїїјћћ§љњ§§ѕњ§љћљњ§§њў§§њњљљћњ§§јћљљјљћљњњућ§њ§§љћјјѕїѕѓњјљњї§њњјћљљћ§§ћћѕјїњћћљњљљћ§§њњћњњћћљљћ§іњ§ћјњїћњљћћѕљћљљћљњјћљ§§љћћњћљњјјїћў§љ§ћћћ§њјјњњљљћћљћћљљејљєјљћјјїњћњ§њ§њљћњїјњјћјћњњјњјљљћћљјљјїњј§§ўњ№љ§ћњ§§њњљћћ§њ§ћљљћњїјљ§§№љјїїљїљјјћњјњјљћћэљѕћћљјњјјїјћћ§§њћ§њњі§ў§§њњјћњ§§ђњјїїјњѕїљјјњїљљћјњ§ћљћћљћћ§ќљўў§§ћњ§њћўўђћў§њњљћљљњњ§љћћ§јў§§ћљїјљљљћјљ§њњљљхјљћљћјїјљњћ§љўў§ўћў§љћ§§ћњљљ§іњ§§ћћљњ§§ўўњ§єў§љљћљћ§љ§њћћљљњ§ћљћљљїѓѕјјљћјїїљїњњїїўњљљж§љљњњ§ћљњ§њћјїїњљњњћњњјњјњћљњљњћћјћћљјєјїјјљїћјѕїѓїї§јњћћљъњ§ћјљ§§њјњљњњ§ћљјњїєјћћєљ§њљњ§§ћјљљ§§ћљјћњ§эњћљљћњњ§њћћјјїћ§§ў§§пћјњјјљљћ§§њљљ§§њ§§јїѓјљ§љєјњјљ§§њњщћљљјєјјљљћћљћљљїљћћљћњ§§єљћјњњћљћћњњљљ§љѓјљћљјњћјјїњјљљўњњљћљљћћљњхћљјїјљњњљјєљ§њ§њ§њњ§њў§§њјћћљћщљћљ§§њњ§ћћљјјљѓэрљћљћљ§§ќў§§њњј§јљјћ§њ§§ўў§§ћњ§љњ§§њ§љћљјїњљј§љѓнŸљљњэјїѕјјїѕњњјјїјњљњњћјјћєљћћјјћљњїїћјјћљњјїјћљћћјєѕјњђЯЃnQњјћ§§ћ§љњ§§ўў§§яјћћ§§ѕјїћћљљњ§ћћњњјћњєјњїѕїїяѕїїљ§ћдЊО‹VF§ћљћ§§ћћњ§§њњљ§њ§ўћ§њњњў§ћћњ§§љќћљљјјіћ§њљјјњњјїїѓћ§щЄucMQaBћњ§§їњ§њ§њ§§љ§§ѕћ§§њљћћљћћњњ§лњўў§ћљњјњњјљљњњћљјїєљћѕАtUVINU<§њњ§љ§§ћњљћћ§§тњ§њ§њ§§ўў§ћјћјљћљћ§ћњњћјѕїљїїјјїђјћ§ї”YVJNQC:7§§ћ§ўќћўњљљћљэјћљћїљјћљћ§њљћњњ§љћћэљјјѕјћ§є‰OJ89MLE.:§§ќњљљ§§ўїњљјњјљјњјј§ћњ§§ћћјјїјјфїјљјїѕїљї§ћљ˜PAHJLBF?1<њњћћљљяћ§§ћњјћћљћљљњ§љњљљњїљћљїѕїјљїїљјљјјљњљљр§яŒ\HFQBALMB8@ћљљїјћћ§§љ§љљјњћљ§§ўѓ§љљјћњњ§љњњљ§§ћє§њ§љїѓ§ћЗdJEEјIA@CQOOњњ§іћљ§ўў§љћ§ўўіћ§њљњљјљњ§§єњљ§њ§ћјјїєјїїъјї§љћ‹IMQ>B;?A7CQOўў§њњ§љ§ў§шљјћљљјїљћјљњјћћљљјљљћљћјјщњљўўјЛaQTN.90(-++OHћњјљљ§ћіњўўћ§§јљњ§§ўњјјЫњљљћљћћњњїїјљјјїї§ћь`U`ZGJ9+*98>98јљјњћўњњћљћћљћљћћ§њњ§ў§ўљ§§ўљјјїчњћћјјћћђЈ]VTEB5F:9<2755њўўѓћљњ§њ§§јљјњјљљѓњљљ§ўњњјљ§§љјјрњјњјљћїїјїєћћНYIeiYSNPEA79MFEўў§§№ћљњўћњ§ћ§§њ§њњљ§§њљ§ўўњ§ћљљќћјїјјцњћљйgbi]-BGNNB?58@>@њјјљљјјќљ§љ§§юљјљљњ§њ§јћ§§њ§§њњ§§нњ§њ§љљћћ§ѓu7GJG<5@9;@A>:.3;§љљјљљњ§§јњћўўњ§њўўљ§љљ§њ§љљўњ§§хљјјћ§їƒCWzn4?F:<4]NB04<њњ§§їў§њ§ўћ§њўўѓ§њ§§њњ§јћћљљ§§љћњхїѕєѕјћћФL9k]I53JF@7(NE+0+§§Ыњ§љћћљјјљћ§њ§њ§њўў§§ћљ§§ў§њљћљљјњјјїїѕ§ћсwm]]PJEGFA<44ѕ87(ў§њљњ§§јћў§њ§ўў§§гњ§§њ§њљћћљњњ§§њњљјїїјјћу~YMPTMHEHB@5A3<5..%2ўўє§љљ§њљњњ§љњўў§јћљ§§њ§§љљмњ§§ћјїјњјјћњљя–`\G#GHOPVNIJG>82!0Gўўњ§ўўљњњёўћўћ§њњ§њ§§ћљћљљјдїјїјј§ђЉ„k]`@&?C?FLHIHF50*ћ§њ§ўў§§ўћў§њ§§њѕ§њљљјјєјћ§ћћўјїїу§јЌˆk>4<@><@A>HF?;3)( јљ§§ўшћўў§њ§§ћјљћљўћўўњ§њњ§§њћћ§уљ§§тrE8A&AA@CEFGJJEA7*-#!ўўў§ўўњФ§њ§§њ§§њ§§ўўћўћўњ§§њћћјїѕї§ћјŠQELLHF525?HOPC+11003(9"§њўўћўўњћ§њњ§њњћјѕљљјћћњљљкћїјїљ§м‰TB:JPONFE:9ACF*!!,)! 85,њ§ћћўўњ§љњ§њ§ћћљљћўљћћ§јљћћнњ§§ВcTS`[SGHGCB:GLLA[4-)Fўњљљ§§ў§ћПљћљћћѕњњ§љњћњ§љћњ§§зtJYOFBHFBEC:7GP?+0-ZO(b§њљ§љћљљјњїўўњљљњ§§њљ§ћїѕѕвјљћАc\SM3:87F<34:[A 23*(ћїѕєѓѕѕ§јљјјўїѕѕыїјљњїєѕљўї[0#+%-F!ы !1 *.1<їњћћњњћ§ћўўў§ўў§ћ§ќўћ§ћћњшћњћ§§ћ§ћњњ§ћў§§ћ§ћ§§ћўў§§ђўћўћ§ћ§ћ§ўў§ў§§љћ§њ§ћћ§§ћў§ћћі§ћћњњћњћњ§§ћ§ьћўњћњћњњћњњћћњњћћ§ћњњўћ§§ўћ§§шћўћ§ћ§ћћљњљњћћ§ћ§њћљњњљњњћ§эў§ў§ћћњњћњћћ§ћ§ћћњћћ§ў§ћћјњћўћ§§њћћїњ§ћњћ§ћ§њњњљћ§ћ§ћћњњћ§ћў§§ћ§§ћў§§їў§ў§ў§ў§ўў§§ў§§љћўћ§ћ§ћћќ§ћњћћњћ№§ћ§њ§ћ§ћ§њћњў§§ћћћў§§њћћњў§ћ§њћћњў§ў§ћњњўћњњћї§ћў§§ћ§ћ§§јћ§ћ§ћћљўў§јћ§њћћњћ§§ћћўћ§ћћњњћћњњћћ§љњ§§ћјњћћ§ћћ§њњўћ§§ћјњљљњљў§ўўў§ћћљ§ћћњњћ§§ћќњ§ћ§§љњћњ§§њћћј§ћ§ћњњћњњњ§ћ§ћњћћњћ§нў§§ћ§њћћўћ§ћ§њћњћћ§ў§њћњћћ§ћљљњћ§ћњњћљњљћњњћћњ§њљљўћњњћњћѕ§ћ§ћћњ§ћ§ћ§§ћљњћњћ§ћњњщћ§ћ§ў§ћ§њљљћ§ћњ§ћњћћљњћћпњљљј§ћ§ћ§ћ§њњћўћ§ћ§ўўћ§ўў§ў§§ћ§ћ§§іћ§ћ§ћћњћњ§§ћќњўњћћіњћњћћ§ћ§њ§§љћ§ћњћ§ўўў§ўўћн§ћ§ћ§ћў§ўў§ћћњћњћњћћњљњњљљњњћњћ§§ћ§§эћњћ§ћ§§ўћ§ћ§ћћњ§ћ§ћћ§њћљљћј§ћ§ћћњњљљьњљњћ§ў§љљњњћћњ§ћћњћњњѕљњћћ§ћћњћћ§§њњљљњњћћьњћћ§ћ§ћњњљћњљћњћњћњћћћљњњћ§§ћљњћ§ћћљњњљћўћўћњњќћ§ћ§§љћњћћњњћћњ§ћћњћњњќћљњ§§сћњљњњљњњ§њљљњљ§ћћњњћ§ћњњ§§ћћ§ћўўь§ў§§ў§њ§ћћ§§ћњњћ§§њћћљ§њћ§§јћњљљјљјњњыљњљњћњњћњћћ§њњћњљњњћњњћ§§ў§§ќў§ћ§§ѓњ§ћ§ћ§ћ§ћћљњљљћјњњљћћњэ§ћњћњњћњћњ§ћ§ћўў§ћ§§ў§їћњћћ§§ћћњњѕ§ћћ§§ћњћћњћћќњ§ў§§ћў§ћћњљћњћљњћўўўћўўјћўњ§ћћ§ћћ§ћјњћ§§ћў§ўўњ§ћўћўћћќўћ§њњљћ§§њћњћћєњљљњњћњњљљјљљћњљјљћћђ§ћћ§§ћњў§ћ§њњљљмћ§§њњљњљњљњћ§ў§њћћњњћњћњћњ§њњљћњњјњљљ§њљњњћ§њэћ§ћ§њљћ§§ћњћњљњћ§ћњњьћњћћ§ћ§ћ§њ§ћћ§§ћ§њњћћњ§јћ§§њћћњ§§њшћњ§§ўћ§ћ§ћ§ћњњљњњћћњћћ§ћћ§њћњљњњћћљњљњћ§ћ§§ђњћћњћњњћћњњћњћћэњћњ§ћ§ћћњњљљњћњћ§§ћћў§ћћћњћњљњњљ§њјўў§ћћњћћњњћ§ћњњћ§§ћњћћ§ўћ§§ќћ§ћњњћњњћњћ§ћ§§њ№ћњњўћѕчћњћњћћ§ћ§§ўћ§§ћэ§ћ§ћўћ§ћ§ћў§§ћ§§ћћ§§љћ§ћћњњћћѓ§ћњњљћњўўћкЄћћљљњљљњњћљљњљћњљћ§§њњќћњћњњќћљћњњіћњљњћњњћћњњщјњўњжЈrSљњњћ§ћћњњў§ћ§ћ§§эћ§ћњњ§ћўњћњњћћ§§њћљљњјћњћњљљјљљьћўўлЖФŽZF§њћњћћ§њ§ћ§§ўћ§§§ўћ§§њћ§ћћ§ћћњ§фћњњљљњљљћњўўяЅ|hTP^?ў§§ћ§§ћ§§ћђ§ћ§ў§ћ§ћњњћњћ§§вћ§§ў§§њћљњљљњћћ§§ћћњљјћўћЖz[WEMO8ћ§§ћўћ§ћ§§ћњћћ§щћўў§њ§њ§ћњћњћў§§њњљљјљњњљшїўў§Ÿ^[LNLB@9ћћ§ћ§ћњњћћўўў§ћћўњћћћњћћњћћј§ћћ§§ћћњњшћњњљїўўњ‹`S>>NC@@9§ћ§§ўћћў§ћћєў§ў§ћњљњћњљњњ§ћћ§ћћњњх§ћњљњљјљўўњЁVEIFGHB9<<љљњњћћњњ§§ћљњњћ§§ў§ћћ§ћёњљћњћњћњњћ§ћћљјјэћўї–cBGVGA@A@A?њћћњњћ§єћјњљњћћ§ћ§ћўўћњ§рћ§§ўћ§ћ§њћћ§ћћњњўўОkSF?BBJCJNTQ§§єћњћ§ўўћћњћ§ўўэћ§ў§ћњћ§ћ§ћ§§ўћ§ћћњњ§ћњљљ§њљўўёŒONNE<§ўў§ўў§ѕћ§ћ§љњћћў§ћћќў§§ћћњвљњљњћћњћњљјўўЧZ@geUVTNL@@BFLFў§§ћ§ћ§њћ§ўў§ћњћ§§њўћћ§ћ§§љћў§§ћњћћсњћ§њњљўўнkdbZ7AGJLHGB@@QMљњњћћњњћі§ћ§ћ§ћў§ћ§§§њћ§§ўћ§§ќћ§ћ§§ћъњўўѕ|9FEI@@BB?@IIFBCBћћі§ћћ§ћ§ћ§§ўўљ§ћ§ў§ўћћ§ћєў§§ћ§ћ§ћћњњўўщƒ?Yu‰p8FF?8)`VMEFM§§ћћ§§њўћ§ўў§§ћ§ћёњћћ§ћ§ћћњћњњљљјјшњўўУM8k^H;05E<0)TL7*:?§ћћѕ§ћўњњћњњћњ§§єў§§ћњћ§ћўћ§ћћбњљњњљљјўўшƒm]ZVIGFGHA9:FHA849ўћ§ў§ћ§ћ§ћўў§§ћ§ўћћѕ§ћћ§ћ§ћњњћ§§рћ§§ћњљљїўўь„WSBTQIIHHC@8FCCB?F<ўўћ§ёћ§§ћў§ў§ўћћњћћ§§ћ§ћ§њљњњўцѕœc[B"@ILOWUMIPNH@883>43.)+?§ћ§ћћ§ў§ўўїћ§ћ§њ§ћћўў§љћ§§ћћ§њњё§ћћўўыzM>@2>>?FFђEJMMHB?<<9905ўў§ўў§§ќћ§ћ§§ўћўўђ§ўў§ћ§§ћњњљњљўўмVAINHBA87>IOMG7.5>>BCMNGa;55:CF@?iў§ўћ§ћ§ћ§ўў§ўћ§њњћњћњњ§§ћиљћ§§ћћљўўлpPWVFHCEGC>??BMC>>::&BAEB@AH‚A:HC?:9hST—Эњћўћўў§§ћ§ђћ§ћ§ћўћ§њћћњњћћУљїїўшmTPVVB@BEGB>@CHTNHMLE%FOj‚‹Ђћњћњ§§ўћ§§ћљњ§§ћ§ћ§ћ§ћ§њћ§§њњгїѕћўКIVcCI?;?C:479@SYVLVN^IbZ…БНИњћ§ћ§ћ§ћ§ћћљљћ§ћењљћћ§њљњїхй~J\[TYc),E8 $.HkS>3.$3|‚žЎњњљљјўљњњќљњњћћўљњњ§ћўћћйљјћясЋWVIFS8&%&G <9BSNd]ћњћњњљћћњћћ§ћћдњ§ћўў§њњљ§ўєИxFJA?&)F%  -+5-1F8ћћњюћњћћњћњћ§ћў§§њћћ§њњљўпшoE70%A*0*`-3W‚e)41љљњ§ћ§ўўўћ§§ўЧ§ћћњјљљњјљјїљўѕЊVI7!*8.  )A%,1Opp;$<јљљњњћ§ћў§§ћњЦћљљјїјјїјїљўўш‡F72T7?, (4+!+Z˜[#9ћљљњћњљјњљљјјќљјјїїљањљљјјїўўж‹VF5-9:$(Q@.@ћљјїїјј§їјњњўљјјдљњћљљјјћўљŸY4.%*7S4   5J435;9?AEC§§ў§§§ў§ў ўќ§ў§ўўў§ўўћ§ўћў§§њў§ў§ў§§ўћ§ў§§ўўў§ўўњ§ў§ў§ўўў§ўў§§ў§§љўћў§ў§ўўј§ўў§§ў§ўўњћў§ўћ§§ўў§ўўў§ўўэ§ўў§ћ§§ћћўћў§ў§§ћў§§їў§ў§ў§ў§ўўѕ§ў§ў§ўћў§§ўўљ§ўћўћћ§§ўќ§ў§ўў§ёћ§ћў§ў§ўћў§ў§ў§§§ў§ўўў§ўўѓ§ўћ§ћўў§§ў§ў§§їћ§§ў§ў§ў§§ў§§ў§ўўў§ўўў§ў ўќ§ў§ўў§§ў§§ў§ѕћ§§ў§ўћ§§ў§§ќў§ў§§љў§ўў§§ўўў§ўўў§ўў§ўў§§ўў§§§ў§ўўѕ§ў§ў§ў§ў§ў§§ўћўўћ§ў§ў§§љў§ў§ў§ўў§їћ§§ў§§ћў§§єћ§§ўћўћў§ў§ўўў§ўў§ћћўћћў ўњ§ћўћў§§ьў§ў§ўћ§§ў§ўў§ћ§ўў§§ўў§§ў§§№ўћў§ў§ўћў§§ћўћ§ўўј§ў§§ћў§ўўї§ў§§ћў§ў§§ў§ђћўћ§§ўћўћћњћћ§§јћ§§ўњ§њћћўў§§њў§ў§ў§§љў§ў§ў§ўўч§ў§ў§ў§ў§ў§ў§§њў§ў§ў§ў§ўћћ§§ћ§§ћ№§ћ§ћ§ћўњћ§ў§ў§ў§§ўў§ўўэ§ў§ў§ў§ў§ў§ўћ§§ў§ў§§§ўћ§§јћ§ћў§ў§ўўі§ў§ў§ў§ўў§§ ўљћў§ў§ў§§ўх§ўћ§ћў§ў§ўћ§ћћњ§ћ§ћ§§ў§ў§ў§§§ў§ўўќ§ўў§§ыў§ўћ§§ў§ўћўћўћў§ў§§ћўўіњ§§ўћў§ў§ћћ§шўћ§ћ§ћўћ§ћ§ўў§§ўў§ў§§ћћ§§юћўћў§ў§ў§ўћћ§ћћ§ћ§§љћ§ћ§ћў§§љћ§ћўћўћћњўћўњ§ўўќ§ў§ўўј§ў§ў§ўћ§§ћ§юћўћў§ў§ў§ўћ§ћўћўћ§§љћўњў§ў§§їўћў§§ўў§ўўњ§ў§ў§ўў§ў§њўћ§ћў§§ђћ§њ§њ§ћў§ћћўћ§§ћћ§ћў§§ћыњўћў§§ўў§ў§ў§ў§ў§ў§ў§§шў§ў§ў§ўћњћћ§§њўћўћў§ў§ў§§ўў§§ђћ§§ў§§ўў§ў§ў§ўўѓ§ўў§§ўћў§ў§ў§§ўљ§ў§§ћў§§јў§§ћў§ў§§ѓў§§ћ§§ўћћ§ћ§ўў§ќўћў§§ѕў§ў§ўћ§§ў§ўўў§ўўњ§ўћ§ћўў§§ћў§§ђў§ў§ўњ§ћў§ўћ§њњћјўњўћ§§ў§§шў§ў§ў§ў§§ћ§њўћў§§њўћўћў§§ўќ§ћў§§ьўћўћў§ћћ§ћћњў§§њ§ћћ§§ёў§ў§§ћў§ў§ћћў§ўўј§ўћўћ§ћ§§яћ§ћўў§§ў§ў§ўћ§§ў§§хўћўћўћ§§ў§ў§ў§ў§§ўў§ў§§ћўћ§§ўп§ў§ў§ў§ўћўћў§§ўў§ўћў§ў§ўћ§§ў§ў§ўћћњў§ў§ў§§ћћўћћ§§яћўћўћўћ§§ў§ў§ўћ§ћћ§ћћў§ў§§њў§ў§ў§§ћјўћўњўћ§ўў §ѕўћўћўњ§ўў§ўўі§ў§ў§ў§ў§ўў§§ўћ§§ў§ўћўўюј§§ћ§ћў§ў§ў§ў§ў§ў§§§ўћўўў§ўўя§ў§ў§ў§ў§§ўў§ў§ў§§ѕў§ў§ўћўћўћўўёщЖћ§§ћћўњ§ћўћ§ћћїўћўћ§ўў§ўўђ§ў§§ћўњ§§ўћў§ћћїўћўћћ§§ћ§§ќћўљўўйтЛ‚\ћў§ў§ўў§§ў§ў§ў§ў§ў§ў§ў§ўћўћ§§ў§ў§ўћћљ§ћўћ§љњњ§ўњўўљьЯк˜pT§§ў§ўў§ўўў§ўўћ§ў§ў§§ў§§ћ§ћћњўћ§§ўћћљўћўњ§ћўўђљКŒ{`ejSўў§ў§ўўђ§ў§ўћў§ў§ў§ўў§§іћ§ћў§ў§ў§ўў§ўўћћѕўћ§§ўћ§ћ§ћўўїТŒpk[adSўўј§ў§ў§§ћўўњ§ў§ў§ўў§љў§ў§ў§ўў§ѓћ§њ§њўћўћ§њљўўюЏqx^^aVSYўў§ў§ў§§ўўх§ў§ў§§ћ§ћўћ§ћў§ў§§ћў§ўћў§ў§§ћўћ§љўўь˜ngSMaZYTM§ў§ўў§ўў§ўўя§ўћћ§ўћўћћ§ў§ў§ўћћќўћўћћіў§§ћ§њ§њњўўяЕi[`\VQVLLJћў§§ћ§§єћўћ§§ўћ§ћў§ўўц§ўћў§§ћўў§ћў§ўћўћ§§ўћўњ§њўўѓЃtU]hb[OP[NV§§ћўћў§ўў§іњўћў§ў§ў§ўўи§ўћ§§ў§§ўў§ў§ў§§ћў§ў§ўњўўЪzgPQN^WZ[bg^§ўўњ§ў§ў§ўў§ўє§ў§§ћў§ў§ў§ўўќћўћўўљњ§њ§ћњўўхЃbaVUOWYNOYijўў§ў§ў§ў§ў§ў§ўў§њў§§ћў§§ќћўћ§§єћ§ћ§ћўћўћћ§ўўюЫ}hj^>GLEPIA[`§ўћўўћ§ў§ў§§ў§ўѕ§ў§ўћўћўћў§§ѕћњ§њћћўћўњўўюqenjSVFSFHLPTOћ§§ўў§јћў§ў§ў§ўўы§ў§ў§ў§ў§ўћўћ§њўћ§§ћўўяМh`cNFJULSU`OOJ§ўўљ§ў§ў§ў§§њўћў§ў§§ўљ§ўў§ћўћћр§ћўћўњћўўбnNnzi^]V\WMOYUZўў§ў§ў§§ўј§ў§ў§ў§ўўњ§ў§ў§ўў§§ў§§гћўћ§ћўћўўя{qui?VW\V[WSHPY`ћўћўћўћўћ§ўў§ў§ў§§ўў§ьў§ў§ў§ў§ў§ў§ў§ў§ўћ§ўўэŠCZ[TVVMOBPZbVUSSў§§ћў§ў§ў ўљ§ў§ў§ў§§ўі§ў§ў§ўћўћўўэ”Nc‚ž{NTTQGCm[PNN^ўўњ§ў§ў§ўўў§ўўў§ўўь§ў§ўћ§§ў§ў§§ћ§ћ§њўњћћўый`L|r]NCiYNN?`WF3@O§ўўї§ўў§§ўћў§§ћў§ў§ўў§§ў§§ўћ§ћў§ћћц§љћўўљ’}kik^V[[VTHQPWZGB@ўўњ§ў§ў§ўўў§ўўў§ўўјћў§§ўў§ўўу§ўњ§љўў§—k^^da`[b`\VWSQOLMFBўўј§ў§ў§ў§ўў§эў§ў§ў§ўћў§ўћўњћњћћўўъЈkoQ5S\`djmc][\ZICGM^ўўў§ўўќ§ў§ўўј§ў§ў§ўћ§§лўћўћћњћћўўТ›|imJ5O]W[ca^^]VPF>35F§ў§ўўў§ўўі§ў§ў§ў§ў§ўўћ§ўћў§§оћўњ§ўўОžxNGHLQPT\P\WSQUI>8193<§ў§ўў§§ў§§ўћўўў§ўў§тў§ўў§Š^IWBQQTPYT`Y\^VOHBHC<8?ўўў§ўўє§ў§ў§ў§ў§ў§ўўѕ§ў§ўћўћ§њ§ўўхЂePU[YVQOMU\]^]CLGQJILN<8§ўўЩ§ў§ў§ўў§ћўћ§ћ§ћў§§ћ§ћ§ћћњўўѕ›kOL]ih\ZUCQSa^J8:?HG`C*)4!5-:SC§§ќўћћ§§§ў§ўў§Ьћў§§ћўћ§њ§ўўѓ|SFEAC1#&!$%BM*9 #t9>Y~].#3"ћ§њўћ§§ўўќ§ў§ўў§ўњ§§ањ§љћљ§ўўЖaYB,18@;2(%!)0&>.-Oth4#?њ§ћў§ў§ўўњ§ў§ўћ§§ћЫњћњ§јњљњћўў§—PCA`FA: 0%)# !$.*),T™^"Eћ§њўћћњ§њњРћљћљћљ§њ§њњћ§њћљњўўу˜^SMBHG^P -+%!14)2V:(7$*QC8Fћ§љњњћљћљ§ћћљ§љћљћњћћќњћљўўоЌcF>;1ECY>"$%5I:.02;HFITПўw;wўџ9wџ9ўwџџ8ў€џџ7ўwџџ6ўwџџ5ў€џџ4ў€џџ3ў€џ џ2ўwџ џ1ўwџ џ0ў€џ џ0џ/ўwџ џ.ў€џџ-ўwџџ,ў€џџ,џ+ўwџџ*ўwџџ)ўwџџ(ў€џџ'ўwџџ&ў€џџ%ўwџџ$ўwџџ$џ#ўwџџ#џ"ўwџџ"џ!ўwџџ ў€џџ џўwџџџўwџџў€џџ!џ!џ!џэљњњћ§њ§љћћљћјљјљљћљљ”јїѓєєѓђђѓѕљ§Ч‚zzFBGJCAAEEA-:*2>F?>@IJNNOSљљїјљјњњ§ћћљћћїјјїјњњљєђђѓђѓєѕћљЮWHII9)HPEFFH:?:2BB>GQYSNWZQ^V;F§§юљћјљћљљћњљїѕљїђєёээжѓ§ћюЩ›iOSTPYUWTOGSSPWZVOPFAFMNNQTYŽoeћ§ћўўћ§љљћ§§љФјїѕєђьтуѓ§јтЉTMjgOSSUVNLGMPJLLJNLLE8EL?E9E\i{}Щљњњ§ћљћћљљјїљљјЮїѕѕєёьчнјђКj8APJTYPQZaYYWNP[WF5FCIF;GJNJSWevŠЕОјјљљЗћљ§њ§§ћљљћјѓёьяяьццшуЇT9GIML?>HILV\]IMHYr}Z99<7:>E]9;vЅЦСЅњєїјћљњјјљљћїѕѕЩђэющущђбФžQEFVPWUMHJTTZ]WQ@+@Pg]7C@EG4G82iИтхЛИЕњњљјјљћћјї€ДѕѓёярчэлzjtUmMHLNYUTNLENLGF8501JB)#31*,[ˆАЮУЦЪУФАљћ§њљћћјњјњїјїєѓђѓѕлЖ•dSISI]UNLHPHNNJQVTNE8:@A744CJU[UMNPFAFF<37ELLSHd‘ШмЖ—ЈМСЊ–—јјћћјЦєјѕѓѓєђсЋmJ[[SMPNMOQOOTWWVLHCY\PhwˆžœАБЉЋЖТАЋŸАљљјј€Йѕђяѓ§ѕЦƒp:?aMF;<03HVUTSQUPGH?35HPLE:+GNSp|‰Š™ЁЎЕЃ˜–ˆ‹Ћ—їњћјјњјїєѓѓѕјтАQCWJ>PJB;CNve`QPOTLHHCCEA<?EVPOOLE;BAP[[A@MQJ;853<;:9B:MQhzkjtv‹Œ—Б~…‚zp›}dјїїѕ€ћјњњьДvMGEOLLPU[QIJJOMJ::?A?E;3,:(0AASx{jro{…‹qN\…‚z„wVјњјјїѕє§јЦS\QSNNTLQTQNNILFNPJEEAB::71:90,Bo‰Ї‹k~‰•Œ‰xgiuƒvz~xtјћјјѕјїјЭzMLUNMPJPSNZMGFIEEB@EJLF7019T[B8I‡жтVk}•ˆ‡|‚~|ƒ|}|z…їјїљљѕуЕ‹aMGTUMIJLGGMJFEGI>ECLLIE+44BIUVqtt—‡vai}Ÿ–”‘ˆ}‚Ž‘Œq}gwїљ§§шУqPLAMOOICGTTPIOMIEELHFEIGC<24>!(`Œ‘Žˆvpjoxvq~–™›Ÿ—ЌсНk!8Gwѕћ§нЄ}N8JUNN?917GJOLJBFFPVSOOL;:BBMFM^w‡~pptnnquŽ˜–Ё™–™АмЪВi>L˜•ћљк~^MAJTMH@@C;99>38@ABIGB8EA;($,.Pn]]rjkjkopv|ˆŒ‰‘‰{ЌОŒŠ›™ˆ‡Ђћщ”nQ:2STTI:?HFE@?@?8A:9Ek\H5>>N>aŒmcnv{uw||kkpŒŽ‚Š’|—žЅŸ~u1:ЩB:BEBE+?FGCLNEBBGSOC)BSˆ‡N,+AWv‚vzjYmemmpopgt‚˜xz„}™зЏБВŽ…wV}HGECCHB58BLMJ@895CMrzZp‚Œz}onhhgkvq‰”Š…‚{~‚ƒ’ŽŽЋЎЎ–—Ј—thNPPJEPNUMFEBB?B>GIEA@FJ3:4101.59BIHCJNEIOOGE49q„ƒ~gdjkiaVEONYj{kmoohn˜КЃЇЌДž›ЌМЫЧЄvb]! B@;?4CFEEz~|zvphЅЌЉЕЧЎЕЧТЦУЇ`\LEBBA;@AL>9AGC3;@)#HeŒ}dej”РД}ogiYTabcrrqq€ЏprŠ—ЎЁ—ЋШœЖЧьцЗxc`1-*G:GNL04M]peQE:9I3:a|ˆjneaPe‚ujZ`b]Z\^kocdggn‡™•—”’–ЄЫюޘ•vH@5I,I>HMJ,Z’‘U:8?Mb–‹„{z‚~ovzi[\qomknronoin}‡•‘{”ЩФсыаЦЄx]$ ,)18AC;]gB?C5]E?j‚ˆw‚v}‡}||€Ђuqqh^a]kwomhtx}{‡‹ЏбуЌ”ЄЁЌ•ŽŒL!2)+,-0:APAALOCIZSnˆƒ„Œ‡tbvzmbt|nnbikedabb{zt~||‡•ŽžНОЇŽ‹‚~ˆƒa3.:,..0.??972(>^P<|ˆƒŒow~vvrzkew~zruqtrpwrvx}~|xt‰‹™ЌИЕДЈ~PWЈ‘Q5,,ŸBGF5)0)G\LpЕŠ‚}ox‡ˆtrtzƒ|x{vnYgv~xuvkhŒЅ›ЂБКНЌŸŒ^rЪI5>%-:5)(7488^„ŽБœŒ…odzzxvhebj~…‹|xxnn€knvumaGhžЂžЇŸЌБЊЂ|b‘ˆA &15%.O*7Ad‘‹ˆŒ„|w|pgNIQSb[w‰‰jWirwvvukqZYPvЅМЄŒ‡˜Ђ•|‹ŽEk+*.4*A;-B@J]o•Žw„~u{‡ˆƒknU?^m}А’…W@Zh‡ƒvwvmЎУЕЈŽ„rr•ЂЇe8+2<28;47(3;izŒ‘„{ggpƒœt79io‚hntodTbowwutwvwc~ТЫРН•|r^O[xŽЁ„’~MI857<@(E39@ŠЏŽzwtoqq|ƒŽxVVp}vpnrb[]juxpnYWi‡‹„Œ…Œ‚jcW]ZVjJ%C;)*0#2?B?dE,(<1>9L‚‡v{zƒŠ‰}gimvtqmn‡„e`uzuptv~‰‰‹q—Э‡vmvuuxg@,( (vmI934<.e{rmmv}w‡zmqjqjwr‡ˆzumjrŽz{z‚ˆng‚eZYnrpjea; !H]IEBGaZ9`ˆ’…‡wvwƒŠƒ~twrvnt‚‘’~jcjqv„ŠŠ‡Œ‰ˆŽ’…ƒtv‡‹oia[]W#&3EMLML?}ŒQtv›„wqxƒŽˆz{~|rcZtvh^bcrˆ{”Ќ„qtˆŠŽЋ›}}||Š~V>amS;#0*+-5@kY21822LkZPavpog…Н›’Š„}vvwh\hvqUbpL )*)%% #(9:+<&#3<&7;>N[ˆЋ•–ŒŽ—”‘ƒvvqvnhic[…tT)+1" (#+."!,10,"--#,*3",B?0$SB&+TББЁ’ƒ{…„ƒ…‡ƒthjkkgV]…j43*,  !;9+%!()%"1.!0)4G!"FTHtŽ{n‚ztgmekiqjn`#$ * "B).1$"".1!!"B9)<9\ŠŠwcgjgwmot‚}cH2&&#  *&B&$!,+#!*00)12% hŒ…P`[n~r‡ƒn;,$W 51%Mэћљљњ§§ћћњњћњ§ћ§ћћњћћ§њљїїйѕѓєѕљўўЫƒ{|N>@IHEIIG@2:F58IOQTMPOQQNLYћћ§њћ§§њћлњћњњћњљњјїѕєѕѕїјљўўе^JQO@.FJLBHM;CE@OO€™PY`VU\c^ia@L§ћ§ћ§ћћњ§ћњћћњњјљљјљљїѓёёєѕўўєЮžpVWOYTZ\\TV^^Yae`[YQNQTSQWW^•Ђ}tўћў§ўў§ћћњ§ћ§ћ§ћћњљјїѓюцьњўўыЋTIigNTZ\WQQTQW]VTYVYYNMPQPJ@L]u‡нћ§§ћњћњњћћ§њћћЭњљјјїѓэхпћјРk7pЮўћчур§§ћњњћћњћњњљˆјѕѓїцщянtmzZqMLJQVZMGIOOSQMIBH?ZO7,:jŒЗшюёєчутћњ§§ћњћњљњљњњљјїєїїлН•kWHTL\ULFHCJQUSU^\TMHFGFLMIYIOce|чўјйхчтрлјљљњњљњњпљњњљјѕєѕяѕаˆeNPO;LIPUMLJQZ^VSTPTWWыOMPQ^`d[pЎэўюкччштмлњњўћњњшћњјѕїѕѓчЌnLTZQOLOGIVUMU[[іVPOMNYWYPUUЎ`m‹Чцььчхшюцшштњћћњњћћљњљјјїї§эгОiMOaOGFJIQVWPQOUVSMLQ[a]YUWkdgЈбссшсхчщтхпмшћћњњ€ЙјєёїўљЦ„u?EaOFBB19TU\[SW[VUPSJM[^^[U:VavЅСЭЯпхцпйгЪТШхмћљћћњљњљљѕѕїѕхДYCZGCNLC@CLvbZZVTZWMLQWPMYVQYc`v•ЏЗТжлймулЦЮжЮезгљљћњћњћљїї§ялE;@EFGIHMGMMSLNA:;MY—ЦЃЁДЖЗЛЗБЖИТЫбебдШхюЧУйнШЩгўяm[97GVVJ;;8MOPJ4Pg‘ƒЊЭмгТНОЛИИЗЗ—КЩЧШЫЭЪЦШЭЪйдУЫмкзйзчжЗБHUVOPMOQTMHIIG?HOOPOMUbVh‘КЗеШТМЛКЖЗВВАБЧхШСФЩЪЖСгррнйчєјљщцшЦЛЎ?A<LPE<:;>0Vj]ŒёшзжСМОШЫШФРЖИТЦЧОКОИМИНУФРКЖЏЩгннстцтнмбЄЛїЋYCA*$GvАЯьсбЪДЊИРНОЕЎЎСФЭЪЧРНКЖКСУОКВЏЉнсзкжчюсйТЎЯЎP)*1>EA>;<8A]@EN‚ТегЭЧШШаИЌ›”ŸЋЌУЯЫЯЖЄБЖНОНН€,ВЁŸ•ЏтѓдЯЯгегЩЭЯНb08rOE?:>OHFGPUq…ЦЪРЩОНСЧдЩЖЕŸ‹АКУуЪЭШžЏЗЗММННМЊЮчћєсЮЫЮеИИзшл”N@JO1ACEAFM>")H…ЇЩжФОЗЕРЩыуВ„ЅЏТЯРОТЛВЇЎВЗЛМЗЗННЂВшїх§зТЖЊžЋЪраЉЇ‹U]LA;>EAWHGVЈуйЪТТМЛРФЩеО›™ЖКТМНКВЎЈЊДЛМОЕД™БЦЮФЮТЧмЧАЉЌЊЏЉЕu>BB?@C?2EZcЌОЅЛМСУЧЦШЧЩбЖЕБЏкФОЗЕЏАДНРРКДАЄЖкбехйбеРЊЌВУС•U9%739;AGNMYTQwЈОЗИОШШУОНКТФНН€“ОУЪФНБДБВВИЛОТНЛУбнезбЉœВЕЖЖЩЩСЈH8SGSGjQA-?;OFqУбЗТСУШЫУОЖККОНМРФЩЫЪМДБНСНКНЦЦЧЧФОЇа§чЯМЖЖЛРжЫЇi-;?;"?‡tQ7@@]N—ФЭФФЦШЪбЧОКИООУРЦЩЮЦРЕЏИРФРМНТЦФЩЧОЃШЧЅŸЋЕККЗКЋq2-,E:\gQQIBebPЭпгЦТНРУЪЪФССУРМЛСЩзТЖБЏАДЧШФУФССЦЪЩЩУРЛНЮЕЕВАЉB,3>@FQVQQM>Š—wОЮсЭЦНЗИРТТФТТСКЗЈРОЌЊЏДЛЦСбыНРЏШШЭтеУМРЦРМžŒЂЖЄp88CA?@GHHLGLoqЅЭЫЪЦРКИОРСТТЦФНИДЕИБЋАМРМЩкгЫЌЗЕЧхлпЭЎКРЛКЄЄЎЗБx;(AJHFG@BGLE3PZЃЄœАИОРРФУЩУШЩФСОНЗИАЏЖМУУТтаЩРТТадедСЋЖИЛЖААУШЅ<1-FFLMHGJGHEEG\ЌЈЈАТнЪЧЫЪЭбеаЪФФТМЛЖАВЏДЌЈОЧЩЭШЩЭкСКЕЊАДБИМКЉЈj!(?@AEGHM[QA?AGIФОЛАСпЭЫЪШЭажЯЧУЧУЛЖИМЗЛЛНОМЦШЫЩЮЯЯбКŸЄЏВЏЎЗЖ–r0*C<;5;;&>BBJP48ЕЕРБхїмгедёеЎЛЛИМЛНТЖОйьяѓђкЯЭЪЧШУЦТУЕЉЉ€јЋЅЅВnZr>>:31399>AH1"31;ЇЛЮЯххййсЮЮШЫФФУСОУОЉСўњтулЪШЧФШЮЪЫЪСВАЌЏВТаСTAQ3-98<;<9>A?70232cŽ˜‘БгЯштЕООСФЭИЏЗЛСœИЮШЧЩгЮЧТШЪЩУРЗЖДЗЕАЃЉЈq#-.58A?::?<;92&$-7MUQtgPFQLUp‹–‘ŸЎЎЃЁЛѓбЭЩЦЩЭЦЦОММКЖЕВВЎЉЂЈЗƒ5$;;>9:85:59751;-%"81GTHHC@;;MS7:QTPc}ВпйдЮЪШШЪЫЧЦНЖЖнЎЄŸЁЦИƒH@C44*49:549:>754:B@BB„AFO]GGhM9@hЭпеаЛНУФУФФОЛЕЕЗДЈЈЎаœPEGQ@5-),+29;72,+@CF<(@;5>>:>@;?2-47V?#,>:88;;‡<>;;@3@.UWCV\‰ЮдРБЋЏЗЗОИКСМdO#9;>21**;8B758>-40,Y>82287:??FF??4?>@;;A@C?2--C‘ЭЭЃЄЇЖМИЗШЫВ^H:+<;8200?o@ *+B?>9-92xј§ћћ§§ўў§§ўћ§§Ыћ§ћў§ўњњјњїњјљ§ўўнŽŽ‹bJZ^W]]YVTbƒЁЃ˜‰xvЅзЩ‚|zqw{pwƒˆ‚‡ŠŠŸДЫЖВМкЊЩмў§Ц‘}pFBC[^^e[COi~‘…teQS]MW}—ž‚Š|r^x—‹ƒ}truru{„zv~|œЇЋЏЇЅЅЕрћкБЗ‰Y[NZLbZ\re@vЏЏŸtYT:[ivЋŸžЊ•‘•‘„‡}qx‡ƒ„‡}„‡‚‹Œ™ЊЇЄБылјўюзК›–v4%$&JHJOWWSz\M]MiTW…•—’Б›Š”—’–‘Ё‚v~{ˆ‰‰ƒ‡‹‘›™žЏСсѕОЉДРФЏЈœ]%?IPISIPU[mYdhk`epkŒЂ˜™ЄЂŽ˜‚‚‰Ž||{}}”Œ”’›ЌЃМеаОЁЇЂ—›˜zEP]POMLSYUU[TFTueP‘Ѓ–ЇˆŽ‘”–—„„‘œ‡„ŠˆŠ‹”•–”‘‰™ЁБагедȘnhОЂ]*9GGNHVYZMNJJ8YteеЗЅŸ…Œ•ŸЂŸ’…Œœ˜Œˆ‹…q|Ž–Œ‹ƒ–ЃКДИШЫЮУЗЇuˆрЄ[;UNICLTHHBIL7,Ip™ЏУЖЇžˆ{‰Ž‘‹ƒ{w’ЁЄ˜‰ƒ~‡…‹…ug…ЕЛЖЗИТЮУВwЇžV)4;EFNPBFQgBSWxЌЉЄœ‘™…xicaiqnŒŸЁ|p~…‚‹…ˆˆ}qpa‡НЭИЅœЎВЊ—ЁЁЂY09wGAI[„•‹ЁЪСпШŒ’‡’˜…|‹˜tЋАЉЉИБ—’žЌž’ƒ‰‹”‰zuu\-;8B?5HBFB7EE><>75OTZ„rQFPJIhuvq|Š…un›сРЈЄЈЁЃЅ”–”ˆ‰‡„|kt‹k1,5@BJFF>3>:B797?HGJC@;IFMV1C@GOJGMG?CHU^FFhS:@eШдКЈ—–——˜žœ’ƒƒ‚~qkŸLOPUI;7.32JMP"EBCL><>EA>@LHFA<7*&2.1;8922F>B,QJ8H>-`wџў€џџw!џw#џўwџ$џў€џ%џw'џўwџ(џw*џў€џ,џўwџ-џўwџ.џ ў€џ/џ ў€џ0џ w2џўwџ5џўwџ6џўwџ7џw9џw;џ§€џ<џўwџ Оџ€фWA;;GgДА”‰…tЋЖ•Wp™‹wbnx„{B&;9 #&5A?A?L@A<>>3:CB98-"NŠЊЏ„zqm|xe[`WW‚РУ˜‘„ežжЖc?w…•Ѕ„uƒg>3,#!!5YYCCEBFGJH>ACA;5!4O‚Ј—iVddi[8M~™НЅЇ™˜ЄЂr{Ї‹]MbŒ‘|xwcE183(#"H[QMB@IFNHE@@NH@3;[‘…ti[`chkjg\юбДЅ›–™ЗФ{Œx‹Š{Аz{rQ@^M53*%G89<@IILGBFCH94,&aŒ’‘‡th^NP\WeaЊ•—‘•™žЈКЕ•’œ››•œДŒƒ`EN@)20.17>EILHL[VQJGAF>-%+FtКЯЊtrcdFMGLMQQЃЇЁ‰‡›œ˜Єœˆ|tu‰Ђœi,;5+)$2%)CHF?A?JTYNF9:F:5C`k‹Ї‚]FHFPIV`ijaЌ›”Œ”ˆŽ™—…}|‡–Љ–L,97+,9,*,%.;;98?IMMCA;<>1@Qa\QZcme\ZYg4;JSZ`ЌЋЌ‹„…‹’œ•Š|wƒ}ЋЅz&8.$$))44FS9BobgZZ\jdrkoiB0M`onЇДЗЏВ—iz}‚‡}qxžuL+#&$(.,07TQJFFMG?71*0BE`urjc`\dgd\m}k^p|xzœЂ˜ŸЅ˜}uqz…xtŒ["-)$3ZPUSNJIJC;A?>#%2`‰}hacZdoiimacmt}xrЂˆŽЄИ˜Ž|{„…˜‰……u@ $#);<9?G8JGLJGJH;)3-#7HOhpˆ}rdepiZY]`b\croq`?ž}udƒЃ™…wuˆ…ubG& !*ALIULOHGFGC??;24E>UŽzxvntrgabcjmjge^jgmuvmk‹•ЋЕЄОАŽˆ…kL%$C#$!1@EG;9FLHC9:"P][ЂД~qmxoS9I[Z^eaOgegmbbnbV›ЈЎž–ˆ‘‹hwvYP.()#!!(2AGLQGGHSL>9Otœ˜‡jSacWUVL`qvcZPdYgwqd^\mƒ‡…‰Ў™nerjJ3) &05C>BECC747>??:BBC.5;B]pn\YY]`WMJ`ZaiiacjrjTMHBS`to{{pibui9*@VF?9*%+.02?A>@B@5-95;1%.(&2;BH;($.7Nn”|k]OLOWM`j^Od„„ŠxxrP[a\iigIB]m„xwƒЃ((&,.(1*;FB@@;?B;9;FHYЏЁ~eLTOJPWMUejcgemnkM@>@1Z]OP]idv‰{1"&&0:@5?LB:AEJJE>8<-2!Z”’wg]\adYVZLSVUV``T[^^OCC^a\\]ghcЂV"181.3?JBL@@EIEF>:2%8hhtjdkpnqe^rr[OPV^hjdWAVH:FQ[dppmчŸ\B"#(-@CAB7#>`{taeet|}}MN^inp`\`]hjkqeF$@@YQ;;9M[a^M2IQQnu{eie]euke[SJZYLG+8QT8->L`Q~`@&-)84;CENVbV:,AE@1+5(FF-GCNih^hivirYS`mePZ\MNMYegN7OCWo[QCN@@( (+5FH@AG9>J02728!)QgaZUMOVVaaYNEN\]chYLQLET`Pa]OHYPQY[QbJ84A?-0.-(,7;3),($#@\g\ZVbdVYdehh‰c^‚~m`bVNLO[`MJFML20;`BJ\&-$**%!+]tC9;;>32<4)02-JeUAGS[SU[NbmjS)bmga\\WHAM[WG0GBG FAWt!1,%2EB75<<97.;B:AYTWUUйVZgdno`QSW~ƒr^W^NHWTOSOHL`dNIILY!0595*,,€&ELG?BGgS.A@$.H^GN1BFF8I@^eYSUEMQUdS9ECO)-FOIOQONQdtm,2>:<-*+.>EH@CHPT-+#Mi!ETGUP31Y|gbTMMLFHWW-SeTC,>;8MTY`aVW^`it55>CGB@F?EAA9B:-7*JHMZcC)FIWbudoe]VTTVOFS3JghMneQ"F3?Y[MB@GT[o--&OLNUPcidcWV`]aYFV`Z]d<<;\\% Ahwk]O@EHJB\gqcI$&)5?CG1+23@LP<;P[QLCANM\g\A1FV[cS<;NQ[^jTNSG €)Ej`cMMbuqnwbeu^+*:;7ECH?81(*CegWFCE7UYPQ>1 2W]\QHCAMJAFNSjuWV:EaASoV:Tmpthkhp3:JNHF;1E;3HWSQTZC&8+)9O‡pd]EHHONH?AHEkqni`[c`ZQJ<0L5,PZ]j‚S-!%T`”Žvpngp‰‡;-%#*0(%$?IcUYMUH7;MSYaQMHI9SbY]gdGGQ?FG*IpS+EYeMbjŽqejmv~!.%0%&&+&(g|^YUP3$0#7?JUNOUZ[]kbO:7B@MA<8-+1N;LTYIw—}rpquvCC$ (%Hz|vxj;@(2#\gku{rngkx}~‰iA20b{qjcIGI-[a;<:E:CM;EGONgxi^YUQ;C$(BGJYJ\OWehxhu~n`u|to31!Otqgi`TNU::I03.5A0:-CI€ѕGWjYQ[1 THAA(NtO,:zui^[cbmh\ccS&UƒgSLHOL:AT<. 8LmU8r‘aEa]SMVVHE*@SOUZZ`U‰zbSYbgjmbdVS(1o`zjd]U]I3O:>zcEBV#%JGUrqP8J;MQ\[T?44T1IzYLc`Wij^bhxxounhZGbcnb\NFJ`M*A|YA >[2`oePN\iP",L4FHMP\YYjohbo{ngiou\O 7vrqdUH<@0-JB €АO!%JE@V^P0MN(I?JZkJ>T]PVd^mrojpiomoru\CU#qˆmvS9NIHruI>2> 4@<3(ka85JOOhw}|d„ЊВmSOG3*I€"]QAAMvЯмеЫЦДсѕг™ЏзсгКЅЏУЮЊ^FPNLH<0\ЖчяФЗЗКЭЦЎЁm]ažФуцдЫЫΘޢчœwНЯЫчЪРЪŸ^IGC@<:OnoWLFHEFIJEBITMG5HgЎнкЫЖЅБЕЗЋ„ˆŽЉЯщйлЯжсжЎИцШ”…œЪЯИЛЛЂnJ@MQG<>B[iZQHEHSOPJFNUWQHNwЕкЯОДЉЅЇЉДДЅЁўўэрйезкїѕРРдРЪеСазСНЉk[jdUNIE?1SMBCGGQPNOONINNF2FŽЫзбЭОЏЇ››ЃЌЇЈцблйддзрусмгкзаЯЯэйС—xeO:GIJILGEJOO PU[PMLNEBFAGjЈцўшСКЛЌ’˜™™ЄЎунйдггжйнреШЪЩСОШссЂNPLCFEGIJLNFE@GNWZQGGMONG:Ha™ЖЮсЧЊ™›‹›ЁžЇЊЉДлдЮббешзмжЩЩЧФЧсьжvFFGJQQHHIGGW`G[ЊВЌЇЊЌЊВААЎЗŠ~—ЈДДсххцёйКЩЮЯЪЦРМРЮЫ›i>LFBGPMJNHSWOMQSI?@:>5J[mЗЧЫИЕДЏЊЋЋЎЌЇЂЈУСЖЄƒеЫШМЇЦшЯЫУСЦЪЗœgA+4;908;?OOUQVTNEGGCFGICJkЇЖЌИКНЗЏЋЅЁЅЉЇЄЃЊВВЄŒ–РДСРРЩегЩРМЧРЁnH88CC88-3LMMTTUMINPJLMF7Fe—ОСЖЕЗЗВЊЉЅЄЇЋЊЋЋДЗИКУŒМЩмдРбцтУБКЩЊY:9EPILHIMIEI?)2c|бяУЖКИБЋЅЂЅЎАБЌАЌЎЏЕБАЌЉЅЮкгаеЦЯУЎЛЉteBG;>>?9:7>HLQVWMLNNPG,FcЮрЮЕžЌЎЋЃ›žЅЏББЈЊЂЅЂЅЅІЊЏЎЮЫФЩшмКАБ–gFE8%93197;<B\C:542403:@@чCGHLJJLoZM‰ВЖЂЈЌЋЉЂЁЄЎАЎЋЋ€иЌЊЇЃЂЁЁЄЋЏЎжСРИЏЛБ›eJ0*:B<79><:9BCBCFEIIFB8CQjœЖЇЈЈЌЉЈЉЅЄЅЊЋАВВААВА›˜ЁЅББВСКЗЏЉТUG]mYQ\E>;@CC@@?@JHCCEE@)S…ИИЕЊЎЏЏЊАЎЊЇŸu‹ЗККЕДББЌЅЅЄЈЎЖДВЛКЛЫКj7ALHIJEA?;?EIGA@FNH@A2@E`ŒУРЌЅŸŸŸЌААЉЌАЫУбНСИЅЇЉЏБДЌЉЇЋЖТРНЩнБM47;?EHHСEFCGJC8;HIGGHSTmБтуЩА˜œ™›œžЇЊЊЋЏЏАБЎАŸŒœ™‹ЋББЋЊЎАШеРБДF9@EIPTSS€SOHGIJFCEJEF?&7zЫеРКЈЇЊЅЄЂЁЃЂЃЉЋЋЎЈЇЄЂžЃЅЌБЎЏБДЏщлО”N4:?B@HJNPOUMJLMOMFMIC98<]ЁДМАЎЊЏЕБЋЋЌЌЊЈЂЅЊЎВБЌ‘ž•t”ŸЊАМЕИЕўнœ^59;>?8GFHMHEGNILSMIOLE5Z}ЗЮТЎЊЌБЛНИ‹ЁЅЏЕДАЉЇЏДИДЗЌ’••Ž~Ђ–ЋЏжУn208AFB:CEJG8IŠ}P:814#UCE<1488@A;858<:V…ЏЈЂЇЄŸЂЄЄЉАДБЋЇЧЖВЋЅЃž–”–˜–”žЁЇŽŽ’И•–ЇCIGB@>5:e{F7;>A<<>5O‰Ў”ЂЃžŸЁŸЉАВЉЁ}ЈНЏЊЊЄ˜—ž˜’Œ–h’žМ$:IJ@;94;CGAC@BEB@@GG8FUctž‘–˜ŸЁЇЊЏДЏЅ™˜ЇЭЮБЇЄЂ–™˜˜™–•–•ŸЋ”›‘™CCMOE<::;IMCEHQkT;FI8Ftœ…‹Œ’ސ‹ЅЈЅžž—˜ЃНЂ^dŽ•‰eŽu‹‡žЂŸœ˜ЃЊИЏB?FJGF><;AMIMHMW`+@8?Ѓv„œ…™Žwg—УБЉЁ™˜™˜›žž{ЂЄŒˆ…‚„Œ‘œЅЄœžžЅЊЏБGJOWUTMAHFGGIA@@I2O[|œЏ|3?m”‘œИЛЊМАЃ—œЃЂ››ЊЈЇЖ”ВЋŒnŠ—œžЂœ™˜—˜ЉЏHHFEHPC>AAGJPHIJ>+HЋ•‘–i…›™‡[}ЃЕВОЂЈЈЅžЂœiˆŒ‚Š‡‰”•˜›˜ЄŠ™ЋУАF@CHC>??HFLGEJLI9GqЇЛwVW`z’Ÿ’ŽrŸТЖФŸЂЂЈЇЃЄЇ•’ЏЇcqo‰‹”•—Є™ЁЇРШКЕ>9C<B@>24>*BV›ЧБŸЄ…‹••’–”›ЎИЎЌЈЉЇЁ—–‘Ž‹‘ЈЉЅЗК‘{ƒ‚—ЇжгЛИБАЖНФC:0-1-85,+M`Œ™›˜›˜‰‰Œ’”–˜˜ЁžЈЇЈЈЇЂœž˜”˜‡…rv’ЗrƒЄЎЁЈЖЭКЕЖЕДМЦО<77472<@,.zЄžŸ•rŠƒ‹‹ˆ•˜›ŸЂЄŸЁ˜••›•–˜–‹‹€Ы~’˜‚ˆˆŸ–™ŒžКЖЖБЏЏлуС9;578>A?4]œЕЇЇЛЗp‰ЋЇ——˜—™žЈЋЋЄЁЁŸЁžœ™œœ’‡‘•Ž‹ŽŠ‚™˜œ˜ВИЗЗЏЋŸЋЪм:$5188"0ЉхИЋЂЊ›˜ЎЋžœ›ŸŸЄЅЃЄЁ›Ёœ™•‘–——•‘–”˜’•”–—–˜’ЅЗКздОБЊЕОС~T0-4?)%jлШБСН•qwo[kЂœ˜–—Є–›ŸЅЉЄŸ–””’•—‘Ž—ŽŒ˜ЁЁЉЅЮйШЦЗДЕСТРgQ&59E{ШСМŸ›…‡„’™А—‘‹Œ”•™ЁЃ™™œ™ž—Žˆ‡‹ƒ…‰‹›ŽœЁ‘СмФЛИАБДЉ‚J8(;B2jБОМФБ‹zox‚‚~‰Ž’ˆ‰Ž˜˜›œ‘••ЁЁЉ•‹t[`‰–Œ‹…gb‡‹‡ЇИУЦТОЕАЎАД\>7938UœаЩЊА—njq‰‡Ѓ–ŽˆŠŽŒ‹…–ŸЅЇЁŸ›А~ŒУйеА™’——Ž”ЃЕЖЕЗМКОФССМИЛ)+>C”УЛАЅЁ••ЉЈЧШ‘{”Œ‘–”–˜žЃž•{„…‰r„›”kY”P\v‰‰ЉЏДЕЖЖ€ЧДЖЗСТЧЄGN8>TЄЦОЏЊЃ™‘rNZžЌŒŠŠ‡‡Š–•œžЄЌНЎЄЊ–Œ‡dŠrZzˆŒœЅŸЈŸЊЊЏЎЖДЖКИЖЛОЕEG1#G‹ДДЋЉЇŸ™—Šƒn~˜„„‚ŽŒ–›ЂЊЄ–ސƒ…v—ŠœИœ›ЁŸЉЇЌБЏВБЛСНЗВЋЏЉEGJ2rМЧДЉЈЂЄЈЊ•—Œ‡Ž‰„vz„Ž‘ŒД‰–›ŸŸ‘ƒage‹˜ЌЄ~|•ЄŸˆКЖДЈЉЎДЕВЎАЎЂ41)7ЅгФЋЃЁЄ™•Ž„r|ƒ‚‹…„}jp?>PY`‰™БЃž„Z`k—v—’‰ЕЂЅˆОЕЉЄЅЄЊЌЈЈЊЇЁ%<3~ЩУЄŸœ›˜‘”™„~„„ƒ„ƒŠЕЇДЯЋjmЉž›žžŒe‹ueŒ˜žЂЊЈЄЁЭВЉЅЇЉЉЏЋЉЄЃž9ZЄЏЗЏЉЃЂЈˆ‰ƒŽТА—™›ju|™—žЗЏ™Œ’~–’–›Єˆ‚…œ…˜ЦЈЃЂЂЉЌАЎЎБДЖЗЎЎЊŸ’:—ДЕЌЄœ—”ЎdrWŠРЋˆrxjŠЌ‡Q[™Аœ—Џ›qQw|t•k4™ЃЃЅЊЏВЏВЕВЖЕБДЏЈ–)dЛИЖЄ™‘zjz—‹zm]LTH:N•vx’‘‰ЂžŽu—vkŠˆ‹•Д”˜ЅЄЃЉЎЖЗДДЛЗИИЖТЎƒ˜FЉЦЕ؜‘’™СФœ…‚‰~ŒntpŽ–‰ЊДЏ›™Є}‹Š]xg—„ЄОеК•ЂЅ‰ЏИЗДДЖЛОИНТЎ‘ЃалТА•ŸЌ‚p}tYewg…hz~[a”Ї‡‰‡gŒ‹igozmvei{m‡ЃБЖБСзЛААЗЖМžА™—ЕЦеВЊЈЇŸ}qQTLOwЅЉ…}„ttƒ™~–•ЄЎЕЌЌА}[xt|p|ЏЃ‡ƒ›•ЏНТМЇЧцуЄžЃ—œ™€„r`YV`|ШЦБЁ˜‡УбЊrЊЕЃw|ЄZBOU$@?O[]Wb\WU[SSQUW[ZV?9ZТг—‹ƒ…—”vo‚pnžСеаЗЇЄ–rДыЭoM‰•ЏУ˜Œž~TLIBF8?Pzu^`YQYZ^Z^U\YUQ5FZ•РКžw{{|qP\”ЊИаЖРЌЌМЌ‚˜ТЈn[kЁЅ”ŠnVInЃЋЇ›‹woghkopoЪБЌЌЎЋЏОаЪЌЈБВАЈЉЯЋ—qbdU7VHFNPU\]begkvnhZ^T\TPNGAM]e`NUWgnnh]UeWWO9AUr…ЇМ›tcbPjgkowuxЩЖЅЇЉЎЁЅЋБЇ›˜›ЃВТЉZ9SGA>GGFIMWYYQY^cde^WYVWBYi{rcm|‚zkvo}SZZdqzКФРЖЅ™˜ЄЋЏЅ›’›Ё–ЯУˆ@4MJAJB?;FMT`Y\`ee\[ZQTbiIP~}xrru{x„„|}WOguМЯжЫаЕ„™˜›œ’„‹™ЅЎ‰`A;>H@@GGJNUojb\aiaUSTF8O]UzŽˆzzvwvoq{—…o—‘”ВЖДРСЕ•‡‡Ž™—‹ŠЄm.585F<@FLUrirgeca^\SWSQ58>Ap˜‘|poku„|~utt‚ˆ•‡ˆЛЃЗЪДŸŒ™ŸЎЅžžV,@B9AENV[^Zcgemec]UOFMCH^a}|ž‘„{xtj{vvpnp‹„pWЏ›—|›МЌ™ŒŠžu^:-73:4<3J[hbejecbZW`TOUNTc‚ˆuƒ‹‘‡}td`emtidpxxq[^ŽƒŒ‹—ЄЎЃ–…”…oZA8?C8A7,@S\ckrhdd^a^\UTBG\z‰z|{|zvonjkr{|u~„‰•W‰˜ЎЉ‘ЎМИ–ƒ‰ЁŽN?B:?BIA3*FwemjghWWY]VNWI7oЅ•„vˆ‚|rtwv~|v}w~„‡Œ‚~ЅННЧЧ€PмаЇЃƒ\90?WFB@.:BIOIYGLTWZ^Z[WPWTPQ\atЈРК›}bdgcegiprvv|…~x[VY\Imqmitwz›Ѓ‹…™ŽF*LFHTQ\\cbgZY[\W\WUNO29tЊЎŒztprnihYjihpuqrvque\cnvuor}‚МВj@88>JTEFI[ac`^Yab^TSLL<>9Lx‡‡tx}…„wn„„xjcbp~{{p\i^CVbkr‡…‚ўНmS:1;F::;Nmebvjqppz‚„tg]x’›‚tgqadebghc\[g|d^^Yc5MZUJJHFU\cWW[e‰hNUTAEZp`bN\\Y^bLu{vidaiair<:erFWgTcbM>ZeЁqje`^\bgrStuYQMLYO[donkkqnw}…QVWa^^VWU\\^[UUPWBN^^quOAZSew’{ˆ‚hbitucaevkw|\|z\8VV`jjѕdg`anJMUU\\€№SOQ[`[^UVI9Lnq\[jEZa\L-L|Š~‡iaewwjni`[8VcNc[S[Wce]^[Z`t‘ˆSLJSS`PSV[YVY[^]COkˆ‹G,,8PWmgbBzŒŠ’eaorxouoj`Zwu:E;NUV`cWcnm‹ˆ‚G@HMOP`edcV\S]YAJЇ•h\ZFS^Waa]Qˆvtpz‚rchdZ\NU0 Ea[VUZmkmgte…Š„MHNIP[WaY\]]`mhmbozpZBE^pqWhbjouponhkt}vtoaboŠhqPPZa\Z``V\T…~‡MIIPVYYWY]`bajm[e„rVUYZb]vxwtworggpcewpruWWQojE>^Š~vaYaa\Zm|‡vUCHMMV\WMQHYbaeUWmkcYZW[jp{|YLcnwqrbbgijt{h]pT(Z‚xvu\zƒ‡‹{zq5HLa`^`ZVGC?;I`ouoa[TTYipgPNYVepmn`cbc]\]ke‡he]iqBVb„jUm‚ˆŠ{…z|IO]od^T^SSLG\’‡odS.HWiZ`VO`cba`eedVZkb]^WQagkS,$ieCOz{„™—z}ŠeUYaVWSNLOCGY’Ÿ}hTPOS[Z?QJOJ^jeggmUUT[^VZ`gqqhL:JAQkV…Ѓ—…q~ƒ›UUTWW`WPAOkvatЄ‘„~‡{Š”OHJFJJBMC<~•opeaCJMNO\[hjdhbiwtmb\]YW\\[VWWVHM`MQUjtbSe‡~xnЖΘNMBEHLJMMPOPQWYGMa\ZohTT]`ikkOV?2)NPVLN53FZHrŠ‘›—Šˆu‹‰mVCG>8Ev›|^33ENPocYUMSV^Gdq}vmecvZF\‰œ™r\hd`]U^o}n…„‰””Є••ƒ?1@-LFt•‹~nm\eokŽ˜Y?I[]a\VYknnpkGJFVWAYhU+!gN-AGPw‹ŠŠˆw}…‘”tS^B?Iz’Š{re^^? #nvZOOYPFLV`^]a{‰zpncaY0OE.IMOgoeqho‚‹‹€‡‰‡’•‹…MJ3!?k‰‰tpneamPI8IgSQTPFQQUCaY^qii^IOHNJ?dPi‡p^[punx„‡w‚‰Žˆ~{txHGN+ZŽ•ƒzrnijxYWTMYVHLJOW``]zZP\odbcWM(1EkxkM9VtkYƒˆpv~„}xzzv|94!3ŠЂЁzoi]b^ZI:9IHTTVN75 1.^p‚pcnN#0:i`>eQUYibNˆˆ|puow‚xo{xc.@*gЁ”{id`^]VbhMEB@FBMV}eEЃx1;^jkm``kY0\G-V]Zdrjmgž”zjmq{zqwod$3S‚}Ž{roduaJVIV~Sbc3FGhbbƒt]P`@V^bkrv^GIiITŒdirxj~|uwˆŠ„…pY8w|ˆzmb[Wpb-G#PrP:@8T|M"7r{z[ai}mHICCQFc< MZjktu‡„xƒŒ{zˆˆq^S„‡Šwb`WaLAFaQFA.-$cHE`TJkteAh]H:W\Yiabdr`jtgx…„zƒz‚‚|ˆŽxYj5…‚…dacY]‡•`WFLUZGMA<7QZSp„wkqxPP\*8\B0hPn„›vY`c\|‡„‚‚ˆ˜‡‡u?W~ЉА–w`iuI3833@$@E0C9&(W}VSO,J5YC+#(9,8FB,#A4Qgu~‚ŠЉ‹z{‚‹’ketYIhŠŒЌ~rrnpUI#)9r{Z;HB9GoFT^xk~rktEEEP:@@<~zWIWbaw‹—|œЭЮ~hmZUYdџ€9G^ortkaddciqaVLJMNN^ghZ[UUaoq`SPnc? 03$%#2?5-:9^iginmh\cdUQakmj\a[N^dcCCEG)VN[a^UT[eh`d`]VA ..,+27-S`ˆŽ{{mrvkq[^\a[ZQ^bdoupjMQ\>Vthbjdd[cc[\^`PJL# -19315A51(37^wД—rhV^mnq]^hutqnpmkjckriakpjhdicZJTTUQ]chq> "-$(29*@Zc’~ONZYJ>dheehe[akdZ[dvpgapwxpibhbMOZbOSMHmb ($!!((EGGB!BJZqt>U[JGTPqpmtjb[Wa[Yqwoqonwxuqwz]^^dYP^j~gP,.8*$,:WMPIAAp‡‡‰‰‡ƒg[SIiqtohhnenomqpd{|}{onh]OZiN-CPVSC&2  O@8#4UNMH5Gkktptqo[PmZQu{dVSheUqzibjz{wqqgg`V\^gq\V}h+) .((0>:4NechknwcEP?3nmeYbc[\jehcW[w~}w}zun]WTPG.eo; 8+*84((>C<7>.!w‹hurmm™rzcMVovoVY`inoimu}z||z}|utqjSOWk^`e}}9.9((43+A?843[~…qWaUY[}V!EOqo`UPhvpZbkinzuor{zpG%JH;@Yh‹t €*4"("$:CFBB,-&`{ebc4CCF4HMae\^akjg]anvwvptrgbaB:7J03NYr„^$2+%#CE@;>%%IuŒvmqh`^TciMCcckgqmdZSQP`jjntquzƒ~`08QUGB[[L !*%:9AGHHa@7twV\brmUTJdaOHxn^\ijaid^noedihaitwwa[UQC;BIN3%2;G<.hW~QYcij\Y\N[a\U][icQGZbgegh\Y^cje`[H@PJ-:ALaoM +%""! 2BF8,N‚|jF*P]]OVZg`MNjgmTJ]i^bqodivv€cnjg[^SA%3L?Oj> "-%%-EC3MaME5+]w…jIN[T[YVNOY^Ucmmpp^eidb[ibgdmibUS97C;>HW^ *-3!%7FOIIHH32SSBP[`Y\^Z;MGCoj}zzvtgme^biaorr–„qJFT\ci;G^ *)$02%E@9BGC.(%OUeb]‹t8ba^I)ZB&a`\g`Q[gdihZ]]t|…hU`ngZMG9-E(WHC?B80:3}ajbBP?OSb]EjhigYV]jmoYdcjuv{r\nkYOTC9J%8)*9?HLC0:gpzn\M‚]HLE^1F"^]aYWcdpkoneagmkmm;G;-1QF:W3#$.7B<7%,P}ƒjSYaehSZ^`%qzrjauiYeF(NZO2:LVprYVcko`YWYMY]NMB>HPod:#)"$377EE3%?GB(O˜„{qqГvj\LN2FOJ@HNdeZ\^[SaZiojb\TaF5TjY)^U""!&+$(79+-4--BSРК’mZBObgIPPAWP?:@FLWW€•oxo\Hw}zrdeh}ˆ]>F\A?" +92&2*:,H@x˜z`HHr‡ePU<@O``VNPa`Zjr{thSc—ohqUQYetn[aƒpO +*%*887<8:0+UccuO8oi]JQW>dWQZg|aunv|i`ZGWxxmWnQ;I\QOOZd[nB*-,A4.07733&>OQq‚gcUJWmq|nQ"`TŽzŽzA#&@hwvhUWPJAM*OQdBNO%40&0:2@@:3!0-08GC<88")J~‹odWecghoQ>:‚{ŒЎŒJEzni`TZ^\imQNUZZ]*$Ad^dYG#$%7?EG@:]PB []qiUSLh•Ÿ‡o`[^OI>7#4!GZ@--Scd?%&;LCE?H37r{ru{v <<,ITLc2NeQg^[ShtzvjWmh][\TM9;8$#7?:5I"$:GF<7-jQeWZkz‰ƒ„wZSGI&ZOHP7T39%4BB@EF<3*#,)Fjx]ZgjkU$+TV&(G-I-d[Mjp{ƒ~hPL?1SH7MWG\74$41(7&(@€§eZm‚|‡}r|]++VCEG@24H70>949<553 OObHJB&gN89gj* O:E?FF4Ckqtg^WGTwL>PHGFC>TUrn$!"&5:?FIE18*,1Y‹‡ƒE1HSQG9ebtzZVP>WNgbjem\;JWJESPH;0`qhcG#-)+88?GJIFE<)Yktthh^i{YSZh4C`h;< 3kcv}nj``^G95G, ES[}U($1411."<,EHHC>%Hwœƒ‚\T[o|^detWJ%LO€0*pir…ƒYihqc@:NFPT8Qk„I"$)*-2>@4.3@-.7d}‚Z$WV^m7g{gNJ 0"G)‚ƒkgnIGQO97Ow@,)A0TLj$ +84750"-GCF]НЅwVSIIVUbALH[;2@:9 ]‚ptkeWcuC; 71:MbB($% &&!:*4NШжŒQ9;EAPQOEQ^\+*1>v}gY[akˆg`bG`Z5TUJQCE""(3+05&%5##qqk@CGAA#QmnCV2MJJC%r›ˆB27WYHLL;PdgSWQ[bS :@73$&!( ?Ѕža33-;SM\ƒpN^;O;[UTQS[V1M$(++,.*) ?x~{‡hU,O[^PUMCNWM,U-+9HBiYGggLQFETJ(* G0)&N[]NVTYWN>;CMMI;#M„{#4>%%(!3A@54!?`}PbcLTW\JT\*QI IP<]095BaFB`OVegYL;Q\TF*7HW2)>7( &2-)1 aƒw]ZVV\YabYJWk#n2MNTFIP@g`g[WJZUN?\cƒoQC:}G7JGp”SaE %[$: ]cZEBNH8:FU{YG+".MQ3;CdEOP|‰^IehbƒuYV[eƒ}9)# +!1)J‹ƒYCF>1YM•ŒHHS#^~nI;EQLjEBt’t>CGibCBCJz[#  $ *,!0q…Q!CJYNaqV€H4LhgvJJMY7c; ,()!9@TqM1MC.5TULHgOhTTZieF;)YE\|?t‘ˆwvdeQLZ`kpTV]>h[F8I`c^”‹WQVCLU"T}xiN #  ,3-"A™™z`1IxB?>0aSn B*bGN]Tg`b„jNa2@@30MohrmP%LJ!0,)M`ogb;epUa[P%>]NS-TOe`]e\E47EB8Lr\bYM+!-2() ,0HIae$3^jk`qk VC|cVxЋWBqxW`JњžЁЕОЕДД€~ЕВБЋЌЄŸž˜—œЏЋЏДЎЌЌБКЖЎЌЏИЅ~M14$$(17<82;BJSQNiœВЌЏЏЎЇЅЂžœЃЋЌЎЋЌЎЎВБЏЉ—ދޙx›ЈЇЏАЎЈЌБДВЌЈЈm@$#+2494418CFEMI2S‘БпЫВЈžžЅЏЗЊЊЌЎВЎДЖИВЏААБЏЇЕЦУАЌЋААЌЌЉЉЃЄЃЃАЋg;%"-05<<937@@BEG2e—ЇЦИ‡Œžœ”ЉЎЎЏЌЎЋАДЖАЊВЕЗБВЗОНЗББДЌЈЇЋЇЅžŸЇК˜7-#8;8>;575@MLNN9?q•ЁЖЎž›œ˜•–ЕЗЕВДЎЎЏЏЌВЖМННТСООЕБВЖАЊЈЌЇЄЅЁДО•kL2.$>B<95FcZZYUcЅЮгЮШЪММЇЁ˜’ЛНЗДБВВєЕЛМЗЗИФШЦТЛВВ€ŸЎЌЊЊ……”ЄNB*(+)aH>?@[PUVFrЇЖЕЖЖЗЗЁ‘Лž‘НЗЏЃЈЊЎЕЖЛСКЎЊЖСЦРНЗЗВЋЇЊЎРЖ—hЄЫ•GH?%(.$%4>79CFG1&vРЋЋЈЌДВЉ‡Žƒ—ЛДЋЉЊЊЇЉЏЗИИБАЗФФУНКИВЋЂЄЉœxPpЖРm,LB734>>A;@BEBCBBFЌгАА€ђВАБАШЌ™™НМЕЎЅЅЉЌЌБИРЛКМКЗРУСОРБЃЉЋЗЊЇЌЦЖNABA;519B?HHCCBA3IЃаЩВЂЋЃŸ›ЧЂt—™МЕЌЁЁЌИЗВАЗНСОЕЎЗМЧаС”~—™˜–™ДдЊ1-4O;7,7>BMLGJP@.QЃЩЧБЉЅŸ•ˆŠrŽ’БЌЏЋЏАВЎЊЌБЗОНКЕЗКВЈ•…Ž’™—•ЂРЩŠ(.(059<>GIMHPQ:@|ЛШДЖОАЄЁЊВ˜‘ЃЋЊВЕЗАЊЅЄАВДЖЖЕЕИКЩЧЃ|–›™™ЈЇ’J)7702379SELOLUoOVЋБœЌЏЌЇŸЄЂЅЁŒББЌЌЏБДЏЌЋЎЏЌЈЊЌЕЛМШЩЇœ—•–•‘—p3F,45-)+(,8LHHB}mŸО‘ЁЃЈЈЃ—‘™ЁЅЂЃЋЉЇЅЅЉЏВАДЏЌЌЋЏБДВЉЂ—›•—Ž‘˜ЅЅh&27>84211CNCAB`ЗМЈŒ™›—’˜Ÿ›–АБЌЌЉЇЊЏЎЌАЌАЖЛИЖАЏЋЌ‘–’Ž–˜ЧЃ[:)5:?;:;JJCQgTNCAuНЪБ‘›œœ–‘–žЅžœАЗФЕДБДЌЎЌЈЇЊВЕЗЕЖЊ™…Š‘ЅЊa$(03;?;-9>ENNP€іVAOŽЅŠžЁЁŸЃЂ››‘™œЕВНЦФРОЕБЌЋЌЏЎАДИСрбК—ЁЃЁЌ”—ЃM)5<>@?723MCEFNILC?|™ЌЈЎЯЖxЃЌЋ–Ё›БЏДЌЋЎЌЇЌЌЉЄЃЏКРТРИЅЁЈЋЂ˜–‰741..2(.7cLBCAF;3:8;VgжыЯЉŠЇЉЌ––›’‘‘’–›ЁЃЈЎЕЖЏЂˆОЫИВАЎЎТЦЄƒp–Ј’—q9&089>837:878@97MT•ЭРЃ‚ЗШЇЁ–›˜˜™ž˜ЁЇЅЌАЕЕБЏ”ЉндЗЕТœЃЇЛРВЄЅМЁœi.%347128;C?8@>9B97ЂЉЕ›ЎЉЄЄ”‘Ѓ’–ŸКЧЎВИКСЕЋЅŒЁЧЛВŸЛЃ››œ™ЂŸœŸВk#9;72-8>?;9?<@>?CC€№F9?pТЪЖЊЌЋЋЇЉЗž‘ООдюЮ”‰ЗВЊЋЇŸЃЌЏЈЊЈЂŸ›Њ~ˆЋЄЌЃ’Y+:25-0.ABILBACEHFLЅШЌЌЉЄЄБТБЌŒ˜Ѕ‹НнЇˆЃДБЊЄЄ–œЊЈŽŸŸЄЃЅЋ‰’‡ЎЌБЋM&0kkA+&,BQQMPNJ5HЦЧЌДЋˆ{p™ŒSJ…e[ŸЏh;UБЈЃ—ДехЩЕЄЇЁЂ„Ž{p™Ј…7)C?ZvjA4?GCHIQM@FЛТЗКЩКa{Œ–’ŠЊ‡œБЁg:IЊžœ–ЏЗТНБЋВЌЊ˜—˜•–‘ŠŽœ}1&G-?S:*?GNG?>FOFVЏЛЊЎШЇIŒ˜‘—ЏММЁЋ›БЂЌЂЁАРЯУЫРЄЃž’rpЄ–™–ЁŸn723@CGIFFEBAHBBuЗФЅЁБДАЈˆ—’Њ›w…–ŒHoœЎЇЏМТУФЏ˜Š‘Žuu—•’–œЈ•k8,3<:;;@>CECAHMONF‰ЛНž™—ЂЂŽ{nM[|\GUdoЊžДЪлЦЩУЛСЎ}uЃˆŠ‘••ˆzA;44BCA?:28)co–ЭРŠ‘ŽЁ”Ÿ‘„ЇЉ{tЅŽ‹v‘ž•n‘ЕРДВЇž’ЄС•™™›’’”–ŽžБ™B(5178:?HNSM:>F>50.3AABESVWW9cКкЮЫ—ЈЉЌЋЎЃЇКœ‘‚Ђ”VQ~|НКЛМСŸЌЏИЈ’•’™–ŽƒZm•БРn8@>349:>HH?BHGL;ZняЧœ‡ˆŽŠ—›NQ|ŒŸЅ™…}}……‰ЗНЎŸЅЇЌаЎЅЏЁБЇ‰œ‹˜˜E05:9?B>:893:VC*BЈИž‰…‰ŠpЕВ•ЅƒhvESŒ‘‰ŠtЖкТ‡~ЄŸž‘œЂЁЂЄ—–•Њ–?+AFEAC71141-5?4+ZмйЊŒ‚”ž’ЈШИ•Њ””m?ЁцИУЊЉДЉИОБЪВ”ЂЈЃ‹›‹ƒ‹‰–ВнКЁНБЄЅ—”‰bžВ–•Ž’›œЂ@434957:?C8455;59dЕИЗЕ•œ™ЂЇЈАЏœЂ˜iŒˆŒŒˆЯДŽЦЌЅЊ˜›Ž„ƒŒЅ››—~‘|V(%19><;;8<@;B?>%)ZВЧИЪЌ—ЇЃЇЇЃЂƒ’ž™‰ЁŒƒ‰Њ’‚ЂЂЃЄ–•””ЁЁЅЃЖЫЄP$415<@FBB@@>B>->gЗНЕВЏТЌЎЏЈЂЂЖЖВУ[e|…ŸŠtЉ‡Œ•Ÿ™‚‹’‡›ЌŸ—›œИ”-,78??77:?EJMHCB.HaЉДЉЈЄЉЇЄЂŸ™Ž@3ƒno{Ž‚wS”Ђ›žŸЈЇЃ›‚ˆ‘‘…‚t–ЪЃ<)F@<@:45@GEHB@!&–жНЈЇœЁЂЁЉЅŸЈВ`bА‹Œ—••–”‘ЎЎЋЈžЇЁЇœ––™ŸБЊЖСОuM&;>:>83:@HCA>@7)jУцСŒŽŽ—™ЁЇЂ’{Їzrwž‹‡Š…”•‰ЃЂЅЋЊЈЉЊМ™‹ŠŠ™’АЄžˆO-9GBB€f>:>BH@4:+>—ЅЧЇo|‘‘•ЈЏŸ’–ŸUV•ˆƒ…–ŸЄЁŸЁЂЇœ™‚‘Ž”…‰ЂžЂЉwn\-+17;>E?:954,@ЊЄЈЌ–‘—ЕАЖаРЇœ9>B?FQhУЮЅ~ˆ‹‰’‚Ђ™аНŒ›Ђ‡ЈТД—‰k™ž”ЏŽbЛкВ””m—ИЂ„•‹ЂЗ„A"%).4-.*,7?@?@C[МСœmŠƒ”›ЌИ˜\O-# NkWhАЁТАЮгЏq[uЈВ„…’’™F*980.%),+*3;>;8)O[О™‰‘ˆŒ—™œ™ŽЏЇ›’Ё|БИ›‚r™ЁУ‚ВзЭЧТБЄ™ЄiTxЇРгИ;O.&&$(#,97>EA?.EСсЗЅЃ|Š•›—˜——ЇЈОС›ЂЈ›—}œЋЃžЪС›—Є•ЄiaœЧЛЎp&.(*+1533,+02JHH3YечМЎ}cŒЛ•–ŸЌobjŸРZ<ˆvЂЁ——ЂžВЈЩА–žˆ–Œt‹АЈВЈz<0a^*,49922:8E9F;SŒДЗЌЋШЃžЊЋ›ˆ„dGud‘ŸŽQzœœЅБЄЈ‰wpŽЉ‹ŒЛЇЌ›v>*>A4;39@@-.3(2IJg}ЄЕxv‡ЃАОЌЕЊhVk–‘ЛДЋжŸŠЛУЊЌшivƒ…~~{‚}z{tjihb]bwwvvrr€2z‡‚ttr…{TA%-,.*?NGM;CAHJIITt‡{z{rkrjdpxzxxuwuqv|za[\VNAgazutpe|ƒ{vnrunV918B?>@9JNQYG<1ez–›‹ˆ‚„„ƒnvvwjkdmr}ˆŠ~bhrZhƒqrƒ}{rvrutnbebH$1GEJBINSUUPM.Ek‰ЮВ…xgex|ƒmpu~‰„‚ƒ{rx}rv–ˆx|wrpjmmhhqv{ƒT2-)8<Urod^PZƒ•œЃ˜œ‹wogY~‡‰w‚~u~‹ˆ~Œ–’Š‚~‚vtqwtHIceqLBA)(-&7kOSMProedBY{ƒ„‹…m\}j[Š’|ojxt‚”‹Šzw}”’Œƒƒ}xqqm|‚‚k3jwGL4*75*+GCLVV^T8$gwvxz„„w`bMU‰„nqu{nkw„~~vtˆ•ŒŒŽŒˆ~n`ovbF@ŠP*F<:03GIJNJTWZVUIEЃ{„‚…„ŒrZiƒŠƒvtqpxƒ|‚€A‹––’‹„xinuqouŽL":GFB+EMLWQTbSPJ-4p”˜|oxhd`Œh@SiŽƒvhgxŽŠuv~‡’…~ƒ‡•›‡]Fcg\Ic}žŒ)!0VF@JCISZab[[M2;uŒw}{hVQTBM\^zutwuxxr……}mZOV[^V]e‰p(8B@IGOQ^^\][:9W‹™ˆzŒ}xio{x`Vjvx|‡‡wuihozz}~„ˆŠ™‘rHZa[]bqnc>7571@@I]U`ab^{QP…ŠarmzrmcivodY‰ow{z{}uw„uwu‚~~„–wgmdQW[\]Q%B)8<.24B98J][cI}m•Ёdktke`aenrjevzxoiexzvvrmwxx€Яwnd]hg`W\dq~`45GPTFBA]Z`^Z\VC>^btvtЁ‹Uprw`[ge`|}iquupwu|tqcn…‘Ÿ’ƒkkm^gaUa&012@9BAN|dcUVOFNE‘ЏŒ~‡Q#aTa[eobxz||pqv}~‚xtqx„Œ‹oƒxpjnYLOdB)4<:?ANHIQSYd`VMJ\ƒŒ^CU9@\a]`g\V„uxv}~‡}|r|}x…™œk‚}ukcY>Cbc>CB;?ALQYSVQSYd^>Lu‰•ŽrY•jUaduM`B3dvrmzwux~‚~rq|{{„~VES[ULk^H2UkQBAA€LIQ]TTYZ\?E^Ž›|eg|~vikwn8@[rhquw‰‚}r}|vux‡‡gamjcW\]UN+0EIP?BHGG?[e[UUQE?q–‰|jdwio`WOYQ8Lrt|rik{Œ‰|wpotr‹rkpqzjgucjJQTJ8FCNLPU\ZW`O>FQ‹—ˆŒwz‚|exOFbg^NQ]i„‚pov}opjkenhgYZH[bƒr!5TW??MCB4GMP[^OQO[Y52cЅЋ”Ё•…rYSQQ]`[]jvzrzqcgrw~oinnQ1Pmj?Agi&?GHBFJEUPYIVYWG[dЯЩЊtoWmq}`dgVb^VQU][mr}…Žn[Ž‡ƒzx|‹™iQ>ao]dO5%,<>FBHGMVPMWPO\QБuV]•tkaU[^eoeegutt~Š„…v^uЎŸ~Šcdi‡{jn‘}^<"031?;FQTSPPTUAC.epwŠ[M|~mid^[ob`k}”wŠˆ‰•|}mYg‰~h}dZejki]kmt~Y8F?9AGOWNVO[ST?Sag‚˜tjc`p}|މe.1AtkЈ”Ј—W:HU}ŠŠ}bb[UaaSdhjWUdEFJCABHE?QZZVYa?^t„„||ui^covub7jwzkpk•’—r\gee‚…xrc`T]OSNHoj]PP5%!03>HAIOSVQTPTFE^‘˜}{pzvzt„hOEАœО›UUއwrjpmw{|icknhvEQQtpupd>$4G88@LGY[]a[[WWOVŸkvhmp|…uvY]`QŽЉpUvƒ}vxj^evtQ^c`egqYOM|o‚vW2ziH4;?ZedcZ`aAC›wƒwPO2JdW U#!hn#‚‚eZ^{ЅИžƒpmvi[SJJL8C^jJ)IIe„ŸNNST[[€њ^hFJˆ‰Œ…‹‰7GUO]a[rI^w`0zoiew‰ŠŽzwuxmib]ZNOI>VU03N4!I]E?QW`[SMSgLJƒto‘pdgY[]~‚~eqE[vhutiz‚Ÿ”œŠqkiT8?Gtgdg]mcP!4:.?MVZVZVYWNLFC[Žre~w…xNM[xoENSI5`Zqp`xƒ’–vcVV[A?c[Qab`oYT@0W{„„…qgYo‡[c]b\SZWebvC+>@BNMNU``aWWNJ9UuЁ–•Z@ceeZZx„Œk^14GgUh[xx‚wthShd`]ih^TTh„t}Y92VTIIGM[\hdY\S@,?i‹Ž}zz…kgarQZo{PQ1$S:|w‹•ˆwnnZ1MMLVYE7^hn’b@HPEHCLEPSWUgdaZ>^ЎŸien„moqˆdZF^](JM‰ˆ’•g~v|ZS[WbeI!2d‚‘b:@CJPNJJIOWSTSY:EuЂ‘—oJihk}Gu‡u]]()*,CFJEHSFCF@AAVM%?‚ŒnNWTQP3c‡YtG$7 VVUQEˆД›PMbmocbb^iz{c\`brq:#O[SJIEG?@H7;>4,SЖБpQPPFhSnƒ\pS\@Tp][zчТ…kop\`b`][\eaHMdpvrCIA;Ёж’•ujt{ˆŽz•‹]rkjPaIFOQ`}НŽv‹o}oe]YA,gxn`V^bZuE2>FJI5GJJN5?;;AFEG2)QŽ™x]ZYkquheM\geUhA@EYT[u^Htvki^]iW^[ZcnrŠŸ‚J&4?FM>3@IYJUSJ8^„’amxmdodcbtMcU2 ^aNiOLS[p[utqb|vvaQ\ihpI3JneM2@MJH?G%;BITLJB#(ЉŽzujnucjqtcrz&3‡Nb]bTYcSvpteemcunjVQgp‰…’˜rO(JQG@?29GHII€žF3&[–ЋŠYTaU\cmk]Em9EI^UTFMQ]Mhbuw{qiv…kTYJF]nmriL2>JOIIH?CLMF85%;x‡ЂxABaUcovo^Qb%#\wjcFOWYcutprmgkOBVYCNVWne`‚^pU-9,CkL@988Q,,nznb^\V[YVe˜x\C%8CgbPHIuOabŠ˜o]|ux‘„gbxƒž‰W<.410:&3TGA?GOJ^ŸoA]PPQOh\˜UbaFn”‚]N1`^UwQ2]ЊƒPZ3]‡uQZTj‹oE-&--498548FAHM??E‹•n4FMYeir^+$ (F(%G\}p‹STvЃ™u0-FutLUbjer@1@4@54%)4>@F@G9HTgŠ\T]QIUecUZz`rbLu@z|^JBq\m‹QŠЃ–••tu[tA.Cu‘ЕЃ>U+*-0-3+1-5@QFG7BЉЊƒqoIQTei^Yh]iu‚‹cudUmcY>`rhqЁžmhg`hr2:dŸ‘…]-+!($5:8<+#,&:NTM;LЇЕ‚tI0^MOY`v@&bƒ%TBke]ggqztUuVdVT>\{xƒ|d7-W\)*A3C?4&+8G;H5E]{eFw•}dnvjQL(7.ej`(Cg\vnuqZMJ5TjSIMƒtzqc?&GF?731M@5*.99SQUbvƒH1"+3,-5IG7N\[^]h}urpq}ВЃŽ|ƒ„”Žuxqooxpx‚O##&!vˆd^WhL2)-Ca^)4Ug\^a]bktmSAt~r[eƒqZ„rr‚‹‚xmbdkjp}‹t;  !uzŠtF.5U,$.9jW]zegaTUNMSV?zŸwOHNWNevŽ”•”tvrvwu•Аtk> )%%$$"[Tui:"1JMQY? J‚jcczxpd`[\[U^z—|xxkkak}—›žzw~~vvŠМЄuu[325#%Q;UvIPabaG871SrhdG]x]L][S]WOoЂŒ‡znY`\oƒЎ•{~‚{{„|‡oqcVB"++:5JHO7:";@3#2MEJYWEMTYT]cct„ƒvtnjnmp~‡Œ|rnux|{x’enjBB30 AB54bi[bhnn^^‚z~}mqri[ZbqŸ”‚vqkw|{r}|{wnu` #!INT]q:#4)*>OST-(Hgh^db`YPYdadqwznqd`YVYr||ƒ~w}{xvwvhruV  VSNPP70SVML; +93Jpkhnx[Y[cn{ˆŽ˜|˜a]dioq|…~tk}{z}|}{h; LEEA{ˆ>;&Zq@\@@;dYETIZ[^a`OIPO]ntqxj`chgnkkokjonruzmb[Zapxrmde\aY]ae]A91ZGI|T((HYM[eg`gm^ZQTPO>@p`]ahthr}{hmodjknbgcaa^]hh`T]^U[`rZ?<"?kB-:ULE,ddWZdkg[W[^Y?J``[OSUo|ˆ}qtwxwtihij^TY[ehbZ\ZNO^}zY CVBQJ #2L>3[^PNIZN*SZ[^OPTZZšmrx„uzx{ot‚xhcc^VZdZ^\emdUZiqEaI-%ECTjTQP]^U^QMWbhhg^knrz{oh^cjujikdV`^`dckmdegdaa]`wEJS3!€й #5U^\ONF5SZNJeoiikq~z~ƒ…rug[bhidZaW`dnvmj[cjmhJv^VO**+7)8EIQPYYVSV[Zdpro`agcwƒŠ……uge]`eZggjppiewqohWYdjqwp^e7%92W3<]x…SNcrpmdehSWYcgH\htp|ƒ~om\toonqohe]U[TV[eb^[^bb^g‰œH8;P`hrNCcdnjibbtbbeI1B‡meUemuqzugbmmjmjgneMJOGHNU^b[YSO:[noOUH;U8]bYS]dc^Zaji`e\A4HxЄ|oxƒwx„m`nmmjnvd@LYY]WMQZ[OLNBNO]^ceTOMVhk?Z]\UMPH`|‹hegnmEapoŒ‡„…vmehuw{xrtqkoi^YSY[OJHV\P39WPYU2Oa [UG4QacUGAU]Skunmjqumap|}wrzqbqƒwtnmvotre]ejiYZWH^gV(H`VG‹eG7 G>.QNIF-Ia\B[a34JUYdcZC?tuejŠoIh]QY^]`hvmZSETjnb`b\\curg*@WL Nk2 HgY^da[PVb`TZY`WVYWNQ]gopigY]Ud^e^Y\e``MPi‚ibggZTgƒccV(]ƒ<,.$3+]]hjUMJPNTSLTMIAQbbijjdd[[^aVN2MWVdiTw>No`djmWncmk`Zu\*Ub]S!C+bUQYNJCCEA7!BOYYgZdhhdncij]UVUchgbQmn*Gb`i`Ydia``gj]B(:OIHJAH ^^CIWNLB]htex^`ZWUYiejmppa]VTJVbZ?BTZOPNc{umz[9Sdam) +e‚Vz}wCP`\N[Z]YgFBJYQSLM\`We^]\mgk$N[F4J]TE}^Y[SWQ`eT}ВmCQWZSJbkjm]NY\^[^MP^N3QHTdWYV[^[OVcZ`c&Z 5G4#>`8(eIEE8ULc`HSE?:HQMPTS`oebYJpqowWPUOSik][\Zihcg]a^b˜ЌC9P)2@? N|‹TPVghYEbSixcGWQMSL)[ngL.Mixzgq]YHBJQWT\`LITaik^hj@]&; 52 V^a\Oja\OHFmtkhabYNCNeothVJ]upijejgZWUTd`bUWad`V^cmpT``Œ`5auS+?N@)F[IMJS\UWZU]^\VIMUdY^jkiJJjp^Q\agk[2NNG?LU]WWTM[VO?GcdbgjQHN\iddjpC(TQ-1+$?>]qiYtpmkm]`ZW[YP;7B9FQLYNbaM@(;A5NgOJ^\^]^dodimoq3NJ7a‰wgFE"BMNWMup~{VaFPA-@GIN\cZm`9*A5>Tg\TWYNUJ]hnmjmh?\4(7`[ZF@ ;L~uieG[\) 3ZPNq[QTb^VHQ&5GHFLVUPZ`[WU]krod]HaŽpiO:8vTFWVYLC2tgccm9%AHY7M55QWYEjgULELE31H@JSLN]ghaL]mrg]cd‹™n7jY(:L2JQY^duVLWPGL<32OLZGT^V^O*S[Q#OIIWOUaidjcSjZgnvVqom\&e‘h+%ZupnOYg`WVgb`ALZNE-EF>0J5QN,BH8^U[h|rh^bZUU#YrQ[V$,Y^`]Y[ZbYAGEEi‚GSPWWP[MLQiZQOJMN[gkpmkuiachda|hF qjrQ4w\;2- Q%LrUG]]эLb^]T[gZPadipc]ejb€чЂ›ŽwjqiStƒzu‹”——›ЄЇЅЅЏЖЗКИДЗРыЮЪШЧЧЫЫЮФЛВЖЕЗДИИСТ‡@<7BB@98;>:ЕШДЄЃЇxzx{‰ЉЊ„ŒЅЗЂŸЁžЂБЈ’МЗЗžЅТАЈШРУШЫЧИВАЋЋЊЏЗЩФЏg-->>A42403ЛКаЖŠv–zz]^•ЗЅЕЎЎЋЈœŸžœ|ДкД‰ŒžЌИЮЪЭЪБЕЖККНЖЭьаЖЃV*<@?;<>;ЇЄНДziސ••‹…c—ЮЏЌДЗЛЕБЇЂЃЃЄŸКжЩРОНЉЅЁЊМЪамЗОТУУССЩёжЛЕ‚O;?FEEA@”…ЂЛ•˜ЇЄŸ••xŒИЗЊЇЖЂŸЇЃЃЁЃ—ЖзЦТРЖАЈЏВЩпдаЭФФЦСНЧСМЗЎЃ|L138FH<@:ŠŠŸŽI.Zwm‡ˆˆtp‚•œ—ЁœŸžЉЇЃžЄЉВЫРКЛЗЕАЏВЖТЮЮЫТРОНОСМРгЧКК™M0-<;241‹Ž™ng~wx‚ŒŒ‹Ž{ЉЃЈЉБЏЄŸЇТКИЖОМИВЎЌЌКФйЪФСНМНТРОНСФНКИ‹>7A;142‘’ЂВqˆ‰o‡‰˜–‘ŒЏБЎЊЎЋЅЃЋБДВЕНООКЕЌЊ›БСТСТНОСРОТСОЎБА•@).9021™•”–|\‚”’”•”˜Š‰zt”ИБЕЖЧЇЂЇДЌРаЫЦЩжИВЎЏБВИРУТНМЛСРУЦЧСЧРЌk70)-47›Žƒ”ЫЭ…|”‡˜МЉcqЂДЋВОЕДДЉ‰‡˜ЊЃЁЪШЦУЭМВАЕЖЕМРЦСКЗИКЛННРМЎЋЄ—I31515Œˆ]h‡Ћ‚kraV…ЛЊ’АЈЇЄЉЅИЄ|nrŒЅЖЛНЗЛЛНМЖЕЎЕЛССОЖДБЖЗИЗКВ—œМУ~B?F-8‹ŒЁЁˆb{Š‘АЦДЌЏЎЊŽx•ИЏЃ‘’Žx’ЋАВВМСЦТЗЗДБЗКРТКБЌАЕЕНССЖЊДЦ›TCG8‹~‘Ћœ‘vgdx•ЇžЕОЋЃ’—ЏЇЂ——ŸАЋЧЗДКОФТНЖЖЕЖДКРРИКННЛМЛНЛЕББКpBG]JœЃ]||ŠˆŠ›˜qŽЅЃ˜˜ЇЉЌАЎЊЇЉЈАВЏБЛОНКДБАЕЛКЖВЋВМСРРЗКЗБЋЊВЕЖˆUUYŸР’Ѓˆj‡ŒЎ’›•œœЃЅЅŸ›˜›”ЇБДЖВАЈЉЎБВЗМЛЖЖДЖНРКЕЎЅЈЏЗМНКЗЎЌЉЉЈЌЎWTLžŽuН”h”™˜œЄЋЌЌЊЇЁЂžЁЇ‰ŒНБЉЇЌМЎЕЛНСЛЗЗ€№ДЕЎЇЈЇЊБВДЌЄЃЇЊЉЋЗžh<0‡‡hŠЕ‰|‹ЄЂ„ЄЌЌЈЋЌЈЅŸЃЅœ™˜ŸЅŸŸЃЏМОФТСРННМЗДБЊЃЁЄЋЎЏЊЄЂЅЃЁЄМР35˜Ÿ—”dh~›Œ[k™ž—–›—”Ÿ›Ђ™—ŸЃЈЅЁЈЕРММЕЖЗРОРМЛЗЖВЊЅЈЇЊЌБЋЎЎЋЅЁžЕЖ^3˜ДЇuTcxŽ„rJ\ŠЌАŸž›œ›™•–ЎЋЌЈЋЊБЕККЖААБВЏЏБВААЈЇЉЈЏДЕБЎЎАЌЅЄЎФz5‘Є‘j4<]vu]S\e…ЁЄЄŸ™›Ё˜›‡‘ДД€™ЏАЗМНТЦУСООЎЉЈЎЎЊЉЇЉЇЉДИРРЗАЋАБЉŠЉ‘I–œ‡{k7Aunq|—˜‘–ЁЄЄЁœЂЉЎВВБЊЈДЛРРСФОЛДЎЊЋЋАЋЌЋЋЌЏЕЖМЖАЈЇЊВБИЖЋ–…uocqŸ~z^e›Нט”ЊАЗДЋЄЁ—™žАЛАЈЏДОУТНЛЕЖЗКЗЕАЏАЌЈЄЁŸЂЋЋЇЊ€ИЎСж‘‹‚ЂЏЖC9gŽЉЏЌЊЈЌБЌЏЋБ”}[‚ЩДЌЕВДКФСМЕВВБАБЕЗАЉœ—–™œЁЃЇЇЈЂЁ›‹ЇЕЏ›•‡~–cgЂЏ’žЌЏЋЈЉАЕЕЊЁˆvŒМеДЗНТУОРСНДЎЎЕВЖЛМЦАˆЅЂЁžž™˜ŸЃž–”’ŸАЁЄœ‰ZˆœКА|™ЄЃЁЁœ”ЈТМбЖЌЌЎВ’ЄЋЖТЧЦУУИВДЛРЛЗКМЛИАЊЇЂžž€ъ–œЁЂ›——ЃЁЁƒŽЅ<^ŸЂ˜ŸЉЃ•‘›Љ›ЏДДАЏЋЎЌЎДРЗЗКРНЕВЖКНЗЛКЖМКЖЌЇЉЊЄЁ›–ЃЈЁЂЁНИЧЄWHtW\p”žžŸЊЊž™”•œЉИВДЎЄЊАИЗЎЉЌДКНТОЗЗДЏЏААЛТОаСžЉЉЋЃЂŸЁЃРЇ•œЏЕЊ˜ƒc–НЊЗЯЋŸЅЇЈЊЃ–‘wЅЯИБЏЊАИЛНВБЖЗЛЛМВББВВЌЏВКЛСРТŸŸžЄЃЂЁЃЎž[qЉЎvCZ‰ŸZЛ—„Š’ЄЋŒЌЎœŸЅАЉЃ‘аЫЄŸЎЏЕЕ€0ЖЕДВАДЎЊЕЖЖВАЏЖЅŸЁЅЄЁЅЎЦ™~t•Єœa…бЏ•}kZxu‹Œ‰Ћ›ЌДЅœœ˜ЁЂЅƒЃРЅ–ž–МЩœДпЪЉŸЉЈЅЋЏЋЎЊЏЏЎЎЋЇЊЃЊАЦЈВЌ—ЃgPbЕКДŠdj™Д’ŒŽ‹ЊОВЊЂЁ˜–™™ŸЈЎЈž‹БЪЩЉйњмЉЁЄŸŸЅЇЌЌЉЈЏАЏЎЇЅЋЄЊЌЎЈЄЇ‰]:wЌЎ‰e’˜•’’ЎЁЃœœŸ—™œЃЇЉЁœ„ДЖЎАУЊЇЄЂŸЂЃЉБДЌЃЁЅАБЋЅЈЊЄЋЗеРВŒ•Љ—SaŠБ…YŒВЁЅЊЇŸž›ŸЈЁŸЈЅЂŸŸžЃЉЋЌЕЕŸЂЂœЃЇЇЄЊЌЌЇЎСЌАБЌЈЇЋЎЖЉЋxЖЩ~r‹‰xwœžЏЃ˜—™™—›œ˜™™ŸЃЈЉЉЋЌЄЅЃЄŸ––ž—žЇЉЇЌКŽF‘КЋАЏЈЌЈЏАБЏЊУЅqƒ•kŠЋЈ˜|‹ЇŸ––˜ŒŽŽ™˜ŸЁЉЊЏЌЏЉЈЉЏЏЉЃЅЁЁЄЇЇŸЃЖЈt•ЕЎЎЌЊЌЎЉЊВВ€вЏ’z”Ÿ„Œ–’—‹qЃœ˜——•›œЉЗЖОЏžžЄЅЊЎАЏБАЎЏЋЉЉЅЃЇЁ——››–•ЉФЕВМЃЃЂЋББo1%w}ˆŠ‹ЅЉЊЌЖ—Ђ–žЂžЁЂŸВВАЉž›ЈСЯЖАЎЏЋЋЎЋЇЊЇЉТЁœ™œ•—ƒДЖЕДЉЄЄЉЄЉ„v{rtEMq\[GE’ЕŸ™ЁЇЅЇЉЈЊŸ™œЌЌ…ЏЭНОЎНЅŸЇЄЌЌЃЉОЌq^””™ЂЂЊЏЎЌЅЈЉЉА‰ŽŒ›ВqaЁРТ–]ŽВЫЈЈЌЌ€ЂАЏЅЄЌ˜m”wŽВЛЃНЦЛЋŸЇЈЌЅЇЃЇЌ‘ƒЄЅŸžŸЄЋЏЈЅЁЈЈЎА]dwƒЃЈ‡‹™Е›c•ЩЈЄ›žžЄЋЉЎЈрЋˆ‘Єžž—ЃЉВЋЅЂЄЄž™—™ŸЄŒЊ˜ЉЄЃžЄЈЉЈЂžЂЄЅА{~Ёt‹Œ~›Ѕ~bt˜™˜––žž›ž—Œ™–˜ž™›ЇАБЅ–ЕЌЌЊ›˜™ЁЄЇЉЌЈЄЇЇУЊЉЊЁЅЈеуƒtˆ‘zŒ’hc’НФ™—œЁЃœœ•”ЇНЏ™žž›™•kЁЋА’ЁŸКАЎ›ЄЈЂŸЁŸЁžŸЅЅ€тЂЅЊЉЄЇЄА„Љu‡uЕЗЏЉЋБбсЌgW`ˆБЂWnjMe‚™‘ŸЇЋРЃ’œ’„ˆ‘’—˜›ŸЂЂД—•™—žŠ–œŸЈЅЉАЗВЋДЌДЎЖНМУЊЇ{rВмЎˆ„—НРМЅЄЋЊЅЄЇЅЇ™’—Œ‘‹œЈ™–›—”•žЁ˜•–›ŸЄЅЅЎДАЇЊЌАБДБЊ˜Л‚^k]~œŠS[JcЉ›œЋЏБЏЇЇЈЁ’•bЇЖœœ–z|ЊЄЄЃžЁЂž˜ž˜•—‘˜ЅЋЏЌЉЂЇБИЛНИ™tpruŒЁЖ‘e‡‹gЅЊЇДЇЌАЄЇЁЅЂ’’ОСЉoЅкЌЃЂœžЈЇЈž˜™–ЄžЃЅЅЄЇЏБЊЈЋДККЕКБƒSgЋ›Б™ž›™‡QjxŠ‘r…Ѓ‘œžЃЁЉЎЎЩИˆЈЪЌЈ™œŸЄЉЁœЁЄЉžЄЄЇЄЅЈЎДД€ЗННЕББŒwvŠŒ™ЉБ˜’™ch”ШЛЂ—›œpЂЖЁЅ‘x\œ’ОУŽ’–œЃЉЁŸЂЃЉЂ˜•ЅЌДИЛМНКДАДЗЇЦКŒPjbw›’ЉСЊАЁЃЉЈ›ŽпЯЕЏЈ‘dŒ•ˆŽ˜•’ЃКЅw’žЂЁ——•„ЋžАЖЕЗВАЉЌЊŒnqZ^vN}ЄuЏŸ‰”ЅЃЁЈŸž–|ЭСОАЊ”ŠoŠ‹„œЏ–‘ЃРО~—™žŸ™ЂЃЅЇЎЎБЎЊЌЉЊЊЇu{u›m,`{‰‡•‰œЁЁ˜–’Ÿ‚ВВИž…ОЇŒ„|TIp•qРЧ˜ЅЉЇЉЈЃЁЄЈЋЌЉЉВЗЖЏЅЎЎБЌg€5T[@18(!5IA>VM\]][dmnjrw‹Žƒ‡‘…•аНЈ™—˜žЈЃ™‰‹‚‚ƒƒŽ˜›a-32><;BEGE@‚pmu\IGB>LvtNZp‚njjrz|ˆwjb‡Špv’|n™‹Ž˜Ё›Ž~r|u{Ÿ˜ƒM#%,?7>289>‡Œœ‹TAOa<4.,7\wkd‡vvxqe^dqmS‹ЕYVZg\užЄЇЃ…Œˆ‹ŽЇРЅŒI#3:A5B?GmoˆO7O\`geY2a”{p~‹{wujprjЎ”Š‘rt‚–ЈАМ‹”˜’ŽЁкК‡…gJ94EHILBZUk‡\cihnZa\AY}ˆv\mŒjimknrmd~ؔƒvrv„™ФЎЃ’™•Œ”™Š…{mL90$AJJH@AQ`eT%#9@ZSNCJJ]baie`imk`honƒŸ””„‡|~z~‚”ž›‘‚‡…Œ‡ˆЈ•ƒ|5">-29>QOJ^[22VJJSLELVQMLzrqqwx{mq•Š‘—މ‰vqq|‡–ЗА›Žƒ„‹ˆ„’•Љƒˆu9539:;8Zg^nH@TB:GSZi\SEYzwmvurhho{xx„Žˆ„‡‰{uep‹•Ž—‘•‰’Š‹•‹|„m#&%132emhcbM+Fa[\YVZIOB@Z…}~‰mhp|}”˜ЂЈ—ЌŽvx|~„‰™”ƒ„’މ‰’”‰xT3"%0.-ZTOc”˜NMVUc„o<>exz}wzvtYY\woržŸ›ŸŠ‡„ƒ„•–‘‹~ƒ‚‰…Œ‰uvpn;0*+5YQ.1QjI5<,M~vWgqqhio‰pI;C[qˆƒ…ˆ„ˆƒƒ|‚‹–˜}u|ˆ…ˆ…Š`h‚‘a@@9"2UVZkc^J->Yav‚vv|xzWCYŒqiVY]C`}x~…„žЄˆƒ}{|Š’–ˆvrzƒ‰–‘vrxŒoB7?-ZSMZ{dS8*$EQjjw„qq\U`„wqmohw‚‘™™…‚~‡}}‹˜Ž‚ŠŒ„…Œ}}Юƒ`S79QBbpJ2C:JQTVagUCZhjeZWmokw{vnot~|wŠ‡ƒ…vw„‹‚‚€‹}‰‹–‰‡‚…{qjzQVSb…btP4ONqbZb``nnopaWY\jƒ„‚‹pwz~~}„‚ƒ}ŠŒ}trmt~ŽŒ…{vrvtzt{rNONgaGW‡]5FL[i[art{x~oimpkmP[‡ppuv‡…—’ƒ‚~zzrxpupo‚{ojhtmorƒh\5*YU;Q{QJOa\MGuwpnrwuchknkZ]ptkjkj‚‘Ё—ŒŠ‰‹‡zz~{kjkqxtrvnm]`pŠ‚h,&^nc\Z04JVL)>Iehh^^nd[coqaejqmem‚’‚ސ’˜’•‰Š‹•Žqknmrzwuqv|pjr|‹E+Ywg@<9QI31Oo|gahntgngbgw}‚rnvŠˆ~{t}ˆƒ|{zwuoozv|}{x~vvowt’ZZeW: .M<#+&Lhrmhc^`ge\Yv|{|…”‘ŒŒ”•ˆ’vnvz‚vwrtoq‚™”‡rtzv]ƒm;gjT<5 CH5BW\gYbinigbZju‚…„|nqzŠ—›™Ё”‡v{t~wotxxxƒŽ‡{pkv}„ƒ„zqVISF$4hEQ*7q…d`r„~|tuvk`o~„gq„ƒ‹’Ž„}}‰‡„}}uurqittwoontrwquЏUII]hwˆ-Pabojgj‚~zmrmtovVbhao03gˆŽTV|Њwnovwxmo}i5O@Vpe’–dnnzgrgomqWMgqonbcoru~npn|v„)7:LeePQUmb5`›~jkeekqxpŽТ|Qgnrdap}ƒdnkmqrbd[mcQicouicijxtZgrttzEMh;FYHH^qC+Bh`YUccbnjWe\SI[^`ajcw{xug]|„mebdo{}ktmp{w{‚xtvЕЧJAVS>JCNP.)^ˆ™\hh|rngd^}‡v]eaabYGq„c[gqm‚wce]b`eekvhcr~||ho~NpELNQGhj{jbwvhaYVvˆ~rnrjdWYv‚~|d\p‰ƒwuu}tgnc}uukkqwuipn||er™c@+1Nej{xqƒu{tzdYZPŠƒrropzkh|„q‚zxmgdpurommacce{vtn}‡‘‚qwv~nGJV~S35:9Y:2CJ~zabbWmaed^bmeeƒb8\^ginqumkqpkd\jzuortomu„uimh`vS75JG:CPQPQ\PPUuUiwmgj`cgihe`^]gc`Yieuu~~jpguu{Š…|}„…‰~vuhdnrƒ’m7-;>UZTUYHYzŠВ‰cuwo‘iF`xPGOmimpcagrzpd[rt}}qP|Ч‹x„mЕЏ‹rZio{E:S[C?bZGnQg\mjj—ТД]Fm}}<@adE#2oihmwiw~tqxuv‡|™Œƒ‹‡MmЖСvntxp[HG[CbˆOE–‰v}‰x|œƒUCnƒ]HWZQIS(n`b]akjqzmjmkia\o|kn…]Y}„vhqvv~!H)pFTv!8I\aCY;BO,Ph„}m’}wz|ttoikma@TNUV`egjgurgJ9W[QW`}bmtompru|w}„‰‹C`T7g—”tTW%I]okmZŽƒŽ…kobjWJS]?1MOFZ]]ajuw}gLMNPYi|qggpcddpx|‚}}zNEjCI8E`ukYY78N]˜ˆ|wSquJ9;MMcnNp‚gYg|rp`eCNTWZcihcmrmmjpzƒ}xp`wž‰IAV‰Y^gebY]L‰‰tvw}Y9>PciMjPYhZom}ob`[WZbYZU^gkp~wtip‚‹zpv–Љ{37*Lzc7<";J^;\YpqrŒqcncZZMFNPbaddqtkvd][ee]Sdchjptx{vi‚o~„bŽƒd55rЉ|LEn…~‚bvuwhiwwk\^h[J@PNWYkdbca[[UVjooZT]jieuz‚x{ox{~{weŠO&F#IVT*.{gi}}‚wopnhiT-]vYg`4Ewupqmeji`Oc[ZU]Vjow{}ndk}ˆŠ„‰aB:BQ9Ng‡S-WQ2eo|mo‚ubpxvWj‡Šj;mЋtme]bnrh]Z]j^[k{zrnrx|zhoz……tM$1tjxb^d`jL"3JWgEOpWckegbz•vNnurojkngk]e[j`Zcqo{um|…u}„}~xV[IG]\crzh]j89a‰|tgahFjxq^YN+`\Y„ŸacdpvkmWaj{wm`]`kr{~ƒ„…‚x~}{g™}U@7Aa\i’v‚LUFtubgЖœwtm7?gWYVP^ZegkSNB[mjbhkcYJud{}…‚mjjmTC>3BCj;Ubhodtjgd[MžŠƒ|zZNALOPi}dTtŠ…NT\hgnca`a[eippx|vwno~mqmIB>BYB#@?SATctxm]aiJ}}aG‡aWLM$Gg>^‚jerrjumopmjwqhvwz‚up{‹zjџ€ >S[F+IFJJUgg[IJMO\]][gk`SNSNJY\ZOTWJQGI0 "5A<7+HC"Wia``bi^WQM[SSei\ZZebVZW[b4&JOLA-Wn3  %  #,P1,4<)HOPLS^b\UUW]^dnh`YVQPW[YWZNO9O[PBWnQ $ ,& €>]9(*@@IPMLMUYQSUU^ajbWLLOPU[QOT]`UPGVQ118HNP9  $ %B28Q\MPOSLJP\\^c[<;".FMJ?EWe\BQVC<1AOPIQW5(S[jr[^d( 0++ €Р"?9GBPgqg]W\QG?IVZP\jgL ME332IWHM[Y,PN[U:2JS{”tmpuWn]L    &LU9ZiaVL>B?8"&NVON`m--&JSWQVMAhhdTY[VUnZ(    Т 5LANUMSTGTTVEMNQIOUV,!?C;*3@:>YkehaWNSUSiAТ+MQTHGUJJVL5&-EL3VTWTB*O<8--;GOMOTYWWakn^\HUJQ( )  УMqdTJLW`YH@1)CFWcQ[[\SZLW\\UTM  #ў Ф4JZ8-CF@JVHE@EF"EU?$<49)!LQMac]aQ]]bVT]g`"!" € >J;4BP^TYOFIAHG!GB28(0 ;L?L>igUY^OTH\ihYO?   *+49FWL74048;.$CE:@)]i\[Qi„m29Ye^VZgU91 *"  GA-F^jJ@2,3  *S)>IVr”jBMQTTakjaZZ%! NmTdjdd^SSZB-1Ote1$L(W[cv‡{VPPMQV\[]Y2-, ш 0LSH*7E;Pcž..F8:^uj\^i^egab`hdiE297 FYjkOU]ZH57731JGO`L"<AM0I{ˆ‚nerWNk``SLaCH8  )Ф,L>OJM\C,0&$%л77?GP~Žx~|cWcgt‰^Y~–M %э;MagIBUZj‰}tОEokae4"IV%# Ц.>MQHHF;4:B@--:&5Jiirgd^ccYaJq\w‹a#ы ,>aeWTU@U:0(  е-#!\^`he`^UJPZbaeY~ЄмЁ4 7 Я3Jab`VUG29&CFJJ. 5N^^W`^Y\\]YTIbaˆ[U21љ Ч Vi`W^{Z$.$:Je-A>.dLZb`]SPjrmi[hU]™˜dP, 0(!Н :tugdSFWH0C*(EV["$`TJ[UMVZZqjqa|w{znTPP;4F;  э  junO.%&)J!п%CGbd[Uhgkounmkhu~nbg,7*Ш.`d@2:1-@LOQSO%]iJ)TiqjaY^mo`nonjZhgVe]8!$щ 5e`OMFB00I@ESWŸN1I[xY]]W)A:#)!0"E5.-54H2?Sxbgxvi]`~umk~rPAEU?#)P^AA !Q`E+IVOQCY?Jx‹pqrЁ‰x+$ „ U39FLIJ###$ *%.(OMFQTWV\dQb‰~kkz‚{q\O?& ,  V+HJ< &7&@c%<":<%!%:2>;5%(NQ^SN>NOY]iggqc[`m`dmtmG  % :cZSjP1#*!>hME>OQVVr`k…oVZjrtx‹ƒF-25MPы   $gcC3P л% (UF<>MN[GagGoŸ„uUdu‡wuzz]`JA& €F?#ALI2Nn5,"P?$B##:N;YZMAOi„xˆЯИzVjvbh{a?EZ3,.  @<.]kdvc<2#9$ 41$ ;B7-F]diƒЕœjjgjhZSdxp""MЇ~ht\7%49 82#): HSJTIq‚w„Qdt\oacV•‰Œ>H#8*>Qe-@G%#9-,C."@b<€ћ ;’b<;0BC >8e.,7+31GUC]aZg\’Єguuq|peqˆ‚` 9nN >Ž`EGAi9 LJ!%?GGHE005(4SWz—ЭЎ^ckd~weebN›•Y;  *CC?ING54#95N:5Cr‘СݘV]k\q}zwgQnЁV0# Lq&4I0II+G8!(3 %G^1,+>[vghdmw……}b]^[VU\PЃcH8A   FOaLSLG$""$37)$ +{gI3E9jmc`v{~„jenupUWY0n–M?4;)8d! ;M!-&%*]M8%(aaju\YNNtqucŠ™Žni`aFU—ŽMœ—.П 4nZ+3b9EGMLLH** JM$SUT"G)jp|w‰‡~|qnnpbeUŸ…ЁЃFA   У#A;2!8<975:-0 1;J4.aevzƒwx‚n[`nbUPd8n‡L7$O"Ф% (1)-,FBE3OS*PaVMA.Aquj‰Š„ogm[Y[YcMgpŒЂ‹S-;;?рFL8A]QN1HIE\T@@aVC1к&),%(,$:SBg›Ќ…ŽŒˆ›Ё‘—ЈЎЌЅЃ˜–”—ЂЇБДДЎЅœœЅЉЌЇЅЅЉ’œЁ—~P9BEAA740..&4,4,)0(?PI8p˜„}}‘މЄЋЏЏЌЗžЁЂЇЋАЗИЕЊ””ŸЈЂœ’‘–›ЖЁ‡V7.3>74."*,;,4),,*;:.-:xЅЋ…„p…ŸЗЈЋЌААНЎЋЋЅЅЌВЖДЋЌЈЅЂЂЉЈЌ{’‹——{kЄP!57;81.3380,-421:4B4Qk—˜Šˆ‰Œ˜ЁЂЇЈЇЊЊЈЇЊЊ€žЌВЕЌЄЂЄЉЈЇЊЊЅ’ˆŠ••˜ЌТ„GB@W@;188:3-*--*cx`8Gdx|‹”–˜œžŸЈЋЈЇЈЈЂЇЉЉЃŸЄЈЇЄЄЊЊЈЂ–ސ˜™•Œ–œŠb5&.;9;@1-5&#-:GiiY@(I’Љ™žž˜ЁЃЇЋЏ}|…˜žŸЁ™˜ЁŸžŸЁž™ЂЅЄž–—ЄЈОЖT:4877€н,+8-125>*$$`Ђ™˜œœ˜ŠЂЎЌЋАЁ…Œ•’ЂЉЂ™–›™’”‘‡Ž‘—ž˜”™ЋЇЃФžЅŠB2;:92*110372:74<-8.Z™Ё‰””œЩбДЋЊ˜•’ŒЃЇЃŸœŠ‡}z…Ž’——’wŸЃЋЋžЄŸS7;FV?:<7(+38;>;30*Z‡•––ЊОЌЉЄЎЃŽ›‘—ЃЂЈЈОЛŒQS…žœ—™žœ„‰МОБЖСебИŽT,#:343,-210>?<2:>;EPxŸЄ‹™ЄЃž™œ™œ•’—–——€щЇЕm@t}~„—ž—•‘ЎЎЋЎЊЇЈЎДЊa11).44021938732-!$TŽ’ˆ–ž›œЁ›ž—•”™—œ•—–bFx„{‰‡…•™žŸЄЎЎЌЈЇžЃЊ|9)$7370.(3841478+Z•—›–˜–ЂЃœ–‘‘‘”ž’”™ŽˆœŠ„~~˜—•–žŸЅЎАЊЅ•›••[-8B?4184:4*2551БЁ–™ЄЈЄ”‘•”—˜–—˜—zh{„r–”‘”•›ЅЎБЌЁЄЈЈ–ž‰13874378983055“-)-tЗЗŸ›žЂЇЊЋЅ„”•”‘‡ŸЇА‡p}‡‹‚}{‰”™ЂЊЊЋЉЇЃЅАЊžД:7832?@994-&)+;382SЈЖЁœ˜™˜ЁЃ…„„ސˆŽЅСЂmn…Є›‚iƒЅЊЄЈЇЃЂžЃЅЈЈ€Iž˜>007>;010--.5,5;0V„Ј‹‘ŒŒ–›Ђ”–›”‹‘ŒЅƒ‡‰ZG|‰…w‘™œЄЉЇЋЄЅЃЂЇЈЈЅ@04Q„•Š—ЁЇЃŸžЂ›ЁЂЌЏЁ•A,??<:;U7,-*-5-3:;&AŽz‚‘–›…Œ……‚ˆ„‚‹‹…oŠrUiЄЖЅЌŸЌСoœžž›ЈЇЁ—G1;?@7;72-).:84C93G~Šo}ŒЌВ–•‹Œˆ‘wƒzƒ„‹oir[n•ˆ™ŸБаЋ~‘›ЃЅЇЊЉЈЂq;2940,--.434+251<.47L›ЕЅЕДЌЗЄ˜œ˜•Ž„ƒ[›С~xch‘…ЁЃЋЖЦВ—–˜žŸЄЅЂЃЈЊE9G5#..€\2,9>I14344<%$\…™Š›ЄЂЌ––ŒŒŽ‰‹ŽЂЉWF7<:3.377-$!$+2+B|‘Єœ—–”™”‚„ЇУž[ObwnŠ–ЇВВ™…ЁЉДВДВЕц•КИЎ”QNko<:970&+,9&$.$((&HmŠ™—˜’•Œƒ‚ƒ‰z„„ooЙNpœЂЌЏЏВЏЋЃЁЂŸЗЇНмгЈN%@F0#-.,2432-)**0,45HmЎВЃŸ—•ž…~‚}‚gghkoj~wЊЋЎЛЌЌ€ЉЄŸЂЅЖ›Ицўйv+B\873:2994.-&#()"((O}ВЏЅЇЁ™Š„~‰‡˜ŒcMorvT^k–ЃЅЈЉЄžžЁЄЃЉŽЁЉТЧЈ‡QT2-339723**(##&;31PžЛЊЉЄОŸ‚uƒ‚‹–Ї—œ|n‹Б˜ЂЇЈЇžžЄААЉЇА”йзЏ›M?T?&9:;92-($&+$&84%*qЛУЈЌ™Ž˜…{}‹x•ŸЂ‚U[ƒЅЄЇЈЉЈžŸЌДИААВДЖМКЄЁˆYUn[127241103.0%%,-+ZЋСЕ”uIq„ƒ…Ž”zOBCTFQ}w~”—ЉЌЉЇЄЈЌАБЌББ€тЎЦЖАЌVLWI1854%&$%%#(3"@mЌЅ„z{Š…‡Ž™ЅqWoЉВ’žМРВЌЇЅЄЁЅЉЇДЏЉЅЋЊАЅxN3%285>2$!$&237:[ŸЅ–•’‰„ƒˆ‡Œ–ЉЂgZkqi‘{•ЋЦЕЊЄЃЄЄЋЪЗЕВВАНЕЗФoN\]A5:;@S$&"#&-98:)19i•|‹Ž‡„‡ˆŠq…{u`V–Ÿ™c‹ЕЦДББВЎЊЈЛМЈЋТТp„Ѓ~S?,8145$-!#(08357135›…ŽŒŒ€””ejqkqAˆ—Œ[Z‡БЕЌЈЉЊЇЇЊЗєѕйэёОЫЪЩНqG;)>E;5)+74410&).&5(+(530?•Ÿ•Ї‰‹zxtw5B8H\\TƒЊЊИД„|r„u|xwz|v|}{‡Œ”Ž˜—ЄЊЇЛсЮЕСЏБАЇЂŸАДЎH:ACCBA7.&),5>><5+;mЩаЖЛЂ‰xƒw„zƒ‚|‰‡ˆ|ˆze‰”œ›ŸЖФУЧЊЌЛВЖЉАШЩФe.<[B<!,.54;;<58NLZ9|ЌƒŒb~…x}„{‡ƒ‡‹ŒƒЅЪНžž™œžЗЕЖЕЕЏББЏБАВАЗЏž^I8%Uw\%2:0.01;9%.bЮБ–‡ˆŸŽHN‡žЏŠh{{xMW}ƒ•Ў•vЄЉЄЎЁЫмЌЖЕИЖЕВЗЧЯЗ|0:Vƒo085--!"*-220ZДŸ‘‡‘В|AbuАЅebxz‡‹‡‰‰‹Šƒ‰‘ЂžРжўуžЈЌДДЖЗЖЕ•гЩnJ53+%99;03+00€Ђ&;Bzƒ•–~[ekŠŒ\wxx—‡‘‰Ž‘•œЃКЪѕљаЁДЌЕДЛКВЈЇБаoB<>!789-55,571++!uЉŠŽ—Š~Œƒ…‡ƒ‰…q|‹‚Œ‰’”›™бЗЃœЕАВЕЯЃЏЊЎАkS:+0,$(-#**1.143;M;YŠЂt™`5H~t„ˆƒžŸw—Ї•…ЎМЋЂ›~™’НЛЛЗНТФƒr›ЅАУВe-1A34*.(!.43+0;>L9>—Т–ˆ…t‡{{„ˆ‚…Ž‚]‰АЎ›œ›žБœЎЇЇМОКРЖЗДЏЅЅ€ВŸžЂЫ^;0&7520*(?@,"O~pG8(\”Е—’•’–’Žƒ…‹}˜wrЌЉЋŽ‹АМКТЧЫЦТЕЌЎЉЇЅЄйШлйaS,,8))-+28,4:B#8)CŒŒ‹•‘’Ž‘‹’‚ˆ}|wvaS‘Œ”ŒŽБЌНУТСМСДБЋЇЇ•ЁЈƒЌШpL3Be;>$(135*%4>:9.>uˆ‹‡’›”•–’Ё{pUPˆЁЏЉ”Œ•ŒОЖЏШЭСЕЕЌЋЊЈžДЉЌЈЛкУvGFUOF5)10)2398>17??,.193034-0#gZ8)EIGU`Vaedbjggmmhkpprmiijdmmigdvpn[S]aZVO\bcM.##&5?9:55-2:LcgU75`wc`]ha]]ivoxxJV>41;>);^\YU\ZT`tupvcMOHVYjvj\jc]^]YSLTVbi[Uqo|Ёboo.145:7173:81+3-3+.->dYUV[Uk’Ќ}tpdbSSPUjpjaZn[TLEO^V\gmV@]dupdq<$8AZC9A8;?:1-();A(7*%?G\UI]t^i^`ZTTFWddgng#$28A\[ig\V[^…›…{‚Šv‰p\?).,45>(.*79474+$78H]aOmvxg`V`]VU\^ab[n‚B7MNMamedb]\z~tpknkpxuL*;0;;4148.4,+0# 1OZO^ekhihb[d[[ce`Z][-B?PNLHJYZUhnv|rripektL,4G>9+-40+,.5Jb\b\\cZbjcYLP[^T[[\^TL^PPBUY\bb]ammkz„vjgcgbgE,3@B?):24%%ˆ1 Zxi\YhgujWQJV\[b]Z^bL5ANINJHZ]ZWUipn‰wqtujSh^335:479;<:5.(2)2(#QƒueaadwojiM\aY^TjkvQ?IMNQITVc]]gen{}xmgmu~h^-:-8+99€#(1%2+$%0>|}dcacrncOIHQUOQd~c3,Qh\PU8A9Ohohenjpjikqnkn^:..89B1(*+F\jWPPTeci[Z[ZSPQTWkOLMT0GQF@Vgcnoprdmrphbwrt@85:EG?>74$%3?+.;OV1C4742,*3:%!.1]}d{wz~ribdZSNM*bƒzV:(78]Ngkx‰”…dgcbdgkihg—F7@:(-,,-<@%!!1+ 3W`Mdbkq^WYVLMPQou"*JQTLMn‰~rp|pkkthuprzUQUO"")3#?g3-&")#)!?qx~hmpnaTSWZV[WZnVF&,]H9OTGY„–|~a]qmjg^oQ7bQ$,71,M$""3M[]dakzZPN`ZNHLL>`H -?;O[TPq‘ЋЅОУvOied`cƒŠjxF!.03(:9($)%&"!AMaqu\+LOTOPLWUib*$2+5BPnnu~}Ÿеžg>bbaecˆŸaIA*27>571-,.+)"-2,MeB?ooZMNn{PIJSS\TIVB@>qŒjr‡urŠ‚„qtzpjbŽjM92:2.--+%!&#"-IASuxdahqmibqd]MEYT+B[T`„—ƒx~ƒ}ttzŽЊ‰`‰ŽvI-,),*%5%-))&% #&*Ng~vtne^[UQQJEHLB$(HVL\jЃ—”‡uoww„›|n‘БВc8-$%132.:8($(&;H^dohZ\\NMCAIY`"  c{ŒЃЊ‰˜•vƒЁŽw|‹WH1(89;<.1()+#%%#BYUc`Vc\LMJ@Am‰d#2LASUit„dcrzˆŒ~žЪg‰‚woICdw7:B>973$$$ "1ETcha[\ZLGSL>JMCOB8*;:YW~}{z~ztuhk\ˆtŽДЃx2>C.))70%-9(+%$+)(;IawujepYbI<:IO^xvrorjdimpocotŸžqjIQ7.*9<#((+("5B9P]pT\90ISOtYmppmdd}„rm{bpЕД|j@.I;,?.>C3#-%<-P‚ˆuwjVcYIEJGHgaj@%MCvmnqrhknqz}~•ˆ’ƒjk[AT^S#-8B2-,4-($&.)>ˆ”ˆ]F@JINQW< >?C\bpuoqpqzz}{…‚wŒ–ƒv‡orMGHMTPV\bj`@+7Mrt]Nk„{tmj~vqx‚ƒzzuv‚pFF.+$05*%#)")@w[`\PHNJ[VWh`E0!.38cJ[q‘|vkmphЈ‹„|ƒ‘x–›S?aY@*9-.:< !##giiOJTZhWF8>H2dmOJIC[zWY^ggjVqY`ˆ™z„…ŒБŠG95<;,".#$.% 0mTSVZ]WF5B>@9FWIN. >jc]bijqjwkvЇ’ˆˆ‹”Ž‚z`3ZGLB:4+(% ""132(2tSa`SA@I:GIIA?5AACW"Q‡h\`^juoo}d„–ˆ‡uˆŽ”k-)ILB*+22).,(*$Q‚TSLB?OOCF>3>GLJNI>Naxjnhaiccp|{„zr}}pu|tY(>J@()4)A48;7(!8Vrme{bHF0H724@:F,:9B^qcW\ddhk…w‡ˆdo‚…‡’žŽW-IPUe]* 83,-0107) ?ttVCa,7*!-4812,PdWN]ƒC8FF::BGGAMSTUbkv{™ШЏ‚‘w~~wm|w…„A;IHH?5.+))Ÿ192:21gД›{‚nZJBHCGC?>HC@FHBJ@4S]g`^~Šc{w‚|urЂžЁY.I\?<(132*:>-.E;Z1bq@[M2FJNHFNILVZYUBc‡~ebb€B\aˆ‰v‡~x{nu—wz[I0&LV,7320").&ZЂp]PJ`LM^uQ4IGN*1;[mT:kjqmЁЖ}ƒ……ƒ’Ђ™k(*]o,$4-0&!0N˜i[LWvL,2qc$-C>QUZSQWFHB]peŽЇшСopv‚‘„{~|ZБВkP9)"+.523!#)*(EH\TI^a\S05ZQLLGF[P@IZ``Z`cЉкпЌr‚‹‚‰’Œ„rmОwF?23(,&(4)!%9,b|LS]HG^LNLHNME>;ELNMCFYcecokЋ’piz…x…•wYƒuz{^H2&-%&!##"$+3?@>M\pL?^0:9LQL]b8\bQFo‹hb`Nhd‰Š„‹‰…ŒŸSSqhx‡›e&2<33#"*&&$4G??>nŒUPF@OAFFJIENZT(Nkmcbbgr`zo|‹—Љˆvzxoq]hhЉUF,,+&>m+%4..(+Hgb^NOPBFONLUPWI$@VuW\WNWk‰‚uz}—‘zwvggdonЉ{VN&0 - [8(:17)Wagia]P8BLTFIJ8HE7U›‡bJZYz}z}…’—Єˆ‚|rirYЄY)QQP5%3M:1;WG08Y^TYLB8Oq`Q;J@?E7nv‡„xgg\~‡uЂЉ’Њƒ‚vnerЃЉbЃ™@+-$?%"*53)*QŒtG7;Yx]W[^TZWOHEAO`E?FoutOUE‚‘”Ё˜’‡{~{ouАЖЖIJ&A1%3)&87>*""%9-*-!);PIJMOVZZSce?;!-PgtpgTQTˆƒxŸЂЁƒ{}quvc|r{{‘Ж^HLa]M)*)23G37,@YcSVh\^TT\ZkbA$(AETW|i[IџТ->8TEcuqUBTUNLLITPP?@MEZiqpcW]QTiqV9#+5*%)#3>;3+5Ч  )VSg„‚vjurUSPS\PMQW]`kqjjnrw^GNMTP<313$.3#,7:M>%.У 3T}‡Š‰З…TcWMSQFTOI`jqonv|jLONC8HC-(5% 1<<€‚ +;)-UzŒ~ztn[UZMQPGF82Y[oqap‚aZYQ[O;Pk447#%9A:  Fu‰{qxudZTNTTUSZcQhbZrrxcQWC<,B˜q%%$-"  Ъ!Emrtojne[VQNPLQViihd`^Y?"IP<]MVA.0. !Т   ?kŒ…cZ`\\QGLB3?U][TOUB$AOcB:.-Oqˆd2   Л   5aurc\^a]MFMCGZ`ZSVN:V`\[I?-:a[`gH"5";Š&9!Zˆƒub[PJNHSZTULMWQ[dUTZUNOpz‡o]# "&%    ?VWc]NSOPMJJOecaOVYWYSYWW]W[c]`rV#+H"$ €‰ (1}™‰pVFJHU^amkeSPPUSJ9BJ<9H[EWu^i[  )3$*0 ")  PŒ~‚r[YbYMS]UOLFV[[WP<0+IOJEWggiE"!   €4bE1[•˜ŠiUUJ\`die[QVPSZPJ5!>^tab|—ЁW745  0T<PqŒjETS]W[nqaTYZVWUhGBEU[˜vxž–Œ…N o.    7% (U|nTPY^YYеaZT\WUIEHSH<$,pim{to{e".+SU8)( !8^gbb\Wgkhi^VUPVTSa`QM7Z^hhgdgT%-3g|]8(%L?$+)Wz`VV\itpd`c`[WZOOEGJ5e…}kpk^bWA+%YVLH ! €†1bze\\O]bb^Y`gkhaZC#CIGF9i~wcV\@)OQIZC    2PcONZUULMUOUcqwrV`[?UwovŸЊt]q~BT[SIIM( # $!!  T—YQMILSCM]hnodenPFHUcnq„—torwGd`bmh[J.   *Z’Š``FHLMPLOT^otnd[#>@IWet‚ƒtneW`PAQ\dM?$  "8 78,3CMANQPZPWwwrhi??JSJISi{|urJLMH3NkqecVQMONVSYthwrp|\ZO*%9FWaWL+) Ц *kg>O;F2-AJSUeibZE9@CUi‰–žЅТЋP]L<`debu|]@ ,!!  Р QqdVM.I>GJHI9\]`o"#€Œ   0^c[PAH[][dbmwk8 *..>he]›ЎPYNF%?HPMP?+ME !   @;@Q[P8J"]}t„umUSCOJWt~ЌБTE0JBF>8CA;OT-*  п4]\SFQgЁ—uQYCBQ]O]\tЋ‡toZSZrrщYTTIP]A3"€Н*HOZcL&L\jokz‚‹aAL@$MWtˆd IISVHGAQUOHI.CEТ >JevidVAYvh^u}ƒgZ8>J:c`h`cV]O;B-LO%&;\dF.# …B^CYS\QF1Cgihin\QE>JA;kW\M;4,IO1> -805.Lk‰h29C3$ Saa\[„ULYpkYYgbYcF"AQ]WI2>9)N;SGF7NTQSa%?:$   YhScceQQNYhjcrjiMIMWLi^VLLM-SWiAPt„uTGMig09#  " H`dZHdwmHa[VP8NuЂe@SNvMZTGO`]3," Ш!\‘xq*$0$;@&U9@;N;Mn]G,З P9#Iup`vnM]GAFJL1G%%;JGJ?Tho-*!,.B5QONnuwx{}oIbt}mttjWdV[LF;BE7E1,#;Mccxo?,%+)#9rzxi]cu…wh^`chUT]icgWSQBFI@>@;#>.BWJpO"ўЩ!30L|‚ihjhttjcb\ZT[aPdacWA4AIB#"-(-7(-OUPht1 €=  $ivESu‚k}ueQOS]mcgd]iQ>PQ;j0!9;!0GAPZO}o 5 LiSuНЪkrh``mQ`‹mkwnMBOJ2@5! LV<BFVUZW[Uaj„Š^77  1OieQUTW\`tˆVmZSLc]’n\A<O\IY`Lo[2QZM?V’Є|*& Р  ,Shwj^aZU[z#W[ThhN^xrh?B9C4EI:CS0"@IGLM„Жž-, Х  2%BdvgYdphLdJviTNpxˆrTMBCOMJO<$EACG5?gЁ`;%  ўЭ(%,Youpkwh”9(FiuŽЪЭ”wehpLTQVVG3:7>Q[AGT|˜|m9ќ  Х$,(Sx„u{ЂЗЂE#IWL[^PA[|Nb7QYM[N%"AH>B4Yx•ŽŠˆ~I) …5(o[JY|~˜H31bhvkb][WZ…P$F.+)#)aL@ 0gEJbp”’|5 8  4 4IVVIH9SbadŸАx1"S5 "11S{ehaл%@C71cB9(1p›•ЉККœ„ЁЁЂ›˜ЂЅЂ—™˜—™ЌЏЏ€kЅŸ›ЂЄЕРžq<.<820842,,LL::<& #G82,-L~—ЕЪЩНВУЛЁЃЄЁžŸЇЄЂЇАВААЎЌЗЄŸ™ЈЊq7G<398189;;VB00$)$#*.1-9oЎУСЖЏЌЌЅЁžžœœžЋЕДАЃžž•}voZ„Њ—‡kCGG2-!"!%+&+#&++30,2,%144055€pЊЮЦЏЌЇЄЄЂœ””—ŠЇЎЎЈЇЁ’”•В‹Š„~—ЖН}H<%.0+(&$>&"*-*"&$%$#*%##9591jЉНЗЏЋЅЄ›–’˜ЂЅЈЇЈЃЁž™ŸЂЊ‹„ЈЂžiA>?73%*&Cc0!$!#!#)1.2GC49ŠЪФТЎЎЇЃŸ™™˜ŸЇЂЄЇЂЂЃЄЅЃЂ—ЁЗФОШЏ–J3421$&)<:I<2$+-)%*&.+*&-+HužЅЉЉЋЄЄЁЂЃЄЈЌЖЎЄž˜›œŸЏЊЋЉЂЁДLFW81+BCQH8+-$"0-.&C83;A58[БгЧБЈŸЁŸЇЈЊЄŸ˜™–——›’ˆn‘™•„›К‹m32BLGGMY22,2%-10#%79O7((-0*0|ЪЧЭНЃЅЂŸЂЃЄЂŸ›–ŸЁŸŒ‰ƒr˜Љ›ЊКЃ˜]*-7$ AJCAG5.-2.*-.$,+0&*Irc73N‘зшбЋ›ЁЈЅЊБЕДЋЅЃЉЄЃЁ˜ˆŠƒЊКЎЉНйаО‡QLE+Q)(983:7.9+$$&!$4No[3.!:vЊЦЋ‰˜ЁЇЊЉЅЊЉЇЅЇЃ›ŸА‘ЉЃЌжОСгЯаТv,,0-Џc.1A455;4,*.0%,$–•oBA05455341.1:(M>5,&(AnЃЗЉЇЊЈЎДЗЕАЇž—˜Ÿž™—’ƒЁЏБАЏЋЈ‘SHM5ДСЋtL5)544519?C[ 3bS04>;–БЅŒ\41*2:75:;;.%(*1@*+#373PЁШДЃЇŸЅЌЈЇЉЌВЕВВЃ‘q‘h˜~КЫЛЉœ–j8–”ž”™q):9::>4980(#$""&€{*$&(Z‰œ˜”žЁЅЈЇЌВККРУБ˜ЋЋ|œМБСунЗЄИЅ^žЁЁŽžŒd?C?;:938%)&"%&-00.158:-&;}знЉŸœ˜—œЂЃЇБЛЛБЕКЂ‘”КНМажКЗНРqЄЊЇБЏЄ–i5:LYE>85143),-053$*(+,$9:^ЋЕž”‰”›Ž˜ЃЉЊЌЊЄ‡•—ЉЛУжнЪюуЅŸ‘Ž’”–МУЄk<>@A?<9:11е3)-+$)1%8:9ˆФЕž’ŽŒ–ŸЈЉЎБЏЎБЌ„a…ЅЉЄЧОЉАДœ››ц˜czЋИЊВk75@;91.,&*.(*.+*,,Х% N™ЅЌž–˜ЁЈЎЎЕБЗМЎ…hŒЇАДСЗЕзэ~Ž’•˜–ƒQ}ЌЅЄЂ]>BCC+)#&()**€0*&)*39oАЖЃЁž›™ЁЂЋЖБДЗЇƒWh~uЇЃжс–Є›˜ž•–‹‹’–w‘ƒAGGA13,+*%#$&!$"!(.12#G„–žœ—–Š|ЄУЖЭФСЕЁ”‹•ŠМОтюœ‹„˜›–„OIŠ‘’ЇŽICEB:<.+"**%)..+*00"-kЅЄ—Ÿ–ŠjvœЗкбА›Ђ‹ˆ—Ѓ’ЃЃИщШМИЂЄАЛДБЉЂ—›ЂЏu.-UC !*1.!)0**&.,("9u–ЋЕr^ŒЃЌДВСЦЯЉŽ˜™o”œЕЪЎwk„–ŸЅŸЁœ—–”ЊŸ^@Ec]>($$.%),&$*188€7V•ЃЏЛА˜Š™‹vЁУйжЃ‰Њž’ƒœЎТЖЇŠ‰Ž™›•—–’••›ЊuIMQ<.(&,0+*%#$11.5&E’•žЈЂ‡‘w™Ј•ВлсАƒƒœ›ЌЧДЂЊТЂ|•˜”‘Ž—˜–Ž‚t[@9&-3(&"&--,()$#+1B2>h–ДТЉЋЃˆ\žФНЎЗЪЧВž›nŽˆwЄЈЈЅЁ™••‰‘‰‹ž|WkŠVAA3$0,*-20,)$"" #F{Ѕ•œЈЊЃˆ—ЗАЎЏМЊЇœ’–ˆЌЌЄ™˜—Ѕœ•”}‰‚ƒxvЌБƒIT`G51511.1,**&(-39@9TžЈœŸЇОЁ™ЊИЋЋšЊЉЉБ—™…kžЈžž˜›—ЁЂ–’}™Ÿ˜ƒ™•Ђ„A^ZG%.)(*).1$.*+-0898@‰ЎЈЅЊЇЂ™ЁЅЌЎБЋЏЕ˜žЂ’ЎЅ’—–‘ž˜žАpžЛФД”ŽБ”FMC)-+%$$+€”&*-035?N0Q˜ЌКЂЋРБŽЉЎЌЉ›НцИŽžЕЂЫЗ–™ЄЂЇЅЂЃŸž™•ЊЎbNO9!>>:*))$*(!&+,04,#7„ЊЏ™ЉЋЎЉЇЊЉЈ—ДхёА˜ž™гЇЃЧИ—{zЎФЅŽ—››‘Ž–НOMU@;73++%**+%%3-821-&W™ž–ЂЈЖЋЂЉЉ€_АЖВме›ЏЕФЂ‘‘‰”‹vДЌŽ‚v™Ђ”‹‡‘Ÿa;("4485,*,0-%".54-(3Ez•~ˆŽЎЌДЉЃЇБАКШмЏ„žžЩрЦžˆoer˜‘Žw……Œ‘•’–œŠ‚U$0285-.22+%-04341SLV’—›ЄКДЏ””™ЅЏВСЕŸЅЅЕўўаЁqVwЅЖЌЁŠ••‘”‘’™ЕЁB.17-&*-*"-.*5>&04c›ŒЇЩИНЎƒ˜ЁЃЄЄЅФМЋ›™гїЫŸt|™ЋЂ‹Š‘’‘•ЎЂYC3,>."&.2,"$.99A--Jp‘ЃЕгКŸ’™—•’™Ї’zcˆЫЖЉhr‰—Ÿ~}Џ—˜ŒŽ’•ЕЉ‡T<%1&$#,,.$! -^P8435.59;129A>:**!>3[^‹Ё–ЊДЛММЖА•ЊЎЫЏБДЋВЌЂ’”‘Šˆ’ƒ‡‰ˆ~}Œ™ЈДЩЏ\SEH52,:;,,++(?%,ISF1uКЦНЏЎАЛРЛАЊЎДАЇЋЎЊЏЎЉ™”›‰‹„Œˆˆ„„…œžКr9#102%"#"!$&"$7VG3CŠТЫЏЏЌЗКМВЋЈЋЋЈЋБЌЎЕ•””•’{ƒz‡‹Œ…ŒŠ•˜ЄБS0E554+*%#(&>90:JЄО‰’МШЌРЕЌЄЂЃЃВЛВВЉБt‡—˜žД‹‚xƒŽ—Œ˜••˜ЩЃ;3289<744L%$%!)3:5>@G„ЖœМѕњЛДДАЈЇЅ˜ЊеМСДФӘ’ž™Š|iƒv„ЄЊ„œ–…ЛЗv>32>;4+11)%*+%$$*+2, -`ЇДИйзЂ’ЇЎЌЌЉ’–АЏМКЌЖЋЁ›jPO–’ž•ЅУ››€іЁЏЩаБT2++5,)($&"+254%0+)..WUjЊœЅЅЃЋЕЗЖБ›™ЖЕЗРИпЮТЃxen‹Žu~‹ŸЈЅЃŸЁЂЋФФŠVQ3@:307:,+,357327?4,J]ЊЋЋЇЃЅЉЋДЕ›КВЅЉЊЇЧгРЊ–}{œЎœЁЁЉИЂ‚™œˆ~žкн—J(CI9424.((+(,0(,3, @ET˜НРЎЋЂЃЁЋАЉЉЎЏЎ•ЊБОЏ’Œ…‹•–™Ё™›~’ŒŽŠ‘ЧяЫQ4^I+,,+%-*$#"*+(>IIoЋОКАЌЎЎЅ`UmŠЛЎ—’ИФЯЛЊ‹‹€№”›œ™‘‘‹”’tЏгр[Q?1:410%2&%,&-ac7,IF:F9 >@E< "(&,0+29ISB>gЅŽ‰mkac`b]aPOev~z‰˜tkqdjbYdzOLG33?$8EIG9"#-$!#$$11%9T‚—Œ‰Žqpd]gpikqwkz{p‚‡•ƒra[[EUЋC0:@1)E,7-%159)-021!)-1.&$5^x‰Š}x{}urjgbbhnˆƒxoo€BrUL[`81QmUcOFC<23&"-&1)#%%&2.,&-*&++*T‚˜›uqnomj`aWUPhvremh[TUaqOPSIY‹ŸuB8$2531+(0;.-5!&#*)#.Tt…ujntnajc\borpnoh`iurxaWEQprm\89@@;4"4@`$#%"210$G825gŸŽ’ƒwnjca[dpnnqkojnun`meY`~ŽŠ•‚k>34:,$&"-BJA:(%)-"+)&$%);[iknrmohiddgru}zjemiicihjpzvwjj~h9HS;1+"@HGE*%(0+>33;@*2JˆЈ~u`cchmwz{una`aaЩTV`O9TdaUmŽj{d1-;#>AELO.+**00);HV7+5,(1bЂ™ŒnqwrhkkjИ^[hqjgWLN;Una\qn{U$-4)>::;94)*7#*".*$"Sd.5BkЎИЂqghkiw{~zvomhogi]OO€xqˆkpˆЅЁ–iIJI$@ "-&,&&! :[t^>&3b‰›uSagjnkvvtnopojmxaSUi|Ќ‹‹ЉЄŸŽT*,4‚Q-%#.+&&*0*.-2VE(>c•jentoqvvuqtkcedhcUO:Qƒx‹…„‹u:3FBeeW1$)$32-&0+-4 &W?@&$.7Pw}p{ppv~…~tmd`^ckreWSMhuwxwtre@:2(!*(1$%.3J}Žzvvenzttovz{‚}wWBV[-V]O„™ŠwmqW9c`aaj[$)%:(.5.#)+*0("#I^0CIQSa\UYgcmguŒŠ}QS`b]^jz–•—Ž…h^\TQZ]r]Y7*90,&-19$).15:5"7:^zrnehb[[€АHa}ˆ{u`e[]dngoƒwˆ‚•ko]EBQYjtmb*:GB3+8.?;73+045-#3&H|{^ZUIOVN^iir|uqMLWWi~’ЋКВеЩiv`Oikja‹iI)"?AB@?77942&,#%&,<7a‹{k^ZUieko{w|p{kF1Qqqi›‹ƒˆbjg`k^?St‚p}O*-8523:))2.(0,++0„*>okzgZU[`hpzu}x‰wV3Up{w–ƒЖкHZVW[\\"Swpm|E9BC:&*)*$&:7),+%, 2Sqzni`bepgpvzŽ{M0EEHPrznЈМbn[`QT\[\Y\C[[+;BA,0+)&"37+##…,",0,&?\TU^i`Z[Ow”‹™˜‡haYcTb‰ФЩgSG[Z\M!NWVVmi;BA2<@-&(,&&+!)"Qrmad]S:>Si‚ЌЌaeYVZqdokЪ‘‡zmeo|}}ohg^cnL$-@H $$55€60,.!"&+ JYbv‚aA1Vt‚ˆ{‘—žvZbS9\p~Ÿ‚;5QUbddkgiYZ\kmF9CghG5+-)-%2"%-)5.,1Hhuz‹|^QgaLijБЎpSweaYo~”ˆkCHTO\ZcbgSGVdpH;F`G31+),("(**!Aja`vp]ZZFcx]‚ЏЖ~LI[jv’ˆ{r…iJY^gjSSVacZSYLZQ?>.-8?!).!!$)2%*Uhx—~~qO.j‰ƒjŒ”–zg`>Y`NopxemneaWQLSU[E%9@epkop–j^i…~|pjntwYQO8huobYQ\U^^[Eba`OPedavAd]F+-+,03*"&&35,(45h|n|rqjddtx}v~x{`[bq[wnn]hZW]gxU7cƒ•„]\YzvHQM.455$%-+(.*1+-5J,;^j|m`rˆ{Zqrik[iŠЗ}Pe\ƒIh{bctnvrhihj`[^iYPSC9?<,1&*"+2<*9)!*]wubLrƒzwttvdАФ}k\aИxdƒxdMFtgOZdgaS^WƒkIOS;5<5,$!%&#("!$#%Lib[jp‡qqbauzЉЁc|{a—t^^NcTCkQGGajZVMMceF8.2@B@9)-+%)*25"3\cCPZ~{uie{‡МzQ\pЄЏŒhH22H^`S>GS]b][Z^W[B%3.477.5)(%,)1,8NQNZeduƒ\Z^ncw|Œxnmmƒї§œj:#CjwkPYa\ZZ]bbxA0-892%8-)!%!!37+,4VgSm–„ŠwV^gitnkŠwg`dЊсАk>1),4.44+5<7%45##(,CFgcoquwŽ…Œukkh]‡Žt|dW]eZVZVY>;:IQQ]Igx}9*1@F9@>+>7#19A@0#$#<2SLdd^iŒ—‰‰{\r}„…‰xix{jcVLUZHEAJLN:ZPcpzPM5B**!GJ".&;7 )!BSA)P‚‹…}t~‰›Š{qr|}tqxuxvmbZY[`\QMSJTBFLNQh^V5 1$$"$%,!9TT,9[Žwƒvˆ‡vvjocq}vzzvkUT[^YH<8MIWVPWajim‰I%C3>0-*,!%"!&+*13v]eŒ–v•…tigneuƒ|xp|g9J^]ewU@LL€UTPV^igZˆ53075701:N+"$)35371epŒлпŒ|}ro{a|Ўž|މ`YZYL9>+4;GejBUT^Qƒ]@2.3171&(5.$(#"&-,%S}„ЗЖp\rwtm]g}qn‚qmd-!H\`dUio]amr˜ˆT7"$$,0%,4$.543$83)L?Wm}hrnip‡ŒzT[{ˆ‘—М’oH@GP[?JLekojihov•‘qSM.<8<3.<>(-073,"88&EOdtwpqthiq‡—cwtmmqj’ЈƒoYJ@^oWnnm~iHbbZHgЎЕ’I$?H<2*)7(#$(*5*21GiƒŠ}nkgjt‡Svnpv~]‰…w\ZTVNWbUicMYYZWV[œЧНI.NA&)+,**€00&&%":C>O|‡vz‚ˆ\p9&?[‡wgj…ŽŸ…gZCV\a]iTOS[Q\B\|ЂЗvSG383-224)8FABj~‹~w”ЄSF\…ŽЇлщЎŠ‚‚…egaei[`ZMGOVeO^jŽЇ‹}V*3;+)4.. #+;?7IJc…‚{ЈСЋZ;WnimrpSm™pjJckhnS[YZUZQOtŽŸЃ™Ѓ‰]4;W:&84! &JM< !‰uWj‘ƒЊQ]Qrpmhqxe\UQCLM;t^U4Ctc[oЈЊ™N.$S;3#>0*%&1)!)V+S\E\–ЅЛYoeW|ˆ”‰pkzrn`]Pdb][Uu›dPTdn``}‡ŽЁc:0(1.85%(.9C3:.?!;7[u[„r{B2a`kz™‘^ba]e\^^db[\[ShY:,Pqk[rЊРК\1*N<8>+24#90B3eїћњїјјєјјїћ§ћћ§§ћјћћ§њ§љљћўјћћљњјїѕїњћћњїћљљ##!с5B3SpЊї§љѕјїљљ§јљјјѕїїњћљљ§§њњ§§ўњ§§ѕљћљњјћљјњљјј§љћљљЇћ!+$#4??HQLЎљћѓёѓєєїјјїљњњїјјћњ§љјћћљћљљјјњїјјћљљћјњћћљљћњњљћ &*30%9I^]Тљљыяёѓѓѕѕїєљњљњ§ћћњїњњљљјзљ§ћљјїїјјљћљјјљљїїљ-++25H<4G?pтљњєљњњјтїњїљћњћјїїѕѕёѓѕѕјњћљћјњјњњјљћљљЫћ§ўў -,$,9BQF9;Gœщљљјћљљњњјїїѕѕєїјїїѕѕљјњјїјїјїїјј§љћљљћћљћњ§§ш &!!,8<7)E2;Їяљљѕѕїї§љїѕѕєЫёѕѕєѕїњїїѕїѓєѕїљїїљћљћљњњїїјљї !!.12*9@\S5eЧѓјєїїѕљїѕѓѕѕљїїћѕѓїѕїїўљїїћјћњњјјќљћљћћп .-345JG@*aЛёљїјњјјљћїјїјјїєјњњјїјћљљћљћћйљњљјїїјјћљјћњ+9 !*G@G5+74eНЭуєёєѕѕѓєїјљѕїїјїљїљїїїјїїјїњјњјјіљњљћ б#.<9+(*C‚зжкэїјњїѕїњћћљјїѓїјїјїѕѕїљјјљљїљњњјіћњљ)9 ц ;:8@9>B28Ћбёњїїѕїѕїњјїїњљњјњїјјјћ§§љјјљњњўљћћžљU# %+01(1+.A.YУєљїѕѕѓѕєєјјїљїїјћјјљљњјњњјјћјїѕїњћ§§ћљљћxO$ #:0079P3Vсћѕѕѓїјїјјљѕ§їјїїўјѕѕћїњћћјј§књљћћƒc #5717&(8^УљћїєѕѓєїѕїѕѕєїљѕјљїїњјјњѕѕљєљјљљћјјкКОC+,*%",5?FCFHIHA`дљ§їјћљјљїѕїїўљїїјњЭїљєѕљїїјјљњјљјЫкзz2@ " )8:@<FL8@bнћјѕїїњїїѕѕєїєѓєєѕѕ§љїѕѕїьљѕѕїїљјћј›ЏЫШЁi7 "в!18.&>BB?>0<2љ§јѓѓєїїѕїјњїјљљњјњјјњњјћљљјїњњјлТюёШЕ™zG>4,&+*&771541EuЋьћљєѓјїїћјњјїѕѕјјїњјњјїјјЩљћћ§§њњћЈЏНИЋ…Y0 #%,*11>7A,SJBЇђћєєѕѕєјѕєєёѕљјїїљљѕєїјћјјмљћњpœv„}x…n;@3).+$%&73;?A9>aп§§§јїѕѕўєїїѕўјѕѕУєїѕїїјћњѕїѕїњљ„ЁпЂЄлЖЂœC   !(+"3"074725cлјљєјјїјјїѕїїљїїљгѕљјњњјїїљјћkbƒŽŽЕКЊ~e@&)  +0);:C "F;?,-1AEINM]^jCjсљњѓѓєђѕїїјѕїїѕШјљњ58LjZQimw‰’’~unO(15.*%(9@?GNNBEOhЗ§§їјѕѕјђљљїїЧљјїљїњњћљuIFGV2g……™ЉtŠƒj>"# !&"%5:B15ABHGOGeх§њјѕїїФјљїљјњњјјњњѕѓјdZJG@FFmƒŸМЗŠq…‚M>G  )3.A@A%$^И§ћћїїљєјѕїѕјїїњЯљZ>2#LNZx}{…‚}„‘ŽvM+%,"!""$-151;@.0MТћћѕѕієїјћћњјїјћћ€ГY[|LF55,USm‚ЁШЌ…j[#+"(&$$*#7$"-AF42[зљ§љєїїѕјњјћїњјїѓєїgWeG? 0jZP]ˆ˜Ž‘Б‹}L+  &*%.%%(#-3),4bяћ§ѕїїѕјњњјљ§ћїјњј\^S.bt1!VSUC\u‡}Œ”Џ—p”x"" $(&$?,ƒёћјѕѕИїљїїѕљїѕљљјUWVT:,MMSWWhbY|x{m…™™НЃI !%".&"#(AŒјљјѕєєљњњјјњјјЪїhZOPIE5 J}‚uwmvumurqr„[ #.&%)( ",B8288HЯљ§јѕѕЛњјјћјљљјјt\]^JVPYJabWO8rŒzmhc^НЭu  &+&  !&(4?7.3vщ§ћѕѕїїѕїѕїїЦѕїjmQQMNFMZObhYVhb`W]]ev[e^?C7&%- $"%$()+128*9<{є§јєљїї€џѕјљљћћˆvVSWb7!OOEHL[hhe]bujSh[Q%$, )09)%,00<4OLѓ§љїїѕїєѓѓєїє—hTgirYrQIFi[i`hda\koŽm\E1"0>2-"!$4>43&(-5AMILЁљљ§јјїљїјѕѕїЋw@miiu‡u0&?OQmehYTmbm|r]9EZ@",SB"%,?cPY>I—ћ§љѓїїјњњјјЃŒme~qdŠ]IF:LNerc[emnr…^Yak450&!+(89CA<9YЫјћѕѕ€™јљѕzmnp~mN`UVH3SOnpmdg`]bhgbjP\M02-%)(""+04<;!*<„ућ§єљѕїѕїѕ…ŠitvoeadMTa8;FUmknag[OZg`[MVL&))$*!,(#.;9;3!C}юј§јјљљњјt”Ўttgc]`YVUU^`bZ`a\^]]˜p`UHPQa1# !#%""$&*4??2L\ћљњђєѕїјTEd–ŠTQahiOUNM`jbcc`gŠuPiOQOPY[O73 . #$$(0?MP8I3ЋћљєѕїјљїNWoxG5IЎўўўћњњ§ћї§ћ§ћ§ћњњћћ§њ§ћћ§§ћўћћўњћћхњћћ§ћћњћњ47FHajA5Їўўћњјљњњћћћњћ§ћ§§їњљљњњћћ§ћћњќћ§§ўў§њћўћћњ§§ўщ§љ;0+HTOBN]еўўћњћљћњ§њћћњћє§ћћњ§ћ§ћћњћ§§ћ§њљњњэћљњњ§ћ§ћ;7>t[TJN@uўўѕљћћњћћњњћћњњћњћ§ћњіћњљњћљњњћљљњјљљћћњњыљњњћ8B\dWU?+8ˆђўўљљњњљўћњњёћљ§ћњћћњћћ§ћ§њћћјњљњћњћћњњх§ћ§њћљћњ0033>GO?BG\Аўўњљњљњњўљћћ§§ћњљљњћќ§њћњње§њћћњњћњћњћ§ўў§ћњњћљљњ*179:AHB8OLQЭўўњњћћљћћ§ѕћўћ§ћћњћњћ§§јћљњњћљјњњќ§ўўћћь§ћўћ§§.45703>G88?.bўўћљњњћњњћ§њ§ћћљњћњћ§§ћћњпћ§ћњћљњљјљљњћњћњћћ.,(*$!.;?L9WpЏўў§љњћћ§ќћњњљљњћ§§ћ§§ўћ§§юћ§ћњћљњћћњљјњњћћњћћрњ""$&,7:ABAU]OЕўўѕєѕїјљњњћћљњљњњ§ќћ§њћћњњљћћ§њћћќњљњћћвњљљћњ&348EJidШўўєѓѕѕїјњљњљљјљћ§ћћњњљњљћћњцћ§њћњљљњњћњћњњјјљћћ",188№@PF7FArцўўїјљњљњњѕћљљјњ§њњљљјјњѓљњћњњљњљњњћњћћъњћў§#!!(030+5?ZM8BSЅўўњћљњўљјјћљњћљјјњљћњћњљљњњћсњћњ§ћ§ћ0)$*550-.4?<7NEJНўўћјјљљ§јљјјїјћїјљњљљњњљјљјћћоњћњћљњњљњјљ1#&#(,3589CLSi^Cxыўўћљљњќљјїјјљњљўјљљћњћљљњњќћњћњњш$&#"((<9:;?IIC(4vсўўљњњљ§ћћњњљњњљњњљњљњњћћдњћћљјїљљ§§њћњћ§:L4)##2>>H89>QPG^Лўј§ўњњ§§њњљњљњїћљњ§ћћњњјјмњћљјјљњ"80!&)#)-378B5WНгмыѕјљљјјљўњљљњњћћњљјјлљњљљјјљљњA.,(&&!*,GF:JMT‚уўћўјљјјіљњјњљљњљјљљњњљљїљњњСјљћњ5.0"55:;5@S™њћєјљњљљњљњњћћњљњљњљњљњљљјњњјјљјљљњљњњл§ћJAL#! 59?9>?VFEСњўўљљњљњљљњљљќњљљњњљ§ћћњњјљљћЪњћњњћ„H;$*+(&!!27897?AL9hеўўћљњњјјљїїљјљљњћњњћћљњљњњљљњљњњ§ћћоњЗiH9&1+*"$+*99:?TN$^ђў§јњћњљњњћѕљјјљњћњљљїјјљўћњњ§сћ§ћћњШС„04F:52&(#",32129,>;JЕўўєњљљјљњњћћњ§њњќљњњљљљњљјљњњћћЬ§ћћњћљњКдЕ;+1<51%((!&)),.34>EC7gЭўўћјјњљљњљјјњљјљїјљљњ§љњјјўњћћњй§цєйa2I9.;9;4-.03548?@>BBF^кўўљњњћњјљњљљўјљљњљбјљјјћћњњћљњјњюјїЈZU,$>:3.!+:;48?<;ALN>uјўћјљњљљњњ§њћљљњњљћ§ћњњћњњћоњћјјљђчеФЖm;.>A@#.-55--002)I[bОўўѓјљјљњћњћћњљљњњўјљљјўљњњљњйћєыѓнМt0*4EF,.2.)+42:;8:FG:@^сўўјљљњћљјјћѕїјїјјўљјјљјљйјњћњжцњюзЅP+9I)*+3401408;<59745-–ўўћјїљљыјљњњћњјљљњљњњљљњњћћњљљњлѓўўѕыжЄiZA41,1;<40-112158((HrДѓўўїјїљљњэљјјљњћљњљњћњњ§ћњћћ§§дњЎЮкзхнК<7;A:0734732#!-2?A@Јўўћљјјњњ§љњћћўљњњбћ§ћћњњљњљФТИНбаеснШ—aQ;995&08.%.??@:8GTCVОўўљјјњ№љњћћљњњћњњљњњћњћћЮ§ћ•КИЮбазкуЪЕ‘Y2PA8..93.3,+078;OV>Geпўўњњљјљјјљјњљљіјљљњњћћљњ§§й‚žЩШИСбмњпдРr&9\?3243-.(%#&"075BFkўў§љљўјљљіњјјљљњћљћњњзћљљћ…ЇМШааШнгЭйдЏPB18345:;9*+*18;8;@9EЎўўќєјљњњїљћљњћњљњљљўњљљјгљЃДЉЈЕЈЏБЧЪЩУЌd>:B9984<951(387;LEJNdАўьШаўўљљјЩњљњљљјљљњћЅŸœ’ЌЭдЪЯаБЅЂNAO5.2 J;7+-+3IG<*Eˆ‘~ЇўўљјјљјљњўћњњШљћƒ‚‹{—ЎМШжбыЭВОЖqAmVA.1,.-MC>4%)EFEJPT`d:hхўўјїїљјљљњњљљХњљњњћ§ˆˆ‰АЊžЈЋАЩбЩВЗЌp.GE`тў§їјљљіњјљјњљљњњљљњвАВ’’”‚ЈРпѓюФБЧбДe?S`..)18*..1.839@GB@F@NwМўўјјњљњљњњљљўјљљЯm’‘•’–™НпэЯЊУбдж•>:>B-12>4>A@:745><5<9;0.3+18:.<;8™ћўўљљјљјјњћЮњљјїѕЈЋž•rŒЏНЌ˜ЌЉШЧУЋЦЧЏo2-;3.4748:3.1:34:J@+-]ЕўўљјїјљњњћњљљЮњјЅœ™{ЄЃЌСОТТЪЧОасжТŒI!EL143<3492((227.+.74(JЫўўјјљњгћљњљњњћњЊЋФ—Ž”ƒ{ЁЅЛШШЩаећуНИ•AQ?0824;?<5*+*2))В2IH05YкўўћјљљњњљњћњљњљњљљЏБВŒ—xS‚ИЌЊЖеребсЩЮЮЕiPA,:25511*#""&51"1dѕўўјљљњњФљњћ§њћњљњЈЂ™‡АКƒˆЁ›Ё‘ЃРЮНЪЭпбЕؘ;EB?<@LYLiŠСўўћ§њћћ§§ћћ§њ§њ§§іў§ў§ў§ў§ў§§ћѕ§њћњћћўћ§ћ§§ш)*.5958GJYL^jeУўўљјљјћњћћњќћ§ў§§њћ§ћ§§ћћњў§§ћ§ћћв§ћ§ћ§ћћ§ў"&5,47FEOCQ]pдўўѕљѕљњћњ§њ§њњћ§§ўћ§њњћ§ћ§јўњ§ћћ§§ћћњу§ћ§&!.:9??CCYNFZN}юўўњњћњћњћћ§§њ§§шћњњљљњјћњўћ§ћ§њћњћњћ§§ћ§§ўй*(+8:3-?INbQLN`А§ўўњ§ћ§ћўћўњћјћњўћњјћњњћњўћћљ§ћћЫ§ћ§ћўћ§ћ§§ў§ў32-,-?:279HNFE[IOСўў§љљ§њ§њњљћљњјњњћљњљњњз§њ§љћњњћћ§§ћ§§ўњўњћњ§;1+*#-)AF:;EMaroQ}пўў§њ§њњћљњљљњњѕ§њ§њ§њ§њ§њћћўўћћ§п5&7)&,?I:GI^TL+8hбўўљћњћ§§ћўћњћћЦ§њћњћњ§њ§ћ§ћ§ћ§ћ§ћ§љ§њ§ћ§ћўћў@Z4+*#7JH[EEPd]SnТўї§ўњћћ§ћћяўњ§ћћњ§њ§љњњћњћћ§§јћ§њћљњњћћнњћњў(B?8$%02!)*2;?HFI5ZЖСРйѕћњњљћљљќћњ§њњ§љ§њњћЫ§ўћњљћњћћ§њћљњњћA1.4$+*$#!+4)A[UJQOL‚Яцѕўњљћљћљћљћњћњњў§њњ§§љњњЗћњњљњњћњўћћњћћ§343!(22AHAJCBU”ёяѓћњћћњњ§њ§ћ§ћ§њ§ћњћњњ§њњћўњњљ§ћћњћћ§х>GP%%+$$AMMGMQTCJСыўўњњћњљ§њ§љћћѓњћњћњ§§ў§ћћ§ћћд§ћ§ћ§§ўgAA(*2+-$"#,>;8ALFBQ?J>G?HJTСўўёњћљњњћћў§§ћћњўњњѕ§ћњњћњ§ћ§ћ§§ћи§Є’4*,72,.%1*.8<@<;NTOJ{кўўћћљ§љ§њ§љћњњњ§љњљ§ћћіўњљљћњћ§§ћћм§ЭжЏW0I;->@59:44CCFCBLQSUUrтўўњћ§ћћњ њћжњ§љћњћћўћ§ћћњўйтч–NU0$8B5&&5IBFC@GJNabSўўњј§њћўћўњ§§ћіњ§ћ§ћ§ћћњ§§ћњтћмаИЎd47GH3018;8C93BA:?VjwЩўўюћљћњћћ§ћ§њ§њћћўњ§њњтљћљ§ћўћњљћњ§еЮкԘ]2%>GN,2994.+,??71:3@FL?ocSЖўўчљ§љњљћјњњћњўљњњ§њњљћњћћўћћмўћў{ЃЕ‰–’…˜|PLP8:-.35:1925:?C@H?Etшў§ћћћњћњћњњў§њњќљ§њћћўўњњн§ƒr•›’НЦРvF:0H;"&750%.*5?AACGNPQАўўћїњћћўњћћ§ћћќњ§њ§§ћ˜њћњћ•œ‚—ЈЗАРВЄtSJ43<.?075@97EGLOOYdYiдўўћљљћљњњћњўћћњ§§ћћњћўћ§ћ§ћ§§ўS~wЄЂЅЕОНЉ•pI2TI0<8>??C8-FEHEbcYYwыўўэћ§љћјћљљњњљ§љ§њћњ§ћћ§йў§ўLbŽ˜”ЛФнМЌ•Y;a;:.930-7<@:43G3BUVxўўљњ§њ§њ§њњљњћ§гњћњћњ§њћUtЁЅАУЖЋЗЇ„H;1&(+8>JGL93@;E?EVMWЖўўјњўўћћћ§њћћњњЧљ§њ§њ§љћљњp~ru‡uwvœЇ•~o^>;A48:5;HFEF?;E;^Wb]uТўюЩаўў§њ§њњўљњњў§њњЬ§њ§h`ad`zžЂЄŸxuwC5N<-( $ZOMI?CB[YL?T›ЅŠВўў§љћњ§њњїљћњ§њћћўћћЪўEQVJbˆ˜ЃЊСЄ—˜m@^M<21)8>[TSE;@MP[\gbjk>gыўўјњјћљњњћњњў§њњЦ§њўћўO^]ujx|…œЂЃ‡„c13F&55OLOC?4GFSMbYPGOkИўўњћљћљћњ§њњФћњњ§ћћ§§‚c%dbeN}œ˜БК‚˜™[;A>%%+4>BFF>AEOGEMVSMJLxЧўўћљћњўћўћћњ§њ§њ§њњЧB^^Q[\^hКЫЉvŽЏЈ|7%>*-%;.BHOSEIEGINS\ZPd˜щўўћљћљљњ§њћљ§њњŽћњњљњZckb[m‡ЏКпОžžŽz—‡],78)4577LCE7?B@JELG?HCB–њўўљњњ§љћљћњўњ§ћўљћјјnnga7OoŽxd‚wžƒ|—‘‰c)$-40#IALAB>G@??;UM35bИўўњЖ§љћљ§њћћўњ§њћњњoZWW;eg|‰‹••Ÿ–ЁАЁ‹`5?F:+<>;FA@9<2E?<438<>Vйўўћљћљћљ§ћ§ћћњњЦ§ћ§nt][WFMgj’”ЁЁКшЧ—}nBI3*48?IP@A<7:87;92NW;9cчўў§ћњ§њўћћнўћћњ§љ§wtYV9I{tcxЃДЉЇЯЁЄ™‘]A828??я>C>@<95.(+:;+,7tўўўљњњћћњћћ§§ћаotbTr…HQnchWkŒЁЁЄСЊ~Ќ’;8)9::E@<873(,1,+7418B:™ўўИљћљњњ§љ§њ§љ§њћrztiZc]edkk~ou‘”‘ž™аКZ))%3@NCCG>35.**01+-..-PŸўўћљљћњћњћћФњћњњ{qgobdV+`–œŠ‚’Œ…„…™p35?9G:?C<0*!)-53BBFCAHWрўўћљћњћћ§ћЮixpieir[oouhM‰ЌŠ‚…{t”лэ‰#0:7><54>1"".33.E7?…ўў§љћњњЦ§љ§њ§њ§w|iijuY`egprnnrtqv}‡xƒtPUT5F?I;2,20)18@79>E@1?>‹ўўњХ§њћћ§ћ§ŒedkrTA@E^b\^gt{zrv||~n‚pkE2GEH;5<75*,8BF,:9BCC[W›ўўњХљњњћњў™wgwx‹oˆi`M?d„nzx~{v}}ˆžqbNFTZQ;?C9<10E@E3.05BHWT[ЕўўТњ§њњљћљ§С’N‚‚‰ŽЁ…MHLTxu{x~|vzxŠ{nTjnS.-275)0cQ-12JrWdS[Ћўўњљ§њћњћћкВ—{{‹”ƒ‚™n``0Ncaw‚trwt{pvzM-PFE7G>??я0.),!?EIJSLgрўўљљƒћљћњњ‹„|~ˆ™‚kxgn^Ich‡ƒzzvtq|}{mt^5ATI2,:>3-97509BC@O&>Oљўўћњ§њћњћ–ސ„||qcgnZE[p~}opetut`k\C??**37<7<>>5.79B>@IB0]œўў§њћњњЦўС‰|~vkngi`grmo{u|x|pv}th`aetJ(9*;;32;*13&2548,@CLChpЌўўЛћљћњўiZkДŸoZ|wvdadhwwjtjuxž‹`wae^`ttiJI%3L+*(1$47413NUWH^.EРўўњљ§њ§ўw=§џ€<џ=џўw;џўw5џў€4 џўw2 џw0џўw.џў€-џ.џўw,џў€+џў€*џ+џўw)џўw'џ(џ(џўw&џў€%џ&џўw$џўw#џ$џўw"џў€!џ"џўw џў€џў€џў€ џ џўw!џў€"џ"џўw#џў€'џўw(џў€)џ)џ)џўw*џ*џ*џўw+џў€+џўˆ+џ+џ*џўw+џўw,џўw-џ-џўw.џў€/џўw 0џўw 1џ 1џўw 2џў€ 3џ 3џ 3џ њјћљ§њ§§ўљ§§њя§ћў§љћўўњљњ§ћљјљ§§ћљљћјјћљћљљрјљљћћљљћљњјњљїїљћћљ§њњ§§њљ§§љ§њ§§ћљ§§њ§§ћ§ўћ§§ѕњ§§јљљћљјјљљ§њїљћћјњњћњ§§іўњљјјїјћ§ўў§јњљћљ§њў§§љѓ§ћћњњљјјљћ§њ§§љћљљћљћљљљ§њ§§њљћћ§ўћљљсњјњјћњїїљјљћћ§њњћљћљљј§њњћљјћљћћњяљјћљјљљћљљ§њљћћљ§§њљћћјњјјљјўћ§§юљ§ћћљљћћњњ§§љћјјљјјљљњњјјїћћњљјњљљ§§јяљћљјјћљњћљ§§њ§§љћћјіњћјјњјјљћ§§ѕћјјњњїѓїљ§ћћьљћћњјњјљћћјјїјўў§§ћљљћѕљћ§ћљјјїјљћћь§њњ§§њњ§§њјљћћњѕјљћ§§ћћњјљљћћјњљўњ§§ћў§§њ§§њњ§њ§њћљљўњ§§эљ§§љјѕїљћњ§њ§љљћљћ§§ўњљљљћљћјћњљљљњ§§љљњўў§ѓў§§љћљћћљљћљ§§ќњ§ћљљќјљћљљћ§ў§ћњ§§љћљјїјљћћїыјњљћљ§љјјћћѕїїј§ћљљћљљђ§љћћљ§њ§ћљљњњћћќ§ўћ§§њ§ћњљћљћћјњљ§ћњ§§ћўљ§§§љјћћїјљћљљћјћ§§ќљјљ§§љ§єў§§ў§њ§§ћјјћћћљјљљ§§ўњ§§ћћљњњ§§ћћљћ§њћћ§њјїјїћ§§њ§њ§ћ§§ўњ§§њўљ§§ћчљћ§љћћљћљљћћљћљљћ§љљћљћћљљѕќїјњћћьљћћљљњћћ§ўњ§§љ§њњћј§§ћњљњњјјњљњћјњћћ§ћјїїљљћћјњњїїђјњїљћљћ§ўўћўўњњїљњ§њ§§њљ§§ћњ§ћћљљњћ§ўћў§§ўњ§§ѕњљћѕјћјћљљњњѓљїїјїјјљљ§њњ§§їў§њ§њ§§љ§§ћўћ§њ§§ўу§љјјљ§§љјњћћљњјјћљјњњјјњњљћјљљњјїјљћјјїќјљћ§§ћљ§ўњ§§ћљ§ћљјњњљљѕјљјљћћљњ§љћћцљћјјњїјїјњјјњћћјњјјљћћљјјњњїіјћћ§њ§§љј§§њўћљљ№ћјјњћћљљјјњљњјљјјёњїјљљћћњљћњћћњ§§ўњ§§љўћјјёњљјјљћњњ§§њ§њњ§§љћјњњћ§§ќљћћ§§ћўљ§§ћњ§§њ§§ѓљћљћћљїљћљћљ§§њўљ§§њљ§ћљљћјњњќ§ћњјјыњљћњћєїљћљћњћћљљњљћћ§§ћ№јњјјњћљ§§њ§ћјїјћћ§њ§њњ§ўљ§§їњў§ћћљјјћћцњ§ћљљњјћћљћњњћ§њњћћљћћјћљ§§вњљћћјњљћјћћњїєљњўў§§ўћњ§њњћљћћ§јљћћљјљљћљљ§§љћћ§љјњњ§јљ§§њ§оњљљћћ§њ§љјљ§ўў§њ§§њњљљ§§љњњ§§јњћљ§§ўє§њ§њ§јјћ§ўўњњї§ўўћњ§њљ§§ћј§њњ§§ћўњњс§љћћљ§§њњ§§љњћљљјїѕїјљ§ћљљћ§§њљљѕјћљћњљњљљћљљ§§љћћлњ§§ћљњљњњў§§ўў§ўўћњћћљћњ§§њњјћјњњћљљћћњљћњљћ§§ўѕњ§§ўў§§ўўћ§§§ћљ§§юљјћћјљћњ§§љљјјљјћ§§ќћ§ћљљ§јћ§§ќћ§§ћћќљјћ§§ћћјљ§ўў§§њ§§њљљ§њ§ћћ§§ћљјїјњњїјўњјјћїњљћљљњћљћљћљљћѓњјїјјљћљћћњњўў§јњљњњ§§њ§§їѕјћљјїњјљћљћћ§ѓћїјїљљјћљљћћ§§ћ§іўћ§§њћјјћ§§њњў§§љјњњћќ§њћ§§њр§њљћљњћљћћ§§ћћјћљћћљјјњњћљћўћўћјјљћњ§ўћћўў§ћњ§§эћљјњјљљћћїјљ§њ§љ§њ§§њљ§ћєљјњїєѕїљјљљћћљљћ§ћћ§§љљћўјћћпјњњїљљћћјњљ§њ§љћњ§§њњ§ћљљ§ћ§њњћњљљќјљњўўћ§ћљћљљљћ§љљњњћћјћљћ§§љљї§њљћћњ§љћћ§љќњ§њ§§љѓ§њ§§ћ§њ§§њўўћћўў§§їў§љ§њ§§љћћѓљјњјјћ§ўћўњњ§§ћђ§љћљљњ§§љљ§§њљљїћљћ§њ§§ћ§§ ў§ъїљїњљљњјљљћњњјљљ§§њњљћћѕљћљљћљ§ћћљ§§іљјњћ§§ћћњ§§ўћ§§љћ§§ў§њљљ§ќљјњљљјщїѕїїјњњј§§њљ§ћћљћ§§њ§љћћъј§ћћљћ§ўћњўћћўў§ўњћљњ§§њїњњ§њ§§ѕјїјњћћљљњљћћљљћљњ§ћ§§ћљћћјћњњ§§ћјћ§њ§§ўњ§§ўѓ§њњјїњљћјћљљјјщњїјћљљћћљјњ§љћўў§ћћ§§љћћѓљћћјћћњјљћ§§њњј§ўўћў§њўўћјњїїјјы§њњћљљћљћћїјћљњњћ§§љ§§ѕћљ§§ћ§§ў§њўў§ћњўўёњў§§ћљ§њ§ўўљњјњњљћљќњћћљљјњ§ўў§ўў§§јўћ§§њ§љћћњњћњњ§њ§§њћ§њўўњњїў§§ўљљјјњњј§њјљљњјљћћјљљхћњјћ§њ§ўњљ§§љћћњњјјћ§§љћњљ§§ўъћўћўњ§§ћљљјњљїїјњјћњј§§ќњ§њћћќјћљ§§§ў§ћћўљјјћњ§љћ§§ћўљћћњњ§љћњћћљћ§ъњћ§§ћћјљ§§ћљљњ§њњў§§њ§§ќњ§љћћўљ§§шћјћ§ћњїљјљ§ћ§њњ§љћљљћ§њ§§ћёјїј§ћћ§§ўћћ§§ћ§§њ§њѓ§ћћўў§§њњјљћ§§ыњјјћљјјњћћљјјѕїѕјњјїћћђњћ§њ§љњњљњўњњћћ§ѕўћћњћїћ§њњ§§ў§ьєѕїјћјљјљљњјїљїјјћљјјўњћћїљњњ§њ§§јћћњћљ§ќњ§ў§§ыћўў§§љљњљљјјљљјљ§њљљћћј§љњјјхњјјћјћћљћ§њ§њ§њ§њ§ћ§њ§§њ§њ§§ќћњ§ўўпѕєљњћљћљћњјјљљјљћјјњћјјњјљћљљћ§§љљћ§њњ§ўў§ѕў§§љћњњћљћ§§њ§њњїїњїјјсїњјјњјјњјћћњњљљњљљћљјћљєњјљћљљ§§ѕљњїјљњ§ћў§ћћ§љ§љљ§ќљњћљљўјїїњїљћљљјјљћ§§їљїљњљљјљјјћэљњ§њњ§љћјћљћ§њ§њћњ§§ўћљљјЛњљћљјјћјјљњ§ћ§ћўў§§љјћ§§ћћ§ўў§ћћјњјљљћ§ўў§ћљћњњљјњћўў§њњ§њ§ћљљћ§§њљљћћъљјњ§ћљљћјјћјњњјјњњјїљћћљќ§љљћћ§§ўњ§§њу§ў§§ѕєјјћћљљјјљћњ§ћћ§ћїјљћљљћћ№њљѕєњљћљћћ§§ћћљ§§ѕљћјјћ§ўћљљ§§єњ§њ§§ўљљћљјљљєњћћјјїїљїјїјјљї§њ§њћїћљ§§ћў§§ћњњ§ћњ§ћ§ўўљ§љљ§§њўўњїјјљљњњјњїїњћјњњљљћљљэј§њњћљћ§њњљћјљњћћ§ўўїњўћў§њ§љ§§єў§ћљћјњјїљїјјѕљћљљјњјћљј§§ћјћњћљљћўљћћј§њўў§§ћ§§іњ§§љїћ§њљјјьљњњћњњјјњњљ§§љћљїјћљљЯјћљјљњ§ћњ§њ§њњћ§§њћљњћљљјњљљњћўўћўњћћўїљћљљїјјћљ§§№њ§љћјњљћљљћљћљћњњ§ћњњ§њ§њњ§§ ўћѕјїљјљљњљћћљљќњ§§ћћљћ§њ§њњјў§њњљћћ§§њ§ўљћћљ§тљћњћљ§§їїњјїјјњ§њ§њ§§ћћ§§ћћјјљљћљћјћ§§ћћљјњѕ§љљјїѕєѕјїљљ§ћљ§§нўљїљїјєјњјїїјїљћћ§§љћїѕѕљљћ§§љћјљћ§§љќћ§њ§§ќњљћљљћ§ёњ§њ§§љјњјћљљњјњњўјћћћ§њњ§љљјїјљы§њ§§љљћњ§ћљјљ§ћљјњљњ§§ўњўў§ђњ§§ћљћљћћљљѕљјјљѕњ§јѕјњљћћ§ћћќљњ§њњ§ўўњњю§њћљћ§њ§јљћљћљњ§§ўў§їћљјњїјљљјјћѕјїјљљїїљ§§њњўњљјъљћњјљљ§§љњћ§§њ§ћћљњ§њ§§њћї§ћ§ћўћ§ћ§§ўўћўўё§ћ§ћњћ§ћ§ћ§ћњњћћњ§ћњћћ№њћћњћљњњјљљћњћћ§§јћ§§ћћ§ў§§ђћ§ћ§ў§ћ§ћ§ћ§њћћћўћ§ћ§§їћ§ћћњћ§§ћћ§§ћ§§ўћњњљЮњ§ћ§ћ§ў§ћ§њљњћћў§ўћ§ћ§ћ§ћњћ§§ўћ§ћ§ћ§ћўћ§ўў§§ћњњћњ§§ќћ§њћћўњћћ§ѕћ§ўћњћњ§ћњћћњљњљњњљљєјњћњћћ§§ћћњћћ§мњћћњћћњћњ§§ў§ћћ§ћћњћћ§§ћњћћ§ћ§ћ§ћ§ћњњўљњњћњћљ§ћўћћњћћўњ§§ћњўјњњќћљљњњьћњћћњљћћ§ћ§ћ§ћњњћњћњњђћљћћ§ћ§ћ§ћћњћњњќљњњћћ§§ћњњыљњљњљћћњњћњћњћљњљњћћњњјћњў§§ћњћћљњћњ§њћњњћњњћњћњ§§ўћ§§ўћ§§ћћњљљњћћэ§ћ§њћљњћћњћњћњњљњљћћ§њћ§ў§ћ§§єћ§ћћ§§ћ§ћ§њћћ§ёћ§ћ§ћўћ§ћњљљћћ§§ћјњћњ§ћ§§ћћќ§ћ§ћћ§њћ§ћћ§ўўљћ§ћўћ§ћћњћћ§ћ§ћ§§ўњћћўњћћќњ§ћўў§§ћ§ћћњћљњћћљњљћћѓ§ћњњћњ§њћ§§њћћђ§ћћњћћ§ћњћћљљњњ§ѕўћ§ћ§ћ§ћ§ћ§§§ћ§ћћњўћњњљћ§ёћ§ћћњћћ§ћ§ћ§њћњњ§ћњћћї§њћ§ћ§ћњћћў§ћћї§ћ§ћўћ§ў§§ћ§њћћњћњћћђ§ћ§ћ§ћ§ћ§ћ§ћ§ћћч§ћ§ћ§ћ§њћ§§ћ§ћћњћњћ§ћњњћ§§њљњќ§ћћ§§ќњ§ћ§§ўћ§§їўћ§ћ§ћ§њћћўњћћњћјњ§ћћњћњћћјїљњљњћњћњћћїљћњ§ў§ћћ§§ѓњ§ћ§ћ§ћ§§ћљљњњњћљњ§§њњћћњћћ§§§њћњњћњљњњљћћњћћў§§ў§§ѕў§ћ§§ћ§ћ§ћ§§ўњћћўќћ§ћ§§ђћ§ћ§ћћ§§њ§њћћљљіјљљњћњњћћ§§чћ§ћўћ§ћ§ћ§ў§ћ§ћ§ћ§ћ§§ўћ§ћћўу§ћњњћћ§ћњљћњћљњњћћњљљњњљљћћ§ћћћњћњћњњљєњћњ§ћ§ћћњћњћћ§§ћ§§њћ§њћњћћќњљљћћ§јњћћѕњћћ§§ћњћњћњњўљњњяљњњљњћњљњњћћњћњњљљњєћ§ћ§ћ§ћ§ћ§§ћћњѓљћњћћ§њљјњњћњњяљњњћћњњљћњљњћ§§ћ§§љћ§ћўћћњњіљћњњћњ§§ћ§§§ћ§ћћћњљњњ§§љћњњ§ћ§њњћљ§ћ§ћ§ћ§§јћ§ћћњћњћћћњћњћ§§ќћ§ћ§§ћўњ§§ћўљњњђљћњ§њћњћњћњ§њћћјљћњћћ§ћњњјљњњљњћћ§§њљљњњћњњ§§њћўћ§ћ§§ќњћћњњ§нњћћњњћњћњљљћћ§§ћњћњњћњћ§ћ§ћ§ћћњњљћњњзћљљћћ§ў§§ћўў§ћ§§њћћњ§§ћњћћ§ћћњћћ§ћћњћњћћ§§њћ§ћ§ћ§§јћ§§ћћњњ§§іћ§ћ§ўўћ§ћ§§ћ§§ћ§§њћ§љћћ§§ќћ§ћўўєћ§ћ§ћ§§њћўў§§ћћў§ў§§ћљ§ћ§ћћњ§§ћћ§ўў§§њћњњћћ§§ић§ћљњћћњљјљњў§њћћњћ§§ўћћ§ћћњ§ў§ўћњћћў§ћњњ§ћѕ§ћ§§ўћ§§ўћўўј§ўўћњ§ћ§§ћћњњљћћ§њћњњьћњ§ћњ§ћ§ћў§ў§§ћў§§ћўўыћ§ћ§ћ§њћћ§ћћ§ћњ§ћћ§§ћћњћјњћћ§§њћ§њ§њћћщњћ§ћўћ§њћњћњћћ§ћћњ§ћ§§ўў§ѓћ§ћ§§ўћ§ћћњ§ћћќњћњљљњўљњњ§ћњћћњњћњћњћћрњћљњљњњћњћњћ§§ўў§ўћ§§ў§§ћ§§ћћ§ћљљњњћњљљњћћіњћћ§ћ§њћњћћљњћћњћћ§§љњћћ§ўў§§ўћњњѕ§ћ§ћ§§ўћ§ћ§§љњ§љўћ§ћ§ћ§§§ћ§ћћщ§њћњњћ§њћ§ћћњњћњњљљњћњўўњќћ§§ўўќ§ћ§ћћњ§љњћћњњўћ§§ўў§§јћ§ћ§ћ§§ћћя§ћ§њћњћћњљљјјљјњћћўњћћљњ§њњћ§ћћќўћћњњїћњћњњљљњћћњіљћћ§ћћњ§ћ§§єћњћўћњћ§§ћљјјњњћ§ў§ўўћўњћћўњћћ§ќћњћњњћў§ћћ§љћњћ§§ћњњћћ§ћћ§§§ћ§ћћћ§ћ§њ§§ќћ§§ўўюћ§ћўћўћ§ћ§ћћњћћњљњњўћўў§јћ§ћ§ћћњћћљњћћ§ћ§ћћ§ћќњћњ§§ћї§ћў§ў§ў§ўўѕ§ћћјљљћћњњћћљїњћћ§ћ§§ћњњмћњћћњћ§њњћ§ћ§ћњљњћ§њћ§§ћ§њ§ћ§њ§ћўћ§ћћћ§ћњљћћњрљћњљљ§ћ§§ўћњњћњ§ћ§ћћњћњ§ћћњћњ§§ўўєћў§ћћ§ћ§ћ§ў§§яћ§ћ§њњљњњћћ§ћћњњћћў§ћћї§ћћњћњћњћћњїў§§ћ§ћ§њ§§ьћ§ћ§ћ§ћ§ћ§§ўћ§§њњљћњњћњўљњњћњћ§§ћўў§њњћ§ћћњћћљњ§њњљњћћ§ўќћ§§ўўўњљљњћ§ћ§§ћћ§њћњњњћ§§њ§ћћђ§ћ§њћћ§њ§ћўћ§ўўў§ўўќ§ў§ўўѓћ§њўћ§ћў§ћљњљљћљњћ§§њњћћ§ўіћўў§ћ§§ўћ§§ћѕњћњ§§ў§§ћ§ћћ§ќћ§ў§§ўћњ§ћћњњљљњћњ§ћњћ§ћћјњљњћћ§ћўўшћ§ћћњњљњњћћ§ћћ§ўћ§ћў§ў§ўў§ћњјјљљњљњњ§§їћ§§ћ§ћњћњњвћ§њћ§ћ§ћўћњњћњћњњћћњљљћњ§ћ§ћ§ћ§њћњњћћњњ§§ћћљћњњћпњћћ§§ўћ§њћњћћ§њћћ§ћ§§ўћћ§§ћ§ћ§ћћњњћќ§ћ§њњљ§њљљјњћћ§ћўњ§§ќћ§ћњњћќњ§ћўўј§ћњћћ§ћ§§ќћ§ћ§§ўќ§ўћ§§єћњ§ћ§ћ§ћ§ћљњњіћњњљћњћћњљљњњљњњћњњ§§њ§§эў§ў§§њћњ§ћ§§ўў§њћњ§§њћ§ћ§ћўў§яћїјљњћњћ§ћћњњљјљњњ§ћ§њњњљњњћћ§§њћ§њћњљљзњћњћњћњћћ§ћ§ћўћ§ћ§ўў§§ћљјњћћ§§ћћ§ћћ§ћћњћњњ§ћљњњўљњњњћњњћњ§§ўњ§§ђћ§ћ§ћ§ћ§њ§ћў§ўўњ§јљјљћћюњљњњћћ§ћћњњљћњњљњћћ§њ§ћћ§ўўћ§§ћєњ§§њћњћ§ћ§ћ§§§ћњљљўћњњ§ћљњњўљњњ§ћнљћћњћњњћћљњћњћћ§ћ§ћћљћњћ§§ўўћћњћћ§ћћћ§ћљњћћ§њћљљћїњ§ћњћ§ћ§ћћњ§ћћ§ћњњќћњћ§§ћњњ§њћњ§§њў§§ћ§ћћњўљћћњїћњњћ§ћњћўўћн§њ§ћћњ§ўўћћњњљњћћњ§ўўћњћћ§§ћњљњ§ўћ§§ўњћћ§ћњћћњњћ§§ўњћћњљњќљњњћћќњћњћћњњћ§ћ§ћ§§ќћ§ћ§§шћњћњ§ћњћћњњћњ§ћћњ§њћњћњћћњяљјјљљћњћњћћ§њњћ§ћћњ§§ўћћї§ћ§ћ§ћ§§ћћў§ћћњіћњњљљјљњћњњћё§ћ§њћњћћ§ћўћ§њ§§ћћ§ћ§ћћўћњў§ћў§ўўі§љњњћћљњљњњ§љњљљњњљњћћњћћ§ќњћњ§§ћљ§ћ§њњ§ўў§ўў§§їў§ћ§ћ§ћўћћњќљјћњњѕћњћћ§љњњћћ§§§њљћћўњћћшњћњћћ§§ўћ§њ§ћћ§§ћћњњћ§ћњњяћ§§ћљљњњљњћ§ћћњћњњћй§њћњћ§§њ§ћ§ћ§§ћћ§§ћћ§њћћњљћў§ўў§ўў§ўў§ћћњћ§іћ§ћћњњљћњћћќњћњ§§њћ§ћћњ§§ќћ§ћ§§ўћ§§ўћўўў§ўўђ§ўўћњћћ§ћћљћњћћіў§ћ§њћњћњћћ§њћ§§ѓўћ§§ћњћћ§ћ§ћ§§њћ§ћћњћћї§ћћ§ћћ§ћљљњњћњњљ§§ћћњ§ћћњњћѓњћњћћ§њ§ћћњњћћ§ћ§њљјјќїљјћћя§ћ§§јљјњњћњљњљљњћћщњ§ћћњљїњћћњ§ћћњ§ћњћ§ћ§ћћї§ћ§ћ§§ћњћћђњ§ћ§§ћ§§ћћњљњћћ§љњљљњ§їћўћћ§њњљњњћ§ћћњ§§њћћѓњљћ§§ћ§§ў§ўћ§§ћњњћћ§ћњњћ§§ћ§§§ћњћћћњћњћ§§ћћ§ћў§§ћќ§ћ§ћћј§ћ§ўў§§ћћљњљћ§ћћњњ§ћњћћќњћћ§§ў§ћњўћњњћљ§ћў§ћћ§§їњћћ§ћ§ћ§ћјћ§§ў§ў§ўўњ§ў§ў§ўў§ўў§§јў§ў§§ћ§ћћ§њћўћўћ§§§ћўњњ§тћ§§ў§ў§ўћў§ў§ў§ў§ў§ў§ў§ў§ў§§ћўўі§ў§ў§ў§§ћ§§њћ§§ў§ўў§ћ§њў§ў§ў§§ћўњўћўўћ§ў§ў§§ўі§ў§ў§ўў§§ўўќ§ћћ§§ќў§ў§§щћў§§ћ§§ў§ў§ўћ§ћ§§ў§§ћ§ћћё§ћњ§њўћўћў§ўћў§§щў§ў§ў§ў§§ћ§ћ§§ўў§ћ§ћ§ћ§§єўћ§ћў§ў§ў§ў§§ћќ§ћ§ћћ§ў§ўўўћ§§ђћ§§ў§ўћ§ћўњўњћћшўћ§ћ§њћћў§ў§ў§ўћћ§ў§ћћ§ћћ§јў§ў§§ћ§ћћ§њ§ћћљ§ћў§ў§ћћўњ§§їћў§§ћ§ћ§ћћюњ§ћ§ћўћћўў§ў§§ћ§ћ§§ћёўћ§ћ§ћ§ћ§§ў§ў§ўўя§ўћ§ћ§ћ§ћ§ћў§ў§§ћћ§ѓћ§ћћњћњўћ§§ў§§њў§ў§ў§§§ў§ўўй§ў§ўў§ћ§ћў§ў§ў§ў§ў§§ћ§њ§ћў§ў§§ћ§ћ§§ў§ў§§јћ§ћ§ћўћ§§јћў§ў§ў§ўўў§ўў§ўћ§§єћ§§ў§ў§ў§§ћ§§іћ§ћ§ћ§ћ§§ўўь§ў§ўћ§ћўћ§ћ§ћћњўћ§ћ§§јћўћ§§ўћ§§њћ§ћ§ћ§§љћ§ћў§ў§§ћ§ў№§ў§ў§ў§ў§ў§ўў§ћ§§ќћ§њћћ§ѓћў§ў§ўћ§ћ§§ў§§щћ§§ўћ§ћ§ћ§§ў§ў§§ћ§ўў§ў§§§ў§ўўі§ў§ў§ўћ§ћ§§ъћ§ћў§§ўў§ў§ў§ў§ў§ў§ў§ўўљ§ў§ў§ў§§їў§ў§ўћ§§ўўщћ§§ў§ў§ћћ§њ§њўћ§ћў§ў§ў§§хў§ў§ў§ў§ў§ў§ў§ў§§ћ§ћў§§ћ§ћ§§ўћ§§ыћ§ћ§ћ§ћ§љћњћћ§ћ§ћ§ћ§ћћ§§ў§ўўё§ў§§ћў§ў§ў§ў§ўћћњўњћ§ў§§њўћ§ћў§§ћњўћўћ§ћћў§њњћ§ўћўўї§ў§§ўў§ў§§љў§ў§§ћ§§ўћўўђ§ў§ў§ў§ў§§ћ§ћ§§§ћ§ћћњ§§њћћ§ћў§ў§ўў№§ў§ў§ў§ў§ў§ў§ў§ўўў§ўў§єћў§ў§§ћўћ§§ћћќ§ћўћћ§§ћ§§№ўћ§§ћћў§§ћћњ§њћ§§їў§ўћ§ћ§ћ§§яћў§ў§ў§ў§§ћ§ћўћ§ћћѕ§ћ§њўћўћ§ћ§§ўћ§§ћќўћўћћќўћ§ћћћ§ћ§§ћћі§њ§њ§§ў§ў§§іў§ў§ўћўћ§ћћ§ћњћўўћћъўњ§ћ§§ћ§§ћ§ћў§ў§ў§ў§ў§§§ћўћћ§љў§ў§ў§ўўј§ўћ§ћћњ§§ўў§§ђў§ў§ў§ў§ў§ў§ў§§ќћ§ћ§§ў§љў§ў§ўћ§§їў§ў§ўћћњћћ§њћўћ§ћ§§оћ§§ћћ§ћў§ў§§ћўћўћ§§ў§ў§§ћ§ћ§ћў§ў§ўўў§ўўѕ§ў§ў§§ћ§ћћ§§їў§§ћ§њћћ§§ћћў§ўћ§§ўў§§§ў§ўўђћ§ћў§§њ§ћћњў§ўўў§ўўў§ўў§ўћ§§ќћ§ћ§§шў§§ћ§ћ§§ў§ўћ§§ў§ў§ў§ў§ў§§ќў§ў§§ўї§ў§ўў§ћў§§ќў§ўћћ§§ў§ўўј§ў§ўћ§§ўўќ§ў§ўў№§ў§ў§ў§ўћ§§ў§ў§ўў§іћў§ў§ў§ўћ§§њьљ§ћў§§ћ§§ў§ўў§ћ§ћ§§ўў§§ћў§§ћў§ўћ§§ўў§ўўюћў§ў§ў§§ћћњћћ§ћ§ћ§§їў§ўћ§§ў§ўўў§ўўў§ўўу§ў§ў§§ћў§ўћ§ћ§ћ§ћў§ў§§ћўњћћў§§ўў§§јћ§§ў§ў§ўў§іћ§§ўћў§ўў§§ў№§ў§ў§ў§ў§ў§ўћ§§ўў§§ўћћќ§њўћћћўћўњ§§љўћ§ћ§ћ§§ћћ§ћ§ћћѕњћћ§§ћ§ћў§ўўј§ў§ў§ў§ўўч§ўњ§њ§ћ§ћўњћћ§ћ§ћўћў§ў§§ћћќ§ћў§§§ћў§§№ћў§ўў§§ўћўћ§§ў§ўў§љћў§ўћћ§§ўђ§ў§ў§ў§ў§§ћ§ў§§љў§§ћ§ћ§§њћўћўћ§§ўў§ћћ§ў§ўўі§ў§ўћ§§ћћ§§еўћ§§ў§ў§ў§ў§ў§ў§ў§§ћў§ў§§ћ§ћ§ћћњћљ§њћ§§ћ§ћ§§ўў§§ѕў§ћ§ћ§ћ§ћ§ћћїў§§ћўћћ§ўў§њў§ў§ў§§ѓў§ў§ўћўњ§њў§ўўўћ§§јўћў§ўћ§ћћќ§ћў§§њўћ§ћў§§ўў§§єў§ў§ў§§ћў§ў§§ћў§ў§ўўў§ўўї§ў§ўћ§ћ§ћћў§ўўѕ§ў§ў§ўћўћў§§ўў§§ћў§ўћ§§іћ§§ў§ўћў§ў ўѓ§ўћ§њћ§§њћћ§ћћўў§§ќў§ў§§ўћ§§ђў§§ћћ§ў§§ћў§ў§§ўў§§ў§зў§ў§§њћћ§ћўћўњ§ћўћћ§ў§ў§ў§§ћ§§ў§ўћ§ћ§§ўћ§§ ўјћ§§ў§ў§ўўђ§ў§ў§ў§ўћћ§§ћ§§ўћ§§жћ§§ўћў§ўћ§ћ§ћ§ћ§ћ§ћ§њў§ў§ўћ§§ў§ў§ў§ў§ў§ў§ўўї§ўњўћ§§ћ§§ћћўњ§ћ§§ћў§ў§ўў§їў§§ћ§ћ§ћ§§ѕўћ§ћў§ў§ў§ўўў§ўў§њћњњљћ§ў§ўћ§§яћ§§ўћ§§ўў§§ў§ў§ў§§ўў§§ўў§ў ў§§ў§ўўћ§ћћ§§ў§§њћ§§ў§ўўќ§ў§ўўі§ў§§ћ§ћ§§ўўў§ўўў§ўўќ§ў§ўў§ћ§ћћњњћ§§ћ§§љћ§§ў§§ћћ§ў§ўў§№ћ§њўћўћў§§ћў§ў§ў ўљ§ўћ§§ћњњћ§§ў§ўўќћ§ћ§§ўћ§§§ў§ўў§§ћ§ћћњўћ§ћў§§їў§ў§ў§§ћ§§љћ§§ў§§ћћ§ўћ§§ќћў§ўў§ћ§§ў§§§ў§ўўљ§ў§ў§ў§§јћў§ў§§ћ§§ђћ§њћ§ўћў§ў§§ћ§§ёў§ў§ў§§ћўћўћ§§ўўя§ў§ўў§ў§ў§ў§ў§ў§ўў§§ў§§ѓў§ў§ў§ўћўћў§ћћј§ћўћ§њ§ћћ§ўћ§§љў§ў§ў§ўў§њћ§§ў§ўўє§ўћў§ў§ў§ў§ўўё§ўјћњћћўћ§ћ§њўњњћъ§ћ§ћўћў§§ћ§ўў§ў§ўћ§ћ§ћћѓ§ћ§ћ§ћ§ў§§ў§ўўќ§ў§ўўњ§ўљњњ§§ћћ§ћў§§§ћ§ћћўњћћљњў§ў§ў§§јў§ў§ў§ў§§§ў§ўўљ§ў§ў§§ўўљјњћћ§ћ§§ћћњ§ћ§ћўћћўўћћ§§ћ§§§ўћ§§ќў§§ўўї§ў§ў§§ўў§§ѓў§ў§ў§ў§ўњ§њћћўњћћѓњћћўћ§§ў§§ћћ§§љњ§§ўћў§§ѕў§ў§ћћў§ў§ўўќћ§ћ§§іўћў§ўћ§ћ§ћћњћњ§ћ§ћћ§§јў§ў§§ћў§§ёћњћћ§ћ§§ў§ў§ўћ§§§ў§ўўї§ў§ўћ§§ўћћќ§ћ§ћћ§§ў§ўў§ћўћ§§ўўњћўћўћ§§ў§јћў§§ћў§ўўћ§ў§ў§§їўћ§§ў§§ћ§§ёћ§§ў§ў§ўћ§ћўњ§ћћуњћћ§ћ§ћ§ћ§ћўћ§ћ§§ў§ў§ў§ў§ў§ў§§ђў§ўњўћ§ћўћ§ћћ§§§ўћ§§ћє§ћ§ћ§§ћњћљћ§§ќўћў§§эў§ўў§§ћњ§§ўћўћў§ў§ўўњ§ўћ§ћ§§§њ§ћћў§њњўўћћёўћ§§ў§ў§§ћ§ћў§ўў§їў§ў§ў§ўћўўќ§ў§ўўіњўћ§§ћњўњћћіњ§њ§ћ§ћћњ§§яћў§ў§§ћ§§ў§ўћ§§ў§§ўў§ўўі§ў§ў§ў§ў§ўўєћ§ћћњўњ§ћћњћћ§њўћ§ћў§§ћ§ѓўћ§ћ§ћ§ћ§ћ§ћўў§ўї§ў§ў§ў§ўћћќў§ўћћіњ§§ўћ§§ўњ§§јў§§ћћ§ў§§ѕў§ў§ўћў§ўћ§§ћ§ў§ўўў§ўўљњ§ћ§§ўћћ§њў§ўћ§ћћћ§ћ§ћ§§іў§ў§ў§ўћ§ўўљ§ў§ў§ў§§ ўќћўћ§§ћ§ђћ§§ў§ў§§ћ§ћ§ћ§§њћў§ў§ўўп§ўћ§ћў§ў§ў§ў§ў§§ћ§ћ§ћў§§ћўћ§§ўњњћћьњћ§ў§ў§ўћ§§ўћ§ћў§§ћ§§ўћ§§ћў§ўћ§§ёў§ў§ўћўћ§љћљћњ§§ѓћў§ў§ўњ§њўћўћћЭ§њћћ§ћ§§ў§§њўњ§ћ§§ўћ§ћў§ў§ў§ў§ўћў§ў§ў§ў§§ћў§§ћ§§ў§ўўѕ§ў§ћћўћћ§ўћћ§єў§§ћ§ћўњўћћ§§ќў§ў§§ўў§§ѓў§ўћ§ћў§ў§ў§ўўє§ў§ўћ§ћўћ§ћ§§ћњћњћ§§щўћ§ћў§§ћўћ§ћ§§ў§ў§ў§ў§ўўь§ў§ўћ§ћў§ў§§ћ§ћћўў§ўўћ§ўћ§ћћќ§ћ§ћћ§ўўћћї§ћўћў§ў§ўўћ§ў§§ћћќ§њў§§яў§ўћў§ў§§ћ§§ў§ў§ўђљјїјљ§ћљћљ§ўў§§ќў§њ§§ћњ§њљћћ№љћ§ћљћљћј§§њћћљћћєљћљћњјњњјїїјјў§ђљњ§ў§ѕљјљљјљњ§§єљћљљ§ћљљјћћјјљч§ћћљћљћ§њ§љ§ћћњљљјњћћјјњўў§ђљћћ§§љљєљїјљћ§§љћіљћћјјћћњјњњљіћњ§ўў§љћњћћјўћљљј§ћўњњ§§ўўјњћїјљ§§ћћљнћ§§ћјњїћљњљљћјњїјїѕњћћњћјјћњњ§§ћћјћћљ§њљ§њљўў§љњ§§ћўў§§ўњљљћєњћ§њњ§§љїњїјјњњћћ§љћћљыјњјћљћћљћњјћћљљћљљјњљљќћљљћћљњјїѕњљћћўљјјћўљјјїњљћјћљјћ§§чљћћјѕїљїїњћљјљљїћћїљїљњћ§§цњ§ћљћљћњјљћљјљ§ћњњјљ§§ћњњћћўњћћљњ§ў§љћјјњњјљљ§њ§§ўљ§§љњћўў§њ§§§ћљћћјљјћљћљ§ўў§јћљћјњјјћћјіїјљљѕљ§§ў§§§ћњјј§§њ§§ћ§ќћљљћћ§§њљћћіљ§§њ§§ћљћљљшњљ§јјїњўњ§њљљјљћћљћјњћћ§§ћюљ§њћћљћћјјћњјњјћћњњћ§эњћ§ћљћљљћћљјјљїњњћљљ§ћљћћ§ўљћћћјњљљћћыљњљћћјљљј§њ§љљћњњ§ћљ§§ў§ўћ§§эњљћ§§ћћњ§њљљњ§§њ§§ћћ§§ћў§§љ§ўљ§§§љћ§§њс§ў§ћљћћњ§љљїљћњјћ§љћћљћљњ§љљ§§ћћюљјјљјјљћјљњ§§њњћћљљоћљћњњљљј§§ћљљћћљ§§њћњїјјћћљјњ§§ћљћћљєћњ§љљћљљћљћ§§ўњ§§ћ§ьўћўћњћўў§њ§ћљћ§љљћћ§§ўњўўѓ§ўўњ§њ§§њ§§ћљљ§ўњљљўњ§§ўјњљњљ§§њ§§ў§ўњ§§ёўћ§јјљћћјјћљљњ§§ў§ќўњњ§§пљјћљћћљј§ћћњїјњљћјњљљјљјјљљћћљњљћћ§њћљљћў§њњћьњ§§ћ§њћїєњћћ§ў§љћњћ§§ўњ§§њљњћћњјјњўљјјћч§њ§ћћњўўњћўњњ§ўћў§§њ§њњў§§ўѓњ§ў§§њ§ћўўћў§§ќљћћ§§ўњ§§ўь§њњ§ў§§ўўњ§њњљ§њ§§ћљљў§ўўќћњ§љљђњ§ћў§§њљјљ§њ§ўў§єљ§љ§љћљљ§§ћўў§їњљ§§њ§§њ§§ќњ§§њњ§ўћ§§ўњ§§ћўњ§§њњ§ћў§ўўѕ§њњљ§§ўў§њ§§ ў§њљ§љњјїјћљ§§ќў§њљљњ§ћћљћў ўћ§ћћњњљ§§њў§єјљћ§ћўўњ§њ§ўўў§ћћљљјјћљљ§§§ўњ§§љћ§њ§њњћћњ§њј§ћњћ§§њўўўћўўі§љћћ§љўў§ўўўћўўњћ§§њњ§§ўљ§§§њ§њњћљќ§ћљ§§љњ§њњћљ§§њљїјћњ§§ўь§њњ§њ§§њљљћ§§њњўўћћ§§ў§єњљ§њў§њ§§љљћћ§љћў§њњћїј§ўћў§§њ§§ѕњјљњњљљ§њ§ўўўњ§§њўўћўўњ§њљ§§ўўљ§њњ§јњўў§ўћў§§љћ§§ўљћўўћўў§§ўђћ§§ћљјњ§њљљјј§§ћњ§њћўў§ћћљљњўўёњљ§ўўњ§љћ§ўћњ§њњќћў§ўў§ћћўўћ§§§љ§ўўќћ§њ§§ыњ§ў§јћљћљћљњјљћљћћ§§ўў§њѕ§њћ§њ§њ§ў§ўў§ўёњ§ўћћљ§§њўўћћњ§§ўў§§љљ§§ўћў§§њњ§њ§њўўї§љћ§ўў§ћљљћї§љћћјјћњ§§љ§ў§§ћўўўњ§§ћњљ§§ўўћўўћ§§ћњћњњ§§јњћљњ§§љ§§іћљћћљєїјњўў§ўќћўћўўўћўўћ§ўћ§њљљћћўњўўхљћћ§њ§§ў§њњўћѓ§єћўўњ§ўўћљ§ўўћћњ§§ў ўћўіњћћљ§§ўў§ўў§ёљњ§§ўљљјћњњ§њњћћ§ўљ§§љњ§њњ§ћўўєћњ§ўўћўў§њ§ўўјћўњ§§ўў§§њїћљћљћћљњўў§јћ§§љњ§њўў§ѕћњїљјћњљ§њўўњћўњћћ§§ќњ§ћўў§ћљјљ§ўў§ўњўўцћўўњўћўўњљњїјјєњјљ§§њў§њљјјѕљћјћјјљњ§њўўўћўўіњ§ћў§њў§њўўўћўўћўё§њћ§ћљј§љ§њ§§ў§§ћў§њњ§§ўњ§§ўћљљў§ўў§ћў§§ѓћўў§њ§ћўћ§њ§ўўу§ћљљјћ§ў§§ўў§њ§§њ§ўўћўњўўњљњ§§яњ§њ§§љњњ§§њ§§њў§ўў§њ§ўў§ѓљ§њћњњўњ§ћњ§ўў§§њћўў§ўњўў§ћў§§ў§љњ§§ћћўўћўўћћўў§ўўэ§њ§њњљћљјћ§њњљ§ћўћўўіћ§њўћўћўћўўўћўўєћ§§њ§ћўћўўћўўўћўўўћўўћїњћ§§ўћњћ§§ќњљњ§§љњўћўћўћћ§§ўњ§§ў§љњ§§њћћўўњ§№љјјћљњљ§њјћћњ§ў§§њњљњћў§§ўќ§њ§ўў§ў§ўљ§њљјјљћњњ§њњўўўћў ў§љ§ћѓљ§§њўўћўћћўњўў§ћў§§ў§ўўћўўћ ўњ§њњ§љ§§љњћљћ§§ўўнћўўћўў§§њ§§ўўћ§ћљћњћњћў§§ўўћў§ўўћћўўћўўћўўюњ§њћљћћ§њў§§ћў§§њ§§ћјћњјћ§ўў§ќљћљћћћљјјћњњўўћўў§њћўўў§ўў§ўњўў§љћљ§ўўћўўћ§ўњњўў§§љ§§ўў§§ћў§њ§љљўњўўќћўћўўўћўўќћў§ўўљћ§њњўћўўўњ§§ьњўўћўћўў§њљњ§њњ§њ§§ўўћ§ўћўўњў§њњљ§ћ§ўњћўўњ§§њ§§љљ§њњўў§§ўњўўѕ§љљ§ћ§њљћњ§§њ§§ўњ§§§љћўў§ћњ§§ћўћњ§ўўќ§њ§ўўќћњ§њњћљћћњ§§щљ§§њ§њ§љ§ўўљњљѕљљњњ§§љўўњћў§њ§ўўћўўњ§§ўљ§§њ§§ў§њў§њ§ўўіћўў§њњ§ўћўўўћў ўў§ўў§њћў§њћўўщћў§§ћў§§ўћљ§§њ§ћўўћћўћўўљњ§§њ§њўўўћўўћ§ўћўў§њћўјћўўћўћћљљ§ўњўўћўўўћ§§њјї§ў§§љ§ўўќ§њ§ўўћўў§§ќў§њ§§ў§§њ§§ўўћўўўћ§§ўўњћћјўљ§§іўњћћўљњћљ§§эљћљ§ћћњ§њњ§њљњ§§њ§ўў§ќњљћўўўћўўќћўў§§ќњ§§ўўћ№§ћћњ§њљ§ћћ§§ўўћў ўњ§їўћўў§њњ§ўў§њў§ўўћї§њўўћўћњўўљ§њў§§њўўўћњњєўњўў§§њњўўћўўўћўўњ§њћ§§ўўўњўў§ћўњњќћўў§§ќњ§њўўіћ§њљњўўћў§§љњљўў§§њњўњў§ўўќћўўћћў§ўўћўўўљ§§ўќћўћўўўћўўѕћўўљ§ћўћўћўўњ§їљћљ§њћ§§ўўєњ§§ў§§њњ§§ў§§ћўћњўћћўўћўў§ў§ўњўўѕћўў§ћљћљљ§ўў§ў§їњ§§њљљњћўў§ќћў§ўўћўљћўўћњћўў§§њўўў§њњў§ўћўў§ћћ§њћўўћў§§њўўўњўўяћўўћћњ§љњ§§њћћўћўўњћўћўћўўјљњћ§§ћљћћќњ§§ўўѓћў§§ћљњњћўўћўў§ћћњ§§њ§§ўњўў§ў§§ћўў§ўњ§§ўњ§§ћћўћў§§ўњўў§љўњћћђ§љљ§ўћ§њ§љ§ћћў ў§ћњћћћњћњћћшњћ§§ўћ§ћўћ§ћ§ћ§ћ§ћ§ћћњњћћўњћћљњ§§ћ§њћћёњћњћњћњљњљљњљљњњњў§§ћћ§§ђћ§ћћњћ§ћ§ћ§ћњћћ§§ћњњћњ§њњћњћћў§ћћлњљћћњљњћњњљў§ўћ§ћ§ћњњ§ћћјљјљњћњ§ћ§ћ§ћћњћћњ§њћњњљюњљњћћњ§ћў§§ћћљћњћњњћў§№ћ§§ўў§њљњћћ§њћњћћї§њњљћњћ§ћћѕ§њћњљњљћњ§њњ§тћ§њћњћњћћ§ћ§§ў§ў§§ћ§ћ§ўў§§ћ§§ћћњњћњ§ў§§љћ§ћћљћњњ§љњћћєњћњћћњљњњћњћћўљњњћњњћћњљћћўњћћњћіњљњљћњћњћњњќћњћњњўљћћ№њћњњ§ћ§ћћњћњњљјљљћќ§ћћњњєљјљјњњ§ћ§ћ§ћћњњћћљњћћѓ§ћ§њљљњћ§ћћљњњє§њћњ§ћўћћњ§њњљўњћћћ§ћ§ћ§§§ћ§ћћу§ћ§§ў§ўћ§ћ§ћ§ћ§ћњћњњћћ§њћњћћўўёћ§ћ§њћњњљњњћњћњњіћњћћ§ћ§ћўћћи§ћњљњњ§ћ§ћ§ћ§ћ§ћ§њњћ§њћћњњћњ§ћ§ћ§ћ§ћ§§ўњњћ§ћї§ўћњњў§ў§§ћшњћћњћњњљњњ§ћ§њњћ§§ћњћњћњњќљњљњњљљћњ§ћ§§ћћњїћњњљљ§§њћћњњћњћњ§§щћ§ћћњћњљћћњћњњћ§ћњњ§ћћ§§ћўњ§§ўђћ§§ўў§ћ§њ§ћ§ћ§§ћќ§њћ§§ћ§ћњ№ћњћњ§ћўў§ћ§ћ§ћ§ћћэ§ћ§ћўћ§ћ§ћ§ћћњ§ћ§ћ§§чў§њћњћ§§ћћњћњљњњћўњћћњћ§ћћщ§ћћњњћ§ћћњњћњћћ§§ћ§§ћњћћєњћњ§§ћћ§ћћњћћїњћћ§§ћљћњњћ§ћќњћњћћ§љўћњћћњћћы§ћ§ћ§ћћњћћ§ћ§ћ§§ў§ў§ўў§ћ§ћћђњћўћћњ§ћ§ћ§ћ§ўў§ѕў§ћ§§ћ§ћ§њћћў§ћћћ§ћ§ћўўњ§ў§ћћ§§ќћ§§ўўю§ћ§ћ§ћ§ћ§§ўћ§њћњћњњћё§ћ§ћ§ћ§ћў§ўћ§ў§§тћ§ћ§ћњњћњњћ§ћћњњљњљћњњљћћ§ћњњћћіњћ§ўњћњљњћћќњћћ§§ўъ§ћћўћ§њћћљњњћўћћњљњ§ћ§§їћ§ћћљћњљњњўљ§§ўћњњ§ќњћ§ўў§ўћўўўћ§§љў§ћ§§ў§§ќћ§ћўўёћ§ћ§ћ§ћћњћћ§ћ§ћћј§ћ§ћ§§ў§§љћўћ§ўў§§ўћ§§§ћњћћ§њў§ўў§ћћє§ћў§§ћ§ћ§ћћ§§ёў§ћћўћўћћњћћ§ћўўіћ§ћ§ћ§ћ§ћ§§јћ§ћ§ћ§ћ§§хћ§њ§ћ§ћ§ћ§ћ§ћ§ћ§ћњњ§ћ§ћ§ћў§§ў§ћўў§§юћ§ћў§ў§ў§ў§ў§ўћ§ћ§§ћѕ§ћћњћњћћ§ћ§§ћјњўњў§ў§ўўў§ўўщ§ћћљљћ§ћ§ћ§§ў§ў§§ћ§ћњћўў§ўњ§њћњћњњћ§§ћ§§ђћ§ћњћ§ћ§§ћњћњ§§ўћ§§ыњљњ§ћ§ўў§ў§ў§§ћћњ§ўў§§ўњ§ў§ў§ўўўћ§§§ћ§ћћ§§ћ§§лћњћњћћ§њћћ§ћ§ћ§§ћћ§ћ§ћћњћ§§ћ§ћў§ў§ўћ§§ећ§ћћњ§ћ§§ў§ўў§ћ§ћў§§ћ§ћ§ў§§ўћ§ћ§ћћњћњћњ§ћ§ћћўњ§§ћћњ§ћўўўћ§§ўћ§§ќћљњћћэ§ћў§ўў§ћ§ћ§ћ§§ў§ў§ўўј§ўћ§ћ§ћўўўћ§§ўћ§ћ§ћўўђ§ўћ§ћћњ§ћ§ћ§§ўўї§ў§ўћ§ћ§ўўћ§ћњћ§§ћѓ§ћ§ћ§ћ§ћ§ўў§ўў§ћў§ўў§ћўі§ћћњћўў§ћ§§ўў§§њў§§ћ§ўўіћ§ћўћў§ўў§§яћ§ћ§ћўћ§њћњћњћљњћћќњ§ћўў§§ћ§§їњћ§ћ§ћўћўўљ§ћ§ћ§ћўўќ§ћ§ўўьћ§§ў§ўў§ћ§ћўћ§ћ§ћ§ћўўњћ§ћ§ћ§§ўћћњ§ўўћћћњ§ћћњњћ§ћћ§ћћ§ыў§§ўў§ў§§ћ§ћ§§ўћ§§ў§ўў§§ўћћ§уњ§§ћ§ћ§§њћ§ћ§ћ§ћ§њћњћјєѕњ§ў§ўўњћ§ћў§ўў№§ћ§ўўћ§ћћњћњћњ§ўўњњћћ§ћ§§јћђцѓћўў§§ўўћўўѕ§ћ§§ў§ў§ў§ўўє§ў§ћњћћ§§ўћўўь§ў§§ћ§ћћў§ћ§§ўјїћўў§§њњћњ§ћ§§ќћ§ћ§§ќћў§ўў§§ћўўќћ§ћўўў§ўўј§ћћў§§ћ§§іњћњћњћћ§§ўўђ§ўћ§ћ§ћўћ§ћ§ћўўю§ў§ўћ§ћћљљјњњ§ћћ§ўўќ§ћњ§§ёћ§ћў§ў§ўћ§ћ§ћ§ћћќ§ћћўўјћ§ћ§§ў§ўў§ўю§ћљћњњћљњћћ§§ўћ§ћњњќћњ§њњўў§§§ў§ўўњ§ў§ў§ўў§ўњћ§ў§§ўўў§ўў§јњ§њћ§§ў§§јћўћ§ћ§ў§§ќћ§ћ§§ћўњћћ§ўћѕ§ћ§ћў§ў§§ћўўцћ§ћў§ўћњћћњњћўћ§§ўћ§ћ§§ћ§ўўљ§ўў§ћ§ћћљ§ћ§ћ§ў§§юћ§ћ§§ўћў§ў§§ћў§ў§ўў§ћѕ§ў§§ў§ћњ§ћўўћ§ћ§§ўўь§ў§ўћ§ўў§ў§ўў§ћ§ћ§ћўў§ќћ§ћў ў§ўќ§ў§ўўъ§ўћ§ћ§§ћњћњњћ§§ўћў§ў§ўўњћ§§ў§ўўњ§ў§ў§ўўє§ў§ўў§ћ§ћў§ўўќ§ў§ўўы§њ§ћўў§ў§ћ§§ў§§ћ§ћ§§ўўэ§ћў§§ћ§ћў§ўћ§ћ§ћ§§ўў§іћ§ћњњћћљћ§§эњћ§§ў§ћ§ћ§ћ§ўўћ§ћ§ўў§ўћўўэћ§ћ§§ў§§ћў§ўўћћ§ў§њњїћ§§ћ§§ў§ўўњ§ў§ў§ўўў§ўўѓћ§ўћћ§њњћ§ћ§ўў§§ў§ўў§њћ§§ўћ§§ўќ§ў§ўўќ§ў§ўўў§ўўўћ§§№ў§ћ§ћ§ћ§ћ§њћњћћўўњ§ў§ўћ§§ўћўўєћњћњљћ§ў§§ћўў§ўў§ўў§§ў§§ћіњ§§ўћ§ўўћ§§§ћ§њњђљњњћў§ў§§ћћњћњњўћњњ§ўў§ўў§§ў§§љў§ў§ўћўўњћ§§ў§ўў§єћ§ћ§њћћў§ў§ўў§ўљћўћ§ћўћћќўћ§ћћќ§ў§ўўў§ўўќ§ў§ўўђ§ў§ў§ћ§ў§ўћ§§ўўў§ўў§ќћ§§ўўў§ўўњћ§ў§ћ§§ўћў ў§њћњ§ў§ўў§јћ§ћ§ћћў§§ѓўћ§ћ§ћ§ћ§§ў§ўўћѕ§ў§§ўњ§ћ§ћ§§њћ§ћ§ћ§§ќћ§ћўўѓ§ў§§ћ§ўў§§ўў§§ў§ћ§њ§ћћћ§ћўћ§§ёћ§§ў§§ћ§ћў§§ћ§ўўњћ§ћў§ўўђ§ў§§ћ§ћ§§ў§ў§ћћї§ћ§ћ§§ў§ўў§љћ§§ў§ў§§§ў§ўўђ§ў§ўћ§§ћ§ў§ў§ўўў§ўўя§ў§ўћў§ў§§ћ§§ўћ§ўў№ћ§ўўћ§§ўў§ћ§ћў§ўўќ§ў§ўўљ§ћ§§ћ§ўўў§ўўј§ў§ўћ§ћ§§ўў§ўўћї§ћўў§§ў§ўўћ§ћ§ћ§§ўў§§ћљў§ўћ§ћўўў§ўўђћ§ћ§ћ§ћўћ§ћ§ћўў§јћ§§ў§ў§ўўћ§ћ§ћўўѕ§ћњћњњћ§ћ§ўўі§њћ§ћ§ћћњћћќњ§ћ§§љћ§§ћ§ћўўљ§ў§§ћ§ўўќ§ў§ўў§іћ§ћ§ћ§§ў§ўўћєњ§ћ§ў§њћћ§§ўўќ§ў§ўў§јћ§§ў§ўћ§§љў§ў§§ћ§§ћў§ў§ўўќћ§§ўўў§ўўўћ§§јћ§§ў§ўў§§ўўћ§§ўќ§ў§ўў§ћ§ўќ§ў§ўў§їў§ўћ§ћ§ћўўњћ§ћ§§ўўіћ§ћ§ўў§§ћ§§ўќ§ўў§§§ў§ўў№ћ§ћў§ў§ў§ўћ§ћў§ўўќ§ў§ўўќ§ў§ўўљ§ў§ўў§ўў§єћ§ћћњћћ§њ§ћўўў§ўў§§ћў§§ўћ§§њћ§ўў§ўўў§ўўіћ§§ў§ўћ§§ўўј§њћњћћ§ўўў§ўў§јћў§ћћ§ћ§§јћ§ћћ§ў§ўўјћ§ўўћў§ўўў§ўўў§ўўќ§ў§ўў§ўњ§ў§ўћ§§ўўћћўї§ўў§ћўћ§ў ўјћ§§ў§ў§ўўў§ўў§њў§ћ§§ўўў§ўўь§ў§ў§ў§ўћ§њћњћњ§ћ§§ўў§ћ§§ў§ўў§ћќњ§ћ§§єћ§ћ§ћ§ћ§§ў§ўўєћ§§ўћў§ў§§ћ§§ыћ§ћ§ћ§ћў§ў§§ћ§ћ§§ў§ўћћў§ћћў§њњў§ћћў§§ћ§ўўќ§ў§ўўў§ўє§ўћў§ўћ§§ў§ўўў§ўўє§ў§ў§ў§ўў§ћ§§њћў§§ћ§§їў§§ћ§ћ§ћ§§§ћўћћћ§њћћўўї§ўћў§ў§ў§§љћ§§ў§ў§§ѓўћ§ћ§ћ§ћўњ§ћ§§ёћў§ўћўћ§ћў§ўћ§ћћўћ§ў§ў§§јўћњљњњћ§§їў§ў§ўћ§ћ§§ђћ§§ћћўњўћћњћњ§§ў§ћї§ћ§ћћ§§ћўўќ§ў§ўў§јњћћў§§ћ§§ъћў§§ћўћ§ћўћ§ћ§њћњ§њћћ§§ќћў§ўў§ћљ§ћўў§§ўўњ§ў§ў§ўўэ§ў§ў§§ћ§ћў§ў§ў§ў§§ћћѕўћўћ§ћўћ§ћ§§єњћњ§ћ§ћўћўћ§§іњћ§§ћ§ћ§ћ§§ѕћ§њ§њћћ§ћ§ћћ§ьћњћћ§ћў§§ћў§ў§ўћ§ћћњњћ§љў§ў§§љњњ§љў§ў§ўћ§§ћњњ§ћ§ћ§§ћ§ћўћўњ§§§ћ§ўўћћ§§ўћћј§ћў§ў§ў§§їў§ўў§§ў§ўўђ§ў§ў§ў§ў§§ћ§ћ§§ўё§ў§ўћ§ћўњўћ§ћ§ћћќўћў§§ўј§ў§ћћўћўўљ§ў§ў§ў§§ьў§§ћў§§ћ§§ў§ў§ў§ў§ў§§эћў§ў§ўћ§ћ§ћ§§ў§ўћћўўѓ§ўћ§ћ§ћ§ћ§ћў§§ўў§§№ўћ§ћ§ћўћ§ћўћћ§§ћћёўћ§§ў§ўћўћўћ§ћ§§ћіљ§§ў§§ћўћ§§ўћ§§њў§§ћ§ћћ§ўћ§ §ўў§§йў§ў§ў§§ўў§ў§ў§ў§ў§§ў§ћў§§ћў§ўћ§ў§§ў§ўћ§§њћ§ћ§§ўўї§ў§ў§ў§ў§§эў§ў§ў§ў§ў§ў§ўћ§§ў§ўў§§ў§§§ћў§§ѕў§§ћћ§ў§§ћ§§чўћ§§ўћ§§ў§ў§ћњ§§ўћў§ў§ўћ§§ўў§§ў§шћ§§ў§ўћўћўћ§ћ§ћў§ўћ§ћ§ћ§§ћћў§ў§§эўћў§ў§ў§ўћ§ћў§ў§ў§ўўю§ўћ§§ўў§ћ§§ў§ў§ў§ўўў§ўўљ§ў§ў§ў§§ў§њћў§ў§ўў§їў§ў§ў§ў§ўўі§ў§ў§ў§ў§ўўћ§ўћ§ћћ§љў§ў§ў§ўўђ§ў§ў§ў§ў§§ћ§ћ§§ђћўћ§њ§ћћ§§њўћ§§ћы§ћ§ћў§§ћ§ћ§ћў§§ћў§ў§ўў§њћўћ§§ўў§ёћ§§ў§ў§ў§ў§ўћ§ћћћ§ў§§ћћ§ћў§§ћўўў§ўўќ§ў§ўўќ§ў§ўўњ§ў§ў§ўўђ§ў§ў§ў§§ћў§ў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўў§§ў§§ќў§ў§§ў§§ў§§ў§§ў§§ўў§ўўј§ўћ§ћў§ўў§§ў§§ѕў§ў§ў§ў§ў§ўўў§ўў§ђў§ў§ў§ў§ў§ў§ў§§§ў§ўўў§ўўќ§ў§ўўњ§ў§ў§ў ўї§ў§ў§ўћў§§ўўћћ§ѕў§ў§ў§ўћўћ§§ ў§§ўћћ§ћў§ў§ўўњ§ў§ў§ўўќ§ў§ўў§ьћ§§ўћ§§ў§ў§ў§ў§ў§ў§ўўюћ§ћ§§ў§ў§ў§§ћ§§ў§ўў§ўћ§§ўў§ў ўъ§ў§ў§ўў§§ў§ў§ў§ўћ§ћ§ћ§§ъћў§ў§ў§ўћ§§ў§§ћўћў§ў§ўўќ§ў§ўў§§ў§ўўќ§ў§ўўј§ў§ў§ў§ўўц§ў§ў§§ћўћ§§ў§ўћ§ћ§§ў§ўћ§§ўўћ§ў§ў§§ћњњ§ћў§ўўќ§ў§ў ў§ў§§ў§§ўќ§ў§ў ўі§ўћў§ў§ў§ў ўќ§ў§ўў§§ў§§ёў§ў§ў§ў§ў§ў§ў§ўўњ§ўћў§ўў§ў§ўќ§ў§ўўў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўў§§ў§§іћўћ§ћ§ћ§§ўўє§ў§ў§ў§ў§ў§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўў§§ў§§ўі§ў§ў§ў§ў§ўўќћ§§ўўњћ§§ўћ§§њћ§ћў§ўў§љў§§ўў§ўўі§ў§ў§ў§ў§ў ўѕ§ў§ў§ў§ў§ў§§њў§ў§ў§§њћњєјњўўў§ўўќ§ў§ўў§њћ§ћ§§ўў§№ћў§ў§ў§ў§ўћєйѕћўўў§ўўў§ўўќ§ў§ўўњћ§ћў§ўўќ§ў§ўўф§ў§њљћўў§ўў§ћ§§ў§ў§ў§ў§ў§ў§ўўў§ўўў§ў ўћ§ў§ў§§ќћ§§ўўќ§ў§ўў§ўј§ўћўњ§ћ§§ўўћ§§§ў§ўўњ§ў§ў§ўў§ўќ§ў§ўўў§ўўћ§њўћћ§ў§ўўњ§ћўћў§§ћќ§ў§ў ўў§ўўќ§ў§ў ў§ћў§ў§ўўъ§ў§ў§ў§ў§ў§ў§ўў§ћ§ћў§ўўќ§ў§ўў§ўў§ўў§§ў§ўўў§ўўќ§ў§ўў§ўђ§ў§ў§ў§ў§ў§ў§ўўў§ўўј§ў§ў§ў§ўў§ўќ§ў§ў ўў§ўўњ§ў§ў§ўўќ§ў§ў ўў§ў ўћ§ў§ў§§ћў§ў§ў ўў§ўўў§ўў§ўє§ў§ў§ў§ў§ў§ўўј§ўў§§ў§ўўњ§ў§ў§ў ўї§ў§ў§ў§§ћћ№ўћ§§ўћ§ћў§ў§ў§ў§§ўќ§ў§ўўў§ўўј§ў§§ўў§ўў§§ў§§ћ§ўћўўў§ўўћ§ў§ў§§§ў§ўўў§ў ўќ§ў§ўўў§ўўѕ§ў§ў§ў§ў§ў§§ ў§ў§§ўћўўў§ўўў§ўўј§ўћ§ћ§§ўўў§ўўћ§ў§ў§§љўћўћў§ўўќ§ўћ§§ћћ§ўў§ўўў§ўўћ§ў§ў§§ўќ§ў§ўўў§ўў§§ў§§ўў§ў ўќ§ў§ўўі§ў§ў§ў§ў§ў ўє§ў§ў§ўў§§ў§ўўј§ў§ў§ў§ўўќ§ў§ўўј§ў§ў§ў§ў ўљ§ў§ў§ў§§эў§ў§ў§ў§ў§ў§ў§ў§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўі§ў§ў§§ћ§§ўўў§ўўћ§ў§ў§§ў§ўќ§ў§ўўў§ў ўњ§ў§ў§ўўіћў§ў§ў§ў§ўўќ§ў§ўўў§ў'ўќ§ў§ўўў§ўўў§ўўј§ўў§§ў§ў ўќ§ў§ўўњ§ў§ў§ў ў§ ўњ§ў§ў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўњ§ў§ў§ў ўќ§ў§ўўіћ§ћўћ§§ў§ўў§§ў§§эў§ўћўћўћ§§ў§ў§ў§ў§ўўќ§ў§ў ўј§ў§ў§ў§ўўєћ§ўў§ў§§ћў§ў ўќ§ў§ўўў§ўўљ§ў§ў§§ўўў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўњ§ўћў§ўўќ§ў§ўў§ўќ§ў§ўўў§ўўў§ўўў§ў ўў§ўўќ§ў§ўўў§ўў§јў§ўћ§§ў§§ўђ§ўў§§ў§ў§ў§ў§ў ўў§ўўў§ўў§ќћ§§ўўў§ўўі§ў§ў§ўў§§ўўў§ўўў§ўўќ§ў§ў ўў§ўўў§ў ўў§ў ўњ§ў§ў§ўўў§ўў§њћ§§ў§ўўњ§ўћ§§ўўю§ўћ§§ў§ў§ў§ў§ў§ў§ўўў§ўўє§ў§ў§ў§ў§ў§ўўњ§ў§ў§ўў§§ў§ўўњ§ў§ў§ўўў§ўљљјћ§љћљљ§љљћјјћјћћѕљћљћїјњ§§њ§§ўђњћљљњњ§њљњјјњјјяњјњљћћљјљћљћћњњјљљ§јљћњњћљљћћўјњњёїјњљћ§§ћњјњјћњ§§љљћљ§§њ§§ћіљњњљљјњћјћћїњ§§ћњјњјћћљ§ћљљћћ§§§ћљћћшљ§њћљњћљњ§ў§§љћјњћљљ§§њћћъјљљ§љ§§њ§§ћљ§§њ§њ§ћћњ§§ўћ§§ў§њ§ўўќћљјћћљњј§љљћљљћћјјєїїєљјћћљљњ§њњћ§§юњљјјљћ§њњ§љњњљјјњћћљљјїїњјљњњћњ§љћљњћћљњјћћ§њ§§ћњуљњ§ћћљњ§љјјњјњњћљњњ§њљћјїїѕћљљїћњ§§ћ§ћљћћїљјїјјћћ§љљ§ћёљћ§ўњ§§љљјїјљјљљљјїєєѕѕјјьїјћћљљњљљїјјљ§§ћњјњћћќјћјћћўљћћљ№§љћњїљњћ§љјњј§љћћ§ћћљљћ§§ћњяјљїїњћљћљїјјњїїљјјћі§љћћњљ§ћљћћљљ§§ўўњ§§яљћњјњїњјћљћ§§љћјћћ§љћ§§єјњјњњј§њ§§њ§§ћњўљљјјћќ§њў§§љњћљњ§§љљ§чў§ћјњћљљњ§њ§§њ§њ§њўў§§љјћћ§ђљњ§ћјњјљћјћљћ§§ћдњ§§љћј§§њ§§њ§њћњ§љљ§ћћ§љљјјїђїѕјњјјїћљјћћјјљљѕ§љћ§њљљћћњћћ§љћјјљћ§§љјјяљјњјјїљјљћјјєјњјљљљ§ћћњ§њћћёљјњљљјјћљњ§њљљћћјыѓєѕїјљ§њљљњћјјњјјћ§§ўўјњћљ§њ§њљљў§љљћќљћ§ћћяј§§љїјћ§§ўњљљћћљћћљјћјјљ§ћљћћ§§ј§§љќћ§њ§§ўѕ§ўў§§љћљћљ§§яљњ§§њ§њћљјћљ§њћљ§§јћљјћњ§њ§§ќњћљ§§яљ§ўў§§ћѕљј§љњ§§њ§§яўћћљ§ћјљњ§љљ§§њљњњє§ћјјїїњњ§§ўњњє§ћјљњљ§ўўћћњњѕ§љ§ћ§њћћўњ§§ћў§ўў§§ўњ§§јюїјј§њњ§ћћњљјљћњ§њ§§ћњ§§њ§§ћћўў§љљђјѓјљћљњљљјљћњ§§їњљњ§њў§§ћћѓїјј§§їњ§ћћљўњњ§њќ§ћў§§љ§љѕћћљћњўў§љљћ§§ћћўўїћўћўў§њћўў§ўћљљ№јћћљћљћћ§ўў§§љћўў§іўћ§љћћњћљћћђљњ§§њ§ћ§њ§јљњ§§ћїљ§њ§њ§§ў§§оћљњўў§§њ§§ћ§§љљ§ћљњћћ§љљћњ§љљћћљљ§§ђњ§§њ§њњ§ўўћ§§ўўўћўўњњ§њўў§§њё§њћљњ§ћћњ§њњ§§ўўќћњў§§ўњ§§ѕњљ§§њћљћљљћћњљћљћ§ўў§ђћљјѕѕјћњ§ћјћњ§§ѓљјјњјїјњјњњћ§§їљјљјћ§њњўўњћ§§ўњ§§јћћњњљ§§њљ§њ§ћ§§ќћњћ§§ђўњ§§њћјїїјјћљ§§ўћўњ§њ§ў§ўў§єљњ§§ў§љљћњ§љљњ§њљћћљљјўћ§§ў§ўћўў§ћњўўєњ§ћљљ§љ§§њ§ўў§ўњ§§ћњўў§ўў§ўњўў§§њљ§§§љњљљњ§ўњ§§ўќ§ћћљљтћјћјљћ§ћљј§§ћљњњў§њљћўў§ћљ§ўњ§§ћњ§§љ§§љіњјњљљћћљњўўнћўћ§њ§ћћљ§§ћ§§ўћ§ћћ§ћ§§њљљћј§њ§§ўњ§§§њћўўўћўў§њ§ўћћ§љћ§§јњ§§њ§њ§ўўћ§њћћўўћлўћњ§љ§§љњћўћўћў§љљўўћўћћ§љѕљљњњћљћўћўўњћ§њ§§ўўўњ§§§њћўў§іњћ§њљјњћћ§§ўљћўў§ћјљљќ§њњўўић§ћѕњљјћљјћ§§њ§њ§њўўћўўћўўњћўўњћ§§њ§§њ§њњў§ўўўћ§§їљјљљ§§ўў§§іњ§§ў§њљ§§ўўћўћњ§ўћўўњ§њњ§њћћљљ§ћўњњћљљњў§ѓњ§њљ§ўўњ§ў§§ўўћэў§њљјћћљћ§§љћњњљћћљљ§§љ§ўў§љќјєў§§ўќћўћўў§§љњњљћўћ§љњўў§ўћўўњњ§ўўћўўњњ§§њ§ўў§§ћў§§ўћўўћњ§ћћўўўћўўўћўўћ§ўюћњ§ћў§њћ§§њ§§ћљјљњњ§ќњ§њ§§ўћўў§§ќљ§§ўўюњћўњљљћњћ§ћћўњ§љљ§§ўєљњљ§§љ§љњћћўўќ§љљ§§ћѓў§њљћћњљњћњ§ўў§њќћ§њўў§њч§њ§ўўћўўћ§љљњњ§§љћљњњљћў§§њьћљљњ§§њў§њ§§њљњ§ћўћўўўћўўќ§њљ§§єњ§њ§ў§њ§њљљ§§њњ§ў§њљ§§єњћ§њњ§§ћ§ўў§§ћњўўћўўў§њњї§ўўћўўћњ§§ўў§њњљўћўњљљ§§ћў§љљќњўћўўћћўћћўў§ўѕћ§§њ§ўћњ§њ§§ўў§ў ўўћ§§њўћњјћ§ўўў§ўўўћўў§§єўўњўѕ§љј§§љћўўћўўўњўўўћ§§№њљњ§њ§њ§§њ§љјїњўўяћўўћў§љћћ§љћћјѓњ§§ўњ§§јљњ§њњ§§ўўћўѕ§љљ§§ћљњјћ§§ќљћљ§§ћћјїљ§§ўњўўћњљ§ћў ўј§њўћћўћўўїњћўў§§ў§ўўћтњјњ§§ћћў§ћў§њћћўћўўњ§њћўўћўўњў ўї§њ§њљћњњ§§щљњљјїљ§ў§љў§љњљљ§ўўћўў§§ќў§њўў§ѕљјљ§љљ§ћўў§§њ§љўћћў§њўўјћљўњўћњ§§њђ§њ§љ§ўћњћћ§њ§ўўј§ў§§њ§љўўјћўўњ§§ў§§ћўќ§њ§ўўф§њўў§ћїњћњњ§§њ§њ§љ§§њњ§ўћўў§§ѕњ§§љ§§ћњ§њ§§ўњ§§цћјјћњњ§љ§ўњ§§њћ§ћњ§§њўњ§ћўў§ћљ§№њ§њ§њњ§љјјћ§њњў§§ўњ§§ўћўі§љћ§§ў§§њўўѓ§ўўћњ§њ§њўўћўўћ§љњ§ў§јњћћўњћћќ§ћћњњ§ћ§њњѕћњћњћњћћ§ћ§§їћ§ћ§ћў§§ћћ§хћ§ћљњњљњњ§љњљћњњћ§ћњћњњљљњћћї§ћ§ћћњ§§ћћњњћћњњљљќћњљћћќ§њљњњјћ§§ћ§ћ§ћћњ§ћ§ћ§ћћз§њћњћ§§ћћњљћњћњћ§§ћћљњљ§њћњ§њћћњњ§ћ§ћ§њћњњћ№§њћљћћ§ћўћ§ћћњљћћ§ѕћњњ§ћў§ў§ћ§§ќњћћ§§љњћ§ћћ§ћћљ§ћў§§ћўўћј§њћњћћ§ћћњѕћљљћћ§њњћћ§§єњ§ћ§ћ§ћ§ћћњ§§іћ§§ћњњљћњћћўњљљ§њћљљњў§ћћњљћњљњћњ§§§ћ§њњпћњ§§ћ§§њњћ§ћћњњљњљљњћ§§ћ§ћћњљћ§њћћёњ§ћ§њ§њћњћњћњљњњў§ћћј§ћћњћњњћћќў§§ћћњ§ћњћћњњљјљјњњіљњћњћћ§ћћњњћў§њњўљњњф§њ§њћњћњћњћћ§ћњљљјљњ§ћњљњ§ћњњќћ§њћћі§ћћњћљљњјљљћњљљјњњћћњћћјњћљј§њћњњћі§ћў§§ћ§ћћњњљњћїњћ§ћњњћњћћі§ћ§њљњљљњ§§іћ§ћ§ћ§ўўћњњіћњ§§ўћ§ћўћћќ§ћ§ћћ§њўљћћћ§ћ§ћ§§љў§§ћћ§њњпћ§ў§ћћњљњћњ§њћњ§ћ§ћ§њњ§§ћћњ§§ћ§ћ§§ќњ§§ћћњњ§ћћњњљљњћњ§њћњњћћѓњ§§ўћњћ§ћњњћњњћќњ§ћњњіћњљњњљјњћњњћћњљњћћњы§ћ§ћњћћњљћћ§њћћ§ћ§ћћњњўћњњјїљњћ§§ћћ§њњўљњњѓ§ћў§ў§њћћ§ћ§ћћы§ўћћњњћњ§њћњ§ћ§ћћњњћ§§ћўњћћўњћћњјћ§њћњћњ§§ћэ§ћ§ћў§ўћў§§ћћњћњћћ§§шћ§ћ§§ћ§ћћ§њћ§§ћћ§ћ§њћћњ§§кћ§ћ§њћћ§ћўћў§§ћћ§ћ§§ў§ћћ§ћћ§§ўњћ§њ§ћ§ћћћ§ћ§ћ§§ўћњњљ§§ћ§§ћјљћћў§ўў§§љћў§њ§§ўў§єћ§ћўћўў§ћ§ћ§§ъћ§њћњ§ћ§§ћњћ§ћ§ћњ§ћ§ћ§§јћ§ћ§ћ§ћўўћэњ§њћњћ§ћћ§ћћ§§ћ§§ў§§ќўћ§њњїћњњ§ћў§§ўў§ћ§ўћћ§ћ§ћћї§ћ§њњћћ§ўўѕ§ў§§ћ§ћћ§ћўўў§ўў§ўљ§ћ§ћ§њћћњѓўћћњњ§ўўћ§ћњўўё§ў§§ћўў§ћћњ§њћњњњћ§§ћ§ћћн§ћ§ћ§ћ§ћћњћћ§ћ§ћ§ўћ§ћћњў§ўў§ћ§ћ§њ§ћћѕњћ§ћњ§ћћњ§ћћњњћћ§ћ§§љћ§ћ§§ћўў§ўў§ўўє§ў§§ћ§§ўћ§ћ§§їћ§њћ§§њњ§§§ћ§ўў§ўћ§§ѕћ§ћ§§ћћ§§њћћїњћњћњћњ§ўў§рћњћњјљњћ§§њњћ§§ћ§ћњњљњљњљњљљњћ§ћћљ§ћ§ћ§њ§§ўёћ§ў§ћ§ћ§§њњљљћ§§ћў§ћћ§юњљњ§ћ§ћ§ў§ћ§§ћњљљњњњћ§ћ§§ўў§ѓў§ўў§§ћў§§ћўћћќњ§§ћћћ§ћњњћћњћ§ћ§ћўў§ћ§ўўў§ўўў§ўў§ќњћћ§§ъћ§ћў§ўћ§ћ§ћ§ћ§ћ§§ўў§§ўўўћ§§ўёћ§§ўћ§ћ§ћ§ћ§ў§ћћ§№ћ§ћ§ћ§ћ§§ў§ўћњњћћњјћњ§њћћ§ћћ§јўћ§ўў§ўћћ§ућ§ћ§ћ§ћ§ћ§ћ§ћ§ћћљњљћћњњћ§ўў§ўў§цњћћ§ћўћћ§ўћћњ§ў§ћ§ћћњ§ћ§ћ§§љћ§ћ§ў§ўўў§ўў§ўћ§§ўћўўћњњ§ћ§ћ§§ўљћ§њњў§ўўћ§ў§§ћћіў§ў§ў§ў§§ўўы§ћ§ћћ§§ћўў§ў§ў§ўћ§§ћўўі§ћћ§ћ§ўў§ўў§ьћ§њ§§ћћ§њњћ§ћ§ћ§ћ§§ўўќ§ћњћћ§ўў§ўўјћњ§§ћ§њћћ§§ў§ўўў§ўў§ћ§ќћ§ћ§§ѕћў§ўў§ћ§ћ§ћћ§ћўћ§ћ§§јћўћ§ћ§ћўўћ§ў§ћўў§ўћ§§§ћњћћљ§ћў§§њћћ§ьўћ§ћ§ћ§ўћ§ў§§ўћ§§ў§ўў§ёћ§ћњћњ§ћўњ§§ћњћћў§ћћњў§ўћ§ћћљўћ§ћ§§ўў§ћў§§љў§ўћћ§ўўќћ§ћўў§ўћўўћ§ў§ћ§§ўё§ћў§§ћ§ћ§ћ§ћў§ўў§ўј§ў§ў§ў§ўўц§ўћњ§ћў§ў§§ўўћ§њ§ћ§ћ§њћњћ§§іћ§ћ§ћ§ћ§§ўўў§ўў§њћ§ћћ§ўўў§ћћќљњћўў§ћ§§ћўўї§ў§ћўћў§ўў§ћќ§ћ§ўў№ћ§ћћњњјњњ§ћў§ўћ§§ќњћ§ўўўћ§§њћ§ћў§ўўќ§ћћ§§єћўњћ§§ўў§§ћ§§яњћћ§ћ§§ўћ§ћ§§ћ§§ў ўщ§ў§§ўћ§ћ§ћ§ћўћ§ћ§ўў§§ћ§§єћўћ§ў§ћ§§ўћ§§ћљў§§ћ§§ўў§ўј§ў§§ћ§ћўўўћ§§ќў§§ћћћ§ћ§њћћњў§ўў§ўўў§ўўі§ўў§ћ§ћ§ћўўўћ§§ёў§ћ§§ћ§§ў§ў§ўћўўў§ўўў§ўўў§ўўќ§ћћ§§ў§ћѕў§ўћў§ў§ў§ўўћђў§ўў§§ўў§ћ§ћ§ўўќ§ў§ўўє§ў§ў§ўћ§ћ§ћ§§њћ§ћ§ћ§§љћњњ§ў§ўў§эўћњ§ћћњ§ў§ћ§ћ§ћ§ћў§§§ћ§ўўќ§ў§ћћх§њћљњњ§ћ§ћћњћћ§ћњњћћ§ћ§ћ§§ўўљ§ўў§ћћўўљ§ў§ўў§ўў§ўќ§ў§ўўѕ§ўў§§ћўћў§ўў№§ћ§ћ§ўў§§ўўћ§њћўў§§ћ§ўўї§ў§ў§ў§ў§§ў§ыћ§ў§ћњњћћўћћўћў§ћћ§§ўўј§ћ§ћўћ§ўў§ћ§ћћў§ўўљ§ћ§ћ§ћ§§ўћўў§ћ§ўўў§ўўњ§ћћ§ћ§§ћ§ћў§ћњ§§ўў§§эћ§ћўў§ў§ў§ў§§ћўћ§ћўў§ўіћ§§ўћћљљњ§§ћћ§ћ§ћћ§љў§ўћ§ћ§§ыћўћ§њ§ћ§ћ§ћ§ћ§ћ§ћ§ћћњњ§ўў§§щћ§§ћ§њ§ћ§§ў§§ўў§ў§§ћ§њћћљ§ћ§ћ§ћ§§єћњњћћ§ўўћ§ћ§§§ћ§ўўў§ўўћёњ§ћўћ§§ў§ўћў§ў§§ѕў§ў§ўў§ћ§ћўіњћћўћ§ћ§ћ§§љћў§ўћ§ћћ§эўћ§ћ§ћ§ћў§ў§ў§ў§ў§ўўі§ћ§§ў§ў§§ћћў§ћћ§ќћўћ§§ќў§ў§§§ўћ§§ћў§ћћч§ћў§§ћћњћћў§ў§ў§§ћ§§ў§ў§ўў§љћ§ћў§§ћћјўћ§ћў§ўћћ§ўћ§§ќў§ў§§іћўў§§ўћ§§ўў§ѕћњћћ§ћў§ўћ§§љћў§ў§ў§§іћў§ў§ў§§ћўўњ§ўћў§ўўў§ўўўћ§§ўћ§§№ћўћ§ћ§ћ§ћћњўњ§ћ§§чў§ўў§§ў§ўў§§ўћ§§ў§§ў§ў§ўћћј§ћ§§ћњ§ћћ§љћ§њ§ћ§ћћ§ќў§ў§§љћ§§ў§ў§§ўў§ћћђўћ§ћў§ў§§ћћњћ§§ўў§§јћ§ћћ§ћћ§§ћўћ§ћ§§ўћўўѕ§ўћ§ћўћ§ћў§§љћњћљћњћћјўћњўћ§ћ§§ѕўћћ§ў§§њћћ§§њћ§ћ§ћ§§љў§ћњ§ћ§§ћ§єў§§ћўћў§ўћ§ћћрўњ§њўћ§ћ§ћўћћњ§њћћўћ§ћў§§ћћњ§ўћ§§ќћ§§ўўя§ў§ўћ§њћћ§њћћ§§ў§§ћї§ћ§ћў§ў§ћћќ§ў§ўўђ§ў§ў§ўћўћ§ћ§§ўўы§ў§§ћ§§ў§§ћ§ћ§§ў§ў§§ћћ§їў§ў§ў§ў§ўўќ§ўћ§§іў§ў§ўћўћў§§ќў§ў§§ћў§ўћ§§ўљ§ў§ў§ў§§ўў§§ћѕ§ћ§њўњћћўћ§§ћњ§ћ§§ў§§юў§ћ§ћўћ§§ў§ћћўћ§ћ§§§ћўћћюўњ§њћћўћўћўћў§ў§ў§§ўюћ§ћ§њћћ§§ўћ§§ў§§ћ§§ћіњћљњћ§§ўћ§§ћћўћ§§ўўѓ§ўћў§ў§§ћ§§ў§§єћ§§ў§§ћћ§ў§ўўђћ§ћ§ћ§ћў§ўћўћ§§ўћ§§їў§ўћў§ў§ўўї§ў§ў§§ћў§§§ў§ўўсћ§ћ§ў§ўћ§§ў§§ћў§ў§ў§ў§ў§§ћў§ў§ўўћ§ўћў§§ўќ§ўў§§ў§ўў§§щў§ў§ўћ§њћ§ў§ў§ў§ўћў§ћ§ўўї§ў§ў§§ў§ўўќ§ў§ўўљ§ў§ў§ў§§ёў§ўћў§ў§ўў§ћўћ§§јў§ў§§ў§ўўќ§ў§ўў§ў§№ћўћ§§ўћў§ў§ў§ў§ўў§њўћўћ§ўўќ§ўћўўў§ўўў§ўўў§ўўћ§ў§ў§§ўў§§ўћўўљ§ў§§ћ§ў ўў§ўўћ§ў§ў§§їўћўћ§§ўћ§§ў§ўў§ўў§ўћ§§іў§ў§ўћў§ў§§юў§ўћ§§ў§ў§ў§ўў§ўў§§ўћ§ў§ў§§їўћ§ў§§ўћ§§ћўћ§ћ§§їў§ў§ў§ў§ўў§ ўќ§ў§ўўљ§ў§ў§ў§§ўў§§љў§ў§ў§ўўъ§ў§ў§ў§ў§ў§ў§ў§§ћўћ§ћ§§ўь§ў§ўћћ§ўћў§§ўћў§ў§§ћћўњћћћў§ў§ўў§§ў§ўўѓ§ў§ў§ў§§ћ§ўћ§§јўћў§ўћў§§јћ§§ў§ў§ўўї§ўћўњ§ћћ§§§ў§ўўњ§ў§ў§ўўў§ўўў§ўўљћ§§ў§ў§§ўў§§іћ§§ўћ§§ў§ўўў§ўў§љў§ў§ў§ўўі§ў§ў§ў§ў§ўўў§ўў§ўє§ў§ў§ў§ў§ў§ўў§ѕў§ў§ў§ў§ў§ўў§јћ§ћ§ћ§ў§§љў§ўћ§§ўўѓћў§ў§ў§ў§ў§ў§§ќў§ў§§ћ§ўј§ў§§ћ§§ўўјћ§§ў§ўў§§ѕў§ў§ў§ў§ў§ў ўј§ў§ў§ў§ўў§ќў§ў§§ћў§ў§ўў§ў§ ўќ§ў§ўўќ§ћў§§§ўћўў§ўќ§ў§ўў§§ў§§ќўћў§§їў§ў§ў§ў§ўўќ§ћў§§§ў§ў ў§ѓў§§ћўћў§ў§ў§ў ўѕ§ћў§ў§ў§ў§ўў§§ў§§ћўћў§ўўњ§ў§ў§ўў§ўў§ўў§§ў§§ћўћ§ћ§§ў§§ў§ўўќ§ў§ўўћ§ўў§ўўэ§ўћ§ћ§ћ§§ўў§ўўћ§ћў§§ўў§ўўњ§ў§ўћўўќ§ў§ў ўў§ўўўћўўў§ўўў§ўўќ§ў§ўўў§ўўј§ў§ў§ў§ўўў§ўўќћ§§ўўў§ўў§ыў§ў§§ћў§ў§ў§ў§ў§ў§ў§ўўљ§ў§§ў§ўў§ћў§ўў§ќћў§ўўќ§ў§ўў§ў§ћћ§ў§ўў§ћ§њњ§ўћ§ўў§ўўњ§ў§ў§ўў§іћ§ў§ў§§ћ§ўў§§ў§§њћ§§ў§ўўј§ў§ў§ў§ў ўў§ўўњ§ў§ў§ўўћ§ў§ў§§§ў§ўўњ§ў§ў§ўўњ§ў§ўћўўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўў§ѕћў§ў§§ћў§§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўљ§ўў§ў§ўў§ўћўўўћўўњ§ў§ў§ўўј§ў§ў§ў§ўўљ§ў§ў§§ў ўќ§ўћ§§єћў§ў§ў§ў§ў§ўўў§ўўў§ўў§§ћў§§щўњ§§ў§ў§§ћў§ў§ўћ§§ў§ў§ўўў§ў ўў§ўўў§ўўў§ўўў§ўўў§ўў§ўћўўќ§ў§ўўю§ў§ў§ў§ў§ў§ў§§ћў§ўўњћўў§ў§§ўќ§ў§ўўў§ўўі§ў§ў§ў§ў§ўўі§ў§ў§ў§ў§ўўў§ўўў§ўўі§ў§ў§ўў§§ўўњћ§§ў§ўўј§ў§ў§ў§ўўў§ўўў§ўўќ§ў§ўўјћ§ћ§ўў§ўўї§ў§ў§§ў§ўўї§ў§ў§ў§ў§§уў§ў§ў§ў§ў§ў§ўћўћ§§ў§ў§ў§ў§ўћ§§§ў§ўўў§ўўэ§ў§§ћ§ћў§ў§ў§ў§ў§§ћћ§ў§ўўј§ў§ў§ў§ўў§ўў§ўўќ§ў§ўў§ў Ршў§њћјјљ§§љљћћ§§њ§§њѕєљ§ўўћњў§§њ§ўўћўќћўћўўїњ§ўњњ§ўћ§§ўњћўћў§ўўњљљњљњўћўўїњўћњўўћћўўћэњ§њ§њ§§љњјјљ§ўўћўћўўјћњњћўўћўў§њјљіњ§јїјјњњћ§§§њ§ўў§ћў§§§љњ§§ќћљћ§§§њ§ћћўю§њњљ§ћ§ћј§ўњ§ћјћ§ўўј§њ§ћћ§§ўўћћљњ§ўўћћ§њ§ўў§їљњ§ћ§§њћўўўћ§§ўў§§ўћ§ћљњ§§љћ§њ§ћћўўћњўћњ§§ўўћўў§їњљ§њўўњ§ўўќњ§§ўўљћїњ§њ§ўў§ўћўѓњ§§ћ§§ў§љћјјћћ§ќњљњў ў§јўћјѕєњ§ўўћ§ў§ћћі§њјћ§ћўњ§ћћ§ћ№љ§ўњ§§ў§§ўћњ§ўњ§§ўњћўў§§ўўњ§њѕњ§ўўћ§њљ§ўўќ§ћћњњ§§ўћўўњ§њћўў§§ўћўўљћўћўћћўўћћ§ћїћўў№њћћўў§љ§§њћљњћ§ўўёћў§§њ§§јњ§љћљњўўњћўў§§ўўїћўћў§њїћўўќћў§ўў§јњ§њўўњ§ўўіћўўћўўћўћ§§љњ§њњўћўў§§њўўўћўўљ§њљј§њўўћ§ўћўўљћ§њ§§њўўўћ§§ўњўў§ўћћўћћўўѕ§љ§ћњ§њ§њ§ў ў№ћ§§њ§§њ§§њљїћ§§ўўњ§ћѕїјўўў§ўў§ўћўўљ§ћјјћ§ў ўђћўћўўћњ§ћљћћј§§љєћљ§§њ§§ўўњћўўяћ§њ§њњў§ћљїљћћљ§ўўћ§ьњљћ§§њ§§ўў§њљ§њњ§њћўў§§ћ§ўў§эњўћўњїњљљ§њћўўћљљћ§§ѕњўў§љљјћћ§љљў§ўў§љњ§§ўўњ§§ўњўўќ§њћ§§ћњ§ўћўўћњјћ§ўњў ўј§њњљїћ§ўў§њ§ћћћ§ћњ§ўўќћ§љўўћ§њћ§ўўї§њ§§ўћ§§ў ўљњ§љ§§њћћ§љћ§§ ўў§ўўі§њјљњѕїћњ§§їњ§ўў§§ўћў ў§№јћ§њ§§ћћјїљћљљ§ўўћчў§ћћљћљћњљљњљјѕїљћљћљћ§њў ўќњљљ§§ћљњјћљћћ§§ћўёћўћўћўўњљњљјїњћћ§§ўњ§§ўћўў§ўў§ћћ§љњ§ћўўћў ўіњ§§ћћњљњњћћіљ§њћјїљўћўўў§ўў§їћњјњћњњ§ў ў§ќњ§§ўўўћўўќ§ћ§ўўњќїј§ўў§ўњўўћ§љљјћћўљћћњіљњњћ§§ўўњўў§ўћќїњ§ў ўўћўў§ўљ§§ёњ§њ§ћћљњ§§њ§ўўњњ§§ћўў§ђљ§§њ§њ§љїѕїћ§ўўћў§ўўўћўўћћўў§ћћўњ§§§ћўћћ§ўўћўўэ§њ§§њ§ўћ§љєљ§ўўћўў§§ў§ўћў§њўљ§ћћ§§ўѕ§њњљ§љљњўћўўј§јјїћ§§ўўњћ§њљњ§§ўњўўјћњћўўљљ§§ћћњћњ§ўў§ўўњўўё§ўўњ§њў§јѕїћњ§ўў§љћўћћўћўў§њњ§ўўњ§§ћ§§ћўў§њ§ўў§їћљљў§ћњњ§§ўїћўњњ§ўў§ўўѓњ§њћўўњ§ћљ§§ўў§љћўў§ћћўўўњўўыћ§њњ§§ўўћўў§њј§ўў§ўћўўэњўў§ћњњ§њјњљљ§§њ§§ўўћ§ўўћўўћ§њњћўў§њ§ўўјњћњѕјњњў ўўї§§ўћ§§ўћўў§лњ§§њ§ћ§ўўћћ§јњљјєїјћљї§њ§§ћћїєљћ§§ћћўў§ў§ўњўўѓ§ћћ§њ§ћ§§ћ§§ўўќ§ў§њњўќ§љћ§§љњ§њўўњ§§њћ§њўћ§§љњћњћћў§§єћљњ§§ћў§§њљў ўќ§ћћ§§ўќ§ћћ§§ўўћўўќ§њ§ўўћюњљ§њ§њўў§§ўўћўњњ§ўўћўњ§ћ§§љ§§ўљњјћ§§њ§§§ўњўўњ§їњћљћ§њўў§§љ§ј§ўўњў§ћћ§§љћ§§ўћўє§њ§ћў§њ§ўўћ§§ћњљљњўў§њ§§ўњўў§љљњљ§ўћўўўћўўўћўўћћњњ§ўўўћ§§ўў§§ў§ћј§њўў§§њ§§ќљј§ўўќћўћўў§њ§ўў§ ў§§ў§§ў§№њ§ј§њўў§љўўћњ§§ўўћњ§§њўўќћўў§§§ў§ўў§§њўўћћ§ўћўў§єњјјљјѕїјћ§ћ§§іњ§њљњ§ўћњћћўњ§§ѕњ§§њ§љ§§ћћўўўћўў§ѓљјћњњўњљѓєїњ§§њћљћћ§ўўј§ћўћћўћўўяћў§њ§§ћљњўў§љѕњњ§§њ§ўћћєљ§ўўќњ§њ§§ўћ§љћўў§§њўўћў§ў§ўњўўћ§ћљ§ћћљљѕјјњјњњ§ўћћўўћ§§љњѕњљ§њўў§їњ§§ўў§ћљў ўў§ўўјњћ§§ћћ§ўўќћўў§§ўљ§§љѕћљћћљ§ўћњ§ўўў§ўў§ўћўўўћўў§ћњўўњ§љњћњў ў§§њўў§§ўњ§§ў§ћў§ўњўўѕњ§ўў§§љјј§ўўњќљћ§ў ўўћўў§ѕћў§§њ§њ§њњ§§њћў§љ§ў ўњњћїїњў ўљћ§§ўўћўўєћў§њ§§їњ§§ћ§§ў§њ§ўј§ћњћљ§§ўў§ћ§ўў§ќўћў§§ўљћўў§§ћўўўњўў§њ§ўў§ўћўўѕњ§љјљ§§њ§њ§§ќњћћ§§ћєљїњ§§њћ§§ўљўўњћўўњ§ўўћ§ўўњ§§щћњњљљјјїѕљћ§њљћњ§њњљћљ§§ьњўћў§§љњ§§ћ§њњ§њ§§ћўў§ўњћњ§§ў§§ћфѕ§ўћћў§њљњћњљљ§§њњ§§њў§§љљњўўўћўў§ўќћўў§§јњ§§ћћўў§§ћћўўћўўћ§ћњ§ўў§ў§ў§§њ§ў ўќ§њ§ўўњћњ§ўњ§§їњ§њ§љљћњ§§ќњ§§ўўќ§ўў§§ўѕњ§ўўћћўў§љћћ§ќљњ§ўў§ў§§ћ§§ў§ўћўў§ўў§ўўћћўўњ§§ќљ§§ўўў§њњјћўћўћўћўўђњћљ§ўўћ§њ§§њ§ўўћ§њ§њ§§ќў§§ўў§ўўћўў§ўњ§§ћњ§§њ§§ўіњ§ћўў§њ§ћ§§§љњў ўў§ўўѕћў§ўў§§ўўћ§§ћўўњњљѕћљјљљў§§ўў§§ў§ў§ћў§њ§ўўўћўўћљўћўў§§ўўўћўў§ўћћўћћў ўћў§§њў ўрњ§§ўўћўўњўў§њўў§§њњ§њњљјњњћўћћњ§§ќћљ§ўўћћњўў§§ўўћўў§ћ§ў ўўњ§§љћ§§ўў§ћћўљ§§§њ§ўў§ћ§ ўўњўўіћњ§љїљћљњ§§ў§§ћўўќњћћ§§іњўў§љ§§ћ§ў ўўћўў§ћўћћўњњћљњўћўўўњўўѓ§њљћўћ§ћљљ§ў§§ўњ§§ћ§ўјћўњљ§ћћўўќ§ўўћћўњћњ§ўћўўќћўћўўўћўў§§љњ§§ўљўўћўў§§ўћўўэ§њ§њћћў§§ўў§§њћћў§ћћњ§њўћћў ў§ўўњўўќ§њњ§§іў§§ћљ§ћўћўўў§ўў§ќћўћ§§ќћњћ§§ў№љј§ў§§љљїљћћ§§њ§§ћ§ўњ§ќўћ§њњћљ§ћћњњћ§§љћ§љїј§ўўў§ўўўћ§§§ў§ўўў§ўўў§ўў§ђћў§§ћўў§ћ§ћ§ћўў§§ў§§ўў§§ћћљћ§ўўў§ўўњ§ў§ў§ўў§ћ§љњћћ ўћ§ўў§ўўѓћ§ћ§љњњћ§§ћ§њњљљњћ§ћ§ћўў§їћ§ћ§ћ§ћ§ћћљ§ћ§ћћњўў§ѕў§ў§њ§ћў§ћњњ§ѕў§ў§§ћћњ§ћўўў§ўў§ў§ўљ§ћћ§§њ§§ќњў§ўўіћ§ћўћ§ћў§ўў§ђњјљ§ћ§њћ§§ўў§ўў§їў§§ћ§ћ§ћўў§§ў§§єћ§§ў§§ћў§ў§ўўњ§ў§ћћўўќњљљ§§ўњ§ўў§ћўўў§ўўі§ћ§њћћўћћњњѓћњњћ§§ћљў§ў§ўўў§ўў§їўњњјїљ§§ўўћињћћ§§ћћўў§ћћњњћ§ћћњћћ§ў§ћ§ў§ћўў§ћў§§ћ§ћўў№ћ§§ўў§љјљ§ўў§ўћ§§ўќћњњ§§ўћўўїћ§ўў§§ћ§ўўњ§ў§ў§ўўў§ўўі§ўў§њљњў§ўў§єў§ћ§њћљћћў§ўўўћ§§ўћ§§ћћњћ§ўўў§ўў§№ћў§ў§ў§ў§§љљњў§ўўўћўўћњ§ћ§ўў§§ўў§ўўў§ўўјћ§ћ§ћ§§ўў§§ў§ўўє§ўў§љјњ§§ў§ўўў§ўўї§ћ§ћў§ў§ўўј§ўћ§ћ§§ўўє§ўћ§ћ§ћ§§ў§ўўњћ§§ў§ўўћўў§§ўћ§§љў§ў§ў§ўўћ§ћ§ћ§§юћ§ћћњ§ћў§ўћњљљњў§ўў§єў§§ћў§ў§ўћћњњ§§ў§ў ўѓ§ў§§њћњњ§§ћ§ћћќњћћ§§ќћў§ўўў§ўўю§ўћ§ћ§§ўћњјѕјћњўћўўў§ўў№ћ§§ћњћћ§ћ§ўўћ§ћ§§ьћ§ўў§ўћ§њ§§ў§ў§§ћ§§ўўщ§ў§ћћ§§ў§ўњјјћћ§ћ§ћ§ўўћћ§§њћћўўћ§§ѕћў§§ћ§ћ§ћ§ўў§§њћ§§§ў§ўўў§ўўњ§ўў§ўўр§ў§ўћ§§ћњњћў§ў§§њћњћњ§њ§ћў§ўў§ћўўў§ў ўњћљњ§§ўўіњћ§ћћўўћћўўќ§ў§ўў§юћ§ћ§њћњћњћњ§ћ§ћў§ўўю§ўћў§ўћ§§ћљјљћ§§ћ§§ўќћ§§ўўў§ўўё§ў§ўў§ћ§§ћћ§ћ§њњћў§ўњћћјљјјљјїјћћўњћћў§ўўў§ўўщ§ў§ў§ћћ§ћ§њћљњњћњћћ§ћ§њњ§ў§ўўк§ў§ў§ћљјїљљћњћњћњ§ћў§§ћ§ўў§ў§§ћ§ћ§ћў§ўўўћњњўћ§§ўў§ўўќ§ў§ўў§щћ§ўў§ћљљњћњћћ§њњљћўў§ў§§іў§ў§ў§§ћ§њњ§љњ§§ўњ§ўў§ћ§§ќћў§ўўњ§ћћў§ўў§љђњ§ўў§ў§ўћ§ћ§§ўўћњќћњћњњѕћ§§ћљљњћ§§ўўќ§ў§ўўћ§ћћ§ўўјњљљ§ўў§ўўќ§ў§ўўњћ§ў§ћ§§њќћ§ћ§§ў§ўќ§ў§ўўь§ўћћў§ћ§ћ§ћћљјљћћў§ўўўћўўќ§ў§ўўў§ўўѕ§њћњћњ§ћ§ћўўќћ§§ўў§ѕћ§ћўў§јїј§ўў§ђћ§§ў§ўћ§ћ§ћ§§ўўѓћ§ћ§§ўћњњ§ћ§ўўћћ§§ўћћ§ўў§ўў§шњїљћћ§ўў§ўћ§ў§ћ§ћ§ћ§ўў§ўўў§ўўэћ§ћћњ§њ§ћў§ў§§ћўў§ўўј§ўћўў§ћ§§ћњјљћ§§§ў§ўў§њћ§ћў§ўўўћ§§ў§ёћ§ћ§ћ§ћћњ§ўў§ў§§ўћ§ўћ§ћћўѕ§њљљћћ§§ў§ўў§ѕћўў§§ўў§ћ§ўўў§ћћї§ћў§ўў§ћўўћўњўўў§ўўўћ§§ќћў§ўўј§њњ§§ўћўўѓ§ў§ўћњ§§ћ§њљћћ§єћў§ў§ўћў§ў§ўўќћ§§ўў§ўћўўј§ћљјїњ§ў ўш§ў§ўћ§ћњћ§ћ§ўў§ў§ўў§ћ§ћ§§ќњ§§ўўєћ§љјњћњ§њћў§§ћјњљјјњ§ћўўў§ўўќћ§ћўўц§ўћ§ћ§§ў§ў§ў§§њњћ§ћўћ§њ§ћўўќћўћ§§ўћќњ§ћ§§їў§§ћ§ћ§ћ§§ўљ§ћ§§ў§ўўђћ§ћњћ§ћ§њўћћ§ўўў§ў ўћђњ§ћ§§ўћњњ§ћ§ћўўќ§ў§ўўєћ§§ў§ў§ўў§ћ§§ћў§§ћўў§§ў§ўўў§ўўѕ§њ§ћўћ§ћ§ћўў§ќћњћ§§ѕћ§ћў§ў§ў§ў§§ѓћ§њћњ§§ў§§ћ§ћћ§§ћўў§ђћњњћћ§ћњћ§ћў§ўўј§ўћ§ћўў§§ўѕ§ћ§§ўў§§ўў§§ўћ§§њћ§ў§§ўўєћ§ћ§ћ§ћћљћћўўў§ўўў§ўўў§ўўќ§ў§ўў§аћў§ў§ў§ўћ§ћўћ§ћў§ў§ўў§ћћњ§§ў§§ћ§ћ§ћћњ§§ў§ў§ў§ў§ўўј§ў§ў§ў§ўў§ќћў§ўў§§ћ§ўўќ§ў§ўў§єў§ћ§ўў§ў§ўћ§§ѕў§§ўў§ў§§ћўў§ќћ§§ўў§§ўћћћ§ћўћўў§§ў§§ў§їў§ў§ўў§ћ§§шњјїјљњњ§њ§ћ§ћ§ћ§ћ§ћ§ў§ћўўѓ§ћ§ћ§ћ§§ћў§ћў ўхћ§ћ§ћ§ћ§њ§§ў§јѕїњ§ћ§ћ§ћ§ћ§ћћљњ§ўў§§ўўќ§ў§ўўєћ§ћ§њћ§ў§§ћ§§ќћ§ћ§§ўћўўћћјјћўў§ќћ§§ўў§§ћўўјћ§§ў§ў§ўўъ§ў§§ћ§ўў§§ћ§ўў§ўў§њћћўўў§њњўћ§§јћ§§ў§ў§ўўс§ћ§ћ§§ў§ўћ§§ў§§ћ§ћ§ћћ§ўћњћў§ў§ўўћ§ў§ў§§§ў§ўўњћ§њћћўўў§ўў§љћ§ћўћ§ћћёњћћњћћўў§ћў§ўћўўќћ§њўўў§ўўќ§ў§ўўћќљћ§ўўќ§ў§ўў§ћ§ўўшћ§ћ§ћў§§ћ§ћ§ћ§§ў§ў§ўў§ћўўћяў§ў§ў§§ћў§§ћћњњћўў§їћњћ§ў§ў§ўўў§ўў§іћў§§ћ§ћ§ћ§§ћћ§ўўћћўј§ў§ў§ў§ўўњ§ћљћ§ўўі§ў§ў§ў§ў§ўўќћ§§ўў№ћ§ћ§ў§ћћњ§ћ§ћ§ћўўўћ§§јћ§§ў§ў§ўўч§њљњћћ§ўў§ўћў§ўћ§§ўў§ћ§§ўў§ўћўўј§ў§ў§ў§ўў§јў§ў§ўћ§ўўћ§ўў§ћћ§їћ§ћ§ћ§ўўћћя§ћњњћў§ћ§§ўћ§§ў§ўўј§ћў§ў§ў§§ъў§§ћ§ћћ§§ћћњњљјјћћ§ћћ§§ћћ§ћ§§ўўјћ§ћ§ћ§њ§§ћћ§ћ§ўўњ§ў§§ћўў§іћўћ§ћћњўћўў§іљјљћ§ћћ§ћ§§ўћ§§ћ§ўў§ўў§њћ§ћў§ўўя§ћ§ћ§ћ§ўў§ўћ§ћў§ўўћѕљ§ўў§ў§ў§§ћћѕў§ўў§ћ§ћ§§ўўў§ўўў§ўўіћ§ћ§ћ§ћ§ћўўў§ўўќћ§ћўў§јўћ§ћ§ћ§ћћѕњ§§ћ§ћ§ћ§§ўўє§ўўћ§ўћ§ћў§ўў§ўћїњћњ§ћ§ћў§§ёў§§ћ§§ў§ўћњћ§ћўў§єћў§ў§§ћ§§ў§ўўўћўў§§ћ§ћћ§ўў§§љў§ў§ў§ўў§ќњћћўўћћ§ћћ§§њў§ў§ў§§ќћ§ћ§§іћў§ўћ§§ў§ўў§јћ§ћ§ћ§ћ§§їћ§ћў§ў§§ўў§§њ§ћћїў§ў§ў§ў§ўў§§ў§§ў§ќўћ§ўўх§ћ§ўў§ў§§ћћњћњћўћћ§§ўћ§ћў§ўў§єћў§ўў§ћ§ћ§ћ§§ўј§ў§ў§ў§ўў§ўћўўў§ўў§њћ§ћў§ў ў§ў§ћ§ўўў§ўўі§ў§ћћў§ў§ўў§ћў§ћћ§§њћњљљњўўљ§ћћ§ћћ§§ўў§ўўі§ўћ§ћў§ў§ўўќ§ўћў ўї§ў§§ћ§ћ§ћћ§ќўћћњњћћ§ћ§ћўўў§ўўіћ§њћћ§§ў§ўўў§ўўє§ў§ў§ў§ў§ў§ўўц§ў§ўў§ћћњћњў§§ћ§ћў§ў§§ўў§ўўь§ћњ§ћ§ћ§§ўћўћ§њ§§ў§ў ўў§ўўў§ўўѕ§њћ§§ў§ў§ў§§ўў§§ѓћњўў§њћћ§ў§ћ§§єћ§ћ§њћћ§§ў§ўўќ§ўћўў§§ў§§ў§§ў§ў ў№§ў§§ћ§ћ§ћ§ћў§ў§ўўќ§ћ§ўўшћ§ћ§ўў§§ћў§§ћ§ўў§§њћњ§§ўўў§ўў§јћ§ћ§ўў§ўўўћ§§ўћ§§њћўў§њўўђ§ў§ў§ўћў§ў§§ћўўєћ§ћћљњћ§ћ§§ўўў§ўўћ§ћў§ћћяњћћ§ћ§ћћњћћ§ћ§ћ§ћў§ћўў§§ѕў§ў§ў§§њњ§ўўќ§ў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўўј§ў§§ћ§§ўў§їў§ўћћњўћў ўў§ўўў§ўўюћў§ў§ў§ўћўћў§ў§ў§ўўћ§ў§ў§§ђў§ўћ§ћў§ў§ўћ§ўў§ёў§ў§ў§ўў§ў§ћ§§ўў§ћўћ§§ўўќ§ў§ўўќ§ў§ўўљ§ў§ў§ў§§ўў§ўўў§ўў§іњў§ў§§ўў§ў ўў§ўўњ§ў§ў§ўў§ќў§§ўўљ§њћ§ў§ўўў§ў ўћ§ў§§ўў§ћ§ћћ§њў§ў§ћў ў§јў§ћћњћ§ўўјћ§ћў§§ћўўь§ўћ§§ў§ўћ§ћ§§ў§ў§ў§ўўў§ўўќ§ў§ўўў§ўўњ§ћљћ§ўўќ§ў§ўў§ћў§ў§ўўў§ўўќ§ў§ўў§§њ§ўўћ§ў§ў§§§ўћўўє§ў§ў§ў§ў§ў§ў ўў§ўўћ§ћњ§ў ўќ§ў§ўўў§ў ўњ§ў§ў§ўў§ ўњ§ћњћ§ў ўќ§ў§ў ўќ§ў§ўўњ§ў§ў§ўўў§ў ўўћўўў§ўўў§ў ўў§ўўі§ў§ўў§ћ§§ўў§§њћўўў§ўўў§ўўћќњ§§ўў§ўћ§§ёў§ў§ўћ§ћ§ћў§ў§ў ўќ§ў§ўў§ћњ§ћ§ўўі§ў§§ўў§ў§ўўќ§ў§ўўў§ўў§ўќ§ў§ўўњ§ў§ў§ўўѕ§њ§ћў§ў§ў§ўў§њћў§§ћўўќ§ў§ўўј§ў§ў§ў§ўўћ§ў§ў§§§ў§ў ўћ§ћ§§ў ўњ§ўћў§ўўњ§ўћ§ћ§§ў§ўќћ§§ўўі§ў§ў§§ћ§ћ§§§ў§ўў§ћіљ§ћў§ў§ў§ўўў§ў ўї§ў§§ћў§ў§§љўћ§ћў§ўў§ьћ§ћ§ћўњњћњљћћ§ћў§§ћў ў§љў§§ћўћ§§ћћў§ў§§ ўћєњћњћћ§ћ§ћ§§ўўќ§ў§ўўњ§ў§ў§ўў§ћў§ў§ў ўљ§ў§ўў§ћћѕ§ћ§ћў§§ћ§ћўўў§ўўє§ў§ўњўћ§§ў§ў ўњ§ў§ў§ўў§§ћўўњ§ћњћ§ўўќ§ў§ўў§њћ§ћ§ћ§§іћўў§ћћ§ў§ў ўў§ўўћ§њћ§ўўї§ў§ў§ў§ў§§ћў§ў§ўўќ§ў§ў ўє§ў§ў§ўћ§ћ§ћўў§јћ§ћ§§ў§ўў§ ўњ§ў§ў§ўўў§њњў§ўўќ§ў§ўўњ§ў§ў§ўўљ§ў§ў§ў§§§ў§ўўў§ўўќћў§ў ўј§ћљњћў§ўўј§ў§ў§ў§ў ўњ§ў§ўћ§§ўў§ўўў§ўўє§ў§ў§ћљ§ћў§ўўќ§ў§ў ўќ§ў§ўўє§ў§ў§ў§ўћ§§ўўў§ўўђ§ўћ§§ў§§ћћўў§ў ўў§ўўќ§ў§ўўњ§ўћ§§ўўў§ўў§ћ§ў ўў§ўўћ§њў§ў ўђ§ў§ў§ўћў§ў§ў§ў ўў§ўўў§ўўљћўљћњ§ўўј§ў§ў§ў§ўўљ§ў§ў§ў§§ўћћњўћў§§ѓў§ў§ўћ§њћњ§§ў ўў§ў ўќ§ў§ўў§§ў§ўў§ўў§ўў§ћў§ў§ўўђ§ў§ў§ў§ў§ў§ў§ўўќ§ў§ўў§§ў§§ќў§§ўўў§ў ўњћ§§ў§ўў§§ў§ў ў§ў§§ў§ўўў§ўўќ§ў§ў ўќ§ў§ўўќ§ў§ўўі§ў§ў§ў§ў§ўўі§ў§ў§§ћ§§ўўј§ў§ў§ў§ўўљ§ў§§ћў§§§ў§ўўќ§ў§ўўќ§ў§ўўў§ўў§їў§ў§ў§ў§ўўі§ў§ў§ў§ў§ўўў§ўўў§ўўў§ўўќ§ўћ§§ўі§ў§ў§ўћў§ўўќ§ў§ў ўњ§ў§ў§ўў§§ў§§ўў§ўўў§ўўќ§ў§ў ўў§ўўў§ўўў§ўўє§ў§ўћћњћљ§ћ§§ѓў§ў§ў§ў§ў§ў§ўўј§ў§ў§ў§ўўў§ў ўљ§ў§ў§ў§§ўьњљјў§ў§ў§ў§ў§ўћ§ћ§§ўўў§ўў§ўћўў§њў§ў§ў§§ўћўњўўњ§ў§ў§ўўў§ўўў§ў ўќ§ў§ўўќ§ў§ўў§ўњћўњў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўў§ ўў§ўў§ўћў ўќ§ў§ўўќ§ўћ§§ќћ§§ў ў§ўћў§ў ўў§ўўќ§ў§ўўј§ў§ў§ў§ўўў§ў ўў§ўў§§ўћћўћ§ўћ§ўўў§ўўќ§ў§ўўњ§ў§ў§ўўў§ў ўќћ§ћўўў§ўўђ§ў§ў§ўў§§ў§ў§ўўў§ўў§ў§њћ§ћў§ўўў§ўўќ§ў§ўўў§ў ўў§ўўў§ўўю§ўћўћў§ў§ў§ў§ў§ў§ўўі§ў§ў§ў§ў§ўўќ§ў§ўўў§ўўў§ўўљ§ў§ўћў§§ћэ§љњћў§§ћў§ў§§ћ§§ў§ўў§ўў§§ўў§ўўў§ўўў§ўўњ§ўћ§ћўўљ§ћњћћў§§ўў§§їў§ў§ўћ§§ў ўќ§ў§ўўј§ў§ў§ў§ўўў§ўўћў§ўўў§ўўњ§ў§ў§ўўј§ў§ў§ў§ў ўў§ўўѕ§ўњў§ў§ў§ў§§їў§ў§ў§ў§ў ўў§ўўў§ўўјћ§ћ§§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўњ§ўћў§ўўћ§ў§§ўўќ§ўћўўў§ўўє§ў§ў§ў§ў§ў§ўўў§ўўђ§ў§ў§ў§ў§ў§ў§ўўў§ўўњ§ў§ў§ўўў§ў ўў§ўўў§ўўў§ўўќ§ў§ўў§іћ§ћў§ў§ў§ўўў§ўўў§ўўє§ў§ў§ў§ў§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўўћ§ў§ўћћў§ўўњ§ўћў§ў ўў§ўўі§ў§ў§ўћў§ўўјћў§§ћў§ў ў§ќћў§ўўє§ўћўћ§ўў§ў§ўўў§ўўјћ§§ў§ў§ўў§ўќ§ў§ўўў§ўўц§ўћ§ўў§§ћ§§ў§ў§ў§ў§ў§§ћў§ў ўў§ў ўў§ўў§§ў§§ћў§ў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ўў§ќћ§§ў ўї§ў§ў§ўў§ўўј§ў§ў§ў§ўў§ ўў§ўўі§ўћћ§ў§ў§ўў§ўъ§ўћ§ћ§ћ§ўў§ў§ўћ§ћў§ў§ўўњч§ћљљњћј§ў§§ћљ§§љ§ћњњљћњњ§§№њћ§§ћћјљљњ§§њ§§њњњљћљљћљљћѕ§ўў§ћњљћ§§ћћ§љ§ўў§уљћ§њћљћ§§ў§ћњћћљћћ§њ§њ§љћћ§§љљ§ѕўњ§§љћћ§њ§ўўљюћ§ћљћ§ћћўў§ў§њ§§њ§§ћћљћћ§§ўњ§§ћњ§ћў§§њљћћљ§яћ§њњ§њўўњћ§§ў§њњ§§ћўћ§§ћћљўјїїїњћ§§љњ§ў§§њ§ћ§љњ§§ўњ§ћљ§ћ§§ћў§њљ§§ћўћў§ўўњ§љћљљћћ§§ўњ§§њ§ўљћћђњ§§љћ§ў§§љњљ§ўўя§њљљћћјњћњ§њ§§њњ§§љ§їљћћјћљ§њ§§ћњћћљ§§ўњ§§ѓњ§§њњћљњ§ћў§ћћјњјћ§§ћњ§§ћў§ўўћ§ў§љњњўћ§§ў§ў§ѕў§§ћћњ§њљњ§§ћ§јњ§љјћћњ§§њњљљ§§ўўњўј§ћћ§§њ§ўўќћўњ§§ћњћњ§ўўєњўњ§ў§§ўћўў§§ќљњ§ћћѓєјћћ§њўў§§ћљ§§ћћјїћљ§§ќћјћ§§ўњљљћћњњ§ўўўћўўчљ§ўћњ§њњћћјњјјїєјљ§ћњ§§љ§§ќњ§њ§§ўћ§§њњћўў§ћћіљћ§§љћћњњ§§ўњћћјћљћ§њўўіћ§ћўўћћўў§§љњјњњљ§ўў№ћўў§љ§њњ§ћћ§ћљћ§§ўћћ§њ§ў§§ў§ўћ§љњ§ўўѓњ§ћћњўћў§ћјњћћ§љћћњ§њ§ўўї§њ§§ўћўў§§їћ§ўўћў§њ§§ќљћљ§§ђњ§ўњ§њњ§ћћ§§њ§§ћљћњњћћ§їњ§§љ§§ўћ§§ёљћћљљјћњњ§њ§љљ§§ћќ§њ§ўўњфў§§њ§§њ§§ўў§§ћ§ћћљ§ћћ§ў§§њ§ўўїњљјјљ§ўћ§§ў§ўўћ§§јњ§§њљњ§ўў§ќљ§њ§§§њ§ўў§ћћљњћўўєћјљћћљ§љњ§§ўў§ўњ§§њ§њ§ѓљјћћ§њњ§ўў§§ўўў§ўў§љљ§ўў§§ўў§љќњўњ§§ўњ§§јњћћњјћћљљіј§ўћўњњ§њ§§їљћ§§ўћ§њ§§ќњ§њўўўћўўњћўћ§њ§§ђћљћљљ§ў§§њљљћ§§ѓјћ§њљљћњњ§њ§ћћ §№њ§њ§§љћ§њ§§њ§њњ§§ѕњ§§ћ§§ўў§ћ§§ў§ћјјїљћў§§њ§§ў§іњћ§§ў§§ћњ§§ўљњ§ўўћћўў§јћљњ§§ћ§ўўя§њћјїїљњјћћ§§љљћњњ§љњў ўљћўўњњљћћ§ўќћ§§ўў§ћјѕљјњњљћ§§ўћўў§ўўњ§§ўч§њ§ћ§§ўўњњћћўўћњ§§њ§ћњ§ў§§ўњљўўћћўўў§ўў§јєљћћњўўћњ§§њ§§ѕљ§ћћў§§њ§њ§§ўњ§§ўќћ§њ§§ўњўўѕњ§њљћњћћ§§ў ў§ќњ§§ћћћљ§§ў§§ўћ§§їћњњљћљћ§њњћљ§§ў§§§љћ§§§ћў§§ћ§§њ§ўўћѓў§§ћњ§§ћћ§ўњ§§ћњљ§њћљ§§ћ§§§њљ§§ќћ§§ўўя§њ§љћћ§љћњњљ§њ§њ§§ќњўў§§ќјњњ§§юљћ§ўўњ§ўўћўњљњїјў§§іњ§ўў§§њ§ў§§ћњћ§§ўўўњљљїћљ§љ§§њ§ўўэћўњ§њ§§њњљћћњ§ўў§§ўўјљћ§ў§§њ§§ћњў§§ўўћћ§§њ§§јљ§ћљљјњўўў§ўў§§љћњњўј§§јњ§ўў§§њўўћњљљњ§§ўўњ§§ўјћ§ўў§§ћўўї§љњњћљћ§ўў§ќњўў§§ќњ§њўў§ўћў ўўћ§§ўќљ§ћўўњћ§ћњћ§§їћ§љј§ў§§ў ў§ў§њ§ўўўњ§§њњ§§ўў§§ўћ§ћ§§ўўўћўў§ўўћўўшћїљљћ§њћћўў§§љћћњњ§§њ§њўўє§љњ§§њ§њўў§ўўћўўњ§§ћ§ќћўў§§ўћ§ўўћўўќњћћўўћєўњ§ћћјљ§ћў§њњ§їћў§ўћўў§ћћ§њўѓњ§§ћћљњ§њњ§њўўњћњ§§ћљљњјљ§ўў§§ўяћўћўў§§њ§ўўћўўћў§§ў§ћ§ўўћўў§ўћћўўњ§§љ§ўјћ§§ўў§§ўўўњ§§іўћњ§њ§§њћўўћўўћўўћћў§§ўў§ўљўўўћўўњњ§§њљўў§§њ§ўў§ћў§§їњљћїјљћ§ўўњ§јў§њ§њ§§ўў№љњ§њ§љњјњљћћњћћ§§јљћ§њ§ћћ§§§љњ§§њћљ§§њ§§њэ§љ§њ§§ћ§ў§ћљњ§§ћљ§ћћ ў§ћў§§ќљћћ§§ўї§§њ§ёўћњ§§љћ§§ћўў§ћ§§ќћљћ§§їњ§§ўўњњћўў§§њўўњ§њ§њљўў§§њўў§ўњ§§ ўќ§њ§ўўљњ§§ў§њ§§ўњћўўћћ§§§ўћўў§яњўўњљљћ§њ§ћў§њ§њўўћћ§§њўўўћўўћ§ўќћ§ў§§§ћљњњ§ў§њў§ўўњі§ћљћњ§§њ§ўўјљњ§§њ§§ўўф§ўўћћўў§љљћ§§ўўћ§њћљћћ§ћўў§ўўјћ§њўћўћўўћ§ћљљ§§ќћ§§њњќљ§§ўўќ§љ§ўўј§љњћў§њ§§ќјћњўўўћўўїћўўњ§§љљ§§ўќћўў§§љ§ўљ§§њі§њњћ§§љћњ§§њњ§њ§ў§ўў§њўі§њ§§ћњ§њ§ўў§ўњћћў§ћћ§ўќ§њ§ўў§ћћ§ў§њ§§ў§ќћљ§ўў§ўћ§§ќњћњў ўюћ§њўўћў§ћћ§§ўћў§§ўў§ўўћўўњћў§§њ§§іњ§§ўў§§ўў§§љњ§ћ§њњўўќћ§§љљњїћ§ўў§§њњўў§§њ§§љјљћ§§ѕўў§ўћўўў§ўў§§ћ§§ўћўў§ћўє§љћјћћњ§§ћјњњѓљњњјћ§§љљћњћўўўћўўт§њ§њњў§§њњ§ўў§њ§ўў§њ§њ§ў§љ§љљ§§њўўћўўљћўўћўћў ўќћўћўўўћўў§ўњ§ў§§њ§§ў§ћў§§ўћ§ћ§ў§§њ§§ћўў§ѓњћў§§ћјњ§ўў§ўў§ўњ§§њњ§љћњ§§іњћћљ§ўњјћљљўћ§§ў§јњћљћћњњ§§њ§ќљњ§ўўјњ§ћўћ§§ўў§їћљћћ§§ўљ§§ўњ§§ў§јў§њњўў§јјљїєїјљ§ўўўћўў§ќћўћўў§§њ§ўўі§јњћ§§ў§њ§§§њў§§њ§ўіћўўћ§§ўўћўўљ§њ§§њњўў§ўў§§ў§ў§њњ§њ§§ўўњя§ўўћўћў§њњў§њ§§ў§§ћўњ§њ§§њћў§§њўўўћў ўўћўўњћў§§њўўћћўўњ§§ўўњћћ§ў§ ў§ў§ўў§§ўљћ§њњ§§ћћћљ§ў§ћћѓ§њљћ§љћњљћ§§ў ўўћўў§ќљ§§љљ§ў§іњ§њ§њ§§њ§ўў§ўї§љћљ§§ўћўўљњњ§§њћўўћћўўћ§§ў§њ§§њўў§ыћљ§њљћ§§њњ§§њљњњўћў§ўў§њ§ўўўћўўњњј§§ўў§§ћљ§ћљљћћјјћў§ўўњ§њ§љћўљњњ§ў ўўћўўћ§ўўћўў§ђњўў§ћћљњјћћњћ§§ўњ§§ћћў§§ўў§њўў§§ўў§ўўћћўњ§ўўїћўўњћћљљњњћјљћљљјљћ§§ў§ўќ§њ§ўўќ§ўў§§ўў§§њ ўљ§њ§ўўћ§§ўўћўў§ъњћћљњ§§ўћ§њћћ§ћ§њњљћњ§§ђћ§§њћ§њћ§ћћ§ћ§§ўћ§§њћњћћњћћѕњћњћћў§§њ§ћћљ§њћњћћўўсћ§ћњћ§њћњ§ћўћњљћњћњћћ§ћ§ћћњћћ§ћћѕў§§ћћњћћ§ћўўќ§ў§ћћў§ћч§ћ§ћ§ћ§њћњћћ§ћ§ћ§ћ§ћ§њћњ§§ќћ§ћўўљ§ўћ§§ћњњћў§ћћ§ўљ§њ§§ўћ§§єћ§ћ§ўўћћњћњћћћњћњћљљћѕ§ў§ћўћ§ћ§ћ§§ђћ§ћ§ћћњћ§§ћ§§ўўјћњћ§њ§ћ§§ћ§§ћўўёћў§ўў§ћњћћњћњ§ћћє§ћў§ћћ§ћ§ћ§ћћ§ьћ§ћћњњ§§ћћњ§ў§ћћљћћўў№§ўћ§ћћњњћ§ў§ћ§ћ§§ћћ§ћ§ћћј§ћ§ћ§ћћњњћѓ§ћ§ћ§њњћ§ћ§ћ§§њћ§ћ§ћ§§фњћ§§ўўћћњћњљњћћ§њ§ћ§ћ§ћћњ§§ўўхћўћћљњљћћ§ћ§§ў§ћћў§§ћўћћњњ§§тў§§ћ§ћћњ§ћ§ћћ§њњ§ћ§ћ§§ћћ§ћў§ў§§ўћ§њњћ§§§ў§ўў§јћ§ћ§њ§ћўў§ќў§ћўў§ѓћ§ћ§ћў§§њћњћњњ§ќў§§ћћќ§ћ§њњјћњўћ§ћ§њњљ§ћ§ћ§§ћћўњ§§ўі§ўћўў§ћ§§њњѕљњњћћњћ§њ§ћћљ§ћ§ћ§ћ§§ћ§њ§ћћњ§ўў§§њњѕћњњћњћ§ћћњ§§цћ§ћ§ћ§§ћњћњ§њћњ§§ў§ўўћўў§ўў§єћ§ћћњљљћћў§ўў§ўў§§ђћњњ§њћњ§ћ§ћ§§ўўйћ§ћўћ§ћ§§ўћ§§ўћћ§§ўў§§ћњњ§ўў§§њњљћњћњ§ћћњњ§ћ§ћўўѕћ§ћ§ўў§ўћ§ћћќў§ў§§іћ§ћўњћћ§ћ§§ўћ§§ќњћћ§§оћ§ћ§ћћљљњћњ§ћ§ћ§ў§ћўўћћ§ћ§ўћњћћњњ§§ћљ§ћ§њћњ§§ўќ§ўћ§§ьћ§ћ§§ўћ§њ§њњћ§њћћўћ§§ўь§ћњњћћўў§ћ§ћ§ўў§§ћћўўю§ћ§ћћ§§ћ§ћ§ћў§ўћ§ћћс§ћ§ћ§ћў§ўћ§њћ§ў§ў§њ§ћњћћ§ћ§ћ§§ўўћ§ў§§ћћ§ћ§§ћ§§ўћ§§јћ§ћћњћњ§§њћў§ћћўў§§ў§ўўќ§ћ§ћћєў§§ћў§ў§ўћ§ћћю§ўў§ћ§ћ§ћ§ћ§ћ§ћ§§њњћќ§ўў§§ђћ§ћњћ§§ўћ§ћ§ћ§§§ў§ўўќ§ў§ўўї§ў§ўћ§ћ§ћћћўћ§§ћћѕ§ћ§§ћћ§ћћњ§§њћї§ћ§ћ§ћ§ћ§§ќћўњ§§ќћ§ћ§§ќћ§ћ§§љћњћ§ўўћћ§§ћўўљћ§ћ§њћњњћћњўћ§§§ћ§ўўщ§ћ§§ћћ§ў§ћћ§§ћ§ўў§§ћў§ўўћ§ўћ§ћћљ§ћ§њ§§ўўїћ§њњљљјљњњў§ћћ§ћў§ў§ўўў§ўў§јћњћњ§ћ§ўў§§ћўўѕћ§ћ§ћ§ћ§ћћњњїћњљљћњ§ћўўњћ§ћў§ўў§ъћ§§ўћ§ћњћ§ўў§§ўў§ўў§ћ§§іњ§ћўћ§ћ§ћўўќ§ў§ўўўћўўь§ўћ§ћ§ћ§њњћћњ§§ўў§ћ§§њћ§ћўћўў§іћ§ћ§ћ§ћў§ўўњ§ў§ўў§§§ћ§ћћ§ў§єћ§ћћљћњ§ћў§ўўў§ўўўћ§§ўћњњљћ§ћўћ§ћћњ§ћћљљћћ§ћхўћ§ћ§ћћњ§ћ§ўўћ§ћ§њћћ§ћ§ћў§ўў§ыћў§§ћћњ§ў§ћ§ћћњћњћљњћћ§вћ§ћўћ§ћ§ћ§ћ§њ§ћў§ўћ§ћћњћ§ўњљљћћ§ћ§ћ§ћ§§ўћ§ћ§ћ§§їћ§§ћњ§§ў§§ўљ§ћљћњўћћє§ћўў§ћ§ћўћ§ћћћ§њћћўўў§ћћї§ў§ћ§ћў§ўўѕ§ћ§§ћ§§ћњћ§§їўћ§ўў§ћњ§§іћ§ћ§ћ§ў§ћўўф§ўў§ћ§ћ§ћ§ћ§ћ§ў§њћћ§§ў§ўћ§§ўў§ћћ§ћћљљјњћ§ћ§ћў§§ўј§ћћ§ћ§ћўўј§ў§§ћ§ћўўш§ў§ўћў§§ћў§ў§§ў§§њћњћў§ўўјћ§§ў§ћћ§§ў§ћ§ўўќ§ў§ўў№§ў§ўћ§ћ§ћў§ўћў§ўўя§њљњ§ћ§њ§ћ§ћўћ§§ўўъ§ў§ў§ў§ў§§ћ§ћ§ћў§ў§§ћўў§юћ§ћ§§ћћў§§ћ§§ў§ў§ўўћ§§ў§ўўјћ§ўў§ў§ўўъ§ў§ў§њњћћњћ§ўў§ўћ§ўћњ§§єћ§ћ§§ў§ћћ§ћ§§ўў§ўў§ьћ§ћ§ћћњ§ћ§ћ§ўў§§ћ§ћўўќћ§§ўўў§ўў§ўў§ўўѕ§ћћњњћ§ўўћ§§њћ§ўўћўўљ§њћњ§ћ§§ъў§§ћ§њњў§ћ§§ћўў§ў§ўў§ћћї§ћ§§ўћ§ћ§§ўў§ўў§ќћ§ћўўњћ§ћў§ўўіћ§ћћњћњ§ћўўў§ўўјћ§§ў§ў§ўўї§ў§ў§§ћ§ћћјў§ўў§ћў§§јў§ў§§ћ§ћћѓ§ћўў§ћ§ћ§§ў§ўўў§ўўў§ўў§§ў§§ў§ўу§ў§ў§§ћ§ўў§ў§§ћ§ћ§ћў§ў§ў§§ћ§ћћћ§ћ§ћњњќћњћўў§єћ§ћўћ§ћ§ћ§§ўў§ёћљњљћћњ§ўўћ§ћ§ћћы§ћћњ§ћ§ћ§ћ§ћ§ћ§§њњћў§§њћ§ћ§ћ§§јћўћ§ћ§њ§§ћњћ§§ћћў§њњ§ў§ў ўюћ§ћ§ћ§ћњњ§ћ§ў§ћ§ћ§§ѓћ§ћўў§ћ§ћњћ§ўўѕ§њ§ћ§њћњ§ћ§§јћўў§§ў§ўўѓ§ўћ§§ў§ўћ§ћ§ўўќ§ћ§ўўњ§ў§ўћ§§ќћ§ћў ўћћ§ћў§§јћўћ§ћ§ћўўў§ўўў§ўўќ§ћ§ўў§јћ§ћ§§ў§ћћќ§ћў§§ёћ§ў§ўў§ћ§§ў§ў§ўўљћњњћ§§ўўѓћўћ§ћ§ћ§ћ§њћ§§јћ§ћў§§ћ§§ўў§ўў§њњћњ§ћ§§ў§§ћ§§ўћўўќћў§ўўя§ћћњ§ћў§ўћ§њћњњћўўўћўў§ў§§ўћћў§ћћћ§њ§ћ§§ђћ§ћў§ў§ћћ§ўў§ўўї§ў§ўћћ§ў§§§њ§ўўў§ў ўќ§ћ§ћћћ§ћ§§ўўќ§ћ§ћћњ§ћ§ћ§ћћћ§ћ§ћ§§іў§ћћњ§ћ§ћ§§ћў§ўћ§§ў§ћћњ§ћ§§ѕў§§ћ§ћ§њћњћћњњћ§ћ§ћўўю§ўћ§ћў§ўћ§ћ§њћњћњ§§љћ§§ў§§ћћ§ўъ§ўћ§ћўћ§ћ§ћ§ћ§њ§ўў§ў§ўўў§ўўќћ§§ўўњћњњ§§ўўњћ§§ў§ўўќћ§ћўўў§ўўў§ўўўћ§§ћ§іћўў§ћўўћћ§§ўњ§§ ўѓ§ћўћћљњњ§§ўћ§§ўѕ§ўћ§ћ§ћ§ћ§ћћ§ѓў§ў§ћћў§ў§ўћўўћѕ§ћ§ўў§ў§§ћўўћњљћ§§ћњњљљёћљљњњћ§ћћњ§ўў§ўўў§ўўі§ў§ў§ў§ўў§§ћў§§ћ§§њўћ§ћў§§ћў§ў§ћћ§іћ§ћ§§ў§ў§ўўј§ў§ў§ў§ўўў§ўўќ§ў§ўўў§ў ўјћ§ћ§ћў§ўўїћўћћ§§ћ§ўўђћ§ћ§ћ§ћ§ћў§ў§ўўј§ў§ў§ў§ўў§§ўћћўўћћ§оћў§ў§ў§§ћ§ўўћ§њњљ§§ўћў§ў§ўў§ћ§ћ§ћ§§№ћњ§§ћ§§њњўћў§§њћћьњ§ћ§ўўћ§ћ§њћњћ§§ћ§ћ§§јћ§ћ§ў§ћўўўћўўћў§ўў§ћ§ћћюњ§ћўў§ћ§ћ§ћ§ћў§ўћ§§ќўћ§њњїћњ§ћ§§ў§ўўљ§ў§§ћ§ўўђћ§ћ§ћў§ўћњљћћ§§јћ§§ўћ§ћ§§јћ§ўў§ў§ўўњ§ўў§ћўў§§ў§§ћ§ўэћ§ћ§ћўћ§ћў§ў§§ћ§§ўћћѕ§ћ§ћ§§ў§ўў§§ўјћ§§ўћ§ћ§§їћ§ћў§ћ§§ћћѕў§ћћ§§ў§ў§ўўў§ўўў§ўўќ§ў§ўўњћ§§ў§ўўў§ўў§ѓћ§ћ§ўў§њњћћ§ўў§јћў§ў§ў§ўўљ§ћ§ћў§ўўѕ§ўћ§ћ§ћўћ§ћћўўћ§§њћњњћћ§§њ§ѕћњ§ћњљћњ§ћўўќ§ў§ўўђ§ў§ў§ў§§ћўћ§ўћћ§§ўћ§§ќћ§ћўўќ§ћ§ўў§њћњћ§ћўўі§ў§ћћ§ћ§§ўўќ§ў§ўўђ§ўћ§ћ§§ў§ўћ§ћ§§ўћў§ћћ§ћћњ§ћ§§њћ§ћ§§ўўіћў§ў§§ћў§ўўф§ў§ў§ў§ў§§ћ§ћў§§ћ§ћ§ћўў§њћћњњћў§ќћ§ћ§§ђћ§ћў§ў§§ћў§ў§ўўќ§ў§ўў§§ў§§ўё§ўћ§ћ§§ў§§њњћљњњќ§ћ§ћћу§ћ§ћ§ћ§ўўћ§§ў§ў§§ћ§ћ§§ўћ§ћ§§ўўјћў§ў§ў§ўў§ѕў§ў§ў§ћњћћљљїњћњћњћћњћћѓ§ћ§§ўћ§ўўћ§ћўўў§ўў§ўјћ§ћўћ§ћ§§ўѕ§ў§ў§ў§ћ§§ўўѕ§ћ§ћ§ћ§§ў§ўўя§ў§§ћўћў§§ўў§§ћў§§№њћћ§§ў§ў§ў§ў§§ћ§§ѓў§ў§ў§ўў§§ўћ§§ќћ§ћўў§їўћў§§ћ§ћўў§ўў§§ўя§ћћ§ћ§ћў§ў§ўћ§ћў§§ўј§ўћ§ћў§ўўјћ§ћўћ§ћўўќ§ў§ўўр§ў§ў§ў§§ћ§ћў§ў§ў§ў§ў§ўћ§§ў§ў§ўћўўќ§ўћ§§ћў§ўћўўў§ўў§ўј§ў§ў§ў§ўўњ§ћ§ћ§ћћѕўћњњћћў§ў§ўўњ§ў§ў§ўўє§ў§ўћ§§ў§ў§ўў§їў§ў§ў§ў§ўў§ќћ§§ўўў§ўўњ§ў§ў§ўўѓ§ў§ў§§ћ§§ў§ў§§љў§ў§ћ§ўў§эћ§§ў§ў§ў§ў§ў§ў§ў§ў§§яў§ў§§ћ§ћ§ћў§ў§ўў§§ќў§ў§§јў§ў§ў§ў§§§ў§ўўћћ§ћ§ћћўў§§їў§ў§ўћ§§ўўі§ћњћћў§ў§ўўў§ўў§§ў§ўўѕ§ў§ўћ§§ў§ў§§њў§ў§ў§§ўў§ўў§ћў§ў§ўўћ§ў§ў§§ўќ§ў§ўўё§ў§ў§ў§ў§§ћўћћ§§ўљ§ўћ§§ў§§ћщ§ўў§ў§§ћ§§ў§ў§ўћ§ћ§§ў§ў ўђ§ў§ў§§ћћњћћўћ§§ў§ёў§ў§ў§ў§ў§ўў§§ўўў§ўў§ўћ§§ћў§§ћўўё§ў§ў§ў§ўћ§ћ§§ў§§ ў§§ў§§ћўћћ§ўўљ§ў§ў§ў§§ћў§ў§ўўў§ўўќ§ў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўў§ћѓ§ћ§§ўћ§ћ§§ў§ўўќ§ў§ўўќ§ўћўўњ§ў§ў§ўўч§ў§ў§ў§ў§ў§ў§§ћў§ў§ў§ў§§ћћѕ§ћ§§ў§ў§ў§ўўі§ў§ўћўћ§ћўў§§ў§§ѕў§ў§§ћ§§ў§ўўќ§ў§ўўў§ўў§ўћўўќ§ў§ўў§ќњўћўўі§ў§ў§ўў§§ўўќ§ў§ўўњ§ўў§§ўўі§ўћў§ў§ў§ўў§ў§ўћ§§§ў§ўўў§ўўќ§ў§ўўь§ў§ў§ў§ў§ў§ў§ўћ§§ў§ў ўў§ўўњ§ў§ў§ўўў§ўўњ§ў§§ћўўѓ§ў§ў§ў§ў§ў§ў§§§њў§§§ў§ўўљ§ў§ў§ў§§§ў§ўўњ§ў§ў§ўўі§ў§ўћўћ§ћўўы§ў§§ћў§ў§§ћў§§ћ§§ў§ў§§ўм§ў§ў§ў§ў§ў§ў§ўў§§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўўќћў§ўўю§ў§§ћўћўћ§ўў§ў§ў§ўў№§ў§ўћў§ў§ўћў§ў§ўўў§ў ўљ§ўћў§ў§§ў§љћњњ§ћћ§§ћўћ§ћўўў§ў ўі§ўћ§ћ§§ў§ўўў§ўўђ§ў§ў§ў§ўћ§ћў§ћћ§ўў§ў ўќ§ў§ўўњ§ў§ў§ўўў§ўўћ§ў§ў§§ўќ§ў§ўўў§ў ўє§ў§ў§ўћўћ§§ўўі§ў§ў§ў§ў§ўў§ѕў§ў§ў§ў§ў§ў ўњ§ў§ў§ўўў§ўўћ§ў§§ћћ§ ўљ§ў§ў§ў§§ўљ§ўћў§ўћћі§ћ§ћў§ўў§ўўћ§ў§ў§§§ў§ўўі§ў§§ћў§ў§ўўў§ўўщ§ўћ§§ў§ў§ўћ§ћ§ћћњўћў§ў§§ў§§ў§§ўў§§ўњ§ўћ§ћ§§єћў§ў§ў§ў§ў§ўўї§ў§ў§ў§ў§§ўў§ўўћћўћћўўў§ўўў§ўўў§ўў§ў§јћ§§ў§ў§ў ўі§ў§ўћ§ћў§ўўў§ўў§ѕў§ў§ў§ў§ў§ўўў§ўўђ§ў§ў§ў§ў§§ћ§§ў ўћ§ў§§ћћ§ў§ўў§ў§§ў§ўўќ§ў§ў ўў§ўўћ§ў§ў§§ўў§ўўќ§ў§ўўў§ў ўќ§ў§ў ў§ћћ§§ў§§ўў§ў ўњ§ў§ў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўќћў§ўўў§ў ў§§ў§§ўє§ўћ§ўў§ў§ў§ўўќ§ў§ўўў§ўўђ§ў§ў§ўћ§§ў§ў§ўўќ§ў§ўўў§ў ўў§ў ўј§ўћ§ћћ§ўўў§ўў§јћ§§ў§ў§ўў§§ў§§§ў§ў ўќ§ўћ§§ў§§ў§§ ўў§ў ўў§ўўј§ўћ§ћ§§ў ўў§ў ўљ§ў§ў§§ўўў§ўў§ўќ§ў§ўўў§ўўќ§ў§ўў§ў§ ўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўўі§ўў§§ўћ§§ўўњ§ў§ў§ўўќ§ў§ўўѕ§ў§§ћўћўћ§ўўњ§ў§§ћўўљћ§§ў§ў§§њў§ў§ў§§іў§ў§ў§ў§ў§§јў§ў§ў§ў§§їў§§ћў§ўћ§§ ўћ§ў§ў§§їў§ў§ў§ў§ўўў§ўўј§ў§ў§ў§ўў§ўў§§ћў§ў§ўўў§ўўў§ўўќ§ў§ўўњ§ў§ў§ў ўў§ўўў§ўўў§ў ўќ§ў§ўўњ§ў§ў§ўўќћўћўўў§ўўќ§ў§ўўњћ§§ў§ўўљ§ў§ў§ў§§їў§ў§ў§ў§ўўњ§ў§ў§ўўє§ў§§ћ§§ў§ў§ўўњ§ў§ў§ў ў§§ў§§ў§§ў§ўўў§ўўњћ§ћў§ўў§ўќ§ў§ўў§ ўў§ўў§§ў§§ўі§ў§§ћў§ў§ўўх§ў§ў§ў§ў§ў§ўћў§ў§ў§ў§ў§ў§ў§§ѕў§ў§ў§ў§ў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўю§ў§ўў§ћ§ћўћ§§ў§ў§ўўў§ўў№§ў§§ћ§ћ§§ў§ў§ў§ўўњ§ўћ§§ў ўў§ўўі§ў§ў§ўў§§ў ўў§ўў§ўў§ўўў§ў ўќ§ў§ўўў§ўўў§ўў§§ў§§§ў§ў ўі§ў§§ћћњ§§ўўќ§ў§ўўѕ§ў§ў§§ћў§§ўўњћў§ў§ўўў§ўўцћ§ћ§ћў§ў§ћћўћў§ћћў§ў§§ћ§§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўї§ў§ў§ў§ў§§ўў§§ћў§ў§ў+ўќ§ў§ў ўќ§ў§ўўј§ў§ў§ў§ўўўћўўў§ўўў§ўў§ќћў§ўўї§ў§ў§ў§ў§§њў§ў§ў§§ўќ§ўћ§§§ў§ўўъ§ў§§ћ§ћў§ў§ў§ў§ў§ў§ў§ўўј§ўћ§ћ§§ўўј§ў§ў§ў§ўўњ§ў§ў§ўўљ§ћћўћў§§ўќ§ў§ўўќ§ў§ўўєћўћў§ў§ў§ў§ўўј§ў§ў§ў§ў ўў§ў ўў§ўўў§ўўќ§ў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўў§ў!ўў§ў ўњ§ў§ў§ўў§ќћў§ўўў§ў ўќ§ў§ўўќ§ў§ўўў§ўўї§ў§§ћ§§ў§§§ўћ§§ўћ§§ўў§ўўј§ў§ў§ў§ўўі§ў§ў§ў§ў§ўўќ§ў§ўў§ў§§ў§ў ўќ§ў§ўўњ§ў§ў§ўўё§ўћў§ў§ў§ў§ў§ў§§ўў§ў ўќ§ў§ўўњ§ў§ў§ўў§њћўћ§ћўўњ§ў§ў§ўўў§ўўў§ўўў§ў ўќ§ў§ўў§іћў§§њ§§ў§ўўј§ў§ў§ў§ўўў§ўўќ§ў§ўўќ§ў§ў ўў§ўўўћ§§ћ§ўћ§§іћ§ћ§ћў§ў§ўўў§ў ўў§ўўў§ўўњ§ў§ў§ў ўў§ўўј§ў§ў§ў§ўўѓњїљїљ§љњїљњ§ўўћћўћћўўьћўўњ§§ћњњ§§јљњѕњ§њћљљћћјћ§њ§§ўэ§ћљјћћњ§§љ§љ§њўўћўњњ§њ§§ћ§§ўј§§ўђ§њ§§њ§ћћљ§њљћ§§ѕўћўўћўљ§ћїјјћ§§њ§§§њћ§§ћќљћњўў§ѕњљјњўўћўњ§ўўћћњ§ў§§ўњ§§љљћјјљћ§§ћљћћљ§§њљћј§ў§§іћўћ§§јљ§§ўў§§њ§§ўў§§№љњ§§ћјїјјњњћ§њњ§§ыљњјјїјљјљ§§ўћўћ§ћњњљјјќљ§§ўўќ§ћјћћ§§њ§§іћјљј§ћћљћ§§њў§§љћ§§ѓњ§љјћљ§§љћљћ§§њћљњ§њ§§њљљњњјњїћћў§ўў§љњљћўўњћћјњ§јљљњ§ўўѓ§ћњњћњјћ§§ўћўўѕ§њ§§њљјћћ§ўўј§њ§ћћљњўўљћў§љћ§ћћђљѕљљћјјїјїћћјњњђјљњїїјћњњ§§ўћўў§њў§ўў§ћў§§ўќљћњїїјњљћўјћћўљћћљђ§ћћјњ§ћўћў§§ўћћёњљјћ§ўўћњ§ћјјњјјєћ§ћћљћјѕјњћ§§љћљћјјњїїљѕ§њ§§љјјљњ§ў ў§ѓў§§љјњїљњћћј§§њўњљћћ§§§њ§ћћўњїїўјћћљюћњ§јљ§љћјњўў§њњљљ§§њњј§§њў§§јўћўўћўў§§чњћћљљћћљћћљћљћњљћљј§љљјїјјћў§љ§ўў§ѕњ§ћ§§њћћ§ћ§§ћњ§§јљљ§цњј§ћћњ§љ§њљљјњњјњїїњћћљћћњњћ§њ§љћћя§њў§њћњ§њ§ћјїѕјї§§ѓљћћњ§ћўў§ћљ§ўў§ыљћћљљћјњћћ§§љњљѕѕїїјћћѕљњ§њњ§љ§љљњњ№јњў§§ћўў§ћњћћ§њ§§ќљ§љ§§ћњ§§љњњђћљњљњјљњњїљћј§§ўњ§§ўћљљїћўў§ћћљљћћўљ§§§ћў§§ћєјљљћњњћћњ§§ћћєјњ§§јљљјћљљћћ§зљўўњ§ћјѕїјћћ§љћћњњљ§ћњјљїїјјњјњљјћћњїљћљњњўїјјїљѓїњјљћћјљљјљћљљѕњ§њљјјљ§§љћћ§ўљњњљјњїїјњјјэѕїјјљћљћћ§§ћљјњјјїњњљўњћћљќ§ўћ§§ў§ћщ§њўћўў§њўћ§љјјљљ§љјљњў§§єў§ћћњјїњјјљћћќљћљћћњч§ћњћћњ§њљњњјћ§њ§ћћњљћљјћ§ §љњћ§њ§њ§§ўњћћќљћћљљћўљћћљљ§§ћњїћћќљћљћћќњљљћћјјљ§§њњљ§§іњїњїїјјћћ§§љјљћљћњјј§ёљ§њ§§љњ§§ћћљ§ћљљћћњјњћ§§јћљћћљѕљњњ§њў§њ§њљљћјўћ§§ћћљјјљљќњћљ§§ўњњћ§ћњљљћ§јљћ§§ўњ§љљћњљћљљћ§§љњћїїњћ§§ћљјљјјћћљљѕћљћњ§ў§ћўў§§ѕљћљљ§§ћљ§§ўўэ§њјѕљјѕњјјљљјјћ§§њ§§ѕњћјњњћљћћњ§§ћљјћћ§§љњєўћў§њ§ўўњћћљљюћјљњ§ћљљјјђїјћћљљњњњљћљњ§ћћњњ§§ћљћћї§њ§љћњљћ§§ћ§ўљњњћјљњњћћѕєјјћѕјљјїїђјљљћјњїїћ§њ§љћћќљћљ§§ўѕћњћўћўњњ§§ўў§§ћљљі§ўћћ§§ћљљ§§љјћљћ§њљљћћїњїјљ§љјјњњїћљљћ§ћљ§ћўў§јћљљјјњњћћ§§ћјјњћѓљјјїњњїјјѕїїњњќћљ§ћћ§ћљјњ§§њ§ћћт§ћћљњњљљ§ћћљћ§њћњїљїћљћљћјїјљћћјўљћћћљћљљћћўљ§§ћњ§ћћўўј§ћљљњњћ§§њьјњћјјїїњјјїјњљјћјјљ§§ў§њ§ћћ§ў§ўћ§§іљјўћў§§ћљћћѓ§ўў§љљћћљњ§њўўјћњљїјјљћћ§њќ§њљњњ§љњ§љћњјїїљјњјјњћўўэ§њ§љћћљ§§њўў§њњћћ§ўўъ§љљјњњћћ§§ћѕјћ§§ў§ћў§ћћ§їљњљћљ§ћў§§ўјћћўљ§§іћљћњћјїњњћћјўћ§§ћјћјјћћњёљїјјњљћћљ§§љћљћћ§ќћљљћћ§§љћћїљћ§њњљњњ§§§њљњњэјћ§њћљљ§љјљљњњћћњњ§§ўњњљњјљћћћљ§њћ§§њјћћ§§љљьјћњ§§њњљљњјјћћ§љљћћ§§ёњљњ§њњ§љјїјћћѕ§§ђњ§§ўў§§ћљ§њўћўў§§ћњњћ§§ў§ћћљљћљїћћ§§њћыѕљћћњ§§ћјћ§§ћўўљљћ§§ўўу§ћћњ§§љљћјјљљћћјћљљћ§ћў§§ћљљ§§ћёњјћћљћљ§§њ§§љљ§§ўя§љћ§ћў§ћјњјјїјїјљљъјїћљљјњћљљћћљћћ§§њљћљћћ§њ§§ўћ§§эњљљ§ћјѕїњћњљћћљћ§њ§§єћўўњ§§њљ§§њ§§њњљ§њ§ћћљљћњљћћ§§њњћ§њ§њњўіћў§§љћ§љћјјћёљћјљ§њњўћўўћ§ў§§ћѓљњњўў§ћ§ћўњњ§§ўўњ§§ўћ§ў§ћћьљ§њњ§љљћњњєњњїўў§§ћљљ§њєљњњ§ћ§§њћў§ўўњ§ќљњњ§§тљњ§њ§њ§њљ§ўћў§ћљћћљњ§ћњљћћ§ўў§§ћћљћ§§љљћјљћњћћћљћљћ§§ѕњћїјјљљ§§ћ§§ўѓњјљћ§§њљјњњљћћ§ћў§§ћ§§ёњ§ўўњўў§§љјљљјїїнѓїѕїѕѕљјњљїњњїљјњљћћљњјјљћ§љјїјљўў§§ќћљњ§§ўѕњ§ћ§§њћљћћ§§іћљћљћњњљїњњєјњњћљ§§љћћљћћћљћјњ§§ўє§љљјљ§§њњљћјјћћљ§њњ§§њћшњїјњљћћљћњњћљїєљљћјњњћћњњћюњјњј§§љћ§ўў§§њљј§ћћ§љћјѕјћ§ўўћ§ћљћ§§єљћїјјѕјјћљљ§§ћљсћ§љјњјјћњњјћ§§ўў§§њњ§ўў§ћљјћ§љћћјњјљјћћ§ўўћ§љєљ§§љњ§§љћљћћњљњјћњ§§љћћјјњћћњ§њћћўћћїїјљљ§ћћљ§§ў§ўњ§§ў§љ§ёњ§§ћјњћјїѕї§њ§љљћ§љњ§§ўњњ§§пњ§§љћћљљ§§ћјјћћјћћјљћћњјњћћ§њ§љ§ћћљћњ§ћў§§ўњўў§ђњ§§ўў§§њ§§њњљћћњ№љћћљљјњјјњњљћћљћћ§ќњћћ§§ўћўў§њњљјљћ§§љ§ќњ§§ўўч§љљћїњљ§§љјїћ§њ§§ћљ§њњ§ў§§ѕњљћљњ§ўўћ§ўўњ§њ§§њ§§§њљћћчљћњ§њњћ§њ§§ћћ§§њ§§њ§§њ§§ўўј§ћњљњћћ§§§љћњњљјљ§њјљ§§јћљљјћћљћћќјћћљљ§ћљћћѕњћјљїїњљћљњњыјљљїјѕњћћїїљјћљњјїјћўўќњ§њ§§ўј§ћљ§ћјјљљњљћњћњјїљїќјњљ§§ћћљћљ§§єњ§§њћћ§ћўћ§њњёћљјћћљћ§§ћјњїјњњсјћћ§њ§ћ§§њ§љ§њ§њ§§њјњјјњљ§§њљљ§§ќњ§њћћќњјјћћўњ§§ћ§ќљїјњњэїњњћјњјћњћ§§њљћљљћљљ§ћюњїљћ§§њ§ўў§њ§ў§ћњјјљњћњ§§њћћњќїњњјјњїљњљј§§ў§ўћ§§эћљ§§њ§љ§§ћћљњњ§ћљћ§§ўњћћћљ§љћ§§ёћјјљћћјљљћћ§§њ§§№њ§§њњ§§њ§њ§ћћљљћћ§§њ§§ќњ§љ§§ўњ§§ћ§§њ§ћћі§њ§њ§ў§§ў§§эњўў§§љљћљљѕњ§ћїїјјћћќјћћљљћјљћ§ўўљ§њљљћћ§§ћўјћћјћћљјћ§§ьћјњћћїћљ§§њћљћљћћљјњњўјњњјіњћ§љ§љјњћ§§ћљ§љњ§§њђљјљљћѕјјљћљћћљљћј§њјњњјћўљћћњјњћћјћћќ§ћњ§§љљњћљћћјћћэљћљњ§§њњ§њћј§§ўўњњ§§ћўљћћ§шћўўњ§§љћљ§њњ§њњ§ћљћћљљћ§§ћўјћћќњ§њ§§ўњ§§ћчјљљњ§§љјћћљњ§§ћњњћ§љ§§ћћ§§ьњ§§ўў§ћћјњљїјѕїїљјљ§§јћњњ§њћћ§§ќљњњјјћђљјћљљћњїљњћћљ§§њ§ўљћћљѕјљћћў§ўў§ћўўя§ў§ў§ў§§ћў§§ћ§§ћљљ§ўћђњћ§ћћ§ћ§ћ§ћ§§ўў§ђњћњћњ§ћ§ў§ћ§§ўў§ўћ§§ќњ§ћ§§њћ§ўў§ўўќћ§ћ§§єњћў§§ћњ§ћ§ћўўћ§ўћћњњіћњћћ§ћ§ћ§ћћ§§њћ§§§ћ§ўўјћ§§ћћ§§ўў§ў§§ў§§іћ§ћ§ћ§ћ§ћњњыћњћ§ћ§§ћњћћ§ћ§ћ§ћ§ўњ§§§ћ§ўўљ§ћ§ћ§ћўўшћ§ћ§ћўћ§ћ§ћћ§§ћћњљњњљљњ§§рћ§ћћљњњћњћ§ћћ§§ў§ўћћљљћњњ§ћ§ћў§ўў§уњ§њћњњћ§ћ§ћћњ§ћ§ћњњћњ§ћ§ћ§ћўћћ§§ћ§§їў§њћћ§ћњћћ§§ћ§§ёў§ћ§ћ§ћ§§ћљљњљњњћћњћћўў§ћ§ћћў§ўўѓ§ћњћњ§ћ§ћћ§§ўўѕ§њњљћљњњ§ћўўў§ўў§юћ§ћ§њњћў§ўћ§ћћњћ§ўўє§ћњ§њћњћ§ћћњњћњљєњћљћљњњ§§ћћўўј§ў§ў§§ћ§§§ў§ўўјћ§ћўўћњљљњљћњњћњћњћћњћўњ§§ўќћ§§ўўѕ§ћњћћў§ў§§њњўљњњћёњћњњљњљћћ§ћ§њћњњљћј§ћ§ћњњћ§§љў§ў§ў§ўўьћ§ћ§ў§ћћњљљјљћњ§ћ§ћ§§јћњњ§ћ§ћ§§ћњћњњљљњќћњњћћ§ћћњ§§ў§§ўћћ§ћ§ћ§§јћ§§ўћ§ћўўђ§ў§ўћ§ћ§њњћћњћћљњћњћњ§ћћў§ћћ§њљњњї§њў§ў§ў§ўўћћ§ћ§ћћ§њѕ§њ§ћ§ћ§ћ§§ћћ§ћѓњ§ћўћ§ћћњњљњљљњњћћњњ§§йћ§ћћњћњћ§ўћ§њ§ћ§ћћњљљњљ§ћ§ћ§ћ§ћњњ§ћў§ўћћў§ўўњћ§ћњњћћїњљњњћ§ћљјјљњљћњћћ§ћ§§ћћ§ћћљљхњљўћ§ўў§§њљњћћ§ћ§ћ§ћ§ћ§ў§ћ§§ћљњхћ§ћљњјњљћћњ§§ћ§ћ§ћ§ћ§ћ§ћ§њћћњњўў§њћћоњћњћћ§ћ§ўўћ§ћ§ћ§њћњ§ћћњњљњњ§ћ§њћњ§§§ћ§ћћњћћ§ћ§ћўўљ§ћњњљљњњљ§ћћњљљћћ№љњјљљњњљњљћ§њћљћћљ§њћњњљјљїњћњћњћћњћћўў§§јћњњћ§ћћњњљћњћћ§ћљљћњљњћњњѓљњњћњўњћћ§њћњњ§љњљљћў§њњюћњћћ§ўћћ§ћ§ўў§§ћ§њњ§ў§ўЫ§ћњњћћ§ћ§ћ§ў§ћ§ћўћћњљњћљњњћњћњћњћњћњњ§§ћћљњњ§ћ§ћљљњњ§§ыњћљћњћћњћ§ћ§ћ§ћ§ћ§ћ§ћћё§ћ§ћ§ћ§§ћњћњћњћћњўћњњјўћ§њљњћњњїћњћњћњћљћћњњћњћћ§§ќћ§ћ§§щњљњћњ§њћћ§ћ§ћњћћљњњ§ћ§ћћѓ§ћ§ћ§ћ§њћћ§њћћюњћљњљћћ§ћ§њћњћћ§ў§§ѕћ§ћ§§ўћ§ћ§ћћњ§ћњћєљћћ§ћ§ћў§ў§ћћўљћћѓњћњ§ћћњ§ћў§§ћћшњћњћћњћ§ћ§§ћњћљћћ§ћћњњћњњћјњћњ§ћўћўўїћ§ћћњћћ§ћћі§ћў§ў§ўўћ§§іћњњљњ§ћћ§ћћ§јћ§§ћњљљћћљњ§ћ§ћћњњћў§ћћ§ў§ћў§ћњћћћњ§ў§ћћњіћњћњћћњљљћћі§ћњњћњћ§§ћћэњћћ§ћћњ§ћњћ§ћ§њћћ§ћћ§§ћљљњјў§§ћњ§ћњњ§§ћњљљчњћћњњљљњћћ§ћћњћњћњћћ§ћ§ћўўў§ўў§ќћў§ўў§ћњћћ§ўў§ћћѕ§ћ§ћћњћњ§§ћћњњћљљњћћњѕљњљљњћњћћўћћј§ўў§ўў§ћћњљњў§њњљјњћћњњљљњњљћѓ§њћњ§ћ§њћ§§ћ§§ђњћњ§њњћњљћћ§њћћљ§њњљјњћћћњљњћњњјћњ§ћћњћњњ§ћњћћёњћњћћ§ћ§ћћњў§ўћћљќњ§ћ§§љ§њљњњљњчљћњћњњћ§ћ§§ў§§њћњћћ§ћўў§ћћї§ћ§ћ§ћћњўўћћ§њћњњ§ўўћћ§њћ§§ўѓ§ћћњњћћњћћ§ћ§§ќћ§ћ§§ўћ§§ћћњљњљљ§њљњњўг§ўћ§ћћњћћ§ћ§§ўћ§§ћњ§§ў§§ћћњљљњњ§ћћ§§њ§ћў§ў§§њњрћњћњ§ћћљћњћћў§§ћ§§ћњњћ§ћ§њћњ§њњљљќћњћњњћњ§ћ§ћ§њњцћњћљљјљњ§§ўњћћ§ћћњћњћњћњ§ћћїњћњ§ўћњњћћ§їћљњћ§ћ§ћљљшњћћ§њћћ§ћ§ћћљљњћ§§ћ§ћ§ћўўщ§ћљњћћњћњћћ§њ§ћ§ћ§њћ§§ћћњ§§ћ§§ћяљњњћњ§ћћњћћ§ћ§§ћ§§ћыњљњћњ§ћ§ћ§ћ§ўўћ§њћ§§ўў§њљіњћћ§ћўћњњћћњќћ§ћ§§њљ§ћњњ§§ћћў§ўўћі§ўў§§њћ§§ћћњћњћюњ§ўўћћњћћ§ћ§њћљњњћћђ§ћ§ћћўўћ§ћў§§ћћѓў§§њњљњњћњћњћћњћќњљњћћѕњћњћћ§§ћњћњњљћњ§ћ§ћ§§ѓћўў§ћ§§ћћ§њњљљћћ§ўњћћћ§ћ§ћўў§єћ§ў§ћ§ћ§ћ§ћ§§№њћњњћњ§ћњћћ§ћ§њ§§ўј§ћћњ§ћћњњ§§њћћњњћћ§§ўўэ§ўћўћ§ћћњћ§§ўўћњћў§§№ћ§ћў§ў§ў§ћћ§§ў§ўўіћњњћњћњћћ§§ћњ§љћљљќў§§ћћћ§ћ§ћ§§ўћ§§јў§ћ§ўўћўў§њћ§ћ§ћ§§ћћ§ћў§§ћўћыњћ§§њ§ўћњ§ўўћ§ћ§ћ§њњћћў§ћћљ§ћћ§ћњћћ§љћ§ћћњњћћќ§њ§ћћэў§§њћњ§ћ§ћњљњћћњћћ§§јћўћ§ћ§ћ§§ў§ћюњјјњћљљњљњљњјјњљјљљёјњњћћњћљњњћњ§ћњњљћў§§ћ§ћћы§ћ§ћ§ћ§ћў§§ћњћ§§њћћњ§§їњћњћњљљјљљєњљњњћћ§ћћњўњњ§ћњ§§ћћ§§ўћћј§ћ§ћ§§ћњњћћњћћ§§ўћ§§њєљћ§§ћњњћњ§§ћћњњљљћњ§§њюљњљњ§ћћњ§ўўћ§§ћћ§њњёћ§§њњљњњ§ўў§ў§ћћ§§ћњњѕ§њћћ§ћ§њћњћћгњ§ћ§љњњћљљњћћ§§ўћћ§§ћўў§њћ§ћћўњћњљњћћњњ§§ўў§ћћј§ћ§ћ§ћ§ћћѓњћњћљњњ§ћ§ћ§ћћњёљћњћћ§ўў§ўўћњњћћљњћћ§ћ§ўў§њћ§ћ§ћўў§§ћ§ћћ§ћњќљњљ§§ћњњћ§ћ§ћ§§ўћ§§ћўњћћў§њњёћњ§њњћћњћљњљћњ§§§ў§њњћњљєњўћ§ћ§§ў§ўћ§§јћўў§ћ§ћ§§оўћњћњћљњљљћћњћћњљњњљљћњћћњњћћ§ћ§њћћ§§ћўўў§ћћј§ћ§ћњћ§ћћѓ§ћ§ћ§ћ§§ў§ў§ћћњјћ§ћћњћњ§§ћ§№ћў§§ћ§ћњћ§ћў§ўћўўќћ§ћ§§ћ§эћњћњћњ§ћ§§ўћ§ћ§њћћ§§ќћ§ћ§§ўћўўћ§њњјњњўћ§§ћюљњљњћћ§§ћ§ћ§њћћ§њћћ§њћњњ§ћњћћѕњћњћњћљњњјљљхћњћљњљњјјљїјњњћљљјњњћљњћњњўў§єћ§ўўћњћ§њ§њћћ§ћїњћљљњћњћљљњљјљэњљћћ§ћ§њћњћћ§ћ§ћ§ћ§§њћ§њћћўўўћ§§ўњћћљњћњ§ћћњњћљњљљњњ§ћњ§ћ§ћћћ§ћ§ћ§§ўљњњћћ§ћ§ћћі§ћ§ћ§њћњљњњёћњ§ћ§ћ§њћћ§ћћњљљ№ћњљњћ§ћћ§§ћњћћњћћё§ћћњљћћњ§ћ§ћўў§§§њљњњѕ§ћ§§ћњћњљљњњўљњњіљјљћ§§ћ§ћўўїћ§ћњћ§ћ§ћћѕ§ћ§ћўћ§њњћ§§єњћњ§ћ§ћ§њћњћћћњ§ћ§њњўћњњћњї§ћ§ћ§ћ§ћ§§ўћ§§ўњћћќњћњ§§ўћ§§ќў§ћ§§ѕћ§њћњ§ћ§ћћњњ§щћўћ§ћ§ћ§§ў§§ћўћњћћ§§ћћњњњћњ§њњћћўњћћўјћ§ўћњњћ§§њћ§њњћњњћљ§њ§ћ§ћњњћђњћ§ћ§њћњћњњћњљљўњљљњљљћћўћћњњё§ћ§ў§ў§ћ§ћ§§ћњћћј§њњћњћњћћњ§љ§љљњќћњћњњћћљњћ§њњђ§њ§ћ§ћ§ћћ§њћћњњљћњћ§§ћ§§№њ§§ћўў§§ћћ§њћњћњњѓ§ћў§ў§§ћћњћћ§§ћўњћћќ§ћћњњўћњњз§ћ§ћ§ћ§ћ§ћћњ§ћў§§ћћњћњћ§§ћњљљњ§ћ§ћћњ§ћ§ћ§§ќў§§њњёљјљїјљљјњћ§ћ§њ§§їћњ§ћ§ћљљњњћњћљўјњњіћ§ћћ§§ћ§ћњњєћњњ§§ў§ў§ў§ўўў§ўўі§ў§§ћў§ћ§ўў§ђћ§ћ§ћў§ў§ў§ў§ўў§јўћ§§ў§ў§§ўї§ў§ў§ў§ў§§ўў§§§ў§ўў№§ў§ў§§ћў§ўћ§§ў§ўўє§ўћўћўњ§ћ§ћўўќ§ў§ўўћ§ў§ў§§§ў§ўўњ§ў§ў§ўўў§ўўѕ§ў§ў§ў§ў§ў§§јћњ§§ў§ў§§ѕћ§§ў§ў§ў§ў§§ћў§ў§ўў§§ў§§ўќ§ў§ўўо§ў§ў§ў§ўћћњћћўћ§§ў§ў§ўћўћўћўћ§§ў§ўўћќ§ћў§§ў§єћ§ћ§§ў§ў§ўў§§ўў§§ћў§ў§ўўђ§ћў§ў§ў§ў§§ћў§§яћў§ў§ў§ў§ў§ў§ў§ўћћљў§§ћ§ћўўў§ўўў§ўўєћ§ћ§§ўћўћў§ўў§ўњћћ§ўћ§ў§ў§§ўњ§ўћ§§ўў§яћ§ћўћ§§ўћўњћћ§ћўћћћ§њ§§ў ўљ§ў§ў§§ўўў§ўўїћ§ћњњ§њўћћѓўћ§ћ§ћўћ§ћ§ћ§§іћў§ўћ§§ў§ўўў§ўўќ§ўћўў§ћўўћћјўћў§§њ§ћћђў§ў§§ћ§њћћ§њњ§§ѕў§ў§§ћћ§ў§ў ўъ§ў§ў§ў§ћћњњўћ§§ў§ў§ўў§§єў§ў§ў§§ћ§њ§њњ§§ћ§§јўћў§§ћў§§ўњ§ў§ў§ўўі§ў§ў§ў§ў§ўўў§ўў§§ў§§іћ§ћ§ћ§ћ§ћ§§їћў§ўћўћ§ћћќў§§ўўў§ўўї§ў§ўћў§ў§§ъў§ў§ў§§ћ§ћў§ў§ўћ§§ў§ў§§шћњћћўњ§ћ§ћ§§ў§ў§ў§ўћ§ћ§ўў§№ў§ўћћњ§ћ§§ў§ў§ў§§ўќћ§§ўў§чћўћ§§ў§§ћ§љћњњћ§ћ§ћ§§ў§ў§§ћљўћћўў§ўў§ѕћ§ћў§ў§ў§ў§§№ў§ў§ў§ў§ћћўњ§§ўћћњћ§пў§ў§ў§ў§ў§ў§§ћўћ§ўў§§ћ§ћ§ћ§§ў§ў§ўўј§ў§ў§§ћ§§ћћ§њћ§§ёў§§ћ§ћў§ў§§ћўћ§§їўћў§ў§ў§ўўњ§ћ§њў§§§ћ§ћћўўћћњі§њћћўћўћ§ћћє§ћ§ћћњћћўћ§њњў§ћћщ§ћў§§ћ§ћў§§ўў§ў§ўћ§§ўћ§§љћ§ћў§§ћћєўћћњўњћњ§ћћ§§§ћў§§љћњћћ§њћћ§єћ§ћ§§ўћў§ў§ўў§§ў§§ўў§ўў§ћћўћћ§§ћў§ў§ўўњћ§ћћњћћѕ§ћ§ћ§ћ§ћ§§ўўћ§Эў§§ћўћ§§ў§§ћћ§§ћў§ў§ў§ў§ў§ў§ў§ўћ§ћў§ў§ў§ў§ўћ§ћ§ћ§ћ§§љў§§ћўћ§§ўћ§§ёћ§ћћ§§ћ§ћў§ў§ў§§№ў§§ўўћўћўћ§ћў§ў§§ћіў§ў§ў§ў§ў§§ћў§§ћ§§љћ§ћ§ћўћћѓў§ў§§ћ§ћ§§ў§ўўю§ў§§ўў§ў§§ћ§ћ§§ћћ§§ёўћ§ћћ§ў§ўћ§§ў§ўў§ћўћћ§ћћ§§ў§§ў§яћ§ћ§ћ§ћў§ў§ў§ўћўћћэў§ўћ§ћ§ћў§§ћ§ћ§ћ§§ўўє§ўћ§§ў§ўћ§§ўўщћ§ћћњћћ§ћ§ћўћў§ў§ў§ўћўћћы§ћ§§ў§ўћћ§§ўў§ўћ§§ў§ўўќ§ў§ўўѓћ§ћ§§ўћ§§ўћ§ћћўўћћз§ћ§њћћ§ћ§§ў§ўћ§ћў§ўћўћ§ћў§ў§§ў§§ў§ў§§ћў§ўў§ћ§зў§ўћ§§ўћћњ§ћ§ћ§њ§ћ§ћ§њћњўћў§ўћ§ћ§ћ§ћў§ў§ўўќ§ў§ўў§ќћ§§ўўх§ўћ§ћў§ў§§ћ§ћ§§ўћ§ћ§ћўњћћўћћђњўњўћўћ§ўўћ§§ўўі§ўћ§§ћћўћ§§ћўўћћё§ћ§ћћњўњўћћњ§њћћ§№ћ§§ў§§ћ§§ў§ў§§ћ§§ќњћћ§§љћ§ћў§§њњіўћ§ћ§ћўњў§§ћ§ќћ§ћ§§јћ§ћ§ћў§ўў§ћ§ўў§ћ§ћћ§ћў§ў§ћћњ§њћњњћћћўњћ§ћћћў§ў§ўў§њћ§ћў§ўўѓ§ўћў§ў§ў§ў§ћўў§ўћ§§ўјћ§ћ§§ў§ўў§ёњћћ§ћўћў§ў§ў§ў§§њў§ў§ў§§ћі§њ§ћўћћњ§ўўі§ўћ§ћ§§ў§ўўњ§ўћ§§ўў§ћ§ќўћў§§ўќ§ўў§§єћ§ћ§§ўћўћ§§ўўњ§ў§§ћ§§ћў§§ћ§§њћќ§ћ§ћћнў§ў§ў§§њўћ§ћўћ§њўћў§§ћ§§ўћ§ћ§ћ§ћ§§ўўўћ§§њћ§§ўћ§§ѓћў§ўћћњў§ў§§ћћўў§§ћї§ћў§ў§ў§ўўь§ћњ§ћ§ћ§§ўў§§ў§ў§§ћ§§їћ§ћ§§ў§ў§§ћ§цћў§ў§ў§ў§ў§ўћћњўћ§§ў§ў§ў§ўў§ќћ§§ўў§јњћћ§ћў§ўў§ѓћ§ћўћ§§ў§ў§ў§§ўў§§їў§ўћўћў§ўўћ§ћў§ўў§љћў§ўћ§ћћ§ћћ§ћ§§ўў§ыў§§ћўћўћ§ћ§§ў§ўў§§ў§ўў§ўћўў§§ћўћћэўћћ§§ћ§ћўћ§§ўћ§ћ§ћ§§њћў§ўћ§§іћ§§ў§ў§ў§ўўћ§ў§ў§§№ћ§њћћў§§ћ§ћў§ў§ўўў§ўўљ§ў§ў§ў§§№ў§§ћ§§ў§ў§§ћў§ў§§§ў§ўўќ§ўћ§§їћўћў§§ћ§ћћ§ў§ўўј§ўћ§ћў§ўўў§ўўњ§ў§ў§ўўў§ўў§їћ§ћ§ћў§ў§§§ўњћћљњўў§ўћ§§ёў§ў§ў§ў§ў§ў§ў§ўў§§ў§§ћў§ў§ўўј§ў§ў§ў§ўўљћ§ћ§ћў§§ћўћ§§ўўћ§ў§ў§§ќўћў§§ыћўћ§ћ§ћ§ћ§§ў§ћћўћ§ћў§§ў§§ў§§ёў§§ћћњ§ћ§ћў§ў§ўўј§ў§ў§ў§ўўѓ§ў§ўњ§ћћњ§њ§њњ№ћњћћ§љћћњњћњ§ћ§ћћўў§§ьћўњ§ўў§ў§ўћ§§ў§ў§ў§ўўі§ў§ў§ў§§ћ§§љћ§ћћњ§ћћјњ§ћў§§ћ§§ўў§§ћў§ў§ўў§ьў§ўћ§ћўћўћ§ћў§ў§ў§ў§§§ћњ§§щћ§§ўћ§ћў§§ћўћўћ§§ў§ў§§ћћњ§ўћ§§ўўћ§ў§ў§§ўћ§§њћ§ћ§§ўўћ§ћ§ћўў§љўћўњўћ§§љў§§ћ§ћ§§ћћўћў§ўўў§ўў§љћў§§ћ§ћћўў§§ў§ућ§§ў§ў§ў§§ћ§ћ§ћў§ћћ§§ў§ў§ў§§ћћћ§ћў§ўўђћўњ§ћўћў§ў§ў§ўў§ћў§ў§ўўћ§ў§ў§§№ў§ў§ўћўњ§ћ§њ§§ў§§хў§ў§ў§ў§ў§ў§ў§ўћ§ћ§§ў§§ћўћ§§ќў§§ћћјўћ§§ў§ў§§їўћ§ћ§њўћўўќ§ў§ўўќ§ў§ўўў§ўўў§ўўяћ§ћ§ћћњћћ§ћ§§ўћўћћ§§ћ§§јћў§ў§§ћўўў§ўўў§ўў§ѕў§ў§ўћ§§ў§ўўў§ўўф§ћ§ћўњ§§ўћўћў§ў§ўћў§ў§ўў§§ў§§ўњ§ў§ў§ўўњ§ў§§ћ§§§ў§ўў№§ў§§ћў§ў§ў§ў§ў§ўў§љњ§њ§§ў§§ћљњћњ§ўў§§ћў§§ћ§§ђћ§ћ§ћ§§ћћ§§ўћ§§яћ§ћћ§ўњ§њћћ§ћћњћњњєљћњ§ћ§њ§ћ§§ћћў§ўўњ§ў§ў§ўў§њў§§ћў§§љћўћ§ћ§ћћўњћћљњ§њ§њ§ћћќў§ў§§№ћў§ў§ў§ў§ў§ў§ўћўў§§ў§§ёўћ§ћ§§ўћўњўњћњћћ§ўў§§ьў§ў§ў§ў§ў§ў§ўћћњ§§ў§§цў§ў§ў§§ћ§ћўњ§ћ§§ў§ў§§ћў§§ћћў§ћћіўћў§ў§ўћў§§їћў§ўћ§ћћ§§§ў§ўўљ§ў§ў§§ћћфњ§§ў§ўћ§ћ§ћўњўњўњћћ§њўћ§§ў§ўўђ§ў§ў§ў§ўћ§§ў§ўў§ўў§§щў§ўў§ћ§ћўћ§§ў§§ћўћ§§ћћ§§ћў§ў§ўўи§ў§ў§ў§ў§§ћ§ћ§ћ§§ў§ў§ў§ў§ў§ў§ў§§ћ§§ў§ўћ§§ћў§ў§ўўњ§ў§ў§ўўј§ўў§§ў§ўўўћўўќњ§ћ§§њћ§ћ§ћўўљ§ўћ§§ў§§њћўћўћ§§іў§ў§ўњ§ћћ§§ўў§§ўћ§§љњћћўћўћћмњћћў§ўћћњ§§ў§ў§ў§ў§ў§ў§ћ§§ћўћў§§ћ§ћ§§јћ§§ўћћ§ћћћ§ћ§ћ§§њћўћ§ћ§§ќў§ў§§љў§ўћ§ћ§§ѕћ§ћў§ў§ў§ў§§ўў§ўў§ќћ§ћ§§ў§§ў§§щў§ў§ў§ўћ§ћ§ћ§ћў§ўћ§ћ§ћ§§ўј§ў§ў§ўћ§§ўђ§ў§ўћ§ћў§ў§ћћ§§ђўћ§§ў§ў§ў§§ўў§§ђўћњњћљ§њ§ћ§§ў§§№ў§ўћ§§ў§ўћћњўћћ§§єћ§њ§§ўћћњ§њ§§ў§§ў§§ўљ§њ§§њ§њњў§єљјљћ§љћћљљњ§§§ћљћћ§љћ§§ћ№љѕћљћјњћ§§ўў§љњ§§ќљ§њўўј§ћљљ§ћљћћ№§ў§њ§љј§љ§§љљћћјјћфљјјљћїјњјњћљљњњјјњћўћўћћ§§њ§§іј§§ћ§ћљ§њ§§ћўћўў§§ћіњјјљљћ§§њ§§љћљјљјћ§§їў§§ћћњћ§ўў§јљњ§§љјљ§§ќњ§њ§§іљїњљћљјјњћћіљћљћљ§ћљћ§§ќњ§ў§§ќў§њћћѕ§ћљљћћљљћјїїђєїїјњњјњљ§њ§§ћћѓ§ў§§јљћљћћљћјјћ§ўћ§§іћјїњј§§ћљћћљјћњјњњјњћћ§јњјјљњјјћ§§ћћёљћ§§ћћљћљ§њў§§љљћјієњћљћљ§§ўњњћ§њ§јљљўњћћ№јљћљљћћљњњјјњјћ§§ћћљћ§§ўўў§љљћў§ўў§љ§ћњћћ§ўў§§§ўћ§§ђљ§ћў§љљњљћћљњ§§љћљјјљћ§§яћљ§ћњћў§ў§њўў§§њўў§ћкњїїјїјљњ§њў§љћљћљћљјїјћ§ўў§љћћљћћ§§њ§љљћњ§ћљћћќљ§ї§§њщ§ў§ћјљљћ§§њ§њћљћћњ§ћћљ§§ыўћ§§ћњјљљ§љћњјјљћћљјїїљљјљ§ћћ§§њњћїљњ§§ў§ќћљћњњћ§љњ§љљѕљ§§љћјўћ§§ћљўјљљ№ћљљћћјїїјјљћ§§ћљљіћњјњњјљћћ§§єў§ћјїјїјњјћ§§ћъїјјљљћћјїїњњћћљћњњїљљјјѕњјјїѓљљїїјћћћјћљњћћњњљњљљ§§рћљњ§љјљћљјјњњјїјћњјћ§ћљ§ћњњћћ§§ћћ§љјћћ§ёњљњњ§њ§њљћћљљћ§§ќњ§§ћћљўњ§§ў§§њ§§ќћњћ§§іљћљљїјњїј§§ўўљ§§цў§ћћљљћљћљћ§§њљїћњљљ§§ў§њљљњћ§яњ§§ћјїѕ§ћњ§§љћњњјјћљћ§њўўє§љљњјїїѕѕљњћћ§ћјљњ§§ћ§љћћ§ўљ§љјїњћ§§ќћ§њ§§ћћњјїјјћљћљњїїюљїњїњљјјљћћ§§ћћљћ§§њ§јјњћћљњјњўўљ§њњўў§љљљћ§§љјјїїќєїњћћњљћћљњїїђљњјњїїѕљљњјљћљљфћљћћ§§љљјљћњїјњљњ§ћћљљїјћћљћћўљ§§јћљњњ§§љћћ№њћћљјїљњјѕјњљ§§ћћё§ћћљљћљњњ§ћјњњћћљћјљљћљљћћјјњљљћўњ§§їћјњјјїѕѕњњјћњјїњјјќћљњћћњћћ§њљћћїјіїјћљњјјћћ§§љіћљћљњњјњњћћ§іћїњњљїљљњ§§ћчњјњјћ§ћљћљїњћ§ћћљћћњѕїјјћћѓјяѕїњјјњћљљћјјї№њјљћљљјјћћљјљѕљ§§іњћћњјљї§њћћ§њћљљћњћћ§§ћњјјљ§љєћљњћјњљњћ§ћјјћљћјїјњћћњљћјјљ§§љјћљћљњјњћћљљћљћ§њ§§іњљљћљљњљљћћљјћўљ§§ўћљљј§ћљ§§ћњћћћљћјњјјќљћћјјўћ§§њўћњ§§ўў§§љјјіљћљљњ§ў§њљљ§њљ§јњ§§љћјљіћљљњјїјњїјјђїњљјћїїљ§љјјљ§§љћўј§§њ§љњ§љ§љљћћјўљјјћѕјљљ§љћљћћњћћ§ћћљјїјјљїљјљ§§ўўї§ћћњјљћћ§§њћ§љљ§њњ§ўћјјоњћћњњљ§§њ§§ўњ§њљљјѕїїјјљјљјћћљљ§§ћћјћљћљљћћ§ћіљјѕљїјћћљ§§њ§ћѕљћљљћљћњљљ§§њћ§ћшјњјїљљјїѕѕєєѕѕјљјјњћљљћ§§їљћ§§њњ§§њњ§ўњ§§љтњјћљљјљјљјїѕљњћљћћњјњјјњњљњњїјјьћљјћљћљњ§ћњћћљљ§љљњћћљћќњѕјїїюљїњћљїњїїјјњїљљјѕјјќњћћљљјћљћ§§њњљљьћњјћљљћ§ўњ§ћјљѕљћ§§ћћћњ§љћњњућљјњѕћјћљљњљљћћљљ§§љ§ћј§§ћўћўў§ў§ўћ§§њьљћњњљљћљјїјљѕѕјћћ§јљљљћљћљљ§ћћљ§ћ§ћћ§ћћљћћјїїљљћњ§њљјјљњјћјљјљћњљљћљћїљћ§§њњ§ў§§іјњ§њ§њ§ћћ§§тњљћћљјњјїјјћ§јћћљ§ћњ§њўћўў§ћљ§§њљњ§њ§њњељ§§њћ§њљћњ§њ§ћљў§ћњњјјљјњљїїјјњљћљћњјјњћћљјјўљ§§њ§§љћ§§љљїјљћњ§§ћћњћћ§§ћћљљ§љљњєјњїїјјњљ§ўў§§ћћљњјњњіјћћљњјјњћљљѕјћјњњљљњћћ§§єћњ§§њћљљњљљ§§ћФљ§§ћњјњ§њ§љјјћ§њј§љљњњїњћљљћљћћјћ§њ§њ§§њ§§њњљћћ§§ћљјњњљћљ§њ§§ў§§ћљљњќ§њ§ћћјћїѕјћ§§ќћљћ§§§ћњ§§ў§њ§ђљћ§њ§їјћњћљћћљљјћљњљљћћіљћћљћјїѕѕїїўјћћљћ§љјљљўћљљљњ§ўў§ў§§ўщћјњљ§§њњљљћћ§јћњњўћўўљ§§іћљљћљјјњћљљћњљћ§§њ§§ѕћјјћљћљ§њњ§§ћ§ћў§§ћљљјіљћћ§њјћљљ§§ўњ§§ђљњ§јћјјћљћљћњћћљіћљњ§§њњ§њљљќ§ћј§§чњћљљњўўњ§§њљњјјїїњјћћљћљњњ§ћјјћћ§ћћњљљђћљљ§§ћјљјјљћњјјћї§њ§ўўјњ§ћ§§ћћ§§њљћњ§ўћўўњњћ§ћљјљљїњћљљјљњњљљњљ§љњљћ§љљћћђ§њљјїїјњњ§§њ§љљћєњ§љјјљ§ћљљ§њњ§љјљўјљљћњ§ўћўўћћўњ§ћћјўћјј§іњљћљїјјњљћћъљћћњљ§§њћћљћњ§§њ§§ћљљћћѕјїјњљ§ў§њ§љљ§ћ§њјїїјјљћћљћ§љљ§яљћћ§њћљљћћјїјћљћјјљ§њњ§§љњ§§ћ§ъљѕѕљљїњњћћњњјјћњўў§њїјјљєјњјїјњћљ§њ§ћћњњјћњњўў§ћљћ§њћћќ§ўў§§ћ§ќњ§§ћћїњ§§јїєїљњњўјїїћјњњћ§§јњѕћњјљљ§§ўў§§ћ§ћљќ§њњўў§ђњљљћњўў§їїњћћљљ№ћ§§ћћјљњ§ћљњњљљјјљсћљ§њћјљњ§њ§§њ§љљћћљћ§§њ§§ћљјїљ§§чњ§ћћњјњћљћ§§ў§њ§њ§ўњћљћћљљоњћљјћћ§ўћ§њ§њљљћљћћљћћљћћјјњљњїјњљљћљљјћћљћ§§њ§јљјњјјљљ§§ўњ§§юћљћљјљњљљ§њњљћћјїјјѕљћјљњ§ћљћљћћћ§ћљћ§§ўї§ћћњљў§љћћќ§њњ§§њёћљљћћ§§њў§њ§љњ§§њі§њ§ўў§љњљ§§тў§њњћўў§§ћ§њ§ў§њљњњљ§њ§§ў§љњњ§§ъћњ§љћ§§ћљјјљћћ§ћњѕїјј§§ќљ§ўњњіљћћљјїјљћјјїїјїћћњњ§љљї§њ§§њљјѕїїўј§§њњ§ћћњ§ўўћњћљљўўѕћўў§ћћљјњњјјѕњјљљћљљјњњјјљћљњњљљћћљ§њћјїјћћ§љњ§§ѕјљ§њњљњїєїјјљћ§њ§љћіњ§њ§§љћљљ§§ъўњљћљ§§ћћњїјњњ§љјљ§љћљљєћљњњћњљѕѕјћ§§њњјјљљ§§ьњ§§љћљћ§§њ§њ§§њљћћљ§§юњ§њ§њћљњ§§љњњљ§љљњњї§њљїїћњїѓјћћљќ§ўў§§ћљјљћ§§њћћ§лњ§ўћ§љћўў§њњ§ћјњњћњѕѕїљћћ§ћљљћњљљћљћ§§ў§ќў§њ§§ўў§§ѕћљјјњљћљ§§ўўђњ§ўў§јјїїњљ§љјјћѕј§њњ§ўў§њљћћјљъћњњљњњ§ћљјљћљ§§њ§§ўўћўўўљўўёћљ§ўўњљљњњћљћ§њњР§њњћљјјљљћјћљјњљљћ§ћћјљњ§§њ§њљўўљ§њ§јљ§њњљћ§њњ§§ћљ§§њћљјћљћњ§§њўўћћ§ћљ§§ўњ§§ѓњљћ§§њљњњ§§њўўіњћљљњўўњјљљѕћјњћљ§§њ§њўўђњ§§њњћўћўњљљ§ўўњћ§§њњўўўњљљќ§њњљљѕћјјїјљ§§њјћљў§ўћ§ћ§§ўћћ§ћ§ћћњћ§њћ§ћњћњњ§ћњћћў§њњфћњћ§ћћњњљњ§ћў§ћў§ћ§ћўћ§§ў§ўћћњћќўћ§ћћњћњяћњћњљњљњћћњљњњљњўўўћ§§§ћ§ћћћўћњћ§§ћ§јў§ўћ§ћћњњќљњњћћ§њћ§њћ§ћћ§§ћ§§ёћњњљњ§§ў§§ћћ§§ћћ§§ћ§§ѓћ§ћћљћњћћњљћњњћђњћњћ§њћњћћ§ћћ§§ћ§њћњћњљѕјљћњљљњљћћ§§№њћњћћў§§ћћњћњћћњњћј§ћ§њ§ћ§њњїљњ§ћњћћњћћєњљњљљњљњћњћњњўљњњўљњњ§§ћњњёћњћћњњћњћ§§ўћ§ћћњіћљњћњћ§ћў§§ўћ§§ћцљњћњ§ћњћћњћћљљњњљњћћ§ћ§њњћћ§§ў§ћћљњ§§ў§§ћћюў§ћњћњћ§ўћ§ћўў§ћ§ћћсў§§ћћљћњњћ§ћ§ћњћњњћњ§ћ§њћ§ў§ўў§§№ў§§ћ§§ўў§ћ§њћљћњњѕћ§ћ§ў§ћњћњћћюњљњњ§ўўћћњњћњњ§ћ§ћћњљ§њћњњћўўћћ§гў§њ§ћћњ§ћ§ћ§њћњњ§§њњћ§ћ§ўўћћњљњћћ§ћњљ§ћћњњћњљљшјњћћњњ§ћ§ћ§њљјљћ§ћ§§ўў§ћћўњљљњќ§ћ§ћћќ§ћ§ћћњўћњњі§ћ§ћћњћћ§ћћђњћћњћњљљњњћњ§ћћђњљњљљ§ћњњ§ћ§ћ§§њљљњњ§ћ§њњћњљњћўњљљјњэљњњљњјјљљњњћњњћњћљњњ§љћўћ§ћ§ћћы§ћћњћњћњњљљњћњњљњњ§њћћљћњћћ§њњыћњћњћњњћ§§ў§§ћ§ћ§ћњњћћј§ћ§ћ§ћ§њњћў§ћћ§юў§ўћ§ћ§ћ§њљњ§ћ§ћњћћяњљћ§§ћ§ћ§§ўў§ћ§ћ§§њћѓњћњћњ§ћ§ћћњљћћћ§ў§§ћћ§њўћ§§ћѓ§љљ§њ§ћ§ћњљљњњћћњ§§ўўѕ§ў§§ћћљњљљјјэљњћњњћ§ћ§њњћ§ћ§њћћњњьћ§§ўў§ћњљљњ§ћ§ћ§ћћњ§§ћћ§ћћљњњћљ№јљљњљјњњћњњћ§њњћћ§§ћ§§єћ§ћњљњњћљњљўўњћ§§ў§ћћљњћ§ћњњљљќћњљњњћћњћћљљќјљњљљјћљњћњћћњњћћњ§ћћ№њћњљљњљћ§ћњњћћљњњўћњњцћњћћ§ћ§њћ§§ћ§ћњњћ§њњћњљјљњњљљћ§ћћњћћњњћћњћ§§њљњћћњћћњћћњўљћћњ№§ћ§ћ§ћ§њњљњњљљњљљњћљњљљњњ§ћ§њњљњњћ§ћћњњўљњњ§ћљњњх§ћ§ћћњћњћљљњњљњњћњ§ћ§њћљљјћћ§ћњ№љњљ§њ§њћњћњљњ§њћћћњљјљњњєјљљњњљњћћњ§њњљљњћњћћ§њњюћњћ§ћћ§ћ§њњљњћўћ§њњћ№§ћ§њћћњљћњњћ§њљњњћ§ћїљњњљјљћћњњћћњћћњњљљњњћњћњњћў§ћћпњћњћљњљњћњћњћњ§§ћћ§§ћћњћћ§ћћњњћњћћњћўњћћј§њћћ§њљњњћћњњљњњўћњњѕ§ћ§ћ§ўў§§ћўўћњіћњћћ§ћўћ§ћћщ§ћ§ћ§§ћћњљ§ћ§ћ§ћћњћњ§њћћљљњљњљћњњђћљћ§њњћћ§ћњћўћћї§ћћњњћ§ћ§§ћћ§ћўћћњўћњњќћњ§ћћяњћњњљњњћњ§ћ§њћњћњњљљјњћ§ћўўћёњљњћњњћ§ћњћў§ћ§§љћ§ћ§ћ§њњјљћњ§§ўћ§§§ћў§§ћўњљљњђћњјњћњћћ§ћњњћњњшћњћћњњћћ§ћ§ћ§ћ§ћћњћњњјљњњћ§§ћ§§ћњїћњћћњћњљћћ§§ћ§§њќ§ћћњњјљњљјјњљјјјљњћњњљњћћљ§ћ§ћњћ§§ўћ§§ўћ§§јћ§ўћћљњћћюњљјјљћћњњљњљњњљљћљљњћњіћњћ§§њ§њњћћћ§њћњћћљњћњљљњљљљјљљњћњљљњўљћћњ§љњћћюњћњ§ћ§§ўћћњљњњћћњ§§ѕћњњјљћњ§ћћњњ§§ћњљљњњћњљ§њњћћ§ћћњћћњњ§ћ§њўўў§ўў§ўў§ўўї§ў§ў§ў§§ћћѓ§ћ§§ћњљљћћњћњњјњћў§ћћљњћњћћ§њњћ§ў§њћћњћћњћњњћћ§ћћ§њњћћљўњћћ§њ§ћћњћњќћњћ§§њћўћ§ћ§§ќњћћ§§љћњћћњљњњћѕ§њњћ§њ§ћ§§ўўєћњћ§ћ§ў§ћ§ћ§§ћи§њ§§ћњ§ћ§ћњћўћћљљњњјњљјљљњњљћњћњљњњљњњћњњћ§§ћ§§чћ§ћњћ§ћћњњћњ§§ћ§њљњћћ§ћњћћљўњљљњёљћћў§§ћ§ћ§њћљњљљњљћљњњљњћћш§њњљљћћ§њњћћ§ћњ§§ћ§њћћ§ћћќ§ћ§њњћіњљњ§ћ§§ћњћћ§ћљѕњћћњћњњ§њћ§§ќћ§ћ§§ћўњњ§ћћљњљ§ћњћ§§љћ§ўў§ўћћ§§њћњњьљњњћћ§ћњћњћ§ћњ§ћћ§ћўў§ўћ§§№ћ§ћњћ§ћљњћљњћћњћћњћќ§ћћњњљћњњћњњљљњќћњњћћњ§ћњћћўњћћ§ќўћўћћюў§ћњљћ§ћ§§ћћњњ§§њ§§ѕў§ўў§ћ§ћћњћћњ§љњћћњяћњ§ћ§ћ§ћњ§§њћњћћ§§њћ§ћ§њћћ§§ћњћћњјћњњћ§ћњћћ§§ћ§§љћ§ў§ћ§њњћћњћњ§њњћњњћ§§ћ§§ћыњ§ћ§ћ§њћћ§§ў§§ћ§ћљњњљљњћ§ћњћ§њњљћћђњћћ§ћћ§ћћ§ћћљњњќћњљ§§яў§ў§ўў§ћњћ§њћћ§ћ§§ћњўћўў§ћћњћ§ћћї§њћћ§ў§§ћћ§ћ§њћњ§ћћњњ§їћњљљњљ§ћ§§ћњў§ћћљ§ћћњћћ§§ћњћўњћћ§§ћўўј§ћћњћњ§њњтћ§ћ§ћњћћњњљћњћњћњћ§ўћ§§ћњћњ§ћ§§љћњћћњћњњљљћћўћ§ћћњ§њћљњљљјћњћњњћњћћѓўћ§ћћњњћ§њћћњњћљњњћњњћє§ћ§ћ§ћ§ћ§ћћњњ§§ћјјљњљњіћ§ўў§љћњњћћєњљњљњљћћ§§ћњњќљњњ§§ў§ћ§ћћёњћ§њћњ§§ўћ§ћћњ§§ўћњњї§ћ§њљјљјљљўњљљњѓљњћ§ћ§ћ§§ћљњћћќ§ћўћћњћњћ§ъў§ўћ§ћ§ћ§ћћњ§ўўћћљљњњћћ№њћ§њћ§ћ§§њћ§§ћћњњћјњћћ§њћћ§§§ћ§ћћфњћњ§ћ§ћ§њћњћћ§ћ§§ћњћљњљњћњћ§§ћњћњњћћќљњћњњф§ўўћ§ћ§ћћњћњћћњњћњћњњљћљљњљћћњўћњњљћњћћ§ћ§§ьћ§ћњљњњћћ§ћћ§§ћ§њћњћћўљћћ§ўћњњўљњњњћњ§ћ§ћћчњћћњћћњћњћ§ћ§§ўўћњњ§ў§§ћњњљћ§§ћ§ћ§§ўњћћќњ§ћ§§іћ§ћ§§ћћ§ћ§§юћ§ћўў§ћљћ§ћ§ћўћ§§ўўќћ§њ§§ўћ§§ѓћўћў§§ћ§ћћ§§ћћѕ§њћњњћћњ§њљљћњ§ћ§ћћќўћў§§їћњћћњљњћњњ§ћј§ћ§§ћњњљљћћ§ћ§ћ§§ћќњ§ћў ўј§њњћњљљњњѕљњћћњћћњљљњњњћ§§ћћњњћќ§њ§њњѕћњћћ§ћ§ћ§ћ§§њћљљјљњњћњќћ§ћ§§ѕћ§ћћњћњ§ћ§ћћўњћћш§ћў§ћњћћ§њћљљњљљ§ћ§ў§ћњћћљ§ћљјјњўћ§§ћћ§ћњћћћ§ћ§§ћћхњћњ§ћ§ћ§ћ§§ћњњћ§ћ§ћ§ћ§ћ§њў§§јћљљћ§ћћљљўјљљњћ§њўћ§ћ§њњњћњћћ§њњј§ћ§ћўў§ўўўћ§§њљьњљљјљјњћћњћћњ§ћћњћњ§§ђўћ§ћўћ§ћ§ћћ§§ћћјњћњњљћњћћўќ§ћў§§ўњљљћњ§§ћ§§іўћ§ћњњћњ§ћћћњ§§ў§§ўњћћќњћћ§§њћў§ў§ўўю§ў§ћћ§§ў§ћћ§§ћћњћ§§љћ§§њћ§ћћѓњљћћњћћњ§ћ§ћ§§љў§ў§ћ§ћћ§§ћњ§§аћ§њўћ§§њћ§њћњ§ћ§§ў§ўў§њћћ§ћ§ћ§ћ§ћ§ћ§ћњћ§§ў§§ћ§§ўўѓ§ўў§њћћ§ўў§њћћќњљњћћ§іў§ў§§ћћ§§ўўў§ћћі§ў§ўў§ћ§§ўўў§ћћ§ћњћљњћћ§§њўј§ў§ў§ў§ўўљ§ў§ўћў§§њў§ў§ў§§ўў§§ў§єћ§§ўћў§ўћ§§ўўњ§ў§ў§ўўіћ§§ўћў§§ћўўі§ў§ўў§ўўћ§§№ћўћўћ§ћў§§ћўћўћ§§њњћћўћўўњ§ў§ў§ўў§§ў§ўўў§ўўќ§ўў§§єўћў§§ћў§ў§ў§§№ћўћў§ў§ў§ў§§ћ§§ўўт§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўњћ§ў§ўћўћ§§ћћ§§ў§§љў§§ўў§ўўў§ўўѕ§ў§ў§ўћўћў§§іў§ўћ§њ§ћ§ћћњўћў§ў§§їћ§ћўў§§ў§§№ўћ§§ўћўћ§§ўћў§ў§§ёў§§ћўћћ§ў§§ћ§ћ§§ћђўћўћ§ћ§§ўћўћўћћ§ќў§ў§§ў§ћў§ў§ўў§ўў§§ѕўћўћћ§ў§ў§ўўў§ўў§јўћ§ћ§ћў§§јў§§ћ§ћўћћњўћў§ў§§ћўћў§ўўњ§ўћ§§ўўў§ўўў§ўўіћ§ћ§ў§ўў§ўўњ§ў§ў§ўў§ўў§§№ў§ў§§ћў§ў§ў§ўћ§ўўќ§ў§ўўќ§ў§ўўє§ў§§ћћњўћўћўўћ§ў§ў§§їўћ§ћ§ћ§§ўўћћў§ў§§эў§ў§ў§ў§ўћћ§ў§ў§ў§ўўў§ўў§§ў§§ќў§ў§§ўў§§ћў§ў§ўў§ћў§§юў§ћ§ўћ§§ўћ§њ§њўћў§§ѓў§ў§§њ§ћў§ў§ўўя§ўћ§§ўћў§ў§ў§ў§ў§§ў§ўў§§іћўћ§§ў§ўћ§§ўћ§§ћћњ§ћћ§§ћўћ§ћ§§ћ§юў§ў§ў§§ћўћўћўћ§§ў§§ќўћћ§§ёћ§њћњўћў§ўћ§њ§ћћшўћўњ§њ§њ§ћ§ћ§§ў§§ћў§ў§§ўўђ§ўў§ў§ўћў§ў§ћ§§ћїўћўћћ§ўћ§§ўўћћќ§ћў§§ћљ§ћ§§ў§ўўў§ўў§ўћўўќ§ў§ўў§ќћ§§ўўў§ўўѕ§ў§ў§ўћў§ў§§ћїўћ§§ў§ў§ўўљ§ў§ў§ў§§ўў§§сў§§ћ§ћ§§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўћ§њ§§ўў§§ћќўћў§§ў§№ўћ§њћљ§ћ§ћ§§ў§ў§§ѕў§§ў§§ў§ў§ўўю§ўћ§ћў§ў§ў§ўў§§ў§ўўч§ўћўћўћўћўћ§ћ§њ§њњћўћ§ћў§§ўў§§ѓћў§ў§ў§ў§ўћў§§§ўћўўў§ўў§цў§§ћўњ§њ§ћўћ§§ўћ§ћ§ћ§њ§њњћћј§њћњњћћ§§цћ§§ў§ўћ§§ўњћћ§§ў§§ћў§ў§§ћ§§љћў§ў§ў§§ў§щћў§ў§ўњњћўњўћў§ўћўћўћў§§њў§ў§§ћћ§ћћўћў§§їћ§ћўћў§ў§§јў§ў§ў§ўћћњўњ§њўћћ№ўћўњћћўћўћўћў§ў§§щњћћў§ўў§ћ§§ў§ўћўћ§§ўћў§§ўў§§яћ§§ўћћњћ§§ћ§§ў§§ћћљ§ћ§§ў§ўў§ћ§эў§§ћўћў§§ћ§ћ§ћћњўћ§§ѕћўћ§ћўћћ§ў§§іўћўњ§ћў§ў§§єў§ў§ў§ў§ў§ў§§ќўћ§ўў§ўэ§ў§ў§ў§ўћ§§ў§§ћўћў§§йћ§ћ§ћўњўћў§ўћўћ§ћ§ћ§њўћћ§§ћ§ћ§ћў§ў§ўћў§§їћўћ§ћ§§ў§§ўћ§ў§ў§§яў§ў§ўћ§ћ§§ћћўћ§§ўў§ўћ§§њћў§§ћ§§§ћўћћњўћ§§ўћћ§ћў§ў§ўўў§ўўі§ўћћ§§ћў§ўў§§ў§§рў§ў§ў§ўћў§ў§ў§§ћўћў§ў§§ћ§§ћћ§ћўћћќўћў§§їўћў§§ћў§ўў§§ў§§їў§ў§ў§ў§ўў№§ў§ўћ§§ўћў§ўћўћ§§ђў§§ћ§§ћ§§ћ§§ў§§ѕўћўћћњ§ћ§§ўўђћ§ћў§ў§ў§ў§ў§ўў№§ў§ў§ў§§ћўћўћ§§ўўќ§ў§ўў№§ўћўћ§њ§ћў§ўњўћ§§јў§ўћ§ћў§§ъў§ўћў§ў§ў§ў§ўћ§ћћњ§њў§§љў§ў§ў§ўў§ўў§§іћ§§ўў§ў§ў§§ђўћў§ўћўћ§њ§ћ§ћћњўљ§ћўћћј§ћ§ћў§ў§§§ў§ўўт§ў§ў§ў§ў§ў§ўћўћўћ§§ў§ў§ћњћњћћ§§щћўћўћўћ§ћўњўћўћ§ћ§ћ§§ў§§вў§ў§ўў§ћ§§ўћ§ћўћ§ћ§њ§њ§ћ§ћўћ§њўћўћ§§ўњўћўћ§ћў§§јћў§ў§ўў§§ћћў§ў§§ўќ§ўњ§§§ўћ§§ўў§§тўћў§ўћў§§њ§ћ§§ў§§ћў§ўў§ўў§ў§§ўў§ўс§ўћў§ў§ў§ўћў§ў§ўћўћ§љћћўћў§§ћў§§§ћў§§јў§§ћўћў§§§ў§ўўт§ў§ў§ў§§ћў§ў§ўћў§ў§ў§§ў§§ў§§ћ§§ћў§ў§ўўѓ§ў§ў§ў§ў§§ћў§§њў§§ћ§ћћјўћўћў§ў§§ўў§ўўњ§ў§ў§ўўї§ў§ў§§ўў§§їўћ§ўў§ў§ўўћѕ§ћўњ§њћћўћ§§ћћўћћ§§єўћў§ў§ў§ў§ў§§шў§ў§ўњў§ў§ў§ўћ§ћў§ў§ў§ў§§ћїўћ§њћћў§ўўћ§ў§ў§§ўўћћіўћ§§ўћўћў§§ьў§§ћўћ§§ў§§ўў§ў§ў§ў§§љў§ћў§ў§§ўќ§ўћўўљ§ўћўћў§§љћўћ§ћў§§ћў§ўћўўэ§ў§ў§ў§ў§ў§ў§ўћ§ћў§§§ў§ўўўћ§§чў§ў§§ћ§ћўћ§њўћў§ў§ў§ў§ў§ўўў§ўўљ§ў§ў§ў§§ћў§ўњћћ§§ћў§§јўћў§ў§ў§§ўў§§ўћ§§јњ§њ§ћўћ§§ўў§§ћў§ў§ўўћ§ќў§ў§§§ў§ўўњ§ў§ўў§§њћ§ћўћ§§њў§ў§ў§§ќћўћўўј§ў§ў§§ћўў§§ў§§ќўћў§§ёў§ў§§ћў§ў§ў§ў§ўў§ќћўћ§§ўў§§ьћў§ў§ў§ў§ў§ўћў§ў§ўў§§ў№§ў§ўћўћ§њўњ§ћ§ћўўљ§ўў§§ў§§ўў§§јўћ§§ўћ§ћћїўћўћ§§ў§ўўѓ§ў§ў§§ћў§ў§ў§§ўў§ўў§§ў§§ъћ§§ў§ў§ў§ўў§ћў§ў§ў§§ћ§§єў§ў§§ћћўў§ў§§ёў§ў§§ўў§ў§ў§ў§ўў§љўћў§ўћ§§ўр§ўћ§ћў§ўћ§ћўћў§ўў§§ўћўћў§§ћ§ћўћўўш§ўћў§§ўў§ў§ў§ў§§ћ§ћўћўћўў§§ў§§њў§§ћћњњќ§ћў§§іў§ў§ў§ў§ў§§ѕў§ў§ў§§ћ§ћ§§ќћўћ§§ћў§ў§ўўј§ў§ў§ўћ§§яўњћљ§њњћћ§§ћћњўћўўї§ўћўћў§§ћћў§ћћ§ў§њћў§ў§ўўє§ўў§§ў§§ћ§§ўўќ§ўћ§§ќў§ў§§іў§ў§ћњћњ§ћћ№ўњ§њћњў§ў§ў§ў§§ћћ§§ў§ўўў§ўўќ§ў§ўўћ§ў§ў§§ўќћ§ћ§§іў§ў§§ћ§§ў§§ў§ћўў§§ўы§ў§ў§ў§ў§ў§§ћ§§ў§ў§ў§§ђўћў§ў§ўў§ћўћў§§іў§ў§ў§ў§ў§§њўћ§§ў§§ўќ§ўў§§ўћ§§ћѓ§ћ§ўћў§ў§§ћў§§ўў§ўў§ћћўћћ§§ў§§ў§§ўўћћў§јўћ§ћўћћ§§ћў§ўћ§§єћ§ћў§ў§ў§ў§ўўў§ўў§їў§§ўў§ў§ўў§шћ§§ў§ў§ў§§ўў§§ўў§ў§ў§ў§ўўј§ўћў§ў§ўў§ѓў§ў§ў§ў§ў§ў§ўўѕ§ў§ўћў§ўћў§§ёўћўћў§§ћ§њў§ў§ўўя§ўћ§ћ§ћў§ўћўћўћў§§ўў§§эў§ў§ў§ўњ§њ§ћў§ў§ў§ўўќћ§§ў ў§іўћўћўћўћў§§кў§ћћўћўћўћўћў§ў§ў§ў§§ћўў§§ўћ§ћ§ћ§§ў§ў§§эў§§ћ§ћ§ћўћ§§ў§ў§ў§ўўі§ў§§ћ§§ў§ўў§§ў§ўўѓћўћў§§ћћњўћў§§ўў§§њў§ўћўћћљњћљћ§ў§§ѕў§ўћ§§ў§ў§ўў§іў§ў§ў§ў§ў§§ђў§ў§ў§ў§ўў§§ў§§ћ§ћыўњ§ћ§њ§њ§њўњўћў§ў§ў§ўў§§ў§§њў§§ўў§§§ў§ўўў§ўўэ§ў§§ћўћ§ћ§ћ§њ§ћў§ў§§§ўћ§§ўў§ўўќ§ў§ўўў§ўўњ§ўћўћ§§ ў§ѓћњњў§ўћўћўћў§§ћў§ў§ўў§ћћ§§ў§§ў§§ў§§їў§§ћў§ў§ў ўќћ§§ўўўћўўѕћў§ў§ў§ў§ў§§№ў§§ћўћ§ћў§ў§ўћў§§ћў§ў§ўўў§ўўќћ§§ўў§ў§§ў§§љў§§ўў§ўўё§ў§ў§ў§ў§ў§ў§ў§§§ў§ўўќ§ў§ў ў§§ћ§ўўћћ§§ўћћ§§ћўўў§ўўў§ўўў§ўў§ўў§ўўэ§ў§ў§ў§ў§§ћўњўћў§ў§§§ћќ§ўћўўі§њљљћј§ўў§§ђљ§њљјјњљљ§љњњљљыћјјћњ§§ћјјїљїїљљћљ§ћјј§њљ§§ўњ§§ёљћљњљћћљњїѕњ§ћўўл§љћњўў§њљљ§њљћјљњјѕљїјјєњћћјљћњљљ§ћњ§§ўї§њљ§љћљљ§§љёћљ§њњ§љћњјѕћљљ§§јћљїїњљњљљќјњњ§§љћўљ§§нў§§љњјј§§ћљ§ћљљћљљј§§њјјћљјїѕїїњљћїїјўњљљћјљћћњїњњћћэјљјљћљјјљљћљћћљљњњ§§хљћјїєїњћљїїјњљћљћјјњјћ§ћљћ§§ѓњљћњњћљ§ћћјјћћ§ўь§ћљ§ўў§§љјјљљјїѕљјљїїѕјњљљћљљјїњјјўљїїѓјњјїјјљћљїњћ§§њ§§ў§§ўѕћњў§ћљ§§љљ§§њћіјњјјљћћјњћћщњјјћјїњњљћљњјјљљ§њћћ§§љљћ§ўљ§§њў§њ§ћћљћ§єњ§ћћјјњїѕїїјјіћљћ§њљ§љћњњјьњљљњјјїћљћјњњћ§§љњћўўёћў§љјћљћњѕѕїїћ§§јљјњїљћјљљэћјњїїђњ§њљљћњјјњјїњњќїљњјјўњћћьјњљјјњљ§љјјћ§ћљјњљњјјўћњњљњпљјјћћ§њ§§љјјњїїѕѕїњїјљљћњїљљїѕїљїїюљњ§њ§љљјњ§љјћјјњњћћљ§њћїїјљїјњњјњјјћћљјїћћђјњїѕљњљјњњјћљћћљђћљћљљјјїљ§ћћљјјпљїњћњљћљїѕїѕїљјљ§ћјњћљњ§§њ§§ћњјњїїјјњњљїѕїћћјўљ§§ўљјјљљњ§§њ§љљіјњљћћљњњљ§§іљћ§ћјјљћљјјћыјћјњљћњ§ћў§њћћјљћћљћ§§ўћљљљ§њњ§њ§љљѓјїїњјћјљћјћћњњј§љљјњљћ§§ѕћљћ§§њњћћјѕѕљќѕњњљљїћ§љњ§§љћјјљјљћњјјњљјј§љћљљёјїљїњљћњњјњѕљјїїѕјїјјїљјњћћљљћјћљљћћљљ§§њљћљљћћјљїјјќљћјѕѕљїћљћљњјјўїјјќїјњјјфїњїјљјњјјњљјњїњјњљ§љјњјѕљћљћћяњ§ћљљћјњњјћћљћњјљљћ§њњўў§ћјјыљћљљ§њ§§љїєћјњљљ§§љћљљ§єљ§§њњ§ћј§§љњњіћњњ§§њ§љјїїіѕјћћљљћњјљљю§њўў§§љњ§љћјљљћћїјјєїјїћљј§§њ§њћћѓљјћћљњўћ§§ћїјјьљћљљћћљљћљљћљћјљљ§ћјјѓїјњћћљћћљљїњ§§ќў§њ§§ўњљљіњљ§§љљњњљ§§јњ§њ§љћ§љљцњјњїїјњїјљћљћ§ўћўў§њ§љљј§љљњў§ўўїњўўњ§њњ§ўўѕњљњјѓјјљћљ§§єћљљћјјњљћљљњњќўњљ§§рћњћћјјњњљ§ћєњјјњјћљћјїњјњњљљњњїјјёњћљљјљјїѕєїј§ѕћћћљћјїјјућљљћљљ§њ§ћ§§љћћљћњїїјјљћљћјјїїљќњљћљљћчљћњљљјјїїњњїїѕїѕѕїјјњљњ§њњёћљјњћћ§љљћљћљљ§§єў§§њ§љњ§§њ§љљћјљћ§њњћўїјјљ§јїјјёїјјћљјњјћљљћњјљљќјћљјјљњ§јњ§ў§њћљјјљћзљћћљљћљ§њ§љїјћћљћљїїј§љћ§њћћјјљїљњћљљћ§љ§§іњјњјїљљњњљљђћњїјћљїјњћ§§ћњњјјљјљљѕїјїїхљјїљљћљћјњљљћ§њ§ћћїјљљјћ§њ§§ђћ§§ћљїјїњјћњћљљ№§ўўњ§њ§ћљћћјљјјћћћљјјћљљћ§њ§§ћљљљњ§§ћўў§§њњћљљ§њљљјўїљљю§ћљљћљљјјљјљћјјћјћћѕљћћљћљћњњћњњ№ћљћјјљ§§љљїїљњ§ўўхњљ§њў§љїѕїјњљћљљћљјљ§§љїљјљљјњ§њ§§њ§љљўћјјњњљћљћ§§њэљ§ўў§їљљћјїїјћћ§ћћљљђјћјћљјљљјћ§њ§ћћљфћјњјћћ§њњ§јљљћљїјћљјљїјѕїјљјјњјїљјѕјїјјљљѓњјїѕљјћљљћјњјјўѕљљќћљ§ўў§њ§њњ§ўњљљћ§љћ§§їњїјљјњєњјјэїњјјљљњї§њњћњњјљљѕљљ§ћ§ўўќћњћљљ§ѕј§§ъњћ§ї§§ћљј§§љјњўўњћњ§њљљћ§њ§§љљфћљјљљњћњљ§њћљћљњћћўћћў§љѕїњјјўћ§§ќњ§њ§§нїјњњ§ўўњ§ї§§њљ§§љ§њљѕљљјћјјћњљћ§љљћћљњ§§њ§ћљљћљћљ§љњјїјљљїїјяњћљєѕѕјћћјїїјјћњјјљјћ§§њљњїѕѕјаљ§§ў§њњ§њ§§њљ§љћћљѕћћјѕїїјћћљњњјјћћјњљ§§љљјїѕћћ§§мћјїјћљљћћ§§љјљ§§љ§љњ§ћљњњљљјїїњјљњ§љљцјїјћ§ћїїљњјїїјљћћѕ§љјћ§њњјјѕљћћњ§љ§љјљ§§ўњ§§іњ§њ§њ§§љљ§§юљћ§§њћћїјљљћљћјњјїїљјїњ§ўўњњёћ§§ўў§љљћћ§њњјљљўћ§§ћјћљјљљўњљљ§їјљљїђњјћљћљјїѕїїјљјјў№§љћјљћњјљћ§ўў§§љљъ§љњ§љ§ѕљ§љњўў§§љјњљљјћћўљћћќњјњјјїќјїљїїјњјћ§ўњ§§њ§§њ§ўћ§њјћ§§њхћ§њўњњ§§љљњ§§њњ§њћ§њ§њљљїњјјіѓїїјћљ§њљњњу§љјѕѕєѕњўў§њљјљљњљћљћ§§ўў§§ў§§њћћўўћўў§њњ§љјјїїєљћ§ћљћњњ§§ў§§њўљњњуў§њњ§§љњўњњ§§љ§§њњ§§љјј§§њ§ћњњњћљјјљїїјїўѕ§§ўћ§њљћњњўњѕ§ћћјјљ§њ§љўўѓ§љљћљљ§ћў§ўњ§§юљјљјљ§њљљћ§њљјљљј§§ў§ћў§§єљћљћљњљїѕјљўў§љђћљћљ§§њњўњўњўњњ§ћіљ§§њњљћљїјј§ћў§§ћўўј§њњ§ћўў§§яўњњћћљљїћћљљћјћ§њњљі§њўў§§ћјљ§§яњ§њљ§љ§§љљњ§љ§§њћћў§њњіўћћ§§љјїїјјўљ§§їјљћљїѕљѕїїюѕњїѕѕѓїїљћњјјћљљћљљќњјњўўћљћ§№ўћћў§§ўў§§љјљљ§ўўѕ§њњљћћјјљљјјіњћљјљјљљѕїїўјљљ§їњўўђћ§љљћњ§ўњ§љћњ§§ўћўўўї§§ў§ћ§ўўќ§њ§ўўѓњљљћјјѓјљњјњјјюљјјїјјћїѕњћћјѕљјјљљўјїїёѕїљјћћњњўўњљљћљљўћњњўѓњўў§§њѓїїјњњјј§Юњљњљљњјљїїјјїїјљћ§§њљљ§§ћњњјјљ§њњ§§љњ§§њљљћ§ћїјљњ§§їјњљњљљћїјї§љљ№њ§§њ§§њњ§ћў§§љљ§§ћњ§§њ§§§њћљљќ§љјїїєѕјљјњјјљљћјњњљ§їјїїЭ§љїѕїјјњљљћљјљћљћљ§љљўњњљњњљњўћћўњїљњљњ§§ў§§ћїїјѕїјјў§њњі§љћљљўћћњјј§њјћћњ§њћќ§њљ§§ўю§ћљњњ§њћўўњјјњњ§њљљіћљ§јєѕїїѕјјїѓћэћ§§њ§њњўћўўњћљ§§љјјњїљѓјњїїфљјјїљњњљјћњ§љ§љљјљћљћ§њўћўњ§§љпћљљј§њњў§ўў§эњ§§њћјћњ§њљћљљ§ўў§ћћјљљ§љљјћ§љљјњєјћ§ўњњјћ§§Щ§љћ§§єњ§§њњљћљљњњўўѕћў§њ§њ§њўўњњјљѕћљљ§љјј§єїјјїѓѕјјњњ§љО§њ§ћљљћіљћћњњћўћў§§јёљћљњўћћњћ§ўўњ§љљы§њ§њњўўњјїјїѕєњєЏЌўў§§њ§њ§Эњўћўћў§§љљћћ§њљњ§§њ§§њњљљњ§§њљ§§њ§њ§ўћ§њћљљћ§љћЩЧћўўјћўљћ§ћћўўњњ§њљ§ћўўшњўћњњљљњ§ћњљљћњўўњњ§љјњ§§ќњўћњњјћ§М„Šљ§ўўц§љљћљљћњњ§њњљљ§§љ§њњљћњ§§љљњњ§њћћўўќћњјљљёњ§њњїљћ§ћЦpe§љ§§њ§єћ§§ўњњ§њљјћљљљћ§љ§§ўњњљѕњўњљјїјћњњ§§љюјљњ§њњћ§Лma§§њљљ§ўў§ќњљ§ўўљ§њ§њ§§њњўњ§љњ§§ќћљљјјєћљљєѕѕїћљ™hWљ§ћ§њњћўўъ§ўћ§ћћњ§ћў§§ћ§ћ§§ћ§њљћћ§ћњѕ§ћ§њ§њљјљњћћў§њњ§іўћ§ћ§ћ§ћ§ћћє§ћ§ўњћљћћњћљљѓћў§ў§ўў§ћћ§ў§§ћ§мћњњћ§§њјљњњћљњњћћњ§ћўћў§§ћ§§ўћ§ћ§ћњћћї§ћ§ћћњўћ§§ћћљњ§њћћў§ћћљ§ћ§ћћњњљњћ§ћћњћє§ћ§ў§ћћљњњ§ћћэ§њћћњћћ§§ћ§ћ§њћњљјљљїћњњљљњњљћћѕњћћњњљљњљћњњ§ћњћћіњћњњћћњћњћћ§ћю§ћњњљјљљћћљљњљћњћњњ§љњћћёњћ§ћ§ћ§ўћљљњћћњњф§ћ§ћ§ћў§ћњўћўў§ћћњњћћњљјјњјљљѕњљћћњћћњљљњњћљљњљњћњњћћњљњћ§ћ§§§ћўћћфў§ў§ўћњћ§ћћў§ћ§ћ§ћ§§ћњњљњњћњњњљњћњљњњљђћњћљњњћћ§§ћњ§ћћїњћњћњ§ћ§ћћњ§ћ§ћ§ўўђ§ўўћњћњњћћњћћ§§ћњћћњљљњ§ћњћћњ§ћ§ћћљљњэљћћљњњћњћћњљљћћ§ў§ўўћыњћћњљњјљњњћ§ћћњљњћњ§ћћњяљњљљ§ћ§ћћњљњњљњњљљћњћ§§њњѕљњћњњљћњњљћћњє§њћњљћљњњћћ§§ћ§њћњњћњ§§ћњљјљђћњћћњљљјјљњљјљљўћ§§ћќ§ћћњњљ§њћњњјћўў§ћњћљљјјљњљљњљњњўћњњљјєљћњљљњњћњћњћћќњћћњњћ§њћњњњјљљњ§ћћљєјњћ§њњљњћ§ћ§§ћћњљњљљћњљљјљљњћћ§ћ§ћћљ§ћ§ћњћ§§ћъњљћњћћљљћћ§ћћњ§њ§ћћњћњњўћњњч§њњљћњ§ћўў§§ћњ§ћњњћњ§ћ§њћћ§ћј§њћљњњ§ћћњ§ѕћўћњљћњ§ћ§ћћ§њћ§§єњћњњјњјјљњљћћўњ§§ќћ§ћњњћњљћљњњљјњњќћњўћћёњљјљљћњљљњљ§ћњљљњљљјњљћњћћњћіњћњћћ§§ћњћћњ§јљњњћѕњљјјљњћњћљњњўћњњћљњљ§њњяљњ§ћњљњњљћњљћљњљћћѓљњ§ћњћћњњ§§њћћѕњљљњњћћњљњћћїњ§ћ§§ўў§њњ§ћњћћќ§ћ§ћћњўљћ ћљ§ћ§ў§ћ§§њњ§ћ§ћљљўњ§§љћ§ћћњћљљїњјњћћњљњћћђ§ўўћ§ћ§ћћњ§ћћњњњљћћ§ћ§§њѓћ§њћћ§§ўћћњћњњэћњћћњњћћњћћњћћ§ћћ§њњыљњњћњћћјљљћ§ћўћ§ћ§ћ§ћћї§ўћ§ћў§§ћћ§ћўљњњњћњљњњћћў§ћ§њ§ћћ§ќћў§ўўњ§ў§§ћ§§љў§ў§ћљњњњћњћћ§ћћњњљћњћћ§§љў§ў§ћ§њњљыћ§њћљњњљњњћњњћљњљљћћљљњєљњћћњћњљјїљ§§їћњћњћњњљњњћќњћћ§§їњ§ћћњњћћљљњќћњћњњљћќ§ўњћћѕњћњћњљјјњњљљўњљљјфљњњљћ§ћљљњљћћњљњњћўћњћњћћ§ћ§§їћ§ћћ§§ћ§ћћў§ћћ§§њћњњћ§њљњњћіњљњњћћњљњћћѓ§њћћњњћћў§§ћ§§њў§§ћћњњћњњћћњњћћ§ћѕњћњћњћњћњ§ћћў§њњїјљјљњћћњћћљ§ћљњљњћћ§ћќљћ§ћћљњљњ§ћў§§њћў§њњ§ћњћћьњћњњљћћњћ§ћњњћњћћњњ§§ћћ§њ§ћћјњћљњњ§њћћќ§ўў§§ќњћњћћіњ§њћњћњњћњњћњњ§ћ§ћ§§ћї§ћ§ўў§§ћ§§њњћћ§§ћћњћїњўћ§њћњћњњё§ћњњћњњћњћњ§§њљљ§њћњњћћ§ћўћћ§ўј§ћ§§ў§ћњњђљћњћћњћ§ћ§ћћљћћ§§ћ§ћћњуљћњћњћ§ћ§§ўћў§§ўћћњњљљњњћћњњћћё§ћћњћ§ћћ§ћћ§ћћњњњћўњњљњњўћ§§ћњђћ§ћћњњљњћ§њњљњњљљњ§§ћњњћћѓљњљљћћњћћњњљњњў§ћћћњћћ§ўў§ћњёћњћ§ћ§§ћњћњљћљњњїћљњњћћњљ§§јњљљњћћ§ћћќњ§§ўў§§њћћф§ћ§ћ§ћ§њћў§ћњћ§ћ§ћ§§ў§§њ§ћ§ћћќ§ћ§ћћяњћ§ћћ§ћљћћ§њћњћ§ўў§ћћњљљњњќ§ћ§ћћ§ѓћ§њњљ§§ўў§ћў§§ћї§ћ§§ћ§ћћњњєљћњ§ћћњћњ§ћ§§ўњћћњћњћї§ћ§њљњћћљљњяљњћћљљњњћњљљњ§ћљњњћјњ§ћ§ћњљјјјњ§ћ§ћўћ§§ћє§ћ§ўњњћ§ћњњљљњтћњљњњћњњљћћ§ћћњљјћњ§ћ§ћ§њњљњњћћњњ§ћћњћћќ§ў§ћћ§ћўњљљќњћ§ћћў§њњэ§њћњћљњњћњћњћљ§ћћњ§§ўћњњђћњњ§ћў§ћ§ћћ§ћ§§ўћ§§ќћ§§ћћў§ћћїњћ§§ћњћњћћќњљњљљњћ§ћўў§§єњ§ћўў§ћћњћћ§§ћўњћћњ§ћњћ§ћћў§ћћњћёњљњћћњћњљјљљњћњњў№§ћњ§ћњљњћњ§§ўћ§ћћш§ћўћ§ћ§ўў§ўћ§ћ§§ћћ§њћњћњњћћљњљњњљњўјљљњљѕњћў§§ћ§ћ§ћ§§ќћ§§ўўђћ§§ћћ§ћ§ћ§§ўћ§§ћќ§ћћ§§ўњ§§ћўљњњљњћ§ћњ§љћ§§щўћ§ћ§ћћ§ћњћњ§ћў§ћћўћ§ћ§§ўїћ§ћ§ћћњњљљљћњ§њћњ§§їћўћ§ћ§§ў§§§ўћ§§ћі§ў§§ћ§ў§ћ§§ћќњ§ћ§§ўњљљѕњћћњјљњћњњљљі§ћ§§ўћ§ћњ§§ў§њўћ§§ћў§ў§ћћьњћў§ўўћў§§ћ§ћњјњћ§§ћћє§ћњћћњћћ§ћ§ўўћяњћњћ§ћљљњћ§ўў§ћ§ћћїњћњћ§ћ§§ўў§§ў§§ћўњћћ§ћњї§ћўћ§ўў§ўў§јћў§ўћ§ћ§§§ћњћћўњћћќњ§њ§§ў§ўї§ћњњћћ§ћ§§ђў§ў§ћў§§ћўћ§§ўўўћ§§ўњ§ћћњћњњѓћ§ћ§§ћњћњњјњљљіњљћљњњљњћњњњ§њћћњћћќљњ§ўўњќћ§§ўўћљ§ўћ§ћ§ћћўѓ§ўћ§§ћњћњ§ћћњњѕљњћњћњјјњњљљўњћћњ§ўў§ўћћўњ§§ћњњ§ћ§ћўў§§ўћћўјћў§ўћ§ћўўњ§ћћњћњњћћњњљњњўћњњќљњљњњјњћќњљћљљѓјњћњ§§ўў§ћћњћћўњ§§ўіћ§љњљћњњљњњоћ§§ў§ћћљњјљљњњљљњћњ§ћ§ћў§§њљљњњћћ§§ћ§ъћ§ћћњ§њћњћ§§ћ§њћњњљњљћћ§ћњ§љ§ћћ§ўћ§§ў§ћ§ћћ§§ћ§§ћў§ћћћўћћњљљѕјїјњљњњћћњ§§ћўњљљьўћљјљњњљћћњћњћњћњћћўў§њў§§ў§ўўы§ўў§ћ§§ћўћ§њћњњљћњњћ§§ћјњћћўўћљњњўљњњ§ўєћ§ћ§ћ§§ўћњћ§§ў§њћ§§ћ§ћћњњћћ§ћљљњћўєњћ§§ўї§ў§§ў§ћћњњъљјњњљњћњћћњњћ§§ћ§њ§ћўћћќ§ћњћћў§ўўљћ§ўўцњћћ§ўћўўі§ћ§ћ§§њћњ§§їћњћћ§§ўћњњћњўћ§њ§ћћј§њћњћћў§§јћўўг§ћњћћ§іћ§§ўњћћ§§ўў§ў§ќћ§њћћњћњёћљњ§§љ§ў§Фћ§§њћћњњћњњ§§ўўћї§ћњњћњћ§ўўљ§ћћўў§ћћ§ќў§§њњєј§ѕЛЕў§§ћ§ћ§§ўћ§§ћў§ўўєћ§ўћњњћ§ћ§ћ§§ёћ§§ћћ§ћћ§ћћ§§ћ§§јўћ§њћћњўў§Юдўўћў§ћћ§ў§ўў§ћі§ћў§ћћњ§ў§§ўћ§§њћ§§ўў§§ўчЧ…ћћў§ўў§ћћњћћњ§§ћ§§ћћ§ћћ§ќћњ§ћћї§ћ§ўў§ў§ўўў§ћћћ§ћ§§ўўјЫxm§ћ§ћ§§ћѓ§њ§ћў§§ћ§ћњњћћљњ§§ћћў§§ћ§ўћњњ§ћў§ћћ§њћ§§ўіУtdћћ§ћўћўў§њћ§§ўћўўњћ§ћ§ћ§§§ў§ўў§ѕў§§ћ§ћ§њћћњњћјњљћўў›k]§§ў§§ў§ў§§ў§§јўћ§њў§§ўў§§ў§§њўћ§§ў§§щўњ§њў§§ћ§§ўћўћў§ў§ў§ў§ўўў§ўў№§ў§ў§ўћўћ§ћћ§§ћўў§ўћўў§§ў§§ыў§§ћў§§њ§њћњўћў§ў§ў§ўўќ§ў§ўў§љћў§ў§ў§§њў§ў§§ћћѓў§ў§ў§ўћўћ§ћ§§ућ§ћўњў§ў§ў§§ћў§ў§ў§ў§ћћў§ўћў§§ќў§ў§§хў§ў§ўћўњћњ§ћў§ўњ§ћўћў§§ћўћ§§њћ§њћћ§§єћў§ў§§ћўћўћ§§њћў§ў§ўў§єў§ћњћћўњ§ћў§§фўћўћўћўћў§ў§ў§ў§ўћўћ§ћў§§ћў§§ћў§ў§ўўў§ўўЪ§ў§ўћ§ћўњћњўњ§њ§њўћўћ§ћўћ§ћўћўћўћ§њћћўћўћ§ћўћў§ў§ў§ў§ў ўя§ў§ў§ў§ў§ў§ў§ўћўћћўў§§ђўћ§ћўћўћ§ћ§ћћ§§ћўў§§љўћ§§ўћ§§№ћ§ћ§ћ§§ў§ў§ў§ў§ўў§§ћ§§чћ§ћў§ў§§ћўћўњ§њ§ћўћў§§ћў§§ќўћўћћђўћћ§§ћўћћ§§ћўћћћў§ў§ўўщ§ћћў§ћњћњў§ў§ў§ўћўћў§ў§§њўћўњћўўќ§ћ§ћћќўћўћћ№ўћў§ўћўћ§ћўћў§ўћћћўћўћ§§ћєўћўћўћў§ў§ў§§Щў§ўћўћ§§ў§ў§ўћўњ§љћњћћў§ў§ўњ§њ§њ§њ§њ§њ§њ§§ў§ўў§§ў§ўћў§ћћ§§ћ§§ўћўўѕћўћ§њ§њ§њўћћїўћўћўћўў§§№ћўњћњћ§ўћўћ§ћ§ћ§§ўћ§§ёўћў§ўћ§§ўћўњ§ћ§§ќћўћ§§њљћ§§ўћў§§љў§ў§ў§ћћјњ§њўћћњ§§љўћ§§ў§ўўњ§ў§ўћ§§ўў§§ђўћў§ўћ§ћў§ў§ў§§њў§ў§ўћћ§јў§ў§§ћћ§§ўќ§ўћ§§№ў§ўћ§§ўћў§ў§ў§ў§§іўћўћў§ўћў§§јў§ў§ўћў§§ъў§ўћ§§ў§ў§§ћўњћњ§њ§њћ§§ў§њўћўћў§§њўњўћўћћк§ћўћўћў§§ўў§§ћ§њ§ћ§§ћћўћў§ўњ§њ§ћўћўњ§ћћ§ўў§§їћ§ћў§ў§ў§§ђћ§њўћўћ§ћў§ћћ§§љћўћўћўћћк§ћћ§ўћўћў§§ћўћўћ§ћўћўћў§ў§ўћў§ў§§ћ§§ў§§§ћўћћё§ћ§§ўћў§ўћ§§ў§ўў§§ўћћшў§ў§ў§ў§§ћў§ћћў§ўў§ћў§ў§§оў§ў§ў§ў§ў§ў§ўћўћ§§ў§ў§ўћўћ§њ§њ§ћў§§ѕўћў§ў§ў§ў§ўў§§ўћ§§юўћўћўћўћ§ћ§§ў§ў§ў§§ўћўўїћўњўћўћў§§шў§ў§ў§ўћ§§ў§ўћўћўћўћўћў§§јћ§њ§ћў§ўўќ§ў§ўўќ§ў§ўўў§ўўь§ўў§ў§ў§ўћўћў§§ћўњўћћљўћ§ћўћўўљ§ў§ў§ћ§§§ў§ўўў§ўўў§ўўь§ћћ§ћў§ў§ў§ўћў§§ћўћ§§§ў§ўўю§ў§ў§ў§§њў§ўћўћ§§ўўћўў§§жўћўћўћ§§ўћ§ћўћўћў§§ћўћ§ћњњ§§ўћ§ћ§ћ§ћ§ћўћћ§§ўў§§ўў§§ћћњ§ћў§§єћўњ§ћ§§ўў§ћ§§ўћ§§яћ§њўћ§њћњ§њ§њћљ§ћћ§ѕўћћњћћ§ћў§ўў§аў§ў§ў§ў§ў§ў§ў§ў§§ћ§ћў§ў§ўў§ћўњўћ§§ўћћњўћћњўћўћўћћі§ћ§§ћћ§§ў§§хўћў§ў§ў§ў§ў§ў§ўћўћўћў§§ћ§ћ§§Ьўћў§ў§§ћўћ§ћ§§ўћў§ўћў§ў§ўћњњ§ћ§§ў§ўћў§ўћўћўћў§ў§ў§§ћћї§ћўћўћў§ўўљ§ўћў§ў§§№ўћўћў§ўћ§ћ§§ўћћ§§№ў§ў§§ћў§ўћ§§ў§ў§§їўћўћўћўћ§§ћў§ў§ўў§§ў§§мћў§ў§§ћ§ћ§§ўћў§ў§§ћ§§ў§ў§ў§ўћ§ћ§§ў§ўўћ§ў§ў§§ќў§ў§§єўћў§ўћ§ћўћў§§ѓў§ў§ћћ§ћћ§§ћ§§№ћў§ў§ўћў§ў§ўћў§ўўћќ§ў§ўўщ§ў§ўў§§ўњўћћ§§ћ§§ў§ў§ў§§ўў§§ћў§ў§ўўцћ§§ў§§њўћўћўћўћў§ў§ў§ў§ў§ўў§§ў§§јўњ§ћўћў§§§ћў§§їћў§ўћ§§ў§§яћўћў§ў§ў§ў§§ћ§ћћ§§сћўњ§ћ§§ўћўњћћ§њў§§ћўћ§ћ§ћўњ§§ў§§їћўћўћўћў§§ўў§ўў§ўў§§№ў§ў§ўћў§ўћўћўћўћћіў§§њ§§ў§ўћћ§ўў§§ўќ§ў§ўўѕ§ў§ў§§ўў§ў§§ўў§§ў§љў§ў§ўћ§§ќў§ўћћўў§§§ў§ўў§єњ§ћўћўћ§§ў§ўўы§ў§ў§ўћћ§§ўў§ўў§§ў§ў§§єў§ў§§ћ§ћў§ў§§эћ§ћ§§ў§ў§§ћ§§ўћ§§ў§§ўў§§їў§ўњўћ§њ§§яћўћ§§ў§§ћ§ћўњ§њ§ћћ§ўћ§§ѓў§ўњ§љћћў§ў§ўўќ§ў§ўў§ўў§§йўћўћ§њ§ћў§§њўћўћ§ћћ§ў§§ћћљћћ§§ў§ў§§ћ§ћ§§јћ§§ў§ћћўўў§ўўъћ§ўў§ўћ§њўћў§ўћ§§ў§ўћ§§єћў§ўћўћўћ§ћ§§љў§§ў§ўћћ§ў§єћў§ў§ў§ў§ў§ўў§§ў§§ўъ§ў§ўћ§ћў§§ћ§ћўћћњ§њ§ћўў§§ў§§ў§ѕўћў§ў§ў§ў§ўў№§ў§ў§ў§ў§ў§ў§ўћ§§юћўћўћў§§њ§љ§њћ§ћћўўї§ў§§ћ§ћў§§ўћ§ў§§ўўњ§ў§ў§ўў§ђўћў§§ћ§§ў§§ћўћћєўћўњ§ћўњ§њ§ћћ§ў§ўўў§ўўј§ў§ў§ў§ўў§њћў§ў§ўўћ§ў§ў§§ў§ѕў§§ў§ў§§ћўћћѕ§њ§ћ§§ў§ў§ўўјћўњ§ћў§ўўћ§ў§ў§§§ў§ўўќ§ў§ў ўі§ў§ў§ўћ§њ§§њћ§§ў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўя§ў§ў§ў§ў§ў§ў§ў§ўћћј§ћўћ§њўћћњ§§ў§ўўњ§ў§ў§ўўє§ў§ў§ўћў§ў§ўўњ§ўћў§ўўц§ў§ўћ§ћў§ў§ўћў§ўћ§§ћўў§ў§ўўљћ§ћ§ћў§§§ў§ўўћ§ў§ў§§ўў§§ ўњ§ўћ§ћўўќ§ћўћћ§ў§ўўў§ўўќ§ў§ўўђ§ў§ў§ўћ§ћўћўћ§§§ў§ўўў§ўўь§ў§ћ§ў§ўў§§ў§ў§ў§ў§ўўў§ў ўѓ§ў§ўћўћўћ§§ў§§ьўњ§њ§њ§њћћ§њ§њў§§њћ§§љў§§ћў§ўўќ§ў§ўўњ§ў§ў§ўўї§ў§§ћў§§ћћ§єў§ћњ§њўњ§њў§§ўћўў§ѕў§ў§ўћ§§ў§ўўў§ўўк§ў§ўћ§ћўњћћўћћ§ћћўћў§§њў§§ћћњўћў§§ћ§ћ§§њњўћ§§ўўћ§ў§ў§§§ў§ўўу§ћњ§ћўњћћўћў§ў§ўћ§ћўњ§њўћ§њћ§§ќў§ў§§№ћўћўћў§ў§ў§ў§ўў§§чћўћў§ў§ўћўћћњўћў§ў§§ћўћњ§§љў§ў§ў§ўў§ўњ§ў§ў§ўўжћ§§ў§ўћўњ§њ§љћњћћўћ§ћ§§ў§ў§ўћўњ§њў§§ћ§ћўћ§§§ћў§§ћў§ў§ўўў§ўўј§ў§ў§ў§ўў§ћћўћ§ћћїў§ў§ў§ўћ§§ўїћўћўћўћў§§ўў§§§ў§ўў§§ў§ўў§§ў§ўўў§ўўфћўћ§§ўћў§§њўћўћ§ўљ§ў§ў§ў§ў§ўўц§ў§ў§ўћўњ§§ўћўћўћўћў§ў§ў§ўў§§ў§§љў§ўћў§ўўі§ўўї§ў§ў§ўўё§ў§ў§ў§ў§ў§ў§ў§§ўі§ў§ћћў§ўў§§јћў§ўћўћўўє§ў§ўћўўн§ў§ўўј§ў§ў§ўў§§ўњ§ў§ў§ўўљ§ў§ў§ў§§эўћўћўћўћўћўћўћ§њ§ћўўќкўў§§ўў§§§ў§ўўј§ўћў§§ћўўўћўў§§ў§§љў§ў§ў§ўўш§ўћўњћў§ШЧўў§ў§ў§ў§ў§ў§ўўђ§ўћ§§ў§§ўў§ў§ўўќ§ў§ўўќ§ў§ўўў§ўў§§ў§§ўнўўћўўњ§ў§ў§ўў§§ў§§ўќ§ў§ўў§§ў§§ћў§ў§ўўє§ў§ў§ўўЭŸœ§ўў§§ў§§§ў§ўў§њў§ў§ў§§ў§ћў§ў§ў ўј§ўћў§ў§ўўїзŠ}§ў§ў§ўў§ўў§ўўјћ§ћў§ў§ўўѓ§ў§§ўў§ўћўћ§ўўя§ўў§§ў§ў§ў§ўўд„{ўўњ§ў§ў§ўўў§ўўќ§ў§ў ўћ§ў§ў§§эўћўћўњћћў§ўњ§ћўўЏ‚pўw<§wџ;ќwџџ;џ<џ<џ<џћјњјјљљјјљјњљћњњјјїьљѕѕєѓј§Н™V>-40)9:"ш   &+љ§§њњн§јїѕёѓяєѕљјїѕѕєєѓєѕѕћ§Ю‚{M812277-,ї {ѓ , јјїћћўњїїіљјєљњњєњјїї№ћљљЇЁd:028A1.ўў є"2-#јјњњїѕѕїћћНњїѕѕїњјїїњјїїћ§§НŽb\hWJ(7+57  ! јїѕѕїїљѕѕєѕїјїїјхїјјњјћћбk]UGOHYU*"ђ%:(0 јїїјћњјїїњњјСњїјјїњ§§Є|I>\MF8-M -`WE1 +," 1<&@:§ћљљњјњјјњјјњјњјїїѕЧ§љЖd[LVPLLGJF95G!#E7&ћљљћљњњјњњјјїѕђѕѕїбѕєєїдКIV]MGJBCAGF<""#"#%-1&.1+:& (їњјјњїѕњјћљљЦћѕљљјњјїњћє›^?]]FCO40;;&(:1 Cg‰x{‚ДЉŠ……iA&OћћљњјјїїПѕїљљјїћњљјїљљјЯ”‡O:JGA;@4)#",.""; F^|‹‹ЋЂЇž„”Œwe3Ѓњјїїѕїѕёїјј§њљїїРѕєє§§тrI@ELUGC52.38.&!+4C:*MZjv|{КЋ—ƒ}n\pmŸїљїїѕѕёёѕѕљїїєѕѕєєбѓћћŒ\]YTHE?940..>3&.!$<@H>`Ž}ee\wОЎŽƒcmvxzƒћјјќѕљњїїљѕїјњїѕѓѓвёћщx]NJHHGE->9>8?@1**35B5w‘ŒtdQp‘КАЃˆpiv|twјјљѕїјїљљњѕїїѕѓѓв§љœ]Q^M9@<9&%51-0+73@F2-7?mЃž”ƒoЊЎЅЊ›eorz„јјўїѕѕїјЩњїѕљєѕєћ§щ}HHJ<33>?A2421-*%WA$HeqŒw‡t™ЊАЃЌКŠ~rœН‡}јїїљјїїѕєєѕѕїЩєј§єŸu;9^?E41540>5##,$8C;."q‚[V`ŸŽx™ЂŽŠЃˆMWcndq……љјњњїјѓѕѕїјєјї§љЯcA7>HJB@B@?FE;+2$%1- W‹jb[\tnИВ•’|Ё‡?Z]pox‹‰wљјјїјїїѕєђѕєѕњ§ьqJCAEJBGF::@>?A40>)-%UŽ~giwŠw{ށ~xncimwwqvqkgkћњњјјїУѕ§ћСP<>;MNHSFB71B@?<8-$!34 T›vmqwŽz}…‡‡‚‡e]v|wjj{pcEeњћљљћњјј€ќїњћјwZEBEG>8:2*"(+&*14…ikmup[™УЎŽn„vC;<98@8:32$Snq^ijhhŸ—ŒŠ‘t4F{iYuwxopi|‹…ѕїјїѕѕѓѓїљжP?BB?@823<5+.)(LmY^ˆ‚ceg‰Ї››ЮЛ{NxЌ’‘`c\^o’g|ˆјћјјїїѕјљМQctTMEC@B:C>3;BA@B>)d{{mninnt˜лАЃЫ˜t9OWƒ{bp]cp|u‚ƒњјјњњѕјљљˆWOCPHH@<@ECG337<@A24$FOQ`vokjr}ˆСАЁŸ‡vJ[o|jcjq{u…Œ–єє€§їєѕ§ћФcWT,-W|U2ACHPN(1$59<p‡Y>@-8B51224302#NShdcrru{{kžЃ}ƒvmh`outxrgnuq‚ƒŽїјѕїї§§рAH2A>BƒqTv[(7^ONW;?91.%Grrxxdrqƒ~ˆ‘”x[pqweqrv|xjhgv~‰јїїѕє§§”MVHHCS}dY;LSOW\\S;B5:$]aLnx}rq}„–Ўžd\kkecep~‚‰Œh\j\xrѓѕѕєљ§љ`CINIA>\gWNTV[VJ1GGFEJh`^`eit~Ž‚~ŠВž]Zm]``qv}‚{rtpp}rv|ѕѕїїљћдA>JIIHF~ЁS"H@FIBFA%&M;S\phq|ngzЄŒ{|ƒŸ…p~vhkcmw{}xtnnw~…wїєїћљєЊ:>ZHHC)(7(BC:544<%(Aintie}ePdŠ…~Œ…ƒYmbtpv{}ƒ‡ˆvnhrw…‚kїѕѕњћчT80;AB34174?@;30;2,!m~„ЉpheYdOtzŽˆ˜aNQ]kt}rttqzdhhaozwxјњєљљ–>;>:2:+<1,(25>BGB2-4&>L(`Š‹nid^wŠЏ•‰v„wMgqq}xw~h‹x^hirx~єљ§§ѓ`IBFIEF84850,)2?F+4).[|b\~mnTFHVpzxœ}tokkrijq{‰ŒŸ–unb^opzvљјљ§Шw[E@C@)+1210(-5.45,&mZQdzhnkYcpŽŠw”‘}–jhnxmx~…}hh[^ibirpїї§ћw4WB>A0*?V50975..";Na\e^Z^Y|r”ŽЄ‘zYdp”~ƒ„rvocc\[wwtbbїћљмcGA;EA89ENLFHG><8<1!LO|pmpq]žˆ•ЇУАPGow|Œ‘‹‚tutjWhpr{zvh[їљјЇLA?@992.5297372"843^d`tpmUE]—ЋЂЊЃЇ‰mVSm‹{ˆ”’Š}{qqr]Nro‰|kgўћї0CTIH@899cM??>91&(7)@moeŽxd[dxЊЄ’–‰Ђ›eng}{nwЗ}ticia’СЂ‘kT§эЩuAPL;:9:2a|2.4*+.*t{g|qiQWЕН‹zˆkP^|wqjŠ—~`eoro}—…‰Д‘`љзФ‡W4C@FIMIS797.2;q`wmpWo”‰‹‡‘jƒprqqnox}omexvrpoxxt{dєЪЏTNbMSO@2+8:A771-#)1w`JZYmdTYv‡ˆ‘ž—vkghoqow}}x}……~‚x{xr^`ЗЌ`NGT:BHG<1-+232)+9OcG^T`EiužŒ‰„Ё‘–npw}|x}c\kŒ‹ŒŽ‚{z{otvwЕ•gv^MJ>B;&7Q`‹wpx`ƒБ–…^PtŸtމœ|u}ŠŠˆ’—„ur|‚‰‰лjU`FFNIB9-I1*3"2JBLˆHJT„МЛ–q8n™ЕЌjShz‚rt„Š‘ЅНƒgjm„ƒ‚„{‚ЊA-3@C7030041NG#09>N#B–\C*8nw•ОЛ—‚‚}||‡••}mˆ‚„~~ЇС˜o?n{ŒˆŠŒ„xk]8@A?50Ax}e?>on‚ЗШЎ}c„‚ƒz„Žzcq‚~p}—Є•uhn…Œ„œœЇ`G::FB>:EC?;@E?087, [hC[aCQ˜ЊБЇ|u~}|v{}qt}nŽ˜‚uŠˆ…|mzƒ”œЉЁ—JGYNFF@8:?32?EE@3.?zjGPTEb„Ї‹~x‚m~„xrv{w‘’•c|‰ˆ‰„z{Š„Œ‘–‹Œ™YJWG>:;:@CAA>7:<@<* TncaG>‰ВЛ„{™ЃŠ‹‡~‚‡ƒŠŽ›zYi‡™„v…ˆ…‡˜‹‡ƒbpQA49<@AC7;EJC:$(-ZobYW;?щz &&*171+$$+њњћњћњљљѕјїјјљљћњћћљљўѓЎЁe;+,75;-?ъ %%#185.%),њњљјўљњњљњјњљљњљљЮњљљњўўЧb^i\G4;8-J  &&+.94("(#%њљјїљљјј§љњљљњдљњўўк˜pZSLHEOJ+ 2-  7,?TG1J% (#њљљњ§љњљљ§њљњњХћњњљ§ўўЅ‚L;^N<95I4khG8( $ 1&>FE(JG@ST.2&§њћћљњљњњљњњљњњљјўиЗ–a]EWPOGIICEHZ21:1#"7,7NE;4<@1.ћћѓњћљљњљљњњљјљјјљбјїјњйС’FY\NHHBC7$<@@>E@7;1,-O80•РБКЗжйТДАŸrZ{њњћљњњљљћУњћњ§ћњљћўўз•‡U5FF>@:.*359@><>@3,.;9;<89?CC@?;@EPaQwССВЅЁИжызЮМЊДЖКРТњњфјњњљљњљњљљјїєѕјўэ`LQIIC?A599у>AGHCGO22MЃЭЩДЊ’ЏЮхктЪАЖЗДМОњњј§љњћћљјаїјўўЃdS^O;;503+2922CHQVZQFLL˜кцкЯНЎУтунтеЎИСЦЦОњњјљњљјУїўўюMGM9:85@>;9479BA#>nO>AtЇАЪЦЧОблшлхяЮНИпѓбТњњћћњљљјјїјјњљљмњўњЄtG@aFL:815<>>:2:ABECJZQ-”ЫОЊЇЈМзьзпёрЖЅЛсююЩЄљњћњњљљјљљјїїѕїїўўїo\Y:@>;A>;;89.xЇЎЎТкжЊЊсцмхзЦЇЇЭКОРУњљјњњљјљЬњ§ўў‰P?EHC>79><;9;87;9<@>0ЫЃˆажЯбшФбкЧМЋЎВЕКМУСћњњќ§ћћњњ€ћњљљњўў›bL:CNE?@B?<9;;3*,*ЈУЌžЇжЭНжгжбрЭœЎАЃОЩЫЦћњљљћњњљњњ§ћњљўўжhH;FHJJ??вCJ:>507;54HЈЖАЌЌЄАЧадИУЧОЅЃЉЛжтЯЪЭУћњњћћњћњљљЫїўўЈUYS3>@B@45>;BB77ЄЦКЗЖРНФЦЧСРКВДЏДБЇЄНСООМћњћњљјљљЦјњўў‘wx@POFGLHEFIC@<;BBFFH&$zбЪЎЗММУЦШЦОРЛЌЊЊАЕЕЗКЗБЈБњљљњњўћљљУјўўТT;<;HJEAJA4BFB>>?@>@FG(L’лЛЏЖНдНЧЫЪФЩМАЎАЖЗЗИЖДЈЌАљњћћњљњњ€Кљ§ўў|`IEU98,-BCHGGHEFB@<,7ЌРЖЅЄ|ЃЕЪЧЦЭмЂŠЏИОСОНКЕЩЖДИњљћњћљљјњўўєod`k^GH;74?AC@?>CHII<8:QИЎЕЕЏДЄйўђЭЕаО…•БЛКТТЧФОРНОСљјїї‚јїїўўЌcFO}j>>AAF?@B@A>?AETZ[54HFA?@<9::39;?A<4GwЌЅЃЕЕБŸЌЮцднўыД‘ТнкЫЕЌЌАКжТМЪ§њњљХјўўНMe|ZSJEHA@;AFBC?@?9:4).HБТРЌВЕВЕКтўмзчЧЇvžОСЗЏЗЖИЩТЦањњљЯ§ўў‰WJ?JHB>BB@LJE1:EFA?191?}ЂžЁАЗДЖИСШэжЧаЫУŸЋАЏЖЖїМНУСЫЭїїљљУјўўЮi^Q22\‚V2AEMUL,747?A@F:GЕРЏЖЛЛИКТрєсЭМаЊЇЈБИЖКРСУЦФШШЭїѕѕщїјўьqICO:BL4@A??€‡C7:{ŸЗИЈКОМРНБлзМДРЗВЎБДЛТРНМКИТЧЭЭћњњљљўўчFN7@@CŠ|TrY2:bZL\CFEAV…iW;<;>1.N˜УЫмИАЌАЉ—ДРШаЩпЇ‹ЇЏИРОТФУТАЎАБЕКСУОњљљўў›CA@854:5<:14<?528>B@GCB<;29::FVTJIHC;>E<*;<ƒЂСВКВЏгмУзрћцЯЂ—ЖМОдаЪФТТРИЕЎЖРССИБЎљўўЊNB@GE>7;AE>:@A9,+2M7IƒЊАЕЕБЏ—лшйжлуЩЗЕОаЦЮгзбЩУУНДЕ–УФбЩЗЌўў§7CZOH@7:@eQFC;>98:M8VŸБДгЕЏЂЇРтлдгЮнЯФЌЖСЮНЊУяжЮТФУНЛВаёхнƘўєЮu>JJI;9;<*i}33;4027:&AЊЧЊЛИЏœЉюѓЩЫЯЭеКžЇНСНЗРУрЪЅКМОРЦрШЭбэйЋћпаŽ^:JHACNMQJG:9**,(3,PeИЩБИКЏЛжаЮбдаНЩЗДКНЛКРУУКИЗООСЦЦСЛРЕРЈўдЗ—\QgTOLE>?CE;?:83-;09;C?<,%˜Ж™žЇЃƒЎМмгЩЮЯаазДООЫЩЪЩСЊЛЗкйкйзЪУРКЖИИКС”mqdL?C89:>CGB@ECNSMHAЃЉЕТЖДЕЛекеШЪИžттагЮОшзћсЧФжегбедЫУЛКСЗНОЛTGJ?>EE;<@ELPJ@<@BH:>kЅАнУНКЋЦзхксЩŸ˜ОчумЧОЧгеСЛЭЮЯгдееЩСНТЦСУТтkVcLHLLC:2-VC?2@A@HMMGCHI">™Ј”ЇЅ‘ЂжщюрСУЩЪЧШЩУТТФНаьжЭЩШггбЩНЦЪЮббежлтEOZLLBA@@9?CIPQHEHH%TОЌЇЄЁŒЄЭёжЯЪШЫЩЭЪЭФУСУШЯатмЃРЮеЯШЧШЪббджедрWPSHE?GI?78?ILABE4MЊФДЏЄˆ‰ИжЪЩЛКШЪФЪЭЮЯЯажжлжЧЉЛСШЫЮЮеабЮбежббзёћўћў§ўћў§§ћўћ§ћћ€†ўћ§њ§њћљћјўўдАjH>JFC:B;0 !&:.7BLC  (&$$??@@C050ћўћўћ§ћ§њ§њњљћњћћўњўћ§њњўдМБxNC?JPQAG+!))(:;>8149ћўћћњћћ§§Цћњћњ§ћўњ§ћўњ§§ўўдŸrn|kY:MHCQ+)-&0-15?7-.ћ§ћўњњћУ§њ§њ§њўћўћўћћўўсЌ‚n]][Y]^>A<! #   #4IVM8Q2 !-ћ§њ§ћўњћћї§њўњўћўњћћўњўўЯКŽYGia^MF]0@|vVO4!*3>JQC3MJJW^802§§ћўћўћўћўћћЫўњћњ§њ§љћљўўЪЂrmUb^WTY^^UL]A?%;95%!;1>[GG79!24ћ§§§ћўћћћўћўњћћУљћњњљњћўшЯUhpY[TPMU\^NC:+!3;C>J80(A?AEEFNF+%;њўћўћ§њўћ§§ў§§љў§ўњўњўўЫЏЖrOioQT^FJOFGFHNITZ&1Tt‡˜žИОЛД™ЌЃvJЗњўњ§њ§љўњћћўћ§њ§њћјњўўљ‹[QV]aYLQIGEOUFB:EONZZIdk}›’‘ЋЫУЎ‘{wˆ~Ењ§њ§њћњњљћњ§њћћќљњњўўдžmqoaWZJSIFEMSQJHB;PU^gVq›~xj…ЇаРЁ›}„‰‡™§ћћ€†њ§њўњ§њ§ћћњћњћљ§ўў‹mW`\TSJHLSOMOISQIQ[`>,LŠБЄ„{q}ЉЪФОЁ‚‰ћўћўњ§њћћўћў§§њћјњјўўДuemZJGFMHNAIMQNPSY^cZYQ‚ЋМЎЃŒ~’СУММЎ{Œ…›—ћўћўњћљ§њћћљњ§њћљњўўв™`\\JJIMTQFLTBIJA?q]@?]tЊ‹™ŽЗКФЗСЯ‰‰ЗпЃ—ћўћћѓ§њћћњљћњ§њ§љўўвД‰VNnVZF:IHQLOGI:E?IY\Paˆ…‚w›ЇНЗККЌŽt›ЖМvћ§§Тћўњ§њўћ§љћљ§љўўлЇQIg^MFCGEPEGAFJEGHTP-gŒ”„h™™АЕЗКЎ’ŠzuЏтУ|ћ§§РўћўћўћўњњїњјўўžcYPb[ZHMGMMINJEQWOMQc[*z›‘w{rƒАЫСКдН„rŠШдЭŸ|њўћўћћі§њ§љњјљїњўўƒ…oiMIQSL@EJNTLIMNIF:CM@CŽ—uzvqРзЖЖпЖ~}wЃЂЂ„ћўћўћ§љћјћњћњћњћўўнmaj[ULIBFFJIULQJNFB;?8uo{”ЌЎx}УЫБЭЏ–p^pЄŠ‰Œћ§њўћћњ§ћћњ§њ§њўў™iYQ\TMNJLMHSLQSFSJHB:x—wQkЄЏЁЌР›ЋЏ‡vtƒސ˜–§ўћў§ў§§њўћўњ§ћўўЌw\P‚bYFGO]]PPZSJEJG@,,$ŸpioАЇ‘ДИЃЄРЄdh{‡qŠ›Ѕ›§ўћћНў§§њў§ўћ§ўўтzTJQ^ZQTP]Z`UZNLWBC>. #npqx}ŒгЩЈЌ‡Ў—Mm}‰—ЅЅ’§ћћ§ћ§њћћќљћћўў‹‚[SO\TSSONQ[^TPQILFAAB~vu{pˆЎК…›Ÿ‹qmqС—›œ–ћўћ§ћўћў§§њўњўўЕhoeBPSSYU`eanV@B9GLFG*h˜Ÿo{ŠЃАœ”ޒЁoout—œ—œ”ћўћ§ћћњ§ћ§§ћўўЪ‘nch]YPNVahg\OVBJGPNH?(p…zz‹‘”’›‹ŠŒwz…‰uuˆœ–‹Šћўћўњњћ§њ§љўўƒŸ‹ŠUWW\VUPPWVVSLUOTPNC*eЁœvzˆ••Ё™”•„qw‚‰Œ|‰ƒ‚r§ўћўћўћ§њ§љўўеjOPIW^YNZV[V\aSPMNIQIL"*cЋ‡u‰ЂЅœ˜™}xˆŠ~ˆƒteћ§§ў§ўћўћњўўŒŽr[J`WWQUTV^gg\YSHCJLG1\…ЎœmnUvŸž—™ztwŠ•‰x‡jrwћ§§ў§ћњћљћўўЫvnnIT]UHJOSg\ZWY`PIE?)4ˆ~qhPAu‡Ё—žЄЖpa}‡’’‹Š…™}ƒŠћћљўћ§њ§ћўўЩxtƒv[^PLPLWbYPSWYYHI58<’w{‚|…hАчЭЄ…Ђ‹Z^uˆ–›ˆŒ–•˜њћњњ€‚љњњўўРrYizSJVWZU[W\NHO[MPH:3d{™‚vt~|uЎА›ЌƒPYŠ}kƒ‘‘‚~‡ˆ–—њ§ћ§њ§љњўўчdThinBB[a[ZWSVSSPFQHG:#<ƒmq•}ikЈЕЉБЦˆeЗк…ev{xxˆ•›Є§ћћ§њ§њўўЗЄYv‡uoc]TWY][bWTVVSLGFAC^vqo—’tx}ЅРЋТђй’c–ИЊЄwrwt‡Б}ŒЁћ§ћўњ§љўўаcuŒme]W\UUвWSZZ^ZSOE>-,%{•‹}~||…ˆЛыЦОпJ[g’Œ}~z—‚•œњўћћ§ў’ŸqcZiYY[LQ[\aMZPY[[FEE9:Zihn|„|}‡дЛЋЖ—ev}‰|}}Љ‘‰•ЅЏњњљ§љћўўлvo>Co‹iBQ[jhg?IOJTSVG49d‚Šwˆ‡‚Š…ŠИщЯЃ…Ђrt~|ŽŽ€ЬŒ–œ›Ёžј§љљњћў§ž‡`\gQŠЁmQVYZ^QO\YWOTL34Qi…„p~ˆ‰’‚Л̘ˆ›„|~}‡„ˆŒ~ˆŒœЁЄћўњ§њўўјWZIUOW–b‡tHS{ngkUVQOJE`ƒ‹Š‹Œ™›–›ЃВr‰v‰ƒ}—–•}ƒŽ‘žћ§њћћўўЎ^j[bPm—xkObmhrwnbe[ZV2Iu~^…‹Œ„„–•ЈУЗuq‡~|t‚‚—•™œЂ{uz{‰’§ћљћўўƒtQa`UOYrjbknmohObb[W)#\{rw{z‹Ѓž”ŸЦЗjj{vrt|…Œ’‰Š„ŠŒ‘ˆ’љћњ§ўўыYZ\]SQP‰Еc8\]`]Y^WQAdLavŠr‘……}ДЄ”›НЇŽ‹Ž{~z„•—‘ƒ}}˜žњћњўў€ЛЦQWxjVN:>H;F[b\YPWPO4GP‚‹~ˆŽ~[rЇ••›•—Ÿeuv„‰…‡–—›Š‹”ž˜ŒњћћўўљePSMUEOMF@BPZTVVP[Q<-F—”Кƒ}uvub‰™ŸЏНi`j|„‡›”Љt}wg‰‘ŠŒћћљўўЖVYOULIQFUHNST\`cW[ILJY\?n—œuwoˆЁШЌЃ–Žbx‹‡ŒŽˆŽЁ‘Є‘zx‚’Š‘ўўУzUQ\TLHCHGIMUMYYUWIFN|ŠrdŠxznh]o…‰‹ЂЏ”„‡~|‹z…ЉЉЕЋŠƒ|~‰ŽŒŽ§ўў€šзzZNYIMLMFHSQLM]MGN3Fojz}|u~Œ—‚ЎЈŽЖzw‚…Ž˜›Ћzzpz{||‰„њ§ўў‡Hq`NSS8bgŠˆˆŸƒpЋМ•ЌТуШЋo]~”•ЇЊЂ—‹‡~vz‚Ž‘”ŽurњўўС]YTUQOTLP]YSPUSLEGW>Cx{x‚zjWoЊУБМЗСž‡nnЈ’žЃЋЂŽ’ƒ~{c‹ˆž•‰{ўў€Ф•B]mbbNVP\rcVVYOMLGO0)%  žZЪЩЌ‹J80*.*  @ƒƒ+F5-$*00!7n‰‡M#"   %)L?|r €ж  )*"!$* `()#  0!  ?pecqv $1 % ,8Ы.) * ) . SagkbgJ9&%(& C$  М ")йAwro…S&N‰~}~z„…|„’xZ„[*2$b3ўўз P[\mm}tY\kq~ƒx‚’ž˜‹Ž—nh˜–vpc1!>nCќ  е 5TVA5Vrtn{rmc”ˆ„‚ˆˆŒr‚„‘‡‹x]M ўћў §й (93C.HmecijqŽ„ƒ‰ƒ•Œ‹‹‚{{ˆ›Є‹^FFU ќ л#-IJMmuhim{~‡}~ˆŠ‰žŸž–ЅЌœ•{\xxўз MHdwotm{„}}}zƒŠ˜—™„›ƒuTN›КYўў и$  Zk|}u~‹Š”‡…ƒ}{‘Ђœ‰‰vYQ(0|c§  бZnwrƒ‘Š˜•˜‚ˆ„~ˆ˜œЂ„P7owYќ,:ўб  k‹- ~q|„‚vЅЅ›„~{{ƒˆˆ‚Ÿ…dH[tI ўУ  8Q( ptƒkh|`‚ЋЩТ”ru‚qЊЂŠjod1ƒa! +ћ г w’Ђ‡wqddxmubWpƒ‡zA$BQk‹Цx #"ў њ г ok‰q]tr~qukrtz~z9]jo{›[#&ќ Tћ) Э vzut[Pav}‚vqŠ‘|„*i7)@puŒ‰5% $ !Ц(%-#7t|‚}wodhmwuc{n+ 4Y0Q`mo ,4 ?F)# Ц,   {~…vv{w}…dE{n2"L-BnmjS4.4!" )"%nv™ƒd}ŠЄ{‘z".! |Š…„vzЎjL c}[U]ie:" !1 ?3]j‡‚zdgzt›ОŸB,€ш}Ž…ŽŠ‚‚~‚8P—vUŸ‰zZ`ULwh&$*(%-   %`‚vuiocx‰ƒƒ—ЗД[…xxˆ‰‹||$4emo™Šn\de5 !&)%"01akYknartv„ˆ‹Ћ|oixW˜ŽŠvcbFj+Zw|x„”ЦНcj‚]+,! (.1jˆ‹jurkpriY‡ž{r}o[7J–…ƒtvaptk›|ƒ`jm`w<& !# *. +nibw{Štn…„‡…œ~09;\UJ…ˆu{|wwcjqv›ШеЕ[VmcbY     "1\bagkuudkЃЯгЕ‘]. , $.",1-2&11%M9v‡Ž‚tqrW‚naДВ‰‡V>J@Zƒo\8B}v{{z}|iƒ™˜Y*&-%#;(*)84.:5?4r–ށT]nj{dP~ŒЃЋŒt`SZhdMP8H>x•Ѓƒ‚}i~™аЇM;B!  (0)(BAQ]x‘›Еƒridmq‡xhbŒŒЎ˜rwMY]WNT^B8h]‰r‰Œ}rŸФФU3$$"#$)S4)^„‰Œbm|tooьij{…ƒziNE4o]a`euoitt€€`‹p”ВСБv-$(0%.0@EB7Czƒƒ|{~„‚tku„~‰”‡e`Vmh[IYZoojv{bn|xj•ИДЌU $ "-1&(,)1.04>B92[oonot‡}ˆŠ‰‘{<`I\bZH@IqLc{n[ww›ŠŽŠ7!8-.3-1+.11?4#7igŒ™‡YZjt{rƒ‹Š‹rpgnIQaejŠiE2;[™‘˜~ЌŒ‚x~p-#3)-)-"&##,1#2MqMЖЈ|ekjr{x{‰Љo@5W3CJWVE)>BЇž„‚x|i’e9 "!&$*()+B1MnЌ››‰ujdn|x}}„ž˜’~Y(2W(Ug! 1O]Nn”k{zŒ•–a(3&(-(0,19B<.&07]Б‹‡ŽœŒdLC{‘~{‚~ŠchVE[@q}M-PrJkb…wxxяC;*2;;9;;@>B8;>:88€Т3>GLLG9:VœЉЏŸЎДЖМЖЛ„;55+9:71,+21 .HJ>-*uБ3;99CA?<:C;.>?B;9497589;BVM3.(S›ЦВРМЄ„?3(7-.:504*"&+4182,$%8ЁК2-134;9(#!+~сясН„0+SNC@?801,,*%3>B;23%1&uНЩ(-)*%+!8PA88<<::88€щ:81+*+%)S’БЦƒ-2AAB:2.+250434:227:8OrŠЛЕ!&(&%$$)+#)(+>4520441-0.27>72-7>"*@I*;@<;5,27135272-*%!%4d”ЊЇ&*+%0$&1G8C:9..-**##,-8>CH8?UZ:J,#W9.49>BAGC93518:513+.@ŠЄžЋЈ,--3.07MYejB@874-(%,,<>G,*0QNBC?Q)!"",4JPA@<3(%,+.70%tЖЌЉКЕ..Б:22;?971@@>:5+1(,9@( ">?F>:2$"*0#2$$!#*23I$~ЇЗЌЌЎgT7A?8A<")2N732)&&Њ!#0VjI72((5[C3*+Q!"-4.0+2dЁЈКЈЂžцШЋНД‰jhoqVeb-0,&*,.+ 5E3,#2 5 Ц  2,$,AЋШДЕƒqŽыУкдЪЧСКЮОИИ–^JN0GVnŒВВЕЖЗКФУЦСЧЦЦЩШЫЧШУШЩтгЫЗ2     +J:3?55hЋЗЛКСТФФТСОЛРУЧШШЮЧЩаШЛВ‘‡Ырq  085.121(,C›ЖЛМНСЦЩЩиЦТТУЦЩббЫУЦИЋ–gkЗб‡  0 €1A,*.9#+1ИЕНМТСОУЦЪУШУТУЧЩаЫкТ”u0jДЖ‡+!  (?   ,(),(jC0(5ООЦМССРДнжйЧТРССЦЧТйУЄ‘.”НИЗ~9LU;78@74VWEUB@+!&!2+#"*+СЛММКСОРСУКВЗŸ~eOŒwЕУКВ„;9,.--+2#@FbI1.*3&%+!АЌЕВМРФСНЕЕДЛЄŒ*JОЧЖАЇ›Єx5.52)).*302;01)77:2hУЛСлЭЮФ•wNM(+4!$ИННЖЗТШЫУКВНЗwn#’ШЗЏЋНТ›cQ>1-.).,0(057-%4@HA&]ЕОЪЖЖНШдДБF>98?*)УШЭСНОЦынЎСЧŽ7BWžУЇЊЈЗЅo>-20..,514079>375;]Q;™ЊСНДЎДМОЎЯэЦvL>0#7ЮЪЯЫШЧФЩЮrтС•аЫОŸЅЃО•J1%(0)#(0-104.;440+@ŽЦТМЛВЖЖТЫЩеѕьŸT: 5ЫЪЮЧТУЖОЯUrОЎВеанЯКЋЉЊZ"1*7@)".<82).1.324PIЏЏЋБАКСУШбтЭКАОx(%ЮгЯаМВЏ—Ћ|ЁУСТЩеђэЋАШ‰C!*:BQ3455053394:1&EWЊгФЖВВЗИЛЛЄФуРВТКЂnhЯЧЦРЛОЖЅДОИмЪЧЭЇЏРАЂЎ[E377г91-%*,.+(-.*7B(GŸЖЊМНЯЛЗИФНМЩН‰m‹‰Ѓ›—аЧФРУТКИИОБаюњщЎ™ЎЎЈw)$83-01-*$#,1--%((7C-ZЂœ‚ЕнТРСТТКВŒЉŠ‰Ž”ŸŒЯгЭТРУМИКНЦЪЪЁЩŸЂЁИ<15<@>;.341;98:;4:42ˆЋДЂЖЗКМЧЧТУБЅ™—–œ–qЭЧЩСНМИЖКРУЩФУОЉ˜•tq45824>;@9<ЅДЈЈ€„Ђ‹ДНШШЧТЩаЇ•’Ÿœ|ЭЭЩЧММЗЕИЛРОСЗНЋЈJQI*4-OG:;;EBCB?;:>@#JœЯЮЩЏЁЂЅТУЫЩТЦЄ—}‹’˜™”dШЮЯШНЗЗИБЖСРОЛНЕЅxLC5(+7iJ@:9733CFHA75BNB?<0J>]ЧЎЇЌЎАЋгјЩШФШФМЗЈКШƒŽŽ…ЛФЩпг‰ЊЩЩЯбпЛŸРЈƒ142;990)2E?83;<<410A:ŸЪСАЏБВЋУмФУУТЛОМЛŸŽ›ˆYHnУШЮЮККЦЪЩЭауЪСЮƒBSTBB;5,,&8I@45;>>7&7?aЭеЎЕВЗЕЇ•АЋВММИВЪФБВМЪЃ˜УРФШЩЮаббЭЮааЯббu5A100110489;4:::4FA˜жаМЗНРТЗЏББЖНСеНœ„w—ЂЇŽ™žОФТШЭЫЭЪШЪаалпЇ]7;52-010107?;9>GB;4+AbзёмЧРФЩФНОтеМУЧЩЄ{Ye^n{ЛЂССТУЦЧгЮФЌЫкљыo(0&3243:95:;;94<>A?VŸйаЩЧЩЦЩУШЩбЯЪЫга—”Ž˜О‘nЌОЌВЕБЕЦЮЫЮДНгкбJ&8;;1485495><:7:CC€;(„кЪФФЦЮЮЯШЪЯйдбршЪœ—–œЅœжШБЋВЌЕлггзЛйўяŸ<*@I;@9?:?><8<;@<;BGH2HЧхЈРЭЫЯагЯЯдаЮЯеС•’}—œ›Ž•ЈЋЏЏДАЦсзлжЯЛШЮj$.A;<97990;?ACB?@BJGM’ШаЁЭждЫУШЧЭЭпСОМЎ™˜ŸŸ•’ЄzЉШЎœОлщмжгйЪшЪP20<>99€§:8:;7OoOFbFEc^\ИЭЭТЦбгЮЩРТФЮгЩТЯБАЋЊЋЅ‰œvmЇЗББЦЋнйзФЫЪТv>IHA82;99;;??o\8]–„UA5^ЎСООРТЮЪТРЗЦжзблЫЏЋЂЅ›ССž˜‰ЎЇЎЕЪНЭдчФСг—--9p{GM>:577:??8%1Pd947C?@AC;B@C)FŽкчЫЩЩЯЮОМЗЮЮймдНЎК’ЅЦВЛ•žЏЏЋЎОМИЉЋжўўрС•O+)@3?`OœРкдТОЛЃЯЕЈбтзаЮЭœ‚–ЅЇеЛШЉœŽУЧЧЋОННАУлрЭˆ<,:CHIE>85;8B@C@>4GOMSLЇмЦЧ’ЁВЕЋЎЦеЮецюгЛЃžЇЏБЋЈƒƒˆНцєЩШФДЧуўнtVc>?:>;+779<<€щ;:?EMcq’ЖдёаОЊЌИУТНЖЇЧггхнЖС•ЂЄЄЃœЎ…~АЂЪЖЫЪЪЗрњїŠTPJ:?3103:47;57504aM2C‹ЩедЏВЗКЛКМЛЗИЦбЧЦБ•ˆ‡ЎВЈЋЖФМЏРДББЦЦЕйьђч”?AUVMdБМШЩЩУОРСМИТЧЯаЭлЯЋžЂЅБЇЄЅВЖЗЛНМЖНТЛЎпєѕуp2-B>GAG?73:>?GBCAEUGNˆЕЕЦТРЗМШЩТФЫаЯаЮбНŠ™ЃЂЈЇŸ‰™Нp—КЦЗЂРТМпдйЂL3;AA:?EGE?><@E>>EBGFSЋЅазЮАЖРНСЩЯбЪгЖЕЋЌ–ŸЅЌВЫЏ‘ƒЁуумЯьЪЧЦУЌT;9(:<8>;A>B??:>BCG53JŠЈ˜шчНЎДЖКМОТЫбгэЗ„wwŒЅЉ™‹wz‘`‰ящагЩУЋгЎ\F544;;AAB<7;EC<AJLIC;EB8?oсбЮЮжуЭЎ‡‹ОжЪЦЧгаАЗœdŽЄœРЧž{œЛ™ЌВмОФСнE99>8EC@B>+(* ?FSC<7:H8d`QMWJE:;A4?;;.&tклЦž]#)UOEJJ:!.&1&*B>>391(U–Ѕ2!##8#04MiPLHIF>97"1785"%!!%P~Ђ–g%:A;@A@34!(!&02$3-0,3IWT•‹&!"&.&5+4)2:8);:?;75*0<$!)9t@%@?EEB>:4:784383!#"8Uhreh")9):0!<32(,%79FCBL@;]U?G.0P9?IEELT?>;4-)<517-%,Brxpv|)!%0$,9GUkmOSJL:<1!$?ILS40JGLHAH59%09:7S]LE:+(+-8*())T„uz‚ƒ&01<3,;A7AIJFG;9>:04IE,%".BA@FB28,,31,".;<#(*)-B)Yrzz~dV7FA9C@*$$8QC@9433)+&)%#8aq@%?+#;7>vT?9BJ%&+0.@8405Jwt…}|hЯЇ…ЁxYbaoZdc*,-&(.(0#(( 2<-9.2#PJ:#A{T%& !   %\{}ƒˆ|jk‹‘”œ›ЎЛЎЄЄЎwАБŒ…•vI93Qj !!%$$€#% "-+1\ViLGrŽ”ˆƒЈЖЊЇœ’™™Ѓ…–—Ÿžƒv] .#!"!!  ,;YPFPG>^„x|ƒ‚ƒЂЇœ›ŸЄЇžœ–•ŽŽ—ЏЗ˜qS!Yk0;"#& *(?73HC 0<0)(+"## ƒ„‘žˆu…‰„ƒ……‘˜Ho*xЇm!-25?B-7AV?5@dkGM<  ;?(-.2.%+-+)21•˜—Œ…–Œˆ™›qb˜Q53^J czd-J[:7E5A;dcVcPE" 1$240)$#+)+#Ž’‰…Ž—‘’ƒˆŠqOC#TZPF‰w|h805393<3!+"2CWaE9+4"8LIU5,-1?+.%# "ЂŽŠƒ‘—˜›Œ‹‡Œir];>}Ђ…vw~‚^G-2?:02591:E80??C@#1]hg‘›c1C^;9#""vz‰™˜•„~tqzni&˜Ž‚ub|[(%:>:87EHHBB>8A>AA2U™Œ‰ЕЅЄЅ||TV++) "ޒއ~ŠЃ™‰…|‹OM hƒ|~ˆ”xQI*$059A>99><<>I7BNG?…‹Љ”uœФ‰Љ‘:C5,B8%—Ÿœ’ЉЪА‘’d%.n”pmw}xM;-..11EC?CCH>75F:?]S:u{˜‹q‘•‰ДжБ]T3€˜ЊЃЂž’™˜ЁE]ДŽhЏЂˆnqhh’w@&"3#0+BBEA?8@5.@73Bw•‹ˆ„qŒ•˜—Ћжбt7%1—™‘Ѓ—Ђ‘•Є9Mx‚ЈЁЏЃ|}vF,3B<*2@CF?>,289G:MOx~e~wˆˆ’››ЋМ’‡ƒn%ЋЖЃЅˆŒxbxUqЉˆДйЯm~–r@%;7F.H@Єœˆ‡ƒ~…zn›Џ—ˆ—wrMSЄЂ›•‹‰nƒ‹‡И—˜Ѓ{{›x‡[E074@:?>A874(729:AL5Eƒrˆ’Єƒ{–——•Ї•PASOticЂž’•Š‘|~Œ…Ўкцаui{}ve#.:314;;82759$-2,?EQ,Ntba[ŠЉŽ…ŠŠ‰‹\wWUPjjSЂЅ˜‹Š’‚‡–ЉЂЈ›mcxpœ?(<4HLB8@@4A:@+rv‚aaŠ‹˜‘}pjj[Wc\@ЎЌ›‘}ˆ‘„‘œ™•˜z^jHW0$:AMGJHG?GEB5E>E?M11r{ew}z]z‡—•–ЉxThYdoM’•Š‚…}„ЉŠ‘‹ora;UQ+*MA?ŸЅ’zr{t’ŒœЎŸ›|kLWZ[eY4”œЄ‰„~„}‡‡ŽŽ‚nFFN3)0AeSOAA@GEJOVVH>)+`ЌЅP‹Šrx‡ЈЃЈЉ’„YCPIjiF[ЈЄЇЉo›‰Œž—ŽŒœ…T&,?4-JBJNF<>CZ\]UCI8;™–‚rz…Œ—„•ЁЌДЖ–v–”A#Y}Y‹ŽЈQ\Œœ˜—˜‡Œz”H1%14**8:QSHFM[SG@4Q;UЅ}ox}„|ЎйЃ”˜’–”}x‚‘LZZOY‡’œКŸUz™•ЉЖДp–zb132A;;0?%7LBIAHOJMLILHE:?A8uЋ˜ˆˆŒ”‘ƒ……‚Œ‘ЃƒvQ>VkpTae„„’˜Ђž™’œЇБЋЛƒP04.1:2@@:>AJJ8IJOA3(>UЗСЖ•‘—™‰ЗžŒ’–—dnI++)JABIHHACFI0JrЇЈ–—Ј–”‰ŸЈ˜–˜ЉЂ]^W[…]:t‰pz~{}–›ЃЃ‹}ЉЃ›uI+:4?750CIM<>*gЋŽ—˜˜Ї••ŸЌЁ›ЂЏИЁbb]aenk›w‡x‰ЖЋЇЗ‡АяТt:-;QG>?,<>?JFFEBIMHJQ0?ЅКvŽŸ›—œ—žЈЉЄ˜Ё”^[GWedQ]hpq}}zŽВНДЎЄŽ™ЁN+;<99.>EHHLQLNIJLWGG‚˜Јm•ЃœžŠ•Ї•‰~‘|eVdd]TSgAk‹pg‚КЫВВЊАЃАБH27<1BE@>HGIC[[OnOLebaЁ™‡œ•›—’”ˆ˜ЋЅž”™zottweYh70eo~{•xИДЏЃœ—a2SGMA>CSPJPE07^mAJqžЅЋœ™ŸŒvza‹ЃВе—Žv.2z‡|qgopi|x„Š„ЄБЊ’ƒ’`N7V\`BGFABYHOGHEA:GN+BoЅР˜™ЃЃ{–ЃЎДЄŠwŠam…{\avq{u…Š}|БьђЦЅqB.;G1HEGFEUPF:OGEB;?5>;?ACQHB8PT]k{•ЋЇг™ˆtu‚‡–‰{r‹ЁžНВ…‡]hmnei~WQ{k—…Ёž˜ЕмзhIFG28?:;@AMGCLEGC@cW4;~žœЄ}‰‘‡…~ƒŒ––’–|iZV~vpu|ƒ|{…{…~–ЎЮкЩŠ952E;<@G;C@HIFGBETQTPW‹Ё’Ž”„‚‹™ЁЋЊœwjkxwp`et~‚ƒ‚‰v‹’}ЗлеЦi--C<:EIHHLCGHCGMTUYSIhƒ™—ƒ‚‰›Є‘‰Ё˜ЂžЂЂ’PqhgtreO`„>ax’}j•…АЈЊ•N2:3G>INUJLLMB;@SW]HAN„tЂЗži~}‰’‡‹ЉЂ›Ѕˆw{bequ{•`NPoЉЇЋ—Уž’›ˆP32-597HLL€ЏPIIA@FPJ@2>^~jЫСŠv|މ–”œЄЪ‚MMb@SahiTHAQ0QКЛ™˜Ÿ”‚ЅxNB5095;;IAPHINGJHMN[PcТБ˜ИЂ{|‹‹”‰˜ЋЊЇ‘j8[kQo~N+FY}b~~ŒƒЅЊЉq.AO@2C>IPMQPSYSPECO9GiЧЂЂЁЕЖŸt[TŽЂ‘—’žz‰^0OjT„ˆ]>c…Yw{›ŠŽџn€z^[^UFInFBacJ.A 5Q1.H"BT9EQ}Q3-NMJ"19aYB%HAYw}…xi}Ž‹MYaa`UZcg[S^ZB<>Gk`g]O.Q7NL>5a\> Nh+QOVS0:JUn}„„Šzu~’d;YCLUWw[VSVSHG*:W95 &1PELO.Iu5 +YE``…~M,:ti~‡‚{x‚tVZTIVUZWim^]g[b,F (0;94HT!C^hhUYM;J:CL]NPAEqŠw…|xrevxbd`dhWaaho]]LgwxN WGPQHb{;I?xxV88273JO7.7 ,JJSoYŽ•ƒunhwx}‚dbQHN`n\gkibG 4LrJJ-I*jeTL2?-0V:zo72FQ>g?LOWjw‡‹}|u{~wwtST]anu}kT>n` B@€O 7TZ%(H17J1-AETZkGWwcYQ,3V‚phdihrq~cmznarv}{ЌŽUk|e(AFL^bQ@I,2#75.:O9>V2PYHZaMTtzkid`arw|ug[Y]]hqbuzM%:o:Z,AWYFPQ^VJa374OU &U(<+pV5E2B*@I[`qc[e`jdjjqaaZCWTebb^8C@*PaIL550*3FqQ`tourhmJ @ 17,H$F;%H9U?ZmSQOOYVFIJIESQQekwiYVB*;"9h0L%QO)>SahcL T”qgNM(&%>!>+<*;cS`nZOOaehjg[\\dZ]c^j^YagVpT4#>5xcO#YhIVPP\:о%@I?i`waOhdmh]PT`hj]SNPUWZYbikbZ3€ўMAL8)gc(,on,>JqtLG3iG9E-Mbjug[IL\aeLZLH,QQPGa\dxJ>NU`LNEIJV ^H?#[mejWQ2J9GPEUVba[MO[^Ye`TGNS+SIQIOIHC53<$7hW]G)2<-P`gve[@O%:3dS%Jh:"V2IPIS^YOPJQUVa`UJ3Pb(4jZu…V &Or[TYB)3`<HI1 #JE9TWZZTLB9GbZA<91-^w`P?Mu\ InkWB?adNIbd^a`S.G,TdHHIGN@@(<1LJLVAAi|TWLW^`%.$CO‰k‘VA^okeTF]iI\WL\F2<%AkZQ[^ST[UWJ3N5PBNe]wneTMLbm С&$@Z;WY4o! Ono`HLTbvY.)&M">U^WcQYMGNNQ1BECCHVQ`cL[OUZ`Т 9A#.0F)%"bUZ^:5eB@>P!Z\M!-VS#Fc^VTIJY:EGA)QA[b^]dbdmdХ p?h‡Ћh™РL5E?BP|phUYhiZFU`‡oTLN?-;7J]bUIBVPUQЯ Cr gЅ^@aiZ:PŒ`^g[ec^Z^T”S$8E>22+%*$ 0H48&%)$%)2&)+#&\}wPgL4IƒЎ›GL)$‚WPO?BL71&<+")-!%#!$%%,5-(2(.-)ah}’…}z;o›ˆac}]qPaEbu~mpn!" "%*$ "$5!(#..;..4h‚eTPS‚UHnwoOvnŠ|P8244,10-!(0-&hgd:T4cmce]cnœ–{nCTW~v3 #372"+134-")#"-&.-*#1*#$VceZUWwЋV—vNo{h3vGZqc„ДБhqnk—xƒqVoT@1"QN7@FAA29:S>.,!#&(&]d].F…~—’zIFa[bknQV…viЊo—‰ŽiSY`rq[h`nNbG#FacqI1*8EE983"52! (8M%LEQn|qxohY\j`W@xНˆ~tgrquhUNWTemvun]`hrjNC^ŠV`STg™„OZLZ@V•Ф•‡ƒz}{uTgnaO^h[JLJIWW>$ˆЁ„[jVr|oz•rO44€# %VUoh[brqb[[`?HBrЅˆ|tƒŽƒhrzq`d]]d>Z^oUETuœžzod„‰xw„ˆv’ˆˆ‚? ‚5e|Ob…S5tqi|vghoƒœnpnv‡ˆ{einnpk[h^\iqtjI9Hhptvhpzƒ‡‡В›TSS€‚AGo|p”p~wkxuokpGbŸЭ„d|„‡ˆvprZakuneYpzzummhmgcjxox{}•Ž„}Е‹N@:,"(#eToY[nejg~rkY?Su˜i…Œˆ{rcr^gN$+AumjZZYUxtvng`ikreZc’–Ї–dJ8*(*8WGmaomL–Žvg{wkdq{]amˆ…‘wiv„”urmOFGPekpgk~}v‚wjUe~u‘˜ŽgL;GHI?ЂœzAkiŽВЁ„u}vuzwi|vx}‚Šƒ~qqw}pbb[viU^Vehq|”‚‡}U™Ё|•Ј‚UJONCBCrŽEh„ˆtŽ|^qqƒrG}’}Šˆƒ~urzikoqd”Š]AUSScgˆpjp‘ВШŸЄ‰or…d[Q0B?CIrt^dqc[‡n`dLkJPCxmnqnˆ|LY`mkeuz|ou|zjm~uxUiagrgЌ‰wkk’A9.2B>@EЅЖСЄЈЉœŠ’А”•БЈˆjz˜‰‹‰‘••œОЄzz–Ž}h„‚ˆЏД—™”ŒžЗСМТММНЭУ„ŸБЂŸЁ›ЄЇЄžЊЁŒƒF;eЉАДmC[Єi…ЊŒ‡…˜ЅЎŽmЎz”Šzi›‚ˆ›ЋУУѕСНЖКйЯž‡™Ёœœ€СКЇЁœŒk}‡geЁ’Šqbmqt{—VP‰’Œ•ŒК}SkNxŸ˜ЅЁЪӘjJДДОРНМЛНЛЂ›ЁЂЂЃЁЈЊЅЅЇЂЁЃ|a‰rTEz„‡‡‰™jj›ЊАž˜‘‹—pUpk„‚g~ˆ‹Ѕ–ž}~МЯУНМЛЛМЖЇЎКЇЅЅЉВЋЈЋЊЗЊЄЏЕО”5eЉ”–‘•ЊМ‡БТŸ‚ށ‡z‘•}~~iUcnp•œŸЈУгССЛЗЕНСИЋДž›˜ЅАЋЋ€/ЏЉŒmEctžБd‰SYƒЇŸ›’—~Y…‡––КЊvp‘˜ƒЋ…‰–žЋЛШЦОТФСМИНОНКМ™”ЅЌВЛЖВ‘ƒЛЇdiЗФТЉ˜™—›œ›€•—’Ÿ›””žЁЃЅœnˆЉ][O|{~„wbxg˜ЈЅ‰Œch{Š–™žЇЧЉ~˜БŒv•ЖЇНБЎŸ—™˜ž›ŸЇЁœ—˜ž–™ЃОЎЋЂ›ЄБж(Fm…m}Јn~ЋЛЇЕУž`Sq‹БŸ•”~„ЕO|ŠrpaS›’—›™˜Š‡œЏ‘‡zƒЏОЄ˜›‘ВЌ745;LFOˆЉЊ}ЂЖCOœžЂЃЄžcj{\\vŒ~kOjЃЎ‘‡‰’•–ŒŒ‚ƒ…•”—ƒ^Z‘ЖТЅ•–—ŸЁ873C[kjNk‡hСЗбŸЇАЏЇœž—Љ’œ‘ˆ˜Q?ЇrcvЃ”˜•™™••’—Š–Œ„•ЌЈТЏЄ›’•žЊ723::(I[vƒ{’–‘ЗpZŒЌНЃž˜™ЁМœttpc[n—~d~ЄŸ›ž™˜”••Œ‚…ˆŠ’ŸЈЉЋŸЁ›ЁЄ+3,32-*(Nou^dzg^hmЃ›ЁЃ”|Ѕ‡q}‘„˜ЉЅpmЊŸz˜ЂЉЄ”Œ’˜Œ‡‡’œ•ЃЇЅЁЃЊЊЈœ"3-51 1C‘ir‹ƒ—hwЃЁ›|~‹v”—ЎД–‡СБŸ‡••™ЄЄЁ˜Бސ”‘ˆ‘ЃŒ–—™ЂЂЎЋЇЃ,74,. .7:H`oYw—ЄМД›‘К™}Ёwg:vбЇЃЃЁ•‘‘˜—ˆhx~Šz—›ЂЄЅЁžЂЄЅЉЇЇ($.&*!$&$&TFUMaЄабЩсЖvWMa—‹ЎЃŸœ••”‘’•—’ЧБ‘Ѕ‰ЁВ‘”ЃЅЃЃœŸЁЃŸ&$#)%*)%5C8OFU‹Ой›Шё‘9Zuˆ„‚ŒТАЈŸ˜ŸŸ˜žЅТБ’–™–”]‡z‘ЂЁœœœЂЃЂ"%(#(#("#*)*4?Nm<™рЃ›ЌŸWxžЮАЉЂЅŸЁŸ™ЊйŸj’’ЅЄŸЃЃžžŸЂЃЁ&#)1+%)%#+*d‘E7u|i—ЕaipžЊЅЂЁЃ››™ŸИИw‹‹—žЉЇЅЄЅЅЁ˜ЂЇЊЋ€Ф$$0(.C:3hO+:PЇБССЩЗЄ˜Ћva›ЃŸЇЇЅЗЁ•’…˜МБЉЊЋЊЋЎЊЈЈЉЈ)"&#-.(*2!<;<&#E4&.0?g}ЕФКЗВФК‹”Ÿž›ЄЁЄŸ–ЄžдгРВЖАЉДИНИЗЅ+!"!")-.7550,"0-;-382.27.-34AIv—ЉБЪУЎЖЊЅЅЌ‰Ѕ‚q”Ќ˜ВлаШМААЌНТУУСС5)%#1--€б28.>.,0,32,77471>.@ToNk‹|–Џ–—СЌu’‚uˆЉЦхюадНАЉЎЕЛКДЎБ,4"#"*31(%,++4579)1.798HQ305)@HCnŸЦеЇ…–Œzt‡—ШдУткАЋЊЖКИЕАЗc\@70)(++#"&3:9<8))$%**(899"09IO`…БйлЎТМВРЎЄЇБИrZEMJ?Me<7.+"1(#!$,,..49,097254:13:989;@A@@NbuMIWA2..1:9<335>><5<55B::<(;UYSS0IMc‘ЎИБ˜ЛЧ~bVe]>821\\1.5@3*.!!1903:30,34;?978;<@<757<:;8;>CCH@H:HGECt˜ЏЏЕЭЎ’‰›nB%LW9.:>CBB^!"*&%.80)-01817385EEFA:;:>AAB;>>;>GCGMOMАЇЇ‡ЃдьпКЄzNJ@FFBB@?GB:8,35<77ї-+0%7439??€Ч>877AIEMEH>CEAHES[PŸŸЂЁЂЁЇЖ›ЖШЏЉЉœW+A@??945<4(4>8278:<359;79-98>@CJFICEBMEB?@<ЮОЅœœ”ЕŸ’ЉЗКИнаŽg~UQt<"><252<89537:4>:>82:?ECGJJHGEAA;:ЄЄ›˜ŠЁЁДЉБхЪŸž˜—ЌРЖb`SV^>-.:CGB:;945>?>:*:9<7F`OG@@EE”FHGLFFB>9ЅЦТ|Џ‘v‹Ъэуž”ƒrxuЯ›ˆƒ\UdFLALC@<<><8A952)08.+92889@EBBIIC?B<@54*ЗЛЪыЪЪР‚КхнЫЃЕЩЊНŸЄ‹ЈЗКŽŠC25-$88>??€;AB7::77?337@EH@FHMJELGC:2+ЕЧЖЇ”˜Ч–‹ДЖЕЁЗОЪИˆЉМЩЖ›КОЉmQICC:8BFTOLGB@CJ@531A@@GMGFOTPPH@757ЄЅžŸЂЈЂЕФЉКˆ–аЂo˜ЫЖИ‡t”ЧкТСЁhEANcUMSLLEBGH><5@>@<ЊЅЃЇЈЃЉБЊЅЏƒt…izžАЗЉ™‘ЌЕЮгОЗРЪŽmFWpUCHHFAEICCJPQLB:;24975>CA9"$ААЅЉ„ŠЊŒАЂ…‹•ЄŒЏЋЃЁЃЄКстШЈv’œФЃqEG3BNWMOMLJLMTI@;:49<;37;;8*!ЉЉЊž™œОбђШcžщЦЇЛЭЅzН‡”УДЧчѓРЗДВБмЧсЧЖ—ž~\LCibWVW[PBENeJ;>:9;<5+ЉЅžx˜еЧдтט–ЉЋЊАИœ—бТСцДЧбдЏЅАЕИЗЕАЏБЅЈe}‹ž•dTSWTLFQWICA:;;50)%АЁœ”ЕѓчЫайЄžžŸœ’ЕэгЫЩУФЦШЄЁОЅЈЏЌДЉДЖЕzЄЁ‡™еюЦИ•vom]NGA:CM;%+,-0”oŸŽ”ЌТРССЛŸЊЉŸ„ТћаЪШЪУТКДЈžЈЉБЗИАЏЋААвЌ‹АЧАЉЃ›БмК}qoxWUaJ.1.(Н‘ЉЦМАЖДМЭЩН—ЄžуўкЮЩЪЪ€&ЫКЁЊЋЎЏЉЋЎЋЇЄЊЉЅ‡uЩчЪЋААНМДМЮЈpVO[@#!ŸeLНЋЉЊВЛЛЂЅЂ‡‚ОьаЧЦЦЮгЮМЛКЖЛБЋЉЃЎЊЗВВЁТюяРЖМНФУОЭаЗЪФФЌL*Щ‡ЊШЁЏЩœДЗЖаФЛВДЪхЕАИСббЦРКЖБДКЛЌЇЈЕНРЗЏ‘›ЛУЛРОКМРЦУУЦТѕл‚b]UEЃРЫМмЫЧУНЛМЛТаД–ЁуўЩМЫЯгЯШТРБžЉЊЎЏЌБЗНРНЖВВБВИНИЛМТЧеЫЫРѓМiMOA3mvБŸИИВДЛИФЦЦЎЎ„‘КмКбгаЭШНТРСЂŒmiwКЏЋВВДžШРЛМКЗБЖИЛНЄейюжƒbC7<59Ѕ–ИЖТЛžпкЛНМРЖЖЗСЇЋТУЭЫЭУОМСмСЗБ–˜”ЁЇАЖИЖгаЮЧФЗ—ВбЫЫЛзцхб‚ZHPQH?ючТŒВЪрўыбОНФРЕЗСЛЦФЩбггЫФШЧФЦЎЏЈФЕЄЈЋЌЛУЩЮеЭгЩЌсхЯжгЯрэОh^VOLJJМд‘ВзкМрЦСЊКТМИˆЪсЯЭЭбдЫФТОНЛЕЖАЖкжЉ—ЂЂЂЏйШЫЛРсћ§чщЮЏЗЪ‰m`9HHCBЛДБЅУИЎЭОЁАœЗ˜—ˆЫЛЛВДкЩЁžТРНОЛНЛМОСТБЄТФС™ЖКИОБкяеКФЋЉЮЧLLB5IIAA€Жxƒ‘pt{mTYvVd||^T\;FaVOVO\k\bi‰iJ8W[W0>JQEtqZ[]TjŠ‹ŠŒ‹ƒЉUhwkuhhq|jdtqZMPO 8}x};.m`1>kGZdS`zqT:ZzN:WPB)dWGM\g‘‘›ƒ‹АŸwPgdgmpmqmno\d7GS@G:b`k{eЁЉ—’„…Œ‘›|wj`jq…z~qY5:EcYbGZ%&HqwccOeL&MO`]zGHWaOwM`^exŒ’ž•™˜˜‹–‰‡jdrr~‹‰{iO‰n( C[2TgkJ>VHPSVMOU\g‚\ 29eƒh`YACb•™‹{ƒ‰‰Тq}•„q‚Š‰ЗЇe{Ši0ETNYktpbQV@#0ML]3<2FFAN[„‰tƒrj[e&)Qog5‚›’v^gacprvhniP[[qii\kjhpo]:Y|JA+SUB05(G+G^qqEN\14>SjdnpŒpH`rbAe‹~‰xu^`jonmpn{khYj^YboŒƒwtpn}Є1NhUVSv5Nx‡iˆ™i(Cik^heZ]xY,PT;F:IeZZcmemmaSMbx`NMMPSwpaO]‡r53,70b}„e]LowV(Qhjtxne@7E0C]N7#>btWSP\\eVSGVSQad\50\t’picmmn,-!?OF)LG;b}ЂaQq}~tg`gzVmiPdTMI0Atcamnmjdhb[YVOWZZ}wzpkW[i‚&%1-FZkPdjS‚E2m‡ƒcnbhqˆnBGL3*:iJ?Lvjnnmg^]]О\^WLL``[wuwji`itp35* 1S^H>GP%!:3nghm[MxSINnFpud;@ji@`p{ji\[c\WW€ POiUprmpqux|j "*( +„OU^Uo2OxqhIMICktxdN„rkTjZacg…paFUHTV[VFZxUd\Y^gq|~r*((-1 *,+CJ(Qoq–zaNŒoF\H@C <–rm^nm]\`gNPi9E>LBBbkqnpeoiqxuqu) J897C}ЅЌЃЖ‰M$-`Mjupmeh^dg[ed]‘}PmZUm{bQYtjmdphjxw)&",!95>0O›ЛjЁЭ]5HZEUYƒxoipxicbq”ˆacaaH+MLdnqc`njmht "&-9.Uƒ#tЌmPv~p"Pc—‚vqu{ujokdЄn3V^cjgrnmmkvbcevgn"&$  %až7k>N7a…-<1gwrjmrnumea”‘>\acZkrrtiidpi[u}{# * ,#7WP(,G]…Ž‘›‰vo{?2kw\gr~w}hciTiˆwuqnrjktzrqo !* )"!!C>594+<>"H0#4$ $*1I0.+YUwˆknW˜Šphv„ŽŠ…‚ƒF &;a4?3()1"(+2%#")&&541(:)883:2;(+(#0A317Lb…œ}}…Ž…ƒ‡‚|{{0&234QoZF!.!$-"#0)88"212:,2?@3.2,(4@+,-.-BLYhЏИŒ”~‘{wwŽJ9.QL0P`4#!€Ї")&0:-I*(;B3:<,%)2;1B;;83J\uN>LB43GrƒŒ–[Ё‹rgbTdeJF>05(#!#.$3)?BA9&*5+9.@#5><;7-?&#.7!1TWUS7FB`~q|ƒ\ŠM4#PB3&*0[V2$B*--),.%B@B,..AF334<8G5-,.787:@@GCI11G>AE-a{„‚›ƒdYpb5EP9*084AIa(#-.;8>>*.1;A:5%?5>??>>AE8@G?2:@>;;MWLQQz`ahYQqœЗЅŽxkF;:<::A7BC?A8*-@9443+(*,0-14@F@0C7;(30?<8089E;BILNFHAAHFF?:‹‚ra^i~gWw…ƒЎ™W2]2E\;$*>;?05I97.5;98F@A41-9+7IGAE?ELMELELCSCJE>eoYZ]di„pzЉŸhh^[w‡NHEJ[>41;@OP<,,2-5?-71)<58I\QIB;@AECFBIJM?H:Ak‡”gL|T:QНЋd\CCEC˜m[hGVZHNFNL1:9>?E<;2+0.+0514E8FEHHIINLLCG5r’kcic]‚‡k„‡zcQi}’ƒc…‹ŠbULAJ0A>JLTI>AI@:795?ACMLLPYL`PMNLCB@nednnijmu„Ÿu‚SbЄqJa’‚‘O@dœЎŽ–Œ[ECJVEFHJH>C>GE3?8BP@FCCJMMGIPGOLL}emtutuwrrmTLdH?<>3>8?OFOTTNL1>>:A4?8HFG,#xvp`]]bTtS^wpJU[oOvwhuooЕЈ‘Pcd’ƒN31*550wddb‚НДƒЂnYWnjdg‚Ќ–—ˆƒž˜woŠvwkrrq|‚PhjWbЂД’oYP`PNLJ@MOB,<;74[AibW{‚‹„hh}jmMˆЯ˜‘…ŽŠ…}haoq{zˆ…puq„ˆrV‡Єwmik~БЅgka|VJaW1?>B‡]zŒ|tƒ‰‚‡`p]\iИжЅ•—’˜˜Žmz‚nox{qnbgjxh`B–З–q~wŠ‘Џ…cCQSI-4-a9)eƒ{krˆ||guhHTLУ„›ЁЄ’ˆƒŠ{}qotYrv‚v\mИЗ}‚•Ї™ЄŸЂ’U00œHrkx˜bH„z‰„‚}žБ}wˆ’ЁЅ’‚ƒƒ~woq~„‡rT`ޒއ‰‡…Ž‘˜ž›ЪЎkh^d[,[Š™ƒЇ‹”Šˆ‚u–…gqЕц•„™ЁЄŸ‹Žvq{…zut~Œ‹Šz~}zr„‰„Ž–ЊЂž•ЪЄbSQM<29@„g|wh„~t…˜ttUbƒЋ‚—Ё›‘Œ~Žzv[FCP‚„vqqtb–‘‡}|t‡ŽЋБОЇtaP>HBMkh~x‡bЉŸƒz…Š…zƒŒmxˆ•ЁЃŸ‰Š‹Љ’{]]`gq|‡…ƒžЁ–›’…n|œ—˜‹ЈДКЁ}\O[\]YУЖŠT{ЊШАŸ‚މz„Š‹•–Ž’ŸЁ••‡——‹t{q‰|ukot‚—Ѕ›™Ѕ›uЕЖ–ЊЉЂБТ™kcdZ\O[‚ŸQ‚œЇ‰ЊˆŒt‡Š„SŠЇ™––Ѕ›–’‘Œzx~wЊœoVkrhnwœ˜‹ƒŽВзцЛС™‚ŒЂuu`CPUQ\…}ur‡|r˜‡bvg}^^Q’„}Ї‰c^{‡Š}‰Œ‡z’˜Œxu”•Žbxz„~ЇШЇ˜~}ЂЅQPLLUVUSџЏQW[a]1QFWbcv}U!1.7-( #>.LoY[G0J \rg)‡- @(@—~SPI?L0S`,;LmBF)?bW:1TjV^\VSej>YZqrxxq7!!45)J@M"1zcdQgc|tˆŒ(7# "o@Q”‚<$9AI8j]P>#-Z]bhGQOSbƒ‡~O8WFY&1aoQWhq?\meewz„{a733+$ "(2 wЗj]nJ)B]SOLBea5QUIF‰?Eiixjm~•-J`p\`Ž~}OB2..€m!%&Yœ‹p~Y(Odtkj`G<% 47mW:)I@BSu]peam{|,44ZmwЂ›`!!$".&$%"$aЇnPueTc[ePPI+Gg\ma`:Ft~k‡rYr[TQ[U]d‚`VVƒ„žžY$"..:.35%&9d›bQUPYcdVpd4&Z]ˆ`^h-&G``SII)pWTTZebSEk{u]VVahP;Zb^g‰…N<  % "›—^i|uinqc~ngUE.TkNM\%5|}i‘ž‰{|eOLOF[Omov\[P-!  %›™EU`d`ecm^]~d{Y[pe;`7?qŒrciaP:JQVOL•`na^0%I*;4"050\}…n9PaeZ#`OWV?cukOP)?OLq^u{zEY`UVA(G›ZopH+&$# 4mpogVUUFNVm‘P1–Ёe:eSMBI[xp{xvdYQ@^UZ\e^8tW3!&10J#$1cwV^ZO^m{Z”ZОu%5J44…cdnqrrinWdehaOIUS\xH" 2,"Œw‚neQ3VrHG&Vx`›’ed1GYtCtQ}Кzp|v~YJaZ\^dgZUe3+* !#"-+d~]\`VapiG>[]LS[aazML1\B-]eZJQ]ZWSBOU\‹…žn?.,& %&\„}ceP`gZO3SiYQ[?mYˆadˆaY^\Ya[OŠZZ\]Y@QgO‚”g3,%! (" :QН…t|OAP]jiLYWbVOLb…wtSYIJH`b]`ZeWJcd`jbrp\a^H>)!""&1%. &[ЌmVwcbPO0GMMVQQJP>9drb1THC[P`WJ`beY[jrtw~^F(&,&!7$-jЌo$+r\((#,PI3q•vHhhPk{e9I`jWgakvЇhOU]Sjuh^qL+3!&E#70v„nL-BMO*EYG!M‡–‚c(YjumeW3\„vP7HEYNZUag`r<3M   "+A(mg‰TTVUM[PaL\3‹zP[?gmdjtH>0:`kQGTYYSLVQ\YT{SA7A# !& ,**&,I?‡rkigSO4:4H@:P‡e[`P@@PSYChhv]Pa\d]VBE^qO^ŽqN1$b]Z[mŒ—gL$% +80,7‰–}po`SHG3EILYjN\ppiST\gYE;bnizEI,?u‚…jd|”[ 50""(#0*1.!&3:qzYT5:UdaOV[PkuZ,OJuTJE[u[@Le^\FMBvo~Œ„vv€IJ#&%"-)*"%F17b{bY4WPUGY[\gkd"(&Wˆg+]Gxbv‚4"QcnrqO?>PiQ;O|‰‡„n7:3-"$!%<<2%bˆ‹J[xFI`bj„gˆqeN&bhW?1$HaqPVm‹ZkA$^x‹œV0N2588.%)38;,!3Fœ—ŽpFF?(PwŠrqk~W]Wd\0:3Pavi^jmjYHY]]|i…aJFSF@?;83#%0->:1$#‰Њ‹’™{cuik}vxˆ‡vŒemOWp;;*Ih]`[a]QMdjkmrpa20:A511{YG1* `ШЈu|z[<{g`gx|Œ{{‚‡~xUodaSEMPMTgU\`jn]uw[b4A&%21W9**(Sua"$% u•”ŠzdP^TVguC9r‰vYrbohIGQ(,AL-4!5)( .H9)!EБЂ{p]<;5UPSEPe`ozwoSaUUjhamF`ƒˆk2Zc{nm  $,AOFCE*L{bZmQIGNH,YT`U  .50,):2už•zMhSSOZ}tIc|pueenVHbmnmkooge\akQCCUV`od"$"# $!%JZЁŸЄu[uAL$1JuUZkrwkcd^UUZQW[ebpd]bcm{…oNMI() "43"C\e‰„oHBSeehreVq„e2Anje\OHbbeeQ;W7 @innd2$$ 2P. #BCTb…bn”n}htv}^ct˜W%CvkzGLSQC@N?ScqJ]aYcB?&$+#  # EB7*0!::3*4$%4MLvЅP[ŠˆƒgH…zePbjq`ЄЂCA5]Z`o…~to;I%)*$?5($&WA$."LVG—\jz~WdgVcUQžМ•bELzu`][;3 ! #)"$"$+B?8B3:2(-MA881FSP]MIdŠpuq&\jdwzm@  -&1+!!%7&%;eEIB5-5#0 "0P1@\vƒkqwB#$%# "€й%!&,-(-(! %VG30))!!)"22;+7573CU<4IQ5*%)(,,)-(*%&#)#(3B355830,$"&)3<4<0!$0,2>;NE>8>8<&((*#!#"*1*-8FF<378,,)(",%%83-+13:0&11H<:%$%+(,,"&""%)03((5@C<@*#* """$%"&,"#7A9* "!$ " !(+%+.&+$*8@A+0*% ! "!955.*$(&*$&4)4%  &$014$22!+-.$+310#,#2..94;;*"*+*"-3-*$)Bd) "&*"%!,3+$"$14?;.4((*.AHL?(,34.94#)-:25,)2&%+:)(!&*!(#.-)4,,29:+1.#*..432A:4@>,#*%"*207 92;<3P0:793.*2%!CC>GI?$,;CG8:%!-(--$#()@CAF>-4-"! $+,7*.1%-29?H@2YIB>;?:FMC<]]OB:;44-1>?8IP2tn‚M"+4("897>8#),314$)(4:7&+((+1"((347""€ [žЄЇАЉxL^މ…oŸЉЉАŒ]9I>;B9::42-37AYH`ЄЄЇ‘˜Šh‚ЁЃœЈЖЏ››ЅЂРЧ~O”žЇЎЧЁЇЂˆŽИЄ‘ƒj|ЈУДp4:2@>>@4%5T?8)aдФЃЁŠz‚ЄБƒ„ŸЗЃ™tБž‰e|W`•ЏЃЗЋЇЃžЋЦШЊ‰—ЁБЛССЂJ+;?<5219IF;3^U[;LŸеЖŸЂЂЊМКаг‚{xrk^PДŸдЩ‹ˆŽ~АЅ˜—ˆŸ›—Ђ—ЅСЩФ‹N0;F<.42?<97TFN%TЏР‡xjzЃЃЏБ’™‰ŽЄЦЮР”„›ec‘žBp…ЂЎ––ЋЖ…]ИЌБЎЕФК‚I7AFE798;5<@E@AU*ˆхВ™Џ‘in”ЁžŸ—mkrŠДгЉ…•ŽЦ‡[…ЎЛДВЎЩсФ‰ЋАЉЉЭРЗiMGC5oгЭЖЦŸ‡ДТЇЈЇrmc‚Вž——tŽЖЉЎЈЌДФУ‰nŠ—БАзп74-?@?CC?>:<9<8B:?заБ›ИЇ˜ЂЇŸ›…ŒЈЅЊЈЋŒ‰ЏМЉЭДЃЖЌŸŸ™ЈЊЗРЃ––НОееv25?CCIB955>;8:>A9FzалЁœ›ŸЄЄЎЎ‡zАШЅ™Ј}kN^uЎИДбОЅЄЋДЏЏЉŸЂ—ДЭСrJ0M9#%>H%*:>28:?)0›ѓх™t–™—žœ„•Ž3AŒВВЅœŒ—œИВЃЖВЌВЏАЏЈЎЇЇЉАЪйЅtC,"$$&-.#:75-9<2"’шטЂ‚‘ЋЊ’•ƒA1|КЌЇЃŸЅЇœc[‰ДЦЦЃЄЇЋЇЄЇŸЃЃЇЦСТ…O&(&*00)-0,")4.+AбрЈЌСЎЎЏВЕЦРЕЁƒu’ЇŸ•ЂkvЗФЖЯнжШЩœ›œŸЃ—›ЋЏАРЇЅiN>-!3.033*,0*19G:;,19B72(5-5)!.ЛЮБr™ŸЖžižœЂЁ„ЈКА™mi’t’ИЄЖИР•››—–—zŽеЯЇЎžu*@:25+&.:0)&$*:I?9›ЗЗЄЂЁЃž”m–МЮ•}дэЋxЉ‰…„”ЇТЖНВЛжЌЂœŸŸ™ЂЋЊ‰БЇe(5;-+341CIa72).CCYЁФœЇЁœžЛЖbqЈкРžдњЛek‹‰rtФЕЏЛЗВОЎЇЄЃЃЁЁ™•—ЂВu572(#-70@@;BAEB>EВФЮЏЈЅЃМ‚`…wЃРЏлйЗЉožЛ‘ИžФїОЕСЗБЉŸ›ЁžЃЃŸœ–P%758-$()4275;??N#C”ОБЉЇЂŸОМ–‹ВЃ’ŸЏЛ‘œœЃБ‰ДЪЏИЅ}ЉЊЄЇЁЂЂЅЄ•ЏЎgS%B:)-.-;@CBB7?n51ВБЄЈЋЊЏЄzV]g{ЇЉЂ–™•‘cY„ЊЊЇЯБЈИxhЄЇЂЃ—ААКЛœ™vAH%73.058OIHMF9J>PАКЇЅЃЄЂЅ{}‹’МЁЎЊЈ›Ѕœjž‡›Є„œЏНЄЁžЋЋЁŠЌУМРЄ”V`YBI;4:9?A@FJN@?JO~ШеЏЈЂЄЪРЎŠ—ž™›ЃЂЉТŸhŽˆ–~ЂЊЅ•ЅЇЅЃœ˜•ŸЋТФйЇ[@@7>;752.3<;G;787<754(-54;G@?B;A>5Mc>7ЇИЭž”œЂЈŸЃžЇЂ„йШœЈ‰ЂЌАЛТ™–~ЌОœ˜˜Їž™”œЂЅЉИ^SV4583234@CG:FNa0SСЛЋЇŸ™›”Ž™™ž‡гЊЄЕЂЁ™ЂЊuŽ˜ЈœŸЄСЃЊŸЇŸ›œЄЉБ}Z<.+37<9177?GBHNWI*{СЯЏЉЃŸМ’Š”Ј›ЉЊДЊАЈЂžЃЉЅŽ‰ЈЖ˜АпУ—}uЃЂŸЂЃЦеŒS77 (-05;-5@4FOSTW8-ДцЫДЕЂЅ‚–’™ЈЇАЏВВЛЄžЉЈЊ‚T‚ЅЕЖЦ—Œ…ƒЏРРЊœАЦb+IC799841;EGIOQO;IOДЧЉ’ЄЂЂЁЃЂЇЎБВЇЌŸ–РЇ–™ЁСЉ‰”ИБЉ‘ˆŠЛЏРФЧСММЎY8@<359<9<0CHFEHLeJI‚УМŸ}—ЇžŸЉЎЋКАЃЃ–˜tСЋЄ›ŸЈЌЎЇŸУМPОЦФЫЏЎ‚pN3521;B@>>:›чуžiŸЈЅЈЅЏАЋgТЯОТžŽpŸВЉ‘‰Ўž˜ЋЌЕЇ[GСШЦУЎ—]N:H@-15><@>@FB@>?I,2ЁаЫЦЧœЋŽ~v…Їž–ƒЖЫнНЦ›‹›АЉЗаž‚OpЈКЗ‰‚cРНатгkkIFPF;9;:7;@FAF?LG?4aеФ{ŒСe|}АдЏŠЅЖДОЩ~w˜ЎЛЮОД’ƒŠЂК›‚”WМРЧШ›.HH5<<59;?GJPIF<>P1-Žга•ЎОŽ–зЌЇУЫЌЯКЌžАЁЛ˜i‰w–ВƘœЛЫžВrЃСЮлО~0B[A:BEEA9?CHIF@?4F:`руЯТдЛ‘˜…›ТНТРВФŸЅЅЋЅz‹›ЋЫЎАВЕВЈ–››ЊВЉМ‘WZ`HEHGFE?;CJFIB>>80@ВђзЮдЦЃМББШСУЯЫЦЛеВЕ—ЄД„‡vЕЁ›ŸЉЉЈЇЃААИВФ}@,27AJOG5O„iVEQ<*,C…јёСУТœ‚РЋЎИСЩЧШТРЦбФУŸЖЋЁž˜œЂЉЃЃЋЈДДЄ‰‡@I<)(7>dE?>EgˆiBQEB,EктдТЩВЉЄЇЌЗДнЩ„{ОТНАБЌЌЇ˜˜mj˜”ЃŸЊЌЂЈКSQN;34I$-9>>2MTA4#8712}РЅЋЄžžЅ–ŒŒ˜СсЭЛЋЎЛЦЖВБДВИЕЌЏЗСТНАЈj›œ‰.*"!*OS:L9>9B+51hглЖШЦЇ—ЁЄЋЌЩРтйКЂЉЄИйЭДЗДЖЎВЌЗЗИЧЗНЪ‘œ™ЁŸ.!&*$(2&*78?A@ELE7ЋцмЌ…ЌЁЄЁУКЈКЛКБЋД‡ЈБЉАЖЖЕИАЈЏЌЅœ›–•ŸЗЌ*23.+)-%*%+4,*431AaƒсхтН˜Д–—tВЃЈАИЛАЊЊЅœŸœЇЋЗДЎЁЈЈЗСбЈŒ…Šb+3,"E30;;0%P…ЃИЭдЎˆ”ЇЈЯКЛЋЎБУЂ}‘ЛБЌЁ•›ŸЉАЋЃŽЄ™`ŒЖЌДЅwŽ++(%>29>`H"2[ZvŒЗ™ЎЯЊЗЏИОЗВЋИйq‘ЧКО…žŸ—žЇ‚™œРЂЈЊБˆ’-,73%&051.QSI>;IAH]PGHM[YTo‹‘ФхЁЮжЩЊ’ЯБЅЂЃЌНЌщцŒ{atЄЌЈЇШШИТFO+&".252B(,N8GA@JGYN;5;F\{`cˆ–ЕЅЂЊ”!("!($&),)$03()08;;:EGMPOLMNN–CFIBCEHLTYQNE<<@A>;;3BBJ@BAHHJOIGCJMQQEFC!%),(!-58>49@CEA?8ABCGJJ€ДG?A?A198??З@HHIHIHA5>?GG??>BJFACEHJFH?98TB#7?9+,307@@GBFFHGC:4AB??9:7CG??GA99Ш;7<9A@:@BBAABFE98>?F>59>@@FEAA>72,158:;?@>:9;9@>>ђ;<941+:0::EEFEE€ЫIHLOGAB@BB`FEIJG@EIIFIF%&:BGACJBB@?BLJNPNMMHBA<34220(239>ECCEB@?ECBGOMJHGIuEGB?CHPVSNeh]bUYWPFHNQMGJJTNOVVTOIGH99::5.455?BEAJLHLYkLЇЕВxFCHJ?13OVUQOQLHFLC@49@B;>;:9A@GLFABBFGC>IJJG5.3€ЉmpnmoI-OcV5jqu‹oMT@JBCB>;-(0ABQGg„nmcY[2P^aoet{nbaihkP%ahptxowZO„j]ZH7Mo‹‚M;>.B7BG7@gL:+]Бn`kTUIcuIH]„\c:OeZ;Q$*b{m”wvopz”{[qq„ƒ‹ŽˆF5;@<85GL\MC.cbd>NЅ}omtoŒ…žSEG54,&I^cЉœ\SQT]O~neZQkhY[rjz›Ѓœ|L8FF?@8EGE;7 [ET$L–•kPMGFiqxrZbabz‹žŒ]Gm0*dj>Lm~bd{Nh‚u{‡‰•”wJ?OIGCC@ILCC19LT*‡Ч}ezY5-OLeYIQV3Wjƒr…~tˆ›—J>GnzƒЗАq::@AJPYIMNJGH>AA9:xЖЁƒhŠtnn€‹ojZUTQukouPYn˜p…wVeext~–rgg•–ЎЎj2:MCNNHУНn~•ƒ||t–zhQFmvj`r?8‰•ЃЎЂ”’rpbhcrd|„‰vw\NH0::94>0@+1-0"21;IЋКQapm{v{tnmzŠex}u`}L5NzЁ–ƒ~~pe``dboYЄŽz‚omJBoLHGP;AIE9*+53%!1q’›ƒJ[n|g.jjtnU|…|WZA.Ud2,9BL>82,4U>:„ˆxkjeab;ix–^IЊДwI{`[Jcpˆ‡’ЇЂzeYhnqjnzpTˆuA$,931*5PGLgA+H17;IxhqejqŠ3@mЈhŸЮ‡41-,7CIIEB7@94AЁŽ—z~gYoO.QBmkАЉ„u@Zm‚W\•ж‡ŒŒ„obhqtmtuqap<FB3+3*9E1378)7V&;‚‘{ukik„ZQUTQxw^h{ƒccu[Z{SЂu~pIuq{qotquj‡‡^Y5J?9-#5CGNE4>Ix85˜xugvzjFI411IkohTcS^,(HkpcŽwnA5epvma…|”˜tjaFN.@73:P>AŽrhe\jmM@N[{hvridgm@n[WkTpq‡kiinukj\S‚›™xkN]kBW5B>A9JPPNN98GJn’Їonmp–‘}VPch`Znoqƒc8dPYONvrkdPghkmbWaqzœ•Д…VJE8;<5(-57-II9E2>uЂ”wjjzppCSixkgiYxu—|w˜pgmztmce—ogookJbqa–ŸnJF<8E0>2549;>BJE;952:pУgtmejJ``hkhhjaTL{}|LgS\jkpmh|t2oenw„„‡œx`CCIF9:7-3>˜”^C\ccYSi\5bŸЏ˜xIhx‡„|mV%%ocAaZh]ghuxw„’WJj- !-)02;1?B>2QZ@3~ƒœk]jkck^ugpHЄŠchVv‚vƒ‡dYMIvƒgbbime`hnntmmeS`<$8B5.0GMB<<;A>CEPTOQH?LMАoaHi`xqahpn}‡pYh\Œk``xŠnO\xkYZS„‚ŒЁŒ–d5B@HGL?F;FHMPGEO]IJzŽ~pThab^eo{u~wSJinV\UAe‡vi^iqtwwh‹Š›žž{…qvP2B>ABHIH>FLA;?5G::}ВБi;axibp|}nk;\Œ„Ž^IA]|uUT|raruq*–——˜|^TEPEE@5F2)œ—‹ŽYnVMCUppcOЉ‚]SStuœaJ&?n~ƒPL,ŠŸЈАЋxnUL`OE9058EME:EAG@MЄI^‰C0?MQrzVrWЁ‰LIa}‡„zbMVo‚aJ`%Œ™œ™}4ST0BBIFC8@LVWV<.:M%"jЄ™d~Š[bЂv{„œxЂ„uimxve4@JA[}~chЁj{JAmŽЄЗ’q>CdVW[WH:@ABWSE<:0G7MЏЊ•ŸŒLW]Im”˜’‚whnjrkGV\txŽzt}}{v\aqmŒ~•zaciWVSTO:3??€ъNOJ?:127ТЉЌƒm„zt™Ž—Ÿ–‡~}bpƒHZBUƒpahqpb`gxz‡ˆЇ}B45)EOWPIqкЛˆ‹gN•wpz‹’Ÿ•’•—ž’o‡ttejbedgtukuxr„‡r|MNF3GINuTJBOk–}?LAL$.~БЗЌŠŠwhpnk‚Ї–NPˆ•Žg‡ƒvg\a;9^\`rpvˆmqŠSIP@:@S<&B?5?&PaQE%*:,[ФУƒpQW]dii`cz}‚ˆŽarkwurkYu‘—|Jjr‹ƒH|1% @*-;GA8?Vh^ZaF"7(#iŒvm`>c`eiIMzЛ›Ѕ‚”‡rxe|bmeŒ’•]xoN>’#.07-7<1SUQ^VYBB8$3hŒwvu^iwk[]Uc‹Џ‹‡mŠ’gz„t{„}c‡„ŒquBmiPY08$%&:2-,YUEPEAL327)SЅЇƒq^iiwz—…ЗЎ„xmpЇ”|z‚|vu„~~‹}zŒ[nZjq<$*&(4.:3,!**ABLIE@TF.‚ЎЌ~Yejgiˆ…Tqˆ…„zeUj{}‚ˆ‰ƒ…‚quze]cc€p‚z;85A7;*?#-2-.<<><+ ,"(42<9I;#)Wp{‹œЂ~M]^qn›{ƒ|t‡ŸP\„ztmcnt|nzrSnN4V{xrH`&%> 1&$3:81NzT88PHer˜tžv‡w„‡|vŒЎn@VŒ‡VjpucdiGgjh‚bkmuwT\>>GB3(-?C8&#YaMG5?;;YSL9@A+4C\]ŠМcqœ—|d‚vem‚„vНЕPH3EmpgzŽ‹„‰Lb4-%$+17C0;F":S:Q8<$;EHI4jO9.*(<]n0ZЏЊtwŠˆhvtcqegРд–Љzb`Š…tnj]V#"+)%2)&0((0$)7?88.15;HFIVFUQFE;*A@2@OeUHSF[rhmiTqŽ•‡H9vr{„‡rS*,5,&58+0*"-49>0@ECE:BA?NHSIa{b\QE:MQM?;3;>*+7?295Q^FUo}–~~|^+05?0.&9*109>*-393?7@?@44C9IkaLJ?C>%?A>BJEJTTJLG9S]aMB\b^:(C854<<€~51++741,74(2239:C;?:&>INIF?CJMML:>7>@CGIAQSTLGGNNLQZdUOOTOF@3?2>+,-$,)1&B?EF2*HFLB@NQFPOFOF@EC>A*&:?;@CC<372-)(%$(,32?87*@HGJ<<;HNOMOPLHA5F>:->4?9;,50CC:@<<>GPII84#++%1<5348"&(4%3#@G845<;<0GB:<@NLNLBA;.3?149?F?CJHTNFM:FF>?#!)2+:,343.+-)1;;B:75;11(AHGENLOYOHNFIG5E;5EI8423[{<+-3:0>944BA4@C9C9NMIJMO@CFHJJTVO5F>CHJGM>@FMJOPMCEFC;JJ2E0HC<&839HCA@HC;FPMH@E;A9?8>;@FJTNOJLCB2A73JC542<>59B2&+MG908;BBAA9<@?NE@>A;??IHH?JCJ?F@(.-(98>8ABFAA8MH9A<28<7ZJYTLOGI?JA7:?<:,F<@5;;FF>I@FBC?B<7;FB294+&%&8EGFAHELHNHEFHI:9`S^T^NP:LU]QU)3<;EFCEBE;?:GEOUSQPFEC874)($,*87FBB:HLF@H.?ENML?A9r[YUU…TJaYYcn`ZMMPHFJIGBIFMFUST[YUMAC?9?<,-1>:8E@4:5:;C@52BMNNI;>>JA:@4;CF:1;џ€Х]!@QHT8nZ?BkY@]]cVUMYTi]bH$B5IMZhLnbU\MWLLaee[T\UMehpqoaZpc?COOS*WU@"8A:GQTaZ;OeJPB-AJ@AWZ(QaSJSU.:AZW\jprc]WTTYhZ^hbeZ];Ohd(eN@$!8SWpieUWdwH(UHQCI93PAVdUFgV‹ŠH180rggebH3WZ5T`S[VVeeineZ]}p`H\ZcpwbgqUj[jnohhrxtVTECCaWVAu^+ OFv][inGjYYN0V*F2,>BFZUM\wtm[YUbqraYUdOLIF^]Paz}w-17M`HW\ZT\WW>:Zezx…tUŠ~B(z‚obBNk1#ZkScTNV]j`hg%NHPYL d|akpo`LOJZV`gjhdhdPEIujbptuUpn:"ZJ@UGBL#-cw`cW[hdb\`waI@(NEGk5dnxŒ{{jzN^`tkjc\iiZkjmcd`aYOYioœzG?%SVTkYcGUi]V]]egGVm‘za`AHV`0Bhik‘qhrveY]GUYWaW]vpjapj[j19F&4ZuT7I\ahue^QWQNP?AE[dTSLLQervokczO…2C CV7@oŒ‚‚~miem]]UPT`[rjwcC9-O#37xWPWMS);j|~wb^pj]c—|mzmb9%:+mTFTYemFU8oqwZW[^jkmnJS(?GLNEc`LC*@NaS^e[L‰„{{[[Y^CZVGcit‹Ђ‘m@?NQnam)(d;JM^ihEz„hu›]gYLAI)kWYu{ƒЅ—}up1:^`cLu……‰•˜E8ILZaN&Y4UdUhmj][:#}~mtn@ICCTQPP48d}WZv‚‡’Љ‰Џc&^b[W^‡ƒ|{q|h\]Zda;Ga>Y^ŽqhpWB!NI‚•vi]Y^UJHPJ?Yibb„–q’žhaP]hZa^]Wt{tobx-$L+S9ajGN\mZ~:h‚w…p\`^ak`PVb`~rjT8Vci‹‡cžvjn^Zokjkov|wuF;(LYV\J%W\Y\}^Febgeo„nndnc|i@FC…u{{uxb^Z[9hЈ|qoiFBo’‹gSwQ5[–”‘Ђ›’žЊЌЈЃ™Žwojr|xzvih[Ndib\dQO{„‘z|hhjogWS{i{zoe5h‘e\uZY™ЅŠ•›ЃЈЁ˜Ÿ—ŽŠ‡{ƒ‹’ƒ‰…‚„…ZTcVmjd^#8FmkmorvvtmogirijZINcbtbMQЊВ–••„’˜ŽŒ„}ua‡ЛЉˆŠ™ˆwOpЂ›зМŒƒ—Љ›Ž’›‘•К•Œ…rwz‚wpv‚-&#)TNQ]:;wwI8ON@.>3>* )3T]0*,4@042>EOB4?2$&<>;.*AHC?B0(!$,>,4*404#02%,&.83IEH--#+7<>,,$"&)$1828*#*-4;E511*8>,:-$9A@># *1).%#!,$&52&57+,*,98:2)*.+:3>A;0+ &,@:++*+-)$,30.&4&(21+.(#(108@?2",C ##Ј(4<:;?:02*.(%5>412#(#+(74457:;8+""&4($"9:)!#88b[9(%#!37>3(8715>B<#&4-+"1,€л$3?;-8.180%"-&".0**&+-"A+$%.0?780-?G)4EEB*%.*0&(-*04()$%!1-;>4>>4-1@;;A8%!"$.-3<3$88-:7;7.03%19?8(+:4,,2;0*-)(3585);7-2+)173897>)29.!%!""2+%(-#"":5984(*.()&%&"#"Z>$)^jC31+"ыЊrˆ‚VŒЂx‹МЇ‹ŒАЊ•žœž€…ЇЃЂЉ’’ƒ””ЇЦЧЈ‘ДЁ’ЊЂžЅЊЏЎЎЊЁЂŸЇЋИЗЗАЇЌЋЊx•’ЁЄ–Ѕ‘Š…‚‹i•ЃЇЅЁБ‘eŒx‹’–•‘ЁœŸ™—›Ž”™œЅЈВМИБЉЅŸЃЄžЋЎЋЊЊАЇ|—ЏЊnБ™C\Š‚ŒœЃЛЏЌЈЃЅОhŒ›’——€ž•ŸŸЁ}‰~ŽЂУЕЎЉЏВЛЛЕЏЏБЋЊЈЈБААИКДžКЋЋMwЏЅuдЪcx‡ˆНЌЇЋЋ{—˜”ЈŸЄЄЁЃЎЉЄ”VŸЯБЉЇЃЋДЛЕАЏЌДЉЌЎИЖБАЛРМНЅ–ƒ7КŸ›‘МД‚bg”МЉЌЎМ‹ЃЂœ‘›‘Ђ‘ƒ|‡}›™‹œМКБЊЁЇЌЕИЕЋАЊЂ˜‹ЅА•ЄРФУЦˆ}Iv‹Ё–ŸŽ™ОЕŽŠЄТОЏВЗВЉЁЂŸЃЁ–‡\‡™ЃЋЈЋЏЎЈЋАЎАЈЉВЧœw”—™ЅŸСФООМ™VtАЎЎЊЌ‚ˆžЂ˜‡ЕЂУЛЛИЖВЏБЏЋЕТЌЌ••ŸЄД˜ŒААДЗИАЈЇЏАЊЁЇИжБœЂЃЁŸЏЗООНК›„œЩЇqЏУББЫЊ]™h•ЭЗЗБАЏВЗВЌДНk’•Ž”ž•ККВЕЛДЋЃЂЉЉЅŸŸЊЌЉЄЊЂž…ЈЌДМЗД–ЪаˆjБЪЉЈЉžЖw|ОхАВЅЄЃЈЏЋЈЁЖw–•’–•hYŸТЇАИКЋ‘™™€ЎЄЌВЕАЌЅœ–ŽСБВЕКЗЉЗЎ‚eЁžj’ЉŸžtr‹ЕУЊŸЅЇЉЎЃЁŸМЁ‘ŽЁ˜Љ…ЊЕТлТЪБЗЅЂЎЏБАББЎЎЈЎЉВЎБАЌ”ЃЊЎйЪœ‹–Ђ˜ЄЗЇЊ—ЂЉЎЎЏАЌЄЅЂЇЎФСБ›Ё›Ÿ›™nŠЉЇЊбАЌЌЋЎЎЂЇŸЅЋЉЃЋЩЖЏДАЕЊДz9Qz{ZvibˆЈМбЌ|œЃЎАЏБЌЇЁЃ”„‡‹ŸŸЂŸ’…|ЄЅz…ЋЇЈЏДИЖЁЄЁЅЊЁЄуОЛКВИЗ”iT|ЗЦ‘zЇаЮМлЧ›ŸЅЎЏЌЎЄЂЄЋВЇЅЂЉЄЇЖ™pŽЕЂ›ЂЎЊЌЃЖЪШКЁ{ЊБЏ‰žЄЛЛКЖЛЗЁбœˆ4iЁЊ„ЌЩЦЦУДЊБВАЉЉЄЁЇИИЕУЋ•‚Žzpi{ВЂЁЁŽžtƒЎЦШлНЊЊЎЎЉДжЖЕНЕЖЌ|ƒ|b…ŠОЉЂЈБВ”ЅЌИРŸžЁЋЏАВЎЃЅwg‡…‘Ÿ‚——ŸАЌ•‹—ЌЪбЎЅВЅЂŒЄЏ˜™ЅОгД‡]Џ‡L—гЦŒŽ™Ђœ…’zЅЯЖ‰xЕзЖЕМУŒˆ„ЋЄ”ˆ‰•›А–™ЂЎ•ШаЩЦФЈЃЊЅЉžŸ‹ВЖРЮхчУˆŒЃžВЂДdjYbM„Ћœ•ŽЏЊbМЧЛКуцРЈЁŸ›‰–b4uЗЇ™КТФчнФМНЛwЄЄЇЃ’МШЮЫебдт‹”–ЁЕž7pn”‹›ЌЂЌЈЏЅŸŒtТЪКЕȘ‘‰Ѓ›––Ё‰ŠЊШžŸКЗСЩЯЭФцЉwЉЉЃЅЫЮУСШУТАЁžЃЂЉг•{™Ї”žЁеЖЏЌЄxd’}НЮОЕЂЄЃœ——‹‘Š›БКЊАЧЭеИЩСЃЅ—ЊДДЌЊЋЈИТСРМУРx`e‘ˆ‘oŽЌА•–БЭБЕаР>0~ЂЮЯУШИЄЊЊ€АЋ‘ЈЊРИЎ™„ЋДбЧЋхФОДБВВДАБМРТОНМ~c~ŠFcžЅЄœhŸЕЋЊОЃ„žЈЉБЖСДБИВДгЭЎ‰’‘НМЫњЏ•™žКЋx…аЧФЛБАЗБЎЉЈЪЧЦИЛЉ‹‡…ЇЩУ–ЉРЃВЏЖЌБЫЂvЛЁЄАНУРОЕЏЌ„\[˜zUgŠВНЎЖЗЗмаЉЏОНСТСОДБЊЊЖММ€НЛЖj”’nvw„ЊВВЇЌВЌАЖЧ„ЋЏЖЛФТООЎƒЃЕЎ–””ƒЭйМОРЪпїяеОНМЛУТОБЋЎАЕЖДБАЛb—ТбЯЧЋŒžЈЉЇЈБЉЏЌЖККЛЕФЩЭСРМИкШ—œЂ”ntяяОЊЅЕШђцНЌлБ‘ТдРЗЕВМНЕЊЇЌМu‡Ѓœ…›‚ЗМйЦВЄЇБМНШ”žЎЯдУЛРЈЗВnЁ˜›…™ЃНВŸЇЖяђмЫЦЌ‚‰ЛКИМИММЗЉЄЈЎБИ‰‘…‹˜œЭЅVЭсzpЏ’ЗСгУŽ”ЏЛзпушЩК™ƒЦž™˜ЄнЭЮдТСщцнЫ~ЊЛžЖНУЛКДЊЋКБЗŽ}˜ЫЏВ”uvЉ›ЇБбНЭлбЖŠ–…ЂЮцерЧЊYTŠ™™–‚—ОєўѓУ˜ЭЫЯнЕ›НЭЌРСЦУОИЖММТЦboЉбЧœ‹‹t–}УЪББ’‘›Ÿ‡ŽФЫжппЎ™В›ŽЁŸ”ЇВЈ›ЄВЖНЭЩВКЗŸЕНЭЦШФРОРРС5 ZМД›˜™–•”ЃЌуљК˜žŸœЄТБЧЫЉŸ›ŸŸ|’–ЂЩНДАЕВДЊЎЗТОМКЌЎЈШЖЎЌЖБИЗТОoˆqw”Œ—˜žЋКЁЄУБŸЉЈЋЃЈЇЅЋЛР—{o{q‡ur•КББДДЗЏЊЌКОРТЦЛУЋЇЇЊЊЉЉЂКлЧ[›G?p~–ЉЇЊАБААЎ›ŸЌЉЃЛйКЈСЦН…q{ЖСУЧФ›ЌЋАБВАВЕРэжЭЭнЖŸЂЅ™ЫНzЎрЭФ›ppЏx…ЉЏЋЌЈЉЃЄЊЅДЩШРЖДа–…МФЯЉЁ™uŠ—ИЯЋБФзЭЮЭЪЧУД–ЄЅЎМмАB’ЩИŸЎЮЃmŒ˜ЇЎЈЊЂЁЁžЂŸЅВЛЧЦЦЛЖЕЖКЈдЄiƒŠ•ЧСяўћТВЪЯгжгЫЧгЭР•k–ЧБ›)ДчбНЏЩvU—Є›ŸžЂžЂrc’˜—œЂНЗМНММКСНБ’‹Ї˜ББ‹ыњтЋШЮждгЭЧСТЏЋЃЊЃЈРoЩхЕБлЃF‰У’œ’–™Ё—S‹Е˜’ЁЋЋЗННИИКРЯŸˆЉЄ}dVxУѓяшйЭгжлеЭЧННКЗЗКЗВУжŠбсЗЏБЈnrЎЂ˜Ÿ”ЁФИ‰ЕрНЕС‘ЄЕМТОЖЎЏВШИЁТМЭЕœЦЫТЯазеЯааггЯЭЧЦФФТТМФСККНЗʎ˜n•›™––МЂЂДеЫСЭЧw™ЕгЕВАЎЄТюўЦМЭŽ~m•АМяёљљјдЯтЛенКДУУРлЭЯУСИЕКЗБЧЛ‚ЂЂЇŒnДŸНШУЧЦЫУАž‘БЛНЖЕ—ЌЊ›–‰Ÿgj\oŠžхўўяњўћєптхЏžК”…згЪЪССНЛМ`‚Ыг‰ЧсЄ‘ФжЁŒВМЛЖДЉЋЏКИЖЏЎВЕЛЛСЉ™Ѕ•vЉжЯЎСЖСзцзРлСЄžЊ‰ЂмыЪУУЪЦТИ‚Cr™–БЧ‰АЖЖЌЏБЖИМЕИШрЏЖЇЋЉЏИКВЗ’˜РЪєуЧЩЦТаЯЯЪОжМНЯУo‹ЩуЛŸКбдКИ›’ŠЇ˜Є›ЌФСРИМЛРМИКЛСЦСЩИАЌЎЌЊЂЮЂЂУЃЂ•УОЦОйзбдРзЯШШЦЫТзнМЎm•—ЂМ”ŽxŸЁŸˆЇЫУФМЕИУФ͘’ЄБДЭдеДЌЉЃЃœ—ŽgК늘ЕЛВžТмкзджешгЏАзсѕщОД‡žЫТННЇЅœ–ЅЌББММОАВКФпЪЇ”ŽЖдзТЊДЕЉt‹››Œ…УЯађнЫЄЌрзмгегна•”ЎНжУЄŽБЎЭйУЈ–ˆЛЅЊБœСВДЗИЖМФФЉˆv‚{РЪШТНгЕЅЃЋЏБ’ЖИЌжЯауЭЧаЯежйбе„ЏОЪМЄ›ЗОСЦУРj‡‰Ї—Ѓ™ƒЈЉЎАЗНОЗœ™‘Ћ›УшпЪЫЦЕЌМДЎ’ЂžАœЛТТЩазкйдлнйЪйЧЮМККАДОО€•ИКЃ‡ŸœаŽ~Œ‘НКДИТУБž’ЃЃ}ЎсРСЗАЏрйЎ™ЖЂq›традкртрнрмппШЦУРНОУЧЧТННК–e^ЋЗЎЄЊŒŠРЩЫКЗЗЏАЏЎЃžСОЛРДЉЌбрВЂЧŸM˜тшжгйклзмкздгЩЫЧдблЫЩаШФЪ寘ЂЃЎЏЊЏ„r„ЄРЖКЗЕИИ€ЛДИООРМЭЁžЏЏЛЂ—U‹яњсннмджагййгЯЮКŸЦљёбЧацаФ—ЄОЦ”xЅДn|ЎЦЗМКРУТРЛНФлЫШУСЇŒ™žЅЋ…Д…‘юѕуцмеззжбйлжЫк@‡чўЖЇЮешИJ>uЏgkЫп”›ИУДБАЄОлКЖОШщюпЈˆЏЁЁЌЌЇзЧУчњшрмгдзежзлеЧчБSЋсьФЖ™РаАzx’ВРƒc’˜‹ЅЎМЉДۘЅЏ™ŠЎЈЯмЧЎБВЎ—ЂЧ’oŒŸаётмгЮеггбеЯаЧнЅ˜˜РдтЄЎВМE1SSFNMGMVe}[?`ŒhQ…’‰…”—˜‹ŠŠЇИТ•p\tЎтЪењѓЦНбхеггж€"пїддЫЖЗСТНЕККPGIHHEOQi]dkQW——iMkr\4BSNU?2AUmtMMCZpQ`‚•uЇагеМЛССгЫщзКТЋ”ЅлжЧШАCC?C@FEBG4EO`}ВЕ|`SgwFSUTLNLOCgqTZ\SPF4PIdTTS[‡c{ЎЫЏž~EC?A@AC?GHI,*:HLU^81LHLSNIEIG?HJIOOJGBHJHM]`]P95cQMA?FHF5@?FCIENGCEIIЛQUMGEFEJNMMOMIE:ANLJMQUEN?BBAJLOJPNMNLQNN7@GHMF??>??AIHIGLJQIICBEE€ЭNPJNONGGEFPUVU]WMGHGFFLPQUYVQJMIFC3@84:>:HSTPOMGNICB@GNNJA@CCBJGJIBFMPSNMPSUUQPOGG@CBEJOWTJHH@9>BCEH~pT720@FIG@EJIIHQQMEFIIGAA?;@A?>@ELHBB8AHMJJ€ЉLJIHHC@ABGEGECCGGJA`E?OAHGCJJCHMIOOQQLIHJLBEGCEGCGCC?JJFFCGSTPHHIINSPF?91;5B;?BIFFB00>EGGFEFCB>BBLLMHFBCMOBAECBAFFH<:HLIMJIGCEECEFGQQMGBUSŠG1C;54.37<@C:>CHBFEGGMIF:48B??и<@FBA;35rƒLJLE!;3€пmFP^%U[?UwiWZ…uYrhqghhij{np`;PPU[p‘q`‚oWodeagqv{ijroiwƒˆƒ}rtrPVbdhPj]YHQOOW7ZgnqmYbwZ8a^@QYWYib]ipaahc;U[rkq{ƒ‰wpkibnum|{urjjIdvvuu‚tuGI^cd^hŠˆ{~‡x~|xp{ˆgqZaduzePxp„„‚|miz~jp{Ё|bjkjbx‘’…bSip5ƒ‚}zž{)mBbI],Tt|Wat˜…uЃŒ Gz—™›œ…owtp|u^dtwЇ}eSdxЂ™tМŠˆ„xt„~‰ˆ”Ђ‹Q7PJ,bhgo[:hvpo‰oUvm~wŠœ„|zЂ’wS]b‰Ёт}ejx‘‡GZЃ™’ˆ}}z~putž—Ћ‹}z`OOp‘gr…q{tƒuznE‡go‚‡”‰}Š}oG0c@#.UŽr‚{~ЎЂ|zŠŽ’Ёwr~ŒŒ—{‡?Z`@A8[N~Œqm|„‡–ЏUx~t‚˜ŽƒJqzwZWTM`””…Ž’РЯМЎ‹{…‘”ƒxmq}}€.…Š*qƒ—‘Œn[]o{hw}{k‡ˆ„„˜Ё˜‰…‹‹Є‘b`eS:Iжбvp‡ŸеН”Ћ~`•Ї…‡‹–’~ww‚~>UnWEaF‡iЂ–‚`mv}‚…’WpuЉВ‰‚{~z;gcUQkt‰~em|злǘœ{EVˆ‰‚„‚‰‚umv{‡OSMYgb‘i#•ЗOB]{‘™ˆLdzˆЅЌАЛ–‡eM‹nch`qЅ›™›‹УЖВЁWOqˆi•™‹‰zw|މˆZNc—m`r[@:p[rƒ”ƒЁЇ˜NdVoŸЛЄЎŽw0#P^^jQn‰шћЪžnЂ–—М‰i›|Ђ‹ˆŠ‰…‘–4AuŠ^QUUWUQnUžŸ{U^^iPd‹’ЇЋЊvag`ihLWmƒqoYq‚ŽЄƒƒ{rŠ„•œŽ…Š”‹0ƒzgd^[ZZimxВз‚imddjkqˆxxnb~zNaWh‡ˆ‚Š}{‚Ž—‚„dq”}rwˆhƒ’—A]9<\S]ccav|‡tz”|oveokumo‡ŠiC@JF[A;aqz|‰}…}Œ”’‹ƒrjru{wxmŠЏ!b9QIgtwvxzˆ‰jnuqiˆЄŠn‹–ƒVG9|ƒ‹‹‰j~xpwxt…ŒЖЅŒžД„bk\eЂŽVOtД’ЇcAAzZ2IYJj}ƒq}zw^cbqoŸžŽ‡‚Ё`PƒŒ•}cb;U]}œv{–А’›Ÿ’›—ƒ`zq‚’Ѓˆb’Šhc‹j:UpJnxtognmneaci‚z˜›’‰~}‹m–z?STZ‘‰Эја’{œ˜ЂЇ—•œ’‚g@k™ut „Л˜ƒuB,nidordooC3[`cdnˆ}Љ~tƒ‡q^IhmGxwTgЯхС|ŠЊЎБЊ‘ЇpwpurZtGА~u™oQ‰UhcVdjk,Z{j\qtjw|‚ƒ‚~…ŸhO}jI+"?ŒЮгЕЈŸЌЋЌЄЂ™•‘”ˆ‚…ˆ•Џ`МЗ‡rtq<>t`h^beŠ~V{ЈŠ{Œemz…”~vƒ’i~˜ƒeŽ”‘ЋЊЋЂЎЃЅЃŸЄ–Œ—™‰’‘ƒ~ž˜Š–|b[g8ech\h—kqzЄ–‘ЈžBeБ–~vqo—Оћ‚–\QEe|ŒЭУщтыœЉЛŒЂЋ…~”‰‹Ќ‘Ё‰…ƒ‹…|™LmekT<}m—›™‹„’trU‰„‹‚budOa873.2E47Pd|Q7W„\Gr{uidvr^gŒЉƒI7N„З™АёеЄ–ЌЩАžЅЏЉЊЗдЋЄœˆŒ‰•‹Œ—ŒO>B99EEHiceuEW”‘cJ`[W#@SPO<.4E`nAA@JY?T~Œq–ЫЯЭЄ–žЕБйИ˜vjvВЂ›Є…4:;8@08FO3CVO{НВp^S\nCPUNLHCI9ZdF<9040;SQ?VaVO5"HSgWNHGn|VrЅИw[0?3>C><1>5:FJCHHGESQNbg\\+$iQL:G`QudTS^iaW[CE98-<:EIF>LI`SWNI?@G;MLGEIBL?EG`VaHmM>GHHIIGUWT^QM;PVF0?@<<:>AEBBFJFIW\TICAINQQI?:.E:@JMCAMEG@GLCWYQW>AC@@CNLQWHSPPвZM>9132<>LMM>IBGGINFHOFPNNMNE@EOPHINLF:CIIPLCAJEBHIBJ@G>CLMLMJPLUW[bWIGJCFOLST]WLIA-??HGHH>;.8>;;ECIFM9:FHOOUSVH@FEBLLHTSQ:@;@75>?@GFFBACHOOUOVLQPFHAHB>GCGENGSOEaC:ANAAUOO?MYTSQWWTFCJEGE?>@5FC?8A+MHPJTTVQMCOTSQVOMG.09GGFI;SPG$:HJIHBNLJOBFGSNQPFGNNGFAIHF;>>BHJ:FGTONFNFEHNIIOVHOL^L‡•E:FA@9C32EA83@MIMHIGTJNGCE;AE:BHBGLEAGNPIHGCOELABAEGC(BkPOLI48z‰TIEG.>+џЙm‹‹””tgirda`Z‰~АЅ•”}`, %"#-?jEE;Mk<#4&gaVPHI~‘‰q{{юqW[]i‡‚–МЦT (H"ƒ  +NJ,5HHEV;4")TBF>@m}”Œ‰zjoqeaebkЈУѓкw2)9I+ %* 9U209-:OA`I281jm`M[anum‚‰‰gnhpjYSkqЅБˆœ˜›\*%)Ѕ $(F4PY>NG8%ArN"$SSUeIw{Œœ–phxron„ЄЖИŽŠЂЦЕ`+  &%IzQ,C4JIP7€l1BY”{pon{Œ‡ƒagcg\9?aƒ‘Ёƒg‡‹4 )" (O„Q#G9TEbJ )2&nž–ƒtƒЇ{Gxœ`H\Pn”…ƒР`1$ "  @J,NM`Z^G,>JCNC^…ƒtkwЌ–WowptqdhЃмУwˆ{>.  IP\`UMEYŒjPZbF?9\iS{x{~Š„}cvpz~q\Š„гЎЖлŽw. & 0^u;ЁmVSvŒН‚^-&.)9Zcu{‘žŽŠzohtzpF[w{˜˜ЉŸЗЏh"3#-5.  hЊUpp2@BŒ›c&"EC@2PI[QQ{–„|vuvrmtijŽ|ˆОЗžЅ–]2 );.4 „ gwV^‘eaIQ|Ў~L*?>MMN^kbƒ›˜zjrirz~cqu‚ŽžЊрьŸ1!2 0   NbTrwJ;?!^Š[>AI4-MiƒtWvОШ”mxz‚Š|vhmw’ЋНЎЈЋŽC0*   Ц0idaa:WH$GQVY;@4 )FrcjYb‹Žxettkkr}‡uwЊСЄБЦЫŽE))ѓ -9iW]]€wQE(Hnr<-MAB+ƒr|‚p|;Y›Ÿ‚ЅаЅƒС :e‰…iaUOczg\oU3*v~\ЖбР—Lt„v{…Ђ›q]kƒВЫЧp% €Р ;–”tiiMH[V\T`UOCNvYŠ”tƒ}‚‰‚‚|okGBYcooQexŽЎŒC1"  0‘О™SSJCEJQhig.3•БwqpˆƒŽ‰‡…‡‚ŠY]tcpibju…Ђ‡‰4.  ,5Y‰xWkcYTF^I)AFd˜мМŒ~‹•…Œw}‹{‡ˆOTdtm\ptƒ~–V$+   љ,\›xbb€жN@IWUƒk3>9t|}|‡u‹„qxoqqa>GWpgZGp\w„˜—q8    !#.&H‚…{ohe LFqЛo2PSuqx|zuŒ›Šxpqgo‡gb|‰‡^`—œЂБ˜ŒB   * 2w…pi}Fh>Uƒ—tAPbwkxŒ‰Ž„nzt|ir^r|tqotN}Š—Е’gcQ8  cВž~piL[HYnxN:p‡eŸЉŒ‡ƒ|wu||€˜memku~}Œ’ЁŠ}˜O ?kЎ‹\xc\\OabWW^Z[G{Н‚\rzko~}mgjmc–‹‚kqŒ…‡ЁxŽE>A )(1$IASm–omULjVT[SagkrwЏorxu{znj`i~hxŽwhuŠk{—ЈpZ>7"% PhbY„vp`GEair[gzƒ•v‚{v{qcozpn]u}xv‡||ŠuimƒŠi   :j„‰|dTiTGjmaŽˆdhnhmz””„xzˆtekt~ƒ‡…vƒcdx„}|p,.$"  )U‚YA]|ddYcU^дЫmeo{‡ˆ–ˆŒ˜Šƒ~hr^okxoihb\|›…t9$)%   5o[JCŒqvzi]Ja‘Vwprz‡”›ŽƒYngckqhpitv‚„}xƒpwY#$    i‰ž}rŠК˜rBY>barqvqw‘‘Œ——‰chbYa[nr|~ˆ…vv}v^pM#+  "#`u{tvmcHNTOUqqz|zw’‘kSejbd^Zguv‚’„‹prtrh|O2-" !Tt~xzŠBce^Yq|}x|u…”РžzxzrxZQMqpZgkqo‡|m‰aP%  (% ŒЛŠp{rw‚}PTOir)‡‡|‹ˆŒŠP]vntePP^erkrzn`p|kmˆ0 $(%):}‘gM‡qe`]bSt‰\qpp‚Œ~vrnuxvaaq{cxvwrhrž‰`|•P;&( % BO5‰t9p”ƒtdem`z„gmq~‡{Ž…~„vrh]gZ9@GFMQNO#25*!3VadCZPV9L]*# #3`5e’vUk[biub^h+#*AECA?BBC0"!)FMGZU\STZIB*   3!B;CYjt^OŽ}41.3-%)533BAIJCCE?EBFHH€C3:2&075 #"  (MA2$"PZ-)(9:$19:GNL>@++.".48NF9?4<9-"  !9&*$"3-?@JQH@8)-+$&( :   ,?7:8@BC.(%-C?@>8HFEAEE>`SOFAB;EF@4:Ng9   " (1*",7 !*&&9@<7YA-.1(B3BB>A?G>^F Д!%%#$59,494:3!((- !+28BNMA@Y>!..  &*-+,"€eЗдЩЯЭАЊКВБЋЅЉШШннЮйУ…7;4(4,-%&415:<@H?<`ugv›З‘Qk™–žЗwqtdŒДКЇЅЂШмдаНСРИБДЈЄЏДОгыўп$.CBa™—|Ѕ•c—Ћ˜‘{Bw||mc„ЁЂ™‹ˆЕЮЭагСКЖЖЗЎЅЅЌШнюўўž@>ZWE&%*-172+.-9?I>J}‚…ŠŽŒŒ—ŸИЂzƒqБДРЌЉЗДННЫЭжБЏЏААЌŸАЌнлЛЦЫЧt;2.244212<9>8>?VwqдЂuˆŽ}‘žАˆ[920,-8<0>488ТU]ZnЃе›CdŒ’›Єt[px…‹ŽЕДВДЗТЩЪШОБЏЇЅЂЏЗЮЪШЗЭЖ`$9:752)77:77588€f[Oq˜ЃИЅhMЅО–ž›iGWT{~‹Љ›ЏДаЪЪЦЗВАДРЕЅŽ’АгУЩтђЧY3@@99238@aœЁ”ОЛ^[ЌИ˜˜ЕЊqOL|ЈЊ›™ЖЈЦЭЦСРКАЯнзФЊАЪМУШзк|8:V9119;:>73.9@?2>MS™ЉЅ‚[xЈАŸ›Ў‹dЉЈ|”Ћ—ЖРмжЧЦШФЗу§ДЇВЁБСУШЦТСw>7391099>@;><58;493:;;9…•˜œ@:ŽЉЏЇ™‰{”’ƒjZžЅЉФУРМТрЯЖВЎЉЊžЊкўщМаНЋP4<@:9,08993.24;9;?;n˜ЎЎ™S––˜ЩаЋ˜ЇА™”ŠЉМ™СУЧЦЦТУТЌЕОНЕБЌЯЪїчьњЧАN$:FCGF8,7,:51+3:5)LPЉР’йД”АТєУЋ~i„r‘–АЗОнЯабУКИКЗЎБЂЗКЩйеЩччŠ4H3-33+0.39.2>ЅЩžЇЭЋ–ŠžФѓЫŒ}‘ŽЄ”ЋВЊШцЩУСИМЖЛФЪННДДНейтўўЯE3G:<7(J778743385?88{ЎЅБЦ‘~…pЄаЎ„ˆ‘oxr•БЮМЈМєљгЕКЕЕЛРММ€‘РЩчїцЮуТY>4(192:048;594430*:UЊЋЉБƒЂЂmŒ–žЊŽ‰}Uu–ЖЏЗЂЌггРЎКВБЖЛУЫЫДВш§туўљЃN;>?<97,558,3..7:CP^МКЅЇЄ™ЃŠ•ž›’ˆ…`e}ŸТМЖВдНЗЛНВБЎ™ЦЩЧЧФрШбеЯШЩg@,@G:1-0)70)-13@82BЧŸДЖЋЛ—™˜—’’ž—ЖСНЗБД”ЕйюРЕФРЧТЪЮеабагаЖr88>><>02275>3@<<;2*iЖВаЏ•‘”˜–™™•™’‹˜™ЉКРУФУЎзјьЧЋОЦЦЩТОВэђхтФдь|2%!58:4;1378@F>@B;0I˜ŽАБЋ™”’—”’›…ˆwx’‡МСФЩжТ”ЌЧКСТФЦЧОˆŽрїрнхўў]C743F@7;(9740.*-A;BAC@.1дЯКА™Ї…{™ЫФ}‡”’”{ИОТООЧƒƒФЮЕВЕЖФШЩИржездЛхйcPE;:@>443-A8<8:.2?A@51-77EO”сЦВЉЎЂ|zЂŸЯК}‹НФЪФРЧЩЭООККЛКЋ‹‡•БКЌ‰ЋЅФЪйеF+.::8179:A:5<8N4;NuакИДКЊg’ЃЧўЗb™ИМССФЩЯдЮУНИИМЫЈЉШЮЫДЋлнйьугŸU8.:4518978:>A@GE87UЕНЛЖШЩ™К…™ЫлЇ…›ИЗНМУЫЫЩЦИНМСЗЛЛТТММЕ™Тбжэн™–hN2,;<;;17:4C?9;BA@WЂчЮЄИАЇЁЄЊЈЄЄЇЈЎŒЕюжОЁОРОЛНТСЗДДБубЦЛКФЦЭхЭеt9Z\*9B@<13;;<7EFMJWo‰™ЈЯЖЌЁœ›ЄЂЄЎАВЎОТђЖЈМСМОМКЏВЛКВЮаЪМЛБИНЪрьЊkbVB;8C:;::>@<@B54?vБЂЅБАИЄ™ЂЖФРŸРКМаУРЛМОНММИЖЏЗОЦЦЫЫЭЩЦЛЕОТаУ’*0(.77849:;7953;:;cЎБЧЎЌЁЏЇЅВЖКдкКИЛМВЩгжбЩШЯЛДЗРУЧЭЮЩЩМКЖОУУФЎHJFG;;8>B?:899:8;>œШйМКЩыбИЁ˜ЕБОЛЛОЦЮджзпсЯКАДЖЕЛМСЧЮЯЮСМНЖŸН…8@HCIBHOJ^ТаЇ•ЮНИАЌЋЃЛЯЗИЗФЦЦФЧЭШТКМОКДБСУЏИККИДДпЯЅЫеuN??>>;7>9@+2WoYТТ~ЋкРМЗБЎЋЧУВИУУЧЫЩЧЫЪШФОКЗЏА™ЫэШОЛЦЫУњшФздZ58AFB?@@??8??EHJLWE˜Н‘ЃОНЕЖЇЇœЊР}ЎШОЭЮЫЪУЪЮШЮЗАЏЏНЫчЮЪЩЩЫдждФгЎUE9>G?:4;:>>1>CBE74>‚шжЮЪРЏМЄ‰Ž›ЖžБУРТзыЪФННТЦЅЃŸžŒМеЭЯгбейкебрМ‘o`ZPB;7A@>>:8;@EN88>IFJcg˜УЇЈСншсД‘ŸИЦЛБЎАЩУШЯЮФОТМ•ЁБазбб€)шЯЦНЩЦКОЄNHEA737:37;77>9+8I7~ЯЛЄŠЉТУзЕ•—ŽБИЖМИЖЛКООИЛФеЉЃ~БЮЏРФШЩЗсшэбИЋP14875C:;84859>*,8{ЧЯЕАЖЛНФбЃЇЄbЁшззЫДаСНрУТжОЫНЁЅЋŸУлждаднюгСЫp&29?;?B824;IEMTTSWWVPWLOILCZNLP^^UTQOLJFA?4N)%0($0#"$..13ALSYUZZYZFIF@@?HPSTNIJhV0-FB,&(("#"!&&%**28>?EFGFA@FJ€ „АЉБЋ‹z„…}xvh˜‹НМЅА”t3@",$*#-#)758;422&Nc^cQU‚˜ЏЂЋ‘ˆ~Ž{pvuzЂРрўцƒBGZcC(!8*#$+(4?.#1S^HELPJ\bczdGIH@3&(!12!45:->9BF[,?tgHT]TNOZ7#JViimz]‘‹˜ЅЋА‚|ŠŽ}}žЫЯЫœ™НзНp%2G<8.(<23&)(.32!1>N>[Œh7PPFbbcS#!7T[qЊ–‡„ˆ•—œ˜t}}roVZ}˜ЇЖ˜v—ЂE(3@8&)2,.24"!>@.5a›a:ZYcWjPA-9HSS[v}xƒ‚‹Ђ„wou^|Š™Ђ›ЅŸ\&-8B72025003-.)50OFCakth<g‚d]gb30*FSVqcpvЈ•ЃŠ~tƒˆpWUnЁ•˜МЦЃ^8B80;:%9@955*$20 *Wju^z}.)oxa]„t@Gnp^eb„w–™ВŽ–ˆx™ЈЅ•tZ|™’’ЅЗtGCU-3$;HA78--%3B3aooE*@ej]WO>GiaCJ^jZ~‘ЌЊ—–ЁœСкˆmˆn…”–™’–iA:>)5$:>;041*;),G7OboZ2;N``a{jBWLB5[WMНБЇ’ОŠWƒ›d[tmƒЉŸ‘ŸЮiO<.3>B3>::59)+-24"]bN^Wmuo]MAS]H:%^]Vv•–‰„‘ЛЄi~‡„v}zВјЮ”Ќ‘T4HA..,7410%((+(WWotb3\Ui‘–uairZWNwƒb•Œ•ŠЁ”‹r…ŒŽ‡wЄ›ыШЮыœ…J,A43982(0-21%+*$3G9x‘[В{ha‹ЂкŸzL4HCOF\a|ŒАЕЉЂ—‡ˆŽ‚zrŠˆЄЉБЁЫУ8T?HMI4&"*2;+)#+,1"!wО`…ŒCHW–ЊwLEYQYYn^|dj—Д•–‹Š‡‹ƒvЃ‡”еЩМЛЌxA2MPIH7)&()!%"7vˆgoœptTa‘д™V>UVUo`z…wœЗЄ—‡ƒˆŒ–•—u‰„‘ЈАЪљ§Е?4G?;4B1(<517)##+&0]ug‰‹ZNY;rЁqIP\CJE`|Ÿ‡nŠбуЏ}‡‰™Š|{ŒЃЛйФЎТ–V@87;714013*$":AtptzG`iC]`kkQMQ2C^…xe|ЅЈ’v…ƒ‚…ˆ”—‚„РуИЛеьЌV@@;<4**")%0.2:BJŽhmudbMT\WhdLS5BQ^‰|~Ї˜…ƒƒ‚u…e‹Ћ™œБЇДžЉН^C2BB1:#&(+##%%4"07iŠiu}iƒ`Uhea[Zjc\b‡……{‚bЃД‘r‹ŒЃ‰‹‘ЅЋЈЁЇЎЎœt;AA9<2.$#5*#5<%!SŸ}[OZVZe`eY[[\\o”œ‘Ž•ЕеТ›xŠ”’‰ТзЖФœДЮ{0&.;70392!:9,79.:8cQxvgbJUSYZ[LPMFVMˆƒ’ЁВЂp‰}‹‘–’Œ\eЕйЧШТюш‘gM3$178,%,18>2>;Ag|›Š~UYOW`YOGJ^T\a•‚™ЅМЏ8U‚ŸŒ‡˜Ÿ”œрљЛЗРШЧF7841+.3&%%#-,A&V’œ…qaiSG[‹…GN[T^O–…Žœƒ”LL”—~v}‰‡ЄŠМИœЈЂЖВ`OL.27893(%.&%(!! $Ÿй–ƒz”…d‚’^ocdkŠŠ›’Ÿ‡io}…„„ЄЂзїЦККЁœЉИN287+940,)*45985$$!08{…ƒž‡q{`h`~{u]btm””Ÿ‹–‘}…Ž~‘~uvd‡›МАЉŸЋ˜ДQ2-,,.#8:34(&+3<v}\GeACvВˆ‡hbeG”–”ƒŠ…”Љœ—’ˆ‹В„ZtЉА—ЩхФ•5!,)0*5.0"","+-@#J{œŒxte8gxˆnkzhT@‡–tйякЌd‡™˜‰‰Œ•ЕОm•”}Šгцр‡)A7-?@2)5.&"&02;AŸЎŒq^Zp^obmkbd]”‰gЌŽŸ••ЁŒŒ˜ˆ{VUm|‚„nxЉЧME@,:43-,.#%3%34MЂпДdhYZ^]d{‡d*@HЌЩ•‰–™ЁŸœ”•ž›˜Ўqpƒx‚wx}’žЕ™ЁW3J;7;73-%%&083OHnА‘d|t`[Tt”^PTQtОљЮŸ•ЁЊЃ’‹”™‹ŸЄijq‚u’žВp+03B<140-51)&%,7ArЌ…{nbEFqq˜|JSP‘‘˜Œ•‘Ÿ™’ˆ„‰~„iNWkrtO{z–ЎЋ…O+-5>B9**-*90.5F5#?W–—Œ„v7[cŠж‚?abЉޕ‘•ЅЉ’‰…ˆŸqpŽ™ЁwuЌМЏжЕЊZ9!)97),$-+139:.00*G‰Žˆve}Nc˜Њ„ZjwЁޙЂŸ‰Œ‹ƒ‚ƒ’ˆ‰ˆ`ŠЄАЫЏktkP251;A2*+.(1*-51A0)vЫФ–qgdSizŒdH\…—xЕРЂž’‰„‹ƒt‡Š˜˜Œ’ЊЊЛ˜ŠАZ%,$%*19-,4-)LI?]VbzЄ{vhdvjdjno„„€q‘Ъ‡v‹Š‡Šˆƒ{w~Ž„Љˆ‡Œ‚’ЃЈНƒeZ\A78":,.+<.:,5(8buwt‘…nabx„‰kŠ”Є–‹Š‡‡ˆ‰„|p‘‘Ÿ•’™‰|Ё™}(!)7%)884,2--9&",1P}”›‘wonb{z|Є›|ƒ„ˆ—ЊЋŸŽ—ƒz~‡‹˜Є›ˆŽ‘v…Œ…‘‚8??CE;0)0%+&%2+00>.5n‡iFrœwrpwgwщу‚|…žЃЈЂЂЌЁЁŽ~Žv~‚’’}~xr‹‰›Ў–‡F1(BGE<*0+1%5%0);IvucY›‚ЇpWp˜`އ‹––ЏАЉЉЁz{rz‹}‡‰‡•ŽŽЁˆ‡’›…Žg;0>@:9@8.8>4-3+)15,z–ЅŒ—ЩЇ„[iVzz…‡ˆŠ—ЌЊЇБЇ›v{wvrƒ‚‡”œŸ›ŽŒ‰jg79:AB15.$"00+(9592pЗƒ‰rU:cngdŠ’”•АЊЅ}r‚~voq}Š‹—ЋЂЃŠ…‰Š…ŒdJ?59?83%5.*1*49728eˆ›Œƒ‘Љ™ŠQwmjrŒЅ–Œ•ЃДбМ”–”…ˆrqpˆ™…v‡”ž‘whM1:)29:5;*?.8CA38žЫ‹…‚…›”gkhx‚?ž—•ЂžЊЌЁi{ƒ{n^d|Œ‡}…x‰’•‚z–A!#+8,):1?I;,7FL<83.9?@8>-3*UiJ™‡M}Ѕ‹‡{wwq‡Ÿz‚Ž—–ŒЅœœ™‰…„z|oZЩ„ƒ„ƒгБЁЉO4%9A-;7.3>0204:1?355)%#>;2)5ZЫЗŒ”u{hNOdxg{ˆ‹™ЖКž‹Š‰ˆ—mjkq[…Є’žЄЇЃЃЋœЄwj\ZC?803;:5B:24C;*FQЊмŒŽЃŸЌ”b^i‰~Šœt2…ЂЎŽ~}‚ŒЃqvmmސƒ–гЪ‹—ЛОr›x[I)7LE3:-BF2793:2.79>>C8&11)$%01,(1:C5j•Šj[eˆ‰Ђ‚ajgj……ƒ~}ŒŒ|„‚ЂjgOuxސ˜…ИНОЇ‰‚F."0329.40-1240!(`˜›w‚ƒ„~qr}?{гНЇЄˆЅ‘ŠЖ‰ŒЋ‹‘i[tg–ЉКЏЅЌВЫЇŽЃg##1(18877<.;.12-&5aˆ•w~Œ‡‹Ž‰}}qNQLJ`kIBUkЈЉ–h>xiedxЗСНЉžНОЄ‚‡w]JOIFBJN,20354;5@&:hœŒvx{‹‹…‰{UbEYVYMAC^VOI]LMPJ\ovЃВЛЫВИŸ‘xˆ…OC.GGN{T&75-8-85>A0&2+!%A*&EPLJ]r‚ˆqh›•GJNQIQVUVWUUS\VYLPNLTWT\\PTUCNOT*1#+)7>E?*$+(,*(7:CEaUQC9:b|LOQSNTMSZ]c^VWLHL<2:8VT]bVTNQUH>10)45781!)0&):<*7;?HZakH97E:C3I.##!*#((-++83FNQNS[^P::@@>AFCGUZW]``WVSa\Vƒjd\ZVZPZNSU^ŠN",*&(-$%-2)$"(()::€ŠGF::;8)3+G42-?CGMFJQSVMVeaA.9E?ENWTVPUV\N{Q3%#"(+($!0)3<8B8AH??@3CџЮE?cU3SIQPTAJJkH[\YQLI,I[IGC.IUoSi‰Ј|?N Ф!#)[qUO&#;F@PWPSWWS@4dm\YnJ@i<L .hF^qotiŒv" HI  € ?*?HmŒn]AN18QUALMSQOI;c]ЪŒ?0E #;^jPSh…Œi#)A tЂY*AQNUM@>SZT>cZJH`oggE5G89E8>AZZ]Uq…ˆ‘J)&  €ј-)hЪi(@LMMJP[`]i3][O3W]`rB>B;(edSd…mˆ‘Иk7)  S .3@QoœPL0NH5PUJNc`Vitrg$",("#?aA+Q.HP? Hhk`WOJMSQW[^V\I0E>5>!5&Ežghpr„4$ Ч +-+"IMN5MOL>PTHYHPO>2;@H{gGE[Q:A;0FGTj‘œ‚—cТA"+$;C*@8$O?-58GJFM7Pct;5CBaE!!E;.-<>L@N>BeIYMYM,!boxYTG@99n‘^JSFF[?UkzN>>LAC3hWZYLZQt{o{GMG,"%))o@:9Sb]TJ]caVO?8kQIgoqgM4ZOC9N`uhd]^kmct‡}g( "&)™dIHHc^GF1LbQa?FB5JO\VTcU)JZFGVQL`d`MYSLLMUTVBL*9(zE8B QКЫzqm}vxt2 П T—|@SZ]SSBMTcZUVeTeaPEVdwP4tкZ;L@P9Pj{Œdnvp„‹1Т <#ЏКo[YTOGWLSYVZ\c`aSLQSOF7 ?„.C7.:jjijWg{j|—T;#+7* ‚"n˜`tk^YUVTOOYMmcNQYMMYcpoQNgua[ :QJOp|amrt|x{œtA !!m~VJTTS\L%apwowqibWW\EIP-BL`M.Nzpgwh`ijvzƒ‹œhЉ ~С‹‡h`tPETJSoo^`[``CFaa9UVPcLOJWhteokW[bp|~ˆƒ‘H<  ((+j‘Z^TjI1EU`\edd€`[MHB7G[WOU[bVZJUEFL`iYci}~‹ƒ…•U "&Ic~`^]Ni[`Tg]PUV]5NS[\Imvob9N9UTkˆЃ^CO^\UMSNVFjzqri^F$LUZT\dHu~xx}w•™xƒ‚W-   $^onZZg[q\etrhIHPPTY\C3Nb`ju!-JSUJI^8Qini[]‚‡‚|qh%   #cqhccm[hdAe}`TQFCYTG9BQ^WUN4CL„mno‚{oЂZMNSGVkte\jkxtgv\YVVZhbNG`aYOUQcZ5kU]^29Za^YWt„wƒ]S.&&! Hdb]d^j^]cnvkrpwueq[SFJO^Z]mM:c`VHGT>Y`uvcnqk…Н›tE!  YeSZ\b]WQYW]~‚„vhFb]>]w`I:@(:!B`POVdvZmtgidjƒЮЋiZB32  a[P\jmkkeaNdurrnm{}vzcIo˜wWO;G>WWNBOJO^wbckwr~ЁВ}\H@7 SJ`@^ojkZF,E…—|netwjh[2ZˆqC0MVx]P<5W`ZWQ`W`P^ma~ˆЊЉVBY.## ]ONdЊЄ{ƒgSPVe…oUcttpr`T^oS*;HBWaU:I\]WQ\bPPhdrzŠmPpq* kdUT~wzw|uW\YЇOip}‹uvkZbuaN`bd`G@GQVVPV]Yadk|~œtojh2%!%uIZi‡^h}woqb–аž–Џžž‹UFJbhd`]ZObJ.E"hƒ|aeZ}{pzƒ„ˆ‰kG&)72.™O38VqT]}^k|aaqp‘Ѕ•Ћ„r?U]k\[QGUJH4"+dˆWa\m~~€…ށz{{Y#*!#‹473]N8b[cjwŽtnenvŒˆcidYY^H*GAU>;3 Laeiwhv„‚‚|—ДŽmYZ#+&$,,1,V[7UNY[QgЌ‰ƒƒ|rx‚…{‹‹rЁ‘VGcgSN2-J[japI?b8]bgp~ˆˆ‘œЎŽrq’Q$-++0-2QJ$B;dZ{nxx|zjdgv”ˆЇЖŠ>[Z`AGLB2PLedSIZgx^x…zm‚––tezgA>%#$$UN0,]\W]^tx{qjdtr~{|ƒ…‡ˆcbddO1W]^hGpkca]]Џžw~Šgžˆx[`ZE)720(@zxbb@`Qp…tichziizr|zx’ЈЗЈpvj^UNLJ`U?LaN[+g{kqnk‡ЎЄмŸ„~o„ŒŒh@;3*˜WJT8dЅ{wLVOЧ`ž…}}xЈФЄЋ™vt’‚mUCLEJZU[g[nŽroeZguk‚ƒj~‚wuav>0O;9,pMnjZc…[QjzjkŒ–‚›—С™g?nЪшЁT2!8[ULQY,nm^UBrŸ‡„‰„„‘nuiS1  xZ^Z[UŠЃh>U{uo|„‰‹ЌЯЋZFZ™Њ‹‚kox|WY^]mo}ciSVc‘Ж–p——‡ƒ…cJnG tjm3Bƒ’jzr‚„x}ˆŠ„ЅО›ƒ„ŽЂ•jFtd,23Upjzo^Wkgnˆ\^aaqˆga^! }œ„hMVqnrjt{jawƒ}k]okЧИЏ—}ƒЖ’Ueec>&OQwwqkZ[bhnbcce]‚oVSTGjmPkhU]c]mˆniegbbM|бАЇИЈ[S›Ј„\~mjd&BMZ]zxhSadivnazŒ{q]H#") me]ton`WWnjtv|`haanvŠehЃЖ…io…ŒƒqqUOWUOeii|‹qS4C™œˆr‚ФБC!7NV*]`SmnddVbkŠ{hdb\YZuihzn‚|pŽ•ž–qhjPCF8E`•}bJ>r’tMH44($! ZYe[u{idQc`Fhuuzhdrhhmzcpœге~z~{r\zLFNaH"(>*$&&&"<2+&Vbbxn^iupgYitwovcm{rehtjixŠƒZr|wN?eZYJF7%*%.$"&!2.<;$(5  ]Yepp`Oq–tnmercwnr‚xici‚ŸЌЃ‡QGmedY?N@><&8".$#-,7;>3%#!#zOeqk^Fkvqgt\r‰tYpu}pb}‰wTAAO5@. 970&!*(*"#*<44FE5.$-1%JH"49QNC;`coGHHbI2JQ>Uj\IIAF049E3%+-;A@@?>4#2).1.10#%54)*1Q\G:8;5,8+-4)-;CF79@@,#5@a4A>;;758;-,$+-.8&1,!")7(,737!.4?CO^Z+@$,""(&,>,*+*$"A&4EW)+@cЯў™ŸЄЉЇž™—ЎТДЕЎЋЁŸЃЁЈЊЁ–˜–‹‹~ŽЅŸ™ЖВЈЖСУЇ@HLI-,..9@E7+.;A@<3AVФ›Ѕ›ЋЃЂŸo”КВВЈЈЉЅ››ЄЈЅЉЂ–œ—‹‚ˆpZƒдМЛНФРjNE0.*04+!+0.(3; #PSEJOŠ”••›’™‰ЈЈЂЅ‚”ЄЂ›–”’›ФМ—ž™™Ž‘ŒŠœБЛдпШгœ5710--5$"0,-7+"%VJ#1Z”‘ޔޖ›ŽŠŒ—Ÿž”•—ЕдС‰nˆ—•Д……q~”Œ’РенйН^3.%$.%%0+,+.3#4\I?\h‰‘‘ˆ‹’•ЂŸ”iŽЌ›˜Ѕž™™wЏУТЁЂ˜ƒ‰‚‰zuИмВ”КИЦгЫž:8;EB0&%+,((5.$(3,*?[’ŠŒqpЂ˜ЎЫДЛШœ››žŸŒЛЦаЅWaˆƒƒ–|…ЁЂžŒ›ЄЋдкУ‚L+3,4a–Œ`$97>8%#);;@<гБ‹•ЉЏЋЈЌББЉ‰ž–˜œœŒЕЗЦœ‡—’ŒzWˆМЊЇЃЈЈЇИКРШЫr;>no8! +;3244594;?@?М‹‡›ŸЉЋЂЅЂЋЏЇ›‹h•ЕЃЅЌЕУЏ•Ÿ•˜{ŸЏВЏЌДДБАИИЫЮЂEEUM4(&4;<7,),2($&!$"#&),нЛŠzœŸЄЂ››žЁЌЋЈЂЅЅžžŸŸ–zz…Шžj‹™igЊэ§ШОСНТЮЩЉ[,C*.,&")!,,0-4"9jнО—ЇЅ™—•œЃЋЊЏЌЏЅЂЃЇЈЊСЁZ~ЕўЕFƒ„ŠЃ’—ВЧЭЗЖНОЫЦNEON>N%%(8-14*GIцїЕœЎЇžœ˜™™ŸЇЎЏЎЈЃŸЅЊ™{]e‹ЩGp‚ƒ‡ŒАЖЖБЕЗИРФш„ZVVWH)-)%"!$9;9>ЛгВЖАЉž››™‰ЄЇВВЋЇЂЂЃЂЂРД’ЁМУАžu„››СЪОЛЛОФЦЧрИg;$,)9*-,(-)47?;9БЪЁ‘—ЉŸ’™ЌТЩНЛКВЊЅЄЂЋЇ›ЂЎЁuat™ФОЕИККЗЛТЫабт™I7"+55*,-2395.1.ОћзЭКЋЭ™cŒЉœЁДЖЗБЎЉЋ™ЅœžŸ˜žŸЄ—Ѓ˜žЕТДЖЖДДЛУЩабжеjWAI@843-24@<457ДйС•˜ЅЉЄ‡žЈЊЎАЎЌЋЇЃž™•›ЄЁЁ€’ЃЁЃžЄЂŸЇЎЏББЛОЪЩФФеŠ21<<89584327:5;”ЏОЏАЅАЈЇЉЉЗЊЈЇЈЄЁ•ЄЋЇЃЕШЖЎ…–˜‘–—™ŸŸЊЎАЖКТЩЧФВраN+0C.3::73101.7nЄЯВЎЄЇЇ˜ВИйЉ•ЉЈЉŸЁЃЈЄ’АТЖЗЕЋ”›’•™ЁЁž˜МЗМКЮШЫЭЧЪаˆJ8820.49447<:9ЅЖЕЋАЌВЎЊЖМРД™•ЁЃŸЄЃЁ‘j•ЗЉЖН’–•––v™ДЉЎВАЯЩЪТТмЊO<;;A08>>0.,*5БЧДЏЕБЗЋЌ›КЯЮЄ™—žЁЃ•‚”žАЈЈЇ‚ŽŒ‹|‰oЂКТДЎЇЯбЯЦЧža?><9359>5728:ЦАБДРЕАЊЄУРЮЕЂœ™ЈЪЈŠ—ЂЇЇžœ—‹Œ˜‹Žu~йЮЛМКУеУЛшДŒH)2?910.3@+44ЃЈ‹ЎЗЕБЏЎННОЇЖЄЉЈЇЏЏЈЃЄЅЇЄЂœЈЗЋ‡ДЂЊЉ‘m}ЇДЖЖИМФФЦаЌЄ]?@CA@BB;<3))ŽЃЊАБЗЏЊЌАДТОКЖКИЖРЏЈЁœЈЋЎЋИŸzZВВЈЃЂЂœЅЌММ€ЛТМЪєтМ‚H17.<752+)-0ЃЉАЊЏДЖЋЇЂЊЊгФУФРМƘāŒЉЫМЁ‘–~‚~p•А—žЈЉЖДЖЛРРФЗУјцЗ^JN7%-$&2-,+ЇЎЏБВВЕБЎЈЉЧЫРЖИСУШЪЅ”МшШ–‚‹[aЉЕ––‘–•ВНЈЎМЯОЯпёЩЂƒi[L(10,($"(ЈЋ˜ЗММЗЇ…‘ЫщОАВКОНТЉБжК‡u‹ЂШЏ—”‚ЄЈЄŸЃЃЄЅВДИЏФЯыхЁŒ|NJF?5983.-ЄЈžЊёяЧдЛЂЄ›ДбНЕЏКТНШЌЊЋЖЅ‡w›ЄЈЂЁЁЊЏЊЅЅЂЁЊЌЕЖШШашЦЏУЈT;7@:9;297ЌЋЃЃЪЦТУЭЦЌБЎьз•ЌОжЩЭКДАЄДНЎЂЃЇЊЋ—›ž›ЃЂŸœЄДЎНЛЧЯЫМЛЦЎV4):>;<432Р™ЇОклНЖМОМДЭўеЩйшйпЫ‹ЅЈЏЋЇЄŸЊНœYeЖжЪЋЊžОТУУЪЭЭдЯВe@:GEHFG90м–tЖРžАЦДДБ™™ШРЎЫдгпЩЕЃЊЉЇŸœЃŸ•‘u:8kОаАЉЊБаФЩгедЩЫЮŽGAJC?CB;0О]r~ˆВ•ЏАЕВИИРЖИЗЛФУЖЯЗЎКБЋЅЁЂ•™žЉ™{o›ЈЋЎШВТбШШджьбЛВЈG@CB@@€{AB——„ŒЅДЂЛяЫЩТМИВЗНЩЦЩБтт›ŽЎЌЎЁЁ˜ЇМКЧЂ•Є…ЄЗЗНЦЩЮЮжэпСОк|5?A@FFCHЅ‘ŽЊДЛАРФФТМВБМЪЮеЯЭцяУŠЉБЈЅœ—›ЂЁЄВЌžœ™ВбВТФШЦФЭЯеЛБеЁZU:A?43i”oQrЃЁЦИЖЗДНЛВБЖОШЦШСЫЮлЩœАБЎЅЊЅЌЌАЋИМБЂŸЅтФФРЪЪЌуббНЅВЉjEJMF:NˆНВЊŠЊЊРеШБЖЛЖБАЖОКОИнчёшИБАЋœЉЂЄŸЂ”‘ЌДЄzЋОКНЛДСптўзШФЖЭзШ‹WWO15?рЅwЃьаР’œЂљОЅсЮНОЦсёрызСКзЮЕ–”œЅЄЊЌЋЎРсШРДЃБЛБШЪБРРЛДЌ•NM]JAEИЖЌЅЉЩЩЮЇЊШЛКНФШЫкСзѓж›‡БўўрЇ‚tЄЇЉЅЁ™tЗЮНЗЎ‡ОщЯЭШЧЭдИАЉxG$%:0ФЅУБЉЌЂжпЉ…˜ЧТРФЭЭдемйўу—ŠŸмщжУЏВФЦЊЅЏЊАМЦДЈЋœЌжюЯДкШНСОž|‰V711НЛИxu{q‘епЪРУУТЦЩЪЫждеыјхССбцрАˆЇЌjg{kСНЛЕЋЇЌЕМа˜‡ОЩ™›ВКЊ…x;#%УщЭЂЅЂБЖЛУШТНТРКТЊЎДЌаљёшмНЩгїЫŒŸБА‡qt‘МРРАЊЏАЕВЅŸЅЈ–ЛРД™qke4,МŘЅЎЊЃЂЋЕСРЕЕЗДВА–ЛўЮшщѕнŸ’жщШЃРЎЖЈx~ŒЁЊЮЫА‹ЉЉЎЉЄœКЫЖЄrFE8-0ЕБАЏЗЏЅЃЃЛРТОЖЖЌЋЌЖТЩЎВняЪЊЖРаЮЖЖЂ•™—”ЃКЗднНŒжкСЅЧєпr@EJce@,*,ЊЉЋЈЈЄЁЃžБдЭНБЇЂЅЊМЗДИДОЦУУЫмужМЕВ™—Š„žбЪзШЃˆzВЮЌƒm{‚OECF@2-1-*ЏАДВДЅЂ•‹ЄИЕЎЉЋЎЎЌЏШаЩЧФЧРТЭЮЯОЦКЏ˜i‘…ЗШЩЧЁŠƒЄЗ{PPM^dY8HA84$!#ЗЛжЩЉ|ЖЌžЁЂЃЅЌАЖЛИЛЗИОдлгЮТФФЩмРИАТСАЋ–‰ЈЖКБ‹q[^TYV`QHGEEOEG?%$ЋЎК”ŽŒœЇЇЎЃg„ЩЏБЖЖЕВЄЏЯгѓткнЖТФСŸЌБЛ””Ёž–œƒbehQQ?2P[MGALIHC<42)ЅЋБЄРИЏЌœЅžŒЖСИДЖКИДДЗРЇАдљћУЗРСМЎЁР‡‘rO^ZE8HBIFHTQPTPMNOG<3)(ŸЈВЌЋЊЏДЖЌЄЈЗОНЗНРТМДАВЊЈЗЭЧЄМУКЏŠmœ„vpaQ@:@HILEGBCLNUPHGIHE?..(ЄЋАДЎЈ‘АдКЖВЗВНЗНРСРБЊЌМтщпЧ—›‹|VgVJW@S<@>GFEACFGMQJGC@@€>79B@?AFOIHHGIPVOIGMFA;<@FJLHHFE@AISMJCEBBIVNHBFHOSWPINUULGI[N€с`PWqqageek^PV[pPhouj^dJTea\T?hk…jœН9F]j:$%++ "%)+C>Ji|nbLPOVZghienmgS[wetbg|WA\;Iq[{ˆ’ƒ…~Ÿ‡7*]i;,8,"+7#%8[GBN]~™mY\QW`hjb]]ebc’mJr~м›Z:IA"&#%,(4j?1MP4Pe‰Бc^W[dYTZdkpnmrkd[dhmpgTTaSO8>q‚rw‚ƒŽЎ›a731*%&(CbG;@8*(8@!-2494"EP}Љ]\ad^cV4Z„wvnicdeagqmpnbQSa[NPG@$OБ‚~‡ˆ‘M>5$! $!(0- %OA>NGid\UZcb^\pqdhIZdg[WSW^Š~bWqddNUIPSbqƒЊО˜Єt2-)!"&%1., 2MC$,\F@@$))5>GF8\E]Q„ƒebgvm^cSbbcc`pЈ‡Цn3I^NG]L—zaYcbewŠ‘ž„L!5[Ÿ—j ;C3::,5?83"Ÿ~V^dttoitzrgP^e]YeOq}ŒaMZWVP-NzdrromjŒ–Š‘Z0:jc9! (4>:,54,?FAeNHЉjtikgijgrmzuxGUŽo]ZZ`[aUi\C>5 Pz[:nžŠZgxˆŒ˜‡[1@CE!$);,& *УŽVGgda]d^cnwuehjac`egeb^BEI~c-Ub2+kЪхŠŒŒ’‹”ЉH;$-%)!-20"$8mЎ”PapnaW]bdtoppqjxkjbkv‡g,L~ыrN\W^U^{ŽŸ|„„œE0I?28&*#+02<8HAМб…gpk[^b^jderxvrxih[ajZC.1N‘E4NMIT}„‚v‚Œ…‘ВjJIO;L*"$+0>38F‡Ђw‹z{jgd\cUnkƒqoieebcn|ˆ]d~…~n>TaYd‡Œ‚…‹ŒБ„U0,5&#.17?>B?}peikmqZNSrŒŒ‚xkjrpijh`^ijeA7@a–„{…„~|…‹œЂА};1#)!!%*,4;.++жžЄ„uŽp8Lm`c~zrqoqV[Yri`hi^o]a[e~‡z‡…r|‡—›Ј™ЇZS3E-*&1-5:3?>+4wЌ”dhizuYVbuovvquup`YbQ[jddgpoqj`ecbdtpw…ˆ‘ЁœЊh!&).(,28+#7.8,au}{pkpmb}tnhkmi\oqt^‡‡tOW\jqYWaaextozƒ‰‘™”{ЉžC,<9324;)-.0-&?tЃ{{qcugƒžЖvYknkoanji\Š~~nZYZjj€Uuj^ƒ–‹‡–’ЂЊŒ–p?,*(,*$".32>B2*103^oru{x„qkr‚‹…‡ˆ…xja`iwkn[G(Pqvka]gTejŒˆ}}Š‚”ЭЕ„Z92533€'0%(1!+pxqptwuw]hqtŸžŽ‘ˆ{\wc]p•ƒgZPGJC7Zx`]r}‡owƒ|ƒ–рСzoPEN4))(.urkt{v}v|erŠŽ‰uŒ”‰’{c…ЖigSdQ"1tv^ThhapŽx{„™ˆ—ВШgWbO?$$.3)*&&juu[z~rcM]И”‰rŠ…„„nOwœ‚VCWiƒpU^Npuqjg`phpnu’—РИn\`F?C>8037-9igdxСЪŒžxpdcx˜uxˆ„‹‹o]i}jJCM\gmbUgpzockike}…ŒœЕˆkŠŠ:7-><:7%,7vthqˆŒ–’‹rutУЋe~Ђ’™‚ˆxtr~p`upxu]^gmdmmajkwq~‰ЇЎ}‚ƒzJ-&:4>2<94dg„•Ќz{Œ…~‰qЇхЎœЏНАДžh\extrnkph{`EF%:x™Œ}th‹ŠŠ‰’—•Ё‘{T51CEALG<3Вg>Qu„kuv~{c˜„‚ЃЏЇМ•‹Tet}vii[mbWS55˜{to}•›ЁЉ›—‘’k<+;EBLA97˜.CILve]xj‚…œ‡ƒ}™œŒŸw}pom`Y[\d^`C;Wop‚Ž‚‰›˜Ÿ™АШЃ}un;.IB;EI>?I>Nq^M[Umo‚v‡Ž{uŒ™ЇЃЄЊНТ–TowpgVa\kiquzd`c|Ј‚w‹ž‹ŠžЄЃƒ{•zOO:AF89pYB1ChŸ{xz‡‡|zŽŒ”Œ˜›Є–ov{t`]kkrxjƒ‚vounМАˆ”Ÿ{ЛœЈ‘rvwYEEHI;Z”‰}rWwuŽЃ‘~qv‚z‚„Š‰ЏОУЛƒukZgagikW]tkhHt|‡„˜ЛИјД™’}™ЄЊTWA35<Вjdae‰‚ˆƒncvw‚›td•žmj‘…oh@"(‘Е—nghxƒ…„ˆ‡„АŽxtzЃмжЧЈ—ЋкЊ`o{rM;?WcŒ‚zrovw~uj{}kŽ’ˆw]eg;2}}crpnhpq}˜•z{{v{v\•чЅЧРаЛkcЊЦ—jŠ{|zLJ]it—{Ut}z‡{p—Š~nVC@<,(&‚xw~x|vvj‡ƒ‡‡„xxt~‰ЁxИбЂw‡ŒЋ‚‚darm`w„|œž„\CUЖБ˜u›йСY8:)4!„Џ•i?{‚kdkrxunƒŽŽ…‡”ЈЏЇ—Ž›™Д•ˆ…’‘ƒ…k`ƒŠ|…jVOQ[\PJUVOL>C58F>1,n~„b]UYt}wnF\Ђ{z|uq„–žпШЖЌ‚ŽЂ‘hxzcemtie‚nHO`NF:&US`LJCJE7A>22kpwxŒŒ{uiko]{ˆˆ‹||‰…{„‹v…Ахщ—ސ–‰‚jaWZpY>IN@4>BCB?NOYVNHL8C;:3*ev{~mpt‹„okv‰‡‚„x‡‰‚v}~}ˆЂЂq–œeFueba\M:,4:AH?9B;GLMWOE@8B94)kp}…‚ug|Јˆƒ{ƒvŠ‹‹˜ˆzq~”ЗЧС™cbz{tbE\PPS?L;8;;ECFBA4LJPTQB?8\HM%,-584EZH:&8Z>7ENu’COT\MVNMFFOM€ЩSNHBF?-8@EGGJJLFGHGHUk|m8NPJIMHLE@@HP[WJHOSBB7LZwONSPLPTHLLAL@TQMGNGGH3?BIHCNHLHIHQTZi~wEPL3G@7:B28:3FML8GFB@>2?>4A@FCFHH99GLLH?3GHHAGNJHLGB::@HH:EFCBA@LE?ABCNHSSNPTUILQbZџ€ЉPkoА›VQe|mYL`[GPSUZWZ…hHOLOUJY^I<3  05VE?\с§§їєїїYWPŸŸ‚`pqo`VTSPLEIO]jO@Zzq}zYdpN-51 !#(*732<;]пћњєѓєM^`•И~OzйЅc\LCMOF@>Uh|tQ?ijjo][H4Zk%#!$+(0,O:?H@Gwьћ§яѕ13Nm{}j‚YT`LL>5Lpˆ^]bZ‡œ\egB?gkƒg.&"#uC;@HOQљћњїW\ƒwuƒwvˆajhjS>?ed™{BOV;Qƒ‚ЛЉi4PŠvwZ #.4^3Sm518Е§ћїcAZI]n‰wpoh}‚cQYQLmŠ"MN]c^gc›„BA[dmpL) ")>30.0B1B:aЦ§љWj]MISv›|u~xЎЉ[:LkmdacTG1ohJiАgSPdhvj5З  -4*&+CB989gпћc{eSO\T‡˜ˆ‚j‘znt\BdYAS[[UVWQT‹œzJJ`rnae>   &€š;<;LNCzэxmYbQSx…ИЊvgTaWGZcg\``bUJLg~}GZ[qkoob>$)  #"#?-839Y?V}›vtn``\Yjv|xidPIT‹jSLPV^ZpwuotnIuu‡z2,9"!,$&$4EMJ`NmM1TSu|b`cw{rxhggcgkZNG`c^awdhh^UŒƒpxjU@ ##!".8MFC +za]]PeidtЁrkv|`{jg\FPQUnrcOZVYPiq‹˜ƒOIdv8" #)!)%WGBG"*aqYMca^Y`ƒj`˜~xS;&T\jgcbaVQO>e`dvŽg\]ƒj-%,"+$#(&"0VJNP&4AeQZbTI]Šƒ„vpgwaqjeQdЗУ‘iZZieZ[p`hoxa[j‰‰S +(&" )((8`T@>0&>prhmadcŠ‚ruovpp€OnpSZTgJNdpe]cxvdtЄŸ}7VZ„7- ..*&-+A8.9!`Ї‚gcng„Уuvu`hqepcV`bP>^kYYZbjjiœРЋ…OTm‹^1!" !"*CZN? ;—žmh]eˆАˆ~|ucdmmgim\wqhab[^YVgjxw[k]u‹v‹j& $-#WC?>eY;|ЃoGH[~Џ‘rtd|ƒqxmx…—wM]hodkhaea]SFEhNHA)#8*#&(2)3($(t”vYZuvwrhd^uucga’kk]^dhrqZ]g‹MOm&8B&,"$+,*$8!B}wehiknpw|pjmgaxŽЂ’Ђ{qd[hzvz˜i09 ($%#EcdE& &*#&*(+32-#-‡ˆZbaT[qwtrxt]`^g‡‰…vc`\ivqiS?:;1#@ˆ™>!!!.*397-A>87vz‚aacduwvoxoЇЛ˜|œ–jW^hj„‡T"%+Œ’Q;24!*#!.-%;>\h‚™~ueg}}wrd™жР‹{\gj[cuŽe& ($" Mv…](##&5,$4-!(7#!a~Žˆ…v]P@v~wgxƒЉЄm^jb`OG7љ  ""€ е 2˜Ѕ„ ,-24.3.2- *V„gdtƒWk‚hw`ЄжžЂДŸju„}eQI-7 !* .EЉ‘`F!%$--$0.75"!%k‹ŠŽ‹Td^kbinЊБЃЎУj^J@8,M<++"#%$#,"%*5G›Š{`k?5ca{\W^iFBQ85-523"& "%)$)0732.Q^z`jv—‡jd{k>4-&(.,3.3qg„qZ9@W!0)-,%02!1,,15:0Hp…ŽG[mrxwzvweizY?(("-%#Cii.#2:EUxL->55-14372#(%&8J;?^Ѕ‹•‰mhhqzxwnx„„c<-(1)(,#*$2(c~H*Fok<3&$7,!:0.(84-125QSb„ƒƒoirwxux{vgr{‹‚C.L4 &*-5-!3c578B0 &7(!0#SY`~uЇЋŽ‹qB?Mu{|x{xz‚rB9t$01#% ?2*5( *&%#("J~[^vx’—ƒ[^}z‚|{rzt|‰‡`’[ (% &:("4114)(g–В‘]gVŸТКŽh]xzut{rmpxuƒk  -,$)(,452GV”Œh}Šp…~„‹‚‡„wxunir‚‡ˆ’5 !,%+.-)0,)"5;OpzŽ˜‰‚~ƒwz”ƒqkvuz~Œ„mj{Мю70""%(.2:02)*!)%i‘‹q^t‰žЃŽktwƒ„|tm`t{zv|~~‰xŽ   8BA@?9351TcVkžВ˜˜–ˆ‰Š‚„„’ƒ‚ˆ‰tjp~trrƒ‚……    "21-7&1$131Y|Y\И›˜„}”›‰–•Œx}‡q[>E{htqrˆˆ…‹    094.&(@>7UuIt‘owˆ˜ˆ‚hЈеЗЊЏЕЎЄ›{‚kH[ignv{x‚ˆ#  $3#8}CBgvVkebh•З‡{~Ž…Œ‰ŠŠ˜К”Lipko|‚~ƒ‚ !0),,&0!BLu}rropog‡КЉx‡”ˆ‘–„‚Œ”Е…IUbhq‚x~v{#,(%  +$!.1$277Yq^|hr}b{ЗО‘ŒŒ‹|~—‡Š~qkw~npvvrnuƒ   $"! 0!%>J˜„Ž‘МЄ‚cJcxŽ‹‹ˆ}…}‹ьс„kБЁqvv~z}    !G) +%$C% 8[[d{x”ФРYPo‘ОЁ—‡‚~wQprЇŠr}Ž…„…‰‰ƒ‡u N*& +Gn2F?hŸ‡Yb{z‰Ў„U\~~u‡„xzwidЁЊЄŠvrjigwˆ{„{  # .VG(Vk|Ÿ~qgŒ‡~}j™Ј|„{’›‡…|zxmА–ЌТАƒzaadqtƒ…|{ %)!"07)Imƒ–œ}‘‡”xЯЉE:)::9GQTSO[gbwЇ‰ƒvk]ЅŸ™j[ciz˜‘‰ƒƒœ‘uug~ЎЛЁЋ—ir~…# 2H>9;A>:A8JO:\zgSPnx–Р‰nipЪкЦŽewnސ™Šq~™ž‰zQoЋМД{px}}# )13EJLF:7AA?GG4TxceFY|БŽ}ƒwr‘}‚Š}wrЄ‘‹p{‘”„wpv‘БЏqTp…!""Ф+0@<>FBB>4;E81,4Fƒpehaimƒ„‡‡„„xЉ~|~”Ё”‚hvŽœ›~{gY‘”…wiˆŽ„€иЃДВпб™‘ЏТЕŸЅžЂЄЁЅЉЇЄЉЪЇaŒ˜ЄЄЋЃ‰H7VQ1#-+(#"*;^LCcщўўљјљљЅЊ˜йыШЁЖаЛВЄЃŸŸœžЃЇЅБ”СКАББЋБ•~c>:LA47"!&,&<..CAbсў§їјї•ЈЇйёС‰ЗўтЉЃЁЁžœ–”ЊЊУТЂ…ЗИЕЎЈŸzЇАLOHLxюўўљљuq”ДСРКЊЭЩЧ—ЇЃЄ—™‰œМЮАЌЅЂгуžЅЌŠx•ВЩ™J82;5-*"")"pE?ASUV™ўў§љ—`ЃОЗСУЦУЫЌЕИОЃ…ЌЗпТ••’ЋРИяяЖr”ЩЩО…;4C8-*!$3+h>Vn12:ЛўўљЏŽŸ˜ЄКжУНЗМЛЭЛЊž—–ДЮpj—ЇЉЕЏИЖеУ‰”ЋЕКИq@I:3#*!-2:74@H5G;hШўўЄЃЂœЁРнУОКЦђьФЁŽœЂЋЄЉЉЂ˜ЛʘЕшВЁЊЊВТЉ[:!#")-4FG99;oхўАКЇЁŸ›ЪзЭЦАЩЗВЖ”™ЈЋЈЈžžЄ€žЫлКžЄЋДЏœcB0:""##&A?5GMEяЗЪЎЎЉ™•ЛжясЮЗЂœЉžžЄЋЇЈЉЎЏДŸЖЯЦУ•žЈЏМДИ‹Y?>B!%($,<;>49]>W–ДнУЋЏБЌЏœЊЏЭНАБЋЅ•–ЮЎЄЂЈЋБВСТОДЋЅ„ВМОСЌ[HPG&-3-&%&#$,0(8MGQhuВ—~Ÿ–АЖДЌЏЛОЛНЕЏЋАЕЊŸ•ЅЋЌЗбУЋЋЏЏ˜ЧдТДЗ‹mT0$*00($#*"1>NHE?NЏЉЃœЅЋАЋЗТШОКОФВТЖЏœ™ЃЎЎЏЕЇЁ–ЅЄЏИСйО’‘”ƒL70$%#€#%%14[H?HELЈСЃЃœžЃœЅСОЕИЛРЫЖЄƒx›ЎЛЖЇЌЌЊЄ—œЊЅЊНгЏ•žИ‘GCF2)"#&!(,(#%77VCIUGHmВ™ЂŸ–ЈаФФОЕКИЇЕВŒЌьєаЎЋЌЊЋЇЇЊЌБЖОЂЄКЕt-E7+!$1..0*nYB:TBVИСАЋЎЌЉЮЪФМКЗМННЛЕŸ––Њ‹•БЏЎЎЏЏВЋИмаВp’СУQ1C0$*.-,:5;@TU:мТВЏЋЋбєШНМЕАБЕЗЏЎЉЄЈЈЎЈЈЉЇЅЇЊЅЃНпеВžЊЪ4FF4"B[LG@7$iесЛЌАЋЧшУКОМДАВВ€КЋ›МКЌЋЉЉЇЃЂžœЅœ––МРКЩЃH255""$[GEAzh;YКнЛ›ЃУщбАБЗОТРЖБОУзнЛ‹ЉЋЊЌœ‘–”„bgŸ{^]I2A`<4"!)1-*5-C23?лСЅЈЎНМКИВДЖЖВДЇТЪЭЪЉЋЁЂЌЉŸ‘”Жo7vŽ:J\;1Wa5!%&%("!$)20:;N;bШУЌЎБВЕЛРНОЛАЌДЖЧпЫлМБЄЁЅЈЉВЪž[W3*AJ89?,4t”ŠY4%(*$&&"$*,-8:@<8B@HAСЭT8<4.320**0),3>CQS>B”ЋЩШдЪЛБИМУЦУЌаўёТЏ”—–ŸЅСж‘V<-;7,-4:<?:84897177>18O‚ШККМУ—ЏФМЖЈлљдЮнаЏЂИЦО•vdPW..:539B8:<8H4bпб‹Z48;>532289595B>8>@LБЮЪзУ™ВБЋБЏЋбежгпЩЎЁ‰eLGhWMC;@@?E>9>B0@CrгдС™H9@I3,+41%)2:@AEIVbЛрлЫцОЉАЉЎАЃАаЯЅˆ–ŸmBE+![LZc?>8:99:+24.,):5GLQQBBШЗЌЏЇ–ЃЄЇВЕЗЏЎВЁЊ•>.I?AIGCFE308;740.4CIHF`LqАЦИВАЈЋТзЯЏŸЅСТE@#287ACC<24&+2?;@GG<%IЉФЋАЅЊ—oP4..)+(0+CB<@3<<^НЮЗЋЇ|tДлЪЛЂЊЂqF?N@@C<<>9?>891>IA>EJU>€#9rЃœЎЏŽt’Њ„›Ÿž}`?5]QQIFA:<>@7749>?A>BL-eЖжскУВЮЧ‘TFW??7<48>><7-B~I‡Œ™™ЃЄЖВ~BLE9CIQB?<378@;243?;?GOE9QЕлаШТМЖЎЋ‰Z3$45;1550434LVQ”›ДЉЉЃЎ™Œ{J9PMPWUBA4.:;>C??ACGFIJ?FЅнцЧЦЫЫспУЈЇ\7;;>5847-.*817M{ЁЅЉЌЊ•nhO@LIMSV^JA>A84:ABBEBFBEGBIˆЏЗАУЦРТЕЎТЂNA97<9>;;?@E>0(G”ЌЪЩЊNWn:LSUPMLIMGCB;>>AJ>CBIGLF:ZВФЉЉАЭТУФШЩУЗ|EI<:03578;F@@39zЇЁ’ePIMOHN\ZMWH@CHFGEPHGGJFHOO2EYЮлžАВОТФРМЖЌЉДqN01.252;8BEE55\œ–[7?:NPO\…ZFIE\YSwжглЯЖЉЏЛРЦЧЦТДКФА‚L@:?;:5>;@@B>GC@~‘jAA€л>E?BL?irИФчјЮгВƒ‚žЧНООСОМКЌЏYS}*#178>C95873>.1\HC@CHCA98:FCA@;?@;(7AbЊСŸЇМйЪнрТŸБФРНТССККДЛБ‚Їm#,85<92,.,00<49BCAABH;4;BBJMHAE?G;>G—ШѓлЂЇžШтѓєйЏЃРРТФОКВЎБЗЎЏ~441)+&*)#*)452;99BAA@A;B4:?FCGSJBT—\`МЇАЕДЊрєЯЧШлбдЫйаЭабйўпЂЕНООЧЮЧООТ1.+*&$%.*"#14AIJG`e`ŒМИЫЯРУУКЎЫёјкйкаЫЯЩЫЪбйЪЗДУЪРКУЧУСС€ОУ*$#%&)+*%%0;?>AGIP,EQSLJIJLPY]b[…ЗБЁМЪтлёдКЏЕњўћЭЎИЕйтбгЭЯбкйЮЦЇБйюћщШНСНОЪ-0.-1;HFLTVNJIJQWUVQ~ОЕЌЄЈЮчђйЩЩАОжзЮЮЧУЧФхййУЫбймлбЗКОЪьхЗ›ОЧЩЩ083-8FIOTSQICHPONTAL]КТБАДДЗЩЩЭЮЮЫаЩббЯЪЩЯккрТЦШллѓгаЦОžжуЮСЕаеб€§]„КЈk[p‚hamjekjgund–u3Ycghrbpk^5.U\9 ,191&0%:FE@QIqьўўњјњ]koЈЯ–V›юТkkcd]b[dSp”„hNz{„|whWHu…H.1.$).774;ASJQgZ^‹ћўўј§ABb„‘•’Ё”enuo]QSgƒ™qkwcœЗtx{WFnz•w?897-(0.$1100.|OUUijeВўў€ y§m3hŽˆˆ˜Š‘v‡ƒˆnSZu|В’Yae]p‹‘дЧ„Ce—Žo87A%&$#30,%#(E9eA*^„IEIЧўў§xWkixЂ•‡‚|™ƒkmchxЉ>?gurxwƒzЌZ[vˆ…`9F3.($(5:21?J:B@NTHVOxеўўnvnmacЖ‹„Ž”ЯЫœqWd{|wqwg\PŒ}^{Фxgox„•ƒG<)%((0<<9APVGOJƒёўpŠqceiaЅБЂ—~œ‡‹dbrvgjjpbirtnЁЇŠ[hnƒu~T:,(2&1%$$&4!,J^Jba[‘§ˆ‹{pqgjžбФЅ‚tdvgdqvnoopxwbjˆЁ”‘[rq…‚ˆ~vTF;E*2*-$*5,7G>GH+SoS^Ђ—В……|rvtk{„ЄŠƒ||h\ZЇ}e\cgngˆ•—„|‚T‡ƒ–˜ˆF4((8472,!1("5,15&*CIPQWU9mК’|xw‘г’ŠˆŠvw‡x{}mnxnn~toim|wpЁЯР•bn›n3HE9&%#0*:VnW[30$UЋЖwz—Ч•‹”Œ|v~xxwgˆ‚x|otrkxtƒ„pzuЄ•ЊxA$)((!(*-010q]ZW~j8OЖ‚g[nФЄ‡ˆ~—™„Œ{™РСŠ\p}~zxjprnphQV~nY[?4:T@?+1$+0+&,)9:@BB@*3;ŠЋqmƒ‚„~ƒxwƒƒ}uœ™Єž~|ivv‚vknpœ^3nƒAN[13IO1,+.0-+&3"471GG@HQBZ•Œ}|~{…ˆŒˆ„ƒoxŒЅКЊК‡‚zm|~„‘ЎiEH-"@B:>?4:Zzx]>017,8.1973B@O>B@;LŒ˜txtnt|ˆ‡‰zot™–˜Š||muŒ‚{Ђg)8N9-aPT<9JЈЕQ2.-8A0@>0?BEL(EZQTQ•Š‰trt‚}……ƒЫаЋŠДЎ|h~}ƒ™˜d4C3$8?@G%:ЈЅnL@A8:>:C.75>A?8?ЂН( 8LHCE?@EA34L4,1>`—t‡–j…uОцДЊШИ”|Š’›{jiNV1.0>4274<>8G7YМЄqT;;:A<;>?@:C;:BE4C1:‚Ѓ›Ћ–ewvp‚ƒКНДЛжА}vaTFIaSFEB8@C@9:AA08Q[ЛЅ‡v>5GH2.><52,:AAIFUNTАЅЈЛˆeup}xo‹ЖА‹bhqG:>#VPObC7,912,:E>Yc‡–}‹xiGiA*A0918AFEOHI?@AJ;(E––v~krwnQ819;<>F5GJMF)0;QЌŸ‚uvPN‹ЎŸovtJ>AL9><2<:2<,8MLNCF+]‡БКА‹Ј›tI@`JBBA5>A>;H*JxJ`^bpiitv‡{e8CF2PL[L:+7$BA;3.37?750.@>E:C&*B{˜”}dNVg;LVZ[MLSEHHG8AB5NNHC5ZАuv}—„Œ’•‹˜hFMNBFAJCFGNg`NmСЃЋwtv~‹‘›™‘‚„•–pEC7>AB8AAGFB:G5@v’Z9F>UrYTHMSHAJOGHTNPHJ8Pndo–œ˜ž„z‰–Ž’„ˆŒž–QBL]I,>B??FI>F1#1WwO.2CNML,9>B@9F8@*5>\’–kqŒЌ—ЌЊ™kx•—‘’Œ……Žž•qАu)59LAA9&&:3&78?59FGE?575LMJFI?>79>A‚ЋШДkzi˜ИЯЯДwo‡‹ŠŽŒ~„„”Œ˜ƒ<$?52$3+$,35*4<"45<;C@<;.878BGWmЖЈ‚{”ЁЂЃ—˜”ސ’…ƒz…‹œO4,2(.050&(44C425<>AGEHG>?7?4G<897E@JITMLM3>;?ЃЂ‡q‰ЁЌВŸŠŒ”›žœŽ~|~‚”‘›‘•‡™‚œ"+#%(("#&%!#153:,7:AHSNUVQNLFhwpЛНЌЎЏ™Є›˜››ЄŸ™žЈœ‹z”–‰Œ’›–—+,3,#"(+,.#1.-5A:.?FJPIAEE@HHp‹xuИеЕБ—–ЋБЄЎЎ˜Ђ‘x[[‡ŠŠГŽŸЅ19$&3,,*%3))*1&5GGPG;:4BBFEAIBNWJqŽ}›–ˆ‰œ•w”бЯЇŸЅЈ™™Њ—žЂЅ‘ƒ~АŠ}Œ‰ˆˆ•™)13*"*!2A5?2CFG337<912+&M`S7Q|ˆv}‡ЄЄЇœ•ŠŠ˜ЏЗФНЃž}‘ЁУТЂЉЇЈЅЅŠ…”—АЕЇ–Љ‘—’!>5>@<0<+@02NhBJFQjcpŽnu‚ЂЃЇŒ„ƒбэдеЂƒWЏрФБЌКЈž‹…—МНК}’˜›”"914>?>OYQ@?VtPTTUW`jcbho~–Їž˜Œ{tВРНД„hrˆЎЊ™–žЌЇŠˆ~™ЩзЛФЏˆ‡”’™.)2.5@&FSUPMNTVSYbcPnŽ~ek~‹ЗВЯЁ}пэй{…}ЈЃЋŸ”ЂЌДЂm‡БЮзЫ–‹‹Ž‰—7@24?@BJP^ZUINSPOc\Ibƒtuag‘ЛТЈ—ŒˆžЈ˜—‘…ƒˆЗЌЄˆ”—ЁЊЋŸ‡ЧТ…k—˜–5;;>?LVTVYVZLOPUPSJFNƒxxwp„–•‹–’Ÿ™ž’ЂŸ‘‹—ЊБЉ•‡•ЉЌЋБ’„oЊД›•~ЅŸ3џ 3џўw 4џў€5џў€6џ6џ6џўw7џў€9џўw:џ:џ:џ:џ:џўw;џ;џ;џўw=џ§wџ=џў€џ ?џіїєїјњјљћ§њњ§ћњјјёњћљћћјїјјљљ§њљњњыћў§њћјјљћљњўў§љћњњ§њ§§щљћњ§§ћњѕѕєѕїњјћљїјљљњјїїыѕїѓјјћњ§њ§њљјјћ§њњ§§љљчјћ§§њ§њ§њўў§ўћўњ§§ћўњ§§јїїљѕєїњјњїїрћјјљјњјћљ§њљћљћљћљћћљ§§њњљљћћїћ§§єўћўўљ§§љ§љљјјўћїїћјњјњїїъѕјјѕљњ§њ§§љјћћљљїљћ§љћћяљ§§ўўљўўћ§њ§§њўњ§§§ўњ§§§ўѕјјнљћ§ћљћћњјњјјїљћјїљљћ§§њ§§ћјїјїјјљљњњћ§љ§њњљўћљљё§ў§§ў§љјїћћ§љјљљўњјј§њћјјњњјјљљјјчћљљјћ§ћљјјїћ§§њ§ўўћ§њ§§љњњ§єѕїљћљљњјњјїљљъјїјљњњљћњћєєїїјјњјљљћ§§ќћљњ§§ўћ ўўњ§§ќїјѕїїјјљљњ§ћў§§њњћљљ§љљюјњћћњјљљ§њ§ўњ§§љ§ўў§ўћў§њњј§§єїїљѕїјћњ§њњ§ћњљњїјњўўѓћ§§ћћјћћњњ§ў§§ћћњљњ§§њњљћўњ§§їўСј§ђѕїњјјєїјћ§§ћњїјјћ§§§њ§ўўѕћўћ§§љћ§§њ§§њ§јњўўњћњњ§§§њ§њњі§`Њљ§њјїјљљњіљјјњјїњјљ§§ѓћњ§њњћћў§њ§њ§§ўљ§§іљњњ§ўћўћў§§їњљNBЊћ§њјјѕћљ§§љњњјјњјјљћљчѕћјјћљћљјљјћљјїљњњљјјњњљ§§№њ§ўўњњўўL[{с§њїѕѕєщѕјљљћљ§ћљјљњћћ§њћљћ§њљћћї§ћњњўў§њћћ§ќњ§њўўј54PЌј§јїїєћїјїћњњё§њјљјњљћљ§§њўњ§§јљћ§§ўўћ§§ў§ўњ§§уњљњњјњљў>IBeВљ§§їјњєјњј§њ§§ћљљёњ§§њњ§њњљјљљ§њўў§§њ§§іњ§њњ§њљњњ§§ўї8EIOjЮљ§їїўјїї§ћјїїјљё§ўў§ћћљљћћљ§њњ§§ќљњ§ўўўњ§§њњ§ћ§њўўъћ:3CB3[м§њјљјїњїћћїјћњњ§ыњћћљњјњљћљљ§њ§љ§ћў§њ§§єћўћњ§њ§ћћњњ§§ўхCIPPLO~љ§ћїјјљћљљћљњћўў§љјљљ§§љћ§§ўїњ§њћћјћћ§§њњ§§њ§њњя§ј7CMU:9UТћћїїљљ§§ѓћ§љћћљљћљћћ§њњћ§ўћ§ўўї§њњљљћјћ§§ћцљјћћ§њў§§?Feжљ§јљљћћљњ§ћљљјљ§§њ§ѓњ§њ§ћњњћћљћ§ўўќ§њњўўъћ§§ћћ§%3@IHH0,A§§ўћ§јјљїјћљјљ§њ§ўўё§ћћ§§њјјѕљљ§ћћўўћљњ§§ћў§ћћъ§409M@@5gPTЉљ§їјћ§њ§њўў§ўњјјљњћљњ§њўўўћўўјњљ§ўўћў§§ћ§шў00795>AV;9NЭ§ћјјћљјћњњ§§њя§љћљћ§њ§ўњњўћўў§њњ§нњћјјћљ§§ўў8.8::@LPW?A›§ћ§јјљћљњњўўћћјўћў§њњ§ўўћћ§љњ§§їњ§њ§јљћњўўУ§њљњ§$$.;@:$IdUUZСљљїјј§њ§ћјљљћћјљљ§§ў§њњ§§њ§ј§њўўњљљњ§ўћў§§љљтћ§§њ§љ"%&0:99I9,QU^ƒ§ћўљ§§њ§њ§њ§§ўў§њ§щњ§њ§њ§њњ§њјћћњ§§њњћљћћ§§э$(1535391#GVZ\Зћљњљљїћјљјљњњћўў§ћњўўњ§§§ўњўў§о&-1,8AFG18Ld\Z`ч§§јїїњїїћћ§њњћїљћ§§ўњ§§њј§ћњ§њљ§ўўўћўўє§њћ*-+:>??GNNіTGJH’ј§ћ§љљя§њњћњ§§ўњ§њ§њ§ћў§§њњ§њњ§ћљљўћўўнљњћњњ89>A?BIEBJNIHA@ZЧ§ўљњћћљјљњћћўўўћўўњћў§њћўў§§њ§§рћўўћћўўћ91,7>9.3>?HC4$<4;H@9CSTwпћ§ћљ§ћљїљ§§ўўћўў§љѓњљ§§њ§њ§ў§ћљћћц§W20<@>LE>7<5BIHHQPPO:nїћ§§шљњњўўњўўћћ§њњ§§љљјњљћ§њ§§љњўћўћў§§їi3A@LJG@HH§EHIIђCEI?4GЃ§§ўјїћ§§ћњўў§§§ћљ§§ўњўдћўњњўўбj95NG@>GNIMIOLFGEJFA;]У§§љћћљјљћљјњј§§ёњјјљљћћљћњћњћћ§§њрљњўЃtQQHTC:>:HHLNHQYƒјћў§њњѕљјљјњљљ§§ј§§њ§ѕњўўћ§ћљ§њ§њњ§м˜ƒrW?^:I:3?C@@>;5>BEOiU^Дћ§§њљљ§§ўў§§њ§ўњўўўћўўаћўў§§њ‘…ŒoJP?.92:C979:?GGH<9#)Pцћ§ћљ§њћћўњњћћљњ§§§ўћўўў§ўўнћњўўЄqLCA9E@<5;:3>BHPQPYW7Bˆћљ§јљљјјњљћљљ§њњљ§ўўњ§§њњ§ћњ§ћњўўХћўў}ˆ„wUaWYC?9#05:>@GFBLNQ40?Џћ§љћј§§њ§њ§§ћј§њў§њћћљљћ§§њ§њњк§њћ§њљ|{|e4*&;83-378CB@EMM1EQˆє§ћњ§§љўњ§§ўњ§§ўЫћўњ§§ўўћўћў§ћ}|vŒ›aB9,3-@:>88FEPJLLPLE?AMcZNGMQ;-cљћ§њїјћћљљјјљљћћ§§ўћњ§ћћЭјљњ§ўњћљћћzЄЖ}~c|]C:CJIELGB>?CIFCEHABGqљћ§јљћћњјљћћљљћњњљљћћвљ§љ§§ћјјљ§§ŽЅСЏƒJNŠИrG@BGB9GHHFFNA:;:[Y]HЇћ§јљљјљў§њњњ§ћњљћ§§Цњ§§ћћљљћљ‰ŸИžzvo‡ЁxHHMNJG?31GECћ§ћљњњї§ћњњјљјљћћјШїјћћјљћ§§z‹ЂЏЊœ‘v„•tG@W]\TIGBJBJFMFEIO&Mы§§љњњ§§њ§§љљћљљјћљ§њњљћљљјаŠ|ƒЂž›Š‹–bJI@LHCCEF>78:?@IN:IЛ§ћћљљњњљћћљћ§њ§§ћў§ўўњ§љљјљћће„}k—Ћ›—Œ‘—ЖЖЁqMNMEJE9@8BBC:AJ[^Jˆмћ§љљњљ§§ўўћњљћћјјКћљћљћљљјћћ…‚z~„ˆ—Є™›ЋО‘ZAF>:4ACAG8?;538CHJOPOV]ТћћјћњњјДїѕѕїїњїјћ§њћ§§ћћјћњ§{r{„ƒˆŒ…~ˆСЫ—dQEIFIGF@289GUUOS\cŽћћњјљјћјљњћћљњјљћњ§ћљљўјљљўћњїљјљњљњћњ§§§ћљњњўљћћњїљњњћћ§§ў§§ўў§§ќћњњћћљ§ўўћћњ§§чћ§ћњ§§ћњ§јјљјљљњњћњњћћљњљљ§њљњњѕ§ћ§ћ§ћњњћћ§§ћќњћћ§§ўў§§ьў§§ћ§ўў§§ћњњљљјјљљњљљђњћ§§ћњљњњћћ§ўћћљњћћњћћ§§ћњњћ§ћ§§ўўў§ћћњљ§њљњњљњѕ§ћ§ћ§ћ§ћњњћћњњћњ§ћњњіћ§ћў§ў§ўў§§ўћ§§єћ§ћ§ћў§§ћ§§њњѓћњ§њћњћљњљњњћћўњћћіњ§ћ§ћ§њњљњњћ§ќњћћ§§ћўњћћ§јћўћћњћњћћў§ћћўљњњќљћ§њњљљњњћћ§њњћў§ћћњёћњ§ћ§ћў§ўћ§ћ§ћ§§ђћўњћћњћћљњљњњћћњјћ§§ћњљњћћњ§љњћћѕ§ћњћ§ћ§ћў§ўўј§ў§ў§ў§ўў§љћўўћњњљљёћ§ћћ§ћўў§ћ§ћ§§ћћёњљњћ§§ћўћ§ћў§§ћћїў§ўћ§ћў§ўўњ§ўћ§§ўўўјљљќћњћ§§њћ§њћћњњт§ў§ўў§ћњњ§њћ§§ћўћ§ћ§ћњљћ§§ћ§§ўў§єћ§ћ§§Ъўўѕјљњњыћњћћ§њљљњњћћ§ћ§ћў§ў§ўўњћ§ћњћ§§ћ§јћ§§ў§ўў§§њћ§ћ§ћ§§ќћhЖўўќњћ§ћћ§яћњњљњљљњћ§ћ§ћ§ћў§§ў§ћѕ§ў§ћ§ћў§§ћўўђћ§ћ§ћ§ћNIЋўў§њњћћ§ћћљњњўљњњћўњћћў§њњцћњћњћњњћ§њћ§§ћњњљљћћ§ћ§ћў§§ѓў§Fc‚цўўљљјјїїќјњњћћь§њћ§ћљњњ§§ћћњћ§ћњњћњњњ§њ§§ў§§їћњњћ§§ћ§ўўї§90YДўў§љљљјљљњњћ§§ѓћњљћњўћ§§ў§§ћћ§ўё§ћ§§ўћ§ћ§ћ§ћ§ў§§јў§AOIaКўўѓљњњћњљ§ћ§ћ§њћћ§ўћ§§§ћ§ћћў§ўўі§ўћ§ћ§ћ§ћ§§эў§§ћ§ћ§ћў§9HNVpеўўљљўњћћ№њ§њљљњњћћ§ўўћћњћћќњћћ§§њћ§ћ§ћ§§ўћўў§ўћ§§ќњ§§ўўюA3H@3bтўўњћњћљћњћњњ§ђћ§§ћњћљњљћњћћ§§ѓћ§ўўћ§ћ§ћў§ў§§њ§ѓћ§ћў§3jUZЎўўњњ§їў§ўћ§ћ§§њњћ§њћ§§§ў§ўўќ§ћћўў§тћ§ћћњ§ћ§§)&1;@EFW@AUгўўњ§ћћњњ§§ћ§§ћњћћѕ§ћў§§ўў§ўћ§§тћ§ћ§ћ§ћ§њ§ћњћ§§ў§-4:<@EJUWAIЂўўњћ§§ў§ўў§§ў§§ўћўўј§ўћў§§ћ§§ћ§њ§ўўщћ§ў§ћ$,5C<:2Pk`Z`Ъўўњњ§§ђњ§ћћњћњћћ§ћўћ§§ђћ§ћ§ћ§§ў§ћћ§§ўў§ћ§ћћ§хћ&+35;<;FneI8gыўўћћњњћњћћ§ћћћ§ћћњћћћў§ў§ўў§њфћ§ћ§ћћљњћћњњћ-$+15BN>3QPb‹ўўѕћ§ћ§ћ§ћ§ћ§ўў§§ћ§§ўћ§§јћ§ћњњ§ћ§§цњћњњћ§ћ,1523:@80$?UZaИўў§ћћіњ§ћњћ§§ў§ўўєћ§§ў§§ћ§ћў§ўўў§ўўў§ўўо§ў§ўў§ћ:;9.0>HB93PgbYhщўўњњћљћњћњ§§ўњћћ§§ћ§§ўћ§§ћ§§ўћўўш§ў§ўћ§њ;;A;>>GGMUVSJPE˜ўў§ћўћћ§њњ§§ћў§§ўќћ§ћ§§ћўњўўћ§ў§§@@>щECBIMGOPI?Vаўўћ§њњћ§ў§ўўў§ўўў§ўўіћ§ўў§ўћ§ћ§§ўћўўо?@E<>?:9;FEGHNmwœњўўћ§§ћўћћљљњљћњ§§іћ§ћў§ўў§њћћ§ћуњћћ9843FJ@;:@GLBH@WbОўўћњћ§§ћћњёјљљњћњћћњњ§ћ§њћћйњћњ§ћ§ћ§§ў§ў§§ћ§ћ75>;CC>:+4?E>2*$EhЧўўњњўћ§§њћјў§§ћ§ћ§ўў§§ў§ўўў§ўў3ю7+32-0..BPMEC@UTtўўњћљ§њћ§§іћ§ћ§ћ§§ўћ§§ёћ§ўўћ§ћ§ћ§ћ§ћ§ўўн§;9<4@A:4;QTTYZUMFQQБўў§њћљћњћњ§ўў§§ћањћ§ћ§ўў§ўў§ћ§ћћњћћ§ћ§ћBCjhaZH;;ABIT][Y>CT~яўўњћ§§ўўћћѓ§ў§ћ§ћ§ћў§§ћўўћ§ў§ўћћ§хLAUTQPIE<>?JPU\[Lkƒ‡Рўў§ћћ§§ћћњњћ§§ћё§ћ§ћ§ћ§ћ§ћ§§ўћ§§дћ§ўў§ўўPG>INQM?8>BY[уўўћћ§њћњћћ§ћў§ўўў§ћћќ§ўћ§§тњћњћњћћoBC>?<9-1;CBJLO:#*Uьўўћћ§§ўў§њњћ§ћ§ћўўі§ў§ўћў§ў§ўўт§ўўЩмЫЉcNOILIAC>4;?ACOY]^[;Cˆўўў§ћћ§ћ§њћў§§ћ§§јћ§ћў§ў§ўўеФЪУЋzuc^LF>;2.5?GHLNTZS54@Еўўћњ§§ћ§ћ§ћ§њ§ћ§§њћ§ўсћ§§РЛЛЖИ|AA$?<<903;<@IFELQ+GU‰ўўќ§ћ§ћћѓў§§ћ§ћ§ћ§ћ§ћўў§шћў§ў§ў§ћњСКРЏЪФtOB:?H??>>ьAHAHTSNPGIЩўўћљњњљћ§§ћ§§ћ§§јњћњћњљњћћжњ§ћў§КСШщхєЇk^JPVMCHEAHJI\h[OA<*n§ўўњ§ћ§ћ§§ўћ§§§ћњћћд§ћћњ§ћћњћњћ§§ћЛИЕёцпЊZ?SV`UMOF;C@ECITYJC;‰ўўПњћћњ§ћ§§ў§§ћћњ§ћ§ћ§ћћњљњљњњљњљ™ŒФЦЖФРЧЪ•I2@MME><;:AHMAFMPPJzЅўўњћ§ћћ§њњђ§њ§ћ§њљњњћћњ§ћћ‰њЪУСМОТЪЫФЩФТФАcLJ;59@?<527BMNTYV\`Шўўњћљњљњњљјјљћљћњњћ§њ§ћћњ§њ§ћЫШРММРШаЫФФЛккžjWFNNBCC;:5ENOVZYhh–ўў§§ћ§њ§ћ§њћћљњћњ§ћћў§ћћўњ§ќњћњћћ§љў§ўћћњћћё§ћ§ћ§ћћ§ў§ў§ў§ўўі§ўћћњ§ћ§§ўўїћ§ўў§ў§ў§§юў§ў§ўљћљћњћњ§§ўћўћћэ§њ§њ§њўћ§§ў§ў§§ћўћўўђ§ўћ§ћўћў§ў§ў§ўўў§ўўќ§ў§ўўі§ўћўњ§љћњћћїњ§њўћ§ћ§ћћї§ћў§ўћ§ћ§§юћ§§ў§ў§§ћ§§ў§ў§ў§ўўђ§ў§ўћўњўћ§њ§њћћ§њўњњњ§њњћў§§ѓў§ў§§ћ§ћ§§ўћ§§ўў§ўўє§ў§ў§ў§ў§ў§ўўњ§ў§ўњћћўў§§§ћ§ћћўўћћь§ћўћ§ћ§§ў§ў§§ћ§ћўћћ§§їў§ў§§ћ§§ўўўћ§§њћ§§ў§ўўѕ§ћћ§ћў§§ћ§ћћўўћћў§ћћўўћћ§§ћўћћ§єћўћ§ћўћ§§ў§ўў§їў§ў§ўўњћ§§ћнў§§ћ§ћўћ§§ў§§ћ§ћўћўћўћћ§§ћў§ў§§ўў§ўўў§ўўћњћ§њ§ћ§§ўш§ў§ў§ўћ§§ўћ§§ћћ§ћў§§ўў§ўўќ§ўћўўў§ўўў§ўўўћњњў§ћћёў§ў§ў§ў§§ћ§њўћўў§§ў§§ќћў§ўўє§ў§ў§ў§ў§ў§ўў№§ў§ў§ўеўўћљњњћњћћѓў§§ћ§ћўћў§ў§ўў§ћў§ў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўў§xЧўўщћњ§ћ§ћў§§ћўћўњћњ§§ў§ў§ўўќ§ў§ўўќ§ў§ўўі§ў§ў§ў§ў§ўўі§ў§ўў§^ZЕўўўњћћ§ћўћћњћћлўћўћ§ћ§§ў§ўћ§ћ§§ћ§ћ§ў§ўћўў§њўћћ§ў§ў§ўўў§ўўь[t’ѕўўњ§љћјњјћњћћ§ћ§§ћћ§ћћ§§њўћ§§ў§§ўћ§§ўј§ўћ§§ў§ўўїOHjТўў§§њњыћљ§ћўћў§ў§ў§§ћћ§§ўў§ўўў§ўўќћў§ўўќ§ў§ўўў§ўўќ§ў§ўўў§ўўњWdZ|Шўўщњћњўћћ§ў§ў§§ћў§ў§ў§ў§ў§§ћўћў§ўўі§ў§ў§ў§ў§ўўњ§ў§ў§ўўїM^`d|сўўњњєћњћћ§§ўњњћћ§§ўьћ§ћ§ћ§ћў§ў§ў§ў§ў§ў§ўўћ§ў§ў§§ўѓQCZ]Crьўўћћўћћђ§ћўћ§§ў§ў§ўћ§ћћ§ўў§§ўќ§ў§ўў§§ў§§ћў§ў§ўўј[e`ngd•ўўіњўћўћ§ћ§§ўў№§ўћ§ћў§ў§§ћў§ў§ўўд§ўћўћ§§ў§ў§ў§ў§ў§ў§ў\[ceQLgгўўњў§ў§ў§ў§ў§ўћ§§јћ§§ў§ў§ўўтћ§ћ§ћў§ўћ§ћ§ћ§ћў§ў§ўT[^gZ]Yvыўўќћ§ћ§§єћ§§ў§ў§ў§ў§ўўў§ўўє§ў§ў§ў§ў§ў§ўў§№ћ§O]^gjwU]‚ьўўћ§§ђћў§ў§§ћћ§ў§ў§ўўљ§ў§ў§§ћћ§ўќ§ў§ўўќ§ћўIIј\d^:;IIW`gqPZАўўњћўћ§§ўўќ§ў§ўўћ§ў§ў§§њў§ўћ§ўў№§ў4>AWLV;\…tmwзўўћћ§§ў§§§ћў§§ўі§ў§ў§ў§ў§ўўћћ§ў§ўў§кћў§ў§§839MQ^Oa‚\G}јўўћў§ћћ§ћў§ўћ§§ўћ§§љћўћ§ћ§ўў§їў§ў§ўћћњ§§№ў?B7CLOaO)C`g{œўў§ћў§ў§ўўў§ўўђ§ў§ў§ў§ў§ў§ў§ўў§хў§ў§§ћ§§ў§ў>>4FOMUMP8VijpЫўў§§ў§§ўћўўў§ўўќ§ў§ўўщ§ўCGAMFMW]JIbtwnzїўўћўћћчўћ§§ў§§ћ§ћў§ў§ў§ў§ў§ўћў§ў ў§яFEGNNS[cdcjgacVЄўў§іћ§ћў§ў§ў§ўўњ§ў§ў§ўўі§ў§ў§ў§ўћ§§ўш§ў§ўGPJMQQY]ZZcddZSjнўў§§§ў§ўўў§ўў§§ў§§ўюHUMTNJIEGTY]aeƒ‹Їўўљћў§§ў§ћћѕўћ§§ў§ў§ў§ўў§№ћў§§ћўћ§ћў§ў§ўћ§§вGH9VQULISPZZS[PdmЪўў§ўћўћ§ћ§ћћњњћ§ћ§ћ§ћў§ў§§ћ§§јћ§§ў§ў§ўў§ыўG@2HZ[QFISUVP>9:O~Яўўѕњћњћћў§ў§§ћћўњ§ў§ў§ўўќ§ў§ў ўьC:+@BC;>A>Yh`[]Wd^ƒўўўњћћ§єћў§ў§ў§ў§ў§ўўњ§ў§ў§ўўі§ў§ў§ў§ў§ўўыABF?FPMNJddjqxneYmcОўўћћ§ћ§§ўў§§ў§§їў§§ћ§§ў§ўўи§ў§ўћ§ћў§ў§ўJLtnheTNLIUdiuokVQbŽњўў§ћў§ўўќ§ўћўўў§ўўў§ў ўрћ§ћ§ћў§ў§ўNGW]VOPNSJUbihpuk~›žШўўяћў§ў§ўћ§њў§ўў§§ў§§їў§ў§ў§ў§ўўњ§ў§ў§ўўцTL?PPU\SMGN^gnpvNZpr‘ѓўўћ§§њћў§ў§ўўё§ўў§ћў§ў§ў§ў§ў§§хћ§ћў`?BNS\]UNJGQTa`ghdhcO„ўўњ§ў§ў§ўўў§ўў§єћўћ§ћў§ў§ў§ўўф§ў§ўv?QP\b`TV\ZW\^ec\VWVF`Бўўћќ§ў§ўўў§ўўђ§ў§ў§ў§ў§ў§ў§ўўў§ўўў§ўўтш|GFc`\PY`c[[ad^^`ZaSUxрўў§§ћ§§№ћ§§ў§ў§ў§ў§§ћ§ћ§§кў§§ћў§ў§ў§ў§ўЏ‰jtb}`QOVWZZMWY[\\ecpn˜ўў§§ў§§ћ§љў§ў§ў§ўўў§ўўмћ§§ў§ў§ў§ўЋ|xW|[ePNSLOPSYVSZag‡irЧўўћ§ўў§ўўє§ў§ў§ў§ў§ў§ў ўо§ўЏ›—}YmSLQMNVGJGNSYabTN33gјўўћ§§ўў§ўў§ўўхЄЛ–…VT[WZVSQJILQVZdprvqNV˜ўў§јћ§ћў§ў§ўўі§ў§ў§ў§ў§ўўт—Ё”‚b|pqSTMMVpœўўю§ў§ўћ§§ў§ў§ў§ў§ў§ўўў§ўўк§•„ЁЌuUOCOMSPLSSW^Sbgide]Vдўў§§њ§њћ§§яћўћ§§ў§§ћ§ћўћ§ћў§§ўу”•АЫНеЁmSZ\[ZZYV[^\qzrbQL4ўў№ћ§ў§ў§ў§ўў§§ў§ў§§§ўћ§§яћ§ћў§§’މуЯФZCWiiяa^YTSUJg{r`^tmaЏўўў§ўўЬ§ў§ў§ў§ў§ў§ў§ў§ў§ў§§ћўŽ”œ‘txЉHCdbdccWSO`b~okh^cNBўўќњўћ§§ћљ§ћ§ћў§ўў§њћ§ћў§ўў§пћ§ŒœЊЩ’‚‰gQOZ^abZVWUZ]h\`^kZ]aўўћў§ћћњ§ћ§ћ§ћћ§§ћ§§Ућ§§ў§ўћ§ћ§§ўЈМајZV™Ш}YMZb]WUSO`[`[\OPojtZИўўћћ§§ћћ§ћў§ў§ўћў§§ўў§§зў§ўћ§ћ§ћ§ЌБУК‘ˆƒ™Ў„Q\ejcWLMTYZ\Ya^gk^ZO›ўў§§ў§ўўЗ§ўћ§§ў§ў§ўћўћўћћњћњ§ea›ЉŠœŽ—Ђ„@?J[[UHNHPNV^bdkde[I\сўўћ§ћў§ў§§ћ§§ў§ўћўћ§ћћз§ўњћћўћћ|…БЕЈœŠ”ЃЌŒ^Y[aicT\YN]W]W`Z`kTTЊўў§§ў§ўў§ўћ§§ћћ§ћ§ћћћ§ћ§ћ§§бў–ŸВСТДЊЃƒ‘ŸƒPQmuujaWTUY\\c[Z[g4\ћўў§§ў§ў§ў§§ћ§§ѕћ§§ў§§ћ§§ўћћо›‘’ЅДЕДБ–œЇrWYYb`]cZYZWYYO[\bIYЩўўўћўў§єћ§§ў§ў§ўћ§§ўў§ећ§ћ§ћ§˜‚ЋСЕЏЄЁЊШТЋgjh]^Z`WPaZWVVdzxb–юўў§§§ў§ўўќћ§§ћћ§жўћ§§ћћ§ЃœŠ‰”žЉЊМДЏИФŸnT[OTTUV[YYSQW`jb^ˆБўўќњ§ћ§§ўћ§§їў§§ћўћ§ћ§§жћ§ћ§™•ˆ’ŠŽ•Ÿœ’ЈКЎkUPJLTQMSOIJV`ggmnomдўўћћїњћњўњћљњћћ§§ў§§§ўћ§§лў–މ‘ž™—”Ž–бкЃraY``\UOQLP]enjppw{Јўў§ћћўћў§§ћўћ§ћ§§ўРўw=§џw<џў€;џўw:џўw9џўw7џўw6џў€5џўw4 џў€3 џўw2 џўw0 џ1 џ1 џўw/џўw.џў€-џўw,џ-џ-џўw+џў€*џўw)џўw(џ)џ)џ)џўw'џўw%џ&џўw$џў€#џўw"џў€!џw џўwџџўw џ џўw!џ!џўw!џўˆ џў€ џћ§њ§ўў§ў§њњ§§њ§ўўј§њ§§љ§ўћћљўћўћўћўўћ ўўћњњ§ќўћњ§§ћњ§ћў§§ўњћўў§њ§§ў§§њўў§ћњўўўћўўўњўўщљњљљ§ћњљ§њњ§§љњјљњћўў§ўўјћўћћў§њўўћўёњћўћћўћћў§§њўў§§ќњ§њўўјћўўљњњ§ўўўћўў§ўўћў ўўћўў§ўѕњ§§њўў§§ўћўўъћўў§§њ§ўўћњўћўўћўћўў§ўў§іњ§§ўў§§њ§ўўі§њњћ§ћљњ§ўўѓ§ўўћћ§§ћ§љћў§§§њћўўю§љћ§њљћћљљћљњјјћ§ўўњў§ћћљћѓњљњўўћ§ћў§њ§ўўё§љћјњћљћ§§ћўўћўўѓњљјєљ§њ§§љ§§ўўїћў§љћјјћ§§§њљ§§ўќ§њ§њњў§ћ§љћјњўўћћћў§ўў§§ўњћў§љњўўќћ§§ўўћў§ўў§§њ§§ьњўћ§њ§њњљћњўў§§њ§ўў§§ўћњ§§њўўљ§ћўћўћўў§ќћј§ўўћўў§§єћњљ§§њ§ћўўћ§§ў§ћ§ўўђ§љљћјњћ§ўћўћћўўљљћћљљњ§§ўњўў§єљјјћ§ўћћўў§ўў§љќћўњўўўћўўўћўўўћ§ §ўўћўўњ§ћћљћ§§њўћўўі§њ§ўћњћћ§ў ў§ћўѕ§њјћњ§§ўў§ўўўћўўјћјїѕјљ§ўў§њўќ§њљћћїќћњљ§§ўєњ§§ћўўћњ§ўћўўіњ§ўўњ§њ§њўўўћўў§ћ§ћћљљћњїјљ§§њўћєўњ§§ўўћћўўћ§§ўљљњ§љћ§ўўќњћљўўі§ћўў§§ћ§§ўўщ§њ§§њћћљ§ўўћњ§ўўњ§ўљњ§ўўњєўћћўћњ§њўћў§§њў§љњћњњў§њћўўњ§ўў§ўўћўўћќњ§ћ§§ўњ§§ўњ§§ћщ§њ§љћ§њ§њ§њњў§јљњўўћўћўўњўњћўњњ§ўўњў§§њ§§ўўћўў§њњ§§ћћўў§§ў§§їћ§љћ§ћњњ§§ўћ§ћћјўўўљ§§ўњўўўћўўўћўўѕ§љћњњўўћ§ћўў§ўў§§јў§љ§љљ§ўўя§њј§§њћљ§њљ§§ћљњўўѓћ§њ§њњћљљћљ§ўў§њ§ўўўћў ўќћў§ўўћ§ћјњ§љўў§њўў§ћњ§§њ§ўт§ћљљњ§ўћўў§ўћўўћў§њ§ўўњњћљћњњўў§ў§ўўћўўэњ§§ў§§љ§§ўўћўўћўћћўўњ§њ§ўћўўўњўўќћўўћћљўњљњ§ћўўўћўўўћў ў§њўўћўўљћўћ§ћћўўўћўў§ўћ§њј§њћљ§њћўў§њ§ўўщћњ§њљћў§љјћўў§љљћћ§ўў§њњў§ѓћљљњ§њњћњ§њњ§§њћћ§љјљљ§ыјљ§њўћњ§§њ§§ўўћ§љ§§њ§§ўњ§њ§ћ§ўў§ћ§ўћ№ўљ§њћљћњњ§љ§њўћ§§јњћћўћћў§§њ§ўўљ§§§њ§ўўёћўћњ§ћўўћћўљњ§ўў§њў§§ўћўў§њї§ўў§§њњ§ўў§њ§ўћўўїћўћћ§ўўћўўј§ћњћ§§њ§§ў§ўћњћўћ§§ћњ§ўў§§ў§ўћўўўћўўўћўў§ўѕ§њ§§ў§љ§§ћўўћњў§љјћњљ§§њћўў§ћ§њњќўћњ§§ћўћўћўўўћўўќћ§§ўўњњћћњњ§§ћњћўњ§§ѕљўћўў§њћњњ§§ўў§§ўўћўў§њћ§§љћ§§ћў§ўўўћ§§ћњљљњўў§ћўћћћў§њ§ўўўњљљ§љ§ќњћ§њњђўћў§ћјј§њњљћћ§§ќўћћ§§ўћў§§њўў§ўњ§§ёњ§ўўћ§њћљњ§§ћћўўў§ўўў§ўў§§ћ§ўўўњ§§ђњ§§њ§њљ§ћћљ§§ўўњѕ§ў§њ§ўўћњћ§§ћ§ўљёћљћљљ§њ§њљљјћ§њњј§њљљ§њ§ўўїљћћљј§§ћўўљ§ћћјњњћћўљћћћљњ§ћўўњў§ўў§ћљ§ў§њћ§ўўј§њїїјљћ§§§њ§ўўі§њ§§љњјћћ§§ўћўўћўў§§њўў§ў§јњ§ћјјћ§ўўў§ўўіћў§§ћў§њ§ћћ§ўћўўўћўўњўўћўўљ§њњ§§њ§§њњћћўћўўў§ўўќњљ§ўў§їљ§њ§ўўњћљљѕ§ўў§ћћљљћ§ўў§љћјљљ§ўў§§ў§§ў§ћў§§ўўћўўћўў§§іњ§љјїјњњў§§ћћљ§ўћўў§яўћў§њ§њњћўў§њћћ§ўўљћњњ§§ћўўѕћўћўў§§њћ§њњў§љњ§§љњўћўўћўўыћњњ§§њ§§ў§§њ§њ§њ§ћ§§ўўўћўў§ўћў§§њўўўћўўћўљљјљћјљћ§§ќјљњ§§ћњўўћўўўћўўќћўћўўћњљњ§ўћўўќћўћўўћћ§§њўўђ§њћўћ§њљ§§љљ§ўўћ§ўўћўўђћ§§њ§§ўўћўўњњўўј§ўўћў§§њњўњ§ћўљ§§ѓћўўћў§§њњћўћўўћ§ўќћўўњњтћўўћўњљњљљћљјћћљњ§њњ§§њњ§§љ§њ§§ћћјћ§ўўљњ§§ћљ§ўўљ§њўў§њ§§њљ§ўўћњ§њњў§ўў§ўњ§§їў§§њњ§љњ§§нўњћњћњћљ§њўћў§љ§њ§§љњ§§ћ§§ћўћњ§њљњ§§ўў§§ћј§§ў§§ќћ§§ўўњћѕћљњ§§љїїћљ§§ћјљ§§ўў§љљ§ўљ§§ўћўўћњљљ§њњ§љћ§§§њћљљњўњєљјљњ§њћљ§§љ§§ьћ§§ў§§ўћћў§§њ§њњ§ћћ§§њє§њ§ўў§§ћљњљ§§њё§ћљ§њњћљћљ§ћјњїїєљјјљ§§ћћљћљћћёјљ§§ўўћў§јј§§њ§§ўњ§§љѓјљњ§§њ§§јњјњ§§ћњћћљ§§ћўјћћхјљћћљћјјљћћљћљћћ§ћј§њњ§ўўћўў§§љ§§ўшњ§§ћћјњјћњ§љњўћ§ћўўћњ§њ§§шњў§§љћљњљљ§§њ§ћљљћљљјјћ§§њћњ§њњ§§љњ§§њћћљљћњ§§ў§§ъњ§љљњњћћњњћљљјњњ§јћ§њ§§љў§§њ§§њњ§њўќћўў§§њј§іћљњјјљјїєїїўѕїїљјћјћјљ§§ѓћљѕћ§ћћ§њ§§њ§§їћ§њ§§њљљ§§іћљјњљћћљњјјњњјјљљћћљљћћљњ§ўў§ёњ§њљћћљћјјћћ§љњњ§ћњћљ§њњ§ѕњћїїљњњјћћ§§ѕљњ§§ћїјњјљ§§љ§§јљњњйћ§§њњ§њћћњљјћћљљћћњ§њў§њњ§јњјћњјњјњљљћљљїћёљћљљћљ§§њў§њљљ§§ў§іњљћљљћћ§§ўў§ўїњ§§ўњњћљћћ§єњ§§љїјњњјћћ§§ќњ§љћћ§њ§ўњ§§њ§ћ№§ћў§ћљљјљћћ§§ћљћћјїїћљћћљћјјћћјњјѕїјћћјјјїѕјїјњјћћѕљјј§§њ§ћјћљљьњ§њўћ§њњљћљћћљјћћљњћћљїњћћјњљћјњњќћ§§љљќћ§§њњ§ќњўћўўќ§ўўћћўѕћљ§њћјћљћљ§§љћњљћњћћшјљљћљћћ§§ћњўўњћјћљ§њњљ§њњєћўћўћљ§њњћћљљїћњњћљјјњљљ§јњ§љљћљљ§§їљ§љ§њ§јљ§§ѕњ§§ўћўў§ў§љљњ§ћэ§њ§љћћ§§њљљћљљјјљћ§§ћ§љўњњ§§њљљїјњ§њ§њћћљљћј§њ§њ§њ§ћћюњћљљњњўўњњљ§§љљњћљљћўљјј§љћ§§љі§ћ§њњ§љћљћћљћћњ§љћћєњ§њљћћњ§љњњ§ў§§ћўўњћ§§ўћ§§ќћ§ћўўјћ§ћ§ћ§§ўўњ§ў§ў§ўўў§ўўў§ўў§јћ§§ў§§ћ§§ўќћ§ћўў§іћ§§ўћ§§ў§ўўў§ўўў§ўўќ§ў§ўўї§ўўћњ§ћћ§§іў§§ћ§ўў§§ўўў§ўўјћ§§ў§ў§ўўќ§ў§ўўў§ўў§јћ§§ўћ§ћ§§ўђ§ў§§ћў§ў§ў§ў§ўўњћ§ћ§§ўўјћ§§ў§ў§ўўє§ћћў§ўћ§§ў§ўў§ќћ§ћўўў§ўўќ§ў§ўўўћўўќћ§ћ§§іћў§§ћ§ћў§ўўћћ§§ўћћ§§ћўў§§ў§§ў§ъњ§ўў§§ћћ§ў§ў§§ћњћ§ћћњћћўљњњ§јў§ў§ў§ў§§њћњќ§ў§ўўљ§ўўћ§§ўўћњ§љњћћћ§ўў§ўў§§ћњћћў§ћћћ§ћў§ўўћ№њ§њћћ§ћ§ћ§ћ§ћў§ўўќћ§ћ§§њў§§ћћњњќ§ћ§ћћ§§ў§ўў§їўћ§ћ§§ў§ўўњћў§ў§ўўњћ§§ў§ўўўћўў§љћ§§ўўћ§§ёћњ§ў§§ћ§ћў§ћћ§ўўћ§ћ§§ўўўћўўў§ўўі§ў§ўћ§њ§ћўў§іћ§њљћ§ћ§ћўўњ§ћ§ћ§ўўћћў§ўћћњћљњ§§ўўњ§ў§ў§ўўќ§ў§ўў§ћњћћ§ѓћ§§ў§ўћ§ћ§ћћњњ§ћ§ўў§ѕў§ўў§ћ§ћљћўўў§ўўќ§ў§ўўў§ўўъ§ўћ§ћ§ћ§ћ§ћ§ћў§ў§ў§§њћћі§ћ§§ў§ў§ћ§§њў§ћњћўўі§ў§§ћ§ћ§ћўўѕ§ўћ§§њ§§ћў§§§ў§ўўі§ўњњљњњћћўў§ўћ§§јўћ§ћћњњљљѕњ§ўћ§ћ§ћ§ћўў§ќћў§ўўўћў ў§ўў§§ ў№§ўў§њћњћњљњњћ§ћ§§ў§ўћўўћпў§ў§ў§§ћњћў§ў§ў§§њћ§ў§ўћў§ўћ§ў§ћўў§ьћ§њњћћ§ўў§ћў§§ћўў§ћўў§ўѓ§ћ§ўў§§ћ§ћ§ћ§§ќћљњ§§ыў§ўћ§ћ§ўў§§ћў§ў§ў§§ћўўў§ўўћ§ўў§ћћћ§ћ§ћ§§ўћ§§јћ§ћўў§§ћћѓ§ћ§ћ§§ўћ§ћ§§ўў§§ў§§ў§ћћў§ў§§ўјћ§ћ§ћў§ўўў§ўў§јћ§ћ§ўў§ўўщћўћ§ћ§ў§ћњћў§§ћ§ћў§ў§§њњѓў§ў§ўћ§ћ§§ў§ўўќ§ў§ўў§§ћњ§§ўѕ§ўў§ў§ў§ўћ§§ўћ§§ўўћћћў§ўћ§§їћ§њћћ§ў§ћћ§ў§јњћћњў§§ўўћ§ћў§ўўќ§ў§ў ўњћў§ў§ўўїћ§њћ§§ўў§§їў§ўў§ћ§ћ§§ъћ§ћ§§ў§ў§ўћњћћ§ћ§ў§ўћўўћ§ў§ћ§§№ў§§њћњ§§ў§ў§§ћ§ўўќ§ў§ўў§§ћўў§єћўћ§ў§ћў§ў§ўў§ўў§ўўќ§ў§ўў§ўў§ўўє§ў§§ћ§§ў§ў§ўўў§ўў§§њўўў§ўўў§ўўіћ§§ў§ў§ў§ўўўћ§§ђћ§њћћ§ўў§ў§ў§ўў§ўћўўў§ўў§іћњўћћ§ћўўћћњћћўўћ§§ўѕћ§њћћ§ћ§§ћ§§љћ§ћ§§ўћћ§ћ§ыў§§ћ§ћ§§ўў§ў§ћ§ћ§ћ§§ўўі§ў§ўћ§ћњћўўјћ§њћћ§§ўўј§ўћ§њћњ§§ђў§§ўў§ћ§ћ§ўў§ўў§ћ§ћћ§§ћ§§№ћ§ћў§ў§ў§ўћ§ћ§ћўўљ§ў§ў§§ўўя§ћў§ў§ў§ў§§ћ§ћ§ћўў§ќћ§ћ§§§ўћ§§ўћўў§ќћ§§ўўњ§ўў§§ўўў§ўўъ§ў§ўћњљћћ§§ћћ§ћў§ў§§ћўўњ§ўћ§ћ§§ѓўћ§ћў§ўћ§ћў§ўўќ§ў§ўўљћ§ћ§§ў§§љћў§ћћ§ўўћ§ўўћ§§ыў§ў§ў§ўћ§ћћњ§ћ§ћ§ўў§ўўўћ§§ѓў§§ћ§ўў§ў§ў§ўўј§ўў§ћў§ўў§ьњћ§§ћ§ћ§ћ§ћ§§ў§§ћ§ћўўњ§ўћ§њ§§ўћ§§ќћ§ћўўў§ўўђћ§ў§ћћњ§ћ§њњћўўј§ћ§§ћћ§ўўў§ўў§ўњ§ў§ў§ћћў§ћћћ§ћ§њ§§ўўћњњіћ§§ўњћћ§ћўўјћ§ћ§ћ§§ўўъ§ўў§§ў§ў§ў§ў§§ћ§ћ§ћ§ћўўјћ§њћ§ћћўўќ§ў§ўў§ў§ёћўћў§ў§§ћ§ћўћћ§§йўћћњћћ§§ў§ў§ў§ў§§ћўћ§ћў§ў§ћћ§ћ§ћћњћћ§ћўўћ§ћќ§ћћ§§іћ§ўћћ§ћў§ўў№ћњћћ§ћ§ўў§ў§ўў§њњљњ§ћњћћњњћћ§ћўўћ§ў§ў§§ёў§§ћ§њњћўћ§њ§§ўў§љѓњћњћ§ћ§ћў§ў§ўўюћ§ћ§ћњњћњ§ћ§ћ§§ў§ў ўў§ўў№ћ§ўў§ў§ўћ§ћ§ћ§ћўўќ§ў§ўўњ§ў§ўћ§§њћїў§ў§ўћў§ўўђћ§ўўћ§ћћњћњћћўў§ўѕ§ў§ў§ў§ў§ў§§іћ§§ћћ§ћ§§ўўќћў§ўўј§ў§§ў§§ћћљ§ћўў§њћћ№ў§§њњћћњ§§ў§§ћ§ћћђў§ўў§ў§ўћўћ§ћўў§ќћ§§ўўў§ўў§їћ§ћ§ћћњћ§§їўћ§ћћњћћўўї§ўў§ћ§§ў§§ў§њ§ћў§ўў§§ќћў§ўўќ§ў§ўўњћ§§ћћ§§їў§ў§§ћ§§ўўі§ў§ў§ў§§ћ§§ќћўћ§§ќњ§ћўўў§ўўј§ў§§ћў§ўўў§ўўў§ўўњћ§§ў§ўўў§ўўћўњћћїњћћ§§ћ§§ћћ§§ў§ў ўў§ўў§§ў§ўўє§ў§ў§ў§ўћћ§ўў§ћ§ўў§ќўћ§ћћ§ў§ўў§ўљ§ћ§ћ§§ўў§ћў§ўћўў§ўћ§§ўш§ў§§ћ§њњћ§ћ§ўў§ў§§ћ§§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўўќћ§ћўў§§ў§§§ў§ўўђ§ў§ћћњћ§њћћ§ћ§§іћўћ§ћ§ћ§ћњњљћў§ў§§ћћ§ќў§ў§§ўў§§ќћ§ћ§§ћћў§ў§§ўћўўњ§ўћ§ћ§§ўћ§§ўћ§§юў§ћћ§§ћў§њљћљњћ§§ўўяћў§§ћ§ў§ћ§њ§ћў§ў§§ћў§§ћ§§њћ§ћ§ћ§§ѕћ§ћ§ћ§ћњћ§ўў§ѕњћ§§ћ§ћ§ћ§ћћђњћћ§њ§ћ§ћ§§ў§ўўћљ§ћўћ§ћўў§ћ§ћћ§ћ§њћћ§ьў§§ћ§ћ§ћ§њћћ§ћ§ћ§ћ§ћћ§ўћўў§ќћ§ћ§§њќћ§ћ§§ѕўћ§њћ§ўћ§ћ§§ќћњћ§§ќњћњћћўњљљєјњњћ§ћћњћњћњњєћ§ћў§ўў§ћ§ћ§§љћ§ћ§ћ§ћћћ§ћ§ћ§§ќћ§љ§§єћ§§ћњћћ§ћћњћћэњћњћњћћњћњћћњћњћњњћћ§ќћў§ўў§§ўћћѕ§ћ§ћў§ў§§ћњњѕљњњ§ћў§ўў§ўў§љћ§§ўћ§ћћў§ћћ§ўњћћњљ§ћ§њ§ћ§§єћ§ћ§ћ§ћ§§ћњћћ§јћўћ§ћ§ћ§§ћ§јњћљњњћћ§§ќћ§њ§§ќћ§ћ§§ќћ§ћ§§ўћ§§ў§§ћ§§ћћ§ћ§ћћјљњњћњљјљљњыћ§ћћ§ћ§ћ§ћњћ§њ§њћћ§ћ§§ќћ§ў§§ћћ§ўўћћјњљћњћћљњњїљњњћћњћњћћ§њћ§§ўўћ§§ћћњћћњњћўў§§њћ§§ћћ§§ћѕ§њљљјљњњћњ§§љћ§ћћ§§ћћјњљњћ§ћ§ћћњ§ћ§§ћљљћ§№ћ§њћ§ћ§ћњћћњњ§ћ§§ќћњљњњћљћћњћћќњћњћћїњћћ§§ўћ§ћћѕ§ћў§§ћ§§ћњћћёњ§ћў§ўў§ћўў§ћћ§§ћњњћњћћ§§ћњьљњњћњ§ћ§ћ§ћ§ћћњћњ§ћ§§њћ§ћ§ћ§§ћъњћћўў§њћћ§ћњњ§ћњћћњњ§њњїљћњћњњћћњњіћњљњњљњњћњњљњіљњњћњћ§§ћ§§ќњ§њћћ§ў§ћєњћ§ћњћљћњћњћћђљњћњљћћњљљњњ§ћћќњ§ћ§§ќћ§§ўўћ§ў§§ўўы§њћ§§ћ§ћћњћ§ћ§ћћ§ћњљњњ№§ћћњћњћћ§њ§§ў§њћћ§ўў§§њў§ў§ў§§ўњћћ§њњћњњљћћј§ћ§ћ§ћўћћљ§ћ§ў§ћ§§ћє§ћ§ћ§§ў§ўћўћћў§ћњ§ћцњ§ћ§ўћњћћњњћњ§ћ§ћ§ћћњћњ§ћ§§§ћ§ћћ§§ћњћћэњћњњћ§ћ§ћ§ћћњћ§њћћ§§њў§§ў§ћћ§§њћћѓњћњћ§њњћњ§ћ§ћћ§ўћ§§јћњћћњћњћћэњ§ћћњћњ§ћ§ћћњ§ћћ§§ћўў§ўўў§ўўњ§ў§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўўў§ўўя§ў§ў§ўћў§ў§§ўў§§ўўў§ў ўў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўў§ў ўў§ў ўќ§ў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўќћў§ўўў§ўў§ўў§ўўј§ў§ў§§ћ§§§ћ§ћћ§ў§ўў§§ўћ§§§ў§ўўў§ўў§ўіћ§ћў§§ћў§ўў§іћў§ў§ўў§§ўў§њўћў§ў§§§ў§ўўњ§ў§ў§ўўќ§ўћ§§љў§§ћ§§ўўў§ўўќ§ў§ўўў§ў ўњ§ў§ў§ўў§§ў§§ўў§ўўў§ўўћ§ў§§ўў§ўћўўі§ў§§ћў§ў§ўўњ§ў§ў§ў ўјћў§ћћ§§ўўіћўћўћў§ў§ўўї§ў§ўћўћ§ўўў§ўўљ§ў§§љћўўі§ў§ў§ў§ў§ўў§јћ§ћў§ў§ўўў§ўў§ћ§ў ўњ§ў§ў§ўў§§ў§ўўў§ўўљ§ћњњўћўўќ§ў§ўў§ўћ§§єњ§§ў§ў§ў§ў§ўўў§ўўў§ўўћ§ў§§ў ў§єћ§ћ§ћўћ§§ў§ўўў§ўў§ў§ўћўўќ§ў§ўўћ§ў§ў§§ўў§ўўў§ўўў§ў ўќ§ў§ўў№§ў§ў§ў§ў§§ћ§§ў§ўўќ§ў§ўўў§ўўў§ў ўю§ўћў§ў§ў§ў§ў§ў§ў§ўўі§ўў§ћў§ў§ўў§ ўў§ў ўў§ўўќ§ў§ў ўњ§ў§ў§ўўћ§ў§ў§§ўќ§ў§ўў§ўћўўќ§ў§ўўњ§ў§ў§ўўў§ўўє§ў§ў§ў§ўў§§ўў§ўў§§їў§ў§ўћ§§ўўє§ў§ўў§§ў§ў§ў!ў§ќћў§ўўў§ўўє§ў§ў§ў§ў§ў§ўў§ўћў ўў§ўў§ўќ§ў§ўўў§ў ўў§ўўќ§ў§ў ўќ§ў§ўўќ§ў§ўўў§ўў§ ўў§ў ўћ§ў§ў§§§ў§ў ўў§ў ўі§ў§§ўўћ§ћўўћ§ў§§ўў§ѓў§ўћў§ў§ў§ў§ўўіћў§ўћ§§ўћўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўў§ќћў§ўў§ћў§ў§ўўњ§ў§ў§ўўў§ўўј§ў§ў§ў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўўј§ў§ў§ў§ўўќ§ў§ў ўќ§ў§ў ўў§ў ўњ§ћћў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ўўќ§ў§ўўі§ў§ўў§ћў§ўўќћў§ўў§§ў§ўўў§ўўќ§ў§ў ўў§ў ў§ўћўўј§ў§ў§ў§ўўњ§ў§ў§ўў§їў§ў§ў§ў§ў ўї§ў§ўћ§§ў§§ўј§ў§ўћ§§ў ўќ§ў§ўў§ќў§ў§§ў§ўў§ўўє§ўњў§ўў§ћў§ўўњ§ў§ў§ўўў§ўў§ўќ§ў§ўў§ўћўўў§ўўў§ўўў§ўўњ§ў§ўњўўі§ў§ўћ§ћў§ўўў§ўўў§ўўєћў§ў§ўћ§ћў§ўў§љћ§ћ§ћў§§єћў§ў§ў§ў§ў§ўўјћ§ћ§§ў§ўў§ёўћћ§§ћ§ћ§ћ§ћ§§ў ўў§ўў§§ў§§ў§ўє§ўњњћ§§ў§ў§ў ў§іњћћ§§ў§ў§ўўњ§ў§ў§ўўћ§ў§§ћћўў§ўўљ§ўћ§ћ§ў ўў§ў ўњ§ў§ў§ўўќ§ў§ў ўќ§ў§ўўњ§ўћў§ўў§ќћ§§ўў§ўі§ў§ў§ў§ў§ўўў§ўўќ§ў§ў ўѕ§ў§ў§ўћўћ§ўўњ§ўћ§§ўўќ§ў§ўўќ§ў§ўўњ§ў§ў§ўўќ§ў§ў ўј§ўћў§ў§ўўњ§ў§ў§ў ўњ§ў§ў§ўў§ќў§ў§§ ўў§ў ўў§ўў§ѕћўћ§ћў§§ўў§§§ў§ўўў§ўўў§ўўўћў ўў§ўўў§ўў§ўћўўў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўў§§ў§§§ў§ўўќ§ў§ўўў§ўўў§ўў§§ў§§љћ§§ў§ў§§§ў§ўўі§ў§ў§ў§ў§ўўњ§ўћ§§ўўў§ўўі§ў§ў§ў§ў§ўўјћў§ў§ў§ўўь§ў§ў§ў§ў§ў§ў§ў§ўў§§ўўў§ћћ§ў§њў§ў§ў§§ўф§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўўы§ў§§ћў§ў§ў§ў§ўћ§ћ§§ў§§§ў§ўў§јћ§§ў§ў§ўў§яў§ў§§ћў§ў§§ћ§§ў§ўў§њў§§ћў§§ѕў§ў§ўћў§ў§ўўљ§ў§ў§ў§§їў§ў§ў§ў§ўў§ѕћў§ў§ў§ў§ў§§ѕў§§ћ§ћўћўћњњћ§ћўћ§ћ§§ќћ§§ўў№§ў§ў§ў§ў§ў§ў§ўћ§§Яў§ў§ў§ћ§ў§ў§ўћ§ћў§ўћ§ћўћ§ћћ§§ћў§ўњ§ћ§ћ§ћ§§ўћў§ў§ўўњћў§ў§ўўє§ў§§ћўћ§§ў§ўўў§ўўњ§ў§ў§ўў§њћ§ў§ћўў§ѕћ§ћўћўћ§§ў§§їў§ў§ў§ў§ўўі§ўћ§ћ§§ў§ўўщ§ў§ў§ў§§ћў§§ћћњ§ћ§§ў§ў§§ыў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўўѓ§ў§ў§ў§ў§ўћ§ћћф§њ§ћ§њ§њ§њњљњњћ§ўћ§ћў§ў§ў§ў§§ўћўўі§ў§ў§ў§ў§ўўѓћ§ћћ§§ћ§ћўћўћћѓ§ћ§ћ§ћ§ћ§ћў§ўўђ§ў§ўћ§ћ§§ћћ§ћўўє§ў§ў§ўћ§§ў§ўўї§њ§њћњўћ§§јў§ў§ў§ўћћєўћў§ў§§ћў§ў§§ћяўћў§ў§ў§§ћўћ§ћ§ћ§§јў§ў§ў§ўћћї§њўњћћ§ћ§§№ћ§ћўћ§ћ§ћў§§ћў§ўў§§ў§ўўњ§ў§ўћ§§ќћ§§ўўў§ўўў§ўўЬ§ўћ§ћ§ћ§ћў§ў§ў§ўњћњћћ§§ў§ў§ў§ў§§ћ§§ў§ў§ў§ў§ў§ў§ўћ§ћўў§§ў§§ћў§ўћ§§ћ§§њ§§ћѕњ§ћ§ћћњ§њ§ћћћњ§њўћћі§ћ§ћ§§ў§ў§§§ў§ўўу§ў§§ћ§ћ§ћ§ћ§ћўћ§ћ§ћ§ћ§ћ§ћўћ§ћћњўњ§§ў§§§ў§ўўќ§ў§ўўў§ў ў§ћўћ§ћ§§їў§§ћў§§ћ§§ўћ§§ћћў§§ўўє§ўћ§§ў§ў§ў§ўўњ§ў§§ћ§§§ћў§§ћъўћ§ћ§§ў§ў§ў§§ћ§ћў§ў§ў§§ѕў§§ћў§ў§ў§ўў§ўњ§ў§ўў§§мў§§ћ§§ў§ўћ§ћ§ћўћ§§ў§ў§ўћ§ћ§§ў§ў§ў§ў§§эў§ў§§ћ§§ў§§ћ§§ў§ў§ўўћћ§ћў§§§ў§ўўќ§ўћ§§ќћ§ћ§§§ћў§§ћў§§ћўў§§ў§§њћ§ћ§ћ§§љўћ§ћ§§ўўњћ§§ўћўўњў§ўўўћњњцљњћњљљћњњ§јњјїљњ§§њўўћўўћўўўћўўѓ§љњљљњњ§ћћ§ћ§§њћўў§њ§§ћљ§§љ§§ўў§ўўэ§њ§ћњћћљћљњ§њ§§ўўљўўєњјћ§ўћњћћўћњњљћўўњљћ§§ѕћљў§ћ§јљ§ћўў§ўўћўўћ§љљњ§§ў§ўћўўћњўћўўћўўћўыћў§њ§ў§ћњћ§§ўћўўњљ§љў ў§ќњўўћћњўњ§ћјїїъј§ћў§§ћћњњ§њњ§њњ§§ћў§љљњ§їњћў§§ўўћўўјћўў§§њ§ўў§єљњћўў§њўўћў§§ѓњ§ћўћўћўїљњћўўўњ§§ўњўўўћўўћўј§њњ§њћћўў§ћњўўњј§њљ§љљњљљњћ§њњ§ћћќ§њњ§§њќћ§§ўўљћўўћў§ўў№§њњљњљјљљћ§ћћљћ§§љѓјћњєјљљ§ћљљ§ўўњ§ў§ўћўўёћњўњ§њјјїј§љјњ§§ў§њ§јњљћљћљњўўњ§ьљ§њ§ўњ§њ§љљћљљњ§§ћљ§§їўћўўћћўћ§§ѓў§њ§§њ§ўў§§њўўќћњ§ћћћљ§§љ§§ўѓћњћћўў§љљћљ§ўўќ§љ§ўўўћўўњ§їњ§ћўўњ§§ўўїћўћњњ§§њћћћј§њњ§§ў§§ћўњњ§ћјўћўћўўћўўѕ§њњћўўћўњћ§§§ўћўўўћўў§§љ§ўў§ћњўўћўўўћў ўўћўўѓ§ћњ§§ўћњ§ћћ§ўўљћўўћўў§§ўўћўўљњ§ўўћћўўўћўўіјљћљ§§ўњћўўћћўўћўўљ§њ§ўћћўўќћўћўў§ўњћћўќћ§ћўўќћўћўў§§љ§§ў§ћњў ў№ћўўћўўћўўћ§њљћ§њњ§ћњ§ўў§§ќўћћўўўћўўќћ§§ў ў§њўћўўњћўў§ћўў§ўћўў§ў§№ўћў§§ћўљћћњўўњћўўћњљљњўўњ§њ§§ѓћњ§ћљњ§§љ§§ћ§§§ў§ўўќњ§§ўўќ§њ§ў ўѕћў§§њњўњ§§ўў§§њћўў№ћњ§њ§§њљљњ§ћ§§њћћыљћўћўўћўўћћњњўўћўћњ§ў ўє§љјјњ§ў§§њ§ўўўћўўѕ§љ§њўўћўўћўўќњ§§ўўїћў§§ўўћў§§ёћњ§ћћљљњћћў§ћћўўўћўўќ§ћћ§§§њ§ў ўј§љјјћ§§ўўўћ§§њ§њ§ўњљљћ§ўўћўўўћўўћћўўћўўќћўў§§ћў§ўў§њўњњўў§§§ўћўўћћўўћўўћ§њ§њўў§§њўўћўўћўўўћўўњ§§ћ§§ћќў§§ўўў§ўўўћўўњћўўћњўўњћўњ§њўўўћ§§љўћўћўў§§ўў§§№љўњљћћљљњўћўћ§њ§§ќњћ§ўўўћ§§ўѕњјњњљњћўћћўўљћ§њћўћўўўћўўїћ§њћўўћ§ўўїћ§§ўў§ўў§§ўјћўўњ§љ§ўўўћўўњњ§§ћљњњќ§ўў§§ўћћўћў§§ьњ§њ§ўћњњ§§ўўћћўўћўћўўўћўў§њ§ўўўћўўќ§њљ§§ў§ћ§ўў§§њ§§ћ§ўћўўўћўўњ§ћ§ўў§§ў§њўў§ўўќњ§љ§§ќў§§ўўїњ§ўўњљћћўў§ћљњ§њ§ўћўўњ§љњљјљљ ў§§ўћўўќљ§§ўўіћў§њњў§љ§ўўњ§§ўћў ўюћўњњљљћњњ§њљљїјћћ§§ќњ§§ўўўњўў№ћ§ћ§ўўћў§ћ§љј§њўўў§ћћњњ§ўўћўўњ§љў§њ§њњўўўћўўћ§ъњ§њўћћўўћўћўћўў§њћўћћўў§њќ§ўўћћўўћўўіћ§§ўћўўћћ§§ўў§§ћ§њћўўў§ўўўћўў§њ§ўўўћўўћћўўћўўќ§њћўўћћњ§§ўўћћўўћўўўћўўћ§њ§§ўўњў§ўўјљ§ћћўћћўўўћўўћћњ§њ§§єћњ§њ§ћћўўћћўў§ў§ўўћ§§њў§ћћѕњўўћўћўњѕћ§§ўў§љљўћўўўћ§§ќњ§ў§§њљњњ§њўўцћљ§љ§ўўћљћћўўћ§њћљњћў§ї§њ§§їћљњ§њ§§ћўўўћўўњўќћўњ§§§ћў§§ѕњ§ћўўњ§њ§§њњўѓћ§њњ§ўћ§ћљљј§§ћњ§љњўўўћўўўћўўљћ§њњ§§ўўљњ§њњљћ§§њъ§њ§ўћў§§ўў§§љ§ўњњљћњў§§§ў§љљїћњљњ§§ўћўўў§њњ§єњљјћљїїјћљљћћ§љњўў§јћўњћљј§ћћў§§њ§§ўњ§§ўў§§ћљљћ§§љљўў§љўњ§§ўў§§јљяћ§§ћњ§њњ§њљ§ћ§љїћћјљќћљљ§§њњћўўћўўїљјљ§ћўўњ§§ьћјћ§§љ§§њњ§ўў§ћјљ§њ§§њ§їћўћўўћћљ§§§ћ§ўў§ћўњ§њ§§ћљћ§ў§ьљ§њћўўњ§љљ§§ўўћў§§љ§§ъњћћљћљјїїјљ§њ§§ћљћњћў§§ђћјїљћњ§ј§§њ§њ§§ћўњ§§ў§ўњ§§ўњћћщњћјљњјјљћ§ў§ћњ§§њ§§ўїљ§§ўќњћљ§§љњ§§њњћўў§њч§ўћўў§§ўў§§ћљјљ§ўћўў§њћњ§§јњћљћ§§ўўћ§љњњў ў§ўёћњ§ћљћљћљњњћћљ§§§њљћћ№љњјјћ§§ћўўњўњ§§ўў§љђњ§њ§§њљћљјјљћ§§ў№њ§ўў§§ўў§ўў§њ§ћ§§ђњћўћљў§§ћћўўћўўњѓў§§љјљљћљјћњўўўћўўўњўўѓћ§§ћўў§§њњ§§ўўњјљћњћћљ§ўўўћ§§ўѕ§њўў§§њ§њ§ўў§ў§ьў§ў§ћћњ§§ћ§љњњћ§§ћ§ўўќ§ў§ўўї§ўў§ћљћћ§§ўњћћъ§ћ§ћў§ўћ§ћ§ћўћ§ў§ћ§§ў§§ўў§ўўљћ§ћћ§њћћљ§ћ§ћ§§ўўі§ў§§њ§§ў§ўў§ўю§ћњ§ћ§ћ§њћўћўћ§ћ§ўўћў§ўў§ћ§іћ§§ў§ўћ§ћўўў§ўўў§ўўў§ўўў§ўў§њ§§ћўўљ§ћ§ўў§ўўў§ўўєћ§ћ§ћ§ћћ§ў§ўў§ћ№њћљљњ§ўўћ§њћ§§ћ§§ћћ§ўўћћ§єћ§§ўў§ћў§ў§ўўўћ§§ў§ћў§ўўќћ§§ўўїћ§ћ§ћћ§ћўўю§ў§ўў§ўў§ўў§ћ§ћ§§ўўњ§ў§ў§ўў§§ћ§ўўђ§ў§ў§§ћ§ў§ўў§ћћўњ§§ћњўћ§§ћ§ќњћћўўћ§ўўћўў§іћ§ў§ћћњ§њћћэ§ћ§ћћњћљћњћћ§њћћ§§ўў§ ў§ћ§§ћ§§њћ§§ўћ§§ћћ§ћ§ћћќњћ§ўў§јћ§ћ§ћ§ў§§§ћ§ћћ§§ћњћћ§§ћўўў§ўў§њћўћ§ћ§§ћўћ§§ўўѓ§ў§§њћњћњћћ§ћћћ§ћ§§ўўў§ўўў§ћћ§ўў§§ўњ§ў§ўў§§ќћ§ћўў§ќћў§ўў§љћ§њћњњ§§їћ§ћў§§ћў§§ћўњ§ў§ў§ўўќћ§§ўўї§њћ§ћ§ћ§ўўћ§ў§§ћћўќћ§§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўѓ§њ§ћ§§ў§§њћћўўќ§ў§ўў§ќћ§§ўў§§ў§§ўќ§ў§ўўў§ўўўњћћўў§ўўў§ўў§ўў§ў ўќ§ћ§ўўј§ў§ўћў§ўўі§ў§§ў§ћ§ћўўў§ў ўў§ўўћ§ўћ§ћћ§ўћ§§ћўћ§ћўўќ§ў§ўўќ§ў§ўўћћ§ў§ўў§рў§ў§ў§ў§ўћў§ў§ўћ§ўў§ўћ§ћ§§ў§ћћ§ўў§ћ§ўўњ§ћў§ў§ўў§ћѕ§ўў§ћ§ћ§ћ§ћћѓ§ћў§§ћћ§ћ§ў§ћћ§ўћўўў§ўўњ§ў§§ћўўјћ§ћў§ў§ўўз§ћ§§ў§§ћў§ўћ§ћ§ўў§ўў§ћ§ћ§§ћћ§ћўћ§§ћњћњћњўўѕ§ўў§§ў§ў§ў§§ћў§ў§ўўў§ўў§јћњ§§ћўћ§§ўў§ўўј§ўў§ћ§§ўўј§ў§§ћў§ўўќћ§§ўўѓћ§ћ§ў§ћћњћћ§ўўўћў ўњћњњ§ћ§§фў§ў§ў§ў§ў§ў§§ћњ§ћћ§ўў§ўўћ§ћ§§ќћ§ћ§§§ћ§ћћјњћћ§§ў§ўўј§ў§ў§ў§ўўќ§ў§ўў§ъћ§њћћў§ўћ§ў§§ўўћћ§§ў§ўўљ§ў§ў§ў§§јћ§ў§ўћ§ўўў§ўўў§ўў§§ў§§ћў§ћ§ўўќћ§§ўўўћўўў§ўўў§ў ў§яў§ў§ў§ў§ўћ§ћ§§ў§ўўќћ§ћ§§ѓћ§ћў§§ћњњћћ§ўў§ўћ§§ђњ§ўў§ў§ўћ§ћ§§ўўў§ўўї§њљљћ§ў§ўў§§ў§ўўѓ§ў§ў§ў§ў§ўћ§ўўўћўўє§ў§ўў§§ў§§ў§§§ћ§ўўі§ў§§ў§§ў§ўўў§ўў§ћ§іћў§§ћ§§ў§ўўѕ§ћ§ћ§ћ§ћўў§§ўћўўќ§ў§ўўќ§ў§ўўў§ўў§§ў§ўў§ћў§ћћўўћўўњћ§ћ§ћўўќ§ў§ўўў§ўўё§њ§§ўћ§ћ§ћў§ўћ§§ўўћўў№§ў§§ћўћ§ћўћ§§ў§ўў§ћўљјћўўћћ§ўў§§ўќ§ў§ўў§ќћ§ћўўў§ўўў§ўў§§ћўўў§ўўћ§ћў§ўўёћ§§ўћўћў§ў§§ћ§ўўќ§ў§ўўї§ўў§§ћћњ§§ћјњћњ§ћ§ћ§§ўћўўў§ўўј§ўў§њћ§ўўїћњ§ћ§ћ§§ўўћњ§ў§ђћ§ћўћ§ћ§§ў§ў§ўўў§ўўћ§ўў§ўў§ўќ§ўћ§§ўћўўў§ўўќ§ўў§§§ў§ўўќћ§ћ§§ѓћ§ћћњћ§ў§ў§ў§§§ў§ўў§§ў§ўўї§ўў§ў§ў§ўўћ§ўћ§ўў§ќћў§ўўќ§ў§ўўў§ўўї§ўћ§§ћў§ўў§§ў§§ўќ§ўћўўў§ўўќ§ў§ўў§їћ§§њ§ћ§ћўўў§ўўє§ў§§ћў§§ћ§§ўў§§ћ§§њњћњ§§ўўљћљ§ћў§ў§ўўћўњўўє§ўћ§ћ§ћ§ћ§ћ§§ќћ§ћ§§ўљњћ§ў§§ўў§ћі§ўўћўћ§ћ§ћћњ§ћ§ћ§ўўў§ўў§ўђ§ћћ§ћ§ўўћ§ћ§ћўў§ўћ§§ў§эћўў§њћћњ§ћ§ћ§ћ§ћў§ўўі§ў§ў§ў§ўћ§§ўћўў§ћћ§ћ§ћ§§јў§§ћўў§ћћєў§§ћћ§ўћ§ћўћћќњљћ§§§ў§ўўћ§ў§ў§§іћ§ћ§њћњћњћћјњћњњћ§§ўўћў§ћћјў§§њћ§§ўў§ђћ§ћ§ћ§ћ§ћ§ћ§ћ§§ђћ§ћ§њћњњћњћ§§ўўіћ§ћў§§ћў§ћћі§ћњћћњ§§ў§§ўћ§§љў§ћћњћњњћєњўў§ћ§ћ§§ў§ўўћ§ўћўў§іћ§њ§њ§ћўћ§§јћўў§њњћ§§ћ§§ћ§ўўђћ§§њ§§ў§ў§§ћў§§њћ§ћћњћћњ§§ћўўћћ§ћ§ћћў§ўўў§ћћ§ўћћ§ўћ§§ѕћњћњћњљљњћ§§ћљ§ўў§ћ§њњшћњ§ћ§§ћ§ћ§ћ§ћћњ§ћ§ћўў§ћ§§ъћ§§ћњњ§ћ§ћљњњћњ§ў§њ§ћ§§ёћўћћ§ћ§ћ§ћ§ћ§ћўўі§ћћ§ћ§ћ§ћ§§ўњ§ўћ§ћ§§ўщћ§ўў§ћўў§ћ§§ў§ўћ§њ§ћ§ћ§§№њћњ§ћў§ў§§ў§§ў§ўў§§ў§§ўћўў§щњћњћњћљљњњћ§ћ§ћ§ўћњњћљњњѕ§ћў§ў§ў§ћћўўњћ§ћћў§§§ћ§ћћ§јћњ§ћ§§ў§§їўћ§§ўћўў§§іњћћ§ћ§§њ§ўў§§ћўўў§ўўі§ў§§ў§ћћ§ћћќ§њ§ўў§§ў§§ўј§ћў§ў§ћ§§ўћўў§јћњљњћћ§ўўњ§ћ§ћў§§їў§§ћ§ћ§ћўўќ§ў§ўўў§ўў§ѓў§ў§ћћўћў§ў§ў ў§ёў§§ўў§§ћўћў§ў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўё§ўћўўћ§ћ§§ў§ў§ўўќ§ў§ўўќ§ў§ўўљћ§§ў§ў§§ўќ§ў§ўў§ћў§ў§ўўў§ўўі§ў§ў§§њ§§ўў§ўњ§ў§ў§ўўі§ўћўћ§њћ§ўў§ќћў§ўўњ§ў§ў§ўўї§ў§§ў§ў§ўўў§ў ўќ§ў§ўўќ§ў§ўўў§ўўљ§ў§ўў§ўўќ§ў§ўўњ§ў§ў§ўўњ§ў§ў§ў ўѕ§ў§ў§ў§ўћў§§ѕў§ўћ§§ў§ў§ўўћ§ў§§ў ў§§ў§§ћў§§ћ§§љћ§ћў§ў§§њўћўћў§§ўќ§ў§ўўљ§ў§ўћў§§ћў§ў§ўўѓ§ў§ў§ў§ў§§ћў§§ўў§ўўф§ў§ў§ў§ў§ў§ў§ў§ў§ўћ§ћ§ћў§ў§ўўў§ўў§ўњ§ў§ў§ўўў§ўў§ђћўћ§ћў§§ўў§ў§ўў§ћ§ўќ§ў§ў ўќ§ў§ўўў§ўўё§ў§ў§§ћ§ћ§ў§ў§ўўў§ўўў§ўўў§ўўј§ў§ў§ў§ўўќ§ўћўўў§ўў§§ў§ўў§ўћў ўќ§ў§ўўў§ў ўћњ§ћ§ўўќ§ў§ўўќ§ў§ўўњ§ў§ў§ўў§ўћўўњ§ў§ў§ўўў§ўўў§ў ў§ўў§ўўќ§ў§ўўў§ўўў§ўў§ ўњ§ў§ў§ўўў§ўўќ§ў§ўўў§ўўѕ§ћ§§ў§ў§ўћў ўў§ўўў§ў ўќ§ў§ўўў§ўўќ§ў§ўўў§ўўњ§ўћ§§ўўї§ўћ§ћ§ћ§ў ўў§ўўў§ў ў§ќњ§§ўўќ§ў§ў ў§ ў§ўў§ўўј§ў§ў§ўћ§§ў§ћў§ў§ў ў§њћ§ћў§ўў§§ў§§њў§ў§ў§§ўў§§њћ§ћў§ўўњ§ў§§ћўўў§ўўў§ў ўў§ўўў§ўўј§ў§ў§ў§ўўў§ўўў§ў ўќ§ў§ўўј§ў§ў§ў§ўў§ўћўўћ§ў§ў§§ўќ§ў§ўўў§ћћ§ўў§ўўў§ў ў§ўњ§ўў§§ўўќ§ў§ў ўј§ўћў§ў§ўўќ§ў§ўўј§ў§ў§ў§ўўќ§ў§ўўў§ўўњ§ў§ў§ў ўў§ўў§ўќ§ў§ўўќ§ў§ў ўњ§ў§ў§ўўў§ўўљ§ўўћњћўўў§ўўќ§ў§ў ўћ§ў§ў§§ ўў§ўўў§ўўў§ўўў§ўўќ§ў§ўў§јў§ў§ў§ўћћ§љў§ў§ў§ў ў§ў§ќћў§ўўњћ§§ў§ўўў§ўўќ§ў§ў ўў§ўўќ§ў§ўў§ўє§ў§ў§ў§ўћ§ћўўў§ўўў§ўўў§ўўў§ўў§ ўў§ўўў§ўўћ§ў§ў§§§ў§ў ўў§ўўќ§ў§ўўє§ў§ў§ў§§ћ§§ўўњћ§ћў§ўўћћў§§ўўь§ў§ў§ў§ў§ў§ў§ў§§ўў§ўўњ§ў§ў§ўўў§ўўњ§ўћ§§ўўє§ў§ўћ§§ў§ў§ў ў§ ўќ§ў§ўўў§ўўј§ў§ў§ў§ўўќ§ў§ўў§їћ§ў§ў§ў§ўўќ§ў§ўўі§ў§§ћў§ў§ўўљ§ў§§ў§ўўў§ўўќ§ў§ўў§§ћўўў§ўў§§ў§§ўћ§§ ўљ§ў§ў§ў§§§ћўћћћ§ћ§ћ§§ўў§ўў§ќћ§§ўў§щў§ў§ў§ў§ў§ў§ў§ў§ў§ў§§ћ§§ћў§ў§ўўњ§ўў§§ўўњ§ўћўћ§§њў§§ў§ўўъ§ў§§ћ§ћ§§ћћ§ћ§ўў§ў§ў§ўўў§ўў§§ў§§љў§ў§ў§ўў§њћ§§ў§ўўќ§ў§ўў§§ў§§ўў§ўўі§ў§ў§ўћ§ћ§§ўћ§§ўј§ў§ў§ў§ўўљ§ў§§ў§ўўш§ўў§§ўћ§ћ§ћћњ§ћ§§ў§ўћ§ћўўё§ў§§ћў§§ўў§§ў§ўўј§ўћ§§ў§ўўэ§ў§ў§ў§ўћ§§ўћ§§ўћў§§ўў§§юў§ў§ўўњ§§ў§ў§ў§ў§ўўєћ§§ў§ў§ў§ў§ўўќ§ў§ўўў§ўўћ§ўў§ўў§ў§ќў§ў§§ўќ§ў§ў ў§ў§ћћ§ћ§ћћ§љў§ў§ўћ§§њћўћ§§ў ўѓ§ћ§§ў§ў§ў§§ћ§§§ў§ўўў§ўўў§ўўє§ў§§ўў§ў§ў§ўўў§ў ў§ѓў§ўћ§ћ§ћўћ§§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўў§њћўћ§§ўўќ§ў§ўўў§ўўњ§ў§ў§ўў Рўћ§ўћўўћ§ћћљ§§ўўћўў§§ўћўў§ў§ћўў§§ќњ§ћўўўћњњ§тћњ§ў§њњ§ї§§њ§§ўћ§ћћњћћ§њўў§§ћ§§§ўњўў§њ§ўўћў§ћњ§§іў§§њћљљ§§ўўї§њњ§ўњљћ§§ћњўћ§§њњћўњјїўўўњ§§ў№њ§§ўћўњ§ћљљћћ§њ§§ўњњ§ћљћ§§ўљ§љћљћћљљћ§ўњўјўўўћўўхћўћўћћўћћў§§ў§§њ§ўўћ§њ§ўўћўў§ќў§§ўў§њњћћ§њўў§њ§ўўў§ўўўћўў§ќљўњўўќњ§§ўў§ўіћў§§њ§§ўћўўљћўћўўћўў§ћ№§ћўўњњћѕјљљєњћћ§§њь§њ§§ўў§§љћ§§њ§њњ§§њ§§њш§ћћњ§ўўћў§њ§њјћ§§њ§ў§§њ§§ўў§§ћя§њ§§њ§ћњ§ўў§§њўћўў§ўљ§ўў§§ћ§§§њ§ўўњ§њћ§§ўў§љј§њ§ћў§њ§§ў§ўњћў§ўўњ§ћћўћњћўўќћњћўўўћўўѓћ§ѓєѕ§ўўћљњ§ўўћћўў§ўўќњљљћћљ§ћњ§ўў§§ўљ§§ћ§ќўћћўўя§њ§§љјїјјњћљ§њњўњњђљћћљћљ§ўњўћўў§§ў§ў§ў§ўњћћ§њљћљћњўў§ў§§њ§ўў§іћљјљ§ћљљ§њњї§ћћўћўњћўўўњўў§ћ§љљњў§ћњ§§ћњ§ћўўћ§§№ўћћў§§ћћљљ§§њћћњњћћљћћўў№ћўћћ§њ§ўћўњ§ўў§ўў§ѕљћљјњ§§ћјјљљјєћ§§љћњњјћћњ§§ўњ§ћјњњ§§ўњўўіњ§ћћ§ћљ§§ўў§ћў§§ѕћ§њўћ§§љјљћћ§ўњ§§ўњћћўћњ§ў§њњў§њў§§ўўћўў§ў§ёћњјњњћ§§њћ§§њў§§§љћўўћў§ўў§ўў§љћў§ўў§ћ§ўњ§§ў§ ў§§ћўўјћўњ§љўў§§ўэћњњћјћњњўњ§ћљњљћњњ§§љћљћћњ§ўўћњ§§њўўўћўў§§ў§§ўўћўў§ћў§§ўњ§§ћ§ўњ§§ўўћўўљћјћћ§§ўўўћўў§ћњћ§њўў§ўїћ§§њњўћў§§ќњўў§§ўэ§љјјљ§ў§§њћ§ўў§ћћ§ўў§ўѓ§њћљћјћћљљћћ§§њў§њ§§ўўјћ§§љљ§њ§§єў§§ўўњћјјњћљљўѓњ§њћћњћ§§њњ§ўў§ўњ§§љњјљ§ўњўў§§њўў§ў§ћў§§ђљћ§ўў§§љљћћ§§ўў§ћњћћ§ўўћў§ќњ§§ўўљћ§ў§њ§ўў§њє§ћћњњ§§ўўњњ§§ѕў§§ћћ§њўўћў ўљ§љћјћ§ўўњў§ўў§љљћћњ§ћ§§яњ§§љјњћњўћў§§ўў§ў ў§§њўўћў§їћјћ§§њњ§ўўњќ§њћ§§ћўќћўћўў§њ§њўћўўћўў§ѕњўў§§њћ§§њ§§єћњљ§§ћ§§ћћљўўё§ћљ§љјћ§ў§§ћћ§њњћ§њњљ§§њј§њњўў§њ§§ўњћћўљћћіљћћ§ћћњћ§ўўќњ§њ§§§њў§§§њ§ўў§ќњ§§ўўќ§љ§ўўўћ§§љ§ћ§ѕњ§ћћўўћњ§§ўўў§ўўћ§ў§§ўў§ўўћ§§їћљњњўўћў§§ќўћў§§ўї§ўўћњўўћўў§§ћў§§ў§ўћў ў§ѕњ§§јћјћћ§§ўўћў§ўћўў§ћљћњ§љљ§ўўћ§§њ§ѓћўўњњ§§ўћ§§ћљљљ§љљњљњ§§њќўњљћћ§њ§ўўћ§њњћ§§ў№њ§ћўўњљ§ћљјљћ§ћ§§ќћљњ§§§ћљўўюћўў§ћњљћ§њњ§ћјњњ§ўўњѕћљћљ§ўў§ўў§§ѓћ§њљњњљј§ћўћўў§ћњ§§ћљћћњўўј§ћљјљљњ§§ќњ§§ўў§єњ§ў§§њ§њњ§њ§§јћјљћљљћ§§ўњ§§§њў§§§ћњ§§љљћўў§њ§њњњ§ћћўњ§§ќљ§§ўў§ў§њё§њљљ§§ћћ§§њ§§љ§§ў№§јњљјњћўўћљћў§љ§§њ§ўў§§ўћ§§њњљ§§љ§§ћ§№ћњњ§ћћњў§њћўњ§њ§§ўљ§њњўўћўўљ§љћћ§§ўўўћўўў§ўўэћўў§ўў§њ§§љљћћ§§ћљћћќњљ§ўўќ§ћћ§§ўњћћ§§ћўў§ќћљљўў§њ§ћћўљ§§ћљћћљ§§њћњљљћ§§№ћљћ§њ§§њ§ўў§ћ§ћўў§№њ§§ћћјјљњњјљ§њњ§§ўњ§§ћљћўљћћўљ§§іћ§§ћћўњњў§§ўћ§њ§њ§§ўћ§§љњїњњўў§§љњљљћћљ§§њћ§ћћљћћўљ§§ћјћ§§ўў§ўўћўўўћўўјњћўў§ћљћћљљїѕѕњњћћьљњћћјјїћћ§љћљћўњћњњћћ§§њћўўўћўўњћўўћў§§ћљћ§§ћљ§§љўјћћїљ§ўћ§§ћћўўўћ§§ўќћўћ§§§љњўўўћўў§ў§ћћўўљ§§ў§љњћљљ§њ§§§ћњўўћ§ўўћ§§ќљ§§ўў§њќ§љњ§§§њјћћ№љћљћ§њ§ћљћ§њњ§ћљљђјљ§§љ§ћљ§ћљћљ§§їњћљњњћ§§ўўэћњ§њњўў§љћћњјћљњ§њ§§§љ§ўўќћўћўўоњћјљћљћ§§ўў§њ§§њўћўњћљћњњ§§љ§њњ§њ§§ќњ§љ§§їњ§§љћјћ§ўў§ўј§њњ§§љћ§§єњ§ў§љњњљ§§ћўў§ќћўњ§§ћ§ўў§§ьњ§ћјћ§њ§њћњ§њћ§§ў§§ћћўљњњўљ§§§ўћ§§ўљћћћљћћ§њњ§ћє§ў§§ћћ§ћ§§њ§§љљћ§њ§ћўўўћўў§уњ§јјљћћњ§§ћћ§љљћљћљњ§љњў§§њ§ў ў§§њћћї§ўўњњ§њњўў§ўњ§§ўў§§ў§§њ§ўў§ўћўўћў§ћўњ§§№ћљћњ§§ўћћўўћћўћ§§ўћ§љћљћћ§§њўўўћўўё§њ§§љ§њ§љјћћњ§ўўњћўћўћ§§ўћћў§§ўў§ћђў§љ§§њўў§§њ§ћ§§ўќћўћўў§§ћњўўўћўўњўћўў§ўљћњћћўў§§ўўћўўћњћў§ўўў§ўў§ ў§ўњ§§љљћћ§њњ§§љљћљљћјћћјљћћњњўњўўќћўњўў§ўўћўўћўњ§§ѓљћћљњ§§ћјњћ§ўў§яљњ§§њ§љћћ§§ћўњњ§ўў§ўўњњ§ћњ§ћ§ўўўњўўў§ћћшљћљћћјљљћњ§§ў§§њ§њ§њ§§ћўўўњ§§№њў§§њ§§ћљ§§ћўў§ћћњљїњ§њ§њ§ћў§§яљјјњћ§ћў§њљјљњњ§ўў§ўљћўў§§њ§§ўў§§њњ§ўўћўў§љўћћ§§ћўў§њ§§јћћўњ§§ўћў§єњ§§ћћљћ§§њњ§§ўў§§књ§њћљњ§§њњўћўњ§ў§љњћљ§§њ§ћњњћљћ§ўћў§§ўў§ќљ§§ўў§ћў§ћћўўёћ§љљћћњјјљњ§љњ§§ђћў§ћ§§ћўў§§љ§ўўђћў§ћљњ§§ў§њ§§ўў§§њўў§њ§§њ§ўўј§љјјњјљћћ§ўњўўћўњю§њ§§њ§§њ§§љљњћћњ§ўў§§ћ§ўўўћўўў§ўўљ§њ§њњ§ўўўћўў§§ў§§§љњ§§§ћњ§§њћ§њ§њўўўњ§§њњ§§ћћ§§ ўўњ§§љњ§§њўћўўњё§љњ§њ§њњљћ§§ћљ§§њћљљјћљљ§ќћљјћћќњ§њўўѓ§љ§§љ§§њ§ј§§ўўњў§њњљ§ўњћўћўў§§ўў§ўўю§ў§ў§ў§ўћњњћћ§ћ§ћўўѓ§ў§ў§ў§§ћ§ћћўўіћ§§ў§ўћ§ћўўіћ§ћ§ћў§ў§ўўќ§ўў§§ђћ§ћ§ћ§ћ§њ§ћўћ§§цў§ћ§ћ§ўўћћњљњћћ§§ўћ§њћћ§ћ§§їў§§ћў§ў§ўў№§ў§ў§ў§§ћ§ћўћ§§ћћ§ў§їћў§ћњ§ћ§ћћѓ§њњљљњ§ћ§ћ§ћ§§ўњ§њљў§ўўя§ў§§ћ§§ў§§ћ§§ў§§ћћњѕћ§ћ§ћў§§ћњћћѕ§ћўў§ћњћћњћћњѕ§ћў§ў§љњў§ўўў§ўўў§ўўў§ўўђћ§ў§ћ§ћў§ўћўћўўќ§ўћ§§юћў§ў§§ћ§њњћ§§ў§§ћўў§ўј§ў§ўў§ћўўі§ў§ў§§ћ§§ўўё§ћ§ўў§ў§§ћ§ћ§§ўўњ§ў§ў§ўў§ѓћ§њћћў§ў§§њ§ћћћљћњ§ћћ§§ћ§§єћўў§ћћњ§ћ§ћ§§њћ§ћ§ћ§§њћўў§ћўў§јњ§ћ§ћўћ§§ўћ§§јћ§ћћњћњ§§ћћ§ћћ§§ћўћ§§ўўљ§ўћ§ћћўўіћў§§ћўћ§ћ§§ўіћ§њ§ћў§ў§ўўћћ§ћ§ћћќ§ћў§§њћ§ћ§§ўўђћ§ћўў§§ћњ§§ўў§§њћ§ћ§њўўў§ўўў§ў ўќ§ўћ§§ў§ўўћўўў§ћћўњћћ§ыўћ§ћ§ћ§ћ§ћ§њћњћћ§ћ§§ўўћ§ўћ§ћћў§њњћ§ўў§§јћњњћњћћўў§ќћ§ћўўњ§ў§§ћўўћ§ћ§ћўў§тћ§§њњћњњћ§ћ§ћњћћ§ў§ўћ§ўў§ћћ§ћўўњћ§њћњћћ§ћўњўўў§ўўќ§ў§ўўфћ§ћћњ§ћ§ћ§њ§ў§ћ§ћњњ§ўў§ўћ§ћўў§ћїњћћ§ћ§њњљљћњћў§ў§ўўќћ§ћўў§§ўћўўё§ўћ§ћ§ћћњћћ§ћћњњћы§њ§ћћњљљњњћ§§ћ§§ў§§њ§§њћ§ћ§§ўўш§ћњњ§њћћ§§ў§ў§§ћ§ћњћ§§ўћћѕ§ћћњћњ§ћ§ћ§§іћ§ћ§њћњў§ўўј§ў§ў§§ў§§ўі§ў§ўћ§ћ§§ўўљћ§ћў§§ћћѓњљњљљњ§ћ§њ§ћ§§ћўњўўќ§ў§ўўњ§ў§ў§ўўћўў§§§ў§ўўћќњћћўў№ћ§њћњ§ћ§ћ§ћўў§ћўўќ§ў§ўў§ўђ§ўў§ћў§ўћ§ћў§ўў§њ§ћ№љћћ§§ћ§ћ§ћ§њћњњ§§ѕў§ў§ў§§ћ§§ўў§§ў§§јћ§ўў§ў§ўў§ьћ§ћ§ћ§ћћњћћ§ћ§ћ§ћ§ћўўю§ў§ў§ў§ў§њћњњ§ћў§ўўјћ§ћ§њ§§ўўћў§ўўўћ§§яў§§ћ§§ўў§ћ§ћ§ћў§ўў§оћ§њћ§ўћћ§ћћў§§њћћў§ў§§ћ§§ўћ§њћњ§њћћњїћ§ћўћ§ћ§ўў§ћ§ћћ№§ћ§ћўћ§§ў§ћњњљњћћѕў§§ћ§њћљћћ§§ќћў§ўўўћ§§§ћ§ћћўќ§ўћўўњ§ўћ§ћўў§їћ§ћњћў§§ћћќњ§ћўўјћ§§њњ§§ў ўќ§ўћ§§ќћў§ўўњћўћ§ћўўўћ§§ћљњ§§ћћў§§єћ§ћў§§ўўћ§§ўўњ§ў§ў§ўўў§ћћў§ўѕ§ў§§ћ§ћњњ§ћћћ§ћ§ћ§§јћ§ћњљњ§ўўњћ§§ўћўўў§ўўў§ўўіћ§ўў§ў§ў§ўўћ§ўћ§њњ§§ћ§§эў§ў§§ћ§њ§ћ§ћ§њћњў§ўўў§ўўўћ§§ќћ§ћўўп§ў§ў§ўћ§§ў§§ћ§њ§ћ§ћ§ћ§ћ§ћ§ћ§њљћ§ћћћ§њћћўўђћњћ§ћњњ§ў§ћћњ§§чћ§ћћ§§ћ§§ўў§§ћћ§ћ§§ћњћњћњњћјњ§њћљўћўў§јћ§ћў§§ћ§§ѕў§§ћ§ћ§§ў§ўў§ѕў§§ў§ў§ўћ§ћћќ§ћ§њњћ§ћ§ћўўї§ў§ћћў§ў§§§ў§ўўє§ўћўћ§§ў§§ћўўј§ћ§ўў§§ўўюћ§ћ§ћ§§ў§§ћ§ћ§ћў§ўўўћўўў§ўўіћ§ўўћ§ћ§§ўў§јћ§ћ§ўў§ўўў§ўўћ§ў§ўћћё§ћ§§њћћњ§ћў§ў§ўў§ћ§ўўњ§ћћњ§ћћѓ§ћ§§ў§ў§ўћ§ћ§§ђћў§ў§§ћ§§ўћћњћћљ§ћ§ћ§ћ§§їў§ўњћњ§ћўўа§њљћћ§ћ§ћ§ћў§ў§§ўў§§ў§њћњћњ§њ§ћ§ћ§ћ§§њћ§ћ§ћ§§ћћўў§њћ§њяљ§§ў§ў§ў§§њћњћћў§§ћўћ§ћ§§єњ§§ћљњћ§ћў§ўўє§ў§§ћ§ћњњ§§ўўщ§њћњћћ§ћ§ћ§ћ§§ў§§ћ§ћўћ§§юћ§ћ§ћћњњћњћћњ§ћ§ћ§§яћ§§ўћ§ћћ§§ћ§ћћњў§§ў§цћ§ћ§ћ§ћ§ћў§ўћ§ћ§ћў§ў§§ћ§ћ§§іћ§ћўћћњћћ§§ђћўћ§ћўў§ћљћ§§ўўјћўћ§ћ§ћ§§фћўћ§ћ§њ§ћћ§ўћ§ћ§ћ§ћ§ћћњћћ§ў§§њљ§ўћ§њў§§јћ§§ўћ§§ўўў§ўўћњєћ§§ў§ў§ў§ўћўўў§ўў§ћў§§ћњњ§§њћњњќ§ў§ўўћіњ§ћ§§ћњњћўўќ§ћ§ћћ§§њўўш§ў§§ћњњћћ§ћ§ћћњњћ§ћ§ћњ§ћћљ§ћ§њћњ§§юћ§ћў§§њћўў§ў§ўћ§ћ§§ћњќћ§§ћћ§ўћ§§љћ§ћ§ћ§ћћ§§њћћњћљњћћ§ћ§ћћј§ўў§§ўўћћўў§ўўѓћ§ћ§ћ§ћўћ§ћ§ћћыў§ў§ўћ§ћ§ћћњћћ§ћ§њ§њћћњћы§ћ§њ§ћў§ў§§ћ§ћў§ў§ў§ўўћ§ў§ўћћіњћњћљјјљљњњћћ§њћњњђћњ§ћњћў§ўў§§ћњњѕ§ћ§ўў§ў§ў§ўўў§ўўў§ўўѕћ§ћћњћћњњ§ћћў§ћћё§ўћћ§њћњћћўў§ћўўі§ў§ўћ§ћ§§ўўј§ўћ§ћў§ўўњ§ў§ў§ўўњ§ўћ§ћўўў§ўў§ўћўўћї§ћў§ћћ§§ћћѓ§ћ§ћ§ћ§ћћ§ў§ўўэћ§§ўў§ћ§ћ§ћ§ћ§ћў§ў§§јћў§§ћ§ћ§§ћњћњњћћќњћ§ћћ§њћ§§ўњћћјњћћ§ў§њћћѓ§ћ§§ћћљљћћ§§ўўѓ§ўў§ћ§ўў§§ћћњњєћ§ћ§ћ§ћћў§§ў ўь§ўў§њњћњћњћ§§ўћ§ћ§§ўўі§њћћ§§ћ§ћ§§ђћ§ћ§ћ§ћ§ћў§§ћ§§ћ№њ§њћ§ў§ў§ў§§ћў§ўў§§ћ§ћћѓ§ћ§ћўћћљњћ§ћўўэ§ўў§ћ§ћў§§ћ§ћћњ§ћ§ћћш§ћ§ћ§ћњњћћ§ћ§њ§ћ§њ§ћўћ§њњўћњњўў§§ћі§ћўў§ћ§ћћњњћћњњћ§§іћ§ћ§ћ§ћњњ§§№ћњњ§њћћ§ћ§ћ§ћћњ§§ўњ§ў§ў§ўў§§ћ§§ћњњ§ћ§њћћњ§ћў§ў§§ўў§ўўљ§ў§ў§ў§§чћњћњ§§ў§§ћ§§ў§ў§ўћ§ћ§ћ§ћ§§§ћ§ўў§§ћ§§ўњћ§њў§ўўћ§ћћ§њњ§јћњћћ§§ћўўц§ўћ§ћ§ћў§ўћћњћњћњћћ§§ў§ў§ўўќћ§ћ§§јћ§њћ§ћ§ўўј§ўћ§ћ§§ўўќ§ў§ў ў§њћў§ў§ўў§ўћўўюћўћ§§ўў§ћ§ћўћ§ћ§§ўўі§ў§§ћњ§ў§ўў§ў§ўћўўў§ўўќ§ћ§ўўќ§ў§ўўўћўўўћўўћ§ў§ўћћ§ў§ўў№§ў§ўў§ћ§ћ§ћћњњћ§§ћїњ§њћњћњњ§§ў§ўњћ§ћў§ўў§§ћ§§ѓћњњћ§§ћћњљњ§ўўњћ§ћ§ћ§§љћњњ§ћў§§ћў§ўћ§§ќћ§ћ§§ћњ§ўў§§ўѕ§њћњћњћњћ§ћћ§ќћўћ§§іћў§ўў§ћ§ћ§§ыћ§ћ§њћћ§ўў§§њћњћ§§ћћ§§ќћўўћћя§ћ§ћњњљњ§ўўћ§ћ§ў§§ћў§§ћўўў§ўўўћ§§єћ§ћ§ћўћ§ћ§ћўўћћ§ћ§ўўћ§ћў§ўўќћ§ћ§§ѕћњњ§§ћ§§ў§ўўќ§ўћ§§ћњњћњ§ћ§§юћ§ћўћ§ћ§ћ§њћ§§ћ§§ўў§њћљњћћ§§јњљљћћњћўўљћ§§ў§§ћћ§§ћўўђ§ўћ§§ўћћњў§ўўћћяњћљњњћ§§ћ§ћ§ћ§ўўћћћ§ўў§ћћьў§ў§ўў§њћ§§ћўћ§ћ§§ў§§љў§ў§ћћ§§цћ§ћ§ћў§ў§ўћћњњљњћћњњћ§ћ§§ўўў§ўў§ќћ§ћ§§єћ§ћ§ўў§њњ§ћўў§ќћњћўўў§ўўў§ўўў§ўўўћўўќћ§ћ§§§ў§ўў§ђћ§ћў§§ћ§њ§ћ§ћ§§ъћ§ћ§§ў§§ћ§ћ§ћ§њћћ§ћ§§ў ў§јћ§ћ§ћ§§ўўћ§ў§ў§§ћі§ћ§ћ§§ћњ§ћћї§ћ§њћћ§њћћі§њћњћњћњћ§§щў§ўћўћ§ў§ћ§ћ§ћ§§ў§ў§§ћ§§ћў§ўў§ћў§ћў§ў§ў ўќ§ў§ўўў§ўўў§ўўў§ў ўѕ§ў§ў§ў§ў§ў§§ўі§ў§ў§ў§ў§ўўјћ§ћ§ћў§ўў§ўњ§ў§ў§ўўў§ў ўќ§ў§ўўј§ўћ§ћў§ўўќ§ў§ўў§§ў§ўў§ѓўћ§§ў§ў§ў§ў§ўў§ћ§ўўќ§ў§ўўќ§ў§ўўє§ўћў§ў§ў§ў§ўўј§ў§§ћў§ўў§љўћ§ћ§ћ§§ўўћўўњ§ў§ў§ў ўќ§ў§ўў§§ў§§§ў§ўўў§ўўў§ў ўќ§ў§ўўќ§ў§ўўќ§ў§ўўњ§ў§ў§ў ўњ§ў§§ћўў§їў§ўћўћ§§ўўј§ў§ў§ў§ўўь§ўћ§§ў§ў§ў§ў§ў§ў§ў§ўўў§ўўћ§ў§ў§§§ў§ўўш§ў§ў§ў§ў§ўћ§ћ§§ў§ў§ўћў§ўўў§ўўў§ўўў§ўўњ§ў§ў§ўў§ўј§ў§§ћў§ўўј§ў§ў§ў§ўўў§ўўњ§ўћ§§ўўў§ўўљ§ў§ў§§ўўњ§ўћў§ўўќ§ў§ў ў§іћ§ћў§ў§ў§ўўю§ў§ў§ў§ў§§ћ§ћў§ў§ў ўі§ўћўњ§ћў§ўўў§ўў§ќћ§§ўўќ§ў§ўўў§ўўќ§ў§ўўю§ў§ў§§ћ§§ў§ў§ў§ўћўўў§ў ў§ђћ§ўћўћў§ў§ўћ§ўўя§ўћ§§ў§§ўў§ў§ў§ў§§ўў§ўўє§ўћ§ћ§§ўў§§ћћ§ўў§ў ўћ§ў§ў§§§ў§ўўћћ§ўћў§§ќў§§ћћљ§ћў§ў§ўўі§ў§ў§ў§ў§ўў§§ў§§ћў§ў§ўўј§ў§ў§ў§ўў§эћ§ћ§§ў§ў§ў§ў§ў§§ћ§ўўќ§ў§ў ўќ§ў§ўўў§ўўў§ўўў§ћћ§ў§ћў§ў§ўў§ћ§ўўў§ў ў§ўћўў§јћ§§ў§ў§ўўў§ў ўў§ўўў§ўўў§ўўћ§ў§ў§§№ў§ўћ§ћ§ћў§ў§ў§ў§§§ў§ўўў§ўўњ§ў§ў§ў ў§§ў§ўўђ§ўћ§ћў§ў§ў§ў§ў ў§§ў§§ў§§ў§§ ўќ§ў§ўўќ§ў§ўўњ§ў§ў§ўў§ќўћ§ўўўћўў§ўћўўќ§ў§ўў§ћў§§ћ§§§ў§ўўќ§ў§ўў§њћў§ў§ўўў§ўўћєў§§ћ§ўў§ў§§ћћћў§ў§ўўћ§ў§ў§§§ў§ў ўў§ўўњ§ў§ў§ўўј§ў§§ћ§§ўў§§ў§§ўќ§ў§ў ўў§ўўј§ў§ўћ§§ўў§љў§ўў§§ўўў§ў ўњ§ўћўћўўќ§ў§ўўћ§ў§ў§§јўћў§ў§ў§§љў§§ћў§ўўў§ўўў§ў ў§јћ§§ў§ў§ўў§јў§ў§§ћ§ўўњ§ў§ў§ў ўў§ўў§§ў§§шў§ў§ў§ў§ў§ў§§ћ§§ўћў§§ћ§ўў§ёћ§§ў§ўћ§§ў§ў§ў§§ўќ§ў§ўўў§ўўі§ў§ўћ§ћ§ћ§§ўћ§§ћ ўњ§ў§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўўќ§ў§ўўї§ўћў§ў§ў§§§ў§ў ўў§ў ўў§ўўў§ўўј§ў§ў§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўў§§ў§§ћўћў§ў ўў§ўўђ§ў§ў§ў§ў§ў§ў§ўўў§ўўў§ўўќ§ў§ўўј§ћ§ћў§ў§§ћў§ў§ўў§§ћ§ўўѕ§њћћў§ў§ў§ўўў§ўў§ћ§њў§ў§ў§§јў§ў§§ћ§ўў§ѓњ§ћў§ў§§њћ§§ўў§ўў§ўў§§ў§§љўћўњ§§ўўћ§ў§ў§§ў§ўћ§§§ў§ўўў§ўўќ§ў§ўўф§ў§ў§ў§ў§ўў§ћ§§ўћ§§ў§ў§ў§ў§ўўљ§ўћў§ў§§ўќ§ў§ўўў§ўўљ§ў§ў§ў§§ўќ§ў§ўўњ§ў§ў§ўўў§ўўѕ§ћў§ў§ў§ў§ўўњ§ўћ§§ўўў§ўўі§ў§ў§ў§ў§ўў§§ў§§ў§§ў§§ђў§ў§ўћ§ћў§ў§ў§§ўї§ўў§ў§ў§ўўў§ўў§§ў§ўўј§ў§ўћ§ћ§§ќў§§ўўіћ§§ў§ўћў§ўўќ§ў§ўў§ўѕ§ў§§ћ§§ў§ў§§єў§ў§ўћўћў§ў§§ћў§ў§ўў§ўы§ў§ў§ўћ§ћћ§ў§ўћў§ў§ў§§љў§ў§ў§ўў§ўћ§§єћ§ћ§§ў§ўћў§ўўў§ў ўњ§ў§ў§ўўљ§ў§§ћ§ўўѕ§ў§ћћ§ћ§§ў§§ќћ§ћ§§ќў§ў§§ўќ§ў§ўўѓћ§ћ§ћ§ћ§љћћў§§ћ§ўћ§§ўћ§ўћў§§§ў§ўўќ§ўћ§§ћўћ§§ўўќ§ўћ§§ќћ§§ўўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўў№§ўћ§ћў§ў§ў§ў§ўћўўў§ўўљ§ў§ў§ў§§ў§ўє§ў§ў§ў§ў§§ћ§§ѓћ§§ў§ўћ§§ў§ў§§њў§ў§ў§§єўћ§ћ§§ў§ўћўћћ§ў§ўўќ§ў§ўў§ћћ§њў§§ћў§ў§ўўў§ў ў§ўћ§§§ў§ўўќ§ў§ўўљ§ўћў§ў§§єў§ў§ў§ў§ў§ў§§љў§ў§ўћ§§ўў§ўўє§ў§ў§§ћў§ў§ўўњ§ћњ§§ўўќ§ў§ўўъ§ў§ўћ§§ў§ў§ў§ў§ў§ў§ўћўў§ўў§§ў§ўћ§§ўњ§ўћў§ўўњ§ў§ўћ§§ћћ§§ў§§ђў§ў§ў§ў§ў§ў§ў§§ўє§ў§ў§ўћ§§ў§ў ўћ§ў§ў§§шћ§§ў§§ћўћўћ§ћ§§ў§ўў§§ў§ў ўј§ўћ§ћ§§ўўќ§ў§ўўў§ўўј§ў§ў§ў§ўўњ§ў§ў§ўў§ ў§ўў§§љў§§ћў§ў ўќ§ў§ўў§њћ§ћў§ў ўћ§ў§ў§§§ўћў ўќ§ў§ўўў§ўўў§ўўќ§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўќ§ў§ў#ўю§ў§ў§ўћ§§ў§ў§ўў§ћ§§ўћ§§ћў§ў§ўўў§ўўў§ўў§§ў§§ќў§ўћћ§ў§ўў§ў§§ў§§ўќ§ў§ўўѕ§ў§ў§ў§ў§ў§§ўў§ўў§ќћўћ§§ўћ§§ќћў§ўўј§ў§ў§ў§ўўѕ§ў§ў§ў§ў§ў§§§ў§ўў§ћћ§ћў§§ћў§ў§ўўі§ў§ўћўћ§§ўў§ћў§ў§ўўў§ў ўј§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўўў§ўўђ§ў§ў§§ћ§§ў§ў§ўўњ§ў§ўћ§§љў§ў§ў§ўўє§ў§ў§§ћў§ў§ўўѓ§ў§§ћ§§ў§ў§§ћћ§ўў§ўўў§ўўў§ўў§ў§ћ§ўў§ћѕў§ў§§ўў§ў§ўўќћў§ўўўћўў§ќћў§ўўќ§ў§ўўў§ўў§ћў§ў§ўўђ§ўћўћ§ћ§§ў§ў§ўўњ§ў§ў§ўўў§ўў§ўќ§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўў§§ў§§ѕў§ў§ў§ў§ў§ўўђ§ў§ў§ў§§ћў§ў§ў ўј§ў§ў§ў§ў ўё§ў§ў§ўў§ўў§ў§ў§§іўћ§§ў§§ћў§§ўў§§ћљ§ћ§ћ§§ўўє§ў§ў§ў§ў§ў§ўўљ§ў§ў§ў§§§ў§ўўў§ў ўўћўўїћўўћ§§ўћўўќ§ўўћћўћ§ўяћў§ўў§љњљњўўћў§§ўў§ѓњћљ§ўўњ§њ§ўћ§§њў§§ћћ§§њћљљћљћћњ§ўћ§§њћљњћљњњў§ћћ§њ§ўњњ§ћљљ§§њў§ћћь§љћ§§ћћјћћ§§ћћ§њ§§њ§§ђљћ§ўўћ§§ўўњ§§ўўїћ§§њћћўћўўўћўўј§њ§ћћ§§ўўя§њљјљ§њўў§њљћўўћўўњ§њўўћўўќћўњ§§њљ§љљјћћљњ§§ўњ§§ўњ§§ўњ§§њљћћ§ѓўћњњ§ћћ§ўўћў§§ўїћ§§ўћњ§§ўўё§љњ§ў§§љјњјћ§§ўўѕ§ћћљјјњ§њћјјёљ§§ўўљљћћ§§ў§њ§§ўњўўћћ§§ћ§§ўњ§§ќћ§њ§§ўњ§§єљћћ§§ћћ§њњ§ўўњўћ§§јћ§§њ§ў§њњ§ў§ќњ§§ўўўћ§§ўћўўќћ§§ўўјњљћњўўћўўћўѕ§њ§ўўћњїљћ§§ўњ§§љўњўўўћўўќ§ћљ§§ўњ§§§њ§њњѕћў§њњћ§ћ§§ћћ§ўњ§§ћќљћљћћњ§ўў§љћћ§њјћњ§њ§§їњ§§њ§јљјћћњљ§њњ§ўўёћў§§ћћјћљљћњўћ§§ў§ўї§њњ§љћјћљљљјћћ§ўћ§§їњў§њљћўћўўќ§ўћўўўћўўі§ўћ§§њ§јћ§§ўљћћћ§њ§љћћ№љњњ§њ§ў§§љћћјњјњњћ§ћюљћњњ§§ўћљљћѕљ§њ§њ§§њћњњ§§ћћ§љ§ћћэњ§њљћћєљћ§ћљћњјїїјњњъћјјњ§ћјјњћ§њўњ§§њ§§њјљљўњљљўћ§§ўћ§§§њ§ћћіљ§§њ§§њ§§ћћѕјћњјњћ§§ћљјјљіћљћћ§љћћљћћ§ћјљћљљ§ўў§§њћњјјћњњ§шљјјљјљћљљ§њўћўћў§ћњњјјњћћђљјћћјљљ§§њњ§љћћўњ§§ѕљћјћ§њћњљћјјў§њњњ§њ§њњ§§ћљ§§њўўј§њћљћћљћћ§ќњўў§§ўљћћќњўў§§ћњљћљљ§ћћ§ўњ§§ћћўћўњ§§љ§ў§ўљ§§ўњ§§§ўћўў§§ћљљњэ§ћћ§§љ§§ћјљљћљјјћљ§§ў§њ§ўў§ўёћўўњў§§ћљ§§њ§§ћћњњ§§њљ§§ўћљљћњљјјћ§њњўјћћљњїљњњћўў§љћ§љљјћјјњњјћћ§ћћљлњћћ§§ћљњ§§ў§њљњў§§ћ§ћ§§њ§ћћљњљљћњ§ўў§§ћјљїљњњљљћљћјїљћћќ§њћљљћљњјїјјћјјіѕїњњћћњ§ћјјѓљ§§љћјљњїњјњјјў§ћћ§ўћ§§ўњ§§њ§сњљћ§љћљ§ћћљ§§ћћњјљљњћћљћћљћћљљћћўњјј§њј§§њў§§ћ§ўў§§њ§§њќљњў§§ћћѕљћљљўћ§§ѓљћњ§§ћњљћћјћ§§ћ§§њћћєљћјљјћћљћљњћћљњ§њљћљћћ№љ§ћћјљ§§ў§љњ§ћ§ћћўљ§§љћјћћјљ§§ў§љњ§§љљћ§§іњ§§љћњњћљћћ§њљ§§ћњ§§љ§§§ћў§§§њћјјўљћћ§љўњјјљњљћљћћ§§ўћ§§ўћ§§ќњўћ§§№њ§ўў§њњћћ§§ћјјњјјќћ§љћћѕјћћ§љћљћњњљљќњћјњњїћњљљћњњћљљњ§ўћљљћўљћћќљћ§ћћўњ§§њћљњјљћћђљћћљћћљћ§ћњљњјјќњћњ§§љрћ§§ћљћћљ§њ§§ћћљљћљ§§љњљћљћћњјњјћћїљћјїљљўў§§§њў§§шўћїљјњљљћ§§љћ§§ћћљћ§њ§њћћјьљ§њћјјњћћљћћ§ћ§§њ§§ў ўђ§њјњњ§§љљєїљњјјєњћћљљјјљћљљћћњўћљљћћљћљ§§ќњ§§ўўцћўў§ћўћўњ§ћјњњљјњћљјјїјјљјјхљњћў§ћћјјћ§§ћњћњјњ§§ћјњњћћ§§ьњљ§§ўўћїјћ§§њћћњљћјњњј§їјњњћљћћљ§§ў§њјљ§њ§ћјњћћ§ћіљјћњћћњ§њћћћњ§љљ§§ћќљјљћћ§йћљјљњњў§њјјћћјњњјјїїјњїѕјњљњ§њ§ћљњњћјћ§§љњјљјћљ§§§њ§ћћ§ўў§§рњ§§њ§ўў§њљћљћљћћљ§§њљјњјјћ§§њ§њ§§єњ§ћўћў§љћљћ§§§ћў§§ћѓљ§§њљљћћјћљљћћя§њњ§љјљљ§њ§њ§§ћљћћњљ§ћ§§ўўўјљљјћјћјјњљ§§ўњћћњщ§ћњњјјњјљљћљћљћћњњјљјћўў§ўћ§§іљ§њ§§њљ§љ§§шљњ§ћћљћљћљњћњ§§љљњїїњћњјјіњѕїїјјћ§§ћћљљјљљћћљљ§ўњўўњј§њћўљњљ§§љєћљћњћ§§ў§§ћ§§ѕљњјњћћ§§њћ§§іњћћїњљїўў§§§њ§ўўђ§њ§§љ§§љћјїїјћћљыњјњјњљ§ћјњѕљћћјњјјљљћћїњјћ§њ§§ћ§§ќўњў§§ёњ§њњ§§њўўњ§ћ§њ§§ћљњ§§ћћђљћљњњљ§§њ§§ћћ§§ёљјљњњўўњ§§ћћљћ§§ћњўўћўў§§њ§ћћљ§јїћћћ§ћ§§ћћќњ§§ћћљјћњ§§ћ§њ§§ћјўњјј§ћѕљњњ§љјљћљљћћњјћњ§љљћљћћњщјћњћњњјљ§§љјњјјћћ§§њјћ§§ћћјјћ§§ћ§љј§§јњћљ§§њњ§§эњ§§њ§§њ§§ћћљњ§њ§ўўњњ§ўўћ§§ў§юњ§њ§§ћњѕ§њўўћћ§ћљ§§ўњ§§іњ§§њ§њњўў§§љњ§§њњћўўўћўўѓ§њ§ўћўћўљћјјћћќјњ§ћћ§ўњ§§ѕњ§ўћ§§ћ§§љўўўњўў§№љ§ћљ§§љљњ§§њљњћ§§ёјљљћј§њўћ§§љћљ§§ћњ§ћў§§ў§ўњ§§ќњ§§ћћњњјјњњљљўћ§§њ§љћњі§њњ§§ћјљљћћћ§ўўњўўњћўў§ћ§§§ўњ§§љћњјћљљњњўњњ§њ§њ§§љўћћўўњ§§јњ§§ћћ§њ§§сњўўћўўњ§њ§ћћњ§ўћўўњ§ў§љ§ўћў§њ§ўў§§ћў§§њћўўћћўўѕћўљњ§ўћ§§ћ§§ўћљљћ§љћљћћћљћ§ў§§њњўњњљ§§ўњћћ§§њ§ўўїћўў§њ§њњўў§їњћљ§§њњ§ўў§ћў§§ъћ§§ўўљњ§њњ§ўўњћљћ§јљњ§§яћ§љћљ§њ§њ§§ћћ§§њ§§ў§ћћљ§§ўўўћўўњ§§њ§ўў§ўўњўўїњўў§§њ§њ§§ўњ§§љ§ўќћўћ§§њћљћћљ§§ћ№њ§§њ§§ї§§њћљј§§ўў§ў§ ўўћўўјћўњћћљћ§§ќћ§ћ§§ўљћў§§њњўўіћўћўўњњўў§§ў§ўћ§ўўћўўјћўјћў§њўўњћўўњћўў§њљњњ§ў§ўћ§§ћ§ўњўў§§ўћўўљ§ўўћњћўўњў§јћј§ћ§§њ§§ўїњўћњў§љљ§§ъўљњњ§ћћљ§§ўћћўўљњ§ћўўњњў§ўўћ§њљ§ўўі§њ§§ўњ§§ў§§ў§§њўў§ў§ћў§§ўњўўћћўўњўў§їњ§љњњїўў§§ќўћћўўўћ§§ћ§§њўўї§њ§§ў§њљћћќ§ўў§§ќћўћўўјњ§ўћћўћўўњїў§љњљњњћўў§ћўњћћўўўћўўљѓ§ћћ§ўўћ§њјљ§ўўўћ§§§њ§ўўїћў§њ§љ§ћўўћћўћћўўўћўўї§ћј§ў§§љў ўчћ§§њњў§њћћљјљљћњ§§њњ§§њњ§§ў§§њ§§ўўћўўќ§њњўў§јњћћљћ§§ўўьњ§њў§§ћјљ§љ§§ћў§§љњўўћњ§§њўўќњ§§ўўњ§ћћј§ўўїћўўћљћљћ§§ьљјјњћћ§ћ§њ§њ§§њ§њ§њ§§ўћўўўћўў§љњўљўўњ§§ўў§§љ§њ§ўўћћјњљ§§ўў§§ўћјјљєћњњ§ћљјљћ§§ўўќњ§њћћ§ўѓ§њ§ћўў§§ўўњ§љљ§ўўћўў§ўњ§§ўњўўљ§њ§љњћўў§ўњўўќћўўћћ§ўћўўў§љѓў§ў§ў§ў§ў§ў§ўўќ§ў§ўў§§ћўўў§ўўўћўўќ§ў§ўўіћ§ћ§ћ§ћ§§ўўіћў§§ћљј§§ўўёћ§§ў§ўћ§§ћћ§§ў§§ўѕћ§ћўћ§њњћ§ћћњњћњћњ§§єћњћ§ћ§њћљњћ§§њћњњћћ§§оћ§ћ§ћ§ћ§ћ§ћ§ћ§ћ§ћ§ћ§ћ§§ў§§њћћ§ћ§ћ§§§њћњњё§ћњћ§њћњћњ§ћћњ§§ћћ§ћ§ћћўьћ§§ў§§ћў§ў§ўў§ћ§ўў§ўўў§ўўфћ§ћњњ§ћў§ўћ§ћ§ћ§§ўў§§ўњў§ў§ўўќћ§§ўўќ§ў§ўў§ьћ§ћ§§ћћ§ћ§ћ§њћў§ћ§ћ§§ўћ§§ћћ§§ў§§єћ§ўњњћћ§ћўў§§яњћћў§ў§§ћ§ћў§ўћ§ўў§§ћўўћ§ћљњљњћћ§ўўћ§њњћ§§§ћ§њњьћ§ћў§ўўћњ§§ўћ§ћ§ћ§§ўўс§ћњћ§ћ§ћ§ћ§ћўћ§ћ§ћ§ћ§ћ§ћњњ§ћћњ§§ћћў§ў§§ѓњћ§ћ§њ§ћ§ћўћ§§тћ§§ўў§ћ§ћ§ћ§ўў§ўћ§ћў§ў§ў§ўћ§§ўў§іћњ§ў§ў§ў§ўўі§ўћ§ћў§ћљћћј§ћ§ћ§ћ§ћћ§ўў§ўўј§ўћњћ§ћ§§ўћ§§ўў§§јў§њ§ћћњћћ§яћ§њћњћњћњћњ§ўўћћњњњ§ћ§§њ§§њћ§ћ§ћ§§ћњўћ§§ѕћў§ў§ў§§ћћњњћщњ§ўў§ћ§ћ§§ў§§ћ§ћ§ћ§§ўћ§§ќћњ§ћћю§њњћўў§ћ§ћ§ћћ§ўћ§ўўўћў ўє§ўўћ§§ћ§њћ§ћћт§ћ§ћњњћћ§ћћњћњћ§§ћ§ћўћ§ћћњњљњљљўћњњћљ§ћћњћњ§§ќћўўћћє§ћћ§ћ§ћ§ћ§њ§§ћћњћћ§њњѕћњћњ§ћ§ћћњћћњљњљљњљљўћ§§њѕљњ§§ў§§ћ§ћ§§ћўљћћў§ћћѕ§ћ§§ћњћњћћ§§ћћ§ћ§њњј§њљњљњ§ћћњў§ћћ№њ§ћћњћњћњњћ§ћ§њћћўє§ћ§ћ§ћћљњњћ§§ћњ§ћњћћ§єў§ў§§њљљњњљњњњћ§ћњњћћ§ћяњћњ§ћ§ћћњ§њ§§њљћњњ§§ћ§§ќћ§ћ§§ђћ§ћ§ћ§§ў§ў§ћ§ћћ§њћњњѕ§ћ§§ўў§ћ§ўњњё§ў§§ћ§ћ§њћњћћњћћњўћњњљ§ћ§ћ§ћўў§§ћ§ћћ§ўў§ћћљ§ћ§ћ§ћ§§ѓћ§ћ§§ў§ў§ў§ўћћ§њјћ§ћ§ћћ§ћћњћє§ћ§ћ§ћ§§ў§§ўўє§ўћ§ћ§§ў§ў§ўўј§ўћ§њўћ§§ћёњћ§§ћ§ћ§ћ§ћ§ћњћћњћњўћ§§ўћњњѓљћћ§§ў§ў§ў§§ћћў§њњќљњњћћќњћњћћћљњњ§ћћщ§ћ§ў§§ў§ўћ§њ§њћћ§ћњњћ§ћћ§ўёћ§ћњјљјњљљћћњћњњўћњњ§ўњћћќњћљњњўћњњїћљљњњ§ћћњњѓћ§ћћњ§ћљњљњљњњј§њћњ§ћ§ћћљ§ћ§ћ§ћ§§љћ§§ћњ§ћћё§њћћ§ћћњљњјјњњћћќњћњћћ§њћњњйљњ§ћ§ћ§ћўћ§њ§ўў§ў§ў§ўћ§ћ§ћ§§ў§њћ§ћњ§ћњћћђњ§ћ§ћћ§§ћћљћњћћё§ћ§њћћ§ўћњћњњјњњћњућњ§ћ§ћњћћњћћ§њћњћћ§§ћ§§ћўћћњћћќ§ћћњњї§ћ§ћ§§ўћ§§ћћњћ§ћ§§ћђњљљћћњњћњљћ§ћ§§ћј§ћўў§ћ§ћћў§њњћћњћњ§ћћњхљћњћњњ§ћ§њ§ћ§ћ§њ§ћ§ћ§§ўў§ћ§§ѓўћ§§ћњ§ћћњњљњњђ§ћћњћњћњћћњњ§ћћљћђљњ§њљњњ§ћћњ§§ћћ§ќћ§њћћњћњњћњћњ§њњў§ћћ§ѕћљњћњњћњћњћћїњћњ§њљјљњњѓљћ§ћћ§ћ§ћ§ћ§ћћљ§њћњњћ§§ћщњћћњў§ћў§ћњћњћљњљњњћњћњњћпў§§ћ§ћ§ў§ћ§ћ§§ўўћћњјјњ§ћћњ§ћћњћњ§§њыћњћњњћ§§ћњњљњњћњћћњћ§§ќћў§ўўў§ўў§§ў§§їћ§ћљїѕјљњњ§љњћћ§§њћћњњћњњљћћўњћћ§§ћ§§ўћўў§ў§№њ§љљјњљћћ§њљїїјњњцћ§ўўћњњ§ћњћ§њ§њљ§§ћ§њњљљњћћљ§ўћћўўњњ§љњћљћњњљљњ§љњљљѓњћћњћћ§ћўў§ћ§§чўћ§§њњљњњћњ§ћ§ћћњћћњњљњћ§§юћњћњћ§§ўўћ§ћћњћ§ћњњћі§ћ§§ўћ§ћ§њњѓљњњљљњљћљњљћ§§іњћљљњ§њ§ћ§§ъћњњћћ§ћ§ћњњћћ§ў§ћ§ћ§ћ§§ќўћ§ћћєњћњњћћ§§ћњљњњю§ћ§ћ§ћ§ћ§ћ§ћў§ўў§ћћѓ§ћ§ћў§§ћ§њћћ§§ћіњћћњћћњћњ§§ћќњћћ§§ћњјў§њ§ћў§ўўў§ћћѕ§ћњњљћћ§ћ§њњ§ќњљљњњћѕњћћњљљњјњњўўјћ§њ§ћ§ћ§§щћ§ћћў§ћ§ў§ћћњћњћњћ§ћ§§ћћљљњћљњљњњэљњљљњ§њ§ћћњњћњћћњњћћі§ћ§ћ§§ў§ў§§ўыћљћћ§ћ§ћћњћњљњ§ћўћ§њ§§рћ§ћћљњљњњ§ћ§њ§ћћ§ћњћљћўў§§ћ§ћ§ћўўўћ§§єћ§ћћњ§њљњћњћћѓљњљњљћћњњљ§ћњњћњтљњћћ§ћ§њ§ћ§ћ§§ў§§ћ§§ћ§§ћ§§ў§§ћћщ§ћ§ћ§ћ§ћў§§ћњњћћњћљљћћ§§ћтњ§ћ§ћњћ§§ў§§ћ§њњћњћ§ћ§ћ§ћ§§ў§ўўє§ўў§ћ§§ћњћњћћыњћњћњ§њ§ћћњћњћњ§ћ§њћњњћњњ§ћ§њ§§ћћ§ћћњњіљњњ§ћ§њћћ§§§ћњћћїњћњњљљњ§ћћыњћћњћљљњћ§ћљљњћћ§ћњљњњє§ћ§§њћ§ћ§ћћњњы§ћ§ћћњћњ§ћ§ћ§ћ§§ћћ§ћ§§ўћ§§ќћ§ћ§§ћ§њћ§§ў§бћ§§ў§ўў§ћ§ћў§ўћ§ћ§ћ§ћ§њљљ§§ў§ўў§њћћ§ћ§ћ§ћ§ћ§§ћ§§љўћ§ћ§ћ§§ўќ§ў§ўўў§ўў§ўњюћњњћ§§ћњњћћ§ћ§ћ§ћ§§іўћ§њ§ћў§ў§§фў§§ћ§ў§њћћ§§ћ§§ћ§ћљњ§ћ§ћ§ћ§ћћ§ўк§ћћњћћ§ћ§ћў§§ћ§§ў§ўћ§ћ§ћ§ћ§ћ§ћ§њћњћљњ§§ћќњ§ћ§§§ћ§ћћњћћ§§ћ§§њћњњћћњњќћў§ўўђћўћ§ћў§§ћ§њљњћћ§ўў§ўў§§ў§§њћ§ћ§ћўўј§ў§§ћ§ћ§§ќћўў§§њћ§ћ§§ўў§§њћ§§ќў§ў§§ў§ѕў§ўћ§ўўћ§ћў ў§ўјћ§њ§ћ§њћћэў§ћњћћњћћњћўћ§ћ§§ў§§ћћ§ћ§њњіћ§ћ§ћ§ћ§ћўў§§ў§ўўјћ§§њћ§ћ§§ў§ћќњћћўў§ъћў§§њћњ§§ћ§§ћ§ћ§ў§ўћћ§§яћњњћћ§ћ§ћў§ўћ§ћ§ћћ§ў§ўўў§ўў§ўћ§§їў§ўћ§§ў§ўў§§ў§§§ўћ§§ўћ§§§ћ§ћћ§§ў§ўўђ§ћ§ћ§ћћњћњњћ§ћћэ§њћ§ћћ§ћ§ў§ћ§њћћ§ћўўј§ћћ§ћў§ўўєћ§ћ§§ў§ў§ў§ўўј§ў§ў§§њћћ№§ћ§ў§њ§ћ§ћ§ћ§ћ§ўў§§ћ§ўў§ёў§§ћ§ћ§§ў§ўћ§§ўў№§ўћў§ў§ў§ў§ў§ў§ўўќћ§§ўўћ§ўў§ўў§ўў§§їћ§ћ§ћў§§ћћэ§ћ§ћўћ§ћћњћњ§ћ§§ў§ўўіћ§§ў§ўў§§ўўъ§ў§§ўў§§ћћњ§ћўћћ§§ћ§§ўўў§ўўў§ћћћ§ћўў§§њњћћ§ћўўї§ўў§ћў§ў§§ћў§ўћ§§ўў§§іћў§§ћўћ§ћўў§ўьћ§ћў§ў§§ћ§ћ§ўў§ў§ў§ўўњ§ўћ§ћ§§ќў§§ўўњћ§ћ§§ўўї§ћ§ћўў§§ўў§ёћўћ§ћњњћћўў§ћ§ўў§ў§ёўћў§ў§§ўў§ўћ§§ўўў§ўўю§ўўћћ§ўўћў§ўћ§§ћћўўі§ўў§ћ§ћ§ћ§§ўјћ§ћўћў§ўўў§ўўђ§ў§ў§§њћћўћ§ћўўў§ўўћё§ўўћ§њњћ§ћћњ§ћ§§ўћ§§їћ§ћ§ћў§ў§§ќћ§ћўўћ§ў§ћ§§ўєћ§ћ§§ћњћњ§ћўў§ћћў§§ћћѕўћ§ўўћ§ў§§ўў№ћ§§ў§ў§§ћў§ў§ўћњњўћўўў§ўўћѕ§ћћњњљћњ§њ§§ћћ§ћ§ћћћў§ў§ўўњ§ўћ§§ўўј§ћ§ћўћ§ћћћ§ћў§ўўђћњљћ§ћћў§ћ§ћ§њњї§ћћњ§§ћњћћѕњ§ћў§ў§§ћ§њњњ§ћ§§ў§§ўњ§ћўў§ћћћ§ћ§ћўўј§ў§ў§§ћ§§ћѓ§ў§ў§ўў§§ћў§ўўђ§ўћ§ћ§ћ§§ў§ў§ўўћ§ўў§ћўў§ўўј§ў§ў§ў§ўў§ќћ§§ўўў§ўўњ§ўћ§§ўўќ§ў§ўўў§ўўї§ў§ў§ўћў§§ѕћ§§ў§ў§ў§ў§§ўћ§§їў§ў§§ћў§ўўш§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўў§їў§ў§ў§§ћ§§ќў§§ћћ§ёўћ§§ў§ў§ў§ўў§ћўўќћў§ўўў§ўўќ§ў§ў ў§§ў§§ў§ўќ§ў§ўўў§ў ўљ§ў§ў§ў§§ўў§§№ћў§ў§ў§ў§ў§ў§ў§ўўі§ў§ў§§ћў§ўўњ§ў§§ћўўќ§ў§ўўў§ўўў§ўўђ§ў§ў§ў§ўћўћў§ўў§ў§ћ§ўќ§ўћ§§ўњ§ў§ў§ўўє§ў§ў§ў§ў§ў§ўўї§ў§ў§ў§ў§§љўћў§ў§ўўљ§ў§ў§ў§§§ў§ўўў§ўўј§ў§ў§ў§ўўў§ўўў§ўў§ ўў§ўўюћўћ§ћў§ў§ў§ў§ўћў§ў ў§ѕў§ў§ў§ў§ў§ўўћ§ў§ў§§ћўћ§ћўўњ§ў§§ћ§§њћ§ћ§§ўў§ўў§§юў§ў§ў§ў§ў§ў§ў§ћ§ў§§§ў§ўўњ§ўћўћ§§ўњ§ў§ў§ўўј§ў§ў§ў§ўў§§ў§§ўћ§§ўњ§ў§ў§ўўў§ўўј§ўў§§ў§ўў§§ў§§ђћў§ўћ§ћ§§ў§ў§ўўї§ўћўћўћўћћ§њћў§ўћ§§§ў§ўў§ѕћў§ў§ў§ў§ў§§љў§ўћ§ћ§§яћ§ћ§§ў§§ћ§ћўћўћ§ћћњќўћўћћ§ќў§§ћћ§ўл§ў§ў§ў§ў§ўћ§ћ§ћў§ўћў§ў§ўў§ћ§ћў§ў§ў§ў§§эўћўћ§§ўћ§ћўћћ§ўћ§ћ§§юћ§ћ§ћ§§ў§ў§§ћ§ћ§§ўўљ§ў§ў§ўћћњў§ў§ўћћї§ћўћўћў§ўў§ћ§ъћ§ћ§ћ§ћў§ў§ўћўћ§§ў§ўћ§§ьў§ћ§§ћћ§ў§ў§ў§ў§ў§ў§§ўњћ§ћ§ћ§§§ў§ўўћ§ў§ў§§ўі§ў§ў§§ћ§ћ§§ћў§§ћ§§ћў§ў§ўўі§ў§ўћўћў§ўўю§ў§ў§ў§ў§ў§ў§ў§ў§ўўўћ§§ўў§§ўў§§§ўћ§§§ћ§ћћ§љў§ў§ў§ўўў§ўўќ§ў§ў ў§ў§јўћ§ћў§ў§§њў§ў§ў§§јћ§ћў§ў§ўў§ћўћ§§ўўњ§ўћўћ§§єћўћўћўћўћ§ћ§§ўў§§ѕўћў§ў§ў§ў§ўў§ўє§ў§§ћўћ§ћў§ўўі§ўћ§њ§њћћ§§ћћ§ћў§§ўў§§ћєўћћ§ўћћњћћў§§ўўћћњўћ§§ў§§§ћўћћѓўћў§§ћ§§ў§ўћўўђ§ў§ў§ў§ў§ў§ўћ§§ўћ§§№ћ§§ўћ§ћћњ§њ§ћ§ћ§§юћ§ћ§ћ§њћћўћћ§ў§ў§ўў§ ўќ§ў§ўўћ§ў§ў§§ўў§§сў§§ћў§ўћћ§§ћўћў§ў§§ћў§ўћ§§ўћ§ћ§§їћ§њ§ћ§§ў§§ќћ§ћ§§њћўћў§ўўў§ўўѕћўћ§ўў§ўћћ§§§ў§ўўь§ў§ўћ§§ў§ў§ў§ў§§ћўћ§§ђћ§ћ§§ў§ў§ўћў§ўўќ§ў§ўў§юћўћ§ћ§ћ§§ў§ўњўћўћ§§ўў§§ќў§ў§§ћў§ў§ўўњ§ў§ў§ўўћћў§ўћћ§ўћ§§їћ§ћ§ћ§ћў§§§ћ§ћћ§љў§§њћњ§§љўћ§ћ§§ўў§§ў§§§ўћ§§ўћ§§ўћ§§ўњ§ў§ўњ§§іћ§§ўћ§ћ§ћ§§§ћ§ћћћўћўћўўя§ў§ў§ў§ў§§ћў§ўћў§§ћў§ўћ§§іў§ў§ў§§ћ§ћћћўћ§ћ§§юћў§§ўў§ў§ў§ў§ў§ў§ўўї§ўњ§њ§§ў§§шўћ§ћ§§ў§ў§§ћ§ћћњ§§ўћўћў§§јћў§ў§ў§ў ўі§ў§ў§ў§§љњњђћўћўћ§ћ§ћ§ћўћ§§њћ§њћћ§§їўћ§§ў§ў§ўўў§ўў§ћў§ћћ§ёћњћљ§ћўњћћўћ§§ўў§ќў§ў§§єћ§§ў§§ћўћ§ћўўў§ўўќ§ўћ§§ћ§ћўўћћў§ћћїўњ§ћ§ћў§ўўњ§ў§ў§ўў§књћ§§ћ§§ў§ўў§ћ§ћ§ћўћў§ўћ§ћ§ћў§ў§ў§ўћ§ћ§§ўњћ§§ў§ўў§§ў§§јћњўћўњ§ћћј§ћћ§ў§ў§§ћ§уў§ў§§ћ§ћў§ў§ў§§ћў§ў§ў§ў§ў§ў§ўўє§ћ§§ў§§ћў§ўћћ§ѕў§ў§ў§ў§ў§ўў§јћ§ћў§ў§ўўњ§ў§§ћ§§§ћў§§їћ§§ў§ўћў§§љў§ў§ўћ§§ўў§§ў№§ў§§ћ§ћўћћ§ў§ўў§§юў§§ћўћўњћ§§ћў§§ћ§ћћќ§ћ§ўў§ўў§§ёў§ў§§ўў§ў§ў§ўћ§§чћ§ћўћ§§ў§§ћўћћ§ўћўћўњ§њћ§§эўћ§§ўћўћ§§ў§ў§ў§ў§ўўќ§ў§ўўћћ§ў§ў§§љўћўћ§§ўў§ћў§ў§ћћ§ўў§§ўњћ§ћћ§ўўњ§ў§ў§ўў§юў§ўћ§ћўњћћ§ћ§§ћћўћћњў§ўћў§§љўњўћ§ћ§§љћўћў§ў§§ћў§ў§ўўќ§ў§ўўў§ўўь§ўћў§ў§ў§ў§ў§ў§ў§§ћ§§ћёў§ў§ўћ§§ў§ўћ§§ўў§їў§ў§ў§ў§ўў№§ў§ўў§ћ§ћ§§ћћ§ћ§§ѓўћ§ћ§ћ§ўў§§ћ§§њўћ§§ў§§јў§ў§ўћўћћяўћћ§ў§§ћ§§ў§§ћ§ћ§§ёћ§њћћ§§ўћ§§ўћ§ћћќўћўћћјў§§ћўћћ§§ўў§§њў§ў§ўћћ§эў§ўћ§§ў§ў§ў§ў§ўћ§§ўўь§ў§ў§ў§ў§ў§ўћ§§ў§ў§ўўњ§ў§ў§ўўќ§ў§ўўє§ў§ў§ў§§ћ§§ўў§ѕў§ў§ў§ў§ў§ўўў§ўўј§ў§ў§ў§ў ўќ§ў§ўўщ§ћў§§ћ§§ў§ўћў§ў§ў§ў§ў§ўў§ўў§ўўћ§ў§ў§§чў§ўћў§ў§§ћ§§ў§ў§ў§ў§§ћ§§ўўі§ўћ§ћў§ў§ўўќ§ў§ўўё§ў§ў§ў§ў§ў§§ћ§ћћ§§ўћ§§јў§ў§ў§ў§§ѕћў§ў§ў§ў§ў§§ ўю§ўў§§ў§§ћўћ§§ў§ў§ўў§їў§ў§ў§ў§ўўј§ў§ў§ў§ўўј§ў§ў§ў§ўўј§ў§§ћў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўў§ў ўў§ўў§ўў§§ўў§§њћ§ћ§§ўўќ§ў§ўўљ§ў§ў§ў§§їў§ў§ў§ў§ўўњ§ў§ў§ўўі§ў§ў§ў§ў§ўўћ§ўў§ўўњ§ў§ў§ўў§чў§ў§ў§ў§ўћ§§ў§ў§ў§§ўў§ў§ўўљ§ў§ўћ§ў ўњ§ў§ў§ўўў§ўўў§ўўѕ§ў§ў§ў§ў§ў§§§ў§ўўњ§ў§ў§ўў§§ў§§ў§ўћўўє§ў§ў§ўў§§ў§ўўў§ўўќ§ў§ўўі§ћ§ћў§ў§ў§§їў§ў§ў§ў§ўўў§ў ўў§ўўњ§ў§ў§ўўў§ўўў§ў ўі§ў§ў§ў§ў§ўўў§ўўќ§ў§ўўі§ўћ§ћ§§ў§ўўў§ўўў§ў ўњ§ўў§§ўўќ§ў§ў ў§ќћў§ўў§ќћ§§ўўў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўўњ§ў§ў§ў ўі§ў§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўўў§ўўќ§ў§ўў§ўћўўќ§ў§ўўў§ўўў§ўўў§ў ўќ§ў§ўў§ўі§ў§ў§ў§ў§ўўќ§ў§ўў§ў§ ўў§ўў§§ўћ§§љў§ў§ў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўњ§ў§ўћ§§ўў§ўўі§ўћў§ў§ў§ўўќ§ў§ўўў§ўўў§ўўў§ў ўђћ§ћ§ћў§ў§ћћўћ§§ќў§ў§§ўў§ў ўў§ўўќ§ў§ўў§§ў§§ўћ§ўѕ§ў§ў§§њўћћ§§ў§ўў§§ў§§ў§ўўќ§ў§ўўў§ўўі§ў§ўћў§ў§ў ўњ§ў§ў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўќњћњ§§ўћњњїјњјјћљ§ћ§§ўљћћ§ћћјјћ§§њўѕ§јљњїјљ§§њ§§ћуњ§љћљљ§§ўў§ћјћ§§ћћљћ§ћћљћћљ§ћћљ§№ўњ§§ўњњћљј§§ћћњљљі§ћљћљљћ§§ћћћ§ўў§јјћљћћњњ§ћћњћ§§њљљ№§њ§§љњўўњћљљћ§ў§§єњљ§§ћћ§§ў§§ћћђњїїљљћ§§њњ§§ў§§ўў§§юћљ§њ§љјјљ§љћћљћ§ћјјўљ§§ќњ§§ўўњў§љљ§§ћњ§§іўљ§ўњўў§§љљѓћљљњљћљ§§ћљћ§§єњљћћљљћћњјј§§њљћћљљ§§ўў§§ўћ§§ўњ§§ўњ§§ћњљњјћћ§§ўњ§§њћ§јјћњњч§ћњћљљћћљјјњјљћ§ћјљ§љјћ§њњ§ўћ§§ћњћѓњјњћ§§њ§§ўўћ§§ђћў§ћѕљјћњћјњљ§§ћњјўћљљѓ§њ§њ§ўўћ§ў§§ћћјњїјћњњўў§љ§§№њћћ§§ћљњ§јћћјћ§ўў§юћ§§ћњњљљ§ћћїљјћћљ§§ѕљћћјјњћ§§њ§§ўљ§§ћъљ§њњћњ§љћњњјћљњћљћ§њљ§§ўњ§§њљјјњњћћјўћ§§ўю§ћћљћћњњћјјњњљјћћ§§§њ§ћћ§љњјјћўљјјђњјљћ§§њ§§ћјћ§њњ§єњ§ўў§ћћњћћљћћ§§љћћэљћ§§њњ§§ћћњњїљјљњ§ћћї§ўў§§ћњ§ў ў§шњ§ў§њљљ§§ў§§љ§ћј§§ў§ћћљјјіњљћћљћћљћ§§ћїљ§њўўћўћўўћў§ћїњ§њ§ћћљ§ўў§їњўў§§љћњ§§њў§њ§њћћ§ќњ§јњњѓћ§ћњњљљ§§ћјљћћћњјћ§ћћ§љјћћўњ§§ў§§њўў§§љ§§ьњ§њћљљјљћјїјњћћјїїњћћўљјјўљ§§ћє§ћљљњјњњћћ§ўўћїў§њ§§ўў§њњљњ§њљћ§ўўў§њњм§ћљћњ§ћљљѕ§§њ§њ§љћљљѕ§§њ§§ћњљћњњ§§ћ§§љћњ§§љћ§§ўћњћћљ§§ќњћљ§§ћљјљљ§§ћўў§лњ§§ћљњјїњњћћњћљ§њљћћ§§њ§ћљљћ§њћћјћљћ§§њўљ§§ўўћћўўћўўѕњўћ§§ћћљћ§ћћњ§ў§ћћ§§ёљћјљљ§§ћ§ўў§§ћ§§ўњўўњњљњўў§§њў§ўўћўўўњ§§ќњ§ћјјљћљњљљњ§§ћћњјћћ§§ўњ§§љњўўњ§љ§§ќњћћљљ§єў§§њ§ўўњ§§љњњ§ћљ§§љћњјјњћ§§ћјўњ§§юљј§§ћћљ§§њћћљћћљ§њњэ§њјћћїїљїљћњњ§ћћљљћћћ§љћћљљќњ§§љљўњ§§јљ§ћўўћљўў§ќљћ§ўў§ћљўњ§§ўљ§§ќљњњ§§њћљ§њ§ћћ§љёњћ§љ§§ј§§ўў§њћўўљћўўњ§љўў§§љјћћєјљїїјћјћљњњ§§ћњњјћ§њўўќњї§ўў§§љњ§§љќћ§ў§§ћњїјњїїљљњћ§§ўіњ§§ћњћћљћ§§њўљћћќљћћ§§ў§§њ§§њќћњњјјѕњљћћљћњћћљћћљљјљћ§њћћў§ўў§ћљћћљћћ§ўўћўўў§ўўљњїљњњљ§§ўњўўћ§љљјїїћјћљјћћўљњњ§їњ§њљ§ћћ§љљћ§ћќўћ§ўўљћ§њ§ћћјјљћ§§ћћ§ћћ§ўњ§§ўћ§§њћ§јљ§§ыљјјљ§§њ§§њћћ§љљ§ўў§њ§§ћ№њїїјћћљљ§§ћљњљљўўё§ћљњњљљћљљ§њњћјјћєћ§§ўўшњћћјљљ§§ћўў§§ћћљћљњ§ћљљ§§ѕћњњљ§ўћў§њ§§њ§ ўўњ§§ќњћћўў§ћўћћєўћћ§ћљ§љћћљњњќ§љњ§§ћў§§ў§§іњ§њњ§§ћўћўўэћўў§ўћљјѓјћњљњ§ћўћўў§ў§ћћ§ўў§љљѕћ§ћў§§ўћ§њ§§љњљ§§њ§ўў§єљњјњњјњјљ§§ўўљѕ§њ§њћљ§ўўњўўё§љјћ§§њћћљћњ§ћўўўћ§§ћњ§љћљљўћ§§ўљћћљ§њ§§ўћўў§ў§њёћјјћћ§ў§њћ§њ§§ћћљ§ ўў§ћћ§ў§щњ§§љјјњћћљљћњњ§ћљ§§њ§љ§§ьћљњјјљ§§ћ§љњљјљћ§њћўў§ўўћўў№њўњ§ћњњљћљћ§ћћљ§§ўњјјјћњ§њ§ўў§§ќњ§ћўўѓњўњ§§њњўњ§њљў ўњњћ§§ћ§§ќњ§љ§§ђћњ§§њћћљ§љљњ§њњ§љљ§§ўўћўўєћўў§§ўўћўћњ§§пњ§§ўў§§ѕїљљ§ћћљљ§§њ§њ§њљћ§љљћўћћў ў§њњ§§њ§ўўњљН§њ§ўў§њ§§љўўњ§§њ§§њ§ћљљјљљ§§њњ§љўўњ§ўћћ§њ§ћћњ§ўў§њњћљњўўњћћљ§ўўњљ§ўўўћўўя§ћњ§§њљњ§§њљћљљћ§§ћљўћ§§ўў§§ўќћњ§ўўјљћўў§њњ§§ўћўјњћўўћўњ§§ўњ§§§њћўў§њђ§јњљњўўћўћ§§љ§§ўњ§§ ўћћњ§ћўў§ўўњўўћўњ§§ћўўїњўўљљњћћњњўћ§§љћ§ћўћћў§§ќўћўћћў§ќњћљ§§§њ§ўўћўўњљљќњјјљљљј§ўўћћўў§ўєћў§§ћћ§њ§§љ§§њўћћўўћўўќ§ћћ§§ћћ§љћ§§ќњћљњњўјћ§ћ§њ§§ўўћћ§ћњўўіњ§§ўўњўўћўўўћ§§њљ§ўўћўњ§§нћњћїћљћјњћћљћњњ§љўўњ§љ§ў§њў§љ§ўњћћ§§ћњ§§њўўўћў ў§њќљўћўў§§њ§§ўјћўўћўћћўўў§ўўјњ§ў§њ§§ўўњњ§§ўћ§§ћњ§§ћўўўћўў§њљњњћ§ўўћ§ўўћўўўћўў§љњ§ћљњћ§§щћ§њћћљ§њ§ўў§§њ§§ћ§§њњ§ўў§ўќ§њњўўў§ўўўћўўіњћћљњљћўћ§§§њ§ўў§ўќћ§§ўўюњўў§§ўћўњћїјјћєњћљљђњ§ћўў§њњ§§њћљ§§§ўћўўјњћјљ§§њўўїњ§§њњ§§њ§§ќћљ§ўўё§њљћ§њћћљ§§ў§§ћћ§ћћјїјўўўћўўњ§ўћњ§ўўјћ§§ўћ§љ§§љѕћјјћ§ўћ§§ў§§ў§ѓњ§§њћћњјћћ§ћўўќћўў§§ћњћ§§ўў§ќњ§§ўў§ђњ§§ћ§§њ§ўўћ§њ§§ўћўўћ§ќћњ§ўўўћўўѓ§њўћў§§ўў§њ§ўў§§њўў§ћњ§§ўўћўўўћўў§њљћ§ўўћўўўћ§§№њ§ўњ§љљћњ§њћћўћ§§§њћўўѓћўў§§љњћњћўћўў§њ§њњќ§ўћўў§ўќћ§§ўўі§ўћўћўўћў§§љћўў§њћўўћўўћўўј§ћћ§§ўў§§ўўћўў§ћњў ўќћўћўўѕ§њїњљњћ§§њўўћў§ўўћўўўњў ўўћўў§ўў§§яћўўћњ§ўў§§ўўћў§§ўўўћўўњћ§§ћўћћўўћўўќћ§њўў§ ўўћ§§щњўўћўўћўў§њћћљ§§ћћ§њњ§ўўѓћўўћўў§њ§§ўўњњўћўђњ§љўўћўў§§њњ§ўўє§љњљњ§њљўћ§ўў§ќўћў§§ћњ§ћћў ўіћўўњјљћ§њўў§§љўўњўў§њњўћўў§§ўћўў§ўўћўўњ§њўўћўў§ўћ§ў§њўўњћў§§ћўў§јњ§§ўўћћўўљ§ўћћўћўўў§њњќ§ўњўўќћ§§њњўћў ўѕћўўћ§§њўўћўўўћўўќћњћўўњ§ћљ§§њњ ўћ§ўћўўэћўўћћўўљњњљћњ§ў§њ§ўў§ћў§§ўњў ўў§ўўўћўўќ§ўћўўћў§ўњўўїљњ§ћ§ћ§њљљ§њљњњћѓњћ§ћ§ћћњћњ§ћњњ§§ћ§§ќў§ў§§љћљљњћћ§§ћс§ћћњ§ћћњћћ§ћўўћњ§њ§ћћњћњ§њњћћњћћњћ§ўћ§§ћљ§ћ§њћљћћќњ§ћњњћћўў§њњіћњћћњ§§ћћњњіћњћљљњћћ§ћћ§јћў§ўў§њћћуўћ§ћ§ћ§ћ§ћњњ§ћўћ§њћњћљљњћћњћ§§ўћ§§їћ§ћ§ў§ћ§ћћ§ќћњњћћўњћћњћі§ћ§ћ§ћ§§ў§§ћѓ§ћ§њ§ћ§ћ§§ўћўў§ћћњћћ§ћћў§ћћљ§ћ§§ћњћћ№њћљњћ§ћ§ћћњћћ§ћ§§њћ§ў§ћ§§ућ§ћ§ћ§ћћњћљњњћћ§ћ§ћ§ћ§ћўћњњћ§§ќњљњћћѕњћњњљњћћ§њћћњўћ§§юћ§њ§ћ§њњљљњћљњљћћ§§тћў§ўћ§ћ§ћўў§њњјњњ§њњљћћ§ћ§њћљњњћћ§ћ§ћўўљћўћ§њћњњљ§њћ§§ўўћћъ§ћ§њњћ§њћ§§ћћњ§њ§ўў§§ћћє§њљљћћ§њћћјњњћќ§ћћњњ§љњ§§оћ§ў§ћ§ћ§њћњћћ§§њ§§ћњљљ§ћћљњћњ§§ћћ§§ўћ§§їћ§ћњњљљћњњё§ћ§ћў§§њћћњњў§њњљщјњњћћ§ћ§ћћњћњћљњњ§њћњћњњђљњћњ§ћ§ћ§њ§њћ§§ъћ§ћў§§њњљћњћњћњ§ћћњћњћћ§ћћ§њћљљэјњћ§§њћњ§ўўћ§њ§ћў§ўўќ§ў§ўўїћ§ћ§ћўћ§ћћ§ћєўћћ§§ћўћћњћњњљљћћњћњћћѕ§ћ§њњћћ§ў§ў ўљ§ўћ§њњ§§њњћћ§§ўўщћ§ћ§§ўћ§ћњ§§ћ§ћ§ћўћ§ћ§њњ§§ћ§љљњђ§њљљћў§ћћњћњћњњћёњћћ§њћњћ§ћћ§ўў§§ўї§ўћўћ§ћћ§§њњћћњћњњћљћњњљљњќћњћњњћћ§ћ§њћћіљњљљњњћў§ўў§§ћў§§ћ§њћњ§§ў§§ћњћњ§ћћ§єћ§ћ§ћћњћћ§ћ§§ћќљћњ§§ћм§ћћ§§ћћњ§ћ§§ў§ў§ў§ћњўћ§ћ§ћ§§њћ§ћ§ћ§њњћї§ћў§ў§ў§ўўхћ§ћ§ћ§њћљњњљљњњљњћћ§ћћњ§ћ§ћћєњ§§њњ§њћњ§ћ§§њў§ћ§ћўўќ§ў§ўўў§ўўш§ћћњћњ§њћњћњ§ў§њћћ§ћ§ћњћћў§ћћќў§§ћћћ§ћ§§ўў№§ў§ў§§ћ§ћўћў§ў§ўў§њћ§ћ§ћњњьћљћћ§§ћ§њћљњњћћ§ћ§ћ§§ьћ§ћ§ћћ§ўў§ћўћ§ћ§§ћњћћ§ћъ§ћў§§ћ§ћњљљњћћ§ћ§ћ§ћ§њњїљћћ§ћ§ћ§њњ§ћљ§ћ§ћ§њћћ§§њћћќњћћ§§њљђјљјњ§§ћњњћћњњћћњћќ§ћ§ћћѕ§ћ§ћ§ћ§ћўћўўь§ў§ћћ§ўњћў§ўћ§ћњњћћ§§эћ§ћ§ћ§ћў§§ћў§§ћ§ћ§ћћ§јћњћњћћ§ћћѕ§ўћўћ§§ћћў§§ўљ§ў§ў§ћўўљћ§ћ§ћћњњїјљљњћ§ћћ§§єћ§њћњћљњњ§§ўўўћўў§ђћ§ћ§ћћ§§ћ§ћћњ§§іћ§ћ§њћљњњљљјњљћћ§ћўўтћ§ў§њћћњћ§ћ§§ћњћњњћћњ§ћ§ћ§ћ§ћўў§ћ§§ћљњњїљћћњћњљњћћћњћћ§ћћќ§њћњњ§їў§ў§§ћћњћћєњћњћњ§ћў§ў§ўўщћў§ў§ў§јјљјњљћћ§ћ§§ў§ўћћњљњ§ћ§њњўћ§§ўћ§§њўћўў§ћћњ§ћ§ўў§ўћћ§ћћњњі§ћћњ§њћњ§ћћћ§ћ§ћ§§ъћ§њ§ћ§ћ§§ћњ§ћ§ћ§ћњњћћ§§ћћ§ўўћћє§ўўћ§ћ§ћ§ћћњњљљњћњћћ§ћћ№љћћ§ў§ўћњћ§§ћћњћћ§ўћњњћћњ§ћўўљ§ў§ћњњћћф§ўў§§ћњњћњћ§§њћћ§ћ§ћћљљћ§§ў§§ќћ§ћ§§њћў§ў§ўўў§ўў§ќћ§§ў ўїћўў§ћњњћ§§јў§ћ§ћўћ§§њћ§ћ§ћ§§њћў§ў§ўў§ўњћ§ў§ћўў§§ћўўїћ§њћћўў§ћћюњ§ўўћ§§ўћ§ћ§ћ§§ћћ§§чў§ў§ў§§ћ§ћ§ћљњљљњљњћ§ћў§ўўћ§ћ§ў§§ўћћ§њћћњ§ћўўў§ўўі§ўў§ћ§ћ§ћ§§ўўћћѓ§ћћњћњћћ§ћ§§ўў§њћ§ўўћ§§њёћњ§ў§§ћћ§ћ§њћњћћїўћ§ћ§§ў§ўўў§њњ§ќћў§ўўќ§ўћ§§ћњќљњњћћ§ћл§ћ§ћўћ§ћ§њћљњњћћ§њ§ў§ў§ћњћ§ўў§ўћ§§ў§ўўў§ўў§№њљљћњћњ§њњћ§ћ§§њњї§ћ§ћўў§ћ§§ўѕ§ў§ўў§ћ§§ў§§§ћ§ўўў§ўў§§ў§ћћъ§ћ§ћ§ћўћ§ћў§§ћ§њћћ§ћћ§§њћўћ§§ўўљ§ў§ўћ§ўўєћ§ћ§ћ§§ўћ§§ћћњћѕ§ћ§ћ§ћ§ћњћўўў§ўўў§ўўќ§ўћ§§ќћ§ћўў§ў§ўіћ§ћ§ћўў§ћ§§ћћ§ћњћћѕ§ћ§§ћўў§§ћўўїћ§ћћњ§ћў§§юњћ§ў§§њћћ§§ў§ўћў§ўўў§ўўј§ў§ў§ў§ўўњ§ў§ў§ўўћ§іћ§ћ§ћ§§ћњћћ§§ћўўє§ўћ§§ўћ§ћ§§ўў§ў§іћ§ћ§ћ§§ў§ўўў§ўў§ѓћ§ћ§ћ§ћ§ћ§ћ§ўўў§ўў§ўћ§§њћ§љћ§ўўњћ§ћ§ћ§§ќћ§ћўўў§ўў§ў§іћ§§ў§ўў§§ўўў§ўўњ§ў§§ћўўѕ§ў§ў§ћћљњћ§§њўћ§ћ§ћћњќћ§§ўўјћ§ћ§§ў§ўўє§ўћ§ћ§њћћ§ћ§§ўќ§ў§ћћќ§њњћћ§ўњћ§ћў§ўў§ќћњњ§§ћћ§ћ§ћ§§ўц§ў§ў§§њћћ§ћўћћњ§ћ§ћ§ћ§§ћћ§§ўћћ§ћ§§ўўј§ў§ўћћ§ўў§ќћў§ўўі§ў§ў§ўўћћ§§ўћўў§юћ§ћ§ў§њћњћњ§љњњћњ§§ўљ§ћўћўћ§§ћў§ўўіћ§ћ§ћ§§ў§ўўў§ў ўћ§ў§іћ§ћ§ћў§ў§ўўў§ўўј§ў§ўћў§ўўњ§ў§§ў§§ўћўўю§ў§ў§§ћўў§ћ§њћ§§ћўўў§ўўі§ўћ§ў§§њћўўќћ§§ўўў§ўўў§ўўщ§ў§ўћ§§ћњў§ў§§ћўћ§њњћћ§§§ўћ§§ќћњћ§§ўћўўў§ўў§іћ§ћў§ўћ§§ўўјћў§ў§ў§ўў§њљў§ћў§ўћћ§§ћўўєћ§ћў§ўћ§§ў§ўўњ§ўўћћўўќ§њћњњќћљњћћ§§ћўўўћ§§њћ§њўћ§§ў№§ў§ў§ў§ћњћћ§§ў§ўў§ўћ§§ёћ§ћ§ћ§њћћў§ўћ§ћћі§њњћ§ћў§ћњњљ§ћњњљњўўќ§ў§ўўђћўў§ћў§ўў§ћўўћћў§ћћњ§љўћ§ў§ћ§§њћў§ўћ§§єћ§њћљњњћћў§ўў§рћ§ћ§§њћ§§ўў§ћ§ћ§ўў§ў§§ћ§ћћњ§ћ§ћўў§ћ§ћћћ§ўў§ўўњ§ћ§ћћ§§ўў§ўўїћ§§ў§§ћў§§ўњћ§§ў§ўўћ§ћ§ћўўј§ў§ў§ў§ўўі§ў§ў§ўў§ћ§§ћљў§ў§ў§ўўц§ћ§ћ§ћў§ћ§ћњ§ћ§ўў§ўћ§ћ§ћ§ўўљ§ўћ§ў§ўў§§ў§§ўћўўіћ§§ўў§ћў§ўўўћўўѓ§ў§§ћ§§ў§ўћ§ўўў§ўўў§ўўћєњ§ћў§§ћ§§ў§ўўљ§ўў§ў§ўўќ§ў§ўў§љѕў§ўћ§§ў§ў§ўўў§ўўіћ§ћ§§ў§ў§ўўў§ўўў§ўўў§ўўќ§ў§ўўі§ўў§ћўћ§ћўўя§ћў§§ћў§ў§§ћў§ў§ўўћ§ўћ§ўўњ§ўў§§ўўќ§ћћўўў§ўўћ§ћ§§ўўў§ўў§ўњћ§ўўћ§§ћў§ў§ўў§ћўў§§§ў§ўўў§ўў§ѕў§ў§ўћћ§§ћўў§§ў§§§ћ§ўў§љў§ўћ§ћўўњћ§ћ§ћўўя§ў§ў§ў§ў§ў§ў§ў§§ћћ§єў§ўћў§ў§ў§ў§§ўўћ§§ўј§ў§§ћ§ћўўі§ў§ўў§ћ§§ўўј§ў§ўћ§§ўўј§ўћ§ўў§ўўђћўћ§ўў§ў§§ћў§ўўјћ§§ћћў§ўўў§ўўўћўўњ§ў§ў§ўўўћ§§ќћў§ўўќ§ўћ§§ўў§ўўў§ўўћ§ћ§§ўўў§ўўњ§ў§ў§ўўњћњћ§ћ§§ћў§ў§ўўў§ўўќ§ў§ўўў§ўўњћљљћћ§§ўћ§§ѕў§ўў§ћ§§ў§ўўў§ўўўћўўњ§ў§ў§ўўќ§ўћўў§љћ§ћ§ўў§їћ§§ў§ў§§ћћуўћўћ§ћў§ў§ў§ўћ§ћ§§ў§ћћ§§ў§ў§ўў§ћјњўћў§ў§ўўљ§ўћ§§ў§§ў§љў§ўћ§ћ§§њћ§ћўћ§§яћў§ў§ў§ў§ўћ§§ў§§ћћє§ћўћ§ћ§ћ§§ў§§ўњ§ћћўћ§§ўїћ§§ў§§ћ§ћћќ§ћў§§§ў§ўў§ўћўўћ§ў§ў§§ћў§ў§ўў§љћ§ћўњў§§оў§ў§ў§ў§ў§ў§ў§ў§ўћ§§ў§§ћўћў§§ћўћўћћїў§ў§ў§ў§ўў§ўў§§љў§ў§ў§ўўј§ў§ў§§ћ§§№ћ§§ўћ§ћў§ў§ўћ§ћ§§ћљў§ў§ўћ§§ъў§ў§ў§ў§ў§ў§ў§ў§ў§ўћ§ћћѕ§ћў§ў§ў§ў§ўўћљў§ў§§ћ§§ќћ§§ћћѓ§ћ§§ўћў§ў§ў§ўў§ўў§§ћў§ћћћў§ў§ўўќ§ў§ўў§ќњ§ћ§§ђћўћў§ў§§ћћњћњ§§њћў§ў§ўў§ћћ§њўћћћўћў§ўўћ§ў§ў§§ўў§§їў§ўћ§ћ§§ўўљ§ўћў§§ћћьў§§ћћњћ§§ћў§ўћ§§ўњў§§ьў§ў§ў§ў§ў§§ћ§§ў§ў§ў§§ћє§ћ§ћў§ў§ўћў§§їў§ў§ў§ўњћћ§ћ§§ў§ўў§ўћ§§ђњў§ўњўћ§ћ§ћў§ўўѓћ§ћ§ћўћў§ўћ§ћћўў§§ќў§ў§§ўњ§ў§ў§ўў§љўћ§ћ§ћ§§ёћ§ћ§ћ§ћў§ў§ў§§ћћќ§њћ§§ќћ§§ўў§ ўќ§ў§ўўњ§ўћў§ўўќћ§§ўўіћ§§ћћўћ§ћ§§љћ§ћў§ў§§ў§їў§ў§§ћ§§ўўќ§ў§ўў§љў§ў§ў§ўў§§ў§§ўўћћўњ§§цћў§ў§ўћў§§ћ§њўћўћ§ћ§ћ§ћ§ћўўў§ўўў§ўўў§ўўк§ў§ў§ў§ўћўћўћ§ћ§њћ§§ћ§§ўћћ§ў§ў§§ћўћћ§ћћ§ўќ§ў§ўўї§ў§ў§ў§ў§§ўћ§ў§ў§§§ўћ§§њў§ў§ў§§іў§ў§ў§ўћћ§§яў§ўћў§ўћў§ўћ§§ў§ўўѕћ§§ў§ў§ў§ў§§ќў§ў§§ћў§ў§ў ўћ§ў§ў§§ћэўћў§§ћ§§ў§§ћў§ў§ўћ§§ўў§§њћ§§ў§ўўќ§ў§ўўќ§ўћ§§яћ§ћ§§ў§§ћў§ў§ў§ў§§§ўћўўј§ўћў§ў§ўўќ§ў§ў ўы§ў§ў§ў§ўћў§§ћў§ў§ў§§ћћё§ћў§ў§ў§ў§ў§ў§ўўі§ў§ў§ў§ўћ§§ќћў§ўўу§ў§§њћћ§§ў§ў§ў§ў§§њўћўћў§ў§ў§§§ўћ§§ўь§ў§ў§ўћ§ўў§§ћўћ§ћў§ўўд§ўћў§њњ§њ§§ў§ў§ўћ§§ўћўћ§§ў§§ћ§§ў§§ћ§§ў§ў§ў§ўўў§ўўќ§ў§ўў§§ў§§јў§ў§ў§ў§§ўя§ў§ўћ§§ўў§ћ§ћў§ў§§ўћ§ў§§ўўў§ў ўљ§ў§ў§ћ§§юўњ§њћћ§ћ§§ў§ў§§ћ§ћћ§ўў§ўў§іў§ў§ў§ў§ў§§ыў§ў§ў§§ћћњўћ§њ§њћћў§ўў№§ў§§ћ§§ў§ў§ўћўћ§§іћ§§ў§ў§ў§ўўў§ўўр§ў§ўћћњўћўћ§ћ§ћ§ћ§ћ§ћ§ћ§ћўћў§§ћ§§ўђ§ўћ§ћ§ћ§ћ§ћ§§ў ўњљћ§ў§ў§ўўјћ§ћўњњћ§§ўќ§ў§ўў§§ў§ўўў§ўўћ§ўћ§ћћ§§ўћ§§ќћ§§ўўї§ў§ў§ў§ў§§љў§ў§ўћ§§ѓў§§ћўћў§ў§ў§ўў§ўј§ў§ў§ўћ§§№ћ§њўћ§ћ§§ўћ§ћўћўўѓ§ў§ў§ў§§ћў§ўћћћўћ§§ўўјћ§ћ§§ў§ўўї§ў§§ћ§ћў§§њў§ў§ўћћ§ўі§ў§ў§ў§ў§ў ўќ§ў§ўў§єћў§ў§ў§ў§ў§ўўњ§ў§ў§ўўќ§ў§ў ўў§ўўќћ§ћўўў§ўўў§ўўќ§ўћўў§ўћ§§ўў§ўўє§ў§ў§ў§ў§ў§ўўљ§ў§ў§§ћћћўћ§§ўўіћ§§ў§ўћў§ўўљ§ўћў§ў§§ ўф§ў§ў§ў§ў§ўћў§§ћў§ў§§ћ§ћў§ў§ўўќ§ў§ўўъ§ў§§ћўћ§§ў§ўћў§ў§ўћ§ћ§§ўќ§ў§ў ў§ўї§ў§ў§ћћў§§№ўћў§ўћ§§ў§ў§ў§ў§§ћќў§ў§§їў§ў§ў§ў§ўўў§ў ў§ћ§§ћ§§ѓў§ў§ўћўћ§ўў§ўўњ§ў§ў§ўўў§ўў§§ў§ў ўј§ўћў§ў§ўўў§ўўњ§ў§§ћ§§§ў§ўўў§ўўў§ў ўў§ўўњ§ў§ў§ўўя§ўћ§ћў§ўћ§§ў§ў§ў§§ўњ§ў§ў§ўўј§ў§ў§ў§ўўё§ў§§ўў§ў§ў§ў§ў§§љўћ§§ў§ўўў§ўўњ§ўћ§§ўўњ§ў§ў§ўўњ§ўћ§§ўўюћў§ўў§§ў§ўћ§ћ§ћў§ўўў§ўўќ§ў§ўўў§ўўў§ўўі§ў§ў§ў§ў§ў ўђ§ў§ў§ў§ў§ў§ў§ўўі§ў§ў§ў§ў§ўўі§ў§ў§ў§ў§ў ўў§ўўќ§ў§ўўў§ўўј§ўћ§ћў§ўўћ§ў§ў§§§ў§ўўќ§ў§ўўє§ў§ў§ў§ў§ў§ў ў§їўћўћўћў§ўўў§ўў§§ў§§ѓў§ўћў§ў§ў§ў§ў ў§ќћў§ўў§ѓў§ў§ў§ўћ§§ў§ўўњћў§ў§ўўўћўўў§ўўќ§ў§ўўъ§ў§ў§ў§§ћ§ћ§§ў§§ћ§§ў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўўј§ў§ў§ў§ўўњ§ў§ў§ў ўў§ўўј§ў§§ћў§ў ўњ§ў§ў§ўўў§ўўћ§ўў§ўў§ў§ўў§ўўі§ў§ў§ў§ў§ўўќ§ў§ўўў§ўў§ќў§§ўўў§ўўў§ўўў§ўўђ§ћћў§ўћ§ћ§§ў§ўўљ§ўў§ўў§§ўњћў§ў§ўўѕ§ў§ў§ў§ў§ў§§ў§ќћўў§§ў§§ў§§ћў§ўњў ўў§ўўў§ўў§ћ§ўћ§ў§ў§§ўљ§ў§ў§§ћћ§§ћўўі§ў§ў§ў§ў§ўўњ§ў§ў§ўўі§ў§ўў§§ў§ўўў§ўўў§ўўј§ў§ўћў§ў ўў§ўўў§ўўќ§ў§ўўў§ўўќ§ў§ўўћ§ў§ў§§ ўњ§ў§ў§ўў§§ў§ўўњ§ў§ў§ў ўќ§ў§ў ўў§ўўў§ўўў§ўўў§ў ўћ§ў§§ўўў§ўўќћ§§ўўќ§ў§ўўњ§ћњћ§ўўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўўў§ў ўў§ўўў§ўўќ§ў§ўўў§ўўќ§ў§ўўќ§ў§ў ўў§ўўќ§ў§ў ўў§ўўј§ў§ў§ў§ўўў§ўўў§ўўќ§ў§ўў§ќћў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўўќ§ў§ў ўќ§ў§ўўќ§ў§ўў§ўў§ўўј§ћћ§ћў§ўўў§ўўќ§ў§ў#ўњ§ў§ў§ўў§§љ§њњ§ўњ§§вјљјјљњ§ћїјљ§ў§њљљ§ўћў§њ§њ§њїњ§§њћјљ§љњјјњљљћїјјєњ§љ§§ў§§љ§њўў§ћјљљњ§§ќљћћ§§ўє§ћћў§§њјљљћљљўјћў§љјћћљљёћ§§ћњћљњљљћњ§ў§§љї§њњ§ћјћљ§§юњ§њў§§њ§§љљ§њњў§ћўўі§њњ§§ўў§њ§§ыњћ§њњўў§§љ§њћљћљ§њњћўўёњћљјћљљњјїјћњњўўќћ§§ўў§§ј§§ўўћўўх§ћљњњ§њўў§§ћћљњјњјјћ§ўћўї§љљіњљћўўћћњљўў§ћњўўў§ўў№§љљ§ћљ§§ћ§§ўћўћўўјњјїѕїљљћћћљћћ§ўўћ§љљ§ўўєћўћўћўў§њљћўўљ§љ§њњ§ўўі§ћњ§њљњњ§ўўњ§їњ§ћћ§§ћ§њњ§њ§њљ§љћўњњ§§ћўўњ§ўњўўќњўў§§ўћ§оћљћћљ§њ§§ўћўў§ћњњ§љћћњњ§ўњ§њ§ўўћћўўў§ћћјќїјљ§§ѕљ§ўў§њўњ§њ§§эћ§§њњ§ћїњјјћћњ§§ћњўў§§њ§§ўњўўїљњљ§ћњљћ§§ќљћ§ўўўћўўёћў§§њ§њњћ§љ§ўўњњ§щњўўћўўћћўњ§§њ§њњ§њљў§њ§§њњ§§њњ§§№ћўўћ§§њњ§њћ§ўўњ§§ўњћўћўћўўњњ§ўўћњўўњ§њ§ўћўўњ§ўўњ§ўў§ўѓњ§§њўў§љ§љњљ§§ђњ§§њњ§њћўў§њњ§§њўћћўўћўў§ўњћўњ§љћћјюїћњў§њ§ћў§§љїєљ§§ўўўћўўњњ§§њћўўћ§ћњ§ўўє§ћњїїћ§§њўћ§§ѓўћ§ћјјљљћљћљћћњў§ўўњўјћўњћћњњ§§ќњћћўўћћњљћћњњ§§њ§§ўўћ§§јњ§њ§ў§њўў§§ћўўю§ћљњў§њљњ§§њ§§њћћўўњћўћ§§ўўћ§ћѕћ§§њњўўћћўўќћўћўўюћўћњћњњ§ўўћўњ§јњ§ўўѓљ§§ўћ§§њўћў§ўў№њљўўљњљњўћњ§ћў§њњѕ§ўўћ§њњ§§ћўўњћўњљћўўќ§њћўўєћўў§§љљ§§ўўћћ§јњћћ§§ўћўўўћў ўшћўћћўў§њ§ўњ§њљћњ§ўў§љўў§§ўіћўўћћўўњ§ўўў§ўўўћўўіљ§§њ§ў§њ§ўўіћўўћ§њўўћўўњќ§љ§ўў§ѕћ§§њ§њњ§§ћўўљ§ћљљњњўўц§њўўћў§љјјћћљњњ§њ§ў§§њњћћўў§њћўўљ§њ§ћљ§ўўљ§њћјћ§ўўќћўћўўњўї§њћ§§њ§њ§§њ§ўњ§§їљјљћ§§ўћўўќћ§њўўїћў§њ§§ўћўўўћ§§њўўћўў§ќўћў§§ўўњўўєћўў§њ§њћњљњ§§ў§љћћљћї§ўўўћўўўћўўќ§ћћўўћўћћўњ§§ўў§ў§§ћў§§њў§ўљћўўћ§њўўјћўћ§§јњў ўѕ§њљј§њў§њ§ўўљћўћћ§§ўўўћўў§ўўћўўўњўў§њћўўўњўўќњ§§ўўњўћўўїњћўўћњњ§ў ўўћўўј§њ§њ§ўўћћўўћўўњ§њўћћўўўћўўыћўўћўўћ§ўў§§њњ§ћћўўћўўњ§ўћ§§ўўўњўўї§љ§ўў§њћўўћў§ўў§њљ§ќў§њўўћјўћњћћў§њњ§ўћў§ўљўўўћў ўјњљћњћћњ§§ўћћўўћўўўћ§§ў§њ§њњ§ўўћўўћўўћўў§ћњўўіћў§ўћўў§ћўўћљўњјјѕљјїѓї§ўўњњ§§іљјњўўњћўћўўњ§ўћўўўћўўњњ§њ§§ћўўћјў§њ§§њ§ўўћћўўћўўўћўўћўўћўў§јљєћ§§ўћўўћўїћўћўњ§§њўўќ§њ§ўўў§ўўњћњњ§њўўљ§љ§њћњўўњћўћўћўўјњ§ћњћ§ћўўћњўњњўўћњ§љћўўя§њўўћўћ§§њњљ§ўўћўўћўѓњљњћј§ўћўўћћўўћћўўњўў§ћњўўљ§§§ўћўў№њ§њ§§ўўћњ§§ўўњў§§ўћўў§ў§§њ§§ўўћўўћњ§њ§ўўћћўћњ§§ўњ§§§љњ§§ўјћњњ§§њўљљ§ўњўўћўўњўў§ћњўўўћўўњћў§њ§њњїўњњ§њњ§њўўїљњћћўћјјљљ§ћњўўўћўўћ§њј§ћўўћўўњњљ§ўћўўћўўњњ§њ§ћўўіћўўћўў§љљўў§§ћљњњўљўўћљў§љћўњўўѓћ§јљ§§ўљўўћћўўєњ§ўњўњћћўњ§ўўўћўўў§ўў§ћњўўјћў§§њўўњњяћўћў§ћўўћўњ§љљ§§ўўѕ§љћўў§ўћўћўўќњўћўўўћўўўћў ў№њћњўўћўњ§њњљњ§њћћ§їњў§њ§§ўћўўћ§ўўћўўўћўўњћ§ћ§љўўўћўўњљ§ў§њўўўћўўћћў§§ўўћўњ§њўўћўўі§ў§§ћћўўћўўєћњњўўњ§ћћљ§ўўќћўћўўњћњ§§њўў§§ўћћўњћ§њњ§ћћўњјѓљ§њ§ўћўўњњўњ§§ќћўћўўћќўћў§§ўѓњљњњўў§§ћјљњўўі§њ§ћ§§љњњўўђњ§ўћћўњљ§§њ§§ўўћћўњћўў§ћћљ§љўў№§ўўћўўљљњ§§љўћћўўњњ§њ§§ўў§§њўўќћў§љљўњі§ўў§њ§њ§ў§§ўњўўўћўўўћўўћўћќ§њў§§јљњ§ћњўћўўњћњ§љњўўѕњћў§§ћћљ§§ўўўћўўўћўўўћўўќ§ћћ§§яњ§§ћўћўў§§њ§њ§њ§ўўўћўў§ќљћ§ўўўњўўјћ§ћљћњћўўц§њњ§љјјљ§ў§§ћћўў§§ўў§љћ§§ўўќћў§ўўјћўњљјјћ§§јњўў§њўњўўћњўћ§њ§ў ўњўї§њјњ§ўўњљљ§§њ§§ўњљљ§ўщњћњўўћ§§њ§ўў§њ§њћћўўћћ§§ў§ћњ§§ўњўў§ўњўў§§љ§§ўўћў ўхћњљ§ў§§ћ§§ўћўћ§њћўўћ§њ§§њћўўћўћћўўћўўјћўњўўћўњњў§њњў§јјљјљљ§§ўўњњ§§ўћўўўјўў§ўњћћўћўїћ§ћўўћўљ§§ўќ§ўћўўћ§њћ§ўўіћњ§§љїњћ§ўўќћўћўўўћўўќћўћўўё§љ§§ўўњ§§њљ§њ§ўўќћўњ§§ќњћњљљ§ћњћљњ§§ќњўћўўќћњњ§§ўлњћ§ў§ћљїїљћ§ўњ§љљ§§ўўћўљљњ§љїєѕјњ§њћ§§ўњўўћњњ§ћўћў§§ѓћ§§њњ§§њ§§ћћ§§ћњ§ўћўўћњљљњ§§ўљ§§ўњ§ѕњљ§ўћўћўўћњњў§ўў§§њ§§ўњўў§ўыњў§ўў§§ћљљћ§§ћљ§ўўњњљљљњ§ўњљ§ўўїћўў§§љўћўўўћўў№њ§ўўћ§њњћћњ§§њ§љљјћљїїњљњ§§ў№ћњўљњўћњњ§њњ§љћ§§ќў§ћўўћ§ўћўў№њљћћњ§ўћўўћўў§њ§§§љњўў§§ћ§§єћўўћў§њњѕћњ§§ў§іўћўў§§њњ§њњ§§ўћўўћўўћўўя§њњ§њћљћћўћўўњњљўўљћўњ§ў§њњќўћў§§ћњ§§њ§§ўћўњњ§§ўўњњќћљћљљю§ўўћ§§јљњ§њ§§ћўў§ў ўњћўћўўћћўљ§љљњїїѕѕєїјљј§§ўўћўў§§ыљњ§њљљ§§ћљљ§ўћ§љљњ§њўўўћўўћѕњ§§ўў§њ§њћўўё§єјњјњћљњ§љњ§њ§§§њјљљљћљњ§§њ§§§њ§ўўћќ§ћ§ћћ§ћє§ћћ§§ћњњћ§ћњњўћ§§ћ§ўў§§ўћ§§ёў§§ћ§њ§ћ§ћљњњљћћњзљ§ў§ћўћ§ћ§§ў§ўћ§§ћћ§ћ§ћћњњћ§ћ§§ў§§ўў§ћћ§ћћ§ў§ўўћ§ћ§њћћёњ§ћњљњћ§ўћњ§ћўћћ§њћњ§њўћћі§ћ§ў§ћ§ћ§ћћ§ћўћў§ўўљћ§§ћћў§§њћ§ћ§ў§§ѕўћ§ў§§њћњћ§§ў§шњћћњћћљњљњњ§§ў§ў§ўћ§§ў§ћћ§ўў§ўўћ§ћћ§ў§ћћњњћљњљњњўћўўў§ћћїљћњў§ўў§ўўќ§ў§ўўљ§ћ§ў§§ћћўё§ћњћ§§ў§ў§ў§§њљљћњљћњћћў§ўўў§ћћўў§ўўќ§ћ§ўўњ§ўћўћ§§ўј§ћў§ћ§ў§§ў§љћ§ћћњ§ћћ§ўћ§§їћ§ћћўў§ў§§ў§јћ§ћ§ћ§§ўўі§ў§ўћ§ћ§§ўўє§ћњћњњћћ§ћ§ўўёћњ§§ћћњћ§§ћў§ћ§§ўѓ§ўў§њћњћњњљњћћ§§ўћ§§іћ§ћ§ћ§ў§ћ§§њўљњњї§ћ§ўў§ў§ўўѕћ§ћ§ћ§ўў§ў§§ѓћњ§ћњћ§ћћњ§§ўўў§ўўўћ§§ўњ§§ў§ўћ§§ќћ§§ўўў§ўў§їћ§ћ§§ћ§ў§§ћћ§ћ§ћ§§ќћ§ћўўћ§ѕњћўў§ћ§ћў§ўў§ўћўўє§ў§ў§ў§ўћ§ћўў§ќў§§ўў§ћ§ўўэ§ћ§§ўў§ћ§ў§ўћћ§ћ§ћ§§ћћ§ўў§§ћ§ћў§ў§ўўљ§ўў§ћ§ўў§ћў§ћћњњыћ§ўћ§ћўў§ћћњћћ§ћў§ў§ўў§ќћ§§ўўћ§њ§ћўўќ§ў§ўўї§њљњћњ§ћўўљћ§ћўў§њњћћњћњћ§§ў§ў§ќћ§§ўўќ§ў§ўўќћњћ§§ћќ§ў§ўўя§ўћ§ћ§ћ§§ўћ§§ў§§ўў§ћўћњў§§їћ§ћћ§ћ§§ўўў§ўўёћ§ўў§ўћњ§њћ§ћ§ћћў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўў§ў§щћ§ћў§ў§§ћўў§ћ§§ў§§ўў§§ўўї§ў§ўў§ћў§§ў§§ћ§ўўў§ўўў§ўўњћ§ўў§ўў§ћћ§ћў§ўўћњ§њњ§ћў ўј§ў§ў§ў§ўўў§ўўўћ§§№ћ§ћњ§ћ§ўћў§ўћ§ћўўў§ўў§љў§ћ§ў§ўў§іћ§ћўћ§ћў§ўўњ§ўћ§§ўўў§ўў§јћўћў§ў§ўўѓћ§ћўћћ§ћ§§ћ§ўўљћњћћ§§ўў§ћ§ўўћњњ§њњћ§§ќћ§§ўўљ§ў§ў§ў§§їњћћў§ўћ§њњ§ћ§ўўъ§ў§ў§ў§ў§ўћўўћћ§ћ§ћ§ћ§§єћ§ћ§ћћњћњ§ћўў§ўў§ўў§ћўјћ§ћ§§ў§ўўў§ўўќ§ћћўўєћ§ћў§ў§ў§ў§ўўєћ§ћ§ў§ў§ћ§ћўўў§ћћњћћњўћўўќ§ў§ўўќ§ўћўўў§ўўў§ўў§ўћўўў§ўўєћ§§ўўћћўў§ћ§§іў§ў§ўћ§ћ§ўўњ§ўћ§§ўўёћ§ћ§§ў§ў§ў§ў§ў§§їћ§ћ§ўћ§ћўўќћ§§ўўњ§ћћ§ћў ўў§ўўў§ўўў§ўўќ§ў§ўў§ќћ§§ўўј§ў§§ўў§ўўў§ўў§ўў§ўўў§ў ўў§ўўў§ўў§ўў§ўўњ§ўћ§§ўўў§ўўў§ўўў§ўўј§ўћў§§ћ§§ўў§ўўє§ў§ў§ўћўў§§ўў§ў§ќўћ§ўў§їў§ў§ўў§ћ§§ћљ§ћўћ§§ўўќ§ўў§§ћўћљ§ўў§ў§ўўќ§ў§ўўў§ўўє§ћњ§ўў§ћћ§§ў ўћ§ў§ўў§§ћ§§§ћ§ўўќ§ў§ўўќ§ў§ў ў§ўўћўўј§ћўў§ў§ўўўћњњѕћњљњњћў§ў§ћћ§§ў§ўў§§ў§§§ў§ўўђ§ў§ў§§ћ§ћ§ўў§ўўў§ўўќћ§ћ§§ўў§ўўў§ўўњ§ў§ў§ўўў§ў ўі§ўћ§ћћњћћўўќ§ў§ўўў§ўў§ћћ§§ў§§§ў§ўўј§ў§ўћў§ўўќ§ўў§§§ў§ўўћћ§ўў§ўўў§ўў§ћќљњћўўў§ўў§ўћ§ў§ћўўў§ўў§љў§ў§ўћ§§ќў§§ўўў§ў ўћ§ћљћ§§ўъ§ў§ў§§ўў§ў§ћћў§ўўћћ§ћўўљ§ў§ў§ў§§ўћўўѕ§ћћў§ў§§ћ§ўўћњў§ўћ§ћћ§ў§ўў§њћ§ћў§ўўы§ћ§ћ§ћ§ћ§ћў§§ћ§§ў§ўў§§ќћ§§ћћ§§ћўўћ§ўў§ўўў§ўўў§ўўќ§ў§ўў§ћў§§ћ§§ўў§ўўњћњњ§§ў§ўўњ§ўў§ћ§§ў§§ў§§ўќ§ўў§§ўў§ўўћў§§ћ§ћћ§њћ§§ўў§ўўў§ўўќ§ў§ўўњћ§ћ§ћўўў§ўў§§ў§§ѕў§§ўў§§ћў§ўўќ§ў§ўў§§ў§ўўѕ§ў§ў§ћћ§§ў§§ўў§ўў§ћѓ§ћў§ўў§ћњ§ўћўў§§ў§§§ў§ўўќ§ў§ў ўў§ўў§јћ§§ћ§ћ§ўўяћ§§ўћ§ћ§ўў§ў§ў§ў§§ўў§ўўњ§ў§ўў§§іў§ўў§ў§ў§ўў§§ў§§ћў§ў§ўўі§ў§ў§§ћў§ўўў§ўў§ўў§ўўћћўћ§ўўќ§ў§ўў§ўї§ћњњћћў§ў ўє§ўў§ћ§§ў§ўћўўѕ§ў§ў§§ћ§§ћўў§њњћћ§ћўў§їў§§ћ§ћў§ўўј§ў§§ћ§ћўўѓ§ў§§ў§§ћњћў§ўўіћ§ћўћ§ћ§§ўўў§ўўњ§ў§§ћўў№§ћ§ћ§ћ§§ў§ў§ўў§ўўњћ§њўћўўќ§ўћўўі§ўћћ§§ћў§ўўў§ўўј§ћ§§ћў§ўўэћ§ўў§ўў§ћћ§ў§ў§§ћў§§ћ§ѓў§ў§ў§ў§ў§ў§ўўц§ўўћ§ўћ§ћў§§њ§ўў§ў§ў§ћћ§§ўўї§ћњњћћ§§ўў§ўў§ўўў§ўўћ§њ§ћћ§ћљў§ў§ўћ§§§ћ§ўўє§ўћ§ћњћў§ў§ўўљ§ўў§њћўўт§ўћ§§ћћњњћћўћ§ўў§ўћћ§ўћћњ§ћў§ўўфћў§ў§ў§§ћ§ћњћ§ћ§§ўћ§§ў§ў§ў§ўўњ§ўћ§ћўўў§ўўў§ўўњ§ў§ўў§§§ў§ћћѓ§ћ§ћ§ћћў§ћ§§ўўў§ўўѓ§ўў§ћ§ћў§ћ§§ўўќ§ўўћћўћ§ўў§ћћі§ў§§ћ§ћ§§ўўў§ћћ§§ў§ў ўў§ўўў§ўўі§ўћўћ§њћћўў§іў§ўўћ§ћћ§ўўў§ўўў§ўў§ўћ§§ўўћћњ§ћћ§ћўўі§ў§ўў§ћ§§ўўў§ўў§§ўћћў§ўўў§ўўњ§ўћў§ўўѕ§ћ§ћў§ў§ўћўў§§ў§§§њћўўћ§ўў§ћћћњљћ§ўўў§ў ў§§ўћћљ§ўў§§ћ§§ўѕ§ўћ§ћ§ћ§њ§ћћј§ћ§§њћ§ћћ§ўќ§ўў§§§ћ§ћћэў§ў§§њ§ў§њћњћћњћў§ћћў§ўўћњ§ћћњћ§§јћ§ўћћ§§ўў§ўћўў§њћ§њћћ§§іћ§ћ§њћћ§ћ§§ў№§ўў§ћћ§§ћ§ўћћ§ћўў§ђћ§ћ§ў§§ў§ў§ўў§§ўћўўіћ§ћ§ћ§§ў§ўўє§ћ§§ўў§ћў§§ћћ§њ§ћћњ§ўў§§ћћї§ћў§ћћў§ўўў§ўў§ћ§ўўў§ўў№§ў§§ћў§ўћ§§ћњ§ћ§§ћјњћћњњћ§ћћ§ў§§ў§§єў§§ћ§§ћћўћ§ћћћўћў§ўўљ§ў§ћњњ§§§ў§ўўє§ћ§§ћ§ћў§ў§ўў§§ўћћўўћ§§§њ§ћћўјћ§§ў§ўћ§§ўћ§§ќћ§§ўўў§ўўќ§ў§ўўќ§ўћ§§ћўњўў§§ў§ўўћ§ћўћ§§§ў§ћћ§њћ§ћ§ћў ў§ќћўў§§ќњћњћћї§ў§ўћ§§ў§§ўћўўўћўўњ§ў§ў§ўўў§ўў§§ўћћљј№љњћћ§ћў§ў§ўћ§ћћ§§ћќ§ћњћћўї§ћћ§ћ§ў§ўўъ§ћ§§ўћ§ћ§ўў§ўћћњљњљњћ§§љћ§ћ§ћ§ћћѕњў§§ћ§ћ§ћћ§§ўў§ўўј§ў§ўћў§ўў§§ўћўўє§ўћ§§ў§ў§ў§ўўў§ўўў§ўўћ§ў§ў§§№ћўћћ§§ћўћўћў§ў§ўўќ§ў§ўў§ѕў§ўћ§§ў§ў§ўўў§ўўі§ў§§ћў§ў§ўўы§ў§§ћў§ў§ў§ў§ћ§§ўў§§ўўќ§ў§ўў§ўњ§ў§ў§ўў§§ў§ў ўє§ў§ў§ў§ў§ў§ўўљ§ў§ў§ў§§§ў§ўўѕ§ў§ў§ўћ§ћ§ўўў§ўўў§ў ў§ћ§ўўіћ§ћћњўћў§ўў§ћў§ў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўўњ§ўњ§њ§§ћў§§ћў ў§ўќ§ў§ўўў§ўўў§ўўќ§ў§ўўњћ§§ўћўўќ§ў§ўўќ§ў§ў ўў§ўўј§ў§ў§ў§ўўќ§ў§ўўћ§ў§ў§§ћў§ў§ўўў§ўўњ§ўћў§ўўў§ўў§ђћ§ћўћ§ћ§ўў§ў§ўўш§ў§ў§ў§ў§ў§ў§§ўўћў§§ўў§ў ўќ§ў§ўў§љў§ўћ§§ў ўі§ў§ўў§§ў§ўўћ§ў§ў§§§ў§ўўњ§ў§ў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўў§ўўќ§ў§ў ў§ћўћўћўўј§ў§ўћ§§ўўќ§ў§ўў§ ў§њћўћ§§ўўў§ўў§ђћў§ўћ§ћўћўћўћўўў§ўўў§ўўњ§ў§ў§ў ў§ўћўўќ§ў§ў ўі§ў§ў§§ўў§ўўў§ўўј§ў§ў§ў§ўўќ§ў§ў ўў§ўўј§ў§ў§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ўўњ§ўћ§§ўўќ§ў§ўўј§ў§ўў§§ўўў§ў ўў§ў ўќ§ў§ўўў§ўўў§ў ўў§ўўќ§ў§ўўќ§ў§ўўў§ўўћ§ў§ў§§љў§ў§ў§ў ў§§ў§§ўўћўўќ§ў§ўўї§ў§ў§ў§ў§§ўў§ў ўў§ў ўў§ўўў§ўўў§ўўў§ўўћ§ў§ў§§(ўў§ў ўў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ў ўћ§ў§§ўўў§ўўў§ў ўў§ў!ўў§ўўќ§ў§ў!ўњ§ў§ў§ўўў§ўўњ§ў§ў§ў ў§ўў§ўўќ§ў§ўўў§ўўў§ўўљ§ў§ў§ў§§ўў§ўўў§ўўќ§ў§ў ўў§ўўќ§ў§ўўў§ўўј§ў§ў§ў§ў3ўі§ўњћћў§ўњўў§ ўў§ў ўќ§ў§ў ўњ§ў§ў§ў'ўћ§ўў§ўўќ§ў§ўўќ§ў§ўўў§ўўќћў§ўўњ§ўћћ§ўўў§ўўў§ўўў§ўўњ§ћћ§§ўўў§ў ўќ§ў§ў ўќ§ў§ў ўў§ў ўќ§ў§ўўі§ў§ў§ў§ў§ўўќ§ў§ўўє§ў§ў§ўћ§§ў§ў#ўќ§ў§ўўќ§ў§ўўў§ўўљ§ўћў§ў§§ ўќ§ў§ўўў§ў ўў§ўўќ§ў§ў ў§ўќ§ў§ўў§ ў§ ў§ ўў§ўўў§ў ўў§ў ўў§ўўў§ўў§§ў§§ўќ§ў§ў ўў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўў§ў ўњ§ў§ў§ў ўќ§ў§ў ўў§ў ўў§ўўў§ўў§§ў§§ўќ§ў§ўўќ§ў§ўўј§ў§ў§ў§ўўў§ўўќ§ў§ў ўќ§ў§ўўќ§ў§ўўќ§ў§ў ў§ ўў§ўўј§ў§ў§ў§ўўў§ўў§ ўњ§ў§ў§ў ўў§ў ўќ§ў§ўўј§ў§ў§ў§ўўў§ўўў§ўўў§ўў§§ў§§§ў§ўўќћ§§ўўў§ўўњ§ў§ў§ў ўќ§ў§ўўў§ўў§ ўќћў§ўўў§ўў§ ўј§ў§ў§ў§ўўў§ў!ўњ§ў§ў§ўў№§ў§ў§ў§ў§ўћў§ў§ў ўў§ўўў§ў ўў§ўўќ§ў§ўўў§ўўў§ўў§ўў§ўўў§ўўќ§ў§ўў§ ўў§ў'ўќ§ў§ўўќ§ў§ўўї§ўў§ўўћ§ўўќ§ў§ўўј§ў§ў§ў§ўўї§ў§ўў§§ў§§љў§ў§ў§ўўў§ўўњ§ў§ў§ўў§ўў§§ћўћў§ўўќ§ў§ўў§ў§§ў§ўўў§ў ўћ§ў§§ўўў§ўў§јћў§ў§ў§ўў§ћў§ў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўўє§ўћ§§ў§ўћў§ўў§ћў§ў§ўўў§ў ўў§ўўў§ўўї§ўћ§ўў§ў§§њўћўњ§ўўў§ўўў§ўўќ§ў§ўўў§ўў§§ў§ўўњ§ў§ў§ўўўћў ўќ§ў§ўўў§ўўќ§ў§ўўў§ўўї§ў§ўћ§ћ§ўўќ§ў§ўўў§ўўў§ўўњ§ў§ў§ў ўў§ўў§њў§ў§§ўў§ћў§ў§ўўђ§ўћ§њћљћњў§ў§ўўђ§ў§ў§ў§ў§ў§ў§ўў§ ўќ§ў§ўўќ§ў§ўўєћўћўћ§§ў§ў§ўўў§ўўє§ў§§ўў§ў§ў§ўўў§ўўё§њўў§§њћѕњ§ўўњ§§ѓњљ§љњњ§њ§њњћўўњё§ћўўћў§њљ§ўњ§§љљјэљћјї§§ж~eV§§ћљ§§њ§ўўћњљє§љњњ§§њњ§ўўњњћ§њњ§ўў§ћњ§§ќњ§§ўўх§њ§ћ§ћљ§љЂpaUўћўўљњў§њ§§њїўўє§љљ§њ§љњћўў§§њсљјї§ўћћўў§ћљјљћјјњ§ћљјћћєtee^ћўўі§њћљљ§§њ§ўўњњ§ћў§њњ§ўў§§њўћў§§њњўўњњя§ћњѓїј§§ЖZmmjњ§§ўўї§њ§њњўћўћћўўњњ§ќњ§њ§§ўћўфњ§§љ§ўў§јјљјљў§љœgh|Pњ§ўўљњ§§њѕ§ўў§њњўњњћўўўњ§§њўћх§љњњ§ћћ§љ§§ћїљћћљнbmxoTћњ§њњ§ћћљљњљљ§ћњїћў§§шћ§њљњњўћ§ћњњћ§љћљљњњ§§љ§§ђњ§ўћЭw}^Yљљњўўњќ§ў§њњєћўћўњ§љјјљћўўќ§њ§њњўєћўњћўўћўћў§ўўь§љ‡it]99ћ§љћўњћњўўћњњ§ѕњўўэњћљћњњјљ§ћћњћћ§§њћўўўћўўт§љљјњњћ§ѕћћБQP[eh\њ§§њњ§ў§њљјњњўћўўў§њњўћўўќћўћўў§ўщћўћўўћ§јћћo]n^VQHў§њўћўўўћўўўњ§§ўћўѓњ§§њў§њљ§§љљјјшћњљјћћ§ћљњћ§йeaNSVN@ўњњ§§ћўѓњћўћў§§ћћњћ§ўўћў§ћћ§њљ§§§ћњ§§љјђѓјљћћ‚>LPZTJIўўђ§њїњњ§ўњўўњњ§ўў§§њўўјћўўћћўћўўїћў§љљ§њљ§§ќјљјћћєў§ђ[SweZFC3ўўћў§§њћў ў№ћўћўўћў§љћћ§ћ§§ўў§њљ§§ўэњљјљёTZOVI(<:ћўў§њњўўћўўіћўћўћўў§§ўўћ§њ§њўў§шњјљјљљ§ћшiJW^pNJ?Aўў§њ§ўўє§њњћћ§њ§ћўћўўњўй§њћћ§њ§§ћљћћљљјћ§§ўћњ§њњљ§їŒ`W[\[UL@Hњўўћћў§ћўўіњўўћўўћўўљљ§єњћўћ§§њћўў§љљэїјљ§љўјь|YUEUPM@<9ўўўћўў§§ўћўўєћљњњ§ћўўћў§њњчљ§ўўћ”MF@ALLIњњўўўћў ўўћўўі§њўњњјјљ§ўўњъ§њ§њ§§Кpt\PSVSFAF@8.ћўўјћўљљћўљ§§ёўћўњљњўћўў§њњ§ўўўћўўљыћљјў§ћv95;QQIA:0;:>:ўўўћўўњ§љњўўћўќћўћўўћўћў§§њўўчћњљ§љлgPEHGCE;??AC?&њ§њўњњћ§љњњ§§њћљњњћўўќћўћўўќћњ§ўўпћў§љљ§ўўњћљљT[ZVUHC5>BB;0+ћћўўћў ўћўўћўў§§њљљ§§љўўњэў§єk7GOPHJNQMCE@83ўўњѕўћљћўўњўўњў ўќћўћўўўћўў§ъћљї§љВ`C9)+-9>A4-9:10ўўћњ§§њ§§їћ§§ўў§њ§ўўєћўўћўўћћўњњ§§љ§ьћЩZ0*A?))!73829?Aћўў§њ§ўўћћўў§ўўўћўўћтњљњњ§њњў§ћј˜?#HY5,&"1<82-ћћќњћћў ўўћўўћўјћ§§ўўћћњњх§ћљ‚UEEB:71)*$"-)($*ўўћўўўњўўьњ§§ћљљћњљћ§ћљњњ§ўўћўўўћўўч§њ§љb+0>E03.)3+#+#&.ўў§ўњўўњ§йњўўћћўўњїњњћўњњ§§Ы\IA1*7-$!$)#28#ўўћќњ§§ўўіњљјјљћўўћўўућ§љ§љEMBA-%"%*%)A)ўў§§ўўћўўіћўўњњћўўћўўЬљњ§љјљћљМU4C58((,.!" ў§њњљљњњ§ўћўњњ§њљўљ§њ§ўўњћ§љљњ§§ћћў§њ§§чњћ§Ы4#C1%  #§§ќў§њ§§ўњўўўћўўћњўћњ§§чћ§§›Q7H9&)-#&e)#ўўљћ§§њїњўўїћўћўћ§ўћўўїћўўњћўўћўўш§НkqPB,#()" ўўіћњ§њћћњ§њўўїћљљ§њљўћўўйћўћ§ћ§уmW^UV;!"!  ўњћўўћўўћўўќњ§§ўўє§њњ§ўўћћўў§њњм§љњ§љnW[eznP9%2 §§њ§ћњљўўћћњћўњ§§аўћћўљњћ§њњљ§ў§§јўў§ЗWa^WQMHC18C  ћў§љ§§ѕњ§ўћў§ў§њњўў§§њўў§йњўў§њ§љљ§ћэWE`me[PFB^F7! #§љ§ўўћћљўњўўћўгћў§њ§§њ§њњѕјјїљљћў§Ќc5VI,$$ ўўћњўћўўћўўћќ§љљ§§мњљњљљјјћћу`Mk\ZYQWLMSWY-> 0 %;,)ћћўѓњўўњћј§њ§њћћўўћћўћў§§ћхžgV[[U^`Z]TM@FEI5VP43%(+23ўўўћўўѓљ§њ§§ўћњ§ј§§ўўлћњћўўћАbF>ZTPMOVJFB;9?>SŒ[VSF0,>B§њњћћўњ§§љћўћўўњ§§Тњ§ћћљњ§ћћљјћ§§щbTW>EINGA:09G?@GMO@3QiQ5AQAљ§§ћўў§њљћјћ§ўћњ§§ћўўи§њћѕїїѕѕ§ћ–c]\iWNQTLJGFGEIHHMGNcxQSЎЎhў§§Пњћљљћ§ў§њљљјљ§ўўћўўћўў§њў§§ћљ§ћаmgaYQMJSUPMJGG?>LPPU\bNFˆЩјўњњјљљљ§њ§љњ§ўўЯћ§ћћ§њњћјћїљљўўљ•`ZkjUMIIHLOMIGACBGLU[LEgЖИ~љњњ§§ўћўањ§§њ§§њ§љјѕїїјњ§љО‚keg[TQNMLLPMPNPMAIOWiUVŒЎŽ‡‹ўўћћўћњ§ўўўњ§§бћњћњ§њ§јњњљћј§§ыoaVFSVTJIMJGLI@IPQVYWnoTtЉЃxvxўўяћўў§њњ§ћ§љћљ§ўћ§љљгњїїјљ§ћщ„]ZG@AIGF<>IN^SQ„‡m]h`gљњњ§њ§ўўћФњўњ§љњ§ѕїјїјјєєњћЯr^\JJF??BHSQJFCENIA>AI7LIZ}„aYa]cxљћљћ§ў§љљћ§ћў§њњўћњјїњїїѕњљђwUW^\TNQPSTJLJFCEIC;EHO78Sz}kbhh\FUљћљњњўћњ§ћјјњўўљњњљњ§§љљњ§§јœYS\[NLW\a[UPHLA>HFHAEEPFLŠknkSNdboўў§њњ§§њ§§њ§§њљјјЪћљљїїєљјєŽedabVLAMWUMJGNVOLCLHEJHIq”•{tbA:V[\Zњљ§§њ§ў§§Тњљљњјїјїјјњѕї§§љ‘dFPcUTJEFMONHGMLSNIJNI88d„ˆzj0 NwdQhњњљљ§ћўњњўљћћљЦњљјїјјћљћЂGYLSLMPEBQWOB>:,;GPOMIJ>CVtj]hW.P^bohZћўћћўў§љњ§§ўЮњѕј§јїїћ§љЅFTnmNIB29CPVQNC7-%UIB5BGGJzŽqrxuk[]Yu§љў§§ћ§њ§§ў§ђћ§§ўћў§§ћ§ћ§§ўўј§ў§§ћў§ўўўћ§§ўўћћњэћњњљўўт‡mQ§ћњ§§ћ§ћўў§ћ§§ћ§§ўћ§§ў§іћў§ўў§ћ§ћ§§юћў§ўћ§ћњћњћўўЈvg\ўўі§ў§ўћ§ћ§§ўўќ§ў§ћћ§іў§ўў§§ћ§ћ§§њћ§ў§§ўў§ўњћћћњ§ћ§ћћђњўў§xihZў§ў§ў§§ћњћўћ§§§ў§ўўј§ў§§ўўћ§§јћ§ћўћ§ћўўўћ§§ўў§§юћў§§љњўўН^nqi§ћ§§ўўі§ў§ўћ§ћ§§ўў§ўћ§§ћ§ў§ўўў§ћћўљ§ћ§ћ§ћўўјЄom~U§ћўў§ќћ§ћ§§ўњћ§§ў§ўўі§ўў§ћ§ћ§ћ§§§ў§ўўхћў§§ћћњ§ў§ћћњћњўўчcuwOў§ћ§§ћј§ў§ўћ§§ўўѕћ§ћ§ћ§њ§§ў§§їўћњ§§ўћўћћ§ъћ§ћ§ћ§ћ§ћўўд„cWћћ§§ўў§ўћ§§ў§њћњњћњўў§ўў§ўўў§ўў§ўїox]>@ћћўўќ§њ§ўў§ўљ§њћћ§§ћћўћў§ўўф§ў§ў§ў§ћ§ћћ§§ўћ§ўўИSOVhjW§ћ§§њћўћ§ћ§§§ў§ўўўћ§§ўў§ўўћћ§ћ§ўўш§ўћ§ўўucmZYTCўћ§ўў§ў§ў§ўў§§ћ§ўўј§ў§ў§§ћ§§ћњќћ§ћњњы§њћ§ўўсihTTNIGў§§ћ§ћўўў§ўў§§ћўў§§ў§ўў§ќћўћ§§ѕћ§ћћ§§ћ§ћћњњєћўў?WP\UOLўўќћ§ў§§јў§§ў§§ћўўњ§ўћ§§ўўў§ўўћ§ўў§ћћњ§ў§ћ§ћћњёћўўї`YqaZ@ECў§ўўќћ§§ўўў§ў ў§§ў§§ўљ§њ§ћў§ўўќћ§ћўўэ§ћњўњ‘ZZPVG0<:ў§ўћ§§ўў§ўў§ўћўў§ќћ§§ўў§§ћ§ћћ№ўћўўђpOScrMEJJў§§ў§ўќћ§ћўў§ўєћ§њћћ§ћ§њћњћћљњћћ§§ў§§№ћўў’c[Ya^UIEB§§ўўўћўўќ§ў§ўўћј§ћ§ћ§ћ§ўўќ§ћ§ўўў§ћћўќћўћўўює‚]ZFWVNEABў§ў§ў§ўўў§ўўњ§ўћ§§ўўў§ўў§ќћў§ўўўћ§§§ўћўўш›QG@QUTTMHFў§ћћў§§ћў§ў§ўўѕћ§ћ§ћћ§§ўў§§љў§ў§ў§ўўћ§ћ§§ўў§ўяїqTNVVTNHFIE§ћў§ўўњ§ў§ўћ§§ћћњ§ў§ўў§§ў§§§ў§ўў§цћ§ў§ћ§§ў§ўўяgNcbWPJBCISў§ўўў§ўўћ§ўў§ўў§ўћўўў§ўўя§ћўўЎC>BOLLJEEGIўўњ§ў§ў§ўўњ§ў§ў§ўўќ§ў§ўў§ўў§ўўъэrA^]LFIJILQO§ћ§§ћћў§ўўі§ў§ў§ў§ў§ўўњ§ў§§ћўў§љћ§ћ§§ў§§§ћ§ўўятwdMLJJHE:ў§ў§ўўњ§ћћ§ћўўќ§ў§ўўњ§ћ§§ћў ўћћњћ§ўўё~:24POA:722@@;ўўј§ў§§ў§§ў ўў§ў ў§ћ§ўўў§ўўюсmPILLGAC>::E@:§ћ§§јћў§§ћ§ћ§§ќў§§ўўќ§ў§ўў§§ћўў§ћў§§ў№•YVZWQMFEFAHJA1ўўў§ў ўў§ўўў§ўўћ§ў§ў§§јўћўћў§ў§§ўэq5HLLMLNLHECH?5ў§ў§§ў§§ў§ўўў§ўўц§ўћ§њћљўўЗh@4!*+:B7<<>@<;ўў§ѕћ§ћ§ћћњ§ћў§§ўў§ўў§§ћ§ћћўьЪW2*B75+02<>BBў§ўў§љў§ў§ўћўўў§ўўќ§ў§ўўј§ћ§§ћ§§ўўэŸB$HY22&!!").78;AAўўў§ў ўі§ўўћћў§ўў§§ўх{WE>C94+.2,#$,())(01ў§ў§ў§ўў§єћњћћњ§ўўћњћ§§ўћ§ў§§ўўщ^%$@?*+.-(&"#!!),323ў§ўў§§ўћћ§ўї§ў§§ћ§ћ§ўўј§ў§ў§§ў§§ўъг\M<-4-%&%$#+42,ўўј§ўў§ћ§§ўўћ§ћћ§ўўў§ў ўћўр‘GNG9*(%""!&(#B#5ў§§ћ§ћ§ћў§ўўў§ўў§§ў§ўўќ§ў§ўўў§ћћўѓСQ.<1&*&(+#*ѓ"-ўћ§§ћћ§§ў§Шў§ўћ§ћў§ўў§ћћ§§ћ§ўўћ§ћ§ћ§ўўг:;2."##$ !%§ћ§§ћ§§ћћ§ўќ§ў§ўўў§ўўћ§ћ§ћўўшЇT7@5*))%#&&5n4*ў§ўўњћ§§ў§ўўќ§ў§ўўўћўўў§ўўў§ўўщЧtwP841""ўў§§ў§§ўћ§ћ§§ўўћў§ўўў§ўўў§ўўс§ўўшnY`YL,(ў§ў§ўўў§ўў§ћћ§§ў§§ўћўў§§ћ§§ћўтuTWcwjU"-$."( §ћ§ћћ§ўўў§ўўў§ћћ§ў§§њ§§ћў§ћ§ўўцНWa]TUOEE.@A# !"%$ў§§ћ§љў§§ў§§ўўєћ§§ўў§ћ§§ўў§§ћўхѓU?amgcMAH\?1!ћ§§ўў§ўўў§ўў§ќћ§ћ§§њћњњћћўўцИbAPcca]SHC:SP-!() %)ўўў§ўўћй§ћћ§ў§ћћ§њўўыeQob[WZVWQNQ]58(8)$@9;ўўў§ўўў§ўўћ§њћћ§§ ўћћ§ћ§ўўхЃkWb`a`^]Y]SMGLH;WL53$4>>Aў ў№§ўћ§ћ§§ў§§ћ§ћў§ўўфЏgE:WPVL[VGLG@?CAO‹aQNG+5?<§§ўў§ћћўЩ§ў§§ћ§ћ§ћњњў§§њћћ§њўўьiPTBJGIME@AFBCCGLJJ2VnW:G]Jўћ§ўў§§юћњ§њ§§ў§§ћў§ў§ў§ў§§кћ§ћљњјўўЁd^[hTU[TLECJJLGFILMSb|U^Щжˆўћћэ§њћћњћўћ§ћћњћћў§ў§ўў§иўћ§њћўўзte`YYJNWVNHFLJIIHIQT]bPJ—ўўзў§§ћћ§ќћ§ћўўѓ§њњћ§§њ§ћњћћўўйЂ[^kiUSOOSQLLOLIGIOQT`SIuчўэЩў§§ћ§ћ§ћ§ўўў§ўў§ќћ§ћ§§ићњљљћњљўўО|njeaUPSSMLJUYZUMNNT`jYjЌягбйўў§ўѕ§ўў§ћ§ћњ§ў§§љлћњњўўэueUJW\UNPQOMFHTWTWVQ\r{`„рчЪЮЭўў§ѕћњћћњўћўў§ћћљкњћўўё‡b^I8TQOOVWTNFBLOPNOVUGYzТцеаЧЇ§ћћўј§ўћ§§ћћ§§ћњњћћљњљљкћ§ўўWan[NOSUZ][SPPMQTYSSUQ`uЎмбЧОЗ–ў§§ќў§ў§§ўќ§ўў§§ЯўћњњљљјљўўТVNZVWSVZb\WSTUVZYPIGNUgbžатШУНЛТ§ўў§§ўўР§ў§ўћ§ћўћ§ћ§ћ§ћћњњ§ўў§˜]LNHJFP\^N2BGHILIFJJUd`pСЯАЅДЄВЧў§§ћ§ћў§ўў§§ћў§§ћћњћњїїўЮжu`aMGFFBHPTSLEEGMOFBGPIge‚ФЫВЌЊЉЈРћњћњ§ў§ћћў§ўўћ§§ўў§њњдљј§ўњ}[\caTQWTMNSSUNBENLHFN[JNtЗФЖДЏЋЈŸћњћ§§№ў§ћњ§ћ§§ўў§§ў§§ћћўљўўйŸZZ\WOOYdbd^OOMHHJJGIJOg]aЎеОЛАЄЃŸЏМўў§§ѓћ§§ћћ§ћ§§ћњњћћФњћћўўј•dhe[YMHMVUTOJQWUOLGOPSZcЦрЦСБ™ЃЎЌЋ§ў§ћ§ћўћ§ћ§ћћљњћњњљўї˜\LQbQTOLL§QSNNтPQYNINUIN{ЎЩОКŒhkžФЕЊЏ§§ћў§ўў§§ўћњњћљ§ћњљњњўўжЃL\FPMLIFHPTOQH>2CFWQIO`S^‹ОЕЎНЇŠ™ЅЌМЛЂў§ўў§јў§ћ§ћўў§§ћћ§њћўўиЊFVorSECAEJWZSLH?72UOHHNeapДкЧОИСФДЋЅСмЫў§ўўј§ў§ў§ў§ўўј§ў§ў§ў§ўўќ§ў§ўўў§ўўы§ћўћћ§§ћ§ўўя˜}h§ў§ў§ўў§§ў§§ўњ§ў§ў§ўўњ§ў§ў§ўўј§ў§ў§ў§ўўѓ§ў§ў§§ўўН‹zjўўќ§ў§ўў§ўќ§ў§ўўє§ў§ў§ўў§§ў§ўў§ѕў§ў§ў§ўћ§ћўўћŠ‚ugўўі§ў§§ўў§ў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ўўў§ўўѓ§ћўўЮq‚~§ў§ўўќ§ў§ўўі§ў§ў§ў§ў§ў ўќ§ўћўў§§ў§§ўљИƒ|‰h§ўўј§ў§ў§ў§ў ўј§ў§ў§ў§ўўщ§ў§ўћ§§ў§ўћў§§ўўђw…eўўњ§ўћ§§ўўў§ўўћ§ў§ў§§ћў§ў§ўўќ§ў§ўўђћў§ў§ў§ў§ў§ў§ўўіт›‘™um§ў§ўўў§ўўў§ўў§§ўћћў§ўўќ§ў§ўўў§ўўіЃ‡ŠkMLћў§ўўў§ўўў§ўўј§ўћў§ў§ўўў§ўўђ§ўўЩecmwwcўў§ўўў§ўўќ§ў§ў ўќ§ў§ў ўѕ§ўўŒx‚uhc\ўўќ§ў§ў ўэ§ў§ў§ў§ўў§§ћћўћў§ў§§ўђђ‚ijdbaўў§ў§ў ўў§ўўў§ўўў§ўўї§ў§ўћў§ў§§ћ§§ћўўї•ShmkibVўўќ§ў§ў ўў§ў ў§ѓў§ў§ў§ў§ў§§ћўўїrpˆzjUOQўўў§ўўў§ўў§ўў§ўў§ѓћўўЁmtcgQCVVўўў§ўў§§ў§ўўю§ў§ў§ў§§ўўњ~aiv‚aWWўќ§ў§ўўќ§ў§ўўў§ўўў§ўўњ§ћў§ў§§јћ§§ћћў§ўўї§ўў§ўўЊzttљuqgTa§ўўі§ў§ў§ў§ў§ўўќ§ў§ўў§§ў§ўўќ§ў§ўўѕ—pkYgib`T^ўўў§ўўў§ўўєЕd]Vdgh`ccbўўў§ўўќ§ў§ўўў§ўўў§ў ўў§ўўѓŠcciigg[`b\§ў ў§§ў§§§ў§ў ўў§ўўј§ў§ў§ў§ўўєwZzpgc^Ucddўўў§ўў§ўѓЦWMVbaba\Ydgў$ўў§ў ўёћ…Wom]bT[dbcm§ўўў§ўўњ§ў§ў§ўўњ§ў§ў§ўў№ю„wa^g^\P^]eag§ўўј§ў§ў§ў§ўўњ§ў§ў§ўўёЪŠŽjYg`\OS\USUўўў§ўўў§ў ўў§ў ў§ўёNFPd[WTJP[SOOўўќ§ў§ўўў§ўўэ§ўўєj\d^`PLQSVWTJўўў§ўўќ§ў§ўўў§ўўў§ўў№Ќhqjjc^P\VV]`UFў ўў§ўўў§ўўў§ўў№‡M[]b``^a^[cYVEўўў§ўўў§ўў§ўяЩzOJ8>7PQMMVYUILўўњ§ў§ў§ўўў§ўўќ§ў§ў ўћ§ў§ў§§ўюнc?8,LPH<9CAPP[YYўўў§ўўњ§ў§ў§ўўэАY8ViCI77??;72?Bўўњ§ў§ў§ўўў§ўўѓ§ўўпjhI4224:-)17;ўў§ў§ў§ў§ўўќ§ў§ўўў§ўўј§ў§ў§ў§ўўр§ў§ў§ўўуC0QF<23.*+$5!&.-0%§ў§ўўў§ўўў§ўўќ§ў§ўўъЗaEWIB94:)7)31374OA:ўўў§ўўщд…jL*!-3+("5-§ўўќћў§ўўў§ўўў§ўў§ўњ§ў§ў§ўўтЩhoqhk^TYLH@)%(-&"!*453ўў§ў§ўўў§ўўќ§ў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўўф`Qt{}u^Z]zQ:"80299&"%097ўў§ўўё§ў§ў§ў§ў§ўћўћ§ўўцЦvP^rz|qq`[IdaA28B;+932+ўў§ўњ§ўћ§ћўўхљxdˆwoonjhcddpGJ9:7890-@@A;,@+([cYcYF‰œ™kx˜ž~hu‚nz–ŠˆŽŒ‹Ti…„Ž|‚{ƒ|pqŠ–„ƒ„A0?A92233<-*7385$)33gv‚qxxd’”–’‡…~ƒŠŽ—œŒ‘‹‰q‚œ‘”…zxzx}qv}ŽŠ}SGA<>?<.AC;"()*0}t{nzx‡™‰{{‚e{{…„Š–ЄЁ—Ё……‹‡ˆ{…ƒ…|w‚‘|qMOB2@G<:9:,(,141($V˜xNAJ•Б‡‚qhzˆ‡|Œ„‹ŠŠƒ‰‚Ž’–Ђ‹}„Œ…ƒ~xˆ•‰aIC[;PgV.$.@;4  ehr~OcŽhL|EZz{k{‰‘wow‰ƒŽ•€хŸ›ˆ}‡Œ‚„ˆƒŽ{’‡BIYrucjbFC+&(,;-(1v‘’c‡„ƒˆ‚wzƒ‰z‚‡–œЄЄ–”Ž™—‰t”Ž„‹‘™x`vŠМ—$(8LLEB:<43+$$ M{tjРЇ—w~‰}‰Œzxp|wtЂŸœ–„ƒ‰‰‡…‘˜™‰ˆ„xЄ‰i[8@BIJ #105,!"Tq\Ov’‘tx}uwn‹‹…|‡—”—”Š‚„t‡‘Ё™Šž—‚„ˆ–Š˜…r""HUJO[”N;7&::P03ctxКЁŸЇŒƒ‡’‹‘”‰‰ˆ•—Д››—ŽŒƒ‹ЎдООЗЇžŠ”••‹ЈЏH<>74<@$@7-9CFA73p{x„УЛЖ}z„ˆŠ…‰‚…””ЇЋЋ—–žБ—‚АЫИŒƒŠŠ„•™™„ŒŽj,(&33HEFEG1*1359WpxДОtkt{…Š”ЃŽ‹›•ŸЌЇœЛДžœŽ•Њ‰‡œ˜‹Œ™\EGA:>BB?*73EOC>4$@nou~œбМЏЅƒ~{ŠЃЃ›”‹•›––ЂЕМЈ‹’ˆtatŽЏ™‘‘Шm)5?43;.<8)BHHF9:nŒ‰ho…ЁЅЂЃŒŽˆ‰„ŠЄЎŸ‘’‘ЂЄЂ”•ŸЖЖ€ФЌœ˜™Ё}p—–”™’Š>*:-77A4;CA:;480>vu›ЕСБЅЁŒ‡p…•–‚vŽ˜˜Ђ‘™—›ЉЎЏД›Ÿ›Ž…ЁЉ—•ЃУШ{;JM>:?<"0I;8>[UJW™•nžЏУКВЋЄ”ƒ„™Ѓ‰ŒŽ‹–”ЂœЂŸЇЄЃœЉžЁЁ‘‹–ЈŽгыЂJ.8@BG??*+:45?HM{nh`‘бНДŸКЄŠŒ‹Ё˜—˜ЊЄ——›ЂЂ’ЁЂЂ’Ž‹”ŒŒ€f˜‰Š‘ЈЉŽv,2MGEBC9)VFCEPW{ДxJ‘СЗВЁ……qŒ•‰‹–ЁДДБЎŸžœ˜—›Є›žŽ˜—ŠŠŒ™ЗЋa07;<<1-727700&(P˜Ÿtt…ЃЧБЏЁ–d\mˆŒ–ЌДЋЉ—‰‡‹ŒŠ—ŸЕФЋ—Œ|‹Ž~‚’ЅЗЁ‚J:@@41<<4+3E7Ec•œŒЉ–ЇЈЈžVmz’Ј•”ŸЁŸЂ•”––”˜™ЄЎВ—ˆ|}›”ž›И’”uC..4$,7,%+4@@OЈЧАЊЛЄЁЊЄ›~zƒœЅ•–žЊДЊЄЉЉЁœ—‹•ЈЊЌЎ–މ„‚Š—ŸЋ‘oL+2A?+%.1#C2\ЉЫЛЦМЏЄЅЃ™‘Š™ЉЅ‘”™‹ŽŸ•ЉЏЁ˜ЁЁЏЌ™ЋЕЉ‰‚‹ˆ˜˜žw]-%-?B:)!"82;gPH”З•œмТБЈЇЌЎЁ›’ŸЎЊŠ•™Œ‹‡Ž•–”–ЁЁЇЌИЫИ‘Žˆw‡ЊЫСЈ”tH?-;@>.)>&E7YЈФŒЏМЎЋŸœ”Œ›ЋЌ‰ƒŒ˜”œ’’™ŽЏЫШРЋЉВДМЉ…•ОлтЛj&$NE-:9,0A>12TŒrgtŽˆŒ‡Аž‘–АТ›„Š–ˆЕЛЎЌЎЅЁ‘™œЃЏЅЈ–’‡™—9$UE@<@9@9&$43:@7>QZ‚ƒ˜‰…‡|Ž—‘Ÿ˜ЏЏЂŸЎДЈЃЏАЇ•‘•™ЅЉЅЈŸ…ˆ…„‘w\BC?FC8915#%259JJ.^”wdtƒ‰‰ЅЌžАЋЊЊЎНУТЎЧЪБЈ™•‘ЁЏЉЅЃЂЅ‹co…|SGOLPP4Er‚”ЊЇЃ”›žŸ‘ЉЫМЯЪШКАЖЕАВЎМТТВЂz‡ЈˆO810%-;BA:"!GC@E8((&3EJE5&EqМЛ”pn‘ЏВЃЄŒ‹ЄЭЪФЎЊЎЉЕЖЖЕДКЪЮŸŒtzw579?CBE$44-4-155024@87:@G:*Q–ЃŽ’˜ЇЪО™„‚ШпШŸ”—ЂРТДВЛЖЗСИЄ•Ё‰EII+,BJIMIB%(!+5:7,5(+1+,"+3J>*HQHY‚Œ‹Ё›Вœ™ИйСЊžЂЅМДВЕДЎЅ‘‘™‚bBQ^[E9CE?3:)#.U<;32()-9>1,49825IEYZ|Žn~–АЗЉЈАЇ•›ЗЕБЇŽ”ŽŽ––žU+MUI4JA;?;8,%>7,*M1-$&-&&)$$)AgPCGA>Pb@@T”’q•бЇŽ•ЁЖЇž’œЁŽ‘ЃЧКЂYjSMI@9>$$)*7?>59.141,)(&$0*-)2PHGLNY[O$>LTkvŒŒ•ЄШ֘z‰”’‘œЃžŠG-^O1<538>.4H,:F@A90!(027:91>?GG€ДHLNGFJN^obcw„znƒС”‚Œ›‹–™žhI5:<3,79?>CˆT5*2A8(9.,##)40(01-C?HQQOFEHJ>HA3E]g‡tzˆ‹ЃЂ—މŒЪнАO,73.332*AJwˆ•pV9EB1$"#*)&%$2:+;?FG5:?>IB8?40+$35@z}˜Ѕ}P<;)(3-001)&".#+0.3;>9BF9EF2?JI?HBJYYdirŠ˜ЂЖŸN*UNFBC<;EAC‡žВЅЏЏo2#9*97;<89(0$4?H@8BC;<9AFBFCMG*1NrV@W|ЁЌI5mL@EFGA>@:ŠЋ——”ВАŽC9A@*-3737<>,2+2:7AMLE>3::8ACFHFHTg]p[Quˆa:1+-:3EFAHCIrБЁŸ•–—Ћ—pP43,(#3%#*84;NW)#7>>8;CMSMQUUZVM?8AJA31;AB?AGEFECGELNPP>)(.++(%*)$2}‰›‹xz‡——–~‘”›–Y>8;(%78)")$,(%$2??::BBEA:FEENNQB!.#5NA,œКЗЄˆƒŽЁŠƒ‰‡Š”—ЉЕ–xZb`H273--#"108<;7:EJGE@.,<;@G7$-@7tŒЎЊЂ‘pz‰™”ƒƒ€2‚…|rŽЛ{**1.+%95>A?A7*BIC9(0554>L&++! *B7.2h’ИЋЖ‰uŠˆ‚|z|‚}œКДЁЄ|J.5IH97.++7:-),):8533;9;@>>"!~ˆЃЏŒˆ‰~{x|}mz‚’ЅВКŠ”pH04.F@5?A>412AJc-#&7C?<20. !{rŠž˜Ž}xv{}„zruz”ЁЂЌДŸЁ‘ˆŒn\bH<05?9.%-HNIAENSZ˜ЏЌЊ˜бпшЧСЖшЯЪЦТТЪЪЫЯжжеЩЅДЯжлЭШЮааЭШЫажздд<479?9@E@95B.EGG>A[bЃЭеЕ—–ЧуаЩУИЪЯЧОУЭЮгбезейЮУнђьаФРЧЫааЭЫдлгЯЪQQE?:7??>@;>BFBEBFVОФТНДЎгзджебЫЩЧФЧбйклкжйЯЫЦЫжаЫЧЩЪЪФУЫЯбЯеаФQ@?:<@@FHH<>?@B>7AWЩЩШКСИжхЪЫЦЯЏЛЪЭЩЧазмзбкйдФТЩЯЭЩЫЭЯЫФРЦЫедаЭОQJ?BHIE>B8nЭэНЎЋбшЖ|ЌЎЅАМСТЩЮФОРФОсммйеаЮЭЪЫЮаззебЯЮелмс;([‚глЧИЖВЯбаЯЪФРИЖРЦРЮдзОпѕясыгЄ™ЕЩггЯгйедЭЩЪБьўЃGOPVWTQOH?:;EG9CgОЧЩОКСеЪгбгШССЛКЊзбглкнлкжТрТЂЩўўђмеезккЪлщтЭžUGGIGNFCE@:>;>NHEžеЦгШЧЮбгаЩЧОФЦФОЖрабкзййдгдЫЫЧдьчуккгбджухпђШ~C?AHIC9:ABA@IB4?^дкЕШШИЫЭаШТЧЧТФЧЧЦШЗгжлкгежыЪ™ЅЊЮзаЯЭддгадњїчАQH@BCC<5;FIHNTWV7}юцИЭбаЭЪЧЦУЧЧЫЫ€ЊЦЭЪЮкнрййлсћпЮхєёдЭЩЪЮбЯЧМаткaPFLLGG@88EA@ACG2;ЌпгБбгегЯЪШЭЮгЫдЭЫЯдмухунккйкйддкнмзждкдЪЩЧйјЮ8;LPLLHB?AE@99<97wТЧНЭћмсНОТадбггбЮШЫСхтпнлзЭШЩдгелмнмгджлббщбЗz-CNOP,*~ЗИОюїЪЛБРРЭкмнпйкбдкмрухцшхэшхпрбдьаЫбкуржгбTbPOTIGFGMLCIMEWS]ЭнмєўшКЛФУЧУажллмзЯЏлрупжтцышччттллддбзпуцђљШ\IITMJLGLBTYVVH9M”МЦЪчўххргаЮЭЫаыюкйлймнруспсцшчрккнзбЉОйьхлбкїƒ5LSMLQ;SLJMaj`‡пжКйяѓыщьщйеемхнлаблмрршцц€Љчшэчцтптчтспспсхўўнe9NZPHJI01;MOEU^mЌРЎЅжўьютёядзезекзксхцууччтусшшхнкмнрссжлззсшнЅAF`ZTNLJ41cSNNcdЂмђЦ‘ЯћюьтаЫЗгбджлсхшяячшнрпмлущьюужнллмлежпњхЯGIUQLHHC@EHHF9;hЯмЛЋЩщћюшцнЏЁВбеежмтцщютзеклйймхчшэуддгжзлуцђцЫt:7PQIGJI@BCHLBTгубЦучсцчясœВНсюкекмххтсмхтсскзмнккпббегмкйпьндЊQEMGC;?<9;7ELMgШгэ§щуѓчцхщцЩЪЮщтрзмхуушщшшщцрнктхшцшркжелнпмѕнНn>5NJIEA@427+NEpедмњёышчщышхнмнсттнржзлйсхцумдетчыяцмрлеЯегкрмФ—@5@QUSF9:17:mWYКюккњшщххутњуцуреддЖейрнпррптцыщыэчѓжеаеач§ў§уЊYSLIMJ>99+4L?eЩюЯьємжзплмкммрчтлаЯббнкнмнппщ§ьь“юыыѓэЫбарњўўѕАC7]QNGC>?M3C13JxЈЫЧЭдждгнтпйктчхєнеаажжабдкжОЮђђяёчтццўсждбпннсКnHMUVQNLLM)+5-G[žЪЗВЧЧМзєбзмщыыощлкссыНЭггеЭзѕюэуйклмухрпмтрукл{QOOžHNGGH)(,0NPJFmЂИЉКеаЭЭнюхурпмрўчгмнеЮэѓшчээхтртччьхутмазЩP>jSMOMMBB,,-3AFN[OG`vЄБЧТФЮЩеклмртхцыээ€'ычщюэчгйенхшьэхнЩеЪТаЇrQPZONSHGC,,(5?LJSW@JZT|ШЅЎЮЯддмсцшцыхрцшщушчыёэпмсччьыыхыдВАЭЊjPdZUEHCEH-@.5B4IYZUWE@I^^kŸжСУУкмсуплйжзпчщююєюыщчыыььыэцчжФЦС~eTPHC?A@C;AME>5LU[^bWTTe`;TЏНпкеждпнурнпшјѓьюыьыыэяьђяёљщлИЩёАqL9LQSSVH",53@@;@;:;8:@AHEJ`L;Wd`kЂАБФЫькмєўщчссщчышскпррмлнЧ‹SixiNFPNIMG0));^HEE>;<7;CHGFEIJJ?P[Mmq‘БŽ›ИняццхстцушцпмккЁйнулУj>\dYNLTSOF>?@INNUp59>9;7<0ETQPUZ]a]AS^cŒЈВФЭлў§бЌЧазйзттЭcBjYBELMICEBV:IUMGFA<887;>EIMA?GPMPNPSTWSS[r„ou‹Ђ•ŒЄмЫЯЛбгеббгкдƒV?BIGLJJILQДtI8FNOFM:3345BGG?7@F@FJPYWUTVZU[N@Ld|”‹ВЮмкагжпўўИbG@CAFECGFPИЮЭ—mNQ]?$07:<;?<89;:A?FBТТлпЯЅhWN<97AAB<<;<5F>>HNJEFLPNMMŸIEOaU:BW|iOkЅмыЌTBxYNHONPIGIЪщккйдкщюЗZFYUBGB>A?<@@3;EGJJUbYOMIELMVVZVOatpie‘Ќ~GC@F@EFJQOQOВщкзмм€WйныЮ‘gCBGA44;<9?;?EJMGTh90HG?@HQ[b^[]^^d[LTUZIEGHJJQV]^\OЕВШгзждмхЫжнОt^uxT>B;:HGFGMG0EC-+@ECBCFS[YVV`dd`^YZNH@:AGG5>H.@UЩФЧЭЮЩЭйзмлпыуЛrgQ:8BAIFFMQI?;;428+.IGA8.74;<9:?>AGIGECMNQTV[]F+1215078>QP9ЭхёнщЮЯаЮбЮЯаежпшюеwznU@LAC92255CEB>@BEA@CBHIJLL-+-)"%.20ТЪнхђдЯЭЭЩЩФРНМТЦЭжхсщФЩдЂoUIBSTIJPJA@HITh<8>CGJE><40+$"(&%+(ТМЯлпжЦЩЩЫЭФНЛМНЧгжптюммцжЪЦ•tt[INOOLHEHLS*49@CC?1@3+&""%(+-30+ЭЪгммзЯЦРФЦРЗЌЏЋНЧЦмцхкЯУЩЪжаН•`ULITaIFEFFC;79>:8*8#%(&)*351Q€йSOMVUOSQQ?\\PTOZOPpxx{i`œЕЌ‹{ŒЖЗ…‹‡‚’™Ѓ›ЃЂŸu…ЅЃЇ—˜•˜ž—ސœЋЊЊЂLCMPJJSVUOPLGTTNSBUFu™Љƒkg‘ИЊ”•Œ—Ѓˆ}’œЁ™ЁœžЌЃ›’КаЩœŒ–ЁЂЅЃžБŸ‘\dUUJQOZPNOLZTSMCGJ{‰™Œ‰ƒtЅЇŸЇЌЋŸ–”•˜ЂЊАЋЈЂЂЇ•АЋЋœ‘™•—‘›ЄЉž•ePJUTVVUT[SPLQML3@L–‘‹ЄД—”’rŽ›Ё‘——ЃЊВАКУЋ•œЈ™Ђ––Ÿ˜œ”‘›œЉЌ•ˆccSPSWSSQVNGHEIPI;jД›ŽaT`ЗЮЉЅ‘ƒƒ”••˜œЂžžžŸЋЃЅЋДВЉ–—ЄœŸ‘‘—ЋЈЅ˜p[UnOjŠoO48UVMGAC1,z‘‘b@rЏƒ`•ЌZh”–ˆŒЄЇ‘™–ЉЏЕЁЋАЎ”ŸЇЂЂЂЁœЇ™ЋЇЈTgp™–‡‚bTWU\O143T›Ж„vwД‹Y{{cx‚Œ–Ё˜ˆŒŠЌЗНЎЃ˜››’’ЁЁŸ‘ЏžОG;MkTFCHLEPTOG1CoHVŒЉ~z„ŽАviŠxtˆtU~‰…‡‰q{БДЊЃЂ‘•’Ё˜‘ЃЉЈЉ˜˜эЦЂZUSg``a^ZYOHH<@NdEЌЏ„~‚•›—–Žˆ‰~z…žЃБЕˆЌЫЮЕŸ—”Ё™œœ–ŸЏЁŸЂЊ˜ЄФўŸ\bTceic`V[VWZSABS`™ˆ~z{™›™ŸŽ…}’ЅЕЈ–ЋаТОМŸ|o‡—ЃžЇЄЎœ•‘‚бїaepjgpo`WQJLNQ?>dЁŒ‘„Ž…Ÿ‘ЇЇ…‡}zЄЁФЪЕВИЋ—В‹nЉтсбАЄЂЊИСœЇНЎЂ‚LZ]\e[\VWZHEBHME8„Ÿ–Ё‘••žЄ”€зŠ™‡‚ВЄ™ЄДЏЈЈЅЃŽ›ЉУРЈЈЄЎЎДФЦОЦЯЈn:QW\[NMHVPMHMO94L™Ѓx’”—Є–™”Œ‘–•”Ž˜‘˜АЗžŸЃН’rpžЂЊЂ›žЅ˜ЇМьуЩŒJI\]W]MNMTY[YZaU2\ТЖ}ЄЃ˜‰Š‹‘”™ž›”•ЋЕАЏЊЏКзЎ”ЕЦТЄžœŸЖЉЄ›ЄЋС`S[]Y]VMNGOJNMHG+4‡ЊЃwЁЉЄЂ•’‘›—Ђ›™™ЋЏНЗЏБЇЃАКЉ””ЈЏЇЋЋ€.ЈŽxžкД5@Uce\]SLTOLEEC9-YŠ‹”нОЕ‹‘™•ЁЅ”•’Ž‰ƒЛИЗАЌžЅ˜œЃ˜ЃДЎЏЈЉЅЇŸ”СžŒh*;O^\U\2EAMSSE@Bg‰wg‡ЗАЋ•˜’‹‰•ЁЁЂ–ЄЌКЈЃЈœž”ƒЂЁДЗЅВА™ŸŸЇЋЖМ”ƒ0>^ecioА`:INLPYjGMxŒ‰ЇдЛЗЕЈЃŸЈЂЅЃЊžЁŸЊЈЩДВБЌЅ™ŸЫњхмЫЛЇŸЉЏЗžФЩŠ]8TVUTZUITOIO[g]YQƒ‹œеЭа–Œ’’›ЅŸŸЃЈЈЂŸЉЌУУФЏЋЗЧЌ™ЦщЯЉЂЃЅЉЕЏ™œžx?@>SLa\]`VSBQS]M2gˆŽ•Щмœ‹‚‡‹–ЅЊЂЎЛЇЃЃБИБВЪРЛЭЮОЈЕИЏАШЃЃБАЎЈЃКqY]VOMeY][TZSVTQ^IOЈЉЏжэШŠ”—Œ—ЄЉЅЁ|ЌТДЈЌЎЦжмНАНЕЈЉ™—ЅЄАРНТЫЎSHMVMSWZPbNJYPS:LtkŠ”КцьЯ™ЁŸŸ™›™ЁЌЇЅЃ”|–ЦЗЎЏЊЛСШББИЕ™Ё’цщЦФДФм‘?TeWLONWIWZac\M;SˆŽИьзФЗЂœŠ–žЛРЈЎЁЄАВИЏЋЋЏФбСАŸЋЏЅ’qŽЈЫБДЄЋр};NZWTWPVLVPbaUMNžЄw~›ЛОТИЁЁœžЅИЩЖЎЈЋЗТИЋЋЎЛЦЭЫОЖИЕМ•‡ЎЛЋЎ˜ŽЅ–J>YONSTSU]^NOVVIWŒЎŽЇЗЪжЪКТŸ”ŒŸЏВЉЇ—œЃЛКЛЗЏБЈЋОУзеЖВИБ™—ВМИЌЧхьŒT`cOVQS7G`]OSmt`uВЃŒАФзаЫОСЌŸЎДЕЈЂЁЉЊЉЖЛЗРРНМСОКЅЌЖЗСВЃЎЗЋžыўФa?Q[^[Z]@?JZQGYaiŒ~qЊчеЧЛЪОЅЅŸЌЉЖЊЉЎРФЕЖКЛЗЕДТТНЇЃЂДЏЊЌЊЅЁЈТФЏŠ?Mc]Y[PSLBt\OYpkŠЏбdЏжаЪСЂЃ‘ЃЌЈЄЉЎЖЯдаЦАБЕББ€ ЊОРСТЇЋЇБНЃЇЊЖгЎЇj8NVTNZMMNPPSL>BdВКŽˆЄЦрЫЩНЎm~œЁЂЄЅЕФЧФСЊЈžЌЋЈМЪкЭЕЇ™ЃЁ™ЋЛЭНЂ^.?TLQJIOVLLQ\OZ‚ЇЖЇžБОАРОРКm~ЇЦБЂЉЗЖКЗВДИЕААЊББВДЕБЅ—ŸЌЏЊЄАНЌЇŒQHNHSAGHLAFSYVaЇЂЫпСЛбРКНСЗ–•ŸЕРЌДИЕЛШШОТРЖМЊЊЋАФЫЧРЁЏŸ™ЁЇЗЫВ•YA8IUMO\FmМлЈЩмШКЖЌЕЉЈЊЏЕЛРЈ˜–ЅАДЛЌАЌАЄФтнеЯУаЭжОž›žБсѕћа;:bYVLAHUU>M:UULCd—Ÿ‹wŠЈЂЋФМЛЖЊЌТрИЊЉАЉЅЧбСОФРЖЖАКТЭУТДЕАЄЋЌJA?N\ZYN.:YдбЖ‡ЌЫжУУЃЇМтслСУУСТЩЭЩЦдтыЖЄ„Œ‡A47-SMTW\[SOMSU>LSkFEAMELGE@@8E^zg`UaQevO[mЉВ…ЉшМŸДИРЖЌЅБКЋЊЗсгВo…ic]WQQSECMOTUIIFJLNHCBJHACA:8Sm\]`ipm]HSce„ЊЁЇЋНттЇ‡›ЋЋЁЋМНЃWBzeJUQWTOHLVFO[TOLIJGJ57LHVQQJO[Y[ZY^]VZcaw‡xm‡™ŒЁдЉЃ’ЏЅЂЇЎЏД{]GSPNOOUMUT™kGAJTNSTGJAEFETTLBFNOQZdi`ZZb^b^TFWp~‘–Š‘–ЄЛРБЇЂЋщўНeIMQNIOLQUY…žЋgLWbH-?AEHCE?;::ALMU[`VJNSW``VYYZd[p‚–vЃВЗ‘ŽЅУДaUjaUSHNJOEOŠ–АЏЗ–dZQCCOFICICE?FHFGLMTSSLTUbQT]c[J\Thwi{ƒ‹ŸИАНбБ`>ra\[QYUVWVœžЇНЮЧШШ:"3FQZJQS`di^ghpmhb]UWVFTONQ2AS@G•ЈЇМБ‹ŒЁЋЄЂЅ˜АББЌ’eSOLC57NML:F;EE;BNOQFNZYSNPV[Z[dn^;;:<@::ANmjI–БгЩС™–ЉЎ™›ŸЄЇЌВТаЏ‘ovw\LYOIFGAIEOBLTQN]^cUPGSMYVbJ;*B47571&;MSSˆЁЧЦЛЊŠŒЂДЉ™›Ё•––ŠЈЈ™ЕЩA8CG839>-AYPNM}ЋЯЩЧž‡–—ЁЃ˜’Š•˜БбЭРН’\BFUISH@AHIPTNHMGLNIBSJLPZU.*9,$+55?@5)&”ЃИИШЄŸœ––Ž‹”Š…Œ™ЅМЭޘЁЉƒVFGGY[SWV[VFLQUzAEJMOWLJM><2)$%+823303’ЇЖЏЃŽŽ–›—ˆ„—ЊИМЮйЖЗЛЋЃЄ}p|\SVY[UOVYQT35BNOPM3JB.<91))3*EB9:ЂžЈЎЌЉ•‰‡’Ž‚~|x„‘ŽЉОИЊœ•œ—ЅЅœUUQSdeTJLBFNL@EBMA;B22#3,%1389:>џ€‹˜”pVQ:++"&.28150!,"SУЇŸ‹Ђ‹}ZIB,)&.:7(2<[ŽЏŸ}q@E‚Š‹…ŽŽЂpO4[It\-?IhrrnkuVivb„‰;24,( !,,-(4-ECt–ТЌtb^q‹{„zu„‘Ђx;QiYOUWcWbwqbaž‹‘‚|h‰w-89%(%0&%(279.9GA8<4AQr‚tЎЎ„SG:Birk{oz‰’{w`SW4I8GSOhme[g\>EO‹LJ(7"+,30 (:3-.)$*0+(0YŠv‰ЕVi‚Љx„‡Š˜~O3TQv}‘}Sejm]\ZkpuАˆt1Hi4+0$#$%(-&3L2..}‚Š„ro|ou}‚”˜Œ–‚vLFxbx”}ubgYZobpœ™{w{|H&L920--#-%*)2(2CNk”ТЎИЉ‡[\oqŒŽŒ‡‡Œ‹‹t[[ŠohiJNijvˆЊ\?|–qFˆ„F><;3"!(+(&2+5:A73570;‰–~’œЁo\2Wrƒ–Žv}‰~‡cgwVBe–i‹‘–xa9Pdqac1!1)+E:8*,.3%(5@N7*>?:dz{ДЖZicTh’ˆ}‚|ƒˆ`eLNv>2hvcoAUw‚n‚tnj-32#8494872-?>;NN1:#8‰‰eu‰–|mwqcn‚™‘ˆ{…no‚\A|q~[|Ÿv.Zmœ›Ѕg0q(!*)7A@>33%)4759$Tojvuvwgegrpt~ЗЅT‡‚Š[0]*Gidh[oœЪ•m‹ˆЄˆ}5-e+ ""?50>JC7+:5>9-+5‚‰ŠŽŒŠmwccƒ˜™›Š\…‘‘o‘–qmŒ^``mƒЇuT‚‹Œ{VSt0%))():9BGG007:B9490rœ—žŠpxdhb]wž•Д{’Њ‹xjrv‡—ЃYMcmm…bB}ЊzTƒjeƒ-251+.*(;EFJJGH?"+YЩжЈ’—›‰qqujo‚•‘ƒŽŒi38^kЖ…u„‰ŠŒqrGw‡’‹t~‚VeO^gtnYgpvuxaunhrkƒ„‘}mJ778?2CE>0,"-.73uƒ–Вz{wt|‡t|„ƒz{•‘„kbt]O]SJg›}aadrkrƒ~„a[Hj‹Š91(:34CNFB@,42E>kŽœ‡Š…‘‡|zS>`ŸŒ’’t^o`]geri‹gLdw|h>Y~V5?A[‡Яœ+*&087->>FEE€Ў8)F„ЇЎ•Š|vnmr‚uZz‚Ѓ›‹„ƒ|roeN^UM]TZ[kj`|j•”hcdwMUwzE<;8>01.:>:BM>OEЏаw‰ˆ‡b3a[ZQHn‰|”œ…wtqz„phccgne^ei\mqtzw{ghhjejj;5,9CA7-0(--@2>\žЄwžЖЛИxmA`ugƒ‡…‡œ‰cbmrmPQVcox…`EZoi\grqvqmneZav830*!-1*+4?CF-3g’ŒЉЌЃЁЌ–eIuriŽ˜––Žƒu`hwjagcogvbVjngbmnhg{‚‚}vmGA7B@740)-2*IP0zЏЅЎВŸk{p…™u|‚‡Ž‹ˆkjmhpJ%OI[d]iu{‡‹pjvxahunƒgBLQGIB93<94+@HiЊ˜…’˜”vp^okvrzqƒŠ…~t}}|x\\QNIScbjv‚ur–‹|kƒЈ…w„Ÿ?FI><858?GFU:dЮЪЌ‚ƒŒ•Ѓc}pk~‚x…rttvt{Ѓ9AZvvYaigr{ŸojM>]j‘Œ™žaECC)")E:1AA*JL?34,@FF.‹ОЅ‚Š…cgo–‚}u™гЈ^`drggnrWWV`~|j`ZnˆŽk``Y^}iqxzt?@IB@@JMPEV:CККŒh~}wŽƒ”~S–К~IdbdqhMNT^ICo‚z~oYeow–re]cZA5%a„?>BA-%EPNHGC{ŽŠŽ‡’Ž~~v‰ƒƒ{ŸŸu^jaqzeaneZdQOo|~„{{pxƒ~qakxHIbq{9.5)-43::71QЂŸƒ›Ÿ—Ÿ„|xt…‘‰…‰‹q]WdUdpa]jognguxrgrŒˆ‚{pvˆrPtˆ˜ƒ]u9<@??A35?<0‡Еœ’žЁ™„Ž‰ŽŽŸŒˆŒ{}j}add`d~uzƒŽnU^cŒ‚„}‰‹БˆMV]t{cYx,(727GFH?(7‚ДЃЊЈ›’ž”‡Ž‰Ž”މ~}„‰WbdSMa[|ˆdAF\WHS‡x‚ƒ|p^tqepaUd?57:<;A;Ee‘‚Œ‰‚ˆŒ•ЁЁ›’ށˆ‰‚z~ŽЉМ”„|UJd^xЃ~rxŠˆ‚…Šan~naZA]B74,%+7%4>„В‹‰Ÿ|c}…Œ˜Ѕ™ŽŒ„{vŽuYVbБ˜xž™}^nct~‹bm‰‰h^B`u…IQn3<99&04&;Cj…ˆ–ЂkSNq„ЗЋd–˜{p|…G;OeYixjPMerm]YˆˆbG<[GHo]\kwxep}1,.1,499OYg‡Šˆvu„œВО‡r˜™h‰Щлqgi~hotZQ\rzdg‰ƒzqj~{kJ7?^xuu€*v‘Ў18:.*25,JTƒœЅ…|v…e‘ЁЏ‹nmˆŽwЂбРzh{—n`agknx|{ux}‚w[ZZ˜ŠSh‡‡m`iBk}9@@?<>?CFQЃФА™’•‡–Ёnieo@hЈУœ‚ŽvdP>[iYmqw~ƒuz‘Œkomb•Ќ‡`jn\–28;<;HI,!SБЫ™œ”މ‘˜Ѕžwvmz`Šеб‰{wrnkwVGT^u}w|zb‹ЎИ›‚zuh}‹…„‰Šƒ4-.@@E81>oЎ™Ž‡”Š›Њqdnbmd‚ЄВŒtƒ…ƒ‚„rT`p‘‘‚~„zgjНЧŸnVz‡v‡Š‘’-AGIL#0›УЛ‘ƒuj~‘РТŒgO~…u~p‡|v}rnpSEP‰œŒ}}nnœЄzjor•}otvxp‰2"(:BF@5Az…{tMN•ДА˜{‚ЁЅ˜rtwrirZdZQ[mЂŽ‚‘|gT?2#An}rioozxwž:)*8@BHSp‚‰|b7‡ДАЇŒŠ‰”•”[exm`USMV\EOk‡”…‰……Œ”—hp}v‡—œБ—‹Š‰‹‰|WL`WPbqu|jh}Œ‡~qr|}}pJ21@-e˜Ži˜ŸЁЕŸƒŒŽŠ‹Ž‘…zjacg—”r|hciž}xz…•ˆ…|™‚r|ŒtJ\rzo]40934+Ї‡{‡œ‰ЌДŽZix}}Ž‹‡”Š~aL˜”gQU`Vkƒxvmpttu|~|wdi|Š‚vovxww9101,9!%ЊЅ‡‚‚ŠœiSz‘˜Œv|qVUkžjAO~dUGhЏ‹„}|ukjb`knjkzkUZV`n?13.39)+wœ{b{}zpo\bƒ‰Œ‹Š‚‡™…qwwac]\Zcbt™ƒ‰”Ž„urdjw|ogdbe^]U|”EA;5419dk~‚‚|{…‚xqЗЁ‡}gmq|rTWqSZ\MSWpЁШ‰}||ƒ‡}h]kqo]Uajo{vЁ˜@9>:3-&jqkWmxt…„}Ž›™’{x‚qid\Zmntjikbh{~|tp{„tt}}{uphdtƒ~{ju„E4+18P@F…~{z‚˜’Œ…‰ž›‰‰‹|oaFapmq…’ŽwuqКžŽ‡‰„}{v}m[Qc‰‘ŒŒ}{rr};A8,(3Iq~n|„Š‹‰ƒ”Ÿƒt‰–—mj`giwnaur\[VvЗhechƒgN[^c\NHFHirjuvzxB&)),Pgx~‚…А”›•uŠvwqrx{QTQhxgZY[u‘|ioimcNTecbcJI$Teg~{}x2:48:,")cxxƒ|’—•’zYbbZVevjrmQN^zZ @;4%(2E^”Š}~}–ЭЛƒ„pqhQ;B;BVTJOVP`ekquvvgW\‡Œhituvqek•–Œ‡w}E[:$&--Gp–Ђˆ‡ŽŸЃЁˆvdbivjVAIOCabgck`Z\hh€—c`[`SCU}œЅЃ{rrz|r~wrzJkN))&?v}„‡‘”˜›Œwprqq~r[Ydiiab]dckdjhpŠp]jp|{~wuqkbdiu‡ˆvxBC(#+h~}|‡˜ЁЄžŒzikhgkbUUIIMEPYdtuorttzxrveaU}‚vuxxtqpgau‰ŸЂ 8GHo‘‰ˆ›Ђ›‡Š}ehhojcYIW]Prh]PIU]\Z{~weVZM4Zˆmmuvrkozu„žЏЧаB?;k~‘Ѓ–’˜~uvqv~‚xhhxzuwˆnVU^jqhvŽЉ–{‡|]2Lˆ„pjmiehx‰‚‚‹•ЋЗ$)$.H\bЎŸЈžŒ|j]hviLIj|„ˆ}~`BTkqvuvwˆ‡zgvkikqv{~‹Šƒ…’ŸЁ’)55**Arko–‡iVm`^aFFH,?Z`crjbhegjax|aiqko|urc]aikt}‡ŒŠ‰Ž{€ нлБ˜vQ7CIH?450|ёцажцйСЂ‹„ЉКаЯЮбгОЛ’™‚n|ЄœЂЃЈЂЃЋЕОЛЕКЖǘWQPLMHC<5AAF<88<:;;U:2–лякзжФВ…УЮЪЮЧЮешН™‹ЇЂЮСЌ–”›ИЪОРЇНžЎААеЧ`:G.HFEE?:8;9ABCB@BG^9^ЗујѓйАФДЅНжШКЗРУЭюЩ”ЃЎЄЁЇЎЇЄЎМУНАщЯнСМИжЈ@SdBBH@@EEVVНўпцёюйЁŸРНгЮЫЪЭЮбзЮТЂЁгЖНН”ЇБВЛШяЌ‹ШчСдЕjUPNIA@>@FF?@CQPLJI>APУшЩлцмЏЁ~˜ВатЮШУЫЭЭдЅAIСЦЁ‡БйМОФЭОЅ‹–ЋНЏАM@L>JILNSQJIJJHFFУ;LЕШдЯбЮйзСЖДЄШрнцТ‰ШзмМпхМЕе’ŸЈЗЮшЖŒЧмЪТд›ЇКPJBCCACMTVTNJLL€SPHEC”лмлмззЦЦОЗВЃКрхњШзјйЪЗСдмцї–ЋЗЗзЈ‰УёРЇУЗЗЪJHCFEBBFS^[SWYPN3;5tўўпнкдбТИВДНЮмкзбЧбзЏx{‰ЄТчр’ЗДЖНаЋkWСЦРОЦ™E@CBFGGLQ]WZ[ZZVIj`дюуЧйаЭЮЮУЈАЄЯюзгЭЮгН•ЂЛВЂИНЛЛИОНдЧ’ЁЯЂбЫЪЊ›CGGBCGH@FILLNPBILr„ялЪЫЪЩФЭайТǘОбалФЧЭЄББЎДМЕИЕКОЦЦСЈЖЖИКИЯбуФКYLLJES]]QJGHCC@JЃТюФОСУЦЩЮУНадЪТддЮДЎМЊЉЉВœТхЮБЏЛОНЗМФЩЎЋžНЮмжжPIIACHOSQQPJF?SP‚НпйЭЮЫЫЪЩСЁ‡ЌтмлегзЧЖЕЉЋЌБВУгД‹ЋЛМЏ„ŸбЯp‡ŒЌЫўлIHFCECFJQTYYUF:SЇэьеаУЦИМЛШВ–ОЯаеегбйЮИБЋЕЊЈЋЋЎЇАДБЕЛЗецТϢ˜ТНMMNSTJAHLLU\VJeYе§НдгЯЊƒЇЉЈЄ–ЛкЦзчЦУЦФШЮРБЏЎЕЖЖЏЌБЉИТЫЯЯЦМББЏЎЌМLONOYOB@BGHMNFN~лхЗжєљчЕЋˆŸМЎФжТЭгШЈЗКСКЈЇЉДНРкЇЄЁИЖЈССТТООНДЇЅСPNGAMGBAGJHIV?HпзьстуябБ”ЛРБнежаШШИЗЛННБЇЈРКЗДЂЊЊŸЈЏЕИРУЧЦУРЖЇˆSVPNMIGBAC[ЈщхжейждТДЃЕИОЧШЯЩШЯЪУРНбУИŸœŸЈЈЅЈБЗШЪЩФтЪЧЗЩэЯНзьMZWQJLLJTPUjJwљўёЧЭЫзекАИНФУЩЭаЯРЛТМКЧёЫz~˜ЗТЈЅЈЌОЧЮцДЇ——ЅИпеущБQWLEGNNPPIJ2>OЏђзЯатМЃМЫакрмйнЭЦШдСЁœЉЧњсСумЩАДЋЛЦЫЦКœЕареАŸАНРб‘ЈIGF:@FE9GW‹ТЛЭдрЕ——БЪѓцžгпШФЧгЩ’’БЅВООЂŽЄЛЗВЋеЪгЈ˜Ќ–™КЊЌВРСБЩGGCBFFEFboŒСЫЫ€эЦЗЎЦзыяРЈЫЩФЎТўўНЋБРВВБВЇЊИНЛЖааЦНЋЧЭЖu|ЊОЛМЛКкђFECCB@B;]oЌпцЫКООžбэєаЎДееККрњёОЌРрЛЏЎДЕМОНЛССРСИДЖЎчб•ЋЩбВЋБ{ЋЩILNFEIM[TmгўђйждлбЯнпЇЂЌДv–тўрйЩеКЌЁŽЃЉЂЕЗИТЧТНккЩЗЕгИЉкњдЂБВŸжтFIEEMPN:8nу§нгЯЭеклэпРТИНЅЮўўЫУУОИНЭЃЂЛгНСРОЌећ§пЩОТЕЪбгабб€ЫжШACHMTNM1H’ьсбЭбгепрчЋЌЖЕБЊЭщэЭТШЧЩажР™ЅАееЧУОКЈЅ§ўкĘРЪЭЫЩЧЭаЯжд??CIMPN4;ОћшЫЩДВЫтўљбЊ–НЖРЭНЦВЩТФСОЕИ›}ЯцдЯЦКДЖмшТБДВжцЩРЛМНСШб@?BFPSN>YЉЧЩТИ‡ŽеюрнФЛФуцйнНСРНМЫОŸЏЊЇЂБжщЮШЩЮбШЎŸ‡vw‡КЫЛЗЖЛЛОЪтGC@@IOPc‚ЗЭУСЈtОьѕсзЩЩЪЮгмЭžЋВДВВЈЁЂЄŸБЭкЭЩЯгаруЎŠЌЪАЦбФТЦЦРТЧЪHFCILNUMTЎЩМШаУзйюлЯЦШЪЫЩНЖЂ˜ЇЈЏЕКШФВЉОйкЫЧРУЪЪЗР–{ИаОФЫЮмУЖВИИЗ7;GJNJOG…йдЉШмкррйЪгЩЩЫбетЭЧЏЅЊДххОРДАЎЯпЩСЛМФЩмШЫТзчСРЩЧКœЕЛТМЃ;ABFGC*щгШЭтйыэΘБРУЩШЮбмеФЉˆЧуйЅŒЈЄ‹ЋЩФСОНМКИНУЦЧОЕЗЦЪЦЛЗМОРОHJHAGC08ЄѕђЩЩЮгпФЃŠБгбгбЪШЧК—ЇЊнЏŠ”СЌЉ‡ЋцЦИКСМЛКЕЎВНТННСУЦБДАВВДSJ@BHL8?ЂлОЉСШЪФЖДžЌЮйзгЪШЧлЫЕРМВЉЎЌЌДЎОрбЩЭддЩЕЗБВОЦТЛДАЏЎБЋЦкZN@ЁЗД—ИРЫУЗМЩезЭЧФУТЖДЌЂВКТДЏЋЃЉНКУСОМЦЩЫЩЦУЛКИЕБУЮЧОЛЛШзCHEAJdJZБСЛКЧмгаЩФбждЭЭЫЪКЈ–ЊБМСджлжТЦИБцЭЭЮЭЭШНКМУЇЃ—ЃЮеедУСОРУOGA>FCBjБОЦЛФЭаЮЫЮбЯЧТЦаЮкБАВЏЎРКЇМУЌДЛэШАЎМДФЇЋААЁ‰Ž•’ЉЛЎККНСJG9;A]™ЎЩФУНЊЮююрОЛМЖЎœЊКЛСЫА–ЃЅЄžœЃЅЕФОЛВАДЛСТТЛЕЗНМЖЏžМеаеаЪ@OOFC4GižУждРНКжјэгУОЛММЖЃt…ƒ•›ЂЃЂЂЉЇЏЗНОНЕЎЌЊЪЯЈООСРИЖЗМУжЪФУУLwO8E@IxЎЭтШСОЫежлОЛЅЎБАЇЁ‘—‰ЇЏЈЉЇЉЈЉЎВАББАЈЂƒЄШмЮЭнОДЗНФНОРОЛОY„Y5?0TŸСдхЩЦЧШЫаазФИВВЗддЪЗЃЃЋЏЉЉЇЋЌАВКЗЛМбБЎЏИРУФУЖКААЕМРФЭЪЦОPT92;:9Jc‘ЖмйссУЖЎАБОЏ”‘АШадСЪЄ‚žЊКННМзЪУРгЯРЎДИЖВДКЛЗЛУЩЫЮбтуЯ-7Qhi\qqjpoq{„tŒ‘‚qVOZT5MFE9BQLF?H;5?F[>+jЉТБЈЉ‹JOŸ˜˜žЌИgVndЄƒuVV\ƒ’…Šx…ivˆv›T9S2H@OILLAHMPIHH€єWhŒЖнЌФЯТЈmoˆƒЁЃЃ™››ŸЁœˆuqŸ}}Zizƒ›ФrWЌU”bOZSMSFA@IIFMMNUWINILPžЉ˜ЅМЋ„jHb|™ДЃ’‘žЂ–{!ˆ‹p^{Б™ŸЏ˜qSgt„unJ8EFJVUEFFGNOOZ\ZWTPWL~Ё‰ЭЯrxrgƒ˜Ѓ˜Š—˜˜wxY^„™SG}Љ„v‰WmŠ—„…xCLHJ?VWWHONPSY\c`UO?7IœЉzŠЄБŠ}މw‚™БЏЎ’”„|•g`‘™i”ДЕŠ9mwАБИrI‚@?IMEHIWW€лYWMNOQ[WLBgЈИ…‹„‰Š}|}‡~ЫСi›˜iBrJVƒ~k…ТсЊwЉМЁ™JB{A4CF;LUOMSV[ISLZSQLIN’˜ЌœЇЅŸŠ„~q”ЈЌЗ’ižœЋ…ЈЊ‰Ÿddr‡Чƒd’ЄЂ•—opˆZNEJAIPQL[][MLVVOOQH‡ЌИЕАИЅ‹‘zv{oМЖЪ‘ЋУЇ—…‡—ŸЊНm`j„‡ЄtZ‘Э—w–‚TNOQOIJGM`]cacYP4<;oшѕСЌАВžˆ‡zƒ•ИЏЋЂ–ЁЉ}EJWmˆЎЎk~ƒƒzt51]ˆ‚„ŠcFINQLTMJTbdd]gc\Ot`ШУО”Їžœ‘—•pwq™УЌŸ’œˆTbhuaw~}x„…‡™‰ep•gŸ™—phLEHIONNPLONSQSSLW||бЌœЁŸ’•œœŸŠ‹\…žЈЌ‘™jwcm‚‰|n{‰Ž–ŽouŠ‚–Ї‹…[WNWNO`eLOIEFOHW•ŸЉгŽ’˜‡—•”Š–™‰АЊЇ|u‡tkpr[}ИЄwtwˆ‘•žwt]„’Ї˜ЉOONQQM^d^WMUNO^T„ЃЕЃЃ›ЇŸž—ˆgMoЗЊЅЏЅЋ‹|oqxwƒ…Ѓ\tŒŒvIp™™hSOVn•цЉMLITUMZTYbb]TQE\–НТЊЁ–”ˆŽ…Œ‰a”ЃЌА›ž›‡‡wipkhqurvxx‹ЈА{zrŒjhŒa\OWWOOITWW^UPi`Сц‹ЅЄ™rLwnjh\‰Є‹ЉД˜Œ‰‰Ž”Žwxz|uzw‚Š”’™•u…xx‚‰]QPQY]OMFJJULM]wЛЗŠАейгzPg„vЁЄЋЂ|{ˆ‡…rjd|‚’Ѓoce|‚n|…ŠˆŠ‰‹vpnŽVIFNISJPENPUUGHxЅЇТЦМЦШЅ{c‡‰|ЏЁЇЋЁœˆ‚‹„wzp…~„k}…uvu…—•Œ…‡vU]^ZPSVFMHPH5[oS‘ЯЌЕЩЪО„Ž‡™ЎŠ‘Ђ™ЅŸЂ…ƒƒ]La]nuk‚‡—Š™ž•’Ž|‚‰›v]ahe]QSHHWSBL\‚СЋЁžЉЊЄ‰…m…‚‡‡Œ™ž’Œ…‘ˆ‰`ad`ditnz‰’•ЋЂ”~•И’‰œВVcaVVUQNQY[mGxышР’ŸЄЈВ|ˆ‰ƒ’–ž–ЈŽ‹ˆŠˆŒК›ESgˆvovxˆ’Ж|og^r{ЊЗЛzY^TSJMVTJZU@HнзеНЄЉ™„ŽŸœ‰‚ŽФЌin|vuƒЅ™ter‘ŸŽuaVkŠŸЊhox{z–‚–ЗcZYWULEUT]ZM-1žмЧŸЈЂ—}zЌ™—–ˆБщРqqw|~zˆ•jggm’’wrНŸž‡mx|x”{‡’‹JSW]OZag]amSUЃЮЯЇŽ‹Š›žАЎŠ]ЋЪ–dz}wzkcnnd`~ž‡‰vez‡ŒЉ|}{wiV@CtЁWTWZTPZib\c`‘ЇЈЈЃЄЄ™˜‰™Єœ•’ЕЕ„o}w‚~t}uzoaj‚Œ‘™˜‡ˆŒœ…rv‰TQnƒ…SQGQHLLTVHBiСВ™ЋВКЎ‹‚Œ˜Ї›žЂЂŠvv|mq~kr|m‚‚~t‡Ѓœ˜Ž|ŒžŠ…\Š™Љ˜xOSNJNQQPGPCœаТЏВБЌ›”™ЈЈЌЁЂЁ–Œ{‘™{p„w|•ˆ„•ˆЄ~moxЂ•ސЃЯŸemk„Štt‰CLGOWYYWS@H™гУФСЖЌЌЎ–˜ЅЇЈЅЃ””–Ўh{|nhqg™žuSPmoaj˜–•—™u‰‡•xznn|TOP[SNUVn[eЃЊЃЖДЅЉЌВЂЋЗВАБЇ™žЂ—z{ˆgjz’˜Zqo{uŽ”ŒŽ˜–~‘’w”Ј™‘…|Z]OMNQUISOvЋ™Ÿž•›”—ЁЌЛИВЄЈЃ•Ё™‰™ЉЦеЅ‘•nbup„БŸ”‹Ž›Ё˜˜—t…‡‰qqQqTTPMNLI9?]wŽ‹’›ЄЄŸАЎ{’–Žˆ|ŠŽ’ghmx‘‚moo…ЉŽt}|ƒrdcut{hYNow{‹‘ŠˆZPQSJJ>Brƒ˜••‘™ЈЉЌЈ„dpxvku‹Њ|hknŠm.MiŠЭ”ƒ~ƒ‡ˆžЎ{žŸ˜ŠwŠ•~‰™ЂЅ]SOTG8?Qk{˜˜Š{ЎЩаЦ‡‹ˆ|hw‰Ќ…ehikd`iq‚ŠƒŠz|„Š‹zŠ•„xhŒЋЄž›ŸOUTPC;EQq’ЋЊ•™•Љнࣘ–‚‰{gL@WNZogdeihwu‡„‚vepœЄ{‹Šƒ|‹œЉž›‰\uMAHAGj…ЅВ›”ЃЕДД•ƒptz‰rpW][Wuxqn{oju~xwrvupVr•ДЏЕЖŽ}ƒ‘Œ‘ƒŠbŒZ?E8QАЉЗ–œЊЊ€oАЉ’ƒˆ|…››”ƒppt}zqonuzz}ƒ‚…Ђ|tw…‹Šƒ„|r{Œ˜˜—”Œ^bC:@?Fw‘‘”ŸВУРЗЂЃВ‘~|njqa\dhdnr…‡x„…‰‹‰„„wn™•Š„ƒ|~‡{–ЗЛ>+7L`^Ёž—™ЃЌВЌ–Ÿ”z‚zppmnh^‡‰{dcnrtiŽ’‰{noaEo™ƒ‚‡|ŒŠ›АУсщ8>99[G3N|”ЊЗАЉЋ‰‚…‰’˜–Ž}„ŒŒ‰…hkp|„ƒ‡ЄНВŽ—‘oE`œ—…w~|q}”Ѓ•ЌРа407B4>BJ[tv”ЕЗРКœŽtu‰qa^~Ž™‘nInv‡…ŠˆЈЃ™ŠЂ—‹v‹„„ƒ‰‰ŒŠЁ”˜ЂЗИЊABHLBC<7)-3Zˆ}‡Ј™xp‚uqhSPW9Intq‚{qu{zrŽŒp{}v‚Œ…zrxŠŒ›ЂЅ›˜Ѓ”џ€gcjZ]ivƒ•!"U<3,q~cbtxn^j~z‡{gknbW`i|ƒ}wwzqqobiz—‘t‡}tg5@I7FC@ChYQZWkwi|G?w•z~aŽƒЈ–\Œ‰’nc\ZT^j]{{ez„}nqh^mƒoo~}ƒ{˜](;FHJHCA}tpj^ceV`uarxzCZ`v}{‹ƒŽjro``C9Sc\epzZYP^uoqitˆh|tƒ•ž~IF:HJNPIN}}rehbdai{‡‘t‰Œ|‡Ž‡…‘nwotpdpzre[WSj}ˆ|pvzxpqjVbЃ‘]EIM93P@@M‡wrogq[NbuhwwnhavЈЦЏ‡nw•…АЃ‹oamwuYU^hYNommw„„vvzvЁ~>&,#x‚”ubvbNQVxo{jGƒ—œ•–ŠYk]z‡‹UY[WAa^pp‚ŠŽƒi^a‹‚„‚‹oEB8%2&4(*4wEWY-o’wruav\?|’…‹˜‰”|nxvz‘eL`bEx™„[ti{ˆЃ‡kk‰–ˆomrki*"0(%^Š^U?khor~vj|x{‚‰w‰xU-Yeqngj[HWVVZSniotukn|qn‚…Ѓ`GHE9<7(2"47.(EE€ }N[Vkmp‰Š‚ekr„rdt‹nŒ]qnw‡d-?CAZSagqkh|{}ŒЛЛ?9L;0*5?C<9@A?>E^ibeaŠŠ‰~atƒ‡ƒ‹‚|„ˆ‹znhjxrj[‡‘r[\^^[evvtzŒœЄ–8(,$*71#%"*F[I;8`^nxrkjon}‚}‹rarމ}FZu~‹…r•xeih`ginkeLZq˜Љd<5$&!$+,#(UHHM`r…mkuq}~oopnnie[`Y]b[SSL‰„rmwwvz‚\^de‹qVQHH<<22%&0,C 2~mihjehd‚}|vvzi^\gkxn^ik‡‚}|}„zx‰Ÿvh{…‘‹SACa.Pai˜•pkg‰Њ„iq}m[Z\rwttƒ|vr|‚pWa|…‰ukp‡’ƒT>AGE@2#!#(+7e4i‹{w‚—wm\qOe”„^‘{rrqniepm`pЈŠxƒxdawœx|kgp‡zL*8AA?0)""1$CBNp|}v‚jraTv™‚ЁŸЕ‡aJPjwqbtm[@I}kpkputu}vx|{r‡dLNQ@IG4*#*2* -*TnŒ‰‡|nbUNMu’}ŠkoEQShz~xrVeer~}|}qw‘Š|no„Ѓg:4?AHN99;3<73+ #1:p|ŒŠƒrŠwU‡~Œ’А‘„Šmbu„zx{qv}‚}pqdj`grvqrcvƒU4?;CA)410:EA1509>c|‹~…wnbjx„ƒŠ‹Ž˜qQn[PFu‹}rwz|nmmaemadgumadenk,,95@4*$.41(-239UbŽœ‘wq}Ÿ…{…ŠŠg[^]89PhVcP^po}v\TQS\gi\ihruN##,3<3*$&2.&$%2c‡™‘Š\E‡‚|‹‘Žƒ}k|xo`egartnr„‚uadhninabw‘„Y;?3+0<;+(,,:;?;;1$0pcvxk]EFi„Š•™ˆƒœŽ{xzoacpwp{||xvvnigjb\TT?`O99;;C@><:552<7597+-@qjq~Ё‡ЅЎССЂŽЉta50:hz]WYZJ]ppvqhqz{}o{gezwdPE@JNQE.+!3?@>)$Qwvv–{’~ЇЭЮНЈ•‘}pdPnucqhSWdidprhp}‚‡q•…najTE4AEG<"%*+,.,.73W{|xrƒ–ЎЕЁž—…~pkY4Mb]\^b…™›ƒŠ‰‡Žƒ…œŽ^?&?L;414249211,)*d^+Bnqg]–А”ž›‘˜‡jtz–„…ЃЂ‚^uz‘Є…‡Ž–‡‚…‚rg‡wP:,&85875, "(& 1,IZkc^Zwƒ’‰…‡ˆ„}z{zƒ›’qx„v‡ˆup{…Œuurw~uwqr‘pC1*30?1&$$**"$4\p{^ap„‚z‡ˆ‡Š‰~rwxw{‡}nvO!F}wrekrwx‚”žtG35,,>FF<007,+,(HcNŠЈ‡aq˜—•ŠžœВkz„vjhuwvxwz‡…nmabooie{{vx”Žc>*&&2CB4+11)1,(!1IHŽЃƒr}ЈЏ›Š’žЂr}z{w}}u|ƒˆrjjbFP\iotb`dktz‹vH1;<)(+52(# ","((*"Gg›ƒ}…ˆЂТЌžž›|gjumkkie^mu…nnmkjWNWegmkuv……W5$84%)%#(,()(-!+?Pj‚~wM;’ЅЅœЊ•tcdgnnpmgz—}xwnor`brumjmqu}dG::@C:((9<:39722,,*5P7„™ŠЂЧБЂŸ›„k\HUnttpn|Š‘‹Š‰‰{LOWikcnu|u[8530(,<;-"!%&%GgUB‡‹‹Œ”тѓЭƒˆ{‚p]dh`atun‚‹‚uuƒЋƒVL`{‰wo{„™wU320355+08:-149:20;^o”ЂŠ~адЃƒvogdjmdhmzwg]gp{wƒ„Y4@k„q`ar~œ’^* (,BCBA:.8570,9>2*Qh]‰‹ec˜ЋЌ˜njtonnjik{{vrnjwxripmL\j`ehmuz@-.#.:9&,$&0+-1+OL87Œƒ›Ѕž–˜Њ™j[knnpgbetrwuxrrkmopVO\`bUhtˆe8.<735FI@91&%+*,3?8ITWŒАЈ™Žˆ’–„]Tddhjqz~trwv}noq\Zbih[VuŒcA1!%*@@BC?1(#&!2.;^ЅЧЧ™˜Џ”r]rwnkaeejhivvrkneVV^WdocSbpz|T!)4)$((27!")+(+)$!\S :kw›ЇЄЇЏ™vhaZcoghkkpw~}||p^Wb`Q\upgmu›gBJ<1+#%().,%%$09414Ce`H-S„‰›Ё‰•ž’~wgYdnrutkjoˆ‚}{d]^eopojijrnL)A:,.-3-(!&"*>UHB^T{„„uqrpv{re^[]]au{rpw}|wtiehimjkccpqO7&2HYh{ƒuqtoqtx{wtx||zQ?<7:45GIG7&.-)&"HJ*Ijw‡‘ЏЊ}mnq\C^xpb[WZ]THP]bikopx‚}qwzƒve94-(0-7>:1*""13, STT?>?Uƒƒ‹›В–}j`abpphpjYA@Tc^bkbZcjo|xu}–t@G>)*,++,.-%*"#*-%Fq‚wZOL]{~…‡ˆre^ju‰}xp[h\N[dkb^egcn}ztvuod}ŽZ &.*,001)%"%0-#)PeYQGTYz‚Ž•ˆk[SCTjЋЯЖ–‚omvir}vneqwu{pqpwЁЄm9$%230%(&" .]kZYFPY\~ˆ•ЈŠvpUEe‚–УУ‘\EZYr…‰udcnu{trt•‚[:"798$+0( %$+IHIOJBWbˆŠ’Ёuun^k|jor\B3Okqvvokckhnrtt‹›k;""!&18$*,9.*Zv`ELM^qm‡~wx}}zoc^[\hhbqTWjoƒˆ„‡ƒ{||ƒ–ЁqA-%)00,+-41-$:+"%IuxUEETgSS~ztv‚xqcehke^djikhhtwzt}~zvtwqtr—ЎuB@;210<8;7-%&.(#%CHJ>.$;^xv~{|naWijkmdknppnnrxuhcgiap{zwz|‹o3+;I93738@3:<7($9?,2eZ>gŒw|tVdgbZcoqwttobbhpdakonjkoor‹’m@.*?<3#0--GCHu…ke\ZddeД‚n~uJV[chbd^WdkgUHSYJ2^vca`n~…Ž|J$7733("25+#!*,,>VPB&^]^xЎxUoo`Y`iiadebe`\N9JkoaP`ehmqu‚‚zo> 1*-#",$$ +BOHA( 1SewcNkoghibiopijehYJU^hhdehorpot|‚m^E*529++1,*!"3P`FFS^V+LWYLQWbdYWYeprngehYVcorqtnca^eporuxk5..,40>490"#.,BcMBSWVaOHZdлЈЋЊЋЌЛФкм`VŽƒgАмККЉЛЭВДЛФЪаОМЖДААДЛУУ€GШЩНОМИЎЎЯулКРРУШ‹CHOMLQLAЏЏБЊЏКОМЪEvЩсЧФЧБджѓчаЈЭЫкОЏЉ—ЊЈЉЏМСБНЮНСМКЖВФДЦУСЦУФжv8CUQOUNBУСЛЗВЏЏœЌСВЖЪР}ЌКЦЩЧгжЯЦМЗВЎƒЄЈЈЊЋЕКДЁ–ЏЛСМЛЛРЦТУМРТеЩЊ]NAQS^ZOJЦТОМДБЋБЛгаШчрРЯеМСмзбдуСЕНЫЖАЧННКДЎЈЄЏЯСЛННСНИЕББЇчУtWWVMJdQMVЭШРЗКБЌЈЉДЏЧЧРЗЈРжяћэШЛЩлЭѓђнЛВКЛДЌЇЎЎБ™ЗВБЕОЧУММРОЮуЃM9;A<-+09ЦСрНЃЛЗВЏ•ЧСОЖ‹УлпмрузžЕАЧЯЪЅЃЏЅЋЏУКЪЦагЩЎЅЈЩЩ€ѓЧФЪЧЕ[VP:BEE>>BFФ•œЃa{ЪпНОКЛЕДЩчймйжзРЖЖОТмБ…ЅЈ™ЪызЅКФРЯцЯИБЭбЭШФЖЗ’>>A:BJ8C@FСЗЗКМННДЖЛННРУЛЦсмщЪЌЊЂАЃЋЅžИРШФЛЗАА€В•™ЊЖЮЩбеƘВЮћВ^P@AGMGAB@EEHNMHE@EŸрмЅЌЁЕКЛНУСЛМФШЭУТЮФЃx˜ЌДИИЛЊƒœЉЇ›”ЏКММƒФЦНРСЪжеƒ[QLFFLNHOJLOF7Š–’›ЎКМРТТШЛМНТШЭФСФрйРеЏКООЮЉ}ŽЄ•ЅЊЌЕИЗЖНЧУМСЮєх[GT<:BJQPONSUTMЅЉЊЏЌлыЪЧРКЕСШаЮЪЦЧЭЫШРЗЌЗУЮУЛЄднСИЗДД‘ЖСЪЧЧЯстЖM*,49:>GJGBJJM?ŽЂЁ^ЈБТРСНЛКРСЦЩЭЛЎНгЮЦ‰ЏЭЫйЮОмУОКЛНЛЛКИД™ЁОйдL@2?79;A@?<@>?A–‡ŠŒЇЋзНИЖЖЗМКЖЛЛКМДЏЋЊЊ€oЇЌЅегЭШЧЛОСУФЧЮЇЃАЌгаžqeOTMF:7?>78C<>4FFЎ~ЏнйТехЩВЉЖЄЉкжЭЇзОКИЛЖЏЖСБЇОёлЧНИЕДФмЮЩУМЖЫСnAALNF?>:4AEIOTUJIINЅРЫНЪРЖДМЦаЮШЯжнЗЁИЎ•’НеИКЛРФУОЗВЋЈЌЎДВЎЎЌЎКžC0FFMFC?54GЕАМЦДЏ„‡БЫглкЭбгтгОИОДЊЎЕИННЧЦРЕАВЕЗБЉЁœœ™БƒNFJPHEECCBEJIPQONLCVНСТЫэаЩачѓўњтЭлКЉwbuДЪАЋЅЅ•ŸЖРЛЕИНРЛОДТЌЅМРŠ^NZZVWNBAEBGNMFC4?HhРОТЪтЫмЭчћ§ћяркЪТЖ—ЖСЖЏЌ˜ЃЕЏЌОИИОУЧЧЕРлаʘЁqWQTSTF)57>CGHGE;STIvОЛЕЗСапђїхурЫЭЧНЏŸ~—ЊЌЇЊЫпнЪЯаЭЫЭгдЮЧЩркЋoHJ^OIC*B?@B?4NHhЂЊЉЊЇМРЛаЯЫЮЮЫЦСТЦУЪцхСФЭШбаЕИТЩкОММНОТОНБЪЇaE2>?@:CA>><:@@AA3;nЄСЪЌЅАУОСЧЧЯдбЮЯЯШЛМУФРСЪаЯМЎ™{•ЩРМИЗНСЦЦснЂ[GB>BFMOMHFCHGFF:5]žŸаюгЅВжзЭбблёУФЧЩШТНЛНМЛТУУдлЕЋЎДДВБЕКСНИеУ|P91:8EJIHE?FIILQNCZˆ”йшЮИНяєкк€kмщРУШЦФФТТФЩЧСНЗИЕ’ЅЁЈЏЌЏЌВИИКаЈ\EEF?;??@59@:AIHLGEcЎбЮЩЩЯрћэрмтЭЇЎНЛЗЛМДАДСЩТОЕВЕЉЂŸЈЎВЕКЛКЧСI8MBC<989748;CGNNGY{ЂАШФШФŒ~гырмжэнМБАЕЛСКДЇОлЫФТКМНЇЌВДДЗКЗМФЇhMMIFE?>>JHFGEFIHJCCn”ЫШРжТйўюмнлЩДœ–ЋЏКРОМТЮбЯЮЮЯкСŸЅЎБЕЖМТИƒB48EIGB@CJ@@BMUO;9zЖЮШдзЮОКћўсЩЕДБААДАЏЛСКЕЖКННФаЩЂ|БдРИЖЛУпУ~9+8?IPI@AIEJJO€TUBrЁЎ–еЮЪЈЏйшьйЉБЕЗИИЕБЖОТНИЗКИМНДКЕœЌЖВЌАЗСЮЊ]ACC@CFG?AEA@@AEQQ[ZŠЁ‰–бЪтщпмпщпВŸВКЖЏЏВЖЛСМННЛВЖИДЖЋЉЇЈЇžАРзЪŒL7LIGJNHIFFE@7@FNPM?x˜ЅЫшхмекйжЪЉЄВДДЕЖИКИИЗЖОНТМБАЌЌАЊЇЈКЯзЫЃeE:EEAHLOJB@>>BFGH;8bŒƒ„Ѓмё§мжйьжДЂДВЖБЌЇЏВВЗЛНОНАЉЄЇЃЄЊЎЊ‰ЃЕРСŒQBPCB9<@@;B@@AFPQPAWЄЈeG‚ЏТтшлнщнСЌЉЄЈЋВВЕИЛОРУЩТИЋЋЊЌЎБВДЎАЗзе‰]YMI@;;:>@?@>FIMOQQ{ЕВƒj–ТЦгпУЮдЫТНЕЉЄЌИРУТТМИНРЧШУАЋЏБВИЕВЏЏЖЎj;0BPOEABEG?>;<@EA.EzЉ•’˜™ДЫбЪАЋЋЕРУЗАЊЊЏАЗНФСЛОФЦНИЏЉЅЇЎЌБЊЇЉЗЉqI5FMPLLIGA?;@CGC5B[ƒ˜–•–{дждЮЏИИЕЈžЄ‘•ЏДДАИОО€ПТФТЛЕАЌЋЎЕЛРНКШС’^B3ELHBJPLA<>?@EMck|™”’ЃЂˆзлюнШКЕРЌ…˜‹СЎЊЂwƒŸЉМШКЗДЕБВИОРТРМЛКvTO@BFEBIICF@<>@?@8N}‡ZЋМЭезэшОДЖНЇ‰ЅТБАЋЈЄЁžŽЂЈЉЋДИИННЗИРЫР›U>AHFFABBFCBBA@B<%(T’Љ–…‡‹™ЦЩЮзђнУВКЕДЕЖДАЌЄЁЂЁЁ€ЂЇЊЈЌВМСРЛЗОмйN[PC@>>;:<@>8:@CEBFiБаМž˜ŠЃСФШЭЪЕЅžВИЯСФДЁЎŸ’ЈАЗЎААЊЉВИОРОЛЗЖМЧ~)),9:;>97>AB979@FJA`˜Дœ˜™˜˜ОШЮдрЯЗ›˜…ЊщўљнЧЖЕЗВННКДЖИНСЛИИОНрйF:3789::45>A>>;A7>Q—ДЏ›–™ЃФЩезчаЛЕ™~ЄНеѕ§жЄ”ЃЄЗНРЛЗЗКНСНЛБВМеД~M3.7@@A?>9>@CAA@GA]–ЃЅ›™ŸœЊЧЩЫааФКЛВœБТБДОЕ”ƒ•ЊФОМКЛИИЕККЕЛЯе—W;015?@?89>:@?EI41FŽРЇ—”ŸЇРДЦЦФУФЦШЛЏЅЇЌЈЉЎНЁЉАЕСУЦШФУТРРТФСЦжп›L;3A<:>:?<>@JGLE38eЊОœ˜›ЁЏ”—ФЧЧ€YШФМИВЋЌЌЉЋАВЏЌЎЎЕНККИНРНТРНЛЗейŠ[TNE?EIHB?ABEEGG>>J…‘’‚‡žОННФШРИБЅЊЇЇЋАБЕКИЕЕЗЗДЏЋЊЏЖИМОЛИТЫЂVFPVG@?IFAJMIE@ETZHhЎЩЂvV`b„ЏдФЪШЛЃЋЊЊЈЋЏВБИИДЎЏЎЋЉЅЉДВББДМУРдгž[ABLH@948C<4080>AMYmŠ–˜”…ЉЎЅМцС›ЖЎЅЄЋЏБЏЊЋЏЎЎЇžŸЇЇŸ‘ЇЋЋВЗНЛДИЌg09AF><7378950250(;eŽ›ŒŠzWcŠŸЊФЈВЏВЎЇЈЎДЖЕАБЉЁœЊАЎЈЇЌЎВЗЛЛŸТВ—iFJCCB?5075::51849Oœ‘—ŸЌvm‘ЊЄ”ЈЌЏЋЋЇЋБЗИЖВБЕЅЄЌДБЏЏЎЎЏББВЖЖН̘^7+BEA;ALGH1:5:>JdVa’Žn‚Wh„„jœБ’‡žЏ˜˜Œzgqxƒ™‹}’…Ž{n‚ЄЂНБŸЃ•nn|ЇaJGM@I1+2HA3‘qwˆ„‚zz‚Šˆ‡‡˜ŒŠЕБИpqkjmdke~ŽŠ‰p|zrv`]x„–——Ђc}›пЌa^GJNE;CBG<,^ŠŒ}‡„‡‰}q‰‹Œu™ВЭДˆriŽŽ„—ku’~tp|ovxqu}h’•ˆžz`qŒЗc-5AF?4>NIH40VŽЄ~uƒ‚~‡‚‘ˆŽgdЁЁ’‡„‰˜œ‰ƒ}~Ž•Ÿ—‰wƒv‡ŒƒƒˆˆЎ…rŽœ•T9AAHLNMIGFCM>9+1VjgYH5pxސƒ~ƒ‡ƒ’•™ƒwŠž—Yu’—Ї–„Ќ‚‚{|‚v`iˆЋС|QF@IL…}|}}|}vŒ‘Ž…zwzЁv~|™•˜‘ˆ”ŒŒЃБŽu”žЄiSVLYVQGPE:ACHCH;ETLSwŒŠ’•…nbŒЊ•КАЯЇt`e„Œ‚„‰„iNc•xv…„ƒŠ‰‘–‘”—waqoh]W[@GPEHJ;2@9F]~ЌЇЁ‹qjWd„ЌЇ˜Ѕ„}Sbh{~’‰Є…i~zƒ”‡•‹ŒЄŸˆ‚ЁНxNQ`Z[ZPMIOSNIGBIFS‰•Ѓ”Ž”qЂœ•ЉДЩЇ™—}h}—…ŠŽ…‹’—Œƒ~zzu}„‹‰mˆ–cFOTWO9ESUMHLFJkœ‰’ˆ~r—›œЁЁБˆqˆrjaŠЉŒŒŠ‹‘…‡vkzvoŠŠnuvƒ|>1GLLOI?>8;:JFLHUL;>d‚ЕМЈ‰‡Е˜™”ŸЂЋzxtqpU]{qkWt‹oimmo|{onvŠ‹b3*CJHLLFF4HII7ACMB4uœВЗЇg\Ё–ЅЅ›—’Š‚‹‰—‚pwvuŽŒ‰‘’—ƒp|~|wq‰Ё’mQOCLMHLIBHFEQPTMM?A‰~Š”|nWPr”ŸВЌ•œЁВЇŽ‹’}n}‰…‹’–œ”~{}xnjggh~jLMOZWTSTNIGUSQMSHJ>PƒŠ™ЖЃŠ–ДЧнйЕЇМˆqNF8>b~‡‰ŽЋ–ЂЗхшпТЏЄ–Œ…k”Š}…xgj{w„„~ƒ‘›—‡’ЋƒrzhYY€l\]S3HB34FHToxuqrˆ‰Є™Ђž’…‰Œ’›ВД‘Ž™’Ѓ›ˆ…’˜Ѕ‚ƒ‚‰‹‡‡‚ЂY@8ENQPGH<>@>1H\vЈ›’˜ЂРнТЊВЖ•nˆ}}‰zq|ˆ”„|ƒxu`jnvx~‰‰‘pGGOCIGHFA9>@VEB28U|hOЂЇŸЃњўс’Š•wp|}~|„Š„—Ё–‡„”Шœnbu”Ќ‹‹›А‘iEGJSNSSILJF4HOQPG:3QŠЇЗ’ŽшюИ—…|~v~{wt‘px~‡’ŽžhQHЄ…ƒx…›Дžh>(4BLVUUQLJMOMJSNG5IqpiЇЃœ~xЋЦУЎ{xŠ…„zƒŽ‰…„}v…ŽŒƒ}‚du}wux„Šž‰UFFMHPOSL?>52?IGAGMJ^dTU›ЕЛБЌЏСЊ}kƒƒ{|{‡ˆ…‡……ˆ~‚qntpobx‰ЊŸuF>NMPWV\VMFH;GCHFJ;1U`dk—ФФВЅЇЉЋ–rour}‚‚‡‰‚‚‡‰Ž‚…„zpz„pgЇЉ˜vQ@;HLJOV\WJ891778<22H]IFkВйпЕЇЎЩЌj‚}vqu‚}‡Ž„…{gmkbxˆ}bp‹•kFEPFHBFFNJF<@IJIIE8Bqj7M~ВФНУТЏŽvqtqtx„{‚ˆ‘Œ‘•’…uuwxwwŠ…~‚ŒЊЎtYb\OLC>?IJL9FJLJJEHZ…wWAe˜ЁИР›ЌБЃ‘Ž{tu{‰•‡‚}‚œœ•zqux‚ƒ…{ƒˆ~V9+EVQOBNMIN:>B@?G4@au^[hh‹Ÿ›„‡ƒ{…‹ƒq{~vŠŠƒŠ‘”’Šƒ~|vrwzxvwƒaJ;S[^U[QMEJABHIE5*>Vecd[LЅЇЇ›‰…|rmk]arz~vŠŒ‹Ž”ŽŒzrv…ˆŒ‹‰œ’x]A+PQUOYUOJHBFCHTW]ioc^okQЕЗЫ؎~ˆ{]c`’…~z^TShr‡”ƒˆ‰…‡~‹ŽŒˆ’•kTSMSPZYZVJPJF<:E@+2[aS7Tv…›ЇЏФР‹{~ƒvWvƒ|utpqrkZezx|~}…‹…‹˜”xGFHPLNUTSFEAA@F;4.\cZMJNe›•ЃЗЮА”}urw‚}‚ka]jwvu{rmr{~А‹ЈЏ…N`UFCHLICFEHA@CC@EEQ‚–„g^VhŒ•žЄЃŽ{o}ŠŸŽ…o|ogqv~}|u~Œˆ’‹‹„uŠžg());?AG?GLOMI4;EIQB?evn`]abŠ–ЅЋЏЂki[a}НщЮЎ~}‚vŠŽ‹‹•”ށ‰„‹МТO@>5JINFCGCH>2?:88Or~upcbgk”˜ЁЎСЁ„eNrЅйлЋqbdkƒ—˜‹~ˆ”‹‚ƒ—Ј•rP5-8AHSOLEIFJ>7878Jbc]bYadw’”˜ЈЁ–‚}~r}’x}…wWWexŒŠŒ‰„‚|x}ƒЁЌuLF7F?GJJHBB7EHHA,3Fr…n^\dt‚|––ސ•’ށvjmwxtt„cm~‘–œ—˜˜’•’Œ—‘ЇЕˆM>?ICNHOGPPMPNA7(9UŒŠcYZcz]aŽ”–ށzvzxuz}{zz~‚‹ŠˆˆŽ‹Ž‡Œ„ƒЉЦˆSQQSJNOVNPJLEH?13+4^`YUHJNeŠ„Ž˜™•…|kwqvzzz}}…vxz}|ƒ‰’Œ„œ|J?ZgUISOTTZQOBJCOUHL{oHGB$*#$&4JWdYN?*-Qbvqgƒ|z{xz‚|xti]eq}|wtv~ƒˆ„‹•~mUFHZETCGFABF27<152?bdY[ion?C]qj^gpx|pwo{~„~|{~qirƒ~uxxн~…ŠŽ{S<.IHJLUQTUTFECGLGTq^Sbhi{i[`uџ€цFIIJA+5<59BJ?‚˜ƒipkMijT8+3(8*45;?1&&)((##)>9)5B<:+9BC<+!HLMMI5;AkZYc|ž’tz™‰x~ŒnWLP;2?1,03:!*"$3(+27(.,$+<;)*POBGU-EkUAC^}‚rZ[do…ˆr…Љ˜ŠV5>HU?:. +>1;3*)9@BCB9?7&%!toI+&#?WGJwhd{zgjˆptuqvum]w‡mV^mmE5?2&!9[A8(+(Q<%0JI9)&1*$,.""$@GV‚Ђ‚kh`]einppo„nMYrba’UMVSL2I@J;GE?PjNM34*#;Y<3<:@C?.ETO8M…~jmon‡bYikx~ubhЂЎxi]qw;EGP^[Lb‚pun]S^]”›YLQEL\SB :7&,CLBGŽŸm]WecUmunru{…m^`Œ•ˆЈЛƒa]INP\hQa[SGYen]JojƒYUVVz…a[AT@AA;GQOHBЅž]cn`c]bmqiv}vbYj…k|Œ•™‡TexrhVYccGYgTc^YVJN[„™Œ”ibkmN8HE5@UF>dpO(Qa^iianwcebWVMwЅƒ{„Š—‡|ƒ‹nhccz„|qiYa^j™˜‚‰‚ˆ`QQtT>I:7:chjgmbQS!IGJC^‚\vДЋLY\bgbcVbPScSUƒb\pˆ~}rikmmjv‘tCTYL>:eed\YM;eg[^T<7:\@NMN?.eЎЌ’||}troggkvq[akchq{ЄЉ{jb^`T[gjordMQNQ`cc]YQavTUWoW]jk(JLECQƒcNjtkrpcL^{’‘•‰PLiz˜ЉЅР‘ˆ‰ZGjppnv{mzvMH^cmeknjbmphZVaaj,8>#2ƒЅž}p]d~\NNqwibhg`?iv{™ЋЊqqzLNUrŒnOaŒtv|hVOAQeenpk[>JFTO*0AASz”‹|x|hZH:Gav}u}n`ctvo‰ŸŸx‹‰‹^Ecx„c@?M^YYVZZUrm{`BP\kdn{gdxLgE\hdaiokecTFFOM!CgrgbcVF\U\c]S2@h|gOnrŠ}z…‘™–{`ZVccQBZ\NM)-o‘„x‡b\ggm‰uOTWSm?ohc\rpqi^TdnkiYg‰zŒ}\YZUYb`{’nn|rddrˆ}pWn‡dG`mJ3\Œ‡uzdELPScENTmpqmqicgjomuccjcSZUSCiŽŽŠЉƒ‹”„ntŠ‹˜Јž•xMQYYUML]qgƒcAJaTU\eYM[\kdhe[cionijhbmm[WN^SOvrœЈdWb]E9CEE€)(FTMQZJM7JajvuU,;PSWT[\xbGMnromhcjh\YO>MZcahebYgouŒДЄzjci]QWhunLp’–qG3@?*Hgojaoia^gqrn[J|vng^gu~uhŠ”tgh`gbcaOGqЅƒxmkcIS`gaYOI^cQZrtz^T]Y^`nwunpgqqu[iowrmodiqtnq}qpe^jrbYVhŽЁ„edup\I>FJH][7B4La`wurrti`aitrwn\\mpc[eihqwo`ukhdgjWVIYoop„‰ŒoHM^aU@INJMZ\QB3,,Gqumtvnka[]Wgmd^ahdjh[Vguxhmojx{{РaT`Pi~„‡Š|ok\YNCMYWSYchF^iw~dV\[Y}|b\ZYj^bkpqNO]ouokgkc^dj|„xjagg€–nqqu…ˆЄ‹x{mNTq…OE[i\Qaig^WMC3:(`omutpmprpxtteZpzuYE^xobQTdŒ‘uonph[be[\]ntxwmggcr‚ŒˆkJLZSNHMO|˜•bqrp~˜—]t~p[[hnkjjeadecaZMYmqea[S[gkmqqr„[E+Aiid`ZnxtkQMcƒ•ŠbQ^]r‘—Ždbcdhw|tdZ^hppndci^jxnb]a[Zbcmrowxb*1LLbkb]QVcnov~cjmmdaNm‡ƒŽggbgijaVMO^pe`^dchnpv}qe\igiirumnomYaia9HZQ3UЁБИВ\[dY[b^a]WAIIhicjmmq{~}wngn{{j[[^egeWUH>;Tjaagj^CBLTj`\ZamƒЃЈАФЩЯGNVTMSNHOBUUVЧчЦЕАЂŠŽpJMBWIPQLIOQIA0143;BFNGBAGOO€^MLMIIHQMEFC:E0IYN4HHJMNCBJPQYZTLCA?<qJ<%#@A5MbmЩУРДАЗКМУОНЛЧЦОЕ‘ŸЖеЁ‘ОюйЇ—Œ|kpxugdaZtŒrhb\N3@OJAFBHGHGLJLLJJMJI?B<)Yige[^L[wnutˆЌ™‹‹Д™ˆ‰Ÿ‡i]gSLCABLOO25<;4<>8CL428C8C:MHH5!VVNPB788imY`aN1Y„iQ^w›Ѓ‘zmmtŠ—ЅŒФЉ••hUY[aMSJ875A+M[H5GNEJ;AEUOTVV[QIH@<aPCF7Pog`…Ђo~”—{{›‰”Š‘ˆ‡p•™~`o‡ƒWIMH4CQpUQH@9gZIIb]S:;LIF728HH4*1>>T]oŽБ{{~ƒ‡–‹ˆ’•ˆig…Ёqm’ДЄqcte[EWLYPYUBcwg`TPC,Op^I7$@MQ[]SNQjhH]‘—ށ„{xœ~|…‡Œ•ŒzzЉТЧwjz‡PS]binatŒ{‘ƒr`itЂЇ\VbPgzeW*0FENJHTWdMYЁО|mu}rowˆ~„…‘ŠjjЊЈœОШ‘onacbu{num]gkwxk[Šuœe\ak–|nUgIOLL[\ea.JЛАq{{€ rpz|~ƒ”ug{’|ˆžЅЉ”\vˆ{ko{r`n|qtkit^]j–ЎЂЌ…wZ7T]UMVn`L|Šc2\iqxrzƒ{{}ng„Е›…Ž•ЁЊ–‘•œЃxt›–‹zqzvˆЌЉ™œˆukk‰g,\[\NOOSQdzvednu}{j]it„„|w]i–œt—ЌМЅŠt•Ѓ•jŠx|Š‚kjkgejbPVdŽŒ‡eYU%HpT;Cgpƒ‹}~rgimqgc[o‡‰wddwp‹ЇЇ{ZHgp]{„‚ˆ…meccaVbaCJrzz|}uc`2HNiwzgЂЄ‰Ѓœjzwviq‘Јž„|x{–™’”Šzh`Utwi\[”Ž‹„|zrnpmnh{|twkohO‚LVccOLT™Љ™ŒŽŠ‰‰‡”ЩВ‡ozx‡‹‘™…dŽŸhQx‡}pqd]Uah\^P\w|T&-[]gWttЪМŸ\iru|vmqxbd|ah’xw„˜ˆŒƒ}~x‚‡Ќ‰bit`QJuxnakQ5I~mqnUNSoWkeeYGtЩОЌŒŠŽˆzrx„‹wnuz|~Œ‰ŸБД„zonir|‰Š|b^]ghttxpcr‰nkhz`kx|8`bYUgЅ•xaw‚~ˆtguЅЅЇ›ii˜ЋРЛлЁŽœjZƒƒ~ƒ~ŒbViv{~~‚}}{ƒwhbmx{GLJ5G›ЛБ|~|‰hjg~‡}q{{qP‚ŒŽЁЅСР‚‰cbg‹Ђ{`iŸ‹ˆŒwkinev~‚eF\Yie@QOS^ƒ•А–‰tu~Š|j‰’ž›’rWi‚ЇЪѓчбЪЄ‹VWhox@?dœЇ”‡ˆ‚…ˆz||…‰’z^aY`enijNp˜’ˆ}tt}qJa–’aq’ЖУОЗЃwg…ИЃqa…^QjhavYxˆ˜‘ƒ•Œxchg‚vqwk`x{|xjgO[‰”‘•‹…}ƒ‡™”™˜–Є—…|ЈЛОеЎcbqn^Za]Tˆhu‰tv|ZBIhŠwnprxx}}~S`4]|‡ž™‚œД|`kuzŽŠ|co|jx‹Фа’hoƒ…ŠtЈЅ‰rkvqonmjGVSomabn{~{{uzwrFTg–ЋЂ‘”{uaOVz‹ˆ–rr…Ž„—ЛВˆžЃžeSo‰qFYrtnnmipi~zŒqOUb|}~‰Žvu‰\Q}Ё•Ž‹ˆœ—ЌgaQœ”ŠŸ{Imt”œЃЁЋгЕ‡|uwa]|znh[cen^w|‰’px|w|~‹YMGEE@nŒˆre^kŒ‹{do{c`‚ЅЇ~VdpkŽЌЎЋЋ€цž‡‚~v{ƒq`dgegc[]uZo{ut|„|{vaJ\b`?Hq„rrtmhjoptk]MZ~•}bx{ˆŠЉЃЌЋЄ‰rmozjBMrk\WJ<Є—‡•htw~™‚^^hexO}‡rz‰~ketƒƒ|iwЃŽЂˆigp`arz‰Ÿž}}Š}}{ˆЉ•~oˆ”qYz|U?Lo™Ÿ–Љq]cabv[ke‚}„ˆ„tn{‚}}qr~|mnkcYЂŸŸИЂ™ЅЈ—‰‹ЁЅОБЄbarpkc[a‚|Ž™nS]vmikzkbuktw}xttwz}|}pqrjdke;\aj‚SUSZr{‡„ˆ‚~}}Šˆ‡}k‰Œk]tŒth\^rЇБЁ‚„…‚{mpjhx…ˆŠ‡vzƒ‰‹Ÿ—{W^ec^bWC\e‚”ƒ„ޑЂtp‰‹{‚ˆ’dkŠ›…tnh~Œp|wtzwrtoiu‹…•–„‡‰‚‡ƒ‚\agtkhoru{|qdzœ‹‚Ž„’’z’œŽZrŽ‚zxˆ‚~wrpr{ƒŠzui„’’Ї‰Š{wzwzkTNYUeaYOT`{…~qum‡‰ƒ|`ONP8Yx‘abm„…ƒpwwqeorz{uwŽœЉВЄ–Ž•Ÿ‡cijnz}pjmwk[ZaqnqpjccprdOHIBOA[wŠvqw|„zru…ƒv|xz}}wƒЄЂЅ••‚qvuq{}nnv~odjtjt{qo]MYuxciŠŒmSG]z”enw~ztvƒ…‚ƒwttxxzxrz›ŸЅЄœ–Šrmp|z|`^irnmmux{˜ŸЋxutv‡–{Y`qr…‡w~„utrw{ˆ•Ђ‘}|owБдЄŽЂ›™‹zt‡‘”jBPSTu}oZJSn~‚ˆkZ`gi@(Iqq…›bu‡Œƒ‚}r]Up’‡Š„}|Š…‡ЄЂ–—œ‘}ƒ—{{‹dN[qvb}‹hmp|w…\`][a[P?Hdhp…ž]t„ˆd`daTjŠˆrr‚‚€ДЏШДНc[VU[‰Žk?SSuˆ{–ЊŽ{vwwwurn{iO8JuŒ›Аb~}Š™e`ajp~ƒ~vjj`JqЄЏЋЏˆZJap‚|zw{~trmˆ–œmw}{}utvxj]CUH>a‰ЇН’Ÿ››‹mnwtvxwvvtruqpx›И›’ˆk\Qbz‡xz{xout‘Š‚x‚{tx|vrqqm\SU[UZh„ЏФn„”ЎŽemttn€Ьrpuvrrp`˜•Œ…ˆxrii^q‡Œ‡}|vh[W`\bnr‡ŒŒbidk„‰]PV\p’Цж„˜’˜kxw{~xp`ktztu`d~ŠŠ„}}~tvƒЁЂ•Œˆ~Œ…\ITedqz~ŠŒSPg’ЎВ”zˆ‚‘ДАjŽŒ…nqp|x|zwrwvxtdZo„…z~nur{zzƒ—ЁnT>9Nuvutu„Žˆ|[^užЂ—o\qp…ЁЇЅumpov‹‘‰wjiv{{t{{|ˆ|prrw€њv~~‚Œ’q@-3Ndbjtupgnz„Œv{wvqrk}—–Ђvzwvu}oh`bp{w{qtv}~~…Œˆ}tx}{zˆŠˆ‚‚|np{rNYdhZckou~„‡ˆ‡zwqpm^–›Ќ‡Œwuz‰‘…de‚|woir{xpr|…‹Œ~tvuw‚„|nbgckkiorwx|zx{uu}ƒ‡o\nk~‰ДущЯ„u|„‹Š‰‹…vumi}‰‰„‹‡ˆ‰„~qjkq|‚~vjZW[be\Y`koz‡ƒnqnor|e]?bw‚‰•АЊŽ~zvoqjtx‚vvpjhot|‚„„‹‹Є|wrrkh]^e`]\dp|tdzwahnqwqpkjcg`cn‰{i}ŒŽ™x{~{nhirxzhhkmjmtƒ……ˆˆ‡h•М˜ukmjk\akqa}ˆ~~twx}tuu€иd`jrkhm’ВДx{{x{ommidcgmkgkv|}rruzqb’Б–Š…rmd\ivrptpjuw|uppq`dtwiciwvhYŽгУ~}{w|qxnjdgcokjt|‡…ˆ—aWevr{wwnjg~”ƒrmo}{ƒx~trkcZaoxmpƒ„…r›ЋЄ{z}z}‰ˆƒ{zxwiktwx„Š‹‰~rp|}‚ƒ~i`m|{ocik’{ppd][aurmei‡›ЄžЃ—›rvmmr}|zx‡vpmˆˆƒ‰‹‘ˆƒ}xnw}ˆŠ‰ƒƒutouqihmww‡ŽŸƒgWQ[qvuecPG\‘БЦЫТonmqnz{rmg]YTx}|x‚‡…Ž‡|w}އvvqxwtmge^Mc~|x~xiNQYn{oot~”АИЗгкџ€s$.<3%;3;**,!*&9;;3)"&40*31),"-.+3C@.41$7+"1&*99#2@C&(-!%3*5C5@0#%?A%72".78$,-9<;A>2*+15-*0<422%%#)13.0.+#1:EC90%28:3,+*8?SbmN85IF;3?FTTOE@?<74I<,11,2`M(37.5);:CIEAHBAOQW<@MJGIGJLE@FE44*4;BEOLIFFMA+*@]MIISVQ?*)%amh{`QA7MZYZ]o^B4SNL7(+1.B3&Ac`ZM3@)(4?>EB;FHB9-%7C>+?HPO8@A)JHzgj‚uto\ezwn’…o…vˆepr‘ŒF0]t{|Ї’SL|zJF>QEF0845AT7+Aec[Wgvtp{Љ„|žЅЁЇЅЇАЈЈИ˜zz…ƒƒ„~ŒŽ”‘‘’AZ~}}x|w{kžЕЎЉЂœ|mecdZE12IZimjprkk[vŒ‹—Ÿ—•ЎЭФ‚Ut”‹|~ЄЅœŽŒ”MYŠ|tv~v{™™ƒx˜d{‰ud[^m‚j\45;S`rp„Ё˜™’•Њ‘‡‚}~ŠЏ•„––Š‘‰Œ”oeZqrq}•–•ˆˆ‘ˆvx{…uhnwn[WUP>\iƒЂˆ~’„”™‡ŒŽ”˜›•kuxu{‰ЌЎЅ™—މ‚‚v‚putqt‚„ˆ‚|„‡|z|jYTetkMZYTPvpŒНЅ—›œ–‘‰‹ЂТЏƒ‹‰‰{‚—–—’މ‹Œ‡w{„‚kvƒ‡ƒz‚z~}‚w}k`om^heTHbw‚…ˆ‹‘‚Œ‘‹Œ‘™ЌИКЅrw}ˆux„ŒŠ|t…}}Š}}xvrx‹‡{zzƒ|urnnkgLAFPMIctxwzv~{ƒqŒŽŽ‘•‰mb^ioxzuor…—•…xuzId„‹‹‡”ŒŠpw~xhhuv{tjuk^OSLV`ohvzizŠŠŽ‹ЃРЅ”›Œxndh‚˜”‡}z~Œˆ~~{vŒ•ƒ‚›™›zokpkkgmrqopgZ]SNYeZ[owq|…‹•‹m––‚‡„‚ujSk‹‘‡„ˆ˜–ˆ|”ЉŒŠŠƒ~tqui`drqimgc][\tr^ijW[`|ˆ˜~ƒ’™˜‹ŒŠz„{rpЂŸ‹{{x}ˆƒWn…‹ˆ‰ˆ‰{rnhhmjrwwnqort{|‰xikvmix‚„ˆŒ‰oŸЮЎ”–’‹‹‘‘‡Ѓ˜‘~wz}‹•Œh^w…‹ˆ‚}„’hb^jkj|uokgNЅ˜oieeozpe^w„‡m•НДЅž˜˜Œ„’Œ‚{‡‹”‰Š™ž”Šacwƒƒ…˜Ё’vdgipjSZQbŽ‹{oj[MGZV`jtx{pSp’ЁŽ‚ƒ……„ƒƒz}„…—ЇЁŽ„ˆœž™{w~…„|~„…ˆuu€8xrnjZOetZdpxVH^pxxqrricg›•Œ‰‚xz~{voww~…‡ˆ•™ЉМЗ›xˆƒ{~‚xmu„‰xtroi^V[Q7IMpˆtjb~…zvtu|~zƒ”‘’Œ‰ЈР›pnqv{„‰‚ˆ›œ–‘nvp…Œ„zuqhv‰Œ}mnqnij`]]QBO[aNQrbeov}|nu”Їˆ‹””Švƒƒ……ŠŒ•‘žЎЉW`}˜–Št|‚Ž–Œ}xpbbgeZWQ>HQ[WUW\[hqv}Ёi…ЌЈ’ŽЄЎЛРЎ|xw……‡oGNtxju{‹‡…‡~xƒ”‘„vqjqje`ee^W[N-bopjpuv\r’ЄЏЗСДЇŸ’p‡Œˆ}Œ•——ŽcVƒ‰Šˆ{‘Ѓ‘ˆunnЇ~……‚i]qm\NSgmhg\G;@`wp{xzvwrmjƒ’‰—œЅ•‹ƒ’Œ—ЄЋ•ƒzx‚Љ”‰ˆ˜—Žuurw‡”•tn[QIE\`bg`^[Zrovƒƒ€?|ou}ƒ„Šƒ}ƒ‹•~~ŠЅЄ•‰‹ˆƒ~~‡v~ž•ƒmqurr|‡ui]E-JOWWTLPFFPWZ`\^Ÿ{qxz‚‡Š˜ЊЊ™‡rmp‡›‘{unmjhkbiz’Š}|zrt‹„g}ˆrdcbg[JPVZOLV[`Q>L}ˆpjx‚ƒ‡uˆДЌ›xtq}ŠŽ{qnmq‰ƒNa|ЕЮЇpjki^mxzjbge`aWNLEMSZ\YN]aY[]hju{„ˆƒ}umИЕ’|}„Œ”‹xvutržuНЌ”S`mjgiqojemwcFBNQTNIJLU]``iiad‡‹‡~ƒ…zxwk…„wv„ŠŠ~|x|‚Ž‘ƒƒ„’А•jjimnt|pYanœŠP&-)A*A\p…jYcahvv€‡~‡‡Ž™‘ƒ}~}xtxrv‚ˆŽŒ‰}t‡‚‹•މtqvz~ŠИžc[PWqqcng[OUkmkmi`Ypnz„„|qwwx‚…‚{Šƒutvƒ„‰…~‚ƒ|ov…IuЁŽzmi{‹‡u‚qUWPFF\TQN?FJS\\`cZb‡Љ‡ˆŽ‰‚‡’’‡„‚tnmmgk|…‡‡Œ•œ‰‚Z„uVJbw}zqjj]^M9NSVeiheb[hbVONZpuu}u~…}„ˆ„…~~qmimhu‚„„‰˜Ё‹‡…z~ŠА’qmnvuqa\YTTYSJTUPbirmmni[VO`gx‚umivˆŒŒ‡„~{x‰ˆzvgcƒ…‡‡zutŒ‹{pv‚„jZeigcWSZZTUUac^ZZnthgn‚{xrekv‚‚ˆ‰‰ˆ‚{w}}‰‘Žˆ‚vnwƒŽ—ˆ‚|~‚‹Šw}„xob[ZPEMOYZO?\dkpdcggtŒ’}zƒƒ|w‚ˆˆ€:|xwrƒ‰‡ŽŠ‰ˆ•—‘Šx—’™ž•ƒ}vqtqx}voiW?UNF.FemwmbZYamtruwu{xtq}wz}}xuzuˆw‚|~…‘’›•ƒvttqmgopphcVZVI5$ %c‚oukjpxzuogj{…‚z~‚zr…‹Œ{{~z~|{okrx„Š•œ™…qmcprthgke`bcNC^gTYSO\tpkc^M|~~root|}‰–’ƒwx‡„||}}z•}ajtŠŒ—ž”Š‚~}‰‘’‹zvzzwrWd^d`[ioqzvq]SQuŽ‚nijt…ŠŠ‚vt|ˆ„…ŠˆŽ–—œ›}j{|{ƒ”›Ÿ‘ˆ‚ƒƒ‹‡{mgjmpuxvnucTJZanqpmp„Œ‰Šikt~‡ˆutrxƒ‡‡’œ™•””œ•}zz|ƒЉЁ›‘‹‰~~|vptqkigeeainY\`ZT\hgen}}u^JSoŒŠˆŽztjuƒƒŒ—‘‡Š•ž˜‰~…‡ˆŒ’ˆ}…‚uhaanvt`SUWP?CGFMewvijvuopmb}ЉЄЂronirx„ˆˆ‚Š•Ÿ˜‹ˆœž”މЋ’Žƒx‡~whbebjm^^kN9,1AYrtphjinw~~vt~”™’˜{xxz~…‹Šƒ…–ЄœŒœ—”–˜œž•ŒwpddacdigjgL1AMdrhheb`k{‡~tpnt{{€Uropx|„ƒ„‚~‚ˆ’—’ŒŽ‡Š—ЂžЄ‘„„}~ppmb^YY]L+ (!COdpmjkrztpww{}}|xwquwv|ƒ‹‰ˆŽ”ЁЊЁŒ{ƒ’”‘–‘„…Šƒ„ng`hha^mpbOEJYVJLdpnnvuruƒŒˆ‚ˆ……pqjntx{„ŒŒ‡ˆ‘”•™’މ‰‹Š˜Ёœ‘‡ˆƒ}UZbhh`[WWM#0$!?FP`cqvpoiqz{Š˜™Їˆtv|~}}~ww‚|„ŠŒ‹‹‰Ё‘‘–˜›…ƒ|pehjgd`PNB(7TNdvkozntxvrnehvŽ”›‘‡zvv}„‡v|ŠŽ‘…Ž‰„ƒ„МЕЩтхьЭ|mbEAG^]`]`\C?OZo}tmw}tvx{phk~™Ž‰~wtt…Ї”ЁwŠ•‘™žŸžЄœœŸя70:EGEBAF<N1FMW@;<<>HHаIG?JINSEEGPNIE@:7@E@@CLFEA<>:<>AINPT?.BC>FCGCAGEE€‹A<89@AFHB>BJIIFIOU]\iQFHAHHBE<B:ALPNGHEGBNLJIJJQQNQ]|ˆdLOYYPIFWY[ZVQMJHN]\IGH>Er`MNOQOUQVZVTT[QMPPTQPIGNOLHININQOMJJQQHIQ][WOW]b\\YOW[`^Y@WbgjYSTFHOYVMS[cedPEOaWUSYdVMW[[UWTSV\[d^JTIJOPW^`YUZYNI898TraVYei]POHHЌБЊЇ—ƒx}‡‡x~’|W;WukaIIFGSZ4:GH`}uojVV>GFGMZJG9?9@HG:C9C>9HF?N?PYUOPA@<@@FGE8JFMHZFN:MS\:B.@JQAFAL?HUVWNI?MPPJ839BGIACLQA99FH>:QOOSWF3HNNMOQBIJSIF?B:BGLFQ?BCFIFHLSZkdcNCIJB@AAFBEJSECJUEIJT>8-8FQV\YQG>NNTVQIOMJO9EFIF5M|4BMSPHNJOUYZELHLIQOOAE::GNLLGJ:EHU^{ŒhIN[\SOQ`jk`^ZVY\PdVTMUHSn;GGPPTTQS\ZU\VZUVNMMGJLUCEC?9[e`]rnmYPNCt‰ŠvdVNZgbiq‚rI2Ud`UJ7?AGT33BAP|reaQM@?@Tc^TZ\bPOULL[UWU^jcOTQLZaz‚–„„zn}›„„Є—ˆ™‹’œ™k|›–JFv‚ˆ•КЈe]‘Œb^S[[I€ЁCPUtTFOkpc]dkZaZVaw}rot}މ„’Ћ”q™КЖj^mmvn‹z•ŠC@zŸ‹ЅЇ——…}ŸЅЃЇ‘xoЈ–~z|‘|ƒЊЂxw}dkk]ur˜›˜™ЄЉЊЉ”[‚ƒ}ˆ…cdoSdtЂŽˆŒˆˆ’ŽЛНИ™ЊЈЅЩїэЯбЧМЈЅЩдМŸŠSW[\dvi‡–›˜•—›•ЌбЗ›|wƒwtH)[‰Ђ}|Љ|‡‡„‡‚’•ЁЂЅЂЌЋrŒееККВВЋЄЌ–„ŸžwNq„q|ƒ‚|~‰Š‚‡ž˜ƒrx‹–œ~qzno„d|•„Š’Œ‡ВАЅ—ЋЕДБЊЊŽ—ЁАЋВЊ˜˜Ђ™”iƒ–Œ}~ƒ˜›ƒœŽ…‹‚‚„ˆ‘’Ї›exvun>wЎ”Œ‡Š–Ž‹•’‚ސ•ЂЗА„‡ЄЈЗЮЛЎЃЁЃž‡…ƒxpid…Ž’•ЁВЕЂЊЋ—„’ނޖ–‹qxwzƒeЃЅŒ’’•–‘˜Є›”žžЂ’u…{~–ЂВЦЦЂЂЉŸЁ’|vuoqh’ЈЇЉЁŸ™ЁЋВЈ—’–Ђ•˜Ÿoonw}”‡‘•›ˆЇВЋž˜ЉЌЕŸŒ”››~||x–—žz{…„z•ЅЃЅАРФЫ”…ƒ`ekHTvzkix…‚„…˜™’ЃАДКСРдЧОЫЎ‰’•‘Œ–œ™œž[p”•ŽŠ‹ˆ…xВШЛОЕДЂ”‚tunwb:BWnx~„‚|uŒŸœЅЌЗАЈБИСсдhˆœЌŽЄЖБŸЎWi˜›•„‚”„ƒЉЎžƒЌœv…žŒ‚xiu‰qgS>Pdo…›РЎЄЋВЋЋЌМЋŸБ‘Œ–ЉФЎ™ЇЁ™œ™Њz{pƒ|„’ЊЋЇ—ЂЁ–ŒŒ€кЂ‹}|Š~poncFoz˜О˜—ЋžЏЋЈŸЃЇЎЏБЊzˆ‰ˆ‹ЇЩЧЛВБЋЅ›”—˜…„‡‡ƒ—œŒ””’‘Švhk‚{^oe^e‰žЯЪИАДЏŸЇЉЈЄБФыУœЂ”ЖЎБЊЉžЂЄЈ‡’™œˆ‹œœ•–‘Š‹•’ŽŽvuzwt{uk[zŒ—›ЅЄЈЄ‘˜АЌЇЅЂЏФЧЫМ’‹’Ѓ–‹”ŸЃЂ™—™Ѓ’”Ѕ›’‘™›Ž…Ђ›‘’–•™ˆƒ~~vwe^a\\]o‰Žˆ–ŽŽ‰ЊЏЋЏЊАЅŠwpv”—ˆŠŒŸБЊ˜’‰‘\t™žžœЌЅ—~Ž”‰ƒ~ˆ‘އ„‡…rjk^er‚{…~‡—ЄžЁ›ОлФСДАЕЊž~w}ЛЎЄ”™žЄœ˜—˜}œЂ™—ЄЏЏАƒ„‡ƒ~}‚~„||xvhva]mtptq‚‚”—ЅЈœ”‚ЈДЇŸžЊ›ŠЅŽ{hƒЉЇžœ›˜ЃЊ™‹•ЂРЂžЂЄЂƒ‰„ƒx}‡{}uvmnhvƒ~zxhet•˜ЎЏЇ’žАЖЏЃЁЃ™‘•Ž~—НЗЄ˜–”™ožЁ˜œ››’~|x~‚„‡‘’~„‰…Šˆ’ƒ‚ƒvv‰•’™Ÿ™ВчЩЏЎЎћЉЃЉЉЃЃ€>НЏЋ™”—˜žЊЄ~qŠ‘™œœ™Ѕ•}tz‡˜’…zwh–ЛЈŽxxrzv…~u”™Ѓ|ЄегМДЋЎЄ›ЌЊ˜‘—ЇЉВЕЃ–ЂВДЇЇz}‹——œ˜ЅЊЄЊœ‹ˆ~kmdx”‚tx}edjkv}Š‹‹~aЊМЇŸ›ŸЂ˜œ”ЁЌМИЋЁЅЉЎДВ‰Š”’˜”•—œž—˜ŒŒŠ‰{xhZuŠmz„„aWuƒ‘‘Š‹……v|БВЉЄ•’•™ŽŽ‰’œ’‘ŸœЂЈБРЭШЕ‰‘›‘‹Œ‘„‡™™‘……ˆ‡whm[bg`›ƒwvŒЂ‘‰„ˆ‹•˜ЎЌЅЄ˜ЉМрВˆˆŒ’‘›œ˜ЂЉАЖЛЋЉŒˆžЂ‘ƒ„‡ž”ŠŠ„|‚wrqnQ]cpbm‚zƒƒŒˆŒ”ЈЌЄЁŸЅЉЋЁŽ’˜”––œ›ЃЂЈЋЖМЗjz•ЂЈЊŸ‘Їœ•Š}~xqnd\^gurinwxw‡…˜‘|’ФУЌЃМЫгзЦЃ‘މВЁŸ™„Zc…ŽЂЉžЂЋœˆŽ’ЅЁ—‹‡~ƒxu{zqnq\9>u„‰…„‡•—‡dƒЈССШдЯТСЈ…žŸœ˜ЃЋВАЁwh–ЃЂ’‰ЄЕЋЂˆˆ}{•›–tr‚wimuw{wt^NEqˆ‰ŒŽŽ’Š|›ЋœЈЌЖОЈ‘™™ЌЏЋБМНЎ›‹ˆ‘КЅЅ›œЊЌЈ…ƒˆ™žŸŸˆ}ric`qqxxnqriƒ…‰•˜Ÿ’‘‡–ЂЄ—–žЅЁЅ••€ ЂОТЊŸž™’”œž…‘ЗЄ–{‡„‚––‚xrT9>Qejhab`YYkptwtqЂАŽ‚‹Œ—œЉЅЈЌФЛЈ‹~ƒœЏЇ–ˆƒ‡}o|ŒЊЃ›Ž‰„~~’ž–q‹•Št}uxjdeimebipuaN\‹Ÿƒ}ˆ‹˜”›–Š–ЦМЎ™’ˆŠŸЃ—‰‚w|ŸœZjŒЪрН{u‰Œxuujhe]bb]edjhpwzqrt‚Š‹”—™’›}ЅдеЋŒ‘ЂАЋЄ—ˆŠŠˆˆЖЅœЭСЂmq{||‚‹‡{~w]U^dk^Z]V]tuxz}w}žœ”•›˜”‘‘|›™‘ŠŒ›ŸЇŸ—‘’ЂЄ’˜™ЉЖЂ}‚|‚ŽŽ‚htxЏ™a?SUNP\Qn‡˜‚{}u|‡ƒŒЌАЉ—’ŽŒŽŠ‰‰ЃЂŸœ—ŽŽ˜Ÿ’žЄЅ™‹Š…‘™ŸгДpgch~oxpdh|q|…~vk~}‰™˜”ˆŠŠŽ—œ•–—˜…‰‹’‘˜™›’–™›ˆƒ’œ^ˆБЅ’‚Š’—„—‚jheSVomje[YZcgimkbo—РЃž—ЅЃ—™ЁЂЂžœ˜‘„„|}‰‘—™ЄЈЎЊœ—›m”ЋŠobu‰Œ„xzmh\dhou~twupqqhkdk~Šˆ”˜”˜”—˜Ѓž›•Š„„‹••–ЂЏЎАЁЁ›œˆ‘œФЇ{ƒŠ‰„xikjjhe]dii€’rv{u}xpmkp{–’Œˆ‰…Ž˜žЁžŸŸ›”‡Ÿ•Ž|z—ЁЁЄЁ•Š’Ђ›‰{ƒ’•|nv}vtoginhajpnmjuu|{x•„~|Ž—ŸŸЁЁЅ——–ŸЇЈЂœ‹‹™ЅЊЁ˜––˜ЃŸ—Š”™’ˆ}wktb^Zbovb]gqoqv‚~~…‡‘’”™€”ЌЛАЁ˜ЁЉЁЇИН”}Œ’žžœœЗИ™””–’ŒŠŠ—…uquqorqh]Zaaiu|ˆˆŽ‚„‹ЄДЅЁ›•’‹‘•ЂЅž›–œ”ЏЎЄ™ЃЇž™–’ЩЕŽ‘—‡„…”ЅЖ„UWmumow‚{mdnwxnkant{~h„КИЌЂЉЃŒ’’ŸЃœ”•ВБЇŸ—•œЃЅŸ–‹дЗЁЇŽ}z‚„ƒzrjqwxwpjgdYdkv{vnjo~‹ˆ™Ї–ЂЁЂ•‹„‰•Ђœ˜’–‘ЃЎЛМЏЅАЕЗДЃ›˜БЎ˜•–‹‹ˆˆŠ‰ŠŽƒ}xkjmm`ZOov}|rzvˆ›ŸŒŠ’˜•‘‡˜˜›•’‰Š‡—ЄЂЃЂœ˜ЅАЄŸ’ЊЋЖЗЇ›Š…‡ŒŽ„kTbb]LU‰Ž|rcht}„ƒˆŠŠ‘‘‰‚‘”’‘–‰‰ŽŒ’’›’„—’’”–ЊАЏЇ™Ž…ˆ…ƒ‚‡‚…|unjgaSZF9<;JPQT@8?GPH`uqL@J4"+0015:@>?3*%#$., 0%7++;957&->FEA@A?EFMT\],. !##"@MB.3)  !$)-38+$%+;;IJ*<-CJJE30>GB@B<:8*)392GMGVuE#&!  )9<,:12,$;LHQS):?8917>FHLNLJO>N]HFBHEFAIneE-C%&.""#"$&#"%3;&08-:B0cB4FFINOOFU@12:J22@8>EHB895EQm?""!2),).((("08;B<2)04.2>^dFjz{rn[\t{gVUA3#0):A>;+(CGG?!## #",-0(00(12(982-3.am”—‡q‰ŠŽЄŒ}~pWLL+51;E73?EGSPGB! $$5*&23+1*zq}}x{|”|ƒ‘‰’˜xvp^UYW\UZEJ>E(&##   *SS4&587:p‡‚‰‰~ƒƒg}„”‹qwS^^O\vkЅДБ˜t}tG!%AZ>;I@ !&0<.;A??,0BHE>xˆˆ„z„|rmk—{{}njabozˆ‹˜ЈМЖœ‘˜m2+%3:82!#+31+#3CdNV\xžj`rkr„ˆxzwr|~wweu”Ž‹ˆ‰|ow|}w|…„œЋВА™•ЁjC<<КCG@31&&)-$)1, NŽ™–ˆW[~‰rtˆ{w~‚xmgpoq|‹”ž•ˆxq|‚{qoin’ЄЂ—Є—a.(1-48.##€V$0&Fwˆ—„w{{te`Œ}|…‰}jihtqoЁЁ™kb]Q?dr„НйЯŸЊt:;>5301!$$%#(*5?BHMxЅ‹u‰…indŒwz‚ˆ}voiƒni—ЫžŠƒ‡kT`ibz|‹ТЮОЃ{~c*;-1#&!"#+;AIk‰Љ„‚Š…v{x]hj^ur„žЁ‹|…œ„pnmrpiZqˆ—ЎЏОЎ‡z’…<(1795#"%.4,,0+72;0Ankeomi`honW[^m„‡ˆ›Ÿ›ЈЋАzotw|jb]gZvЁЏЌЛ‹„ŒvH;!..013.BA11-134oŠv}Ž‚qh\gg}|„›‰}dq‰œ˜’ˆ‚gequvt]Z|•‘Š–‰…zwxJ8;92-#25>;39>E@IG:‹}ro|xdjr……}„ˆwmrz•ЃЃŠ‡xjqwpq——›ЈЁЂЊ™Š™žt3>B8>;4<<>85:BFCI82q…hqzƒ‹‰œ„ondgiqx~}…™ƒwxuqr}{reŽƒЏВЋЋЉЇЖЂi+?:.+1309.J}‰|„‹ztmx„okt}ƒ–œЇž•zVrw‡}tqМНЎЊЂƒpQ%&&#%&482;;.,58W|ˆz~‘˜ŠzTjkmp{ˆ‹ˆ‡ˆŽ”œŸŠtˆ‚xpm{‘„’—’œ}jcEJ2$0*%*14#(-9,1YˆА‰rrx‚uw„ƒ…ƒ„…~‰‘‘›’‡‰ƒxvhxuwˆŽ”›–ЄМЊ~xgEI^84;&,3@B73-,33"?p„tquwur‹‡…v{p››Š||ŽŒ‰{z~zwz‰‘|œŸ˜ž•j];(@cL&,*12OHCC;749@8@c„‘‰wprtp”‹ƒ}uv‰ŸŸЇЁ‘…‡‡rnvqr{ˆ”—ЁЊŸЄЗЅ~Q- ! TB!*%*8&I]t~Šƒ„|rŽŠŠƒxrruˆ•ŸЋЁ‹ˆ„~ux‚Šˆ™ЇЁ—ЃЛЃ‚b<#0%$"!<+%#2M3"I~‹‚…‹‡ƒu‹‚|z…Ž•ŒŽ’’˜˜‡vgpruuЇЄ”—˜‘—•Œ—‚H!))#"%(?E>MEYHBOcƒ‡‹ˆrjœ‡‚„‹Ž‘‘‹‰Ž•‘˜ž—’ppw|xŠ•ЂЃž‹‡„wzeA;9++"&&$Q;7*%GGTmt~{Œ™Ѓ˜”Œœ•‡{~Œ™˜’–Œ‡•xupovmVmЁ‡‡ˆ{ŠdF?0,)%4*!:)0-"4Oi\ewЃЇЂziqžˆ{{x~ŒŠ‡’•А‰kipoonnot‚ˆŽ…x…m`T10B9)5$.27++1:8IG7;c~ŽЋЎœ~geˆƒw}}€й„Ž‹•ŸœœЁ‚Ymvxmbbt|ˆ™˜Š~|nii\B;2.35.,,0)+5,A03V}–ŸЄ–kcxu{‡‰‡ˆ‡ˆƒ’œЈЄЅbehevg^rwv’•Štmd`^V.*>>4*,;<:30)-4Ot—ЁЉœ—tjwnpv}xecc\^ƒЋЅ”ˆŒ‚v~ˆ``ghz™™ŒŠ’ŽˆŽ{PIQ<8#)49;7:?:>2+%>Bm‘—œАˆz{ƒ‚‰pdc|žЛЮŸ”•|zpmw{…whi`m•Ž‰‰‹‘‹rT7;5,*:<22%%9:;0.385?i–‹uxen„|u|ƒ~|}}{|…‰‹‹ˆ•ŒrHVekpr|„‘›ž’ˆkkb>#*4-%&%+,-39>B5,^•Ўƒ}„……ˆ„……}ztu{„‹Š}bcibgkkd\qЃœ•ŽŽ€Кgkˆk5,#%*.7799*,3;<92)Fmˆ‰~||}}{u}…‡}xrtrvu‡–’~„tc\ekihv‰‡||ƒˆk]ZF152-"%5EC@,&499-*HUxˆwwzuk‚|~z{~wpxtwƒ‡vv`EM\kpv~}xzzh…p?*&,!%,.&(!+.83EJA]ww}ƒŽxuzx|…~}xƒ‰Ž’ŠŸ‡qeejmgrtx~ŒaUbP>2-2,,#,.#*4-&5Aqz‡Šƒv…‰ŠŒ‰{{…‹ˆ‡‘››‘™‘oegccmtv„ƒ„ƒog`C#1.%++,,*#( :Youo{‰—o‚‚‘|x‚’‰‘˜œ’ˆƒ}`Betxvupjz…Š›РЎkZWC%++ .+&$,B\]huސ…[|}{{|wqq…Œ‹’‹‚ˆzzpkijx‚‰……‡‚ktwhI>:$$!%&,0$$%(%#$;[uƒ{t|‰oomgv„ƒ{xˆˆw~‹˜•‰‚z|‡~|ZTu‹‹‡‹€ыoz‹q71%#""#"*!"&*Eizvz„||Њ’‹|vu‡…}h]eQWF>GPHbŠ’‹…q\J[N3,".AWz’„ƒƒ{‚ˆ‡Ž•‘‹‚‚„Œ‘œ™’”–q^ogiaOSd…œŠz~zxkFCL4224)#  No…„‚‚}v…‚Š’˜˜upv{‡Ž„„…ƒ{zzti^W?`Ж‡rƒžJ;;$"#8d„™ƒ{|tˆ…„ˆŒŒ‹‹|nqv}ŒŽ…‚‚Š„‡‹rYho{wnq~‚{tmU.+$2*"48Uv„zvz|Œ„‡…Š’trwŠ™›‘‰…Š’|m}’~wrruw|{prwZ++$)(-$3Fj‹‘ˆ‡‚Ž–ˆ…‰Š‰ŒŽ‡{t{‚wx›Єˆo@9LZh}ŠŠƒtmrx{\.,(%01..#!$!O•Š…|pŠŽ…„}}‰Є˜|vpopЛШЛЅƒˆ………ˆ}z}{heY&""!#*(&%&-.&Coœ›…ƒ{qŽŒ‚|r}ƒttm~€?{u‰БЊz>2Tn||uzƒ„АЂuU*&2&(2<5Lixƒƒ}zu‹„|wƒŽŽ‹|wmt‰”’Ž›ЕЉzgBQnh]cq„‚~m^Q>1.,!(-%$+>BMd}|}tmi’‹‰‰Є’Š„vjp{zˆžЅ’|ow{|{``Sku}}|{mC&(4,#02)+0Pq‰|~{rm˜’‹ŠŒƒxuzz{}|x|~‚|zwxtr|ŒŒˆ•‘Ž–œ™‚L"&7%"%#$-33+.:J^zjgbge›ŸŸœ‹…„~…„‚{zvtnr‹”Ќ›’‘tiu‡’”ˆ…‰„i1#)($ $0:EZppwtj[Ž™˜‹‚}„‡‡„…wrr€яwˆŽŠ‰iPW<@i‚„vptutp2#!  *?;N`nogeb`™’}kvz‡}{w|{}ƒ„…}]CQP\|Žxk^^nˆ˜…N5+)"&+,*$!&4E\b`[bˆ‘•‡vw~ƒ„wŠ”‹r‚•‹mINL?b{qjcdt{„mM5* 2(+0"+.+##"*$2Qu‹…tiecAE:TgeTOTPLFIAIBEECBHMJF0&7#&1.2+)!!&#,)-))+(377:@AFEAEC>NQPZ^TQS^\LAJGLIMJHIIHLPFA?4<7>:42-+&(#$+(&(!!€$#,-895;5;><>>[^]VYWUWTOG@HGPMMOHCGFGB?>@CG@ET0$3M+*,*.,*"("089AIUPG[[ddede]YOeGINoQOG@?FJJG@@AEHIIQA"!4C?@0*#,-))08H8FGEJNOOPNSY`emecUQ\bUoŠŽiV^ABGGCEGIPOLHIE:229(9Q.&!.)(!-8?>9EMEEC:CJIGLJFCS]ab`UVY\[ikwZB7GC;?@97UTQNB9?5-.1.)0**)*%,$)14;;€ˆ@JOJJGEFOWYPOFNS`bYTSUVWWUNWW99LNJEFT[\SƒH2E<42)+-2-*($$&+,&41:?ENLNLQOEMVZTk`GYZVMMPZ`da\[Zi\cxYV[WWSPS„zSMN;254454.0,,&-,+13535>HINUPJOPQO‡^P\hgmkkanUFCTbOUPVVTUPLGILWwM<;1,03309:?>7:8;;?>;>AB@MLNEMMGES[FBST[ec`^A3!%&%"+&*-29"5574.EJJNONJF><ЛНЦЧЪШЧЩЫЩТУДКЯЮдбБЎЇ„‡rpdЇiYjbb3,E<90%,,1>1)*4$4!EjiPNQMMЪLNТСЧУУСРТУЛРРЪЪЩТРНЃЁ—ŠŸАВНЩхябЅЏЇv>7BA;@NhWL]J.,05JJZ€ŽcVMQ`i]ZЦЧТОТФОРНЗЗФзЮЩСЛЕЕЏЈЃЏЦЧУдсычЯЫе•A;I@EJHNHAFGAAN`|jt‚ЋайВЁ’ЅЂЉОДВЎЋЏЖВЏЕА™ŸШЧТЗАДДАЎЋЌЖНЏЧгаЮЧФЭWSJMNPHIC>AHGG4:xОЮзУОЕККМЌШЛВЏАЉЈžЅЊЉ›ЗЛОНТНБŸ›œ—ЈрўїЯМШУЅYSSA@B?C<9>ALNU[j…ВуСУУЦНАЉЯААЏАЕЖЌЋЛЅ™УяЩМККŸŠ™™ЅЦУОтькШžЉЖ•WLA:<98:@:?:99CGJJanЭчТНУЦОКОЊЈБЃИНСЖЭусЩКЦжСЖЕЗВЋЇ˜ЗЭкчэёхОКдНT?AJJEA>?FHECFOOQVJ]ЇМДВДВИИМУŸЈЃИбЯЯ€ЇагзккмыМЃВМЛДЇЉЅЂЖпэтєЫШеЖuS1GHJMLNIOOUNTNPWNOЊгОЛИКНИКЗМНФараЯЦЋБдснзЯЩБЖОРИИЅЂЗЯдШежЩЦЛНЈhL]QNIIJOQSSQWW\aaZБпЩОТФФУМСЭШЪЫЫЪФРОЗйлйжебСНОНКЕНцулнлммплрхžHMTZYPJJQTSQZbca]]S’ЦВТЭапеугСЗККНСЦЦЧСЮежУНРЛИСТЛЌœжЫФушхрчуђтœNLTSTPJJLPTQLSVVYQQ{ФеШЭЭагЯЦКААБЛРЧЪЯЭгезаЯЦŸВСШТЛОЮИИљтхрмЧБg553>A>>ABHJLHOYSPYYФжЭЪЧЪЩЩСЁВБВМЦЮбаЫЯдккшеМУТНЛКМСзУЯЮкнлФДЫЂbaQ4FEBCHLILCHOOP;Q}дёЩФРСЧЦОРжжЮаЮаЯЫбддзаадбЮЩОНЗККРЮгдлнњыСРŸ]ZnNOFGLHNOPP€7TJaЋздФНЖМСРджзгЫШЧЩСзнкеЫЭгжЫЩЦУУРТЮбФдйрхкИЄ}S\|aFGHFNj]ZOTNQVVS]œУбСНМСРМлзгаШТТЧгяхспзгдЮЦТУФРРШдлнууххїѕТŠP)533>B-+G{WSCBNUTIa’ЛЩаЮШФТЛкеаЫЧФОСНдлнмкздЯШЧЩШУСУезйпплкѓнЩЅg70;?7FaPEJI^m]MdЊгЫдЯЯЫЧСжЯЩЪЭажгедгдзйдгбЦТМОНСЧэпупйдепемНp48>BBGFAAG^Zbjt…h`t›ЫбжмйЭСИбгЯагежйкйлйплзкрИМНСУЭУЮеслйдЮЪШСР’WPFG@>@@˜8c^YCIbjtŽžООзллшурдлмйгЫЭдлйлкмкзжмШСЛОУФЕžВЪцеЭЮзССЯœ`WJE@?ABHAMJGH??Upƒ’БШыршЩДКежбЧУФШбзлкзкждндВНКММЉЖЛРагЭЪФгДЇœhGSPOEBEEHCJNPPUZ\IUЧльэхФЏМЮЪШСФЩЮбдгббзкльЪЁВЖДЏЇЇДЛаджаШЦЖЉЉƒa\PPNJIEJLL€йGFES]QUxМкпткБЈКТТЧШЫЭЯЯЮЭЩамппшЫБДЗБЂЅЖОНЭгЯКИЌЄЄŒLCNSMIPOSTVPQIHMEJk™ЯююптОАРВИУШУБЋœЂЇЦьлаегЩОФЦжСЁЅЌДТузеЮндаЯБo^aWLILPWTPQUZSSMNUmЃЯмпчЮУУФТШЧТИБЋТуѓўкбзРНЗИОЧаФДБЈИпггЯЯжмЧЅnIOUOQPPQIHLOVTPQLYwЗсјркбЩЦЪЦЦТСИКЎОЮаагЪЫЪШУРРОМНЗНЦОЦЯжейИЊЋeY\SONIELQOMZ]ZTST^œЯЮзйсзРЗЧТООСУТСШЫЫШРЗЛТЩеЫЇЎЏТСУУЪазлйлЫНЛ›L;7;;CAEBGCGBGPuЎЪННСФЧЪЧЪкшжбЫЩЧФУФФЧФСЈЎЕ™Ÿ’‹™•ЈЯндШЗž’—|::OC4:3;>@;;Е?@EEOZ„ИлФШЧЧСШЪгжййдЯШЩЧШЭдеднШкжЗЄЏЗЕЏ›™ЋЭрЮРТОΘ]Z`PNGFCCA;:8:8>85HtЉЮУТТщКЫбгбжзйаШТТУЫбджгЫЫФОЛЛыЋŸv”еюбЮЦатБcOVC@A>>88€С;?@AB;4O‹МнЩЦССРЮЮЯЯЭЯйгЧСНТЫЫЮЪШЮЯЯЮЩЦЛЇДЏИЗЕИФТСИИˆG.>H@954487<@FINOJTЋЫФЧУУРгббЮЩШЮЯШСРУЪбжбЭЮбпЩИМжОЛИКНММРУСУЦ‰FBIE?A8:<;CBBCFGPJg”ТзЮЮЩУМааЯЭЫЭаежбШСОТУШСгнхЮЏxm‘žЇУЪЭЪФРЛФЦˆI?BA<<;9AGIHH€$MNI:I|ВжаЫЧНЗЭЮЫШЪЪЭЭЯЯЭСЛЛКМКзєўјуЩМЪЭзЫЭШЩЦТОЎЈH4B8@>;9?FLEFIOON><@IHCGCLNLGJHSwЋЫДЕДББжжгаЪЦФУТЦУНРУТЦЦЧаЧЦЦССЎжгЩбгЭЭйтмЖo?@EJE;AF@@>FJFE?FWvИЋВБЌЋйкздбШТТЧШЪШЧТМЛИНЦЫЯчнзаЛАСЯаЮЪЧСбаЂZ@JHE@77Л;5@<@9AHPUj‘НЖЗВЉЉйнлжЭШШЪЪЫЪЦСРОЛКЛТЩаЪЊ˜–}АЮЦЗДЛАЕТЁN0?I;:9>ъMUYtœРЗЎЋЊЋадгУИОТЦЦФУУ€ГФШЩЧШЪЪЮЦЂ‡Š•СдКЕЏЏЗЮсИqNNFA?:@B?EFIH?UxЁЦОЋЊЌЊ€CHI^{pZ^Z`QN:G7EA4.IAGEL)4-30%(8!(,$+"!!"$&#"#?5:*8EJPI>>TPO\ZQTUcb^JGNMSJNJOGSTJG@IGG@:>88&$4&.!.+"-7!%"(4-8422:?IF@7>QCICCEPNJZ[gh^^dbLT`HGPnOP9@?CMLGIMS\TSOP8)857;A>AYTLUbbohna^U\jetŠ‹rYcJA5EHGJNVTZUMG75*,2)"-",081$!78>BPPEFEFJFOZQmeGY\ZQMQU^Y^h``k\ctWSN]\ZV[ˆuSIQ;@)@><485@<@<44%->:@PCMOYOOHSVW‚^LSU^]gkZZUHNVaGGMWLV\ZUUPWa}O80,5-1-9,?98A8BA;87)2?FJUNTGAC?EG–ƒˆЌЎŸ|ЂŸВЂ’˜‡jVQ:HEF7Q]JEPZYggUZE<1.&,3++)5&-<8:5NHIIHIEJCA€g–™’ŸЉ•‡’ЃЃЁЄ„ˆ}jgpjj]‘ЅkTgVZ3>CG-$S‡žž…Ž–ˆx{Џ’ŒœŽ|zƒ„žЊЉЅŸ•‚toVWmt‹ЭђпДЈД™‡IFI;FG?BB€и7:<7@BCONUY‹Уž‰œ˜{v}Ѕƒ‡‘‡„—xvЊсЏ””tdiuu›”œЫзРБ„ŒxC?B3A@CBMYWužО˜››‹…Œt{‚oˆ”‹ˆ™ЛЖЁ–ЎŒ{}„ƒ}{gz˜ВОФбО‘ŒЁ™N9>FB@E>@BFO>IEGNOFO~‚x„{v{z‡mto‚žЁœ˜БДЊНФТ‘w~ˆ‹wrpoЕЭТеž—‡SF-?IMAAHLSUTTHFEOGG~‡‘œ”„~{}Ž‘ЃЕЁ•’~‡ЁИВЌЂœ~~ˆŒŽŒnm‡ЈЌœЏЉ™˜ˆ‹Š\ITGI;ABNMFMZV[W]`T’Ѓˆ…Ž}‡Ÿ˜œ›™Ž„…ŽЊЗЖЄЂЁ‰„ŠŽt…ЊЊЋЛВЗДВЃЋЕ‚?FNPQPMMQNNMQ^ZWYIFv›А™ЅЇД˜‹}}Љ‘˜’›ЉЉ–}„‡…–„xrЁ–”КЪМФНОЦЕw4AVMQLJFNQVNUPGHOECW—ž’’”—ЅЂŠ‚Œ‘„‰Š”–ЇЉАЊЄ›Œez‚–ˆˆž„жЫОНД–{dG,19,>7A*.AMIJJMHFJL^Œ˜””Ѕ—‰o…’™ЂЁŸЄЊАЕЄ‡˜™…{Ѓ”•ЂЏЏЕ—z’zJZN2?EHCHGL@?JIC;4Ge›Сœ‘‹Ž’‘„ˆœ™›››ž™˜ЁЉЈАЇЂž‘‡ƒƒ‚’ЁЃЋЇВбН–’~IYpGGLGrWBEIGQQHTuƒ–Ё—‡ƒЃЂЁ–•Ž„‡…ЅЋДФЛЉž˜”ˆ‹ЂЅАНЖЊДбЖuH.&0?BI?7EYOMCFTdMF]‘™‘™Ё—”ŽŠЃ˜••˜ŸžЇЁЇЂЋЋАЈЋЁ”‚‚„ˆ‡—НЖББЋЉЋЕŸЈQ-4>CJ87@3?Y\Zaew`T]z˜ЃЄЇЁ›‡}Дœ˜–›ЈЂЁŸЊЉЊЈДЖВЉ…‰Ž’•ŸЅЌЕАЁ––’•rPNLBB;?AA5]SQB?]^n„ЄЗМРЕЕЄЗАЅ—‘ЇЈЋЄЊЈЈЂЊА›Ž‡„ŒŠ}k—ЛЃ˜–Ј‘‘›vOMOJ:FANL@POAOF>Je‚x{ЛОР™…‡БА—ŽŽ€Ј™ЄЅЌЎŸ”ЉЃƒ{}|…‚‰–ЂЇ–ŽЁ„zgB5OMG>CA?BIGIMIMV\NVx‘ЄОЩБ’z{œ›’•’—ŸЂЄЌБЎЋН—n~‰ƒuoo{‡›ЌЎœŽ™~z|hQQPIIJBMJII:CAGOOJ@hŠЉЏЖЋ}q„Ž’œЂ˜›™ЂžЂ•ЇЏИЗО›owz{vmˆ‘…ЄЉЃ…‚wnpgCBMGEFHTYUQOHGHF9C]…ŸКУЕЏŽ~Š|ƒŒ—’{vtgq›ЯНЋžžŽ‹’™Žnjq{КЏŸЊЂœŠ`^ZOIMGNHLOPYVSQCGHZ|ЃЅЕНœ‰Ž–”Ё•…{xЗйчВЉЎ‘ˆ~ŽŸŽzzpВВЇЃЋ–ƒ]JMOJQINLCCHQQLPACMdŒЗаДЇž””‹ŒƒxŠœŸЃŸœ’Œˆˆ‡x„„‘™ЅЁЁЄ‡w|jV[\SNTONISLST\TOQNS’ДžЅЂЏЁƒ…—ˆ‰‘Љ‘™Ђ˜’Œ|Œ™Ђ‘ompˆ’‹”žЋЋЄЄ™‘ˆuF?EBCJEA>IMWQPWYPOUzЅЏžƒ‡{|›‘Ž˜žœ–‘ŒŽŒ˜œЁžžЋЈUhr{Š—˜ЄЎВЉ™Š|„uT3.>9G>?@GEAOWVZT@GqЂР˜–•––œ”’žЃ˜‰…’˜œЊЇqv|mt|zxoŒИЇЇЅЂЇ›x}žxI@I;>ANJJME@ITWMIAZ~›œ—’–‘Ž‡”˜’‹…ƒŠ‚‡‘ЅЂž™Ё‚vqx~p’ЃЁ™›{pq[EHF<;ALTZWNCMOOE@YnŽ™‘ŽŽ‰„™˜”—Ž‘‘‡‡…Š‹˜™—•‹ˆqZmp|Ž……‘Žˆ{Ž–uJ>G;FB?GLGLHLVNJZ^`w—ˆŒ•œЅ’ŒŒ—–™˜–”•ЂЊЉЅŸЅЕЃ…z|}„‹’•›petbIFEIG@A>F@BGHPQFAGU~Ÿ‡–Ÿ—‰žЂЁЂŸœ”žЃЃ–˜žЋЄЄЁВЎƒtur{‡‰‹‘Ž—˜‚tnP23I@>EBFG@@:9IG<.@Pk…„~œЌ‡—•—Ђ•”ЁЉЈžЃЉЌЂ™–‘q[w‚ŒŽˆ‰”ЏмОqdP44?FI?8CFEE€BC7G>MgŽž‹‡˜…‹Šƒ‰™‘ˆ”™‹•ЁЎЇЁ–Žœ–œ˜ni„—ЂЄЁЂЂЉ‹”Ѕ}E>F.81&(F:A@AHEAACH[ƒ™ŒŽ‘——–™ЋРБЂ–”ŠˆŽ›””’}xtWjaQ^gatЃЊЁ…t]cW7:O>#37:>98339:5ANQg’Ј™•˜–˜Ÿ™ЁЊЋЁ˜––•™ŸЉЌЌ€ў’ЅЋƒr}|uaj|ŸБŸŽ”’ŠvNT]LNE><@052).71)*>V››•’މ™™›ЄЈЏЎЁ‹ŒŒ”ЁЂЃ˜™˜”Ž…„ƒzuaIhБЪЊЂŒ™ДYMO>1>8,0$,5HCFGCQh‰Ÿ˜•Œ‰ЈЅŸЁ›žЂЄ˜Œ‰Œ›ЎЊЇœ›ЂЈ’ˆЈ‘Š}‚…„Œ’އ‹‹kAB3;8AILEIJOHJ4B^ЃЁœ•‡ЂЃ—™˜–žЏЕЈ–Œ‡ˆ‰…‘ЏгуеЛ—‹”Ÿ—”›‹‹Ž|}h?3:2<-"1?ACEEHHLJ98MƒЊЌ‘‰…ЃŸ–•Œ’•–‰ˆ~”••’–‰‰›ШР‰S@\{Ž’ŠŠ‹’žЮЗŠeA(@BB7928453:3ALJHJ`‡ŽŽŠŠˆЁœ‘›ЃЉЇ‹‰›ЄŸžЅВСЕœŽuWZ|{qtƒŒ–’”‚q^PBG>22&979ABC@A??QUZ|‹‰‰€Џ~ЅЅЃЃДЖЊЁ—Ё}ЌИЅ•}ˆŠ‰‘Œora}Ž—’‘”Œ|V+&::5>BC>>C@IICH@G\‡ЁŽŽ‡}{ЌЈЃЁž›Ž‰ŠŽ’”‘”––ŒŠ‰ƒ‡‰œž”œЇžЎАБŒW7?NIAFPVn‹„ˆƒwnЈЏБЈ™—–™—–˜‹ŒˆƒŠ™œ—uegHJw•‚ƒƒ„|B,1B4.543+1(>(;3HNOYwƒuwrqЁЌЈ”‚‹Œ™–”ŽŒ‘‘’–˜––’jV]^hŠ˜„xzw}žЎ–ZA4>;?A>;548>0212;:5G]jtpouЂЇЄœŒŒ•˜—’–ЃЊЄ™…‘Ћž}a`\UqЁ}vwŠ”x[G134?80+-0:EA9B7HTj~•ƒwwqВЂ‹—ˆŠЊВ„ŒŽ–•˜žЅЇЅx~}{gbw‚…••Ž‰‰‹™ЁƒN@IHB9;E?715CFA98S]}‘‘~utrџ№%,%)+####€Ј(%51)*9<8>>9>3!%$248-9GPF!(2-*2<7+*2<<(EC ,7@.2:;23(2*(0&3,05?47)39B00<@7?3()#*;AHC<8;,>1185->4;9,C]™)$$49##1A;-*15<0*.,*<<5302;.2.8$"!5%,08$*%$!.,*5045;;5+,%"-4,.399>4G<;413,,+.87.3A45@>711+)C>5Ad{wh‘+.:2!"!(581>9%$;@3,-87*%.8::9;;B<7#")+7B5;@FA7?>OT@2ctaet‚‡•Е:+42+2&28;;4482.0.>0)#E2 $45((19<9-02,.05;B;;4;>9PiOWqpuxoƒ‡t;52294<>>:44)90@1,2+$!-*#"!0:8*2AFFN5".-4$3S<;C?FIJA@02?A70-,3)..8>ACIIMNH;7<7;73FUYQev–‰‘…‘‡nhh|„ƒ93(789!-5?;<70:4102737A44.ECCE;A?<9@IB549OLNUFUzМœ–„}{rurx}~w..*%+"%3;84519A?-4-.22<557FCF::>ACEP:M@:*3O[p‚t•›”{‚|„‡z||!(%.-%+,-&):@@:?B:;7550:@GBP`25Ou|ŒnNgxCMrn}zpqƒ‹x{{iЅ7*27&,<<@>9;17,)8FEB,-((9;:97-GE22QJ@QGA4%12JBF\]bb}ƒzrдШqLTicnw•Ѕ‘ˆ……‡‰‡‡‚‰„a`O^kuo]q|ad^[bamƒ„ZPYTYnvˆˆaU\cz„”…ƒvzƒ‰~rhgk{{nkr{ƒ}{pgddmnpor}xve\bhp„…‚~ƒ…rN#CHLTdieYJTUTPZv~zx‰jVv|xmYUaikptc`ckoj\brwoz~ziix’„‚{wƒƒ|kd[EPVdieƒ–~c[a``tƒŠ{‰{g^Z\jpvk^Ucrztijbinhb^ihox„ƒudinqoz{Ž’„„ƒ}i`ccwzzƒƒrhda]epxxwmje^Ycq{~ti]agrriaa[VQanpmjrtnigmp}‘Œ‹ˆpTgrvvnaY^ev…‡‡tZZgˆvix‡ihcV[]ct|{ukkomhmjhjkdkonrkiknqnkdOkЇЅœŽuYT\arpcYWMd‹ˆbEUZ`\Zr~ie^TQamnc^aaW^^cabkpxtutmmroia^]]eYu’‚xqxxnYW]dhjhpjƒ‡Ÿ‹jca\etqrjighd^dh^Y[ZWU^ijjqtnmegbdmddbjeeckpqpttnn^UYdmkg\`bo}ƒva^YY]dbe`aa\Y`jkhc]cggpvvommotnacgnhhiqtqppx•›‰‚]NVTUgjbZWj|tnmc]YTTQ^;I]dccmpj]`e`]^cVP\ha`\`YLV\Z\otqjk}œАБЊ—neb`bd`VZZV[]ihgabTSVWcWMnuuqqukVSUigpe`mrorvqjeedb[W^‚rin‘—‹‰|ijrpvoj\QT\be^[W`bZSZho~utukigqqWQZhnmpmhaippnpwmha^`epov|zx{xwwjrrpg`dmprqxxtpnkk\Y`mxnkmdhkdeikmiightpeqrmjtui`]mmi\dmpp€Фwtv‚|rxuh[^[cicuwojpieia^h`npzuncZ^cciomgnwvibhhehikjowtn\O^o`J`p……„‚ƒ‚tdZSTUWiormptwpiginrm{tjaSYchhdYOPbcZSahga]bhecg^WY^YO4?TŠЊž™‘‹q\OMQgrrjdktwwoaZZxvtmT[\V]bhij\Vbiebdac[Y`aWZZSPQOINQPPvŽŽё‰…‚eSZPJUjmkopvv€uaekmv‚~n]WTQWWZ\]chikipnic]YSPSUZ]ZTJF?NWiuthddom]EEIFSd]Zmmnrvttuimvupgc^IBNb`^gjrpkikonc\[cigeVUZONHWnjea`]`cogN:IOOVVSUuvzuvxrqkid[\addU&(N^gjh]WW]emnh`\^emnoba\Uci`ikkqwŠvh^WTU[VZ[moiaQakipic`YaWZhaZZAFUYT^j^QV]ba`baa`cb]VGNOTPU[owu{[Q^icbbkvxvrqeeorbgoje\[]—a28?LTSgqnaz‚pheg\UTST\b][VZ\]btxnekrqSVbutrxmYE>Sexzboxz{~qb^ieZ[POHQdƒ}rr„Š}ovqd^djjcZVYbVTWhrrebmuoOM\‚~t^P,7Od{vcepqimxaW]ZYWFJIQJataPgtxvwqb]][YSLW]a`\ZdmjhgjwvgTPx~vttSEOhumjcgxxpjcYJPPNI@EINPQ[\dgnnod`bUHTQOINIM\jiY^ijjimnqp|hqzt]Jap|trp`geZ]YQOVWOLOOЅQMQbha[cmjij`UV]VN?MQ[`\[\\b\W`o{|we\a`iki‡Ÿ‰vw|ie]ZQ[^^\I>JOWS\]Wik]YbnkdebTVbjkmj[ZZ^[dhhg€‘mngaYc^SGJ\{}wvx{^ddic\]YSI;Wvr^Zbmtnb`erncnrwppiuhTNT[SPUVUZY\emjcVIW\[Z\Tjjgi|^abcom\OHWbx~`YNUkupjbgnmgionbbg\F7GU\UONN`cbcmpogZQUWa]dehkx}€p:9>@BA;;?IEA@AF?@EA@@FECFMNMMYUFHIJGGILNGOYTPJHIIPSPJNUWLEBWP<2;@MNNIP[Q>CA<;:B>GJOMHCGAELOOS[WNIEB:CLNVWTPNJSJHGHMMNITQMM[~Щ?;FBHFEINSTMMIIEJHCCHPVOIFCCOHIQVPIE<<>@EEOSOHLQULGAMIPNL;@NGC\SQ^ŠКОМуHEHGGFF?HIMPLEE?GGECAJOLEA?FGGONNUQNIJIIOMMSNSVWSNPdj^NЉŸЊДббляINMHJIONJOPHFA>>?JGFCHLJE:@CIIFJHLONLJIHJOQSSWQPP€ Sg…nŽНЫЭЮМКЪЧАSSNOTUOPNLLIGCHEFFHLCAB;::>FPJFMOSY^VNOHMGMJMgLN[Tg›МЁИЏŸКСФЧШШФOQHMWVNNOMONSSPJLMTVLING@GHMSSPMU]bbWNMOSONSarxo‚›ЯЩжбаЛЛИСТЩЫЪСOHG@GINEIOSSPPGGILSOONMMBNJUYOSONSW[WYUNP^hjjhˆЗьртзаЪТТФНСФФЦЧРHIEAAGHFFIMGGQOONPJLHHICCMTV[UTPQTZb`UdPONSu‘АЦЫЛЫежЭЮУСТЧЫУЧФФ€CIGCGIHFFNMEBMUTVWTTPLMHLPY\UY\YUe`gwNSuЁЎЦШБЁИФЛСЪЦСОУФРЦЧУЌцOPOMPOWWTYWSQNNOQYZU[PNLHMQWVTN\^OY‚}ЃЮюћўцДБОКЕАЅЎОМОУЦФЦФУМ›а^?P\aW^^VZQcdOGa`Zbb]IA?GIBQcZm…‡–ЁМЪИЗеўўжНŒБКЕНЩсюЪУФЫЮШЫЭЦУШЦŸ™‹œЄБЈ–ЈБ——–Š•ŒŒЇЉ‰ne{Š…•‡˜ЧцЪЄЅЈашŒЧлЭпЕЇЌЏА}m™беЉЛФШШЫЯЮЧЩзЦЛžЁЅЉЉ€ЋЏБЅЇЉФФДЪўўаЄЉБЏРЩНАксЫЧНМЧрЕ’ЈНФЩРЕИККЁЄЏ›ЊЛОСТССЦЭЮЭЯсўЭ•|ЅЈЈЅЋЎАБЖЗИРВРМЂЕЖИЛРСРЛУФЦЩОНИдеЫЪйАЮйШЋАЕБВЖЛОЖЩЮШЪЩежждЯЛУЧЮЧАЏЏЈЊДАЊЉЖРЗЭдлАРРЛИРУСТТЦУНРК”ЖўўчуЮЪРОžЉŒМСТТСТШЩРКЏбщмзйНЖЖЏЉЅЈЌБЗРМБЋВЫШЭаЮЪФУСОТЦУСажгзЦМЖАзшмеШОЕблаОШЯЪЩЧРСОНТБЦйзррЦУННЪМЛИЊЏБЌЏДВЛДЎЈФННОТСОМОСЪбелггЮелцнФЎ™ЗЦмž‹ВеОМУФСТОСУЪнзйзУФМЗМФЮЩРМИЕЕЏАЕМСОРККРЦФУЦУЪайррлеЮЭбзбаШРРТТБЊ‰™ЊИШЮЫШФСОРТмзжЧЫЦНРШзРЂЖККИДЛРФШЭЯеЯпЫШТОМТСайкгЧУРШЮЯаЯЪЫЦИКВЊБббыЮЦУРЛТЩерпЗФЧУФСКДЏАЗЗЖЕКОКЛЛСЭнЯЮЫОЛОФЦЧЪЫЦФЦЧЪабЯЪШЭзБЕЕЅИЪаждЯЪФУЩрпсрЛРООКЖЏЉАИНКЗАЌАДБЕЛДБЯЯ€КШСЧЪЫЫЩЧШЦШФФЪШФОВлўёСАКМКбязлеЯЩЧШЭщянННОИИКЛРЗЮУБВЖААВЕКМЗЖУагЧСТЧЪЩТТСЧЧУНОМНМЗпѓуКЎЖЕЛВТйкйгЧТЛЎЩсжЗКИИНЩЧЦЧЫШЛИЗИЕБЖННСШажгЮЫШЩЪЭЧЦШЪЩЪЩФЧЩЩЭайреШКБВДЎЯбедЪРМОЯлЭРРНМНРСОУФЧРЛЗТтхФЎЎэамЦРТФФШУНЛКСФШЩШЭЯЯ€ЊаЯЭЭЪЪТНИЛСЛЪббЯЧСОЛТУНМДЌЏВНЛНРТУМБЗйЮЁ‚œКЪЪЮЭЩШЪеУВДЕЛЦЧШЩЪЩЫЫШЧШШТУМНРШЫЧЮаЪУИРОК”ЖАЋЃЌЖИКМНФЧРЖЋЊЎЎЉŸМжјўўаКРНЗЎЋЌЕРОЛКЛНУЧФШЪгзеШУЧЫЩССЪаббЭаЯЪУКВАЕЕОСЖРпспгСЛЗДАЇ~w™УжМЉБЏЋЊЏЉЏВЛЛРЛЗИРОУФТзедбЪЯбЫСМРШЭЯадаЮсБЗЗКНОЯкжйлгЯУТМЖДВВОейЭИЏРКМЛМЛЖЗЕЗЛМИЖЛИЗЏВЮЭЪЯЫЯаЯЩСЛЛНТЩаФЈœжКВЗРФЦСЕЧгЯСЊ—ЄЄЌВАВЖЗЖЖКРТЧШЦТОЖДАЎЗКНРЕЏЏБЖНФЪЪФСОСБЕКМРТШРЗДМИИКММНКЕЛНУНЦЧМВЕККИЕЕВЗЗЛНЦЦШЦЦСМЗЖИМЛРКБЊЊЕОЦЫЮЦУОМИВЕЖЛОТТОНЗКЛИЗЗЛИКЛССЦЩЪШТСЗЖЖђЏЈЊЎСгкйЮЩИЗКММЙЛОЦТЛВЌЕМОНОРСШзК‘БИРУЪЦЦРСТУННЛРКВЖИОУЩЩФРЗЈЎЋЉЃЈЄЋРсўўрМЇЏЎВСЦФУТНЛЕААБЌДОТШФЫžВНУУТУШЧУЧЦСОНЗЕЏЏЌАЖООНЗŸЏЈЂœЃЈАЇЊЛЩУАВБЏЌВТЪЮЩФМЛВЏВЎЊЎБНЧЪЩТЦИЖЖКИИРСФЦРОУУ€ МНЛЗБЗЛНКЕАЌЇЄЂЊБЖМЯЮЮЪЦСКВЖМСЩЫЧШУШЎ—ЅЈЋЌИУЮЪУИЏЎЉ…ИРРСШЪЫЫЮЫФСТТНЛМТФСƟЋЊЌДЕИОЧЩЫШТНБЋЋТЩЪЪШЩЩпЯЅœ•ЄЗОЮФЉЃЌЏМЫрЫШШРЫЭЩФССТУУОСУЩЮЪСКЗВБВЕМННОУЧРЌЎЉБОгаЭЩЩ€/ШЮН––™ЃЈЋЏЕЅ˜ЁЈЌŸЁОЧЩЧЗЪЦДЋМТСОКАЏКСТММИЖЗЕЏЌЏВЖКСЪЦКВЕОйЧЩЦШЪЫТЗВЂœЄДВЏЯхФЏВВБЈЕСЦШУШОЕЇЌВДИНКЏАЕКЛЛЖЌЎБЕЏЉЊБИЛСШЫСЗЖКЗЛНШЩЪЫУгаЕЌЖБОЧЦЫШНДАЏЏДСЦШЦУНВЋЌЌЋБНЩЧНВЖКМККЗЏЇЃЂЉВЛМИНОТОЗВДЗСжЭЫЮЗ™ИЗИОРЖДАЕФбЯдФЊЋКдФЕЦЦЎЌЊЋЉЏЗМССКВЕЗЕДВЗЕВБЕЗЗКЗДДЗКИЖЕДŸДтЮЪбСЉБЋЎВЖЏЊЎžЌжЯаЊ‘ЇЉЅЅ‘ЗОЎЊЇЊАДККИИЖЏААБЏЌАЗСТСМИИпЖЗЕББЏАЏЅИйШФКЧМЕЎЊАЕЖДДМИЫЫцаИЏЎЎјЛДИДЗИВААыВАЎЌЊЌВЗЗИЛЗЗВВЏЏББЕВВЄДЖЗМРЦРММЖБЌЏАИКАЎЌЎНФУОЅЋЋЊЊЋАВАВЕБЎЎВКЖЏЎЋЋЎАЖЗИЖЕЖДВЎЄЋБЕАБКМКЖМЦЮлпаСž›ЃЂЈЌЋЉЅЈЎЯЧТРЕЏЉЇЇЊЇ{ЉБИЕЕЛЛИДЎЏБВДЋЂžЃЉЏЌЋЇŸЄЉЊЌКМКЛСжцхсгЎЌЅЇЊЋЉЉЅЁЁЉВЕВЏЎЉЇЂЄЉЉŸ™ЕООНРРКЏЈЎАККЖЎЉЎЗКЖЗЗВЊЈЉЇЄŸРНРНЕЪаЭбШБКИИВЏЇЅЅбЉЋЋАЏББАЇЂЁЈАТСРЛНЛМРМКЎЎЕКЛКДДККИИКМИЖАВЌЉЊМСТТйЦУФТСЛЗКИЕДВЖЖЗЗЛКИЕЗЗАЊЇЋВБМИЕЗДААБЖЗЕЕцДЖЛМЛИЛИЖИКЖЎАДИЕЖЕИООЛФМШШэФЩЧСЕЌЈЎЏВЛНМЗЖЗЛЗББхЎЖЖИЛЗЋЈЃЊБЕЖЖИЛРМЕВДЕДЖЗЗИИЇМЖЎЏЎЖЈЁЕФФЭЭЯШОЕЋЇЃЂЉЌРНМОМКЗИЕЏАЏМНМКБЅЁŸЈДЖВЎЊЋЎБЎЌЌААЏЎЎБВБАЏЎЇЅЄ|…ЁЭшжждгЧЦКЈЂЃЕИИМ€zОНЕЎЌЏМНРВ”™ЁЁЉДЖЗАЈЄЊЌЏЏАВЊЅЄЈЉЋЋЊЈЁžœ™–•™žСггадбЧЎЄЇЃЄЇЕЖЗЗМОРРЖВЏВИНОЧТКЇЃЁЃЅЉЏЏБВЖЕБЕЖЖБЊЂžЁЄЉЉЅЅЂ–’˜—ЃБЛЕЌЊЊАЏЃ•–ЃЃЇЃЖЛЛКЗДДЛНЕИНОКВЏЋ…›ЏЎАИМОЛЗЕИЗЕЋЄЇЊЎЎЅЉЊЃ›–›ЁЖАБЎЌЎЌЏАЈ•™ŸЃŸЇЧООККЛОКВААДДБАО™gŽnx–ЌДЖЖАЊЉЋЏДВБЎЎЌЏВЖРАЈЇЎБВВАВЖКМЪТДЊžЃЇЈЅЅИЖАЇЊЋБЏИЕБЌБЌЋЃЌЇЇЅŸžЃЁЈЏБЏЌЉЉЋЎЋЉЇЅЅЌЎЇ›™ЃЇЋЊБЗМЛЖКЧЈЋЊЎБЏАДЗЗЖАЉЉЏЖВЕЗИЖБЎЉЎЫЮЇ„—‘’”ЇЏВЊРЧЖАЎЎЉЃЁЇЇЄЄЇЄЈЊЏБЖЛЛЗДДЗМЈЃЎНЛКРИЄ—”›ДИКЕЕКОСНЖАЏБВЊЈ––™ЅУДЗКОФСМБЌЊЊЌБЏЉЇЈЉЄЃЂЊБЖЛЛЖЕЛЕЊЁžСРЛЋ”t{ЊШЛЗЏВЗККИИЂЃЃЇЄžž˜›ЉМЊœДЛННЖБЇЄЃЉЊЅЃЄЅЈЇЈЊЎДМИААЕЕЇЂ™ООРКИ‹’–БМЕДЏЌЖМЖВАЅž˜˜—’–˜”˜ŸЈЉЏЕКЖВЈЉ›—›Ÿœ––œЂЊЉЃЇЊВБЌЌВЕБЕОДЖДСК™ˆ•ЏУЖЖДАВЎЊЇЄŸœœ˜—˜˜žЂЊЏЊЉЉЌЏЎЋЅžœЃЂ—™˜žЂЈЌЉЃЄЉЈЇЉЏЖНМДЎЎГАЎЋЎЭпЯЛЛМЎЎЊЇЈЃЅЅЁœ—”œŸЄЂЄЃЋЊЄЂЈЏЎЉЊЉЉЈЏЗВИМЋЅЅЇЇЁЄЏЏЉЈЎДВЏЉЊЋЋЃЁ’ЇУНЛЛОУЊЌААсЌЅЁ›–‡ЄУСЅЁЇДИВЊЅЎДВЏЏИИЕВЗНЉœŸŸžѓЃЈЏЏЎЌБДБЈЄЃЄЄЗЃЄЉВЖЗКНСЊЌАЖЗВЉŒœЎТЯАЂЂЌЖИААЏВДАЏИЖЏЉЅЈ”›”œŸ›”–—БКЋАДЖВЊЂŸЂЃЂЊЎЎЏБМЩЧТт;73>:3?85JG8;994AE;G85;FCEFLLQQ€ёPOGFA<;EIIMPMVQLFJ>FABMGELOGIQH8@HJUPCHNTOJPQUSTLCH;FIVFUNLONOPEI?CLPG;@HE5H—@@7?;5ACA@TPMSv–’…Ў@HHGA;NJMNBA>EE€”@?BLILCIELPQPQTVVMHFIGOPIQVUQPSQbaOBx‡wv‰ŸžЋЧLI@JGFHNLINM;@:9EHEI;INB9A@HELFFGMSZLCCHHLMMQWWNSQBau^h‡‹’—އ’|MIIGOTSTJCF@GIPAFEJJ@7BC7@EISNFCG[\g]TIIЫJ>QLkNOQQV…’||q}Š‘‘‹ˆG;@NPUJCTNEU][SNLFQVILNIGGJMLUU€“Qb``]SPPNIJMYjpcvƒЇžž›Ё‡Ž•–ŽHJCHBF:3CEMIQPPHAGHWMJGENHS]VSQQSM[`a[QOMZ\ehUcбНЗЄЉ–‹Š……ƒ‹•™•™IA@?AC?IHFJGIFMQUOTJNSPLLIGJTWW\^QWeWjqNGcˆqhƒ–b`ˆ„ŽŽ”ƒ‡‘‘Ž~ЛBJGG7MSONQWMPJPIPZZVL@@BGNGSSYTUYEJurb{žОбаЗxw‡xzov‡Šˆ––„™ŽrЉ[1ESUEPJNNI^\CG\]Ya[Q@55@?%,288:@YENiu”Ždƒx~‡ˆrpz™›МЮВД›‡Ž~vrƒ‡„ƒ„‰{z{‹‰„}t’mCGM<8;4)"2;1,!%%,<;Zrvtovnku~zpvomu”ЭНСТЅЉ’‡|•УЯŸЏ•Œƒ‡‹ˆ‰~‘”m>:F?480+:<:9<"%,GBc‹trv|rZdq…{tzvr{ŒŽ›МЉ™–ƒ‚zˆ™™›Ÿ‘‰ˆŽzzЗрЕS:PFI:0E;?3$$"277Bdvv‚|uin}k~~z~ƒ~{—Љ›žœ’ŠtpŒŒ‰‹‘•‡~ƒ‡‚‚„ЏЃ:02()-%#("&1:ETIWŠpUH@W[‚‡‡‚}phxЇЉ’˜Ž—”…px‚zˆ”˜œ‘„Œ—•—Ÿ‘НОF<11.4**€i941&$0,43.IrzbGW]Pavnv}|vb]{ƒ™ЄЇ”ˆ„‡‹„x‚……‘›ЃЛ{^v…–•iJ89G?A@,&&8522))CW[z–rn~^enxun||„qo˜œ—˜ЁЅz’ЃЂu}‹Ž”™rhА‹[B>JI??1()590%!-1;ZŽВБ—rux|~qedgm|}qЗНЂЊЎкЊ–Ÿ—pvrw}‰˜Ё•Œ‚}uWžž`;7C@745223><0&*-7Wvz‰opmY\mmcigajd{…Ў„|…Ј’‹””‡…u‚‚}‡‹Š„ƒ|aЄ‡i<$1@J5219??8%2*2^rW…Ž‚~jgmqjp]bn[”—zveg}‰ДЈЃ—‹…x~ˆz{ˆˆ„‚ˆ~Ÿ›~gW@@ZJ@IFB5,4,:?8%M]I{‡n[binjrrjit„‡‚„ƒx|‘ЖЃ”‹‘‹ˆˆ}б‚}v{ƒ‰‰ƒ}Š~U?87EEGB<>>75:,48CM”Љƒqjbd]EOvpomtvv€5ƒˆw‚ЄЃЅ’Ž’‚~‚~ˆ”’‚nq‘V8+8<:-(;>C>BEEA?>B<@v•Žƒƒ|S,Tkg`cqx‚‰‡…|}ƒˆ’˜‡Œ—Š…~ˆ…žВАЏžЗŽ„}S&->:.-41?”™•m`]hhbaca`u‚ˆƒ~‡—ЃЈ•Š—™‰x{}œЃžЃ•rwZ(0E2,;>@88)&)$%BN[m‹}rouqkeimgbv}}ŠˆŠŠŒ‹ЄЕЎŸ›žƒƒ”oœŽ–ЗŸ>&><:12.2153(14,&2355:8-+0:8?C@2,:N‚Œ{xoqqprrxƒ{~{}ƒ‰}v}ƒƒvp›ЁЎБЇxzxtmwŒ˜‡?081"+7588evzw|peddhhmqpghu|‡…‘Š|‚‡ˆ…ŸЧЛŒŽ•ЂЇxzwp[jƒ‘T.4?:EJQC:5>.29?@1*Im’ž…|vmcutqprjqu|x‚Œ…‰Š‹—ЩРЌx˜Ђ›–pqzrktŠЕЌY2>7EIE3!.(,&%)(>i‹‰vqx‚‚T^knnjnonqq‚••ŠŽŒžКДЎБАЊ™ŸЇ„{vtphvЃКw9+,(%72%#(4.15873,[‡ˆhgbtˆ’bb€гemproiqz‚‘žЅЋ˜••œЄЅ”ŽŸž{wwƒ{rqwc8B@?<>.+1747;9733*Awttwwqmacm||}vqpur›ЎВЈЂЅЈЈЏЈ‘˜œ’vqgnwognˆa120.+4;991%!Gz–zv|wohdinrimtxxuŒЄЗ|‡‘ЂЈЊ‰™}mmkkmumh‹„I+!0?B9(47;8844)$:n•ƒux}wPQ^bd^dtrpqx„‘‡{t„Š‘ŽŒŒУ‰ŒuenvcWbntŒ|?;E><3+%5949908C0"%,0,545>Hcvc`x‚‡…{w‡mVeg`]gqz}{{~——‰ˆЇРС^\Zgnu˜ЖДŒd[N7(1-0*&$$-5*")-EC;8Q`emz|zvvzz{upqognpttrkvŒ’Œ–ЌИН]bcYGONdw|}{`45:2-*!)*&,$%44Wx~}wxz{|~xwnvurnnoovxnnpntvi|Црheioc`Uaqx„`99:5),&$%!!**€!3]~{}~~}{|‚{n`kjbitx‚{xxtpvm^‚АЕ~xqopxndx…Ÿ’e*%#-!$!"1`…}„ƒŠ‘Œ‚wmq|ruv|zupheqwpr—Ш|}mbhjkeco‰—|;(5305+%2(-#*(.*Fr‡ˆvo}ƒ„„}|…wrw}ƒ}pmqr}~|…Ѓ}qdnvxvko‚‰p<"30#"-*%*$""CAJS]YMŠЌЛЊЅ’ИДпкабжкбЭЪдбШФЧЦТУУТЦЮадыЭœВЯуєцБЈУЦнg3;LOOLIJEA9:;>@3HE\ˆЋзнЖИЗ‘ЎЪШбднлзкрпмФгУСФЩЧЦЦШЪеЖЇЗзўў€КхзТИт^<`LIHLHC>514<<:>Cap‚ЊЌЉЇЇЊЦФЩажпсцсмсппНЕФШЮШУШЫарФДЁЮЭзЭЦЪЌЏўЕ\NOIGFGB;;<8BAECOPM;~зЛБЉЌЏЗНЮабзјцМИххьСФЯдеЭЦЩгесКЕЇсрдЯЭЮРЗТЏ@-78BAMHCPLIwдЧМmЂЛцаНжбШИЦшхпжЮзнлзШЧаетЂНРШбдаЮЮЫУЩНT[^MGA@CEHE@?ENSION@WФЛ~…ОекцмрИƒЌНШчычуеШЯаЭЩФУЩаКФФЦШЫЮбжзжСНY-:IMNIFJG@JGFHHNbc[tЉУкЧЌЪШЫЭЭкнЦОЧЭмтѓўѕюпЯдбЪШФЦЪЮЫЧШШагебЯОж’WSZSMGCBGGILCA>C@SV`—ИУНРУРНУЧШЭЦТОМЕИЪјщѓэхтаЪЛжћўпыйдЮЯггЮЩепЃSGWUPMLIHIOSGASSYPJMMFEIIJGGW]НщФЗБЌЊЈ•›ШНИЗСЧЪШШЦРШусррлзйлзЮЧШШШЪЯдеаЛЗжФk@C:9uЛЭВДИММИБЗКНЦЩмЩагбЫЧЫЯшўўдбмккзаЩЧЧенЧЪЭдлЇYFUTOFEE€ЛHIJGHIAE?Zn‘ЛгЦФЛЖЕЕЗЗЕВЖМЪЪЯгййждйшццусркеЩШЦШЮнКцгеюЭT+HgЇСЩУОЗЗОТУРИААДЮЮЩЭЮЯабдрпккмкЮИШСКЛЪьяшзлк^LII€[G>?850220;GLJ?ZЉФШШЫЫШФУРТСЖЕТТШШЩЫЯгбзпрзгездбЩжЩЫшЂНЭлйЦ•YFMMIFF@84;FЯзЪЩШЦООРНМСФШЧУСТЪЭабенркгжйкйаЛУЧгЕЛОТкшИrM9CA?CFE;@A?BLM—стЮЧНИИЛТШШТОРЛА‘ЄТШЮЯЯбзнммлсцёЫКЫЮНМАСЮйеЊaALUSLG@BCHHCAGHBP\ˆШжЫЧЌЇ™ЌЛНЛЛДБАРкѓцдЮЪЦЪлмлпррюЯТЪЫОИОблѓяОw@9OLGGC@??FIOZS„ЮмЦОАДЉЉБИЛНЗЋЉЉЖгяжаШСТФЭбзмппмЪВШЧОЛМЖСнюш™@7EBFGFFBJNPQSExЕМСОНЗЎЎДЛООМЕЗТМИдаТЪТСЩбжлкйтўшЮШЫМТМИБФгд•H7IGHGLJMMONUSNJMZvЎЭШЪЦОКИЗИКРЦЧЧШШУРРТТУЦШЯжкйймжгЯЯгУЧФЦЯхђћСYFSHLMIFCCEGLSMICLbВбЧЧЦСКЖБЖМОФЧТЧШЫЪЫЩЪСОУЭЮЕВкпмлнсчСТУФНОглКV2CGFGCFJLLJEGCC:7V™КЧШТЛДЋЊЎИИ€бЗККСЩЫЯЮбЮЩЧЫЯНк§ёЭелсуМРУОМЛФцЫk>CGMNWZWPMHC@FHTJGuБккЦСТМВБАИККИНРЦФЩЭггЪШЯЫеяхнЖЯеннТНЛЛКОЩєйtAMLLPIGG@G@8:9@G?GwЕЪЕЏВЛРбЈЉЏЗЕВДВЕИОЪйпрллйлтссмллкйЧШЩУТЛЖРЮ‚NWSLJBA?BEJIMMLIBEeЈЭИЗМСМДЎЋДЗЛМООННЛЫррцуйжкрцхпйаупЛКЛКИЛКИЧŽ>3LFFABA@IJLHGBA0;bЅкФСОТРЖЁЇЎЕБААИЛСШбгтёзУбжлпмзЭЧкРЖККДВЏДЕеМj9:STOGFCLNNJGBB24Z™ЫШОСЦУЗŽЃЄЎЌЊЏИНСУФФЭЪРРЭгбдедеЭжРЌЕБЉЉЎЕЛгЏ]22NOLJGFJHHLNPQOP\‚ЖРДНЩгЭБ‘ЁЇЁЉКЭЪШУТЦШУЈЩгежммКкмдсЌЏЎЅЈДЛСзДcP[LH?BEHMONLJMTUJTwЅЦФОЦФЮО’”ЅЗгмЯЫЪЦФФЩЦЛп§уплмлншаЩБАА€жЕЖЕИЪНvF8GE@>BAMJHEBFPP?\’ОЛОчзыеЫЛЕЗЛЭЪЧУТШУРНКЂИлнлжбзлмбТБЏЖКИЕБЖхсŒPBINIHEHNH@@:>HICL{ИОТФМЏНгФИКНЦУМИЛОЛКИБœЌССУЯбйнпкдЏДКЛИЖАЗлзŒE*NSOJFBA;8:;:?AEFGLE{ТЮЖНШУЗФЮМКИМКЕБАДКЖДБЗЛМЪЫжзгжпюНОИЋЊЎЄЋбхШ‚5(B>;9HFIC@FCCGL]’КЏВКОСЩЭЯгУ›ЇЄЋДБЎШЛИКНН‹Ж—ЋЭзннЎЋЎБЏВМФЪбТŽTMSUWTOMJHE?BEAB8:SŽВЈЌВЗНСФЫЯАžЅЈЎДААДКНОТЪЭОЖОЫтєчЌЈЏЕИЖМРОВВ”^CIJIHFF@;;@EILMNY^ŠЊЋЈССФФУЦгЕ›ЋЎЎ€LЋЌДИОСРЧгжеаЭпїыЈЅЈЈЏЕгтсУЉ’qF>FFB@;:9;BJH@FZ\Qh‘ЅЋБЛРСНРСНККИЗВАДЗИЛКЛЏНежежрьщАЎЋЄŽЅНЧУД…INPNGB?779;ANAT‰ИЦСУЦЦУЦФНИЖКЖВЏБЛУТРОРМНМИžАйыКЖЕББЌЏЎВИжЦŠA(>AB@@8795873:?>9H‡КЪТУШЫЮаЭЦНМСТНЕКРУФРКБЏВКНИАбљУНДЏАБЋЇЎЗдеЇU?QJC3;992+1BC?aŸУШЛММНФЫШЦУУШФУРРЩЫЧНИББЗКССЩцСНЕЏБМНБЊЊСЭЅZ<]MJkpmhjpŠŽœœЌАНДЖИЛЖЖŒ}ˆ–‘”Ž›Ѕ|v›ЂЌ›Ž‘r{с˜^WTLMJIJA:>;?FISLMI0bŸ‹pw‚ƒ‹‰™˜™ЈрФŒСЪЮ‰œЈЄŽ˜ЁЎЌ‚jЋЅœŽƒ„’20>LFEFGF@B>49HFEFNAbœŒ…e>@p~ЖЄŽЎВœ„‘ИЛСЊŸЉЋЈž™ЏЎv„˜Ђ›‘˜‘’‹˜Sb[MHMG;ECEE:ILEHOP>GnŒ}AJ‡ЂЋВЏЎ…T„Š˜МТЫЦЅ‘•™ž‹‚ŒœЅ‚•‡’––›ЃЉЅ”–G,;OANAECLALIMEGL[iUd~ˆЊœu›–Ž›žЉŸŒƒ‰”ВВжчЮЧЎ™Є•”‹Ž”‹’›”Ž”ЃЇ›’‹БU`aMJEIEJIUNB7344JUTk‡Œƒ……ƒ‰•‘”‰|‚ŠЃлажаВЕЄ™‡ЕзчИЭДЄ›œЃЂЃ–ЄЎ…UM`OPMIIJSYTM>@AF\Z{Ї‰ƒ‰–„xxˆ—‹ƒ‰‰ˆŸЁЋЩИЄ”ЎЈ”—ŒЏЗЕДЋЅ˜œЄ›ЪјРqSj][VFSTOOGG;HFNJ\|Ž”–Šˆ|„ˆ•›‘‘ŒŽЋДДЖЏЅЈЂŒˆЁ›ЅЊКЏЂ”™Ÿ›ЁУЕL0MPE@LHGPSrАаЯБ‹Š‘‡„‚‚x}ŒŒ‡ймКТЭњФББЌ}Œ”ЌЗЎЃž‚}ЇВБvPL]bTCC>ATTVIA>AEq–Ž‚…wu|„v|tzƒ}”œЇЛ‘‘œКЄЊЉЅ››’•—•‘ЂЃЇœ˜ЈЖ™L72`Z[OLOOSWLVFNHxo™ЄŒ}~„}…w{}pžЋ„nu‰ЁЦФНДЁ™Ž›’Šœž™ЁЂ‘ЗЛ–nTVud\]bVOFNNPSO>Zk]Ћ–‡u|z‚‚‡ˆ‡u‘™™–€П™ЏбНЃЃЂЁ—™›‘ˆŽ‘˜ЁЃЂ‘Ѓ•wOFPPTYOLHNNSONTMS\ЈМŽƒ‚zvu[d‹‡~‡ŠŒˆ’”™ˆ˜ЛМЛЛВЌЈЅЄ—•˜˜”ЂЄЊ•„ˆЎЉnGGPOMSPOOPS[VTNTLIpŸ‡‚pdP^avz{|‡‡Œ•ˆ‡КаДЂЃЈЕБЌœ‰–ЁЋБЕДŠ›УКa8FU]\WYSHPMTJGQNGZMm}ЁŸ•qanmzz|ˆŽœŸ’ˆw}ЄУЉŸ˜˜Ÿ——ЃЉЉЩОФДЈ”Ђ’bGITZ[\PQNTNUTYVQaSIŠЊЇž‰`Cq~‚u„Œ’žž˜‹ŒŠЁЎЁЁЉЎЇ˜–•ДШШЪБЭЈ™—k9PZ^VWLLY`OVSPPOMGQ’ЏЋЇЌЈwjvz}wu{ux‹•œ’”œЏСРА—ЂАЋ”‹˜АЛИЛЅŸ…˜k9NUYQTNGFUJQOOFHQIA^nndxwˆ{wwvtxƒ™–˜ЌЏЁ––˜АЗ”w|ЃЃ––Š’ЁВ˜—ŒВНŠVE8PIG@HEOSNJHIBA:8`’|}}Љƒxz}Ž‹•Ј’›БЇ•‘–˜МучЅЃБЗЅЏЖ™‘œЈА˜˜ЄЈ…OJ[YUNHJCNQNBB>IC@VUk›…‚„v{}}xvˆ˜”ŸЃž˜ЂЗЫРВВЕЎЃ”‘››Б‡КЇЌаЏJ-7QONELJLIIGGJHHBWkz”Ї˜‹zo~|xpz”•Œ•ЉЇЃЈЂВФМЖБИСА˜˜„‰‡™ЈНЋ™Ъзw@37BLIJIOIB91>P@8CLPF;GzŒ’˜™˜—‰„…ŠxvŽŽ‘—ž–˜™ЄЇКНЈ•ЁЈЊ™—ЂœžСn„’ЌЌmNBJPNHMBCCF>>EG;:J|—›ˆ‰Ž—ep}ƒƒ}‡Š‡ŒžВЊЄЂЋФУЪЪЧНИЕЗ–‹~Оа‰H?CINMHGEFHGNIIN?IgžŸ|xƒ™v|{{‚x„~Š•ЉБЛНАЅЋАЖОРЏЉБАސŒ”‰…~ŒЂnHZVQMTOFMNMNGJNMG@O’ЈŽ‰…‡Ž|wt{‹‡Š‹Š‰……›ЕСУЕВЎАКНТТЉЌЗЈ‡‚{…‚}…•p83GMLNALILMM€eJIA!5ZŒЉ”ŽŽˆ~x|w}u‚‹žЁИШЏ–žЎНФРВЁЌ•z…~‡|~›–];;QTYPIFNQQOJEA4>QЂ”„Ž‘”Šegpwzt~„Љ‡Š—Ёœ‹‰—ŸЄЄЂЇЂžœŒq}…umt|—ŒL-1SUUTLJLINHPOVNUTk‡Š‘™ž”|Zgker„–—‰ˆ”Œp’œЁЌДВАЕОДИutmopz‡Ÿ‹UTWIBMHGFGPTOMTUTI?]{Œ’žb]nŒЃЋœ””™—˜˜‹СчФЖБВОЗЭЊ—~xu}}{‚˜mE;GE;ACGOOMEFTZVBT„›…‰ОУжВЈ‰‡•”ŒŒ•˜‘‰Š„mЗИЏЃЌСЦЏ~~„ƒ{w‡РЪLEOQSJMMQGF4BEIGMGo’‹‹™„‰Ї™~|‡ž‹~~ƒ‰Š…|ht‡Œ‘œžЋИСЊЈnn}ƒ„xŠЏЊv<$NYYUSH?9A@ACHIEEmЇЃ~uƒЉЧБmkwtŽ›˜‘pvnqmtx‹ЇЃЄž‘НжеЪ~Œ—krxƒ”{MEe\UPTGE@:;AEGHHAASttkwŸ•|eopnƒ‘Ž{nwptz|ƒ‰БЗЕАУШЧЧv‡‹‚vŠ–ЁАže.IUa@A??HA;FCOMJCJPPUFAd‰reoЃЅЋЇ‡z{}~~{v{‚Œ…ƒ‹˜””œЊЊ€rКт—”|{}‰˜ЃžА–oSFJOHJF>C;8GJLT[\Pe‚qruŠ˜œ‰rwxzxwupjo|z{‹”‹’›ЕИЗФг}vv}Ї‡‰ž•b3;Sa[TGIFA8?BIAN78VЅЂƒxˆ‰‹”ŽŒtvx{zvhpqx‹ŠŒ…ˆ‡•ИгЩРzvuxw}‹ЄŸwC@TSSGIJMFJOGHMLINSx‚{‚ˆˆ‘•™—Ј”hdoz‚}v•ˆ…ˆ–‰gЃБДСvuxx™›ЄŒqLMUUQYWOJLBFC>F;Io‘Œ‘ŽŽ’Œƒ}q~‹’‹ˆ‡‹ˆ‚o‹КШ‰Š„‡|zt’ЌŸr5%EOIHHCC>EI;<4AGMAZ‚ž›ŒŒŠŽ‘’—’‘”’Š}Œ’–’ƒ{{ƒ…‡‹Œ˜Оސ„|ˆ‡ƒv|‘œƒP4LHJCECAFF›B@Uh[Q]ЅЇ‘Œ–’ˆ‚ˆ”•‘’•”„~|‰Š•‹‹ƒž…‰v{Œ‹~rvtˆ‡P$:AAEHOHNQQS:Oa[TtŸ””Šˆƒut~‡‡Šƒwpwwru…‹ŽŽџз}|}„‚‡•’…‡БЪЁ[;EOGFJLL@@CPTUSI@B?Щ§§љљ§§ћњ§ћњ§§Ућљњјњјћћњ§љјљћ}{kndЉ—‹{‡ЏцСM:2EY]UL>>CAFEHPQ``‘љ§ѕѓєѕѕїїѕјјњојћћљћ§§њ§§њ§§mtvruvЈœ‚{iЁгЫЋj9@HMMфLGGCA@5A<>VSmхћ§ћ§ћћјљћјїјјћћјјљљјјљ§њњЪchu}‹˜ЏЂ‡‡„‡ŽЈЏ›JMQWY\SFGCGHLFdhq\bЕљћљљћљњљјјљјћљ§јљљмјљїїњїїjtqz””’އЁ{ˆКЖЁkUZSZULB@AENNїE@MO-\ьћѕѕќїѕїјјњЫїєїїњјѓљѕѕїїqhq{~••މƒ|‚›агЂ\F@JNOPNNGBMNGE@GGHTУћ§їїўљїїѕїѓѕєїјјћљјјд„zz|}|Š‰’Š„ЅЏМВž‰^BHYg]OHFCC<7CENOEJ~ђ§ћїїљљєјћјїјњњљјљњљљћдљ~{z‡‡„‰~tr‡wœЃДЎ–ŒdT‰^+1?>BC1+!B]L2BGЈћ§јљљћэљћћ§љњ§њ§§њћљћћљћnooйxŠŽxrrВzv’ЗЅ{[>dtM<@9@@<<*3NIB85wћћ§њњјўњјјњћљњ§§ћћњ§јwvvй„ŽŽowvm]PtЗЃxoeuN>-@??C@EC;9NNUT`аћ§їїрњјјњњјјњјїљѕѕїњјљћћb8Zgm’ˆ…„}}…рИБ‹dA8HI>;53BCHIQV[<7xљћјљјїљјљљФћљјїњљћћљљћ„ebnЏŸ™…zko|xu‚—ЌЩН•]QULC1,78EIB,BaQBAVй§§їїѕїјљљЖјїћћљћљњ§љљћњi@4N”ЗЄŽƒ~xnw|rtqx‹›’mZVH7--::903;FNJCLO‘љ§љїљїјљљњ§ћїїјјљљћјј€Иљq{ojabwƒrxz}˜Žt{ƒЎУВVTQIA5A720(&4;>:IQdмљ§їїјћћњ§њћљјјћ§§ћњњљћhqw`Wa}›Ž…ŽЇŽ@UЉудƘmIEAC7;9+)(;JFJSZ:A‡ыћћјљњљњћћјњјјїїњњїјљ§jwui^aj|}}ƒ–ŠHYŒœˆ‡wHAQGEPEA9E?@GNIJPVPљћљѕїѕїјљћљљЧњћљћљљћћ‚|}xqjuˆ‹„vqvz‰‰z’‰|‰Ђ}VUICC>7-217HIMOWI>Yйћљѕљјјљљћљљћјїї€ѕєјћŠ‡ƒvchƒŒ~nnrvzx~‚ˆЗЇYE0%9IH?8>@CNSVSJVU—ћћѕєѕїњјїјњћљћљћљљ§њutv{zwxˆŒtqw~{{|}’—œСЪŒ`N^HNHB9>?>HLLHPUHhыћљїїљћћљћћљћјљљњјљј”wtzvrph}Š’ƒ‚xqjuЌЈАЪША{VNLPUOOPSOOTMIIHLOНјћїјјћљјљљћ§њњљј§§ћЈЃƒjtjqp‚’ˆ‚||jtˆЃЏЇДЧ‰^?9?A@@CHVj^{щ§§љѕѕјћљїћ§ў§њ§§њБЃeuz}~„…‡ˆwoknoЂЇЇЉЗ–]>FVJ7CJTG@B;EI^TCI›ћћѕїјњјњїљћљњњ§ћћ§ЌАq]w{ˆ‡ƒ‡„‘Ђ‡vnnr•ЂЃЉЉ›a@S[OAHHQMNGCJLTVQGeцћўјћћјњ§њ§§љљћћХЅЋ„tŠŒ‚}{ƒ˜ЇЇoiptw{…›ЄЉ}Zd^t^:85BIMMJMMLJAQIqјљјїѓїїј‚њјљћњ§ў‰—Њxou}{‚Š•›Жˆ`hv}z|tˆ‰”ЖСЏ…db[JF?BAFAFBC[aAћћ€…їљћљљїљћћœˆƒ…ŠŒ‹‘ŒŠƒ‹”•”•to{|„‡‚ƒАШкдЩЂ\Lb`WQJHHJIEANJOW;PЈј§јљјјњїїћћ…w„Š••Ž•Ž|„|wzv}||ƒ‹‹Ž‡ЊТЧаСАuLHYZPHCMJIHGJON^MN~ј§їѓїјљљћљŠ~|‚‰ˆ‚‚‹‚~ƒƒwnkwwxˆ‰Œˆ‹ЖЪпунЈ[HVYOIFAH<>ECFJCMI`л§ћѕјјћјњїјŠŒˆ~Œˆƒ„…}xojkignwvƒ™ˆ}vtЇЩцлеФNEHLE;@CCE9@BFJJBE˜ћ§њњћљјј…љwir„Ž–Œˆ‡‰‚zrppjkkpz‰–—Šud\ˆЊЛЧСФ’BJ[I@?A?HJEAA@O\FAgэ§њјјїљћљћTcv|Œ‘މ„Ž•”•—…hekivŽŠ…’„uoЄБСгЦА[BVQCA7BMQLL@,F[QUgбјћїїљ§ƒ>&G•Ѕ•ˆ‹‹Ž‡{hcgkqw~‡‚}„vqi‚ЁЕЦСОQJOG>;AFE?GGANmnWgЇј§ѕёђєѕјљz*,~‹’’‰…‰‡~rqj|Š•„vz~|vx„ЄЇЎТЯдК\PYL?ABHHEOQ[`d\Vb—љ§јљєјјтћ˜zeŠƒjv‡ˆ„}~u––’mpxzr„ЌЃНЗУЭvQkTNIAICCFMHWac^JkгћўјїјјћљƒmJduwvwruwƒriVev‰Œ|[^\oz}~˜ОеЧльК\F88AIIFBHIMWUUњOBЇљљїї‚њјЄŸˆmz„‚vjw‚„vq}„‰‰‹~wtv‡ˆƒ‡ŠЎКФпЪ‘\IE;AGGCFHFNHJM`džјћљїѕјњј’‚‚vr…ŽvvwƒœЇ’rgpv{vphkž‘‡ŽТЧИНШШЋa<)5AEFFLNNIBJZMLuаћ§їїъњЁŠunor„–•‹ˆ‘САЌЌЖ‹rv~~лqjVx”{c{ИИЛМЧСvF84ACG<>CEALONCILАћћїїРњјЊŽv}x„”‡{ŠЅž…twwx|ƒ~oPx˜”xQnЁШЕВНлрH@-@>7:AFFHLPNCGB”ј§љјїї€ОЦАŸ‰‚‚ˆ›„„Ž‹‰…~Š‰xwЌœzov‡ЉЩШЮмРwLWAAB:JGЂјљѕїїТЃ‹…‰{q‹•pz…„|rmqjqnqwzx}}|kbgVjžЪнчєчŠE<11Eb^PGLFACQTjaŽёћњїїТВЄ’|}}Љ‰Œ”‹~~{w‚~vx~‰™œŒtvqxƒ–НаЦЏm@C^WVWVNPH:;ALG^Uoхћњїї€БЦЗЌ|}‚~„ސžˆ•КВvwr‹›ЈЖЊŠ}{p^uЇЫсщЋPHMLLO]]WT47…љ§ћљњЭŸ}‰~rnv{‚‹„‡›–‹„„‚ƒ~wz‰Ž~~ŠžœŽ‡ЇЯЛРкмŽOYTLECF;LQTTUSQ\Ptг§њѓѕЅ•ˆЇ|ƒ‚‚„u…‡‰–”‹’—Ž{q~ƒ{ŒœЎЄЁЅЁЅИжгdOGBBA8HQMLMF7[Зћ§єѕАЂЊЧНЃ—ˆ|xxm]erˆ‘Ž~|~zwzz{„‰”ЉЏЁ…ˆЌМгуШTPHEBE7<‰ј§њїЁŸЃЌАЃŒ{|ˆ‰|‚’Š„}~‹”‘qotv‚‡znimt{ŠВйђдˆGI<<@CBI@MTNJHMCPjйћ§ѕŸЇАМЪЌw`ux‚„ƒ‚Œ|{‡•’qL]m„kkxƒ‹‰›ЗЪЇcZ\PHG??ГBIFNWTFS\Бћћї—™ЌТРЄv\knxƒ‡{u‚ŠŽ’‰~ЁzPdw{”•m™›’ŽЃСРqVIBB<44;G?AGJM??G‹љ§єеЭЧСОРФЭдгаШЪслЃaAUYNHLJM@?ILVYVG@C@Цўўћћ§ћ§§ўњ§§ћњЪљњћњ§ћћњћњШСКВŸЧседЭЫЫхўб‡PB8JSa[MA;@AAHMQVde•ўўјїїјњљљњљіњћњћњ§ћ§ћ§§бћИЖЗКЎАнгЮФЦЏаязЌe;BQLNLFFGLF:BFAI]^}юўўњ§њћњћњњѕћњћњ§ћћњњћ§§ўДННЮЩЮЯЯЫЩЪШЫЯЦЌŠSVVQTVNJFHJOIVgtwbgЖўўћћњћ§ћњњћ§њћћ§ћћћњјљћљљдЖЛНРгЫЯгбаЯЭЮзкЮЉr[^YYZPGEGIOZSHBLO0^ѓў§њљјљљњўљћћћњљњњјјљзМДОТЦЪЮбЭЪЪЭШрєђИmNIOOUUWPLHHSLCIHHMSЦўўљљўјљљјљњћњљгЯЧФУЧШШоЦЩЫзрьтТžeMQdraVMNNJGB@LPQIO}§ўўњћћє§ћњћњњљћ§ћљћћвњћћЫЭЫЩШШТОРУТБЮзцызЌ–k^Œe1:>HUI:5!@dO7GIЊўўњћћўњћћЩњ§ў§ћ§ћ§§ћћњњћњЦРССЦТОЛИРЭђЭМжюЩ‹\Fo{E99A?9;;09SF?9:xўў§њљњњўљњњШ§ћћ§ћ§њћњњ§§ћФНЛОФЧЦССОУСЅœОщЪ™ƒpivV<3EE@@ELJG?ITTUgжўўљљњўљњњќљјњљљюњћњњВ‡ВЎБЪЭЭЦУРОФУУсЪЛŒhF98;>FHB3AiW>F[лўўљљўњћћќ§ћњћћў§ћће§АxoœЮюугЧНМСЛЛОИВЋЏДœn[YJ<;:;>AC;:EUVBPU˜ўў№ћјљњћћ§ћћњљњњћћњњЭћОУЗЏЊЉМЩЩШОСШсзЖСРЭеЗ~TVQFB@?<738-*CB8VWmпўўљљњњћ§§ћњћН§њњљћњКОКЕЏЅРнЮЪЩЮгчЧƒхўмМ–jIAC?<>:9+,AGMLSaAC‹ѓўўњћ§ў§ћњњљњњћњљљћћїЛЗЕАЋЋЊТЦЦчЩЪпл‰H–МБ’FGVLJYAH;?HIHHіI5@Zдўўљљњњљљњћњћћ§ћћвњћТНИЖДЖЌеЧУОНУЮмН–КкЩЃЄЁ`MVTY]a?BGJHLOLMQ^U…ўўњњљњљњћћЧ§њћњћћњњЪШФОЛЖКЦЮЧМЖМЧШЮРкрРž”Љ{\TNJE8>909A]b‚’їўўљљњњ€ћ§ћњљљребЯЯЧРКЛСЧРИЈЌДЖМТФЫЫЪЧУШнЦgIeZSLHNMSVVUQMAAIIJЁўўњћњњљћћ§ћњљњњжгжжгЭСНМСТОЕЖКНТУФФЪЫЪЩШЦан–UVV;JAFJPVVWVQJQQNHѕўўћ§§ћ§§њњШћйлкзбЩНИКОТРЖДЖЗЛЛИНЩЮгббЮЯжО~khdZIJLOQOLJGEHJAZmФўўљљћћХњћњћћезжеЮРКЗАБЖМФРРОРЖЕИФЪЪШЧелэњКbN^YSJLJJCHIFCGPL^Ihўў§љљТћњ§§ћ§ћЧЪЩЮЭЮмЌŒЄЈЃОШШЩЦУННЩЫЫЧАйыщѓеƒMELMJHPQSLGEMPSB?:Vхўўјљљ§њљњњѕћФФЫЭЮайТБААшУЩЫЪШЧМА—ДЭЧШсэпчьФpJHMOOЏTPMJFJOPM`C4žўў§ћћ§ћ§ћћњћ§ЭаЮЮааЮШУИЖЛУШЧУЦСАДБШыылезйёїлˆPTVTPMPIAHNQTUQ\`@aцўўњњгћклкдаабаЩООЫгежерЫФРСЪтггЯНЖмўјЌd[bZNMMFBBLNNіLTeZ1ˆўўљњњХћњћњћљнкегежггЯЩШЫшпллжЭЛНЖЈЫеЮЫЛЖйљўрqCIN^WTICCFCHGGPcjAўўќљћњћћƒњпйдааЯббгЯЦЧЯждЮЭжРКЖВРЪЯЯШуђљёчЏ^Odb]UPIMPNJLGLP\@UЏўўњћњњљћњћњЮУЫбдйзгЮЪЧУЫЯЮЛОСТЛМУЩЮгЮСбххыхЩvMIZVPGJONMPOIJQdNJўўљњљњћћХњћзЮЦФЮддЮФТСЦТСОМИЖЖМФЭдгбЭЩбчюјўяЋ^IVPPMJFGLHEHGF?NHdсўўњњРљћњжЭЩЪЪЯаЫЧФУСКВВБАЏЖОЛЯжбЮЧОИйэєђыЭ|LIIJFC@EBA@9AEGFAEŸўў§љњћњњХћОЉЖШЮжжгЫЭЮЮЦЛЏАЋЋДЗЗЩббеНЈœСжкурлœEM\NCE@ABLIABBHdHCeѓўўњњРћњћњ’•КШгзеЩФЧЯгЭкЫВЊЌЕУЩЮЭЩгФЖЊЮзйнєщО]FOVJ>?BLSTIH7G[UZmжўўљљћћє§ћrJwмёзжгЩЫЫаФБЈАВЗМЦЫШУШШФИЉСЯдкчтк›[MQMA@FJIHHMBSqt\nЎўўјјљљСњћЌUPЕЩЩббЯЫЧЦСКЗЕЧФЧаЪЦРТФНКЩьнгзлыѓШbSdOLHHIMSTWYdn[^^œўўњјћњњУйСБЯЮЗЩЭЫФТЩШОТЧЪаддбШОЛСРНОЭЮЧЮккщх}TpZOHMEHLNOO\ee^OjеўўњћњњФћЧЕДКРФФУНМТШЧОКЉБЗЯаЧЇЗИМССТШЫуэуљўТgN:9IJGJNHJS[aYWWGЇўўљљƒњтнФЎОЦЫЪЦНЛОЩЪЧРМФЩЭЫЧНЛЛТШЪЫЪШдЮйхѓп—dJF@CFIJNNQOOIMgcŸўўћљњњљњгЦШЛЛСУЮЮШЕМСЫуьрУЏЛНМНЗДЄйЮЭЪЮщымлххИi<-AAGIJJOOHGITLO{йўўљљФпЯДИЖЛФЮгбабюзкжчгДЛНТРНББгУЏИдлжейщЯwG:4>AFC;EIGCHOFLNВўўљљСњнЫРЕОФЭбеЭЧЦапЯСЛУНРФУРЕ—ЗжгЛ—Ўнѓйззєщ˜L;2ABC@@GMMQUSGLC–ўўћњљљДѕцйЭЩЪЮгбЮЧЩЭЭЫШШУРМФШЦРАзэпРБЕЦлчучљйŒPZCFBAEGJMMNUZYPQzѕўћњљњњыћцаЭЮдждЮаее€ˆЮЫЩФОРЫЫЦМНФЯбаЮдажЯгняяЛcQMB@CSVTOPLIPYjziйўўњћћљёшезгджжсСЦЩаббЮЮЪШТРРОМОТЫхЩОЗБЦкцтынЪƒcU5;,FWNFGGHHAESIЉўўњљљњлЯЮЪУФЫбдЧТТШЧУСОКМЛОММкСРФСАЇЎ”ЃФчєѕўѓ‘I:33Ig[PUULGLSUa\”њў§љљТщпдОУЦЪЪЭЫЪадЯУФУТУРУТУЧеЮезЦЏЖДКОЭрчтЯ{BMYTZ\[WQPA>BNJgZpшўўљљ„ђылКШЧЧФЩаллзгЮЫрѓьСОНУЩдйлюсЩЩСНЌЮсѕўКSPZPP[^b^W4?CJh…U;ˆўўјјљѕчЯСЩШФУЩбзкйбааежЮАФЦШЫгйеЭЪабЯЮНекЯуњЫcHgLGHHTZWVWTIPJ;8ŠўўљјбЖЭЧРООУЮЯЮЪЧШЯаЯЪЪЭЪЧФЧЧЦФФЯегжЭтњнмёы•W`PNHCFMELUZZTO`Qvкў§јјлЦУхнОЧЦЧШЪЦНИЦЭЯбагбЮШРННТЦЧЭежнпмкжешсЎmV?’ўў§љрптунлзЩЧЧЦФУФЭеЯЮШЦЧЫЭдВЖЗТЧЪСЖЏЌКМЩпєљн‘OF?@?FNIHINSOMLFJkрўўљпмцшїпВКСЦЩЭЩЩШЯЫЩУФЦЩаБ”ЕНЧЧСНКОЧЩТУУЯйБi[[WMFC@EMJJT\YG[`ДўўљемтюђлЏЁДКСЩЪЦССШгаЭЪЫЭрК•ЕНРлнЭВОнаЭШЩЧпа|QO>GA;:BFFAHSJ>@F‹ўўћг˜’Ž—œЄЎЅЂ›™УаЄjJcc^WU``P^^dcoobPWTзўўћ§§ў§ў§§Пўћ§њћћўћ§§ў§ћ§§—|qЃНЌЅ™‘ŸЧја‹VJAS^gg`WYTOWc^eh{Ўўўљњјћњ§њ§ћћњћћЭ§ћ§§ў§ў§ў§ў‚Œ„‚ƒНЌ—•ЖсеЖqHQ^`b`g]a]U[SYSVuoŒћўў§§ћ§Шћўњћћ§ћ§ћ§§ћћ§§ў§ўz…’ЁЎИБŸž˜’ŸЖОЇ‚[^edokd\[Wa]ge…ƒwvЩўў§іўћўћ§ћ§§ў§§ћњзўњњƒ‡„ЃЅЊЇžž”žЏУШАgpnnukZ`\\bjn^Qc]>T`Sgo~ьўўњ§ћ§ћў§ўћ§ћћФў§§њћћ§}}xuz•ЖЅЊ›—žЗžUdЧєкЕžrWUPNQJPGITMV]`oqQSžћўўћћў§ўћ§ћћўўћћЮўћўƒŠ~xix}‘•œЋЅV"nžЅˆŠNPe[`aUTJL[]aaZZLSiмўўњћћєўњ§њћћ§ћў§ў§§гўŽ{||ЌЃ‹ƒœЉ‰`ŠЅЌ—›ЁePjeih{TQVZ\]ZYZdrg—ўў§њ§њњ§§ћ§ §Ч’‹…œЃœŠ‚А˜Ђ‹ЌЕ˜‹•Ў‡eia[YMLUOMTbhdeteUjыўўљ§ћћњ§ћ§ћ§ћћщўћў§§ЄŸž•ƒz}’Ÿ‰~}‚„‹‘””р—žЖЏj[C>]adVIUSZhinmcumЎўўљћњ§њћћУ§ћ§ћ§§ў§ў’ˆƒ’‹‰™Ё‘ƒŠ‰Ž’‹ЉЇЇЧа—pd{ceg^NT[\\gd^do^}њўўњћ§ћ§§ўћ§§Фћ§ћў§ўЌ’„Œ‡ˆƒ–ЄЄ˜–”Ї}ŽСЗУлгИ‡ecijoggjoggh`^hbbdеўўњњћћ§ћ§§ўў§§Яў§ўНМ}ˆ…‡—ЅЂžŒŠ‡‰ЃœЂИСЕМЪ•uU-[WZQch`ZTPciq‰}‘ўўіњћљ§ћ§§ў§ўўШ§ў§ўФД{ŒŒ‹”›˜——Ž{……”ЗАОЕЎНœhQUjb`[ceVQQOYevj][Џўўњ§њћћљ§ћ§§ў§ўў€АЩЯƒpŠ˜—•”™ЉИ™‡ƒ‡„ЂЇЌАВЌЅqPeueQ\`c]VWN^cgdaW}ѕўўћћ§ћ§ўў§ў§§ћ§ћ§ИР”ˆ—œ˜’’˜ЌЗБ•ƒ‡…ŽˆœЅДЗЄЏ‰epw”oJVZ\YaY^begcrvжўўћћўћ§њўњћљ§њ§њ§БЋœ…’˜˜•–˜Ё–ž‡}ˆ’”ЄЊКЭЫЇdZnm[@§§ћљњћљљњњ§§ўўњ§ў§§ћјјњљћћњјћћљљћњ§њѕ§§љљ§љ§§љњњњћљњљї§§юЩOB:A.#ћљљјњљљћ§њ§§іњўў§њљћћљћћйљћљљћ§ћћјњљћ§њћ§њћјћњјњїѕў§ћОa4?G?9;јљћћў§љљћћљћљјјљћЬјћљњљћјњљ§ћћ§њћћњњјјћћљјљљњњћћљћ§ш\N;;BAAEљћљћљћљљћћ§ћћљњ§ћћ§ўљћћ§§њћљљмћ§§њљљњњ§ћљљјјї§§сV,GG<0EBMgљљћ§љљїљљўј§§љї§њњ§љњ§њ§§яњ§ћјјњљњћјћњ§§љљјј№ў§ћчŒF7@&?@FJIB§§ћњћљњ§§їњўў§ї§њ§ћћ§ўћ§§јњ§§љјєљћћпљћїјњјјћїњ§§Ъ]8><@;?;9FCH§љљњїјљњњ§ћњ§§њ§§ѓњћљљїјњјїјћњ§§§љћљљшћњїѕїѕ§ћнV1?B);5598-.&љњњќ§ћљћћјћњћћљћћўљ§§љњћњњћњ§§ўќ§љњћћјўђ§ц~B38GHG:<8;..щ§њ§§љњћљјњњј§§љљћјљћ§ў§§ћѕњєјљћћљљњ§ўўњхљћљј§§Ъe82.43158;4;CFFћћљљћћљяћљћ§§ўў§§ћњљїїњћ§§ђљњњўњ§њњ§§ћћ§ћћхдn3$B]0-78:44?9љљћљћћ§§њ§§ћњїјђєєјњљћ§§њћљњєћљљќїѕїјјч§ћйW8+9L`SSe938C<@3ћћ§§љљјўљјјњњћњљљћћ§іћјјїїјїњњјјщњјљнd]G3SGCIILF7,.?5A^ћћљ§їњ§§ћћјњјћћ§Мњљљјїїјљ§§ћјњјњћћ§§њўћћОm95?AA((3+91-&$ћћљљјћћїљјљћћњћљљ§ўћў§§јљћћйљњњћћљћћљљћњјћћуgbL9?@**$0973:,$$&љљћћљњїјљћ§љљћФј§§њћћ§§њњљћљљћћњјњїјѕїї§ћљƒOFHNLM`+43:AB82*788;јїћ§ћљћ§§ћћљљјёњїљјњњјњћћ§љћћљљоћњњѕѕљћ.375MOMG7?@>FM<0$:^POћћњ§ћћљ§јњћћШњћјїјћћњћњјњјјљћ§ћћјљїѕєћћљЊYV]PSW]PINSP@?SW-4&AI@јїїљѓјјуєјљћјљћљљћћљћћѕљљћљћњјјїљћјј§§цЎZ:%,NgQPGAGJMBFIP[OFN}‰јњњїіљјћјљљћљњ§§ќљјћ§§ићјјљњ§§њњћјћ§ћЅFE<>8@>EFCAIEA-9H>ig,F–‰§§њћљјјњљљщћјљ§§јћњљљјњ§љјљљјљїјљћћк‰09@AEGAB:CBGECBE7*99O]Јхдћїњјљјјљњ§њљљћћјћћљћћюњћњјњў§ћнq;?94AQNAAь94+44GEGHEaŸгяэљњјњћћў§њњ§ўћљљСћјјїјјћјљљјјѕїїѕ§§й^3E@7:EJNHFI92073IYB@AЃѓёйЭћјљћљћњњћћ§§њљљњ§§ўљћћ§љћ§§јњс§ћћЋt\YY<5AAFB@WPБјєеб§§ўћ§§§ћ§ћћћ§њљјљљњш§ћ§њћњ§ћў§§ћћњћћ§§ўћћњњћћ§§ћўўў§ўў§ўюћўћ§ћ§ћ§§ў§ўћћњ§ћ§§ќћўў§§ћ§њ§ўўњћ§ћ§§ўў§ўр§ћћњћћ§§њ§§ўћ§ћ§ћ§ћњњћћ§ћ§ћ§ћў§ўўѓ§ћ§§ў§§ћ§§ўў§§ђњћњ§ћ§§њљћњ§ћ§§іћў§ў§ўћ§§ўўіћ§њ§ћ§њћћ§§ќћ§ћўў§ўћўўћ§њў§ўў§ћ§§њћњњљ§ћўћ§§ўў§§ћ§§іћ§ћ§ћ§§ўћ§§јў§ћ§ўў§ўўљ§ў§ўћ§ћћ§ўўћ§§юћў§ў§ў§§ћ§ћ§њћњў§ўўўћўўў§ўў§ўћўўћћњћњ§§њяљћћ§ћ§ћ§§ў§ў§ўћ§ўўјћ§ћ§њћњўў§ўћў§ўўћћў§ў§§ўў§§оў§ўў§ў§ўћњњ§ћў§ў§§ћ§ћ§њљљ§ћћњћћ§ћ§§ёў§ўћ§ћ§§ўћ§ћўћ§§јћ§њ§ћ§ћўўќ§ўћ§§ћў§§ћўўў§ўўц§ў§§њњљ§ћњњ§ћў§ў§§ћћњћ§§ћ§§јў§ћ§ћ§ћ§§ўћўўы§ўћ§ћ§ћ§ћњћћњћ§§ћ§ћ§ўў§їў§ў§§ћўћ§§ћњ§§њћћэ§ћўћ§ћў§ў§§ћ§§ўћ§§ўў§јћў§ў§ћћ§§ћцњ§§ў§ўў§ћўћ§§ћњњћў§ўћ§ћ§ў§§јў§ў§ў§§ћћіўћ§§ћњ§ћ§ўў§ўў§ўўњ§ўћў§ўўі§ўћ§§ўћў§ўў§љў§§њћћ§§ўћ§§іћ§ћўћ§ћ§ћ§§ћћў§ћ§§ўњ§§ўў§ўўјћ§ћ§ћ§ћўў№§ў§ћ§ў§ўў§ћ§ћ§ћ§§њћ§ћ§ћ§§юћ§њћњћњћљћњњћ§§ў§ўў№ћ§ћ§ћ§ћ§ћ§ћ§њћћўўє§ў§ў§§ћў§ў§ўў§ў§єћњћћ§§њћћњ§ћћўў§§ћ§ў§ўћ§§љњ§ћ§§ћ§§§ћ§ўў§ќћў§ўўќ§ў§ўўў§ўўўћўўќ§ўћ§§ёўћ§ћ§ћ§ћ§ћ§ћ§§ўўїћ§ў§ў§§ћўў§ќњћњ§§ўћ§§ћњћњњћћ§њћ§§ћў§ўћ§§єћ§ћў§ў§§ћ§§ўўќ§ў§ўўљ§ћ§ћў§ўў§єћ§ћ§њњ§ўћ§ћ§§ўћњњћў§ўўѓ§ўћ§ўўћ§ћњ§§ћћіљћњћћ§ћ§ћ§§јњ§њћњћћ§§ќћ§ћўўў§ўўў§ўўћ§ў§ў§§іћ§ћ§§ўћ§њ§§ќћ§ћ§§њћ§ћ§ћ§§їћ§ћ§ћ§њћњњћ§ў§ўћўўў§ўўєћ§ћћњћћ§ћ§ћ§§њў§ћ§ћ§§ћ§ќћў§ўўўћ§§§ћ§ћћ§§њ§§єћ§ћ§ћ§ћ§ћ§ћ§§ђњћћ§ћ§њњ§§ћ§ћ§§ћ§ѓћ§§ўћ§ўўћњћћњњћэ§ћ§ћ§њћњ§§ћњњљљњћњ§§њї§ћњљњћ§§ўўћі§ћўў§§ў§ў§§єў§ћ§§ћћ§ћўћўўмћ§њћњ§њћ§§ўўћ§ћ§ћ§ћ§њћњћњ§ћ§ћ§ћ§ћ§§ўўў§ўўћўњ§§сћ§ўћ§ћ§ћ§ћћњћўћњ§ћўћ§§ћћњњ§ўў§ћћ§њћњњћё§ћў§ў§§ћўћ§ў§ћўўёћўћ§њћњњћћњњљћ§§ўі§њћњ§ћ§§ћњњќћ§ћ§§їћ§ћ§§ћћ§ўў§њћ§њћћ§§јћ§§ўћ§њћћ§љў§ў§§ћ§§єћ§ћ§ћ§ћ§ћ§ћ§§ўћ§§ўћ§ў§ўўќћўћ§§ђћ§ћ§њћћ§ћ§§ў§ўўћ§ў§ћћў§§ћћњѓ§ћћњ§ћ§ћўћ§§ћћ§ћњћћ§ћћђўћњћћ§њћћ§ћћљћћђњ§ћ§ћ§ћ§ћ§ћ§§ўўў§ўўќћ§§ўўёћ§ћћ§§ћ§ћњњћњћ§§ўъ§ў§ўћ§ћ§ћ§ћћњ§§ћњ§ћ§ћ§§єћ§ћўћ§§ћњ§§ўўі§ў§§ћћњ§ў§§ў§ќћў§ўўж§ў§ў§ћћ§ћ§§ў§ўћ§њћћњњћћ§ћ§ћ§ћљњњћћњ§ћ§ћ§ў§§њћў§§њћћ§§ћњ§§ўў§ўў§§ў§§§ў§ўўђћ§ћўћ§ћћњ§љњњћћњёћ§§ћњњљњћњћћ§ћ§§љў§§ћ§§ўўј§ћњ§§ў§ўўё§ў§ўћ§ћўћ§ћ§ћћњњњћљњћ§њњ§ућ§њћњ§ћ§ћ§ћ§§ў§§ћћњћњ§ћ§ћ§ћ§ћћ§ќў§ў§§њћ§ћ§ћ§§фћ§ћ§њћњћ§§ў§ћћњ§ћў§њњ§њ§ћ§§ўў§ўћ§§ўћ§§ћюњ§ћћњ§ћ§ћ§ўў§ў§ў§ўўќћ§ћ§§њћ§ћ§ћ§§ќћ§ћ§§ьћ§ўњјњћћњћћў§ў§§ћў§ўўјћ§ћ§§ў§ўў§ћіњ§њ§ћ§ћћњљљфћ§ћ§ћ§њћњћљћњ§ћўў§ћћњћћ§њ§њћћ§ќћ§ћ§§ќћ§§ћћњў§ћћњћћіњћњњћћ§ћњћћ§ўћњњћ§§њ§§њњћћњљњњ§§ћ§§яћ§ћ§ћ§њћћ§њћћ§ўўћћьњћ§ћ§ћ§њћњћњњћћњћћ§ћћ§ў§№ћ§ћ§ћ§§ћњњћ§ўў§ћћўњћћњћ§јў§§ћћ§њћћюњћћ§§ћћњўћћњћ§ћ§ћ§§ўј§ў§§ћ§ћ§§ђњ§ћ§ћ§ћ§њћњ§њ§§ёћ§ћ§§ћћњњћњ§ћћўўьћ§ћ§ћ§ћћњ§ўћћ§§ў§ўў§§јћ§ћ§ћ§ћ§§§ћ§ћћўљћ§ћ§ћ§ўўїћ§§ћњћњћўўўЗўўјћљњ§ў§ћ§§ўчћ§ћ§ўў§§ћ§ў§ћ§ћ§ћ§ћ§§ўћ§ћћћњ§ћћњњњ§ў§њћўўњТra§ћўўёћ§ћ§ћ§ћ§ћ§ћ§ћ§ћћ§чћ§ћ§§ћћў§ўў§ћћњћњњљљњљљњћћў§ўўёчАv[:<§ћњћ§њћћ§§јў§§ћўћ§њњћњњљњћњћћ§іћ§ћўћўћ§ћљљшњћљјљћўўЫTC;?)&њћћњљћћњ§§ьћ§ћ§ћ§§ўћ§ћњњћњћњћњћћњѕљћњ§§ўћ§њ§њњљўјўўѓНe4?<;<@AEI§ћћљљњћ§§јћ§ћ§ћ§њћћђњљњћњћ§§ћ§ћћњћћўњљљў№цW1?@0:?@A7958ћ§§ћњћњћњњѕљњњћњћњўћ§ћћќљњњ§§ѕћў§ўћў§ћњћњњўюьA81@CG>7<8+%&§§ћћї§ћћњљљ§§ћћэ§ћњ§ў§ћ§њћљћњћњњћћ§§ў§ёћњћћўўЫc:,3;;988љGdNWa8;BCE:1ћњ§ћћњўћњњѕјљњћњћњћћ§њњљњўљњњчљўўхmdI4UGJJQPLC>A>BFaћњћћњ§ћ§ћ§њњќљњћњњщ§ћ§ћћњљљњћ§ћњњљњљњћћ§§ўўчЧi>+9EHB70*?<4-30ћћїњћљћњћњ§ћћњѓ§ћ§§ћњ§ћ§§ћњћћ§њљњњљўх„ULHTHPg)99?FH<52.>?JHCEIJL;:8CCuo8GŸ–§ћ§њћњњљћћѕњ§ћћ§§њљћћ§§ѕћњћћ§ћњњћћўўк2:FGIHLIG>CMOLJB:,48ZiДћюћћљњћ§§ћ§ћ§ћћќњ§њћћњїћњћ§ћљњљўўмчw<@>@FSTMH@>><:AHIHIGmЉсўћјљњљњњћћ§§ќћ§њћћњјћњњћ§ўћњњљўЭц\0@GAAJPNNPL>:45*O\C<@Ѕўўљёћњћњћњ§§ћњ§ћ§ћћ§§ћ§ћћњћћј§ћ§њњљљўўфЕ|WZ`;BOSIFFGC;;@HJJA\VЫўўёєў§ўўќ§ў§ўў§їћњњ§њћћў§§љў§§ћў§ўўј§ўћ§§ў§ўўј§ўћўћў§ў ўў§ўўј§ў§ў§ў§ўў§ўў§§ўћ§ў§ў§§ўќ§ў§ўўў§ў ўў§ўў§ўї§ў§ў§ў§ў§§ћў§ў§ўўќ§ў§ўўќ§ў§ўўѕ§ў§§ћ§§ў§§ћћ§ћў§ў§ўўў§ўў§ѕў§§ћў§ў§ў§ўўќ§ў§ўў§ў§јћў§ў§§ћ§§ўў§ўўє§ў§ў§ў§ў§ў§ўўј§ў§ў§ў§ў ўє§ўћ§§ў§ў§ў§ўўќ§ў§ўўї§ў§ў§§ћћўўњ§ў§ў§ўў§јў§ў§§њћ§§ћў§ў§ўўў§ўўљ§ў§§ћ§ўўў§ўўњ§ў§ў§ўў§ўь§ў§ў§§ћў§§ћ§ћ§§ў§ў§ўўќ§ў§ўўў§ўўћ§ў§ў§§§ў§ўўќ§ў§ўўў§ў ў§ћњў§ў§§ўэ§ўћ§ћў§ў§ў§ў§ў§ў§ў§§ўю§ў§ў§ў§ўў§ўў§ў§ў§ўўў§ўўў§ўўљ§ў§ў§ўћћїў§ў§ўћў§ўўў§ўўќ§ў§ўўў§ўўў§ўўћ§ў§ў§§ўў§ўўћ§ћ§§ўўј§ў§ў§ў§ўўќ§ўћўўј§ўћ§§ў§ўўў§ўўў§ўўў§ўў§љћў§ў§ў§§§ў§ўў§ћў§ў§ўў§§ў§ўўњ§ў§ў§ў ўф§ў§ў§ў§ў§ў§ў§ў§ў§ў§§ћ§ћ§§ћћ§§ ў§ѕў§ў§ў§ў§§ћўўў§ўўў§ўў§ўћ§§ќћ§§ўўќ§ў§ўўќћў§ўўћ§ў§ў§§§ў§ўўў§ўўў§ўўў§ўўљ§ўў§ўў§§ўњ§ў§ў§ўў§ўф§ў§§ћў§ў§ў§ў§§ћ§§ў§ўћ§ћ§§ў§ўўћ§ў§§ўўћ§ў§§ўўќ§ў§ўўќ§ў§ўў§ўѓ§ў§ў§ў§ўњ§ћ§ўўѓ§ў§ў§ў§ў§ўћўћћјў§ў§ў§ў§§љћ§ћў§ў§§§ў§ўўќ§ў§ўўў§ўў§іў§ў§ў§ў§ў§§єў§ў§ў§ў§ў§§ћћ§ ўў§ў ўњ§ўћ§ћ§§ёў§ў§ў§ў§ў§ў§ў§ўўў§ўўћ§ў§ў§§ўў§§њў§ў§ў§§ћў§ў§ўў§ћћў§ў§§ёў§ў§ў§ў§ўћ§§ў§ўўў§ўўќ§ўћ§§љћў§ў§ў§§ћ§яўћ§§ў§ўћў§ў§ўћ§§ўўћ§ћ§§ўўў§ўўј§ў§ў§ў§ўўў§ўў§ўћ§§ќћў§ўўћ§ў§ў§§єћ§ћ§ўў§ў§ў§ў ўњћўћ§§ўўђ§ў§ў§ўћ§ћўћ§§ўўј§ўћўћ§§ўўћћў§§ћћїўњўњћћў§ўўў§ўўќ§ў§ўў§ўћ§§њћўћў§ўў§јћ§§ў§ўћ§§єў§ў§ў§ў§ў§ў§§ў§§ў§§љў§ў§ў§ўў§јћ§ћў§ў§ўўц§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўў§ћ§ўўї§ў§ў§ў§ў§§ћў§ў§ў ўў§ўўќ§ў§ўў §§ў§ўў§§ў§§§ў§ўўўћ§§§ћў§§яћ§ўћ§§ў§ў§ў§ў§ў§ў ўў§ўўљ§ўћ§§ў§§јћ§ћў§ў§ўўя§ў§ў§ўћ§§ўћ§§ў§ў§§§ў§ўўњ§ўћ§§ў ў§§ў§§§ў§ўўў§ў ўњ§ў§ў§ўў§їћў§ў§ў§§ћћя§ћ§§ў§ў§ў§ў§ў§§ў§§њў§ў§ў§§§ў§ў ўќ§ў§ў ўї§ўў§§ћћў§§ћюўњћ§ў§ў§§ћўћ§ўў§ў§§ўќ§ў§ўў§ ўі§ў§ў§ў§ўў§§ќћ§ў§§њў§ў§ў§§љў§ў§ў§ўўю§ўћ§ћ§ўў§ў§ў§§ћ§§ўўё§ў§ў§ў§ў§ў§ў§ў§§ѓћў§ў§ўћ§§ў§ў§§§ў§ўўї§ў§ў§ў§ў§§їўћ§§ў§ў§ў ўц§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўћ§ћ§§ўћўўў§ўўќ§ў§ў ўњ§ў§ўћ§§ьў§§ћћњ§ћ§§ў§ў§§ћ§ћћ§§ў§ќў§ў§§№ћўћ§§ў§ў§ў§ў§ў§ўў§§ћў§§іћ§§ў§§ћ§ћ§§юћ§ћ§ћ§ћ§ћ§§ў§§њ§ћ§§ќў§ў§§цњћћўњ§§ў§ў§ў§ў§ў§§ћў§§ћў§ўўєћ§§ў§ў§ў§§ћ§§іћ§ћў§ўћў§ўў§§ў§§їў§ўћ§§ў§ўўњћ§§ўћ§§єў§ў§ў§ў§ўћў§§ъћ§ћ§§ўћ§ћўћ§§ў§ў§ў§ў§ўўї§ў§ў§ў§ў§§њў§ў§ў§§њў§§ў§ўўћ§ў§ў§§ћћ§ћ§§ўўі§ў§ў§ўћ§§ўўў§ўўљ§ў§ў§ў§§ћў§ўћўўј§ў§ў§ў§ўўј§ўћ§ћ§ћўўўЧўўћ§ћ§§ўўќ§ў§ўўќ§ў§ўўђ§ў§ў§ў§ў§ў§ў§ўўњ§ўћўћ§§іћўњ§§ў§ўћўўћЭq§ўўі§ў§ў§ў§ў§ўўќ§ўћ§§љў§ў§ў§ўўќ§ўћ§§ћїўњ§ћ§ћ§§ўўїєЛˆgIP§ў§§іћ§§ў§§ўў§ўў§љћўћ§ћ§ћћѕ§ћ§ћў§ў§ў§ўўѓ§ў§§ћўћ§ћћњ§ўўјйcMFI><§§ёўћ§ћ§§ў§ў§ў§ў§ўў§ќћ§ћ§§ћћўћ§ћћ§ўї§ћ§њћћ§љўўщбxBZZGPWњ§ћ§ћў§ўћ§ћ§§ўћћћ§ћ§ћ§§њў§ћћњ§§ћћў§§ћћ§љўћў§§ћўўђњЄtdIPWY[[§§ћ§§љћ§ћў§ў§§рўћ§ћў§ўћ§ћ§ћў§ўћў§§ћў§ў§§ўў§ћћ§ћћўцђe:YTLFS\b’§§ћўћ§ћў§ў§ў§ў§§ђў§ўћў§ў§ў§ў§§ћћ§§ў§§ѕў§§ћўћўћўћўўшћ›UOPGTVZ^a`§ў§ў§§ўў§ў§ўў§§ў§§ўў§§юў§ў§ў§ўћ§ћ§ћ§ћ§§ўћћюў§ўўкeFJTSOJPPZY]§§јћњў§ў§ў§§§ў§ўўї§ў§§ћ§ћўћћиўћў§ў§ўћ§ћўћ§§ћњ§њ§ўўюj?ML@NLTSVIFL§ў§ў§§јўћ§њўћў§§єћ§ўў§ў§§ћўњ§§ўї§ўћ§ћ§ћћўўяѕ’UIAZ^UYLNGONH§ўўщ§ўћўњўћ§§ў§§ћ§ћ§§ў§ў§§ћћ§ћўћў§ўўњ§ўћ§§ўўяеoG?BIMMGFLSPZ\b§§њћ§ћ§ћ§§ўя§ўћћњ§њў§ў§ў§ў§§ўўј§ў§ў§§ћўўєч}C3$VzA,JIQQѕPUQћ§ћ§ћ§§ўўљ§ўћ§ћў§§ьњјљњ§§ў§ўћ§ћў§§ћ§њ§ћћўЦэždH?[]wdgzOL[TUMNћ§§ўћ§ћ§§ўћўћўћўњ§њ§љ§ћ§ћ§ћў§§њћњ§ћўњћњћћўщѕ}uVGbWY^bk^YQ]UWYћ§ћ§§ќў§ў§§ћ§ўў§§іўњ§ћ§§ў§ўћћћ§ћў§ўўщй}O9OWYVNA2MZ\ћњњ§њўћћўў§§ћ§§ћ§§ѕћ§ћўћ§ћ§§ўћћ§ћўоРnM;CbŒjh]V]^eZ\Shzg[j˜Ÿћћњћњ§њ§ћ§§ёћ§§ў§ўћћ§ў§ў§§ћћўў§§ќўћћўўфН^aMGS^`^^[[a\ZJO\VŽƒENЊЇ§ў§§ћ§§ћ§§§ћў§§яћ§§ћў§§ћ§ћ§ћўњ§ћўўх›MbUPPSљћћљјњјњјћ§§њ§ћь§њ§§ћљћњ§§њљњјљјљњњ§§йљжЂ”‹x‚k`aYZQJECVQUWћћљћљћћњїјјљљјљћ§ўўўћўўЯњ§њњ§њјћћјћ§§ћ§пЊЇiAOTqn~iSWWSYPIFTTSN§§њ§§љњ§љњ§§њў§ћњ§§њј§ћјїњћћ§§лєЧ”eiaGVTMA;QW@FMJNTWHJMNJF§њ§§јћјћљ§§ўљњњїшѕњћ§§ћњјсЪ’{^ct\UpWa\TPCCNшHQCLTJHGWYJJ§љћ§ћћ§њ§§ћљљ…ћјјћјѓћћљњљћѕдЉ™pqW847U`g`UW\`T@3<:3CHJEB<@C%4>HJћћљљјљњњћћљћћњјјљ§ћ§§уœЉЈ”rPV;?MFPN8MZObbSSNEG447-G0!&M<@9328B*љјћјњњјјїїєљїљў§ће‹…J@@жgH@;440;"ћ§ћњњћФјњњѕљћ§њЪŠI5Lz`#+>AJLCMOL<9IUM2NhJ9PQA;?::17LxdULOљјћ§§љїЧњћћјЫj539?MjS)8]WT`C;8:LPLJMGLTPPQQSNOPQMI<>@<;2)H,.CH§ћљљХћјњ§љьЅ‡Y*0AC:5>@70oY`??>1?LHFE<9>@.95A;5$15,QAјј€Цњјїћ§ћм˜mYPCCG>?20-81,!3FT?4;EG<8@BEIA;5:2&02"ћјїѕї§љшЋq@L^IIG907898<7@?>E?2-7GIA;871?FCGPJFCLILEFHJOLNCA!2@;§§љћ§уЌbJ?WW`\A458<712:BAACC@8:7?855AF\iF:U[9§ћЉ}I>-7NN€BeVW!!$,3B4.@;5,5:NL?<9BGQLI@:>80.9LMPLFB?$.,833J@@EC:974*&.<;>9??B31,,0-8>3+FG7FH>BOOLWC9>ZNb›ЕЋЎЎмнТСаЖA&-BGJNPHHB;>;7+%(,4?C2,55,").+,+*1`JHH@*:QLQVn‚ŸЯОАушаЪжржЧТЎœ#-92IiG89;514#"$1182-8>:;1)5,?C:+?PF88+-?^ƒz‘ЫеншщкпсаЮЦОИЊЋВЖ,>8+@zƒH;C951+,498!*.-85;357?PQLUMQZŽЛЪФЌОШСШампгШЖЎЧЖ‰ˆ—FNFG.JTE4C9?:UZ4.;?7$*!$,.@7..)%2EFv–АбутЛЃЖИНКИЖНЫРЊЌЏЅ’|˜˜??EQ8AFJCJHFB@8;)"&,-2&:3CLLA>C:#LHA--€ .4F80+8Fk•›СщяјющсаОЏВЧУТТЛФМНДЂЏЎЈ›˜Ž‹‰ˆ™ЇŽƒ‡~ˆL&*20713:FBJZ?&9UqЂжыящчщшЪлййСРбЯнаЩЛЌОМЊЊ‰‹–ЈЂŽ‡z‰™Ё™•ސ—‹.!*5%,1B]uVMQMJJjЊщэтужДЌЭзгббЪЯЮФжпцмЦЋЇЌМz}„ƒ~u‡˜‘…„{*(+0<92-LJPVA]ЕэюцЯбЮдеЫледЫЫгйбЩЧгзЯЕЄ”ЇŸ”…{…„„„ŽŒ‡{‚…ƒ‡Œ‡HB2,557?BW^IPQQNPMJMVVLH§§ђћ§њ§њћћ§ћ§ћ§ћљљ§њ§ўўлћњхЮ}ehra[v^ddbJGCHHIOIPUSSGLOSQG§ўћћўњ§§ћў§њњўХ§ћўўћжЋ–tt[:7?MSI@GH??$1EFJћњћћ§ћ§§њњћњћљњњўўиц™ВЅ‘{QT357A0) !*)..#073"B7;:!ћћљРћњњљњјћўўћЭŠO3L|[(*@BMIHGBEJLLNOE@@EYC>PgO2OYHBE744;UwdUQJћ§њћ§ћћ§љ§ўўЫбp50B>PiT.$cOWaB@5AQUJLMMGJQSPSSOJOYPHC:.94V@њњќљњљўўт›kZZ>ECE?:798<3&9GOAABJHLIC;>><<:0;#)210ћњљјћўўяДtCJeJLE?:4<>9ABEMNMMэOHOMLFCIPTLH5+&7L>ўў€mщЊeME\^kd<<75>?;?B?CLMHACGFHJLS`[GGNC>;>?QUOLHHE33@A?;@FY[[V]QMacQHQITeVJ™аe-"3L7BFCEE<895151,(.>FB;+9V?J9+:AcŠŒЄпїўўћњљ§ђяяю€•ыцх1:?5@~‹A4EA39:1-+.300#(*(8;7.?CA><8),+#3MA$(8%*(B3++Ѕ,.(@2IIOA8[u–СЛэспёщэѕьэчучщчыээїШДЭпёсжШЪЫN-4:9FNJEOQLIB84,+.*,ESH5:a`{ШљўўљхщјћєыыяяююььдыщЧпцкЦмндаЩЦЮг@)047>BA)SSLC<;38JnЁЂЧ§ўў„њюьщьэѓѓяђяѓюыюшщччмкйжйннпзажкдJ"*1<31*7?LLNPdG.@cx›Ўыѕў§ћ§љюђєёѓёэїђїђяючёхячксмємйгзлпссзддад20"*3;<^{]YSQJPjРєўўњѓшсёђђєТѓјєѕєѓяяыцёЯЩеггаббггзжзжзаЯЯга!0-,.2:5!3SIYQEkОјўўєѓѓёюђяђёѓђђѓъђюёѕщнжстржегЭЩЪЮаглкддедедЫFH90-5>BAAThSoЊрўљѓѓєђѓяюытущюєђђэязЧсщьллкрнледжееджлмсмййдййнцCC510388GJIAaЖўўїьєђѓѓёёюьцсыяююьшшсснпслнжжебб€аЯЮбдЯЭцлкжжекжд1587):W-7mЩљўўњїїѕєјєѓёѓѓђѓїђђыцщпккзкбаббабдаЭЧЪЭЮЪФЪЮЯгЩЯЮбЭбLOPNNAd>[Н§ўў§єїїјјљєїєѕєђђёѕѓљяспкздегЫЧЧЪадЯЯЫЪЯдабгбаЪЫЯейзЩЫBLMLU9PZС§ўєѓѓїєѕѓюээяюёё€–юѓёуаФеззмнмхзгљўрзжжейгЯабзЯЭЭееЮпхѓ3TLIFPjзў§њђѓѕђђэыхтцчђ§љюђўѓШбдкмкжлмкнтхулззймлйжгбезебжгжлхщьHgVSL7>PUPAFLPN>§ў§ћњћћљњ§њ§њ§ўўЯх™ŸœaPHIkYIFNONYSTJNSGLN<:&+0@CA??9A?JG22UCHO5ћўћћљ§ћћњћ§ўўєк˜Y?Z‰q9>VU^^гTU]ge`b]^[Z]tcN]‡aPcdYSZHJJM`~e[eћ§§ў§ў§§ћњўўйн|CAJSk‰jA;kipwZQPOgh^`g`]Y[bdgccadgg]TTіVL@Ac@HcY§§ўћўўЪћБa(AU`OQPTJ@}m‡WNMSOZc`VZUTSYW^d`]^\YWLLMNTSQQIAHiWћћў§ўўˆыЅcgTWWUMLBHFMA;NZ\PMSV`YU]ZTOQVYZ^b^^[]OMOQQPITHJ5HQUYPSQUTPP^dbUVOa`ekc^OLILSQdecZUTZHNILM*7QdU[aўДco^9;`a\`CNG+*EOVbPHUYQM$9?JNabYc\a\Y\JP]^`otonmh`qqZYcYbu^OЂЮo81AUH]Y^^[[QQNFC@BPQWOVSFG8>LOVOPAh^]VYO[qh^t\IMn`tЋЮЫФМшїйбшгJ:>VVeb\b]YSSMHBFAAUQWJBEGFA>>NFGEIw^Zk]INn`jr˜ИхгЭј§псэѕэунЦЕ2.IPEaa#HQOUJFAE>FGNOIAIEEGHATTWQ;NiY[O;JNv–›ВтьѕњўђјѕчхмеаЫЧУа@IMIZ™Ÿ[E[SZMONCBCIGEA:;CGLMMNVTWTWhWaigbrЇгпсТлрлпюэюсйЯУкЭœЁЖБW\VbGd{W@][]^nkSEGPNM@;BNETW5FE23+7BTQŠЖЩюњњЮБФйггбжЯулЧУЩЗЉ—ЊВW\ZxMVZbb`gh\c\PGJFBA@:SGUdeQPjˆЉЏЧОђчжсггцргТОФТЭлмсч—ˆЕФБЊ˜•™e;FNSZ`d^cjhQSLNC::C.;ThYEGmv‹ЫўўЦыЪжэяхааелйджЮЫЫТКМЈ‘ЇБЏЅ‘—™H9HJPWVQ4jgd\`Q\WQSLCF\}ААЯўў€ЂјћђтЮФЭнйлбепедЭУЪаОИЎЁЄŸЃЏРАЁЄЁœЅ^:FEIGCJ?Wba^h}W@Pq‡ЈОђљўўљўѕрьяэдйцпэчтжЪШеНФРЋЇДЧЕЈЄ›ЈВЖЉЌŸЅЅЁH@83GEAQOuntgd[\{РњўўѓхбШрстллсшшчыяђькЪШФзЉ—›Ђ™™—˜”ŸЊЏЊЄЂ•—–2B@BFHMP3Ja]jh]uЧўў§щшшхсныяхлнтщцруцшсЮОЏМЗБЈœЁ•–˜——ЋЇЅŸ’ЃЃ™›œ—QTGFEOUYYPg‚auЎлўњюыслгсжажРрщнййнкВЂЧУЪЉЁЌЕНЌБЎЈЈЇЁœЉВБЋЂžžЄЉКPUGBBFII[]ZTqЗїјьнэяшцщыеЭЦдтщтеЭТИИЏБВРЛЉЏАЂЇЃЄ˜œ›œЁž™МЋЌЇЃБЇžЅILLJ>Mk3?p™ЯѓўјїшуюѓёяыюцллшшхЩРАЛЏЌЊЌЃЃ˜–žЂЂž™‘œˆ‰œЊЁЇ•ЈЊ™—addagVqBZЛєўўїхёёѓюђђюыпмпсщпччШЎЅЄ›žŸЂ•””’™˜œž™ЁЁ˜žЄЂЂ™”ЄЂЇЃ•œTbdkjOUgЛёѕэюёэђёэшртлшщлжтцмлРЋ’ЄžЃЌЎЌМЊЇЭтЕЂžЄЅЇ–—Ÿ—’™ЈЋЅЗКкHhdaV`rащёяёчшснйзЪЦЫЦхљсзмюбЅЌЗАЈБАЈЉЏИШУЛЋЄЊЊЉЉœ›ŸЇЇЁŸЇЊЄЂФШгV{iO\ЄлўщёььюђяупмзамщЫžНгЗЮКˆЃЈЉЊЎКШЕЌЏЖСАЎЏЏОЖЌЗИЏВЋЎАЏЇŸАЫемаdjd™ёўўћккшьюёуычнкзаТŠjn‡žЏАЏДМШТФбЯЯЛКЋЊЁЌРИБЊЎАМИЎЈЉЈЌЌЩуьмжжYZ…тўїщщзкцулухщтсбЫДЂЈЃœСИЖИОТЧСТТЭаКИБЈžЅЏЌЋЌЃЌЎЖИКЗНДкхнежзр‰ЌцёщёчщнпруагжзСРЌЌЈЌЉВАŸЕУУОЩЮЪТЪЪРДЖНААЅЈЈЎИЎž˜ЃЌЖРЧЩгспблшшт”ѓўјђђюспжжтгЪТЦКЖЋЈЎИЛИЏЌДЗАДМОЕЅЉЖИДЉЈЈВЌЏЈЕВЇЄЁМКОЧлтчкемстпыэщёёэьхйдекШШСФАБДИВЦЦЪСНЛМЗЏЊЏЊЎАЖЖЗЊЋЌИВИЛИЌЋЄЎЎкжШЩлусмпдзшэѕщтцйжУЦУЮЮЭТООРИВЉЋАЕШЮШЋЄЌЖВВЉЅЎАБЉЄЉВККТЦОИАЎЇЋЕТамнулпмЪбчюяухзпзкбШЖЕСЮЦТЛОСДЮЯСОСФДЋБВБЉЇЄЋЗЎВИМБАЎАЌКНСЎИМУѓѕкгЫекплШдтюєрцкмеддЩДОЩЮааТЗБАВСйЪЈВРИЛЛЊЅЕЖЦФЕММЗБВЊЎЏБТагмзпмскЧамЯЭжкльєњ8њwџџwwџџ.w џ,ўwџџ)wџ'ўwџџ&ў€џџwџўwџ!џўwўwџ"џw,џ w/џ w2џўwџ5џўwџ6џw8џўwџ9џw§џ§ѕћњўћў§њ§§ћўўјћ§§ўўћў§§шјљљ§њ§§ћўўћљњљ§§єљѕњњўў§§њћљјћ§ўўїћўўњ§§њњ§§љ§ўљњњў§ўў§§ўћўўћњўћћўўћ§єћўўћўћњ§ћћ§ўўљњўў§љћјјјћ§§њњ§ћ§§§љћўўћћўћћўўћўў§њњўћњ§ўњ§ўњ§§ў§ћў§§њў§ћўєћўўћўћњњћўў§§ѕљњўћўњ§њњ§ўў§ћ§ћћўў§§ћљњљ§ўўњљ§§ћ§ўўњњљљ§§ўў§ў§ўѓћ§§њ§ћўњ§§ўћўўћў§ћў§§єњ§ўў§њ§њћўў§§ў§§њў§§юњљ§§ў§њ§§њ§ћўўћўћўўў§ўў§єћљњ§§њњ§ў§њ§§ќћўў§§ўњћўћљ§ўўўћўўћћўўћ§§яњ§њњў§њњћў§§ћћ§њ§§єљ§њљњњў§§њћ§§ќўћћў ўћђўљњћћљћћ§њњ§§њњќ§ўћўўњњўћўћўў§ћў§§њљњ§ўљ§§щўњњ§ўўћ§§њ§ўў§ћљљћњ§§ў§§ўњ§§іћљћ§ўўљўћўўњ§њ§ўўћћ§ўћњўћў§§ћћ§ўљњњўјљљ§§њ§§ёњ§§ў§ћљњ§њ§§љ§њњ§ўѓњ§јњњћўўћўўћўўћњљњњ§§љ§§њ§§ќћјљњњўћўўћў№§јєљњњћ§§ўў§љњњўўћњ§ўћўў§§њ§§ўњўў§њў§§ў§ќњ§ћ§§юњ§§њ§ћўњўњїяцэћњњўў§§њ§§іћљњ§§ћћљњћћў§ўў§ў§њўћ§ћљјјќћ§§њњђ§њ§їыхђј§§љљ§љљўјћћє§ћљљћљњ§њњ§љљі§ћљјљњњ§њ§§ўљњњўі§љћљљћњљњ§§єѕѓщьєћљјљћљ§§ёњћњјћћљљ§њ§§њњ§§їў§њљ§§њ§њњјј§ћ§њ§њљњњ§уњў§ћђюђјљћљњњјњ§њћћљћњ§њ§њњ§ўўњюљўўћўћўћўњўљњћљљћ§§њф§љљјћ§§ђюьюѓњћјјїјљјјїјјљљњ§§єњў§њњўћўўћћ§§њўљўў§јњ§њ§љћјћћђљњљњћњњѓѓюыњћ§§ьћ§§ў§§ў§ћїљїјѕђњ§§ћјјїўћљљћљ§ћљћћћљњљљњњўќћ§ћљљ№йУЅ—zu|ЋЈЊЇЗцћћц§ћћзјјђѓёѕїїњјћјїїњћљљћћњљљјјљљїјј§њњпљјТŸƒ…pT[hrWY‚k^L)7N4JmV[tЉАТлхю§§ћ€§ћѕѕјјњјљљјљћљјјњњїјљјњїћM>a|tOFITETQCBOGGZSI;@ThkGUe]Ch`gƒ‰’’˜Ацћћ§§јћњјїљјћ§ћћњћљњ§њљћћUJ`em`\ccZV[^SMHGHIGLnk^\aeNPZWP[d\^g`\M`Адеѓ§ћњњјћїїѕњћљљћћљ§§[[VOPT]dTJHOTWVJLGEHSm\NHiaZNMONPUVZ[[Z?OhaagqЃТьћћ§§ћљјїјїјїњјћSJNLSPT\\ZNNSVO778?;GNGC2[bZVPPNAJU^\ON4Jg\N857:]‰Ѓщ§§ЙњїћјјѕїїјLA<>GI9Ihg:?HLS`<+UB>9:?EEGLMNLNOT[[\QLAHO^aUTS]hC9EiЮ§ћ§јїїљїїФC<>E@?4;5-949:>?7(B|xP+>HMHAEB>@MWTCILLGIBZ]ec\ZSGLC;PjУћћ§ѕѕНјћIGBFE7B@?8-,57Z4.$3B}„WEMJCIHJEAFINE88@H5-GFVSWTMJGE7#.YkЮљ§§љїјLLр*1-$"+&5;&3B2MC:;EJHEG@GOOJїC?BAEMSS€NLB830-2@FLPPNL<3+-#"(Aj”Цѕ2?<+>@dV!)%+)0&*.&+$)*>:94>?C?GCLIHPMIJ?4:455?GC>BCA?<5,J>YPBG21+mPB-;500)-4;3443433%38<8;AH:>3:HCIS>0098GH;]Z+@.&;"*7:9149GHF@C@UNL@AOMY-GGN;%:<5;538;>9-,+*E>;C:?IO>7FLGGNUG.;07.;:5@C()(%@@T* $1@0! !"$**,*STQo|g’ЛТЖž{|tmWOU7.*85NB94B+%-?@W>3?! #0,ЉЫШЂŽ—Зʄ‘ЛЫСЉˆŸЂœ‘ЈЈ„w•УЩ›‡Œoag2AVI032#".,&$!,1›РЪЃ–Ÿ–›ЁЁЏжЦЅ‘…‹‡™v—ЌВЫЛЂŸ•””‹•‘iNWQ7$;ZnqHVj^HphhŽ•”‹Ехўўњћє§њ§њћљћћ§ћ§ўўQгaji`bac`ZWZTLIFHCFMrxeaegTQYWQ[i]ciebUg„Ажсѓўўј§њњћљњљћћЩњћћ§ћ]WPOOTd\TOPQ\\^OFBCINmWTQqjbQNPQTUZ^`b]EPmhoeuЉЩєўўРњћњћњћњћљњњWTITTV[][QNOWWL;85;@CNTB1Ve^VTPJNPU]c`T:InaS77;A]ŠŸщўўРљћњ§њњљљњTI@ELJ>Iih;FEJQ]B2ZH@AEFGJNJLOSSVZZ\]UMIO[cb\YT^hJ;PhаўўћњљљјљљЧBCCBF<5>424:>BG@<0A‡…U2EILHEE@BFP`TNHMLOLA]ehdc]VMJ<:WjЩўўсљјљњњBACAEC8;:9:88?W:2%.G|YPMIIсLHCCIPJJEAFE>8ILW`\UQNLF;(0ZpдўўР§љњPPH)82&,%%(".4797;+9A4OF;AEGGA:GIU[UVVSHBGVQPSUVWOHFM<$%.W•ўў€мћSUG;;$18!*)%-30-04730742489?BIMP[^ZZUPI><@GFOPW[TPJ@;40.-Ew”Шј1B;7ECcT.1)&02&501*.04379;AF?FIMJOUUVWSFFAF@HOPILNMGFA>7QEgVGC<0.nIE(9A;-+2;<9;;851+3.9<;CGBMPV9@II?;43;:;89;??€…:3?FIE@GJPTJJ503.24%.3&#$14:<:;@?>I@?AHJHFACQ[H0GSLE9:52>;>;.5C7A;9ABIICBP:>BLNF@GUVQFOOFEOO417CGG€ч?55@E)9;739:.#32+2241-3249;F;@IOAQWPPWQTW\\SMGMTe49>FLQ]L,;42>7:-;:4774702-178+49?:B<81:MbabLpZCT^SNUdNEPFJHNTOUV3;9GNZrG;5*--*+%C<4.32150()-.1741*`\`„•}ЏпьрзЋЂЉ—ЖŽqjkULPQVtZAптлйжедаЯЭЩЮЭЮблкецЯЩЪЪЯббЯЦЩацрнсслзннммйдЭЯКЮгЗ„TL:CE,!-EjJA>8дмлждЯЯ€ ШФФТУЦаўткпЇШЫЯЯйеаЩЪЭЯабаЭЫЮдзйдбЫЪСУЭрсыр’^[10c:;9743гдбажСРМЫЖЮбеЭЪУЏОРСщшззжбааЯбЯЯгддаЭгЪЩЫЩЧНРОТтыєўцг•dOL043@<@гЯЭЪЧОДƒШёдлггЮШШЪезђјшЭЯаннлйкбззрйдбЮЭЭ€ЪУТЗзЪЯпйысРД‘pG543B>9ЪФОРОТСФИАЫЮгЭЮдгжзхёљђларцтснрмлмжзбаЯдййзбЪбнуєёьѕїэьЪНОi;ECAAЦОРКЛЧЪЫЪЗЭЫеггатлИйцьюнххснсмелзйжЯЩЪЫбрлмздНСкпхышщяууѓѕёНž…GFФЛМЂИглдШгсялзрђўјцыыёяьцйКАЮзедбеаШЧЩюстпмкЭгѕўємухяяѕўњѓѓњљцД„ЫЫЯЮсцђЮНкшѓчьљўїѕђяяўўьЗ‰‘алмннжбждзтцзмлрлрзчћюэююяђєѓѕюёщђљўтЩљўїїўў€§цѕјёёђєђђьсеСжязЎœЫчэндгеджпупмлмшхщэыьюђђюђюёэяэёыюяјєњжшусцыыђєѓѓѕїѕѓђючшцслкШйцячјлдаЫдлпнййдФЮхєѓђєѓєѓђѓёящщьяђёђюѓэюєщьцёююёѓєїєєѓяђэышщтпйкптсскжзЯжјшснлШыьѓјєїѕєѓїѕђюэюэьяђђёяяьњёьющчцщшђєјљїїђюющццтлнлкзежааСняљђюћэсїєѕєїѕѕњѕѕјѓїёэщыыэшящшуьэшцххичшяєѕєђытутспплкздггжжмнрщѓяђыёёяђѕѕїјљѕѕФїјїђюјятцыяьэхуьщыщчщчђћїљѕѓђёэцшстллннйкутсшщэщэђюёёяюѕёђђѓѓЉјњјўѕэрэцнлѓюёьщтђяюяёѓѕѕјјїёєяюяѓђђжезмрстктпуппщщёюёяёђєѓѕђѓѕєєѓђђыгЮзйймуыььцуюэђёѓїїбѕјєёььыэўѓШЛЪЫедбеЮмђусспхтыэьёђёїђѓёѕђђєѓьёючууљщыящььєєгѕїѕљјњєїььуцчјрШжкгеЯЭЪмщјэьццзыюёђёёјїѕєѕђєяяАђэяющэёшыэыьэєїѕјљљјїїўўэжршюїплтукгЪФЩщјыычснцэ§ѓїїѕјѕѕїѕјѓєёяђыэьщыѓюэщщцщэїєјјљЭєїљябЛршштрснунгНТЫщѕђяэыцчїўєїјѕѕїѓяђяяђђёщыхгсуєээюьшщцљјїљњњїјєјђтнпп€АзеехћўўшпщїшччыьяяѓёђѓѓѕїѓєэяьёђяяїчЫЌШЫцюыщцччхљјљјљїѓїјўјжзыткжйбсѕсуцхптуцшьђэёєёёѓєєѕѓяыьщыэьыёеРйђэяюэшьыщщїјїєёђёјсеЛeВЭггаенмзЫгнпзмрхьяьёђюђѓьёёющыцьыщюяяєзрчщђёяэяьюьщќ§ў§ўўќ§ў§ўўў§ўўў§ўўј§ў§ў§ў§ўў§§ў§§§ў§ўў§§ў§§§ў§ў ўќ§ў§ўўј§ў§ў§ў§ўўў§ўўў§ўўў§ўўў§ўўў§ўўў§ўў§§ћў§§ќў§ў§§§ў§ў#ўў§ўўј§ў§ў§ў§ў ўў§ў ўў§ўўњ§ў§ў§ўўњ§ў§ў§ўўљ§ў§ў§ў§§ўћ§ў§§ўўќћ§§ўўў§ўўў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўў§ѓў§ў§ў§ў§ў§ў§ўўќ§ў§ўўі§ў§ў§ў§ў§ўўў§ўўі§ў§ў§ў§ў§ўў№§ўћў§ў§ў§ў§ў§ў§ўўј§ўћ§ћ§ћўўќ§ў§ўўў§ўўњ§ў§ў§ўўј§ў§ў§ў§ўўў§ўў§њћ§ћў§ўўє§ў§ў§ў§ўћ§ћў ўў§ўўў§ў ўў§ўў№§ў§ў§§ћ§§ў§ў§ў§ўўў§ўўюћ§ўў§ў§ў§ў§ў§ў§ў§ўў§ ўќ§ў§ўў§ѕў§ў§ў§ўћў§ў ў§њћ§§ўћў ўў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўј§ў§ў§ў§ўўі§ў§ўљћњ§§ўўѓ§ў§ў§ў§ў§ў§ў§§јў§§ћў§ў§§ўќ§ў§ўўў§ўў§ћёўћў§ў§ў§ў§ћјѕњўў§ў§ўћ§§єћ§ћ§§ў§ў§§ћ§§ўћўўі§ў§ў§ў§ў§ўўњћ§ћ§§ўўі§ў§§њљєћћ§§ўј§ў§§ћўћ§§їў§ў§ў§ў§ўўѓ§ў§ў§ў§ў§ўћћ§§§ў§ўўї§ў§ў§ў§ў§§јўћ§§ћќў§ў§§їў§ў§ў§ў§ўўќ§ў§ў ўё§ўћ§ћ§§ў§ў§ў§ў§§љўњљєњљћћёўћ§њўћўћ§ћў§ў§ўўў§ўўњ§ў§ў§ўўч§ў§ў§§ћў§§ћ§ћ§§ў§ў§ўљјѕћўўі§њўћ§љћ§ўћћэўњ§њўћ§ћў§§ћ§ћ§§ўћ§§§ћў§§§ў§ўў№ягДЏЏ‘’•МЛНЅРћўўшпў§ћњћљ§њћћ§ћ§ћўћ§ћ§ћўћ§§йўћ§§ў§ў§§аЉœŸŠro„ŽwzЅ~g@M\Ja„ir’ОЪзё§ў ўї§њћћўћўћ§§ћћњћњћ§§ћжў^UЂ‹k]`oeneZW^^Zp^ZMGeƒ‰^`|rZ‚z|ЂЂЊœАФњўўќњћћ§§ћ§§ў§ўўвe]w…}|u|}rpkpja][YY]c…‰}|„}ihnqeu‡tvxxwgu—Сцёўўјњ§ћ§њћћ§§Ъћ§§ўmickcnurb^d^pwpaY]Y\[‡pi^‚urjdcmjqpp}rtZdˆ}{ŽМк§ўўў§ћћўўћћЪ§i^`egikpoi^ejj`NLS]OS^iZEo~qpom\ahortqgOa~|eJJMOk‘Ѕњўўлћ§ћћњ§њћ\[Ya^UMc|NTT^ixZNxgbU[VV`^`ccшbgmoppk`okkrumkjuxVJ]|лўў§њ§њњЦ§VQM`YZ@MIECFMTQSO@UЉ˜hBU`cY[^[TYipnb``e`YYxzuxqvod^VOe{еўўР§љ§ћ§UTV\UTNTPMAGEPcMM8:V‘˜ka[aUZbeWSdmm`W][YaPYajrkhpd[\M:9pрўўСњћcc\>HC7<;<794FTU\]agmnhg`^]QOZS[\bqtg`YGMB989JˆЄгўE]PQP^{oB;:ACF>?MIB7?EGMEHILIVUQYZ^d\gcec`P[NTV][\U]ZSTSNJ`UriY‘WSPGwcTHTQLHJELPPLLILNB?GLMTUSWUOZUQZa\`eNIU\ZOvoFOJGJAPHVNJTM[bVOV^ae^[VjgtTSh`UPI`POPSMUQJGHGJYYOON[\cV^JAA95F5?."qxA-B;B;+753:3,742@HNN7@;.@FFA8-<88@:A7)B@IUSZ]QPMPM[HZ]gSZ`khgjbaa][UZT[i<>GOUS`T8%A547@7?FTFF9A?EH8>?0GAQVUSMLOJ]omkYqZIVb`\ag\HSHOTSUNS[@LOIZdrP1;AFIHBFidkŽ›ЊажШʘŒ’ЎŠŠpedCBJPVdVPB<83.*5C<73B7F>HОмсОЎЌЈЛДЕБИФђмУЊ˜žЂ›ЏЅŠЈЧЩтШВДЊЇЇЄЁЏЎƒeuiMC8`\mY2*0!-)AA?;;5CAUИЖБАЌДОТЌЋВБУБ–’}tŠ˜žЗЗŸ•ЂНкФ™ŠЉБЌЇ™ВЕА˜‘hw]NON<2.)-%%5722€`8GQЯСЗВАЈЉЁ™ЃК‘xw‹—œŽ‹”–ЄœЅЂЃ˜u’›ЈБЋЃœœЊЌаЖК„}d>)%#".(&*7?EI&>@VBL‹Шјљњјјћљјїњћљљћјїїјјћїљјєјјїжјљљјљћњїјјїђєѕ§ѕœE?;+$*07*@PM*(7M–Ыљјћїјїїюјћљњјјњљћћљјїљјјњљљж§њјћћњјїєєїїєїјЯ< #)(2493-?BЁхљћ§љљїјњћљјїћљјјњ€Тїјљњ§§љљѕјјљјљѕѕђїјѕњыБ<$!"$$*B<1;ANЃћћ§їјњјїљљјјїјїїѕѕїїєїїѕїљјљћљ§§јљљїїљ§љТZ2"  85GH;0OO?#4ƒщљ§ѕїєёэёєћљјјїњјєїїѕђјѕїїєѕѕєїїјїїљѕћк^1) 4C@?EEACF<+ELЫ§ћћѓяыхэјљљњјјїњїїўјїїўѕїїљўѕјјФ§ћшzP;"9:4*GI<:@AJAC0**+3$-):,3,,(<‘ЛннЭЪрюѕјїјїјљћѕјјїѕФїјјїѕ§§лT3454.""+1:@).)$$I."";AV‘Фдчцэєѕѕјјљћљћљїїѕѕаѓѕјјљђѓљјo. <;539+--17*>))40Cm<+&aЌбєјјѓђљѕїѕјјљљјїїјјПћјљњљєћћ#   ;25--379&+"-1.&!5@5*,291vНљћћ§їѕѓјјњњљљјјљћљљШјѕє§ћч~&(4.1#.,$500)43740BG37Hc”ь§љћљјјїїљљїЧѕєѓјѕѕєљјкE# *2+"#.:2)+@<;NVAn’Дѓћ§ѕїїњљїїѕїјјўѕїїЭћ§љw%  9#*42(1!!$#1(->@INSYW`oL7rлћ§љїїѕїјЦѕєєјљ%+3$F4LPTVUPiW4[]чђћњѕѓїјјПњјњїїѕё§ћн5"4,&113xC7*%++&0199E9):49A-;FEGAASPM>kC1cБљћљѓѕєѕѕјјѕ€ŒєѕљэB+-ЭЃNA27$2..,)>m4P52&(&.3LYLS^ZSNVVS.+MŠгљљѕєѕїїѓѕљїѕѕїљљžE3B8.КОЗй˜9094&$(5>o@+5;A?>8c0:VF>1N\ZzЫ§љћјѕєєѕѕїѓѕєљ§њd5A&:2.ВКжёЋQ@B *9;(;QG5<5A4LZ-EMJOB@;5ˆЮћћњјѕїїєѕєѕћ§ћЇ2>PG44ЁЄАФВБƒ?,$N9+&EI?EF\TTjG?SN)-45812+Eb…Џљћњѕѕєѕѕяєјљђ]0E7;7ДЗЋДцЫq$78@2239,15VLQH$<83"#7759;\8LJjЋжјћјѕћ§C\]8ЦМЗЕНМЕ•ЉЯžˆТбФŽ–qH>:<#%7343.$&$030#*328AB@-7]WgNЄї§љћћжooJ:НЕЈЕЪжМЉБЕЖБЂЭєћћКŒ^JC1GE7;2+#18,00+2,+2@959CFEIM0>pр§ћ§љ‘eYNЋЎМЛЏРМЖбЮедбхљћѕхмЎmU8YH01G,!04,!+29C&&(&5.-)7A99B:+$PЕљћћ’".ЇЈЕМББЈЊРгабцюєёюьєй›ЁЗЄdTJ8.*&107BGB>".+,57@?003;ETGGžљ§пQ08ЌАЄ›Ђ—›ЛШЮгхэєђяцучЧЖЧЪФ’uP8GG-*0;B><>-+-$.12?2(.(110.)"3A?>AFB?!$*:Z}„V:уў§ў§§ћ§§ўћ§ћў§§ћ§ўћћ§ћ§ћ§ўўћ§§ўњ§ўћћ§ўў§ќў§§ћћ§ўќ§ў§ўўњћў§ў§ўўў§ўўќ§ћњћћя§ћ§§њњўћўћ§ћ§§ў§ўўѓ§ў§§ћў§ў§ўћћ§§ўіћ§ћў§ўћўў§§§ў§ўў§ўќћў§ўўћ§ћўў§§њћ§ћ§§ћћ§ў§їў§§ўў§§њћћ§ўћ§§ќћ§ћ§§ћљњљњљ§§ўў§ўў§њњќћ§ћўў§рћў§§ћ§ћ§ћ§ўў§§ћ§§ћћ§§ўў§§ћњјљ§ћўўј§ўў§ћ§ћў ў§ћњћћўњћћњ§§ћўўј§ўћ§ћ§§ўўў§ўўі§ў§ћљљњћћ§§ў§§ћ§§ћўћї§ћћњ§њћњ§§ќћ§ћ§§єћў§ўћўћў§ў§ўўћќњ§§ўўљћ§ћ§§ўћћ§ў§ћњљљќњўћ§§ћќљњћњњљ§ћ§ћ§њўўўћўўћќ§ћ§њњѓўћњћў§ў§ўћ§ћ§§ћќњћћ§§јћ§ў§ћ§§ћћќ§ўў§§њўћўўћ§ћў§ўўѕћ§ћњ§ў§§ћ§ћћ§љњљљњћј§ўў§ћ§ћўў§ёў§ўњћњћћ§ћњњћћўўћ§ћ§ћўў№§ћўў§§ўў§ћћњљћњћћњћ§ђћ§ћ§§ў§ў§ў§ўћ§§јњ§ћ§§ўў§§ћћ§§ў§§ўћ§§§ў§ўў§ўћўўњ§ў§§ћ§§їў§њћћў§ўћћљ§ћ§њћћ§§ўўћћљў§§ћ§ћ§§эћў§ў§ўћ§§ўў§њћњњћћ§§№ћ§ћћњњћћ§§ћљњћњћћњћёњћ§ўў§ўўћћњћ§§ўўќ§ћ§ћћ§ѕўћ§ћ§ћћњ§ћўў§ћўњћћщ§ћў§§ў§ћћњ§ўўћњњћћ§ћ§ћ§§ўћўўў§ћћљ§ћў§ўћ§§ўћђ§ў§§ў§ћ§ћћњћ§ўў§сћњњћ§ћ§ўў§ў§ћ§§ћўћ§§ўћ§ўўћ§ћ§њћћќњћњ§§ў§ўўћћ§ћђ§ћ§ћ§ћ§ћ§ћ§ў§ћћ§љў§ўў§ў§§ѕћ§ћўњћ§ћћ§ћћёњћ§§ўўћћ§§ўћ§ћ§§ўўњњќћњћљљњњћљћњњћћў§ћћќњћ§ћћћњ§ћ§ћћц§ћ§ћ§ћ§ћў§§ћњњћњћћў§ў§§ћћњ њћ§њљјјћїјљљњњўљњњђћљњ§§ћћ§ћ§ўћћњњћёњљњћњњћ§њљњ§ћ§ћћ§§ў§§їћ§§ћљјјїјјїђљњћњћњњљњћњћњћћј§ћ§ћњљјљљђјїїњљњљњњљјљјљљљњ§§ўўћ§§њњћњљјјњњљњўљћћјљњњљљњљјјыљњњћњћљјљћњћњ§њћћ§ћћњњўљћћ§іљњ§ћћњћћљњњѓ§ћњњјїїј§њњљћћљљњћћњћћњњљјўљњњєћўћћњљњљњћњћћїњћ§ћњ§њћљљїњћњњљјј§ћћф§ћ§ћњћњњљњ§ў§§ћљљїѕѕјјљљћ§§ћћќњћћљљ§њљћћ§њћњњјљњљћњњљњњјљјћњ§ћ§ћћ§ћћ§ћњћћўњљљњ№§ћ§ћ§ћћњћћњњћ§ћњњћєњљљћњћћњўћњћћ§њљєњ§§ў§§ўўћ§§њњ§ћ§њњў§ћћќњљњћћўњљљњѓљўўњњћњў§ћљњћћњ§ўћ§§љћ§§ћњћњњћўњћћњљўњ§§јћњњљњњљњњјљњўўцћњћћњћ§№ћ§ћ§ћљљїљњћћ§ћљњњћ§њљњњћ§ўћњњіћњјљњўўаdњњљ§њљњњљљњћњњљњњљ§ћњћћ§§ўћћњњћ§§ћћњњ§ћљњљјљљўуЩr@јљњ§љњ§ћњћњњљњћћљњњљћњ§ћ§ћћў§њњјљњћ§§ћћ§§ћјњћњћћњјїїўяє–NC:ўў§љњњћ§§њћњњћњљњў§ћћт§ћњњћњ§ћћ§ћњћљњјљњћњњћћњњћћњњўўјш‡G-)-жўўўњљљњћћ§њћњњѓљњћћ§њ§ћћљњ§ћћяљњњ§ћјјљњ§ў§ћћњњћћўѕЭW75AN%*APбўўїјїѕљћњћћњњќљћћњњљјўљњњўиэ}V?(B>;AJQG?A?IFH:nzцўўєѕїѓїѕјљљќњћ§ћћњќћњћњњгћўрq2 3<  78;CMG?27CQM@0,,ЃўўїѓёєєїљњњћљљњўћњњўљњњўћњњћўЫО: 2Z.  87:@L;OC@9<>79N?&Wгўјёюѓјјњљњћћљћњљјљљњљћћњеўљz4 #)FF @8.0).7E@;98-7><1*Cžзјўїёјјљњњћ§ћњ§њњљј’љњњљљўўрS 8  @:735:@AFCB+&*2P;2$BMbЋщўўћјљљњњ§ћњћњћћљњљњљњљњњјљїўўu!)  AE?::CF?;<9H,9:;IuH2-kФєўўњњљјњљњњћќњћљњњб§ћљјћўўƒ AFB>?::?91%0&-4::8UWF{”Нўўўњљљўјљљњљўшw+!"?<0;;L !(+-&0++,ь8?AGTQSUY[kxT8wрўўћљљўњљљњјўп‘(001)S@@AMY)1*0*2.5>9,327>BIPPюWZYVjb3g`Ѕюѕўўјњљњњ§љњљљјўац.#,%0274œ^0F80;9.2774?ZE(?A;?BHLNLHENY[S:wB8kЗўўўїјјўљњњјљЫўѓ@$!!)3ўбoSCJ7>7050JzCVA:>?F?CMSVP`bSQ[a]-,TлўўјјљХњљјљљјљўўЁ?0M?2ђѓяїЂB:99.099BzP0$%88<@aSO7HWa}гўўў§јјФњљљњјј§ўћe0M,E@7ыпћўжdIO(58WV5$CEGZ`]oNFgP().4:>?5.+Hh‹Лўў§њјјЦїљўї]2LBA9тухеьўя‘39A)@<7;;:5A\M[J>H3*9+.5?<:@<JMпхьёьяпѓятЫ™[.90:A88>HH%3;<2(+47>:4350-(1:APPC8W}ˆЩўўјїїњўнA1:LJьцшыцкРЖщїпмЛ{Z&4I0BIF?74<:877,1%&.37;5*-YFBAaBOOpБсўўћљўў{EcZ:ььДюьѕэЮтјмФхяг”žwM@7C1E>?A<72(*,+392;73,*8?@AI:>c\jNЇљўћўўйxwQ@шчьыыьэшшьэтЦюўўиО”aTP8NLBO9?&-35>9-37*1.7;?L&,5;9<95AJ$,,79<3?EFCA>;*%YЖўў€Ф™(1$ртхццуучьэѕїєїљјјћўєЧЩЪАnST05;1948?CFHC &34:;@H>:7:AFSHMЈўўцP2<цттцсхчхшэђђїјљљњјћячэючЇ‹W.MH0447AG?>@1232048.EFFE?@@AF4BnчўM>ьхшчьэыьцьёєљњћњјјљѓђяєјтльС`?<:9;5--)-0342.,+:FFEFEG@30-Be…ˆW3 ўў§ўў§§ў§§ћў§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўўѕ§ў§ў§ў§ў§ў§§ўќ§ў§ўўў§ўўў§ў ўў§ўўў§ў ўў§ўўђ§ў§ў§ў§ў§ў§ў§ўўў§ўўў§ўў§ўў§§ћў§ў§ўўђ§ў§ў§ў§ўћ§ћў§ўўў§ўўњ§ў§ў§ўў№§ў§ў§ў§ў§ў§ў§ў§ўўў§ўўў§ўўј§ў§ћњћ§ўўќ§ў§ў ўє§ў§ў§ў§ў§ў§ўўќ§ў§ў ўћїўћў§ў§ў§ўўњ§ў§ў§ўўь§ўћ§ў§ћ§§ў§ў§ў§ў§ў§ўўќћ§§ўўќ§ў§ўўњ§ў§ў§ўўќ§ўњ§§ўћўўї§ў§ў§ўћў§§ўў§ў ўќ§ўў§§ћў§ў§ўўѕ§ў§ў§§ћ§ћў§§§ў§ўўў§ўўќћ§§ўў§§ў§§ў§јћ§ўў§ў§ўўў§ўўќ§ў§ћћї§њўњў§ў§ўўќ§ў§ўўў§ўў§јћў§ў§§ћўўў§ўўў§ўў§яўћ§§ў§ў§§ћў§ў§ў§ў ўј§ў§ў§ў§ўўњ§ў§ў§ўўў§ўўў§ўўќ§ў§ўў§ўћўў§ѓў§§ўў§ў§ў§ў§ўўј§ў§ў§ў§ўўў§ўў§§ўћўўћ§ў§ў§§ђўћў§§ћ§ћў§ў§ў§§ў§§ў§§ўќ§ў§ўў§§ў§§§ў§ўўљ§ў§ўћў§§ўј§ў§ўћ§§ўў§ѓћў§ў§ў§ў§ўў§ўўў§ўўќ§ў§ўўќ§ў§ўў§§ў§§ўє§ў§ў§ў§ўћў§ўўў§ўўў§ўўў§ўў§§ў§§їў§ў§ў§ў§ўўі§ў§ў§ў§ў§ўў§їў§ў§ў§ў§ўўќ§ў§ўўъ§ў§ў§ў§ў§§ћ§§ў§ўћ§§ў§ўўы§ў§§ўў§ў§ў§ў§ўњ§ћ§§ўћћў§ћћѕўћў§ў§ўћ§ћ§§№ћў§ў§§ћў§ў§ў§ў§ўў§ўў§§ўѕ§ўћўћўћўћўћћє§ћ§љћљћљ§њўћћпњўћўћў§ўћ§§ў§ў§ўћў§§ћўћў§ћћ§§ўњў§§ћўћў§ўўц§ў§ўћ§љћњћљћљњњ§ћ§§ўњўћў§ћћ§§ћў§§ыўњ§љ§њ§ћ§њ§њўњ§ћћњ§љ§§ќћў§ўўщ§ўў§ћўћњљћњўћўћў§§ћўћ§ћћў§ћћш§ћћљ§ћў§§ћ§љ§ћ§ћ§§ўћ§§ўћћўў§§ўћ§ўћў§§њћ§ћўћ§§ћњњјћ§§ћћ§ћ§§ћ§§ьўћўњ§љћљ§њ§§ў§ў§ў§ўћћћўћўћ§§ўў§§ёћ§њ§љ§ћ§ћўњ§љћ§§чў§ў§§ћўћ§§ў§ўћўњњљњљћљўћўўўћ§§јћњ§њ§ћћ§§јўћўћўћўћћўўћћјўњћћ§§ў§§ўў§ўўщћ§§ўћўћ§§ћћ§њ§њ§ћ§§ў§ў§§ћўћўћ§§ыћўћўћўћўњ§ћћ§ўћўћ§§ў§§њўњ§ћў§§ўћ§ў§ўћћўў§§њўћ§§ў§§ћ§щћ§њ§њўћўћўћўњ§ўўћћ§§ў§ћћ§ћўћ§§ўўѓ§ўћў§§ў§ћўћўћћ§ёћ§§ћњћћ§§ў§ўћўћћѕњ§ћўўђћўћ§ћћєўћ§ћ§§ў§ў§ў§§ыљў§ўћў§§ћўћ§§ћћ§ћўњўћћћўћ§ћўўјћўњ§ћ§љўўїр~ћ§њ§њ§ћћэўћ§ћўњўћўћ§њ§ћў§ўћўўњћ§ћўћ§§њћ§ћўћ§§їћўњ§њ§њ§ўўшк‹Wљ§њўњћ§ў§§ћўћ§ћ§ћўћћ§§чўћўћ§§ўћўћўћў§§ћў§ў§ў§§ћ§§ћњўјўўѕЃ\ZQўў§њњў§§єўћў§§ћћњ§ћў§§њў§§ћў§§ьћ§ћћњљњћћ§ћўћўћ§§ћћўўјєžV@:?хўўїћ§њ§њў§ў§§јўћ§ћўћў§§њў§§ћћ§§єўћў§ћњ§ћ§§ў§§ћќўћћўўѕмkI?W]OShяўў§яў§ўћўћћ§§ћў§§ћ§§ўўѓ§ў§ў§ўћ§§ўћўћћш§ўў§ў§ћћўўїЏkJcGS;(J>mчўў§ѕћўћўћў§ў§ўћћ§ўћ§§іў§§ћ§ћўћўћћ§ћў§ўћўўюШv…Y`h@434OWpS\нўўу§ћ§§ћўћ§ћ§ћўњ§ћўћў§ўћўћўћ§њћ§§ћуўћ§ћ§ћўўВY[HAEE);;1UedB;OcДрўўэњўћўњћ§ўћўћћ§§ћўћў§§жўћ§§ў§ўћ§ћћњћљ§њњўўцM08-;2%1;0LNOO0B[UЖўў§§ў§§іўћўћ§§ў§ўћћвўћў§ўћ§§ўћњћ§њћћ§ћ§ўўФU)5(053,22+7,GZT!LO`oЛўўћўў§§ёўћўњ§њ§њўў§њ§ћ§§іћ§§ў§ў§ўћўўцрtI:57-,+*&$?PT[gSQgbO9B”ўў§ѕљњљўћ§§ўњ§ћћ№ўћ§љћљ§њћљћљ§њўњњўуьvGA*."!)!P]S]\b^]]P8?Ubнўўѓјљїїћћ§§њћњўћћяўћўњ§љ§њ§њ§њ§ћўћўўХ”kW1$(!OVS\ac]ZT\^aZW~Œђў§їюѓѓљњњљ§њ§њћ§ў§ў§§ћўћ§ћўћўћћўЬѓ‰EQU;&%!JSLZa`THHWaaQN@;Зўўээёяђєљњўћ§њ§ћ§ћћњўћћўўћћћўћў§ўўъЯN%:C (NOOZ[SdNHVVэMPkT+`зўштмђїњћ§њўћћњ§њћњњћћї§ћўћўћўћўўгŽ<AC^b),!-OIMCE@GOUVIMFOVNC7TЅгљћысєљ§ћўћў§§Шўћўћћњ§њћљ§ћўњ§ўўђj.U+!PUFBСїўўѓљ§њ§њўћ§§ўћ§ћћњў§ўћ§ўўи’+5,01&#+VOLOGAQPGIC>@HMJCITZQFBAPM‡кўўћћ§њўћћ§Ъўњўћ§ћ§њћјўўњŽ870-41013IPCA<@>?;H@HBSITBPLLPJEaeLMd}Їўўћўў§§ћЫ§љ§ћ§љ§ўўђP4,,.,1,3LHEG3:78?:>@5A4I;LMIGISYY;HmkW‹ЈШўўћњ§њ§њњі§њўћћњ§њ§ўўг…$3B599*0J?>CLW(:@9INFCEAHGMYW]`jnrqi~xJtoЗ§ћўўљ§њўћўћўћ§њћњўўї?7FAEPILMICV@PITVYSY\^ed@FєўўэЎzk^ССЯкЫмдбхцьющјўўзљяР„kBpZLN[;9HLIOBZU[??IPOHTVcW\UVQ>8iСўў€ФЅ3@3ЗНЧаЪФЪЧеюсюїћљњљўўэЎКЮНvj\4AEHIJIOZZ[Y+@CEPHS\Z]SPTVZg\YЕўўєd?OШЦИЗИВАбрнтјјћљњјѕљтЭнррЄ…Z9V^@NJPTYUG`INFNCOO\V[[WQULY[>U‰єўЁ[LРРОажзйеЯЮтїњ§ћ§јѕѓєьпхьЯЦцЩmJJH9MPOHEGEGUQJOEOJU]\YZYSC@CVu—žnMПўw<§wџ;ќwџџ:ў€џџ:ўwџџ8wџ7ўwџџ6ўwџџ4wџўw1ўwџ џw/џўw+џўw*џўw)џўw(џўw&џўw%џўw#ўˆџџўw#ўˆџџўw"џw ўˆџџў€ў€џџўwџw#џўwўwџ&џўw)џў€*џў€+џўwўˆџ,џўw/џўw ўˆџ.џў€ ў€џ.џўw 3џўw 4џўw5џўwўˆџ5џўww§ˆџ<џќwˆџ<џ§wџ=џўwџƒџўљњћћўў§њњНљћљјїљјє§љјЛak‚hcB;,t‚P:7>G1e]Y[gq…ўћўўћњў§њњљјћћјљљўљч”L($CHJC9AAFIMLF<>?A@HNTQTGc„vŠz„vrv~rhYkzqn§њњўўћњљјїјњїјћћў§ћ™ha>;EH@?;95855C408@CFGCF8?Gi]LIVOQabop`^adcB§ћјјѕљћљљїњњїјї§§ЩœM7@7EB?E:5>BGB8:32FUPSHE[]Uw}pJ5HW\hmINY\ocUajdoeE{љљћћФјљјјљјљћ§ћљЩ‹qb„zMEFJF>19CBE>**4.:GSMFZorccaajkcd^TZkccqw{r§§њ§ў§љљЦћ§љљœwbE`\%&;AGC@CLJJBB<>:4,+-3@oŠkAONWgeedhmbzhiew}z§њљљњњЪљћїљћљЅrpGGZUSII>9;>@HF4++;:9-,@:?QP]W^b]ghicnœŠ„|u{{љњљљјљјњњФћ§љЭtZcvPPQVSWSH??9ACGG)I[c]a]T^Tdpƒwr{~xwљїїєєѕѕ€ќєјћјЛmLTAb^VVNHAL83<9EBA@:?>9-3WngkSƒœ„`Z[SGOGGawrzˆ‚urјљћњїјљјї§ћсkPG?\]a\UL?1:;-1751@GIA4?(;rkUabx~dP^gmxu{w{pqpkih§њјљѕљњї§§хb\VY^^HBLA:A<;9,!9??<99>;750J\WNEC*(Ogj^\V]`]ad`chgZiu‚w‚ˆxxwmeјјњћј§љяO3Tc^ZVQLGC44<7;.,;>GHB@OM\C\v`VCP\PWUSWetvzutv}{{rojrvїїѕѕљ§љ„IEQHMHE?JG998:828>BE@8;+9G]wbU]L\YZM[Yw’ƒ„vƒƒ„|‡Žuqp}zњљљ§ћю…;?e\FIM@F;94.9C?;?7<;+-09-anjoi]emeggёMP}uvŽŒ‡~‰…wmm€Ыzˆїћћ§РhV%%ITIFGMOG>.5@BGHEELaeYg]NN]ca\TNe~o{qz—Ї”ˆ„Žqgmugcї§јаYMYJ))8--:)5?>.7-10*>:8<37)<^YQS]UJP]dgZMP^igoz„Œ‘ƒ}žxFTpnW]§§сtA;2<,()1$".&8413.37<5AN9.GO^bd\W[^ijkmb]\bjrz…ƒ{ƒk:\cUhw§ЧUNTSNAA,8;E+)57,.(:8;>;CA>Ojw|[denhervohgmozx|}~|uvrviQVb^Pv˜љ‘EWcMBB@<>FI.FCBEG70-4GFEL[}pnchnbiuaVMax}~‚Š…tu~j`aepoux…Y79-@C-51*);3#+:?81F:4-C\Vgh^Zqgijkmu„cQFLkv{~}ƒ‚‰ˆƒ„vicci`{ŸF->SECA<173(75BA8JNaww`cvrhjgwxqI2E[t~|xwu|Їz{zpq~q„ЏЋ:INIBA><;.-30)(CI4;@C:23C[tgV^\rd`\pxwjW]gdqxurko{v|x|txxge‚ОКЇЃCUCPLI;*.<>*" 1VC;CFCOn‰”pieie^cgrkhj^SV^hmqtjvptzwuqm`‚ЂФОЄ„%&BMSUH<8*-:!-4,EIFU~•ˆ|q^jgVahtwrVP[PG]muxƒ|}{}vvipr‚ЄЂЋЏБ’8@@d`NE&1!&*+O?GjU@œ„u{zuroggkt|qb]Q^aan]`‡‰‰…wmoq}‡•Ÿ™’…~()(@2?o7""€ 3H?GET‘Љ‡|jbapphO[hroe[]Yhptqmr‘…zz{|php™Ћ’Ž…z•Є&?IH7&#" 35;:ИŸurd\bh[$*hueidiqŒppmmkz}…‰‰ƒxicV|ЈЋ•„”›2)2,3+ 2C*93,Ok{gII]d`dYYe„–‘rxvxŠƒ„{t{ŠЃŒ’’‘vhW|˜ЇЅŸŠ‡”)#+50+3]q230<*#  *HZTCƒ—zqa‡ЇЕœroddu‚x~vt|c[t‚ƒwqvqk‘СЕ›™—ЅrO?084"#!   # !av{zqtuРО}pzh`goi|‹ˆ~bPcx~onzvUЎŸЄ–Žž’xde;75:J  $+t‡‚{ƒЃžƒpp|jcpg…Œˆ}waYao‚Œ‹…vrŒЃ’–™•‘–mo{>;;<:@@95CEBEE?;?CB;9?SVZVSpqqДФИ’•ŸЃЎЎЏЗНИКЖЄЉ§ћ§њњ§ћћ§њћњњўаž\VTbhYTMTOMHPON?247GQOTVH[[‡ЏБДВœЃЁЈЈЋЉЋБЗЗВ‘Чћћњћљњ§ћ§ћћўўЭжraŠxHMJIIABFMHE?4392GOccZuЂЕЇЋБДВАЏЊЏВДББАКТЭУ§ћ§§ћъњўў§Ѓ~aCcW-.HFBFCAELEBBоA@8BCGOJ@9;>GECIWWp˜ЎЏžЄЊБВЕЗДДЦрбЯТОСЦЪ§ћћњћћњљњљўўЧдw]n}UWVUZVTIC>ACILIBEPVN:ISh`}xžЕЕЗБЎЎЇЋТдЩЧШЩЦУћњљјїјј‡љњўўРuQWEa`WWUIET855B@GNPLGFGF5MЇЂНЋЫшбАЉЇЈЇЂЇРОТЧЧСЖ§ћћљћњћњћўўуrTE;`hZWZQG@;744;<@HE443к0@OO:@Y{ЌЋЃЉЇЇЋЋЈЊЋЌЎЅТФЪЪЮЮШФООРЛћњћњњўŒ–@<9>AGLG@GJŒЖКВЏЏЎЌЌУЏЇ’ЅУСФЩдаЮЪЧЩЪФРРЦФРљњўўНoZ&,TUWUVZUMA?>BFHIJ>@LSVqZrЉВЊЏЎЌЋЋ€ŠЌЉЅЅБЦЛМТШкмлеелТЗДЕИЕљўўжZSVJ0EEA9A59EA>5:<@AEIH[OOnЌЕЋЉЎЌАБЕИЖАЏЌАЕРЦЩШШ€ЋЦЩЫИ™ЇЏЌИРўЩTSPSIGCJFHN41:?8742&8@FLSVSxЋИШАЋБВЕИЛОРКБДИКРУФЦСМОЧУЖЄЉЃЊЅНЯў•I]gLL@IPQSa127GIAACA;9BSTZv›ЦЪКДАЌЏВИЧСВАЄООТТСФЩУЦЧШУОЎБДНЛСН‡^;>8>@>BC<>B@22EE?BC@;7MemŒИЎЌКВВ€ЪЗИЭЖЃЃœЖОСФТМУЫЭЫЧТНВЏКБЌРсрJ3BYHGI@;5.7991,8A?BHJMI]b„КЦИИЗДЏЏКЛМК•ЋЄЄФаШЧНЖНШШЦФТМИЖРНЩгщй?ZHLFFC;5<94584EJGCCGM>EUЖДААБЌАЈЊАОКБЋЈЇЌЗЗККИКНЧУЦТФФОЗАТэумм>VCQSJ89:;?<4+2*>VLHFLSaТажКЏЊЉЄЄЈЕКММБЎЊЌВЗЖЖвНОСФШФСНИЉЦсћђуЯ*$AZZWE?:>CEE.2FEAQOUo›ЪОУМЛЏЏ€‹ЋВИМЗ™ЎЇЅЌЎДКОТУФРТУЧСУОСШнлсйтг8@Cc`OC0:89:3-L]EQ~iSЯбФТМЕБЎЎВИММЖЈЄЃЅЌБЌЕБШЭЫЪШТТНОРЪмхзааШЩ)00:*Em77245441GVLTWdЌлЫНРЛКРВЄЂЋИКЕЎœЊЉЎЖКК€4РйЫЭЭЫШТТЖДпхеЮЦЭее&.Co‘ДЦУОСРСЧШлЫЄЅЅОРРМЛРУЦЯбукЋЏЏЉМНЮмлШЫггдгФДУТР)-7417hЈККЦКИДЕЗЖʘŽ›ЉЋММ€0ТМКНФбеутбСЛЗЊБсэщедбаЫФТЧФУФ",39?@>NN‹ДЦгРМОТОЕЖМОМЛВЂЈШУЫФРИЕбжддйждгЗœ’ЇСгЮагаЦОКОРТС+2G23TzЁЕЦКЛЛРЦЩФИИККМОЛЛРЧЫЫЮЋВЉЯйтпрмнеМЅВЖЩбдбгЯЩУЛНССР :#EPkЌ™ЁЗШУФСННЧЦНАЎЎЗОЛЕЛОФФбВАЊЗЭлмнмйнТЊДСгюжждаЪЧУУФСЫ  5^˜ЪЧ—ЗЖОУЦУУСКВЏЉЋКНЖДКНИИЗДЅЧЯЯдммлезЏЇЎРбкЦУЩЭЪЦСФЩЭЯcЏЦОЈЋЖЧССНН…ЛРНЖЖОЦУМЕЖМУУМЛФдйкйпсуэнБŠ~ЅЗННРУЩЫУККРЩб%$*$"`ЛЗЕБКНСНКМЖЗКРРОМОНЛДААДЛОСРФШФОЯупрржжУЈШеаСНМССЛЕДЗРЩ1J50&1[ЋСФТЦЩЦЦ€,СЗЖМЦЧОЗЖЗДЖЗВБВЕЛТСТРСЦзжккпЩСРчњуРНЗМЛНИЖДКО29#4:hЪЯСЯЯЫЦЪКБДРЩШСКДББЛЛЖЖДКУЯкщкЪЦЪаждйзжх§эбОНКРЧЧУОМРС!-,+4]F3ŸТЖмїеРКВЏАЖФЧЧКЖБКТФРЛИЗИЪйейкдЪЪЩЫВЦчцјЫРМРНФШЧСЗАИФ"!$),3SŽЕЁžШУМЛЛЗИННОТОННММЗЕАЖЛСЭђпсмеЮЪЪЩИдщрЪДШШЪУНИКНУССЌ0L.4<?.+&*.:„ткУЧШТОНТОКЗЖДББВДОТФРТРСРТРИФеечпммдЖТШлжбЯбДЈАИбде?HH>&,31&JЊЫОЛРНЗИННЕВЋЋЈЊЏНЭСЧУЛМРСТУМЯуюршжУДЛТШЮЭЩНКЈЏЏЅдыг<>95,34.3$7vИЖИННЗЖЛЛЖДВЉЇЉСЭыебЯУУЦЦЯСЦЩлппйЫЭРНСФШЧТИНСРЗŸШегG9449@;9:..OŸЫбИДВОСТФЧБЌЌЊЋКхкшбВКМТЕЫѕўћсЧЮУЦТСУСООРФЧФлЈ’ОлзJF>>;72,aV)q‚}ЫЫЎ‹ЊЇШдЕ•ЄКМРсктЦНЧФТЉНыўядЮдЯШЧЦСКАБЗЧЩЮкДЋУййJC>pH:,xz4‡–rцтСЈВЦТУЕ›ЃŸЌаяћяыкОЕЩШТЇЦнжЧЪбегШЧЦЩУКŸЖЪбгЯШФСмд>9.L^n7N:>,,ЈёсЊОДЊЄЄ€ЈЊЈЃТшсдЪгЈЈСЪЫЪЮбЮЮЫЮдЮЮЪЪШФЛШрхеЫЩТОЩбшHI5@$00,.>`”АЎДЋЄЁЉЋЕОбсЯЪасУЛОЦЪЪЩЩФЦЧЩШТТРННКЗбабЯЮШУСЦЩЩB;74152-&(&!"?3UЊЫТВЉЊЌЎЈŽЌађпСЧЧСТСТСУСОРСТТШУМНИДœДгсбаЮЭШЫЫШС:B?747-$#"BEcƒ„ЦеКМЦЌЩшягКЕЊЕЛРМРУЦССЕЛОЧФЛИЗЖЉЯёялжйебпуНЄ9@4&CУэдФТЩЗАЃАВБЏЂТсТОКЛЛЖЕАФхгбЩЦеэьзгддгЧМЛМСўћ§ў§ў§§ћ§ўеЭv‡ЃwWL[UZ]ktma^YUUSYTP^T^‹”‘~S]`tnor—Œ§ўў§§ў§§ўўћћ§ўћўўдЅpzggrTWWZTViai`YZa\`\Y\NStƒx„h^ujrvtwqŒŸ§ўўў§ўўў§ўўў§ўўў§ўўдКaTvq^[Z]^gcZ`^\d[ST]bZdWITF‰—gTJ`cOurun~‹Ÿўўњ§ўћўћ§§ўаАg;8[k[QQYV^Y[\\TUPYWckiniYƒЂ’ž‘–‰ƒŒ‰…zn{’ˆŽ§ў§ўў§їћўћўћћ§§ўўШВ}rTOZaQQMIQLLTQVJO^[]a]WLJ^‡nSIdhjkx|ˆ|wv||V§§ћўћў§ў§ўћћ§ўћўўЯБgM[V^PWUQNQN[PTTLP]pwqd^rvm‹…YVT[dm}{„ƒ{jx§ў§§їў§§ћ§ћ§ћўўШДkkhrwpecge\h[[WQMGUceqg]N]Oczw}cein}trxx{‚|]ާ§ћ§§ў§ћ§§ўћўўЬщЋ…uЂœaaZabZY[Z]UHMSHJ\cqgcpŽvxƒ„{zv{uoo}t|‚‹§ў§ўў§ќў§§ўўЪЏY~pAB]WYUZ^c^ZPSZZSSNMOW`…œ„hptv{{wwuxv•||zŠ–’§ў§§ўўќћ§ћўўЭК~˜YcmeghSYOZV^]\MGJ\WTISTOTaozorrq|~|~‘БЂœ„‘•›§§јўћўњћњћўўУтx‚Žhqqjhk]]SQSS\^TWZ]d^EEMH8P?Cawzwtrtctƒœ”’”›Œ§ўњўњћљћљўўЩЯ…gp`vtnko]`dHTOJVZcb`YWSN4Lu|h~m–Б›vdnjceZdrŠ…—œŠ…§ўћћўƒѓj`Ox|vnmdYZQMLMMTUUaaY[S?3Vwvm•}ekkwˆ•ˆ’Š—‹ƒ~§ў§ў§ўћ§ўўѕ”x}qqwwWTb[YYTLGCNQTUNWUYTAEz‡‡hgkuj[Tit|„ŒŽ˜—™•‰|zŠ•§ў§ў§§ћўўФЄutmkqji}]ZaW]MLGEFTEUY\GBH`zqdjpknkpgt}tm•”›ŸЃ›~‘Žzћћ§ћћўўУЅJauthgdnb\b[aTIG>Zzj^^W<@]}|opp{{~|wv‚}„’”Š˜ž”‰Œ…ћўћ§ћўўУЕkBu}xxj[e\[MOQ\SYQPT`YVYeaoaj{hckrvvpxvƒ‹‘‹„‡––‹…„њ§ћћўўУ™[[idi`USWSTSQPQ\OLU\QZQHSToŒ|`ommijjoo~Њ˜Œ™˜–Š•Ђ’‹‰ŽŽњњ§ўўФžLV}md[T`YWSPQSUP^TUTWUUNIAr~Š„{|x‚uqwwah‘ŠŠ”ЋŸž‘™œž„ƒ‡”Žњўў€yЩ}r9:jhcZ[`a`WPOQa^]TWY\\gnU[v|nwvumqxvrpwx–‰ˆŒЏОЏЁЇŒ‚„…ztњўўтnetd>SLHFQHO\\UIJWOZP]WSSCCVovdeupinxrherv‰™ЁЉ•–З–cb{…vvўўї‹PSJUMOQFB>BENTSLBGOUV\VbQNV[q|puhko|„‚|uzuv„‹˜œ’”‘”˜‚ZtvrƒŒўжiedm`^PLOQY2CELLMGHVFOV[YYUcx‚Žr|{‡ƒ|…‹Š}~„ŒŠŒ–Ё‹’‘knpqi„ЉўЋ[r}cYgTUVZ]9?GZ\UPUZVFPc`Z\n”˜}‚zvz{u’Švkm‚Š–›–›——‡‘›—~r|z‡„Љ›tNON[TWSHMIGIGIJWOVOcUAWrp}ƒ~p‡xv}‡‡ˆ™{pgdƒ‡•™ŸЄЃ›˜˜Žvux|x”ВЕ\HTkc`ZVF87EBA;ILQNYY[STbkxŠ{|„}x–‹‚^emjŒ˜œ–‰‡Š‘œ‘‘’’ƒŠŠƒЂСЛQk][^Y[SHHFJA>IW^UW\]ZMO`o‹‚wuzwupŠxkwzuƒˆ…‚‚‰’””ŽŠ}}—жЫМЛPm]\c]ISGPHI5074Np\[U^Ui‚•ЃЏvzpdp{‚‡ˆ‚mp~~ˆŒ‚|„‰‡Œ‡„~o•ЛспНž:H[Whƒg`•Ќ›’Š‘…}zvx{„Œtkpmv|x{~‘œЄž˜”ˆ‚~•™ЌИЏЇЂ›–;ICFAPwS9CAG784Pb\[[cЄМЃŠ…}xމpgt~xijqz„…„ˆ‹ЅЇŸ”–‘{…ДЧЎЃ–‘ЊЛ77@H\TH,21@B>70.MQIV–гЕ‡ˆ{z{{€HG|Ё~tx˜‚ˆŠ…„››žœ~}m•РЛБЊ–•ЋИ48>@;;28HYJ?239SUJc„Ќ~\hpt{zqk•ЎЊ‰‰œ˜ˆ’ЃИЁЅЈЄŸ‡xc‹ЃММБœžЁЉ,+A;E075H}‘V+E;OOTnˆ‰‰zz|‚‚„wt}…—Є’Š•—›–}^a…ЁЅЄЇЃ™z˜ЈЫеЗ‰’Ѓ1%47B9<2VcB85;N]m‚’‘‘އ‡‹‘Ї•naj‡Š˜‰ˆŽ‹™ЇВЏ~~}ЁАЎ—ЅЊАЊ›Šˆ‹"*&&2A@>AIBB:#2P}ƒ}–‡w}{Œ‚aUbnv~„‰Ž‡‰ŽžЉМВЂ—‚„|„ЛбШЌЊЈž”Œ’™”&08A9?@HEHBk‰‘Ёƒ…ŽŽŒ…‚ˆŒˆ‰ƒq}‘Œ•›•Œ{ЉЉЁЊЎЋЏЇˆpgw”АЏЊЎž‘‚‚Ž‹Œ#&&AFT:&Piz~‹}ƒ‚„Š–Š…|……ƒƒ…{…—ЁžqxkЁЌКЗЛРТЋ„m{}ž™ЁЉЉЃ™‹„Љ‰%"+,S21NM\ŠnxˆœЃŽ‡˜˜|tw‡”‰‚БޔЂvvt‰ЕМКДЋИ’{‹•ЇЫДЌЇ™ŽŽ‡—$(!A]‚ž”da…ƒ–’›Ž„uww‡‰ƒ‹ƒ„…„zr’ЃЇААЖЗЕЊ‚x‹™ЈЖž•˜Ё—‘‹”˜Ј1*0&WˆŒz~‘‡Œƒ…ƒ‰”‡‡‰™‘‚w}ˆ’ˆˆ„•ЏЏЎЗЛЛЭЎ|YUxސ‘‰–ŸŒˆŒ”•œ 9@@5+)T‹ƒ‡Ž‘Žˆ‹ƒ…‹—Œ‰„ˆ~x{xŠ”•–•ŽЂЖЖ€еИЊЈ‘xŸВЃ•މˆ„{~‡Šž*0JcB70>ZˆŽ”›™•–Ž‹‚ŽŸž‡ƒ‚ƒ‡…w}…ƒ‘•‘‘–ЇЎЊЈВ™УзЕ‹ƒ‰Œ”‡„ƒ‡Š,IE<:&?2P˜›Ž›Ѓ”Ÿ…‡ˆ‘™Ÿ˜‰~w‹‡|x|žДТДž›œŸЌВЌВЉУчжЇ‹‡‰Ž•’Œˆ‰„ˆ3F:><:LjF3q™‰ДеЏŠ‹x‚Œœ’|~‡–’‡{‰–ЌЏВАЉŸ™Ј›ƒ˜ФЮкŸ‹Œ‘‘žŽv}›˜599€С4@J]GJkvvСНЂŒ…‚Š—›™–Œ‰ƒ…|rv‚‘•ЄЎНДЈЁŸ—‘iШЯБ–Ž‘–˜––‰„}ƒ|4;>89A;:4;p}jpœ‘Љ~‘Ž•”‰‰Š‡}}‚w‡ŸзУИВЌЅЉЉЁДЫ͘„–ЁЄŒ……”–’•)M`3AGEH<0`Š•ŒŠˆ‡ˆ‹‰|ƒ„ˆ‡ƒ…vptu‹ЅЁБЛОБž••ŸИОЎЄ˜‚‰˜Ѓ—Šmv…–’‘—ž?eTPCC€јE;JƒœЄŒ‡‹’œ”Œt„|tz}z~‡—™ЎЎРЌ”—ЅЭлРŸ~ЈЃ–’jƒŽ•‡~ƒ–PLBC?>93?,.ƒЁЁ‰’ŽŽ•‰}‘„…|vnz‘ŠŽŒ’’ЂТЗ•~nŽЩєцЏŒz}ЕБЗЊ˜Ž•ŽƒƒŠNLMOF80;FA;кО™žœ˜‰‹‹zz}r|vnt|‘––”˜žœ”v„{˜КлЫДŽv‰•БКЕВЗ–mqq—–›LUHLVB40%93ƒЗЃ‰žЂœ‡Š…‚‚wim‚Žƒ‹Š‹‹ˆ„Š}”ЃЉССЗАЅŠ‘ЃЋАЋАЋˆp|}ŸЄЃT]VF2<<;8#+O‰•Ž‘•‰ˆŽ‡|vttqz~ˆ–‰”‰ˆ‹Œƒˆ…ЄДЪСШЉ•„‹ŸЈЊ•Žˆ}z|rЎЯИUZQBCEBB>.$5a„Œœ„‡’ŽƒuoowŠЛЌЁ–Œˆ„œ‘’žАДАЎ˜‡›‹‰‰‘Ёn›ЊЊTVHELIAG<2.F—Њˆ|’–™Ž”„wmvwŒИКРЉˆ~„ˆzЄпјнСœ™ŽŽ‰’‹‰‡…ˆŠ˜ЌАw^’ЕЏ^VGN?>A;aY0rt^ЃЈ~YroЈЖˆgjYa„‰™ИЦЛ’‡””ŽuŒЯњмЄŸЊЂ—•Ÿ’‚‚z‡˜ŸЉЉƒ–ВР]T]ƒJO73‚‰7Ž[ЯШ”~~™——johr›ЫуЭаЊ…u•™Št˜ВЌœЃЈВЈŒ‘ˆv›ЊЏЂ›‘‹ИКTW7\mЎ|@cEI),˜йУx„~{konujŽФЧЉ›žtr‡Ž–—›ž›–ЂžœЊЄŸ˜‡™ЏМЎЉ•‰ˆ•ЊР\hJN(74%71 Bbƒ„|zqoptzƒˆ›ЖŸ—ЏВˆx„Ÿž•”œ’‘‹‰‘…ЋЈЊŸ˜Ž•ŸЅЃVUEIBencQžЌŒ‹‘tЂФЪЕ‚…{{‡’•’—”•zŽ›ŽŠ„}ЇеШЏЊЕДЉЛФŠgOOLOC>:9##5<4I0.1&MLH7>@;?GA:&@ЁЪЎœ”ˆwpx{wum’Д…‘‰„‚{{˜ФИЎЈ–ДбеВЋЁЇЁž‘„‰ўwџ&џўwџ'џў€џ(џў€џ)џў€џ*џў€џ+џўwџ,џўwџ-џўwџ.џ ўwџ/џ ў€џ0џ w2џўwџ4џ6џўwџ5џўwџ6џw8џўwџ9џўwџ:џўwџ;џ§wџ<џўwџ Оџ€лx…•››™—Œxw{ww~c`]wЄБЋЅ–‘”…}•ЎА›zqcQC8722.+)!#&1?4 {}}…Š„ur|~„ƒpZdopŽ››‹•–‘˜ЅТДЎАМОjHCE%$+3<.#*+"   &$ŽŠŠ}pqxpp{x|ŽЛЎzWTm‹œ™™–˜˜••”™ЅВЕСЦЛ‡UA,598%)$! !  –„xwtgeqtzozƒc8G•›””ŽŽŠ”ŸЄЊ™‚\QP[?%3;P   ‡Ќ™reppu‡ŠŽ’‹tL\ju‚Œ”ЄЂ™‡ƒƒ‹‹ˆ•™ŠmamaY?# (#"   ЅЃƒkep|kzˆˆŠŒ—mVZYqŒ™ЏВЄ”ŠŠŽ‘‹‰œ˜‰Ž—˜ž–wM0#0;;E%"  ЌЉŠY>*   ~…dWO]„‰‰ƒxttz‚މŽ‰|~ƒ||}ƒ’ž…{wxidbuokmZ:  ‚‡t[bu…‡‡aYmig‚‡…ŒŽ~uw}u}upo~Ž‰„}‚‚vz„‘‘rG1+    ‚ˆirt”‘АЄrU^egv~}—ˆxx{}}‚„А–Œ{hk\Yhu|…zQ?OU8|vndЌЅœ…j^t…Љˆ|rtwq{wz|ƒˆ|ŒŽ‡Ž’‰xonoehdba…i18J&  ihijrv…{kru‚‹”‘‡}{vwv~ƒ‰ŒŒр‘ˆ…‚‚‰~timpga`k„zF"-E`;# й pqk`iqzoe`Oe‰„Œ’‚„{rw|‹”ŠŽŒ…}}{wzwwйumc^m”v1%#,!#8-  qheiworztcdnow€}~|ƒ‡||ƒŽŒŽ…~„‚‡‡Ї™o\c›v!(#($  i|vptjxzmb]‚‚|{z~~‡Š„‚~‚‡—”…Ї„ƒ|bSPQFTV^{\)#.!%!..)(q|{|~‰ЃЋ„V[‰™‡‡„„‡‘ŒŠ‹…ƒƒ„„Ž…Š™„ƒ„{][[c`^r8%(30!"))-+% c^gh‰ЏЁŽpjjz–‹……‡Œ—ž™~}„ƒ~}{{~‘‘‚zrrjdmh^h„g1 %,0#*17*hnt|—Œ~x~z‹›•Ž‹‰„~‚}{‡‘imrto|Њ”hiebcgbhuoI40(!#$#%*:?9<1„dxЁž‰……|uqrŠ›–”…‚zxmwŒŒ~wzuoprvportkqm|ƒe00F>(,%-("!!mNБЏ’‰v}‹”Šƒ|tpv|‡„znquhnvzzijorja[U;!%",-(++ *g[|ДЌ•‰‰……}‚Šˆ~‡‰‰ƒ}z~‘„vqrx{tmmrtjbcogWa\F-9.&%"+$ Cxg{ЁЏœ‚wuŒ…}„‹™•’‹~|vowxrmedckrrpj\[igageG$041#()  (-ЗŸ›–np|ˆ„}‹œ›˜‘wt|Š~qjnttrkpwteZSW[az[HGF*%$0;;78," !>;‰•ƒopph{ƒzpv—•„ƒƒ}x…uecz…‘–zbntohhQPgdJ>2"())0)05I, >V@>ŠŠ‡}uqqx‰‹’‘‹‰„ƒ…~{w{}|ƒ|pcЊЂЁƒQaoxvd]mcF42!.582-%&",; )(%(%.5$+&1 !4@3N’НЩФ‡}qo…Ž…ƒvnrw|w‡‚}‚…Ž•ЈЁ–\ctrce^|…T-7AB5+,)%(EG\‚—””‹{vxz{……wvrt‚‰Šˆ‰‰Ž•˜‡ƒŒxo^\`A"!IA(++ 1:51[˜–˜……‹…vggq}|„tn{{q}„ƒ‚Š—™Žnp|wnjt}m9,!#! $BGLO…ЎЁŒˆw|‚„vaap|v|‹‡|‚‚„|pt˜•”jpq`a‡n?+:A0%"€:?,JŒЕЊ•…–•‰zvipu{ƒ‚‡‚uprxЇ™g;Wmr^SJVpQ-")7**)&" ,91`ЄЉ˜‹‚ЄЉЇ|uv{wx~ž„ˆƒzxw‰d5.Pc\UWO]vJ:]A950."+)2- (&Z”›—œ˜’ЉˆŠ}wpt}‡‚}„ŒŒ‹‚|z|vƒ’p-Ov\U^i‡…T($"+.2.&-.""-5EjœЄЊКЂƒŒ„ƒ‡‡„ˆ‹„|{}ˆ~~u}P&q~\UUgzA0. &! 5?FPxВТБЇ‘xxwt‚…‰‹„~{wx‡™–|tuvq~oWYw}i`m…ƒiA+!&$!(3$%!3B2+$! )2j–”Ž‘•ŸЂŽiZnkqœ–ˆƒŠƒvu|}‹Œ‹‡minuv}wwxŽžŠI- >ktZJ4 %,3B’ЎŠ…•Ÿ™‘‚]hx}–—ˆxu~‰Š~‚ŒŽ‡|}zxnw}‚{uqvvMWH Cot`; *^Ÿ‚Žœ˜’ЂЅrxz’‰ipz‚‚|x~…‚|wxrpx„ˆ‰‹…˜–‰U+23;<%.9A9+!! M’qvt™ЁЅ”|{jSYVЦzŠƒztwwx}znjww~ƒ|nqŠwA8@0-&+$#)#$#9;p‚}qz•Љ—’‡t}uTUe—‹ƒnj{|‡‘’ˆ‚„}ƒ‚wt|‚‡|mwuB4>+"$..*"((* ;Zuxu‡Єv{…~—~dauqvzСбЈƒq{|nhottpr‡ЇЋ˜h-$%&*$"$;>75901)CBFY|ŒŠqouwopv}ˆ~]@xjgq‚‡ЏЛЇ˜‡xqpopntvr…ЌЗžQBFB32+1A4,*(9oАoort\cuƒ•АŠ|ƒtmqku–дѓкЗgx|xwƒŽ‰Š™žk)JE8&0>:.)!!!C„Ÿ—‡„}q}—’‰‘„qncanƒz„ЁЋИЖ”ƒqhm}„Ž—–”БВŠ@#5.5?1&&$!-*.# !-?;Jh„‡wprvz‹’›•ˆ„|{toc\ƒЂЉЃЌœ~orhcxƒ‹–iv‰oHB24.91)2*$&,(%*&Per|…ˆŽ˜Œ‚Љunkjtug}КФ—ˆoCW{oz~Š”Ÿ…xbC$1*.?A3 #>2>bjhn‹ˆ……ŠŽˆ„~uiab”ЅДŸЉžhYeb+HcrˆŒАЗ|".8($!3))4$!$1G]ihztx‚…uw}Œ‚{tc^\€•ЮЭбкнйзбЫФУТТЫЎЌЈУыєтнмйггУкшэлВ™}`LIBNCA>B>:88>@T;!"#%-0аЮЭЭЮлбЩШУФЫйеЦЅЌЗТбпежежззнђпхтчнВ|WQ[CB#""$#(азЮЦФФРООНЦЫбёюЦŸ™Идмм€нлзййкклйрьјьЌv\GONUGB84473%-41)"!&#ЩсеЮЧРМНРУЧФЕЗЖ™ŒЧкЫймпллздЮЮежкмтйСŸŽpnWA8;:9:F\$%&$($#$!СщнОЕОУЦФЭдалжД‡ЁЏНШЭзмрнйбЩШЫазкжмЧЕЎЖБŒ^924;798,&!хыЮОЌИЫКФбззстЏœЂЇУйпмнпкбЮЮбжжгдзеЮзмртеЋ|LCGN[^B"(#"##ѓёа˜‚›ДЧЫгЯЭЩЪЇœЎЅШузкхабаа€œЫЭЭЮбжбЪЧУЦЭЗ—…{iTG7" $$ЩнЭЊœ˜ЏЭШШЩФРИЛТЦЩШеггаЫЩЪЮЫЧРУЩбжаЫТТСЌЅЌЛБВЕ–[5*$ЩЫЦЈДУЦЭдР™ЃЗЏЋСЭЫабЮЩТЛНЩЪЩТИМФЩЮЮЫЫЪЧМЛРСНЪбЭžY@5"  ЯЭЧНФЮдбтсЛ›ЎЋЃЗМЦШШЦФСОТФШЪЪФЩЪЮггЮОДКЕБВЛЛКОСŸeLV^F-%%*%!$УСРВЫрЫйУЎЈАЦдЯЫСОРУЩЧЦРУШШŠЮЯбЫЮЮгдЪСНИДАЎЌЈЅЛ‚A7`c@%))!ЖЖАЌЗЕФаЦЛЗЛЦЫЮЮЭФУУФУУТШагЯЭЭЮЯЭЭЯЩФМОРМВЋЊЋФЎ[2@ZuN44,(--(#"ДБЋЌБИТСМБВЁКйЯЪЧШШ ЩЦФФЫбддЯШЭЭЩУТФУРФЪЦЗЋЊАбЎL8BFH@J@5(.!"РКАБЕКНСИДЏДНШШУУТУШЪЫЫЩЧЩЫаЮЫШЦФЧЦШФЦФьзБЊЅЛг•-8>Е<83.*""ЖБАЖКМИМИЎЃЧЦШЩЧФМОЩбЯЭШФФЪбаЭЧЧШЫЪЧСЈžЁ™ЄЉЋНw->H??89;<:7:;><3;C?;9:;;59794898>ЉŽЉшюкдаЮЪЧШЪЪЫЫёбЭЩСТЩЩЪТОСМЗДИИ€щАЈЉЊЈЂЇЂuNNE?B9598;234-.18UМЉЕнђтЩУЦЭЭЪШШбдйебЩСМРЧаЮФОИВЎАДЕЗЖБЈЅЃŸ›Њm>0AAC;::47:4.0-,);AхгдегСЎСЧЮШШЩЮекйжЯЧУТФЪЭЩРКМОСНМЗЗЛИЎž›––АeZU>?CCBGIJE:54+4>MMЩЯЯШЗМКТЦШТКРабЯЫЧЧУСУФЧЦСКИТбЫжНЉЖНИЗЌЅ‰Žœ~`W@C@@ABCIIL[E71apUJЯбЫФНИКРФЩЩЪЩЩњШЦФУУЦЦ€џЩЫЦНЁРрбсЦ—ВЕКЖЋ˜Ѓ˜vNE;7@BCE@<;;AC?@+:LбЮЫШФРОЦЩЫЪЩЫааЪУРФЧЯЮЩТУЧЫЩЩЭЮОЖАНМКЊ›žЁe05I@78<:87:>7>GGE<;><:NZPtОФЦФЦОНЩгееЭдЪДКЛССРУЩЩЖТИДЏлЭШНЕВИЗКЏВ›dWV;9<>?>>7:8;>82:99?TxАЫШТУФССФЫгееШКДЖНСТЛЛНТЧЧУЦЭжСИЕДЖЖвКžŒgA237<;EˆЦеЭШЧЦШШФЪбдадРКОЧШШ€ƒТЛИЗКУСЛДЎЏБЖМКЖДŸ‰T79:9<?:BiЋггЦШТМжЯЮдгЯЪЦТОТЧЪЫЪЫЦРСЦШЦНДЏЎДЗДЈŠ}[:7>9;>;@@FMJE?;>>B[^J`ЉжмзУСЃОѓжздЭЦНЛКМНТЧФЪЯаЭЭфЯШЩЛБЎВАЈŽŽЋ•`A-9;@??<@FI@244А*.LIGuЦайШдРЉЧсеЮЦТСТТУТФТУФШЪЫЪЯджнЮЇЊАДБЉЃЂži7$?AA;345,;IZ[xДШЯаСЧТСУРТШЪЪЦТТНРЧЮбгаагдйЫЭЛЗВАЎЌЕœP>5):YJB88;@>5-9+FNHB{КгЫШЧУШШГНЕЕНУЩЭЫЩУСУЩЪЯЪЪЯбгджКЗСЗДВЎЛФЁPF>1977324-59;1152.@EGC:850105-,3PQ?\МчрбЭФаддедЦОТЛЛСЧЫЧЦЫЧТНКОЮсзЄt›ЌЛЇž˜Ёp;52;9??<0592441,0(EOJЩппгЮТбгаЯФССУТСЧЭЮЯЪЧЦОКЛЪлдЈpiЏЁ˜››`?hNLJB77,5>;9:72-!5>JqЗЮЪббЮСаЯЪНРНОФЦТЦЧЪЪЩШСКЕКТЮЕe:ƒМЁœœЉЪЗwA48?CH>71,4:;29:2*9FHTЩйккцмЦЪЫЪЫЧЧЩЭЭЧФЦФШЧЫЦРКЗНУ–T\БЧЄ›ЁЇЗЁWC<&4:A;07598375;52JT[|БдтѓсжбЯОРОСТШЮЭЭФООУЫаЭЩТМЖВУЖŸЄНРЉЊЌСЧŽ45S>:9:85593.-05:5EL8W›УУЭзлкбЪТУУТФЪЯЯЦСОНФЫЪЫЧШЪЦРЏЌЇЈЌЏДЕТЦАa,A@;;:98;9::ъŒФддЫечзЮЧУРРСШШ€dФТРНРФЪлгзьгЎЏЎЉЈЅЅ—АЦЋЋC#;BIGB?@-2@wБжямЯЭлЛЅЖЖДЕДМСУРТЦЩУОСТжЯЧДЅЇЅЉЌЋЉˆЗтжœY;(??:.9<;32*:GFA8J0F‹УйсгЭЫЩЩЪЦТОМНТЦЧУЦЩЪЦРНЧЪЫЩУЊДЗЛЛЗБЃТзд…IB0@;>>?<702-:@?7+dmFmЅМШсзжЮЪЭбебаЭЫШШЭЭЪЭЯгбЭЭЪЮЭШТРОСЖББАИМЌkHH?7528?A>8@IQ;-75ISN885-4,91kСбЏККзжегШУБ™ЎЕђдЛЛОФЦРНОРУУТССОЛЗЛРСТЎБЧ•SFLEB?:,+*7;87<<…>JLV–ЧТМСгцдаЮОФН™ЎжЩСЖИЛЛШбЪаФЧУСЛИЖДЖОССАЗЌZAL::@A9,.5PŠДЛМНкзИОЩЩйрСЉЏгЦЖЕЖКЭђћмСЌОММЛКЛКЖКТпшжŒA:8B>:7788:?JMNEEЈBGG>8M™адЖЛЛККЖНФШЭшдЫСЩМЛКВАељўўпНЏЖЗИННССЦбеЦ„*8TLFE@:?FJG@>>A::;84ZЕупФФЦНКУпмдаЮФЕЛДДТ€њЧймчсгЩЛЖИНФШЪШЩсчБP4;GIHG>8>>9>>CC?<;HPQgŸФЮТСРНЦЫадбЯЮФФСЕЕЖЄЧчьтцкЗЎКЋЋСШЮЩСŸЎО‹]ZC>AAHHE<7078;??1571<:14:4?Fb›ЖЎКЛОШЩШЦТЮЭШТЗЕЌЌ€‡‘ЁЌЖВВЌ’ŽŽ‘™{{uŠЛЭФМЌЋЊЁ‘ЏУЪА•Œ~i\TQNLFBA@E?CJF]L%0(#+)$-%(5.–”››˜ЌЂž‹—ЄЂ‹ou…ЁААЃЈЋЈБУдФОУЭЫЉ‡Z[]ECEGCME<>;A3$%$.&&,84-ЅЅ„‰„„€Ч’™ЏкУŒjhЁЌЕЕААЏЈЊЅЏННУблб›kUINZ\I?;FECA+G>90(2**.#–ВЌЂ‹Š„|x„Ž‘‹„rM[•Ї›ДИАЈЈЉЄЁЈЄЋВЛМŘqkhr`?0180&*$)%-08%+*(˜В{h^p’—Ÿœ‘ˆ‚‚•–ЊЈЈЃ•—Ÿ™˜”‘™ЉЕЎœ’”‹|p|‰Šƒ‚qW412#+)1$"™—‡quˆЂ’mp„{u”žЃЅЃ–‹ŠŽ’˜–Ž……ЁЃЃž’–—”Ž’Ž–Єž…NBI7%+3,((&$-Ђ•‡ЇЄУМ…[jwo‚›Є™Ž‹ŽŽ™œ—™–œŸЉЎЊ{~tt‚‹’Ž•aUdkO8.33;,"$1”~w–ЛЋД™}n{›Ј›Œˆ‰Œ‘‹‹€Ш›™”ЅЃŸ™ЃЈЅ—Žƒ…‚~wx{z>8]i?#0:@.%).&+|‚–’Œ‰—ŸЄЇЁ˜”‹‰Š‘œЃЃЅЂЁžЂŸžœ‡„…„x|~™•Y1EW~Q@<2418,("2.ƒ„{|‹Ž…ƒwpzЉœž›–—”’™ЉЋЃЃŸЁ›’’‰Š‡ŽŽ‡x|‚ЅŒE9FEEIYN@@(,!%*…‡|Œ‰•Œ~|x‚Ž’••‹Œ‘Ÿ›’”—ЃЂЁ™’–——€е›˜–›ЪИ‡o{–Б17HHBCHE?51,))x|„ˆ‰‘‚q——”—™”ЃЃ™˜•ЃЅЄ‘žЃ›˜Œjdib`jnw–o5@SN@CEAFEHFOQL+…‹ƒŒ‘ЃМУ‘kpžДЄ›–”œЃЅЂЁœ˜˜™‘—ЁЄ›ЃЏЈ˜–‘Šmvpvot—ŒC$7C@>FGGA?LJB9-zwzxŸЪЋ˜ƒ~vŒЌАЅЃœŸЌЎЇ’˜›–‹‘”žЈЇ‹‡„zz}}qx—~B1,B:BGL@IFQHI22"<‡„‡’ЈЈ‘‘Š‘œВЎЋЅЃœ›œ›”ЅЇƒ|„‰ЛЃxwruv|xu„|bEMFBHF>B>FQYJP>4?IŒu„КИЂЃŸŽŒЃАЋЊŸ˜––‘‚•ЃЈž•Š‹…„Ї‚‚}{}~…•oHEdNJNFGPBFGIH?::78w^ŽСНАЋЊЏЉ•ˆ•ЄЋЄ™”–•‹ˆ‹”—•ˆ‡’‰z‚‹‹ŽzvzquojM55HCIAHHJIJ5912<98G~k‡ЭЭЗЋЁЃž‘•—Ÿ—•Ÿžž—Œ›Ѓ›‹‡Žƒ„~„‚|tw|rqupWMPHGHCCH?B>40*+23`‹ŒИШКŠŽžЂ–——ЂЌЊЊЂ›•ˆ…•›™–ˆ‚~qr~Ё‡vqr{rrjz]:8LIIOIMGBA@522&3EHЧЎЋЌЈ‘~‹–œЂ—ЄЏАЏЌЃ›Šˆ‘Ѓ›…x‚‹Œ‡ˆˆƒwdjht‰q]^WN@GHSWVOOB>4#4EQUœЊЉŸ‚…}•Š}…ЅЌЊŸ™––‘”–’–Šz~›ЃЋŒzƒ‹‚x}ce|}iZIBAHGMTQLOeO))^qWPЇЅŸ˜ˆ‰‡–ŸЃЂž––—‹’Ž’˜™‡uРДЖœev‡‹rhz{\OF>>HLPHMLEECGI>-H\ZZАЄ™’‰‡‰‘’‘ŸЅЈ•Ž•ŸЁœ˜žЁžЁЁЂЅЊМЁu}ƒŠƒva}zC1GH?JEEOJG;H>GJNPLA>>A<^b\cŒ‘”’ˆ‡Ž–ЊАЅЂЁ”r…‡Ž‘ŒŽœ‹~xБЅ™‰‚}„‹‚z{qPTU:7CCHLGGEC??A119:E]z˜—‘Œ‘Œ˜ЈЉЅЅ”u{‡”‡ƒŒŒ‘™”ЂБ•…‚ƒ‡‰…oZJ10+:5BFIGLGI@@C989>B@H}ЋЉЂ•‘™Ђ””‘œЉЅž‡’‘’ŽŒ}‚‘ˆ~{wŽŠ‰ŽpdH892;>GCMMQVOHC@98?G@Jk–ВБ˜‘‹Ј›ЂЈœŽ’•Œˆ”•™–Œˆ’œ’‰‚wwˆ~oaTSG&8FEEIILOON9+<8&4JOGnЈЎЗЅЊˆx›НЈЅ—Š‚”–‘‹Š’—ŸœžЄЋЊЎžt|}„z|uurO-.FLECGTGLEOOC:5->OUIcЇЯзй”Žƒˆ˜ЃŸž‘Š‹’Ž˜Ÿž–˜˜ŸЊЗДЏ”jvƒxvqŠnG;LY[UJHGIFF?271)BLZYm•ЇЃЎž’‡’Œ–žŸ™‘‹Š…’ЂЅЄЁЁЇЂЊЋЈ–ˆ„}{{™S>02H^SIE@JBB+*97CWMMrŸЎЎЊЏ›ЁЃžŽ{{„—™›‰Ž–œ’›ЊАЋЃ~Šˆ„}z‘ŠOEE5:F;C<939BC)"9;V[[€—™ЧКЅ™’”—Ђ…ˆ‹‹–ЅŸ–’˜™™‘‹‹•БЃЇЉ}‚uz‘—[B3#@HSJG>93>24"2SV@TЁЪНЌЄœЋЋЈЁЁŒ‰„Š‹‘ЂŸœ•’—‡‚ŠЂКЏ{Lj}ˆqhan|\9:98LBGAB?>AG>@4%MUIwЂКМЋЃ•ЏЛЛЇ‘ˆŽŽЊВЄ›Ѓœ’„ŒžЌЅz@9`vi^bdnƒ]NkUMMGGCBFJEG8>0*%7CBkЉЉЈЛАŸ›ЁЂ’ˆ‹‹•–—’Ђž˜–Š‹™Ђ>Zˆmdp~œ›kBB;FOLBG1ABJGA:>2)5LMO{ЋИЗОЫЕ›ž˜˜œ™•˜™œ‘•”—ž›–•ސ’’g0@„‘oghw”ˆNAH(BC;><:JMB7A#0(5MVYc‡ЋФйЧЛЄЇŠˆ•ЃЉ™Ž‘ЃДА—ˆŒ‹—‡hk‰–~w}˜w4:]AH?AAGAHC>>8>7@OQHP}—ЌФФЖЇЁ”’—Ёœ™’‹„‹ŽЁЂ—™™€б–‡wxvww‹Єœa,HMG;@:B>BGHFE:&EQICvŸЈБЊЗЦВž™‡…•—”•‹’Žˆ”›ЃДКЮЇ{tnbmuvd„–rƒH,@FHB<<5FCEFNNF8-,4Ht‹ЊЩНЄЇЖ–p|„‡{~…–‘‘Ÿœ—„„•БЏž|qrow{}rVˆЗМŠV>*?F>::@A>?HFGFC&*F4C|ЉНЛЌЊЁž•˜”•Ž…˜—‰Ž•–ŽŠŽЁЇœ‰…Œ‘‘ˆv™МВ~HG8?4dhJaƒŒЃЛКВЅžŸЋЗžžЉЃŸЁžЂЇБЌЂ˜ЃЂ˜’–”’‰ƒ|w|Œ’dMNF>>@HJEBEIPMB2E4>C]™Š”ЖЦВЃ˜ЃЎЉЋ•‘ЁŸ–œžЇЏž•˜›•ˆ|ˆ”…~ztv`\S0#-&FFGBA5;7,&APIuВЌ•ЈРЯЄ”Žˆ‚ЅВЄ—•ЅЎЄŸ–ž•™›—–•”…„~ЈкЗƒ’ˆceq\Ui`8FCGAHCBAC.72MVNA;748,<4?CtАЉœЄЎВЗЅzo}„ДЎ—›ˆ‘”•”ŸЇЇЄ™{~‚”’‘‘ЂЏ›]@::9+P—|]N97<7?UFTŸШЁŸЉИВЊЊ•j|ˆŒЌЉ—Š””—ЃЄ›•ŽŒ‰„А•‘ˆ„‡ž‹\pZB?:#$[‹›‚JBC>>77€>vИЗ”ЌАЊЋЛО•‹ŽЋœ}‰‡——Š”˜‹‰ŠˆŒŸЊЉЅœЎЌ•gANPU[?ABMW]PHIC77342\ЇЋƒ‹ˆЏИЛЌ™zbq}йЖŒ…’œ•ŽŠŠ’–”‘‰…ˆŠŒ—~‡Є‰[TYNLG9>FAG;:@GE?>HMY„œ–‹‘ЊСБЈЂ‹—ˆejvЎŸ•~‹’ЄЇЂЇŸœ›Ž„}Žœ™–ˆ‹YGNGFJA8?AHLE@?H>E+-5Ni„–КЏŽ›˜ЌЊ–ruЄ‘‡‡ŠЄмшј~‡‹ˆ‡‚–НШЌu?<:GUZSMNVQSWYSmŒЈ”‰‚Šƒ„”—Ѕ”kT‰}w‡’Š–ТдНЌ›ŽŠ…ƒ…„—УдВcTaPSCCBEHY\PMLLSCI?7GžЅ‰‚ˆ…{}ˆœœЋФЅ–Œ™‡‡{‚БэўєЧ”|Š‡ŽŽ•’™ЋБЎw*>a\QE?>CHTPJGGC<3@B7TЕЏœ—‘’‚‘ВАЅЊЅ™‡‡|xЗФаЮЌ™|x~’™ЁЅЉЉЧЫ™MBELE8FGE`}…”••™ЃЎŸ›œŠ}}‚‰„Š|’днЗЂ‡S0k‘ƒ–™ЁЎБ—‡tVC>GIJJSTGA>);0::AASJUr„{‡œЁ›™žЂœ–‡ztu’ЉДЧЕУБ‚qqB`|‡˜œЂЅЩЮŒ9COIHHGIJBB4?A48;.5;AH[q|ŒŽŒ–Ёž–Ÿ˜’‰xorџ€C!472&9S9.0AQnŠ‹ŠŠ‰uqYOgeY[[gpjcq}zz|wc\bmx{znihptt{…˜‘‰t$+1*-)"#,328>LmougS24MW\L-Iiv‚™ž…”œЉŸЃ !+%&&.-"(.1948+)?QivwŠ‚O!+HTWWnmh}–Žh0Y{‚ˆ Е7WCB>5.))*-.370.)1+")::2GVc^VFNnt\Op‚„Ž”{|„ƒŠ~n$;%(%39!(255€/! !15591* &8(*$,04CTx‚ŒŠzuwŒƒˆ’‹}}md ><+)22*")%!-"&#!*,0#.4+8.%AJ^‚Š}vŠ‘ˆ‚‚Œ‹‡~tk +A(-,2+!! $%!$%"&&!5@7$)"2($Cino‹Ї›Ž‰wgg #d[5,.  ">>,0, ");"&,5-CU}—˜„…‚~xrpjj  ):53)$  !$(?1%&%)$# !2-&-<4AˆЌЂЏ™‰zwrxvb€ЋCP4(37!$## *@AA3%  *#(31"G^ep{nqtpknp&A3,A[iG#2+,#%1204. %*+-# %%,,(%9@:Cp”Ё’|vngbGkcA*#9?9Ikr9!-,#$!!!#-)!.<+""#"&%$#%*)2GYvƒ„pjn&:dВШŽmH,-McG-,$%#*90"%),-% *0"%.+,3,)7E7:AiqeLF!?rЂСА„tdLHQB#%2:442!!"$-+%  *.-847#"9Nni"E…БŸ‡…Š’Ÿp^[J ")!&*$  .3?@?:(0*;)HŠЗВˆ‡ˆŸЗŸpcin|tcbZJ+ -,!#.*  "( %707.""0CLBPŠЧЮmpuq`\]gwrYYz˜ˆiH*3FF?  &!CA?3!%+&;ƒБЉ™„oxujh`apquu‚ti}„U)#!$"  !.%*"&,-&5iЋаЫА‡aqxuGPZ`ec’‰Œk[cihhqqJ1)+%1%*(   #%$$$&)$!"$O‹МЯЎehzr]FWYQ^{ŒŒŒ„~ukrTTMAOivZ:#,0*#€F !((+$^ЎычЗxONbaG3[rbavЂЏ–zpkrtoeTj™›’}]P31$*&$!)&,,0*ZЇбТ™hLbckgmwzwk”ЦТ™xkqoiWSIT‚w`ntkjWI55>UO   jЄЄ˜‰„opncimY\eZ‚›‘~vx…rie^^mŽЊ‚WcbZitqM9Oj^?  ‘Џ”mnqQS]OI\ch`>o™›i>[dp]W]rxvnqqru}unkqbdkrz|nn{‹Œ•ŒxidcjQ9Qkwx}{…~{~‚…‚~uornQSNNk‰™zdgjiemrqqkdhqqotbuwtruwigr‹˜v\kvtccP@adƒ™Š„›œŒ…{{сvr{Y4EJ&?{”~wrporng\\^ojnzmibivvХ|{rjo‹’Hkvvph}~ŸЏ‡z‚‰ƒ„ƒ‰‚zgiPEV\Od~Ÿ{njmpxxo`UYjmhoem€ˆ.)18:79@BGLNOIHLLлG@3CLV`km‰ƒ‰‚ŠЃРМЎЉЁЈЎАЊЈЈЅЄЄ–ЈЩЯЯЮчгЯжЧ ++:B@EFHNHCC@GFF<<Ю5P^M>Mhc~‡}x|”Ѕ–ŸЁЂЅЅЉЉНАЎЈЈЕФФУнеедЯбадЪ  0CGGРJHGC87:9?`v‹ЋЗСЮСŽmhˆЄž—ЂБЋСжЮЂeЛТег 4B[NLJGA?:??99B>FLNIJFBB?><;>7AGIAA;AHHB@FAFJOLBCCB<5@FGF@BB;::A>>:75@EA@9CAC;?@GF:?>HBC?OINWVt„РЪОЗЪЯЮЧФЦЩЧОЖДEL::B>9.-2:9?;9:244@MPF?>A>JI5;HtЄБЎТтгЯЮЪШФМБЌЌ7toL@9894*+&,+4599>:;2,.*.-0374@758875858;AIFCBCHIG9Pnb4@JCJ?1.:77:F@EHF@>49;7970528??B?C@FFGB:T\NV‰НжбМЗЌЅЈ:[xQ>BGE@BBIECBMdЇЦЦЋЅЄ?MqТнНcH?@AcrV-?@A?:7@CC?85:>A@?AC?874:EB?<@CC;;?BGFGEU^TV‹Љ‰…1PˆШырЭМЃŠp[]W8&1?FHECB@C?<595248:BF;4+55€;83<;75>?BFCJHH5-@VpЂ-P›мтЮЦЧалеЎ‰zE..-:3+@;>ABB<535744;8;.-075470941799@9:>>7+,43+*0188;@>755<795>OMLCACGZcT`ЌэєЩЋЕЎЎž˜ЅЖА˜‘ЕаВŒgIHTYG8>??;:0212+,4235.543548:949VVQEC@;AI+PЊсхгЗЗЖКЗЊЃЄЈЏЏАЗЗЎЊЂЊЋj>1189<>;8<<334.3),1328;>EGJFA?BA@AC„гїёжВЁБЛДœœЅЎЂЗРЧЦЇ™ЈЇЁ—Ё”`FCJ?5CMB>7304.343079>;><8:545303049955:@9:;;8?uЪѓшЯЊ–ЉЏИЇЈВЕБЗЇЧьшдРЇЈЇЂ™’|ŒЖЄ‡™Ѕž”tZGHWm].(.4253.51.+13975594•агШЧЩВАЕИБЌЊЃЄœМкжТБМРЌЌЄЁŸЊФуЖ‹•”‰œЇЄŽjTi„uL7%-"+0585.4258,*89ЛпЯЏКК—ЄЅЈЄЂЄЃŸЊкзЂz}•ЃЉЋЅ•ЇКСЋ’™žЁЅЌЄŠZPocB5&--$+20.320.(),3<бЩМЎЃЇЄЇЕДЏЏВНАžЗдаؗ˜—›ЅЎЌЇЄžЃЅЈЌЉŸЉЎЄ’}YJ>:2355€…-&()%-5жйЩЌЏЏЎЛЖ–‘•›ŸАЗЎŸЃЏЎЁЇЎБЌЇЊЕЎЊЁŸ™ШмбЌŒ”ŒЌЮУОЏЁžЋЋЄxA4+$82,2-&&,цсШЏДДЌЉЅ‰ŽŒЇЇŸžžŸЇЉЉЎЈЄƒ]›ЁЌЌЉ•ЎЭУДЈœ™”ЊДЖЖААДТНИЃmYG;@E432++дЪИЌ™ЂЌАЊЇЊДВеыеЎЇЂЈЋЌЏИйЮЌЃЋЋЎЌАЏЦрРЉАЇŸЄЕЕЎЎ€@БЕЖЖЦУАЏЃuF2))(**1дЦЕœЁЃЊБЎББЌМСФВЉЎБЏЋ•ЗѓяУЉЁЈЋЈЋЕЛСТЎАЌЎВВЋЈЌЗМЖАБЌ‡|‘Їœ‰|\M>,%8СВЉœЂЂЋБЕЖЛРТОЗБЏЖООЗ–БзЮž’~žЈЋЋЌЩжСЂЏЦНОМДЃˆ—ИЗНА|Ž•—ЃЇ—”nJ>CСЦОЃœЎЎЏБЖНЛДБВЋЏДНМИЇЕЪФАЄ››ž‚ЅЌЛЎЄСУУМФЏЉЅЌЕРБž…‰oz›œЊƒ…wT9"НРУССЛЕЏБДБЋЊЋАЗИИЖВЏЊЈЄЎЈЁžЇМОбнЫВžЂУЦРСЛЕВЎЊЎВЕКŸˆœЋЕМЎЂЃŸ™ЅkНОСФУОЗЛНКЖЈЈЋДЗКИЗЖЕИЏЉЈЂЁ–ЃДЛИЕЄЋБАЗЛКДБЌЌ§ЎЈЁЁ€GБТгЫЕž’‚‰žЪШЩШСИАВНОНЖАВИНКЕВДЏАВЎЄ™œ‘ЌСОМЩЇЄЃЉЎЏБЗЗИЛЛНЛЖЖЂˆœ”ЄФКЩЦЖЋˆ~„—УТФУАЎЌБЗМРТРНОНИБАЋЇЅЋЌЃЅЄИМВАВ˘Ÿœ~•ЌАЌЌЎБМССЪМЁ‰{Вд̘—žŽzŠ”™ОЗМУФЛЛМРОТРТКЕБЎЌАЋЃžžЃЅЄЇЊЋВЖБЈ–ŸЅЖЩНЌ–ЂЃЏМУТЛМЄ˜—œВЗЛЏ•ŽŒ’™ОННИДБВИСЃ™ЖЕЏЕВЌЉЎЏЅž˜›œžАВАБДЕАЊКСбеЮНАЄЂЅКМЏЕЕЉŸžЎМЩЕŽŠ˜œœЕЖЕЎАЎИЮЖˆwŸЌББЕЕЖЛЕЊЅЋЂžЎЩНМВЋЌЋКехЯЪаЧООУЈ|—ЃЇЉЋЋЎАЩБ”ƒ’–œЁЄРКШКЫдаЮбЦКБКББАКТнсОЌОСžž‘ŸРРטЇЊЮЭШЦЧРКЗЛКЉ‘–ŸЇЌВЖИЖБЂ™Œ’™ЂЇеЮШУШбЯачсНЂВБЎФлнгМКИдЧ•…ŸВЦЩФЖžЉСЧЧЦСКЗКУпВ‘››ŸЂЃЃЎВДААœ›ЂЄŸ˜œгЫЧЪЯбаЫЭаТЉЎБЖгЫЪ•АДТЫЧЌЇТнщуйОЉИЦШЫЪЧУКЛМЗЉžЅЄЉЉЄ››ЂЈЄœ™ЂЊЂŒСдЯЭЮЪЧУФФЫНМЗЂДЮУЉЏЗМРИУСЮаЭЭббЛЛОУСФЩЦРООКБЇЄЉАЌЇ˜›žЂŸ›–›ЃЎЎѕ›БЩЧЦУМКИТЩЩЧЫШШЧШнК’„ŸЎЗлаФФВЉЗДЕЖИСЦСЧЦЦЫЕЅЄЏВИЌŸ––ЁЃžœЃЋЎДЇЖКМЛММ€кНТЪЯЮШУСОРВ›‰ЅАЛМФШИЋŸ›МСЗВЖФгЪШУССТЛ—ЉЏзЛДИВŽЃЉЄЂЃ›™ЁЄЇИЛНСУУЛЕЄЦаЮШРЛЗДЖЅЎЎНЖА™œВЁmbЇФИБЅНпЮЮУРСОБЌЊЅЁОЯаШАБЏЉЊЈЉЁœЂАЈВААДМКБАКЦЪЩШЧОКЖЗИНаЧŸŸЈЖœ‰ЊЖАЉ‘žОбгЯЭЪМДЌЃЉБЮШзШЗААЊЊЉЉЋЉŸЄЈЖЏЊБЖЕЖЛНЦЫЯЫУТСМНТУдЖžЃЈЋААЏДЖЖДДЃРЫптЯУДВААВезТУЖЕЎЈЈЉЇЋБЏЅ›™ВЌЈЋИНСФЪЭаЫЯЩФООЧЫлЩЈœВСЗЛКМККЛОШЫЫСЗЏДЕЈЃЈЋЌЌЅЉВЧЖЕВ‰’‚h–ЊЂž‘АА€ЖНЗУЧШЩЧЦШФОЕ—ЉжхТŸzВЗННКЕЗМЦЩЫЭЪУМЕАЎЈž››ЄЌЋЌЋЊ’•”r”žЄЋЊЂЃИЉЅЅ’ЕРЪЫШЩЗЕИРРЕАЃдйТЕ—œТЛННЛЕЖСШЯЭШФФЫРЏЎЊЊЈЈЋЋЊЈЈЉЈЕ›|—ЄЄЇЃŸ—’ˆŽЁЧЩЭЮЭТЖЏЖЛОМЕКЗЂЅИЊЅЉЏААВДЕЗИкЮЫЗЛИБЌЅЉЕЖВЌЇЂЄЈЊЅИИЊЄ–—ЕЯОЕЉБОЗЅЗЦЪмЩЁЛРЦЦРЃЌБЗЖБЋЇЊЌВАЎЋЌАЌЗжЮЭбОЛЋЃЇАВКТдШД‰ЋЭдЭžg›ККИКИЗИЗИМОУгрЧБЂЄШыЭЩЌЏАЎЉЄ’СКДАЏЏЎЏВЗЪЧТЖНЏЈЃЅЉЈЁЭпЫЄ„’ЉЗВœАЦКИДАБВКЕЖКНЛЏœЂ—ЂжЮШКВЕЖШЉ–БбИААЕЛМЗЕЛРТНКЗДЏЎЊŸ|‰ЂБДЄЊБЖЕЎВЖМЗЕБАББЕИЗЛНКБЎВФЧЮУНБЕЏЏЦŒvЌМКИМОУУФФЦФТМЗИВЁ™ЇЮйИДБЏАДВБАБВВБнВЏВЗИННИЕЕЖаЫзЖœЖЗВБЉ•ˆЁЌШкУЦЪЪЫЫУССЄНИУЄ—‘r‚ДЧЗВВЕЖЗЖЏЌЌЏЉЋАВВЎВООКНССЗВМУЪжЕ‹ЋЛМЗЎСФЫктзТРРСУННСУФНЎБ–ŽžЇœЈТйКВАВИОЛЏЃЃЉЉЌДЏВЌ€М*;B9BAA:ENFPhOHNVj|››ЁЂžŠ…ih}tpheov|‰‹ŽŒ‘‡qqwˆŠ‡~|x~‚ˆŽ›ЇБЇ—‰*+(54;@AEHLTTVdW\VJ^^`r‰ŸЃ~v}uow‚~ƒ”Ž~vz„ƒ}~qkmpwv{…ˆ’™ЄЋЇЇБ”-#(&SAIIOOTNSJPW^aH;.<52Sbv‹ˆŽŸZ;?[oojv}{ЇЃ{@m‹—ЅЂ7S^QTQOECBBA>3@@JLOLMCA@7:;;>31GVQGPextaTZz„j\}—žЂЃЄŽ™—Ѕ–‹1-% ESFBLLSIBFMLIH1:EIQNOGE7,:9BII@@EF<4PUdŽ™Ÿ™Š‡™‘ŸЄЌŸ˜——•’‚7,5)0NS@;IPH>;:>5787;?B5-02@B9>CGE<;BCGB>JMQPHO]w”‹‚Ѓœž™˜Ÿ—‘Œ&!1P`JCFM@G0,AE@7:2*8::;>?FMM>AB>ACLMJF@G:SB)%32?148-2-8A18G[QF8::AA2A;+:%2.-1EFG88BCNH+FЃЪЛТЋœ‘Œ…ˆŠw! 9^aLHMQ<0AE55.#,1,4;IQWPGA:835.2><41089EG?GCOWSZЅИЉ„{qt$>`ƒvN9?ESTUƒŒV!$84AHF;A><8>@8GI;E>0.;5GMPC,8B;(:@FE8;A;BB:;30>5?>BM?7:88>;-51989;AGNSPPG:1@J[‚w<]›ЫЗž˜ЄЈНД„jr`7&&!3-%@@GFH:-18;8:7977€ж<5.,-:20:4?CGHMJQMG?>8$).2998<1@;.47@EAGCZYVMB?>GE4N‘ЧИЅ’‚ŠŽ…ƒut{…|„””ˆ„zˆ‰^;)05??)*35872.<55<2!!3@@A?EJILFIG7CC€НQ|ЛхмԘt‚„TbqvvpЂž{j|}xz‡~]CJG1-EHIB;823$,#+8?CHGBBJBE<9AdЁдцНwrˆ{]cnpoŠŸЅ™–‰‡~e^[M`~…jC<73.,3<12?8GHB@E:@7BpЩўўж‰eYmtbZc‹‚~v‹КРЂ~}~z…{hxЂЊŸŒrgC>JB9F?7",3:B:;51;@:@GFFC5nМшйБequ‡z|Œ‰‹ˆxЁкдЋ’xzupeVbŒ„bv{xneYQLZkg2%51:?2*0.3*<9@<01‚ЗМЌ•„z}||‚nhpq•БЊ”ƒŽ—„~~z~~ЇЦ›bmkkv‚Œ}aMh…xU<2*297;:8+3,;0299<ЅУЃ„ƒ‡henjbnnwrV~ЌВuNPev|tjdw‘Ÿƒetqxw~{rd@9^aB8-7392470().:(1;ДЏЈ”|~”СЈtQINdhq—ЂИЂ}||~ƒz~{‰‡}unŽЉdnmŽž”‹Œ‰z\8(.&(+,;1.:40ЛЛƒzx|Œ`^^ap|‡xkp‡„rt~‹‹w‚ƒ|zuooŸКЋcno„ЅЊžŠx~‰ˆ‡g4(%1+7711€’$ЭРŸƒ}zxp[acwzptrmu{qw{wz^:hrx}we~Ёž‰xko`}Š‘‘‹‡ŽЁЃ‘‡UB74?C@A540(Ћ‚ot~wqqxz}ЏдД…{rozz{„АЂo{~{|‡Р›wˆ|ttƒ‚ŠŒŠŸœŽˆ^;-(*2+1Бr^kvz}|}ˆ”˜‚x~}{h‡даœvhqw{{…•ž~„}…‡~u{œЄЁˆ|^Lbuvge\A>0+-’Œ|maju~|ƒ‹›—–‹z|Š‘”‡nЖЃn^Ohpw~~œЎ—r{Š‚r[j•—ŒpLB^hm{ƒxvhH>>–—‡xdvttz…Š„|~{~‡—Ј˜}ƒЁ•qkipMk„™…aOv’žœ˜œ„uz„˜ƒqUS@FauŠgi]L3ŒŠ–›‘Ž}vx‚‚rqv…Љ‰‡}xw||ogorŒ›БУЉvm•™”•ƒ‚wr~ŽŠnYr{Š’…t}xpˆ„V•’•™”…‡‰‹~znx‚ŒŒˆ’ƒxzpoigr‚‹‘‘qUnu{ƒ‹–‹|wz~z~wnuxœЈЂticd„—Ѕœ”Œ„ƒ…——Љ–‘…~{}ˆ{pc[]t‘ŠŽ{ru{…ƒ‡ƒ‰ˆ‹Ž‹‹ˆxPbezЂЄЃŒˆ^Wdx’–œw}…„˜–••’•‰„xvzumbc‡ˆ|‚d]\QjŽŠ~|ƒ‘”Žq^]OŽИ™k]cbQbnr”‰Œ––އˆŽ•Ž˜”‘ˆzz|zvohjurrdv}‚‡{gouŒЈ‘‡kmr~•›”‘•uknt„Ž•„oe]^hpqŽ„‡‚|ˆ‹‰qc……}zz€аwmedeowƒz‚ˆŠ…z‹˜ЈОЉ˜‚tr{•ˆŒ‡~kij•Ї˜ganunqrŒ‡p}‰ž…ZJpu„Š„ˆˆ{z}oddx—ˆˆŠ…„‘АШЉžЈ™–—wQOhr{}}…’Ÿˆ^H^hqw|”Ž—‘—ЃЃž™‘ƒ{Šƒ‚ŽЌФ•}’‹gbZoŽ——hmzЈЅЊЎž˜‘ˆpY^cu}w„‹‚rj]djpw|ЌЈ—•žЄЂЛЛ—t|ƒ™ВЛЎ‘…‘Ћ—[Mj‚—Ђ™ƒpz——€L˜‰ƒ‰›Д„eqkouohn~‰„mjqv{w|ЈЁ””ЉЗЋЃЃЂŽz‚xˆЊЈЃg|Œ•™’ww–НШЦБŽx”Ÿ—”Š„Œtkvpuƒvpkxz|umt|x|rg’ЄžЊЈЂ’›˜Œ…v‰ЃЁzƒ’Ѕ—Ž”‘ЂЇЄЄЈВ—Ž‘‘•˜™–Œ’ƒ}uxŠ~mmir|pabcz|‚k}˜™‘ƒ˜Ÿž—œ˜ЋМŽbSepvqДŸ™—………~„‰–œЃ’––ŸƒvpzАtc`amxnep‰ˆˆ|{ˆŠŒ‡”‹‘žЁЈЂЁŸ›Ši^u™‡}wp—‡~‚–ŸЄЂ›™˜Ž‹iw‚Ј‹…\`wzqnrvetz~…•›˜Œu›•‹ƒ‚ƒ{xƒŽƒx]m|nC@xŸ…vЗАЅ™ˆ‘Š‚qm’Їž—‡~vxwtg|~‚‡~‡ˆƒw‚ŽŸЁ˜˜•Œ„Š”Ѕ•iearx‡k^~ŠzgmЇЌЊŸƒ||}„ЉЅАœ„ƒ~‚|x{u{zw}Š|zƒ‚‡ƒ‡˜ЁŸ—–’‘–žЈ‹mnox~u……Š…‚Ž”ЅЧзЗ–{{ƒˆМЖ›•‹z{x|}{|‰‡qdi‚~nv~‰‹––ŸЁЂ™—ދАžА‘jMo~‘ŒŒŒ‡„‹–Ё™Œˆpivuvzxx‡œ}}ƒ]gU9j|vha}ww‡ƒƒ—‘•’•˜Ѓ›ŠrƒЋЕ•qIe~‡Š’ˆˆŽ‘–ЂЂ•‡pig\dpv}{p``aC]jx}{~q‹wmhcАЇžŒ……ˆƒ„rqДМœŠcr‘•‹…‡œЃЄž™›˜Ž‡{r||wvxnqwvŒdIbquoodgbYcUqžЃЈ˜—‰Š‡’Š…ƒŽzw‰rr}‰ˆƒƒ‡~ŠЎЁ™„‹‡{jvz}„‚trrnqzq‰Œ‚{njŒŸ•j~‘‰u‡–ЃЗ”n‚—–po‡’‹„…wxx~|z~~{}ˆЕДЌЇ”’zrww„ˆЅž]x™Ёk?p‰„‹ˆ‰ˆЁˆˆ‘—ŒВ{okЅУЄЁxw{{zkQcœ‡ˆ‚~‚‹ž—‹’{jcwunjžКЈnV\qŠƒhg~’Œƒvx~ƒŠ‡Ž‚wd[eezКЉ—…ƒ…‡˜tdœ‰}vˆŽ„ˆ›’Ё‰|wkHSu}…pim{„‡}x}ˆ„Š|‚}{…‘w—žЃЅ‘~{ux™^J\v…‡Š‰”˜Ž’™›™”ƒ„„~oeaZ{™Ї‰‚~ƒxz‚‚zx‚‡„‡Š}‡Š„{ˆƒ~w…ЅЁЏ‡mƒ„ƒwuaUtz‘Ќ––›ЏЎЅ—‘‰nJ\ZAQ‡•Їƒ~‡ƒƒzwrwxv‡Š~zx„‰‰‚Œ}ŠЄЕ’[|‡Œ~›ЕНВ–‹”’•—›™ŒvzgTithz”К”~~ѓƒ‘rhqz}}„‚џ€вmkmnj]^ZWijo{~|eaippoogneqƒwz~‹„pP?3E@:;AC:0*%!",dbIC<1TYUqkha^[]ejojhpxujcbekiePiŒЂ›‡uo|‹…a0#?>723.:1*   Ge[> HŒ‡`bVbg[[\\gokoro\W`airzwte…ЁБЊŽƒ{~–˜k(2-1*)+417,(-$0&Pm\O[U2MkJMwd^gohV`diprrn`dmnqq€$xpnv‰—Župu‰Š{J &.:5+-4.%0-)C7MW? 1!Oh??^tYqk[Uhnookd`hprnhu……xprxwe^bjreG)$&)5329338*))+$"2WP3W>HWg{tjggkquvpeSUcjnt{‚zv~„pggpaM. (+028.5;7 $Z\WH>(VqS…zpkYPNZbiopkouprrou{qprwunjd‰qO.&04&$$)7NJL;!LSN[VbtVjoqjYB@JM[iqmep{xtqvwuv{upnhudUA4++,$-,+(**+,LrVH843Jexqkhqn\TOVejjmuicq…™™’}vqu|U]krooYB+*(&9.0*%$&%$)&+3BGGS[ZakMNeo[d^Zag]Yaii^che[ep~ƒwrtuvvZQamxT%),%$@>1! C\UMPQJYZ[giphiidhg]dqqjbd`^rz}……„{x|odVZh|G75. ! 5.%!%,$I^`V^]Scmd]Y^^emgcU]`]gmimwxuzvwvƒ~xqnkacr|d9BJH2!#(%$$3+QWLFEMPg{irm``[bedbeemieY[cijntz……„~|ptm^^tzZ3:$++HC3)#$%&2VcVYC Srbk][jnc^^]VLJU^rvƒ‚ˆ‹‹‚vqkdhhO.! $&13+1LjiH-1-"$g‡wnekpr|ztdZeurt|‰…‚}{w{xqkrqn{k4*,$!%+&!#>qoM7#?Q[gjimojnqpja]^hmbn|‡‡{trmprquqqp~‡u<++&)19:-+(-+958Ww‚‰gO7NLUghhnq?TUca``aeiit}–œœ‰‡}|~}{wz‚ŽŠ}Y%%-%#!+0.+"+7W^iq‡b?NT^^abdSLV\bb]WP\]amoˆ‰…ƒ{wxx}…Б›g:  %2,CWVUEVbLNMMBS^]]TadhbZZWVZbediz”‰|{uz|{z|„oW>$!$*$$HCQVYW"A1ITigPPWB5*]u~okdcckmqtru|{~Š„‚…‚„˜—d3!$,%-+" .9YU-&,€ћ$.*Ga(#1BTaxqghrwzx~‚‰‡ƒ……‚xxŒ™‹W2 !+;?:3+$ HMW`N !(;A[G&8HIc„‚{~{zzxwƒ‚zwmdk{W7!&#&$0+2:8%)7^[\m]J* NkW-?j‚j%-*0JUuŠ’œˆ‚|{ƒŒ…{tqhhtx\@8>%#4;<0!11#(58."EHJL?77&!CVQJC^mm%%15IYožЁ„{v{…Ї}tjkiG&!#0:>5@8+&-2& Qor[%€J,!"Fernb")Fˆ›ƒughnw‰…uqŽ—a4-(%1EIBA3;<*50+,agO\G 8[m^czoi  ($ (+9QZVacvˆwpxЇœF(($40++101% QtWNToUP>&ThS^`d["2G ю .F2%( ўаCP[TH.7,;A>mwT*N!#  (B5""§ќв$C[bhZ%0bjwqWE,9    §а 5L;83B\aeb[OI2:*"Z[# ћ ўе @:1BWbkcB5GQ~`E1$Ji\5-& ћњ к!FUe]QE8>I~|{^3.TQ   ќўќмE9N`ZY^ZG)NaUq~j^C08   ќ  ќ о"HOVphTQ^acp}‹k[P?!!. $ў ў й FF9NIen}‡ЋneocLA9-+ )&  ўўўм $EduZcpƒ‚‡ˆˆpn‚e> )-*" § ўљ&#у*Moxx‹{ƒ„ttZC+*.§§о t…‚ƒ„w}|~~Zh}„u]O;7"")їћЭ `ewŽЃŒvuzooxvp}ƒZ8@1  ,-ќа "NMTQNPjkbmqtvЂаt "!23$ #?@O:JI#CECHbJ>I, cpd[YSUPY\dvog[cimžЛ,3н %4PgƒE<;9??>ACHJJчzЊЃ•”ƒ”АŒŒНЈЋЌЏЈЁŸЈЏАВЖВВ€ХДВБИЛДЕЊЖЩеЫДДМЭгЎg,$29<9<;?<ACB>B@GM9<^˜ЂЁŒ|kIFq˜ЌŽЧКИЏœ‘’ЂЊЎВЖДЎЏЕДВЗИИ€ўЖИЛМИЏЏЛЦЉtJ2,BA@?:59>454;:?;38?>:?<<>AE@M‚Ж–Ž‡…˜‹ЊНВЊВАЏЉžœžЉЗЕБЏЏЋАШкЩШТЖИНРН›БВЖЎ‚]L8?>@EWFZxŒ’—œžœЋˆ™ЎЎЉЏЊЅžœЄЏДЏЌЊЇЅžЎЕЦОМЛЛМННŸЇЇАЧО?159>;8:>LG:9?@@8?o•–™™›™ЁЁЃЉЋЌЏЎЊЃœЂЊБЖВАЎЋЏБКННРТТРКДЉЈЊЏЩЖkIGC8:-&(.JA>8@HGCBtЃЄžЁЄЋЋЅЅЃЅЋЌВЉЅЃЈЋЋЌЊЈЋВКИММСТЧЧСИДЉЇЉКТ•[V]UP<,*-*3:??CHJMM5:<8EM]WGA>?GG84748<9;:?:@?8;pЎАŒ~kgz‹ЈЏЎАЋЇЊЎБДБЋЅЃЇЏЇДМЧЦРЗДДЖЖЕАБЕКУЧЅS.C@?9>:<@@AAFGNYS[”ИЩШЕŽˆВЉЌЏЏœЋЋЈЃЁŸЅЏМгШШЩОИИКННЛЗЛЫЫЖ~F0C@:23,*+.59?AGHGa•ЊВИЦЫЃ…•žЃЇЋЋ’ŽžЃЈЄЁŸЄœЁВЎОУТНКИЗЗКИКОтЧ”];)>:41,$)*$.179MF@d•Ÿ”‘ЁДЁŸžœ™ŸЄЂ„ЁЋЌЅЁ›œЂЇЋАДЗМРТТЛЗИЛМИККТŸrW5@<889558433:,E`[{‘•tm‰‰’™ИЎžœЁ‰NY‘ДУЖЊЇЉЊАЕДЖИИКОССТФЦТООжЭƒH<0>??BC:?<7:8919JTj…Ё˜~vmT`ƒ‚e„…Ї?Wej‹ЕЫТМЛНЛЗЗЖЛСЦТНИАЏЋК‹S@1%9897<>8@FLJE;5B`ŸЂŸЋЅ˜zp™ЗЉ|…АУЌAEI>B7Te…ЉСбеТМЛИИРУТКВЎЈЌЛ„[OWB@AHG??<<>@MNF4N{••ƒ‚x~ŒЄ•‘ЅЋЇ@?98:FOMPo‚ЃдкТКЕЗОТСНЗЏЊЈЃh@@;8<@HMNEEAAFNIEEŠМЛЂ~UHT|rqŽЌИБЌ:>88:4?3>4<]ЅТНЌ˜ЁЎКУТЛЖЕЦЦvHB>7:BLSOFE>@IJLN;Y”Ћ™œ’|ounЉДЋЗТДЌ4?>;57>;:#2:BUp…ˆ˜ЃДЯЕАБЏбН[5AA782GEEC?AFCE@0?‚ЎЁ—˜Д™—‡xu’Ў™ЄЈЄЃ;@?ILJLB@>CIF@GJY„ЁЃЎЏЇЊТЩ#!HT.1;@CA>:>>EHM2QЈаМ’ƒŽ‡„…u‚–ŸЈЉЃЅ?AFBGEF><;@@B;3??;@ež˜ЃРК„A>?0&,-48:<;@@?E..[–›•{‰‚…~ˆŠ™œЁŸ‘‰A@B?:?A>:4;>?<27<7707T‡ОаЅa:1<4242.,184:@@A>9>E>(3aމZ;5:41881-2.7>>€+@5@ˆЋЊЂЃƒu]Lmx`mžЋЃЉ—<22)77875198>FGC>@:>7+2JTA"5A.,3-70+14;?A:Q…‘—œЌˆikgie`e}›ДЂЊŸ4148:922*1318ZJF?87<87AH31- &0-#&3%+";??:Tz‘—‡‹ДЋ„ЌМНЅŒpz–120)&,!%$*@Z@<934477шL. 1039G]\}–Š’—‰rYIvЉКЃ…mh•953.+%*%&&((NcFB>9-,.2798   -Gxˆ›’Žxi{‚{‰h„ЎУЁpj…™<;593.*"(!):WII>55058;8;&  €И   2Qx—ЁЎžubvwJoЁЏЦВ‘x~";?23-"!(*23,3-0,4?@2%  47?d~‚}n]on—ЂЉЌЊЉ”ŽTUL::9*>q`1)+-*$,+-2&&)"   #*09C\`j‹ƒ‰ŸЎАžƒvŽЈƒYF97:\zcCA5991,*($!)0% €  ,@B<189Wmo‹žЎЂœ}„ŽЇ›™wG*2Jha0",1+,.-($%&&,   ,*%)TtxˆžЇЄ‹mŒ˜…Њ™|UWG87).732))!дТЖЕББЌЇЂŸ™œ›ЃЅЇЇЊКЫ–N,+8410-,,€25>>03AАЇŠnpY03200+"%(.2*)АЅЇЏИЗВЏЇЅЅЂ™™ЁЂЌЦеЁP,+1,11&$(&*13+QžЖЄž”^0F\;-??"+($$&ВЉЊВМФЅЅЂЅЄЁЅЊЋЋЇЉЏОЋr8*,,-0,+1+(0+-3‚Џ—…}uYa{dWcJC#(>20 #$ЖЕБЕдИ•ˆЃЏБАБЖЗДБВЌЃŸqG:?:<<9.,*..-)-*Z…›Ÿ”–žŸtIwƒrrobJ&FE&$00ЏВДЎЎЁƒ•”›–›ЏЏЎЅЋВЏЧх,<12;?<2,-55Є230Qvw{~ƒ|he‹‰}heƒqT\B)2*ЕАЏЎЅŸœ™Ÿ”žДЌЈЇЇЊДЭрЇ94<-$1210.8E?j‹Ћ}vvnœŠ„…‚~‰ЈžœŠaC;2в}~}v{nkmtz‚‘‘xz~~‚„~xw––‹Ђ—ƒ^SJTPSU[WYSBBыC:>3GuwaPN7#Aggc{}{vmm€Kvx}ƒŽˆxpv‚~|gxЅРЕ‰ˆЅ›oEESUOQOMFHF.+920&*W}pO#%[——twhwruqnkv„x~‰‡~nuuxˆŠˆ{˜СаСЄ‘ЏЎB>LSJNCJHMFHB>IGM?d~jagYGdxb]‰wu{‚}ndwƒƒ…|zw„‡„…‰v‡žЌЃ‹…Œž‰[+&@GHNJIIM<5IQJHO]iV8;I?hxPOqi|„pnr}‚‚~|v~‹~…Ÿ™‰„ŽŠwvw‹x\AGBJISPQJOLHAMJL;Hea> *NnZ9Tb’q‰}w||‚‹‰„{rkvx‹’”’‡Œ”œ’|uw~}bF(&BLIPUOQN@E;CB.)MindYJ:Ao~`‘Œƒ~k^^orz‚‚||{}ƒ‚ˆŒ‚‡ŒŠƒ|Š‘…]F42@FNECLEIC@7847L\\`YHY^]eeun…‚~nc^abv|„‚z{АŽŽŠŠ‡”’ˆˆ~…ziYL7<:;EMCHJMG:8>F>B\…gYMNMYYr…{~|rkjixƒ‡‡Š{tЌЋЅŽ‡‰ˆ‘‘kn}|~|oYH@@BFGMQQGHGF@BNAAQY\aihnpZc{zn|tmvwvnuƒqrw{p{‰™„…ŽŒŽŽnmw’Œg>-5G@A<>IZJF<52E24VheZ`gageooz{v}zvw|nx„‚}utqu——€S–•qkr‚”ŽaMOC:??078TBFECCL@?Wwxdqrgozrchkjw}xunorqw}uw}‚…’ˆ—–”މ„}uwАtTTb[T::;@.I>AFLHN5<]bbaVb^wŒ|{dgdorrw{}zxnhiz|„‰Ž•™™–‡ƒ‰ƒw|‹c>BLL§JEII€ЉSJMq‚‘–{\UY\h|txzƒJ\mvxurqmop~ŠАБЎž‘ˆ„‹’”ŠŽ’ЂЈ•oB4ECC@9A59:BECE7@BNmpt”pJ\aokuqtcdkvxzrmnorvƒ~Œ—™™”Œˆˆ‡ŒЃЪЎvO04EA>729<+&;3ABOG8WmcbTpwgcieabmmncv~uqdepmrzvƒ‹œЇ™ŒŒŒу™…jY@CFJIBB>B:B;,C^WcpgkCGQSLcUG?5AO\gm‘Ÿ’‰–•Ž‹ŽŒŒ”ž•…‚|‘pNF.2@@0*3ACNVQTTNGCLNEB+b|ˆrF)>ECC[t„|@?:+.:3319:Z™Љ–nx~œŒ‡ЄЏtFE@C?S^kiwvˆВ’ƒ~ˆОА[9MCGB@LNCIHLFC9B)7^}d[d|b^J?Cc~bppnnA?IONVUOJ;ATTNLISu~{ˆ‰~‡ЈБ‰&EYJC@NTNLSMB@CI.C‚Ђˆ\ISSLMSAHSiv|rq5>AJFLGG;35FOGAH<08Yz…wzŸЃpE;?:&49IICBHMGH534Cgb`JQN<>@NPUcmid]]:?29?BFE>:?CG4:<97,(1MxЏД•\<.G@E5C?47@L;dxa\e[@<;BCBA@?>:G8-1j…ŠY>5G9@@>7;-A>EEFA92hvwnkN@"400)?:878.<:FB9E97>7.7NVB+>N<:4<<:B9C<:57E^bgquM;;822"9Favtor,4?;@7)*;1&.3ZQJA@393:BQA2% !72*-3232409MH,:ghakvZHLqrWEHYxwugP%+1>?3(,>440gVS;25%+.)?5"!.$0:1:90*-7@@:WkonmcUSVjxx}mh‚‚bF7"$#40(&$.979hPN?>572;?H+"$,5NE.+5AH;4OU\bc]WL[zxNOvˆƒwU?B]7,1,02!(.!&BeJ99838;@>M8 *?! 8:9IUT`i`baZYaF@$>o…oPG8Z)!   "IY`o~r>29;Emx‹^QGO 9;E<"%)"+>:27:71247>4( (  )3#IZUM?(8:GN[pv}ro]WCNB;?9>pq<75:;1&-*9)%# )  $,19-0]OJQhw|nNCUcgSF;5:g‰qMF1CC;--($%,,.  "# #&54A+ )9>P`xnnIHLZ…‡ŠjE,1Hme7(5::<,-+(1+8# &%(BZNWmoiqqaBYubz„~rM;QG853$&1$&!  & €Ÿ#  7Y[kxgbpov{ŒЄ›wg\J4?E+3)&+7B>3"&%)   )$!)*8ATTMS]}{ƒ”ЕЎ~q|o[ZPNBE485BAG9-)("& ! !%9?:I]w}ox”Œ—•zw|V,1?<LW7""&1.$$%.A23.5-0*+UEoЄСЃzzћtvv~€ёˆ}Š˜Їžk@9#;bH2&*% 1+!*.,)&uŒ‹‰‹™‹‹ƒ„‚}zxxqoz}‚ƒ{v]SZC "I0 .43"  #17!.0+"#(pj…ЈЂЁ–ƒrUjqt{pgnz‚‹}A15@<) (% #$(( &$.$-#(0(ur‡’”™’}WTbhiropt‚‡‰ŽŸ‘Q5NSO3FN3    #7.#Œˆ‹Œ–ЉЅ‡ngekknnkiw{|‡ƒN28>C48. (")%"#  #$$,!$nY’›ˆŒ’Šwzohguwr\\Zƒ‹‡V53+&12"0$4!*.)+J^ggx”ЎЁ˜ƒmuvouxkgo„ЄнЭi0525>H?3#*!CF  %$  !&;&2œБЌuu˜БŠgkmkgrogig^‚‘–v;--:@852.8,81CP@1-,(8(4# ((#$i‰‰€ћœЋ”nd`cr|wxtknЋЋo-0C;>;:9:;3,..CMNT\i`I)NH(&%5!))#c‹™Ё–Žxapmnnw|ƒ}znxŸžY:HA@3.>:E>;<@1<5*Aaiq- &HJ74%734&3+5Д–ƒŒ‰xu{wtqpizvxz{|—Ї‡N<4B?A*%- %*1&,‡xq…–—vtu|pet‚~zu~‡Єb:30:9:;554*-:, !dƒg^WI$0O2#;-, J7> ‡ƒ…Љ‡ZSq‡„{…ŒŠŠ‰jMEPHGC?;4,,05.+Lamwrkig@VNAQGB>)OM*)x‡}x~qO`d\ah{wxwŠ„Втˆ3HFH@OI;308;37,*BPTYUPP>95VSI<8SoVJNF)7‚…~uoid]hgjŠ„upxw‡Жд—4"9J5(>MIVtnd][[eedjnNLQU[bgddabc]ccS[YJNNSUWA??amikeehcbMBr”‰iG8.G?:BOZ[S^eeVhrmbbee^VMVacaokikiae[\WVcee`ЩY\oxpidb`STd\bЧЋ~cWF:25FS‚{tjopobkpejmd\LBAY[^nqojhc^MM€nL]bbc[abghvqjdYUW]idh{}ƒu`bowpwqYbno`V`ecc^OH>@ZdbWSW^dhdc^\`$%#TbPPUTY\]g|~||kaU[[i‚|tnYP^ckjmb\cg`US]aa]T]QOJZ`^YQNdkjd]\[bI.EWVbhh`V^p‚wpkmja]W\|ƒwU+JooL!>ELL`prne]]^c[VVae[[ZFWr{]\TZ,329:Wmoed][mztne^]W]`]z••‚\Y@9"EJEO`mke[YQY]ba`ahc]gk|‹–}bJSTB:FL,OxudJ:Tn‰ƒ|vi^UONPgvhY?4+B;5IHCWnrj\PZ^^VU^ecZ\m‡Ѓ‚uh[NNG HJCWZhnaTQUqƒ”jEQUQLHYnjer`kumc\hbJ?Bknia[WQZb\Zge[TcdYCIFFU]zmPBcnaN]cbjdUJOULH[^bUWgnb]VcZV`c[QWbaadb]dbbhd[VEHQcbegge^HO;;Obiu‚Šw^]YYdhbb€8a`Z`tvghiZ`iiQVQV[bhhi^\eophWWbe\L0I[]`aZ]\`I92L?#F}’ƒqa[P[arue^TVT\end``]]a\FIu”z{xqjb[hphV[cdikibcc`^}zG"$LjpgQ>VmnvreYPPVbc][WPYeqvpnepqg^PJL\qvq`NAd{uohVQINOW]egbi}b?IV`g[][YSTNOCV[YJTbh\WVWZ[]`nkcemomSPLA^ik`ALWJ>@CLJA:PPT^]b]dhaE29JW[hopgok`S-BWk~c`Zdnj`ejdWWYSF>;8\ZIJ-2%+UVG^U+7atpeccb\bniZu}nhekeegaP, $HYopVPV\[gtpepg\ab]OMIW`g@HdmvYMiv]c}t^dk`YZLZ^a]cttpni]\ah]j 3@L`WQVjnnWQ\c[ZVPHYcW[UEQ]]`JAcneZOQOQQLbhjmd[U\nƒ…ˆ{gcbncN (2Oz‹e9FkqgVLPUT[YZMIOT;3W…tjmZVIQQ€д^pthL[SEirwqhjiVZTV &\B::Y’Z1\um]eSZT^^VJQTF0)Yh^\B?E-Sa^cmincd^Z^gc]aec]STW  AO0GF:AYtwœ™qoZ01(CCI[juNOSVOII`nc`icNScinbiovi]QSSQQ"8*"$1C80cQHw„pip^\J,.[`Y\UHMhp[otnnmg\[cu}mdbje@:F@NУ &FVnP#\}mnV<1%8UQQ]ZE:OgetontgWanqu9>g‰tGFWWcФ 57,V\$@)2>ELYTVv‡ha]U@#:8V\8Fr|’ВКебЋЕŸ~dZ„‰Š–ЊД’•’’”™žЂЃЄЄœЈЌЉЉ€ЌЉЄ˜–›ž-2,)-:INUABGcT&(11Z‘ˆ”ЕМЕЊЗЅ—‰{mЃŸ—•”™ЁЕœВЎЏЎЇЂЄЈЌЌЊЈЃЈЈžŒŒ’$+1(2;8CL\e{d&".ALG:ANP’ЖЎЊ—‚‚m|–˜œ˜•’z—ЎЋУЏВДЌЈЄЄЈЉЈx‚ЎШВ‘…”˜›0++,317QJBGjt?0;1@B>ALTM339A[pwŸЈ•ЃЁ’‘„{žЗŸЄЉЏЦœŽŒŽmžЊЇАЏЊЊЇЅŸ()*,,3:<8.1)054887:8;9:@A>>7-2,,2pP`„”ˆ‚•ЇœŸЄœ›•Ђ”ЖЖКУЭДБДЎЋЉЉ)**--3<4:1*,,++*32.557:059;8757->NC,C[„ЈЋЈ™˜”••ŠžОžЊЉЎЊЈЋЊЅЁŸ(+))+980-175587.&-+770173<;;74:;HGB9B):>n”УЊƒ›Е˜›žЇЌЌЋЋЊЈЉЇЃЃ›!%#%(-,(3849:51.(&+22.0--513424::5>;:57>,+>%0g|o•Џ‘œЂЂЊ),)#*+.--.--)#-)+"*1(-)IU>;:<510.1-.7-+4959:995@8-HVL[‰Ё‰ЎЊЄЎ&"$%*++0*)*#&"&#&!8O9EB?827-.,+3418@;?70*3.-&%?8:3FTЎЪСЋдhxƒ‰{wtrb^Ydzww…ŒŒ„pu|…xrmqUdqndjgkek}•‘Ž…}opijw”„ˆh]qvvr~rqt{uicmqokjcg`bjotkZcr~{rjjpqYB;Whjjtpnkt}Œ‚z|{vqhdj’—…b8V||ZNSUbio‡~vmonoichovjij]m‚‰”jmmqACHJMh}w|{rmŠƒvtjtpnp‰ЁЋЋ•kWIF7@W^Veq}|wrihjovtmqrtmt‚ЁЈ’rU`aNIL\Ib…xdcdƒŒ‰}qtj^^|‹m\G15PC.GbVVg„{woegomqhqonjhw™ЛŠngkj"OdYhm|{xkdj„Ѕw^gpaTZhƒz|e}„tqvtVTQz}zqngeorjoqreMcŒ˜…„}epqtWr].Ozg]PWbxwmghnpgodepqw}vrqnwmkjcehmaz‚xuwƒŽzeb``[\owtdFUYP]h„„VPt~kbokm}wraZ]a^prprpw|xnmminvkcjupqrzxqwvrvhb[^gpqtqproU`NN]xzŠ‘žŸ‡jpkox{vwqtoqu}‚vtvrrzz`icjhpv~zoktz‚rmmutgZ[brrnkmtjkTLPVQ@VˆЈ‡vgder‚…vqdikt||uunqroVV{œ„ŒŠwwq}‚xmkrwwxvmvtr{•‰T17\}}rdYbzƒ„‚tohcdqnvka^kvƒ~~{~|um\V^n}‚u^Qr’…‚ve`dgcoontz˜xJWboomkhgeaohbhieccotmhcdhjp}|vwwz|ccbZmuuoO\‚Ё™МЈ|ca``^mw{zƒŽuIZU`hjdi`Yhmtpkk^doq{~vxw{ou}‰‰€{prmmaiv|rgSjЈЏ™‡qhŒŠrjmv~…‚‚qe\Tc]VikuaVhprndanprt„}{xz}ƒˆ‹‹kgjjegr|qi‡ЋБzZgvuCJbcrwvpnW7GMu}‚АЗŒxV[S\rƒw‰Š…ƒˆt}~ˆ~zŠ|ue`\gajtˆ‡wuk‚~][gieV`jwmqjk`]mVYdq{‡‘ugcac^[kr‰–~ˆ‹Ž…~u~xwt{xznH`bcip|uoa]jpj]`YTa]aittwqvqbZr{ztbWQmtpdT`{‡Š”ŒŽ‘Ёzvwz|}}z‡o^Yc[hqtrbcbk``kmY[OSOi{’}ŽnJIS^eQEMSTb\Ncggopwu||tOCJ\it„…||zm]C]j‚’wrhnvrorrqed]cYPSOhcVZEJCFM`Tg^@;Wq‚z{uumnuˆg~‘Š{wxw|wo\M("<]j…}gbcinpƒ{tthimh]c\bj{OSoz}gZkrˆ~txxmdiedtxr}‚„znoqrn}$)FQQ^nc^dw}‚]iiriji^`tztc`dmtwpgOu}ukniabicmmuw{ojn˜Ё˜ˆomr|pc+)9.$:>Jn’—œnGWwwegcdqriaV^dvNHoЄ‰zkb\``at‰‘zikhVw|ƒ~rrvijdh$.+CrY-9NOnЎgIm…‘}mwnjpnheZ`d[M:cxnvZQQThkmz|„x|wojixxovwpibbd)!31[cH02-8\`04QPnŒДЄxwpP95OWWj{‹jecdba`jxmnti^mt|{qz„vdiecdh%,!BFQPEFJ[Q$)(I}a]‹~t~j[WMJYvcrzdWniU^Ne{‹vqj]!)$$707.#-@)213+44::ICE,3$&GSCkve}b[MIg~ktˆ‘kZWP:q|vx{~tkjr&,!2B:C>2%%0$$5.014:*-<;91))T`LQmdWYjqrijug`rce‰•Є‰|}}}z#*.4873+*)()(5))2),,+*;?.(+05M@ $7Jh}{tjjmgkw^pkh„‡|vxwihm1%98:15121)#&2-&*!(*,23EIN??.?:B0 0>;Sƒrj{zzˆ‚qtzioma1*(+-114&-#,+95#$,4(!,72@>@<*,.?+!9PC.>xЖŽqˆpwwzo^antnpi#-*.(!4*!),2,55-#+"0%498!CTFmwbvrpgjnqmrx$.0+,#!20++1&!&"*.)-*-8-7,*0+$05#-4>9;B-#1&0##2&PdMt|ZWekiwx"%$)%!1A@9%&)%$,,&EO;8A<9+*3+02483871*)&.2WC]dubdvt‚#")!&.<-0#!!"(, ,S>3FC<$+*%.30038?;048"(1)1:811@]Ÿxџ€ ‚˜ЖРТДˆzechF>E\^eabhWCMVZV]wƒpjekuh^c|‘‰……}zw}}˜ЇЇ˜ЂНЕЄ›•‹ˆŽ•œЅЂ™ŽЂŸžŸ…vjab]BNOUYZ[bga\bQJ@Qbdgjmpndbekq|‡‰„~qpz‚t‡žЂЃœ˜‘”’–•”œ˜—‰qW[a^bYSZV``W^^ZjmbQUeokk€^agb`„ŠŠuorr‰ŠŽ’–—•”•”—‘|p{„…„~nkot{qdW\jhec]\\dZTP\ahroigmonoƒ‰ˆ~}zu{‚‡‹’•—–Œ––‡‰ŽŠ„x{‚…reot{q]Wgg]VNQ\ZOFOHkzqrv{uoku|„…ˆ…}|‡—™”‘Š…ˆŠ’Љ™‘ƒvx}„{iabJ#&L[\jH.BV`^VE>-Ci~ƒx~Š”ˆqihjtƒ~h[x„ƒ‰„‡‰ˆ‚ƒ}‚Œˆ{‹‹‰ƒxrz{pj}dENZ[?4$15Md‡„vjgd`]YZaenddqpx‹‰ƒŠ‘”ދބ|thНЮР•ujjwwoedci\OCISYZYPFJO\jpxj]oqzuh]ahkebahghq}…‘˜’‚|z}}rd”Ўžx…~|}|zv^YNQJ>()#"++7.9A[TPT^kkmikd\gpqvdWaeq„Œ‹ƒ’—Œ„{uwpj–’q\cmjhocTNQQWJ:-AGCHHCFF˜CLY[Y[Z\UUWYVS[jkddt}„‰•zbq—”Œ‰ƒumnihrzxbY^cimpehkkrqS;OPMIQSNQcjgg`^d]\W^]]mkb^epwvoi[Tz‘‹…‚uimmpmpoo€“eiikjbZTW\dJ.1!O]MFHHNMWabhibgULLMJQ]pvojppmpnkgrŠ”•‹v][dp|qponket|uqo]VOMVW:9>[ucVTTPWceg^^m~jWVUQSYcbbcpuv{x{roœРЎЄ„xuvttnkieYSc^]\Y[ZUTGGMWYLIAEEPSTZ[`dmx‚{^a^bYYa`[\hpz}}ƒ~}Ÿœ…{ƒŠ…ƒhYJTSFJYZZW]ek^YO@*?8--@3FGV^nzwƒxj`cdWNUabcjwƒ‰‹‡‚”ЃŸŒz‚‰ŽŠ]VUYbajpebWeidSAVI7BS`dbhhehk`ZMAJH1ATT`€[`nuxxqiidbTISZ\i|~rkmh{‚ˆ„{‡‹xŽ\daWVZVQYgmc^YWZJ<"$$%:;Tiherxphha\`d]W^mjg^[Uaiju‚~‚||ƒˆ]^`[UZSSZcd`WTSI@CI:CE@2CI?Tijkbhpvjga\ZV@Uutnc^[bpuottwvzuur‹`]WQNF:FVee`WT[MAHJ93E709?FANph\biooehmiecj}Š‚zdaWbhux‰‰{}xpux}jjiF(@VqdTer‡j00YTPI!Shd\T[c^ZbbY``n‰{QV\p{xvw|‡‡…€‚VAGNE%;m{q~uY(-N+E>7%%8n„nigjrmcZdiodT?VvpULZipmomo{Ž–‘ˆ”œUMIM-@]TkƒrcdzgG;:CcGHGBA4I\hpƒ‡|qia^`ghWh…‹xwqeakihgrwz‚vt’W4<3H[aIHbV@QaiwhS@% 802BZnr}mkoonoiƒ•‡~gЎ•wW`kpuwi`Zdwzwpv}UA3-0P\`Y9BOOMNZ]UIH-% +Cn‹™ЏŠ}o^akv|~‚‡Š…„ƒj^`cjuph^bizƒqqrWcdB@[[YPLOW[OHHPbP5<€о1aP?Mr‚{pmmu‚…}z…ЋР‘[Tahvwrv{~{tumeQe‚rCETOTYZWQVZWgbUFYWT)F[F?k|{r{xnqw{}wvzohv””rgqupomqnkivwxz5M\ZJMTWOLTSSUMIBM>-NMH8!+U`n~ƒ}|w}ztqmbhmm^Ymz~reooccgihpqrt‚Š[ZW][HCHLb{wirWIQVB#50OWp‚…}ƒi\Z`Z^djocgv|‹–’pebb€Tprgek|‚@985,8:YnMhbOP@98BHC33GZYp‹~vo‚Œoke]bkia{…‚wprtkagamvjcchkkmqz$,424@IBAGHOT\YLHNOFA,>LB3,$Yujboopu{vv‘•ƒ‚ƒ‹™Œx{‚|un[hhquuokh^oƒƒMN)GTB+1;FJSUWGLP.2".?5"CQYbikehbmvtpqvqu|‰iVŽ˜Ћwgdhknj]ab`nwQMHPTE<)BQT^Y9 9\NB0251(7;bbVS`jiihui`irzŽ‹‚pe‚‹Šk\cpvqgZ`hk‚މWHNO: "%CQY\TSJdW ".4*;HUF?]T\e`dokaZec‚‡d^`t}ƒznpoicW0Wix‡T`dHN2GkG@GZgdTFEN;&,?;7B10IZOUb`ac^amk‡„zn`WT„Œ…vcdagbZTW[W`imkmgBQO[\U0?8VQTE*%!?SJIE3C4&ikakgiucW]kuxuedTq‡v}{tTc^SHSY`[hpEMbiFAITNLTQUU€БWSgM?.8@S."M:AZzhgccd]YTpq|ƒŒ„‰Ѓ‹{‚‡i[YZWdVe{–‰ZOiWCOP^bZ?89QUGHMZ#)VPTToraYZg^PPOHdxvz‚Ž”–{ˆ…tOYVZW]`iЋŠi[TTM?AME>)YUOUPGLiBHJ@Nqe^nnvweccbdnnwwp||xizz|r^\[[WY[g|xa\\ZLL`^SUOZYOVVPYzY4^mISCM^hckrzodhcgajz„ˆˆzv}„ˆ|rjg^YMH^mh‹de^ZGGPL1?EUYYONQWa[^iiW]ZiZZFevwvjgaa^Vbdq}„ƒtz~{zzvdab]ZVWP@rƒUdZLTPMOJEQVJPVado{gJSdnmZdPOQv–ˆMNWce[ZNp‰™•…v|ˆ„vwrc^b`^\S;p…SOP<+*HHTWLVZ]^`mmN1SS^bTOi‘žhBVekhb]m‹…„‰x}xqorg^VUicTNo…`cHMUJ9FCML8Gd`PG.+1&+BWN3LUN.\|jQEPSbotzz„„|‚noopg[ejegbgmW:Ne]PVNZWPI?97EPLJOQ<[TGFILCSSOr^Yepjeounqwƒ‚{‡‡o^egceinhVVvkNIht\O`m‡cMTbNI\?HWLWQITE%CPZJ!?[ujcametonq~‹…Šu[b\ejnionbh[VTUd{Z)HvdNPtN?NPpoWYTT@HL7&CE@<5&?+BEPSZptt{~ЊЇЁЇvx~ug`]pm]YYZeW`‰вдИЪсчхсЫРЌАЋŠŠ•ЎЌАДЏЃ››ЁŸЎСЯМЖЖИДЎЌЋРзЭЫЩШФТТ€ОнзеемђмнйгЫЧЪбджмдШйммнЫОЖЎЇœ”œЅЊЊЌЊЇЅЄž›—„™ЏЗЕВДЖЎЌЊБАИЩЮЮЭФКАОФОВЫлпммеаЭбдгаЧЦШЫЭЯЯЩЗЃЄЋЏЅЅЊЇЈЇЃЄЄЅЇЉЊЇЂЉБЖЗДВАЋЈЈЎЈШЪЮЮЭУИЖЖРУЯеедггдгбгббЯТАСНМУЭдЩДАДИЖВЌЊЉЋАЋЉЉЇЎЊЄž”ЇЎЗЖЖЕБВЕЖЗЪЧШШФССђЦЩЩЭггбаЭЯЭЫЭЮЮ€ЅЯЩЦССЧЪУНЎИЛРЗЁЄЌЌЉЄЃЄЄЇЉЄ˜ДззРРЛНОНЗЗИОФЧЪШУСТЪЯбааддбЭЮЪЭЯЭЭЩЩЧЧУСУУТДЈЏ•eaŒЂЉЏ”–œЇЅž™—…‘ЎООСНФУСКЖИЛОФЦОЗœЖЪЮЩЧЪЮЭЯЫЧЦШЪЫЦТЫЩЧУНЛКИЖАИЋ‰‡™ЃЂ—{ji~Œ™Ÿ˜БЛФОСЕЄ–|ŽЇЖИИНУбкК•ЈНУЦУЦФТРСТУУФЪЪСЮЪЛИДЖИДДВСМЕЌЁЃЅЄЂЌЃ‰‡Ž˜ŸЂЇЄЗЛЗЖЊЋЅЇЉВЗРУЩкпаДВНУЧЪЮЮУЊЕИНОУЯбЪггШЦТТКВЏЋЎЈЅЅŸŸЄЅЈЄŸ–•˜žЄ—ЏТОКБЌЈЉЊАЗМДЦчгЯЧННРЧЪграЗЏОМКОЩаЪждЯЧФТНОЗЅ›™ЁЄЇЋЌЇž™›ЃЃ›˜™œ”—ЗЮТМДЋЈЇЉЉЎЈЄЇБМЦУЏЕЏДЭежкаШТНЛКНШЧлзеЦОЛТУЌЂœœžЂЈЇŸ™–ЂЈЈœ™œž”ЎЧЮСКЕАЊЅЅмЋАВКЛМНМЕВЕбсжжбЫЩЦУСЧЩЫЪежжЪЦРЩДžŸŸ€‹ŸЂЂ›žЅЊЋЇЁ—•œЁЃЄВОЗВЎЊЈЊЈЊЌВЗЛРОИДИДкздбаЫЩСКЛТЮеаЩЮаЭЧдСЖСЌЇЃЁœ››ŸЁЉЊЇЂŸžœ›™˜‰ЃБВЎЈЂЃЋЋЏЏДКРРТСРРНбездаЫШТССУШаЫЩЮЪУЌЌ›ЉЊЋЈЃ››œЃЋЎЌЊЄЄЁЁ€йЂЅЋММКМБ–˜ЎЖОЛНСТСНЛНБШммйджЪУУРНОУОЯЮЭЇЕЗКИЮКЁЇЂЃЁŸЖ›”ЅЁ—‘”•›ЉЖКРРКž‹r›}ЌЕНМЗИИбалэллЮТСОНМРТТУбгЛŸДЖНФаРДЌЋЊЈЃЃ•’•—’‹…Œ’ЃЇЉНСТЦИЊЎАЂŒ•ДЕЕВЎЌДЗЖОЭагзкЪЦФУУТТКуцбЛЛИНОЛЋЊЈЉЌЎЌЅ›—œ•Ž‡•ЌЧТРКЖЕАЋЃЁЈБЖАБАВМРУйЩЩ€ЊЦЩЩШЧФФМВЈьѓчЫРЛЕЗЛМЗЏЌЊЋЗЌ›„Ž›Ѕž˜‘›ЉЛОМБЂАДЕЖЏЅЅЎБАЏЌЏВДИСФЦСЦЭЪЩФСОИВЋЫйЯЛУМКЛОЛОЇЁЁž–‚‡}‘‘”ŽŠŽ’ЉЉ•ЁЅЉБВДАЋЉЋДНЕАЏЏЌБОЫЪТСЧЪЭЪФЛИЕЖАаЩЖЄЈЎЊЇЂЈœ”Ÿžœ’‚zŒ‘˜”•’ŽŒ‘˜˜œŸŸРЁЂЂЃЄЂЁЇАДАБЕСЩЧйРЂЊгЯаЮШРИДБЎЗИВЇЋЄЄЃЉЋЎЈЋЏНО—p‰Ž‘’—‘‘—œ’ЃЇЌЈЄЄ€ƒЅЂЄžœЄЌБАЏЕЛРОЛБЎ˜КбЯЭЪНЕДИИБЗДАЉЄЄЊЌЊЈЄЅЄЄЌ›‹ˆz‘œ››™˜œЅЄЇЏЏЊЈЂЂž–•”˜ЅЏДЖЖКЛОИЖБЈЎЩжЯЫЕЂЌЌЕКИЖЖБЊЌЌВИЖЏЋЂ™–Ѓ‹‚ЄНЂЃž›œЃЈЋЎББВШВ•œ€EЄЉЎЏБЕЗИИМКИЌбхблТИЛКЛОБДБЋЅЂЅЏАЎЋЉЅЃ›™››•”—”›˜™˜›ŸЃЇЈЌДНЭРЌЉЇЃŸЁЁЅЉЊБМСУЦОНЛЮкдЫРФФЦФУЌЉЅЁЂЂЁŸЂЁЁЅЊЇЅЄ–Ž‰ˆŒ‘‘Ž’™ЄВСМОТОИАЋЈЂœ›ЁЇЈЊБКРЧЦТШЫгбЧТНРФЦСœ—•™ЁЉЏЏЌЃЃЅЊЄž‰‰ˆ‰ŠŠ‹’’™œœŽДБЖЗЖžЊЉЉЅ™•›ЁЉЌЎЎЌбШШТФЦУСМНТФТРЂ˜™›ЇЌБАБАБАЋЄ›——–ŽŽˆƒ‹{˜——w•ЗЕЗДАЉЅЉЋЈЁ™žЂЄЉЊЌ—ЕКРТРНРУЧТТФШТЄЃžœŸЄЄžЃЉАЗЂ–‘‘„k‰ƒ|~uˆ‰‰{ЖИКЗЕЏЈЋЊЋЊЇЃЈЊЊШЌВЗЗИИМНСФУТОСЧЧЂŸžŸЄЉЇЇЖУКСЇ›‰…‰–ž•}`z„Š’–‹‡ЅИСОРЛЗДЊЋЋЇќЎВБААХЕЗЗЕМТШЪШУСФШЪ™—–›œЁЂЃЄЏЗКИЄqbh‘ОЮЛ„qz‘ЇЁœ–ЂДЗЖДВАВАЈЂЇЋЎЎЗВЕИЕИСЩЭЯЪФЧЩЯг–™›—™™ŸЂЌЌДДКЃpw—‹™ЂЊЈЈ‰d—ЂЉЌАРБЏАЎЋЉЅŸ˜‘žЉАДЏАЏБЕЗКЗНТЧФФРТЧЫЄЂ›‘Ž”›ЁЃЈЎЏЋЌАЋЁŒŽ‹™˜›™›žЅЄЁЊВДДБЏЉЉЂ™–”›ЃБЖЖЏЉЈЌЛНТОТССНОНН€ќСЃЃЂž››ЃЅЈЈЂЁŸ•‹|‰‡ˆwmgi~‡—ЎЉЊЏДЖБЉЇЂŸŸžЂЈЌЊЅžЁЅЏЕЛРФУСМЗЕЗНСЊЇЄŸž˜—˜ЁЄЄž˜’”•ސЋ‰‰ƒ}mƒŠ}˜ЕЉЂЅЌБЏАЊЄЂŸ›~˜МЖБЊЄЁЈАЕКМСРМИИЕИМНЄЄЁ—•—œЁЄЅž˜–ŠŽ””’‰Ž‰‡„ƒ„—ИЉЃŸЈЎЏЋЈЊЏЋЋЏМЮНЛЌЉЊЊЏАЖЛУУОНМЛЛММЊЃЏŽ’œЏЄ—ЇЋФЈnVntdЂŒ‹ƒ…^p—ЎЊЄЄЈЋЉЅЂЈЊЅЋЖЧЫЛР™ŸЂЋЕЖДВЕКСЦЦЅУЦТЂ››ŒqˆЗРАБДКžo|™}F:v—’‹„Žu„ЎЩВАЏБДБЋЊЉЉЈЄŸ}‘ЌЕЋЂЂЈБЕЕЏЋЏКОССЦЪЭ™’Œrk‡œ™ЇИЅžŸЗОИ›ƒŠЃЊ‹ˆˆ{ЊДЖЖИКИЏЇЃЈЎДŸЈСЩМИИЌЌЋЌЉЌЎВЕИЗЖЖОШ—„}d‰ЂЇ•ŒŸ•‹™ЄЌНЋ”{nw~{~xƒ›ЌВНКДЎЏБАЌЩгОРВгцЭЕЅЌАЗЕВЏЋЌБЖЗЖЕЗН‡ur•Ѕž•’—Ž•ŸЄЂ—Œ}pt|zezŽЋУаыУМАЌЎАЖМРОНРУФФЦЎœЈЋБЕДЏЏЖКЗЖКЗЛ”ЄЉ{zœ™™•‘•—–••™œЌ—||jPBE}Ѕ˜Š˜БШСОДАВЗЛНРРМООУмѓЮ›—ЇЎББ€ЖКЗВЗЖЕВ—ŸЧИƒ•”—•—›žžœЃЁЁœˆЄžŸbŒЁ‹…ЈИЕЖЕДДВЗЛННРЛБЏЌЎОЧАžЏДВАБВДДЖЕЛМЗ”™ЃŸ˜•™œ•žŸŸЁŸЁžŸ‹|Ž’‹ƒƒЁЄБФСЖЗКИВВБЌЌЎЌЇЂЄЌФРОИДАЏЏЊЋЏАЎЏБКССŸžž—•Š‘™ЋЌЈЈЖœ–‹j~ŒŠd@Jt•АОСНТЏЉЇЅЅЃЄЊЉЋЏЕКСРМКЖБЊЇЋЏДЏЌДЗМ…ˆ‰Œ•Џž–’‹ŒŽ‰„‡ŽЄ˜ВОРЕЉРОМКЊЌЄЇЋЊœКРРЗДВЗЎЃЇЁЊАЏЈЈЋВБДДЗЛi„ƒ‡‰‘•œ…‘–•’–’ŒŒФމЊД˜žЁАЮЫНЫЕЈЗОАВДЖЗАВЕКЪЂЂŸЋДЗДДИКМОКЗЕК›wƒ|…Š‹Œ‹’›Ÿ•j‡‡Вˆ‚‡~Ž‚•t‡›ЌЖЗКЖЗСЧСРМЛРОКДДЏ™žЇВИККЗДДЕЖЗЛ–}]ˆ‡ƒ…”›œœ˜—˜——‚…‰‘‡ˆz”ДЎЌДВБЕКК€WЗОРМНТНИЕЛСРДЏŸЈЎАЕЖДЋЃЈЎТС’‹Œ‰ˆ‚‚Œ‘–—œ–••z~‹ˆ……‹ˆЂ˜ЃЃЄЋЎАВЖЖДААЕКРСЗВ•ФЩтЫЗЏЌЏАЎЋЋЈЃЅЉЊК–’’‰{„•—•—–Œ™‘”Їƒ…‡‡„‡АŸ™ЁЊЌЏДЏЏЌЎБМРТИАЋНаШЪЏЌЅЋЏАЈЃЁŸЌМЯТ—˜•x‚…‡‚‰™ЁЊЂ›™ЌЄq‚}ˆ‚’Šž˜ŸЅЊЊЋЋЈЇЇЁЛРЗŸžЃДМУЯКВАВЏЉœЁœАНДЛКŸЃЅ—~›Д•‹ŽЄЄЈЈŸ—•Ž„‚ƒ„tЂ•ЂЃЅЈЈЄЂЅЋЧОЗЄЅЅККИЕЕАЏЊЈЁœЁŸЄЏЌЅЈЇ„ŽŽ•œ•’‰‰—ž™—Š…‡‡‰„…}rrЏТЋЇЇЊЇЈЁЃЈЕЗЕЊЇ™ЎЗМЗМЛБ˜ЈЄ››œžžЊ€˜–›ŸŽŒŽ•”•˜˜–™А—Œ~|{rŒ‚u{ЄСЌЉЉЊЄЂ•ЏЗЛНЦТУйЦТРТСЦАЇЅЁŸŸœЂСйЧžœЂ‘’Œ–˜•—™œœ–”Ї{btg}˜—АЛЁЉЊЇЂ˜—‡ЉСИККОУСМЛИИКД’ŸЁЂЄЃ›ЎЭхЪЈЂ•›•˜™›™”œ•››€”–ВŠPdmj’‡•ЌЅЌЌЖМРЋЉЈЅЉЎИЗДИДЕЋВАИЛРЖЉЁЁžŸžЁААЄЄœ•’”›™˜žžЁЁ—™С˜ŠЊЖ•ƒŠ›ЏЋАИКИДЏЌЌЅЇЉБЕЛМЛКЖКРУОЖЏЈЅŸ˜›žЈЇКЩžЁ’””—”•Š—ŸŸžŸžžŸЄЇЅЈЉЂЂЉ•ž…ЊКНБЋЅЇЇЄЃЃЄЏРФОНЕЗМРНЖБЇЅЅœŸž‡БЧ˜–”’•––’‘’—œЁЇЉЉЖТЏ˜–ЋЕМЉœ˜˜–Ожۘ‰ŸЂЅЇЂŸЖЭЧТКЗЕИКЛМЗАЊЄЄЅЃ’{АЩœ–‹ˆ‰ŽŽ™˜’•‘˜ЂЈЇЎБ™kaqc‚ŸŸЄ›ŒЏЮЩЁ‡ŸЃЉЈЋœЋЩУРННКИЗКЖБЌЊЂЂЉЊЃ˜ŽЎЦ™‹ˆŠ‰Žˆ~’ЊŸЂ›|u~„{„–ˆ‘’œ™vРЇ–˜žЅЎБЕОРЛЗЖЗЕЎЏАЏЋЉЋЋЈЊЌЁ–u‹ЊЂ˜•™™—‹‡xi‰‘’’‘œ–•ŽŒ‹—›ЏЂЊЋЋЎЎЏЏДБИОССОНКБЎЊЎЊЊЌЎЌЈЋЈЇžŽЃДЄŒ›ЋЩЂ”™Ќ’daŠŸ”‘›žž‘…‡‡‹ŠqЉЕЅЈЌЊБЎВЕККТРЦТКЉЌЎЋЉЌЏЌЉЃЇЄŸ‘ЄЖ™gawЕЊ˜œД’ŠŽ”Ћœžž—д–‘‹‹‡‰ˆƒ‚u‡}Š‘ЁŸЋВЖИОсЪШаТИДЌЋЌЋЎЏЌЊЈЅЅЂ’ЁМ€тЌ’ЋаЯбУ‹uz{VV[{r}xxrj`]eiet‡˜ƒ}‚|oxЈœЃ›•‘Ž–БРОВЕжУМАЊžЁЅЌАОЕЌЃОКВБœ‰z{hY`epnpkwwomiaZPbxrz„‚~nuw|’–Ђ—•„’›•ŒŸИКДБАЁЃЄЇЅЃЂžЂЈЉЈЉœ…jjxzwqrpuwrnrmpz~ojgw~ƒ|wouwu’›ŸЅЂ™ˆ~…‰’ŸЂЉЉЈЎЏЉЈЊЉЌЇ’ƒ‘‘–—™Љ–z|‚ˆzqwx}|wrtqxqketw…ˆ‡~~ƒƒ„’›œ˜”ˆ‘‘™ŸЉЈЊЊЋЃЅЇЉЃЁЃЃ›•‘ŽŒ›Ÿ™Œ{~‹‹…rnx{pjihorda`^|ЄЂ‹…ƒ„Š„}Š•™ŸЂ™’œЋЎЃЃЈЄЇЂ˜ЁЃЂЄЃœЋЇ˜‘Ž‘›•ƒp{b53Zrr{ZFTjomg]ZHTvˆ’‹•ŸЅ–‡ƒƒ‹›ˆgŠ˜žœœЃЁ˜’’˜žŸ™’œ›–‰ˆŒŒ‚|ˆtSQO]jm^J?BCVa`dz‡’Žvh\btƒ‰‚ƒ‹ЉЎŽetˆ—˜›ŸˆŒ’•œ››œЋЎ•‰ƒ‡Œ‰„„ƒ{ximrnmwiQSYdprpj‚ˆ‰{pp€ўx}}…‰‘–ДЖЄŠxƒŒ—ŸЂЅ˜{|‹’ЉАЂБЎ–—‹{xxnooqnhkoitqbZ\YWada|ŠŠ‡nikpuƒ…„›ЧЏЅ›‘…Ž”ŸЄЖЄ‡~‹‰Š”ЁЈЃЈЋЃЂ˜‹‰‰nc`grwxxp`[hnpm`edY^‡›’‰rogioukjn‚ˆ–‹|…|ЃАДЌЋЁ™Žˆ‰˜žЏЕА•ˆƒŽ’uhenjkjpne[ZdvmaZeh\q”˜ˆ}wpjmmr~‡|Š‹‡„|‡ЉМАЎЈЃœ–”˜™žœ™ЖЛЊœ’”Єˆhiddnnpphehtztuncadgoqz‰|xqnpnqrv~Ž‘—–‰~‰ВЏЎЇЁ—ˆ‹—ЅЊБЅАЏВЏЗ˜Œwojg`Tcnkmuvm^bW\cbgan|{zpikrwz|‡ˆŒ‹•–ŠŽЉАЊЉЇЇ–•Ž”ЂЄЈЁЉЈЂˆ‰truxpjgh^ejqtvnqpunjkoku„‚‰|c`owzˆŠ…ŽŒˆ‡Šˆ˜ВЖНКЎ–›•‹Š‘•ЇЋЂ{„ŒŽЃ‹huoi`cgjxa]nc^SQS]m‡ƒ‰Œ„`QFgP\gp…‡ƒ…‘ЉЊРжУЛЇ˜Ž‰‹‹’—œЈБt‡•™˜Š~w|ui`j^PVWZZYTYqvrƒ’Œ„|ruhUav‡xuƒˆŒЂЈЊЗИ›—’˜–˜–”ЛСЇŒˆ‰ˆ‘‰{unozztdaVU[oc]NQOQ]w’”‹}zvronmz|…}z}…’˜Ѕœ™—ЃЉŸ›ŽŒ~}зпЯЅ’Œ………ˆ‚tvt}rbOZeomma]Yduƒ„Žzk{‰‰ƒwpnz}}qtt|{Š–•œЃЄ™‘‘‹Š…ЅОЎ—Ž•—‹tkd\`WPJSL[O`YQH]ko^om}}ƒƒxtru…‡ƒwutu‚–œ›’”ЄЂ›‹ŠŒ‡ЋЋ‚mqxquqtiddjd[OHS^^eadYUUWVbehkkmpkmkicn|z{’•›Јu}ЄЃЂЃœ‘‚~|Špruqpt}{x~ŒˆcALGPd^ZT[`a\tqxunrurpgqtw}}uwtˆˆ‹‚|qdŠЄЁŸ•Š|{…}vutww{vvidmzaWNAWh`][a^hpw{wtvqpcc`jipˆ~ˆ‚ƒ~}r}™ЌЊž…v|zŽ‚~xu‚‹ŠŠqkcegjOIJh…rok`bitzvvu~Ž}kjhdjnuwqv~ŽŠ}ЏаСН™Ž‡‰‹Ž|wtpkuumpnkib][aic]a`b\cceipuw„‘™‹rvonpkqtnpwƒ‰‘Ž‰ЄЕЎœ”ЁŸ˜””voejpnrpjigptvnk[PIHISS^T]]^ep{‘ˆ’’Œ~xvzobgtpq{‰’›žЁ––ЅИВžŒ‘˜™”hd\dmt{upjvtwhVb^USV[Q[^`]\\Zhˆ|‚~‚knruma[go}{vzЇЃŸ›ŒŠŽ‹‘•njdg{‡‡ˆ…‚}widhdWV]^POFkoo[H^ƒ~ƒ}trutojgintvwrj‰–”’’›˜™’•žpncdhkcgeq‚„nc[[QI8A8BN[Q8SZQGiƒ‚ƒ…}uxt~}|tutxmpx~‡ˆ„‡„Љ’•”Œ˜ЅЇneimw~zz‡—”—wcULO[\[A3JY[T]SUQn‰Ž‹ŽŒw|~wwrvƒƒ~vz‚‚‹’œŸŸœ—Ѕda`Uemjpm‹‹ŠŽqA--\ˆ–M8A\rkgce`d‚Š‚…ƒxjkrxxvpzƒŠ’‹…‡—ЄЄŸЁ™‘ŸЊЊjhjhbcbmxv~‰•r3Ga`T\hvnxW.atux•zuru{ti\ehx|zx„„…Œ‡Ž›’’Œ˜ŸЃЄjn^^VWcnot|‚wvzri]WUYeakecovhkv‡ƒƒ‚zurq`]dvz‘’Š}|x‘’•˜”‘—œ‘‰‘œktmededgp}|}tkjgYMJAGBA-4FLPgztv{ˆ{utwnpqneqz‚zxpjq}‚‰””‘”‘ˆ‡Š–homhddaiioije^U\SZTYUSUO<8IMMIPe{ƒŽ…|~„}|™Ї˜ŒxЄФЇ‰jmzˆ„rq}‡„„[WNBBakjaWV][WepmkZYC05E?4H]‚ЂВЯЄ–{q|„‡Œ’˜œ—›}rutz…ƒwu‚„‹”‡……^nuPSied^VajhcW]bz^EO;LnaQb‚Є˜–‹…‡‹‘ŠŠ™ТтЎngrz…}‡ˆŠŒ‡ƒeo}T[ddbehehhmmnodLjggL*UoWNr„Œ…Žˆ„ˆŠ’Šƒ„xx~ЂЄ„mƒ‚ˆ}{}‚~…Œ‹\ekdTVehZeiigmjaaeQJadbUJQtm•—އŒ…‡}|z}rtn–‰x}x~}{„……‘™hjgob`]U`‚ƒtˆed^pQ7JCBH4%>ai™’’{uuvokw{x|ƒŽžЈЄ‘‚xrrowt|‹•JP\STPSa|buoigVPOWW€УOPUqnxމƒ„”Ÿ™‡vukp|wk”›—ˆƒƒ‡ƒz|t~‰{qq}z}|‰Ž’5GMPLOT[aMZ^bgYg]bUZZVWWNtmmjz›ž—ƒ{Žƒ|ˆ’Ž}{„”™qkou‹ˆ„…„ˆŒŽ‹‘ŠgHHS[`^V\^e\ZYe[<9IQVPLJ^NZCUc~…ˆ‡‡Š–˜™’™›‘‘‚qkikx{~‚ˆŒˆ~‰‡^J8PV[\]VhbqkbVhYbOHO`USOIh|}‚~…ˆ‹‰™˜—–œЁ•’‹˜|kx~|…ƒ}~rn|’•^`N^cVHQZ[`kcdZ[ZAJPONLSTjim{z||v‰Œƒˆ„…‘‘xmžЅИŸŒ|zv|~vnonqx„‘bc``VLLN\c^j[VH^o`WMGNVQJNutbak}~}z‡{{z‚‘Ёœ’ƒŒЅЅŸ~w{‚~rgnrz•ЏЄmoe]IPIMFN[nohcjwn;ELMPUTgUPibqxwxw~xutw’—‘tor‡”˜ЄŒ|…„{zdcdx”…‘›irpb]H[|[QSt{zhd^iIGFPMMрQ9@Wmenmvpproxœ™‹~tj\—™’ƒ‚zuztii€oan}r|nJYZbmhZYTdhh[OJNAMQWZUMJC3{{xwt~tutr…ˆ|jz’ŒŽŠ…dqreVbjonƒVZnxVSW[]\c^^hhdWvdSEPOgH@OGHt”rukib}ƒ’––œИŠ—‘””wnqhhojm‘Џhhi^QcgpogOQ[ba^Ydi>">5Adcbg}ˆqquwtgadUrŽŽŒ”›ЅЂ™Ž‹—‡bgrjnqmw˜КŸxu`bb`da`SQaimieVTxS0;><`WL]|vo{ƒŠŠzutuu~…ˆˆ‰x‡‡‹ˆxvmnhenn‚ŠcmagZ\ona`^jmdpp^c‰nYt|\UHOgwx|„‰„|vrqru„›’–Œ‡„‘—”ˆƒrmhbbqzwŒŸwrihV`^\TQ^qrohdajvpnxzonozdjVr‹‹ƒvqrwuopwƒ–—’„Š‰Ž‡wupmjmdO–[mb^^]Z^]Q\d[kqvr‰‰z^etz{hoa\`‰Ћb[jnvpoj‚žЉŸ‹„ŒŽ‘‘ŒŠ‡rpjjmjZLƒ›b^[]QO\YbgYaivnn{‰c734(Oibiona}ЋЏvPewxqh|›’’”‘‰’‡‹ˆ„ztkrwvb^~–qpWZZQY[ZYPG\vreYAEAH3HbWN[ccCh‘rbMadwzˆ„Š‘‘‹ˆŠ}|ƒ|v{vzuuxrbEbvvcecjhZQOL?;Q\^`ddYj`PV\U^hkb{quw}}{xŠ„„‚’‘•Ÿ—‡|~r}r|xkn‰{dZu‡maj|n[ez\+1UoW]j^jhahOSVWc]ATkˆztv~w‡‚…‡‹Œ–˜œŽrqwxx{|}qwzjg]u…j<9Jƒvjb„^Q^c}|rmkg]Y`NOVSPLLFTBQV\cn{ƒŒŒ‘ФКЌИŽˆˆ‚{ux}vxomngn™џГЇ•‚˜ЎЅЁ›ƒovxovx‹Š}qnbbddrrchmz{|xptP$*"%-Wccjvxtˆ‹ŽЄДИбК‡vrpuu}€]~}}{hdbcgjjou}„Š”˜ƒ@%  "#!7]ut}~x„~Ž—™ˆ‚x{qniojpv|~}vtpknrrqzˆŠŒ›‰b9 1+.AWkoutxx”‰ŠŒ”—˜–‰rmqqx{|~ƒ{ne`bgdkj[bpw„…‡’~U<+3% &%!"%Eqw\grx{‡ƒ„ˆƒ}„~xuuvƒ‡ƒz{rWOT]][\bab`~‰g,12  ().-Qjioqwxtt‡‚vpv~|ƒ„}rv…}tmdc]`heb\\nwx}o`WJ3+ # NˆŒwrkvztwx‚ƒ}wtxw‡’•ˆ„~{ungdgdhnmw}}wzg[hW+Ъ.cƒ~thjwzƒ‰ˆˆz{ƒƒ‰‡qw}xoggb]^diporu‰—›utx^7€˜ 870Ii~{kjntx}ƒ‚~xvomz‚{rv…|vkie`heUUT]hzq]b{rP0 !(04?H^]eoow‡|vppooiint{}z{~„ƒvojjebdghdg~Š‹vcvtT2  >BShv~pkj|wtt€Јqrxurwwnban}~ƒƒ|wgddcWP[nv|ˆ…uzzjOB# $:+9q’”{pmŽhjpognt|{~|qpop}~|uhgedcbdgpqYPbkq|uM*   ."+c{{vw„‘{ppruzƒ}{|zzˆŒ…~mhbbUQ\dqi[]kz|‚„\+ € 0*3bnbmw|upnepv}v}„}{|z|‚ˆibeghW5PSZ]\[]jq‚ŽqN)  %cznnqnŒ…{wtw||poqwƒ„uhovkhbhbWNBQeca^nvz…}Z2 "$ %;`eUbx}‡‡utqx„Ž…ztuvzxpghrxqkMBHHNT\eihk|‰œˆkL:.   0@k˜tUbpuW^iutop|Šˆƒ‚xnehgt|…{`QZULFWghpq‚–„d<  Ъ$;kˆugcc}Yacgoou}‡…~~}vqpqzui`mqnd[‚•}uz‹—ЎЄ{<&  #8&1T{qdaj‚he`bgqpvzvuwxx}}zrinmpkiga`W+[wqikr|‡Œa*   !>@ETYmqnmikihemupimqzxuu€CqkbmkeVNT]]WQav|„„‰rJ% #dzБ•ndaehmppqqomp|}mpngjjd`^cmj]WjzxzkgdrœƒC1G-#  #YgPN``‡{h`jomkx|{w}}qdaeijnw|tgbdc[UZbeccjtza@- " !L]JTkm|umiu}}„ƒwqpnon`YZV]mvpjebYGOZ[cdm|‘Ќ–jA:*$AOOVku…zmo{~xƒ}{rxxqhjhgiqpkiicZ[]ddZ\bЕ‘`?)  .)&;0;PpˆŽˆ‚xwpurqx‚{v…˜Œƒ„Ёzwnid]SZ\LSOW`^b``tx‰N$ )IM;"Ar|~}mx|wu{‚ƒxrqЂ—Œ‰~pkwzuiY\aadLP[TN>9YbkŒŽS<(2jwmogzwzneku{}cZv‘‹‚|tnvvrpkpu…`92BVUV[iwz–ƒCA? €=)%2Hƒvckonˆ~zƒtbuƒm]htqp{xghophgtwcJIIHabadqhu’„NFG  jАЁujn^Љzoeq{tppngjhhnrr|utqgG2TbW`^VTT^`e‰ƒE&!+* %&,FkqqwzuƒvpoghkgiwvnknuojdajtxxndYb^PQY[\[`em…kAFBAC-!$&9,0P~™Љ~`k‰—gcjiVPn‚‹mqxwodioutja\[UJW\V^jmbj\E,*4+,( %&5.@u‰Ё…\a‡}cjVOVFTnrwxumnx|{qqvƒˆtkUW^YUCGSnkmo^?":?BG  $34P‚|ЂВ›~„‡zvjhrg^rwxnoumqggc`ikrZFN[WWZ^peaƒm4.NM$Ц "%%2o’—•Šqzˆ…mY\h\^gejhhnjgjiukhacehaVLY`jm]UŽ„B С .$B\bi~Œ›p|}{}mdhiea`dquwtrnhhggVbr{zrjeW\^deddL"1<2% У(!,$Lb…|‚‹…‰…ttxtohc]q{ttuumjnjgjrrd`gjIEP^Zk‚c3IE" €<  [odnВž‹zwmxun^WTZetux~ˆ…q^jgc\YLMSZI>Lcho‰k8!(  %`pnp‰ƒŽŒtrnchmqd]^aeotqr|‚uxhZ`mkcWQaC2FGU`hc74    3Š„ejpuqrceh`egkqvvnwwxztmk^dqqdom?HL\cae>3. riao{’–„‹xd`anbWbntvrn{‹…Y`mhxgSo—\%BTgqƒr@   !bha…ˆŠ|z‚‰wo`becbnw‚wqhqwrkgejc][]dU@YZ^\C2 эh}biuˆ„ƒ‚ƒ‰‰r`[[€х`ipw{pmnpqiegkemoVP[QUZSTPbQ" *& 2(#r`\ƒ}‡|Š•›”˜‰Y>T^``och[dijhadgUikm]Ld`UUH>QvzV)#"! 4"~jgx}Ž…‘ŽЇ‘mLIbhjjShwokvoeeggqn[SWgi]59&F]dG#0 \|imwm”‡uƒ‘žˆqt^djnooj]hinjgqvmg`U^gSYVUP\zW0 ўТLxmir}”˜ˆ•ДŒNheotjeYihuid`NYehgVFQjdTLQQSdW+"" ї B^imco€ижбТзьухкМЏКЗМОЧЫЯЭЩЕЕАЎЊЌБЗБЛЦЧЩШШСМЌo;5@EJC@b•ЛЛИКМОЪЦСЭЭЫМЛИЛЛБЖЗЛМОТЧЦТМЗЕЕДЗЛКИСЧЫЭлтФ…QB9%.,47458AAGNLEe”ЖЏВЛНОЫШШЩЫЪЩЩЭЧМЕВЕИОТФЧСКДБЏЏА€ДВБНУЦдрТ„TNOC735:578;?@GLNNa˜ВЂБИОНЦУФЧЩЧЦФЫЫЩТСМНУУЪЫЦФЛЎЈЇЅЃЇЈЈЊЎЅМйбЁ[@NH+.-:9>;:>@>B@?C@BJHO[ex›ЃЈДИЧУТССНКК€ДЗМРМЛМТШЩСЛЖЎЊЌЊЊЌЋЏБУТНЖЉЖЃhI58834;<;9:?:C1>Wd|ЇЖТДЊЄФЛКОТОРОЛЛММЗВБКСЩЩФМВВЏЋЂŸЅЎЖМТРЛКЛОЁiUOA9498;??:?@@EL[ObЊггМИВаЋЖИНЛКРТТОМКЖЗНУЧФНЖЌЏАЏЉЄЅЋЌŸ•ЂВКНЩЅnC;<:488:7;5189:BJIZМЖЕИМЯКИЖЗНТЧЩЧЧТОНМРЧЫЦКЕЎЎЊЅЂЃЊЉЊЅЃЋЕЗЛУ‹P53;95420454372*@LN\›ЎЄЎАКНИЖЖЛЛУФУОЛЛНОСРР€žЧЌАЌАЉžŸ–ЃЅЅЃЃЈАЗЩЯЉmB99234:34922.04<@479:@:??ю9541?SY„УЏ–ЈЏВЊАКММцСШШЫЪФФРИЏЊЉБИНЯРЄЂЂЃžŸЄЋДДЖЦедЖ‚O018141579;220"9F]ЦЕЋЉЄЗЎЌБЗЛМОСФЦСРФССННЗИМОМЗЇЏАЌЅŸТкИЖКТЧрЯP<@0,,Ї14017955:;CGEn’–ŸЊЏСЗВВКНЛРУСОЗИИНУИЏЏЌЎВЖЗЕЎЊЉЅЁЅЋЅЁЁ™ИпБtNF?&32;@@95?8CJAMTw—ЂЃЉЋЛЗЛМСУЦЦФЧСЗЕМТТУСМЖВБЎЏЉЅЂЃЇЈЋЈЄЄДКЩкŸW,:?718;@;7;7CE;<;:><;:?EB;.@W’ЈЁЋВВКБЏЎЏКРФУУШЦОКЕЕЖВДД€АЋЄŸЈœŽЂЋЇЃœ”ЈбяЗc<:531-*2:?BBA??B;C|ЃЁЋЏЏУЛЕАЎБИНТТЦУОЗЕДЕВЖЕЗДЎЈЖЊƒ\g‡žЇЅЃ™ЈЪмЎoOJE<:3.49@FEB<@:IWŽАДЉЈЅЯжЩУЦНУУСТФСОИЖЖЕЖЗАЏЊЈЃ—›…xŠŠ•žЉЌЄ‡АЫ›]<:N>?8328C[ЄКВЏЌЈЦЧЦТНММКУЭдгЯШСМЛЏНБЌЅЉЊЇž™’˜™ŸЇЂžЃЊЎБ›e34954342>;>59;E:EmДСБЏЌЇСМННИДЗИРЧЫЪЧЕЖББДБАЋЇЁŸЄЅЅНТЇ›ЄЄЈЎАЊЋ•W.:758:?@?98549<<1>РИЌЊЈЛЖДДЕЕНТЦШЧЧЦТТСЦЈ‘ЁŸЁЇЈЌЊЋДЕАЇžЃЃЅЇЅТЇ\54<;:?>@::9248:@>\МкБЊЈЈЛЖЕАЉЋББОРУСУЦЫШЩЊЄЁЈЊЇЉЊЈЁžЇЃ›ЂЇЈЋЊ››…aH:;5544€<>897:;M5SЕеТЈЁ™РМНМДВЖКСТТССУЪЪФВажЭВЏЊЉЃ–|g}ŸЉЂЂЃВŽS.%+)+.,0,(278G(488<<;8;9>9?\ДЏ—™ЁЊММИБЋЋЎДЖИЗЏБЎЌЏЏЉЎЏДЗЗКйДЏЂœ——œЂЈЎДШЂ[OO]F590107?IPI]‘БВЈЇЏУЩеЫЖАЎАЌЌВИЛВВАЏЈЁЂЉЏЕАЎЉЋЎЌЂŸžЁЅЅЉЊЛdJQLHNF@?:;:;@EPJFkЏгнЗ•ЋУЧгЪЋЄЉЂЂœЎИНИЖЗЗДЊЈЊБЖДЎЈЁŸЁЃžžЁЊЋЂЅˆS8LFHEP<974<:-13.07;FEJC@TЈСФРСЧАИРОМАЈЈЋЌЅЁЊЏЏЎЋАЕББЎАЌЎЊЋЉЈЂЂЁЈЊАЎžЯБ]+-+!3:0),0NGC&Bg˜ЃЖЧбЎЕОРЛБЈЇЏАЎЈЋБЕББВБЎЅЈЂЂ€ЕЋДВЏЋЄŸЁЈЎАЊ}<4F;74439.(8GC<4EEN]‚ЄМЕЛОФУМДЏВДЏЌЈЊЎЕЕВДЖВЋЇЇЄЋАБЉЅЇЗ‹’”žЋДЧ™TPT).30#5;?B?57‚ЃЄЌгнЪТРЛАЏБИДЉЄžžЇЌАДКСОДžЊЊЋЌЇЃŸž›™–™ЅЊЩЂQ:<5"#)&*!)48;?B;9˜ИЎАНСОИИВЌЉЋВБАЉЂЇЌЌЖОСНМБЏЊЇЋВЏЈЇЈ‘–Ž…ЁЄЋ™`C98))2+-+)-)77;<[ТТЅЋБВФСЛБЏЋЅЅЌЎЋЄЉАЖИЗЛОРРВДЇЇЉАЌЌЉЌ‹vЄЃЂ˜[FC9--1+0.2((2<<0)FЄЅžЋДЗЦЦЧФКБЋЉЌЌЉЈЌБЕЕ€ўЗСУИœЊЇЋЉЌАЌжЈv”ЂЈЖУЎ`11,)*%(,*234591$EЈ™БЖОРРЛМРИЎЌЌЋЇЈЏЗИМЛЖДЖИВЋЇЊЋЏЉЂžЌž—ЂЄЁŒt;%7,0.1(),4902.*;žКЂЄЈЕЦКРУФЧЖЄЇЇЅЇЅЉБДЕАЎЏВБЋЇЇЋЎЈЂ™–™˜ž›™Ђ’T92<532$)*GS9178EBIŸœЃМЖМСУЩЪЭгҘ}œžЄЋЇАЋЎЎВБАБЋЅЊЄЊЅЁЃЈЃ›••—КМ{48815<@ŽЖ›ЁЅЈЦНОРТЫмРЋДЋЈЉЉЎААЌЎЊЉЌЋЏЏЎЃœŸЂЃ˜˜•–˜ИСˆI,,.*(&$&&)1((*8G‚АЌЄЉЅбЩЦЛНМлОœЋБВБЉŸЅЇБЏЋЈЈЋЈЊЌЊЁ˜›ЃЈЁ™˜•—ŸН„EB$,24,-@10.23?<8kЄЏЋАЎ€DМЌ•ДЫУРД‚‰ˆ~‡Œ˜žЂ’„}vtvwwˆ‰‚‚[,.>?,-7757.ABE@;)5$)*%##&9++9ALB@Oqƒ‡‹‰ŒЅЇЂЃЅЄЁЈЇ‚}„‰ŽŽ•˜zu{||x|vx~‰››ŸЉ‘jPMOG@$*720$27BLGJGS‡pƒ‰Š”––•ž™—Ž”œ–”‹Œ…–œ–ŒŠƒmgnnqpntpuq”ЅœnA9F?(10$74"3<:HGUNawoz}}…œ˜’’‹‹‰‡{„‹Œ…‰‘™™‘‡~}{uuv{{|ƒ—œž‡n‡ˆb<3783$.45$,82:-9V[i~‹‘…x|Š…ŽˆŠ‹Š‰ˆ…ˆ{}zƒ˜—‘Œ„z|tnjirƒˆ’œŽˆˆ{hYE3(++3)+0))?7(.,45+-2,.<95GAVOTep{zx{}|~|‡ˆ~ƒ‡‰‡‚ˆƒ}wz}{eddondeoƒ‰ˆŒ‹•œZ9557,+(&.38419GI5Aq‡„”ОЂ}zzu‡ˆˆ‚ƒ„ŽŽŒƒ|wurqnir„|vt‘Œ…z|}‡ЉWGV@;3-)50.8-):G(7ht\aoj”Œ}}|~~€М‹˜Ž‡{~}x||„މz{uutrox{~x}~jQ<0093)*$17<10;::28\paiqt‘ˆ{…ˆ’Ž–˜‡…ƒ}‚vvmkt~‚ƒzzxtpeovqr{‡™ЛЂxYNF9*)2>..0:937@;?Nd]cv|•Ž~‚…ŽŠ••‰ƒ‡‹…’vwvux~{zuukertrejm™ЧЋ{SP<"*%3<-.29@JB@IT\knmnwމŒ’‘”’›—”‰ŠˆŒ‘ЈЁŒ‚~uwrqmomotu|pw‡„œКQ,9>3+7>>74,@GJE1Bp–ЉŒr{„…‚ŠŒЂЄЃЃ”ŒˆŽˆ”Š‡zxunmihcbjopqgcGZ’С›^FE48:?4:4.7?FEC1@Svzgu~ƒŒ}{x~…Ž•˜ž–‘Š‚„‚~{|}xoiiteZZkvvnndrЇрБaA8*:-4)(3@?AF@?:9@h{tw‚”އ‚wƒ‰Ž‰Ž–”ˆˆ}~}…~}|rtzM)3Pejnukx›СЉtNTC?70!3+9AIB944@Jh„}pqЃЌŸ‘–ސ™––”•ŽŒ||zzuxthi`eM?QOWixvnTxЇb?@B@?:0(13Q>)1FPMezuvvpАДЃ•Ž‹‹’—™™ŠŸž}v}}|Œ‡pYSu…u„~rkn}ЇŒ\@033<7%0*53$ :8E^vwxЂЂ˜‘‰‹‰’˜ЇЊЃ–™œЄЂ—‰|qv}‰‹xh`\gtmhgkwЋ›eF9J;25*2)9-!"*ACYŒ”‚{zwЄЇ”‰Œ„„ŠЂЏЌž›‰~„{w|v{wpe]g`otkht|{‘h99@8-.)117-8,4><B>?77858;3%-C5QЅЗtu|‡||uq}…Š”’˜–œ›•wtwt~ur{vjepjjrpz}pgi\C9?C<++47B@7018@-GˆЇ”qmg•Ž‰ƒƒ‰•Œ•™˜•žЂЁ‘ЄДЁ‡x~uh``ZS2Ikuuwo…}Z;!8!#)#&)1+L3,,-3)%!!%CAN|‰‚|~|‹‹…ƒ~xŒŠviƒЁЂŽƒƒ€Ьx„‡–mPPUchcpw‚‡Ј‘USY5"+507GLF\‰„npz’ŽˆŒx‰•Žqv‹„…Љxƒ~}w‡‰n[QUSiuur‚tЂ’e^g:+0!3;$)2.(3ФБ‚{rp–•‘„{r‚ƒ~x{}„‚Œƒ‚vQFdjmpqkhopqt”•^7>?AC7V~‹…‡‘‹ƒ‚zw|{x‰…~}ƒˆ‡z|u|‰‡tqurkmjjoo€zv˜WGbcB1(047)&3>458Lއij{{–‘‹wx‚‚Š‚‡x{xzzuz}‚‡…ƒxrb[Y]jtt{–aZ\h[2))(8:I8>%FGmЇŒorx„’…|~ƒˆŽ˜œ‡|rvztw~ƒ‡„‚ƒzvmcekmtw{{rJ4FJ&+:+,")%.,3@SMTd‡„zrƒžЄЇœƒzxr{„Œ‹ƒu‚~obux{}trw|~ugkprvur‚kP^YTTL0104:4@FJJHcŠЊБcužŸЄЂwowuhe~›Ё‹wwƒpwuw}}oiihbejgv{wkzn\EPNOJG0.!!38;95H>P„ЁИœqv—Œ{{h\min{{‰ˆ‚w‡‹‰…ƒ‚А„nenkbV]c{}zvhS9TSPUC-$2!491;N>^’ЗЧЃ’‘–Œ‚}‚xp„ˆ„‡vqt|kdkmiidu{u˜~M@gkM2*.#39BGC&J—ЂЁ—Ѓ‰’˜–gq{wmxv{v|‚~zz|ƒzxw{prpiakr}t`œ‘V-9*+!!,+"-JE@*<[vqpŸЕ„Œ‹”‘…zw}}put„…‰…ƒzzqqhrƒ‰ˆ{xrhhvzvvoU5@œ’tt…‹Ÿ—ЁЁ“ТЇ}Z`nvvujz„zzƒ|vvzx{xnejpvdI[WSktY+.;:MTPNPPNVt‡„a]^db`ZWZYWTTYW\PBUmti]^\\`juv{vcQNJSjoauz|{rnkZV^YWU\UMUUQ:`ˆ’tkkea]^TTUQQYemiTPOqqmO%MZkdjijxvztFN[quxw|vkhjeYMCPOJLQUUSNVotjnmeceh`WTJ;EL`^caZCwˆЂ~j]mqd]]drwu[:Sp|nxw{‚d]dee[UTN>FMI;M[\aeehhbaii^ZPQJJUYUSOTVbh]^`kvnhcdemr`PY\k{‚{ƒŒ‘oPO\ieWW`^WNMOY^bc`]b^]^cddП[F8*>O`^OGJQY\dhkhnnroecbWSMp}ƒqw|xbVccjh^Wah^PJHGSW`aYTNOQ`ebZWW€NOO]\NHEILW^\PYev}te]`\WG[xŠ~w|va]YaeaPMV[YTMOJIIGFPUZ`con`VWTJHGBOZ[TLNPU``\agpw{iNBGTW`p{gVr‚}dhimh]PVamz~wpP?>[ULOOPUNFAS[b]Wx{‘—’”‰pae``TF@FLI<15Ywrebcgn‡xqib^bd^dopnƒt^E FLNLSMCISVZ`mdYpqnzvp›…mpeWVU[UUJBOd``VSPVchmtqnhjnigdZUhuihZBYPIQ[ei]VUa\YOHco}}xk`dngaa[QPSYWE3-;^p`\Y\`iqokgcig`SOT]dmtdWULV[Z`aQQYYTOJp‰–‹ž…]U‚‰{cZZMBLNSNH5Or}okdhhjpiehhjqvng`agt{ƒ[2FGEQdb^aZHIMQSYgiv—ЇŠ[^”’Ѓ{[q‚tLNLMTO[vjiikowvnd^gpomvru„~hnto\LSN5JY]SgrhSTkrkci`n‚iTIZ}vnormLOSSUM$Ypo}ˆŽˆmhd]`cemmq…|{rePHJGN^^AWƒ„]TWbeheq}„’Šimvuw‚…ŒmONF7;?O[gbr‚xqbb\WVWY[kpwc`jgVI4GC;(AE44&4M]`de\d|ƒ„|xpgb]wtuq}|Y!?Qjo[q~~pjkm^YQSSTaommigTGHLSMB30BSVOBHSTSimp…‰Ž~i\VTZ\\j~ŠW1A>EVkxootwrmmia]huqhoxnnhedOIQPLC)@MjjaP:CMV]L\iv…ЇzhVIU[Z]eteTB:ATbmqkmkjpniagrqed\bdU?WjYA9MG,$PWUUVTZikcabhpxhbW[aTiwrjv˜ЎM@G<20E`c`MMG"”‰Š’’upjitx{odd<7OPQcbQSLHckh`agjnopYHT\\^qxni…—‚cLUWYLZ^[\W\]\…‰…Œ…‚ƒ’‡ƒ„k]IMMF0?HNUQAGLdejdcjhhdgciiYWdr~wiLBITbZN4CUY[acc€Ў[ur}‡…‰{}‡–^Vvˆ‰`GQSAFGUieeceheheebppqiiha`mn\QOQOPSB%AL\dk`Qdt|…ŠŠˆ…}|xpre`[ZVV`^cbZOWuudgomj`egopqr]Y^a\VYPGAOSM9@Sng^^]Orqu{ˆˆŠŒŽŽ…‡ke^]J;4M\`V]dr{~m[diieaZVWb`OWcc€gjZPNCFBFQTgJ*2IdTYoz‚…zƒ‡‹ˆƒpcbjiO9;LeiVOUaj^aogmndbcYbggqm^ZY]egmeL4LH5MQNIB;EQpddmi\]…”’Ž”|qd^]> )<‘etpdwhdx‚‡˜”„q`^UQitd][LIz‡}}wmgbkr‡cIVcqqmmpvke^WivzS`}~P *ƒ‚ƒ|Šo^Ez}nw‚Ž’ƒ~uj‹vehh^OVdgŒ•„qtocW^d\[U^g‚ˆ}hinu~rwŒ|]12|…‰…’N5`‰‚„‡}beereSWPN@Az‹|wup„„zp{ogea`\mj„‘wtxkarucjS<3"$…}ƒ•™r|™Œ{pz‡Šqmeimb`dgYPPchggdnt}xxЂ•bHOQQ<:[dnggng‚wkL3 ’‹ƒ|Š…qgt{v{‚geLZY[]dx],!.V^`kqnttrqw}g-L\aecb]mvmju‡ˆeE3F#•ug|›Ž|minprwƒЃЇŽJ^dSQLQ@Hz|c`[]ijv{vƒuPTahg`^^d`nokhG%9>  …taitmiumjw~{…dVBFUWYTY`c`\`kmpoc`gnw}vw`^SZ]\V[LY[`d*Cށ{uqx™—…}trw„‰jL;W]bZLPTT+7?РОЛКРСЖАЋЌАЎБКИЌЇ…Ÿ›ЃНЇxb~ŸŸЃ€ŸЅЌВБЎБВЇt‘œ›™—•œЃЇВРЛ‹jJTA22ЮЏЄЏгДЈЃЄЌВБЕМжеС‹˜˜™Ž`[ˆИЗЂžЃЊЌЏЏЎА™˜››™——’—ЈЉЂ—bA[`H4+98ЛЋЈЋББЇžЇВЗИОСЈ‘‡Ѓœ’•˜Њœ—ЈЌЈЉЅЂЁЅЎААЏВЃ”’’—˜–‘’~IA2&;V,.20ДЎЎЏВбШРНЕЖЖИУКЅ‰~ЅЁ˜—•–•™™žЂЊЎЋЋДВЗБЌЎЄ…‘’œžЊ˜Џ—dQE+:;3™ŽŽ™‘u„‰Š{qS]hkgq‡mB8Eejg{x„Œ‰‰Œ|Gbmrwvmcrzr‡’˜nYETB)4Ё{xŠЌ˜‚|v{ˆ‹Œ”ДЎžYnrg^[bS-,]‰‰nocnr}ƒ„‚`\gjmimokhvx}Z?TM;..42›zpˆ‡}vr}Š‘•wePLevncakrhgrww~|njqƒŠ‚‡ub\ecc]]^iemnA0$3W,%**ˆƒƒЋЄ›‚ˆ‡Ё•z`N]rqia]\bggmvv{z|‡‡‹|‹VVagx{q‚nJB9.289EG@.!{ˆŽ˜™Ѓœ”|z‰—КИЇ”q{xoeaY[guicu~~}wwˆˆwwƒY\mt…r>!,33(&#)p’—•–•—–‰‡•ЁЌЎЋŒxtwt‹zhmopedht…‰‡{ƒŠ‰ibg‡žŽw% $"$$.5..5‰ƒ‹™™˜›Ÿ›’™ЁЈЃˆag`‰„xo{|uЌ——ˆ…ˆ„‹ŒˆЁƒeMU`E$&&,591,!"џ€ІwoaWdtrngchvƒW4<)$$&7?-"%-234@G8Ic‚’„…vztrtzuqw{tt|nT^tthow…Š„njjg]ahrqpmn…^79?0)#49(%7.,0@>3+AYqbotz{wuxtugmotpojiioqoopt{}}zokcdbijdZ\W]‰x?*2933(*%0399A@3A`|•xnnЭx…~vjjz‚qmnu‚xttqv}}vjnruuwobvq\b`1$(,$.-,55€R)Cv–xj[‡–—…~tz„Š‚uorƒ…zxvjdr~}vomvz„„‚}{qxx[ *.)--1"0-*+%+H\tukn••‹~ˆ‘}|wxz~„}~vmuƒ…mjmnu|{naWbmbE")31"#%&$0)750!%@kocc`[r„…{uruz}~wwqpqtpehqw‚tagbeo}}~\QO]a@177.)"(54]J;$1AhŸ…|xqzunpxttxwuzqktpxwxrd^gvqug[bpmbU\cL?SNB434&-2+!!7EeЄ—~|qgemv‚„vmorv~}wr{„ƒ‚„žuvxiig\\deiM)LI!+*%$&.50*G`|‚ƒwogcjotkhekqw~…{wvƒ„toadjhjiaVbheMLeW735.3%$#45,%"8P`ou‡’‰z{}‚}rp{ƒ„‚}voiigihdix{mdaWVVSTU`O,-.#&#&5>@BG@Hr„eVdƒ‡vhtutmu}Љ‚‡‹…|ukjhjw‚{rvtmhZT`r{vwiW2 ! !%ETFHE)CZtruˆŒ…~tvtpruvwuu{xpx…|xvwj[euzzvuvz|zwzz|]!%+"%%08811Zurrpˆ‹™‘{wtr}|xpjot}|‚vbmnaxzƒ||{wzzqb~w8""0&)!$7;AC;OhjdtˆŠŠŒkdk‹‡‰jit„‚…‹‹‡wvawvx~|i`e~…ziYS?,))1#5>:(9`dhnmzƒŠ|qkvŽ‘‹|upz{z~}…އ|t^nw~‚pc``m„wcemO*7) (3<1;<@Vwvz}{ƒƒ|{ƒ…Š|eYiopr{Љƒ„}watv„|\b^agdkd`rZ#0:4&.;@737)Oƒ’Ž}zz}}‰™’‹nQZkhdk}‚xqx||[aa„‘e\TQVZV^n}^(%87*!!%&:E;,Ir|x{Œ}rkr–Ž‰rottnqtomvz|\`akoqcrhb`b`UZkZ0"!*!*3-*("3;3*:n}v}}xpd˜ž›•›„tvvtrqojdcrxo‰‹x{ƒr\]]BJnt:*%&",&$)++-9v‹|{vx‰’›ˆu{zttv}~wc]Tq‹…„ƒwieu|rkoWMON,#+0>92$%.:1,+*?^{‰‰ˆ|rt‰’gZw…~t~Œ‚xpomvagjoxwx}„ŽŽ’~w~xnL"("$%(!",)9p‘‘‰vx‚}|iYc…ƒ„|nnq{~{tuz\cbkqv~|vu}|}…z[-"&)$,%)+$dЇЧАz}‚Šˆtehd‡œ|puvu‚‰|voU[]Tguz{unnpvnhquC$%#-7(05+)%#Sp}tkYA`”ž}rnhjuw{‚‚{{‡…ƒ{3Nvb^gvvuojdhhmiuh7)31%#$,478,4Lnvv\}ЕЎzioiimv}~~|~~…œЏ™T]g}z{wx{‚rdcc`…o#"BOc‚…‹ИЮЇ‡‚xv}……voqzoUo‰Œ…d]]‡{xz||{|wohpZ1 ")41,$-G@Jq{x~~uv›’nVdbimmwqtpgiu‚…jhhzt‚ŒŒtqpuu}dF!*3;>?8,01ƒ–{qx‹•—‰ƒ‡ƒ~ueo~rmpv|zja]^qoˆ‡Š|wtkru‡‹YF$,793!2 Pƒogx‡‡Œ‹q|ucbcx‚wonjnrvZM?h‹‘wwzqihiqx‰kL "*&*.okmq{ˆ‰{onqptnhe~|xvupnuvn`U]}}|zw|wc[ep|‚qE "!"ZrZZgnoƒˆ‚~ov~|woz{z‚~nktUZ?bˆ„tnt‚~pdjpmci\! &! <3a”`dmŠ™–„reqvgdi‚Œ…ƒƒ}Y`^eƒ|{z|zqmjggop‹‘h: &%,5("5)?m~jehq}‚~pmx}ngemz‰ˆŠ‰‡~GMZ[emxzr`YV`dhkjx‚`,!(228 +?<0511&%,(3Y~‡ˆ|tnornYU[Yew„–Љ‘Љnc]QJPMM€VdouztpnmicivU-,(2(%%*%>[”Ї„uvxuj[WZh}qmˆž–ŠqQ]][WVQM1[”|umqxxrjkxQ $4NJH2&!#0@ƒЂzoUQmzqtcMr•tMwЉЛЂ‚~jq`Z][ZPUŠ—‚{vmiqjmv`@4#0-0&9JPiŽ~uZ]xЁЏЄ„cL|Е|)TŒžВ–anhZOOIL:Zgnornuzp{•pM%!&&"4"#%17Ggn`YJHbmgu{n‰Ÿ{TgƒuN( `ec^]VLGHn‹zxvu~…‡~YJ; ("-#  )2,%,CV-(GYC1&N\SL^]^^Pjrx}zrm‘”ƒŒm)   1&"&"5*LQ%"(VVIISa`^YkwrqwŒ‹vaZ[m\+У   ;22&!#,0"("*!bcW;E\[JLnvmoh[^`OA0ћ  +F$)&*  FYOHLUH>CLWTFdxtpAJV5-"* &$7Yr\JPQO9Zb[L!$7"  Э     a‰p\VTPLJ@-)#202-ћЮ  SpvoY94G0@<$, ўўж    4P\<*) 00.)њ х      А       * #  +"§  г%! "I" ш !&#ь  #ц     ѕ   ј#є ю &  ъ  ї ы%$!  ќ ђ(у  ;  *%++ы  -#э   *2%њё .-*  щ2& E2SL>ъ  0$84*!с #%AW:$ PI4 %0ЯНЛВЌЌВКДДЏЌЖИrCBHB?EAHOOAGdŽЌЅВИЛЛіКЗКЕДАЗИИЕЕіКЛЗЖКСУМЕДД€МЌАБАЏЊŸЃШQ7MFCC?A>?AE@GNMBWxЊгЪИИЖКОУФСМЗЛНРЛЗБВЛСРМДЏАЕЛТОВБЗЛОМЗЎНЏ–ЅМŒI89,?AA44;C?ABBJMNLAEdŸЕЉЏА™НСУСКИКНРТРНМЗКИИЛМЖААЖСЛЇЋЈЎИИЖРЇ‘ŽЁ—c>@MIL;7447;>BuWO@?`ЅжуЦТМНКЛИЕДИКЗЕЖДЖИЕЖЗРРЗБЃЏШБАЌЇЉЌЋЈЊЅЅŠxpWJGCFAA>918&*470:Ld™ЪлгТМЛДАВЗМОМАЎБЖЛСФТОЛРУТФТйЕМДБАЌЃžЅЉЏŠn‡o<2CBC::85,?@C<77.9MzЄКРОРМЏЌАЖКИБЈЉЏЗНТЧЦРКЛТСМЌЌКЊЋЎЎЏЉЇЉЌЎ’Ћ‰O9FCHEC:59AGI?3<4ASƒЃЎДОТТОИНОРРЛИИЖДКТЧЦУМЖААЏЏЖЊЎЏВБЌЈЈЂрŸЃЎŒ[;C>E;374;ABGLUVN]ŠДЅ”ЄТЧОЎЕЕ•ИНУЦУТРФЪЩЦТЛЗАЏВИСЖЗЕЕДЋЉЄЇЇЉЏОЋŽW41<95139:>:9:539<5AGLJO}ЌЕЎЌЦЩЩйЯКААЗИККАЏАКОСОНИДЉЕВЇККЗЕДЖКМКИЕЎОЪЂT0AA<;94198:NLJIS[АМИИ‘КЛЗИСЩФСЌЎВВИОФЩШТФУФЄЏЊЖНЛ™ЂЇЅЅЈЋЋЊБ‚92LMJA8554,BMOMOLCdБгЩМЛКЛИИЛЦЪЧСЉŠ•ЇЉЎАЖИЖЗМРТЈЊЅЕЛЩЄЄЁЂЂЄЄДН?2HFF@7;;€€:B@GMTVB\—КМНТМЛВБЋЩЭЮклФЏЏБВВБВЏЌБЛТЅЅЂБЖАЈЎАЊЋЋЄЂЃВG2E:??8A@?FGJEP–СМОСЛДЖИЛЩжЯЧРИМОРММЛЗАЌЅ”ИУЛМЛНЗЕЗММБЇЋœ””Ž`:799>FE@?;>?9>9FnžЛИЕ„ŸЭлНЉЉхЅЏЕККЕЖИКОФУСʘ•ЕЈЋВЕККЗДБЎЎзКОž[-.25;?A>><<@BCA;9OnЇТЛБЋсхКЈЎАЋБЛМКЗЗэКУечЩ’ЂЈНИЖЗИОРМДЌЋЋ€ О™V*5:3-5107;9;;>?4Zj~ВЮРРИОнђнЧСЗЖИОКБЎБЌЋ™ЎЧЦШЁЃžЭУСЛЛТЦФНЗЖЏЇВ•[-0<997755<@GGFEB\VgЊЛЗМОЎАеЯЋ–ЌЉЊВЗВЏЈЄАУТНЎЋЎДИУЦЪЦКЕВЖЕЖЖМr<+7?<:42:BCLNMIJJ8HЌЯЖВДЧЧШЧНФКЖЕАЌАИЗЎЃЄЏЖИЛŸЂБЛФЦТИЗВВЗЗЖММ—wO0:4912.7<>ECB?FF;(wЛЅЈЏНТЧСИИЖЕАЊЃЉДКЛЕЎЈЎВЗ››…ЃУШМИЖЕБЎЌЏААТЅ„G%73,00 43:@<::?@BHM77;>JBVœНЋЋЈАРР€мКДЕЖЗЗААЗОСЦТОНЗŒ”ЅЈБИОРЛЅ˜•ЂЅЈЇЉВСŸV.1:?FMLAFV”ерНЛДВЕЖВЎЊЌЌЃЇФИЗВЋ•u}ŸŸЂЄЄЁ™›ŸЃЁЁ€„ЃЇЋЖУ™O9LIHCIFA>;?>9245899>YƒЄЋЌЊЎДЖЖВБЌЉЄЄФФВЛЧЃž’Ї”˜—–˜›žЁЄЉЅЁЅЈЎЋЊЋЦБg9!FLI@(899;?>H{ОкНКЕВЏАЌЈЂŸЇЛЋЃОжЩЪЈ„ЃЄž›ž™„ЁЪбЗАЊЋЏВЎЇЊАE%;8::BUQOF98;ЄЉЉЂЁ˜˜‘БЪЕЕЏАДМНЗŽxJ*+?;3#$>—›–‘™ŸЄœŸЉВДВЕЪЧБ—‹ŽŸS #%%#&""%PAEE<44.;GC>::,5I1199?ЂЃ—’™ž›œЁЉЋЂž•—•vcLQC-."($!%&3V ,%?8--&9>EC;::743(boc\™›–ˆˆ’˜™‰ЄЖЏwz~]B52-(31-# -! *01.+.9;@;899:9:EM>0.™Б—a…‹Œ~…”}d:?@7(4BP855" +)%&$))+*,+4**02%03*%!+"+ЦБ—‘‹‚ureQEB@:?BBFOGE9>*!%%  ,+.2.-)%""2)&$%"$&.›АЕŸˆhN\bNHYT8EI-)"$&+%# #()!&(17.&(2)&(&&%3SC;4()4+.54.)"+&!$+(*.7* !!&.2.30087#)320-&*2909,03-*(072.+2)1,.425@&  ! !*3442187-.18820,288@,(117*,-.4-)$%2055;WE3  (.*!#.-*0727890..+(#%).#+(2-&)-*%.,.2)5:3)    (+0)##1,&%28424,421$$!%%€П-34.20-1.38*-7580.     %!#+,0-&*.0029730.("()$(+4214*-1(2.+345>2,7,3! #43514+),,33+7;;>:$#&("%13411&!*3,1-)807?:;337   8B2+)#&&4;>9:<+,$   )#((1217;)$JFF*&!#)*!(-.)&"%5-,+2>?EC;24    #);+5@5,?WJ(CH>?:FCOSVL@?Nvƒuv{qŠœ—‚„…—›•Ž…Œ‚…ƒƒ|{„‘‚ruxv~ŒŽŒxb^r{S?FPJIA7<7@EELqaV>HMC8.-9AC<>AHLQYZ[P]‡–{ju™œ‡zˆ‚…—›•—œ™˜”’‰~|w{…‘ˆƒƒ‚|{hmo{‚‚…gF1-<>@49>@CFLYmY]Oa„‘„’КВВˆ}‚ƒŽŒˆ‚ЄœŽŠˆ„‚Œ˜woi}z{pwx{ztŒ”ŽqGCG?E?;492:9AJINIUUCQo„ˆ™Ё˜Š‹„ˆ{ƒƒˆ‹…ƒŠ…ƒ‹•‰}‡ƒqv‰‡„„‰‹‹ˆ‡‘’t:%0?IG;>@A:EGPOW\Z^{xp|™›Ÿ›xv{‰•™x|‰”–’•Ё˜‰Žvˆ~ސwr‹”ŠqkaS45AGICB7570314IZTGUqxz~|‰’—ˆƒ‚ƒŸ™˜ƒˆŽŒ‘˜–‘Œn{„‹‰qquŽv{~c85JNJ-8:;B@@UNVLUVj…Š‰ŽŠŒŽ‰Œ•›œŒuiw„ˆ‰Žœ™”œ—‘Žt~~Œ‹nreqqzutwc14LQPCB<>:7IUUPJI?VŒЅŒˆ’’ŒœЃЄ˜–x]i{roz‹‘Š…‹’jpq”ЁЃroo€OijjrŽn>1FTJCM8>?E7ECNY]E`Ž’—ž…}ЄЁЁЕБ–z…ƒ~‚‚}……Žiqm‚~q}xuqqmkdwiC,CBBEFACGFHHALQS>Hz‹Ž‘Ž‹‹‚|zЉЎЇЄЈ‘„‡Ž„…~w}}…{œ•ˆ‹ŽŠ–—‡jngb\‚~P0+C;@GFJHPCHEJGLCMЁŒ’‘ŽŠŽ•”™ЈЅž‹ˆ‡ˆ‡‡ˆ’ŒƒrngŒ–˜••˜Œ~„Œ‚xweY]WG89BGGPVQHAGLLMEMBTj‰ЂЁ™ŽŠ•›ЈЃr^~‰–„}‡™—Ž}v”uz|‚…Œƒ…ŒžЈ‰ŠŽ…vZ8.@;FLLF9<4@9B@J>+CЅЃ–‘ƒ…Œƒ~eu’””Ё~‰‘—‹‰‡Œjux|‡Œ‹‰„ƒ‹Š‡‰Š…iI.8:?@?CB?@?E8;C:>oЗЭРž‰…’•roz›Ї–‘…ƒ„…Œ˜‰‚bkpiv‡‡Šƒ~|„ƒu‚P78@A487+3;>:?>;>FG9Ycv™ŽœЧуР—ˆ‰Š”ƒ|{ˆwe~›moh˜ŽŽ…ŒŽ‹ŠŠ‘rvdA(18:<-07JAMILHL@\PV‚‹…’…ˆЎЊ‚guqwƒ‰‡…~}tt•——{|„œЂ‘}{ˆƒŒrP+*@3@;<:EJQH\VTNC0E•Ї…}ƒ˜ЊА•›‘‹‚u}Ž‚z{‚މƒpnk‚„™œ”‰„ƒ~ƒ™—eO:+,0)495CBQPWHNEM7#\™|r…––ŸžŽ’‚qnuˆ”Œ|ƒ…„e]Vw–ž‹…‡‰‚zx}|ŠЁZ).-.-1:33ACIGC?J@H}Ё‰tx‰––ˆ~…~{~‹ƒƒ}~{‡ƒ~neqŠˆ‰„‚{vnz|P"5:233€еA7<.E>HMNB;A?JCP~Žxw}ˆ––•Ž…‚ŠŽ„‚„’›žž–ŒYdkqx‚ŠŽˆ}iahp{xuŠ‘r<)#3FFPLS3ICC€ІLrЎЕ‡‡ƒ‡~unpwxz—ВЃŸ^hmnjkdWPe™Ѕ‰‚~{‰Šoxe2(;<97EEGHQ?:;@;>Obb~ž‡kmŒБЪʘtU‡Ф‡:cœžДТЇp}nmc``cNjvzz€Иƒ‚ˆŸ}\@.?BE::E@)>AH:?7A79(*!0IEEC5:G<4QeIAa`ZF72@?E^ghdnqoi]z…ŠŽ…„qœЈ””wA%&,4&+*2,0--2+(&24GC05:H4?M2%:erI2A@BagdZanpp€}„‹ž›nai}jC(,"+$$-90&-!*NGIH:10,ANH>::)-@)*8??rvhYUppcb{ƒzqxmvu^P7A< .83"".,88d)#)3:37112;EE?;152$*]uje^g[UP[bh[zŒƒ}[^oP43)"F38$% &0.,$$%3;,1.;9>>8@;>,8F2%c‚k5U]\bMmwh\;3>2"!BQ:5$%A8%%! !&)21.$((,04)855",2*!"#i{gejc`PQ>ACA;?:@ALGC@>+"*&+!#0*!!%1.#*"%!($$!-cz{mN?OZ?7PN:.(),78:$*045&(!(2(95515*(&*+&<9M&  %248771-2912+5,+5*:5@.:)224!$.,4$")"-:4@?LcC0 !"$:131-+32,7?4;4024,,)" $$9!%!1-,-.;.&1& #B?<15.125!28412-.0(%$+1(01$&-00!!.8795.,#    2A70&24:#-2372.,-1.!(+%!(1&)*!9132)95145502!(!*%3:4:0! $ $:SE9,!*93;@>C41   )*.01581,3?9#JJF!)(#",%.+0"0.2+54CB;.2 #  %.33F47A94BdP%2mh\$&&"!+(%++а%+5NHCHA1&*#0 &**&%$F.#;]nL@-3ceI"44Gџ€p‡ЅДЋЄzwr}”‰}„„‘ˆŠŒvundYvЌЈ—–ЉЂ”…~ŒМе‘G5&CJNC7BB@(.)?Чљљn„ЄЇЅ–Šz~…Š…~{|}‚~vt–ƒ}wqemއ…Ђ–…ˆЛюїЉWS[`VSI?8A@BBCIT;@‹ћ§cxŸРСЈˆ”‰„‡…}zvmibmz|}‰ŽЋДЅ|ip‚މ‡‘ЈМТДweB*CFCC:>??>>LWN;u‚‡ЈЊЃžЂŸ›•ŽŽ‹‰–Žˆƒƒ‚}‚|Œ‡Š…~•ˆ‹•ŸœЇЩР”m`iqc\OVI*,%UZAƒx”œЁŸœ”—™‘‰Š‰…ˆ‰ˆ‰ƒŒ’Š„‡’|‚wkwŽ—ЁЋРВvMMP1%+7%+N\?ƒtˆ™ЌЎЄЃЂ—Ž~}„…Œ˜œ—’‹Ž‹…~‹–™\hkgn}ЌЎКБ{YH<#%7&#!+4.1:3i{˜’‰ЎЖЗЉ™…riO„‰‹Š~„|Yd‘Љž`horrtv‚ƒЄЏТМ‹iJ<(& )VTbhj~‰ЅЩИЉŸ››–Œnx|„‘Œ{qw}‚Šz\^„‘”ƒ{x…dTo{ЂААДˆTBM9 $$0Etqho‰ЁФМЏ›žЄБЁ}~„„ˆuw~„}odwŽ”ŠŽžУ‘WZqzЃЈЏ˜…^LZJ)$!&L>5~}t{•ЃЏААЌŸЁЏЄxz„ƒ‚‰Œ‘–‘Љ‚p…‰”œ”‹‘—™‰{x…”ЊЊД›]VB"#&$"0`{zu|„„˜ЇЉЌЗТсУ‰n}ƒ‚ƒ‚ˆŒ–’ŽŒŠ”…ƒ‡•ЂЄ–|…}‘žЃ‹H&F,%(!&(F^~‚„~–ЇЁБМТЫЫǘ‰‡uckw}zzx{•™‘Š‹…‡‘”zkp‹™БŸ„I,,  %G|}ugpcdˆЉЋЊЛШаЧ™opzvptvv|„„ƒˆŒ—Œ…‹Ž–ˆ|}‰›ЅЄ—Q,!.014,!<\‡xwvdv…——ЖЫЫФ›‹ƒ}p’Єˆ|x„…ŒŽ‰z~ƒ‹Ž‰ˆ”Ž„…ЅЋh%,55:&&#$?;!+O}}ztxv˜ЃЖЛЖМНМЄœ’•‰˜~…‹—˜‹‚zrzx{tw’ž—ŠrˆЇ^,>N*%*35&+",)-?]HŽˆxwqt‚„”ЉАКЕЌЂ˜”„…ƒ‡Ž‡|wv‚…„Š…~uzuu~ŽœŽЈŠ4-99"+720(("23+#*0–Š…|zv{‘—ЉгЦРТИИН–Œqw|ˆŠ‚‡ƒzx‚Š|vƒŽƒ‚‘jxWCeg^9+)2&(4+,%0.Pwqnqx{ttx‘НЯЗБВСзИЈŽtz}ƒŠŒ‘Ž}mzŽ˜ˆ{w‰ЈАЊvE,;;$A2($!-0,.2,4LIokr‚}~‡‰—ŸЈЊЎРСТЛЉ—ƒxŽ•œœ~rr‰’‹qr~……r\@ "9822,*#"5457+:91cio{}}„}ˆŽ„›ЏЇЏЮЪУМТКЂ‡‹™–cq‹‘‹ˆzƒ„kakZ7%"".3@B2782320+)3<:>Waekr|~x‹‘›Ž›РЯдЩЩМВ‘ˆŠŠmx|~„‹Ž‰•‚je[UM.9>1(9<54)8JLEB?7>@;x{undhu|~xtt~•ЌИНЃeOov}‰vk\A3(0-$"2.!!&,(29dSMOg…O13[ЅКjMC:F;?oee\Ip…„wq„„ˆЇЂ›˜ЎОУ›ndv‡…Z!#%%%.%(<<7@CBBWЇЮз—M;8L@@„zmhr‹Š‘xqqwn…ЖЈ›‚Ќмѓеœx{{rU% 7-("&" ,H052*5SJYpАНФАjBLTI?‰Žn]bxˆ‘jF`oeoЁ™~•ЕЛŸƒ•vV$  &;-#")3Oht„МД‰N->IGx„uhmv}‰uZSZc}›™ЃЂЇЊЂ’ŠzJ! "71*%&!A‡™z{’•‰•hGQ[EgЉ…{z|xwvjgnŠŸЂv{”hM:@:#27;5<2aŸœxvz‚ЎбЃF>LBi~‰ƒxqrorurbSOOZP<+*)78& #%443,8A9.?>`™˜wuv”ЌВd@Q@q||nr•‚oitS,%$5L[F.(00&) ">;HeV5-"!"-JZŠЄ‹…ˆ~hŽУмШb<.pw~Ž‚xN94?<.24*(1+C0$79%#4#&Pƒ}L$%#$3IJwЈЎЈ‡‘—ŽЎпЭЦŠPHpotQ?4#(52*($%   97!"&1GjŒ‹ˆx{‚Ž•‘ЂИУхмŽ>Z5.#,4)!!&(+&"!!€X*(*1!)"^КЏpr|{{}‰ŒŒ—ЇЊЊзЧ`%@4)! *1*4029545*( -!$&75#"$vКqkt~™™Ÿ™Уелк–&4AI"(! #.,9F@?# -H0#*.)?i|poYajt~q’–Ž–ЉЭжшФ$!( ,1" &9-9!%!*"*1GWu|t‚ug]c’ЗаЕž—Ÿ—Еюш#! !#%"&(7&2,&5E;|‘}tv||pm}žИЏ”ˆ•Мюј$*-& "#)(*%!%.;;$"($,+7Qk‡„zu{{€‹ЂФЇž”„’™˜Щю &2.%+12-,4--,+74+GVrˆ„}rkw|vžКЏАЁ•Œ”ЋЋЂЇМш$%$")&&)8;@-5:&&%!^m‹zk`[q}vx{vhei^he|–wbd’™˜ЄН! %+3;@SVnŒrv—œ‹qjh`jpoqz}ˆЌНxOM^Pjwvrr…ˆ”ЏЉЊ&",%# $FSh|{}w]:L‰›ŒnQaW]Va}|‰›g?Aad^rƒ|xzˆƒ’БЇЊ )%-,,847175Acx…{‰ЃЃ‰‚‹}x}rho`Zh|™˜ŒŠ—œ’tzmit…ƒƒx^c‰ЈЈ  &"AUdgqpg`‚—ДДЄЊŸ‡‡ˆ–‹ˆt^`e}{ƒ‡ƒba„’upvtx{wtqq~•ЄŽG+ 8FOeecbe[@Pm–„nt‚Ё™Ÿ”‰ˆ‹„ˆtnwwrmzkkŠ„‚~up‚‡|xxwwŒ™’Œ)!7%(1+Zrnd[~qjbUWeVazp\mkkŒ{vtmpkitumq`[Oez‡|uotˆvqr~‘ˆ‰,07>*@gpuiUdmxuzmTZ`Z]ikmw}‡„„{qmnkettvzqaUPuŒЃ–‰w…’‡toow‚Ё’@3174h{oŠvmZWcrqmoWh‰{}xr{ˆ‘™‰‰‚kezv~}rƒƒa]m›Б—‰z˜—}nwpqjƒ•GoeekƒŒ]ehnca`iivz™И\aho}|{~‡œРؘ|xt‹Œ|ˆ‡‰zvˆŒ‚{‹˜ŸmhajqqŠБИЮцыхмЪНЖЛЦЩЧТТФЩЯаЪФШЪФКНИЕŸМчЮЯЮадЩУЗРсюŸH8,FJOE99@ACHE34*AЮўћЉНпснеУЕУЦЮЮЭФУУ€РТСТНТРТСОЗЄБШЦФЧЭЯЩЦЦчўўЗZSWdUWNEBBFGGHMZ@G‹§ўЃИнїёпСбЫЫЭЭФННЛЖЏБЖРСТТЫцщшТЛЛРФФЦШЭЭЮзтцЪhE.GMHBABFA>IQPNAOжўЛЯщўћыбзЭЦУЧЧУТЦОБЏВЛЛККТЪЮШСНМСЦЦ€ЬЩгббжжмсЁaJ7A@EMHC;5@INOH4LЄўФЧйцшреаЯЧСТСФУФТКЎЎАЦЯЩЮЫЭУЦОЕКРЧЩЦррлкгЧнЖkQ9EFHQME@8:4@@GHCGaa’ЩЦЎЦтыпмйШŸИРНООКЖВЏЎЊЄМЩТСРЏЎНМССдежлрппЧгз‡TPP€ИC@:47(-.<:7$E@CЫЫУШклпсстТИРРЗАЎЏДЗИДЖЛУТМЪЭбЯСЊ™žРажслзУРФ›ga]aLENH@:8:54--F@8ВЕЛФейкллйбЩЦССœ”œЕОСЛИМРЛОЧЯдеСЕБЎЩЭдезаадщз}TMUSC8AEC@MM%F><ЛЧЪрлмйзздЭЪШУййЫЫкаЦТУЦЦРТЧШЭЧУЧУЧЯЦЩЯЫЮбзясЈqauxb[QZP"$""UUFЧЧОЫгдгежгЮЭЭЩЪЮбаЯЯЮШЫЭЫЩЩЫЪЮбеСФОЗЇЛЮЩЪажмшЧxMSN119:%%,L^BЧЦЕЧЭбйннзгЭЧТРТУЦЪаееаЯЪЧФРУЫднРЁЌЊАБЖИЖТзгрЯ‰^I<2+<-%##727<4ЕОгЭДМйрплкгЭУРКЕ”РЭЩЦШЦШЫН”ŸацйОЄАЗИДЏДРМЯгырЅpO>1*#$ )V[ЋВВУЯнѕтпйзеаЪЏЕЗНУТЛЗЛСЦРДАЄЫзбУЛЗЫСЃЏЛМкгмтЋ]II7*%*@FЏВЌВФзщскебечлИОРЦТНЛМООРЩЛЗЌЛЮгЯЭЮЮшЧ–™ЌКаЯйеЗqY^G00MC:ОНРЛйнпррмнпуеДБРУЦУШЪЭЪЪЧСЖЦЭбЯЭЩШЫбаСЕЖЩаЮмруЎ`Y>#"%&>\ТЦУУЭЪгкмтчщўяРЎИОРСУШЪбгеЭЪЭЭЮЪЭЩЧЪЮЯЯйМНРЛЫлжБQ"#.A-&!-(FYФЦТНРКЩкйсуцшюхЭЩЧЖДАЕЖОССОСУЩЫЭЩУСЧЪЫЮаДД€-ОЪшеЋQ(!%$!+OРМЛЗБЃЄТмснцщїђЩЎДИДВИММКЛМЛРФЧФШФЦЮаЫЪЧСЕЖУгеЪЏe:,.01-1,"&CaШФФСМДЄЖОЩЪсхшюбЩаТЗЕШмФРНЛОФЧЦСРНУЩЩТФЧЧФМТле…4&$&775210**EC4OУУРМИКНгзуцсутчлкжЮЩЧЪЭЧФНРУЪЫЩРНРООЛИМРФШУЃЗТg4IT7+.1(-&(#*29]LдЦРКЕИМНОЫжсстрмйЭМФРНСФФМЗОФШЦРЦФУНЛДЖКНЩдОЯЁ<@CIJLIM\J;eНлwVE?B@3ЌЅЁЄŠВОНЖЗЛНИРсзегдсцЪЂЂЖКМНG):E?;;89749?AEBGQUQNVYSmЩїњЇZBAJJ<ЗВЈЂЌЩТШЉЅЈАЇИрЯЫЗгёўјЭБЖБЃr5#<@@9:;:4.*%*MbNMHG?8OvБТкђтЅ]9EOHЗТДАЋЎЖУЎ–ЁЂЄЛаЦдЮаЧОИЊЄ‘^C("--5-(.48879AJQJJBWL…бзИЖКЦпѕОSEJAЉУККДЏЋЌБИБœmhupM@<8A@?2*$*3:9;:;C+0MI5EG^ТтаЦаЪЖЇЫёњдg>-ЃЏЕЦКЂx]ITTVVUFBJBPAFBB>8139<>:78;b—ŽT7EA:B?Qcb—йхпЦЧШЫШРнўћюЁZHДЎЁЁ’n\L>G?8HG?989<:8:99;4872*3CJG;1;>?CLZКФССъЦЫЭЮЪзрэўї•BwSUFCV<))<<?€Й@>973?:548A@@:2*$("ET@?AEB99zнхМЛЗОУЦЩЯгейппѕаg7FYB9IF<88>:4>7:?BB?BIHIG>5379?PF>?ACHHB>9:1),384::>B;?JSQ[>73-9P]MLGABEH8JI\žУЖŘЌВКОИаегдльяўЦA1;>3055€О144%()4408A@:;OFNF98.2&:@FA9@8@H`|ЋОМЦИЌЋЉУкэўмжЮбЩхўђ<98-..31+195!%+1583??4877::>EF:3HU@><94OMN’ФЦОННИЖБЕЦйрйЮЕЩТЪпўў:75..4::>A9<<:;;>ACOPOIC873GHFe•ЦЧИЛКЛРбдньнйЪЩЭржашў12-(4@@€Л>?<;403378;CLGBEFG@BLHGH@<)3S]t˜РУСЛИЗМЦещхрпЯЫЭдзкгчў*+10371159>FIC?>><;?GENHMNQNEBBAHCBA.CTŒЛСОЩФТНИЛЉОаЩЩЦУЕЫынллжь*282253248:>;>799@B?F0&>:553;99>C:;8>BHNG@@EnT>MTYr~ŠœФычЧОММЗЕАВДмэЯЫЯЦбјтййЫм2<8723.8;?29:??B?A;9>;EFJHFA0BYeŠ—ЅВНЏЂДЪНЦУОЛЖЌЌ–ЂМЫЩЦКРмєэзейя-24950348723559>9>B>B#>GL[C2E`‹ЊИРОСЇЁ–ВНИЛНКЖЈЊЏЊЌЊМаОЉŸЗЮгзалш4272234858740757;EEN<5IUbntœОЏДЯнЪЏЅЈАЖЛКЛЦущБ—ЈЃАЖМЖЗСЫШзцск&,0;<<€љA@@B>527791?:B]|˜ЂЋНОЅwŠЧнЪЈ„›ŸЂ›ЃРТРЧЫдЅ|zЈЎЕИОРООЭЦЩмдб*3848>Pq…‘ЄЊЋЇТйцщдтйЧССЫЮааШКžЉЊЗЛНСЦЈŸРаОМЖВМОМЛККНЧзмЧ538144><)CZHJMPŒЌЇЂЁКАЎЈЂŸЌЁЈСЕЁАЊЎУЧЦТНЗИЕДДБЕЕЋЌЇ—ЇКСЧРМТЪЪЦМКОУЧЯЮJ:LOV]OkЄАЌЉ˜ЄЌБИДЌЈЇЊЊЌЏБЕКИОУСРКЗЕБВДБЗЖВЏЌЇ–ЕдсЯЦУУШЭСЗЕМРФлаPFQT`‘ВЗШЛЌЈЃЂЋЏВЏ›ЈЭЛКБДЖЛСЧЧЩЩРЧШЏЈВКНТРКНФœ•БдмФМКЦЪЭУЎЖЖВЅУбvЂЁ›БЩ٘ЊЌЉЄЁЅЎДБВКРшœЌАВЖЛМОФЧШЮюђзУНСУЩЧУЛТСТНЛФФРСЦЮазАЕДЖЕЖЧЫƒЁЛЭУЖЂ„…’ЄЄ•ސ•œЁЋŸžž–‰Š…{hŒРОЋЈЕЗЇ™ЪуЂSE8SgbWY[WW€Ф[VB>4Pкўў{’ЖМКЏ˜‡˜ŸЅŸ•Ž–‘””’ˆ›ž›’‡ƒu…Ÿ–’—ЄБЄ–œаўўКdaitjjaWVV]ZVZcoQWœўўv‰ЕкжИ–ЉЁ—›’ŽŒ‡|}‚А•Ž™ŸОЫО’…ˆ”›––ЄЁЃžМазУˆuQ@]YWWYTVPWZdj^P^рўŠЃЪьсЫЋЎ™‘”œ—•”˜”‚xƒ‰ˆ‰—›ЈЈ—…Œ—™‘–ЃЋЈЏЗЗаЅpVGQTWacSUWS`ba[ObЖў•ЕбаЦЎЊЅ‰”•‘Ž’”Žxp|—žЅЋЄ•––‡Ž™–˜МНЖРЛЁЩН{[HWZ^]^YNU[ck[TCBbЩ›’–ДжЩРЋЋ˜‰–˜”Œ‡rnvr…˜ž›‘px|„Œ‘‡ЕеЮдЩŸЇВvVhd[VLPNJLSUSWZd|pЂ—–~›МЪЦЛЌ˜w‹‘…ˆ……{wwp‹””–—~{‰‡~”ЉАВНбдШЌЏЩ\cbh[SQOG?AGLHG7UVUЇŸ—˜ИФФООҘ‹•–‡{rv‚‹‹„Š‹‘Š–ЃЊЅ‘xjnŒЁИТНБ‘Њ˜unqraYmZSTOLSLL>YTL……‹ЋБКЗЕКЕЂœ”rdtБЇ„”‘ŒŽœЈЎА‚‚~ŸЎБЕВЏЋЯЭ‹c^iiZLUVTWch?,7\LO‰›™ОСЛАЗДВЇžŸЃЌЌœЁЋЇœ™–—’””œ•˜”’ЈЁЈБЊЏДндЌu„‰z|aua39:1*ekU˜—ŠЅЌЏЌБЎЊЇЊžœŸžœŸœ˜”ŸЁЁ™”™ЊЎЊŒ–ŠˆxŠžЂЂЈИФйСƒ[\YA@GPA1*)(&@gnY˜‘‚—ЈНООЖЕАЊ™‘•˜››žЊДЖЄžžœ——ЁЈЏjvxv‹’ŒЛОЮЧ‡gTJ74E2;.09VHLLG~ЊЅŠ–ОЭЦМЏЉ•—Ž~hЄЁЅЃ—‹”ˆcqЈУБpx„Š”‘АЧлбЄ~^G90500$*-38(Brro}—ŸКмЪМЗВЎЋžz‰•›Ÿ…А•Ÿ‹|rœЅЈ–Ž…œ–q[„ИРУЮhUY?3%2):)23AQ\~|v‚–БгЭНЌЋДФВŒ””’›”‡ˆ‘–‘Ё‘‚wŠžЌЇЂЁВаЇdoŠВДСА›vbnV@+(+1*+ATz””‘‘‰›ЕЕЦЫезйЧЃ™™ƒ|„‰›•”Š‘žЎЄЂŸ™”™ЃЇЅЋ‹…™ЉЪЕ”Y)14.**7&%!$4>c‘ˆ~xw›КУЛгмчсЏ……‰ˆˆŽŒŒŽ”ŒŽЁЂ™––ЇЅЃЂЃ˜ˆ‹›БЗИЉcF;?>?;@2.50-;Op˜ŽŽˆˆz‡–ЊЅЧзкжЋŸЃ’‰ЈИŸ‰Š—•ŸŸ›ŽŽ–Ÿ—ЄЅœ˜ŸНН}7)32:AF7I<:?ZT,Ai‘„‡‰‰‘ЊЎУЩФЪЪЪДЎЅЁЁ›žЃŸ’—–ЄЉ–Œ‹Š‹‚„ЇЄ–œКn@>9C9?:1@ANwdЄœ‡‰‰€‘—ЅДНЦФНЕЋЂŽ•ŒŒ˜Ї›‘Œ‹›‘Ž—އ‹…ŽАЖ™ABSS8FB>><;:>GC5CEЏœ’‹Š‹ŸЉОхйЯбЪЧЭЊЇЂ~Š•˜‘’˜’‰Š™ЁЁ”Ž‹’™•Є‘„Šn]„ƒrJFH<9?388A;JFh‰‡‡ŠŽ‚ƒ‹ЃЪсЧФЦЯэаЕЂ‚Œ——žЃЁŒ‚žЃœŽŠ›КФТВŽU>%:`YBZPJ><;@::1GIba‚{}Œ‘–žЉЖРЗМбебЯИЈ”Ž”ЂЅЏЏЇ‰ƒœЂ‘ˆˆ•›˜‡wS!BOQPIP@;9C?BAEAMLWmv}ˆŽ–—’•ž–ВУЗТукбЮдЮМœЂЈЈŽm{ЂЊЃŸ”Ÿ–}t~nHBFCLQUYONCH?CI?A;FNLj|x}ƒŒ•‹•œЉЌАбзнелЮШЇ˜™z…‰”ЁЄžŸЊ—}tjoiI8MUUVOSVSY[U[QC?E;Q]VYx~„ŠŒ‘•œЊЇx–ШтпйЖЏЇ˜ЁЇАЁ‡Š…Š˜ЄЈƒ{bLVL+HLSVNNPN[\[S5<<;WZYYb‡‡‰‹˜›žžЂžƒЃаэрШДКЁ””ŒŽ…ŒŒ˜ЌЊИ˜…k82FLFISUWUYZU`Z`]M:E5HPTbhƒ‚‹ŒŠ”ЁЃœ™’ЦтеаНŽxƒ•ЁЅ›…Š•›˜Ѓ˜hodAHMSNZ[h\V[QSTTUY?.FFWQ\^a„}xˆŽŽƒЂœЂž—ЅКЫеаВu•ЉБЂœ‘’››‘bJC7LG>4;;AAIFAFEIJ[hhg~˜cBMYYSL…‚‰Š…ˆˆŠ‰•—•’”ЪФЋАТрШ‡q’ŒƒwraE:EHHECH(0::CC@>GYNGQhQLkМа^[PTOP„{rqWˆ–’‚…Š’™ИЗЌЊИЫаЌxx‹’™—o?(7?BFAE@:8??EHIOT[VP[\QmИыщЋcSN^NP’ˆ|z|ŸœЁ…|…|–ШДЊ•ЗыўюЋ‡ˆ‹g2"AA€ЄCEGE872(3McOLL?;Nbag~СЯнЭ~ZigUNЂ~uoŠЉzZk|w}АБЁ‰žУЦБ–ЇАŒg:%5:95<;80.*%+"ETQGC>;:Mn‰™ЗдЫ™cIUYQˆ–„}zŽœƒbcjoВЋВЕНЛБВ›‘‚\8!#1%0884<1<0F>OQHJIE+ZЃЕЄЋЃЈwYjjYzœ™”ŒŒ€mˆŠ‡xqx›БДŸŒ‘ЋЃ|cZVT2#&4484BAG:B<@<GHE1("43A<%.?F10UM3#EFZkžИЏ›œuЂЮюбxPE}‚Ђ”Œ^IITNJNTFELOWIHOMC0#4?MI><5C?F@EFB:;44.$"3ESV@AF@79N]w™œ˜‰‘•ЃЉЋЃЕШз§љЁQkGMA@M:**<1B@EHB:-I@H?>4)-,!IQ9;:4ELAG45rЭЧ……‰ŽŽ€ ™ЅЁЌКЦШэбu3BNE@C;89>$")1279AAEMS\ZY531%%N`EC@A>NL:HHS~–‚ƒktˆ‘‹ЈЌЊЊМмчўЯ;1$<:>A?71@.,+05-47AEE%GULPE;<5$;BE@C9:FGWh…”„•ˆ{qu˜ЎЪцФАЇЕЌЪўњ>5%%18<,0<1:-**4&+;BB?5AB??CPB51AT:.5<8QUQ‹ž’ޅЇ…~‚АЧСЇ•Ё™ЈЫўў:57;.04:H@?J;1101*.5EGI@C>>A>OTSHGA?8:IOJc}œ‹ˆŽ”ЂЅЏгРБЃ•ЅЕБЌдћ#,4)12AIHG3.9.>.4++4:HG:9>>BHNQMGTNJELG@2<;;#;G’’”Є™—•–Šu‹Ё™••‹ЇЭУЕДМп1(%-18A?508B?:?CC<0>B8"HFQPF@JA?8IIB-(HТРЂŸœ”ƒ„‚˜ž‘’žŸРдЩТДДЧ20(%--3>A9,35-53CC2&,?NUNQHENnYABAH\ahe’НЩ–’Œ…}~ˆМйЉЇЉ’ЏткУЎЅЛ978<>3:79;.00&:;?>@3,3CPONJG0L[^jv{…‹„uŽЅ”›Ё’ŽwrgoЃЂ˜•ЮузОБВб12-02827:,;739;82022*0$7:.AL%8OWYekŠŸŠ‹ЋЊЂ…zkq|‰Œ‘œЩг‰bhoiŠˆƒ•›•ВЫРО@-(B?GCB@E:;88208.3>BPd~‚‡’pLVžЖžw`rmjox–БЗ}SOxtt„’‘Š’˜œЃТЖИ27:CC9GGOOEF$37FHNGOo‡žŒœБЕ—•›‰Œƒz‡vqƒ’ЎЎЁЎЎЄŸˆ”}vˆ’‘’”ƒv}ЃЕИ.))035Le{‚wwk—ЅЧЧЖОЗ™””ŸœЈœˆoov‡•œ›xk‘Є•ƒx{‡Š‡Œˆ‡‡‘ЎЖž75.1?5:[G(GZ^‚”{wzvkVe}ЃЏ—ƒ‹’МЕВЂž•Ÿ›ЁˆˆŒ…„–‚v›œ‘Šˆ–œ˜Œ‘ŽŸЈЄЇGA94?NCFH.;Ÿ§§ѓѕѕјїјјїїѕѓєїјїјљљјїњћ§ћјљїїјјћ§њ§§ўўщћўўљњ§?;@AIHIN?Gю§ўєѕїїѓљїїѕјїјћљїјљћћљљћљљћћљљјєљћћјљјљўўћў§§тњ§§ўўSOGMONOP8GOŸљћљїєєѕјјїїјћћїїјћћљїљљћћјњќјљљјјљћљјљћљ§§ыјѕ§WPHITOMM748.+5;;E:9+^ш§јѕїїѕљєѕїѕїјњњјјюїјљїјљљєїѕїјћћњљњ§§ўў§§цњўў§§::85:7<75*7>IBAŽј§њѕїїэјћљ§љњљћљјјїљјљћњ§љљўћљљвјѓјљћ§љљєјћјјњ§>95,)42?A39:BH3FЕћ§љѕєїјјљћљљјљљћюњјјњїјјїљљјћћљћљћ§§гњў?IBBA@<<>3>>GTP@mу§§єѕїљњјјїјњњїѕїјњјјїјњњјјќљ§њљљћјћр§ћ§љї9ABFHAACB9?<@GAJGF;872HAIC<"@GHdЫљљѕѕјшњјјљљћћљљћ§§њљјљјљљћ§§њ§§љ§рњ§љўEA@VcIuэ§ћїњљћћќњїјћћјћљўњ§§љњћў§њњ§§ўњ§§уњ§5EC;48HMJ7IB;;4AHEM7F‹љ§њїјј§єњћћј§њњ§љћћљљ§Чњљњ§ћњ§њ§њљњў§њњ7*!*5:?EA<@>A7;55FE@9ATnЉћћњїјљјїјїћљ§љњ§ўўњћћ§ўўњњўў§§ўўў§ўўз[759:>@4>CJAA?E@AC@88BEMЗљћљњљћљњњљљњњ§њ§§їјћњ§љћљјћћ§јћ§§‹њ§њ§‘bUF><4FIJMHH47A7312!4IHoа§ўјјћћјј§ўћўўњњ§§јљћљљћћєјјњјљљ§ўўњљњ§ДmeH>??FLNPPO;C?ECBCB5Qb\ёћ§њѕїјљ§ћљћћљјћљљћћљ§ўўњ§ўЯћўўт‰G:JNCLSOUJHJHG@?Cuбћљњјјњњјњјјњћљћћњњ§§іљћ§§љњњ§њ§§нє§СdC@WLAAIGMNMG;5@FH<2.We];HУћ§єѕїїјћљњўћўў§ў§љўЯњљ§щљљЇSCMCA@H??CG>B?7?:72(3FH2.xщћїѓїњїљћњјљћњ§ўўљ§ћ§њўњ§§ўзљњўФыјпPM?EBJFIHBCHIB>:7;<>BFQL;‡ѓћўўћљћћ§јљ§§ёљјљћ§њ§ћў§§њњћ§§зжђєАiTO;2F;G;7B?FI>878;58?B>>9:8<>>B72?a\bPSˆјћ§їјјћљјћћ§§њ§Хњ§њ§§ћЫЪЭлююе~LVV`C2,1<883;@;5#.GA5.A>J‘э§§їѓјћљљњњјљљћћљњ§§љћћ§§ћўўЫДТЩЫьыщРmUG,;?C8--#*&$1<8B@AEIBS‰ш§ћїѕїѕїјњћћ§њћњњ§§ћ§§ћўў‘њКЭЦСеюёьНo>@OB8.&+-9;829*8.7;5.JeuК§§њѕїїљїѕѕїїњћ§љћљљћћ§њ§њљћxЋЭУЛТпѓж|EU]M)120?BB;3 #1>;+!Bc;;О§§ћїїѕїјјњћ§Цљјћ§œЏЕЗЋФызYYGB:<9217

& ?d@2LЖћ§њјљљњњљїїјњјћћЬјїјљЃЉЎИМУеёђжЇYEZVF;>8:;,$> &;H:^д§ћ§їјјѕёёіѓєїјљћћљћ§§Чњ§РКЖЛЫЭЮлэљяЃU?<--47FP1   ##9MŒўўќјњњљљўњћћћњ§ћ§њњгћњћњћњ§ћ§§ўћ§ћ§њњљњљњњћњћњћњљњњћћњћњ§ўOPMFbРўўћљњљњљљ§њљњњўљњњћ§ў§ћћ§ѕў§ћ§ћ§ћћњћњњћњићњћњ§ћ§§ћљњњLJ?>Iƒчўњјљњљњњјљљјљљјјњћћ§ћћњњљњњ§ћ§§ўћ§§љћ§ћ§ћ§ћћ§§ћ§§лћTWS>GV–ўў§њњљјњљљјњњћњћњћћ§њћћњњћњљњњћў§ћћ§ћЧљћњћћ§§ўћMONAbchРўўљљњћљњћљљњњљћћњњљњћњћћљљњњ§ћ§ў§ћ§ћ§ћ§ўўх§ћ§ћ§ћ§ћўћћў§§HFMUb\h”ўўћјњњіљњћњљљњњљњњљбћњљњћћў§ўћ§ћ§ћ§ћ§ћ§ћ§ћ§ћ§§ћћ§ћўћћњAEJPabPqЮўўљњњћў§ћћўњћћњїљњњћ§ћњљњњћф§ў§ћ§њћћњ§ћњћњњћњњIOTUWUUqЅўўхњћњљљјјїјљњћћњћ§њњћ§ћљћљњљњњ№ћњћњўћћњљљњњћњ§ћћц§ћ§ћGILU]ka[cОўўљјјїїѕѕјљњњљћњ§њћћњњёљћћњњћћ§ћ§§ћњћњњжћњћћ§ћњћў§5BCGMTd—чўјј§љњљљњћ§њћњњњћњћћњћћўс§ћў§ћњћњћњћњ§ћњљ@7747881?8-SРўўљїјњљњљљњњћћњ§ћњћћіњћћўў§ћ§ћ§§їњћћ§ћ§ћњљљл8.:;22+*1*4*3eдўўјљћњњћњњћћњћћњњћћ§ћ§§ќњћћ§§ќњћћ§§ѕћ§ћ§ћ§њ§ћњћћщ8;IHC@<7;GZVCUЗўўјїјњњћћљњћњћљљњњ§єћњћ§ћ§њљњњћ§§сћ§ў§њ§ћћў§§7?FE<:707@?9;,aђўўјљљјўњљљќњљљњњњћњћњњћћљњл§ћ§ћ§ћ§ў§ћ§§ўў§ћ:83.*8>B?9CEC5HМўўћјјљњњћњћћ§ћћљњћљњњљњњћмњћњћњћњ§ћ§ћ§ћ§§E?BAF?>;9<7?HPUFNA;T—ўў§љјјњњљљћћ§њњћћњљњћћўњ§§ѓћњћ§ћ§ћ§ћ§ў§ћћь<3<@BFLEC@>99>OCG^Жўўјјљњњљћњ§ћћќњћћ§§ўћ§§њћ§ћ§ћ§§ўћ§§лћўћ§ћ§ћ-22AGIPM>::598B475TЖўў§љљњњљјњњћњћ§іў§§ў§§ћ§њ§§ћєљћћ,7<979;@@шHI?2AIJjЮўўјјљњњљњњћћњћћяњ§ћ§ћ§ћ§ћћњћћ§ћ§ћћм§ћ§ћ§ћў§AAB@7;:>;CBGEC>>BUgNzєўўљљћњњ§љћњњћ§ћћ§§ў§§кћ§ћ§ћ§ћ§ћ§ћ;@?::"(537;@??AB;CBBњG?5UЏўўћћљњњћћіњћњћ§§ћ§ћўўђ§ћћ§ћ§ћ§ўўћ§§ўўцћTAG92257AFECG@HYmЈўўќљњћњњћѓ§ћ§ћў§§њћћў§ўўі§ў§§ћў§ўћўўс§a5;5:9;<;BAC<>9::BHFHB@82<:78,:NLpжўўњњ§ўі§ў§§ћ§§ћњћћљњћњњљ§ћћЦў§§ў§ћДihO>:AFE>>AHG?<7SH>uзўўњќљњљњњЧћњњ§§ћ§ћћњ§ћў§§ћ§ћ§ћ§ћўўЩkEEVNC>?BCJJ>:9ANJ>8.SjY7JЪўўљјљљњћ§ўјћ§§ўћ§ћўўњ§ў§ўћўўоЌUIL>ABC@89?A831)AC8.{яўњїљљћћ§ћ§ў§іњ§§ў§§ћ§§ўў§пюљўх„YN:ACFC@EC@FCB>>:;??AJSM>‚ѕўўѓњћњћњњћ§ћ§ћ§ћћЫ§ћў§§ћ§§ћћ§ћ§ћїѓўўЕu]P>8A?05<559??8UJ4@rУўўњљљћћњ§іў§ўћ§ћњ§§ћћнљїяћўўФzY[\M??<799;:959@8119b\\QWўўўћњњјћ§њћћ§ћ§§§ћ§ћћ§§ћ§§дћ§њяшэђ§ѕлNUUe@93+-1..3F?I—ѕўўљњњћћљўњћћєњћ§§ћ§ћћњ§ћўўи§цшыяјєшНo]M>B?873)+$#.,)1A>AACEHYэўўљљўћњњћ§§њ§§Тћ§ћћњ§ўў§ў§чѓяящєєяРp@GVF-..*!$9>722-7035:.-NiuМўў§њљљјљјјљћљћћўњћћвњ§§ћ§ћњЛмячццыѕкw@Q\M-0.7?IJF?%<4$*#CiA;ЛўўљњЕљњњћњћњ§ћ§ћћњњћзншыцщшѕлŽU[IE@>527>]W‚ўўњѕѕѓђѓєїїљљњћњћћўћ§ћкдЯкєјёяююўўщЊraH8?<4* у  423]h@Жўўљєєѕїјљњњћњћћ§њчїњћ§њўњ§ћ§§ў§ў§ў§ў§ў§ўў§ћћяўњ§§ў§ў§§ћ§ћ§ћў§ўў§§ў§ўўэ§ў§§ћў§ў§ўў§њћћ§ћўћћ§ыњ§ћ§ћ§§ўћ§њћћ§ћ§ћ§§ў§§§ў§ўўј§ў§ўћ§§ўўсњћћњћњўћў§ўћ§ћ§ћўћ§ћ§ћћјћћ§ћ§ћ§§јћ§§ў§ў§ўўќ§ў§ўўє§ў§§ўў§ў§ў§ўўєљћљ§њ§ћ§ћ§ћ§§ъћ§њћћўњљљћћўћ§§ўћ§ћ§§ў ўў§ўўј§ў§§ћў§ўўњќўњ§њњћњў§§ћўћћ§ыўћ§ћ§ћўћћњ§§ўћў§ў§ў§ўўќ§ћў§§їў§ўћ§ћ§§ўўѕ§њњћњ§њ§њ§ћћћ§ћ§ћ§§ћэ§ћћ§ћўћ§ў§ў§ў§ў§ў§ўў§ћ§ўў§§љЫўў§њ§њњћћўћ§њћћ§ћ§пўћ§ћћњ§§ў§ў§ўў§ћ§ћ§ћ§§ў§ў§ў§ў§ў§ўўўўўћьњћњћњ§ћ§ћћњћћ§ћ§ћ§ћ§§їўћ§ћ§ў§ћ§§ѕћ§ћ§ћ§ћўћћ§§ќћўћўўўћ§§ѓvжўўњ§њ§њ§ћў§§цћ§§ў§ў§ў§ў§ў§ў§§ћў§ў§ў§ўћ§§єћ§§ўћћ§§ћ§ћ§§їћ§§ћ§§[Ёўўњћњ§ћўћ§ћћр§ћ§ћ§§ў§ў§ў§§ћ§ћў§ўћ§ћ§ћ§§ў§ў§ўћћ§ў§ўў№§ў§§b…уўўњљћњ§њћћўўћћј§њ§§ўћ§ћћ§хў§ћћў§ў§§ћ§ћ§§њњ§ћў§ўћ§ћ§ћ§§ќSrЉўўёњћљ§њњћћ§ў§ў§§ћћўўћћњљњћ§ћ§§ћ§њћ§ћ§ћ§§ћћўћћ§§ћ§с[m‡аўўљћљћњћњћњњљћљ§њћ§§ћў§§ћ§ћћњ§њћ§§ћћ№ўћ§ћ§ћ§ћў§ўћ§ћћ§§§ў§ўўяedZtчўўњљ§њњћўћћњњћт§њ§њ§ћћњћћ§њћћ§ћ§ћ§ћ§§ў§ў§ў§§ўўћ§ўћ§ўўєYghgМўў§ћћњћћїњ§ћ§ћўћ§њњѓћњў§§ћў§ўћ§ћ§§ў§њћ§ћ§§ўўњbjGJœўўўњћћј§ћ§ћ§§ў§§фўњћћ§ћ§§ў§ў§ў§ў§§ћўњў§§ћ§ћ§ћћќњўћ§§јўde`WuЯўўњќћњўњњѕћњћњћћўћ§§ўўяћ§§ў§ў§ў§ў§ўћ§ћўћћ§мћ§§ў§ў§ўћў^aQN\›юўўћњўћўњњљ§њњћ§њўћ§§ѕћ§ћўћўћўћў§§ћў§ў§ўўш§ў§ў§ў§§ћў§ў§ў§§gkeOVmЅўўћљњљћњњѕ§ћ§ћ§ћў§§ћ§§щћ§ћўњћ§§ћ§ћ§ћў§ў§ў§§ћўћћ§§ў§ўўѓheaSrurаўўњњћћ§јћњ§њћћ§ћћы§ћ§ћ§ћћњ§§ў§ў§ў§ў§ў§ўўј§ў§ў§ў§ўўу§ў``\gur}Їўўћњњ§ћ§ћ§њћћўћћњўћћћ§ћ§ћўўь§ў§ў§ў§ў§ў§ў§ў§ўћ§§ўў№§ћV`\hwxbкўўњњћћєўћ§ћ§ћ§ћ§ћ§ћћќ§ћ§ћћёўћўћўћў§ў§ў§§ћ§§ўћ§§ѓў§§cdh`cieИўўћєљћњњљ§ћ§ћ§ћ§§§ћўћћї§њњћўњ§ћ§§ўњћўћћњ§§§ћў§§Vщbgk|vnrЪўўњћјњјљїћњўњћ§§ћћўћћњћћ§ћ§љў§§ћ§ћ§§јћ§ћў§ў§ўў№OPU\a^nT;ёўўњљњњјћњ§њњћ§ћћў§ћћ§ёћ§ћўћ§ћ§ћ§ћ§ћў§§ўы§ў§ўUZJSY`cO7MЗўў§љ§ћћѓњ§љњљњњћћ§ћ§ћћћўњћњ§§ђћ§њ§ћўћћ§ў§ў§ўўђ§ўSQVU]`ecJY”ўўъљ§њ§њ§њњљљњћћ§ћћ§§ћ§ћ§§ђћ§ћў§ћњ§ћ§ћ§ћўўњ§ў§ў§ўўѓZ^[]hdihM[gИўўщ§љћњћњ§њћћ§ћўћ§ћ§ћ§ћ§ћ§§їћ§ћћњћћ§ћћ§ўћ§§ќћўў§§шўbaZU[agiEEJbюўў§њ§њ§њ§ћћўўћћ§ћћ§ћ§ћћї§ћ§§ћњ§ћ§§§ћўћћл§ћў§ў§ў^kQQLNWYWagrЈяўўљћљћљ§ћћњ§љ§њћћќ§ћўћћљ§ћ§ћ§ћўўі§ў§ў§§ћ§ћ§§њёTQ@GCHGUYH8?jбўўњўћњњ§ўњ§§ћћ§ћ§ћ§§їћў§ў§ў§ў§§ў§цћ§њњJNCOHBH?E?C;Bvмўўћњћњћћўњ§§яћ§њўћ§§ў§ў§§ћў§ў§§ќў§ў§§ќў§ў§§уPWW`ZVOMNVijOjШўўћљњњћћ§ћ§ћ§ћћ§ўў§§іў§§ћўњ§§ў§§ќў§ў§§ўс§ўISZ^OSFFMQTNH?pњўўљ§њ§њћњњ§§ћћўњћћѕ§ўћ§ћўћ§њћ§§їў§ў§ў§ў§ўўк§ўJLOPHMOSHNJW^YWЊўўћћњ§њћћў§§њ§§ўћћњ§§јћў§§ћ§ћ§§ќў§ћ§§чўћ§ћћ§ўIOBJONJSVNIPT\BUШўўњљћњўњ§§ўћ§§ѕћ§ћ§ћћњўћўћћ§ћ§§ћ§§тў§ў§ў§ўNUSUUSPOOGISQdgN~їўўљ§њњёўћ§ћћњўњ§ћћњўњћћєўћ§§ў§ўћ§ћ§ћћл§ћўў§§ћPJJTVZ[TZPOQQ\OPgЇўў§љљњћўњњћ§§ўўћћб§ћў§§ћ§§ў§ў§ў§ў§ў§ўћ§§ў§ў§§HFANT^[ZLQLUMT]TWwЭўўѕљћњўњћћ§§ў§§№ћў§ў§ў§ў§ў§ў§ў§ўў№§ў§ў§ўў§§ўC;EIP;;?H^]\SYQ]Ќўўю§њћћ§§ћћў§§ћ§§ў§ў§§ўЯЩжнсѕѕэШ|nVHSOIJFA<-1C,@JILTUQY[Tdž§ўўњ§њ§ћўњ§ћў§§їў§ў§ўћ§§ўўкЧпзйу§њѓУzJUg^?H?>05IMCG@?>GPMNHAdƒЩўў§њ§њњќћљ§ћћїўћ§ћ§ћ§§ўў§й‘Тплгечљр„Lcq[@C@GMW\\O#*.@PG@>2(W|MLЪўўћ§њ§њћћШњћњ§ћ§ћ§§ў§ўћћ§ўЄМЪжЯЭзїп–]hTQIPI@BQUiT9"!&-#OzWFgШўўїњ§§ў§§њњћћЬ§ћ§ћ§ћ§ћўћ§ЛТТЮЪгуўўцЏjSc[UQ@CHLF:S8-*2@)08MbPuщўўюњћљїїјїњњћћ§ћ§ћў§ўўЪбЯЫгнусчљўћЎYABAOIEJ^F"20+*01#NaNWMkбўўљњєєёѕѕљљћћ§Фў§ў§ўЗйЭЮлтыьь§ў§ЏtQJFCLJM0$&(&10.2.!B`NNqk˜ўў§њїљѕїїњљњћћ§ўћўўП§ўЖБЌУчђььцёўўђК~vWBHG4- .+$$"$";FJNz|TЛўў§ѕјљњљ§њ§ћ§ћ§ћў§ў§§Рўw=ўџ=§џw<џўw;џ<џ<џўw:џўw9џўw8џ9џ9џўw7џ8џўw6џў€5 џw2 џўw0 џ1 џўw/џ0џўw.џ/џўw-џўw,џ-џўw+џўw*џўw)џўw(џ)џўw'џўw&џў€%џўw$џўw#џўw"џўw!џў€ џў€џўwџўw џ џџўˆџ џўwџўw џўw!џ!џўw"џўw#џў€$џўw§њћљєћћ§§ћњљћњ§§ўњўўћ§ћњ§ћћў§уљњ§§ўўћћљљ§ћўўћўњ§§ў§њњ§њћљ§ўўќћўў§§ўј§ўўћў§§ўў§ћ§ўўћюўљљ§§ћћњ§њњљ§ўў§ћљљ§ћњћњ§ўўєћ§§љљѕњўў§њ§§њ§ўјћ§њњ§њ§ћћљћ§њ§§јјўћ§§њёћ§љљњ§§њљљћљњћўўїћўўњў§§њћћљљћ§ћ§§ўўш§љћћ§ўў§њљћ§§љћ§ў§њ§§ўћўўњўњћўўћњ§§ўњ§§ўњ§§§ўњ§§ў§љ§ћљї§њ§§ўљњ§њ§ўў§§њў§јљ§ў ў№њћљ§ўћ§њ§љ§§ўўћўўќћ§§љљ§ў§§њћўўќ§њћўў§ўњўў§юў§§ћ§љ§ў§њћљјљћ§њўўўћўўњњјїѕј§§љњљ§ћљ§ўўсћў§ћћ§§љњ§ўћњњўўњћўў§љљћ§§ћњњљњњ§ћњњ§њњ§ўўњ§њ§§њ§§ўќћўў§§їљћћ§њўўћўўј§њњљћљњ§§њћљљћ§ўўњ§њњ§§ћћ§ўћўўњњ§њўўњ§§ўњќљјїљљў§ўўќћўў§§юў§§ћљўњ§§њљўўћћўўћћўњћўћўў§§сљћљћњўў§љљ§§ўўњ§њ§§јљћљћњ§њћљњ§§ ўњћў§њ§ўўь§ћљљћ§ў§ћћљњ§§ў§њ§§ўў§єћљ§ћў§§ўўћћўўю§њћїјљњ§§ћљћљћљњ§њњїїљњ§§љ§љ§§јњў§њ§§њ§§ўшћўћ§љљ§њў§ћћљ§њ§ўћњљћ§§ћћњ§њ§њ§ўўћ§њ§њ§§њљћ§њ§ўўўћ§§ўѕ§њњ§љ§§њћћ§§ўљ§§њ§ћјљ§§њ§њћўў§љћљ§ўћўў§њђ§ћћ§ўўњ§§ўћћўњњћўћћўњ§љљ№ћњљљњ§§њўўћўўћњўўўћўўўћўўќћўћўўљ§ўўћўњ§§§њ§ўў§ћјћјћ§§њ§ў§ў§§њўўјћўћўўћћўўљїњ§ћљњњ§њ§§ћљ§њ§ћљ§ўў§єљћљњ§§њ§§њ§ўўќ§њ§ўў§љћїљњ§љјјњћљљћћњјљ§§љ§§ћљ§§ўќњўў§§§јћ§§ђў§ћћ§њћљњ§њ§§ћћљљ§§љ§§ўўљ§њўћћў§§ђњ§ћњјћљ§љўўњњ§§њњ§ћћ§њњ§ћ§ћјљїјљљјњ§§ћљљ§ўўђњ§§њ§ћљћљљ§ўћўўюњўћћўћўў§§њњћћњљљћћљќћ§§ўў§№њљњњћјњњљ§ўўћ§§ўўї§ћўћ§§ў§њњ§ўёћўћњїњћјјћ§њљ§њњљіћј§§ћљљјљ§§ћћ§њ§ўўќњ§ћў ўљућњ§ўўњ§ўўњ§ћњјјњњљћљћљљћћљ§§њњўћўўў§ћћ§іњћ§њћћ§§њ§§ѕњљћћњљћћ§њћћћ§њ§њ§§чћўўћў§ћћљћњ§§љїћ§ћљћљћљљћћюљ§љћћ§ћћљћћљћљ§ўў§§њќљњљ§§эћљњ§њњ§ћћљћ§њ§§њ§њ§§ћњћ§љ§§ўћўњўў§§ёњ§њљћћљћљјњњ§њ§§ќў§§ўўіћ§њњ§§ў§њ§§њц§љ§њњ§љїљјљћ§§њ§њ§§њ§§њњ§ћћњтјћњњ§§ўўњ§љњјћљ§§њ§ћ§ћ§§ј§§њ§ўўићўљњћњњћњ§§њњ§њ§ў§љњћљ§њљјљњ§љ§љћњћњњ§љњњр§ћўћўў§§ўўћ§ћњ§њ§ўћћўћўў§њ§њњ§§ћћ§ѕўћ§§ћљњ§њ§њњўў§§јї§њ§ўў§њњэ§њњўњ§њљљјљћћїјљљћ§§њњ§§ћћўўяњ§§њ§§њў§§њњ§§ћњ§§ўњўўёћњ§ћљћћљў§§јј§ўўћ§њ§ў§§ћњўўћўўўћ§§ћ§љћ§§ў§ќўњў§§њљ§њ§§њ§ўў§ќћ§њ§§ўў§ћћ§щљћ§љћћљ§§љјњ§§њњ§§њљљњљљўћўўњхјћћљ§ўњїїјћљњў§§ћњљћљњ§§љћўўћћў§§ўў§ћўћўћўў§ќњ§ў§§ѕњћљћћ§§њљњ§§ќљњ§ўўљ§љћљћљћћ§љњ§§эћљћћљњњ§§њ§љ§§љљњњ§§њњ§§њћўўўњ§§їљћћ§§ћљљ§§љ§ўњ§§ўћў§ѓўћћўћўўћ§§ўћўўћ§љўњ§§ўі§њўўћўўћћўўїћ§њ§њ§ћѕ§§ўњ§§ўњўўўњ§§ў§§ўњўўўњ§§ўњ§§ќњ§§ўў§ћ§пћ§ћљћ§њњћћљљјљ§њћѕњћљћњљњњ§§њњўњ§§њљ§њњ§ћћњљ§њ§ў§§ћїљ§ўњ§љћћ§§љњ§љњ§§ўўћўўўћўўљ§љјїњљћћјњ§§ћћўў§§љљ§љў§ћўўхњљўў§§њўў§§љњљ§њ§§њ§§љ§§ўћўўќњ§§ўўћћўў§њњ§ўћўўўћўў§ќњ§ћ§§ќњўўћћјўњњћљљњўўє§ўћўћ§§ўћњњ§§њњ§§њљћћњљ§§љћ§§ўяњћљћњ§§љљјћљ§§њјљљѕњўўћћў§љљћ§§§ћљ§§ўэ§њљјјњћљј§§њўў§ў§їћћ§ўњўўоћўў§§ў§§њ§њў§§ј§њћљїљћ§љ§§њ§њљ§љљ§§ќњўћўўѕћўћћўћўў§ћ§§ў§ћњ§ўћўў§ћ§ўњ§§њ§љіћњ§§њ§њћћўўћўўњ§§њћљ§§ћўў§ўћ§ћљўњ§§љњ§ћњћћ§§ўљ§§њњ§њ§њ§§ѓћњ§љјјљїјћљњ§§њљћїљћјјљћ§њћћўњ§§љћљ§њ§ћљљќћњњћћ§ў§ћњ§§ћ§§§ћљћћїїјљјїњљћљљњўћ§§њ§ўіњ§јћљ§љњњ§§ћ§ўњ§§їћљћњјљњћ§§шљћ§ј§§њ§§љїљљјїћћљїјћњ§ўў§ўњ§§ћщ§ћљљњњћўўћ§§њ§љ§§њ§§њљ§§љ§љѕњ§§љјјљјљљћћї§њћ§ўўћћўўіћљћ§§њ§§ў§§њ§ьљ§љћљ§ћљљћљћњїїњћљњ§§ўњўў§§§ћ§§ћьњ§ћ§ћ§ћ§ћ§§ћњ§ћ§ћ§§ўўћћњ§§ўўѕ§ўћ§ћ§ћ§ў§ўўы§ўў§ў§§ћ§§ћ§§ћ§њћћў§ўў§ћћ§ћў§§ўїћ§ўў§ў§§ўўљ§ћћ§ўў§§љћ§§ўћњћћћ§њ§§ўўј§ўў§§ћћ§§љўћ§ћ§ћ§§њћ§§ўў§§ќћ§ћњњћ§§ћ§њњц§ћ§ћ§§ћ§ћў§§ћ§ћћњћ§ў§ў§ў§ўўњћ§§ћњћћ§шў§§ћћњ§ўўћ§ћћ§ћћњ§ў§§ћћўў§§ў§§ѓў§ў§ўў§ћ§ћ§ћ§§юћ§ћ§ћў§§ћ§§ў§ўў§§ћћљ§ћ§ћћў§§љћ§ћ§ўў§§іўћ§ћўћ§ћ§ўўў§ўў№§ўў§њћ§§ўћ§ћўћ§ўўљ§ў§ўћ§ћћі§ўўћћ§ў§ў§§ўў§ўўљ§ћ§§ў§ўў§ћљўћћњ§ћ§§ћњњћњћ§ўў§§ў§§ъњў§§ћ§ћ§ћ§ћ§ћ§ў§њћћў§ўўщ§ў§§њћћ§ћ§ћўў§§ў§§ўў§§ћћњ§ў§§ћ§§љћ§ћ§њћ§§єћў§ў§ў§ўћ§ћ§§§ћ§ўў§јћ§ћњћћ§ўў§§ў§§љћњћ§ћ§ћћћњ§ўў§§ћћ§њћњњћњ§ћ§ћњўў§ѕў§§ћ§ћ§ћ§§ўў§§ћњћћ§ў§ўўяћ§ћўћ§њћў§§ћ§ўў§ўўў§ўўњ§ў§ў§ўўѕћ§ћћњћњ§§ўћћё§ћў§§ћ§ћ§§ћњћњ§§ѕћў§ћ§ћ§§ў§ўўў§ўў§ўћўўћьњ§ў§њћћ§§ћў§§ћ§ўў§§ћћљ§ўўћ§§ўўў§ўўїћ§њљњћ§§ћћэњћњћ§ћ§љљћћ§ћ§ћ§ў§ћћ§ћє§ћ§ћ§ћў§ў§ўћћ§ьўћћњћћ§ћўў§ћњ§ћћњћњ§§ќў§ў§§јћ§ћњћ§ћўўі§ў§ўў§ћ§§ўў§§ў§§ћ§ѓћњ§ћ§ћ§ў§ћ§ћ§§єћ§њћњћћ§§ћ§ўўќ§ў§ўў§§ћ§ћћўњћћ§§ћўўќ§ўћ§§іћўў§§ў§§ћўў§ўў§ўў§ћі§ўў§ћ§§ў§ўў§ћў§ў§ўўў§ўўщ§ўћў§ў§ўћ§§ћ§ћ§ћў§ўћ§§њњњћ§ћ§ћ§§їћў§ўћ§ћў§§§ў§ў ўћы§ћњћ§§ћ§§ћ§њћћ§ћњћ§§ўўђћ§ћ§ћћњћ§§ћ§ћ§§ўў§§ўћћ§ћ§ћћіњћ§§ћњњљњћћљњљњћћ§ћћі§ћњћ§ћ§ћў§§§ўћ§§ћђ§ћ§ћ§ў§њћћ§њў§§ћћњћњўћћ§§ћўў§ў§§ћ§§љћљњњћћўў§јћ§ћ§ћћњ§§ћњћћ§ћ§ћћќў§§ћћў§§ћ§ћћўў§ўўћ§ў§ў§§ўў§ћћўњћћќњ§ћўўућ§§ћ§§ћ§љљћћў§ўћ§§ў§ў§ўћў§ўћ§§јћ§ћ§§ў§ўўѕ§ў§ўњњћћ§ў§§ћч§ћњћћњћћ§ћўћ§ћў§ў§§ўў§ў§ўўў§ўўјўњ§§ўў§§ыў§§њљњњљњћњћњћћњњћ§ћ§§§ў§ўў§пњћњ§ћћљњ§§ћњ§ћ§ћ§ћ§ћћњљћћњ§§ћњћњ§§њћ§ћў§ўўћїњћњ§ћ§ћњћћќњћњћћјњћћњњћњћћє§ўўћ§ћћ§§ў§ћћї§ћ§ћ§§њћ§§ћќњћњ§§ьћ§ћ§ћ§ћ§ћ§њ§ў§ћ§ћў§ўўў§ўў§њўћ§§ћ§§љћњћћњћ§§ђћ§ћ§ћўћ§§ў§ў§ўўўћ§§јћўћ§ћ§ћ§§ўћ§§ћћљјњћћ§ќћ§ћ§§ўћњњ§ўњ§§іћў§§ћћљњњћћ§ќўћў§§њћ§ћў§ўўі§ў§ў§§њ§ћ§§щћ§ћўћў§ўў§§ћћў§§ў§ћћњњ§§ўћўўђ§ўћ§§ўў§њ§ћ§ћўўў§ўўќћ§ћ§§ўћњњіћ§ћўћћ§њћ§§ўўћћћ§ћ§ў§§§ўћ§§ћћ§§ў§§ћљ§ћћњћњћћ§§ћ§§ўћўў§јћ§ћ§§ўћ§§ћјњ§ћ§ћ§§ўўў§ћћїњћўћ§ћ§ћўў§њћ§§ў§ўўєћ§ћњњћњ§ћ§§ўўїћ§ў§ўћ§ћ§§ќћ§ћўўпћ§ћўћ§ћ§ћў§§њћњњћ§ћћњ§ћћњћћ§ћњ§ћ§§љћ§§ћћ§ўўћ§ў§ў§§ўњћћ§њњћ§њћ§§ѓћў§ћњћ§§ћћў§ўўјћ§ўў§§ћўўў§ўўўћ§§њў§ћ§§ћћѓњ§ћ§ћ§ћ§§ћ§ћўўћёњћњћњћњћњћ§§ћ§ћћњіћљљћћ§§ў§ћћ§јћ§ћ§§ћ§ўў§яћ§ћ§ћћњћћ§њћћ§ћ§ћћї§ћ§ћ§ћў§ўўў§ўўћ§ћ§§ўўњ§ўћ§§ўў§ў§їћ§ћў§ў§ў§§ўў§ўўў§ўўўћ§§єњ§ћ§ћ§ћ§ћ§§ўўї§ћ§ћў§ў§ўўљ§ўћ§ћ§ўў§ўћ§§ўћ§§шћў§ў§§ћ§ћћњћћ§њ§њћњћ§§њћћѓ§ћћ§њ§љњћћ§ў§§єћ§§ў§ћћ§ћўћ§§їњћњћћ§ћўћћѕ§ћ§ћћњћњћћ§§ћњїћ§§ћ§ћћў§§њћ§ћ§§ўў№§ў§§ћњљљћћњћ§§ћўўр§ћ§ћў§ўўћў§ў§ў§ў§ўћ§§ў§§ћў§ўћ§ћ§§јћўћ§ўў§ўў§ћћ§ў§ўў§ўў§ўўљ§ўћ§ћ§ћћў§ўў§їњћћ§ўў§§ўўћ§ћўў§§ўћ§§ѕћ§ћњњћњћћ§ћћє§ћ§ўў§њћћ§§ћћњћќ§љњћћ§ўв§ћћњ§ћ§ћ§њћћ§ћ§ўўћ§ћ§њљњћћ§ћ§ўўћўћўћњћћ§§ў§ў§ўўњ§ћћўћ§§јўћ§ћ§§њћћ§єћ§ўћўў§§ћ§§ўўў§ўўћѕ§ћ§ћў§ў§§ћ§§уў§ў§ў§ўў§ћ§ћ§§ћ§ўў§§ћ§ћ§§ћћ§ћћ§јћ§ћ§ўў§ўўэ§ў§ў§§ћ§њћ§ћў§ў§§ћўўћ§ћћњћћ§щћ§ћ§ћ§ћњ§ўў§ћ§ћ§ў§ћ§§ћ§§юћ§ћћ§§ў§њјљњњћ§§ћ§§ћњўћњњєћњ§§ћњћ§§ћ§ћћ§ћ§іњћњ§ћ§§ўћ§§ћў§ћћ§њћњњљјїљљћњћћ§ќў§ћ§§љћ§ћ§ўў§§ћћў§ћ§§ћћ§њњћ§§ёћ§њћњњїјљњћ§ћ§ћћњ§ћ§ћ§ћћќњћњћћњ§ўю§ћ§ћ§ћ§ћњњ§њћћњљћўўё§ћ§§ў§ћ§ћ§§ўћ§ћћћў§ћ§ћћї§ћ§ћ§§ћњћћјњћћ§њ§§ўўї§ўћњ§ћ§ћ§§ќћ§ћ§§яћ§ћ§ў§ћњћ§њћћњћћљљѕњћ§§ћ§ћ§§ў§§ќ§ў§ўўё§ўћ§§ў§ў§ў§ў§ў§§ћў§ў§ўўќ§ў§ўў§ўў§ўўў§ўўќ§ў§ўўњ§ў§§ћўўќ§ў§ўўў§ўўў§ўўў§ў ўќћў§ўўњ§ўў§§ўў§§ў§§ўќ§ў§ўў§§ў§ўўі§ў§ў§ў§ў§ўўљ§ў§ў§ў§§ўђ§ў§ўћ§§ў§ў§ўћ§§ќў§ў§§ ўє§ўћ§ћ§ћўћў§ўў§ќћ§§ўў§їћ§ўћ§§ў§ўўў§ўўљ§ў§ў§ў§§ћў§ў§ўўќ§ў§ўў§ёў§ў§ўћў§ў§ў§ў§ўўќ§ў§ўўў§ўў§ ў§§ў§ўўњ§ў§ў§ўўі§ўћ§§ўћў§ўўў§ўўќ§ў§ўўў§ўў§ѕў§ўћўњ§§ў§ў ў§ѓўћ§§ў§ў§ў§ў§ўў§ўћўў§§ћў§§ўў§ўўў§ўў§ъћў§ў§ў§ў§ў§ў§ў§§ћў§ў§ў ўњ§ў§ў§ўўї§ў§ћўћў§ўў№§ў§ў§§ўў§ўћ§ћ§§ўўў§ўў§єћ§§ўћў§ў§ў§ўўќ§ў§ўўј§ў§ў§ў§ўўі§ўћўћўћ§§ўўў§ўў§ўќ§ў§ўў§§ў§§ўќћ§§ўўњ§ў§§ў§§ѕў§ўћў§ў§ў§ў ў§ўэћ§ћ§§ў§§ћ§ў§ўў§ўў§ўўњ§ўћ§§ўўў§ў ў§јњћћў§ўћ§§їў§ћўћ§§ў§§§ў§ўўќ§ў§ўўќ§ў§ўўќћ§§ўўњћ§ћў§ўўё§ћ§§ўћ§ћ§§ў§ў§ўўљ§ў§ў§ў§§§ў§ўўќ§ў§ўўъ§ў§ў§ў§ўћ§§ў§ў§ў§ў§ў§ўў§њћ§§ў§ў ў§§ў§§јћ§ћ§§ў§ўўў§ўўў§ўўў§ўўњ§ў§ў§ўўѓ§ўћ§§ћў§ў§ў§ўўў§ўў§ћў§ў§ўў§ѕћ§ў§ў§ў§ў§ўўў§ўўў§ў ўћ§ў§ў§§ўї§ў§§ћў§ў§§ў№§ў§ўћ§ћў§ў§ў§ў§ўўќ§ў§ўў§§ў§§љћ§ћў§§ћћ№ў§ў§§ћў§ў§ўћ§§ў§§§ў§ўўў§ўў§ѓћў§ў§ў§ў§§ћў§§іў§ў§ўћ§ћ§ўўў§ўўў§ўўњ§ў§ў§ћћ§ўє§ў§ў§ўћ§§ў§ўў§яў§ў§ўћўћ§§ў§ўћ§§ўўі§ў§ўћ§ћў§ў ў§§ў§ўў§ќћ§ћ§§ў§љўћ§ћўћўўў§ў ўќ§ў§ўўњ§ў§ў§ўўэћўћў§ў§ў§ў§§ћ§ћў§ў§§ћў§ў§ўўў§ўўў§ў ўњњ§§ў§ўўў§ўў§ћќўњў§§ћў§ў§ўў§йћ§§ўўћ§§ўћ§§ў§ў§ўў§ћ§ћ§ћ§§ўћ§ћ§§ў§ў§ў§ўўўћ§§єў§§ўћўћ§ћўћ§§їћ§§ў§§ћў§§њћ§ћ§§ўўў§ўўј§ўў§ў§ў§§ъў§ў§ўћ§ћ§§ў§ў§ў§ў§ў§ў§§ћў§ў§ў ўў§ўў§їў§ў§ўћ§ћ§§§ў§ўўў§ўўў§ў ўў§ўўљ§ў§ў§ў§§ъў§§њ§њ§ћў§ў§ў§ў§ў§ў§ў§§љў§§ўў§ўў§§ўћћ§ўў§ўў§§ў§ў ўї§ўў§ў§ў§ўўў§ўўы§ў§ў§ў§ў§§ћњ§§ў§ў§ў§ўўў§ўў§ўў§ўўљ§ў§ў§ў§§№ў§ўўћў§§ћў§ў§ў§ўўј§ў§ў§ў§ўўњ§ў§ў§ўўэ§ўћў§§ћ§ћўћ§ћ§ў§ў§ўўў§ўўў§ўўє§ў§ўў§§ў§ў§ўўѓ§ўћ§ћ§ћўў§ў§ўўј§ў§ў§ў§ў ў§§ў§§§ў§ўўў§ўўі§ў§ў§ў§ў§ўўў§ўўќ§ў§ўў§јћ§§ў§ўћ§§ыћ§§ў§§ћ§ў§ў§ў§ўћў§ў§ўўю§ў§§ћ§ўў§ўћ§§ў§ў§ўўјћ§§ў§ўћўўў§ўўў§ў ўђ§ў§ў§ў§ўћўћ§§ўўћ§ў§§ўўш§ў§ўћ§ћ§ћ§ћў§ў§ўћ§§ў§ћћўўя§ў§ўћ§§ў§ў§ў§§ў§ўўѕ§ў§ў§ў§§ћў§§њў§ў§ў§§ћў§ў§ў ўќ§ў§ўўў§ўўў§ўўќ§ў§ўў§ ў§ўў§§їў§ў§ў§ў§ў ўќ§ў§ў ўќ§ў§ўў§їў§ў§ў§ў§ўўї§ў§ўћ§ћў§§ўј§ћ§ћ§ћў§§єћ§ўћў§§ў§ў§ўўў§ўўі§ў§§ћ§§ў§ўўё§ў§ўћ§ћ§ћ§§ў§ў§§№ў§§ў§ў§ў§ў§ў§ў§ў ўє§ўћ§ћ§ћ§ћў§ўўљ§ў§ў§§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ў ўќ§ў§ўўќ§ў§ў ўњ§ў§ўћўўў§ўў§ўў§ўўў§ўўї§ў§ў§ў§ў§§єћўћў§§ћў§ў§ўў§ёћў§ўћ§ћўћў§ћўћ§§ў§ѕў§ў§§ћў§ў§ўў§ћљ§ћў§ў§ўўњћ§ћў§ў ўќ§ў§ўўђ§ў§ў§§ћўћўћў§ўў§§ў§ў ўњћў§ў§ўўњ§ў§ў§ўўї§ў§ў§§ў§ўўњ§ў§ў§ўў§јћў§ў§ў§ўў§§ў§§ўў§ўўю§ўћ§§ўћў§ў§ў§ў§ў§ўўі§ў§ў§ў§ў§ўў§эў§ўћў§ў§ўњ§ћўћў§ў§ўў§ћ§№ўћ§ћў§ў§ўћў§ў§ћ§§іћў§§ћ§§ў§ўўъ§ў§ўћў§ўћ§ћ§ћ§§ўћ§љ§ћ§§ўі§ў§ў§ў§ў§ўў§§ћў§§§ў§ўў§њў§ў§ў§§пњћњћ§ў§ў§§ћўў§ў§ў§ўћ§ћўћ§ћ§ћў§ў§ўўї§ў§ў§ў§ў§§ќњћћўўъ§ўў§ў§ў§ў§ў§ў§ўћўћў§ў§§ўў§§јў§§ћ§ћў§§ўќћ§§ўўј§ў§ў§ў§ўўћ§ў§ў§§юћў§§ћћњњћ§ћў§ў§ў§ўў§ Рћ§љћљћћњљјјњјњњћјњћћљљећљљћљћћїјїћ§љ–B[S:$ >V<830>8:EEHNvУэпючсхћћћїјјїћћ§їћїјјњїїјњњцїѕљњјњў§љДVN2:.!$14+-4;5*--ё>?EE@4?FBoеїчхтЭЛЖћћљ§§ћіљ§њ§ћ§§њћјјаћњ§њ§§ў§ћd!742,5;12-,34?EIOCLЦЯФОЮдЪУЧњњћћјїїћћќњ§§љљСј§љјїјљћњњјњјѕљћчO323%)*,1NGJ>БдЊМРЭгдЧШїјњјњїљїїѓњјњїјјљївѕєєћ§љ–?JJ@1.8<>?G<@GG2>`jЭБЗТЦгЭШЦОћѕїїѕѕєѕѕ‰єѕїљѕјјћљћћљјѓїїѕёѓљёŸG229+$7A7738:FW8>EuУэнШЦШЮдзЮЪЪћјљћћїјїїњјјњјјїїјћљљњ§њ§§јј§§яZ5CM797:5*7;;8-453]tЮчЧхкЧЮлггбЮЭ§§щћљњљњ§љћ§§њћјћћњїѕїљїїјј§иЋ82JO42$,:;:&"+)*C8(wдЯЛФННдзкпаЭЫћљћћљћћћњ§§њ§§Ьњћљњјњїѕѕїћ§˜@POC9*.4+*(+!$(%GOZмюёеагпышхрйЫЯњјљћ§ћћўјљљќњ§њ§§вћїњњјїњїћљм[3F4@2)&*5(.+&-3:c~лзмкжЮйтчткЫЪЖјјћњћљњ§§ўћјјїўћљљаў§јr9BkSF.)1840(22G1дмбШЪЫЯйлмйеЩФЏћљљћљјїїјїїЫѕїјѕјѕјїїјћћјѕ§§ЪZ;B54213978>1)+OpOB‚ШбЧЩСШгжжпйЪИКБљљТћљћљљјјїњјјњјњїѕїїљѕђѕјћљz.9F@3??;<::GG:5QeunЉИКЧгЯеЮЮеЫММЕЇЋћћќљћћјјїїћљ§љ§љњјјШїј§ћВU9EG;059GE9A3.$-5H(WVE‡гыьтсжЦРНЛЛТЗУЊЎБ§§њ§љ§§њњћјљљћљљћжўћјx51<>9;2>5B;7;@IbVFrЧСЋКЩЦЯкФНДЎЈЎИБДР§§њўљ§ћјїјєјјїѕѕљѕ§§ЪOG;F@@›48873442@OEjсгжжЫШЫШУЗАЎЎКИУЦЦ§ўўњјњјјћћљћћљћљјјїљјїў§њ•bO;FC78)2413.4-5PE\ЄьюШЫЩддЭСЗВЛШФЋЊВРњљљјјїїћ§Ьњ§њ§љїњљ§љ‹BEMC?B97B9?E<99>39>‡ОЪЮШМШзмнпмаЛЏЊЎВЩс§ћћіљјјњјњјћћјјУњїї§§еYE[WJEEGIAJBGB5CMI.VЏЯСЧЪОКИОЋЉЇЉЏЃЇАСЫпњљћњ§ћјљљјљљћћјјЭїјј§§ђ‡UBHJ?AFJGJN>HJEЏььЪШШЗЗМКЋЃЋМКДЛгртнњјљјјРљћљњљњљїјїљїїћ§ђˆLB@B<>@?9AC;GJF?-ELxпрТЩУИЗУЪФЗАЋАМНЛЯухжћљљћљћћњљћћјљјјїбљ§љ„;>A?;2,+.-@E>FHI:;3SБулЧИЖЖЗНОЛЗЎЉФЪЦбртрм§§њљњјѕјїїќѕјљјјЭћ§ћžC:@GA742#+*GGHLOU\P<ˆФЭЧСОЦдЪЧИЕВЛОййпцьпЯЩљћљјјљћњјјњљїїФјћ§ЩmQCEC?:0+4&:uQPF>E]uƒгхЫУООЩЫФЗЛМСРИФкхщхаЗИїјњјћ§њ§ћљјљљЪў§ї‡L.0038397A@JLCBJeq^vЃЭСТМУмрйдЕЏАЕЗДШезйгШКЎјјћћњўўќ§љћљљФ§ћШd;7+4:?:A>9<>CICL24?>ŽОЖЉЛТЩййлаЗБЕШЭайжкгаШЕЃ§љћћљјјћјљћћ€Жљѕћј”7A:;@@79:>99A>ACMIFmЋѓѓёйекжаЫИКТКФЯЭаЮЫжлеЧОМљљћћњїљњјїјјњњў§єg?\?B;7^>A|аѓѕысжжедЪМОКДОаЯбаЪРБЊЄЁЇћљ§ћњјїћњљћљћљ§љУk‡ˆbNFB49:413?8.>7W‡ЭгЕАЇКЩЫСДЏЕЗОЫбезЩНЖКММЊЃћћљљРєјћ§љјљјўћ§wBQJ1.&+34>78@C<&?ŠлжЩННМИРЕТЪОФЧЭЦЧЩЫРЗЏŸžЂБЈ§њ§§ћћ€Т§њ§ћњњ§јАTCPJFS@842>:>430BB\hЏынсмЮРИОМКСЦЭЮеЩЦйаЧЮМЁЇЗЉ§ћљј§§њ§§ћјњ§§цrZA50BH?9;;874<>;"VТаЮехлаЫСЪЫУЭаедТМкЯЎЗ—ЁЂPLћљћјј§њћљњјњћћЉd`MSNU;;08+2;<:2IJQЎршбЭЮпздЩОРЮлрхузОЖИРЯНЇ•m>9(ћљјљћљјњјјћ‰pVb89HL,5"+4?<@%#@U|ЭчмжЪЫЫЭЮмдезхтнлаЛЖЕОаЩ–b<$!ћјњњљјјњњїњў§Т;YYBI;>0*(2110@>YjVУабЧЮеЫОЩЪЮазхщуййЫРЕМЫЩ<.ћјљћљљњХўћћ‡@;NNIVVЁцллпселгаЭЫШеыткгРКТНФЊ~M87$љћњћјј‰љїљљћИaWUSPL82748@;4GPiYQЖпржйлушежЯаакпмпкФРКШЃb4.#јћљ§љћћјў§§ЎcBM]NB;31AEEGF:88TT™ярмЯЫмухссзжкмнзйдФЯйеr&"њћ€шљјћћуnOEMcM?;FLIGIC?CNPL|ёюбкебййлжШЩЩФджкОМКЩьУP2 јїѕѕїїњї§јЅME@JOC@3FHA2;<@GGLGЁьзСТЧЮйзТМТЗЛЫддЩУИТмл‚ & љћјїѕїњћћьvMJBJC??F>0:42?>IF@•ѓёеЪЦЭаУООТМНЦЪайзЭЩеуЉB! $§љјћћјј§§Ю]\`AFOJCB;8::3>*38ЕѓкЫЫШЭЫУЧЯЯЫЫпрккШзаЗЌe.*  §§њљјїњљјЃZMWEOIJ:>C:58*<G>9B@>FBSUQkдуЫбЩККЪзцэђѕѓьсаЛИЁœžБЏЇЉn)!8-  ћ§§љњј§є{EW.,@FB98FLF:5:C57bКёубЯСКИЕЦТТУСИЕЃž…‘ЗТТЗНТШЪШЮЯкуцысЩКљїў§ыv?YMOCFNL<8<:<:;ZO.eїїяйжЯУОЏВЛЖМВДЏКЄ˜ЅЖМФШШНТЧЭбпхтркдзЫЫїєљћдc@@L>7GF:;98C9;95HЋщусйплеЫРЗИКАЏЕИЛЋЗТМУбйжЩЪЭеесьыржЫФЩЭњњћ§ћ…MPTZE:8@9ABGCB:A:oьянйнпхйгекжЩЛЏЌЏЗИТЫФТЭдзркгспучужЯФШЮЪљј§§љi9OuUFJJB9CHTLB.)7ŽынЛЉЩнхпдЯмзеаЗЋŸЈИбгМАВЩзжж€ЪелппзаеаЪЦФѕђљэo.&;JNEA:2:3+8C>87.4<‚цямлпхюящцркОУМЗРЯааЪЮЗНЫлмнмдежмупйгййллїћљŸLbdPF>CB8+-:74#7,`МюнЭамщытпцсеРБАЎОЫЯаЮЫЮЮЭушчрйекрчтжбШЛММў§ћћњњћ§њљњљљќњљњћћнњћњћњњљњўў˜E`UACUE??:8>ELMIH~Эїўўјјѕњњћњћњњіћњћћ§њћњњљљўњљљњњјњњљўўпЕ[P89;.2.23287335;FCWУўўљњєёёњњћћљњљљњћћ§§ќћљљћћњЮљњњљўўЛAFMH5>IGmцўћѓѓђяяћњћћ§ћ§ћ§њћћ§§ћњ§ћ§њњ§ўћўўгd">;&2:<;4>;9?EJQVOWАщљѓыєєѕђяњљћњњљћњћњ§ћ§ћћЮ§ћћњљњћњљљњљњљўўяT09"&,.,5@AB9:?>>?<11\uVJ‘юјёяёђёєїєђёяяшћћіњћњћћњњљљњњљэњљљјјљјћўў|8@FB<;C>>цAEL?AZmz}Шшяяђєђєђэяёэюёэњњњћњњ§§њњїћњћћўћћљњњбљњўўЛ\8BM:7;HJMIFNO?*.5eсўўјјїєјїїёяьёяяѓњћ§ћћњњћљњћњћћЯўћ§њњљњљћў§}:(LB77@@?:*2HA7#(xїўђѕѕјїєєђюђщшщцщ§§ўћ§§ћ§ќћў§ћћЬњћњњљўўЖE+8>9<:9-.0:N40`]Wўўњёёѓєёьыышюхщчш§ћ§ћўћ§§ћўњћћзњћњћњћ§ўї{73:>?>5997>??;<0UChМўўђёѓђѓђѓёёьщшышшь§ћћњњљљЦћњћћ§ћ§ћ§ћћњљ§ўў’GFP@E>3HQ‚њўюяюэяюяюющшээюѓѕєѕїњћћњћњћњћњћ§ћњњљећўў~9BAE<53404:?EFMNA8;[Эўњэяяюьэюяэыььёѕѕїїњє§ћ§ћњњіћњљљњћ§њњўўаЁ@??G<4258-4FNPSVb\W>яћёьюяэюэюяяэяюѕѕїѕѕєђћњћњњњљњњљјљљФ§ўўЮvVJEBC<220+@xZPM@Gm‹ыўјююђюёюячшшчыюёѓѕїѓэюљњљњћћ§ћњћ§ћћў§ўўвˆN&81;::9;:ELHLHOjti}Оюьюёѓёєїэыцщшшюяёѕєєђюхњњ§ўћўњћћўлаk<.13;;><@:9CH@IJ<9ELЄяюхюяяюђяэющэююђэѓђѕїђюю§ћћњћњњр§ћњњћћњўў9A57AA>9?74;CJGJQJBnКўўщљѕѓђєяђюыюэюёёѓєђяюьццћћњњљљјљњњўљўўЧn@`HA@8488328@C>GhCF„рўўњяѓєёэщцхчыэюѓђѓёюяэчуцћћ§њљњћњ§ћћўЭЫk‹ŒmMB;:5:<97;@8*:4Zёђкхшшюээщчцьюяђѓяяьцуцсткњњћћњњ§ћ§ћњўўл~BVF5%&5-5;9>>BE>$2E—ѓўѓэщщэьђэьђюёяђђіёяэхпмлтг§§ћ€Пњћћ§ћћљњўўАTBJN@VA89>]]?CFC*12279BLEarSбўєэєђђѓэяяѓєєѕѕэђяящьђэžH:&$3њћћњћћљўЩ‹A:>NOGF9325:8NMOZ]ЈўўјѓђјѓѓёѓяєѓђљјєєюёэёЮSBF8.-ћњ§њњСјљћў§ЛdSUTNJ;:113:>?LZqZ[ЫўћђђѓєєљєєђєђєєѕђёыыїЯvA72(+&*§њўћћњњк§ўўЏi?M]SC8>B;@EGBA93[ZЇўўњѕєђєѕѕђѓђђєєіёэяѓўћ‡."##з-)&њљћњћњћњўўэqPFPhH?@JSLMGBACSOP‚ћўєёѓєєяшђяюєђєюєэюїўбT$$:&#њњљў€пЊNI9IGIACMNB?5?AFCOGЊўћэѓђєёяёђьэяяђђѓэюёўђŒ)%#"&#%ћњњљњљљўўљ~QPBFLIFGHB5779BTLB•ўўїёђёюђѓёэышьєѕєѓђюћўТG.!0#(#ћћњњћњњўўдd[eGHOQICAA??>:59!8Оў§ђёђёёѓѓёѓёёяєѕѓђяюпЯ{7-!#,&§ћ§ћњљљўўЉ^LVLINC@?;;?92>>N§ЛЦэщюђђѕєєїїьѓєяњююд}8,(("!"њњљў гueA8CJG@8<:?CHBH~iVЄяБшљёяѓєєѕѓѕѕїјјѓѓхрпщЭt?)31$(%ћњњљњљўўзN5OZMF@A?>:<7@LHƒxiмўљћюэѓєѕјљїїЮєѕјяшхемЦg3+29,(,.(!%ћњћњњљўўЩGB]TN@AC>??98++7G^œўўюЛьяєєїљљњљјєђєюхмлсУŽ2#35,)!!&#§ћ§њ§њўўЋ5HJJF;2<><@EGHLYTpнўэююяёёєјљљј€—ѕєьюцсншцзЯw,+<:427A|яўюёьёяѕѕјљњљњјѕјѓщснппэкьцb-3B*)(7ћ§ўћћўўт^;YCIGBFOOQA>7929nЏўўяюьшяѕїљњћљљєєёппнпрххыюјК|V@A87.$;ћћиљўўдaJVdC90,GYh4?FY.5]ОўўёэчыюўљњљћјїјяццяусхььятЦk.#01:.;љљ€€њўў?3?IGAFB>955<@25?A;7&MЩў§яяюыяяєїєѓђёѓђчнмйхщьээсяэышёђтчђз™xћњњўўŸE^q[QE@89<<8??с>18nеўћєёёэчщьёђђяяюпзздлёэюёюёёмђюѓяђюєшеФћћўўю}@ZHHQVUJB?>@B@@\P3oўўЈїѓђёььэыэыяььымлуэюяђюяэюёђєїїєяшщркљјћўк•jJGM@@FJ;4@C?@>28MДўўђјєєђяюђэчцхчщцщщьёяяђђѓёёѕѕјѕѕѓюычхљљўўТŽN[Z[B@>ACAHHB?@C@{ўўњяѓїѕѕєђѓђяьчхчуыёяяююёѓђђїђѕѓѓђєёђьыьћњўўцpAV{[QEBCBCPOLB3)9Ёўўхыэєѕѕэјєѕєьэцххыэюэыэюёѓђђєѕлїѓєѓёяјѕўѓp,&BMFG@;?@EILE@35jбўўёѓѓњїїХѓєюёэяьэёђэшцщюєђєѕѓѕїїєѕїјєѓђљўўх^VJLMFCA9;;<@9514<‹єўљђѕљљшњјѕюѓээюяёђёѓэёэяђѕїєїѓєєнѕєєђђяяљўўЇNdk[NJIH?49AC:)?8bЫў§яјѕѕїїјѕѕђюьшяяќёђѓёёяѕєїљјїїѕјјїїєђђюэ§ћћ§§ў§§ћўўћћїўћ§ћ§ћ§ћ§§ећ§ћўћњ§ўўЈOrdY9-VmVYOSNU[\^][Їзѕљўўђђ§§ћ§ћћјўћ§ћў§§ћћќўњ§ћћў§њњћўоШn]CMP7GFOLFQLJOFYIWQkЮўћѕѕєрнћ§ћ§§їћўњўћў§ўћћэўћ§ћўћ§ћћњўўЩNS~{dMMлSPQUOS\a\IQbYxхўѕѓящдЮћ§ћў§ў§ў§§ћ§§ў§§ўѕ§њўћў§ў§ў§ўўШr%5ILAULOO`OPPUZ]cn^hНхумбтючнрњўћ§ћ§ћ§ћ§§ў§§ћ§§ўћўњћћ§ћћи§ўўјe?G8;:CUUYYGPJVZIo^aYНшТбетэюумњћњћњњў§ћћќ§ћў§§ўўњњљ§њњљњјўўгЉV\ePA8GPZVVQOZeYHVzЁцЮазйцпсркћ§њ§љћјћљћјћњњћўњ§ћ§§ећ§њ§љњјўўА]CGQ:IOMUQMILO^}PVY‘йўѓктмпщцупућћ§ќћњўћћяњћћ§њћћ§ћў§ў§ў§ћўўкmF[bUBJLIIMLYLJWIIx‹тљрїюмчышышср§ў§§ћћўў§§ёў§ўћ§ћ§њ§љњњ§њћћўлКHF`eNFEHNVNFJCIAWC8‹щьжкндцьюыцрр§ў§§Ьћ§ћў§ў§ў§ў§ў§§ћћњўњњљ§ўўЏWdaWLBGICGIFLALC]amэўўёэщыєєљяьучћћ§§ёћ§§ўћў§ў§ў§ў§§ћћЬўћўћўўюqBVMTJIJNWMM?GLY3QxЃьрђщрпщяђђырпЯћўњўћ§ћў§ў§§іћўћћњ§њ§ћ§§ў‹‰L]‰qYW”nadMTr”ŸщєнЯаЭзмжЮЭЮЭЫЮлщёѓёщЭањћћќў§ў§§ќћ§ћўўаž]@@GOIQSJMW`j][a|’—КубезйыюэхШРСеЮЦжшщэчпгЧћћ§§ў§ФћўўзzOFFGNMTSMMJV[]\^PLWUЇеЭЧнЯлххщмШЦЧмсцччьюхпУН§§ћ§ћћњ§ћ§§фћ§њўўЅH]PFWWNSQICHS[\gd^V‚УўўмѓђыышуагнерпхычшээцзЭЮћўћ§ћ§њћћўњћњўўЯ~SxdYVSH?GFCHQV\YubW–тўў§яѓьщркЮЩЩЮйхчьтсзЯЦНИТћ§§ћ§дћ§ћ§ўўн|žЊbVWMEJNMOMPT;L@iЁхтЦЫЧбкрдЧУЫгдсщщїлеЪЮЮЩОН§§ћў§ўћ§§ўњўўŠPe^GB@MMBGHNSQYP4?MђынгЯЩбгбкпЯжйплстхеЯТИДКОД§ў§ўћ§ћў§ўћћњўўСdZad^qUQLMQQVLPOL[pЧўѕђьудбЮгбжденчлзщьстЮЖЕТЖЂ§§Мў§ў§ў§§ћћўўѕ‹qWG^Z\SYLOHGLMU[::(gдхрчэшхргзржпчыткнцхШЩЈНРa[§ћ§ћ§ў§§ћўЬЛx{egjjPCQLLIQSSJ^bmОў§цмсьётдЫжуяюђёьпаЯйпжЛЊUG>ћ§§јћ§ћўњўћўўоp{F@`d9813?7-ћ§ўў§§ўћўў€ЙТuS[zqW\VM]YaWTYMNkcЌўўђцхяёђёюыщьёыяырахѓщ7.*%.4:&)њћћ§ћ§§ћўўјˆgYkƒaYShjkbbZPTbgcŽўўэчщыьэщхмрткщьщжееь§б\(3B3(,"-+ћўњ§њњћњўўКaYUi^^W]gcYHTLT[WhWЗўэцнстэщпдйЯжсщцрзамѓь*(00-%&,1ћ§ћњњўћўўХdc\a``][a\PCQOUj^MЅўўщслхтнмдкдЫзсыяылзщїКG1!$++2)%4<ў§њ§ћћўˆрpp}^hibaWTNNPTLEL2FЧўѕнцкрцскухцмьююыььхЧОm?5$+(7#*$&§ў§§ћњћўўМqajZ^a]WSSNLL+9PP^ЎўББйпйрщщшђёѓѓђђёхцѕчйРz<2-9#&)#+ћћСњ§ўўт„rSCbi]TWN\VV\UU’dВц–ршцчрхэьяѓїѕїѓѓнЪЯФЮЎnF--;:87.31-ћ§ћћ€§ўўч\@oubdZQVQWUTQ][ŸŒ}сњэїжсуцэѕєјѕљєјѓємЭЭВЖЎa?.4<<8;79,2ћ§ћћњњўўмVYwob]UWaUY[LP?AWmАўўјмЭбйхюїјљјїєђььеШБКРž…?2CF<2.*05§ў§§ћўўТЗH[a]VVZQYQPUZThoaыњртуЯЪпяђїљ§їєёцбаНИЗЫШДН‚01LJ*(+-%9§ў§§ћўў€<[iPW`[VLTQQTJJHQPˆє§тдгдмцђј§љљєёяьнФРОВСЭРйцm;>E:,2<>:ћў§§ћўўыrUmZ[^Va\ch^LHHBG~КўјнЮЫдмщѕљ§њјєюшдНЕВЛЗТЫапѓК‹^CH>@;5Lћўћћњўўхq`e|]T`9Zr{J[YdBBnШўјпдЩЭтњјљћїєяяеФКЗОТСЧЩЪклжУr8-9>A?Fљ§њ§ћўў‘QCV`YSOZdZ[T]PTB`ЎаёыпеанњўњљѕђјьдЧНМЦЩйЮггттйбЯАh:9Np‡Oћћњњўўсur\[UQMOZZOCTJC%5ZИўўчдеауѕљјящьхаАНЛИМТбЮЯгмпаИМмгЎЗ‘}qBћћњўўа”[PVW]WOLUU[JQINA;^бўєтйгЭЮёѕєюыылееСЋЊЏОЯжбгжжззˆтшсщђмЄ‚§ўћўўЏVu}nd`[S\LNQNSPP>L{аўјуцжШеккпзрлгаУЖЂЉВбмдгйпуспцхяяѓѕэгЦћћўўї‹Tpag`eejUYQSZSS]dEwўў§ююшгЮЩЦаЯжЭШЧЩЛАЛЯЯммАагерьђёђяятукмњћ§ўуЄ{^W`^`]ZOSPSNPM@B`ЛўїюшыщэузЭбЩШТЪЯЫСЭдежучылсхьяѓѕїѓчлйнпћўўйЂbomq]S\TZ[`[ZPSPI‹ўўѕшщѓђёщэшэндЦУЦЩЮппьеутыььыёяѕёђыцднпсћўў€ЗˆSn’naWYZ^]Y^ZSB7FЏўёЯЩсюђюыьюэтуЯОИФЫхцгЦЦкцхыыэьђяьхщшчрсљљўћ{84\mhTUNOV^^[V[?E{зўїрмщћєѓюьышцржбгжблкЭТЯмцыщцыьђёєяѓёђэщњўўѓji]`ZVOOLMQYOMJ>BJ–єўэыяєњїљђьщкззаецхшунЯЯсьэююцчыёёяьщщэРњўўЕ[qztb`^`OPT[TO@PGmбўэцрэѓљђяёёэзЧЮЯзуухыхрршёєѓђэщэєїєюымебе"ўwџџ!ў€џџ ўwџџў€џџўwџџў€џџ!џ!џўwџ џўwџ!џ#џўwџ"џ$џўwџ#џ%џўwџ$џ&џ&џўwџ%џў€џ&џўwџ'џў€џ(џўwџ)џ+џўwџ*џўwџ+џў€џ,џ.џ.џўwџ-џў€џ.џ0џ ўwџ/џ 1џ ўwџ0џ 2џ 2џ ўwџ1џ 3џ 3џ w3џўwџ4џ6џ6џ6џ6џ6џўwџ5џ7џ7џ7џ7џўwџ6џў€џ7џ9џ9џ9џ9џ9џўwџ8џў€џ9џ;џ;џўwџ:џ€шмЮУЭЩаЩРЛОЎЋЏВАЌЅАУЖ–ЄБДœ‰ŒЂ–™ЏРДЇЋЏЎЃЇЅЃžЇЖаЭТНбЧЗИЖЕЌМФЭмцюшЮаЮМИЦдгЩЎ”™Ѓ›ЋЯйЯИЖЊЄЎАЕВАЈЁЇБУДЃЋЖЄЋЕЌЂ›ЎШФИЏЛРбЦАДЖБАФЯйшюьЦдЭгжсуаЗŒŽ™›–•›–˜‘žЖЌž™ЊАЈЁЋœ•ЁЌЄЅЃЃЊЈЅ˜БзЦШЭУЖШЫегКЏБЦЭчюьюьЪдкнмгФЦкИЃ”•ŸЇЁ™ЇСЎ”’ЁЉЎА™Š‡–ЃЉЅž˜ЃЃœЩэшбЦСБКДЕНЩВФЮмчцчрпмРЭЮбЩМЉЁž”œЇЊŸ—‘œЈСЯЪЌЌŸЋЕЖРМœ™ЋЛЉ—”‘ŸЦНуыысЭОЌБИДБЖШСЪуцШбдлпДМШЦШОДЉœЁЄЁœžЌИЎЊБКНФМЎЕКЖЏЃŽ’ЊИЎ‘–™ЯхшыуаЖМДДЌФТжзнпсжЩНЖЛЪНКЛУОДЌЂЄЅЋБЊЊЎОЖЅАРЛЗВЈЕШЛЋž™ЈДДЃЋЃЈЕаыёэшрЮУФЖФИРЯйчђёюхЎЅЈОРЦЦФЦКВЈЈЛЖЕШЩШЦТЦШЦДЗРДЋБТНВЅžЅВОЄЂŸДРжёьшлЪОУСВЉЌЌЫлэяђящдЭЌЋЕЩСЕЖВЕИЈЊЦНЎИУФТЧШОЧШИЋЅ›ЇСТШЈЈ‘ЗЖw‘пђьуйЩЭТЩМЂЃ”ТШцёїђьшВ…ЉФагДЉЋЄЅŸ˜žБТКЎДИОУЛТДМИЎЊЊКОЛžŠ~•’iq•ЕСрхтеЯЌКЄ™œЏМтяэёёыйЧЎЌАКМИЈŸВВАЊЊЌЧЪЩФЛКЖРЪШОЇЄЃЁЇАМФЛЇ‡ƒw„КбчѕїююхщдЎŸЂž’ЫзэяђяюсСВВЄЋЖСС››ЎЗЪРЌДМИОЦСОглкЧЂ—œЃЄЅЇ‘{‚|ЇДйђщушмЮФСЄЁЏАЗЪцхяєєђѓнДРДДКОЦНЂЂКФТЖВЛФОЭдУФЭЭдкЎЊВЌЊŸœ—–—ЇЌМДеуслаРКОРЖАЁ’АхшяююыушКЉАОШпе•ДВТШКОзмЪФзрмзФВЎЁЈЎЎЋЂŒŽЈЗВФЉЌЭнуркТОШФЛЃžˆ”ЏрюђєэжРМЗЖЖЗЅЎА~tЦЦККНМЧднсузгРБЊЉ›”žžŸЅ™—žžЩФдкдптыцзФЫЪНМСЕДсљїђяючЫКЦКМЛŸ—ˆŒžДУЛФШбнуцсйгЖБЅŸžЊЖДЃЊž•˜ЂЇнгмцчшртхǘ—ЋЗЛШЪЫхюяђѓэьчючФЉЏ‘}Š‰ƒБЌИЭтчьяулЮЛИЌЂ˜™ЂЊЃ’’–˜ЃЉŸНетсйЭйнЛ—Ž”˜Ѓ˜ЏЕмыѓёэхнЯЫЗБސ‹Š|‹„ТЦЫпэёэшсдЧбС’œЈЏЛРБ–ŠЌЎЗДУснеЯЫдЫЕ‹ЃЃ„ЖрмёяяцчнННАЈЌБŸ˜ž–‹Š„„ЮШЫпэчуеЪЛМ͘˜•ЊМКДŸ—}ŸЪхрщььнеЫНЌЌЋЃŸ™НдшѓёёэщшзКОКЈЃЄЉВБ˜””БЯрхчщзЮЫНЭЛЇ˜ЈЄАЖЎЈ—•œИляюшхлШЖДДКЗРКЇИстэђяштпсбдЛž‚…‰}ЋЗŸƒ—‰мсшцчлЮЭЌ‰˜”ЄЎВЏБœ‘•ŸЧуцщзНАЋЊБДЖЏЗКШлыѓєѓёсжСЯЯИЌ™r‹–АЩЁˆ‹pwьяцстЭЮЪж‡ЏАЋЌБАЉИУмѓхгФРЗЏЎЗЛСРазуююяєёьсзЭФЎЕЁ‰„–СЩУОЛŸРрулбЮкзУ—‘œЏБВБЋВМНЫрццхмаИЋИЦЭаРЗЄЉЯыяѓёэщнбЪЩКИАЉjQАŽЅЗЉ›БОЋЮгежжгРЎ˜ŸžЄЈЌЏАНЪзлшэупЦЗЏЊЈЕТТЦИСхєёђюяцЮЦШЦРОЃœ™]YS˜ЇаФЛЌЂЕИМжЯЯ€ХЧЖЊЂЋЃЌВЂ˜ŒУЩгебШЪЮЦЇЃЁЂЏБЎЋЋтэђїѕёыдФНСИДЋŠŒЂg‹ŠВБ™žЅМЛОУИНЕВЊЃНЦлС’…ЈЮмгркУЖЕУСВВСУДЛКМзїђѕѕєьтЭКОЧЖЌЈœ™’’ƒƒЃЇЅ™•АЛМВКБЃ”œЄЏОТЯˆz™ЏмѓщхжЩЖДЌЏДТЪТжклпьђюяэхЯЛАИФДЁЁДКЈЎЋЁ›•ЂžЕЏБФЭбеœЉЉЅЃЅЎЎДНТЂЇОждупбЪСКММКРУЩЪббнэєяьцеЪЛЋЌАЏЇŸžˆ‰w™ЃЁЅЈp„ЛШЕЧШЫмБЏАЗЏЌДЊЊЈЉ›ВЪэђыргЮЦОЧЩИЕТУФЭчэђѕђьллЭЭШЄЂ–ЂА’‚‰‚ЈБЫжВшуУСбаШНОЛРУИАЌЎЖЗОУйёшшткЩОЗИНОДЗТУацёѕїђэттгЦУЗ‰Š‹ƒ{…•ˆЄжлЩКЧШЧТРаЭЩОАУЪСЋЊЕЦАЖШмугЮйеЦНЕВЏЋЗЦКСкщяюэщрлрЮЃЃЇЂœ’Œ‡…‘’‘•ЄЪжЩКБЕВЇЄАВДМŸУгТ‡tzmuЃхясЧЏЁЎКЋЇŸŸДЗЧгцђєђёсЯЩНЕЅЇŒ˜œ•…™•ŽДемгтплягЋРЁЄОНЉТЎ‹p^JMVgn^{НЫЎœАЖЏЂЌКеэрщѓђєюыЮЛБЖЊЁЁ‘”™Ž…‘—Ё—ЁЇЭдмчмФцУ’–‘ЂЖТhO>4BB;BUmSM5VˆЁЇРДЉАЏЋТмьђѓющЯК’ЌААЈ—ЉА˜Œ—ЈКНЎЃЏЛЮбгЫжЃžЉЌЦг"(,<^[N205:^œдЦБЄЅЛЯхьшццпщВЂЌЎŸЁЊЏНЌŽžœ’”ЧцгЩЕКММЛВЖžЂСДЇЕн..& &UHUMO>842SЗУаЯапытаЯЩЫСЄœŸ›ЄЛЄŠ„ƒ‰ƒzДдбеТЧЪОЏЅЈ”ŽЖОНИЭ&,).$257-5C<:;qЮѓщптШЅ—ЂЎЈƒЂЇ–oz‚žЮлСВБСФУЯэ昘ŽЅЄАФЛЋЋД $#32$#.8ALOIbНуюхлЁjz—Ž‡ƒ‡ŒЊЌРДеьдЧНКООЦб›{”œЃСТРЄАЕЊ!<TЂЌЎЩУv’ЅЄЊЗЉЈœŒ•ЛКЉЊЋЏЌЪЧЧУЕŠ|‘ЌЦТЖНжЯРЫнпр!&(9C<:EaPM}ЄНАУ—’ЃСМЈŽoqКРСдМЕЛНУжнзЮЃ˜‰ЇŸТОЫФМРАœЗЦР+))!2AIC2GF?>@\i™ЗЌžЅxZvЊЄ›‘ЅЄОэаШазжТУЛЌЧТЛИМНТЧФНСЛЖЉ™СпйФд $,OI>LMTj|Ї›”Ё|ˆЕд؋™ЌЏТЯЪОНФЮЭгНЌЊЄЗЈЂЖТШЧЮИЊЁДЏгнб˘!$!!9>CNIM@Pk…‹‰…ƒ—ЛВ’‰БЗžДНЗЗЏАЖНУШЖЋŸЊЈЉИЮстаСЗЈЈЏКЭЫУЌБ$*$5[SJVMT;P›Ї‹–ŽŽŒŒ”ЂБАОЪОНЖЕЅЉОТЛФРКЌЅЕУКЉЖОЩЪЧЗЄЉДВЕКИАНЖ>%$!+-+CjLIJFETНЋ™›БЏЂ–ЅŸЖаЮзбЫЧЗЛЧЪЧБ—‰”ЌЉЌОКМазбКŸЄЖТНЕДЗИЊЏ??:?HBBOQF>]QFqЂЃ‡ˆ˜™ŸЁЃЕВЎЧНЛНТСШНЮЩЏž’˜ЋББЌЖЕОУЮжРЄЏЛУЌ”œКЖДЩ8;TGFnQ@TS^tˆ–Ї–‡Œ˜”ЉЋЏБЋТЧШЫбдЫОЩФОŽŽ€˜ЈЌДМЛЏЏМШЧБЇЊЋМЫЭд’ТЪЧЯЮ&?\Z\j‡iUeqŠЕЈ„—Œ„–ЃЈЅŸЄББЎКТИЧУЦНОЭлЈЃСВЫЫЛКДШжпкФЎДРЮЯаМЕЭбзкз™ЊТИŒwwЃЅЋАЂŠ…‚|ВЕАЉ™ЃЊБСЪЪМбаЩСНКСЌ—ЉЩаЦИОЮЩТЖЎЅŸДЪйЫКИЉИжскЩдснйзШЧеДЅŸЂœ‘‚…‡žЌЏ•ЈЧЫЭЯемаЮЇЃИБЋžЊкШЩЭгЯбТЛЖВИФЧжШЦЕЌЦбжШОдййчхМЎЉž–”ЂЁ”ƒŠŒЕБЕЎЅАЫдаЮЭдЦдТž˜žŸЈЎЕЗбмжИЖСТСТЦИИЧптзЪФепмпЧйдбЯФŸ‘žŠŽ”ŽŒ’”‡НФСЯгдЮЫлткгТЊЈМЕЗКЛМЦЪЮЖЋИЩШЛЕНИККДЅБЖапкШЌаЭЧЧЖЇЂЃŽ‰„‘–~v˜СКАМТШЭжгЧШЯЭЦВЊЌЖЎЃЄЊИЖОЩТЦЛЛРФЦЖУЫЩИЇЇЌИййЩРВблЦСЇ™™›nЄДЎЌЄ–ЕзбЫебШЮйбЧЗДДБЖБЖБЎЉБОЧЕЮТЖЈЌЕОТЛЏЕИЛДЌЊЗЫбкебРбЛОЗw”ЇАНМДЏЄМТЫЯнпаЫаебЦААШЫЩзЮТТЛЫагбТЌЏЌБРФЕНЧСЗВЖКЩФгрсаУЪЕЇЃЅ˜}g‘ЗТИЋЅЇЋИгзнмсчзЮЫНОДОНШжЯЛЈЎЖНФЩЦОЏЃИФМЗЛКОЗВЏЉНЪкжбггЭЕЅ™…‹|t~ЋУДЎЊœ˜ЃСжутлпбСНЖЃЄЖДРжпЩЖЏЈБЕЗЎЊЏДЂДШКБРЮРРЖЏЉИбйжакйпђ€їыяюяььутчцщчщьёюѓтзжтуснмксхщщэщххчшхттсхэьяёѓэѓѓээьяьяѓѓјјљѓёяэхщяёљчупсннтышышюырлрххуутхчычщщуущшцшхтучюяяэђюёѓышшююѓјїјјяяїѓѓђђєяеумссппйаЯанчшрссхусрлпсутхртщчхцкюњђяьэђэёёяёььюїѕѕїїјёяђѕєѓѓђљюуцтртмлзнсщцхнлмуцсплзктцтллнтнлђўўѓёыыцюьщцђыяєѕѕїЭєёяёяёэслмсуцтрнмлпцшыьюруцщэыутжрцутмлттёюћєїђёыьщщ€ТюыёєђђјяђѓєёьыююэыцхухуспсчцшшщщюычыьюэшмкктччуунЮеђ§їѕєяючщьђьёюєєѕѕєяьэяяѓёђююэщхуыыщычыыэяющэяыхыюыьцнмрцхцущрчяћћєѓђёюшючёёѓїјїјѕћчьщщяёюёюёююьщюящююяёяььђяььыщшщшхсхшшьрхьюѕ§ѕєђяюэьчуухђїїћћіўјѓщюѓюэышш€ŠцччшюэшщэёяюёэююыхшьщьєспмачшЮМЧѓ§ѓђяяёэчшщужэђјњћљўљчШшэёююшхчупрршщюэююээђэёьышуушэчпаУЯЦЉЖгчюїћїїѓююурржыюћўљјјїїђыцщюђѕпчшыышшьшьэщыэёёэюёчтррущцѕятбЪЛНујўўѓјѕѓњїчммпкѓєљљяјђђщььыэьєррцэщыююёэяѓъєктмсуухнтаЖШТнрѕўњѕђёёЈынрхыэѕ§ћїјљљўѕлыђяёяѓњчхцщээяяюѓёяєєђѕђћёщучстпклкаЧсчсѓєѕёэяяээщсреь§їїњјѕђљшщщьь§єбЦььюэюяюёѕѕѓєѕёёяшчспннакдксюьѓчнѓѕјїёђёюющчнЦбчјјљљїђьщээьячунЩОыьяюэёѕѕ€<єѕююэщттцтутнмнмйђёяђјѕїѕїѓђююђђээујўўњљњѕєѓэёюёыкгЭккђччыєѓїјїѕїяэьхпнтцхцппллпсљёѓѕѕєєљњубжушьюэђёѕљњїљјѕўўѕццмШагбаыьшяѓјњљљїєяђхрпрцщшткжедЯйщѓїјєѕёїчедпнмгущёѕјјїѓђёыттЮШШЮЪЩУЫдёёђѓѕјљїѕђёїђкнрцььштрЮтцушшђєєёђэшчдрсЪцѕјћїљњјђђэюьщёчредбЭЮееэђєѕєѕђѓёыяэжлмршюыцкЖкљўћўјѕђяышшыышткьє§§јњјљѓёсюючххптсзЯжйкчююѓѕѕєєрюѓхспйущшхрплгыјњѕїѕђюьыыщяыьшшїїњљљјѕђѕјђцЩЭеФсупЦбждОјљїїѓђѓїшСзптцшычсжжкзэњѕђѓёюшщщьэёђєёїўјљњјњєѕюэяянУЮбйшњчЧдЮЏБјљњљєјєѕћЮмршщыщьхЩсьюјўїѕѓььюёюььюьёєїњљљїьѓёяёщсгЪШЪеѕцћѕяцляєєЏїјђяёеЯтуыыщыщэшђјњїѕѓюэышэяюящьлёєїїјјѕєѕєюяяюцШЖ‘дыжьщыюшхыїєѓєєёёялнуццхцшыюёєєшјѕєючхцыыьшэьћўјљљїєїєђёёЊхкдЈž’ащњшхрхыюэєѓѓђяючщушчурлЦзюяђёяђёёђюццчхччщтљїљљњњїїѓђяяьхгЯтЧДЭаЮшсрмутьэђяђэыууЏшўѕЫНлѕњїєђёюющшшыщыёььяѓўљњљљјѓђїђээщхрЮнббШЫуцтсзэыюђышсспсучшэњЧЊТчјўєѓђэьщыщььАѓюёђѕѕїјљјѕѓяяюыщшьщххуцупрпнхюяюђђѓшттрнрсутршЮЮцѕїѕѕјѓђюэыьэююђяѕѕјјљјѕїєѓшьыччнмедШмтххтЖЩђьѓэёєёчшштсплрзгаТеыљ§їїВђёђёщэыььюѓѓљњљљјљђѓэєчсущэжабЧШшюћљьўўєєђђѕїыыцтркмпннпрэљяђѓђђяьшшщьщыёѓєјњљљ€јїяяэёнбебЯЮаебуўўэышююьющьэющчюшЯехьлехєђхшшьяюэщчщшшьэюѓїјїєєѓєђнрхчурйжздгзЯлєљђёюяэщщцщючЮхщкКЂ’‚~ЉыњјыЫОЯцтсхчххёѓєїјљјјѕяёђшпнкрркйжйеЭцјјѓжђўјшнччшэдсЫŸo`[krua~ЩѕрЮеллттшєўїљјљїњљёёаэьшпмпнллйпмзкпјєјђђёњђйнтрёёt[HGMJPM\wZVCežЯмчллКцщыђѕїјјєѓуЫцэщтххччхрмтѕєьшхсьяёёєкРЧсцьёђ2+0,8Ced\HAB@eЗёёнжмьђѓѕєєШїўычушщщухсннжйплїўђэюэёђэяёучхэуёь%%;;4;PP]TTSM>8Z˜гыѓѓєСѓѕђѕёяпхччшыстмжеддРЛнїєэѓёюьщшнмгёяђѕё).5:-1,75>ABJNZABSйьѓљїїТєђяяьычщхчсснжздзМЮѓјљёѓєюёыяўѕнхђёюђя102592989B@FB>:500WЅмюўјј€ўѓёѓьюэхпсрпЦУЮЦцякьњїюяђёюђюящчшччюёђя+$&.4:378>FGA5@C-NpЃпў§ѓђђёюэщцутмннздЯЈНяїюьшшщѓђэьшчыычушьђяё$"$!,3;5.5[NOOIUpŒЦанлсЯзєўюмлнсцщьяээяёёыэычьушяюѓєѕюяшусщёєђшж"$!-,,"9EELUVQGV{ЈФйдд€ЯтраЩчёжмтустсчюђээшэщчшэяёёєђьхушѓэяючы79+)01"1k[QS[VB^ЖгЯлезйггмьцььящшхнмхэёѓьюцшщшьяяѓєѓючщьыяёёюђьы@B3004AOmSLQNM]ЎьсйзнмнмстжцыёюяёюющюёэянксхьюыюѓђѕєёьщьющчщьщююFG?CBJCYZLC`g`”емЮежйнпушцыёщяёѓёђяђјѓшуппуыщшчюёђђьэяэяэщппщьёю:;aLEr‡TISemŠАгшйдджспцщшычыяя€žёєюяёЧйллцээььэюёяёэщюёђјјЯюїѕєђ)E][bkŠk`r…›гйЧеажмухутутхчшщээѓёђѓэўпнэяјэђюѓяђєюьюьяђѓюьышєѓѓяЎНбУ’~˜ЎСбммЭЩЧЭзумррхуыьэюьѓяђяэюђыусшюёєєѓёѓёяыыяёёяёђчьююђђжыёххсзнчжжкзздаШЪШУнурххщяђёђяєђпТрсцсхшјѓѓяёяёяяёёяѕєјђюяяѕѓєётщщѕѕскйкзжжлпкаЫзюьычхшюђєђєђїјђсмпхцыэєяёээыьюяюэяюяяёёяёёѓѕёющёюэшзЯнжаджмйдбзпЯечьяюёђѓїѓѓЊїєщцтшшыьэьёыяюььяђђэяяюьышяђѓђюьюёёэшскждЩЯжлкзЕеїёэьюяѓђёѓђёђюэшьчщыьяыьэяђьыэюёэёьээцяђЦюьяьђёмжйдЯЛпэцснЯшїїђююяяђѕђёььюьюяяэююяьёьђэяьээюьэыэьэщщЦьђѓђёёяёщшжМЫУйсёїчцтуьёёєєѓєєѓђюьяяьёѕяёёюђёѕєяюющэьыьђюээКьяяѕєєѕѕєѓьрнудЪБйѕцчцрсцяїѕѕјїѓѓђяёьёыёѓђђяяшчээяяюэёьэюёяѓяёььёюєѓєѕѕиюхлЫЯбЦЯёјяэхстшэђєїљїїѕђюющыяёюёѓѓюэыюяяъюэѓђююђёяєёѓђѕѕђєєїђєњ€БёяслплтлбЪЫЧЛНТЫШУТЮйЫЖЗШШЖЉЊДВЖФжЮРМФЦНМНМКМЯхшкмцмежаЮФЮепэђїѕпшхзЫйчхпШЕЖВИЎВЛнхнЫбННСЩЧЮННЖМЩйЩКНЦОШЮЪНЕСгйбФагртЫЭЩЪЮлчшљѕѕкшуычюђшЩŸЇВЌАВКЏЏЅЃЗЯЯМЕЧЩШММСДДМТЗИККТФЛЇЫчйдзедсхщужЩЧтыѕѕјєѕпчьђёэсзхаЖВАЕЗКДАЉЕРбШДЅАЛТРЖЅЂЋОСРЖАЕКВЕтћљштеЫЭЧЮЯкЫжтёѓјѓёщюжмлцйеНДАЊДТСЕЉЎЈЕМаусЪКЕНЮааЫВЕАОдФБЏЌЗнйѕѓєёхдЦбЯЩУЪземяящушяђаазсмжЮЦЗЖЖНЖДКТЦУОШЫдлЭЦкзаЩНЋЋВФгЦААЈЉпљїїѓрЪШЩЪЦдкышюьёырзЯдйггзндЫФКНРТШРТЦдЯЦФдЮЮгРИЭсбСЗЕКЧУМНСКЪрјўєєьчлзЭнййтюєѕјѕєЩМЦженпжтжаЦЧгЭШмжмзмзлзбкгбЧЯйгШСКСбаОРКЪзцњїђшзаелЫМНОряѕјњљ§ьуЧадкдЪЫШЦШСФзйФЮенкрпбйкЮТМЖСмйнРСЖЈЫЫЅЄюўѓяцрхмнбНИЌапђљњћјѕЮЁРршцЩФЦМКЖАМСаФЧЩажздгабЮУИТдлЭДž—ЇЃzŠЉЪаёѕђьчЭеРЗЖЎОЯѓћїјјєыпШФЫгнмСЛЪЩЦРРШлпмгаЪЩйппбККНЗУЫмлдЖž‘Œ’ЫцјўўїјёљцЩКЗДЊлшѕњљњїёзЭЮРЧЯббДЕТЯкзЪЩЯЯдбдесэшжЖБДЖИРИКЖЁˆ˜ЗЦчћљэѓьркеВМФТЯчїѕїћљљўяРаЩдгкгуЛКЯнгЧЭдймхшккцшцјеЦЩОФИЕАЄАЁ™ЦдУщёёхмдйжЯЧРКЎЮљєљїљїђѕбОСЫрѓхЊЋЪЪдйгЫшьхныђэшкЯУОТФЫСБЃЂЋИШСпШКуђѓячжбпйгФЗЉЦђїћјѕэгЩЯЯЮеЦУР›ŽпкбгЯзсђяяёэцкбЦУВВНЛИКЕЎВАтзчььюёїѕыунрйбдеШђўўјјвѓхедгбЮКЏЂžЈЎелЭлнцьѕѓѓюыЯЧМЛКМЫЭЛУБВАМКђхэёѓђђ€њЭАВРЧЪгцрюѕњјњїѕѓўњрЦРЋ—žЄžžЫШЮмяїњјїђрждСЖЏЎЗУНВЊЋВЏДЗгщєёьцэьЮЌЋЋБДЋШаыїјњѕѓяцлШСЃЂЄ—’žЂкнрюѓњїїёцлызЉЌБНЫдйШДŸРРЪЯмёютунхзШЁЛŘЪья§їњѕїьлгЯЧЩЭЗВЗЈЎБЂŸЌлмхяїѕђчмЯЭгЌДАНЮеЭНЏ‹ЕчјїјѕѓэпйЩЪТТМЛЏеьњћњљљєєшЩагОФЗОФЧЄБЌЌЗЧкюёѕѓяхшжсЭКЏЕЛЫЩЧМБЉЌЫѕћјїєьмЮЮЭЮЫкЯШЪэёјјѕю€VщьзКœ›•ОЪЖ––ЉЏžёјєѓёьчэЯЅЎКФШЭЩЖЊЕБВлєёїючЯУСЦШаЭЭЯся§јљњњђьппубЦИŽ™ŸЎФрЗ—Ѓ‡ŒѕњјѓюххчёЏЂИЩЪФЧФЫžНйдёўёьсегЪЩдбйкчшёєјњљїјєюреЩЮД™—˜–ЅмзулдТВдяѓчттьщгЋЇВЭЭЩШЧЫгЮрђјѕєэцдЧЭепцдЭООцѕїњјљѓющстйгЮСbЌУЃУЭЧЕЮаТчщчьычйЯАЕИТЦСРФШншьђєѓярбСРЧЪлжгдЯєўњљњїєщрптждУБŸujeЌТчкЯЛЛЭзеьччырЭФМРРОЫЗАВдртщупмрзСМНМФЧЩРЦѓјљњњљѓэмлйбЪУЄЕ•}˜œŸЪЧАМУЮЪллгжгЩТБДЦеэмЁ—ИкёђяьаШЭеЭЦЧмгЮЪЯЩыўљљ§јѕяцжпйгФРЏЂЎŸЋŸ˜ИРРБАЪйЯЫгЫЕАЗЖНЦамщЃ…ЃУёћѕёысЮЩОТЪжсйшыьюєїљјљєчжЩЮйЫМНгдРЦСКАЏМЗЩЪайлщыКСКЗЕЛМЦЫЯдЕВЮцэяьшцмпедЯЯруйцлђљћјєёьсбУШУУМКВЁЁБМДСНŽЁдндЭбчюЩЩФЦТРТТЕИЗЊФтїўєёыурплсжждмйпяїј§љѕяьпхнНИБНШЅЅ™—–НЩщяЮњћпсьюшыаабаШЧТФЦЩШЯшўяѓяьтегЪЮЯЦЭЩЮрїјњљћїѕђсззбВžЇЂ–‘ЊЅРђэпалкежзскедШжраВТЪзШСйюђпзуцздгЫЭСазЭдьђїїјѕђуяуИЛЛМЗЋЂЇЄЉЃЈЈОшятгЩШЦРСШЫЧдЗзрЪЉ™ˆ…v}БєћђкРЊФЯФИИКСЧныђѕћљјђунЮбСЛЈЋВЛЎЂЉЈ˜ЧтяуяэыћуЦбЗНегКбР›xn]dkk‚ЧтУБСЧСЗТСтљёєјљњјљнаЪгЪИЖЋЎИЉЉЏАЈЏЛхьёѓшзѕрЇБЌЖЩпpYNJPSS€†h‹eaFj˜ИОЮУОСОРЫуїѕјљјхЮžФЭШЛЇЎЧЭЗЃДНкжУМЧЦзухйшД—КУЦдн1(3A0:HTvqhNIHHqАхнФКРЪпёїђєђѕњЧМЦСНЖИФаЦЋАДЈЋлћтмЭкедЮЪЫЛЛжЫСещ,1AL@1GgaqbeUJJћeЫгттДђѓясспкйЗЕИКДЖЭИЋ—ŸЅžŽ”ЦцсчлчдЫСОРЇЊЫзлгх-5@EAI?HJHM?MSFFH@@<`ЊрюўїїђытЯкгЮРБЇКЖ‹Ѓ‰ЦЧЗЮхулмуьшрлЮгЫОКУкцеЫ-5>89JPNGJOWTHGLI5U~ЎщўјёшлзЮЫаУВАДЛЊЇœ›zŽЭхнзЭУбннмТТФааРВецужд**9-388\V13+-4AAE1357%"4A98(-+L:015&МДБЎЏЛТакюђѓєюшсмЮЪЦЧШЧДЁЊЭнкУˆOEBIML2F4IOHH?8:?3-++05%+>>B%!НЦРИКОЩлыђѓїёымзФВВЌСЛРИЗерйззёКdMZbt];B7?03+99>CB1:;98><7E>73&#ЯжЧРРФмэђяёђєёццЮКЃЃДЄЊЉМатыѓїљљЦQYATQG::40?HCHE5>E.4.%$%+#жРЋВЫуэёєєёэщцЮМД–žŸЈЉЊЧЪбйтёѓѕёєђЪŠPO9UZE7,;;0"170.&+*)!! КЁЅЅпяюёёячмцхдЪМИМЛЂЌЧйзеныюяёѓљћћјзYPTP754).%&-9<1)+25(+!##Ѓ’™ЪёєяюэынуэмЦНЩФЖЊБЕпжжхуяѕїѕѓѓђѓюэйЮЅ~A@`I)127?918*3,.()&&ŸБВюїюэюцуштрдЪЩЕЖАУРСЭЯуыяђєїђђёяюёђчјјуЅƒ`@&;F?8$&1!+%-&$#ЄжюѕёёэцпеЗЇЕВЊМЛаКЧЯдЩЩхёїѕѕїѓяэєєэснмгЭжбЉ‹V*4I>>95*%"("%""#ШмєђёѓурйЮЛЈЇЄЕИСЎВйньчхяїјјїѓѓѕяђьчмгЦЛРУййїŸZ>4-*1.+$&&$*)&3#"уюђющудгЯДЊЅБЛСЕЗЅ˜ВсюђїјјѕєѓштснлбалЮЫШОТФнзŸg:)(:33J #*%яђэыраРЩЩ€ЃЗЊЄЊЖБДЗЏЭлюёѕёѕёюцтумчткЭжЫЪЦЦЧждлбСВz*8;8b$8"!!%ѓёяшгРЧФЩМКЏЊЌЖАЋСЭлїїјїёыхптыёюёэтлйаЦИЖНФайэйЯйШe;Bga$&1&$%.3ьшхпдШЩБЏИЛеФАРЗИЩрэѕѕяяђээщычыээчппмЪЭЭЮайрнн€ЇцёїяЖ‰>?(,8**$$!"унжлжЭКЌЋИТддЗОЗЭтюѕѓёыххтуцмпхлйккзгкедднтхлплрюђјјюu:,$+7%4&&агкзйЧМИБКЪШДОбйрьэяђђяэусрплрнЮЮЭЪУФекупнздеаЯжсуыёёђЯЁHFH4?9.ЫЮжцпмЦДЉТЭОСЭмыёђёюящщ€шзжптлЪЫЭеЯОЛЪблцрмЮЦЪайлнппгуёщ{‚d297B:чтпнндИЋУбеЧФЫныьэюшээьхччщймШЩТбжбЫкжйппйкебзушуентсмгЖЅшсЛ‚PB7нуьчпУЈЏЦЩСФЩЮмчущчуыьсщыцргйбкстммнпп€ŒейЯлнуржЫжнпеЯйспзЊЛдмЯЊhсцпюкВЌЖТЧЭЯгйсщюшннлрпсхмгЯТМТбзЭЮлзджййлдйжзаЩЪаЯНКЭУРЛЖЛУАднйЩЭЮНŸЌжгзЩжщяючьрумрпкдлжжкйелаЩЩжммкадгзуэтдгЯнжНН€ЩЩЧРЛЗИТМНшђЛЕЇžЅЌжпндуьщхчээхмпуштбЭТУепскбЧсчсмУОкпкнщтЪЫТЖИУФЭаЮШШЪВныёѕНЛИКАЏмяуллцчмлннпхспднбННЪЮйЭШЭЭЪФдлЦИТззййксмаЯЦШЧЮлжЦК‹АхѓыэшеаЖЕВБОдкйпрппзжбЭбйтнккмЩЭМпУЭжжркснгЦЛНаЩЪаЯЩКРУЧЧбгЧ…mВЫзее€ЗЎЗЋЗНРбстпзШаегеЪЭйзОИОубwMЏННмслЯЭЦЫЪКЪекЯЪОМЗРЧЪЦВЋЏхп›ŸЧжддйЭЛНЪУЦШжтндаЯЦФУЧЫТЛУЫЩЗзжмеТМЪкзЦНМШСТНСЪЭТТККНЭЪРРЇЉЇЈŸ–›МЛСЭСТЧЪСТЩйЪбмйеЮЪЗЕНИАЗКНКЉ•ŸЄИСМВВИЕЖТМРЛЗЦЩОВАЕСУНЛЦСЕЏСУДФаЭРИгЮЖЕЦЦМРЫУШаЫФРНРМЫОИШжЭМИИНЯтТКМВЉЊЏФУЮОЪУООЏАЖИЦЯкраШИНСаззЯЭЛРЪУЫЮЪФЭЩЮЩЦНКЪгЫЭЫЗКлбЛЗШТРЖгдЪМЕЗНФжеЧЎЉЉЌЈЈЛФЗФЩШЩТЛЛИФЯаеаЭжгеФЫбраЪабгУЕЖУОФИНЮЧЮжЭСЩМКМЦОАБЩРОНЫЧНДЏЌЅЋБОЯФКМЛЗСггЮУФЭНМбгЧЛФУЮЩЪШЦУТФЗЏКЩЗААОЛЪакЮРУФЖАДЮмЩЗМЕМБЄЈ˜ЇОТЛШЪДЖБОЫйаЦУУМВДЦРЗИЦЩСЗЭЮЧЩЦЭЧРКННИЋЕУУЪЭкТДЊДОЕСТТВЛКНЕЗМУЗММаМЖНСЪЩзугЦЧЩШФТНСУБЃЯЯЎгйннугТЦддЦФОЮЩллгажШЛТФеЪТСНКАДИУМЩНЕЗНЪккшхцпстбжйСТЪТСОАМОррзймкчлгмсхмЮЦЫЫЧОЛЯЯ”ЮЯМЛРСЧЦЦНЋЏКРРЪНЛБЗЗаммрклйЭЪШУЮУЫжЮТШЫЧюьржерсббЭЮбРНСЫЧЫОЊЗАЎДОЛМДОййЕФЕДЕМЭЯРЦОАФттнкмдаФСЧЭЩСКУЮЦаЪзьюшш€ПщчкЮаЮЯкжзЪЩЦЭЭжЮСИЗЗШСЩФЮЮЫФЦЦЩЭШЦООжЯенмкзЯЫЦЧЭеЯЭйспЭдЪЯэшччмйнйгЮОМгддЯТНзкйЭУОННИДЌЛЩадУВЎЖСЩагннзЯЫЮШФУЭрнгЭжзЭЦЦНББВпдезЭжаЭмдЯкждеЦЗЎЏМЭУЧЧШааШФШЦЕМДЈœЋеЮлушпкЭТЧбдЯебакрйлеЧЦНЕИТЯСЫйгззйццлемжТЪФЌЎЦЮМТММИЛЏВЌВФЭЮгЕЛзмспкйЫСНажгезнбЮЮзпЦЛЛЭЮРАрЪЧЧНЪдпегЮРШЫЧЭОМЖЦЭОИЏЧЫкреТМТЦЮанцтспбЮЪРВУмхмбЩгщШЗУдхдОТБЉЂзЯЭСЧЯЫЦЩбЦНВЏЊОЯаФЯЦЛНИРЪбЮИББДШйччзЮЭжбаЭОЖЁСаШЫЊЏži4–ЇЈЂЃЕДœ˜рдИРЖЩФдкЦОЌЇДИЕЕОКЕКДАŸОймеЧЕСНмшцйЯезбЧНЕВЛВЌЌИЫЊ›Ёo}Œ‡ˆ—ЇЎВ˜‘умУИИ€фКЗЅЈАБРзЫФМЏБКОУЭЯедккнсььчтШЎЦзЪбВЊЎЊРЋ—™™‘vЃŸЗЄ˜ЈЋВЎЏрйЯЛФЈЇЗАКЋЏБУкбФБЁДаЫйлежклмщэыхскаТЮЮШФРРЗЌЌЃœ–Œ™•’ЁЋЛЋЅ’—ВЧеэаЛТКА•АшНБКЛОЯЯеФЎЃЅЩааЫНЫхщщрсргШТДЎЖЖЛВБДЊŒ›Ђ›™ЋЂЎБАžЄЋВЦШЫбЦЩЯепусЯШЕРФЧШЗЕелЫЗЩзмлсьяцтедйЮТЪбОУТЛСРАА€Љ’™ЅЉЅЃЃИЫЧЪЫСЗЏНкмкЮШЩЦРЛМЗЛКУВУЧШТЩСВœЌзучёчннпйЦШСМОУЦЧЫФМЗЎЋБЋЃЉЕЛДЏЈВАЖИЦЦебрццЛКЋБЏЖТЭИОЦМЭкЮЛАЦЦЁЩљјїєшцптгРССЫгбгнсУЋЋАЖСаФМЛМДДЈЏАВКФЮЮРЪШЪЎНУУЛЏЏЋЃЎЗСжпжОЦбмщёяя€шысжкдаШТЫЯлнмегСЖЋŸТжзабегдФСЛТНМООКИМККЌЕКЗДВЅЌЈВЫЩЮИЭЧЦтэђјѓяэпШРФСФРУУИТНРЮзЮМЄБАЏОЫждШЮЭагЩЦЊЗЦСТСЛУЌИЦЗЅДУУШВСШЪЭбкшёѕђєыумнжзлемджЮТОЗФЩдЭССУЕЕУаемекйаеЮззЮЭСЌНаШЖЌЗВЄЈТЏЕШжмртшяђїђыынЮФЭСКОалжкгРИФЪШУЭРРЫйУНЛИЧбжпужсрдЮЫКЂВТгБЇБЪУРСЭмхтЯчяђёяющтпжРШЦОФЮажЪФСЛЧЧШдЫЩЭЩйекЮЪРЮннжайдаЯЩШУЭеЪЩОЏЇТЭЩУкхщыэёђяшйдужЮЮзсрЫФжазеЫТССРЫЭНЧШгЪЮШЦЦФЩЫЫФШеЯИСЪОЦРМОЛЦСОЗРЮжзуьюђѕясЮЮЧкцчсрмржЪЮЛДЌДУТЕКНССЫШЩЦЪРЭУЧММТСШШЫЯЪЮМИЗТНОЯгЭбжзцшяѕѕєэцдетакпжЫЫЪЖУЪКАЂЅЉКЪЩШЧОУЧШРззжлбШЩЦаеЫбЧШУИИЦЩШЕАУЗКЮнсыѓїѓьчзОТЮлцсннйОИАЉЋВВНСДОЭгадЪЦСЛРЭгмдклмзЭЛШТЛКБЏБИЖАŸЉШШЮсхюѕѓёяшдЧТРШнпалЮаЛНИЗКЭйСРЛЭЭбЪЧЕЌБЗЦЭЮкрсснйеЧФКЛЖКУБЌУЛЖНбгеэєѕєѓѓымкекнхшпеЪЖЖАЎЕЭйейЪЧЫЯЧгабЩФОНгЯЭалеЪгеаЮЩЏДУЩНТЮлкЪЭзчяђїєюыьчмххкрцшэчлаРЭУУСЦЩЭУШЭЭЫггбаЫкжйдЮУШРЦЪЩФВАЎЏЮйггзЯЭжЯёєэухчхркааЫЮЩгстраатчщнтхргЯжуйЯкпккнджсшмеЮОЩЦЩЧЮЮЕЖФпчнЫЯЯРЭМѕэржсмесмйаЛЗДУацмЖНЭддекзцхьшйузрчштщсунлсйдОФгдТВСШМФЯеаЮдбЪЯТђышыэьррнсжРУЧЭЮйжЮЩЪЛЪйрзйллмзепсрцрсспйгйеШЧЫЮлдбдЮаТШдЯЧЦШРБЛнйзтпьхйКЛдЫНЛНЧЕОРЖНаекЮТЭйдкдлнмрйемнзШажЫЭмзгелкпсужЯзгЮлеЧТЪѓшчщтщююэђяјјљљїѕєєѓюѓюєлгчьШvC7<[W;78980?CH;>8;>:3><@B54,ѓэююёєѓїљљјљљјїњєччшцщхьэёєє§ўўщЫ…Y[?SPJF?<A7422*н+&$щеЪюўўїјїѕњљєєїѓюытмсыїєїѕјїјљњњдљњ§ћшпЏ~B@iC48:>:484744-0,-+%пху§ўјїѕїїєђяяѕьђэячюђюѓђљљУјљњўћїўўцЕ‘a>(&PLC782.4*&)(*#"йѓўўњјјїѕђьхщчюьђшєёѓяєєѓњћљњњТћјїјљђючщюцЖ•\,:N?99782-"#*(,-)єєўљњїњјїёяьушцшчытёћўјњљљњњљњњ€ˆљѕїѕєђяьыщёњўЌ`<5023252&"+4:20%ѓјљњљѕєѓёђяьтуцщцумРпѓѕљћ§§љљїїѕїѕєєїяѓяюяьчѓыИt@-*,58J&#%-()їљ§љїєїђђэюшсхчэщышёљ§јљ§љњљњњјљѕїјїђѕђяядюяїљыж‰29:Ea4&C%"&-.(њњљїїјёђюёюющыэьяэѓјўњњљ€‡њћљјњјљњјєѓёёяьяђє§єѓњбm>Gnb031$+,.8њїѕѕєїяёюэђьёђьюёѓћјњњљїѕѕїјїјѕѕїѕїїѓєђюяёёяѓѓѕћўўјК’EC51@321+-2њјјєєђёяююђящюшяюѓѕјњњљњљјјєїїѕѕєђђбѓђѕєєђёяѓюяёїѕћўї<:(1>0020ѕєѕјєѕђыыёёюяьюђєєїїћѕїїјєєЦїѕѕїђёюыщэѓђѕѓѓяыщьяђѓѕљўњеВQMJ5*C9<їїјѕњѓђяєяёяьюѓѓѕєєїїјјвєјјїєёєёєёёяёёѕѕєѕђяяюђїїѕєєёљўљ’™o?<8љјѕѕѓэышщьђюьёђђєєѕїѕѕљєїѕєѕёђёяѓєѓђѓѓяђђєђєєѓєѕѓѓфёѓёљїѓйчэјрЖoјєјўѕшщэяђѓђєѕјј€‹їљѕїєѕѕѓєєёђёѓђѓѕїѓѕєѓєѕѓљїјѕєѕєѓяђђюёюыццщкёєяѓюђшпдхљѓѓљјјљљњјћјјїїјїѓѓђяёєђѓѓђєїјѕєѓѕјјїїјђѓяюђэяэёююьэшчтїћьчццнхйїѕѕјѓєјљјїјљїѕєєѓѕёєђђ€ЊѓђїђѕјяяѓѓѕїѕѓѓїѓѓђюэяђёяюээчђѕјјєёящщцљўєїјїѕјїѕѕєѕїєїєєїяюёэѓѓёђёєѓяёяюяѓяяђёђёэяьюђяєюцУйњўѕєїэшьцщьюёѕїїѕѕєјјѕѕїљїєѓяћћям§єѓѓїєѕђђёяяђяѓёюяюёяёёђююёдЖмєѕяяѓюычёяюёєїї§єјѓѓЫђѕѓёёєяюњєЇƒзьэђѕѓѓюђюэющюёѓяяэђђёяьычкўњЧмѕьёђюыђђюѓѓпђѓїїѕђёыэяюэяющјёѕ§§љјьђэяяюёэяэььшыюёђююёщщрсрЪезђюяэьюяяђђцюѓђђѕђђюяюээюьяюятлетшьыьщщпэьёюёђёэьшцыэяѓєѓёээщѓэѓљїээщяёёяяцёяѓёяююёѓёѓээяђёђѓяьђћўѓяььёёяѕюєьюьччцыёюђђЧёэяэђђєѕєюђђѓђёѓєѓёєђѓяяёђѓєёюѓїяїїєюяюєяђёёђяэёюэыьшчухччљђюёђююяянєѓёђюђэюђѓёєєёђёђѓёюѓяюэщёюэѓѕяёёѓююУєяѓяђэяьшхттцуьяэёёэыэяюяяђёщыяэюёьяѓяѓђђёђђяяёёыьшэщяяѓђђяэыыцяюьюђьёэяяцчучьящщюьююђяюяяььэыюяюёяђѕёєѕєѓёёяёяююзяѓёѓюёэяэщяыюыящёюђёюыьыђьѓяюђёѓєђєєђяююээ€„шчщѕєѓєїѕљєєѕєёђђюѓыђюёѓѕєѕѕёѓђѓђђѓяэыяяєюђђюэяёѕѓѕєїѕѓїѓяѓѓђєёыяыщјєѕєѓѕђѕјєјѕђюёюђђяёэђяёэёяюёёяьщщшщюђёђюычяѕјјєїѓђђёюяыяэьюёяяђјјёљјїѕјѓїѕђєюёюѓяяоэёьыыяяђѓёяѕыээюѓђѓїёяєюёѕїѕєїѓѓёяяэЭёєяєѓћјњїњјѕїїђёѓёѓѓєяђђѕђѓёюэюьюэѓѓѕѕѓёяююђёђїяєѓёёьяђѓёюяѓюёяѓэяяїїѕѓѕєє€•їѓєѓёєѕђђѓяђёѓєђѓђђяєёђѓёѓящчэѓѓєѓєѓѓђёѓђёђёђєїѓѓєѓђяэьэѕїѕѓїђєїєїїђїїђѓяььёяѓёѓђэььээьђэьупмјѕѕјїњїєѓѓђѓѓёѓєёёєєёђэѓёюцѓѕѓяѓѓѕѕєєїѕѓѓњђяёёюяђяяђђёѕђђюэјєхьћјѕєѓђђяђђєѕѓєђђѓќёђюыыЬьэєєѓёєѓєђѕєѓїёюђёєёѓёђѓёѕьёђюээьюєѓѕѕєїѕѓѕѓёюёэёѓєђђЃўьлцљўыэшщттєєёѓѓёѓєѓюђьээѓяяёєьёѓюьёђєђђьчэяѕїѕјїљєїѓэяыёьэєђчхсЃxзпсржцхсжєђѕьђюїєюящщьыюьыыю№щяэяѓђђѕяђюѓїєєѓѓЭяьющььщяѕщруТУдШлппхпрнњєєёёяюящююшыяяѓюыьэяёѓђєѓїѕѕївњћїѓєяюѕыьшшьчшуплкОсняурттрнеащјєёєтсхчяыёыёђђїюшцшщѓёёђђєФјљњїѕэюыььыьычхуцсйзжрнлуушухсуюљўѓїёяюйьўђяыюѓђєяяющяюёєёјєєМѕјѕєїѓёяюьэщэюэшрмнснкншчыэщшутчшюѓяєюёѓѕєђђэђюяђђѕїюыыюьїѓїјјљњїљїєєПёюѓююђэщэщррпуцшшышчщшщщшщьюђїэышьяѓёђёѓюєюђёяэящщйєњћњћњљїєїђёёяяђщяььыхрптцььэшчтчшэыёыђєєђђьящэююыёььѓѓђђ€Аѓэђлэўўњћ§њљѕѕєёѓєѓїѕѕѓёёщччэыяяёяђыычщшщююыђюђђыщыьяёющцчюяюяяѓяёѕјћјљїїѕїєїђяёяђёђёѓђђьтчцыяєєђяяѓёђэшущёююэююэьюяёьёьяяэѓьїяёїѓїљњњћїєїїѓѕєєђяђюђѓђяяьщтшюэѕїїѕєѓђёђьяэюяююђяяѓюяђюэющєёђѕєїїњљјєжѓєѕєїєѓѓяѓёѓяяёюэёяьяёёѓёђєёїѓяђячцщьѓяёюяяјчяђѓєѓѕїїћрњћљјѕєяяђѓђѓєђёёђюёѓїёђёђэђюьёёєєыђјѕѕєєющшыђяяёёыђяёёѓѓВљђїљњљјјїѕёјѓєѓђѓѕђїѕђѓяёѓяђђёђяѓёђюёђєѕєїєїѕєєђѓяэђяюьяыюђјђѓєѕїјљљїїјєїњјјљїїжђѓяэёђёяёяяєяєюђюђёяёяёяѓѓёђєѓяѓэюёээёёяѓєєњїѕїљљјј€ЉїєѕѕїѕѕєѕёєѕяђьыэюяѓяђяђяђюђюѕёєяѓёёѓѓђђяѓюђёёююыђяяёєѕєљљњњјјєјїѓљїїјѕёьѓэьяюющьюёѓѓђєђёюѕяѓѕѓїѕѓєђёєяѓёяяђюяьюшэёѓђєјљњћњњѕѓїѓђѓєѕѕєёѕяьчщьёюыђѓђѓѕђёююёёђєѓљјїѕѓёђьээщщѕчщьшщыєёѓѕњњЋљїљѕѓѕјїїљяєюђэяюяёёѕяѓђѕѓєёёяьёяђєѓѕљїїєёёэёььщчэђэюэюєїњјћ§ў§њћ§љњјћњљњљѓєяюёёэяѓёђђѕїёѓѓђёяђёєђђъѓѕђёђюыэыьяѓѓєѓђѕюљїљћћј§ћїї§јѕїїЯљјјїєјђєєѕѕђёєєёѓѕєѕєѓѕђєєѓёђюёяёђёёычьэђѕѕѓѕѓяэљљ‹јїѕѕїѕѕѓєђђѓѕљѕєєѓѕѕљїѕєїљљєѕјѕїїѕѕїјѕѓєђёђяђёёьыюьяяђђјєђѕщщњљљњїјњїјѕѓѓёєђѕёяєёѓёђѓѕњїљјїљєјѕѕїјєїѓєѓђєёєєёяэюьэђяђђсѓяяёчэљљјїїјљѕѓђђѓюяюёюэььэїѕѓёёўѓєєњїѕєѕєїїЈѕєїєѓєѓѓєђђюяїђѕђђѓїѕѓяёёљљћљ§їљєїїяёёяящѓђђєєюѓђєєђђѕѕљѕљљјљљїѕєјѓђѓђёѓѓѕѕїїјєѓѓёѕјѓѓђёёѓРОКЪнхцгбщѕњљљ€ЯћїѓьяюццмИИйэЩƒMJO{kOMHINFUVVOLNQMJHO`UM@C<`P7HO@ШЭФФТдззыјљ§љљєѕючрмнпрЩЖСсјчк™aW^^c^HWVZbbWSLQYILFLPTPNEaVPH92AенлйейзюїћњњљљєђпаЫТагЮблёїёцђўаv]tu…kSQU\TPVPT[WaSSU[\WH[YQJJ?8ччжзйхьјљњјћљњѕјрЧИМЩОНТешюѕњўўзп˜ghJgdeVPPQZn`]V[TPSIG9EGF?A7?:цЯРечяїћљљЊћјјчзЧАИКОРСпчшяїѕљљ§ўўмŸcdIqeVIJPYOQNIPQOEG;A?C<@9.0дТДДшћљ§љњєєѕїющзадбЛШсэьяѓѕљ§њњўў€Му—meegBMPGBHBJSPSSPNCJA>?9:3КЋЇр§ўїљјїѕїїѓпмзлЫРЧЭѓьюєђљљ§њ§њћ§ўўынМINvYCHJNIMOFIJFBAEE;EC:4ЏхљўљњљѕяэаШЮЫРазтЯйхшкцёћћ§њўњћћˆјљѕяцтнысРh9M`UQSJFGF@9:G@F4EнюўљљњєђючдЧУУЮЪзбЧыѓўєњњ§ћћњ§њњјљјѕёткдзкэяўВkP@;PFELLA747>9GњљјїштхукззЪЦЮЯгСжпѓўўњўћљєѕѓћјјЬїєѓяьнжаесхяўьхяк{MZzk?:??>9CHIјєєяьхрЪШжецжЮгдЭнєљњњљшњјјєїїњѕѓѕѕьылстыыђёёђћўў€аŸSUA@POBCEBCєїэьшцгЦФЮтычбаЮсђјћњћїњїјѓєѕѕєєэьюёэёђёюэёѓэѓщэћћўўћIF0FI9H)>-(!#7GSL"E‡ЏЖЅЃ˜œЇБЖЌЈЅ—~O3$жЭЮззурдУЩжБЖЇВЛЉАž˜o90013$& )" %+8)QЉЎАЄЃЃЄЁЉЌЎЖЂ](ЕДДИКСТВАДЌЂŸЁЏИД—ЏпЦx?8,!. !$ !k—œŸЇБЦсЩО›]);ЭЭЪУДЉЇЋКНДКМЗЕБЃАТЇ™‚^F;+.4)   +#G‰ЎАЅЛгНТЈŒi4!ругРИМФЫЦОТБВЖАБЗД—‡Œ…ЎxG?4GII*("$-!+-,>pƒ‘ЅБž‰O$%%!ЪЗББУФОСДЛААЎДЪдбхЇ–ЌЋИД”c:.1#!  0,+F}ЁЂ|[2[@2(ОВДДОЗВЃœ—Ÿ˜ЉŸ›ЌЏЏЪгВЛаx:4&# , )S”Јb!ЦЌЂЈЗФВЁЃЇЅЁБЏЅЉ›ЃЊЋЖИЉБДžiA;@\\5(!    -T\ƒV!ЕЗЄЇЏАДЌЏСНЦЧЕЊЊЈДЕЕККЖЁЉЛЈa?:F5)34%  ), %+*МСКЛФУЯЮЧбШШЯЫЫКАСТЦЛЗМОРВЭЖwde[.#  €‰ $), ОТЖЛФблсмзгУЭЧУЖЏЩаНМАЕОЛЋЎМЃˆIJ0)-+ .( +#  йбНОЛЗЩнуеЛМЩЫШФКУШЦЦУДИЛМКДБЛ‹F:F@)"(#   У мкЮЧЩСЯнхБЎБИИЅЖМЭдемзУФЧШЭНРйй–?:?-:)! Р МЗДЏИИВОЦБЃДЋИФЦУФШЫЫабееЮЧТсмеаЂi9%HTH-+  $4 УВЏЉЏДЋЉЎДЛЕШЮДУдбгЪЧзЯЭабУЦжпзКепЌG$1L4!&)1*(ш  ВИВЦСЖЈЃžЖСЪЪРЩЩккййнЮЯжгемуузНЩнсБV2GQN<9&$$2(<)ЧЊЌЖЧЫИЄЋЅААЏЖЫЯкйггзмгЫдеджзнмжШУФбОoFLAA@A5"$$ ч‘ЃЇЉЅЄЏЛДЪЮФЫЮЪРЪЫаШУШЭйддфЪзкзТЛЃЖжа„P97?HN9894E+ Х0ЊНЩЗСЪЮЫТШкгЭСКЩеЭФНСЭднпзЯЯЭНЖЊЕНУлмЦ„A:PB7<0ћœЖЦЧЧвШЯакгрмгЧШбгЩЭШЭбЪгееглЪЯУЪдйуђюлЈaP8++(  ЦьзрцкгблсзабжмнммпшсрппмпшыэюьыхпклкршущЖdE.:G>0)#( т4B*ЪЮгснхччшьэыюэьчсцчшыящыьщщцхщрттседгкЧ‹Y<7E?3.71;ѓVP.ццээыюяђёёюЫячжЮдпущхтшьчуйеежрцсрУМЛЩлрмЏtI:G@<>:*# ,3)ыьь€шчппммнтсхкйлрккммекмккггззйедаЗКШЩЭахяьЕZ72,)!2,>0ЯазрнезмзнхрнмЯгагбегЯЮЧШемрлнутйШТТЧУРЧзнэљјТxC<:L.#$ -СЦжмсмпсцшмЪЪдбезмслйЭаЫЭЯзкбдженднчшхнрккрјїщЫg.4ME!-*9--,%ЪФФЮажЮекзЧЯбнпйжалнсдЮЩЯбажрччыщуучычцшхнйзеШЫЭ?21>H039&((&ЧМКЦЪЩбзжЯЫЭгпймжккн€жмкжзжккйббелйбжзлйгЭЧСИШбИ…L.2<,"*-$#*)#ЯЦСООЛЪЫЪММФгдЭезгбездеааЫЫЧЪФСРЧЭЩЭдздЮЮЦУТУЪурсйТzE;7;+?B-(*7.РЧЩСЦЧЩТДВЗгЩгЪЪЭШЦССНЕЏКБИСЦЧЫЮЯзйеЦЫЫ€ZЮКЖКШзлмшэеВH4;[UI5.1<ЦШМООУОИЉЈйЩЮзеРЭчуЖНймШЦЭЮдгдксураЧЪЮебЮКОНЛТШЮеёћѓЭ…A4A:4)*")ВВМЭЭУЖЌЈЎИЩУДКАxЖ‡EiЂМИУШЫЭЩСазекннмсшьснртппндЭгрЩФСИM;&*%"ЂЌЗНБННИУЦШТЏ…гЮЈ”^|кУФУЦНШШЦЩклзрщээьэюьчычттлгЫЭЩУРЛОЛ‡SC?OYFИКАКДЕЛЛОФФМУДЕЯуштТОнОЄЏЃЇЊДШзммзеккнллмжгзмзжгаЧСРШФЧЧЛЧИz05I>ЭгЛВЖБЏЏЩРУЛШФТОгЧЦЭййеЦЦЕЕЖВКИСЧКРадЯЮЩНКУЯЮТЖИКВŸЈМРОИОжаеЂeQEМЛЏЗдЯЮТСФРНШЮЫЭдзедлаЧЧРРФКАЊБВЖЖОВЏМЖКСНДЈЏВЎ‰‹—ЇДЗЕВАБЖЗŽ[AТИБМбЩФбЯжЭОФУОРКУООЪЪОРНРУЦЗЌЊЈДТНВЗВЗЕМЮИЇЎЕДЇЉžЇЌЅЇЉЇЉЂ•ŸЇУЏСОРУбЮЪКЦЩОЖМЪжЦТКДОЧЩЧЯбОЊБЗАИИАЗЕЋЋАЕФДЌЏВДЌАЃЊВВЗДЇЈЏЌЋЄžКбЧЋекЭРЧЭЪКНЧЯЩЦФЦеаМЕЊМКМКЗЊ”ЄЃЎДЖУТДДЕРМЌБЕФМЌЛЧУУРМЕЕЗНИЈЏЛНИЕЊаджж…заЭлеРЦУЛЉВДКМААЛОРДИЦОЁœЌЎТЪТЛРзлУСРТЦООНЛНМОЦЪебЩЩЪЪЩШЪтЦгЪгммзмзкдЯФЦЩФТдммЫСУЩдТНКЩЦЯФБЏИИРЩзйЭДЎСТЗЌЖИЊВЖФЭЩЦФТЪОКЖЏЏЂ€хA3I‡jQ:278779>BCC2)#nЊЅЋЖДБЏЎБККЛНЫЭЪЮМЗДВЕДЕаекллнущгЦЦЩЦНЛСпк((9(*TH39++,&.8@C<1,L‡СуМИБЎВЖБМЦЩЭЫЧСЛЈЈŸМгСРЪжкннршбЖМНУОЛРШЫ%.+*0@:9*3>:,,2855,-CtБЮаСЛМЩздЯгЮШРККЋЅЉФгЧЩЪбзкзйтЦЖРОНЗКФЧЧ.)!*;94$+0+$#17572"(PЯйНЈЄФйбаШТФНЭН—ЄДЗВЧтабабггЯжЩУИЕДЛЦЪШ *$+*)138:9:1#-4:„Ё”ŸОУЩЯЭЭЮВЏБ˜ˆˆЈМУШзйздгЯЭЦТКИЗУЫЩФ  (*%%-2.+)%23&)cžŸЋКЕЛОТРФЇЉ››˜™•œЈБСнелйкеЩФИЖАМЭзН  # 11&$++,#*.75CZFjœЗЦФРКИОЋЋЊЊБЊЎЖЧкгМЫбежеУНЖŸУлшпЩЎ#$ Ega"#&-QcEIЁЯммЧНЊЎЎ€†ЉЋЈœШТУФТСЦЮгкгТВЏЅЮязмшЮ$)&%"&>NA@)""" ",P`ŸхчпʘЇЋЊЌЋЏЗСТУФЧСЩчежИЋ›ЖЖТРДМхй*."  >#"&.0*)#!+*$IЉёўЯЉЋЏЎЕЛСТФФ•МдйщУВЦаЮлЮКШРьз,!  7-,.2())20$).02!;cЄеЮЋИЛДЖБМЯЦЦЪШШОеѓтРЛСТЦЪббдлЯР$( !,$,@9(!"((&(00€&9^ЇеаЧИМИЏЩЮЭЮЯгжджРЉЋЏОРФЦЩЧЮдеЮI.)*+)5%$!#$01"!)"$$!+08PIH‰КИЦРСОТЩЩЫЯйпњсЌ˜КЧШнјаЫРФШЯа&)"(+*)-3)##""&$&)),*+#*&4hŸЗжкЧРРЦЧШШеймгНЎКВВШЮЮЪФТУай(%(*+)(#,,+$"$)2,"-420-2BMC`”ЫеЮФТСРШЮдеЦСТОУУФЦФЧЩФНОЩм0&),-++)")%"#(%.7-&"*4952$4-09EBY[^ЌтшЫЦШЩЭЮЯбЮЦТТЧЪФФУУЩЧЦСНИ<20,-%100)$(5`>+12&&%19831*-5??)(CGYВкзЪгЯЯЩРУШШЦЧЮЯЫУРЩаббЪОЗ8~ЪуЯЗРРЊЪзЫКзюцкдййћкнчгўўЛщшћўўєђюѕћўўђСM4I5!$&*001++%!))0,$3:AaЧЦТЧЫацкнзджбЭгйжккрЯјѕїєєѕѕѓѓіђяђюэчх’>@@д572-3*,$(!(!")"-;NPnЌСНЫЭЭеджебейлмкЪЫЫИѕєєїєѓёШюѕ§ўуЁQ;:18.%)-0+&#"!#(&3593Hv…ЄЩгбеджкнрппмзЭЫФ?ѓєєѓѕѕђѓя€ПюшсЮмкˆL:FB8,)*,*%%)*(..25CMh\?pОччжежкпмлмруеЗrM<яёђяѓђєёђѓєцчдтслгУЗz>9<@492.%!#"-.3)-* :NW?xгнжгейлппмушбz,4FщыьыышхччхупзлпснЯу§ш…EA85E:41+%&,87.0,*+::17аееасшчўїѓа|>(2Oёђѓюычцчшщюшш€чртмшзТЋwOC9;HB4%-.0+(&%",4;,"*UЇрцлчїчргС…:+7@<ёююэяьээяэцьщшыщщтЭСНКгˆTLGTSQ@4.2311)*")14;@@B@TˆСгтмЭЯОx>(7:9>ыцхшщщыцчнсрхшчч†ўйЮкзуаЁh@19B:3($")++$!&2312JG9:dЉпрМ~F&0^FC;юыухщючпйжгбллзЦЗйсхрёкдм‚@>5&7.),)%$*<#(?gЗк~&"-8--0чщрпццштппнн€hпнезмсстнггаЊjCMGbiA:**,%%!-1724+0Ngv—Z.0(0+(*-,хучххщщцччьчхцумнпццхтмШейКoEGJC4?913"&$#&,&092%!+330,(ющыыьђяяѓяђэыэщщшчэыщцунтжпЧ‡im]8%<,$""%++$")-18:4,").-єэяьэьђђєђюђяђяьюьэючшчтрзггИ—YY<27>,%#+1.1*#$+%.44,%!$!їђєэыьяђђюььюёяюёэяюяышхчххгФЪ”N;O?&+,)+.+21+%+4 ёюээщэыьћейуутщцьыэёёэяьэьёсжхтœEBC9?0-*..-&.-+с шчтшчшчцуспйурушэюээяээ€ПьщыэтрпЊk@1MQL:,-,0"*2I& %ыцччцштпхсуцхшщьђёёђюяђююяьычйМйшДM&5WH,-*4450..358   ычьыюьцнуцщыьяюѓёяяёяђёюђђёюыпТбэяР\2IVVE??701337CA  рцчцхтунтшььэьёюђѓѓєѓѓєђђуѓєђьтжесыЯxFJ@JJI@5.24%, ћртчттЯьыђѓђёюёюёэщышђяђяяѓяэяйаРкѓр‘];@CMT@@?;J7  ј GсшшэыююЬёѓёєѓђѓююђяюэюђэяяёёюьшбздмђёй’LAULLE?"#&  №жтэёђёєѓєђѕёёђђЮюяѕёѓђяёяђѓєяєђщчптѓўўїЗpW>@:<10(   38§ёёњѕєѕђђѕѕєўѕєєћђѕѕїєєдѓѕїѕїѕѕѓяуншїўўЦtM7EE7?AB?59:>8ђёяяђѓѓэђёёѓѓѕєїєѕєѕѓєёђђяђђлёђѕѓђђѓѓєђючлбЯжыїп›T89J?;::858;<8ѓђяясѓёяюёэяяђѕђђєђёяяэюьшцэюёяяёёѓёёЄяэщсзбкљћњєЯ„M;@;;JJB8?HFGEH<+!7aЩЂŽƒˆuw„—›™˜—‰‡xw`‰Ѓ›ЌИИТЩЩЈŠŒ”‡ˆ›Ў7::;>)8>>ABFML@@BEB9%*1[ЉЇ‘•˜™АЋЅŸŸ‘‹…Šuou—Њ”ЉВМРН֘‡‹ŒŒ”ЊЌЊ-,:#2"#ON;:F;7B5@;-$0)LНЋŒ‚uЕЅЋŸ’‘™ЄŽcg„‡z›ЪЎЂЊЌЈЎЕЎœŒ~x‹›ž˜,!)$9,*<>I;ACF?+08,9enc”–ŸЇžž~z…g`YVu”Œ•ЏЕЏЊЊЇœ’އƒ‘ЂЏŸ18.)-#$#(88)3A:@?<:73-@(&Tƒm}ƒ„™™Ё›wzge^\[inx‰ИРИДДЌ™•ƒ|„•ЂА‹i1%# *#+,1E#&%-71<,>8B[FId˜”……‘uu||}qv‰”БД–ЂЉАИЗ‘•|t‹ЉОК…<7%Wo:()&2,,&:ZpJ!9œЕВ›Ž}…vrokoi”’ЋЏЏЉƒ{ržеРЖНЃG5))%&$Tc^U9!,*"#$(O\„ЫОЖ‰qwvprqu‘™•”—’ŸЧЛЎŠvkz|–ˆ‘УЖ?:C&(")#!(T-)*12512$$#)$IЁсѓЊ^}||€Ї‰—Œ–˜ЎЦШ—‡’ЃДЁ‰”•бФ<>77)8#)!M3*97A)9Z‹ЗЇ~z|~{ƒЃ™Ё˜”ЈсЪ–”Ё™•ЁЃИМЛЋ–5,5774:3$9C?789?+(47.99A2&.J‹АЋ—ƒ‰xžЋЖЃ™ЈЌЉЇŠ}}…‡ŒŒ”–ЉААЏКcF?;A<,2IC!144844Ь:.#.-7)-2<$@4NIEoŒ‰”’Œ’œЁЁЃКЧюЭ~d~——Кл˜–›ЄЌБFAA8?>>С<;9#(),&5;12153+*-113$14`‡ŽЌА—‘Œ‹–œЃБИДЊ•}„}‡ЊЉЊœ—’˜›ЋC?8:?A<<€Ž7.(#1:PFUtЄЌŸ—ˆ”—ЁЏБŽ’˜––••žœ•ЁЕF:A:B;F9C<3>(2;85I;A5-%$188@90:?CBT]WЛУЅЁ–ЁЄЈЇЉЈ•ސЃЇ˜…”–›—މ‰VI??AFFB?97:+J{T@J@:;099ф:;0.13A7#+FIV™НЏЇЄБЊ”›Ÿ››œžž€Ъ•ЂЉЉЅЂ‹ƒMGTVPNE><8<4Q’v97EB?:?2.+1ZE)HP82@>--hЕЦЊЅЈЉ{„~‰ЭтебЦЁ’ИБМЧОЧ\Sah|9AACUCTстd5;:9;3.5*%)*$3<4:BzОЭЕ›ˆx›ЎЁ–ЛмЫЎЖЖДЖЛЦдМўў§ѕёўўњ§јљўўЬћЦYEV>,%0,88:5972)&5-2ACGi–ЏЄЁ™žаЫИЗНДВЌАЋЌВОСЕљљјј€€њјїѕјєїєѓэшр’BHIJGA9;:?*<0*$(-$*8OZ[rЃЃ’œЄЁЊЖБЌААКДЕЏЂŸЁ™pїљїњјњјјѕѓєєьыєўўл›WCM@M@@+%,<,%&�+B5AA@Wrx{žЈЋЊЏЌДККЮбТЋЃЇvHёїїјєє€рѓюьюьсдмзФун…NBNOF<92+..,.25C405;V`j[7W˜ЦЭМИЎАНТЧСОЗЌ˜gOEчхцююєђьнрыЯЭЖЧЯОТЏЅ{OAME?F?:01-&)>A>953CMQAaНТФСИИНЕМСУЫЖn28IЮЮЪЮааЯЫЩЪЦКБДСбШЋШєпŒNNEAH99?7)%3GFLEEW‚˜ЏТТБЕœc@5?GIHтЯРЪзеблдЭРФНбтыхњКЈМОгЫЇ{I;CLEB5+5-550+):9@??OL;?PЕЖ‘pC.$@zYNEдаШЪждаУДЎВЕБМЖЇРТЧнчТЩкŠHJ;1>43%59A5,+#)147J+1AbЇНr1&;E4";:?мЧРСблЦОСФУНУФЗМВНЗСЫбНШФЈuSUWwzPHFJ<1(),&+474@07Jhxž`:-;<<:595ЪЭМФФЫЫЧУззкйТФННЫЫабгШЏБЭДoMP\QANL@<*)($,#"+,"3,:JG4-%4$.8?EB>4бкеаднщхкчпстрсЯЧзгжебЫЮЯШйЦ‚xxjB5GL.21&40&".0$:ABH2(0,&,-->;5жкбдныыёюёцрцуйЫЪйсйШФЪбЫСОЩЏ™]bF5BO@B5;@H<11-1:@??9,,-%*(1-&%&&юьЮжйгрьяцбкуцщхжззпмгЯЪаедУЖ֘UFZSA@@?CFF7;5,)09?#!!,%12"&&ь€xнйсдтьєНМЧЩЭФЫкстььыедйнхеЭтуЅMJVHPIA?4 &(&-)-.3ЮЫЮЪгЭаЮкЦАЭНШдезлжтссцщщуйныыссЏxNA\obO?;;75>%.<>U,*(!&-)*2+ЩШОУЩШСФЭЯОннЭзыщчмушьнхтезцюрНсчРV5Eh[;9:F@FC@;8CG!!3агЪдрзЧИЗЫмхсдзнщяшущццытцюђэуТжшђРeBVhjVQSEAA>LETL $  !НФЭжкЭРОНагЩгццьщээяэяхшццёђэюрдЭерЫƒ``WS^PCHE@@:@%  ЅОМФНУНЪЪтцсрщнйрцммгрншцччуьётгЧБТчт›nJMU``WQJL]C%$  €˜ dУкжЯгрцхмтщчукеуущпждущяющуцсзЫКФЪбыюк•OOgTUYY@-&+) "  ЎЫдлпхнхшььэытспрумррчцпуцщчщссзйрсѕўўюМueILOI7@A.(# CBћшяђёщщьюэщщьюяёѓєёѓѓ‘єѓђєїјѕњїєюђыуэїњћШvT?LaYQNCE-)   PmV7схрюяєѓїѓѕѕїїљѕјїїђєљљјєїѕѕјїїђєђєѓэммуюйœiPJYMQNM@F\@ AwkOђјљћљљјЛљїљєёщююѕѕѓуёєѕёьчшхэђѓьжФЩбэёыН‰\L\WYPLHG?#(&<COLїјѕњєѕѓђэьюяяёюээ€ЬыюяёюяьыычщыыщчшрЫЫдклрћѕ§ЩoMIG3>?5L;71>U<0HQHуцшђёэяящяёѓђячштлуучщчхсшёѕяђяёэуггдаЮзчяњўўеUUZaL&I@?@HA@88<@жнчэюёяѓѓїэчсьшыььюђыурптуцёщышэяђюѓёѓщьшсьўўћп{GLg\EA@HLNNHH?H>нпжчшээђёёпсшюёящэяёюцлтпцшщяѕѕѓыѕѓѕєїющпсреншЅUCCSVBJJьGMHGC@скЭккнцыюшмтыёёњѕюѓяѓььЧэщэььыьщыьчцхшььхйеЯЭзыߘY@GTCIGHLLEFCEчлйекйпптегесшцяёщщ€ЯшчтузелрклрлхрххштхнлйебмэѓђэеˆUIMLMZSOGMJSнтрстрнмЭЪЯьхчууьхйлгзееаЫЪжзпрхуээщдйптусбШЦгрцхјўщۘ\NStxeTJSVгпзддйддРЌВяшэѓыбцўўШжюњжппчшччэюђэтерпщсхдЯЫЯдкнуњўўуœWMb]SOFJIЮЪЩхцсЯЩРФЩсеЮЭߘ˜Ъ•GxЕжЩежкстптчуыььТюђѓѓєяяёючкбкщппжЪ’`J<1FI<ДМУбеЪжйлррпдФ•щчУЎiямждлЩЯкмлщыєђѕѕЙјѕїѕѕѓєђшнздбЯЪЧЫЪ–j^W^p^баЧЮЯбабзсмлпаЭь§§ѓжзјбСОЛОТЩмцьэяэёююььэюьээшш€œхсббдедлЭнгŽAG`YххЮЭаЪЮЭжжмкпккмцчруэыцзжеЯбЪгбгзЯехшэутгЯкттлЩаЯЦАКЪбЫЩбэёяЖziWздЭЭхузджкенхцспчщщшэшнжззргаШЪЫЮЯгЧФдаЯзбЫРТЪРЗЋЇœЄЖЧУЫУУФЫЩЂnZеЯСанзйшцэуппнмндздепхзепнйеЭЪЦСЫпзаЫЪЪЦдтЮФЦЪЩИЛВЖРОККРЛЖДЊЗРйУЦлзршчщкйхдабрыркзЩаймнухлФЭЭЪЯЯШгаЯСЩЭрЫТЦЪЩЦЫНРЩЮЯЩОСЧОНЛКбчмЦшэнрсрнггйнрпмнщцрЭЦЪЭааЭУЕЖМРЩгЩбаЮШЩгдЦЫЮндЪЩгазкбагжгЧСЪжйаЫТыёыёѓяцщььзмлЭТЧЫабСТагеЪйпзОСТЪжрнЯкыынлзжкжегабддксуррллкррхўкшшыѓёэёяцхмккЯжчяяркууцдлдмтчнШадбйцььсбЩжмаЭбдЫЭЯзмсллблдбЪЦФТџ€Є•’›ЅАh\YHFb‹ŸЁœŽ—œZ2*#( &;k‡‡nt~Š‹Œ‘…‚Ž›‰cigcdž˜™Ї˜‰’}|{eW{ЁДЁЅБЁhH- 2.)$#$&&$#+(#,(?>PŒ›—Œ‰…Šˆƒ{me‚‡ƒzou{vˆƒˆŠ‹vPT]a`q–ЋЄЖК™H4+!--+&,(9?8)$$€б2"g•‘„‡ŠŒŒ‹”n`jrqahmkr‡‚‡—wJJ[h^ŠЄЁ›ОЦ‚21@,8>12(&"(27%$%%" )EnЇ`mŽ–‡h\enxvjc`dpo}ƒ‚zhOT^d‚œКНМКЅ‰N2"#-.,#)(),)$+&*:WŒА…ƒŽ‡ˆƒ{^[jrtpikgku|dtwode[N\JtАдЕЉЕœW+%%!!$&"(&*4(0++&$" EgŒˆƒ”›Œƒ”•{hoo€ ei`houZeptrzzhe^{™МНЋ–tH)$+1$,#*#%$Lx‰ƒtMvЉ‘ˆŽegdrttvqnpd\iuqjnjpuvo}ЋЉЃЖv;&9517%!$$&# ;k}Œzn^c~ur{xq{qt{qiG:wqhabrww~…ЌНК›G?MN423&%$#"$$)LЅŠzqqkw‚…z~ˆƒzoig}{ЁЇqЊ›‘whmzgЈацс•<>NIJ4GN*$!  M…Š}~ztpd•Жgqqvzromt‚Š‹r~orohu……ЇŽЄЧЯЋ^,(%;C@PuS()  M}‚wqgJq•nqiagdjm\w}i`ЅuZZ\mw~”ИНМЊr;373-(-93C:@*" €ž,PZ`x|rbVZ]Yt~rqutkbW\dik^`Ё‹vv}{‹ЁЁЅКЈ`7)&2;C0" *OJB[bI?GTgU\ukjouwr^\bpvvh™’twˆŠ’™ДДe0")9I&.1 @m\5-("!m…Ž„e`]`SB8Ahqm\VYVjxucY`aiw|ЊФБ‡Z8%&!0+-"$"# &(*()+, (]pˆЋ”ˆ}^b\Sj‚wuvh]ba]mvvg\hjcrw”w90+,0%*,$ !! 0w‘ЄЋ…~xreghaiunpgjmrvv~|{jgbguvk5.;5-BN;?ZЁЌŒ–‡‰ŠgbbYA`|‚‹ŽŒ…Žœ–‘’‘”ЅИКЌŽ~m{‚‡‡ƒ|wrxjiidhmp.)(10%GBGQ]GV‘‘ˆ}ncciwxtƒ‡‡”ЦтЫНЉŒ™ЫОНУЊЅœ~‚‡‚ƒ‰zw|wbS[cihm)-81*+AA-%9m…~iPYJwЊ‘~„Œ‡}ŒАКИЗ–grЊЏИКАЄ••‘‹‰’”‰}{|{aWc\^dt%("+,*><*7@802bwmddˆqhˆ„}v…„”Њ›‚Š’—”ЃЂŸ——Ÿ–Œ‹‰ˆ}popbZWW[]j"&*#29()ALQF\jn”•…ˆˆŒŒ~w…”•ŒŽ–™’’ЌЗЖ”}htwxrumnjovwnn&,3,#*(2() )&;`z„„‰‡‰‚|„Šˆ‡…w…Ѕ™™›ŠЁМаЪЋ„mbt„‡ˆ{uqpxti]-!#*-&-!&$+ $a|’ЂŽx‹—Šƒ„ŠœŸЊЌЈ‘ŠЅИИЦзЫЉx|}zp{xijo?+%"11)"!   Bjƒ™ˆzonwz|zu‡™—”—œ•‹ЄАЗУЮЛ}‡Švtvcanhio#)%%*%! 13Je{{ƒprtv‡ŽŠ”•‘•ŸЊКЉАЗЖЉ•‡}xx{obZcov,-5:01$.$€n%<.CNTemƒ›Šx}~ŽžžŸ˜‰ˆ’›žœŸЉЏЋ™ž’‚}wwv‚wdgbZi.5)(%20)&(1# (-:.A4*#J…™‰‚‘ŸЂž‡ŒœЊЉЃЎЏ›œ––Œ~…zuw|qiiq,8-%$12*, %0&!, 547Gbwixi~••œЄž•”œ‘Ž‚|uv‡……thcn-30+4:#! #(*.@ZYbo~‘ВЊЃЁЉЈ˜—œЂ˜Ž‰ˆˆx|}xehottp&C@4,&.#  0&%%&$,PG+CWdnz‚}‡’ЇЎ™‘˜Ÿ—zvxtz{onutb[\L.40<*#*  *)*,+)&)9Nk‘ЁЅ™™˜ŒŠ‘ЃŸŠqvrnoxwnx|rggdpQ9-PPGYH$")),378,#"4<>)#:h‘ЃНОЅ•~xwЏЉ•…r\mwx|wjpopoo‰œ}IIYB7. !%*+*?GF>929)0#!&9Y‡ЌЌ’Ї…ЖбЭА…ao{ˆ…a^\Z`]]ЋДЃŽxkO:HA7$&!9AEM>:!"89;209iАЛ›Š‰‹„•ЏБ„bdo~qYhkjquu•—ЌдЦ”L-*% &!33,7;993,185"&,.HF;Ebƒ‘™›ЄЄœŒkec]ebamrnuzЁЯбеебкЦЈЃž‹ƒЂЪтржЫЯЭЇc,3F284299;3173<@7:-?ES–ШЫВЛСРЧЪЩУРЧЧУЇБЏЏАбгеааСЭТССЇžЖрькрчд—`:+4@@9;98<<:58AEFACUNtЩткЪЩШЩЪЧОКЌУССКЗИКМЧЪЭЫТЦИ›™ЅЁЌЭзжцьЧdN93?@G@B82BGLF?:>@EIM>?‘жЯФЩЮЪЪШЭЌАВИИЈЉЎДЛЦСЧЩЧагЛ–ЅžЌžРкждщч”A?;GY„ЪЭЅМСЩЮЩЭЎœЌДККЖЋЅЌИВСТШТРВ™œЂЄНйььыхжЋcG93;CBGGC;:BB<;<>A;;8UjЊлаТУЩЪШШУЄЌЏЛОНЛБЏЕЛЪЄИОЛЕВЎЊЂ‰ЏхњплсТpB>?:9>A@<FBEE€C9:Z‡ТЯШШЩЧШШгдКЏКОРМЗАВВЛЗœИЛЛНМЕАЎžДЯчюцЫ•W>?C?B;:<<9439;;BCB@33;cЉЮЫбБ‡ЏлЮЯШ‘ЎККМКЗЗЖЎЊЉЎНМЛЖЛЛКИЏТнккр”P;LFE@<:88<83)7>>EA9?$.O‰КЭЯРВ™ЉШЪЦВЎЛММКЛИВЏД’}ТУКЏЎБЛМЖЗЦнсуНVF^aMB@C><>:<508:;?::5;9gСнеРРИВЋЗФУРОФШЧУКЗЖОхыЕшреМДЗЛОЉЗкєўўЌJG[WTOP^:8:>2541,+0213>;7.2-%*1085H„ИЭРСНЕЊ‰ЗждНЖББЏАЎЎЄНЦБЈмНЄДЗИУЦбпэьЧOBJEG:GEMMGI<8.-.2)*.1LƒžЇИЩИЂЈЅЃУООКЕВЖЏЈЈЋАБДЌжЫМЛМЦЮйЮауОiE40<<@GOQO9"03,85-.4<:CHa)758:9:9:,503d˜™‡™ЖЗžЊМРНЄЇЂЈЏЗКЖЖДД€ ЗЕБЌжЛОРООУжеЉk<9>BB?<<8(*|ЮЗœЌДЏЋЉ•œЁЈАБЌЏЎЋЌАВБДЏЊЎВИмркФ—a?31;<@75743-0,))49;B@FFA;0$E˜ТУФФЎЎЈЂžžЂ‘ЕЖЕЌЈЄЉЏЗЖАЎЈЉАЛМесЪЄnP>7?8;>>75.,.3+!(.83>?>9?T8<ˆЇСуЫЯУЃЂЃЊЊТЖЖЕЕЏЉЉЌДОМДБЎАЖЛНТ’S7?@FB>9873-0*,),)+),(%.,443,MЅШкнШЦОВЈЊЈЌВВИИЗБДИИНСРОАЌВЗНЛ…LPVYIIC;33,0-+)*#+)&"0,!033Ј1HЂлмЫКИМЗЃ”Ž›ŸЏАБДЖИКССООИЉЄЄЎЗИВ4$AEHIJC93-*1+11714**&,+(9;0,3>ƒЫдИИКИКРЏŒvЁИЕЕЖВДДЕБВВ€СЖЄЁЎДЗЖ00BLJE>>98931533242*,4204??9E…ЖЫЯФУСОЛЌТЗЕТМРСКЛЗВЕКЗЕККДБЏБДЕИ2>INHA::7573394-4.+-(407;><:8;8473,,010,*%OH$"G}БадСМЗВЎБДАЏЎЌЕБДЗНОИМЛМЖЇžžзŸЁЈЋЕ@::7;808915487235:725:57FGW‡ЏЊДУОМЛЕЕ€zЗИЛРРЗЖАЖЛОЛККНКЕЉЄЄЉЉЂŸТЮ2211;9::4+,20458;>9109UUILxВВЈШЮРОНЗСаледЦУТТСФССТОРМДЎИООЖЗЏЃФщ87274841,49:901<<>;52)7Ch…’–žЩФЦООТЩбагдЦУТЦЪТОКЖЗМККЖИРТНКДЎŒЌ1*+%12372358;8;ANMO02>gЌФМЁ˜КРРНОККЮгезЅИЖИКЗБЎБИЛИКДИИМННДДАВМ259711.0-!(47<8@A>)-?E}ЖйШОЗЗМРСФЩШШЦТШЭЫжКžЏЄЗЧЫЯЭЪЧУНМОТОККНУЦОТЦ,-0.01-34+5>GLZAEV‰ФЪЮТРЛИЕКТЧЫЪЪьЦЩдаЮЎЄЏУпЯЫЧШЩЧСОНККЛ€ЈРЦФРСЦ.)+.2,,1-,4<-.8>wЈКМОРНИЕЖЗКРШЭЪЫЩЪаЯЧУСЦЩЯЯЪЦРСЦЧУНЛЕЗМЦФЧЩЧСОС!)*"(&**025OBEa‰НсЯЉНОШИЋЋЏЈЛОШЪгзздаЦРОШЪЩШФМИОЦЧНИЗМОРОКœОдФСС(+)0..1--+IxЁЁЎДРТСИЏŸЅŒЗТУЩЪгадд€ЫаФУЩбЮЭЪЧРМРЦЧЦТТРНОНВЋЋИРУУ"4998EIS^gezЃШхрЮЪФФьЈИЛЕЈЗЩФЩЪЯаЯааббгзгг€ˆяљњмЈ˜РЭгбЭЪЮЮЪЩФБЕЌБВЗМ@CCBB3I`MPuЧуЮаСШЩЁЏЎЊ‰ЋЦТЩЪЭЮЦджйдааЫдлухуЦНЏРЧЫЫЦТФСРСЫВЏАБДЖЕ74359#:UJPewk…ШЯЭЗЎЋЎЌНЫОЗИУШЫгѓў§ѓшггмђшьѓхтеЪЭЭ€ДЩЪЧЦТТНВЌЊЏЎДЖ0:88058[UB::>BFAB>;;7787($,10SОЭсШФОУЪЮЩЦФЫкнрпздбехчь§њуСНСЧЧУЦФФРОЖБДNH@@GC>9>;74354,#,<:+0d•КгШМЛНТЧФСЧЮаейкжбажучэьљьаСЩЩЦНОНИВЏБАЖ22747>;:45.0452-#,97;CH[…ЋЕЦбРИМУЧЩЮгбб‚абжлятцшырЯТЫЩСМОСКЏЋЈЊБ*,&29C?C@:8?@?7%$3@4LUQio‡œСнЩСУФгзмкгЫЦЪезлнууслнеЭЦТНОММКЏЋВДC955>??@F5,-;@JC*+0@2IPNYJ??mЏЩРИСЩйбЮЮ€œазптрпсскежаЫЮШЩЦФУЫНБДК9CC<>BJFG-).?FETH35E>3.@VP51GeŠКОЕМРКЇМдкйнрллкйжбЮЭЧФЧЩЪЪТНИБДКAB>@Eh]:CeŽЈБКРРЮбжебаемзжОФТНЛНСРМКИДАЌYCH3FHC0:;!#+5<::€.40:8:97:7>>EFC?HYk—ЫймнйжЯЩЧЮЯЭСЊЖЛИКМНКЖКЛДАА‡[A;^gYn[A0152>B?@5.0:<88?FEB?AFLQ?5OŒНгшыаЦНОДлцбУВЇКОФУСЕАДБЕЖВР›WSeQH;($?@4;42+)%-.28@GOMCA4&,9?@:A?;;?AF@?>BCZ[O[ˆЎЮйзкеЮНЎЌЏЏЋЏАИКНФЧТ‚ЇЉЌАЗФ–{kj]ZrЂЛКБЃЎВЃk09O?;;@CGE@;4BFE@.*BEOƒЇŸ‡Ž™›ЁЅ›–žЎœv~wuwЏЎЗНЌ›Є—–toˆЗЪИИЧБ}^@.:LJG5??G?@>HCCLC3CYJhЉЕАЂ™ЁŸ–Ž|t˜˜Œˆˆž€фЂЉœŽhjpqtЏНКЫЯЄ`PB3@MFI@@EESSTE@@;?CHA7wВЃ•ŸŸЂЁЅЋ„{}xvw|…”˜•™™ЃЈŠ`cnxqМИЕжк‹BHQPPUWQI?@FJJFF@C>>7H]}ВЃt{‹›ЅЃЄ~mu‡‹xqw…‚—”—‹ggqwДЯедбМ›aI>;CLOMLM?JAEFIEJHC87PoЁШЂ™ЁЄ™›”Žpwƒƒ‹‹~}zx‰u„‡Ž}utpaƒЫыЩОШЎhAHMF?HHOH?;IHFGOGH:..€Ž\ƒЄЃœœЋЌ—ЊЋˆ‚‡ŒŠ…{xz‚„Œrˆ‹Š‘‡{{t‹ЏдйСЎˆ\@CNALHF@9B@@8AFHNF94.;`”Ѕ˜Ј‰VŽМЋŸŸo~„ˆ„ƒƒ‚xrwЉƒƒˆ…~–СРНЭŠPEYWUMIABA773879IEB<2.M}—ЂЂŽ‡iu›™–‡‹‹оŠ„ŒƒƒeO—•„|……„Š˜ЦаЮЊYQieUPPMHG@@€\H?@?EB4;;7`АКБ~ˆ™—‘ŸœŒ‚}‹ТЦ‡РДЄ}‡–’~ŽНцћїЉMOdc^V[mL019A>:80.9)48+7`–Ђ˜—„„wЊаЈ}„„ŠŒˆ‡ƒ™ЂžˆŽ‰„…‚‹˜›˜ЉЗньЦu@@FP[]ie:HC@,57::*(.7-:^ŠЏ›˜‹„zcˆВЉ‹Šzwzz}{q‰’zuОŠt{uŠ–ЈЭЯбЛVGQMIGQTYWPTI;-80.3(&5HaroŽ—‰unnrr”‘ˆ‡ˆ~tqnqrwzxЖœŒŒ•ЄВАЖЫЗtP77>ABGVQS@((57A?<7(.9>.?c^^tw`Q`b~jn…~u‡Œ}x}ƒ‰„wЌЈ‹‘žЋВЩТzB?5:IJ`13;>;:GA;05*2Z‚qTmŽŒuŒ’gah|‚‡}|zz|„…}|Ћ‘’ŒŠ—АКЄnJBHHNHI>@GA:?9?5*;>;;*;o‹„˜‘iq‡Œƒ„umhnu{…{‚zx{zon…ŠœЗ…‹›ŠhUaZSNEA?59?GEGC9*7BEA><9#9`‚‘Ѕ˜—Ѓ‡rr~…qemt‡{{vzz€>{ztv–ЌЂ„xbLAOLYPH@@;77A@?F?:BEBB?><oЛ’kƒ~}uaeegju{}‚{|ur}‡rovz|ОРЏ™g;?>OTOJB;>9803:;4<4&9ЂКСž˜–…}z{tx‡…z|„Ž—‘|x{ˆ‡uNU]^\ME:?98,+(1.9544<.,3,,&:):}ЗОЊ…‚i[Sdirv|z‚Š‹‰‡Œ…znixˆ‡{81MUMLJ@9:31.2-55A74>%+2<98(*53eŸЌ”ŠŒŒ|V?vˆ|ˆ}{|‚‡…|xhgu~‹.0LQMGCA9>;;::,*3>78:78:>EC:7j”ЁЋ—•”–‡vŠŽ”˜Š………„ˆŠ‚ƒ|‡‚‰„5FNWOHFFA@FBC<:2134::+,2EBE0Pˆ•Ÿ–ސŽƒ}o]ˆЭБƒ‰„t…Š‚w‚ˆƒkoz~o{IHQOEG@C@BA?FC<5.<:0:0.)YL"2V~ЇЈ‹ˆ‰z|{{‚„ЁŒ”ˆ‹…„khh€-dbw|LB?J;;?F?E:3?97>:><8><9:JTTuŒz|–ŽŽ…ˆ~‚ˆ‹‘Žˆwvƒ‘Žƒ‚ƒ‰}nhqunr˜ž?59>;CC9;?>1;7BTYHCaŽƒu™Ђ•‹Šˆ’ЇЇЎЈ™ŒŽ„Ž‘”ˆw…‘ƒ|zrŸОI98:74;98:;?8A97GF+-208FSjggrЃž™Ž•—žЊДДЊ•™–”‹ƒ‰‹Šx‡‘•‹…ˆƒc\zA;75,4312,7<:EA;CE8@EZN>Tz‹‚…„‹˜››˜„Ž›ЏЈ‡’‹‰’”’’—}ŠŠ‡ŠŒŒ‘”ˆ9?FI5?>?G>;FJ@?(74Fh˜ДœˆŒ‰‹˜œœ”ŸŸ–—ŸЋЌЉˆq|t„™ЁЂЁ”–‰ƒƒŠŠ…„ƒˆ›Ё˜”›>9@H<4.791>278")HiwjvŠ—•{jdZˆ›ЇЈЗЌЊЋž™”™ЂЅœž’•‹Œ–ž–—„‡‹‡|u|‚”—•1,+%@BEB:J.!SЁqz…‡ž—q‚„j„œЅЌЈЄž”™žЂЁ—ЌКВЅ—‘–žŸ•‰‚Œm{’‘‰0!"#:24N?Hk’’…ŸНСœ~u„ƒkРЏЌЇž–‘‹‹”ЁЇЇВККЃ…j‚Ž—‚…Š‹ˆ’ˆ‚}„ˆ”‹‰%"1%5N:9TŽœƒŽ’‚’ЎпяР}`prЅЊ’žЅЃ–›žЋЃЈАОшШ™‚‹„‚—ЄœjEY{‰„•Š„+%4"1++-hЇЅ|Š™ŸžИаЗ~pjhp‚ŒˆˆŒ—Ѓ™ŽЂЏЏАЖЎЌЌДЈŸ”œŠqopw”u1>pƒŠŽ~:>0*7@2*5+@Iv‡›œЂЃЃ™—›ŸЂœŒЏДЏЖЎЇŸ˜ЕеэщУœ{‹—…ˆ‰ˆˆ‚~MABSNNHOGGJCC­50%")9x•ЈЛЃ–ŒŸЅЈЃœ•ЈБЕРТМЉ™ЗЫамёуО”‡‘–••’”Ž”Œ‚zSOGOJPIFCB>9B;9!+).:,,]„œД‘‚Ž’‘‘€нžЉЋЌВББЄЇРЩЯмцбЅ’žЃ™Ž‹Ž|tzuw~I.25JVP82Ce}œ’‡Ž’’{’ЎЏЖООЕЏЗЖЋЇЁž˜’–™ž•„u|0HHQHSPQ;493BA3(153CG@>:CBCCE>L[kv{‡ЊЫОИКОСААДЛЕДЈЃЁЃ’˜}{‚‡„…:@]SLLGBB?0*<310)(7CG;UpzƒŠ”•ЁЎЛНЎЌАЖДА––—•‹Œ‘Ёƒ„uiu`FOCLWF7IF12;:397*,;@CBCAAEA<294@98B;FHW[`[LSPTZP933;MmžЧЧЌЃ™дьёЭz„•Ѓ˜vqpquknЅУбСŸ‘}eSaNLHC09@F813:?QSZ[QNO>CEOUNG;@Q{ШйВЃЅŸ™АФЭž{}‚‘…n~‚‚‰Š…ЏЕЌТщмЌj8HTVIG@E?JE?9GNOUUMTFOLOTTQOHMbgVax›ЋВЕКНЏ™„„~|{~‚Š–›џфtndakxtu„–’jP^v„™q4Giœ‘…zrr€йow~‹•‘…umainie˜ž‚zqkjntcUbdkp}Ž…‡}}wnYeikw…{ŒŸŒkVo„uZdmaQp‚‰‚tt~‡…‹ˆrccp}opopzuombPAZnquomiU|Žƒxi\]„ƒ‡™›ЇаЌkUWa`PVn~vzwhmo‰‹eT>ajnjv{|}uqpc^`adp}vumE[qkrW@\i{‚nppvrOEnew{iaiqƒ}rmjjrx‰”gYdZaoiu‚pedjmkphZbhdan|ˆŒYZccZSoz|pt‚ŠcQZ[ecejZAVw}uuvnipv~Šxk|e^gxw„|kZ\Z[caH\imjtxron\mhebctpnv‡‡…tkgV]]\^g}—…‚~qhnk|•—‰‡iLYckpw~™œƒrqkjdn\cd]akpvokjNGIhzvkiku{tbqb^`^[YUe{|ƒxqrtЎ•rz‚wb]hr‚ˆ‰‡„„}niji`\coeqq``P[\mrqrkiozww`VddS[ceqx|„…Š„‚’Ÿ›xcdktikrƒw„‡‡…~tvzwuncZUac\ejHj‰–•‰„|}ztrwo^jiW]capwu{um|}ЋЁ‘Œ}[jromnv|ƒƒ’ˆ|}qouoidhk[\cekt[Se{‚ƒ{ttrppwi[ekbj”‚‚ƒƒrz‰Œ’œ‹iGZdtqqgmŽˆ~~|qwponncLWgntxz‡„c[\~‡‹ƒtmmjt}|SermiŠ„Žˆ{jqiYvŠ’…mU``M\unq˜•‰…vxwrii`bYahjkuxƒŠc`^~Š…vropkzŽ˜ihee\^u~‡qpxomMm…ˆjddek|tƒ‘ƒ‹…zwxompopvm^ejdmrz~ZUpƒ‡ˆ…nnp”~V^kjJIjƒwkt~uqrŽЏŸtdZeknv|zuttvtnrqjnwttqja^`~ž‹„]WZkrvˆŽzromq]Juvm[mЄ•{vupnmdFv‘˜xTckim„Š„|~…}w‚|tnrqiYM[U;rœ~}aUVbZnzcgmkie\jooqˆ‡~qtnjmi\GjˆŽiehujx}ƒŠŠˆ˜ˆ~tme`jje`VNb|zvthiortoqrttqwxtkenmvuogku}q\gЁž~„vr~‘~dВЭž”xgWM]jubZ\x~zvuh^q~{v~re`wxwoumutpnmnoqoi\vУжŠPcnciiEoЛ•Œˆ|rvbUWNL\`ajq{zpgqmurmt„rkdm}~}{tnhjqrvvkadmЁВЄ|I@bpkov|{k’–…pu}{~eLWTamqwvzxkuomkv„‚}mv‚‡vq{‚zw{x|~…•icpŽ˜œ˜‹v?;@bu‡‘}‘ЎŠ}tozv|‡mcO`qtƒxvzpmqwiv‰„rn‘xv‰Ё–zt„‡Ž‚rgkk„…~z}P5e˜…wmzФдozrqkcijp^^€ mikvrv|gbkq|‡‰u|~gaˆЁ}GN~uˆ‡mackmebdjZa—Ѕ‘Œ„‰Ÿ•rmux{VW]iierttw|~web{rxzƒ|tmt„r?CvˆU-Sz”‚ƒ}}qmpqpgchxŒ‰‚‘‘~…ˆz^CUOererod^z„Yd|x}„zotv}|hcpvoNBcc{Š‹”‹vt||wojigook[v•ЌЃnzvzžx\]Tabbdoxhk|‹hOtx|„‹xz…„{tbouoaS>`w|r|~uk\]gj^`hqbawzžЗ›}{|Ѓ}\YTUYgœЌŽv~~\Ejwupuvv€qadod[[T?Zae‡„z‹ЕО‡zqpƒ„eABk‡…uŠœ…k{w„iTACW^YzŠ‘ƒbrJ)){‡ŒŽ…wzސ„v\k‡uBZg}~vŒЌž‘…][wž~oh„ŽŒŠŒ—™…v„ˆ„gCZgraGkgt~|dbcma•–›Ž‚ˆŠ–Ї…`e~iHi‰}ojrr€вtq‚МК`v‚v…‰•ž‘Š…‹|]Zht…Y^e~|{~iN[Z]|–ЃЊ—•˜˜•‰ƒkkb^;>n‚oen‹ƒ}jdpœugnnu}rt›Ђ›”ЄŒrcBLv{MSTnpx…vn^S4ˆ˜™Ё˜Ž‡‰‹{tr~{(*jodkhjkjovxnbhdir„‚{~v’‹]H8AcƒuTc‹”‡ƒ|}‹p`V~‚žЉ›‘‡ŠŽ‡v~Œ|E@{}qzqq{vnwz|wmjcdkrvˆˆŽ…xw{ziZdw„tw]pˆˆ‚vu„pbjˆЖМИœ’–Ÿ–}™\Ixxw}ƒˆ‰‰ˆŽˆ}rmebm{dnu‚‘‡utkhb\M‰ƒ…xvkjqzx]q[Qb”|ЂŸЄЇЅ˜”—™‹}\*qƒ{}z|‚‚‡‹„to^Zdu}‚zunrujtmkjihkmomkirtoZQTe„ˆŒŒ‹œ•Ž‹™‘‹‡t9Pqg„u||ƒ‚‡ˆzz•Z1Wbdjopwqgq]SNxqpaac…‰gotornpnƒ‚zƒ}|{z‘…n^hxi{~{}‚‰‚ƒ…rqЇ}]pzxupnounmmoTA^i|vt‚„˜Ѓn”|d‡j|z~|…‹‰up}ƒ~rnwƒ‹Š‚‚‡„…}}‘’gYhovuptiPTajwr\^‡xji–ЌŽuOSO$?uru{~{z{~ztw}~ikth…}‡‘Ё}Mahoiejrzzrrnj^dq|qpkt‡ЊЅУеИƒ}ea[CkŒb[rzw|}ƒ~qgnovdbttw|}}‰—Єxe~•rV\jmpmmoa`hqx~xwp‚…rdzЊЛ™md|tw|ekj^ek[q~zv[]dkd\bovzˆ‘ˆˆ~‡„…rpimhup~zhkpoxx€іw‡”iTMqeJ|mGF`ub^ZV\dxƒƒ”˜zƒ~vhYQ^oq{ƒ|…•Œ‰Œ’rda(4He{im}’Žvv|wqŒŽo„qq‚„}qat^nv…}b@""4jЁœ”œ’reuzrrx}‚u„‹…‹}PhdVWMTUJZuumhr‚‚…ˆ}ou…‹…ƒ”ŒLc^Mnhm]^TFV…Ў˜›˜uQcokev{z‡Ž‰‡‚njT1@HYW^gr~zokzpmjt|x’œ‰~oriptko’‚ttghepœ•ˆx{z|ƒ…|‚‚‡Œ”Ÿne|uPhc[CF&E‚‘ˆ‚z}xNphxУЏ›—‹t{}zma\mr[:NLM^q‡Ѓ‰meUbŠ–‘xitz~‡˜v^ag]ikbTZba…ˆ}ˆЕ”‚x}xŽŽœ‚w{‚wwmYbkq[UYTPZ]iwxtqbLo”В…eg|{}||npaY#QgbeUb„„ƒx}ˆŒ–——‹ƒ„‚‚q`t~~qzjmkcjm\bpmq}~xvw‘ЅТЕЇŒwttxzzohcUAZ\ehikjž•ˆvp{Ž˜”Š]b|……na\Y`[OZ‡nidhmhhmrx{w[Ov˜—˜Ÿ’„r{}uz|vchdurrНhv‘Š‚qhmŒЁ˜‚bxƒ}eccZahU^[|wun`jehknz}{p`C]ƒ„žЊŠmow|~|ouwrecmomktбcmd•˜˜me„„j[e[^kxtaQuwnjihbhoinuthbPE\ˆž”u]c‰ˆˆ€$„}zvbW^jrjm}}tv”˜‹‹kOT`UZ[YQYhnuituxpnkcjmpu{Ÿ‹bGOwƒuЌД•‡‚vnxwtj›Ћx~wwx}‡‰•‹zzjmtqdbh\OY]enpxtrijokgjv{}|ŽpGG|‹ŠƒzkhŠЁž…{qgp}zޔބ‚xƒ‚…Ž—”|t~zwujmkd\d`b^ivgmkmqmhoxvkgzbH[zw‚ƒ{{r‚w}‹qUu…’އ…‚ˆŠ…ƒ‚„{’‰Z}ŒŠ‡‹|tgSkvhiuxnkmh\egj{rhmp{}ˆ}~„„‰…~wtu|N5a‹АЅ{|xzƒ‰}gmЫшЃ›ЅЄ–ŽˆodY\tuz}~uoiahqzuje\^hntv{rp}u|zuqwoM3VЄУ•bmntn„Ў˜bT•ЇŠЈ—Ё‘xr^Yjnkkpuvcbingcc`ZSP^`dhtuchpmgmpwukc`bЪрРЌ‘|gZƒЃ}Šz}ˆ›™ˆ~j‹pHQmgmo`gudY\mnmhokig\bppbbikvzwnpc^^cTe›ЫЪЎž{ch[}Љx~z{‡z~qu{iY[]t}zŠpЎvqoqpoqokjdWPbbW^t…ƒ~~vimrrvuw‹—ЊЅ•„gepguˆwtŒ‹vbddbcižŸ…‚z~z‰o`ao{{qd^\\bjqba„›‚~mZ`deiotwƒ‚…‹ƒoY?c~‰™‹‡‡}zwzpvzv~…}tnrz~jqnp‹ˆ„{iickpe?;`up…ŒƒbS^jim[uŸЊˆ‚—–dSYxЈ–‘’ŒŠ|wtgtŠ…ƒnnpr{’˜‹™S`gj’|ki^TV^d]\Yu}ˆŠˆpYO]uro‚Рц™„‘„umjwŽ~‚Œ…~|xxv{Š”–npjqj…`W[Ugzz{jd]TOWWVYdcn…„vdWW}’—}ˆЌМ–ЄЄzQ[abwuz|vrxjetu‚„ƒp^rmPrއhZ\gikxxkYUUMYYZ^UZ^npcgh’ƒ‡ещС™ЉЖЌeVdnx~voo}v|„Š„wnrwƒ‚‘Єcma[JW\itdW8?MOOQW`Y``V[mqŠ‚jƒŽnkmx}\:AYj……|~ˆƒz~ƒxrpn|ƒr•ЈДФkmqichjmnjnSLOUSU^QP][bb[gn…‡tx‚ur„Œoh[[q{‰ƒ‹Žˆ|t|xtjVeeijƒŽƒ—›i`cdadceqpaYNGMAP`bZad]aix—œ~wŽ•‹Œ™‘k`bkm{x~‹˜…Š•w[9IFL`‡|ЁЗДЉ‹њБИЗЕИССдРЫййЕ›ŸКФтЖ’ЕЧжзШФОМЖЖЗНФЭЫШКВЌЎВЕАЩаСКЗВЏЎЎЇЉЋЌЕСбШЩФЛЛДЕЖМОЦЫЦатзЌЁЕШК›ЁБЈ™ЗФСМЛЛЗКНУШкбНЇБЖВЕЗЛНЖЗКИЋЄЈЇББДЕЏЌУнТЛЖЏЇЈЭУШШЪецўцБЈЈЅ€ОЖФОРФТЖДВЖКТЫЭОЉ›ЈАЎЏЖРФМЛИЖВЌЇЋЕКЛМЕЎ~ЁЗДВЄЄЇАЧЧФРЉЋКЛ–ŠЕБЕЕАЌДМЮУЦТЗБЏЏЖНЧЧЮЎЇЅЇЊЉКФРЖЌВЕЕДБЌЅЇЌАДЕЗЛеЉЅЇЃЇŸММКЗМСЩЈ–ЈЌЋАЎЄЂ…œРФШЦМДВБДМФУЭРЖОЊЉЏИМНЫСЌŸЌЊЌЌЉЈЃЌАЕКОСКБЉВЌЎАЗЗЖДОЧЩаТДЊЈЂЃЃХЊШмЩЪФРЛЗЏМзмЮаЪА™ЊЊВЊМЦмуЧЖЕЖВВЈЇЇЋЎЌБМЛЗВБЈЅ˜ВККВЋВИСОЎИЊЊ™ЄЁЄ›ЗОФЩЪЧРМКЖбшЭАОФМЎЎАКТШШЧФСМОЛМЛЕЎЈЈЎЏЗКВЈЄ–ЈЉННМЗЕДЗРТТЇžЂЊЄЁЃЉБМСТТЦУЧУЩгжнНЈВДБЕДЖЛЛМЛЧЩЩТЛАВЖАЋЋЌБ€ЌЏ‹АЯлтЯШУНОСРТЕЅЄЈЅЃЄЄЗМТРЛКЗСЦЩнкЫЭЛЎЋВЕБВЛОРФЦЦУМКЕЖЗБЋЏЎЋЇЋЌДЗЁ’ЄИЪЩСМНЛММЖБЊЈЉЈЋЯЩТЦШФОКМФШЪзШЌЌЏЉВЗЌЎЮШШФФОНИЖДЖЖЋЅЈЏБЗИКНРЋЈЃЧмШМЖИЕЖКФСЂЌЋЋЎСЩУФЦРЛЗД–ЏЩЯШĘЇЃЇЄЕЗБдЮЭШУФОНКДБВЎЌЌЏДИЛОУРЅЂЛЩТТКЖАДМЦгЎЈЌЉ—ЄЛШЧФНЗЖЕЇŒЎМОЏЉЉЌАКЗТаЫФТОСЛНЛЗЗЖЗЕБАЏЎБЕКРФЄЄЎСЫЫЪОМКМОл֘ЋБА’ŠЊЦОЛМККМКИЫлкМЂЉЋЎДЛЦЧРЛЖЖЛЛИЗЗЕЖММАЅЅЇЄТдЧЪЋЈœДООЪФНИИЗОЁ~ЌКНЂВскУОЛМЛВЈБзйМ’ЁЊЌЏФЯЪФТОСУЛЕДДБЌЎАЋ—œ™zЎдЦФЄЈЇЊЊЖРМЗЏЎББЈЉЎЗЖНТЪФРЗЖЗИБЈ‚ЇЮЯЏЊЎЛВМРЖФЫЭгрЮЩРЛДБАЎБАЉЂ”žННКЛААВИКЖММДЈЋЖОЛЕЗЖНУЩШРЗВДММЗЄЌЯпрЯЪМИЛНМЅЦёўзЮЩФОШИЏЋЉБАЈЃЊДРСОВЕЗЗНССТМБЅЎЛШШРИДИЗММ€sЗЖЗЕДЏžЗеѓўИ‹ЃДВВА‰ЎдцеЭТМЛЕАЊЅЈЈЉЋЉЉЕМИБЌКЗКЗЕКМНКБЖНСТМИДДИЛЗИЗЗДЎЌВМлызЛ…~ЉЗБЗММИБЭлЩСЗМгЦЮЎŸЄЉЋАЖЛТОЖЏМКВЌЎЗТРЗЛФЭЛКРОНМРУУЧЩеОЏАЏЧеездЗƒ‹ЌИРЯЗЫщЯЛИКНУСРЧБЅЊЌЕРОУРСНКЗВЖМУФОМРЧФОМУржНКЩЪЪЭЧЗЌЊЌЩЦОНК•zЈзпУЕЅДюўбЋЕКЛЖДЖИЖЏБКИМОМКМРЎВЗМТЧЩУРРйЪЌЇгхЛ‡ЧРЦЧШЭАЊЊБЖИДЉЊŸЎнхЯЩЧЫхпИЋННТЁЊЊЈЎЗИМКЕКТОЗЖДЗИОТЦСКЛНЩЕŠŒЖЦpžШеШЭЫТНЖЕЗИЕАЇЅЏЛШУЦдбгЮЪЧСЦФФЇ‹œЇАИРКДЊАКЯЅЋКСФЩЫСКЛТТєДБАЎЈˆ}ЃЏОНРРўНСС€ЪМЕЌЌЏАДБЁЖгщзЮВРОТйОЈЅЃЇЏВККИДВКЯЏ‡КСФЦУРРУШСЗЖВВЏЄ”uЁНЛМЛМЦЦЛБЗБЌЊЌЉДЗДЈЖЗеякЛЛИОйТЌŸŸЄЅДЧкцЧЛЪНЂ‰ИЗЛЛННСТНКЋЎЈЊЅž‚˜ЇВЮЧРбяёбКДИЮЩЌ|ŽЖдеЧНгЮСЇСЩЫЗžŽЄЂЂŸИКСОКŸБ”pkЛЦЦЧШУФЧдзбЛБВгРŠДФЫЧУтдбЪŸ’МщрЧЉЉФгЫагебЭЪФСЪЎ‰ЇААЋ”АЌБМФБЊЋБЂеЦнзйЩабещЭЋЊДЖЋ‹ЏмШЦРЖКДВКЎЦѓюОЄММУРЦЯеежгЭЩФТЃЌДМЫЁЄЌТЛСКДЁЌЉЅРЯжеаЫЯггЮШЖДЉЋ}uАТЕББЗЖЖАЗЌЎЯЖЊИДЖЕИЗРЦЮабсЯА‰МОе‹ЂžАЗНРНЖЌЄЯнлмзЮЭЯбЪМЗЛУНtmЊЎЋЋАЎАВЎЗМООДЉЈЊБНРРСФФСРаЫЁŽ‡ˆДЮИŽЂЮЭЫФУНЦДЌœОТзмпдЫЫЮбЯНЯзФ‰ОСЗКМИКМННТСРНАЈЄАЛТУФЧШУНКТКЉЁŸФЪКЎЁБЫЧСМЛЫДЊЃЮЦьсрпкзжйлгЮтрž‹НСОТТЧЫЭЫЮЮЫЦРВЋЊЌЦЊКУЧФФУИАЈЂЁ”ТТССКЖЗМКЕЊЌЇŸЃдЩчррнмегжлдЮР—2\ЕЫФЦФЩШЧЦЫЮЩУФЖЉЇЅЋЕЛНРММОНЛВЕДДЏДЕИЛЕАЏАВЌЋЄЃЃЪЫбЯаЭбабггбЯаЏm‘КБОРРТФТФЦУСОлž~ЃЇЏДЖМИЗКЗОЂ”•КЕЖЕАЊЦаЯДЕИНИВББФЧЪЩЦТШШЦТУЩдаКЄЏМЎУУТЦШЩЫЪРИНнКŸЋЕМЛЖВВІДБВЖ•|ЃОМККФШншЪИУгУЋУМОСФЦШШЫЫЪТОНФОЗДМНЧЩЭЫЪЩЮЪФЛКЭЧž˜БМОННИБЊЅЌБИБ—ЂРЯЩИЊВльлНЂ›i‹МКЛУУ€.ФШЪЧОИИМККЖКЇЛУШЩЯбрМ’ВВЎЊЊДЛНСРЛМЛБЏЖИИЕЎЋОЪЩзтњўюФЛЅЄ›АйВДИМЛЛЦШЦНЗЌЏЊЉЊЎЕНФФЪЫЯуЛЅОмЯЗЏЎЏДИРНЗВБАВЖМОЛТРФЖЄДмяЭАЋЛВЗЖИЈЋЈЌЏЁДУЫЧ̘ЊЋЊЉЉЏЕННЛЦЪЭЭЮЩЯЫОИДЎАДССТОЛИЖЗИМКНФФШЏ–ЗЧЁ›РЋЈЈЌЏЌЌЈЂЇЊИУЪгаМЦЦМИААЏЛТФЦЩШЪЫЮЯеЌЅЈz|ЕШКЕЗНЛЗЕЗЛФФУЏРББИТСЗЋЏžЇЎМЗЃŽt‹БЦСпежпкРЗИКЛНУЪФЦШЫФУТЛ’ЏФЊŸ˜˜ŸЌЉЏВЎЌДМТРКЛМДАТЮЦТзе‘ЇЄЋАЛДЅЉŸ˜ЇТчзедаЖ—АЕЗЛНРФЧЫЮЭЪФЖВмкœˆžЂЃЈЌЎЛУКВИММДДБКМЮЭЫТРИМЗДАЏУйЭСФДИБЛйргЯдФТКМЦУЧФФТЩЫЭЮнЎЃЏЏ–ЖЋЄЃ—r…ОзЦСРЪМŒАЈМшЮгЮЦРРСТРЕЌВНЛЂ…ЁŸžЇНЦЦФкЯНЖЃЌЯЭЧНЛКСФШбКžЌЈ˜БЖЏЅžЇЈааФШЯьжЧРЕВЪЧЩжСУООТЛБЊЈМНЋЁЂЇЄЅАНУФМǘДжытШЋЅЗОФУЛИЌЅœv™УЏАЉ•ЂЪФОРНУЦЭЯгЮЮЩВШИЈЕМТЛКИЛЗВЏААБАБИСЦФОЛНЭрюьцдНОУЦЧСМАЎ›ŒžБЖЛЛЊЏлШТМЛНЩЮзШž›ШЪУЗЏЇЊЄŸŽ™ФЕЖЖДЕЕ€№ИОСЦУРЃ•КзЪЯгЪУЏМСРСИИТРЎЏВКИЛЖЛСЩЯФБИАЭцмТРШЦОЋЋЌЎЈЅœ–ЗИМКЗЖЛНМРСЦСЗЅŠОФмщЮЈЕНЧЧУНОННИБЊЎБВДЗУЩЩШЊБЉЮЯнБЎМеЖЅЋЏЎБДЌЉЗЗЛЗБЕЗЛЛОННМЎЇ–„ЁЮхЭЗЂЋЯЯЪШЦРНСОИЌЌВЗКНСОССИЕдтЯаЖ”ВЋЉЈЊЊЉЈЎЖЏЉНЖКИЖДЕЖЗЗНЦЭщ㎘ТаЪОЛСуьгЧЩНКСФФЖбтЮФУССФЩЫдаЪЦФЕНМЖЌЉЉїЅЋААДИЗКЛЛ€ѕИКЛЛСУЩЮЕˆ”ЧлЩЧОКЊЧЭЮЩЦНИННРСШЮЭЭШЦОФШЮбЭФМОСТТЛЕДДБВБАЋЊЖНДЗНРКЗИКРТРРЧЈ’ЂСФЦЩУУСВРРУУжИЅЛЦаЯЯЮЮЪЪЮЪЦФРбШЁНбЪбЮСЕЌЏЎББЎАМОИМННИЕКМЛНЛИОЫЭджШЩЮЯЯЭЩФРРЧЪ›|ЈЪчсФЧУФЧЮЮЩЊЗ§ўйкыйзйЫЗЌЋЏВЗКННЛМРМИИНОРМБЎАЕТЦЩЪФУЦФСТТЦТУОН›w˜мїЮ˜ВЕИЌЩщЧЂ”ФЭИадеЮЮйТЛЏВВяЕЖЛЕЗДЗКИЗЖВЏЋЌДИИРўНКК‘НСОРЛЕЋЅЧљўюуЯМБ™ЩсЪОФКИЦабЮУБгǘЊЈЗДЊЏЎИЖЕЖЗЛЗИЗКЕЏБЖИЖВВКССЦЧТСМЛКИД—ЅЮюѕйзРЈЌŸЛцОННРТЧЩСШИЛИЖžЇЅРНТЪАкЛНРРОММУИВАЉЏВЗДЖУЪЪЫЩСЛЗЖЗЗЛФббзкбТЌЊЋЅЛЦУММССФУРМБАЎВАхцШЗКЛЖСМОККУУчНЗДБЎЕЛИЖВбнШЩЪТЈВБДЕЕЗЗТТ€гЩгЫКœzЉЫЯЮЪШЩЫЩСЛИОНКМЦШТКИНРТОКМУЯбЯаЧЛИЕЗЗБƒЊЦЗЮбгДЅЌЎДДžДмсТТгаЌ›НржЮЯЫЩЧТМЗКОЩФРЛНКЖбждаВВКНЮрЯРЛЖДАЏЌЊЃ—ИЯЯЭЮдУЅЊЅКОЏВьўжФзЧЛВВКШФЦШШФССНТЧЮблОИЖБЉАгЧШБААЇЕТЦЩНЖЏЎАЌЈЈЄЌЉЛЮЯТЕЃЉФзкССпшрмрК•ЁЌДЗЛОКЛИББЖРТЩЩ€ ВЖЎА–ИбЭЧДДВЏБЗОРКЉЊЂЁŸЉЏЊЈЄАКМЛЕДЦекЧФјўёЯнырЄœЄЕОМСЛКЛМЕКФЩЪШУОРСЦЦззелЕДДЌЏЋАЖВВЈŸ—˜ЁЉЏЌЅЉЎЌЉЌЖИЧСТБШЮЗЅЏЛНx…ЁОЦЩЧЧЦЩЦТЦЩЧЦНОУТТИкхрлЗЗИЖИЕЖЗКЗЖžœ™ЃЇЅЉЈЈЎЈЈЄЈЋРРОФТТСФеЛЎЁЁНЧФЧЮагЪУТФОЖЖЉЋАБАЦгЦжаМКЗЖИЗДЖЕЖДЋЇЇžŸЅЉЇЅЇЎЎЕШдпШУУЫЯЯЪЯЏЌЗЗРУРСЫбЫЧЭаОЂ‰œЂ”ЌЦТжчкзЮ…~€ї„Ž‘ŒœЎВ‡mj‹—ЏOY~—ЎЈž–ˆ{Œ‹œЇЄžŽ~rzˆ‡ЈЈ‘Œƒzw}{xqtw’Ѓžž—Š|ƒ‚‹—•ŸЗЄvn…™Žemzmb~–‘А‹‰Ž–™ЃЕЅŒxw„’Œ‹‘‹oddrƒ‚‹ƒ„|jŠА”‹Š}xz•”•ЄЇАРьИhnmuit~‰‡}~}‘™ЁЄ’{kY{~w‰•‘”‡‚qz{}}‘Œˆ{Lc…~ƒgbv„Ž›˜Š‹ˆ][…‡‹Œuv‹’Ž}xx…•ЂЄ~gjkwz|‚–‚qx‚~{vmovv„…‹–Ÿqmvtgi…•ˆ‰˜™|^mzz|{qoNhˆ”•ŽŒŠ~~…Œ’›Ѓ’ƒ”~{z‰…•›Šznwr|tgt~„…Œ…‡u{vƒ‰‡‡™žЂˆzwkqtoz™Ј˜•’„}‘ЎА™Ё™w^i}{ƒ‘˜ВЖ–ˆ‡ƒxtgttv}…„{‚migŠ‹ƒwˆw‹utzpqnk„Ž”•‹Š‹ЈСЇ„’™ˆwt{Ž•›˜œ™”–•‚~‚ziq}„‡rngqrˆŒŽƒ{qŽ‘oiz{ootx„ŽŒ–œ˜Є™‘ЃАВ‰|w…|~…Ž„‘™ž›”ƒˆŠ„vvrrwwqx[u›АЋŸ™‹‡ŠŠ‹”nxjoqtˆ”‹|‹’™ЁОБЃŸ’ivƒ}~‡”›ЁЃœ”Œ‡…ƒ‚z|‚ƒqtv‰merŒ’—‡ƒ‚…‡~x~}txЃ”——œ…Œ—ЃЄЄКЃ~\q~‰ˆx{Ѓ•’”ƒƒ‡ƒvhp|‡‰Œ””tej”ŸЅž‹‚‚|Š•Œru~zv‹•›œ‹ˆ…m„ЁЌ‡jwrboŠ}„ЅЉЇŸ›‰Š‰‚|vtxtww‚‡Œ”{wi‡™Ÿ—Š{|‘ŸЋz{uxgr‡Ž™˜‡ˆŠƒ~`x–•ƒquuzމ™Ј˜™Œˆ‡’‡‡~~{qu}}€_Ž‹•tv‚˜Ёžƒ–Ћ™nw‚~]Ut‘Œ‚…‰Œ„‡ЃСВ‡vz|ƒ‡‹’ŒŽŒ‹ƒ‰„……‡‰„untm”ЖЉ›qnb~ˆ‰ЁЈŒ‡~‡ˆpU‹ƒj~МЎ‹‹‡…„w[ЃЎŽce{~„—›˜‘”–’ŠŒŽ‡ƒzxwrgibJА˜•tcqruƒ’‘wz{}z~w}„‡„™œ•…‡~~zoTrœœ{v|‰Ž•ˆ”ŸЃЄАž–Šƒ„{v}‚}oh`jˆ‰‹}„„Љ‰‡|{„–‹‹‚ƒˆŒ”’„z|„Œ…m{ЂВЊ™›Œ‡›Ѓ”r”ШцЌЅ”ŽŒ|wqpz‚vipˆŒ”‹‰~zƒ—‘’”Ž‚{tŠ’–ŠŒ‚~Œ‰ƒ‚„ƒ‚‡}}u”Ќсэ”Qt„‡U~ЎЫЊЂ›‘…vmhmoruvw„‰‰|x‚„Ž‹‚…–Šwˆ’””‰ƒ…‡””zu‹ДЩВ‰QJ|ˆ‚‚ŒŒ‚ЅВ›‰ŠЄ—œvigkx‚‚Šˆ’ށŒ‡w’—–‰™Є‡‚”™Œ…ˆ‹‘˜Њ’{n‡ЅВЖБœ„OOQ|ˆ—ЃЇЮЇ‘„‰‘•——}kj{„‰’’””‡ƒˆ„„Œ›™ˆw•ЄЋŠœМЋŒˆ‘˜œЄ›ƒ}xz•˜Œ…iO~ЈЖ›‰{ŒлюЊ‡‰Œ…|x{„uxz…ˆŠŒvx~Ž’œž’›Џœ{wЄЖZZ™Ѓ˜‚prv|}ƒup|ЎМЅЄœЂКЕ„|…‘Špqvt‚{‡‰ˆ‰Ž”‚v’ŒŽŠ˜ž•ˆ”‹\a‹hLpБŸ––’އ„‡ƒz|w™›—ЖЄЋЊŸ‘”˜Ÿ”qTpm}‡„Œ‰{{œhtŽ•ž”‡ƒˆ‹Ž}w{`QvvŽ—”œ–‘•Œ‘ƒƒ|zz|q‡ЊЧМЅ~Ž‹ŒДŠorqu}{}‡‹}zžvWˆŽЄŸ’‹—™‘‰‚‡‚t]Ck‹–‘…ŒŽ”‹}u{x{qo{…{ŽЏеЖŽ–’Ж–urgco•АН™„•p^~Š‹ŠˆŽŽ‹„|p|wxukTiu|ž‹ШдЃzƒŸ}PUˆЂЅ—ˆЏ•xŒ–žŒk\goqg‡’›œv}Z>>Ž–˜ЁЁ—Ž’ЂЊtƒœWo‚•—‘ФБЇŸveˆЖЕ”vv—ЇЃžЃЉЎ”•”›Wiv„x]|xˆ}rv{oЈ‘ЎВЊ™›ЂЏТЁ}v‰‚]Ѕ˜ˆŒ~ƒŠ‰—ег–pˆ”‘—›ЊЏЊЁœ’tqz‡Ѓkpu”’‘Ž…hzznЇБИЏЄЉЋЊЂˆ|puSO…—ƒ{ƒ”œ‘‹ƒz‚Њz…‚ˆ{‰•ВДАБСЅ„jZ^ŒЅ\ak‡Š‘›‘roSЂЕЗОДЃŸž›‰‰…—’@?}~tux„}ˆ„’„nox~‘”–Ž’ЈЁp^UOzŠ[rЃЄŸ”ŽЁƒxh•ЏКАЉЁ˜ЃœŽ™ЉŒ^NƒŒŽˆˆŽ‰ŒŒ€ž…~pwzˆ‹˜ЂžŸ™‘•Œzeo–ˆˆr~—Œ‡”…uvЅœЮЭЧЗЌЖИБЈЈ–ЏЕua’Ž‘––œЂžЃŽ|w—xƒ‰›Ÿ›‰„zximd™™ЅŽ‹ƒ…‹tnbpЉ—МИВОМКЎЋЌЋЃ–i7‡˜˜‘’˜——˜ЁЁ”–‹‚tk|ˆŒŒ‚„Šƒ‚~w}‡‹‹„z}„~xitƒ›ЅЄœВБЉЂЋЈЄž–~A\‡ƒ–‘Œ›–••’ЋtTio~w~……|…Šn]\ƒ‡„~r–Ђ‚„ƒ}|~ƒ–’›™›™™›”’›ЉŸrvŽ‚‹—’˜žЂ›„Р…e{‰Ž„{‚‡„‰ƒ‡bLw„‘‹ˆ™™ЕР—ˆ’ž‹ž‡”‘˜˜‘ЁЂ™„Ž‘‘ƒ‚ˆ••ŸЃŸ•žЂЂŸ›•Ёon……‹ˆ‰„|mdv‚…gqœŽ}‡ЏЦЉŠih[8WŒ‚‡Ž—”•˜”Š‚…Š‹‚ˆŠwŠ›•–œЇЗ”cq~wtzˆ–Žƒ‚„xzz„‡„|™žЗТрыЫ‘otkY…Ђ{‡’Š’œ˜‚‰ruz‚‹‘•˜ЁЋН”vЏŸn{ƒx…„…‚}ux}ŒŒŒ”•…wŒРдЊ‚t‹ˆ}…vkum‰˜™’Œmt{ur{…Œ–ЃŸЄЁŸŸЁ™’„…‚‚}ˆ‡‘Š‚‚„‹‹„‚›Њ›{m`ˆ™ucwmevˆ|qnkvv‹–žЌЊ‘žŽˆxmw‚Œ˜œ—ЈЅЃЈЊ…rpAGb…–„Ё˜„Œ‰Š‰ЃЌ„‘„‚–…xƒh|ž’nT\CQz‘‘ЖДЋЗЌ‰{ŠŒ…•˜™Ž™Ёœ˜›‘hw”{vebqr\z{‰{x}”•˜‘ŒŒˆЃ˜™ВБ`vro‡~„nvihqŸШДБВЊƒhzƒ~}„‰‘—žž™›ƒЈЉiPbdprrvƒ›Œ‚v‘ƒ|z…ŽЂЗЂ‘Љƒ‡ˆ„™ЇœŠvƒƒŠДИЂЈ›Ž’––”˜‘’œŸЂЇНƒzŒ‡g|vhbbAO‰Јœ‘‹”‹iƒ}‹дОБЈ‘‘™‹‚tˆˆjOdiit‡™ЇДŸˆi~ЄАЉ•~…‰’Ї‹qtqa~ˆ{urpp›Ž•ŸЮЋœˆ…ŠЊœЂБŠŽœŠ{im„ƒqghngqnx‰•‹}dˆЏЧКwq‡Ž•—’…wznBb’zv{ew›—Žˆ’˜™ЂАЕАЇž‘”‰r‚””€應„wv|uv{’’Œ‡‹ЁЛебРЇ‹Ž‘”’‘|{}kVju~~xxЅЅ›Šˆ”АЇœkn™Ÿ—}txwnwej˜|xw{}~~‚„Ž’˜Šna‹ЏЄЅЎ‘{‰––ˆŽ‡’ƒ}vxƒ„ƒˆ’ЅЃ™‚ƒЛЎ—qœttqw{naj‹…Œƒ}|„ƒ‘‘q]r—ВУ|z‰–•‡{ˆ‹‡{r{Šƒ‡’ЄЄ›r{uЃЈБ…x–ˆrz{|…„t^ŽŠ‰z|w{‚„|…‰~{gUmžАЄŒnxЄŸ˜”’”‰wpq}ƒˆ…’’ސŒŒЉЖžЄ…i{urnxuox|w‡~‘‡ƒƒ~v„Š’žРЅhu‘™œ’‡ŽНЦЇ™™Ž‹Š}ЈФ™–•‡Ž•ЅВЂ”„ˆ‡‚zztunhq……‹‡Š…ƒ‚~ƒ‘‘•žU]–ЉЃ˜‡|ЂВА›—„ƒ‡Ž‹‹ЁЇЄ™–”›ЃЊЋ‘‰‘‘‹‚|~}{qq‚Ž}„‡‚„‡”‰v`r‘Ž”™”Œ…—‰”ЃŒn‰–Јœ™˜—Ÿ˜›—•—Ћ˜iŽЉŸЁЄ–‚{vƒŒƒn„ŒŒŠ„……‡‹Œ‚ƒ–›ЅЇ—˜œœ€їž˜’Œ…ŠiM{›ЪӘ”‘’Ѕ›z‡хўИБТНЖЈ›wrv~ŒŠ•”ƒˆ~~‡”‘‡„xt~Ž’˜›˜Ž‹—–‘ƒaLnЖуЌqƒ…އЫАrdЇЏ”ЃКЋЅЎЋˆ…uz}ˆzx‡‹ƒww}ƒ…ƒ}wrjtv…„ƒ‰„}}…}ˆ‡Œ‰‚ruЃтїзЦЅ~o™Тœ‹œŒŠ™КМЊ›‚Ѕˆjiz„~Š…~x„‡‡ƒ‚~wuv…‡{x‚„—›‘……z~ivЉлтМЖ”|ui‘ЦЁ’‰‹Š•Ђ‘œ‰‡‚jnp‰’Œ›Ж‡‡…„ƒˆ‹…{}vvkx}{|”ž—›Ž…‡ˆ‡ЂЌКСЏ™xv{t‰œŒ‹‹ƒŽžŸ–ƒ}wqxВД•Œ–‘ˆ{{‡’އ~zt{z‚ŸД––œ…nwx{‡ˆœ•—˜Ї˜‡kNw™ЅЉЅžŸ›‘Œ„ŽŠŠŽ–Š…Ž”ˆ„~Š•ЂŸ—Ž~w}wWLw‹›ЅЃwjr}{pŽМЛ™•ЇŸucg‡МЋЋЊЈ™”‘‰~•˜‘ƒ„‰ŒŠЋЎЁДqv}‚’Ћ–‰~tuwzxtcˆ•žЁŸ›Šohr…„‚гјД—Џœ‹ƒ}Ÿ••—ž•ŒŽ‘‹˜ЉЏ•…‡…ƒЉЅ|{vqwŠzpprr€1ujww‰˜ž‹{mt—ЏВ’–ТбЖЛТgovwŠ‡ŠŽ„‡‡z|‰‹—‰|‚‚r‡Ќ›Ÿ{xowz}tpnjporpmtƒƒ{}”ЁЊ–˜х§жЛФдНrhuzŒ’Ž„‰Š–™™˜’‡ˆŠ˜–•ЈЋЉНx|x|pkz„xnhZbkpprvorvmp|ŒЂЄ—…ЇДށ„‘jENiˆ››–‘™™‘›––Šƒ‰™„ЏФЩе‡|„ƒ~ebkenqvqpwutvjr˜’Ž’Ž–—Ђ‚~mm‡Žž›ЈЈЁŠˆŒ‹ˆp|}~~œЇœВЎ|ƒ~~z~„„{{qqicgtzuq|‚w|™ЏЗœŒЁЅЁЄЇЃ~{}‡‡–—ЉЉ‘ЅВ’v]ck^v’ЖЭЪСЎџz€x}z~rhT\Šwmr‘z‚…#>4! %]WBP& .%2Mˆƒ`P&2gjtmok\bVcwxc`w‹‘™Л’EBE." !*A>La^E#"&3-4@dgTo‚jIMQ@HwiaWcb`dhgjh^YOEcƒ—Л•I;, !NohV> -7:!"!AY[HaeSPMPPA\dgmzvd^a]nxdcdrvЛЂS()I*" ! Vw]bcPY3(4UI0>\eZO9GQZY[\d`uzjngqumeQ[k‰žM.($-&"% $7\‡o\{ЃАrUP.WneohSLVJV[QMCrrtx{mejuqgrkdn…‰”}WC>B10;4.   Ib1FYxkG#(  N^nwc:5J (GEV\Qa~•oMNGL`jhc\ecd`u`1Sp~uptv”‰<*MI+  e‹‡pN$PV)Veppahttbr\chUtkdcgeoinƒdWTkx‚…}—|3&$!Џ%$# #+wvQ[- P;8.GIjdnknoV^aZb^quwi^tŽŠ~]JEYƒ‚u{~•E,F&# :`qii.€Б #3xcjqok]hjamk~webq‡kJ>PQ]‚…}•‡B3;(!&8WWzd.,iTL([‰rŠЁŽ`F\gdcZxx~q[\FSOZp]k‡…}A#!# %Ppo8-IWe?,CSwƒdhEZNSTN+Š}`Ijq~|CNVqpv…‰c( € !#9[tnF5]M8evƒˆˆzS[Y[LHG„iFTi~™‚BBu—ƒЈЇzm‰{U>!  %W‚PF9Q4(TOmpw‡ЉHF,V\GOvmZS3V•]9)# .LipMF5$-C J9LoЗЖŠ^e[Z\EacjmonnjdtxWtu‹‰Š}x‰ЊФ–B5& ,!))" 2Q^b`[Z9T‚[COd|acTWHHOTVOZrZeijkpeŒxz……ЄУЩo% !("0Zca]€1<%cQr›ƒƒg]\^hc]UPQdZ‘wjoqkotŽ’’ЊЗеСБ\!  &;`]AiN>^N$Z+UŽpg^^[V[Z`WWYPYm{gZnzqtŽ•‡•РмЧi0" "@e]\U+ Igk›ƒ„zvjSO[peaIW|•Њ~JUemj˜’—–˜КР) 0" ,)%-WuYU8ZdI70JUJB9JPŸ–Ў‹nHTmz‚{x|M;FQNutmw‚„Ѕ••—zW>(,0"?H9QJQQ478amjŠБЏЎЄOekjrmtz[+8n‹r[tˆwuq|…Šƒ’|)  ‡VnZ\LW0M{|‡‡Žˆ–’h:cjj^cot\T[;1% ?HVeŽ”М–ŠbLQOdv‚Њ~evAHj—ИŸ›”q”ИИЗ‘?7;$+Ф.QPiZWOHqH<$>UdhtŒ…|jg|n…Цр›—ƒƒ‰‘ЫыЁ-,;#"#€4;P59c[,?2Wgquz‚{tŠbTYQbxkjYpzžСН–ЅoŠœ—›V.!,!.$ )-YYN)FW8!>4xŽ’g—hnW^omit`Oea{mn{‹—bT„•ŠЅ”.10 %%BMLL^b‚™jS@\h`idjgmn]]„„Ž•”Œd‘Ѕ] -H&% (7d‹o?8gcPNLF;8OPOc[}p-CIJYggcdicaed^r}~‡”ЂЄ‘˜ƒ3 o?) GrVmvW;H2@UE<:,LmtŽw‡‹ZMx}v|rve\djvxq|ƒŒz{Ќ}5 -&#& LvpgicOG@F<0&EGvЇУТЄЏxPa`\wˆnG\`bggp}‰…‡„„ŸˆC+ ""*GœbQQeZ*;8,O;)Jdkc„‰r[daSzYO]^bgƒ}‡{ttŒЄМn. .1 &,pnho”nt|ˆŠ…ˆ‚М}C9- !*+" cŒ„gatj>Q]j59]]n}{Ž™Œoowoo]WYuTQdt~{xУ•‡}…u‹jC7->( 4‡xNmUY^b1F>AQ@Y‡Бž‚e‡iUib]oNQbPnpމ}‡…W$CN+"  BBCz{[JL9JcLHAIZrЈбРp[‰cMF~œz{eaZN\ƒ}…tru<(#" (;*&W‹xdPVTO?%LWI7wœжЦa@ekpu•ЕРŒO7rovpƒŒЃ…’F#$) $-WSbxQbVOB3;JOOLLCT{ЃбШЖj^cthiw’og8Bv„qz”‚|?! (+-Sam\cg^3B<4#<1LuЎьяЩnn€ rmz|~•ЅibV! ;A@EŒ™”•g5OJL^wjGdotƒАƘvYPVMЈЖИКЖББЈЏЎБЕЕЄВТЫЭЯнЃQLNC8!+-),057;>5O~ˆ…”‘ƒmhkntka~Ё—‚ЊЌ˜~ƒvrЛЏЋБАЎЉЈЈЄЄЈЅЁ”ЃНахЃPC@1+*.52.5834#7pЂЄˆoFoqztoiY{Žƒ•‘…Љ‹ЄЈЌДЗДЋЃЃЈЉЋЌЃЄБАТпЩn:4Q>78??<73574-8)rАœ‰”xgq{’cSJx”’‘‹Š‡ŠŒˆЇЏАЗИЗВЉЏЌАВЊЄЂЋЧТаМb,+?A?AC@988€X>?88())::B(OЃБŸq&g’{iot…‡ЈЄЁЁЄž™ЂЂМЕЏЊАЖдЪИЂ›~—ЧИКВЕбДM9C1+1008<*%25917U”ЗБВ„8:EIrtbhvБ˜ЃЄЈžž€ПŸЁМИДЏЕЖРЇ‡x‘ЈМФКЗЗЮБN7@A3),297.)-3;,&V•ЈЖЊŠa}Їœ”vY[˜РАЕйЪ™…–›™›ЧСМЛЛЕЄŸ‘•›ЂЊЖИИОЩЇO#3-&,7??0$)78I4H–ЌЗЊ‚P”З‚Z}…‘ЃДЃ›‡Ž’‘ŠjаМŠАВЗМˆЅИЋАКЛИРС‹@()0)(.53,*%),#31(9˜СЩЏmqЂ›КЉzpЄУтнОЩСВЇЄЈЂŸŸЌ—ˆ—ЛСЖЎЎБИИКССРСЧн7)>CB94.-*&0::))@ŽВЧ2A]SWVP:T›ЉАБЏžЉЃЅЇЁ™›ЁЈЇЊЅЊАБДВЌЋЌЗРЦФШкЩpTLC8:403+1-49781QžВМ–oœ}ptƒx’•ЈЎЌЊЌЇЋЄЊЎЊЄЅЇЕЋЋЈЉЌЌЂЋЛЛБЗМУТНСž[M852#!+02FYQHMSMa›ЁЃ‚m•~muPhЂЇЋТИДБЈЈЇЊ˜~‡ЁЃМБ–Ž”‰ЄНОРКЖНТФРУЈA883.$%8352V`A:>Jg˜ЂЏuYi‘gI™ЊУбЮАЈЄЅŸ—•’ЕЅЖИЈ—‚hxЖЯгТЛЗЖОШахМJLG*.,287710)5);IdЃБ”Šˆ}•i‹‹—ЕуыТ™ЅœЁ›Ÿ—ЁЏБЎЉЎВЖСК–ДЛШЫУНЛЎНашЉPA:299@?>?>:>:@EP{ЄЅЎЊЃ™ŸШŸcxŠЂВЇЂ›˜™ЁЄЂЁЂЉЌŸЊЌЌБАЖЧЖСШЦНСЮжщщƒ7!&44895>>у2)A3JQYДЏžБ”}x\}Џ™–ЊНЦЫюм•ДЌЏЋАБЄЁКЧЇ–ЁФбФЦЦЩЮёп}ZaM5152**,::7CMeGrАЇ›•’‰‡–’žœДхўюгнѓйЗœŒЈЎБЈЃЌсЖŽЃБЯгШЖРРНОФЗaH:8-4:2,+1899$3Hc›Ћ—•wn˜’‚CNMB<\˜—”‘Œ^o‡{ЉЇВЩУТРЉŠŸЉЊЋЎБЌЋЇЂЉЄАНЕЗУЭЮгШЩмйФ]2):<<;:5>;:?B&[i?PЄœ–ЋЛЊˆ…Ž}Š›ИЗМОФАЊЈБВВБЎЋЉЇЊЇЅЉЏЌЕУаЯаЪЧШгЄA4;<;:;:><;F;<5POrЖАБ›‚gk\‹Ќ›ДРЊМхСЏЉБЖЗКЏЏЊЋЋ’q‘ЖЩЖОЪЯаЯблЫЧŒI.3:5;3;97-38?59TFƒЕ‘ˆhh™Ї–Ž––ЂпЯмЦЈ‡ЏДКМОСУ—zŒ˜`‹АБВЛСЧЪЫббУЃnQ;.+,598+20::FIMZ@dŸ‘ŸЇ{{ƒŒŠЇДБФчыём•ЌБЖДЖЖФЋtuЌбВžЎСКЛЛ€‘РТТЗУ™H03%3279:7:5538p’ž–x}]ЄШЧЮЮаЧЩФ—~ЋААЏЏДМЎ…ŽЊ…ŽгжВВЎТТЫЩ‡]@"57;815:8?0+*(:HrЇ™Ÿ•Ђƒq{c‹ЂЋЈЩгёйаЇЉЇЌЊТЯхТЎБ|‹ЈжєйбЫЋЪуцрВNPS:<>>321500€':"8`e•ЃœЄЂЕ•„ˆŠŽŒБЎСарй›‚‡ЇЄЅЊФСРИЕРМЗШёўЭЯРСМТюўЖC@JA>A82,0%$(!)EShЊŽ‡ЏЁ…Šc~g›БКРКСЖЋЪЌЋЋœВДКАЅДЦМжьчжзЈЩедЯШmB:@>C@>5"03+,-7:BFu”‰m^Ž•h‰v…xuКзееЌЫОЏДЏЋЎБЗБЎЉЌЌТЎВИЪЯ‘ОЯЩнТG(2C<:B>7,:<:;2,9FO|Ћj‹•‡du}t›ЃйчлЫЪУМЛННЛВАЉЉЃЂЊИрТˆРТЕДИМШФ”I;FE>7;?78;7395@9E^”™ЅЄБЁ‘|v{q”žŽСяцкдЛЕДМНЛВЉЊЊЅЊВЭ|rбрФТФЩлЭ|BA[?:54:1?;>52";B>83:?CB3.)(.*-?QЂтН‚xŸ~Žˆˆo{ЏаШаУемטЄœŸЂДВКМ–‚›ИЩУЦЦЫОНСЧЧ„1?M.558:;7.104*0>BA<75891)5hЋИДЏЊ—‹‰’ƒ~ŒСшѓьЯрМ—ЎИАОНМЄЈЇЎЇЄСТСШЩЦФмИW:(?4347<<>:EA>@P.5pгШЈЇЄЊЈ‰•ˆ‹‹‚ЃАДагЉМЮЗЂЄЉЊСЉЃЋЏЎАЮРУЦОУЦлр„C:#:89-35:ABHFMGE@SžРЏАЪЇЎЖ–™^h–ЇЇЖМЯщў§цуњаИбЖЌАебеЭРТРРСШЩБP?:,.-749??FBOIBBH<^АТЉЌЗЋuMg‚WAЄœЄЇЮйаИŒЄЊZmУЕЕКгИТОЫШЦСФбч•SNG-448A??B?A>BF7*—гбКЕЦЗ’ЏЛŠŠЉАЕШУгрЦЛКОБЕЅЃСДЏАИЖИЗєЮУНСИНzSIN,87548?<83BUGQ4WЗИЯ̘āБЌЏm”—Ž‘˜ЃЭятСЎгБœЌФЄЄЎБЊЇАЌИЧЧНЯЩОƒ92S\?;505;>>@7?S;jYnЧжОž^˜œЁžž“–™’rpžОтўѓЈЅжБЄŒЭеЪЮЖœŸ—˜ЩЪЫзККЅVFE<934.*1<>>8.A[HSE‚еФЄžЂЉŸ”™˜•”‘‹–ОхњщЩЈЖД›ЂЫЧхл›aЇЏТЫШЦРО—9GY;>:88;:;:99ЩEJEM0PЅИЁЈЅЅЄ˜”™ž——•–ŠuЅк§§ЌŽВИДЌкэяб•ŠИЭЛНЧЦсЫШo5C@7;55€”@B<7558>{ђнБЛЭЎ˜—˜Ё›œЂЄЁЅЄЉЎЂКуўју˘ЌЄЂСЭОБЅКЫЪЩЯжЩ‘TJ@TE78479A;8@,PG5OŽЩРСС—ЎЃhb—ŸЂЁŸŸžЂœИЖЩллЖŸВДЗАЦрпШУЖЛФШУЧнп‰YZY5;7<@A4;92:`xZ‘йШЅЖБЁ›–…ŒЊЛЈ›—’‘{tЌдрйщЩ’ЌЗКНШгбЩŸЖОЪЪТ€мŠ„ŒŒ‘‘”zdpЂ‰‰ЌЅŽ–А;2]Q@"-04883,+28G4o`aiC *#)1N24;TeiWikdcO^[Noz}‡—‹twiex‡wtu‰‰ЊЧАg>AZG?GCC€ž5:>:71:,d…rqo^\G2?NiG:+!JnrdWZN`\[pvz‚”}{w~„rhr|ЁЁДЂb33NOUQJC@81;7-4J1g‘~qˆАМ|a[FcrnzmYV\Vaed[Y;‚‚ƒ™˜‡ƒ‚~ƒw–žЄ’iVQUU^UM@?7-8$&UtLUq•ˆ,UTZ``Whv‰БШZ9NB.t‚ƒˆŠƒ‰Њrnzƒƒ‰•–ŽeY^a\JO(!0(4$+432`nx„qMJ[7?45PJVdcx„Ё}]d`Vpxvxwwxtr…k@e‚Žˆ…„‚ЁœM02>g]GO@0!%%(#$&r›’‹[B]^7E-ap|mt}}h‡qruk‰ƒzuw~{|˜wiZ{ˆ•‹ЊGBHC;FCA?.$+,-<EŠƒatI4hBA@LT[w{~{vgnioqt‰…‰uq‹ŸˆneLe–’‘‹ЏЃUIOIE8@84F-1.5:."Nx…r‡T  ):77H‰vv~{xkww€›x~’…v}‡”•vSJ\\u•œ•‘‘Ёž[MSO@EA,*77)BirvQ.H}gaH*mЂˆ˜ОЅq[corph›”‹˜‡joYYbmznˆ—™ž››[-*B>4*<:92"&>I#CgŒŽzOPQ`{T4HLi’}x`bj`WU@žŒqW|}ŒŒQVd}ˆ”˜~F0*.00€j(+&-".?QzŽˆa&%G:5nVFr…‘—•ž„ehghe^Y˜…Ubw‰Љ™TL…А–МКˆuž•hQEE85,*5*253*@Ab‘™eWF9dL:qQZoG20-0)343qˆ™`(" -h…ƒ‚v{po~ojqvrpjr}‚‚{ƒˆ„Œž›œЂТТ|\\J5A94$(""58+@z„kA*4&)GSr|xp $>Y%8tm‹Њˆvhto|xrhigwtЃ‚}„‰ƒ‚…’ЁЌЎОЧчеЦp90(2%5.;937*&4J]nr[|YTm\E$Bp\nЁŠ~unuegorojigcƒ‹xƒ‰‚ŒЁЃЎЇЁЇашр}@;55,998??021#>W{xgd*;?%,CbrzЈ”–‰~zebrvao–АЛŒcpxˆ{АЃВЇЁЎЮбЉ7#)L445+5,0:93EIMrnbSV-QWuŠ’{ЁŽ‚kkmqz„di•ЂЉjwtm‚…˜”ŽœЭа™SC<>2-*&.:+B0GTW‹„g‚WH8(Mq\\r‰—ЇЫИom|tuxˆ|heŽ˜nd|hužБЅЃЁЄЋзЮ\cI:4.0$##+438M`Sa~njb[QN\SoexНњжЕРнМ‡bdq~ˆ|qmЦmau…ЅЌЇ‘•‰ЂžЌЏbMH8)<4;"-$9$.A[‹xc^;)WNH<”ОŠm‹ЇФƒ™Ђadrpbax‡e•АКЪаОЉЊ™œЕ̘MSN;::?A-70801+Sdn`YYPBb3!)?Jk~…›„`TQetwt{ovzvqVxŽВбТЖЎЂ”žЄЈuSM;7:793).50CPLCL^oe[YVUJ(4MInx|Š™’zJtjptoxwm|p~’ŠЇЊЈЌИЏДЗЌc2%?GFH84zdmvtSPEH?Sb~‘…•xup‚‡~{zxvr‚{vw‚ŒЄЅБЊЈЁАЊ‘979A@C?;B>4.$-7\SgƒxdL3%5(Oke‰w–Я‘x}ƒ‹•„{trn|kG^‡Ѓ‰‘ЁЉЋЊЏЛЎЊŒI2;@1189;2*(54"@ZTn\NI4*Ye]TW`mЏЄЗ‘tUj{Š•‹‹dH`k:b’…ŠŒ˜œЅЗЏЌЌŽdVE$2;>A5<(.)"*@MPIi{xŸгЭЧЛct‰~||‘vMM}Ÿ…n‡Ÿ‹’—œ‹Ђ…E0-441),35*#Cr„htceG>?+jˆƒ–žЇЁЄЅ|Vx~|u‚‰‡qI[mk[eoАЎ|k}™—ЎЗ‰\;"89>;42:53%BP^vc]`]OH;H7U]o~ЊзЏœojmpv‹М”m…L]ЎлЗДЊ{ЌаШСЈPOQ5BL;:*("$"Eko~gdjduUQSOTPvjЌВАdJMqzzƒž•~{Œ‹жѕАЋ›—–нўДFGPLPGA97) (TdgŽPLuoFS2[JH4[k„ŒŸ˜ˆ~‘ztri}ˆ~h…–’ВлбЉЛ{ЁДЖЗКg@.HFBJ@5599€•,0?PPihYB[i23GIMB„ЃЊ{Ђ–v„un|}}ˆpkqr’x‡ЇЎoe™ЈЃШЎM%4BAPJG@%)$&,&5FQbmW5T]P+BC0\[vЕТЏЁ˜”‚„‰ƒ„{k‚naepŒЕ—\—~ŠœЃЉˆOBQIGFGBA0))).<:I[rmjjvmZH;EJ3TcY˜ЪаИ~Œ–~trzripƒžOCЌР›ЂЌСЕzAB^IB53?C#7,$9BBb…Zmd]`G@NANB~ž’—Ђ‚tpwzƒŠЁˆaixv’Ž|t•Ё˜•ŸЅА›bC?AB@;@54,*8902VA:‹ˆg›ЂY<E)Wdr}{ˆŒw‰nkzv}…Ѕ{T9jmКШБ™ИЎ››˜ВЮžLA2HF>3$!!$3IW–М~TEWcBVM<;>zЌЊЌЌ€emm`tv˜xŽ^L^‹Ѓ—‘œžž˜ЃЅЇz2?O.*5@;4#+,>`‡}~‹Њ…„”Ј–˜™Ўж”UEH):53E@CI21+85<-*~žŸu‰wVgnNZok|—ŽЈК›‰ƒwzpjiˆpov„Œ‘кЏž•ˆž|YNM21>?B?.--1?H^eu{riujSUVOYNSF?a‰Кўўх}……tŠАРOe‚Њ›ЉВВƒjY@)+101*1?21BHCA++LŒЇ›‰–kS0NSabb[\WQVZqОЧЭ‚~r|‚m™}VQhЄ’”Ъ›ƒ›eJ41-1%+0271,#JF(5dЯД~Œ–Thihcbgnkk€—pkq…УсйО„bwtUh‹•|t‡—’•ЈЌЄwNN8]H:879.,<90(A?+Br™—’”Zuc11Ne\`o^ZW^`‚„ЅБИˆnw|w|ДА’ˆw‡›™”žДК]a[9@AEJ>;4402\‰\‰К˜{…nj\QSh}o`[ZVSF;ƒ—ИБЗ”WuxАЂЃ›kt‹›’•џы- #!#)!1ћ г  !# +CC$B##7 )*ђ B# д     8OtHckd;0, ќ ќб    &"NxaJLW, #7  ё э    •5Nc^TUtŽnJ$!  &      @a~‡xx›‹kmFTxm(3-)   ќе   Ybkak‚|edQhoW.J+  ђ ї( Ю Wg^Y^hwvgmb<1:OSn{vOCA  Т;" kpmnvˆ„‡]ќ Ю…qikq|pdiQPqocwokb^PBEWЉ‡vhmtvLL>ObMO40\B§§Юkimhv„„qnbOU[^hoj]dvdTMeS{{gmj[^MNIIJJOg]G0!; ]<ўк bhquƒ‡{mehbaW[quhgheVMTWt˜‹~bcYYщ@MW9SWbUec1*]H82‚ "ap{pqqo`[[\TVgajgSHTITTJUdz{zqvPVdYSPNYSZ`ƒadb8  VW]npmkmeeVMVb`jrgadUbUTbkmx}}PPPS\WYQUWboq`^t|vu4*%€ƒi.hcgtutpjcW\ehZ`e]IV[\hb\Qhtxi4MTWZN\W[TVTdn[BWqg]H"8-;W(  icgdhjtnbMNij^`V?eY^miephkq‹‹amjVz|rTOJWZdpTtЈ{Uw\a^ZepS;%&€ЎVUdqjqkvgT^UYVUOA7:5@`ajeqoo’cF?^pHMSGc”Зtiqc0Ipnqp‡~`qH7&ugd~}~”YSN2A^UC88NZzWL9:wƒe‚cI7vВаЈohaiЁŒoO$LG[Scgihngju}`?4p\`mthZBJV1P\ZZUWZ[YNY]cn‘vp%T\jb|zm[[”’{v^oœ~i]c]a[oxowj^HAkd\„И•d5AbS[k\JG]g`\^kkŠ”{x„vdbk‡g9Ab‚`kvt•‡{}qT`eogerd{Y^YJ@ZJGrŠ™n125^gkk]IVTS`c`agzzxJhgOP[`zjLSVn^^jcvtn|^NUSbY>|jeI?^U~k[މYOScŠ{z{v‡aZ^ho~Љ~ztzw–›cV^ne~œJ@OPnb\]ajqwrbiohvŠnWL@‰w…Љ’›OIS^tˆn{]]S@‡eqr|Œ—’ŠwxU[™vz…porb\\h€ŸbupjhjgezW,EE8—ЈЇœŽœЏm?zŒ\^V[S\FPjƒ{~woqmL\^I[nn}ƒzhuve`ae^eZ\hhcp]bji[^V`Qcetkk‘Ў›\Vbkmkg`krk81J‰ВЁ‡‹~xmgkmrpjwxnt…j`waUWa^oegkrnoiTYƒ—Š‚‚kTqpnqwujpizz|[V\WPOuƒŠ{qdiZbmmo`epbpˆqjhxvukp~TGPZg`HbUah‡ЛЪ›ˆejwxzramernnvzu]U^ZIjitueeaaddvnbZbopacpputuŠcWT#otz~UIx{Œ—~gdZi|{zqckvvrqa[IUWgnjtpnt[hh`T^STTctunjbx|qzˆuiV[9Bqza\bŠ‚‰Œrd[VkppmZ`tuthoWW^]T\t|k^b[oaWYEO[becjgmoqxrqmbmzuwHm}–…qzPg{›”ŒoTWevruxear}qo\1JW^Tcun^hcYqn\VWjirMz~‡||wmj`Z`mtn}qqi~ƒ„dJ^iz|ˆihoaqiucjikkm^UOVSxYgnbhbjb`i]T[c`kLЊŠz~thjb^kpucx~xtzZza7Y^dn]\O4Q,4>Ybhh{rzwt}ehe^znPn{~J*b]mwknr}z~ujdr{vurwhqt|u[]UW`omnYMMBJ^a\ctrkZup|{pr`YgrehnqoEGG}rq|pdw|w{|iu}z„|wutSbaUWn[m~kM`Oj\`]iorh`tk||‡ž‹ecdkrpw‹vTUb|™x|{reevvt{i…|{op‹ЁuUoj?^dVx}‚v|„pwkVjibhpqvr‘Ы~\*or|{„ˆ‹n‡~Zq{kjqinu}ztuwqookmZ&C\-n[F[k[wƒˆŽ…[iijhbbmmrhekmtL9kagxwz}g[:(Aƒ‘pjah[^xzwrandntЉT*G\ZcZHu}ww|}p„mZ:]VB9,!$IWP:"+$84*:G "492&147@?;0*ZxžŽЄЎc>TA(4-"(&%"3+3-0#%(#($&0-.,,&-792,1.130.(.87<;98..%<<>’Дǘ…Z7!2HQ4*<**)++(.$$7;9++%14?9:E4;"$4SUY2(.+*-.@%#0,&388<:;91::0>3".-&*@,&7QQCT:BI+(J373F- ;TG<5$34*"2"+&1&<91##491\ƒ…uZciQ,#$SV#9( -4;:;??)0**.0137-*,0-$&$"$*%%+?:E\uj^g{{`19@-),,€3("*@;A41*2584-.,&(!$"$&!!*%3--4%!$.$2MwЃŽ‰Њ{~^g„BGG?1!$2*88:<..&4.5-"%.." (!!+&0!%#!)*%0"cnut‰—‘}waz‚h:HbO$-5,5+#--5&!&)*()).% C2!((!91.*h~wkj}‡}owj[MJbh„[PO7*;3:"+31+11+077.7!+" L@20."$$.:,t}zƒˆ’ŸhGcmecgƒ”qQELS9;,Ad\BTF724$-+0)1--%"1+*7""-%‚zqpŠ˜‘zhptvtoaВЋ^rŠ„p^‰Ј˜iQ>! 0;5#1(%)#-%!&,40)&0+!,5imcI’rZq˜‰‹vjp}˜dY|~}xœЁ’i^bdQ5BIIO;-*#2&$%*##4$5+%`ˆzzqx„xz–’Šƒvot‚‘™WmmcjpŒˆ}bpk„CGe`c]uaHZ0!+"&I"1!"+5,.”’ƒˆ~‡‰}wwin…p„xwxphdajŽМ™}wz„~^\YdrZcPQ83<"wV "*",%"("zvv{‘‘€Є{k`jidm}ukkƒu\\tiŒ‹v|ord\`egVbqb[C>P1w^"C(0(u|‚А—Š‚pwmhbd|‚wteg`ZiƒЗ™ŒzojtiW^h\]ntnwŒrA9h`$MS2#$,331pƒŒ‚‚oq{gjewr}{gckdgn[e‚œžŽ‡Šjnurh]cakdt—Ÿƒ}Šp>HI0-!$$98#1onvzƒ‚~‚wvgdotr…wpzou]krˆ}Œ’•e8bmeijggbox}‚tx”ŠQ"!>?! !pE(0|rw‰w‚vuwzuwuxiiecdwwmi~~ƒu?[dmjcmib]giw}iN`xvoUCTT45Jh.&"!tr|{~rgdpqqrpN~gn{ztƒw{}Ÿ›t…}g„‰„gjbmgkm‡Ќ`Švmkix~nMwnƒ‹ƒx…”ޑބ‚ˆ‹ƒˆŒ‘z‡„‹Œ{pabt‚{{knepwvrv‚…‚w‘‡‹™Štu„…~z}Š„SVQ—ˆˆ›‰ƒ’›”ˆЂ•‘”—ŽŠ‹‰huvjmn‹ˆg}mu{x}‹|v‡ˆ’‘œДЃ{t…Œ…œ{eZr–З”–•ˆ„‰‰ŒŒ„‘•˜’„ƒЂО”p‚x`q‚j’•›’•–ƒ‚‚i{|x{~ˆ„‰ЏьŸdP‰’–™ЄŠ‘‘u‰„…‚x|ˆŽŠ‡‡‹ƒ}‚aC\qIh]nˆmŠ˜˜›Ѕžu~v}n{‡‘ƒx……ŽbNt|~Ž•—”q\:[™ŸŽˆƒ}toxƒ‘‹‡~„ЧgE\uorug‡™‰Ž‘”‰Ѓ‡r^jhoq{zu‹Š‡||n[”Оˆ‚…ЄŒdd€юQe’ƒmu‚‰|Ђ—œœ–‹t‡^~zpz~k”—™‰‰zr~qƒЏžm„‰Š…Šˆ…zmz~ŠŠ‚‹ЄИnn…œ™Р”‡Š„‡•Ї‹‘АЉžmbhqˆ‰|u|{„’žŸž›mrŠ‹……‡ƒ‹‹‡–‰ƒ‰ˆ„ŽovŽ˜‡ˆˆ›Š‡Šˆ””™žЋЁЇЏЎ•‹gjou‚{|„Ž•žЁЅЁwTivq|u|ЄЈ‚…z‚‡wz…Š‹Œ‰…~‚Š…r‰ŒŠ…ˆˆ–”•”™œ••…‚„}ovw{…‘—‘ސ}]nbThp‰j„”Ÿ‡џ€DeI >YI E@TNP^ehVVQPJNFU[1(,BBbn[\VQ]bu}z{hБn~‰}neaVemjgpb]heh‚nY+>9CTaaVTSek`NQA\gY^eY>O>!M[Vg`MVUa‰|tzƒƒ‰xh\aee^^\`bprˆ‘4QW8-?[ZP?ENEYQMSMIPJQNS[Z"CTbUV^adv‘Š{~‹…|‡…}|™uY[bh]]^[U]``p|.:-BHM9PEEIS[P\e-4EZVHgN@9VhmdYhht}ƒ‚Žƒ„Œ{wrka^akxtnpcWekchr MiWA^hjg`gV\IPWI dgj]]VZud]GJaZIЂ‡Ž…ƒ‚z}~xmeikp|ukadii\m{&€= 7 LZTVSJW\O3MWdZUQIWpmu||}‡ƒ‹‚xpechpnnmZ\Z`Z^n:nnMQHJNHSISigZFE7NQCEUaNJCzВФ””‘}Œ—…xtdeabibcd[P\ak]]  MIFCIU^SI@ATV[\[C!CBQNMWetzp|…Ё|‡~„‚„nZaekppouaT[ddVZ !P`gWT>NUS\T[Obn‚NUcbabuvpp||xxtx|Š˜Š{`acbek{xgbi`T[ [JA#;.:IYoj#<^cpo[`pqepihiv||w…–…aS[gnjw}{hZdSWХ44Z|}TVY^dHMUcOYeLpž…ƒ{ukuwt„Šˆ|\[hr}todgaebYj §ЧPOVbƒw}^`dekprjm]LjtdYJAI8)ћ  Ы  !& "?A^ephaYWj‡~V@Wak]]WZ7;8   њ –   ME9GUvnhZ`ddN7@<+ZNM;   $ 1>#40#$  H& VONiCF&TN ўЫ   * %(E 4. FSZhUL*$&N<Х ( +- "  (3#d`ZI@YGS`JZ$8ўЫ >(2$#-+! 5;$4SN;@Q[PQ:F$$Т  "&0910%",$ )(A2UTOLM\QYWZ+bbўў У   074#$%cSZYcdt`?3NZ@404(Л   $ $ ][VJMQ27712++8+ 32 €Р     im[HLJU5Tw9ViTbL9~„i4       \STTFM(UFSg`ac23O\`SY<  "#  %#$4%)LM`cWJU1FJn‡r{pM74YE5€ (*  ##()hUWTbhN&Znwtkoi]PuW\quc5(   .#$  +TbUYTUjw1ThOLZ[^|bSiSB*n:.@<4E%1,-$%.& #Bba]TF]ddQrhLTjUAHHOF,<#M5VWA;2% "$"+ "$!VSQ9OSIJYVgjxHFMMJJF2@NcCYTW`„~bB !"BQ 4+%)17%%YUQhZ[[€7W^baQAJJIFGL``S?3;?.!B8JBPSnLM„ЃongcUHTECQ-4PhuE$4\zmhenr|o`\YPu„”w–ronz‡Œcgr{caIadh[cLIWA<:Ot`n]\d^jhmNIYhVJ)C\w]idowwpwxkuu‰•‰vqquqkn}{ZŒZUkƒ{dONWaIUB\™qdnaVphgatT%P]B@)PjorriS‡„}‚xd]n…Œ{}topuc]ƒ›АИ~]mox~uY^[H&FMenrvnpceeqmve:VaZu[84Svvgg\Q{z‹ƒtkw’”ow}ƒ{vŸЉ{wzx{‰‹w]ZZUEJMQcTYdnmgdjeCCF8UMTMEI[vuu~•ztv|‚‹‰t}…‰xtt~ˆ‹…zƒ‘Œ|~zw}{~zNHGH]YbTY[Ubdh]e[ag^eiUFNTPh„ou|‚ƒuuƒˆqxv}}qu„„}‡’•}‡xvw|{7J\^VI]bdg\gwrnndZbeb`eJILCcjˆrq|ƒ|ƒwqzoej~ƒ{~x{‹’’|vvxrbcZiYJWcTa`kdjeqqnpbZ]E2V8T\O[EM^cvuuov{qqmddjut{qnpi—‹‘xnw}}n`^cNSNO`am]ejaktmjhZrY4G8>xe\eAYjoƒˆ}ƒ|}‚kn`maeqv„‡Š„‰‚w~z}‡}ztnmSbhSVPWWVjYcbddWc`dM:EG>^Znnoir|u|uqztjtxwhoeZv}zwˆƒuzЉvvzwzmekung^\Z^gcVmmheqxˆjx}njchitndnw~ˆ‚rccjt{|koumu~}zƒ~}tt…‰|ƒ‡‡˜vEx„uabbZjmgnvuv~„jg]nxkhTcjwictv‚‹o|tdo‚ˆ}mimnuŒˆƒƒŽ‡|ˆk]„‰ž„abr…xgitqqre^eu}…ƒ}rcji]CVk…vhkm‹~mw…‚uj|‚Š‚ujqu{ˆ…˜œ™Š‡v\Hx’‚Zg`kidtqnibip{zxqhprjm]9U+5Gg~k’’Ž„—˜žЂœЇuŽŒЁžЈЋ‡‹ЂЇЈЃЅЇЊДСТТЦФУОЛКВЌЊЈЄЇЏБВАЌЇЄЅЉЅЌБ+*:-8ЈЃ‹žЉœŸЄЁЂœ™Ž’”hЅЂЄЈЂŸРЋž—–Ј››УЦИМСОМЛКЖЖБЊЊЈЋДД€/АЉЉЊЈЈЊД82;4*:q}n‚ŒŽ•›™›’’–™žЁŸœ›˜Ё™—‡‘ЎЇЖМОНОТКМНКЎЉЉЏАЕЕЌЅЃЅЁЁЃЇ.&-2)2LP~ЏЉ’Š’˜–’Ž’›ЁЂ˜˜’›•’‘’˜œ˜ƒВсэаЩТСТЧЦСОДЌЇЉЏЏЎЋЇŸž™ЂŸž92.5%2872Et~Ž‘‹œž›’’™™ŸžЁ›”™—’—›ЅДЗЊИРСОЛЗТТСИЕ™ЉЌВЕЏЏЌЉЂŸЃЂЂЁ?0:*".->2;L>[˜ЌЌ””‘’”™›™›ЏЛ˜ЃЈЇЎДЕДДЖИЖДДЗОФзЮЛ›ЇЉЎЎЏДЖАЊЇЃœ›9<0-)+73.5<9N‡›ˆh‰Ž–ЎЊe]|‘ЃЇАЌЉЌЖЖЕЏЏ€џАБДЖНФЧЪ͘ЂЇЊЌВВЖБЎЌŸЂŸ934++3-.1(2)9>YnВО”‘›Е›GY‘–ЁЁЃŸŠБйРССККЗИЕЗИНТСС–ЉЏЛИКЕВЎЎЌЈЇЄ3;83,--.+)*1&*,0Qq‚‡‚v‘˜›apЂž›ž‘ЄЏЛНЩШЫСОМРМСИЖЖЋЈЉЗЗИВБЊЅЇЃЈЉ!.55+,%-+3V`B20-UEQm•ЈЎ–‹ŠЋ˜ЂЅЇЋЦККШЫЭЫЩЩУСЧФРНЕАЌЎАЏЏАЏЌЈЃЁЊЉ#&"$")#%.@GB:2EC2Q‡jxŽ›•ˆЌЇЉ™ЃФжЦЪЪЯТОСУСМАВЎАЏЌЅЉЊАБЇЂŸ˜—&!-(%#)(F1-F97;-.#51>LrЈ˜˜­ŒœЊР˜ЇмзЗННЕЗИЛСЗЗНВЌЋЊЈЂЈЈŸ•‘’——)!"..+((23*-).5203221FYr–А™ЅЃЋЊ•ЭўяМРЕБКЛИЕЗАЎЎЃхЄЁЂЄЅЁœ˜››—"%Ȋ.10)).77Ÿ<;>NG3Lw›Ѓ–}|ŽЋббМЗЗКБЏЌЕАЅЄЇЉЈЉЉЎЏЌЈЂЃЂЄЂ!$22+A@E)24&+).1#)39%9drƒL#-g{ƒˆ‹zŽЇЭЮКЖИЖВЋЋЏЏЉЃЅЅЊЊ€њЎБЏЎЌЏЌЊЅ#&(&."-]F!+"!()304.0:AG>!(C\ƒ{‘Ђ—ЊУМБДЉЋЊЎЕДАЋЈЉЋАЉЇЊЋЏЏААЊЅЊ4%)&*4$#,14:;@842(1&+;?I;‹Ю•ЉОЌЈЌВИКДЏЇЄЂЁ—™ŸЈАЌЈЃЁЄ$*%.#")%#$#(+!(%:$,828#0GE)CdNЂЊЃЈЎЌЊЊЈЈŸЁЂЂ›™ЋЈЄŽ˜’œ%%12#$#!)#(!-+0)#"&#.93>71.1,0LYCg•ЗЏМЄ™ЃЃ€ќЉЌЎЈЂЅЅЈЂ˜ŒŽbLNC++.3%&%)!#+-%%#*055:78*.F?0T4EJ5Zo‹ЃЏЈ›”•ЊСН›™˜ЌАž‘‘™‚g757+*0,-#*,!&)%#()%,,1.493.$))+.5;29..*?CQpgp}‘БŸ•Œ—ЄЁƒdv||ž”•p812+94#(*&%%+)%,#)&"(*.,358*,.8;<>@77.1N]GTCHE<:<-9?gI:;@7‘˜Вœ‹uH@ch#-+)++(-#)*.-(-3::?:7718::34?9@;-EJFЃЂ•‘•‘–Ї‰QUT,((!#*(.8P:527A;5EJEF9:9;8CA?5-318@G?372CNPž’‘Ž–—•—АqPQ7(+#!&)#$&%#%*..*3;;7:@JLLE@>?BB?5399;<:3;8MEEN˜›™’˜œЂ™œ•vzЉ—M(3,)2-(&+0##,4.*28>8:878AJ3370@B;;A<7>:A:94491-›ŸЄЂЄŸŸТБ…q™ЏŠ‚]&NI-)2,(&++*,741078>:<(*-5921:8?5-.-421Ÿœžœ››ž—ЂТ”|Šz…|tab\U*8OL#%0-%,.+*10-+72541,&*02120*#+-(%$*,,1ЊЊЄ›—œ–Ÿ›Р’˜ЎЇЇ”„КОЁh:9JG#027.4<23:31(-(..1&-31100375230!)-2ЄЁœžž’Ÿ‘‘˜АЏЌЇ„{˜ŸЊŸЉ‰Y9;943558:<9<97!,24#*,),,€і+,.238:>><87(8<8;?>?;?C‚ЕЃŸЇЅАЅz([œВЎКНРЏ™œЕЌИН•gL7BGC>FA:#&.A?:723;9>>;924-%&-.70>:53ŸЊŸŸœАН‚V™Н—ЉЋЋВЯЈ—А˜—•К„vh\\hC:LIGM49AGAB?<>.),3<9*-155‡ЉЅЃžЃМʘʌЄЂЇž˜—Ё––‘vUqŠŽŽŒt1STQG5AA€?EA@@:;CEF@728-Њ˜ЃЋЉЈЁЂŸЄЈЈЌ—˜œ–’”›ЅБ’‘ž˜ЅЭЦИБžŽup|LkrrU;9@:@<411Ђ›ЕЊЪЌ—™ДгВ‰˜ЂЃЃЂžЁЂœЁ—‹Žq–ОВВЉТРТМАŽ\U{PIpN;>EGCA>@<;;@?#MNASd]]`rnaYWWaeigckodVbdrmne[j…•’˜’•ˆ‰‡‚xu}…}mkmnhk~) !+1V|}^i`^ab]Vc}vgSYYi]VUhn\]YˆЪнЋЋЁЂЋŸ’Œ‡uqj{{uxmkdqotir331#*+[^YWaptcYV[jcnmpZMS[`]aiv„…”——–‰’‘™Œ}mtƒ}xqgkqvkh1)1$1(8G33e{xkdcemhdebgn|Žeextu‹‘…ƒŽ˜Œƒ‡…•ДŸŽjwuwv~‰Œvu{uin2,!("$:11doP9NZUaj~}B1SWxx…ƒnx‡…}wƒ…‡…Ž’ЃЃ—kppzx‡‹ˆ~tqaj50#(,$9;NYr–‹gTdg`(Z`w`pm[|Б˜˜‘‘€"Ž{ˆ~ž–•nnvƒŒŠxv|uvi|*E5$"!(+#+8Cd\VMIZad,@C,S[nwxrek™Žgacv„he^cW^U2.$*$5*)7#"$.+833)+17:F*+--;);VTMWm”wugqw|aPY`Irb`Z$$#0)!13-..#(4% %).15;7001+:BA88,7UW?PAGA184,.;WH%+31cdex]\O<2^g%*)("#!(!.*032A>38;1FGA39)7@C4.A7:8[B951M<4*3@9[phƒjbL;B\W)2B "&&,<,CE92.33JHOA<72;<5>97(-18>@-@>7*AGAtwi^[g^hock;MB)  #$<^?@99>E@FPAL;9?B9CH:(0.99<0-3*5MQMWccTSbb^cP]L3;0#.%!(!#%#5,3&?@B@NBMEGG>3;C?3%3<88;75B\IFUhkgW`mhghg>Jzw)&"#%,##75508:A@:E59@131deihjkhoˆ|M>`u\\LM@1&,(1&0+7+0.@@14$%&*&->9->?;901&+2cigg`^\giYY€‘LWQJ;AQG"]M"(94)8#+"15>48)!+.19.8->!.&0)4%#,*uh^^[c[kŒZ^‚zpaJŽ–Q.0::.#<321;74.*-)-5*!()00;>7973>4(&!%>3cgdk]^J][dt}vvHC\q|iqW5+((3)-;;Ж893;5&05;2;.909897:?>EhjkwxkC0`~‡ˆˆ…{deŠkw‰…mH43A374:,".?@.,1@@?LE:9852+2;,->:?A@;7-53.+87:15Sqzo^]o‚|iŒ^j|hbaVd\VIUC@aYmoa1OMP140>;+8JCHEFB5>?@>438E?,457cc[\Tacii€ъr„‰W\`\ZWVMS]v?Ubat}˜vZ,:-+A(49Ve$ELI;GC>CAEBILJB15.!eiidtjqihg]tt^V^`baZ\ovuG\hodj–‹~n{tdr>bntY5BG:GEBHAHF;?GA<7,^kˆ{‘}^hY„—|Ldgim`beajieYSN5]‹~|qžŒŒ„k>CmHLoP>>GCA>E<;?FC@EBA-\eVPN:YcWЃЂžokjokd[[gm`Z`bhav|‡Š„‚}’Ѓbc”œŠŽg-;itc`VO<<[kŠ’ƒ‚jhjjtjndmrbF]c~~‰‘‡‹„‡‘‚ho…™ЄŽe„|^c[Z[JUHWVP5QŒrh>%,# &Q^UWLd}uv~މ{vogjw‚rkde\gopm`WOFVMSP[VLIL^™•{.$%( У @GeY #  Sh‘\P`]WZkp{n‡•qGMCmnmrqkmiqt~…~t`ed^TTёOEN\ У*(#WLOjNS^SFa|}t{ŽДxTagimqvvtzukgvmwauePMS^aaCHd. Ч(1("dWc`p’‡x~™ЅŠgwzwg\nnw‚vxiovnFIOFG^ngY8  Ч "]\^d`„wz‡Ќz~mbt}}[mk\uurvzxpŠSNbZ>$TE5  а hdNLwŽ‹ƒŽzN]`TZZMWdcz|~pkjq~—tSUeP( ўЯ in^VaNd{x{pd][3NknjcˆЗjnxz`H9  ќв*]jk]`Vm|‡ŠƒpˆxUPCph@3JG&$7:" !  §л g{mkqodtxqj[UH%9)&S8%?H1VH3 ы  оPN&AFG!043 18E@-F)""!7є    Ю  %<1!> %*"%"   ѕ ""л! *1:3!*# !ўўўг! )+#$+(+,.-3)   § ўЧ $%83 "*$,,*)(%&(3**  )+г" %&& # ј$EUўа #  #"#!,1(!8J ў!ќв#2$   " #!4& Э "     )$ "  ўќ Э %)  !  &4ўі $S й""(JY,.$(->2Ю  !  (%1.%-"IBE?380 !$9(б ,AE %  ,%!&!7:qq?B !0 ў в.bm !  #"$*AZUB1-#)&.! Э;Pm„ "" $!(!$2.ALJ:#%!"#$?F:€Ж *0*i}‹4" + #(&-ABB #+!9F77L\NW‚pYwЁЂB1 $$"B5Tu}u!GE# %  #P?459!,k…[S„Њ‚vr…Œbqa‹•e@:>#,4%(2[jj !49)+ 48AIB(08.HI}’’‡–™‡z}„ˆxrqЂTHc$,5%2<; 3T”ŠpE%-PL;! Edo]m…‡iim}mh‘ЃЊ™‡iTojnmih‘Ж{C % ,0.,&0V‹•ebZJVNUOztnn^z{•’Ј—omup„jЛеЋЄР‚„twpqz‘Ѕr"  ,%Uo^d`‡ƒownPe‡cuh{”’…ˆ{…~‘–ˆzzŠŸŠ~Š‹qhu{‚{v}‰Ќ@&  %]pd^Z’Д‡mOjwz{qkpАˆ‚…zZip\mЊЖor|won|}ƒ‚rh1%5! BgpxrvŒŒZtjwv]Zdvi~~x~„‚wbSMceoz„…‘„qq~‰—w?,()&+) &(QrcTqr}{rputg\P^hz‚t}zx{xgidk…|z‰ЄЄ‰‚z‰‘‘„”ŒJ&-,-##& -,2.$9Zgdv|{|pjaap`h[\djuz‡|Žwknuotuw]nwq[m……Ш‰ЌЌP2@1 #70 ?PZhju~|niv}{qunjrj|‹˜v^V^ghiuquu€Ÿxvƒ~}”z"O83A*!1 ":ggOzvoopowt{}upzkg‰™‘SL^}ƒTb~|qw~}–‹‰ŠœЛ›N8VWM # +-3ha‡…wrknv‚‚oeom|zm}‡™Ђ–uxx’œEZ‰xr……Œˆ‡—’@GA3!!"" ,[Œrq’‡~ŠImhnmrpv‚|{„’ƒ}ŠmqrmoCc˜|‚Ž‚„•’—ˆ\~‰UxQA8L  -(OC^q`w‘Ђgdejguv{{vdmn}{}Їj`zE&aŒq–Œz‰‘˜ŒЂЇ–AZ];3*1*!&(7(:>WaU„„Љrg\jZhruzuu}xv}„Œ„kcuGe’‰Ž„x|ˆ›–‰‹–™zV`A,@(5ƒrS„Ž‘Н•MOckhju~omo{rƒƒŠ™jiQoJ(Ё—‰ˆzŒЃœ•‹–’„B03(&,-#% +VdVm‰Œ™”pTbengrqvzt…‘‡”–z‰SPGM˜”…‡|’”„ŒŠŠ4;;-#%:<4,!%+3AQge{ˆЄ’‹ƒ]beov‚oup`vv‘‹Œ‰Œ‹”‚aYS‚ˆ}~„ŒЃЁˆ‚Їm%278*(-21+0!57F7Atwq‚‹—[Wohitzxrwdr…‘˜ŠuhtuigGjŒŒhhЎŽŒМЋŽ9 157&.4!#&(A7EYSdr~ŠŸ|Hkxƒx~viUW~i‰~zrj{nIT‹‹‡xOL„Ј”xh‚•I.2:<@@+09$#143gzrge˜’wNk}xcmkn…zoƒ„‰}wktxr]gЁ‡x|vŠœ|–I*0(+4509&1.%$1<23cdE8I‹Ž}ƒ‚n\ocjƒŠ…{v–Ёx{}|‚tŒ‹‚np|’•Œ‘ВЊБ.?G08>5- %0-)0Mj’—ˆv‡p„–ŠOqbW`‹˜œ›ˆU•u‹}hjk‚AiƒrpWˆЁ–ЇАЪЗˆ-24(0%"2),.)*,9Iiˆ‡‹}{{ސ7|hLn™–‰ˆ~}kwŠ|xpjTSŽЁ‡p}ЊВЛЕВЈЋЂ2+S1,@>)9:8)$:€аЧССИДЗЛМЂЎЕКбМƒЁУИЛМБЈЅŸŸЄЇЃŸЂЋЎЏЊЈŸЃРЋu(-4:;>@>U4&,$$-4AFb~›ЎЖЋМЛОРСОТЛДАБКбСЊЋЇБДАЋЉŸ›ЄЃЉЋЊЉЇЁЃЂЉЅŸŽg(29821(*;;%##$A\{œЋЗЕВЌŸНСРТРЗЌЈЎЖЖЗАЎВДАЌЈЊЇЂž››œЃЃžŸžžЁ››Ј„49%2015-.()$%477+!+>SW^YЈЌУБЖЗКИЩТФССЗЏДЖСТНДЉЇЏЊЏЎЌЌЋЎЌЊЊ€ ЂЄЁŸЃЉЦУ—<"H@<5709+&0.3%&:~Њœ‰‡ЗЉННООЦЩТЗБЎДЛССМВЋЉЊЎЎЌЎЏЉЂЄЈЈЊЈЃœ˜}–дМ›L.(<@;A771.-2.3G81J”Ћœ˜žЗЕДКРУНЕЏЌАЖЖЗДАЇЉЎАБЎЋЇЁЂžœœ˜œ˜–‡›лЮЂ7;459<>535)33.:01nЌНБ›‚ŸЊЊЎЖЛФФЦЈЉЏЖЕАБАЎЏЌДЕБЈЄŸ––›™‹ЈЛБАQ20+-0>?;4.+*0,0%-СЩЈЁЃЄЇЌЏЖНаЦгДВЊЌЎЕЛЗЕАЊЇЉЊЋЌЇЅ•’””žЁЂЂЄЈК›},"@424,2720,**31#$oРЖЇЇеЄЇЌЉЋдЛАЖВЋЌВИИМЖБЋЌЄЊАЋЂŸŸЄЁ›žžЅЄ›œаД877€r52>>0,+*51-,&nРВœ˜ЎБЎЅЇЅКВЕЭУЌБФЗЛЗЕБЌЌЊБАЕ™ŸЇЊЂŸЂЃЅЁЃНа›9)8323--259521.;59>N;O|ЄЎЂЈЊ›ŸЄЁЇАИМТЉЏ›‰ЃКУДЖОМОИЗАЎЗаУБ˜——•”‘’”‘”>#1;88977521348$-B…ЃКЯ™ž™ЃЌЗЖЎСЯБ’—ŒЅЋЕККЖДЖБВЕКМЗ—žž˜б™•‰‡ŽB#,+23.0+")##524QHSƒ‚{ŸŠЃœŠЇТЗИЛас˘ЇЉБДЕЕ€ ЗКИЖДАИЏЁДž˜–—Їž‰™M8*("&+&)"##%.8@?LMJNŸЃЃЄВгМЗНЧрФЛИКОИЏЋЉЎЕИЖЎВДЏЌЕ’ЂЖЅh58*&#-2."#(,88+8BЅЂЄЁŸОМСФйЗМДЂИНА›ЇЊВДМИЎЊВБЏН’‹Ѕž„wq‘rB7B*(%+%$,<558-ЅЂžЎКМКЛН‘ЁЅŽŸ™œЅЎЌВДДЏАБНаЗ‹‹ŸŠVYIEHB*5 &4-9-Ёœ™™’ЖœДЖАЄЃŸ™›ЂВЌŸЛтЏЃŸЁ}oU?E8.;77:G&   G7,)›ЅЃЁœЂЋДЖСУДЦС”Š‚Ÿ™oVoc>B[[E>>98LL7?<:.C0 !  #.C.)%ЋЛВЅЎЅœЉЄЄž‚tpVUFMqM;-3%"$#  *)-.2|‚]MmxbJPPN:I1QYJ9\\AY>@AA7I91-4+*!48532)  %(*-*+-IABLC*F`bBHTAC@:A589;?:@F>5++€N2+(-.537-"  !&!(*49FJVWLC>FMLJ?<29<:?317?HH?BB8+(+1)1-497.+$   ,7:AIFMIA@(#7IF>@CFB8338?HCA@NMGA-8:58BFA>@BE<4,3H<:5BF?7@824-,%(.-(& B; $+1*58.9)$78.7?@;.21-44.57<44981:7? 1H0,(+()!AY\)   "83@5.3.1441:95*-15>21;303:<49??F>YiF48*$,* €Ъ * #+<9E0,100*0.41.(.3<47.?<91982188;?83T:9735,$   *)-3)&#*)-.0.3)*17.3:B??9A7532578370+.0>?5%  !*A9+%+&,27927,37205:83++773.21-1,-3.803>;75?$   !%%ъ.:AYA"184:<89C@90-52;99€Л>A?:5^dMB244<97:A?L;""  "@$-(9*4.792;4A7240.9;@HFIHA<&:Z\Q,PGA:7:CQLH-  %&?VW42>3-.+4<8?3484579>:A>?>0?UŠ„MOHA<>:HI3F&  #**?Oƒˆ10;<055;5@@;;177њ075:CAGHOVQN.A>3AMVi]j‹„Q:$-:@*0GJ 47::I^ЕТдРNrZ98CB@7507:514Q>BCE?C9gWUSQpiƒБТАžЕзе[3F>-A<;;@c7BB48,#G˜ЛЭЖJcc<8HFBC9<883FAGgV7JPYCNœЕ™НлУЖКеаЕЕЉУЯxHIP(4::7BBGMB;?1:vЌЖЖLLPNM(9;ACC@>9AF‰ЩзДЅЁ•‹™–ИТАКАЫСкуссмЕНЛСЗСЏтћппыЦЦИИССМОЧйЪ…-,>5+20878GNŒТЕЌВбЪЖУ˜ЖТЗНЈМмлаагЫЫШЧЦРНЦЮрЪЦажЖКЛЦЦУТСжЯU590:37(2:7<:5<@8@‡МЗЊЇкњзДЄВЗРСТКОУЪЭЪЧШТЏЎЖЉВгчяЧФЧЧФСУТШШУИЏЗH7H?@<51277;88@A9ApЈННОЦЧЭЊЗРОМИВЗФКЧЪЪШЩЪЧЕЏЂЄЊДСЦЦбйебЧУТЧЫЯзЛV9;ABA?:@9:;:??їG:oЕЋ•ОУТТ€РНЛЖЎЎЏЕСШЩЫЪЭЫЮУКБВЕЗМТЧЮаЯЫЦЦЧЫЫЩмЧj7AGGCF@I>@L9>;BF&UŸВЊССЫЧСИЖЛЗКЖЛЏКНОФЮЯЭбФОЗДЕЕНМЊЖШЖЇЕШЭЪЦЭђсnHQH@EC??8,5BB@>;EB*P„ЫФУпбдзЁИРРОСТЩШЧУФЭшдакШНОТгŠIЎтдгазеелзгŸЧЮkŒgJ\a07;@<>>BCINqhœТЌШкйђЎМЛЖЗМФШШФУЛСФЦЫбЪТРЮж’qБйбгжЮЮенпрыюй^t{N@E;;CFG<@CONC]kЁЉЁнЩжюЪКСЗИЕНШФТТЦЪШТЭгаФАМбŠCЉпгбждЯдйнжбмн–iwQAM@??<:7>;9;P4ZУǘЪнеўпЄЁЖБЖСФУРРШЩЭЫдзьРЖЊН‹(hшнбЯЭдзлпйбйсЎUFG3:>;<:?;@:>AF3FВ—ЕккюнЩŸЏЖЛРСТФТУЪгзйдбФбЯБЂ„•цраЫЭЭЯклбЫжрРHJSA:9;ELPIFLGGMZHFG?9?GLM><@CBH\Yb•žСУЭжье™ТЫЫШШлФКЛЊТМбдгЩТФЦЩМ•›йаЮС—ЮьаЩЏЪжg1@>?FJJпFCEIGGHGCJЁШСЕНутЫЁЦЫбЦЦРСУгЩФЯдбб€шФЧЪЦФЏВчЯЯЭЦЦЛбщмЪсЫu?IHEILMFE>EFAACWGJЄ‹„ЮгекзббТТРУУйнзЮЯжнмзЮЩУТУЧнаЪСТШнсййщя§Њ@LLHCAB:EFFEMC?2)4rРтыкШЧЯаьбŸББЅЛррклеЎеЯагЪЦТЦа”ЛеТКЌЮмщухшўњЦ;AHA@ACB>AHMNJF@,.^œЕЪЮЪЪЩбьп|ЩНЃЕьюйегЦОРШЪЭЩЩЌЖЃйёаЫОбяњыэшяћпLGhOIGJLLGLTWSHA7Ce€ОЂЄ–ˆŒ–”kw~‘ЇPj˜‘˜Š…}jpkqppgutzx}nwzxU+-EIMIGP4.*!ABJgu‡–—•—–›v‡’Ќ–{}|ƒ}~„wttjozwrvnpknrpkj]G.8<13)-2,#5Y`Ie}—”–wœœЁ–›ˆzuƒŽŽ}w„ˆˆ‚wtvtqd]aeiornrrmgiuh28%0,54)#&4&9CI8Ph{Œvm›˜—‹‡xt’‘‰~x|‰{|wpihikh`JZgni\gV—,%.<7;3$0AMVQPewx™‹Œ‰…ŽЈЁ˜ŒŒƒ}Šœ”‡„|tz}qu}|txtv|xrhivƒ––~8#HE?585($$+;# %nvj[Z‹t‘––‘™›ƒr‡’Š…pwx|uzwruoqpouohjEbœ‚xN.(CEAC@7-$)0,0G-(9jwdcen’ˆˆ‹Ѓ›’ƒ„or‚Š~wpruz|wuebYicbemmbYVgЈЁŠ;89BA?9>GGB2++e•‘vqpix‰‚‹ЉЉЋ‹x{rw{}Œ|wov~ƒwncZT]antqr{ŒkU,%<5F9I9<"",.a–‡xwvmv|~[wЋˆ~Œ|{ww„’ŽŒ‚xtwx~zkbkrnpdrq^ZdgЃ’-99A?B<@<"-18)T–ˆwmh‚…}qniƒ|•‘|w–ŠŽ‹‡{{z~‹^gmrrzomuqxpŒЇ‚.0;;:14,759-*+1*7.neneYzrttnƒ…~…`Hk|Œœ„zgqvn}„‹ogWinoi`hnxphqpB$0ada‚jkpj^u’„ŽЅС”ar~|„„…‡Œˆ…qˆ‚}q‹qaZakrrWP|N@1(*"$)+$#(4?8CJ?@qummxЃ™‹ЇЛŠƒ–…wz{~Œ‘‰|vˆ‡}‹cYZ]Zt~t^S840&&,.4,) $&$1:?primpŽ„‰˜ТŽ”„wŒ‹ntxo‚Š|ˆ‡‡˜h`wrMAGhaTBCE7)22."%)@(545zzke‡—›’˜apqenjmkr{~‹”ƒ~‡‹Ј‡abwe?.-;A:2*$(  &0927q{pim^v‡Œ}xtxjed{‘‚h•Я˜‚‘uWG0A>%3#?2G$#!-#1?>+2ow}phk|›ЃЇ…ŽnZ^…}T<[c7*%uƒ}v|v‡Š‚ƒg`dJE>G`C7ZS9Jr[H;44"*,8;:,)()*!2-." !$44аbiF;Sh]:PP?,C8ZU<;VZ?\@CIMBM?)*(",-8@77-2(!€ %!!#&)$58)(>2B;:(?O`8HZ<>>1@0%29ALABC:-4-&%,7,95+.0&&#(+1>;)3!"" $%2:AE@POFB?9*91!:*7>,$04.40%"  1:21BHGOL7B;.0@LFLHGFIC7,,E@:OGGHIJ(*2+)-(%)$%EM.  774(*@!$89-$3C1>3<2A47;1.;BG@;C@F -L:$+!&!" %8iv3"%)A?45+41A33&;4<+50:79-&(+9A?AMHSG!Wj?.)-€У7&%>>N,:,.#79-&5+3%4)<9<@8;13?2;:CA17;\A3.(4+(,  !  $!"&%8G,#%4043-!*%-1;<3)997B<8<(@891&:5?94:92"# )! "$!2?>9@&3*377.7@0,5)! %&!((0Hp<2#49A@<3:1;)80$,89C<9975\tV@(?352(9CIWF# %8#*):()!*71<3+9?524*48GFA8<Od+.<7--<23G090<>&-375:>:IBVihUIJH5@GBB822<  ђ! %Lc{›-5--й940-9@;79.(;1:@H@NM[aV5:FG@J93HS#YO5€ї2&+)>1HAHSM <80F:J„„Ѓ‹[{Y579BC7"#3.50-V>8?C@B5nZQGI\qbj’’m‹ЎВc2C7,8;5>IbA8?GNPQ.8>FaЄЁ‚YG7H9Ac^SB,7Z|}zЋ”rz„‰||ЃЛУЖ›v`…‡ƒ|ƒЏЦ™”[4;J?05C?JOI.,:3<,8oƒ|qrЎбŸ|h}ŒŽ‘Œƒ›Ђ˜—”’Šiz‚kЄВаЁ‡„–Ž‹‰Ž™‡ŸBAM@4@.08;749;4?(4\u‡‡…”ЂŸr‡…Œtt~‰”ŽŽ••…zgenv|•’Ÿ™ŸЇŸ•‡Š”›ЇЊ–PB;LACFEC<;?>4.EA5c‹mbˆ‰—•Žˆ‹„xnwuˆ˜‘”˜’’~€w{ˆ••ЂЎАЄ•Œ›Ѓ›ЉЂdEHNHLE?9LEF;24>5#En|v’•––‰~xv|{r•‘œ™•ЃŽz}ˆˆvƒŽm}•ž–žЩШdLeU<9-BBULA;:;C1A;CC<@:A@)Hq—ˆ„Бž™Ёkˆƒ‚‡ŒŽŸ”–—Њœ”Јƒƒ„ˆˆ^*{ЈœЅ™ŸЈЃЊŸ{”Ѓo‘iWda:0(5C;8;PIFa\pˆvŽЉЌТr„}|‚„Š”‘Ё|‹‘Ђ™Š|™•WCwЂАЌ™‹žЏЏЄЕСЏVu‚[IL;4CC?MBABH?QZuqgЉЅТ’}~…|uŠ”‹Ž•‹Ž™ž—‡r„—\{ЅЇЁ™””ЏЅЄЌЛ‘nvaMS?:27?9798.I0O˜‹d›ЎАчВob{}|’…„‰Ž”–™ЅЛƒkV 3ИЋœЄЁ›ЄЗДЊЏИЂVHNFLH`)AN…’ˆ–ЅЎrq…‡„‡‘‹ƒŒЂЈЄ—•…Šˆ`ЈЌЌ‘{uЇЩЄЃеРЇL*MLJMLHAOџЬxumu{‡ˆ›”‹„—’”cHH3M~pkeqoZM?&љ  Ф ……nVgic^vvˆƒ‚ƒ|bkndj|iWSTJT[Z[dnˆd*9# С  ™БЊ‰kc`WSmt„Ž‹xe|xhghY9;&Qz}qUS?0*)*&!! €ŸЋ˜a]—…wŒ™Š‘˜‡vk]`UWVTQdu–~[# $!$+ #  -!($%7j|LGcQv‚ƒ~ƒ~ŠŒ‰…vm}tZLP\^\›t$$     hitqmrwŠ‰‘‘‹{ƒ„~ok|hW,!QLJ "$ !"    cjtipr}„‰—˜˜”Ž‘Š~Zœƒ0,G    %" #   a‡udOo…‹‚‘—Ž„‚‰‡mancM        9^vqeTrЄ›‰‘ŒxmxWH 0  &!  !.&! oo„wxUZzpe„•|N+7Є   ) (1!-an\™ЃmSovb\SI5     #    €Є "cdT:G||aEBL.$<<,$  Q>  ,$+$ !BG?]{n>MoЌНœC+8 "&#)!5 +# );Ž‹gtY>5 8 T8     €ф%"$$]ЖАh[ioB?     "$5)GW?`na`h8#   #  ""kS^^ztnn]ga    $4)  *-8&&U`CS\^bgrwjjУ""# -:3:8A3AaVTY^Za|}xcё $#3(!#ќн#  HQECpd[aLGMaNNYTSgut€ 24!(2&#$#$&&-*)$ !*& >b„›ˆcaZOPOWPoc\P^higo  :.% 4+"   ($P\qŒЎЃnZdWO[VOT[`Tm‚|{„ "%$ (".# ,  ,* 1J>Ogg~„–wn^rWA?G:LQUozg  $.!&# 5*)45  ([ro›~|\d~”‘’vj……^11FeWUdp{‚+>&)%Fb.%041(2.(5& Ihƒ–ЛЁgmr‚’•‡xv~Šn0P] GI;W\]dz1.:C-4!8BZ"&$!+2#2A%Fzn|o`•Џpe`w…ЃŽˆ}ktWPQJGbahcW^k +#(8.*>@>>1,Q[3("):#3Z…kzbUMW]PQTUn–Ž|e|gJi›—’„^ud1-JbMFY{Š&+04""+3kF)>H5hh8>v‹rzqd]]QZYa[[„ШЉ—~rgp——•n`ur(?h[jYCP\$ 7$*2JH>Bo–‚TtwW]dquYTg`]aZvgxЃƒ‡o~j•–mmipTVZ LT33.V2$.*G54MgŽДuu˜ЁŒv\PŒzrZS\ZgkgSY^q„Œƒ„}v‹”ƒuƒjUY;%‚aIei<&5 -JMZc‰–~u|ƒt{F?Œuqq[H\nuuiMu™ƒŽ‘ЁhIzЊ—ˆ‡x‡pmxT$q^ShY G9,JS4™ЋЗ—Ÿ‡[x{~…‡‰z\ohgu~bHYiiќn~Ї‡€0‘}da{g‹‘’ˆuzonc~kcecUh5CT!JmGWžНРЄŠ”Ž˜Œ}vxob`[v~nV@iqh^atxx‹—rj™˜Œ…›}^^[jhN[dZ]ZOGpjvoЁЄN`ok›Њ™”‡ƒ••ˆƒ‰‚„ugm•‘‰h@w{om^›ŽЏ{~qŠЁ‘›ЂЗŽqbbpgz„I)L]?$ЗМ›Œ™bJPw‰ƒ”•„‹—Є›Ÿ–|˜aSF[’[;\kn^hVQb@n[w‘„ސ—‹‚Œcjpu…bS39UTU|ИŸŸЂ…|Nbqƒ}ˆ‰•АЋ˜oppPaUS„Š{j[eLi|wo}vnw~rxƒ”œ–—wo|z{pkFa^xhIˆКЁЄž˜ž„YduŒƒ‹‰‘ž”Š}v`qcrrh‡ƒ•{]`OSIgjggu„}œŠ‡‹‹ƒ}ivdUOV-Hek){ВЃŒ”}tr‚mT‚А˜‹ƒƒ|–ЄˆjAew~„n%Ada[``^Cm›Є•ŒŠ„‰–ž”qŽ„‚oY‡JW\`[en}ŠКžЇxhdV‚ЌЄŒ•Ћ‘Œ›Ё•\^gmƒЌŠonYWYebdAeЎЋ‰”–Š‹Œ–ЕЉ}nunZuh\L[ZAFpam‰œБŒgbbHbku•ОЕŽŽƒghNorcoqegjhjmm|rYr”Љ–ЂЋ˜ŽБИВ|jwhh]9O[P) bauid…mbxu^[VY{ŸЇВЅibqnu~zqo`ckuThjpq}]cw—ЩМЂЁЃ›Ѕ~…”xrU:B^\S-!"+01-&"!МЗИЕЏАВЖЛЖДЎЕИИЖКЏ•„‚žЃЁ›ƒЖŸ{…ЋЎЏЕШЛНЈˆxQ4,:E@9@1$#)+%(%""$БВЗЏЋЊЏЎАЕВЎВДИКУЋ—Œ‘ВбИ’–‘’Œ‘‘ŒœТН›iTdWB3551H?I27;Z, 7ЉА…ЃБКОНОККИИЛРНЊЇИЈ”Œ‹Ÿ’›С’;%)I2.232-439,-92110322+-0;988?8-"ŸЃŸŸЇАЖЛМТФТММЛРИВЌЗА™ee‹‘{@:$GE5.&"+74732.,2713"(241$04<73213(ЂЃЄЇЃЌИЛМФШЩФТТЩТ˜ێY9^]9%%0$$,-2+$(4758-%*+&2.22€№78,+-4:A:5373ЂФБЊ‰ДОСШЪЦТРРМЅ˜•k98>"3%"244+%032*1-0*0&$1*-.*182(&))399:>0}ЇЏЈœ—ВЛеРУЫЪДŸ~qF45;L" *7+*(,)40+#11073-&*73-),28**"$E;B>9.!ЎЏИКЎЉŽЎЎЃЋБЂqN-;42$:L(%,(#%++"(1-78;3-1<>5715>0($%1;;43<@ЁŽШзЗžŠœЅ‘ƒu^L543).,3>+!%)+:W%$((*%(55722520,,471*%*#(2)GŽŒ•p…МЪБ‘ngeH59PSG?;247,3)%-015.>rc-)04317?::-*0.&.1<72*!)?Q\c•ЛЇ~}ЁежЃWHNA@- "4:?;<1,.3;4;.+4#;5+&.,118-1.>:L^ЏНŸЄ{m>*@N<&&EaU<1:44.(&+0-030,!-7-,.83(,)14:<9:.(1.1.39(.:844€†+0-+-2,497733,*!,12-359BM428FYaa‹‘˜ЂЈЋЇЉЉ02,3*.&+49973)-,(,228+)*)00187790--.011!",BH8IevvxŠЌЌž™–›ЈАЕБЕ-,*&+.05395850*-0124>9-04;;B@5ˆ48>37@Z`OZЄЂЇŽ„Šd‘™Ÿœ™œ’ЌЎЏ(+-)..3ST<4:9214;?<9;<53889;??<:821?>?2$@4Z‡ЂСУЁЅŸ–•–ЏЂ˜œЈЂЌД03778,",H@4-17*39<74:>AA57:44€†38:>77><4G{‹ЉгпгЩЉžЄžŸЂœ™ž›˜ЈЩМДЖ.5401+.7BA422741879??E@B79350359CH49Lnc~ЇЂНСЩУЗЏžОЗ›‰„…˜ž’kАЦЕЕ22.,..5,9>;<:>>25;?GGA?F43+42089J‘žЂбНМЁЈОЫЩФЖЎЖШУЉzY{БŸ—œВРМИ9;39S<133;?0`pB>0:@@BABE8AMN>,5L;ЎТСеѓзЅАКРЦЩОЗЛОЩЎ{•Z˜—›˜ЈЅЗЛ>8>FMh*4:>4ETo)+29:?GGQpЊЂ…œЂЈОЌЉАŽЕЫЖ”ЈЋЃœДзЫЦЛЋЌЃЁ{d„ЏЫЕЏЉЊЄ><@AL@AABAI9`wEBFB:0I>2’ФБВЉŒ”œœЂ’АжЭРЊФЏ„ЉйШУШЦЏРЉx~”}Њ›˜ЎФЯFACCA9:;77,9…b?-9Ua]…Ёj{АСЗКДœ˜žŸЄЄЅЁРїцеЫОЋКеЫкКЉЕВЌЊИo–Љ94.9:;799J:7FY`UbЂЧЗ’ВМžЁЌВКНЅЅЄЌЎЈЋЗЊДеЪЛРТКЕФЪЧЇЌЋК›Ÿkc‹œ’‡ƒ—;::9;7<LbMHm—УчРКпчШМЃ–ШЯМЗВЉЄАЕЖЌЋЌЃВОРСЩОЕШмЪУИАТШАœЈ{NƒЩЁŒЇЖEMEABN5+Mdno’ММЩИКССМО„ЮКЖКЇЇЅЉБКК™РдФаЭЫйЋ„ИрббЩРОШКИН–mvРБЏЉЈ!S`@]h:QМйуайНŸЖРЦСМЯРЁЊЏАБЧЉЁЈЏБЗЛУЦТЧЫЭЦЂ›МžРШЩТЛНЖМРЈЦДАЎЈЊЃCZp7mŠqŠМеьяхЯФШЭЭЧСТКЗЎЅБДРЕ{БКЎЎЏДНКЮаажНБммЪЭжФЊЕВВЈЉЉЃЁЃЈЄ””‹Ћ˜лт™ИМгжгЮЫадгЭЫЧТЭЏЊДЮндЎ…РЯИЖЋДкйбшННЖЪЭкеешЭКДЕКОРЪ—qŸЄЄ{уэлЯгЪЃŠ”МТКЪЦФЧЮбжгаНнЈ—ƒ’кхЇ‰ЊЌЉДЎЋ–Ј~Џ›ВФбЪШЮЯЭЧЯЊЗМУЫДЁz˜—ЁМцнййЫлШ‰ЎКОУОЦЯйгааЗЕСžЇЃ›ЩжУЏЃЅЌКнКИМИКЖБЗОСЩЭЯбеОКВЛИТСž›œОЎœЧѕрждймЭЁАНЪДЦЫЩЫЮЩСЖЈВЏДБЎТЪйКЃЄЄŸЃВДВЛМЦУеФФЩЮЯЭШРННЌЎ›Ј›ЅЇЎЊ„ОынзгЯРЖУД™ТшЮЫФШШЦЯатдД‘БКТЭАhЅЉЌЋЅЃБкхаЭбЯЫЭЯЯЧВЮШТЗЉЦ—ЅЈЅЈБВНФянцаОЏБ›ЩрЯбФдьдЪЯчжЄЅЏАТьЪИЋЌЈЌЌЊЈ‡ЅѕђкбееббеьщОВРСЉСДЎŸЇЊ’КЄБУрщйЎЏЈ’ЎЖАЭШюмбЪЛЄЎ™ЕЖМЛИЗВЖВЎДКЗИžАгшклпмзмкнтТЎМНДЊ‹™ЁœenЊЃИЊЊЪВЅНВЏЉžЗВйпщчЎЅКНОМОСЛДЏИЕИАВЕМШЎЏЫФнўурйелмОЦаФСЗЈŒ•ЉЈŸЌЏЋЯТУТФЦаЛВВдЫТэзйлЭЪТМЛМНОЫҘŒФББЖЕВЏ™„РЦыђчйаИЦУЦЭЯѓјгеЇЂЄЃ’ДЊЮШЮШЫЪЧМСИЕМБУЪЮЭгабЧЦБльФЦеЈSБЅВММѕДЊ—ЇУЮеєЮЄУУ€ЬШЫЭФАЦР•‘—–”ЪжзШЪШЧРОЛЗЎ›ЕРЧШЮЧШФСМБЭжпОЭФžЫЌ…ВОЗБЏЌБФёўўѕюуЧФУСЪЮЭИбМžЈВЅ™ЦнзбЯЯЫЧЦЯОЖЕОпСНОСЧЪТРЛАОтЩžЋУхярАНВЎЃЂЉЇЎЯшїѓщНЏМЛНМРТЌЎАЏКжаЅМцњезлзкбЉЗЕЗЖОЕАБАФЫЭЦРОЦЯдЩРТЦЭЩЕЌЕДЖЋЉœ›ЏФьўѕзШМЩРСООЗВАВККЯРЗадЪЭЫЮйбŸ’ЎДЗККЎКаЫЮаЮкЖЛлкеЯЦСУЩЧЗИЛДЎЋВКЩИжњєђљцЪЦЗЗРРЛЖДКЗЅКТгЮдЯЭЫЗФШЖŸЏДЗЛСащЭЭЧЪЦЅ–ЋОхсЎФЦШЦЩУдЋЋАИЫЫИкюушѕюШЖЇСЦЧФЛЛОУСЌйЧжйжФчўѕнУЋБКСТЪЪЮЪЦЦШШТЛЦРДЖ’ЋРОСФжОЅБВДЛЩррьпцчёмЪОСЧШТКММЛБЂЭздгЮШщњўуЧИСЫЭеЮЪаЪШЫбгЌСЩШЂ•ЖЕЗЛМСУ˜ЇЌЋУмбзкбцуюћђДЏТЧСЗИЛНИЋмрЩФБЋАФпсЭЗТСЭалдеЮЦЪШЯЭЪЮтЩУТИЋЏЖРОС›’…ŽЪрЭЭзуьщыјћКЂОУЧУРРСНВКРУФЧЩабддЧЩЎ™’НЪЭЫЮФОСЫЯЭЮЫЭЩйР•БНОРЮляШАрсШИаїўэыщћдВЖагЭЭШТНБ’УРЊЭЦЭдмхЫ™›ЄЎУЦНЎЪЮЦФОФФШЯЩхўнЃЕСРОТЦШФЩЯЫЦИКпѕыыёўёЈЄЦарНмОДЋБЩгЧюњмНЛЦЮВЌ•ЌЪНМКзэїйБШЦШЭЭЖМ’ŽЎЖЕЗЄКФЩЮЭЦРНЩчтЮжшўѕАЄЩеьМ›ЖЏЫОЩащѓьїжздсДЊМЪЪЧСУМЮѓѕФЫЪЩУУЗЪИАЏЖКЖМкюйгЧСНИБдЭййрєцкЩРепМЄИССБУклыщштцђпШЦИСЯМССУШаабгЮЦСКНШЧМНОУШФЩабеЫФСФабЯдехїєяЭЛУШаТЗЗММдѕнгзФСЩ§ѓсЗ‡АМНЧЫЭЮЯддЮЭШЄКОЧЫТКИКОЈЯзббЮЧЧгжггаЛдєўўєжЮЪШШЗДЖЭаШШКЩФžШяўсД…ДСЧЭЮЪЧазйгФгИВДЗТЧФЦЮЖrЏмжЮЧФЧЩггЯдЯдчўўЫ˜ЖЦЩЧЛДИзЩЛЦЪбЧЕщўљсЧЌМЛСЧЯЩЭЫакжЫЮУИАКНСЩЭэпЅаўммеЗЋбцгЯЪДЋНяўзЖАžСФТТОЛСЖŸдЮУ‰НњѓйБКНУЭаЪЧЩЧбдЪУкРЦНУмажЯЮРЧФУЫМŽкхггЮЩАВэў§леСООЧФУМТДЇеѕсЗЕмёхЦЏНЛСЧгдбЩЦЭжЫЩШШФННФЯЯЮЧТФФШЫЛЁЄОАЦЫаЪРФлўћсжМЩФУСНЋЖЛСЪюшЯзюхыгЪШФЧЫЯЮЪЧЧаЫЧЧЮЯлАЈЮеЊОУСЧбьызРТУСФЦЩЯдыЂнљЭЭЯЮУУМЛ€<‚…ƒ‡‰‘—›ЃŸž—”ЂЅЃƒ]QJh™…uv~{`Mkwo~‰ƒmnœ‡d0 &5+,,-7&. •Є”Œ}|„ŠŸˆ‰‹‘‘••eFGhmjpg]iMZ…’”Ѓ•Ѓc[O*"5<:5A5!%)(&#)—ˆŠ|‚wƒƒ„‚ƒŠŒ˜–—gZ]Ђ‰WV\\^SVecjŽ‘zUVcOA,:14;:2+,1.%$-9(81:18@8%rr|xt„‡’‘•žЁ›‰‹”„z‰{oA@[]W9&%HA:+&,92@9;8.!$)%$!)3*)?5-?7zx~}xŒ”˜ЃЅЋ–œœ‡iЎŠF+NT()(!!,2**,+)>A:,400%"$"4;#"+>:99€3*.m˜}{Vtƒ˜‘ЂЅŸ™–™ž}uzr\.87.0,7*)$,32,5>4;:&3!(,(&%*%*&#*858B0+Qo„riˆ”ЛЉœЇЁˆxˆeZ(*28L -+.($41)(+)::1;.(20",.*,&1:B>8A(zx‰—‡„em„‚{’ЁŽZB.;22I!" 0*(((58:>99<+0;2#+(4$"& 3EA4;309EEA8)1"487185%%81)14,*.#%)194)-+.C?;;0-0&*&))!29\Z4)!:34*7474.$"+)0$20#+1)%2&&5>4<<-$2>HBQdT]Єzw}u:#,"B;;5.&74";833)-*##,0,B4<57)(4$$,-752-40517#&;qVgeЁz{mtq,!+)*,7(0(.4(.BJO934<).(<.0%7?.4%%*+".23&4@MI33+.LC5YuV`dnkuƒ‹zz4,&&%(3288A97:1,031A5#(+.29C5:375++10@3ET5CLSPPGNringp[o‡ˆ‡?5&$#$.9C@C@7#(2:55?0%*3<;+4@?B<7538,"8-BObST{wiwTGH8[mabdge{ƒ07()+-0SP5GGEB<,AA?B<91998<;ABB?;9?IB7;%45U|–Ё•unp[bUidvnje^xuo:*80().HJH29:)<>CE?C?G>3-01,%-,.7>,AB3@hq|žНЕЁ}hngbkkhenoa|‰—98>4$235?C<>2<72AAHMG?N<10-*+52@H)-GkTd|t‹œЄŠ|o•ƒjQPWLdjg8zŽ„{B:@*(#-4@B:F:78A;GNGJG8508-&4"55?wˆ}Е•ŒjzžЅЅ|ž—v@+MWwh[j‰”‹ŽEG?@S?#,AEA3a|L01>5MJOPH;L;Y1-+8!Zr—˜ЌйНt‚Œ–—Ÿ˜…„”•~M`h2c]Zcqp{ˆEBCBP]0BAJ;L\o4%<88B>B4C7Nh•akkmˆ}}…Z‰Žj{wkkЕŸpicnI9L{|upgr@E;A@>BGG€жT@kuO>NEH9C:&q•‚ˆq]YemggdjvЇЄ‘v‘w]zАЄžЃ”zŒqANZCr`]tŠЄIEBHGF7ABG3Eˆ`A.4TVQpvESž‹ŒŒrmhhnnvrq”рЦЖ•ˆwЋВБ’{t…ƒB[xi{i4ZbwB3*95;7>;H<>CV^OLЃ•jƒqpzއŠti{vx{oz…ЖžŸ—…Ž‚˜ЈЅ‚v}ndk33ag^PGaF>7B?>3;[IFTЅд…ЖУЊŒkdœЈ‘uhmoz…xxmm|–‘••‹ƒ”ЈЁ˜‹‘|dgN%I™j\p‚UG8C>V0(ITaeu—ЇŽŠ˜‰PPЌ…‚„mji{}…eŒЌ‘ЃЄЃЕ}T•НЊЈЅ’‘‡ZCI…ugtg*PZ>^h2HЇЖЪЈЗ—kŒ•Ž’œŸm~tv}qcex{z}›˜–‘œЃЄxg‰m–ЂЂ|‚zƒqŒ|poqmuO\k9cW\‹ЎЧбЗ›ЁŸЃЂŽ’‹‡„wtpˆŒ}gJ|‚zj„‡‘„œЁœЄzБЗЊЊŒqq{txdooieng]…~Ž…ДИaq|„ЅВžЉŸœЄЉЁ˜——~||ЅЏЁ~]Š•‰zmБЊЇЛ”•ŽВЄЌВЧ›‡w|ބޛ]8ii\AЪЫЎЅЊžp`c„—”ЃЁŽ›ЈЏЊЌЈˆЇocWcЇЈnOoz{v~nkxV|p„ŽЇ›ŸЂЎЉ’Ѕqw‚‰—ugBWmahШЕАЏœЄ‘Qw„’‘•ЁЂЊНМЊ}‡dkhh’xn{eЇŽ…zЉ‰ƒˆŽ™ЄЊЅЋ’‡‰„Œ…‡`hpŠ|a—зЗКДЎА™nz…ЁžЁЅЉЅ—’‡r}x~‚z–‘ЈŠqpgijzu|{ƒЄД”˜ЇЄЃ”’’‰…tgrdiavxNŽЩЕЇЏ™…ˆŒxe—ЮА•œ”–ЉИzW{‘‹…:TrqwuqoZ…ЈЕŸ˜œœЇЎЁЃ——‚t–Ukqjjx~Ž”ЭЎНŒwtg™КЂДЃŸСЊžЅЕЕmvw‚’ШŸ|mpvurzS{ЩНŸЈЅЂЌФМ‰|ŒˆwˆzqkprU\}t}БЦЂuxx`tˆ„ЁЕгУЃЅŽx~c……‡„‰„zp„|‰}j‡ЁТЋЄКИДЂЛЩЧ’}…}vSgmeN4;rzˆuxŸ~w‡‰uneo‘ЛИТУ…w‚|‚ˆ„tv„Švx}~‹•xv›‡ЋпЫЖЕЖСР‘˜œ”ŽmPZxoi^}x{Ј—Š…Ž–Š|xЈЁбНЌА˜Ђ–މ…~‡ž–eZ‹}|rzhM‹жсЩЊЅ‰›‘ДпкБЈiagb^WvzЋЂ˜›–›‰~|~žžЅžЃЅŸЌ•}АФ–•›{*~kˆ—ŠŒo`o”ŸЕкЃv–Ž•œžœ–x‹‚W\`aT–ЇЄ–Ÿ‘”„ƒ~Tm…Š›”—‘Ž’ˆ}›ЇБ„–‹e”}Oƒƒrq~x‹ЧћылЯСœ™Œ”Ÿ››zŸbgui[‘ЉЂ›–˜ЁœЃŽz˜Ўœ…‘Œ–›™„‰zƒБŒ]~ЕЧМqŠxokhoq{ŸЯцЯЭ’–‡—’toj|„‘iƒКеЗЉЌЏЈЋ}‚zƒ‡‰qƒ|ˆЃŸ‘‹„‰—˜”ˆŒ––€ vu‰zvrhovœЮцЯЌ™ˆ”…Ž‘„|pmxƒ’‚~›ЅЂž™ЁАЂiexƒŠŠ‚ˆŸ•ЅЅЉЏ|tЏБЌЂ‘Š…ŽŽ‚||{poxxЈŠЋмЧЫзРŸ–‡‰Šƒ{{~k„›ЁЏœ”ˆ–n{v‰ŽЄЕЋЄЂœ’m[r–ЖОwŽ’’–Ђtuuz”Ÿ‚ЈМЛУдЧŸ~‘œ•„}„‘˜…{Ї–”ЉЃ–ИдЩr„‡ƒ™‹—œЂ—Ž—‹ƒ~bx‘ž‘œ‡pv~x‡ЏАШЕТгЪЖЂ’–Ё™ˆƒ{}}d•žЊЇŸТхыКŒ‰ŒЄЊЇЏ™ЁЌЅ|Š™œidw|z…Š‹‹ujrzp‰ЉЎЉЏЂНжЫтЯ‹{”‡ˆ„…rwЄД‘œ~}…™ЋЎ’…ЇЈЁЋЖЉŽŸ˜•–˜Б‘‹‡|wpŒŠ…[eJ]—Љ’ЂЈКФЯФцтk‘™…„Œ|xƒŽˆ‘ЁЅЏЉЗЅ•—zocˆ›ЁЂ›Ž‹Š—Јœ•—›aw‚ˆ…•ЃУ‹{ЛА™ƒЄлягЮзсЌ‡ž˜Œ‡…‰„bˆqЁ›ЂЃЎМipvvŒ’Ž~œ—’ˆˆŒ‡ˆЃЎУсВk|…‹„‡ŒŒ‡––™‡~ˆМккЫмўм{mЄЖВ‡Ѓ”{w‰›—ЮнБ˜™ŸЂ„\u•‰ƒ‡ЉРЩЂ|•‹‘——ˆ„^Uzjm}Œ˜Ѓ–Ž~…–ЦКЈАЮћнˆr–ЌОƒi}vЁ‡Ž›НШЯтЎЏЎЗr…’˜ŽŒ‘‹еЪˆ—Œ‡}{n{~‚ƒŸКЄœ‘‰}~|—–ЈВЗкгМžŒЃЌmƒ‰Ћ{ЌБТШгаФЪБ‰ŸŽ…‰’ЅЈœ‘ЂŒ}‹‡‹…z”‰™ДЄ’Œ‰—ЏЋЊЗдщжЅ˜›Ÿ‚v‡„ЅкСЃЕ›—ЃсРЎ}IvŽ•™–œЄЄ˜ž™Œg{‚Œ—}ŒkЇЎЁЄ˜„•ŸЃ›Ÿ‰ЉрёўнЏ–›ˆˆp{’›Ž™‚›Šw™ЩшЇ‡Qz‹Šœ—ŒŽЏЉ•ŒЄwx‘”Š‹˜{CxЈЇ‘‰‡}ЂЃŸ˜™ЉУћўЄn|‹‘‘„{tŸŒƒ––’zСсгЛ’x…Љž˜›ЈЋЃ˜–„uxm‚’…БЎkЅыЕЉu–Џ•‰”~x‘зяМ‰‚b‚‹„…}…vpžЃ–a•жаВud„ˆŒ‘›˜’ŸЂЂ—˜Ѓ}‡‰Ё•Ї›…‹‘—|bUЊИžЊЊ”ˆ‡ЦљщЎ›‰ŽŠ‹‡~…zm›ТЖƒ}ВУКœwƒ‰„œŸž›œ–ЂЇЎžЌ”‹z”™ЃЅ›ˆ‡”‘‚eivŠœ˜…ŠЖѓсЗЎŠ‰‰‰‡~x}…ŒЯО—ЋСЛ֘—’‡Ž••—–””žЋЉœ–’Љtp’i’ƒˆ–žИНЅŽŽюƒ}…”’ЅШ|Шп™žЊЃ‹„„{џР "$3(%+    9”ФŽjUPMQIGNW?<Ф $ &:&&)E7#-,&!"$$dЅТИЊЌxhv‰‹nP$€‰ %@3.&"H^`]UT3#-*!#&,;I+L„}vv}ˆ{n~„vei $ *&?3+Z‹Šxiow~tm7     !;!3?iw‚‡‡‰~ehngo "GQMJi]WŠ‚xqq|‡rqP-##+)5!29<]qb][SSajrqowp{x’q@! " 3AF9;-mƒ{kr‡’wPvv  Jakudqza]Yakabghpv{wx‘v< !$!7-`•™‘›ЁЈЅe~‡ ("(>b{‡nboiid\Z`dkqrwrmkknk[2"#22??+9@}–—™Єˆ}px !$TW2Gk‚ronxnYVNSVz}wpknju~e|Z#1&8$&8qžЂЭИž‘„nxp$,-4N{x||iaZ[YW3Ig^Z`kopruqz| *?)$*20+C;Y˜ЌЋu‚„‡–ŒFVUEC.FHWad``uhnhJHw]O[Spoxnu‰Ћž-?*0u‘vrigrpjeca^h|rjeZMY`aaє[`kc\jbpxv{}}€­x~w`7-*$3@CGA<>dЈЂ˜„rmh\kNI<v[oZQV[WbudQLQUm\`dpjo|„„}t|wx2!!5(%8.)!<:;5#?Hx‹{z^`jU?*V!MJjhakom]ZU`jk`i^hc[uvmecn}waJC-+"$2.-1,84:‰–|dPW\`I#L[Nvk\c[niu|pW^qbVjeVd^u{p`\edtL@%,3-)4(%$45-3C84,0M–g\w…uWV;gohjtqiq}pmrqi`ow‰aPae”Žxug`gnrq+3-")"<3,)#(),i’wu~‰…^WQq•\Q]bnup]ookga\ri .Z{‰^M[Vˆ„}N<2!"+*()9*8Bb‚rmuv‹knjmwaPhjhSodvdWb]ku‚r^7BNuzUco‡ˆ‘žP"(4!3)%-$-ehmr{}zwrwŠS\\v@ bpuzqinŸЋ”r9Fz]QYk—ˆ}‡oc70 #! %--2*.,O{vjzw{x{ƒ„mtecqHNZrx^`{Œ‡ЅЂ{k|‹oNVe{‰‚ˆ„E10(!+*1.+,9)+iŽov~ubo‡ƒg\bV;1[I5hvqtgd‚x‹‘ŽxqikoCG~xЃ~;$!.+G55>?(+CkZdw}{d`jjYS^``VUWcdnvxj],`ˆ|pv„~^rwaog…А™˜w)#.0 B324AELQ^cx}onmnoiVUbm]]€ue[\kZ\^Qz}}iq~{tegico{xv‚œL   &0B<7BQTq‚{kjtzw|knT^ehimiWS?AB^Je”}‚{wkvuqox~tu‘z-!ZWP)49.@<>h‚x}mwƒdmkc^\ihakqQWScungdvwr}vpoptmp‡‰…q~‡tk#" . 28+0?48AC@G~’b^c…В˜}Fggcupiwb4SYonhr…Š‹„„|gckxphizz‹}vp92C&+"+45-.90\‹bnd~kxpW1Hcjgea`YmjG^bMSqБ…}zh\^ripeeŽŒr‰QPG.!#(70--3A7djЄrrkZ^cxƒ‚drvrq^V„}>Wmc]Zimv„‚vUbpoaiigz~xž’|J.+0&"5-.89JS|vge`‚Œ„‰i3&U\dhZ8E[U`hgazЅ›’jVdpwhoi`jž‰Ÿ„Ÿ‘WB2-4&+**0#Cokgpmm‡–qxaFe9Pi`HZtthckgo…Љ˜pozŠ~pbk~|‚odqZ<Y?,@T71<7:0##"-+Frjhcqtm~‹ˆ„tq‚YU>L|А›aZ[JTShudu‘‚vhY]imoƒƒjj—ƒ”ЌЉЎn(B& +),@5ej^dormb}{wdjwvr:E‚›{@zЂnhnˆИЊŸtHbdjhqxg”rŒztj39!(&>@YUgjW`hdTjoabZgjopxxdingbgiagccuˆЋŸЅ™`M]hqrx‚{w„‡Ђ˜ЋА~W>44*1+22TQ[SIWFNwzuoaVEPgchhgh`QZjjiihe‚ВОДЎ’kguYPxw}~ux„Œ”АО‘Z1-8?0+;YU>F5)bvOux„i[[cebjcjdTPZdaUF9LЉжСЉ’Єž‘|pjnqz{z‘œŒˆ|‰W7(;)!;)dIrNJnFvžiZ]SZNVOoL@JTg\mLNnm–žЌ™ЅЇЃutpnƒ‡ƒ‡Ž”ˆ‹‰œ|J7%05+&\E?SVZmU[qqbV}\V[`TB2ViwmdYSjhw…ŽОДИŒcnwwrvŸСЌЃ™‘žŽˆN%:<>,go]tYiohvk‡‚Ёœƒcvi\cWjZbhd[9L\Œ}[zЄМаКЁqdmhpo\d~cv‚Ѕ’‹w@>2Y\Ža:]„oka^qŠƒˆ……\di`^euogmeU-7eN\}™ЏЩдФЃ|g`eexzonx{Œ~zž˜m&4EN\US„Že`P^xxq„Žne‰@VeEUogk^ Pgi~‡Œ™тьШ™||ˆtpx‚poerƒœxt>:*e`Zh? BuTaYxoeiw{w~Ў‡M"9\]njpuM]rOr}‡’ЯтмДŠoc`dp—’Œnttq~‘™goE-cYgS3`hY[OZovkigv‚{kSM[WZhrnbWVVTq›‘’емьыЛˆUcrd\mopxzt|x}—’c*[dP"TzQPmŠ‘‚d\]p…‚‚…jtui`YbmhihU?™‚ЄЇдђФДqgV]UgqxrtuАŒ‹…žIpjW@"NmrcMdjwnbnrƒ„zk]dbWZZWap]cT9[onœx‰ЭєхзЅx}jc|z~~}’™Є”aq—ЉЇЄG:>FG:]|eebdpwibgjUakhZ\{tQbumdcHwu˜ˆ‚ЎѓчрЖŸ‘xkqzj5[m—НАЄ„r^thkaehM<>J{mmpujhnemaWihcdckobgqqb^]pn~twВѓёмЛ’ЏСe]rxnjbˆЋ•‘z‰‰gpqom^PS[vopce^QTa`aS^Zgnbo^^WeihYVQYw•˜zŒзѓпžŸ—•ŠrqnpnŒЏ—ЂŒ…|qtneh}`LN";Yq][Q[grvxok^gjwzcG?Tb|kh:Wxvn~ЩьсЊА„›‘jSqZh^™ДЇžœЃ{g`q…ŒbJCYFT][agogxz‰^TiahuhEdbg}u–Ђ‹Qwtc’АгыщШЃ‹БЮАr…zŠžz”ЇЉЊЅœjpr{~{{[mIJ]orbaMb|‘•U]Pdx{vt\kpq}d]Bini|ŒЄСлЫЈœ›™…TjtqŒ•…‰…Ž›ju„|vxpmWN@AJV[`T„žŸЇƒgZ^YoqvngZbOVTajzˆO\™ВтщКƒ~В›iOkoƒŠƒ–•ЄЇ€т!#)!(.,%,235GCE7@F+#".!$(-"& FЈмЕxorrnku‡{~!!,:*2.144378:>EY@B>>eYA"+-4+$%0AOA80&-4%2zИацмбйВŸБТЧЅˆ(7FA52.104404:*AVO7GIAmŽˆ”Œ‰g8(241003<8.,(>EJS4`ЁЖЎБДИАЇЖИБЊЄ))*&@9387E>H+@M.9[T[ŠИЗЋЇЁВВЋЅW!292+&$.%#*+0AM1j}w‚Ÿ’ЕШКЌЉЉЋНЇЃvI-$0-11(!!(%7?5AV]ЗШБДИОЛАЊАДЗ[g`8-0#9PG@OTdЎЈ”—˜‰›ЅЅЉЌЉЎЋЉЛ—WG90.5300"#*-15HH?B3‹ОВЏЌРЦЎŽЉЏИ9755+5%3La‹‘œЌДЂ—’˜™žЁЄЎЎАЋЎЏЩЈV2!(45;48("-0(,@;?()vЮгЪгбзйИЃИМ-4:14LHNwžКИЄŸЃЇЃ–”’—ЃЋВЎЎЇЄЇЁŸ‹O,3;850#)170;OœЦШаЮЭбУИЈЋ08>@M]А‚ŽЇИЎЊЇŸ›œ•’‡–ЗЉЋЊЊЇЎЋИЌЏƒC#&,047(#(*18F<;:L‹дпїжЮШРДЏЎ.7$7ZqgkwŒЄЄЌЌЇЂž–’‹‘‡ЁЂЅЄЈЏЎЉЎДОЅ98& Hg82F54;:;:YCnЦжбЛЋРФРЭЭ^umzt‡‹™œ—ŸЊЏЉЃŠˆИ‘„œЇАБИЗВДМдТL,,SoJFvU8<7H}йтСМКИЛЕЛЩЏ™Ѓ’˜Ј–‹›ƒ~”БЌЏЏЊЊЉЈЉЇЌЎВЗНТТЦЯНЛ}7)001))+.038894@N@*35502370.?WLN1$7zЯсЗДЁЂЁŸЈОМ…ƒ‘ŒŠЎ›ŸЈЇ˜ЖйЧВАЕЕЗВДКРУЧЪЭЌЩЯЖbPU.9>910+11€c*@E@35N\ЌнСФМЛЉЇЊДРЎ•Œ‘‹–™ŸЁžƒ‹‘ОУИЕЖЗЕЉЋБЏВЁЭЭЩУЖУŠZ"1..,4.2+47;BCEML5oузЧЖЖВВДЎААʄЈЗЅ˜Ёž™œžЇЋЏДИБЌЉАДВЇИСФРЌЕВnF874355:4,.1NJIJ7#?žЮЕАДВБАЇЄЄЂ™ЉЎВЏЈžЁЁЄЊЎЌЌЉЊЎДЌЏДЛМКЛОУФРУЖ„NCO88:CBG@;;CPVTQL$E|бржСЗИЏЏЇЁ—…ФОЉЖ™žžЅЌЏАЃЁŸžЁЊЄЉЋЋЎЖЖББЕСНЏQ9:77;CFLGGA$)ICHH0HPŠЭЪНЛВЌЉЉЂ˜Є`j•’ЇЉЈЌЕЕДЄЃЄЃЃЈЉЎЋЇЉЎДАЊЈЇЛР‰eW9-C>A?14989;@C<3@:OЕЯСЌЎЊЇЅ‰v”’ЗДЁЉЎЋЌККЖААЏ€ЫЎЋЌЏЄЉЎВБЎЈЇЊЖ‹h??PPE;<;8;FIELJC;70>mТмЕЖЖЮЪКŸ›ˆЅАЌЋЊЌАДДИЗИББЖЏВдБ—ЄЅгеЗЏЇЄЈИЏ˜A?PG?B<<70*,!NL>3487;ЭМККМЫШЈ—ЃЈзbœЅЉЎБЋВЎААЌЌЏЗВjUqЅСЧАЇŸžЧШТpMM917>A>7+--378>;B>LiКМКВЖРбЕЏЌДМЄ–ЁДЁЁЇЈЛЎАЎААСЭТ™e\}„ЗДЂЂЎЭШЭЩcB28??>4:449;?:;0&8…ДДЖМОРОСРЩbЋР‰]aЁЗИЛКЖКСлцбАwcƒКЊЇ™ВЮТСС™wPJ$458577305::8?;+8^ОМБЋЕКННСаДЏЋЌЛ‘\ŒЋРЮМНКОжЫЪнеКЋЖУЎЎЂЌССЪЛЇ[?1L?9:98834>909НбДДМУОЕКЯЫЈЄЇЃ‚ƒЂˆˆЉБЖВЃЏЮСФдаНСКЏЎЋŠ‹НЫЯтЎN>A>:89:92,]FBGFJ:PВЂАЕФОЖАДДЋЅЅЋЈЁЁЃЌЏЏЕЗЅ„ЋЯТРООУЕЗБЏЎЈЇСркЮPBN83<<7+.I;?EHJQSБЏИТОМЖЖКЗАЉЊЉЅЃЃЊЊЌЁЖБЅЅ˜КЮОСКФОКЕЖЎЇАЗЛОЖЦжo+H7:302,-.,0AA?A@4:haWEB?A@ICЉЮСРЕКСМУЖЕЂЄЉЌЕВЛœ™•ЈДЏЌЊЧННМНЕЕМНККЗСШСРРШЖ‹<.:5J3 ML@ECA>GLGŽРзВАЊгЯысФ’ЂЌБЏЖЕМЉЌžЇЏЕЖДгЯЫЪТМЗЕЖЖ€ДМРТРЦНМЎ\NVE><7455;@;;?EJ‹›ЫЖЋЏСИСМ—qœЄЎББЎЋЋБАЏЉВЇžНщЭЩШФКБЎЗЕЖББЕОУЪОУƒe\G8EB75AE<2:BHIБЗхРИЏЋЌЕСЫШЦЋЋЏДЖДБЫНœЅЌЅЊБДШЪЪЗБЎЕЕЏЌЎВКФЩмкМ`4F8A<<;<;:44>CE’›ŸРУВЏЗИНЦйЌxuaЋЋЈЄ}›ЅЈЉЅЋЉБйЭйЉ›ЖИЗЗААЎАЧУзЧеУtVEHJBAEH3BA>?Fˆt‚ОзЛИБИРМдНСЄ‘Ћ‡ЅЇЅ‘ЅЮТКЌДДЖЗЭтЭнНЗММКБЌАЗЛНЗЋБU3iQQSpL!@CBBЙЖЏЁЃАЫММЛМКЕЇОЋž›—œЅЊМШгС”Ÿ’ЪЭЭЫЩЭЦЄЌАЕБЏЏВККОТЦЭЪw\[5IP[1-4,1;ЕЋЈ|ЃЪЖЖ€фДАЏДОŽЁЁЂЃЉВдЫœЉЅЎЊЎОббжЎЈЎЌЖЖЎЂЈАЛОУОЪзЋO>0FBA:;778.7—ЉЈЇЎЋЏАЌЊЉЋЏКйЭШЊЂЃ›ЄББœ™œœЌЗЖЧбмЉЉ˜ДЖЛЛББЎЖНЧЪмФэРW31FEHC@9;CJŸААКЕЛЗДЖБВКРФШЮОЄŸ‚ЉЖРШЕ~‘~ŠБСЦЯчЮЮбВЎЏНЛДЖКЗИЛзсьр<\JCA?>;;?EŽИИДЖКНОЛУУЧУОЗЛЇŒСщлЏЋЄ›ЈАУЌЛЮбШИЌЅЎВЕЖИРИЗбЩгчше…<-OA9CB@GC}БДДЋЏИКЇЛТКДБДАТЛ‚‰СгжЩШЇНЧыйМИИЮёчреО™ЈЋЊЕМДМжОШЪЦДЁN>PCBA@@FEžЈЏЏЌЈЌЊЌЏДЖЏЇЌЏИЛЗКЧАЖУВЕЕБДЎАЈДЦыцудЇ‘ЃЂАРРТФУЫЪрущыЖt\QMMHCAEm•ЄЇЁœžЋБСНЖЉЃЅЋАДДЖДЏЌЎВДДЖЕАЎЦыѕстжДЌК–”ИУФУУЦЭекюєа…MMSTGEJMЃЃ™›ˆЁЫ›ТйЧЫАЅЂЃЌАЌБАЌЄЃЇЈЌЎЄ}”тўѕтЭсслтУАЗРТТ€†ЭеййгЫЫЈe;FSFHFOЕx\…ЏЃЅЅ™ОуФЮЈžЂЃ™ЂžœЛ‰–ЉВКЊЈœЖЛЩучрпртНКИОЦЫЩШЦбжкдЮжмОiLCHCEB›„zЈВ–ЃКАА™ЫЩœ–ЈЅ˜Ÿ•ЕбИДЌЇ›ЛАТЮЩжэёёебЋКРЧЦФЗуїггЯзцпТk@QQICВИДЛžЏЧДВЎЕТЪтхШБДžЉЅМЊЎЏАЋЏЄЉбНЛžНщѓјюлгЖЉВИИЖЁЋЦЈФЪдщЭдЗH4[QLЉЎеВ”ЉлРВЏЎОгЪЧЧЮг›ЊЏЌВЛНМКДЗЃ{pЇ›ЭкюїњљтФЎЅБЗМОЛУФУФЧЯРууLCPTЌЉдЈkЃелЏЃ™ЋСРТЦЫЦЗЊд’oЁЕЅЈЏЕКЄTžВЕбгЮдћўїмТКЦДЖМТЧЦЦМОНШцлЪœ^OOЌЉЇЊ}N•СœЁЄЗЕЖЖЕОФФняߘ‰ЅЇЎДМСОЉВЂОЦФгѓўњчЪВЋБАМбЩФТРР€зШЫнЗЭЄ`BЈЊВž^hЂЗЁœŽžЛЖЗЕЗСЩШСЗœЁЌАДРОЕЏЌЊžРтпйјњўўѓФœАЖЖЉКЛММСУЧЫЭбрк˜TžАг–rrЈШЏЎТжмФМБЗТЫЯЪЩЛДЖЕЌЊВКЛЖВЊp‹ШжЦннїўљхИЊЂЋЌБНСУЧЮажкдатЦ{ЭЛВЃ”u›РЦЛЃЕУОЛЕДТШЧРЖЖВВЗВЎЌДЕИДЋЁНИкУЭѕўўћлДИЏЁЕТЧФЩжйпмзАТзшьп•‹›™”‹ЊЪССЛЖЗЗХМЕЗЖИДБЖЕВБЏККЏЊœЩЫИегЧшўў§эежСЅККЗœЗпёйуУНЊРУУЖДОЅЂ•ЁЧТНММ€ИДДАДИКНЕЗИЗЖВВЖИЛЎВЖЗУФдТьўўјьбючЅЃНМИБЕзюлеЧбЩЩКНОЗТЊЇЅЌЧСМИВББВЏВВЕДМДЕНЗМЕБЎДАЋЈЋЅШкзЦЭѓўјмедеФШНТУРЕзєчсдЪТСНЛОНЧЈ•—zБЧЋЃЉЋЏИСТНЗЗЕИЖВЏЊЊЁЕТКДŠЄЦЩЗВУєў§птЯгаЎ—ККДЏЫзсруупщООРРлнВ‰ЄЁЉЇЎВЕЖЛЧЪбЌ•ЅЎДСНžЖЕЕСЮрэзЎЗЛКжыњўўѓЮЪяјчЛЦСЮтФджппнкНМСШЪЧТЉЎЃŸЇДЛОБŒЌФймЩŸЇЎБСШШНН ЧФШЌЄžКИАУйцѓьѕцзааШœММФЪгЪЭбеезНФЩЯЯЦСТŸœЅЎДЖКВЎЭщјјдВЇЌЃМЪЫФЛЛЗЛЖВВЛТИЂЉЦпяўўђЩЦѕцАŸЖКОФУЯЯзлмъ1&::78?75:;-CC€“F5&>3"(&(332540*7(&,&0OЂжj]WeZU]mVT-!"83$!(*+57B8<;@05I?A:;YQ5->5938;drgm`iL,"<48@AU@IT—ž›ЃЃŽ~|~%7($+*1-#42ZcYavnd‰Œ˜…|‘”}{bG-*$?<:-1),+#9FF^cgЋЇˆŽŽ”’zƒˆ™bib7*+9I?7FMUdxvmcgcrzƒƒ‚‡„˜…TA+4,:E.)+$.8?EVWTP?|ƒ|—•„b‡‚‹2>7)",5Wq}~mƒoobkuro{~‚‡„‰™‹F207@72?44€N>FNG0.pЅЈЋБКМЖŽz”™(50+)C-HSiА}vz{{rekbgtw|„}~z{rvjG*:B::5414G@NSSAJUŒЊЇБВЊД•Œx‡".A1?JcoTVv}|r{xne^Yi‡‚ƒ{~„ˆ}‰p@,8759+5.?FNLH.CSŽРМпЮАЁ”……7!3@%FG[z‚ˆˆ{khj`]W]ntoxr‚‚‰–Ž#4,Sg;8M;"FOLVTbLzИУЖЁ„”™žЅŸQe[WLETS`qjquˆ}r[Y…hQgj}}‰ˆŠ‚—ВЅ:&-VwTHxaBNMIQTI-J}АЕ—„…ŒŠƒMPiv3LOGJVnvЌ‡wpe}{zwz~ŽŒ”‡ŽŽŸz)1+349@QFIIHANJF+2?‡ЛК‘Š‰”•Šœ—PmnTOFABLAV‹{xmkr|wu…„ŠŒ–‘’‡>+B>*;417@?@F7JWUBGQЗТž›€йЂ|]oec{ZQbPJ^}…ut|}zwvƒ‚”Œ•˜ЅŽŽi3,%&%2$5+A;@@JTT[H?kЅА›—ƒ~‡‡rd][[ULed|ub[c’Œz„Šonvpq„ƒŒ‹ŽˆŒ~ŠŒm>880,$!49FBFEOQbekЃаЅŠwgu—ruqUN7(Snohabnexx‚‰•ouvxƒ‡ƒ‡…ˆ‰tthA.;?**,&))79:+A—ЉŒˆƒz‚zopnmktƒzwng^npnprpm{}|‚}…ŒŠ‘‹Œˆ˜„mJ>@37BBECCNHUbddaQ4P{ОЗЌœvtxh]ZŽ‹n}cgipjz~znceuwpn}u…Ž‹ƒ‚Œ‹‰I%::.4FPFLOI49PPQIEPb‚Љž”Œˆrozn]Li39`]rrow…}rqinvtu||{xnƒˆvtz‘ˆja\;%5LC;IAE>;FHIICGMQžЇ–woott^Bac[‚u–{q{‚…o}‡oxxuquxƒƒ|tqpxŒa[@@H@JIMLFJNNQTYPSJ>LiЈД{}ŽžЂ…mgQqzxvŒ~x‰Žƒ„‰‚zrt„ЃwhvmžЅ…{znu…{tC;HH€ТBEAGC:&1V]HGH7@>}Єˆ…Ž–—•njgЌj(inn}{i…{x{trƒ‡3.MxŒžq^ik•™‹]ITC47;;E974)9AGIJMPTn›”~~Ÿ{|r{…vdxzvgzw’‚qthz’ž”b9-O[Œƒbn~›žИdA,8>EFA:;GBIMJM.,;}}„ˆ˜›‡‡•P2hj…]*$mŠˆ„„‹ЏНЈˆH;ZxmdƒЇ™œ‡qOM#>>€PHG:;EEJOOJL8GdŒ‚ƒ‹Š‡’•—|ƒwr~U3[j‰—Žw|ŽЇœœМЏˆ|Žzjk}‘’˜–U<0IBCEE>A@C?>FGC:!BaTWOQHFC&))<7GMSN^ZUSgœ|‡„‹‚h?\q}wzrr}|cv{keƒШЁ•Œw{z{~xƒ’Ёžˆ›gheO:LHA;BGBOJZTZtК‰„xrv‹˜”t„Švo”’Pd}rnu~|‡˜‹‚xƒ„|z|’‘МЊŒQ5E@EF@;@G;JHOOZUciŒzr}œЇ|SF2ejrxbIWrkozƒt‚ЊЎЇoƒƒŒt}xp~Ѕ›БœЕЇo]HJCB8FL1MUTPVWMPŒЂ‹||~‡™Њ„‹d[wMk}jUmœˆˆu~|„•КЁЉ}‘‘‰~zxŒ‹‚~„oM4hSPWkW%ET]TWtmhe{‘„Šˆ|ƒu‡oh`]`nzŒŠœ‡]gd”’–Їœ–muw}xkt|‹„Š’™™ЂmT^7GW]474JLP~miIn~|‚|xq}„Stgpwpz˜‹[pmvow…ЂЉЊx|q„‚…tit|‚‹‰ЂИŒ?:2NLLJ?<;GILOaedp{x|kmqpŠЈœ”xnidhzzcda^qƒ‚’ЇЎt|ho|‹ˆq‚Ž•ЂК”гЏB.0GCIE?LOU[jv~wƒ„}~u~{‘ŽžŒphGt~„ŽzAMHU~˜ЏНЈЂЂ|ptŽx‰‘‹„ИЧзЧn9\M;BBFCGGSY‡}zz‚‰ŒŸ•ˆ’mbPWŠШЎqmx[cj}…nЂЂ–‘ovv}{››~wЉ—ЃОФН„<(UH:EAQNZHwwњp‚„|oŠІ{zˆ‰ƒJUŒЂЈ–ŠgŒ‹ЕЁ~ƒ…žЯТЕЉŽimt{‰ˆrЋ…Ё‡ƒItgj›ЌЦйшнК‘~vw{‹Š‚‰–‹”Ÿ™ŽИАz<5PZgu‘m7k›Љur]n‰’”ЅŸ–{tЃM1nqhoz~p-cx|•™›ЌёўтВŽ™„‚‹›•—ˆ…ŒœКЄ•{QMStounN)YŠdtnƒ|t‰ŽŽЂК—jQgvv‚{‰„hrˆe…˜ЈйєђФŸ„xr‚…ЌЋЁ‰‡„ŽЃЏ}Ѓ‚YEqwze17evbeZg‰|‚Ž–˜}`^nomzŽ„ougjk‚ЊЊЉчцћћлЄopˆuuˆŒ…‹‰””›ЇЊЊxCnzŸdBLhŠpnˆЈЉ›‚wz‘—›—˜ƒ‡‡mk{ƒ‚pCW•Б•РЗцўтЪŒ|iqrƒ„‹‰ŽžЄЅžН™\–Š}u]?YƒŒƒb{„}z’Ÿƒuxxwuwrxx|tSm…БžшўѕыЛ…Š{wˆŒ”’ЄЉЖЏЇ~ŒЊРРЗWV^cTOjŒ~zw~ˆ}zu‚rx‚zwxŒn}ƒƒ|o\Œ‘ˆАŸ’УўўјгЕЋ‹}‚ƒzMi„ЏЮЗЛ”Šq‡ƒ‰xv{gZ]`Œ|…ƒ}~vw{‚ƒtr~‰Šx|Œ||v‚{Œ–Ѕ‘ЪўўябЉШгvoŠ‹ˆvz–УЗЄž™”}Š‚…pauwŒ|uvpmtwvpwz}z{tm{ƒ{okgo’ЏЅ‹ŸлўэДЕЏЈŽžŠˆ‡~|ЄЩЗНœŸŽ~}ƒŒr[]hkjcW]`norppv‚Š‹‰›žˆ}vƒŒ„ЊЌЃ˜ДСœzhnw’ŽŒqEЎtZ`U]oqje^gimba\aeddZanuxmq{‡„‡˜œ––Ž„~~‚„ЃЂ’Ž‰–ЋДg{ˆƒ}{{jzipinzz…~{qoomvqaabgedjp{rkˆ˜ЎžЄЅЂ„Š˜”‰Œ˜ЁЉЃ˜–ЅБМŽtOjŽ|~{ubcH\x{„’‡dbivvwtedei]V[hxobr…‰z’ЂЄЉ˜„–АЌЃ‘ˆ›ЅЈ™‰ŒЃЅ˜™—uCJkxqwxg@Ogqw‚ŒŒkqmeiwrqeprhbkrmekhULg…™v{ƒxŠ——ŽЉДЕЎ‘‚ЃЁЧ˜wUddmmpvt3@JSbzƒƒza]YagnhbdpnutvqgimYVOikhq…•‘™ЄЄ—˜ЄЎЂoˆ’–••Š{dnkojmridnkjmtzwjngacptnknovm`c\S]onjhodu{{ˆŽ•—›Œˆ‘ЎМпЯ’’œž›‚xqjbmkrp}mnb\ntackzzipxoinkkrjYObhQbgZemt}x‰‡‰ƒ‚’ЅЉЋТЇ”™—ЄЁЁž•ˆ™‹qkceOvU8P]ap}qdpqjgvxwnpt}‚u[3AUue`]hrjVt„‹”Œ–”žЅКЃˆŽ˜ЂЊžЃ™›–Œn|t]^ibidporhamzg]Wh~~НЂrWzbQ;GEj{maacbbgЈЉ‘’œœ‘ЉЄБФЌЇŸ›™Ž‹•—Žwq‚puoq|tjxwk`\QVjkŸзТ…„rPduaw‚teZb]Yt~~‰ЎаЇ™”‘Ž„…ŠЉРНœ›”•—‰‰Œ„}tjkxrwddnmjomcabn˜ЇЃŽw`jwg[[bktqam–k^n—З›~‰|ЈБЗЗЇŠŒ‚‚‰„ƒNbbqz}ubhuxo{|jdgx|„ŽЁ‚{g`]Yar|uimiortv…ЇЌœŒˆ‘™ЏЛИЛЗЮЊˆ…„…‚qtt…~{zuop{nxp`k~x|ƒkcVT\U\Femtjptzux•ОФЉ~ˆ••БАЖЊМЛ”•‹Ž‚jqpuxzzhopox~]p|gm‚p~}rohVOW\VOOLuƒ‰gnox~]ˆ‘—ˆ‚Œ—ŸЇЄЌЌЈАЭЌ•„t‚…|{|{i]^w{wdd]cmkm^mjo^^€šLS[UV`hg|wkmp{qjccž˜‚Š‹—œЉЄ›™›ЂБВŽx}zŠ|c[Gjmowrhkh]eatngrw{ndgg^Ygk- M‰{heuhw‰Š˜Њ–‹n„’ЃЅ•—ЂЂЛЩНЕЕ•|‰zvrq„wpuxvoZajtx~quw{qujnpP]hHV~}kb^jh‰–‹™–‰„ˆ”•’ЁЊЏзЪФЫгНœ…xˆt‰‘ILc|{t^dprvvz…ˆ{tgxЈЃxcevidd}k[itu{x‰›Ё‰‹ˆ•–˜ŸЅŒ˜АЗРЩœx…uƒИС…O`rxojcegeu{‚w~‰ŒŽЄp‚x}ƒkekqrppmi„’‹™ЃЁЅЅ”‘™ŸЈЕЛаЈ‹™‚uœИhevzjmmgbbqmnrivz…pUVGzuwdpgV`q}ejЎЏБЁАМЌДЁЁ—Ѕ›’žЊЕЖЗЕЩФН{•—ŽŽ|ŠЎЇ{k[nu{}ƒux^\qtuhZk}gwŽƒ}VSjm‘Œz„ЅЛеСŸžЈ™ЂЂЃЏСМАМЛЫЩЈ~‡ˆ”ŒЃЁЖ”rqmko{{vTYYntthgd\ZYUVb\a]g]hh{wvuƒ…}c‰™”˜œ‚x…ДРАОН|Д}nn™ЂЪИЏ’}tumwtpgVP\mpn\YU^\bda[NZuxianrx{rƒŠ…‡•ЅЇ–‘‹”‘БйчШЦЧF^{ŒЃ˜ЏТЯЩ‡pu~qntc`\eh~vtwh]k[cWZ\a[mnmnx~hkht…‡’‰–—˜›|‚—ЌСУСBu™Ђˆ|qŒŽ˜Žx}tgpgncrqPcqwo{wvmg\ddagY\]mumpv|~jac|Œ–ŠŽ™˜Œ˜глСЖЖe‹ptŠzppz‰}‘‘–ЅЖУИВЕЁЎž>GPFc‚aŠqrzŠu|guˆmh\cn]beƒphAkƒ…nUQ>@?euutckw‚{}‰‰€ŒŠ™Ќ˜ЄЈЇЏЈЛМТ>3>Sdn|n^pupjhkz…]Qkmb\`Wr|uiŒЄxvgrr\n…rigkw„„ƒŒŠ™Ћ–™ЅЅЃИЧШОA?OJ\Lvt{~Ѕ…J^nwqu{rhj`]jhtxއ‚xmoq{p{uv{vn{„ˆ‘›ŸЁЂ–‘‹••œЋОЭЯB8?5FLGŠ”uЉrQoЁ…|uuzrmo]Yx‚~v~|~~vikruhhr{xpz…„ŠžЅž’ЉЁЁЊ›œЇЦас>284-U}ˆБƒ8}™Е™xmooppj`WJd‰‹„‹upinuwtipnnƒ~‚mЂЂ’’›Œƒ–›˜–’ЂЇ49F?*$2OŸuu”ЋЕЩЁixnpw{|c`k~‰Œ‰‰‡~ƒujhVekr|qpƒuˆЃœ™—ŠŸ•˜ŠЉЃ<2%+!LM:m˜ƒ•Œ„—ЁЊk{qp‹…~{nm‰Ё›‹•}jnx‡‡gVjakonrz}r›ЌŸ”‹Ž™‡{‹Ў„2109-580#)hŽƒ‘ЈНžt{ˆˆ{}qr‰Š›˜‹wm}w•Ѓˆronnuzvv|‘›™ž˜uU”Уo@>80<@;4989Z‡’ЅЉБСЖ‚Žtpˆƒ{w{‘iЈ–wŽxkzЖзNWW|„›|mpŠŒŸž›ЈЫž–ƒИ}CE<@AE;7;;8HACW›КЗЇŸ•vˆ{nxww‡•cx˜Ћ‘‹ˆtq’vm{kJbЖеnzu”‘‹zˆЦгДŠЅgN:55EG??N@8?0.4”У–…‡˜}|‚‡„i]–›wUzЗЂ‡jot~zt}}eBb…ur‹ˆ„ˆƒ‚žУ’„i:19>GJEFFA:+(0![‘МЄŒŽ|kx}zke‡}guИЧН‡xkrtzz‚‚obˆ‘~‡…~}…ЂЕЈ›F*9:HTPE@C:34&,LScm‰Ї{|‚~zxu}wv\{ЕЭШАk`}w„‰‚nktu„‰‡}Ž˜Ѓ™‡L41Q7C?JOL?B<3>@*35>A„ОаЃŽЁŸ–~w|{w`gЗбЦŸ‡z‚Œw{|rg[nw|}w}ˆЎФгc2%<79@?978A:(5-8>CTŽ‘”ˆ…}uwcm„ŸŸИОЈЁ„|{wv‹ЌoFj‚wt{œЕжЗ?,(,B.0(;;FGFJc\><|Š›•ŒŠ‹–™„Œ—”ЊСжЊvn~‡‘Œ‰‰{~}v’Ѓw?<1<( #55,028>703AA@>GCQ]m@[‡Ž„…Œ˜ЃЂŸ•žЁЄЊЫмЋЊŠ˜‰‚‡z`WurU;#@S -9..-A;18>C<@;CEJTQ\[tŸœ”ЁЅ‘žЄЁ™žЋœ‹ЎЇЌ›œ’”—œvm{Š~1080La#LG<9ECIA>HLAB:?FOP^STH—ОИЌ›œœ•‹‰™…t’ЇЅЄžŸЂЅwz›ЅhZY1E7I?.$284.LJ?943:CMNGAGBAFGIFgАЧЈДдчКЄ‡•ЅЈ‘ЉЧЎЊЁ˜–›v…”Љ‚o^jG !2uB7V@HHF;0FPLCGF>9EN:CTmВЦеФђжŽr”ЄЅЉЂЈЇЃЅŸАВО™‡rrH5331 ++){mFIW8Fo2CJIIBJNNHGH7FaJpЈЦетюЊuŽЖЖААЈКВЂœ˜ЕЫЎЎ^EFG4*--)9B1**3<‘Ugqdd](?AIOJLIJ-5?9(Ž„\Fdk`o3A@HLE8B>8C8FQFpd„ОшёкЩЇЅЊДЕЛЫЉŽ”ЖД‚L8A1@% $-592580™zvwP;?ZLB<;BGFE>?>04+-#)()0:.F7<™‘Ї—|`WLHNE?EBGOJLLFHJIMMJ<8U”БЛБЌАЄРсЋE*$$,278#.,0*#:899->HtаУДАЩсѓћжВЗЖВЖЛМЉЊЗЧШШЧЩЦТНСИЕАЈЊЇБРМЗЏОВТйжгЪУРШЧЫФЧлШ:<>.-0YYLˆФУЫЧНЯргАЖЕЛСШЧЛЖВбнЮбЪеОЗКМЩРЊЁЉЎВБДЖИМЖдейгЮЪЭЪЮОЪט?A>58@JB3>ƒНЮЩЯжїдЈЛЖОФШШТНЛЭгг€эЫНКЗЖЖЭрУИАЎДЖМОЛОУдеккеаНВ”гуuPGA<>A9?EG>1ƒРбнпшѕыФЮСТРУСНТйКЭЯЯНЧМЏЖућШ‘АЅМЭтРИКШггекнњчеЗмŸLMAFICA>AGI[Ud}ЫшужзШЖЧКЛНМЗОЭЫЊКгтаЫОКБЭМЌСВ•ЈяћСМКНаЯЭНУьјнЧдvUMFFLHILIGEG?ABВызЪЦЯККРЧСИВœдШТ•НумЧЖЋКНРСОИЉ‰ŸЛЋОСШЩШЩМШжчЩУ•1GBFHLLPMNHEG;F4nНчзЫЦОНЛРСЗДЊЩЧЛЈМшѓюЫЗАНУСЦШТЗЕВМФЦЫЦЦФЮгщмзЕY4?3CEOWVIE?@EJ;;[b–АЫкпРУССНЖЕЖМЏˆЗшјїкЎžКТФФЧЦФЖДЗНЧЫФРФЫетдВiA?[CFGPSMA9>CFFG@AUUЊѓњбаШЭЦСКНЛИЏŸЌтїщзФОЩФЦФУРЗЊЅЉРРУФСЦЯтїёuG1&V0CA?@>4>EA?:FE9ELjФЧЛЭЪЧНКЕлабЃАШгЭхэрлШУОМОМмБŠЋЯОСНФЩжхўЫP@5:A@798@BCC::?IJE;UF”ИЧьлЩФНЏЯтяФ”ЯЭУЫнкеЩДНМНСЯнЕИМОРТФЪнтжQ$0TCO0A?8:@HJ887;LUQ@#.GpЋШшбЭЫбкўўьНлбВЩрёѕмЧЁОЪШЪЧМДЕЛОУУРллnB;;?;INSQ(?IJФђсЫЦНШЧШгЮбЭЯШуўѕхСМЩЮЯУЪКЖЗНСОЦСЁC(%d-*NNOONNE745>CGOLLkmMWДЩкЭЧЦЫЭадебжелсшўтЖЉУЯадажШУРННЪнЅYI>FNVd\k]ЃжюхйлждеЯааЯЩИжпрмлжйзнНЩсмЇ”wTZH\E7!"$YNIZYTGBAAIVOGHGGТJMUYƒжѓпхѕўхдУЭбггШцнцснмлйаНЪейАŽq„]$*#,žbQdZOOE;;BQPIHCC€АMOFShмюющўћШЈЪгзлмрппммпмнцЪФЅ…U>MOG+<!&#С™dccFZv:HMTQLNTOILJGWoTˆзтьїўнЋШцьчцчуумемпѕыч•bZQBCJG)0412зЩx…Šmkc*AFNUPMNEA;BG8T8]˜ЦеејљєщжтччьэцмзлюхуКGIbU4AE<<;A<5.44)кУœcvth?BCMOMGB;<@>47345пТИЌoJMjUBEFJLE@BCFHIMOZmqbŸёјўћэшшчэяэщхдЭдЋ[[A+LNI@9;;C0BJb:A,дЧРЪЃWbaYOMOPG?4:?E<$;C>йдд№кЖ|jVVPLHOVSUWQPPжMOQSUC,AhЗуэсстняўЯaMPL;qЇЪВЃŸ•ˆ‘ސށ~Ÿ™‘„ŒЮмжЁˆ„Š”‰‹–•|”Ђ•Ђœ–œЈИаСВ—Z>?2ZY[pk[WUUMNH@`hqЂЕН‹”‘–ŒŽˆ‰„‚e•ТхрФ„o‘‹’•—ƒ~‰…œЄœ˜ЃВКЏ™aHHeMUW\nc`YQSWOPGPQO˜кчНЅЏЏЋ–‘‹•‹r}ШтлБ›Š™Ё–Ž‘ƒ|u{Œ‘‘’œЇЫкхjG>0YATQTVP[S[YNLPNEPTdЇЉ”ЋЃ”Ž…‰ВЌЊt™ЌЏЫжКД—–ˆ‡˜ОˆVx›‘Œ‘›ЈБЧђаYECCU)HNAPUYZWMNQ`ZUCcL”™дЖЄœ–{ЅКг—aŸЃ’ЅЛЏЉŠŠŽˆ‘œЏ{‚‹‹‘•ЃЛТУW)7]][LCAFJZYYTQJSVedV7AIY‡ЂШЈЇЃЈВєўа‰АЁ‡™НапИЃr–’œ”—Œ„{„Ž—ДНgGT`USAHLG5C?72Ё›o[…z‘5NVe`h^^S[NV[^hb‰ƒ—ећўщйИМИТжаЭйФžЉЮЭ‘[CQQU:A?9@@EBA7>IH2NPgIF3Ћ™”ž”\kegeab^^ZOJU[haY[IPjrb|РљсахдЪУсзтдБЃ’YQjGNOUJAC?LSUaVQ7+4Їž”ДЧ’Zenkmebcdebaik]`V`q{z]TЃчтРшржСФЭђЧF>>Qam\TCGIJN5M?ABL8MJPЕЉЈЂВ‘zwmb[cdcgkhjdcdb\gcekQ5IiЋЧаЯЦЦМеўУUJM@09SSHAQHSFE@GBMV^\NџвЉ•…žЫзпаСЫщјћт‰N4#47C8* *%*%jнњёёИюѕїјїњљћћјћћњѕѕї‡ЂЗЧСФШкёљљНM151#.*%)!" 8NA;mлћюэђѓєљјїјљїї†јњїѕѕњ˜‘˜—˜ЌИЛЫдлхђљь‚@8)$*"8<+)3–шплюѓѕѕїїјїѕѕїјљљ§њ§~Œ”ƒŠВЫежЪетљѓ—T> !")$$ % 5312H1EkЋћ§єђѕїјїїјОљћ§§ћјљ`q~‰‡ˆЁбэжгажѓјтюВC-4-$"-!"$27370JHAЮ§љѓѕѕѓјїјњјјњјјЩњјњ^e‡Š‡~ŠВдЯЩРРШы§љФS %1+*(5!$  ("3B*;2‡ј§єєѓѕїї§јњћћјљлgv‰ŸОРЄКкжгСОЫ󚚘O %*--(&&77і9C]M5Ј§§єѕѕњєѕѕљїјјѓљјzЅЉЎАСЕЁЗЮЮняјљŒ+ &*-->;48У§§ѕѕјїѕѕјјѕїјјњљљњїu}z…ЖЅЃˆ‚ŠЖЧЮагєЮL($9M1  #(.2>@EM}Ќћ§§їљѕїњљљѕѕїїјњїїХ~~xЈ•ŽŠvЈйдЪтѓ™97*>LA" &*&58CA2&(E8)&71[з§јєѕѕїљњњїї‹љїїјћњљїљNaz–ЎЄЇЁЊЅЊЕеаЂm:2.8>A.#04&#:?EB<@IOrC!)3%*&#!"+IH;:*gЭ§§јјРњјљјѕјјљљјћљјјњњјћgg}ŽЋВДЏЈœЅйхуЄN<499Lc$7:?1-79>1%-0EE.;Ў§ћѓђђѓѓїѕїѕљњјїјїїŒѕјzz‚ЁЉЖРИЃ‰ЋеЮz77+78HLHCFC?097??;Yˆкжкћћђьюьэяђєѓѕјїѕїѕєєїњјїјї‰ƒ‚’ЌЎЄНВ„›Џ{>:N2?B>FCGBIF480#5;ECGIBB>GJ@9–јћѕјїєєѓёёђєћѓђѕїѕѕ§їљїїйrxtq~‡”ЁЁАЃŠpT;;94)0FLICEEAAB?*LБюЦЪьяђђјѓђёёєѕєѕѕјїјјїљєѓєєЯѓѕѕ|vr…‡Œ—ЈСЖrHMIE>4*15GLLFIAAC?AWЅЯЖаћњєєѕєѕєяєєѕѕђѕѕєѕѕѓєѓєє‰ѕїњz}w~~ЈНŒY?219GF14?HF<>B@2HTC^КБ™Оьєђђѕїїљїјѕљѕїљљїјѕѕїњјїїњћљ‚~„‰||‰ЈКЗeN‚]$>53:AEGIJA<<&@Y`МюкЧаьяяёєѕєѕјѕєєѕјјѕѕјЭїљњљњћјјu~‚ŽŠžЌŽU.Ac[CI1044@BCLJM:!2<‘ыёеЫхђэяђѓѕѓѓє€„ѓѕѓєєѓѕђђєјїјјїњњƒŒ‚„„ТЖЄZ73$#01,0-3>49@;+82HРћїюэёёюяюяэяэѓєєѕїѕѕєѓёяёђєѕѕїљљњ˜‰‚Š…ЁŸŸŒ<!%&(#(%43>:7*1>)&?эљєёєјѕєѓэёэюяђђєѓђѓђђёђўѓєєжМСНž‹’Єh1+#),20)#(+,7<50;>NgмћћѕєјјїѕљјєђђѓђєюяђѓѓєєјїњћћјјмСКРЈ——Ђ^;%0*-;+&4>?<3;PH–ђтьёѕљѕѕјљїјјљѕєѓѓђѓњєїїћћ§§нЖЩьзЏ—hE+$,#)%",+2HA-#*cЯуђјѓѕїїіљјєљѕѕјєєѕѕїњѕјѕїњїїгѕєѕјФЦжШ™O)%*:*$(1-,@G>1(oсаИуїѓјѕѕєєїєѕѕўљїїўљѕѕќїњљїїŽљїћљћФЧѕѓЭ?:I@1,&)$*3@<>:.-2‚жЯеїћѕѕљљїїјїњјљїјјњјѕїєјѕїїњљћљљћњ§§Эхяё‘<89@;2,* -5:3.(04oдѓшѓљєєѕєѓѕїїљїѕѕљјјїѕїйљјњјїїђѕ˜ТцЅM)!-;-5*2*87,851APŸыњѕёєєўѓѕѕћјѕѕїјјўљїїјњўјњњпїјњˆЗз~HL855+433-"!$B>1813L‰гљљѕїїќѕљљѕѕїўєѓѓўєїїњыћ§љјњњјїљћЅОЂQEO@&?711т(%+,+*4@8UЪзэѕѓєєяєѕѕѓѓђєѓєјѕѕїЫѕїѕїњњјњјћљњ§љїљћДЉmI?N<0;>:2.74.2)497#Iмцёѕєѕѕјјїѕѓѓєќѕїљѕѕїњѕїљїљїїмњљ§§ћћРЈG@?.(3CPJnНЧчјєѕїїќѕїїѓѓўєѕѕјѕїћўњјјањјњЉA0AS&$42-7BF@E94%8#FЌцшыђєѕїљїѕєѓјѕєїѕєєѕјѕѕ§їјћћћљњ§љїїсјњЕY^L@0+2,.4?B2<;2$!9B‚змыёэђєєўѕєєюѕјїјњњјјїїјњњјјћћјјћ§№M8>+42,5>9<:BE>93052,(EL—МУСьэѓїѓѓђѓњђёђѓѓєєўѕїїљЭїљјњјљљћљљћ§§PG579:23WДЧИгтьђєєѕѕєѕјѓђђєєќѓєѕїїњјбњљїљїљјњњјјљљј2"38?;,3FNE>5483??<–пгжёѓєєјѕѕєїѕѕєёѓєѕѓјјњјћјњјњїњњЦјњјјћњћ,>94-( $A>++2+B3G|йыёљєѕѕїѕєѕїєїєѓѓђєѓђїњћћњјњњїїњњњјњњјљћћујї!##+*(,%!3!4LQ8:VАхдешёѓѓєєъѓєёђёѓђѓђѕљјјљїјњїїѕїњњјоњјћћљљјј*%$!.J87;+))8+AEBюэЧзчђюєєѓєѓєяїєєїјјњїїљјј§њљ§§йљјљњ G45(5389B4WЮ§§јёєјђїїјѕѓђђяёєєўѕїїњіїљњјњњћ§ћјјћјд(*%.+>G@LSTЎћћєѓяђѓѕєѕѕјєђяђѓєєѕјѕјїїєѕѕїњјњћљћљљјјўљћћы!#++,+?@8ZZ{лћјѓєєўїєє§ђѓђђѓєєѕїїљјјљљњљјјзљњјњћћљћћљћљ§%(*+%%*)BBE;CВћ§љѕєёѕјєѓђєєўѓђђѓѓєїњњјјљљњњћћљљпјњњјјљ§љ§љљћ3-($13FJxэљїђѓєєјѓђѓёёђѓђђѓєєјїјњљјњљћћљљћљљћ§§њ§ћћэ%(78--(#1-09Pažћѕюђђєэѓђёёђѓѓђѓєєѕїїњћљљћћіјњјњјјћ§§њњћљћб*)" .++0&Iwсћћѓѓєѕјєєѓѓђѓђяѓєѕѕїїјјњњљјјњјљћћљјћљљћјјљ§§ьљњ *84 2*B545-bр§јђђѓћђєїєѓѓўїѕѕїьјњљїѕѕњјњјјћћљјњњљћјјњу04&%""%*,AG8CЌљ§ёёѓѓђёѓєѕѓђѓѓєћїјјћњњїѕљњїѕїїљїїљїїљњїјњћљ§§ъ,)#%$-#4HA1@Ж§ћѓєєѓѓхђѓѓёѓєїѕїїјћ§ћјћћљјљїјјћљљћћљућјїњћњјїј()"&#+12?<;+8MNћ§њєєњѓєєѕѕєє§їњљљєїјјњјѕєѕїњћ§§нћјљћљћїїѕјјљѕїљ &-,453M:Vю§јѓѓўєѕѕўљјјїКљїїјњјјљћјњћљљњјњњјјїјјїјњјј#22%%(#;4(§§ѕѓёѓєѓѓєєјљјјїљјњљћћјјћћѕњјїјњљћћњјњњојћ:%"(#224.1,8N;1{ї§ћєѓђѓђєјљїїњјјјњљћћњњјљљћФїјњїљјњњљћљћ%+#+#+:+."-*LQV;3!4QЩћїяёђѓёѕѕїїѕєјїїўњїїљѕєїїјјїїјїўњљљ§ћљјШсбЦЩыѕјщшшєўўщ’N-#-.@4#% 1(.%mлћјѓѓѕјљњћљћњњТћњљјјљЭЯаФгчэцуыюјўўРS370!$""$ )%3JB8oйњяђєѕїјњћњјљљОњљљјјљЭагдЮпшхыэяяљўѓƒ?:(! "$(*1?3%7—ымйёѕјјљљњљјјљњћћЪ§ћМЫзЭКШуђюэююёўћV>)%!987@B2!  ,8<90+3.YкўњїјљљјњљљЦјљљњњљјљј”—ИгунзйжжкрѓцЗ}<28HBB8,*-<* &?CCG>BPk59B9+4287,5;G@+9БўўїєєѕѕњєѕјјљњњљњЩДКСТЮгртпдТгѓт‚;87>9+;ЃЫщјћњјєђёээёєѕѕєє§ѕїјјањћћњћјИИОРРСОЪЫЮЩЧЂJ9IJ@?>CLNGEA>ACI<3—ў§љњњїїѕѓѓєїіѕїєѕјјљљјљљбКМККМФЩЭемлО„[CCE:9?FPQJIFACH:,HЕяФЭэѓєѓѕѕїєєїјјјљњњљјљѕїїјзЗКИНРЧЧЭбэтNNJLE:5;FJOEGBA;<9BWЇбБЪў§їїјјїѕјљјјљјјїїѕїїСјљљИИЛЛКЛУЦкщЛgE;8@CF?AEBCEJC:!)5‘ёђйЯчѕёђєѕєѕѕїўјїїјѕєєѕїїљњњљкСКРТЩЭпыаq@F212@C<8@@7<:84!04FТўњьёѓѓђђЙёђєѕїїјљјјїѕѓђѓєїјјљјјљбЧМТШбдЩ–L#238:5,2>FFA93.2$,>’ѕўјєїїјїѕєяюёђєѕїѕѕєњѓђєѕјїїоснудШдк‹C?;<8?F;.(.5AA8148>IiнўўјїїљјјїїѕєѓєѕѕњѓѕѓѓѕїїљњочтынЭгЫxE8F5>C?3)%%>GE937PH–јцѓєјјљљњњјјїѕѕѕєѕѕїљњћњ§ћ§§мћрхўўыЪ„W;551<90((4:GG>$*`‘жсёњѕјљљ§јїјјїјљќјїјљљбћљјјњњемэшУp87;M7558142,3*4H@;,#rзЯЛрљѕїјјїїѕїјјљјќљњјљљкјћњћњчыўўшNCJGC:;;40*((5:>?>$&-гбгљўјјљњ§јљњњњјѕїїјљљ§ћњћћ§ыћяћўў—I>BIE@:1+0#)-955ь-89pбѕчѕўїїјљїјљљјљјјњљјљћјњљњљљрјЮхўМZ8059A>A?91)**8:91-?TЅщјјєїїјћїјјљњњљњ§љњљљњнљОыяŠNU>80%)10.1:9;[глёјѕїїјїјјѕѕїїјўњљљњљљњњћ§§ћћлњхЯ|P@NCBCIA:;<:5.1,;A%Fпэјљїјјїїљјѕѕњїјјљљјјљњјљјљјљљмњћ§ћћњьС\OZWJCB>5;;>:82.7EUPoРЮшњїјљљўјѕѕїўљјјїјњљћњњљњњаљњљЫP>P\%98:C:?@;>??7*4-NАщяђћїјљјљјїјїјїѕјїїјїјјўљњњћќ§ћћљљєњљЭ^hWM;;<<;;ъ34.491(:E„жйшјєѕїјљјљїїђјїљњњљњњљљњљљњњў§њњѓ§ћ§ћV?M@<:?BAAэC;5+173#;>PŸЫЮгѕєјѕѕєѕѓўѕїїўјљљјљњћтњ§ћZJ@CE@>:>AA@50100F\Щлачёѓїїјљїјїѕѓєїїќјїјљљњјјљјљјњљњњћнњ>,ABF@88@FF;1.1-:9CЁєыщњњїљїјјљљњјјїќѕїјњњќљњћњњ§љћљљ§њљњњл§њ8B?<92A84--49:Lцѕљўїјљљјљјљјѕїѕѕ§ђѕљљўћњњљіњљњљњљњњћњњц7834335)&(21NJ:?\Рњьуёѓѕїїыјїєєѕѕїѕїјјњњјљњњљљјљљњољњћњћћњњ>*1,+?8:70#(-8M:GUUЌўўїѕїїјїѕєѓєѕїїјїјїљљјљјњљњћњћћњњчћњћњ%(&5;F2VZwнўњѕїїўѕїїѕєѕЩїјљћћњњјјљћ§§њњћљњљњњћћњћњћћ342("!$@C<)->EQC3+3$%??527@5zчў§єїјћњўћћ§§ћЧ§ћћљ§ЁЉЅ˜БЭйбдешњўўЭe>AC*)4+*.#".20.,28@IZUL|сўїђјїњњћћ§њ§њњ‰ћњћљћДЊЎДЎТЮблтщёћўј—SE,,+12-(2*5*-B>E:dчўћњљ§њњўћњњљ§њ§ћ§ћњњеbqАЭМЖВДМРЭчмЋ|LBBW]VEBHMEE.FHQM3EКўўњјјљїљїљїљјљњћћўћњњ§њћ‹Œ˜˜ЋЛЭйЯК—Лщм‰OMGVZ^b^\WQOHGBFGPnЁсруўўљѓєєѕїљјњљћјћњ§љћњћњўњ§œ–—ЋОРЖеУ—ЉЎОŽPLaINPOU`[UMQPLPMTPSQUWVWYMPG7GpxЪ§шЯдєјѕјјћљћљћјћљљВћљћљћњ§ћ§ћ§ћћ‘•ЈЄЂЋЦЃiAQqiOaHOFVTSQSYQH.7HЂњљсеђљїѕјїљїљљњјњљњјњїљѕљјћњћћўћў——м™ЈЮбКp?T;<8NGLHPPSEC?N2G?PбўўєєїїјѕѕьїѕљїњјћњћљњїїѕїјњљћњњЯћЇ”žЗЛЖ•P%:?BGFGGFSNF<>7O18Q§ўћјјћљњљљєѕєѕјљјљљјіѕјїљјљјњјњњƒЩббДЃВКGCCACOMJAE?LJGCGFINYtшўўљњљљњ§њћјљѕњјљїљѕњїњїњјњљњћ§§ћћўзгзРЊЗРwM;LB#MJOE><1JQPHCBaVЄўьјјћњћљћњњћўњљјљїљїљѕљїњњўћ§§ў§§мўЕмўњЯЗ„\J@B?MI?<>AF]AE@?9JCJB;EMSC80{хбОш§їћљћјњјњљћљћљњњ§њњљћљњњ§њњљњћ§ћ§жмўўуSL]WHHG@F8@;GBAGIF87<‹тен§ўљћњњњ§ћўњћњњЦћњћљњјћљ§њћ§§ћ§ћў§ўпѕўўЁSIOTOLFA;.@4>AABF7@Lƒнљщљўњјљљњљ§њњњћљњћћњњќћљћњњШ§њўћћњ§ћћЋдљОc>2GTTNSF?)4>F?H@@1J\Џьўћјјњјњљћљћљљњўћўљ§њњ§ћњћћоњўћћ˜кщ—WbSVLMLOUF@C:NCGCLB`Ёр§ўљњњэ§њћљћљњљћјњјћњ§њ§њћћљ§ўћўћўћћЩ§ЛйВjUdYSMSONC@5:93JG2Nщђј§јћљћљ§љљїљјћљ§љћљљњвћњ§њ§њ§њ§њ§§ўћ§гИ\TiiYOONMJGHG@?::Yh\vУаяћњљ§њњчљњјљњњљћљљјћљћљњћ§§ћћўћўћћпўћўИS@SiAEF9+G{Шсчєѕњїњјњјњјћјћљћњ§љћљћњћћ§ћ§ћўњ§њ§ћўћћжY<`]T\W[YWEJNFEOI>2BkУтюњјјљјњїљѕљјњјњїњјљљњјћњўњћћ§ўўћћС§ћ§E+7OO\YJPTJGCAFGHEN`ЇЧШЪєїјњїљїјјљїњїњїњјњјњљ§њ§њ§њ§љћњћ§§ћ§§аўgaTJUWMJHOOGCC??0:MkНеЪхёѕїњјћљњљљїњѕњјњјњљ§њњћћЯњ§љ§њњћћњћћ§§ўJBJ[VOEILMMG>AABILHЄђщлћњњљћљћљ§њћљљїњјњїњљ§њћћўњћћўњ§§вGQHMHJ$.O?A:CAGF[ьїўўњљ§њћљћњћјњїљљњїћњћћ§њћћњњ§њћњћћќњћћ§§сћў1:<<;H^jЋўћјјљљњјњјљјїїјїљљјјњљњњўћ§§§ћўћћѓўћўћў§ў§ўћўћ§§ы,;;-($,MFB>+Jюўўљјћљљњљѕјљїњљћњ§ћўћћїўћ§ћ§ћўћ§§ћ§уў§§ћў!27@-(+9IP@TЉўў§њјњјњјљљђјњїљјњјњљњћ§ћ§§їћ§њћћў§ўћћўўћћаўћћњ§њў:>>@%.2@LG87;nьўўњѕјѕљїљїњјњїљїљљњљћљ§њўњњ§ћњћћ§ћ§ћўњћћф*8+).2?CAMYJ\Кўўљјљїјјљјћјљљћїњј§ћћўўњњў§њњќ§њ§њњйћњўћ§§ў§ў8005.>;EAFC[NAJЩўўїњјљїљїљїњїњњўћ§§№ћ§ћ§ћ§њћћ§ћ§ћ§ћ§§зњўћ§њўњў.4*29@A?BFHILdbЁўўћњјњјњјћљњјћњћњњћЊњўњћљ§њ§§ў§§њ§ћ§ћўњ§ћћњ§њ§#("#3297>*ANP`Lpўўћљїљїјљћјљљћњўћћњ§њ§њўњўћ§ћўћ§ћ§њћћўћўњћњћћх)-%%3>8F147@9OE;ўў§їјїњљљјјњќћњњћћў§ћћњ§ћ§ћ§ћћўўћћљ§ћћњћњћћ§юA1&-.E:>EF?OOmO<ˆўўјјљѕљїњјњњћћњћћ§ћћб§ћ§ћ§ћ§ћўћ§њўћћ§§ћ§343,0,.,9-HWSUT1Vеўўљљїјљњљћћ§њ§ћћњ§ўњћћі§ћў§ў§ў§§ћћ§ћф.,:>>9&2VcoiPVN@^Оўўљљїљјњљњњќ§њ§њњљ§њћћўћ§§ћћ§ћ§њћћшQ+9CMOFZn’un`^H19‚ўўћљјљљњћјњ§ћ§њћћ§§ћї§ћћљћњћњ§§ўа§OGAQNHN4IHbguYL5Gjпўўљјјї§љњњ§њћљ§њ§њ§њњљ§њћњ§ћћќ§њ§ћћќ§њў§§ў'џўw(џў€*џўw+џў€+џўˆ*џў€)џўˆ'џўˆ'џ&џўˆ%џўˆ$џўˆ$џ$џ#џўˆ"џўˆ"џўw#џ#џ#џ"џўˆ!џў€џўˆџўˆџўˆ џ"џ"џ"џўˆ!џўˆ"џў€#џ%џўˆ$џ&џўˆ%џўˆ&џ(џ(џ(џ(џўˆ'џўˆ)џўˆ*џ,џўˆ+џ-џўˆ,џўˆ-џ/џўˆ.џ0 џўˆ/ џўw/џў€.џ/џўw-џ.џўw,џ-џ-џ-џўˆ,џ.џ.ј§љћјјќњљћљљѓјњћљјљћћјљ§љјјєљћћљњћћљћљјљљћ§ўљ§ћњїјњїїѕјњњїљћјљљєјјїњјћјѕљїљњњјљћљњњћ§ўўњњ§§љћљљўћњњјтћјњљћљњјњїјїїѕјїћ§њ§§њћїљћћјїјјпњїјєћ§њљњјїїјњѕїјњљћћљћћљљјјћћ§њ§§ќћјњјјђњћћњњ§ћћљљћ§њћћьјћљјїјњјњј§ўћљљјјљњ§§чћљјљћјћјїњљљ§ћ§ћњњјїјїјїјјэћјњњћ§њћљј§њћљњћћњљљњќєњјњњћѓљњћћ§ћћњњјјњћћёјњњјјњјљњњїњјљћћќљћћїїљњїљљїљјјћљћћљћћшњјњјњїљїїјћљљњјјњњјјљћљ§§їјћћљљћ§§єњћћјњјљљјјћљљњўјїї§њјњњћљш§њ§ѕїїљљћћљљћћњјњњјњњјљћћљў§ћћћјњљјћћљћљљ§њ§їїјјѕњјљљњјїњјњїїіљїїњјћ§§љ§§ўњ§§њћљљјњћћёјѕљњћљљћћљћћ§ћљљњћљћћјљљћўјћћѓљћћљћљ§§ћћјћњњљўњљљјўљћћ§ќћљјћћљїћљћћјјїѕїїэњїїљњњћјћћјћљћјћћјїїњљѕѓјњјјыћјјћљјјњљћљњњїњїњњїїјјїњљїљїјјїјјљћўљћћўњјјћќљњјћћёљ§њњ§њљјљѓїїјњљљћўјћћїљљїїјјњјјњљїїљњћћ№§њўњ§§њљїїјћћ§§љљѓћљљћљљћјћљјјћћщ§ћћљјјњјћћљњљњљљћњљїјѕїїњѕїїјњћћј§њћћјњјћћњјўљћћљљћћљћљ§§ўхњїїјљћћњљїїјљљћћљјћћ§њ§љћћњњєљћљћ§њ§љљјљ§§яљћњћћљ§§ћљћћљљћјћћ§§ћљљїћ§љћћ§љљјј§њљћћўљћћљєћљјћћљљј§§ў§§ћќљњјћћ§љћљљќћљћјјѓњјњїљѕїљљњјѕїїјћњј§њ§љћјјљљћѓјћљћћ§§њћњ§њ§§љћњѕєєѕћћ§љјїїјїјћћљћ§њћћјљћїјјїјљљћєљњћњљћћёєјљ§§љјћљ§њ§ўўњ§љљ§њ§§љћљѕћљћљњїњјљїљљєїјјћ§ћњњ§њћљљћјљ§ыњћћљљњћћљљ§ћћ§§ћћљјљћћђ§љћјїљњћљњњјјљљќћљљћћыјњ§њћљљњ§љўћ§њ§њ§љњњ§§ћмјѕѓѕїїћ§ћћ§ћљњјћњ§§љљњћўњ§њњ§§јћ§њ§ўўѓњ§љјћњјњљїљјњњцћљћљ§њћњїїњјљљњўў§њћћљњ§§ўў§дћљ§њ§њњљћњљ§§ћљјїѓљїѕїјњњћљћљїјњљљћљљњњў§њњћћ§љћ§§ўоѕїїјјљћњњјћљњїљјњјљљћјћ§§њ§ўњњљ§њ§§њ§јўњћћћљјњћљљќјћћ§§ћј§њћњњљљћћјќљњњўўњ§ћћљћњњ§ћ§јћ§§ћ§ћќ§њњљљёћљњћћ§ўћћў§§ћљћћўјћћ§єћљљћћљјљћљћ§§іљћћљљћћљљћћњуљћћјїћћљњјљћљјњљ§њ§њњ§љљћљћњ§§жћљ§ўў§њћјїїјѕїњјњњћљїћњјћњ§§њљћћ§њњ§њ§§њ§њњћ§ћљћ§§ћњљћ§њјљљѓ§њ§§љ§њ§§љћјћћјљўјћћяј§њ§§њњ§§њњ§ћћ§њћћњљјћ§§ћћ§ќћјћљљћ§§ћљљћјњўћ§§ўњћћюљћљћљљћљљ§ћљћљћљјћћёљћћљћј§§њ§§љњњ§§ћћјћћ§§јўћўўњ§§љљћўјњњијљћњ§ћљћћјљњћћљњњ§њ§љљћћ§§њ§§ў§њ§ћћ§љ§њ§§ћљю§њ§§ћїјћ§љћћљњ§њњ§§ћњ§ўњ§§юљћїјћћљћћњњљљћћљљћћћљћ§љ§§јњљ§§њ§§ўўўћўўљћјљјћјњњюјњћјњјјњњћњњћ§§њљњњ§іњљљћљ§ћћ§ўўљїјљљјњјјћњјїїјјўњћћљ§ћњїјћљћ§§њћљљ§їњјјћљјїњљљј§§єћљњњјјљљ§ћњјјњћљћјљ§§ўњћћњљјњљћ§§љ§ў§№љњњћјњњљљћ§§њ§§њњўўћ§§љўћњў§§јјѓњћјћћљњјїїѕјњњљњѕљ§њћ§§њњ§ћўўќћўў§§љњ§ћјћћљљљћљћћљћјјјњјјљћљљћћљ§њ§§љј§§їњљ§ў§§љњ§§ўјћћ§цљњљљћћљљњњ§§љјљћћљћћљћ§ћћўў§ўц§ћјњїїњјјћљ§§ћћ§§њћћ§љћўў§§іњ§§њ§§ћўўћћўј§њћјјћљћћяљћљћљћћїњњћљ§љљјћћђњ§љњћњ§љљћћљљћћјцћјњћћњњљ§ћљљћ§њљћњјљћњљћћјјњјчїћћљјљљћљјћћ§§њјљљћљ§ѕљїјјћь§ћћ§њ§ћњњ§љїљћљљњљњ§§ўњ§§њњ§њ§§ћћљћњљјћ§§ѓћљћљћћљљњїјјњњўћ§§ўњњћћ§љјјњїщѕїѕѕїњјјћїњјњјћњћ§љјјћљљ§њјњњћјњћљ§§њњ§њ§§јћћіљћјїїњћљљћћ§јњћћъљћљћњћћљјћјјљјњњѓєѕјљћћљщјљїїјљљњњјјћћјїљјћљљћљ§§ћћљњ§ћ§§јћќ§љљћћјјїљјїљј§§љљјїїњјїїћјїљјїїјієїїљљњњљљћћыјїљїњїїјјїљћљњїљїјњјњњђћјјљїјјљћћјјїјјњћ§§њ§љљћљяњћјїїјњњјјњћљљћ§ћћ§§њ§§њ§§љ§§ўљћћ№љјћћљћ§њњљјїјљљњњяљ§§ћљћћљљњ§ћњјљћјјўљ§§§њ§ћћђњ§ў§њњ§јјљћћїћћјћњїљљњњјћњљљ§ћћјљјњјїљљ§§ёњћљњ§њїјїїј§§ћњњњјћћљћ§§оћљћ§§ћљјїњњїњћљћљњњјїњјњљњ§ћљћћњљћћјњ§њњ§§љћћ§яћљћћљћљљњњ§§љњљїјјћёјїїјїїјјћјјїїјљљњјњјљїљљќјћљћћњѓћљњљљјїјјњћњ§њћў§њњћѓњљћћњћћњ§ћ§ћњњћјњћ§њњћњћћєњ§ћ§ўўћћљћњљљјњљљћћњњћћњцљ§њњљјљјљњљћњћљљњ§ў§ў§§ћ§ћћўњљљњэ§њњљћњћљњљћњљљњњћњ§§ќћ§њћћ§њћњњќљњњћћё§ћљњљљњљњљњљћњћћќњћћњњ§ќћ§ћњњљћ§§ћћњћћќ§њћњњњћњћњљњњ§ўђћњ§ў§ћ§ћ§њћ§ћњњёћљћћ§ў§њњљњљњћњњљёњ§§ћћ§ћ§њћљћњ§ћћсњљњћљњљљњљњњћљњњ§њћљљњњљћњћњљљњњћљљњњљњћњњѓћњћљљћљљјјљјњњчћњњћћњћљњљњљћјљљњњћћљњњљњњћќ§ћ§љљњћѓњ§ћ§§ћњњљњћћњњћљљњљљћљњљљњћ§§јљћћўњћћњњћљњљњњіљњћћњћњћњћћљњћњњљћњњћњўћ§§љњњљњћћљњњљўјљљњќ§ћўћћ§§ћ§ћћы§љњћњћњњћљњћћњћћњњ§њћћњњћњћњћћўњћћўњћћѕњћњћћ§њћ§њ§§ћўљћћњћщњћњ§ћ§њћ§ћњњћћњћњћњњљњљљюњљјњљћ§ћњ§њћћњћњњљљњјљњњљњњўћњњѕћњњљћњћљљћњњљњќ§њњљљњјљњњљњњћјњћњћњћљњњћѕљњћњћњћњћћ§§ѕћ§ћ§јњљљњљћћњѕћњћљјљћњњљњњщјљљјљњћњ§§ў§§ћ§јљљњћњ§ћћўњћћњўћњњћћњћњћћьњћњњљњњћћљћ§ћћњ§јљњљљіњљћњћћ§њћ§§њяћњњљњњћњћњћћњњћњћћўљёњћњћљјљљњћћњњћњњ§ћўњљљћћњћњ§§ћъњћћ§ћћњљћњћћ§њћњњћћњ§њњћћњ§њћћїњ§ћћњ§ћћњњњљћњћњћћќњћњћћњћ§ёћўћ§ћ§њћћњњћњњћћ§њћњњєљњљљјњљјјњњљљљћњ§њћњ§§ћњћ§њћњњјћњњћ§§ћ§§ђћ§њљјїїјћњћћњљљњўћњњћќ§њћњњћњ§ћњћћњъћ§ћљћњћјјњћ§ћ§ћ§ћћњњћ§§ўў§ћћ№§ћ§ћ§ћћњњћћњћњћљљќњјљјјєљњ§ћћўў§ћ§њћћ§њћњњћћ§ћ§њћћр§њњћћ§њћћ§њњћњћћњћ§ћћњљјљњћљљњњћћўњћћњ§цћ§њћћ§ћў§ўћ§ћ§ћў§§ћ§ћ§ћњњјј§љњћћюњ§њћљњњ§ћ§ћћ§ў§§ћ§§ќћ§њ§§ќў§§ћћјљњљјљјњљљћ§ўћљљяњ§ћћ§ўўћ§њћћ§ћ§§ўўћкњўћ§ћ§§ћћљћћ§њћњљњјљњљњљњњћњћњњљћћњћћ§§њоћњ§ћ§§ў§ўјљљњњћћљњњћћљљјњљњћћњњћћ§§љўћ§ћ§ћ§§яћ§ћ§ћ§њњљњћњћћњљћћњы§ћ§њћћ§њ§§ћћњњћћ§ћ§§ўў§§ўћћ§№ћ§њћњ§њ§ћ§ћ§ћњњ§§јћ§њњћ§§ћћјњћљњњ§§ўў§ћ§ћћрњћњњћћњћњњћ§ћ§њћћњњћћўњћњ§ћ§ћћњћћњћщњћњћљњћњћњћњћћљњћњћћљћ§§ћ§§ћ§ћћр§ўўћ§њњљљїјљљњљњњћњњљњњ§ћћ§ћњњћ§§ќћ§ћ§§їњћњ§ћ§ћ§ћћљњћњ§љњћћ§ѓћўћ§ћ§ћњњћњћњњћї§њћњ§ћ§ћ§§ћ§ћщњ§§ћњњћћ§њ§ћћњћћ§ћ§њ§њћћќњ§њћћ§иўћ§ћ§ћ§ћ§њћњћњћњћћњћћ§њћњћњћњћњњћћњћњ§ћ§§љћў§§ћ§ћћїњ§ћ§§ў§ў§§ћњљъњљњћћ§§њћњћ§ћ§њњћ§§ћ§ћћњњћћ§ћ§§њ§§ћ§§њћ§ћњњћћ§ћњњ§ћњњћ§§ќћ§ћ§§іћ§ћ§ћ§ћћљњњїћњћљњћћњћћњћўўћћѓ§ћ§ћ§ћ§ћ§§ў§ўўѕ§ў§ўћњћ§њњљљњњљњњљњњіљњ§§њ§ћ§ћ§§ќћ§§ћћћ§њћћўўѕ§ў§ўљњћћњљњњћљњњћњњњљњћњњћћ§њљњћњњ§ћ§§ћћќјљљњњўћњњћ§§ћ§ћћљњћќ§њљњњыћњ§ћ§ћ§ћ§њћњћњљћњ§ћ§ћћё§ћ§ўўћ§ћ§§ћњљљћћ§ўћ§§ўі§ћ§ўў§ўћ§њњїљњ§њњћљњљљўњљљћїњљћћ§њ§ћ§§ўў§ўў§њћ§ћ§ћ§§њ§ћњћћќњћњћћњњљњњћњћћењћћ§ћ§ћ§ћ§ћ§ћ§ћ§§ўћўћ§ў§§ћ§ћћњћћ§ћћљћћњњћћ§§ћлњћњњћћњћњ§ўў§ў§§ћ§ћў§§ћњљњћљњњћћ§ћњњ§§ќњћћўў§њћ§ћ§ћ§§ћћ§ћ§ўўћ§ўћ§њњжћњћњћњћњћњњћњљћћ§ћћ§ћњћњ§ћћљћ§§ћћњњћћњћњ§њњ§јњћљњћ§њћћє§ћћљњћњљћњћњњљњ§ћњћћњћќ§љњћћњјэєјљњњћўњ§§ўњ§§ћкњћћ§ћ§§ћ§ћ§ћ§ћ§ћ§ћ§ћњћњћћњјњњ§ћ§њћњћњћћћљћњњљљћ№§ћ§ћ§§ў§ћњ§ћ§њњљљяњљјјљљњњћњљњљњћљћћњћ§љњљљљњљћћ§ћ§§єћ§ћ§§њћњћњњљљћрњћњ§љћњћћњћћ§њњћњћњњћњљњњјљњћћњћћљњњћћљљњњљћњћјњњћћй§ћ§ћћњћћ§ћўћ§ћ§ћ§§ћњ§ћћњћњњљјњљјњ§ћ§ћњљљўњљљњ§ћњљљњћёњћћ§§ћћњњћњњљјљљњўљћћьњљјљњљњљњљћњњјљњњћћњњўћњњћ§ћёњћћ§ћњљљњљљњњљћћ§њ§њњљћ§§ћ§ћ§§ѕў§ћ§ћћњћњћњњ§ћњ§§чћњћњћћњљљћ§ћњћћњћћ§ћњљ§ћњњћј§ћ§ћ§ћћњњћ§ћўћ§§њћћњћћњњћљћјјљљњўљћћыњћњћћњљњњћћ§ћ§ћ§њў§§њњљћћ§ћћљљњћў§ћћм§њћњљљњћљњћњћљњњћљњљћ§§ћћњњљћњњћњ§ћ§§ћчњћњћњћћ§њћњћћњћћ§§ћ§ћљјљњњћљћњћњњћћ§њћ§ћћњњљњћњћћќ§њћњњ§ўі§ћћњљњњљћ§§яћўћўћ§ћ§ћўњ§ћ§ћўћћћўћ§ћ§§ѕћўћўћ§ћ§ћў§§іў§ўћћ§§ў§ўўћњ§њ§ћўћћњ§ћ§ћўћћ§ѕћ§њ§њћњћ§§ћћ§ўі§ў§§ћ§ћ§§ћћѕњћњћ§§њћћ§ћћйўњ§њћћ§§ў§ўў§ћ§ћћўњћћўћўћўћў§§ћўњ§ћћњ§ћћћ§ћ§ћ§§ћ§їў§ў§ў§ўњћћэњ§ћў§ўћ§ћ§ћў§§ћ§ћ§ћћќњў§ўўќћў§ўў§§ў§§њћ§ћ§ўћћ§јў§§њћћ§ћћўўћћђ§ћўћ§§ўћўћў§§ћћ§§ў§§јћ§§њћњўћћјўњћ§§ћћ§§ћљњћћ§ћўћћїњў§ћњўћў§§јћ§ћњ§ћћњњњћњўћћ§§ћћ§ћўћћћ§њњћ§§ђћўћћњћћ§ћ§§ў§њњќўћћ§§њў§ўћ§ћћ§єўћ§§ўћўћўњ§ћћ§нў§љ§ћў§§ћ§ћ§ћўћћњћњћћ§ћ§ћ§ћў§§ў§ћ§ћћ§§ћў§§тў§њ§ћћњћћ§§ћћўњћћ§њ§њ§њћњ§§ў§ўўь§ў§ў§ўћ§ћ§ћ§ћ§ћўњћћ§§ўћ§§ћћ§ћћ§§јћўћ§ћ§ћ§§сћў§§ћ§§ў§ў§§ћћ§ћўћ§ћ§ћ§§ў§§ћ§ћ§§ћћ§ћ§ћћњр§ћўњ§њћћ§ћ§ћ§§ћўћ§ћ§њ§њ§њ§њћћўњћћ§ўўћћў§ћћљњўњћњ§ћћїў§ўћњ§ћћњњћћњћўћ§§ўћ§§§ћ§ћћћњ§ћ§ћћї§ћ§ћ§ћ§§ўў§чњ§њ§ћўћ§ћ§ћ§ћ§§ћ§§ћ§ћ§њњћћўўћћіњ§њњћ§ћ§§ўўУ§ў§њ§њўћ§§ў§ў§ўћ§ћ§ћ§ћ§§ћћ§ћ§ћ§ћўћ§ћўћћњ§ћ§ћў§ў§§ўњњћ§њ§њ§љ§ћћљ§ћўў§ћ§§єћ§њћњћ§§ћ§ћ§§ўћўўѓћњњћ§§ћћњ§њћ§§ўћ§§№ў§§ћўћўћўћ§ћ§§ў§§ћѕў§ў§§ћћўћў§§§ўћ§§ўћ§§ўћ§§ўћ§§фўћўћў§§ћ§ћ§ћўћ§ћћ§ћ§ћ§ћ§ћ§§ўўі§ў§§ћ§њўћ§§ўћ§§ўћ§§ѕћўћўћћњ§њ§њњќ§њ§ћћЫ§ћ§§ў§ў§§ћўћ§ћ§ћ§ћўњ§ћ§§ў§ўћў§ў§ў§§ћћјњљћ§ћ§ћ§њ§ћўћўћћ§ёћў§§ћў§§ћў§ўћўћћ§§ћўћћѓ§ћјћћ§§ў§ў§ўћћ§§ў§ўў§њў§ў§ў§§їћ§§ћњћћ§њњћ§њ§ћўўї§ў§§ћ§ћ§ћћ§јў§§ћ§§ў§§§ћў§§№ћ§ћ§ћ§§ћћњ§ћ§ћўћћћ§ћ§ћ§§ўћ§§ўў§§§ў§ўўќ§ў§ўўя§ў§ў§ћ§њћјћњўћўћ§§ћ§ћў§§ћўўљ§ў§ў§ў§§§ў§ўў§§ўћћњ§њ§ћўћћѕ§ћ§§ўћћњ§њ§§ў§њћ§§ў§ўўј§ўў§ў§ўћћјў§§ћћњ§њњћ§ћћњ§§ёўћў§ў§ў§ў§ў§ўў§§§ў§ўўэљ§њћћ§ћћњћћ§ћњњўћў§§ћњў§ў§ў§§ўў§ўўы§ў§ў§ў§ў§њћћ§ћ§ћ§њўћ§§ўћ§§њў§§ћў§§јўћў§§ћў§§ўћѕўћў§ў§ў§§ћ§§њў§ў§ў§§ўў§§ќў§ў§§§ћў§§ўъ§ћ§ћ§ћ§§ўћ§ћ§§ў§ў§§ћў§§ўў§§їў§ўћ§ћ§ћ§§іћ§ћ§ћћњ§§ћћс§ћ§ћўћ§ћўћ§§ў§ў§ўћ§ћ§ћў§ў§ўћў§ўўь§ћњњћљ§ћћўњ§§ў§ўћ§§ўў§ўѕ§ў§ў§ў§ў§ў§§ћў§ў§ўўњћ§ћў§ћћ§љў§ў§ў§ўў§ыўћ§ћўћў§§ћ§ћ§§ў§ў§ў§ўўє§ўћ§§ўћ§§ћў§§јўћўћў§ў§§њћ§ћ§ћ§§ўћ§§ўі§ў§ў§ў§§ћ§§ћўћ§ћ§§јћ§ћ§§ћћ§§шћ§ћ§§ў§ў§ў§ў§ў§ўћўћ§§ў§ўў§ќћ§§ћћљњћњ§ћў§§ћћ§ћў§§юў§ў§ў§§ћ§ўў§ў§ў§ў§§эў§ў§ў§§ћ§ћ§§ў§ўћўћ§§ќћў§ўўс§ў§ў§ў§ў§ў§ў§ўћњў§ўћ§ћћњ§ћ§ћ§ћ§§ўћўўі§ўў§§ў§ў§ў ўњћўћ§§ћћў§ћћїњў§ўў§§ў§§їў§ў§ўћ§ћ§§ўћўўјњўћ§њўњћћќўћўћћ§§ћ§§ўў§§ъћўњ§ћў§ў§§ћ§§ў§ўћ§§њ§ћћћ§ћўњ§§ѕў§ўћ§ћћњћћ§§ћ§§ћ§§јў§ў§§ћ§ћћ§ўў§§§ў§ўў§ўўћћѕ§ћў§ў§ў§ў§ўўќ§ў§ўўњ§ћўћћ§§їћўћ§њ§ћўћћњ§њћћў§§ћў§ў§ўўѓ§ў§ў§ў§ў§§ћћ§§ћћ§ћ§ћћцњћћў§§ћ§ћ§ћў§ў§§ћў§ў§ў§ў§ўў§ђў§ў§ўћ§ћў§ўћћ§§њў§ўћћ§§ўћ§§ўќ§ў§ўўњ§ћўћўћћњўћ§§ў§§њў§ћў§ўўђ§ў§ў§ў§ў§ў§ў§ўў§§ўњ§§ўћ§§јћ§§ћњћћ§§љћ§ћ§§ўћћўў§§ўў§§њћ§§ћћ§§ћўњ§§љћ§ћў§§ћћ§ќў§§ћћўўћћќў§§ћћэ§ћ§ћўћў§ћў§§ћњєљњ§ћћј§ћўћ§§ў§§ћў§§ћ§§зўћў§ў§ў§ў§ў§ў§ў§ћ§ћ§ћ§њњћ§§ў§§ћ§ћ§ћ§§ћћўћћїўћў§ў§ў§ўўўћ§§ўўћћѓњ§њ§љћњўњћћўћћєўћўћ§ћ§§ћћўћћ§јў§ў§ў§ў§§ўћ§§њћњњўћ§§§ћ§ћћ§§ћ§§ћћў§ўћћшўћ§ћћњ§ћ§ћ§ћ§ћ§§ў§њ§њ§§ћћў§ћћяњћ§ћ§ћ§§ў§ўћ§ћ§§ўўј§ў§ў§§ћ§§цћ§њњ§ћњњћ§ў§§ћ§њћћ§њ§ћў§ўњњј§њћћўћў§§ўў§§ьћ§ћ§њ§ћњ§њћњ§ћ§њ§њ§ћћўњћћј§њўћ§ћ§ћћјўћўћў§ў§§ѕћ§ћ§§ћћњ§њћћ§ўы§ў§ў§ў§ў§ў§ў§ў§§ћ§§ћ§§юў§§ўћў§§њўћ§§ў§§ћ§§эў§ћћ§§ўћўћў§ў§ў§ўћ§§ўі§ў§ћўћ§ћћ§§ўўћћ§§њћћўўћћђў§ўћ§ћ§ћ§ћўћў§§яў§ў§§ўў§њўћ§њў§ўћћ§ўћ§§їћў§ўћўћў§§ѓўњћњћћ§ћ§§ћњћћњўћў§ћ§§цћў§§ћ§§ў§ў§ў§§ћ§ћ§ћў§§ћ§ћ§§иў§ў§§ћ§њўћўћў§ћ§ћўћўћўћў§ўћ§§ў§ўћћ§ў§§ћ§§ў§јўњўћўћў§ Р€j§љјŠuiF7ABEAB8@EC[dI`ЩюхцхььсмкнпнЯЎВЩЮЯаЪШйпмлрхчсмдаджннеОЉЂЏ§§ЏLGU72?7;<@B579;E2;‚юєуушюэчтмсцпЯРУУЩСТЮерпстрпрчккжЯгЯШЩЛЈЇЄћяi57@NLbB4599+4;>L@`ЮїяжксьэцжЭлзгЪШдЭгНазккйзмгЮдмзераТОНОРЌЃљЃkI8YUPGI?;12*.,?P\ŠєїьцхппнйЮТШЫФЛОНЩзжгнтлкцуйЪЩаЮйЧРЖЊЇЊМА›•љŒeNJNHA@4.79>07!3tмјычшурпеЩЫРЛЩФЭЧОглцтуттншцжжкжпзЖДБЖИЖЉЃž—јƒ]?AG<#1$--.4..077uєјюхцзЮЭаЪШФЗМЯезЯсьщыы€0щэшэычхпнйОАЏЗЦРВЋЊЏћƒY?7N„цћљьсзЮУнчцуйпюєёюшщчткмдТЏАЗИБЁЈВЕЉЃЅЏИŸ–’љ•]MB?<541;4;?<@3-@TСљ§юсррзмлсксьёѕёьуцуурргФДЉЏЗББЇЈžˆ‰‘ЋЗЇЂ§Л`]jP43@8<94,,FW3:OЦћћэунуй鈄хчяїћїђьхлзпхмдЫРЗЏЎЃЅЄЂЇ•’ЇЇАВЎЂћА]8^PE<87@AA@5#2UJWЋљљыёящупухяёїјїяэнййчрУРЫЦВЋМЗДЅЂ˜Ž–‚ВТУЛБ§їŸL:ECBACB??F;;2qC4Ђїїыђђытшяђёѕѓѓ€њђяхззаЫСМеЧЅЇЉЇ—ŸžžЈЁ’‡ЕЗКЌРљјЃB@FHFFAG?GHHQHF23ЋљјщхркзещюѕѕђєючьтнЧОУТШǘŽ—ˆ‡‡–ЇЈЉЇ‰ŸААЏУ§ћЁMEEG<>BF<03+,95@ЁїјстцуееыєјєѕящрпйкШРУОЕЁŽ‹„ƒƒœЌДЌŸЉЖЏЎВУк§§БS5OB<51;.7:.&+::JЌјїурнлныєїѕєѓхдЩжмжЦЖДИЈ—Зˆ‰Љ›БДЕИИКНОИЌСг§јВE>>A5(*!*-+-72?SCєрзмЯЫльєє€чячнгмкйМЄЃЇБЈЄž}ЏЖЉЏЉКЪаРЖКЪЩЫ§§ШE4FA@8;:12,7>57HJžяпдЭКцїѓјћјїяхлЭгдегЃ›ЅЌŸЅБЅЅЛлзлЭЗНССОМЩЭб§љ•CPcMBC@:1,4?EA73IЉыргЩЁыѕѓјљїюцынЭМССЦŸ–™™ЇЛМЈЂЏСЪСЛЕЕИМОЫкнпћпT.;B9@?C<79A79;5E]гїёжФрююєѕѕѓхрдТИЈВЌКЖЁЃЊМШЛЎЉМЪгЦБЌЏЊШйцпаФ§љzWZB9-4;ACA>80;@@MЏєшЦЫкцьѓєєыьдЛЖЖКЂ—ЅЋЌЌЏЎЇЊЊЗЪплЭЦЩЫгдрцщке§јJL[>3@<(0:5,;1>5?эьеепщяяэчурДЎЃЌЎ˜’•ЃЕФФЋžЂЅДЧжЯТЧТЭгхьэшхпћ§‰MOIA583831(#(&3*)ЂшїрекуьчнзУМЗЎЃЇЄ›”™ŸВНШНЊЈЏЖСФАЉЈЕацэщркЯЫћї}ECI?BB7$*0)#%1#-•ыђпмапсрмжФЗВЌКСИЉЉЄДМУКМЄЌЖУРРВБИЦнснйжйЭЧ§ћ‘O~vJCC€—?3.3).03эљышсьэрлЩИЕДДЧСВЇЎЛНЛММЕАЗЖНЦТУЪЫсыштйжжЯИ§љo;JBHWLF<:28)*3L!tєјнждпкЫКДВЎДНЫЧЛЉЗНЧНЧШЕБЖКССНМасхпйаЧЦЭБЋ§єoBGMPN`%+.2.##.5ˆїёэнмнзМЊАБЏЏКЧЯОЎЎИЭЮШТОУЯШШЪЩЮпытккШТЗРВœ§ћmMB:HA5)((4*1"#gйёэлеЫЩИНУОЕЎЧмжТЕЎМЭдЮЩФНЩбдеЧЯучлзЮЩМЏНРБ§ћ‹FHQL>48BGGc+78"*]ЫрдТУШУОЛНЖЎВОЪйЯМЖФШЛВЇДЕЖУШЭпхщттжУДЌЄЅЄŠ§§ЈL:CEGGF;;-$*-,LжјмНВЈАМУФДЏИОажЫЭсхнЫМЛСВКЛОзцщлсйЮОИЇЈЊНк§ћ71FPGBFFAG+ (07+!3~ееРОКАЏКСЭМКТЩЧгшьшйкРЎБВБСаущшмеЫСЌЖШРАСŸўћРTM\}Z18?0:.#09(23ZЫябШЭУТЗОЩФЪЦФбмщшмЪШддОСЖЩмхцнлЪРВ–žЈУЖk,ћ§ѓzZomJ-729470849@U@AЋїїкРЛМТЯаЦШЫзщшщнйЫЪгЭЭЩзтхрлззЛ’}„ЃМŒE,"ѕћљ‡I[dA,-42,8*3*2,2IФїшнсегцыырыюьшшчпбгдЭСТддЮЮБ›МЩА„‡Б‰;;>*њ§§лM@SHUE>;954>9829NHB•їїэцзЩЮегтьэщцьчпдРЫбкгададНЅЄбЯtE.<+љ§§љW*1YhN1CLG11:8,&$Pjcc`VGA>::980;NA&NаљюмлныёяђяшшыынЮФФЮрлЫУСМКАŸРЂS$: #їѕ§ћN2AI524(51.0*0%>N45?nљћљєѕђѓьєьспрршшкзееЦУКОЏВЅrod-#%# ћћ§§ѕpBCVJF><4>CB7),*(4:dШљ§ђѕѕяя€_црчыййщьхжЯЂЏЉЃ™žˆM<4$;7 њјї§§ИZ?:FG<@A1+:?>?;B2#7’ш§§ѕѕяђьцющйШТЫешйОЏЊžЃˆmW@)!*-ћћљєљћ•9JQI93T…Ђз§љѕюьытэщнаШЩУЫР”ЕL<<#!((ћљјѕ§§жE?GGJGF5".41240.!@kх§єэьщьэцндЮбЪШЌБЗЈˆI;9 љљћћў§§˜cBCTOWMF@>@1,<;4,0BB8jМљљёэчщнеЩЦНЫА‘‡‹b14#*$&! $ћјјњї§ћшŒiZSFH>0+:;5-E3*$,(8-BiЦјюсмбЭЮЭЮЛЫЛqA1!"   $љћћ€Нјѕ§§йc3C7<.@7:1>FF132+*198…ыєщдЪУЭУТЗДv-+G? #ћћ§ћјїѕ§љЉF@8?;@99>;B>;,1+,->0,MУюхбВЃЋЌ–kc* $ ! љљњјјљђѕћљnFF9HSOCCA9.#&(*279:&-—щсЭОЪЖF++)!#. &њњѓјїѕљјћ§чL)13GG€Б:><99&%$+2.")+FŸШКЌeMN?G%%!"",  јћћљљѕљњў§§С`S9EB-0-,42+10&&)$9.+oЭT03d…]0  %)?3њ§ћљћњњїїљ§§ЅA)IBL,+)&-0.%#"B,  !  )$ћњљјјєљћјњљ§§нI3$501(+.+$*&  (   %)-ћћ§њљњњјјњњћ§§™:79+]\Z3%5$!$,1(%3 8*!* "++њћњњљњљћћФїњ§јЎQAJIEHG]?"<8A$&.#"*2&&  && њљјјєѕљљћїѕїћ§§ЬЈ*3@8;O`-!-(0!  "   )%39$SњљљњњїЩѕєѕѕћљЩ2-;OVdY()E 3&   19PƒТўўм§њљљјїѕјјљћћ‚@LY\NYP8J53, ч"  5(9NB>OЂпућћ§љљћХњѕњњјѕ§ће.)H`~a?$20.$$&$&    !Li™шѓјш§ћ§ћћљњјњјјїѕѕЪ§јBNZCIG! #!! 5#%!*0!NМђљєсшрњ§њ§њ§§њњ§§ћћїїЯў§чa3FC874 !"OC+%?HQoƒкщулЫадмћћњћќ§ћљјјљЮњћ§§ЋaIVG34 @  .* !9E‹‰@YЈМђјцмлйнс§§њљњјњљћћљћа§ўљ›@A>;O9 "&   415"(zтУP1mЖзѕэзЩЧкнрљљњћјњњљћћЭљћћњѕјјў§єj.IOQQ4-$   ":LUƒEGОцюєкгакссћ§ўћјјљЪјњјјљїјјљ§§еT58CY9JI, )JL<4CEN]B@ЎЪЩжжЮмёшшуўЄ|mJ#B@GJG;<>EIP^B`мўћїљјјљјїѕїєьыыэёёюёѓђѓѕїїѕѕјјѕѕђђѓђђяыччўўДQLP81EB>@A>@>APOdI<338<9;7FA`бўўєђѕѕМєѓѕѓєёяюьёшюьѓѕѕїјѕѕѓёёѓѕђђёюэюььтмњЊrJ:W[NOPH78345;?S\ўўњїєѕєѕєёђёёјяыэёёєјїїУјѕєђђѓѓїђѓюьщщэшчтмўoSCUPFC3;5:57.#:uуўўѕѕѓєєѕїёёђэєюэёёїјњњљїјѓђєѓёєщчьюяьтннў‡eIBF@1<3,52.54751zўўњѓђєѓѓђєђюђђёѓёѕѕјњљњњћїљїїѕїєѕёяээюььэщшхў„aF79AI\5>>5.545#Gмўљєїђѕєєѕѕђёѓѓєјљљћћњљњћљѕѕѓѓёђёёршшццррссчў›zcHNVYL?>BBAA9F81pщўўѕєєіѓєїјєѓѓїїјјФїљјїѕѓњюыцхыщьшчтсрпптпкзў‹SJ@?IJG>5B>?@?I?I…цўўїѕѕєјђѕјєїїјјТѕїѓђђѕђёюытучщьщщхрплрцутнзў”^LB4:AB;8::8>A4->OУўўјљїєєђєђѕѕїјјєШїєђэььюьыухтунежмсуцрйўТ^YiQ;:1;:9428AT<AIIFMB55ЎўўєѕѓѕѓїѓјјњћљјјѕљѓѕѕђђїђжЫеддЭнпццссдцчшьяўўЇNIBEBB@>?<2204;:ЈўўёёєєѕїїљњћњљєєѓјёђёяяылзЫЮЩЮЪсщьщычцэьщэёўўАY4PH?><><<53,09AMБўўєєђђєїїљљТїѕёѓђѕѓэццхчтэкжачтяьюэююэыщюэёўўИG?BH9404110-.98PC•ў§ѓэшыєѕїљљ€гјѕєѓѕяэццьчхумкЭщэцэющэьёэьыээўўЭF:EB:735AFEB?<8??@4J[лўўчььѓїљљњјљєђёшршьцушчщшччущыёююйщцэыяђѓѓѕўў}ZVG57EC@;?L@PКўўцыђїјјљљШћђяэьёхпнтхчшшцрхшюэђѓёээєѕєјѓѕѓўў„OQ`A9:8783,2.791;ЃєўѕѕїѕЅєћщчхтнрккмтшыщхсучюээьщэяѕѕїљїѓяўў‘SUEB<9:<>7-%$.0$+ЅяўѕѕѓєїјљѓђшщццчтрмкпхээщхсчэьцыцшьёєєнѕѓєёўўƒGIPAB?>A5&##$*#0œѓўєѓѕєѕїєююьНщьэыстхььючшхцщющыщьяђєїєєђѓюўў’UpLILGE91,-3,-™юўїђјѕєїђяюэьэыэыыящээяэьышюээьэюєђєєуђэюўўvBS?H^NHF832311F&zјўђђѕѕхђёющццщэёщыщюэюээёюяяэюэёѓѕѕнєђёђыэшўѕrGMNLMb-0283,!)*2јј§єѓђюючьшхуьёюыхущьёђђяюэђђёяђєѕѕЯёѓюёыцчўўtSF9IH@2.2-$4.*#$aмє§ђѓѕюёюээыььэяючцшьь€§эыэьюяььэђѕљѕђэыьхнмўўNGPGC?>AINa$&&-&,`ЭщэюэьэяёюэьыэѓяэыююьшхщщэющьяяѓђїѓђяэцутнШўўЄP@CLGGAA:.5+*%#"(Fнўўэыхучыыщххэюэяєѓѓђяььчэщэёяєѕјђђёюшчрсяјўў˜8+GQLFGHGA*+*113{йѕчыщццхщцььюэюёђїєєюёёшцщюђѕјљјѓєьючђчцчЎўўЭYP[|Y:BAC?4,-4382TЭўѕюшшцчшьёюяёёѓѓєёёїяьёыђђєѕєєЬщмхддряЪz<ўўћ…aqzU08>983.3;89Y?>Бўўїёэьэяёєёѕєєїѕѕђёё§ѓяѓѓХєёэѕуЦИУццЈS.+јўў‹JcjA+:.4>988<0-!:JЮўћєяёяяђѓјїјјљїѕѕєёяёё­яђђёлЪэљщТСсGFJBљўўрQEYSPA8:A<8:;124FB<ўўћєѓђяьюёѕјјњјѕѕяєѓєёёђѓєысруўћпЕŠN4AA.ћўўъ\%4\mU+AH>8331-&]>GУўўїѓєєяєѓњњјјТѕђяяђёјёяэчргЮьуЉT<<7@3)њћўўeE23CM@#PкўљєѓѕєєљњїјїїУєёёєёђёюшсушдцРa(<7($)љљўў•M2BO8108-04-,*38P1.AuўўћїјљјњїѕѕїїєЧјєѓююэюшбхмЇ‡r57;1(.ћњўўјuAHZHGE@;9B?79+.<(45eЮўўљњјљљїїњѕєѕєѓѕѕˆёжлпбРаНiJF8PI)(&$љњћўўНYBBLGGCC<57;?:?>9$"7—яўўјјљїѕєѓѓєѓёяђїѓупхезБrN-88CC&+&$$њњјјўў–:JOHHE;:04-$5;<0@-+-31$+*02ћћўњўўт—cGLZWTQE?<42.09435<<13<43(+!!(*()(ћ§њљљўўщ—hZULHA::€3@;;98++-$0:>oЯўўѕѓёђююєёєлœ\E4.2*!,%!##0.ћњћњњљўўхi4>?EC?<348H?90.*%$3::‹њўћђьцѓяэшр‰;:QE1&&&)),%њњ§њњљњўўЎJF;CFFC>9@H<74,032?:-TбўўёуйлмМ‡n@0+,-&-2"%(%&ћћљњњјљљўћv@B9MNJIC<<;&-+11353)5ЁјўѕѕєрY:A<4%)433H? #,%њљљњљјљњўўэP**4EF?BAEB4-**)45&22IД§ьаž}Y\CW1$"",3.0E!њњћћјјўљўўєШ^O:EC915>8,,з),&+1;<%~хЌi;:k–e;&)5"7,7>@7§ћћљШћўўЇB(>dH.0?I#$$%,-23)("$  $&.1#љјїїјћљњљњўўЬЈ#5ABENe0#44(!$&*#,,);9&\љјјљљўњљљј‰љўўг1*TJ?YЖяљњњ§ћћњњћљњљњњў‹б*#Oe~[J.843&+&"!!(UpŸюўўї§њ§њћњћљњљњњћљјљўўEP^>NJ.  81"%-+$)UФјўўїїё§ћ§ћ§ћћќ§ћ§њњљўбхc5AE<<1 ##PJ&+:JVw„тўљѓэђяэњњљњћњћўљўўЦВhJ\F;0 ; -;1BB‡‹EZ~ЊУ§ўѕѓёђюы§ћ§ћљњљћњњћњћћ§њћўўђЃBH7:T<+)#у?77&,(+{ыЯT7rИцўћёяѓюьшћћњљўћњњћЯњљљњњўўїm1NNVM(1&)  %$;JV…HLФюѕўёююёяяјћњ§ћћњњћћЬњљњњјљњњћўўж[4:EEJd?BИлсѓєяї§ђђўВЊŒƒZ;OWZ`^W[[U^btPnсўѕѕѓѕѕѓёђђёючЪЩпчухпрщюэяёєѓђѓђышщщэцзЧЛЦўўЦd]iNFPSJVUTVUSSїBG˜ўўяѓѓїї€›ђєѓѓяшеежпнклщюёёєђёэяцшчтпцтраСОЛўўGNT`eoZPNQLPHLPYTnкўўььяєѓєющяђхйпцхцйхьёэюяэхмтюыэщчпгбдгШМЖўИŠ^IopkaaUQHIHOSO]mœўўњѓяюђяящрххкдагйшыяюђяюёёхкнщчщмзЮЦОЦбЪВЏўžzb]ebaZJNUEMNH$-HˆєўњѕьѕюђэщшждпкслдчяђєѓїђёєѕэтхшюшЫЧЧЮкбТКЗЕўw]V[VOLMOFJMQIEICŒўўјёяшчучпмйЭдущшуѓѕїїѕѓѓѕѕјѓѓёђяэеЪаакбФЩЩ࢘q]EH]hpHQ[PHLFG1#WчўїђющйльёщхрпьёђєїњљњјјѓэяэёющцтпЛУЪЪУЫТИБВўЕ‘‚cdgh\VTV^YT[\G?{ђўўїѓытчюяэшчђёјїјјњїїѕїёјхгЩдаЯеЮОКЛЛ€ЇОЏЖДАў›h^TU^e[SQW\PU][UUєўўјяьхпьѓђёыѓїћјјїєѕєюяхзМУЩаШНЩЯЪЦНЗЛШаЛЎЋўЋq`SHUQLOL[NTQWG>H\аўўљѓёюшшщююяјјљјѕѓђёѓяянЫЦТШгЫФЛЛЏЉЁЂЋУЪНЕВўгro~hGQUTUUPGSWeGIVеўўћёёэющяяѓјћћ€eљјєёюѓєэхлкеЩШСКМИОЎЁДСЛШЫСЗўЯrN|dTTBOQ`YVTBЛўўѕєєёыщђѕћњ§љљєїѓёсллтрЭЎЃЉЅЂБФНСКЉЁНЩФЧЭўўКbY``cQ[WNQUNF3AGMДўўщюђёэьѓљћћњјјђюшыкжйзЭЖЁ””›’ИЩЪЩМЛЫЭТЫкыўўЦkId]]QUJYOLEJBPQ\Уўўѓюэыэєјљ§љњєрлщэчбЪЧЪОБЭЋœЄОЖЯжЯбЮгЯбЯЮжшўўФVQ`TTGGьJGBIPPJ\QЄўёььлльєњљљ€§њєђщьэщгТЛСЩТЛИЎ›ФгСЭУЮмхлЯЭдгрўўпZFZYYWTLPBMQYOFZaЕўѕьуЫѕўњ§ћћљћѕяуттшчОЖУЦДУбЛСмѕшыуаегЩУУйпыўўЇSi…d\[cTIMHZ[U@;[КўєцгЏїўњћ§ћјѕєёхзЮжзЕЌИБМгдННУзкзЫШТФагйэюѓўяb;IZPTVYUPUUSTQITgуў§цгщђћљ§њјєђщмЭОЪЦЯЦЛТЦбеЭУОжмщпЫФМУешяёщнўў–ijZGSMUWS`YTWW[PVНў§нйюѓѕјљљ€МїцдаЮжНБКФСТЧСНРДЧрыьптптщыяяєэщўў–adqWZOPPIOIIOIH,1tтјўшщнтЯдсжЭЫеьчеШФЯкптелгжнчтесђѓёэспдЩЩШРўўЃ^\eVMWUVh\~:?BC9;oжчрзкЯккгжаТгжчшудЭйнШЦЩЫЫЭебкюёїђящжЯЧНРМŸўўЖcS]\aWWTZAI9B;G43YюўѓЯЧРСЭбйЩЧЪйхупмэёэсаЪгМЮадщђѓѓющраЪМККаьўўЏJ@ZdiaZg^W?FBJQF,CŠпэЯдзЯЫбкйЮЭдмечяјђэшйЧЪСШахяјјѓччлЪЯмЯЯеЗўўдkgr‘zGVLTQLCCGI4AF[дўчпсмкЫалзрзжмэђђьсучцбздхѓђђэькаШЋДОйШ|Jўў€П•q~Šk?JMSPGOILOSoVFЛўўђжабпщшрстяѕєѓячмпчспщюяёђёыэФЃŒ›ОаЁ\98љўў]w‚]?COTQMTJIMC5B*Qйў§юяшыюєёєѓїѕѕєѕяушчйемышурШИгщژœЯ›ELPMћўўяdVnkkSMZUYNNJ?BJ\NFЅўўћєыттхчѓїљѕјєѓячллэышчуцугИРхтЛ™Œ[>PC>§ўўъk4Juˆe7\\[TQQJ@P5cG[ЫўўкєшпьюїѕєїјїѓэултэюуцтрпгЊЊЮЮœ\HMEGC@ћўўœu[P‰~zq[UTTQPGLLbT2`чў§юэяѕјњјљѓїєєьтжжхэьцлаЪЮФИжЗm2GH2+8њ§ўўЄa@UdVHFUGOLVJ@OJ[@AL…ўў§њљљј§јєяёяёёчяђыупсзаСЦЖ‹~>;?:3!:ћ§ўўФ‡Y[reZ^VSQZPSEIPA8EBzкўўћњћњњїѓэѓѓёэєєђцуЛТСЛЎД›dMP5SW;$7*2ћћў€œЭmYScc[\SMZJOSUUTG..EЉћўўљћјїѓђѓђяхпуцєтЯФНЎМž{jN;:EFG?2,"8§§њћўўЌNdj``VQOYLCMPP@?OGkЁНщўў§љѕѓѓєѕэчмрехзЂЋгБ˜`MF7(*AG8?19+$ћ§ћ§ўўцYU^Zb[]YCHPBFNLB8.S„єўўѕѕпѓђёууцмпНЧдУ™Z:MM7.9<175%57,ћ§ћ§ўўŽЋtY`ohedZVPMFNSEEAJQON{Юўў§ѕїєёчткзтЩЉž™vCC:>BB754,.53020ћ§ћћњўў§АvtcYWSOTQPZVG>E88GJT{кўўѓэпншсхмхеŽUI94@8&4<-#++К8*.-8§§ћ§ћ§ўўђJ\SY`VTOMVS[M?>>@4BEIž§ўѓщпгуйкаЩŒ>ЋўєцйсШ•]@GF.#,$+1234G,-(,(%7EњћћќљћљўўСљb>:<)9*>d`bjUT^QA(&&%%)&$%2<>?:2aSћ§ћ§ћћќ§њћўўŒŒENZZVgIA9OIGCF@.52.?;bT>%! 3)(-)::7($%+0!-!EAћў§§ћў§§њў§ўўя^S\LOQPG?NGQC78**2,-0,+$4>8@:4J#+2?2IB9,+22%#<3778?@1ћ§§ўћћњ§ћ§ћ§ўўСЛdSZbchczU?PO[0-787:3&>BCBC5>$;$+!7.@9$93*ћ§љћјћњ§њ§њ§§ўўЬИ5@U[dcx?0E>>($3*,#((209<7%$*%()*1#,""3BCELG3dћ§њћћХњўњ§љћљ§ўўнE9Sim~j@CY"F7*!8+3.25?8?&(+-*1.2&1<9(aЭўўїєїя§ў§ў§ўў§§ў§§ЬўњњўўэrBW[LOE9*-$$)&%#-*(")$:9)8gYA4SWi‰˜щћїярччщ§§ћєў§ўћ§ћўћ§ћћўўЮУxaq]LF$J%$-##MQ132(@O]Ÿ˜Tn”Кдўўјэёщыь§ў§§ћћ§§ўћ§§ќћ§ћўўЬЋQYPNqU$0B5.3*" $UB@!0@.FŽћмjB…Уђўўшлмщьэ§§ћ§ћўћ§§љћўћ§ћћўўа|>aeih4$E710*+,*55-#1;7O`m™•^[кїўўыцтщђяяћ§§ўћћќўћўћћЭўњ§ћћ§ўўщiLLWjZakC0.5)!$"(3928ZZTOYU\rPQЭэнюытѕњѓѓђў€џ;џ§wџ<џўwџ~џўˆџ=џ§ˆџ<џў€џ;џ<џ<џ<џ<џ<џ<џўwџ;џ§wџ<џўџ=џўџ=џўџ=џўџ=џўџ=џўџ=џўџ=џўџ=џўџ=џўџ=џўџ=џўџ=џўџ=џ§ˆџ<џ=џўˆџ;џ<џ<џ<џ<џўˆџ:џў€џ9џ:џўˆџ8џў€џ7џ8џўˆџ6џўˆџ5џўˆџ4џ ўˆџ3џ ўˆџ2џ 3џ 3џ ўˆџ1џ ўˆџ0џ ўˆџ/џ0џўˆџ.џ/џўˆџ-џ.џўˆџ,џўˆџ+џ,џўˆџ*џ†ФЗ—‰zЃЏгчФВЇŸЋМЫЩазмпйЫНДЋЏЗЧЮдмаЮЧШШЕРЕЄЎШЩлдШТгйегмршычэыццртЄ™‡…ŒФТРСАЄЈžЖртЦеркЮЭаУЕЕВМЛУЮТРИЦжФАЉЗОНИФжгТСЦУЦЦалйнсс€!ьшшЩ•”‘›—ИТРЗЂŸЖЭєщмаЧКБМЭУМИДУЩЗДДЋАКУЌЂ—ЫдФИагЩЗЛТМОКЋКУЩедЯдДŽ–—››”™˜žЖФейЯбчшюхкаЭЦЭгФЮазгУЮМЖТЫеШРЃ•ЉрйзЭКДТРУСЛОЖЗФШЦануИ‹’ŸЄ™ЊЗЄЄЗШбЩЧрэяэсЭУШееЭЭЩРНЏРЦВЖжпЯСНЃŸЋМОМЕЌЌЖФЕЖКНШЮмгняђАˆБМЅ”‘ЅЗЖРОЗЭйрьяшсйжШМЦЩДЛЧОЇЊЎЇЋЕФСМАЅЖБТЧЯМЊАЏУгЧЧШЯзррнлеԘq’›Ѓ˜žžЦЪЪРШййуээырнсжТДЉЂАДДЄЌЖЏЏпМЪбОБЋННЫОЏŸ›ООНЪзЯааФФдЯржИЄВЗ™™€ЊЛЧЧауцчэьчпгЪЯЩРЖЋЅСШЕЉЏКТЖАЌДКББМемкЫžЅЎЏРЩУОЛТУОКЗОЦžЃž™Об”—АЦКВТхёђюсмЫЦгаЭНОМСЧОЛЈЃБСУЕВЗЖЊЋНйкзЪЎЖЦбелЩЮанукзСЊŸ’–ž–›МбžНЯжЫЪгщьэчйЩЦСЮЮЭЗЏЎЛСЧЧЛЎЖШИЉВФУЕАОеулТКВМРЯеЯжЭрщѓшЛ‘ŸŸ›ŸЃ‡ВЖЇНЭЦзкрцргЯбРИИНЦИДННЯаЪЭЮЦНРДЊЄВИЎНЪдйЪОШСЏРУМУгтхтбСž…”–ŸЏВБЌЗЊМгртшэьчпжЭТКИТЧМУСМСЛРапкЫОКЗЖИЗЉМЪжЪЕЏИЗЛЯЫЯСЫжаУЩЮЊ–ƒŒгМОСРкнсэѓёэхсжйлдРИЩмбзЪТВЌЛаеЫУЫФЩШЮТМНЪЯЩИЊДМУЪМНМЫЫУЛАЕЇЄЅ™ЉлЮЧНСзсяяюцчщпаНСУЗАЉДРНЖЗКВНЫгЫЩУТЖЗРИАЋЦаУИЕКЩШЪЫЦЩЭжзЖœ–‰›ЂЅТШЯЧТшщђѕшцэщкРЖККЗЛННЪдЮШЗЗЖШбЮФЛИМТННКСЧжзгЭдзлТИРМОЛЕЃƒ…‡’”ŽЎРЕЛЭЭтьюэщунжЮКБЎИКФЩУбхсбЦАБУбЭаШЖБЏКжлШЩжгаЦЩаЧЖЋАЊЌЉЃ•Ž‘‘™КОЎЯзкзгйучцзЮЭТКАЎСЮаЭкпуьшсжЮОМШЧТЌ™ВУгкаУТЦЮШТЛМЛРКЖЏЃž—žЁžœЖаЛЕЗЏОЫтчщытЫОНЋžЁЏЩйеддагЮМККЏДЖЎЊЎВЛЦЮдЮФЫажеЧЈЈЖИЛЕ•˜ŸЖУЗНМЏДЗЌЇŸАИнгФКНЛЕОЏЖВЖНУОНТЮгШМЕИЛНДЊЎНФЩжчебдуЮЫйлЫЫаУЋЏžЄМРМВЇЅЄЂЁЅЉЁŸЂЇдбФСЛЛФТЩЫЦШбййгбЮЭЫИЎЛТРТИОТЪЖТФЅ{ЖнслЮгабЫОЉЏВЕРНЎ—œŸЂЅЃЉœЏНаЭЩУСШФЫкЧНОЩгЩЧУОНЖИДТТУКЏМЪлпжЛ~œРрежаабЯ…zwВАЉБМЧДЅ˜ЁЁЄЂМаЦИЎООФайлЯЮРФЫЮСЫЫаЭОКЄЏааЦЦккцнЊЊБНЩзбрлнДЂˆ„‹ЌЛШЯЯЧВМТФВЋКЗБ˜РАЗЗЏРЮщцхщчгддЮЮЦЦЭЦДЋЌЖКОбйдпЗЅЌЕЯМКЩЫаЮЏ˜‰ˆ‚Ф˜ЕЕНймцУЊ™ЇЕЅЗŸЉЕЛЭЧЎЛ„ЧйсїдЦРИЗЌАЛСЭЭ€пйтхУЌЩТШаЪССЯжгАˆ‹’˜Ђ›ВеншчдЇœ„ŽŠ˜žЕНЛАИКЉ}C"(]ЊнЫВЗКСЏБЖБЗЦгззРДОВЪЮбФЛИгззЗ~™›ЋЈž—ЄШЅНЮбР„ЌЯйкБЕТкШ|YJY`O09„ФУаеаЩЧСЋАЛУЮгЪУЪОИЭбаНЖЗЧШЛЎžЏКА•‹™АЄЎМЦЖœ‚m‘›ШЖэєяЉU@@BBZЅЪЮСДЗКИЗЛЛШНМЄЃЌЎЕЗРСОУДАРЩУЫБЅЈЃ›ЖЪйёшшюьхг !#.,7!*>AцFHA[q^QŠЯтпеаЧЋкўђђёёяэчухх€Ђцхчцшьыяѓэчжрсучущсмнктх-*%2$138::<>HMLM[UJ‚ЩтулжЮецушхцчщусхшюючщшыёяюэїуЪЊОмрсуссууцыя71.1(*$++&8EGLMLHG^ƒејтмршшыухцуслмчьђєяыщщыюяьюцнВФчѓхцуучэьыщ838<7+,*148>AEBLOOJ;MСђжнцюэёщунтмлрхщэяюшщЪдхуьщхѓэсєсхшэыяёёэы02.1,&*):>G?<>FSOE40SЧьцщэюэёшссрнлмрушэюяэзкнсуэыщющщьцччьёююяя%++)%*0355:8958<:&5S…лучээыщшутсуусусчтьыяєупмсуэщэышщуттхрюѕђѓђ%"(&&(28;21:A<8:<78JНяьэыючщцщухутухццхуьэщчхцщьююшщшхшцШшљўљѕјї)((7:?55ё;:BQ>@bЈжэёыщшччќьыэуућчыыьшш§эыєєИюяытсщьэїўўїѕѕѓє&%""180148344G\ALЊтэѕьыыхуррччцтцхшхлпухучщэяѓяяыцххчыѓѓє›юэью+%,((042,-13AF:PZ‹йьјяђэчцтммсцчшччцхснрхцхдкпзэщщьщчыьяђёяяэччы**21"**%&";ZL9Wœнѓьёюєусррсчшьыщщц№хцутццсхшщюяђяяююНёђёяяшцшч-%13)%&$$5>QkM?Šлмѓєёэђсзжтщюыёыэщцхуьыьшчцуччээђёѕѓєѓђяюёёоьхчч*%&3!$"2ne‚БатѕюяюящнмршыюющшчххушшщцспхцыээђёђєяящышшЪчычы"1-G4*gРжёжпєэяююыунмпрцьяёьщчцхцшшчщщснмуьяёёšюяёьщыщщьяяё"5AA84,gЫсейхьюёьшрнрсццщэюђючуччшэчьычшццшююэђяяђьёяэыэђєјј"! (?GNtЧѓмнхщыэяыххсчььяљёэьчхьыы˜шццхушыэяяёёюёяюёюёђѓєїѕѕ-&&452>@F‰бьюђщыэюяющтсчььэююђєђькптчээщхнптрѓяёђѓяюяыыьяѓёђђѕђѓ,7;:*;U?‘ьѕзнщээ€Œшхчхухуццщяёяээяпжлцьэщчтуыэёђђѓёђэяьэьђёїѓёїєю85>YJ8MњўёшюёёяыухцшэьыэыэюђѓёяђщшчэьэьыяёяђѓѕяёёєяѓђєёєѓђђьщУœ?HJrpWqаўыцэђђёяьшцьэююяѓэююээяћёђюыяяёђЂѕјєєяёєёєєјєђђщееЧА1IBF{ЌејюххшююђэщцыьююєђђющчшшэюёяёяьэыэяёђяђёѓёѕђёђђєђєђююёкУкм009^Епњћѓэьь№щчутыэяёѓёђыцтхыыжяёяюђщђяѓёяюђяяђёяђѓёѓєёяьряххюю+GНуєїѓэюютэыьшчщяюѓяяююьшхчшччыщщыьююёэююЫѓєѕєѓђёѓяђѕѓѓёэьяэюё]Оћўўћјэђёяьшчшыђяёюёёяюёьђяыщычщщяьэьђэшцшыяђёѓєђюёё’ђёѓђєэяяѓёЧўўїјьцыэьэусчыюђюѓюыььяяэђююђяыььэюяяюэьшююђѓєѓђяюёэююєєёѓѓѕяюёёўћёьшчюяђэхрпеяђєѓюэщыёюяђёьыцшшюяююэя§ђѓѕѕ€›ёюєьЩНћ§їєєѓђюььыхюьцшьяюяюяцгэўєѕєёяэяёёђѓющхтцэёёђяюѓяяёђђѓєђёђяѓЫ›ЕњўђђєёѓёяёяяёэюѓяюёэяьэюїўєђєђюэђёѓююччхщьяёєѓђяђђєђђёђѓђѕљхыеДыјљюѓђяяюяэюьыыюяюэщхууЎзшхёяяээщыюьщттсцшюяёёђђѕєђёёѓёѓяяђпœМыљњѕяяёёюэюяяэюяёюёюяьщччхнншьяьыухщэьэхртхююѓЂєїїєяёѓяююёёюсыђюяяьчхщыыюђѓьюѓѓяююшцчююьччщяюыутсщяяэщчхшюяёђєєїїєёёьяђёђяёђёёяёюэьшчшчэяђћэюющЮшхтсшщэьююыхрзкмщычуухщяюђѓѓђѓђѓяёяьёээюёяѓяёээщхччќьы§ўўЯёяяючртснлпуыяёђђыкзхчыыщсцчяьяёђђїјєєёяюяюыььюђёёээуэѓцныэсбuVёёїѓтммШрсхцыёѓёўѕщщюэящшшщшыђюёѓђѕѕєђёёђяёэьэюјўўяцлсаБ‰}SSCPCьтдВЄ–ИСхїаТЗЖДЫрмхээ€vщысдФЪеццюышцкмкЭегТЫнныьстхщцтэёёђѓѕїѓѕёїЗАžžЂЕтпзлФМЛБЦѓѓЯцэьыщыйгШЯзжйрдббучсЪЧдйгдмщткйзждгуыяђѓёѓјљѕрЌЇЁЉАВАЫжзЩИЕЫуўђьрмгЯлпрегЭжмгЯдФЦжпЩЕАушцжцьмгдйЫЦШЧажнуупцЫžЇЏДИДВАДгзьшпцёѓїѓыцрйтшхцычунуЯЮующтгСЋРюььудЯезкггЮЩЮкстрхєЫ™ЄЦЕБВНЦЛМдкукцяјїњяцйпшщчхзжгЩдеШЭчэпжбРНЩезеЪФФЯйЪЪЯйхщьяю§§УŽ—ТлЪЖЌИЭЯзгЭцэєѕљїёыыпззкЩЭкжОНЛРЦЩжжбЪРбЫепхгЧРФлэуухшюђюёшхгЊЊЏЛВДАрнсйлэёѕїї€)яюющжШОЛЪаУЛРЫЧТЮйзшкЫЫегйгСВЕЪбайхщчхзмрсэчЧЃЖРШЌЉВОбмжпђѕљѕјѓяхсхтеЪТРепЪЛРШгЯЪЩЭаЧЩкщьэчБЛЧШзмлбкдкдЭЭажД—ВЏЏЭыЉЊУмЫШмѓј§њѓюхтчшчжаЯакбгУОЫебЧШбаРСащюяуЦШтьыьссшюяысбШААЋАЅЕЯуДгцылпчђєљѓёукдхтубЮФЯйнйжЦЯдЯТЪезбЦзщюьзбЭмрыэющхюѕ§њаЇЕДЖОЛЁЦЧМйшцьюёїђхцчеаЮжмЫЮдлсппсплжаЩРОЧбУЪлццненжЭержпыяяэцйЎ›ЉДКЩФЫЦЮЗбчяёїєјѓяьсзжгжреейжрабчёьккжЭабЭУгсчнбЪШЮйстужнчнйлюСЉЇ›ЊшемнкщюёѕїјїѓђєёяхлбкщяьпдЯШдчынйсмрстеадмытгРЧбжкЯаднмзЮЪЪОЦОВЛѕцпегсяѕњїјїєяхжмзЭШЛТЯааЮЭЦарчккбЮЯбеЩЦЧктнжггрхпукпцшшФЎЋЅЄБЕЛмцьређѕљњњјѕѕьжЭЪШЮйдамцскбЫЩйцнмзгЭмдедпчэьчпныэмгбаЪЪФЕ–ŸЃЃ€`žЦметмуђїјјѕѓёюнбЧРУЯжнйчёєюрЦдрхзпеЫЧЩзээхрхрсжртжЫСТЛКМНВЋЊЈЕЧдЪуцюьхчёђєшмсбЭОРнчщцыэёђєэчеЯзмйеМЗШмшюшнмнздеЮежбаЪУЗБЏКЗДЖЗТхгаЭЮмрьѕѓѕюсдбМЛИЧжхцхчшчхдгаШЦЮЦССЧдкцщуйлэыщзСЦжЮЮФВЌЎАШеЭккУЩЭФОКЩбьчйгЯбЯеУЧШЭгкЯгкнпкЮЮЫааЧСЦЪнрэїэууѓэшьысухйРЛДБЮддУММНЕТНСЗИНОчуагЮйлзнркушчщыэшхцжЪЯебпгртуЯкжЌ|–ШєюьнрчцндКЎЧЭЦаЭСЕДЛЗИНМЛФжхчпзЮймнщлаазурйеаджагждедЩзсюѕтТ‰ЄЯющщнрчцБŠЦУНЭнсЭЖЖКНОСУЭспаЦебсщэьстнкухмрплпгбЛЪсшмлшьѕхЉЏКйеццяыюТВœœЅ–ШЯпуулФажгФФйЮЯЏзЪЭгЧбтў§љўўцыьмттнсмСКСЧЯбххтуНЇМТпЮЯжтнпОЋЊЄ•АлЋЫдзщюїнКМТФЗЕЧРШЮачуЧЭ–”нэєўчддаЫТЩагмпхщыюЪЗгплукдйцшуОžЈЊЊЉАВВеюяэљыЗЌ–ЂЊБЗШЯЭЧЪгРЇŠZ5CrТяуШздеЩЩЧЦЪзуххУИЪЩсхюсйгчщуШ•ДИСРЏЈДцТгмц厘ЁНщєљШЩзём”hbgwgLMрксхтртеРСажкжаЪгаЫксрбЧЪжйЮУААШЯШЌЇЏЪОЦблЫБŸƒ—ЋАмЫ§ўўМoPOU[P^MZemЈїјьчеТдбйлгЧЮббЯмййРСнхзЮаТЭбШШЖБАМЦСРЮФЏМЗбђмтгѓр‹B087MN`m`dhM}жрУзкейуцспгдЫФЭлспЭЧОЭМВАЕФРССЕДЎМОКДЈЊЉАВЖЗОШЩе‹J1YeIHMU\ZUGPaЊррьрлсрЭЫЦЪзеЩЮЫйнЩНКУРЏЃБСЫЦаСООННРМВЂЃЗОИСНЩтM@ItUIIEJYNPVap~ЃмтёнаМЄСхяпббпцхЫКБККМБЌЏВШсхмШНЖЛИИБВИЭТИКШU.+@HBHGJLUTM@izoY‹РкмкдЪЏйўђыщухлЪКНЧЧЗТМНФЯгайеРЌЖУМСЮЦИРЗЌЎЪ239G<>AECA?JLUPPiaP„ШтусйедеЩЭЪШЯЯШБНбЭЩбТНЦкцклсЗ›x‰ЗНАЛРИЕММНбF?@;234E@@SGFOVWWYVmˆйљчммзЦЦЛЛЦУВВСуцмкЫЪкнкШШЭУЕˆЧаЧУаЩекчкгAJOH>8+8AA43ALCJLaNMrЕднеЭЪжаЭЮбкгЪНЖТЦЭалаемЯЦйсмнЯТНСОЮцэўљєѕїёщ$(1::04:>EBEMMhQYЏсшщЯЭЩУОИМЮмЯУОШЩШККОНЗКЫшэчщчкСМУЩаетщушцпгЮ#0(:,97AACA>HTC[e”ауххзжбЭКБАЪгЪНЩЫУКЉИЧОТКАЧТДбйгЫЦОТертшщцкЯРа)55.85987$4OkYBgЅлыжйррЪЛЗЛЧШлгЮамзбЪЧНОКОННИУескепздйхцнмкйбШНО,7?A<83;?JQpr\N–рпяцрнзЗЌЕСжесжлШЩУЪЪЫзбЦТТОКЫлпсщыяэьрйдйлнЮЦЛС0,2H& 43F-"Fto‹ВЦкшткмбФВЌМгаЭарсбеЧЕСЮаШНИРОУбршуьячшзбУзмЯЦРаа&,+&ALUC7wЮрѓкйщйзпзЯЩРНРШШбнлдЯЪИМФСУОСРУЕЗФйлзущшуажЮОФЫЦерл$-OQNEE,4rЪпШЮЯзмпсЮКИЖРТЦОбсужЫЦСЦЪЯЮУалЪЕТеЯЫгйнзакйЩШалцэђє048."5P`[vЫяжЮЯШзсуЯРЗТЦЧЫгйуьэеУЦРезЭЭЩЮааЫзеййкнхкйЫЮлтццшюёї759CNINWS‘аьшьужЮзттЪКДЩЮаеппсхлШМЏСЭзегРЕЄЌТршыцлпзггЫзнуыцц€ЅьяBLLJ2CWI•эђзлухдЭЭдЯЩММЧНЦлкзцшрдМАИРабЯШФТЩЯумсмпнхйЭСбцьчыхяыл9BcSOSA&CB-ылЭббдбЯЪУНКЕЈ˜ЉЇАБРКЈЇЂЏВЗИЗЛРЖАЊКФЖЗЈМЖ››~\A&-7??@395>H.)44@:пЮНСЮЦЦЩОЎЊЖбгОЎВЗЋБДЏЈžžœЄКБЄЃЏЛЉ„ŸЋЮЏœpA:%EL8)",-;.),*+.#&12йыЫОТВКФЛВКТРЌ›”žžЅАСЦЖ•ЂАБŸЄИœƒЄНОŸ]N\HIdILJSH<5;?704;+)-.;@9ЩюЮОКЏЛМНЖДЧРŸŠŒЊЏИФЧРЉЉ€ТЖЛЦнБРЊq[ISSM:.7&CdPMY1.<1%.:),BEC;7ЇДЛДАДажЦЊДЖА›”’ИРСЧОдКЃЋгэМЛЂ~iH>P@35hdN@>up#A>59:2$%1$ 0;8ЧсШРЛАЌАЉ˜ЄЊЎВЌЉЖНМФКФуШ’‹ЅvL>Q?3?332-,@>FH"\Q5)*!%#+89,+,+0ЪЭУЩВЅБЈЄ–œЇžЂЇЋАЏАЅЅЗЧ’FWS02C&"104155;875`;1-<1$&)4..1.)")1;ЎЗДЈЎИШжьЫЄЏЗ”‰|pF48+9;3%&-8;20%!!8.4<<71+#!*1,&&!.78C;АТЛДЊЦййЯŸЏЇ‘\.:EHIA<80"(5.##*,8%590"591:7,&$7.9*%$%(-SAMЫгдЫИЉахмС—Z<:SW5(1."#&.15%522:% ;NI<83:@9:4BGPMBQЩЫЫММЋРЗzPU?B,)@9;&41&).&&%#,5!+&#))4840212.3;9,5FEF?@851-*.&,48518:.,381&7."-"+!,#+?WE@GETu’Ъў§§їј@2+*AFF58EF:0(($#2,%!#.;E7#>bnnuєѕѓѓёђѓђєєїїєњычшыюяђэчьыяюэяухцьђѓьяыьэчтлмтнјяуеЊd55A:Q]S9BSYјјїєѓђѕђѕјѓёёшщшэшыээт˜шьээщсцчщчшцршпхчгѕўрЇjC0>3@Ag]PNF,FH"8їїјђєђѓѓђюяююыьшюыюыьэцтруьююыщшюььчхыьцјхЮАŒmJ9:?FH8>AB?G5);;5@ѓѓ€УюэёђюьчшэщщшыщцыщээцнмрчшышшщёлЭпэўрРœ}UF3LH;9;80*4,$BmWU]CB@9455878?FGC:муьщыюю€‰ьёыщщцрлтэыяэёїысс§ўпЯЋ•wPGVLCAgkOE8wt(BB>?524794 78;ї§юыччэыцшухуухшшщющьѓў§ЫУЦQAQ>4H:0773;AJJI,cY!:42#%).08>2)-1+"єёєыыштшстпмуучшцц€ЏшнюяЊae[5+JM-"97795571.$,7>2(B12,8;>9,,-*+59;849AѓѕюьыюыщььццьшшырлСОQ4<;9G?:72723.$-,.*"$-1.-553:82).%131153;Eяююсэяьяьщуђїўљц˜ULMBPY?<:7;41.-3)%%€›0.4-<4*&-10)24+23.9BыщщььяёђўёсшызА™‡S;9@HHF@>:9119A;0&(-,13.;@AEB<71&$13*)2:39EEAяюяыяьюяѓухнЗrA50*29+8#%-+5>@92#*4;3022;<412588GUFFяяьэрїўўщЌjJ4@\]F?@<207;;9517971&):]E>-04;9885;<:@BFMLBFHBBALrёѕєэьК{H-JS^YFFEA80+,&05)()!*+*)+1.+(*4752+428AI?3@LYзўўѕл‡F>AP[JEBA?GC>305498,,),()(12""!#$"$&->G<3ISB0Q73\ŸСюўўДch[2:MC@ABCCHF<><:89;; <;4--002,*&!-%!&*7,3)0%#@[H@I?[o—Э§ўўћњTF-4FLJF?BIFA>>A>:7858<;>AC1&(&+57($""-2@?@-;EL3JQŠЈзјўўњЫ@``H-97849440*1:?;2832787;?9.)%)$40%",?3LGPMJхўчпдЩалжбЫпжН›ЃЈЫЭклйжЧФЪЪЮлюЫгТƒnngkgWHI??ZqimQICMLGQUSHNY`TPКШжЫЦлцыкШЮжЫОЖЋАдзййдугИУчўЮЪЊŽzaTk[QN{wcW5M™Œ:V`OGE@CJIN%PITйєпзаЩРЦУКРРСЫЪТЩаЯеЭпљцЌЉНŒiZbQGdFVE)5F1EHPTMI@:9@MZOIMQMF@A>@;>HGIC>MI\ШЪЫЩЭгхэњмМЩШؑ\LMLUYWNJJ@GILMHLNC>GA<;NPSUSLC<7.1?>58BFFHN[M5ЧзйЮФкьђхОЧСЈmHOam`SUQNPPNFFJFMH9IFSIdY`пучцбТчњѓмЏxV?LirUWUHCEFAQAG>HPFA:*2..+Or]E??GJJLOGGJWTSHMS[aaSkррмдЯНмЯ‰jdZ]ECWVSGLL@GC@C>;25?WC.#40;>3,AAI>GEHGBBGGIHNQYUYNV]ыщмйлЖPATcmnWONUC?CAC8C8HC[YT>UYm‹уїѕэмˆVFUjp\W\ZS^TEEG5EICJHE7?E:7@7,2+098;3<:3H;?SWLHahQFaE?kАаћўўБouh@F^^ЮUOJYUSTPJMGLQCONF>ACGE?>955*1A9?;CF>;(<>5CJO`JFVV^M]ežНтўўЪћ§Uqv^8PLLOPNJEEJLQIA;IMHIBHJF;;94:E842:+CSMTYQV]bZЅЦўў§§ў§ў>џ§ˆџ;џќˆџ:џўˆ8џўˆ5џўˆ2џўˆ 2џ 1џўˆ €нмпчёщнЮМФдаЦЮФОЮтчуеСдйрсмрпмйцукхцддЯЫМЗШШОЩСФЫегппдСФзаллгЧбЮсжрщхлЭУЌДТЭжкеЯЮЭгЮдеЯЩртйтыычцтембТФЪЭЧЧЫЫЩМЎЖТбЩШддаЩдзаЮЪЧдцсзФСпггЪМЫдкШТУКМбйЯззчулшшхцнзйкйШЪООФЭжбЯаТНБАЯазбмпуышсздбзгмнузШжбжннззйЯЫФЧкмлнчэыющхсптлЯЧдееЧМНеурЩбжЩФСЦЫзхттчцсЯТЧООТЦзЩелжЫУТбпснгбдтйтушщэхншэштккллШЦЯЩЩЧЫЮйдйпЫНУРШмтсчхпЮбФОЫййЯзЮЌТЮЭНРазкЯЯбФадгнчшчучхыщхмеаЭдбкнтртрппкмлШТУУЩжнгЩШЮЮамадмзгкбДНЭлйлкглйкуытщээртхэшптуссмгтцщтпгФмшплаТЦЪТбЧФФджЮТФФЛЧЮгЫУУЗИЧклзжЭЯЫЮкгучуэёссхслзжлштжбШКЦЮЮЧбрыюыржЫаглкШРНЫЫЩаЩОРЧдКСКДРЫглпкдЫМНУбзептсс€‚пхпрхчпдмЮЦЭаЛКЪЯЯзхЯЗЭлаФФдЮЪгежЦФЖЏАИФЧРЏЏЕЛКекнйЫЪйнсмпрттмйкдзнлгФЩЩЗЪФНРОИЧШЪОУДЇЫШЩжжбеЯШФТОКЌЕМЪУЛИИЗИШбЭелпмгзхђящчтаЭРЮЫЯЭРЫЧЎЏЫаЧЧЖТМЦктуЫДЛЫЮежабнндЮЯЗКНТЯнмЧСМУРЛТгймсцлуунйкзШСФЦдзЭЮУФРЮОММЛЧЦЩЩТалкбОЫЯерйЪЮЩадйлеОЦабаШЯТЫТЦЛИкйтхээщхнспгЪЧЫЯааШЦЩЫШемрззбЮЯмпреШпйЮжслЩЌЃЌЖИЖНТУЭрсйеЯдбйусйтщущэмзпунжнЭМНЧйлдЭгйШЯЦЪжрххкгЦЩОЮгЦЖДУТСЛДЕТЩЯйпжЭнэйЄЖИСЩЩЯУђёяюхрездчмнжСФбгеггн€HлеРФбеЭЭксуслтгЪЪЮЩзмЭЪЯЩУИЕАОЪСЋЁЂКЦФКЗИчцлцпкЭЩбудйтнптсххрсшмЩаЫбдеЫКДЦгдЫФТЮжллзШЏЉЉЈЗЛЛДАЫЮЧЉДЭреИАЅыцлйлмбСЭдШРЧлккртщхЩеуыцчцреШЪЯддаЕ‘ЁемкЪЗАНЖЌМжаТЖЌКаеЛЗФбаСЏЎцркгаТЫШЗДЎЅЗЮчшщхмФЖЦЪззййбдЩФСФЧНЉž–ВЦегЦВБЩЭЪмлзаЪаШННЫбУЖЋБФллкзЫФМСЛБЊЏЮццхлаНУжтзШТРШаЭбмгкЮЛЛТБФТЩЩУФКЛЧЭЯдЪТОЧЮЪЭНЈЌЊВУКЧЛЕЖЏКОЧУСДКЛЧаУдпжежейЭйпчцнтггсЪзЫЭРМВЛЁЋНЪРЛЕЧЦСЮнЪЪФЦЕЉЃЋБЛФФўЖТТОЎЪРРННЗЮулЮЭбгФОТЩемгпзЫЦУМШбнегЯЫМЦадТОЇЗМЕЗЯдЯУЛЗЕБЏЏЛСгЭЮбпжжеЯггмеЫктрмжлаЫММНИИ€вУЫШШЏМЅЛнычцмжлреФИНОТСКИНФЧИКСКТЕФОтзЮаркажеШгпрзжСЦТЪЫШаФЏЏКЕЏАФЛМДЛСРЧлсуппщцзбаЪФРЩБЌЊЌЖИУЧТЩЫШЮРДОгжмрслдйдбеаШЩЪЫСФНЫШРЛЕЄ”ЉркЯУбзрухчушшхсйзжаЫЩЗЌЎЅЉЎЗУгеУДНРЧЭжйЮЯцнгдЧЯаЧЭРЌАЅКУЮбЦМЖАЌЕелкЦКЩскхрнузгбЕЕЪРЗЛСЕЩЕЏЇЄЃЉЏВДКНЮжаплйкЩгЪЯмрммСЕЕЎВВИМЭЯдДНпщчшпхщэыы€ЂђѓюшйгМРЪИЕТЩЎКцЦААЌЃЗЛРОТЛТЮЩТЩЮгЧУенпрежйТАЂЂЖЪШетцщшттйыёјїїћёжУЖМЗАЉŸЌœЁИИаЩзСЗМмШКЎЗЭбгЩЧШЛБТЫддЫФРЖЗЪЮРджрчюьђЩжђылСФЖaNP;-COIS:;#+Cj˜ФШžЛЉžЯЧЧФИАДУЧгаОБЦйрмаФСРЩжЯЪЗдлѕјђїн˜Z@;@&,TM"."WFHB$&3G"U5LJ8LCSЕЈЎЏЎНнтпнЮЛЗЕЌЊЕНЦЮцРзпхКЌБЄ}^F0;S:EJ3:B94.,?F5>(?B9IT4:3(?@*ЧЏ›ВМЦаЦЩИНРУЛДЌЗСЮЦжЛЏqHSG.-..AULZMAB<74311)&4<9A?43.;45VSЮЮУжбжбЩЧЖМТкткЩВйшєј™\@AI:9><@@7HOI+@5-0..%3A;<>;B?-,0AFA75.НЗЫЧСЮНЛЩелплђјїцз’ŠS8:BOGH:A>517ETOL>(#<:0$0<<;5"+>.*1?BA+$ЛОЛЌЅКЗЏЈЏЂНМеЦМ]EYQI>27GHCHH9$&03#HF+.)(&,+&7151")O?*,>мгСЖЖИЧЗЌЏЮбЗxnC417<427,&%-%#*,2<%(""$*-,.,!!&(урУЏЎЛЖеялЂ…[VYBWVW`#217410033*+1#&,(387:%*,4)%,9:8)0%#!$ЯЩНБОгпЮВcH@H8,8@TSJYS1*-)$(005>? "(,2;47*,-&!)"!"2>1.гЩЭзэаЊƒbZW}uA%.?@IHI>%$"%$20%25>-,+("&. %"$*725- $U5!$-йзЗŠoZA@>>PadS09::>9P1+01&"9:-BB! #%"0*($#*1+77!*(#!%.%)28ЯˆJLESqeECVJ5UJ;9281(-,14#)*8+21. %*)!$% &&")?a<,7?FIC<Cd!.-*##!$*a^8"HL%UTa>23.*#!&451!C<0@HEFF.4.35)FM[-*(!%&5n$@IBBJI:*5.$"!92,"-3&)--!;;EC<27.17CBCFCE@12123,1?9$&3&":,H-(#F5;>CEE7&%,)2?274,78:<7HA9>+8;78751BEEF829791-.%#-2481%#-$*+@kC++%$4- <@";5.3.9<83*@::*.479BEE€ЊP[7( .@,50,)$)53*&*!)#I?9>NVH:+4,-1,*CFALQPA,9"49.;9?4-1$0-"I5::,1@J>:|ЎИЄjJ^ЂЉЛ|˜ЈY.F772-75J>A952I>kE89:8*#2"*,:ECF$*@-*HESCBbxИљјўћ§§ћћ§н§ћљћ§§вчшмЭЗmb04>).-)15!>)>@&%+.>GNMPFJYNJ+-Iq–рўћљљіћњїљјљ§§љїїЮјїћњљћ§§ћ§-03#0.0%"3>::1+?^YQJGMQM@ABSrЉл§§љїїєїїјќљјјїїењѕєѕїјїѕѓєєђ42,,5--"%1>AB8.5;JNNOE;FB-8”к§§Хјѕљјїїљїїљњјњњ§љјјљјћћњњїјѕјјѕ5@;79!*!FM;8:87&9BSbSo>S}Ѕє§§§њўјјіїњњћ§§љјїћћкїј§§љњјјњјњњNPQ1$+JE2T`L<LOJTO]USaOHЖ§§їўњјј§ўћў§§љњ§§ћћњ§§Юљјњњјћћњњ§§њљјјљћљћљјљњ§7EBCOI^FIZVhЊЮ§§ўњћјјљњ§љ§§ў§ыњ§ћў§§ћљљћ§њћљћ§љљ§њўўяћ§§љљVcQ\i|T]ƒЌю§§ќњ§§ўў§ўњ§§ћћљњљўў§ћљјћћ§§ќљјћ§§хњћ§њњ§ћљ§љјї\;@E]˜Фь§ўў§§ў§§њњ§њў§њњъ§љћ§њљ§њљњљљјјљћ§њљјћ§§№ћјљ§§љљјїјјњŒБж§§цјѓёљѕєђюєѕєїѓѕїїјњљћњњ§њ§ўўћћњ§љ§§њћўў§§љљўћ§§ўњ§§ыњљћ§§юђњїѓяюяёєєђяђёѓѓ№ѕєѓяѓєѕїљѕѕїїњњћћў§њњћ§њ§њ§§њ§ћў§њњ§§њљ§їєёэђѓѓђѕїєѓѓєєѕїѕєѓєѕѕўїѓѓєїўњљљфјњћћљљ§ўћўўћњ§њўњјљљћљњїљєђѕѕєћїјїїѕѕєѕїљѕјѕјјѕєјѕѕяїњјїѕїјјїјїјћњ§ћ§§юњ§ўћ§§њљћћїѕїїљјљїїјјїѕѕђѕїїјјћњјјїјјњњїјњјњїїюјїњњїѕѕњјѕїјћљљ§њ§§іћїљћ§њњ§њљљћњњјњњћљљ№њљћћљљћћљјјћћњњїїћљјјљїїўљїїіњћћљѓэюѕїђљцњћјјѕѓѓяяёєюѓђђѓѕєѓњђєїїљјј„љїњћљєѕёѓёѓѕёёєюёёєѕјєєђђёюєёяяђёєјљїєљљѕэььёєђђёяюѓђєђѓѕљєїњјїѕѕїїјєѓѓяяёђёђёюьюэђяѕѓёђѓјѕєѓёёєѕёњєїјяјєђѕёєђєђюђђяяєєјѕјћљљѓїљјѕѕєїяяёѓѕєєцёѓюяђэєєїєїјѕїѕєёѓѓѕѕљєѕјђђъѓѕјјєѓђєѕѓєїљјѕљјјљљњїїћђѓёђѓѓєтљєђђяяёєєїљљѕєђѓѓђѓѓђђюѕђѓѓђђѕѕёєјєїѓљљњљљјљњљїї€ГѓѕѕђєєѕєїєѕїѕєѓюёѓѓїљѕѕѓјђєѓєєїјѕїђёѓђѕєёѓѓѕѕѓћїїћљѕїјњјљљњљјјѕјїљїљїєѓїјѕѕєђѓђёђђѓђєєѓђђєёєђђєєююђђѓёєѓѕїѓїїјїњјљљћћњїїњјјљѕєјѓєєјєѕљєєѕєѓђёюѕяђяѓёђюђююђђёяёђьююєђєєђєюёѓёљєїљљѕљљќјљјѓѓщђєѕёђѓѕђєїѕєєђђюёѓђѓђєђђЪэюяюђьѓыщыьэљїїјїѓєђєђѓѕїјњїїљљћћљѕєѕэєѓѓэђёяяѓѓљэкяёєєиёєєяѓёєээшэяюьыющыэёяѓєѕљјїјњњјѕїїјїїјѕѓѓъѕюьђьёђёюёёѓђїюыьчђєђѓѓзђющыцэяђюыщьюэьѓѓєѕѕјјљїїјѕѓѓёїђѕєђєььђђььіщяпсьђїђђяяИѓђѓѕїєђђєёѕэюёѕѓѓђёёюэђэїєѕїјћјјѕїѕєїѕѓѓђѓїѓѓёєюєєёяэююэѓђђяёѓяѓѕѓёющэюяя№эѓђёєєѕёєэѓёѓяѕљљщјљљјїјѕєєѕїѓєђѓђѓёђёѓёєєХёяюэєэёѓёђёэышцщэѓђѓђѓёѕѕђђяєєђђюњјћњїљјїјљћѕєѕєѕєїѕѕєёїёєѓѓ№ѕѓјїѕяѕяёёђѓяёяььдюёєёэюёюўєжцьяэяьэњњљљћјјѕљђјѕѓѕєђїѕїѕїѕѕѓёєєїѓёюяђєїјёёїђёѕѓёяыыээфюёюхтыёяюэщљѕљєјѕѕєїєљєёѕѕїљљјјѕѓєљђїєєяЯёяёёяэёђђѓђяэштцюёђюьэщюьюыюёђђшщњјїѕїєєѕяяђёёяѕјјйѕёєёђєїјїєѓѓяёђяїхЯжїђђюяюшыяяэёяюыььыёёующццьѕјјљєїяэющчщщљѕљјѕёюёяєёёЪѓђєѕѓѕђьчулыяююяэщчыюэёяюяьяёђэыщцхщшѓѓђяђяёэьыхсђћєєѕѕљёђѓѕѓѓѕѕ‡јєѓѕђёєяшёшюыщьшщщьэђёяюёяёђэьыхчьыюёяэыёяёэёыюшьёёњѕѓєёђђюѓёєѕєѕѓїђяѓяѕђђюяцщыэюяьюшщэюьђэюыьшчхшыьёюєюђёѓєюёяююѓђэѓїјѕѓѓЦяђѓѓєѓєєёюёюёђѕѕѓёђяђяяшющчьёыыьээьэщчшщыєѕєѕѓїєёѓяѓђѓѓђѓєєЩђєёђэьээююяёэѓхьыэєѕєѓђѓёёяяьэюэыщшьюђюэёэѕюяёёђїєјљєѓїїјъѓѕёђяёђьюђэщыччшђёђюяююћѕєѕїєє§ѓђёёШшщсрушяяёєђюющёёяђєєѕїїѕїїѕђђёююьяэєёёюшхптрўђђєээёѓѓђєѓѓжђюэююяььцутсуцыщыыэчђяѓђѓїјёѕїєїѓєѕёююцщшяяЭѓђэштщђѓёёѓєђјѓѕѕђѕѓщщцьшшыыёчэчхрсрхшщщяяюѓёѓєђїёєєчјњєѕёээььщьюяьыьљўѕєїѕјїѕѕУљћ§јљюэяєчцьыктўчшхртрщьээяёёѓєђѓяёђђєѕяђђээыччьюѓђѓїєѓђёяѕћўўЭѕхнЭнЯйФЖЪЗЖЧЩухєјўцрчњюяёьыяяѓђёёѓяєїїєѓююёюыюьђєѕѕ€іљђђўўыУЪНiPVC@Ia^aEA+4Jr™žгмОЩРСхюђыэяээѕѓєђѕёђяёёяяёѓђяюыёђўўњўэž‘›^H@A)-\N094eMVL7%-BO3+\C\TA`W`эщчхуыюђєђёђэцтуушююљцљўјлСРЅƒdJ2:TALS?ABE<:CNL9<7!EOHS]@NA9FH3эчцуьёёєэюэяюяэшчшьєћщд‚PWL7327E9;@`YђьяыєђђѓђђяђёѓѕђшљўўЧЅjGNJB;C@>ACBPP8A<7:8-2924?AACFH@FC@?GNIC:9юёщьёыэььщьюѓўў€šчЊ™\9@JWMOFAB>;?FLOLA<9>?5>431;BE?;<9:?<8PNIB78ёюьщьыьшхржхчэшЩ‡bG]]LF8BHN@IM<:**:.JF.23,++0519>>4-1330)QG?(8>ѓёяэьюьятуёїгŠ{J@[uUEC859?:<>85.,.!&%&1&"*.?@44-+,0:>:7*--.*()*ђююышцчїўћН‹‘e``H\ZYa*78195787940821.++203>A@:<<3437C9;953.(,.,ѓэшьюћўяШoOGI33>GZPQ\Y57,&)%%079;N #!%10#"9<-8<72+135348?HBC""ёёѕљўшД–nd]|uG:@@ENH0,,-110.&$).-235>72,%&+-108:у’WNEYxk@EUL9^QB@?50)*9A9::83?<9:"%&,&,3)!&&,%)&&*04:k@.B?POE>EGJGIHE<4-3,2>@CIn%4.310,"$#0m[49IE0]^dC3031,*(%*371*)I770*%7p# FI@AFE@B>4#$351+414945(%8BFHB<<41>LMCGPHE;74:81;C?(.23(+,02B:( .EA;;>EF<2-*47473079;9>7A@G>BBC;??:AHQOF@:87980)08953471&**++,LdI;-17::%;@-895.23>;,1CB<:;?ACIIFCI[<.;B;::85384+(**&)..*))4"1350%;ESZIC#%934.*%GEGA;ABHLPWM7<.,-5<>>?>::8:)%*)FBG;(5?E:8}ЌРЌЇvMaЃЈОŸА\1H47.2>;8IEpI49BC32)521?FGF0.E94L@SBBc~Оњї§ўўўнўўгуытйНnc9:98433;30C*;AA:2.7BEPSTPH[SO.3Nwм§ўўћњњљљјњћћќњљљњњ§§ћўўл:7441575,%*9BB?>:I^\SINLNLI@F[tАтўўњљљњёћњњљљњњљљјљњљјїїіѓ:4::792522ь:@><848HOTGFAMC*9”рўўѓњјјњљљјљљјљћ§§јћњњћ§њњљљоїјїїј@GFBHIOW]WQOZi;A™бѓўўљѕћ§ћњћњћћњњћћў§ћћў§ћћњћњќћљћњњя?@CGLSWQZcU[bJFИўў§ћў§§ћ§§їћњњ§ћ§ћћ§§њ§тћ§§ћњ§ћњћњћ§ћ§ћ9:a[JQ^YM807хэцьўчОЄ}xrœ\3SZcacZZ;4EB@GEHPSSOF4GACMG3:75:5>;CBICGQA7%@aSLPWUVi`I*49AAFI@>F7@FHEEJLOB>G>1@AALJEш˜]]Up’YWubQkiZPQPG?>LOLGEFNQPIU,8;18:LAF:OOddYTU[W]Z\UOTJCBHPTY\{BAHFMEA<;:7E…YH`aFnr}VFCQJH@8ABGJAIISWM\VT^aZbjgae\\SWGMLQTI\j|5EPPG;F0JC![e[a\`WVNLFCLEFJEIGIMIICI\Y[WSHUMN]e][ZcW[IONS@&AVQBTIH<7ACGYJ5GZZUY^a\TJAIMQFHEHJCTYPG[TUZQVWZOPW^[gc`QLMPGT1WU\O>HSZLCТаНБ…\pЗМе–АФd->W@G@EOOл\OPSMc^ŽdHSVPPGUHCYPZ``@MWFJn[mVSz”бўўўьўўјжюща‚vCOQMLJIOSGV>-TWWOBIG]b`emgcznbEFaŒЎюўўј§ў§ћњ§ћўўі§ўњ§ћў§ў§ўўоMSHJGQEEA::L]TNSO]{ue^^k]cVU\oˆШѓўў§щљ§њ§њњћў§ўћ§§ўњ§љћњўњћњњсOSHHJICC@BHLTVOTI^ecii\J[V>LЎѓўўћшњћњ§њ§њњћў§ў§ўћўћ§§ўћћњћћтљћTSLOUSF@#UhOOLLM;\Ugtj‰Ui›НўўЩћўћўћ§ћў§ў§§ћў§ўћ§ћў§ў§ћћўћўћўjdhYAItdIk|bQ[[`Tdvq‡Иеўўќћљ§њњ§ћгўћўњ§њў§ўћў§§ћ§њ§њ§њўћўT^YY\`Wuwkea[AYwuqВўўћћ§њ§ћћєў§ўћў§ўћўћўћћўўћћўўћћцўњ§њћћўUTLS[gjqvnmci‚OUЏуўў§§ћ§§єћўћ§§ў§ў§ўў§§ѕћ§§ўћў§ў§ў§§ъўћ§§ўUWTT\kjmrxoovaQШўў§ўя§ў§ў§ў§§ўў§ў§§ўў§§јў§ў§ў§ў§§ъў§ў§ў§ўQYSOhbx]ZmmТшўўњ§ўћ§§ўўў§ўўў§ўўђ§ўћў§ў§ў§ў§ў§ўўё§ў§§jiq…œhm–аў ўљ§ў§ў§ў§§§ћ§ўўђ§ў§§ћў§ўћў§ў§ўўэ§ў§ўћ§§ўћўnTMTpАкњўўњ§ў§ў§ўўў§ўў§§ў§ўўљ§ў§§ћў§§чў§ў§ў§ў§ў§ў§ўў§§ўћўћћœЩцўўђњјўљњјњњћњњїћњњўћ§§ћў§ў§ўўњ§ў§ў§ўў§ћў§ў§ўўњ§ў§ў§ўўўїўўўљјјоїњјњѕњїљљћљљњљљћјћњ§ћўњњћўћ§ћў§ў§ўўў§ўўў§ўўў§ўўќ§ў§ўўт§јљїјїљїљїљљћјњљљјњљ§љњљњћћљњљљјњљ§њў§§ћћ§§ў§ў ў§§ў§§Ьћњ§јњїћљћљњјњљ§њћљћљњњћњ§љћљћљћњћљћљћљ§ћўњћњўћўћ§ћ§ўўќ§ў§ўўъ§ў§§ћ§ћ§њ§њўњ§њ§ћўћ§љћћћњ§ћўћћњўњўћўћћў§ћћпў§§њ§ћўњўњћћўћ§њў§ўћў§ў§ў§§ћ§ћў§ўўѕ§ў§§ћ§њўћў§§ћўћ§ћ§§рћўћ§§ўћ§њ§њўћ§њ§њ§њ§њ§ћ§§њљљєљ§ј $џўˆˆўˆџ0џўˆ ўˆџ џўˆџўˆ ˆˆџўˆ"џўˆ#џўˆ&џўˆ*џўˆ. џўˆ/ џўˆ0џˆџˆ2ўˆ>€ќШЯгРЮдкдтсЮУНажбепхсмйлмЧТЦЦЮйкмйЯгжЭЧЩЦТИЦРФЦЩЩРКВЋЎДЕЎЅЅЇКТРЛЋмЩеЫЪЧЪйлслЯМЪгупбмйаЧЫлпссгабжппеЮаЯЪЦЧЫРМЕЖРЫШМЗЏЎЅЊЇžЅЊЎМРИЖупнЪЧЧЦНаазмлмежпблплеШбпрсммстьшегЮЭЩЮЩЦЮЭЦВУЧТНЛЋЄЁЃЈЋДЕЖТЦЭУйЮЪРНЛЛЩддбЭЮзнпнмсхрЯФЮадЫШамлаЭФВИСТУЭОИШЩУЭддМЗЎЅЅККАДЛФООТ€~ЭбгТЦРЦШРЩеФЗФШзебйжлаШЪЪУТЦЫЭЭЦУЫейЩЮбИ™Ÿ›ЅЈЗКАЇЉЦКДДЖЏОТФНЯаЪЯаРМСРЩЪМСЛЪИЛЩЯЪЫЦЪЫйЯЫФЇАЕКЖНУИКЦЭФЦЯЪЛВЄЁЅЄЋž•œЃВИЗФОРЛЗУЭЛЖНаСМКдпрдММКОРТЭЮЭЫСУЧЪбЯИЉЏТЫНЗЕЉЎМЫУКЗЛИСЕДОЖМЖЖЕДЧбгуцхкШЭЮЮерчеЫЮгкзТООагбЩйЯУШОРФКЛЧЪМБКРБЛЩСДЛДЗЌЇООФМТИМНЦЯййЯетщхршщэьёюээЧСШаЫМБДБОФЦМЪЫЯдЩШезОИЫбЭееЯаШУЖЏЊЎЄЄВКДЗОЩФРНЪжййгбрмещюђѕђюшчУУИФСЉЊЁЏВЖЌСЫЮдбЧймбдаЛНИЎЊДВНФЧТЧСЫзллуцммжджзажьюышпущшыщххТМДЏЇРмжЗЋКЗЇБФйЯЯЮСЈЄЌЪОЋИНЎВЎЏЗЩНЖШЫКЗКЧФЪИОНерргбнуюыынжмлпнн€уЗЧМЯанузТЫШРСеаЧИДЖЕЖЗТВЎТЭдммзФВЎОкйУИЗЪЦОУЫзбаЫКТУЭнспннлжкжгждаЭЮЦЦТЏВЕЖВУНЕИТИЖЖКИУУНЛйЮФФаШЗаджжеЯЪЪРКМУЪглмЭЫЧгежгеЪдймнлЯЛЗШОФЧТРЗРРВНТШЦЫСБЖЫЩКДИИРУЩЭШИБЋЏЕАЇБОУУНРЛЛЦЪггЦШемждпддезЮаЭЕТбдЯЩеТРООШЧКОЛКЏŸЅКЗБЌДДНИНИВНДАЅСЯФСгЫаЩТЖРЫУКНЕДИНСЗМКЏЦЭРЎЈЌЖФЮбЭОАЗЗЉ”ЉЊВЎЊЅЅЈДЗЗЖИЕМаЩЩдаШМДМИЖЛКгбЩНЦЭФБЛОЉЌВКНКЕНИВЛЖЈЋЖУЩЮЮаЭУДКЌŸБЕРОЏЏВЖОТЧРЧОВККЗИТЛНРейлдМЧззЭЭдЧЗШЭУАЄЅЏЖРУФЦЫФЩТТШдШгЮЗЄЃЎЉЋАКЌНЛЛЪФКЈЉВТдаЩШЪШЩЧЫЦЪжжФОКЛОЧШЭФСЩОИВБЌЉДСггЫЪЮЧШДАЅЕЖНЏЃЈВЮЕЃЖеЫУФЫЪгЮЭШУЫдЧЛОСРНЫЫТНРЧЗДЧгйеЦЛРШЮЭЮСЖБЁЎШбдзйлрРСЮзШЦзЎАЈ|]<-žаЭЛСЭдзЪЕРдФЕЎЖФЮШаШКЈБФНАЈЃЌСТСгдЭЩЯЯЮЪСОЪЫгзнтуООМухИВ–Q0CWFЕДСнеЫЩУЧаТМИМДЈЛЧЪЩНДАЊЎДШЪЮЪклнсщупсаззгЯЪФЩгжмжеЖАЎЕŸƒ‰k9\‰ЇЭЄ‹АЭлЩбйзЩЫРНЕЗФЭдгйеЮбгшпруснсцмдектунспййЪОТРаЪЛЧНЦȘЅБpAŸОаЖЇДЮЮбеЯмгждЪЧФШЭгЧЫЩЩ€ЊЮлуссхмйкйеЫЪЯбаЮежйЦРОРРУЯЛЗУЖЋЈЎЖЊЎЮббаЯЪОЦйнледЭрпЭЫЧЛЦежЧЮйЭеучскбЯЧШЪФОРОЪжЯеЪЦРРЫзаЯйЖНКЪкмаРСШжклЭЫЫЪСШЧШдзЮЧЕЏМНЧУССТЭЭЫШдзйбгЮаЯЪВЛЧЗЎВЖЖКОТЭгаЯккУежггнмжЫЮежклаа€ФЎЌЗЦаОНСЪблпЦЛКЦЧгдЮУЮЮкхсеФЦЧЯЧВЊЇЅЏЖЭйЮОНЩЮаЩЧзлйеЭпйжйЯапкенм˜ЕзЫУЛУЭккЭЮЪЦШЩаЫИАЗОЧЪкжРОУКЛВЂЅЖОФЭЭЩЛСбЯгпзйуСзЮаЫЮкмпмпххюЯбцкШМЖОЩаЮМЪОЩаЧеШЧЗКЕКЫдЮЛЦФЪУМЕДНЛНЪЪВАЛЫТНЃШЈВБЧЫУЭбзТЭЩжпмнрЯбЮЭЧОЪЦШТЖЖЛЧЭШТТШИАЄЄЏЕЏЎНОШУЗЊЌЊАТЪЫЏЎЌДЖЛ,YN}|wЈбмёхещунсФЩЪШФТШгеЦЛЖЕЎЉАВРСДИНУЇЉАЕЎАЏЖККОФМСЪЮЧУОЛЕЖЭеа;!$24!BPdgghz™ИЯЧЛЭєуРАЉЄœ˜АФСЧЛАЏЅЁЋЌЎЋКУДБЖЛНЧЭЪзШЮЯШФТЪРДЌЎЕМ-3@+5*-.4$*?Y]gouЂФрЭЏЕ–‹ЌЗУЫМНМЇœЕСКЗЛЦДЅЇДНЭпусЮЪбЮМЕЛМБВЦЩЗ2>>8"!-<:02) "A-[•}ŠЗАЫкЦКИШБЇЉИНСЩНЛБЕЕЛСОЦФННКЦУЇžЌАЌЌВКС1.50*1:98,07?15B))0%(ZМдзЉЎБЇ”•ОФЛКЮдЪЧЩШУЭЮТДАВАЎЖУРЈЋЉЃЋДК)#*&*0+#4.!&<+$@!$n•АИ›Ž•ЈНИЗСАИЦгмтсеЛКЗЏžЄЇЎКЌЗДЉАВ"!%-93.;0&#&!)(.+(%1Q?5E\rnŠЖКФДЏРЏЈИКНЦЩА—ЅЊЈЏИЄЗЦеЭКБЏБО($%2+$$&-%!0.$&(TCB:8@2N*)#$H‡ЎЁžЃЉЉЃЎЄЉЇЉЄЁЎРЉЃЊЕТУаздЭЩОФ+)#*",(Uv>88<40"$&3<)1<>9:*$%A[j˜ЦРСБКДЌЕЕЏЈЛТМЦЫжпрткеЯЧФз4&.%)73-! .0*0#!&"%.  &3`]‰ЧнгЧЯймаЪантзЦЩажезЫИЧ:+$ #&$ 0U.I+ .97(  22I‚ЧчЧЭсгеуцчшутрждгаЪУЪ,&"02.$%,,+.?rˆb# ;C1 ]•ЈЉИТТОШбЪМЛУСАБИО##+(+(%,!$+$($"+11?4(%(   IW^ŸМгСМДЌРаТННУЦЛНРО9393"&)%!#!&+"$*(::-%;! 4%U…СыеАРЩМОЦЛОЗМНДЏ+1-:,+UVG #+!#-%$7>5+11)!!"(7:B?O>  9F(4[3G…ЉшѓязСДЛУШйбЖ.7>iI3&(->-+1, *%&Lq   Ф#+B>7$8>7HA8;A!2*U*  €›0!)+k{YC8nРпкСЭеЩММўеОŽSG?B$4GOC5#7837),*&,L@7  !   $+OFE1I’ЩЧКЮаРЖїєћ§ўћ§Ю›—iI(37.4@(.102 1;  ,2,>EH84>7:„ЫжрпИЁђѕѕќєјћ§§њЪяЯЇЄb+,49: $8   "*J59<0hЕтгУДјїїѕэєѓёї§њѕѓ§§љРgG?9@0--б *     52%0C@vФЭЩљљјїѓїљѕєїїѕ‹єњ§§ћ§ѕАSB*"%+#    *$:&"0+%!0C8I~ИдњјљћћјїєђєјѕѕјїѕјљѕьђїїђгŒE##!&&!% !##!351(+?nИјјїїјњЩљїѕѕїљѕѕїѕєђюєѓїУ9>?%%$,#    (&%?Ge§§ТјњњјїєѕѕїѕњћљљєћїюьуэуыђЛQ% ).&"%&0,;VY1!,>33+N91јјќљћњїїУјїєјњѕєѕїѕяёьсччцыћїжb9!!#.&!!(%,3##&3CBF25їјњњљ§§ЧњљјјїѕѕєѓьццшщящццшДЮЭ}\eS+-S?0B8(&#" %7875њјїїСјљїјљјњћћјњїњѕяэщьчщюэюѓтшїДЏНЮбюЩcCPHJGA4-:&#&$)1991>BљњњћћјёњјљјљјњјљћјѕюшяяйюэяяуюуЮМётїёЫœqd9*5IQO"",(#)*,%ToF§§ўћљљНћњљћњјјљћљїјјѕэєђѕђєёшююёѓђшэђѓцщЮцрc(@\`2"%8-,,"1..)-4ZQњјћљљћљљјљљўћљљЯњјѕѕєѕїїђѓюђюѓѓђюуыˆЋюЯuASogV?њњљљ§ўўўњ§§њ§§ћјњњїўѕїїоѕђђяэщхэёчСїљт–M+:CNO@1#.$91.,49§§єћ§§њ§§њўўћњ§§ћјљЫћљјњћњљјєїѓэђєєђцюэшчЊ@7>EEB?3028AC;-*8їјяѓѕїѕѓѕљћћњ§§§њ§ћћі§љљїљ§њљјїїјѕчёїјјћјэлq0G?<8:-%113хѕєюёэёђјѓђєђѓђѓѕѕєѕѕѓђёяђяёёўяёёШѓёююээюэюшьыьэыыцухцусмлежжпххсѕљђёюђѓёѓђђяїђєђѕїѓѕѓѓђёѓѓћєѓђєѓѓнєђёяђёэяьыыёюэыццутмпнкзкпртхрѓѕђєяяєѕёєѓёђєїїѓјѓѓкяѓяэяяђѕѕїѓђѓяяёёяяђяюьяэёёэшцпннрпсуххУщшщёѓяђяёёяяђѓђѓяёѓђѓѕѕєѕѓяђяђѓєѓёђёюєђёђђышшххыыяьэшышшхччцььЎыщшшїђяђэяяюёяэяѓёѓюёђђєѓѓєёююыыьђђяёяёяєяышукнпхцхсухтцуттццщщэшщэьэяђяєѓёяьяшяђѓѓђ€ЊюђяѓяшьцэщшшщыыьяяььэытсстчтстртхшьыэьыэьшщхщэююђяѕєђѓюяёюёђєђёёюэююьэшчщхцщыышщщььэяёьыычыхучыююєїѓєѓёђюьэююђьяэёяюёэяьяюѓёѓѓёѓђюёььщьяёьёяюььуцуххцэььыэьэюяёёѓёёђєѓѓєєѕѕЯїєэююэяьщцшщэюёяєєёѓђёёѓєюэяыыьыёэьшшуучыэюяђэюэююядѓїёђєєљћљљїїѕёьюччснлхчьчььяєђяѓьыьэчышщчшщээјьэьяьэяђђєѓёђєѕєѕѓѓѕїєєгђѓђєѕѕѓьщчыю§њьныьюыяяєёьщцсхтцыщчююёяюцчььэююЦђэюыяюяяёяюђђѕђђєёђѓѓєѓёыёэєѓђэящщыяыэюёэщччыыюёэђђёёяэьэёёюђёёэяяэёяѕєёяыэяюђђѓЦђєѓюэьюьяяьэыььэшэяэьяэыьюэьэђэђєђэщяшэьяьыщчшщьэьяяёѓяёёѓѓЬђєђєєѓђѓюёюѓёяђэёэяђээяёэьыыщэюэыыщьюэьшчцсхщычшщыэыыѓьяююёююэяяэђёёчђююььюяђѕэёюээыыэыщшусушююдэьщяюяёьэтцхцыэыђээщььщыщччхыьыьщшющыщурщэюяяэльцхршщэчурцьююяююьшяяьюычщщюэьёюєѓђяююнышьчьээьэщщььычуююђѓєѓёщышцтсьыыяыээяьюэяяььэяьяэёэёяыытюёѓяэюээьцутцьэяёђёђюьээщюыщчууЏшхцшёщэяьюыэыьэьюэюэюьээяёэьёщщьёяђээяюђящпксхыэёђёяёђьчюыьщылтђўюлпћљѓяёѓёѓяыююээђщюьэьяюэюыьэшщщЪьыэющхтсуцщяёюёѓєьэьэёёљьщеЌ‡rbЮњѓёюёёюэьэщэцучыэёэьуссђхччшььюђэяёёыььэюмѓђѓѓюьёў§шыЯ‡hŽ~пёьљьяэёёьычштнчьюяяЗщссхьяёэёюєѕѕђѓєђїѓєѓђђяяюђђѓёэщьцгЖРЧЂu–ШбѕкЦцщьђююёђщыххщшьэяээьэїљѓєєѓѓ§ёѓђђ§ёђѕѕўѓёёиюёэюѓшщчѓЮЯхшЏzУляљюыщёяђёєёѓѓђёэщтчьѓюяяјђѓєѕѕєђёё ђёђђєѕѓёяёюяюяяюцчцэчтыысмјѕѓєьэяђюёђёяѕёюёщстшэюѓёэђђєѕјѕєёѓђююяюёяэяэёююёяяёѓюэьёююэюяээюђяѓђюющьїэытсцшьэяяЈёяђђѓѓєєїѓєђёюєђьэшцшююяђёяяђёяюыюёѓёёюёђёђђѓѕѓёѓптцюьющьяђѓяђёђюѓяяюёюєѓѓѕѓѓёёэьщррхшэююАэьэђђьђяяёёѕюєёёєѕђѕѕђєШнучящчщюяёѓяяђёѓёђюэьюэђёюёюьючучыыэяяёюяёяѓяўњєєьэѓэђѓяя€†ђєѕѕўёэћњёььэяюьяьѓяюѓэёэюыььыыэяьяэяэщычэђяюящщчэьНуШзЩмђьёящёюєєђђёюѓююёёѓьяээьыыьыэюёэёщучьыььыэююэщыьэыэщьтцшэь9a[~ŠМя§ўўѓўљљјыяёёрюэщщьыэющщцэьыэщьцшцщыщщшыюяяюёяяюяьыэшыэE22@:)Fcwzrv‘Нтђяяёўўяыттпхцщяьщэышуухцщыщьыыщэёђѕёѓђюђяёэяыыэюы?JIE,1C>7;<,1Gopt‡˜Ощћ§эцеЮцьэщьэчхуцыяюяшщчщшщьяђяђёюьь€Bюьыьыья0@G:937M;$:8;>;r–дщѓсцумзлщуыёюяюяьюђђяэьщччыьшчэхттущш(($-77:74-52;998+2E51-4L3;ЖжюкЪЮкушычэьяяёёяььхчхцрпцыщяцучшч%%&1:@89<8134751&(-B>ACJTF8J]vŠОсшёхчрухтхшчярбрсспйууыыэяыьющ#+*-$0)$$7755978543:`HCHIFFLZC<1-QœгШдйрртртсухтуцтцхчыэщђѓђющыш1++.(!..,$V‡F>;>;.+788.0FB?M>020:JgtДрєёщёщщцщыэщэёяёяяёёѓђёюяь552515;+$>>590++-()!*1)) ).qpЃыўљёяёёђїєђёёєѓєѓёюээщ?51%1#$$2V?O0-:5-$!&1) ?>Qцўїюјїёяёђѓєёюяёюэыюы#-#34!-,+.4-!+B|˜b0>G3($$# 1)(rЄœЫсттщтшььшшьээШщшщ#&-0)%.4&#&&,.1"*. 5(5?:2.7-!. 7%VgqЮёїёшхщщ–эьюэшььыщ32;5%++1-)(1..+2.??8<17((!- 4 %<-`™цўўчёчыщщюэьшшых2)97*1@[NM*011%"(,1EHBJ+*С  Z<-LPqУкёюччшьюььэщы$*-7.-)(<@9.89%(-"%2FEGT3" я 8N7BdBnJ22)7BA1.-#".19!Oo # .*$@.AFde[Z–ЧнртьяёѓёюU[eQ-:A2"8;O’юўўљщуљјј§їњўўрћњьдЏœЉi,+,8E7922( $  &*%B?A4;LM…щўѓћћ§љњљјјљљј§љ§ўў‘љНŒ^C.*92,##5;G,(04857;CAU’йјљњћњћњљїѕѕїљњњљјїјјњ§ўўєй‘L($&*,*--!&$!",&!#+-?9C88G}дњњљљњљщјљјљљјњљћљјѕї§ўўЦ5"@C,,т& "$,$ &.8?23FOo§§љ§њљјјќљњљћћ€ВўћљјєїєљўўЛ[.(!1"$*%"&*,22;V]9)38H@@;UB5§ћњћћљћљљњћћњљњјњљјїєѕљїјїљўўуЅp7-+$02*"#&(!$&+44*!"(.2FCNI?<ћњњљћћ§ћ§ћ§ћњњљјјїѕєїѕїјїјїћїТпэœ•™…ao^93^B4H92,$,)&""-1>AEA@љњљљјњјљњћ§§њњЫљћљњљјјїїјїјјўѕћўЧИШрняаhEYBVJF@5I-$$,,%#049@@CHHў§§њњіљњћ§ћњљњћњњаљћљљїјјљїђљѓсЪјш§ўеЅwjA)BEOQLU;2*+AB§§ўў§§ўў§ўћ§§ћћ§њњљљќњљњљљ§њћљљоїѕєѕїћюнўўљЂU*#8OTJE;>90>@><@A§ћ§ћћ§ћ§ўњ§ћ§љћњњћХњћњљњ§ћ§ћћњћљљїєѕљњ§єЗEAHIIC?<7>@AGA28>љљђѕјљјїњћћњ§ћ§ћ§ћћњњі§ћћњћћ§ћњљљњјшљњњўњўюt2BFBB::757(;9€ХчщчлйюььђютрмчюѓяєђёьщюёпстнршчюыххшснмсгаегйммнаЫРЦФШШЦИЗЛЪгабУэчццтпцэяёычбкщђяюьщтмрююээщщьыёючтчцуйнтеаШЯлчтйЯЫЦННИВЎЛОФбЯЫЪюяясруулшцюьыёѓѓёшэюяютуыђяяэёђѕёыутхштрлхузЭзнмЯЪОКВЛНСОШЩалйукэшчегг§ршцц€zпьђёяэёєяцмхчшнйуэюхртдгезлсеЭймбсышгЮЪСНбйЭЧждЮбжждущызеркпжрчмкктшшщщшэьнснрлдучцмЮсшщцтнЮЗЕДРРббЩСЫжЯЦЫШЩЭбеблпкрпрдйнчсмйжмбзнччтлнтщхпмСЯЫЮЩееЮазммзруаЧМЖРНФЗАБКЦЭайлеЯЪпсгЮгпаЯашяђшжбЯдммцхццпллртчдРУазФЪдЩУЫрмЯЭжжбШЭзЯеЦбдЩжыыѕђѕыксрнцюѕхснчэшклеуыщряхсскежгжзкбажхШжулЦТЩЩСФЭйдмнжЮлтщыэтьёїїєєѕєїѕјјљлрмыукШЧЪйнтзйшщьлмшшкжчцпшшрщукЫЩШСННФЧЩЫЯмжпйтшцшэтяђѕѕњњ§љћїѕцмЮдеНВСРЦЮЯЦбптшцкэыыхнЯЮЦЩЩеклнркрнцыэьђяэьэёѕяэюѕѕєёђѓїєїѕєђѕбЩСЦкљюгОааТЭпщшэтЪЦМЯмЭФбдОггФдсбЩлргазшхцмагцђђшуэєѕїєььюьёёюёЯмехшѓяэтнпкйшмжЭЫЧЪбзлгЩмщщьюьнЪФдыылЯбццесцьщшцйлзпыюѓэяяюььэшхусрккжЭЩбЮШбгЪддггЯЭЮкмгдыэтхшмЮчхщтцткййЯбкпуыьуулхщчыцпцэюѓьхЫбмкктт€ŽгпднлкжртлЩЯссгЯЮЫбмучржЧСТЩШМЩееггзаЭкхцчрмущхшэщтшшуцуЮдтчспчпкжжсмкбгдШЎУбаЮЪЫбгбжгаеЯУЖжпйжщтыпаЩбсбЮЯЪЪЮзгаЫбЪйсбЦМФЯйтчшзЪЯаУЖУЫЫЧЧЛЛНШааЮЭатнрццкШЧлЫаддщынйкслЮЯаСРЭклЯЫгШЮжЯУТЪнтшрьхзЭбЧЧ€ бкбФЭЦалмскйзЯЯЭЯгжжнйчыэхдкьшхушлатхпдРТШЮЯйклцхкдмсчмчхЩРЖСТЧЦбЮЯажплаСЧЭмштпкуплйтупцьжйЯбдрмхннцсгЫСКРЯзьшрмхймЪЪЫЭЫабКНЫчаЗбчьхмцчшыцсдхрйЮжаггусегккаЫнуцуйггкнссжЫЧКФпчхчыэђбгрэсбьЭЫЧˆaLBДёпгрттшзбЭчнЫЦЭйнсынЮРЧаЫСОРУбезьшхзтнтпйймнчюяђѕгск§љЭгАdI`hTЫЮлєцссгнчлЪЮЮЦУжцунгЫМКОЪзпнмщьђѓїѕєючьяышймрцыђюьЦШУЮЎ”ŠžxUqЄВцКЁШлштрьцхраЫЩЪзмхушртцыѕэюѓэщэђьшцюёђђѓяђысдзйсрллаккЋЉОЮ‡\ЈНЮьдШЧщхщшщьэчшслеЯдпкллнруэѓёѓяяыыєьтспьцнщящнзз€~джкгЭмгЩНЦбФЦхщцшчмкзьђььчщяёррЭЧещымршцэёјђёуукпрлкмдйцчщсткЯсщшчьЯкднььхедсыёэурчнрпйнцупкШЫбелййлкмцнтуєэыырчцргеуЪСУЫЪеезхурсщэлышчэђьыхцщэюђэщшсФФЯсупгнхщяюйгЮпмычштшхыѓѓымрхусУРООЧасьцжепуютсьщыьшёяяэщыѓюээёЋВЯщузЮзсэыухуйснэтзЪадйкщылгмеЮТЛТдлсцхкжжчхыѕёьѓнячыршэёьяђєђўцхљїхкЫлнхумсзнцмчснбаЯЯлхнжзсуйеЮЭбажурЯЪерпеОцФЭУмнмтцукссыѓђєёчщцхнзпзтмЮЯаепжзксЯЫЛНЫЪЩЫЪйпдЯЦЫШЭнмнЧЧ€јЭЯдBqk‘Œ‹Зљљўљщ§љђњйнпукзхьчкагаЮОШШггЯЯеаФСШЭЫЫЧбгбзлзйххункбЭЧршшQF>NB9\q|}mxŽИЯшржтўћеЦСЖЗЎбнйргШЭСИТЪФЪгеЪЫдеглнтшрцюпспуеЮТЩЯжS\VO8:OG?BEL8>ILCNVrV4Jhx‰zЃЮбзЭЦкЭФЭЦЮкнЮЌЛЛИФаНЭжыхбЩЩкл:<>L@CJIECEMI@NHMC?M?-i–NGVQLF2BHJPCCcUJZP1@<:WvЏпхпУгЫФЮаЭФгпззмхюэёыууцпщHMHCEILU:SLFF5#&EJE<.@?>;0+*#*#)8>z}ЄкѓчйчяююруьёшнрцчщшржйQUC:;C1<909@<27;,.QjYdM+EPM55)+)!$-,!!HJbœчўхсђышэђѓєёёюххцптнт@I,C7YGUEEAFGIGG9AY˜В~B3Mb@$775+3.0E5.rЇ—ЅТСЭбканлмЯбздШЦЭй5<EP7EOM;2%!-*57H%%)E+3`krЗзцжЯЭЩжммедзгдекжISHBGE:I@F>CEICECJ2-QZPPMO:&2-)"()G.+E4cžлўђЪйндйлнйеЮеЮЧ@LHJPILreV(?BHG@A:B;FFS^UY@<%#"#%#5hC+O]oЉКакТРТЫбЯЩЯжЫC>MFO?HTN\EJMJB;L4TTod^ŽЊСТЫтчыыяыadzdELZM?TVQa[CWa;@L7A>MBo@(.+$$!!Ј):CI@&Hˆ—x`H…кѓялтчуеЯўчаЈZSJV8JbgQC;HLNIG?CBGa]P)77-%)))&1I@@?15,9(+,1%&))3?EM\C7A@CHG:J]Nd—ащћћ§§ћўњњљ§љ§њўњћљ§љ§ўўЩхЄW:*4:B5>>?9;?4#%(-:%7?>>99E;GLOQG?Y‚Яњў§§њўћўћћњ§љ§њњќ§ћ§ћћўйаG2MUH<>;3+75%"-1(IPB;TW|§§ћ€ю§ћћљ§њўћ§§ўћ§љљјїїўўЩc9#2%&A-42E:8493AA?IUdmM89CEaIPMcJE§ўћ§ћўћ§њћћўћћњћњњћљјїѕљїѕћўўыœzA71)&7EH@2-EA<7<>EGC<7>>JT][`HHћўњў§ў§ў§ў§ўћўњћљњљљѓјєњїњѕћїТлчЂЁЄ–twnE?n[F[MF-E8:8>2;@@J2OUZZYћўњ§њўњ§ћў§ў§ўћўћћњњљјјљјћљљўї§ўЫЦЮшэўсwWjagaWOYa>4;99єB923;;@3;13EДВДВЗЌЕЏqmdv{vqrvwБЕДМЧМЖИЃx;%!(3+-G$ :)&,;[INHCCB77>?GF2.98)A[|ИрЭА„nrnz‚‡zinwОЛЕЛЩЭЮнтыЪ|2HGCSP9>4139MEJLIGC;,((B>5:;A*.8HМЫКŸŒuQ[ccq}vdjƒТРЩЮЪдзчђьМ—aA>MO7EMNG@5-.2-42EFGA92#,%317>@A-,+GQUoqwib]iŠ‘Š~tnййзлсщььяхЭЗЖЪУ™^74+:GC:4)-).2;@?<>;<>:74-..7WI>2;Ghtagz”‹ƒzu|счшюёё€ЌюьшйФбђјёЛqZ;9NEA8@0&,(4%NVTB92+3457,3:@;.(1Jn‡›‰wƒяѓђёыэыэьююээюёєјёЫa@I>8EO<,4+49:<82*&!$3,:949E@87251,C;S|ЄЊŠ„‰эёээхушыьшэчыьэячщђИŠZ8Q`NP;@>44<3>IB-()(():B7$(*7447)%1:YКФпшюяюэшш€”цттрпйпхчпсёрЋoVIWB>@FCIOJF#"-&*44(#*,7519-03bЅСйнцурйгбЯЯЪФШЫмйЪЭЫжхьутм’L14@>?873AP1,08+$214"*+((-2#3?ЩЮзстжЪЪУШггЫЕЁŸИТЦМЛЎЎгЪŸrM332A883FE7&(9230&$)#4--%&2;@CCP;?2гжммкдЯЯУамплкДЕНКДББВЂЄИЦЕЊœS>C]WLIHC:.,)3;212+$!!#101-,15#ЮгаЪЭЯЭЧУЧЮШСМТНАБДИА™”ЄЎТМЂАЌ{P@;:B59F;-"%!$%-*%-#5:,.!ЎЌКФСУРУТМНТОАЕУКИОДЌ˜œИИЗБЇОСНЇg*8$3;($"$(&%0ЮЫВЌЕМКЗЗМЖЫкнйдкпрркрпЯЩЪЫдппзеЯСЩхнЕoP?(13;CO]E*$&&*"!мЧОРзлгбкзЮЯмнпзйзбЮагЫТРСЦЯекбЪаксяљєйЄ]HPE(:3:>4A;")%нмжгспбЩбдаЯЮбспаЩФалкЮЩШШЭакк€пнчтрсщхнЮЎ|J.-$03>8(!!- гзнймсмЯбЫлеЦИФУЗЕЖОФЭЮджЯбжлзйнрпмнмжЮжЩФЕˆhggCANP"!-12#$УШзлпрсплезЪККТКТЧНФЧЯЭбаЪЩЫЯзнпхмЯаФЋ–—œžЋУЖ…vM:$(,22"#%+.$#гдаЮЩЩФУЫЮФФЮемнеЭЩЩЯгЫОБМЩезФДМЧЯУИЌЈЃДЕЋœЉТМШЗz40>41%#$,.+бШЪШЦЫбейЭЧакнтцрлйздЭОИББЕКРМЋЂЂБВЋЋЇЄЈДЖЗЕБВНŸ‰S(3?E-#%СРУУЩЫУФЧзртмрстрцмгаЖЊКЫбЦТФдеШРИЏЊЏМКАЈЄЉЛЛНЮНЏž|H;;+$)&кЭЧЎЉЎЊЌЦеЪСТРНЂЃЗЕРОЎАТнсмзШИЕЛЮЯТИЖЛНЏ’’œЅЂŸŽx|‡•z`L5<.)!#,ЯИИБЌАЌВМФТЫЫИЋ™’—ЂКРЧЭШЧРЧНЎЉЊАЏЋБВЗДБЈžŸЏЉЎИЋ’u‚ЂŸ˜”tUH2;A,++€ƒНДЋЋЌЖДККЧЧОЕАЈЂЂЗОЪдЭУТЛУжккнлмЭИАБЏЎЊБЛИМЖНЧкЭЂŽ•ЂЁ—?35%:IGНРИЗРКОНИББТТЗЕБВВЗСЧРЗНВЊЊЛЭШЩЫУБДРДЗОЛЛЗДТЮЯЦД›ŸЂЂŸŸ›ŸœŠ~V@%-ЩЦИЏЗРЦРЖАЋЏТЩааЫФаййЫИЏЅВЖММТжбЦЎЊЈЌБЗМШФЪеЯЦТОНЕЌЅЎЌЁРЯЌЇШШH?ОЧЩФЯдгЦОВЇЛУНЕДЊЋВЗАЋЇЈЊКСРИНУдЗŸЃЏЛЖЗОТенСАЕБДОЮЩЧЩЦФЩЪЛУшюА–ˆЕРРЗФЪЯЫЕЎБДМУМКУбЧЕБЗЧФЩЮУВЌЂŸЂЄЃИУЩЩЮЪесуеНКЛЎЌЕЩЩЫЯежздЩгТЁЋЖЛСРЗЏЅЉžŸЂЅЅЕКЗЗЛВЇЋЈЄАФЧКДЋЈЊЉЁžЛЧЮгекпнаРЕЗБЁЃЉДВЖЊ™‚ŽЂЊЄЎг˜МОЛКЏЈЁžЄЅЌЛдзНŸЂŸЃ—ЄБИКЎЉЏЕМКЕЈЂЏКРЂ™ЇНйЦЖККНКБЌЉБОНЗДРТВЇЁ–—”ЅЅЇЊЅЈЊЅЁЏБЉ›Ѕ›‚’’ЁЈЏСЮбЯЗДВВАБЛЩущцеЛЊЈДЕАЎОШИЁžЉЏЗТЫгЯЯЫЛЕЊЁ•ЎЁ›—ЎЗБЏЎЉ•‘™ˆЋУЮшжСЪСКСФЩЧЪЯЫЯежжлКЛШТФЭйцНЁЄЋШЪЛЖФУЦЩНЖДЏЎЗНБАНЦНРЧЧЩЯВЉЌЏЕОЦтутуждгмрнжОВИБСТЛЗЋЌЋАЗЛФкншзШЛОЦЯгжзйпШУКДИЛдЕИОЧУЩжзбФОЛФОКФббТЧЩУФФЪбааЧЖБЉАЖЏЋЖРЕБЋЌВОЦЫЫЮЩдмзаШОЊ—Ё—–œЉЅЦСЩаЪбзссйжлйбТИЗЛИВВЗВЕТЦМЕИЗСТЕВКЧШджеЦДБЉЎИРЫейЩСОУСЕЖЗЌЊЉЕДЊааЫИЗФееЦФЫЪФСУСЧЧЮЭгбааЯЦРЧЦКФадЧЧЭдбаШЛДАЋВЫйкеЭШСМНКРЦЯкЮЫмЛЗРИРИЌКТДВЗЫЮФЛЎЊЈАЛМОЩЯдЮСНМИЛМОТОННОЛИББЗКЕСУУЧОБЕСНЛТФОУЧендТЖОИЗНФДЏИДБЇАЗЎЊЋЎДСЮЧИНУОУЪаЮРИИНШУВВНОРООЛОФЖЋЊЕРФРЛЕЎЈЕФЮлгЯЭРЋВАВВЏЖАВЕДЌЊЅЇЋАДМЪЫУНЗКУЮаеебЮУЕЋЋВЛОКЩаЮТЧЧСВЏЖИЛИЇЂЌДМгпезрлЏЕДЕЏЋЉЈЇЏАЉЉАЏАТЧЫЪЛЕЊЖФкушткеЪЛЕОЪажжбТЕАБАЊЕИЦжнгЉБСТНЫбТЦЯЮЎЕЛИЗЖДДИВАЏССЩЧФТЦМАЏЏЊЎООИЛЛУФСМЌЅАНФМЧЭЮЮСТЭсрнлЩФТЛЏЈЃНЪЪЯЫМШИССЩОНДВЎЉЊЏЭбЫОЗМДИЋЊЎАЊЉЊЈКажгЩМОТОЛЕОШЧТУЩбтудЩЫййЯЌ—™ЊДД€-ЊŸБЊЊМРРЖЈЈЋВДКЩЩЦЦЛНЎЌЇЅМЪИЖИЕНЭОДКОЪаЮЫОНШЩУТейЮллнЭЦЏЏЉЈЅЇЏБКУШЖЦЫЫЧЦНТСНИФЪЫЦЧУЗЖЋЌИИКМЕЈЋБТЛБЈЊЌЋЏАВАЖЗЁ›ЃВБŸЈЃДРКЋЅЇАВЖОЛСФЖЈОШНЕЗУЮЦООУЪЩФдЧКИНСФУТОИИЏЏБДЊЉИЕЎЉВСЛИАЉЌКВЈЇЉЊВВЕСТЧЛМЧйлдШЛУЧНТбЫЪбдкжбЪКТМИНанкйЧЛЇЌЕФЭЦЖЌИНВАОЫбжЦРЭЩЕАОЭЫМВЕИЦаЪЩемхрЯгНФЦУЦЫеЪЭбккЯЦОНЖЦШЦЦЮЮРЏЎЎБСФШЫРМОФЮЫЭШЪбШЗВЗКИРУНТелкпрйлшырЯЮМЗЧЪШЦежЪгзлжТАЂЌЗРЦУАЏЎЗЫЯУЧМККДЎЎВИТгзгЫЦЛЕВЌВЗЖИЦЩазнжзьаКпеФсгЮЫЩЦФЏДННУЧНЖЗЗРЕЌЌЅŸЉФжеЭйЧЛНМРСВ›ЁЂЗУКВРТИСЦУФРНРЕОУЌЪб‰ЉЮлбцкжЯШЦЪШСЖАЌЈЇБЗМТЇЄЉДНОКРДЎЕШУЅ–”•ЂЋБДВЊŸ•ЎОЪеЮЦНЗВœ™–Œ‡•Ђ~ЧушдЯеаСЗКОМЗЏЎЌБКЏЄЁЁЊСЯзйбНЗЖТДЇЋЌЏЈЃŸЇЊЁ”œЇ‘ЈЫЯЁВКЛЏЄЌАЈЌВЕБAЭгЯсррхмгЩаждФТУУЩЩЏБЛЖРЛРУКЊЌДЦКЕЊЂЂЈЋЏЁ˜—ЄЂŒŠЁЅЎЖЛЎЃЇЁœЋЋЄИ>SЌрщчтжЯЯТЯзаЧЩдуждмппгЦУЩЕЎЄžЗФЦЧИЊЏАЋЊЊЅ—•›ВЎЂЂВЕЎЅ—••—$\ЩцшткЯШЩУНШЦММКМОЛОРИЕЕМЖЎЕБЕИЗЖЎНИЕЎЊЌДРбаЯнраЦМЕДДИОЕœЅЊ—’”,:ŠМдЮнььхуупзЭСЧШШЦдкмжЮЯрхуутушыэцмжлзжеЯЧНКЛМЏИОТКДООКНЩЭУ@7(.@YЏышктщььщычхсдаСОНЛТбггппрезкутрдзмсхх­пмдЯИВМУгйШСЫЦАЎАЏЖ384*1)iеэымнуччщхчумззаЭЯТФТТШОДВЎКЩдезйтшьццхтегЧЧЦШЯбжмедзгЩОМс€чрсѓчЯ–I*N585,)?\QOLJJGCBIQUUIBALATtœШэўїтжНАЗВНУФТМОМшццхцёёњўўц‘I08POHYTA<@94:LJMNLLHAA>CAJFCGI?BAMˆЪпгЫЦЖЁЊЉЇМТНЖЖЭшшчыђђєј§ћтМ}SHUP;OUOMF>9:>?:?FQOIE>C79;901B9>HICCEC@<:>?-JY[F<>BEAC@??FHGH7>@E?:B<57:CABABFFэECNBE][uЋнуРТЪШєєїєєљѕїљїїѕїїяјўўЫ‘\>EABBAѓ<@UOCY’УЦЪзаєєѕїјєѕїїѕєєѓѓŽђўўњЕS4CJZL?FEFFNSM53011.18<@?>C@N~ОнєѓђђКяюэыэяяюыєючыэюљўўњѓЅV@A?ICFCJMZC?A@?:298?548GSMVPHBB914.)%+434;::?;HьшрпуччххыщщэяяььюёяяююяюьэюьшцњћяысЋd;?B8<2"4PM?9*1?CC;59?:71+>ючутщььццчыыюђёђёяёяђёяяўыяятёээчтїёТuSF4?A?MUnJ53703.29:977ј4-ђяююэяяКюяёэьёѓѕђяяђђёяэьэяёђёђѓёёяњўўцВdOWL4B<2535ююцхсмрцшшьэьцуаЯлнууцчыьяёыцрмнтчутччумйджекзШЛЖЩЮКpWOI78>959:эютртсхчшыющчшсмлпххььээщыщщшсрмлмрутусннррхпыхбМФсмлаœq]CPUG@>;эыцсухыыўчыыњхцрсуыыюьыцчщыяђюяьшучцутчч€Хщшээя§їсЭзеглгШЁZH>7?WOэщчшшююьшуухыяэьщыюяёюэчщшччцщээщцуущцшьышыььэьтдкзймнгеЯМЕ”dGCCэыщыюяюышцущьэщшчшшьэщшххтццшээящхпхтсушщюёьыьшччцтххцльѕумёу—]Tыыэююяёюьщщцщщцучшщцчцчцыщьшшцщјуммххчшчяяььшсс§учььўюяяјщэўўеЛЇыыоьщщэщппрхшшьэьшшщшцчыьщщтккнкбехщээёсющчцрййртщьыщыьщьюькмхыыьщхтпрннцхщюэчснплпуццхустхччхкзушыыэћьщхтннжлпнстжУБУарснѕсбшшщыштнлкпхшщчюммлрмсушщчуузхруунЮпхтЧЦЩуїурпуурпмсцчшчхчцтрппкгштспссЇпнммйаегРгблрщыыэыьщьщщыьђљњњїщрйкмкруцтлжкпцшчщыьщыхтнккчрммпрхчшчцпкждЦжцюѕўђѕьяђяяээьээЛюыїшччыыьэњтЯмрсцщыыяяэююычцрчутххчыьышєтцуруяяњњѕѓѓёѓђєѓюэщтцчыщсууссфхыыэїѓцхцыэююэшѕэхмртныющюэяяњёяющьшшщіьццщыюьщчццрќптчыыГющтптцшщэьяээяэыхеСФЧейккыыэьёяѓёяёёюяьяёяьыщычшщььшххцчшщчыэђяђэьштцчщюёёэьччёурмллрсрйььщшшээщяёђѓёяээщыщыьюђёяююыщюээ§ыьээШшцхсушщяёёяьщхсухччѕѓєљхтщщхцщшшьыьыьюычцчцчэяээююяюэюьээюаьщчхустуцчщщуцыьчшщцтссыыьщумщщччтхшчышыщшцхтцшээОюээюэююьэяюэщшщщцшшэюяьщчттсцшыыунрптыьюэщццухууцтхшщьычшцхцшэюэяььєюёєєђђюэщшыююЫђяьщышчхтхчыщчтптщяяюёэыщшцьыэщцсшхцчшшщщэьяяюђээыяяђђ†ѓёюьщучььыыьэштхщыяђююїтчхчыщшьщыцэыьэюьыьчыщыхыэяэьшцчууцчуушщьэышчщщшщыычыьщьэёђѕѓяђёюэшстушьчтпьэщьюэщхттхущшэюяьшыухуччуьюђьышэюььщыэььяђђ€–ёюячтнпсхыцрсышьэяющхтхчыюэяёьщцщххшщыыцушьыщщуццшышчышчхшїєьѓѓєющшпнптхшээьышщьяяыюээьяэюэяяююшшщщэюэыщцшцыххутсхшщхрнпнтспмйптуутрхщыыщёђяэсшьэщщыьяяэѓюшььщьяёяэььчч–устпхццчщьщхуццснрсттсшььээююяюяэящэяёюыёёяёђђяэяшчщяьэђёячшхчщыьыьчшщыщьюьююшццшчщщчтхэёёђђёєѓёђёчцшщыэюѓѓђНёьштччююёьцххуцчшыьщщцхыьяђѓєююшууцчцхщээяѓѓєѕїѓєєѓяшцэююђэьёюёююыххˆшьщчцртчщэяььышшххыюьщььщщэьшщщшцхчььэьюёњчжѕѓёў§юёюьщээьюьышццшхчспмпхщьюёщяяььцпнеагкшцшцтуцыяээшчьщчжьябМзђїьўїёяюэщыы€€шурссучццнкрхьёяэюьюыщцлжйзклнрплкклмцэьыыььспмйгдФЭсхўўђёюьэьщцуухуцшчхспучшыююээщщццуттлклммлккйзЯзюѓкцччуусрсууцшF‰юѕѕљєєёёюяэььээюђђяьщчшцьышхутышюэшсрсуппкйжаЯЛШззкрххсййллннхB\БнїјёёѓђюѓёяюэяёюёяьяююэюччрптсчышшщшцурстужЯЯкхупнптцчслйкдгг$1iрўўљђёёюььчцхтуцщышщхрпсрнмсттутхрппртушщїћљћћљѕыышыщшсукжзбд3?PŠщїёэюяээычхццучцшэшэхстсллмсуусплзпрсцыьяэщщчшчцчщыэыщцхгЮат^Q:>ЗўўёёюээєышщьэёяёёяэччЧтшряяѕѕюцєлбчшэяэцнлхшэьюёёэяььэьњњ99:(oэњљёѓђёёяђююьэьёяяћёђяэёёѓШѕєѓђњїэюёяюэыурчщщяёээьыюяяюэяEE@8AžщљђѓѓѕѕєєђѓђђюьыяьяююяѓњєѓєѓєёёНѓёѓђёѓёюыцсщыюющшшыыьыыэ?<4>FbЭўўѕїєѕѕєєѕѓяяээышььэяяэяыюьююёяёяёёѓѓУєѓёьщшщэюяёђющщшщюэ;8>781rьћљёюьюёёѓђђяэьююыюччььышхтухыээяёѓѓјєђёђюяэььяјэёяяюяэымКФШЭтгК‡G0>QSOLGGJ]EHAFPFPLOOPLT\YSUU€єZSTIFVŸаЧЦФЫФаЩЉ‡‚}Š’–ŽŒ’ЧбЮгйЫФдЕŒP<>GJOPH\I,SFCJZpeedYYVTQY^c[YSUSIUz”ЊбљуЦИž…{ŒЂЄ‹‡ггФЭзхнѕњўн‘H2@daekjS\PMHNc`\QV[ZVNSTUTULWQJGL\”ЭтЦВЄ’q{wv‰–z}ЁжлнпкшяїўўгЈoMNecMcibb[QQUNUOQYaa]TMBJQOJSQWYLGL[kc‚„ŒƒxrЂЊЃ‘‡‚рчтчюєѕѕљєнбЪпмЏpOFPa[ZVCGGЮCHNSQWZUOPNMEMBSHSjiUNO^}›’zr”АЄ›‘Œ‘яѓєѕѕјѕњѕљцдцўўЪа‰iQOea`]NIACJIJAZcr\WNQOQMJMOVZVJ<9::CB7IFMQTBC@BILOPUTGGPzБЯяѓяєщщчштххпплюютсршєўњїэЇ\EGSYSTTW]bGMIHO;GEJJIAB@AGCHTQQA799LZрсыюёэухкнуыуЮЛНгдлззЦУспЕ‡gIEOVQNQ]]UMGTLELGGQ?JMQCIGOYV`\i\ZIтыььыюшчжхэєьэСЩдаЪЫШШРОЮлЮУЏeO[tp^`^cQIGPFCHJHICHE1@9:GMNMLPJI?цщтпмм€ЇтмнпнкджжЪЫЭаЭЗЌКСмеМЧФŒcTOV^S\UUF@:5@EAECGE@::;@ABEEBJVQMGECFЫбйаУжйдЭЫерммдйетчтЯЮлђщпбаЫШзууЫЏ‚WOZaY`VTLII€ДFCJE@2LцпЩЫЮмЯЯдйбльяыщыюэђьяющртучьюшьузеёђЫ~bVEMOUWhVFMGяргзыэычшьрсюђёэщьусхчсмгжмццыщцыѓэўў€эСr`eZEISVTUUQGA;;9C?EICBEюяюыёёухушчыщщёѓчскхэяцуммпчщьыяђѓэюјїютН”^C?AN<,GTNBE?:-AEC>;;?чцэёѓѕюцщцььбЯжйЩЪШеенхьэыщэюэщэяёяяьшхэпнЦЃƒ~cNbaC7B:>9QPE:8>;жмхььяяьщшхтЯажнппджлткцпккмпшыюэыцхжНЇЋБДУмЭЈ•aP9BLSJHEHMJB;AAтшшцтумстхззтыюїђщуцыычлЧбрхуйФЪзугЫУЛИШЪЩЗФлмпбLHWVQJGHNGG€lE?>туумршшьчрйрщюђјїєёђюькЮФЩШЯаЯЦЗЗЧЩЧОНКОЧЩЩЭЪЫдИ›e;J]^ICGNC?J<57млнпнрейтюђѓяяђёђѓяяыжФйчцйкзучмдбЧНТбЫЩРЛТЭЯатбСД‹^QWH9HHCF?4:9ьудЧНЦНШзщсдйжбКЖЯЮгЭТСлщяюькШСЭмужЯЭабОААЏЗЖДЁ”žЅvdPSLABI?E‡ŒGTЊЧтаФИЉЌИЦЇ’…vqmhgpƒtЅЭЩ„}~…vqnmnuimpdPgL)$*+#*-#1;J;*9FvИЪОЎАскТЅ„ttq{zwrkЋЭТ‡u…}edc]^{}whJ.55!#-.5*(0<7,9^wuvЏмтОŽ|qr}|Œ‡[ŠžŒ–…|wrhbh]^r{„ƒžƒ8$ "%"+0575::A@@aŒДНЉ‚t{wkerew’Œ…xq{xqoqom\p‡‰Žœv@"!  *-*.-2:CLJ\M10T{”’Š’m[o}{}wpƒƒ~vntwx‚}ƒ…„xƒ‰M!+!&"!#-53:0-)"!?C18# 1BTkxˆŠ‡‰uj^ŠЄŒ…‚‰•›Ѓ<;Q‡{#04.%)*%!##"%&-**27&(..#.<+!"%& )P”Œ‡uqoƒ˜‘‹„–””ŸŽ< ?zMI@20%%&*)$(,-3),,024))!%922388%,2!BcŽЕЗЏŽ”…ƒ„•—ЅЋЋ‡wˆd;<<7##*4:2)$,-203215-1:<:5570+54&5%()&FQzƒ‰—‘™‘‘ЁЁЄМЁžЄ—w+#.%%471("&43.(2.1*0+2:0,--))#)*,720B>,C\wЉЋЎБЎЉСЪНОБ–wP ,*,1+925.1-,-+.##%!&0.+&)WqmheOM7;kŠžАКНИЕžЈЁo4iŸvYL;(*(&<>5400-(&##+#$#,)& .<+ ()9<@Ad’НрЧИЎvepБЭЃkG:B71-3.!(-$%*"+$!&4.3 1#%09?;ANGO{wŒ‘}cg|•œ‹‚ƒnT:,G(,-,$4&,!$&*+%0283,9FU4 (*%9>HFFIE@B5-5>@V^[g—ž•q‘˜S>@2<;,#%).)"54-705+-WzO$+$!$%34+@B9C>C?@,+0PmMVДˆtŠ˜„Št\]^Q0:C8332CNPJHA52?Wp>5-  $(8.)*7CC@?@0,7^g<Њ˜ŠŽ‰|‚žЊВЄƒW8<<&+(%:B>B?8BI?IJNA8$**!(:F>48-*2754$VnA(›žЂ•—”—˜ŸЃЎММЌxTQhV<9AA5?EHBMLLC9,$+& !.-1.*$" ЕШМ—œЄ””•–ЅЏКлщрЯФН~>:A:-C<@A-)!  #,*+.)0<57*&#ЫйёеЌЅœ™œŒ›ЂЊБАЕСаД™zPQJPN:B<23CH5$)%%("#(#!,$,7++#!%ВЛЛАЋЌЄ’ŽЃЎЉ›—‘žЛЋ˜‘Žpd^MJWQ><<€я@-( #*$"$-359<>?0.3+(#!МРДВЗЗОгзеФЖАŸœ—ЂЉЌЌБЛФЛЋvprYBIeG3"#)%1(&08FA39:93,.%)$#4зЧТОСУЩШЩТДЄŸ›˜ЃБЗИДАМЪЩФЎВБЕЁiE5;5**544*3;@A>98120-7581+.((СЧЮССТССЪЯЮаЦОРгЭМЗМККЫйпССМКУЧБmING0:E5>74797@4ALI7EAB?A2(!+ЖЛЦЫЪЭЧЧТЫЯдбдбЭЮЮЫдпхнзжЭдбЩВекРЉСLW^^N-.8*.iTGM5442>BBF<(ЇЄЉЏДУЫаа€єФЛМУРЦЭджмплнжбЫУУЫаееЗдлдЕЈ”d?EVJGEYYN?E@1B@IE;>(##ЪУДЖИШгжзйРИДЗИОТЦЩМДМЪкнжезжЭаадлтбРЧФ‹i`p]B9EHrbFIF@GA:7$$"&2FЕКЕИЖИЖЖЛФЎЃЉБЗЗКШбДЋЖУжюлЮЦУЛДНгдСКУКСБ—|›Л‹`^UOOME>2-&$)33,,03ТРКЕЉЃЏОЫК‡ЁЄЄ„ЅОЉ˜ЂЉТЫЖВУЩРЛЫЫТЋ•БЅ~ŒВчыЗ]?3374збгСЇЊТЧЪЫЕ‹‹–’˜ЃЌžœЂЏСАž›˜’‡Ž’œ˜ЁЂŸЊЊЇЄЊЄВЈ™‡VWLA989@FFHFE4!дЫЕЉœ™ЁРТЁœАТТБЇЎЗАЄ™Ÿ—›ЁЃЄЂ”‘˜Ђ›ЁЇЂž—”•œЏТЈ˜‡žЄuO+;H(<:9-*!ЧНООСРРЛИ’”˜ЉДЋЃЃЖЏ–—Ё‘•‘œЃЋВЌЇЏАЊАЋЛž™–БИ•ˆ…™ЊЗЧБŽqYE;&19)ЦЕЋКМЫемцщшмэїтжШЩЯРНЭЩШФЌЋАЉЊАЋЌ›”ŸЃŸ”‘”œЇЃ˜œАВНЛТхкЕЂ˜G*-ЇЃЋЗЦгршышкЦТЩжуурлзлрммпаЩЪЯпшнУЊЄ˜™МЅ‹…}Ђ›’~Žt‚˜’–ЈгЪБЖОЃ•…vnБВЊЕЖЖЗДРбЩОТЫЫагзкЭНШезммЯТМСЫЯОЌЋЌЖОЛЖЏЇЇДЌЄЉЂ}jrtКДЎЌЏСЄ˜ИЈœЏЈЌОЩФНЖКЛБЋЖЪЭШЖЎБЕСЮмскгЗДРРЦЪЮЛЖЖКБКНЛЎЄ˜ЋРЕКВАЊ™’›•ŸЂЊЉЏДИЦК”‡ƒ‚xЁЉЄЋЗЛЋЃЂЄЉАВЋЊЊМаеШЛОЦСУМУОЛВЇЉЌЃЃЋЈЇŸ”Ž—”НтщЪЕЋ™–ЃЂЃžЅЊЊ€3–œЂ–’ŸžВдСИЌЂЈЊЋЊЃ™ЁАМРШТЗРЦФЛСТОИСЦРНИИКАДЖЋЌБТЧРФКœ•—–™Ї–‰ЌЎЃ—ЪБž—АЈœЂцтеЧЏЈŸЋЌЇŸœЂВРКИЕВБДЋЈВЌЊЃЌАИСЦНЗЗЕЗЕКОЗЗЦУЋЉ˜ŒЂЏЅ”Ёž’ŽркбЯФЖЌЅМННЖЉБЏЋРДœ•–˜ЈЖНОИАœЂЇŸŸЋЌЏЛЗЊЗЊКТЦШРЕБДЄ’Ž–œЃЂ•‰‹ŒŽЦШОСОЖЊЎЎВЊЂЎИЏДККБЂ™™ЅЋЋЈЇ›™žŒ•ЃЎЎŸ–œЈДДЉžŸЃЅЌДЉ–ЄЏЈЈ’‡‰”‰МБВЕВБСЧЖ™–АЗСНООКЛДЋЅАФМЌ›•”œЂЊВАЗМЗЌ˜œЅЊЊЏЃЁ”’”——€‹•™™ЃЋЌœ”ŸЇТМВЎЋЇЌОРЈВдшгШСУОДЋЈЌИМЕЈЉБКМДССВЗБЕВ‰Šˆ‘˜ЁЃ›”Ž•Œ…‡„ƒŽ–ЃЈЌДКЎВЕЌЋЅБЛТТСЖЎЎРажбЧЗАЋБШзддаТЧЧЭааЩЭейхȘ•ЉЛУЏž™ЄЅЇЊˆ‡Ž›ЌЎЎАЏЏЗ€ЕМЕДБЈЂЅЌЖŒЃЖЇЅŸЁЈЈЇЇВЛЦаЪаееЮЩШЪаь偘АВЖМЛНСФШРВ™БžЅСКЎЕЛзѕуЩТРМЖ‚‡ŸЉдЈqƒ‘–ЁЈЋЊЄ’ЂТСФЧЪЯдееЧМСЧдЪЇЈЊЇЎЗОНМНРСОБЧЕБЗИКУЭЯшёуЖ‰лззгНЖЇЁВЕ‘m—žЃЄВЁUŽТЭЧЩЩЦыплЭЗШачЧДСНМВЩЫРЛКМЛСНЕВЊБДВЗМЭдаТРБгдмхсУУТЖЂˆ„•››–u‹vGŠйьцзжйтпёщСЩЩЯаШФТТЦЪЪЧЦРККСРЯЧЇЊбСЦНЩзчхЭЗШЯаагКЅ›‘˜œ›˜—˜Ё˜ЄmCбаИМлщлеаЯЮЭЫЪЧФОМРЪЮЮЫШТЖЗНРаЯрмбФУСЪшљнзеТФШЭхйОД‰”ЉЌЄ™˜›Š˜„oŸНЛŸЇдюзгЮЪЪаЯЩЩУРЖпёюрШЗНЖЗРТЩШУРКЗБСмзуТАЈЩЩЭгзрцЪ––ЏЋЈЄЅЋЛТНЎАгщРЉМЧЫатЦЦЮаЩЩСЕЧкшксЦФРКЛТУУМЗЗ€МФШпхмЦЦŸЮаеджгйЯРŸАЌЊЈЎЊЏЏАДЌТсеЕФШЪЮЭЧСФЧЪЩНЩщцзаТЛММУШШЧЗЗДКЛЎ—НбкШЗ|нйлззежйУЄЕВВДЏЎЊЎЗФЗБžеыюђукЪСМКНШЭУООСОбЪЭНЖИРЪЪЦРКЏЏБЕДНЧЯФ›[рцёзжгйтНЉЗНУСИАЎДЭЎwNNжўўюУЎЖМЗКМЦЧУОНОЪЮЩФТКНРТШРОКННРЦСИТэп3…ЪѓчЩабнОЄЖЛТТНИЖЕНЗБ5ЋйЮбмчЭЈЖТУЦФРФФЭЮаЫТЧЦТЪШЩУОНКНУУСФуўКF:BrЄЩклЯЦММРММОКЖБЋЏИСЁmЌЪгшїњйЫТФРОЛМЛМТСООУЪЪЩЮЧУУФФТРТЧКВжйx#>,@H\”НжмЮЩЫЪФОМИИ€›БЇЂЄ„ЌШШп§љОЄСЦУМИКЗЛОФРТЪддгЯбЫФТЦЩЩФТРЋЌn5%I->79AOЗЮЩжЪЧСЛЖЗЛеРЇЌ›Мйжђў§РДРФУОИНСТТООРУЧШЭЫЫЩЦЦЧШТСФгТ8!CC<79MT`ŠБШЮЖУШЧРРЩбЏНŠqЁКлсЧВОЭЯзВИИНУНИВИСШШўЪЩЩ€ УЦЧРКЛС…7+(PMF?G:9;AOq‰ЃЮбгзЧдщИЄБЋФчєћЭЁВмечЖКОТФОЖБЛРУШЮШТЛНКЖКНЗЧЃ[2:%$]Q8:?>77AU`BTŠЋЭђркўњычдрђхзШЎЃНдЯКРРгбШМФЫФШЫЪФЗБАБЖЗЛФЧ”?PH-9:4.7>BFIHQJˆ•\tЗгхўєыпртчютбЦМКЕББВНЖрўљЪТЪЫЦСКЖВАВМКЗБ”’q>159885520>€Ћ:;452-44:CSFJEABTF?So’ЅЎл§ўыЭРКНРФЪУРŸШмжанШЧУЛДДВЌБРТаШуКQ>29<975&$7798<>>9;;CIJCFLHBTxЊмюлТНСРКЏЇОЋВОЦЦФФУСОИЖКРНБМЮЫднДW8,9@8.)%.7?;97;998@>>1.)2:;93599€ъ;@CCBMLMJC;;AL^iz”ЏЭ㎘аЩЪТЛМУдаЭШУУЪЫЪШЫЭШУИНnCI?xЄ›ИздЪЗ•ŒМзЮуОЂОФЧЦЫбдЯУТЌwQ;,FL83345.*",52<9@CFEBBHC?;<:?A?A@@?>:><>HI>;BB;?EIJOC:<4InЖЩФЦЮФФКЫчжааэежжцЩP#aЉeQNJB@>43>>€с413;;988?5:8:A@?79?<:;BBCBB?>?>@E<@FC@,2:;<><;<>A?749?833;@?;4379;9;>E?::?<513::99*0,0278:@>??:4?v…ƒwujhPOƒБОляьщсжсмžhЇЯ˜gZQ2;HGBEEJF<>;53+)-,,203.)*-3<923179ECc@%5)B72CT>,-((&038795?GLLQQSQEA;FECSo—ЈзнЭУМРбШ{]THTQI80;;<;+;AF<>:4">V„Q27<.+144388BЋEHMILHIE5<;-h‰guмкЯЮЪИЯеМК”|zd`BMJCE@EIUZQO<;9MYoIFB?21.3150,8;:9;?:@EEFBE?MjuL9йаЮЪЩЩ€‚ЦТмууЯdNJH9?C9HILEBHGF8HIOHJ87594::248;FME::<<74>>59i{M?здббзЮаббейчышнТŽbe}eF:FABBHMOMPJC837:9303;014$59524:424<>9*25!#уђьбйлждггазтх§ўўчсдŠICWQBOH@ICHE@@9;>434942.43799::83771;<;853##2мрсмазжзйзнрсрйейнщтаЪР‡wq\aeYBBHLIHAA12>A;527@?EFCAB?<9:;?;9-.9хттмйнсєўљэркзгажлуттщїѕщЯ›ˆ‰kTOgYGB?<@8:A??B@7EHFE?@<55>>:>77<<чьштрсруччтлжежзнутптуюђюмймйА}WGHA;@E>@AB?OQMI?8<1><@;@?95399€@ттххплйжмцщьухцєытстшюяюєчщёюѓюЩƒ]c[CJMF8#%!0мкдбкпххчхсмлзз€ЙлпцчыяюђѓёђёяяјѕцђўјЯОЉtLT^TUPhZTCA?EBJIBHFH;&3цхщцчхчхтщЮШЭЫЭЮжйтгЫгсюяђђяяюьюёяњѕыьтЎ‚t‡gJLTV{kJNGHFHB8>ZчтчшчтппмдРЕЛНСТЪжцаТЭдхїххтррхшщыьшшчяцЧАШрЃmeb[[UVPE@?BBEFGECIюььчууцчцђуВЅЖЛВ‹ЕжСЎЖАЦзШЮрцнбсчузгЭкслОУпўўлЋxLIFQUGFHPUSMGJI>яяшхттсцщњчЦЦЩЪУСЦУКЎЏРЯРАЎАБЊ–ЃЊЗЛЧЫЫЩЫЮййбнлбЩЂmn^Z[MSZZ]UPSQCьщщтслмутцжлшђїчпнчхзЦЫЧЛБВЗЛИЌЄЋКСРСРЖАДЌБТШнЭРАКЦjA9JVEPVPOI?эюышчщыщыЭнЦзтщуннцпЫЯдЭЯРМКЖНФЋИРФОКРЯЏЂžКНБЌЊЌБМЫнШАЇ…hZPEHJFAхушшяёѓњўўќљўўђђ€ЙюєьэѓѓђюсймеадЭСЌЁЈЅЄ˜‚”–ЁЋЌЇЃŸЈИОеЩФцмМЕЇ[@A>3ушчыяѓєѓєѓђёяьюђєєѓєѓёѓђїєяѓѕљўўэдШНМЪЛЃ‘„”Ђž–‘o}œ–—АеЫЕЛЭИДЏЁ‰ыьэшщчцыьыьэяёєѓёюэёєёѓѕєёэьыьюєютущчупырбЫЮЩКРА|grp”СЗЊЌАЦИАЮЮЪржрыюєьхшщщФышыщыышщыюѓђёщюьщыьюыычцуцхсьхпзуёэспзШЏЇЂŸЃЊЋААЖРбгаЮЫЩВкпттсЏхшщчутсэюяёяэюёэяююыщьшхцхухурпнмгђўўєщеШЛИАЄЅЌВЖВйкгабажсјыштпнтуусутчыяээьщщыэыы˜юыщььэющьщцшчщшщэщцдййеЯмТЃЗБЅЃїщмдшндй§эёычрттхутссщящыыьшттцсхсттшщыьэщчьэёђююэшчшплмйлжбЭЩУСћњїѓшуркшшхыпсчууслжлтхщшыхчсррпттцвхчючэцчьшыэяыурннсркЯааггюьэышхшччтрснпццщшчурру№пмййждзнтццутррхххцурпмтуцсрсмлнкнжджзльюьцхыыљчспсэщээ€ЏюыупнтучуспрпстцшхухпнкнпсртнлйлйджклзйкммпснптыыщхсцыщххтѕўяѓёэыьыыьээьршцщчхыыюшшщхЯззжзмпспнздабдегелрхшышчхщшхчщьээыьыээюёђяьыщьэюђёэёяђђёёѓђёюњщздчьѓхцхттхымлзжабйнучщчцш€oˆ„‰…qmrw|m[jonovx{wrz‹œЇЂЂЏДЉЃЂ›ЅЪЏqk|ƒ~ˆ‰„‹™Ђƒj^rx…v}‹КуЯВЄŠ‰‰uTUgv™xGJZ^gvnppbv’Ž–žŸЈЕЛОЂ’Ž™ЏЂ|wzrp…‹‰ˆ’{”v|…‡‡”ЄЇЮпг^ЖЉЋЅˆqnu|]7Ymnwpzo2d‘ЁЅ›˜ЃеЩЕЂˆ˜ЋОЁ‚”ƒœ‰‰…‚|wp}~{‚”ВЈ—•‘ЈДЕЦј”ŠxiTUVcgiFPB(\ЌЩУВАДбЫнЪ›ЁЉЇЁ—Ž‹Œ—Љœœ–‰}…Ž‹—ŠruЂ—Œ”™ВЦЦŸˆЂБАЇž”{j^ga`^cigaiE)iЂЅ”ИЫЕЊЋЈЅ›”—‚‚‰Ѕžž˜„~‚…™ŸЈЏœŠ‰‘ŸШжКБЅ–™•ЁКЌ–ˆ[awzpj[h\dYGk’”{~БзОБЅŸЃЄЇЁ——‹ˆРаУЗ’‚‡ƒ‡‰‘–œ˜{ŒКРТ–ƒ~žЁЃЈАЗТЌeg|zxwŒ‡}„ЋЭЂ}‘–ЂЌШ—”ЄЇ˜‰ˆ”ЖЩДМ‹˜Ž‰ˆŠ–Ž~|‡ˆ‚Œ”ИФО••‚ЌАЋБЌЏАЇŠpv|txwuq{}~}—ЧЗ’Ÿ˜—ž–œ›‰m™ЧЪЊЄŽ„‰…žŽ‡„‡‹~e’ЇСЂ‹qФСНРДБЌВ™q{|z}pn„”’vФЩазСЗЏ‰Šˆ‹›Ї˜‹ˆ‹ŠЅœžŠ~ŽЂŽ‡ˆƒ}~„‘ЅžŸ…ZбЫЯЕЇОСШ”x„ŒŠ…|x{•zI.4Шљ§рЄ…ŽŒƒ”–›ŽŠžЉŽ‘ƒ‰–™˜‹ŠŒ—’–Ž—ТКt5uКугЄВКЪ—t~”—Š~‹~…[’ЖЕЗОЪЄ{Š’–’””—ЂАЅ›–‘’–œЃ˜‘‰•˜НыE>Hi–ЌИМЅ˜Œ‘Žˆ…ŠŒ~}{„rI„ЅЕбхыСЄ›–—‡‹ˆ…”‘„‹’˜œ™ž”‘’–—’˜”ˆ„ЋЖr*B+;E[~›БЗЂЅЃŸœŒ‘Œ‡okvVƒŸЇСцч—u›œƒƒ‰ˆ‰‘ŠŠ˜›ЈЌЅœ”‘ЂŸœ’•}‘n>!53E;G>LmЌЃЏАЃœ™˜‘’В•t{hžРИзўщ–…•”ˆŽ’ŽŽ™‡„•™žЁЁ€є˜˜–™˜ŒЅŽu>*)MNG;@CFMPSQY[’\kŸУйїцлЭУТгпЧЉ›ˆ„ˆ~ˆ–‹Лцп›–œ–Ž„~ƒ‡‡ˆˆ{qŽbG90;H4B?FMHEEGJViSFT]‹ечгФКЦњяпН™‡Œ˜•Œ…ˆОхж›Š›ЄЋ…}z}vА—Š|\BNP:>:G<@><>:95CVWMILOSJCUnސˆТїєбЄ‘‡˜œŸЉžwŸРЊЏБ”Œƒ}{x‰’ЃЛŸSE2EH>>3*4+@F<20IM@>;B.3B?.49>CPSVPPQUWTFEZceEGGOBEH>?;38HHNTIOTMPLOI?SSQEIMNNJHFCGMPOQJQQB5&$CFII@@99;4BEE@HJEG?:>zŠ…}{bcSVЉЖЪбкЯШЕУОƒO}НˆicT;BH>IOUQTMLHG@>@F?99:9@BACOOIC;82IIEG9AAGGGG<195:4;07(B?EEYL57>>:EU[SMIQUHQNF17nZLЕЖЗЌЊЉЃЇЌАЗФЦбаФŽkm‡kPMYQSY^\bgcb]MJCAEH;5+(2<4?EECAEGOJJG;8:*8<3B?@IINOGOONNMLHI<7++мэўщЛЛДДЗЇЄБИТУШЭгцЭЕЛŽpicdhSWYQJUTO??EENL@.2<@GLPHJOOSJSOIG@F78ЩдЭУИНЗЌЈВЕСРЗЛИЌКеЦЌЋЁ}xu^dti]NWQQMBAFGEHF@?@NUYU\STYOOQIOB@.>CзйаФЫЫЮчюэнЪТЖЕЕАКОТТШлнеУ‡‡ƒp^gzcLLMAFJGANMGNEUUъ[TWUTQNQGHBE?Pщзждазйлл€SЮСААЎМФЭЯЫУЫнтйЦФЩШЖ„\QQPFEINMQHNT\]VTbMPQQNZVYJHEEOMFеллжгЮЫддрсхлабчжЮЫЮбгуюђгкззуцШ|Yc`BPTMSVLUVNLGWab]aZQWUOIC?A?;ЦЩгжгйдгглпснртспххцюёѓюхухцрЩьђаИгЅbqrv]O?LIAwbhkQQPJNW^]NI.:9.МКЗМЦзмпрреЯЫедбйршэшэыэшцлтсрюяЯцёщЮТЋzSVo^^]jm`SUTU^aW`NNQC<*EнзЩдайхтуцЫУТЦЧЧбкзЩОЫзшчыцщчуухтэїчзркЄu{ŠqQOVbx]][ZZVTJLPHFJcШУЪЮЯЯбгЯЯЗЏВЗТУЩдрФАЦахћцлдЯЫЭктэлжнйлЯЋ—ЛзŸtqkjj\^QSNUMMOSIJHLзеЯЪОЛОЦЪта™ˆЊДАŽАЩДЄААЫдТЧлсдЫпрйОВЉЗУИœФњћЪqNPISSPMLUTZ[NQU@ючцжФШЯбзшШžžЄЇЄЇЕНВЃЅЕЯЛЊŸЃЂ’Œ™АЅЕДЕКСЕТЧФУИЎВ™gq`OTJQ[c\\VUYBцсЮФЖВВМбзДЗЧрлЩЛТЫЩЕЋБЏЃЊЊВБЏŸ–›ЊЉЈЊЕАЊЅЂЅЎРеИЈ˜БЛŽc;:M`LLTMTMBлйбагжагЮЅАЇЏСЫЩЖИЪФЉЋЏЏЊЉЃАЗЗŒŸЎМРИЗКЪЎŸ™ВНЃ•”ЃЂБЦдТЃžjWNEBEMIеЭШдмшыђјњљї§ўээпкребурмйЦИЦМСУРОЄ—ЃЉЁ˜ƒ”–ŸЋЎЈЄЅЉЖМЯЧЦярОИЉY9?>8СРЫзуяђїѓєьнЯжшєѓђяяэЭђѓцлуујљћсСЗЅЉЪЏ–‹„Ÿ˜’‚—rЄ™žЕреИЛЭЖЄœŽ„ЭЮТУЧЦЯабтт€сшшьхшюхзущэюьсддйнщдРРЧЭЭФбМЕДНИАКАjpt—УЛАЌЗЦДЁЫМЖМБНдккеажеЯЪдрспдЪЮгецэёырабжазтпаЦЪЫЪЪабЪКЏРлзЦФРДЁЂЄ™ЉБВАКЖТЫШЎž”™ŠИОКМШЧУИЛКТЪаЩЪУецюужжссумнплЫСРУОСРТОЕАЏДЌй§ўшгНБЄЏАЋЈЌЗДЗЎАЎЉЂЏАЯьзЪРМРСТФСКТЭйдхмгжйжазлбазлгкдакаЩЪЦТШййЯбЫАДИБИОЈЏЕЅŸрШДБТЛВЛїёщцЭМИЦССИИНЫдЫЮЪЮЮЫЦНЯУУМТЮдгмбЭЩЮжззмбжплУОДЎЛСВЅВЏžžїђьчзУНСЯзеЮЧаТЩгШЖВЋАНаа€&ЮЩИИОЖЖЛКЗФШШбеЫЫЦЯмзркгаЭНЎЋБЖЛИЇЁЅЃЈпржегЮШЩШШРНУЪШЧЯбЧРЗКИНРСКИЏДБЄЊЖОФСЛИЛТЪЪУЗЖИЛЖЛФгЦВЖСЛНЌЄЁЇЉЅаЫЪЮШЭзпЭЕЉЧЯкгййеаЦКМУЯЭЧИВБЗНЪеЮЧЫЧРВЛЦУЧШОЛБЌЈЎДВКЗЏЕРЧСЕЏНЛКлжЭШСТЮлЮРШыћыхпзаШЧРШдгЦМРЯЯЭУзгеЮЪЮЦŸЃЈЋДОСНАЏЎЄЃЅŸЈЌАНФЪйжШШЮЭУЦШдмпеЫЦЧЭтяюуеЦСЧйхштшптсцшырчььјЯЏАЧбйЧИДИНЛРДЊЅЇЌЌЏУЦЩЫЭШаџ€ 9˜qU8"+#)! -QOJNbkZVTqTZrLF3?;(:[ЊŠžtM^rtvx‰‹mnoz{qtxO#,#*#$4FE*t•qnvV>&CNFU:[V].-ZczА‹›|kwxnttv|ror~pbZ‘o #--1%# (t‰oŠpƒ…PWOTb^^TPPJ;|`d~А…„jmwvZhŒ’Š[kxi`haP!($",70(%*U”Ѓ}~ƒ‹NHIEJ`eTJLJPJJ1V‚™vncgve‰ЎЏ•bhpir{OH!"& I? #"%Skd\anpЈ˜q? AQLaHILdNWNFcŠkquktŠŽvwoehq~pB4:  -1-# [uЅ]Zcnu‡…^WL90B3imU,Eowœ{opn‹‡—–ЅŠƒrnmh…Љ—< (2F`‚ih^begvˆc?HNP4qk<4W~~rbj^k…ЇŠ•ЋЌxUAuŸУЮ!)"#+!1nconb`codgpcNj^cC$M>a^Mi‡Šƒn\kx˜œ„ƒ„wqVj‘Ўr0(& 0@•’ЊhrhUMTVa]?zƒo>2QNMQFzmЏ™}Šq`r˜cwuqdNu‰Œ}8)! %%"8jw‡kumhNZ[UO8gŒ‰dqOUS^]‡ЊС‡takiqxzƒweP|™„"4+*,*^‡ЃЎ—tqgc`MSWWF`Џ˜CJHGIG:cƒНб•vtjaotmuqƒ|ndv„…•3.+-%155>-%#"W~Ђ‡me[NTZYHH)M~dBCJ:2Fahm’Š‚edSUpzdwonoiho}{ 1((2,71&29)3a’ЋР”bST^;La^J?WZ8:AGI1Gc‡~g{thaVz•Ždbwrhakx{}E358!2.$.WcxЇЕŠYCB^Ÿ–|FZb[J!CBEN[[Љ…Ž}xqY•МВ”`^]iˆ„|~1?!*#"%(!&!;gŒŸЌЦЄ}P@;Ž›xkNd`W4PUJNAIk™ŠŸ’—wp^Ё—Ц–`z{|„ƒƒ +(%0.40<7"TZ}”ЉЖ‚a!)>‰РЗbA;BGdcx^1[qxB7NWz…‘˜zcinu}w~~}ˆ„‚„r}%%#940$2~”wj–Ѕ–’YIAAP8?C|—j\{™ЛЛŠQOwp˜ЌœPHLBY^tvqpW{Ј’‡{„‡‹ztwrV„Аœ‹|~…  *(&*24>\bbapndcp{u~xhtqnjw„zjinwƒ‚—ZJ^w…dUupx™ЩьюєщА‹wnijcŠ‘œ›ŽŽx[G<]Œ|oqztqkrx|xrrƒ‚tquZTgvwЅ”›"+0AN[}ŒˆˆœпщђїѕЦœЏ–Šq^ŒКМ{bp‡ŒeHTZcht|}{kht{‰„tqqojdg]U][Lu‰tP>1+,.J[NQƒщѓјљћьУ’{tOh•ƒ‚wjtH\^[Zetjn^[Zg}‰„{tmtjcrqnide–Š…{ ">,-4CE7Qzq‰žНэюЮЈЂИН™ЦВxzugq{aŠvetu\cgv–’~’—vrƒЉx^pgcad]‰‹~ !$598+??@@ACc’ЅЮьЅ’‹„{|{jruz}rjin^M[Wv‘‚„wƒЊ•gˆobpoddx‹|%%#&3533HO]hz`L]WA:UŸЄ›˜””…pmmtziekdT]cG`ndr}|ˆДУx‘wkvtorqu(+#!$#+-)35FZSJVS:?F4;>TdY?IkqzppgŸŠknogeccQimm{zq–zpˆvhh€Б…}zz522,(.CC9>JFA@-EQC?CAFTJjN35><:?U]Љ{w•vxqgkhnkk‡ƒxvzvwbNTYmqxxw4*+4BB89?A>29<<4*704828M.9?WguxtvN`cY{{qtxx‚‚t^J\u~Ž‚%!(#!%>I<9:@HG@2)!1>;EB?.:ABAJ<3$)1AboЃ|‡„z‚˜ƒT^[dt{˜|%$)#)%75<;@BAF7AE234)$%0-@>;;(-;81@IC)%*5WЁxЁЗžАМƒurg‡ЎЌВi]3*5+*75>1787249>B>4-),-EA858039A97-# 3EHgk‰’Ї—’„gjœ—•‚51?*$-P102:537+-5;-&0.4A7F?H9.,7C>.7.%*)5!COVAC48TdgqŒu\žДžŽ#$2YgGAF7277<;97*1>@:70*3?@?@.&-4,%@JE<7?15&1PjYd—œ—ƒ"%$4.34:F@<9AFM2,"*7a|‘Œ!359%:A:B@GO[oT9-800! #$.0;9($"%3,+#0:>@GOE5?@>S%;GLPHLOVAg‹V7CAGBGFC;>A2.# #0;283.)04)3#,+,H<:.20$#87;@A;1B5:;>;-"1JLHGJJ?B:540$-0(.(5,3<(!"-2:СЮнШЏ™ЅЉpgjVBpY:OQIFGIOIC)-,952;EMNQVPHH?:77€˜@C,%#+"!%)($+14::ЎЇКВВДЖИЛдЫ•o‰ŒgGOZPGIEBHF9>A;37,4M\W^G8AIHCEG@B7+,&#)1-.0„’ЂЃЁœЉРмЯаФЃ‘Œ„cH>JMJgH87EMC?93d]rOGHIQSTSN80(.)+:"+!""&4Š—›ŸЄЉЉ€xЌВЊЂЌœ•ЅЗЎŸœД–tdUO@SYUZVLLPZIH7<>:E>>G?731+743% 401))-&‘’Ž–•ŸЊБЌЂЃ˜’‹‰ˆЋРРТЛЂŸ{[N@17YQ@HLCHQOJB4534*+$!&!!žЅ’…‡ƒƒ‚„ƒЂ‰…ŠŽ”ˆ…„ƒ‰}ŽŠ„•ЄЌ…kaB5CakTMUHLQMG;2*&,.((#*-СУбМИ„…НЮББЃ‘ЏЖЌЄƒ‡™•™ЄЎŠmuq—”‹Ÿ”ˆƒ}q`IHANSVPJ`3&&))- #%ОКЕЉЃЄЎЅЌЈЊЊЈЋЅЃЄŸŠtx—БНЊЎЛЕЋ–•›ЊБЛждтхСЛЈ[F\b]L@N?1)&+13\;€EЫЌ…G,?7:;?B?C<>9+7TU@|”’•ЌДЗЃЂДЈЈСЉ››˜•ˆhnЏхЯеШ”ДЖНРЪЫЧВЖИОУУММАkJ935889?>[k‡wЗбФИКЅ|—’œЅЇ›ЂБƒ|ЈЌСэгсЧМФЦОКФЮЧННОНЛЗЗЯЁ(HIEBAH;28ZЗбВЦТЪЮБЇ˜›ЂЊЈЈЃŸžЄЩДЉЪьгФУСТОЁДйпЯЁЖЗМИДИФt?G8E?715EJMFGJˆйрРУЩзЉЇ–”ЇЊЃŸ›‡ЃЦжЪСЖИКИБжѓюкЉЛЗИКНШИpa>:>>750aLHACEF]GGqЉЏЄЏВТунЧŠh”™ЅŸЁ›ЅЃЊЃЇ–ДхбЫФМРЗТгйжУУФОНТЦНpCP;49772?UGEGBLG4>~ЎтЦЕДДИСззИŸž—›•ЄЁСЇxЃНЪуЧСНСЭгусезаЪЦФДзєт]:<%*2*15;?>EGLV1<}ЅНВЎБЎБЗОгЕƒ”›‡~ЛКŒ\\‹ЏТОЛЕАИБЮщмлеяШЈ—Тыўў-%855.78>A@?@?BEEH]ЈЕКЎЏЊЇЊДМНБ–ЖЕДŒm˜˜ЄЇ›НдкЪЏЌКСмябЯЭаЛНЂБнчН>N@?7.-5;4?@C9WxЫкчНОЌЅЂЅЊŸ˜ЧЯИ‘~ЃЇЉЅŸЖСнюхЧЯКЅЏкНФЩЦФН›ЖйкС9M<@44Њ1;9:ECFHLEŽЩыцнСЖЏЉЅЇЄЄвŽДїпЁЅžЂЁ˜‰ЄЪћўхЩТВДЗМРШаЫШСРСЩдбHJJC@>B?@CSVMM€iIUЁЪдчЮЕЈЋЊЄžЁЄŸ‚ŸЭЅŠ˜•‘˜žЏЉИукЧКБАЖМНФОЧЧРМРЧЪаЪA8FEJLSLEEILOP?>gЕкхјгЉ™Ѓ˜œВЊ~ЉЉ‚œœ”ЊЪЩМЧРЖЖЉШулБЕТФОРУЩЭЪЧ 1]HLFLCB?BJOF.C–ЛУзуФƒ{ЃгшлТЈЊŸ˜’–ЂЌжжгЭЪСНЃеўђсбЈЗЗНУабЭЪ?LUFBACECBGGSE;uЅдкшњуФ’ƒ‡гуТМ–ЌЅœž–™œ”ŒŸБкжзмпФУЎкђтєаЉСУЦЭбдбШA;>BCBAAPWZHLŒЉУдтыЭВvdˆд§љЮЊ’’‹ЕЛТЇˆ›ОѕэлмшаОЅЩуаНРЫЮЪШЫЯбШФ27?\H(]kŒžКНЄОшхеЯЅНеЯВ™‹ЏнхйЮЕ–Ž—ЛЋЈЇžŠЁОИНСЧФШЩУККЃЩегдЪРТУТУ]jmM[›Є˜‹ˆЎЏСлўљљђФКОСРАЂРйлждЋ„™”ЧЕТ–xƒЉШВОНКНРРЗДВАгбзеЯЩЧШФЦqЌ—ЖЯОЅЃžЃƒ•пўѕтжЛЂААКМНКДмўцЃŒЅЋЏЭЮВ‰i}бЫЪНМКНТЗДММРЩЮЮггЭббЫЩ‚™›ЂЫгВЊЈЅЋ˜˜жјўўшЛˆЈЏЋТЧИЁТзЩЌœЊЉВЛЭМ”‘НМййдЦчЛžŸТЯШЪЫЩЩЫЯбгЫУžЉЃЊЦКАЇЉЋЕЌИтў§щебАЕИОЧШФЎыєйЛРЎЃЊЏАЈЂЂЈЎЖецкжэШЗЯщхбаЫЄБЏЕкбЭТЈДЗДгйЕ–ЌАЂЁдщћђпЪФЉРФУТУРТЯпгЄЁЉЅЊБЕЎЃЂЇЎУИФЦУЏЖЖАЉТчаЭБАЋЇыЭШОЗЖЗНУШФНОНББЪюўјѕчЦЅКМОШЂДТтьмНАЁЁžЈЕЖЌЌЋЧВЌЫыдлЕБД™ЄбадЩЭООбЧЦСЏАЖОЦФТСЧТ–АЯљўћщаДЏМЗЖБКчўюнНЈБЂ›˜ЄББЏЌЖОМЦрўїђТВЗДТаЮЯЫСТЦЫабЪЛЕИНУРОЖМРТФмћўўУцОНСЖВИНељ§ыкИАЁ—„ЌЗЗЖВЖИУрЪНТпИЗЕБНЧЭЪРЖЛНЩЮЯЮРНЏБЩСЗАЉУсшьўў€МгЌЭОККЕШгснлсР•~ƒŠЌДЗЛИЗЖМССТЦУУРЦФФЧгбАЖКНЦЮЮЧ…–АЩЩЏ™ДЎЛзьћѕ§§ЮММБЕВЏгрйгдзУЇˆ…ЉбЮТУФЦФФУУРСЩЪЫЩЧЦУЭЖžДЪУчедЮ<*GLaxŠЌЪЯЪањ§ћўўшдмЫУБЉЦяўРЅЛЭЩБЈЇЗМССУЧУСРФЫЪЫЭСЛММНКЖЌЊЌЅЮдЮШjUOQH3<]jouЄўў€‚ёжЪЯУИŒЅЫИТКЛКœЅЌДЛКЛВЕДИЗШгбЧМРРИЖЕИВАЕБрмЯЪ2&9ETG:FWUSh…”ЁУњўѓппяыЪёыЖННМДНЇгШРКЕЕЊЏФруЧбЫЦРЦщСАНЛЖДЗЈдгйЮ22:8AB@CE:AJMHGBJq’ЁНщњмбЭЮЪЧТКБДВИСРМЖВЎЃЈНазЦШЫЫаспВдМКЛУЗЗЫШТ5:9:;>;>EEIG^dpdTdbOMjЖЮЦЭкзгРЖЕЕИКИЛИВДБЕ™žЏБНСНЫдђИЯТРЛСЦУЩЧЦAABA?EAAB>HT\[P]Y7CN5;?@FJOMLJMZMS@-V{ЁБЖΘЄЉЅСОСТФЧЫЩШдУЃˆЌТЫШШЧ8@<821:59>HGABILFCALOQNMJLHBGCEJAEEEC4;@??@B@IACHMNQPLNFFJP^[NCQ`rœŸЩхУШЧЦФгФžЏŸДШЭуЧC??A55<71.>@CEFIAACCE?:?AC>FFLIEHNMPV[^]P8ICEFYtРАйясьэШЛЗЌШяырœtGFC>517-3>?C?A??;OQ]ˆ›ЕУжееСЇЏрЭШЕHGS<0)22M>:A@B@A>5897%4?:5>?E>?>?FFзBCFGJILIIUZLUW]?EbC:PNIENVN;bU?:5447CGEGG€KJB5-4,.3984;:><5;9@@>>5>5.0109EC<:8587?>>9A>VOPQTTLGEEeTNU[[UVZ]kjTECI8JTOCA>?C@;7.159G@:AA@CB@B>>>@AGG@AGOTZ[VH@FECAGI?9-8?<48?;881?@P``€Њ@AIONHC@GC:88784087133785@–ЄЖИКОТШШаэђјьШЖЅЃЄWNYVVpWGVVUPGCAmgpNFJTZ[YTMB47;:544&+,717>?>СОСМЗМУШЩТЖДФВЛбдзеЪеК’~[]Tabag]YVU`P?5EAEFBAHL?9<>8987529IEB;74гзеЭРООУЧТМЖККРРНМИзшыыщгЩЁvbWSV][b[TVOJHC@@>CG<8:8:;5;4@?A@.)!йпйдЩУСРОИЕЗНОМЖВЏЌИМБЌСУгЭжраЯЇŒ|PENe[SPOLNQYSHEBHB@874:9<8*2(*рпзЭФЪЩЦШУНЮкЖЋБДЖЖДЊЉЉКММКЗЌЂЌМЫЯЇxMBQmx^YZVYZZMA;89;@<398;@@;шщјёёнЮеззеѓ§цяуШмрЯЦЈЎМЧЗИЛЧЌ—Ÿ—МНВНЂœ˜‹}kONMZ`bWQgE99;B??7;-02ыыхтмтмзмкнллкйллвмЧЎЖФмпЧФЩааКБЌРНЫьуїяШУЖ…YGcc^HGHHEB@?<4AbI3.€NЅkI.I90?;CFE@8B9(,H:`h`h|~{og‰tnƒmUc]\J:>T{͘Ћ…dv…ƒ•Ћ˜~~А‡‰—Š[J4>>88?>CEGLHB401U\`O‰‹ˆ‰wJPQWbhakkq:Mn…‰ЭЃИ”‚’”‡ˆ””Œƒ…ŽŠ{wЃ‚"*TB@*:@BNFJ5??04&G‡œ‚—‘›te\crpiehnhd’}uЮœ™‚Š‹h}ЂДЃqƒ”{z~”c@JFGA?541`QME2+8L8>b|qu|…ЕЉŒP8Wbjkc^aobmi\zИЂ›‰Œ}ˆЊ˜‰ˆ‰”Œ‰^IT;8H1.;IMI>F4524nН™}x|vŠŸ›{me[ZY]{vEM]ƒ‘З‡ˆ–œЌАЛЅž‹Š{ЄУЏP8;)#2,.;?B83>>3L.ht‘x~vu{}‡ŸxLZ]gJ<~S&,Qu‘ƒ||{‚–РЉЉНЦ–wQ„Зрь)>EF;47>>GCE#0ACHO‚‰xwv~‚‹w^|qzP9Q`Yto]‡ЂЋ›xuŽЎДЊœЃ™Š‡ixАЩ>QB<7>%<9F:?2.(,LWЂЌТ”ndrtphZ’•|O?giped‚ŒВЪБЄ‡q{Ї„Ž’‘‰|iЇЃ0MF>G@4E878A2<@A7T‰—’Є‚ˆ…kqxpjG|rƒdjtkq•ЃЦ뙉{‚}‡’ž—˜}k‘ЏЅŸCMB<;H3@;;>ICF?09tžНФЎŠŠ|uviqrrYtЧЏda[bieZoлёЕއ}{„‡‚–”‘…Ž˜ЏQHGFJEFA?GJUOIA1>Oi‹|ТыьЮtAGAEENH38BS—Љ‘ƒЃНЏЎkLhuˆФдœ`QgZr‚‰ƒ{tq—ЄЃЊЏЄ–Žˆ”‡’—‘ЇИА–ŒŠ2>;?FSQV[YdQQY‹В‚p‘КЪйЃk]ސУЫЗd`bbh}‹‡~mˆЕЦЌЄ‘œŸЇЈ—Š”•m™ЮКЂ’”Ѕ:3>;:LHLQJQTUd•лЉŒ”АВ’JHo|˜˜•TW]U{œo`Q‚ЦхК‘œЅЎР‹–ŒŠŒ’’ˆ‡НЛ‚Ž(;49BMGAC;-3U^ŸИœЊЛзРqQ^БжтЃ‰u~cV@j}uVCIxЋЄŸ‡ƒxЌд’qvu|ƒˆ~ЗВ›•‹<0:>GL?3HL+UTaœЏЂ’Љ™ukh—ЮИrcrgc]ipnE&?ЅЎœ”ŒpV‹Ђz}w~Š}ƒ‚™œžAHA;AJ::Yhm|bcЃЗЋž˜–ŸŸ}[i|ЂУЋ”WW^\pwaVW‹мБ~„zz’„‡–—ˆŠС•ЂЃ›NI>@:H@@Lu|oVv‚–’ƒŠЇ’V>MuЁшШЈŸgGWeaktkaUqˆ`…‘‘’‹‚„ЁЄ”Ї™˜B@UI*UVijpaРЧЇЃxˆЃeV}БНЎ—u^WZ[num^PdŽ~ЃœŒ’vi‘Ÿž™—‰…‹Š‰T]WHS~nTQtv‡Кчнрй•‡„…pjŽЎВЈЃtVbaa‘}…^HTt˜…ŒŠƒ‹‰‚x{}z•žžЃЂ–”‹]’zo‹ЅŽxp{iP^ОђчТЊ‡rr~}„–ŠСэУn\nnrŒ{WCMЅЈЅŒŠŒ„‚{{‚”œЂŸЄ”—–‹hrhwЄВ{r{ujiВуїщРƒVpx|›œŠzЁЏ”wnqtuƒZVb„ŒЉЈЈ‘Аƒce„˜‘‡”œ””žЂˆnv{ˆ™•kp„„‹СјюгЏЅˆŠ‘Ÿ’~йаЉoip~zq[\krЉЛЊЎЩ}œСАЃ”Žpwu‡ЁЁžŠ|„ƒ‚ЇА‰du‚vxЋбђзМЄ•w’Œ‰ŒŒ…ЁВЅnu{xz{{wpkeq…‡˜—Œ}ˆwqŒРŸ~xuuД›‹Œ…‡˜ЃŽ”{}›зўьчЧ‹o‡ˆ‡Ÿo…ˆФУЛwcbdu|~ojq‡up™ЫЎЗ|~zgrЎžЅ‘ŒŒ——Ž~‚„‘›•ˆЄn…œюўљЧЇ‚|ƒ|v’ЮјЮЅ’{~nnrv|rpv„ƒŒЌюреŒ~zzƒЄ–™‹„ЂЉЉ‰—ЁŸ„……”’’ЛђўўћдŽˆˆ‚‚‡’ДпюЩБ‚tiaZ}{„||w|’А’‹К~}{{ŠЂЉ›‘’ŠŠ—ЈЊЃ›ƒ›˜ƒx}•Ебдўў€МДЄ”||„™ВРБЖЕcJQVww}‚{}‹Žƒ‡…ƒ‰—Јœ|ƒ‰›ЁЅЉ{muЄŸn„…ЛлўјўўК›~{ŸЅДБЄЋ’pQLr›Œ‡Ž”‹…‰•””•–•’„Ž—‚n‚ŠŒЧЊЉЈ80EGYep‘ЁŸŸЗѕў§ўўпМЮЕЂ‚xнц”wŒ›Є{gj{~ƒŠ”А‡ˆ”—œŽ‘‘…|}xuvzhЃœ‘kQONF9?bob]—ўў€YтЕЄЇŽd}Є˜—ƒ…bajpvˆ…{qv|}—˜ŸŽ‡„‰~zЉ‡{„ДЋЈ›+%CCZNANUTNn–Ž™ЋЭўўчТКгЭЉнЧŠˆ~‰”uŸ‹{ˆ…vqzŠЖЎЃЉА—‰›М‹t‹‡zx{uЁАЄœ2<8<@CFIN?:WYYWUV}›ЁМх§ТЎЉВ˜–•Š~ˆ‡…ƒ~rrpnŽЃЈ—Ѓ—˜ЌФЗ|Ѕ…‚ˆŒ|~œЈ’EC@CFJGAJMO[d|‚˜verxYNvМТЕЃЖВЊ—„}}‚‡„xg{xjxŽŠŠЫн‹Ѕ‘‰Œ„‰—LGF@CGCHA?L]kmhwbHS^@GJbuiQ\}‹Œˆ…|БЎŠŒƒƒ|vx~‡ƒˆБЏ’~‘u{‚˜’”ŠMILGFJTVUTVWOTF^e]STL^h`ƒ^EFVVFSgjЅК’”ЌŒƒ…ˆˆ…ƒ…•ދД‘znpp‡‰Œ•HHA@%3H9IOZYJSTZQTP[NOYQWSS\VcMQ<&SjnАŒ‹jxtŒ–‘ŒŒ’””Ё”w`r™•Ÿœ9<>9?>4?>TS]aZ^\PTU\cbVSNNMLSQLI5GI?HPTt{ЄС–’œŒ™ЎЁkuu‚‘™Е–EBAJHG>ELQO[UT\ZWZSWUNO9HCGLNZSQHESZW[^gV:HG-.5JW`{‹›ЋМЖЊЁz„ЛЊЅUMZI@A;.EaGNPSVNPLFIWMEGHNUSQYVSMHW\WQSHMCMMOMQkveS@Ljx|Ђ…xИдЏЇ(GEAFA>LMJQFLHI?GBHF@BGFSMZW^ZVUSYHEU?GWYV^]id.HzpWOHBJSTY`[QTM?C2;??:?HGLQOH@AFBIF:5?EHLNSZc`^QPOHGg?Paigd^jv\‡ЊrOZUWV[Z\U][NL@8>:E;?QWUISQONMOCB7GJZ\S`[PTbSTNMLGGLB<@L`TMYaaQMIIА™vgd^^UNWi}gv‡~Sbid\YUW[L2HGEBUUggdbicaV^^TJMGJLPAFIMMVH>GB>YCTзтђрФВКУ‰~…mTŒžuWmi^bbрcbWHPMOPVMV^ijnnbVT[YUVTWLSAC?GEEA€HINNSДМЦЧФЦШЭЫччВˆЄЊ[jwj]ee^`^YZQ[WZLPkvhrS^[bccY\WVSJHF<:BA?CAIILMNžЎДДЖЕБЖЭьшяуМЎŸЉЈ{\\gcg}]M^aeaYZO~oŽe[WmnokhbVOLEENGB@AB-1HSJ`dh}Šrdbhapx{ƒuerqom`a`W^a]YU\ZZPLGLGMSQghaPTQHM@NJOJ2%,);+04+OvSVi{po{jhgt…Œ„{r|zqqVYYQWQVUUTQWNMGNIHM\[\UYPMJNAPWNE3-&:@$#@dbj|nnvz‰‘ˆ…‰‚„cJMMNWWQSM[h]YSSNU]ibUVFFOOUW]]US248% .,.*+8JQGHC$"AJH^~‚mjQZddn{kdU^hbSGMIEOWZY $$&" (,,-:<$!(*"$$  78(0UMEG?IE3$$!" %8+4  +1%*7;>7*, ! ")" )$9OF.1@(,%1!#0-# )*#(1.3#27$%" -4,$,&-+228;E<.,&0..4% "  +!%%""$32004,%%#52$+,)8<3-8?2>74#&""$&3,  #)7" &-80!"(*2.%((-,"&10!$#. )"($(.&$%#!!<5-,!* #,!%!-%&+" !шЛЕЖМИИКДЗКНУТРЗЗЛКЗЕНУУРРТ€žМНСТШЪТЦЧЫКДАЌЏЗТЯЫЩЪЫСЦэдАЕДЏЛЦЩФНЖЖМНУОСМИЖЛРОНРЦЩФКБЛТННРОРОКИЖМФЦЪЦОММАЏЊЌЏЕНЩЪШЩУЛРСМИББЏНТСТУЛещЯКМРМНКМЛЛМЖОСФРНТТУСММСЦФУОТССМКЏЖБЕЌЖЋАДНУЧФНКВБДЖБАЖММЛ—ЫїўеЏРСРЦФМЛЕИЎКЛМЖЖСФУСЧШЦЦЮббЧЫФСНЛСФММЛЛЖТОЩЮЩЧШУЦФУОЕВЛОРЗЖКЪФкЪп§южаббЫӘЊЌЏДВЕЧЭЩЧЫССУШЯдзбЭЩФЦЪЧШФФйЖŸдгааЪШУРФФТУТШУСИЕЎЦЌВЫсэлШгняЯБŸБЕВЖЖтмааУМНУУСЦТадбЭВИФНжгЛЗЎпяеЪРР€єУООИОФФТЩЪйЫдŸБаЭВКаюсєгЗЏЪЮЩеРžФаЯЦФСУЦШУУЮзЯЩСЂŸu–ФЕДВБЩкЫФОТРСМИЛИЗМОТЪЧ͘ЉТЫЧФЖгажкЩЏМШЯббЪМУЪЮЩЧФЧЩЮбдгбЮЮбйбВЉОИИВЅЕСННОНЭШЦНЛМФЦСЛЛКИНФЦЩЦРУЧбзчйЊМУЭЯЪФСУУФРСМЛУЧбдзйЯТЦЩЦЭФУРРЛЖДИИЖЛРФФНЛМРЧУТИЛНМбаббЫММРчекнЭФЩФУТТСФЪЦТЛЗМЛФгдзкзаЫЧРНРРЪЖЗОИЗЌЌЏЛНРКИОНТЭЧЛОММждкгеЦТЕИагЫЩЩЪЭУНРЧЫЯЮЩШОСОЛЋФзз€ьаЭЦРМЗДБЈЎБДИЗЌЎАЖМОФШУМУЧУИМНЪЪабЮУЫЦЯгйжгзЫОЕИКТЧЧбЩЫФСУУЦапмсёмВТЗЕЖВЎБЕВЗДЎБЖЗКННЭЖТЫжЉДКРЧЪдгЯЧЧЪдгджззЕЇАзшйФУЩШШОССФЦЪсрсєцЕИНЛКИБММОКЗЖЏДДЉЊДФФЭЮШЈММУЫЫЭбЪЩЩЧбкйлп§Шƒ„ЮѓЭЧЧЪЧЧРОЗМРЫкедЩМСаТШЦОДДНЦЦРММБЇЈДЛЏУЭЫСЎБКОЩЫааЮЭбдкекдлёЫЁЅРрбЮТФЦЫСРНЖЦЫгзеЯЦТРЩЫФДЏЎЗРРОНИЏЌЎЛСНФЩЦМЗМТЦЦШЭаЯЮжззйлзЛТАЉРТаЫЪФЦШЫЮУУЦЩЯбджЮЩЦЧСФгЪЋЏЕОИЖЕЖЎЕММССФЧФМЖЛОУОРЧЭгЯЭЯгкыбСЧЫЮЮЯдЮЪЮЩООЗЗМЩЮбЭЭЮЭЪНКМЛСМБЋЗИКЖЗВКРОНЛРТУСКЕЗОФССМзжздекныШЦФЦЪЦЩЫгтЦЁКДВВЕСШаЩЦЦШУРЗЖДЛИДБЎЗЛЖЛМУЧЦСННОНРОРЛУРЪЩЦжмпкмкрђСНЧЧяФШаюлВ—ЗМСРММОУШЦЦ€^ЪУЧУСКНЛЕАВЎЎВЛбэЭШЦЧТЛЛСРОУЦТЩЮжмрнмрчћсЪЭШСОШмнмКДЎЛРУОУШабЩСЪаЯЪЭЩТЛДИННЖ‹k–ањбСОУТООКЕЖУЫСЩЫгбжкйллпзйЯШЛШхжбЛЩНБВЗИСЦЯдЮЦТЩаЭЩЈЕКЎЕИНТцС|ЎЭЦЛЉШюЮЩШУРСЭФЮгжлкеебЪжзджебЫЮдзлклгЫМАССЦШШЩШЮЫЫШУРИВБИООЛЯаЅЇВЎЎŸРЯРУСШЩЩКбеллзйпжЫадммйаЯаептчюђёТКЧЪЫЭЫЧЧШЫЦЪлЪЇЎАЕЖЕКОЦНОМРЕВЕБВИООФЛИЧЯЪЭггкбЯЮймллсмлежмрнякЉЃЗЛЧЫЮагЮЫФУКдН•›АЈАДЖЛРЛВЖКСТОИРТРМКЛЛТТ€ъШЮгжЯЫЭгбенхўтБЭгдерлЌ‰ВИВ‹аЮЯЮЩОРЛТžo‚ЉЌЖЖМСРКЗМФЩЫШЦЪЭУОММОУЧЧЫагббЯЯгбЮНтўуДЪЭЮЪдїМˆЖИЇЕЩЫЭЩЧФОЭЪВžЋЊВБЏЕИМКЛСЯЫФККСРТЗЕДАЦУЧЪЧбйждаеЮЪКФпшмббггхрЕ›ЕЖЈДщщжакНЄМЌЎЋЎБЗБЏДВЗЛМЦЮбЦНЕОМИИКЕЖНМЕЕРйнлммшВДЦФРААйЯЯТМ™›КМВЏпэпУдтОЊЖЗКЗЕКЕЕ„еЮаЫШЧЩШРКИИЖДААИМЛайыьсрсэўшЯЏРСОЇУсйзѓжБЕСЛБЗкїјяїкД—ЇЗЗЏЊЏБАСбЩТРИММБŸБВЗВЋЎЕММБбыптрлрпхлЯРСбнЮСЮабЮЮБЗБамсыђьћў§жЄ™ЎЏЌЎЎЕЄЛОМРРМСКБВЗМЖБВББОЗйэмлкппуммЦУляўсНЧЦЦЧУМИБИнёсзйбцшЯЏЎББВЕЏБЖОлЪЫСФУУОРКМННМЕВЖОЇСлЮЫллтрлзелмётЂЅМЦОТССОИЗйэжбЯакзЖœžЈЉЌЕББњЋУЦТСЦЦоСОМРФМЗЋЇЏШОРЦТашцуухйбазьуВЎЦЧФЦТТ€€ФРШйлегамШКНБЌЋДИКРКЛЗКРУЦЦСРОФФНИЕАЎЋЦРРФЩЭЫршмубЭЪЫЫФШЩЮЮФСРНУШазккжгдЪЎœЎЏЌДЗЛЕККМКИМТЩШСКЕЛТЌŸЎАДЭСМФЯееушљєСНЫаЯЭаЪЭЯФРРНУЯялкгЯШНУЛДББВВККАДЕАБАЎФЭЩООЛЖАЌžЂЉДНЦСФЭджеущчызИМЧЩЮЭжпўдНФШЧЪЮдЯЮпнШИЈКЗЗЕЗСУОИЕЏЋЎЇЕТТЏЌЕКЕЌЌЖЎЊОШЦЪЮЯНдњччўщТДТНЛЋендЫЧЫаЮЧЪЮШРюўчУЛКИБАЕРОЛКЕЕВВДЗЗБЏЌЏЎЌЎДМТУУЩРТШглкђутузВФРИВЏгЧОНШббЩЦТЩЭкюђжДЋНКЕЕИРННЛЛРКЛНМНМЖВЌЎВЕКОУЦЦРКЛЛйщдпмкмЧНЮЧНКИРТОТЩЩФННяФЫклсЫСККЛИИРШЧЧОО€ѕНТФРУФОЖЎБЗРТРОЛЛТЛОЛЛОНйегЯбЯЦРРТТУЧЩЯЭЩСТОРНРФйУЁВДЕДЖСЩЩЪЧЦФЦЫЪШЪШРЎЎЊЌБИЗКВБТСЧЩШСИМмркжкЪРЛСУФРТдйдЩЩФФжкпедФЄЌЏБАЕЖЛОЦЭЫЦРСННРМКОЏЌЎБЕЕИЛЖФТЦЧЪИСгрјѕкЛЛЦОИЛЛŸКхжжгЫЩглтхмЛКЉКМКЖКЖЕЖОШФУТИЗДАВБЏЉЄЊЊЏЎЉЎЎФООРРБЩыћшѕуОЧЧСЖЌАВСѕаЫЧУТУуэћњцдФССК€ЗБВИММКЕДДВВБЊЇЄЄЃЁЃЃЂЁЈНУЩЦЧЫеншпмжЧТЦКЏЋАШЕФЦУОНЧзщїљзЎЉННМНМКИЖВЕВЎЋЉЈЏВБЈЁЂЁЇЄЂžœЂЈЎДНЦЦШКЭщмхжгЧФФТЖДЖЩЪДЦИЕЕБВНдзМ™–ЖВААВЗЖДЏЈЈЇЅЄЅЏЕБЊЄЈЈЪЄЅЂžЅЎВЎЎЗРШйггаЛТЧЩЮЪкдЫУРИЕЊЉАЛДАТЫЩЏЎЏЏЎЎЏДБЌЉЄЄЅЌЌœВЛРРИДЊЉЈЅЃЅЅЊЊАНЛОСЦЪЫЭЫЧФШЯЯгззбЫФКТЛЛНШрўўљУЋКИКЗБЏБАЉЇЈЄЄЂЃЇЎИИДАЕДБВЌЊЅЈЉЊШСУЦЮЮЯйккеЭЧЩЯагжгаЫЫЕЩОВ”ЄАТНЗИДЖЛИЕЕАЎЋЉЉЇЄЃЂЇЎБЕБЏЌЈЌББАЎЋЌЈЦТШЮдЯЯдйедЦФЩЫЯбаЩТФЩЧЧТНДЗјўнСМВВѕЖИАЄ›œ›ŸЁЃЃЗЅЋЎБ˜œЄЏБЏЈЉЉЋОЧзеЭЫаббЮЯЦЩЧТФЦЫЭУРРТШЧЧУМбМ™œЌЎЎДЕДЏœЂž™™˜ŸЄЈЊЈЊАЊŸŸ—ЊЊ€€ЅЌЏА}‹ЄЇЛЮысЦФУСНОЦСОСТРЛЌДКТРККЪƘЉЊЉЊЏАДБЊЇЋЉЊЈЃЄЄЃЂЇЉЊЉЈЃžЅЈЊЎВЎЏabTQwЂУЗЎФЭЛИСЫШСНЛОЛЕЕЏИЕВБДВАЋЋЌЅЄЅЈЌЅЄЊЊЃЂ›™œЂЇЋЎЌЋЊЉЉЅЈЉЉхЇЃHT]TG`xk‡ВЭЊЊРЭРЛЖЖВИЛССННКіЖБАЏЊЊЄЄЅЃЃЈ€ШЂ›˜•ЁЈБЏЎЇЉЁŸЁ›ŸЁЉЄЁFEE>NFJEArЂƒ…ЉРКЕЛВДЗОЦЩЯЫЫЪШФЧЎЇЄЂŸЉЊЉЁЂЊЉЈžž™˜ЁЅЊЋЇЇžœ›—˜ЄЅЇЇЃHB@>>:44A]WF9\ƒ…–ИЎЕЏИШЮмЯЮШЩШЫД›—ŸžЁЅЈЃЉЎЎЋЂŸžŸЁЊЏЌЈЄЅЃЄЈЊЊЅЄЇЅNIGC<478(&AILJJSQni`^G3Qtr~”žЏШлЧžŸАœ˜›œЂЅЃЃЂЄЂЅЅЃœЂЁŸЂ›ЁŸ›–™ЄЈACFMPJLG>;;CL8<;?B4>?GF4!1:9?:?Y^SQwttmmtrcVPOL>I[SZ*0,4138<:58:<<@FNOLMC<:9A>?ACCо@HJI?8<@A<>H8QH17NH;7>QZ22€ч718@B?94:;??>;8:>C@BBGIG?><5AGGC?-.10-1;<@:.*279><987;9CBFJJB;CFB<:47.37@BCJI?8;><;CGGE?;9BB?8:AA1523&).)-(.2,4.:9>9>ь;9:>A>@AG?:31:9:005:€Ж}x}Љ…‚|}~‹‰Žƒ}…Š|xŒ•Ё‚‰…’„…‡–Ž‘–”|qtotvŠ‹”„ˆМ˜‚~uo”’‡|„‡„‡…‚ƒ‚…ƒ‡ƒ…Š—™ŽˆŒ•Ё„„‹z|‰‘–‹‰‚‚{{krwpwƒ”‹ˆ‚~z{vwtr”ƒ‰Ћ’‚„{‘ƒ|Œ‹||‡’‘Ї’—‡z‘Œ”‡Œ’Žz~xu|{kkr‚ƒŠŒŠ|uxp{{€˜w|‡ŒŠ‚|}ЯнЏ{‡ƒ’Š‘}|xwАxr„ž‹‡Œ–—Œ•ˆŽˆw‡‰ƒw…~ztŽ‘–‘’‰–”‘‘urt„{rx’‰А—ЋкУЄ•ЁŸ˜[nwƒ~x}Œ™‘ŒžŽˆ‘˜—ЂЂž‰‰ŒŒ””•„zd—‘ž–‘ˆ‘Œ’ƒ’ސ}xot”zw›ЗЩЃ˜™ВМ•}jr||~€дЂЁ›Šˆˆ‰‹…ŒЇ›™~w’Z…˜ŸurЅЖ™‹|„~w‡‰‹Š—‹Аnuœ’rЌгЯбЄƒz˜‘’˜‰dŠЋЇŠŽ‹‘Ї‚”ЅЇŠ…e`?aˆ~rntžЈ”ƒ~„ƒ}x{p‰‹Œ„‹‡odo‰–Ž{ЄЈЗЃ›wƒŽЊЃŒ„‡ŸЂЃ‰‹‘•›™™Ѓ™˜ŒœЊЃ~w‡zx{n‡…ƒ}{‰ŒŠˆ„~Š”Œˆ‚|•‹ƒ‰˜™ЌКЊxŽ’‘Ÿ•ƒ‰‹„…ˆƒ‹™ЁЋЌЁ˜‹”‘€v|~„…ƒx}ˆŠˆƒ„„‰ˆ…}ƒ—˜’Ї›„ЩСБЕœ›Ѓ—‡Š‹‘™~ƒƒ‚ˆ‰œ›ВДЃ˜Œ‹ˆŽŒxu‚Ё}j~Šˆx~‚…‹Ž„~ЋЅЁАžЂ”…˜ЅЃЄ’”—›‹”ž”–›‘‹ˆ‚j‡Єœ•—–‡{‰…ggno{vr‚z}ˆ„…ŒŒ€˜ˆ•‘ˆ{|ƒŽ›™–—‡ЁЇЅЅЏЋˆ|}w…‘œ—Ћ‘‹ƒˆ…‰ЌЄЋСЎ~ˆ{uwxt{tqu‚x~}‡ƒŒ|Ž›ЁmzuŒ—ЃЃ‹ЉЅЁЋЎА‚t|ЂЎЎ‰Ž—ƒz‡„ŒЎЊЏРУtz|{~ށz{z~|vour‰™—˜op}‡’”œ˜—ЄЌЎžЇЎа‹TWŸН’…Œ‰–ˆ…„ƒ„‡ŒЃЉЅž‹‹ЅŠŽ‘„}{}ˆ‹Š}vrg|o‰”‹wz‡Ž’˜ЁЂ—žЌЕКИЂЁЌФŠrk‰œЅ‘‹Ž›™~}{…œЃœŸ–‹…˜–”zhk{„„…~„‘‹Ž”Šƒƒ‰Š…”œЂЂЃžЏЗВВ›}„t{ސ–œŠ„‘”Ž{ˆ—›ЂЉЉž”’’„Ž—Š|n„…}xwm{‘Ž|„‘‘…ƒ~}„ˆ‰‘ЃЇŸž›ЁЏД—Ž”–”ž’›–”ŠŠ{ƒ}‹—˜˜‹‘˜„ƒ…‡…pv‡z|v|ˆŒ…‡‰‰|zx~‡ŽŒЈАЌЁ›ЎЧО•‘›™‘Œ‹œДizz~‡–˜™—‘ŠŒ‚~{wgv}|‚}}…ˆ”Ž…„‚{‹‡ƒ”‘ŒЈАЖЏЅЕЮМ‹Š•˜•”•œОЉƒaz‹Šˆƒ‡‡‘–Ž—””„‡ƒ}xz{uuq{˜З•Œ˜„zu…ŠŽ’‘”œЌБЏВАВУжЈ…‹Š‰‘ЄБЇ|v{„„Š…ŒЅ—Ž”Ђ–—Œ—•{itqZ5n‘КŸŠˆ’’|x…{›‡œЃЇЊЈЎДЈЛАЄ™”Ž‹’ЏЄЄˆ”zxƒƒ‡‚’œ™›ˆ””œ™nxxvu|‡ЂˆFw‡}pС™‰Š‹‰”ЄЋЎЏЋЇЈЈЉЈœ•˜žœŸŸ€ŒЎЂžЁ’…z‡‘”›•‘™ž‘„wxx}‘„…Ž’\mn~wriŒˆŠ…—ЇžДЏЋЌЈЊЗЁЁЋЁŸЌЇ•ЁЅЋМЖМРФˆjŠ‘ž–•‘‡––ŽЋ™imm{|z}‰ˆŽv„|uwr„~vˆ}}t—’’ЁЃЅŸА•ЉБЁŸЏАБЉЃЃЇБЖРЄvu„‹Œ˜›—–’•Ё—]erpwpr„ƒ{tˆŒ‚‡…‰‹ƒˆ…Š„—™ЇЋЇ”žЁЃžЋНнВ‡–ЅЁЁЊЌ‚Y|Š|[ЂЂŸ˜‘Œwƒ…eBFjuq|{„Ї}~‹‘Œ…‰Šˆ~ƒ‹Š‹”Ÿ™ЅЇ˜™ŸЄ˜‰МыЖ–—‘ŸЊЪ…Ow|r‡–˜‹Ž‹—Ž}e^gpp~}~}ƒ’‘–’ƒ|‹‹…‚}ƒ‰’Œ—ЈЌЊ›ŸЈЁ‹”ИФЛЂЃЁœЖЖ{e„o„ТМžŸЌ‘u‡{bkt~}tutu{z‰˜Ÿ—„~‚„ƒ‡‚~‚ƒƒŠ—АЗЎžЊК}z‰˜ˆ}a~ЊЁ™‹Ždb„…x~ЖЦЌŽЄЗ”v…ƒ{ƒ‚wwž——‘•‹„|}wzwwЁ‹žЅКФИВВСьЩqŠŽ‘u‹ДЅЌШЇw{ŠˆxƒЕршйпД„jrvxup„—މwƒ‚…{qtwqqutw{…‚ЇТЩЕЊЋБФРВЅŠ‡˜Ё˜‰ЄŸŸœЅ{zЃДИатпёђэЕqjtnqu|xpj…ˆ‰ŽŠ„~|ƒ}~ˆ‚{}„ˆЅФИАЊЏНЦЩЕ’ЎТцЏ‡‘’Š|ˆЊЪЧКМЖЪЪ›utw{}vv|„Ѕžƒ…‰‰ˆ…‡„‡Š‹‡tqwžƒЗЅЁАЖЕОЕžЈЏМУДun‰ƒ‹…ŽˆƒˆЈУЇЇ€WЁАВxchoo~w‡wŠ™˜‚‰‘”ƒ{‚‰~|umo‰›˜ЄКШЩОЖАžСБƒw’”•‹ŽŒŽŒˆ—ЏБЇЁЈБ‘ˆ…{|{~„ˆ‹™‹ŒŽ”—–ŽŒ‘‹ƒƒwr™‹”‘—Є˜ТРЎКЇ”˜–”ž—’•ЄޙЅЛРЗЃž—zjxq|tŒŠ‹ˆˆz‚ŽœЁ„ƒˆuhqaz‰‰ŒœžЃЩЮкг‹ƒŸžЈЎЉЇЈ–•„‡ŠŠœФЌЌЁŸŸ‘•‡|}|tu‚‡ˆ‚ƒ…„~Š™ž—…„‡zhdhj…‡‡ŠžЅЊЕСНСЎ‰‰•ЂœžЁЋкЈ‰–˜”‘œœ—ЁЖЈ‘‡r…ˆ~}„Œ‡xnq{w~’˜{„|uoz|pp‹ŒЂ›Є˜‡ЁчмсљЯ•‰„…ƒnЅБЈœ–ЃЉЃ—›””–дчТ•…‡~|~~”’ƒz{}}‚wxvww€Фt‚…‹’•’Ž›ЌБЌйеЩУН™‚|zŸ•‘’ЂЉž„Ž‘˜ЇФШЇ}o‚zƒ‹‡ˆ~…{‚‚„ƒvrvux…ˆ”–™‰ŽƒЎЩДСЕЕБ•‹˜–‘„‹Œ‰Œ”™—‡Š‡„‡ЕД˜Š~ƒ~‰•—Љ‰}ƒƒ‡‹””}}‹’ŠŠ‡…ˆˆ…„‰’q•ВЌЄЈЊЃ‘”ˆŒˆ‰•žЅЉ’‹ˆ~|™Ќ›mx~wxz„••˜™ˆ‹”•˜‹vniu„w|{t…Ž’•™”Œ”БЗЅЋЋ•ƒ„‡Ž……‘ЈЁЇŒ’ЂАЖДЉ˜xtxwtr„‰…–˜˜‡ƒ‡•…„|ruzƒ„‚~™žŸœ‹ЇСсЮЂ‚‹”–ˆ{МИЎЄ—•ЃЏДУИŒ‡u‚ƒwwŒ•™‹{vqpwoojktxtonpŠŽ‡”’Œ˜ЫцзгЦ•Œ‡„}‰„дВ•ŒŽ›СгххЭД•‹ˆŠƒ‡}{{‚‚}~zv|…}timjicnjgnhˆ›™‘ЊЈДУНДЎ’’…‚‚xw™ŠЇЗЉ˜”žВЦпуЛ}Š‘‘„‚}tnnrnmitutmkbkcgaa`anu{‘–Ё™‹ŸЩТСœЈŒ’„wx—‹Ђ–Š‚ŒДЌŒrjƒ}z~„~vjeorqhoxoiqkgkokemoo{bŠ‘Œ˜ЏЊЈЋ…”™”ЇЈž—Œˆx{~ƒ~}Œ™wzwtxwz{rojmonpq|‹}|pkhinttkp|Š‹‰„Ž‘˜›˜–Š•ЊЃ›ЃЌЌЈ‹‰ƒ•Дпўе‘wz~…|{xwxnmb`mgdk}~„~ƒzzuzrtoqœ–”–—ЎДЊВЃ’›™ЇЃЇЃ—Ёœ™‚h}‡–Œ‰„ˆ‚}{{urpmnkehow{zvwurrutmqq€Ѓ‘‹ŸЃЁЈИРЄ’•ЁЄЈЁ‘‹ˆ”ЂЄ„~’уђТ—‡vpz|}|n`^\adghgirkv}c[^iwxwnmqu•ЁЈЄЂЅЉЂžЇœ›‘•’Œ‘œ‚‰‘›‘‹ˆЄ—pkpz~}{~u[\W^\^b]nihpqpi[adkjioprtm‚Š‚…ЂРУ›˜Ž…’‹—˜’„‚z~•”‰ˆ˜‚itrtrq{vpmjqvtnnjquvkuvmddghmptrrigdHFe|›ƒœ•…‰”™™’ŒŠ}z‚}„wvtqricckgkhmmheddghu{xxtqkimqoohbI[UNAZgak–›{•Ѓƒƒ‚~Š‹–Šƒ~‚‡}xuwqrtnahkmneZ\Z[akqwrrjjeb]\eog]@H1GQJMCCp‹kj~”’ƒ{{}Ž›ЄЁ–ŽŽ‹‰vmjhjqtigdmtabdagbppvtvjbaeekhehgJE?H@A*>@[V53Pow|”~}„›ЃЉЂ˜™–œ~eidd€[hgkpu|penpjrt|mjddgjpqpmhiNIINEB2;*&;HBHGJTcc^TUwЊбЦ™ˆ”ЋЏЈ‡hb`ima`gnkhc`cdiw~wnodgnnedjbgeQIHF>G?C@HHLOOMOnjWS?3G\Ydot‡ŸЉœp\kt^^]jntqihdjwnnhiamhh^aegbcmqBH@LJH@@HICCFIHQSUNG;HGNLMC?>J`^G2?`khr™•‡jt{x„Œ{ro~tp^^\Whjtm99?AB>E<8@BHGTTLG>@@MB;-878.8>2AOOH0:.@38?MF>9:AF?CHVUSFGB>CF>:;AB8BCG?:B@>5;EBLkaMP?8LE-9FH?5@SP:3?3?@GPG?9>?EGEFF?>0C<9HH>>AA99EJABC>;;BSSUOT\TIIBLPOIEC9F?77;3>>GIG@:)9>GI?@7>?G@OJLLJIHCAHHA91;8EBE<;9QMMONTZQSMSHE?;<8F7E3:<;:2EGB3900;BCC;M?GGLOQOABNMI7?. FIBGICB?CJGHAGNE>BA?;47?E49302?+94<53,2?FMFFBHFAF4,89CI@BH@CCH@GQUQIMWghmr{„e^kricbiqtuvwtx}}xuvqknrqPjAJNLIJTQ^c^a`cibWHJEBAF>OZTOQW\agZrŠxdTZdmprpjvtqommkuwjdg`ike^hVSQMGJ]bcbcbie\^`aVIC9GJMVYPMLY^]UW]WPT`nkdg`]ep{rZZ^nUU^agzmcejOU[ab`ZUOPWZOUZYTFNIILQ\]\\ZU^[QZTQPMPQdha[qbSgvzk[SZniSV`^GIEH^VSOZeeaa``€Њdg]OOa\E7N\cWdht•k`WWPIAQW^U[SJ5-::4#.%>+$%!(%SPYWUn‚v[OYWJT]S:WJ ! ! ##"!!(*..4.)€H%$(%-(+,!"(:A88-+  &".%4>@2I>0%#!$**2)3:?2$%*2)&1*@@7$5;487) $F02249<;-8;:@A977521$&5,*2;8;?;7:;7$Lek`F@; "%+(&0,+%0#* %.+9B;;?EAIGFIBC<;:89><9@GA>9937B?BAHILG<4($!+$$05138+4@8)( &21<@?@B5.49?9:MM?0,,-.3;B:2215<5 "%137@<7?G:5M7#-2+%84A?>5,<>@BCII@F0@F@0$8+?<)),;7AIE9BI432577958;>?>BGBAB>8;:EFE@ILJCEE@:GOPVQ>>A7(@<<> 9;>@BAAEMOTLQj[A>>A?9<;>7;:BHG@?:>;?E?>JILO;@?ACFISYQIC;>;@A>11@\E@EEC@>?@CGNONGCA@><:;A9:;AAFCBB?;Srp`IA;?7;:;BACI:+%+>:A;>CCGIOLMNIMICAA?BFIHGBCBHE?<<@@JINQJBAA9?@>@EGE@85@LNGC@))A>><@CLJEGIJECFJF;;Љ>934534IZNNOIEA>?€…‰’ށˆ‘•‘‡Š‘™Мйžžqztouk‰{Ў›ЂЅЂЇЁ•‰‘—˜’ƒpŸ”ОЩнаЗЂ™—”™ŸЃ•|ŒŠŽŒ••—••œŸ•ЖЕО‹cƒr`kuq‚—’–Їž˜›žЁЄЃ–˜Œ‰™ЌугтчЉw˜ŸЅœŒАЂz‰ŽŠŒ’„Œ‰‚—ЂŒwwh–‡Q0g‘pi•Ђ•ЅЃЂ”‘ЏЖЈ”‹‘zŒДЕАЇЃŒ”ЂЋЏЊ’’ЉЏЋ„‰”›‘‹}‡Œ‚•˜›ˆ‡‹™‡m{ЇŸxt„АЅЅЃЉДЅ‘”ЃИИЯОЃ—”ŽŽЄЗДЌЎЊАЏЄŽ™”ЁЄЌFnЇ–…Š„‹Š…ŽŒ”–’}cI{™Ž”ЃŸœžžЌЉ•ސМгЈВДЌЋ”ƒ‹ДВАЌЏЋКЊŸ›…„”ЛВoŒœ‘”•’Ž‰‡‹Ÿ–™ŽŠ‰o}bv{…‹……ŠŸЊŸ›–‡‡–Є™˜ЂЁЁ‘‘ЄВИКИОЎВАЇЁ™Ž‡ЅЕo{ˆ””Ž’Š‹—”Ž’—Ѕ—‰‚pznnrž~z™–ЏКЅ˜–˜Ї|ЎЂžŸŸ•”ž’”ЅМАКЛИФБЅЇœ‹œЎŽœ‹ˆ~ˆ‘˜—ŒŠœ‹…~}}wqhvŒrn’‘АБЃ’‚АщЛК‘”˜ЌЈЈœ›’vЇСОРСКЗКЏЌŸžŒŠ‹„—‹”’™‘„Š…ƒ~…vhqm|w~‘•›ЌЉ•ŒƒŸТКЖ™œŸЌЇЋЇЄ”ЁЋНСОРИЖУЂ}‘˜}‰iEpv‡••˜Є•‰ŒŒ—ˆ‡‚ond{Œ…~„r’ЉЂ—˜БИЧИЛЖЛИДОЛЌŸЇЂЫдФЦЛЎЖжК‹ˆ‘‡ŠЁŽ}u„•Н—””’‘—•‘‹Š}wz„‡}ˆ”œ™•˜ЂАКУЯООИБДРИЗИЋАФУФЕАБЏКЎ|t‰’œ•œŽ—ЊТЁ—••‰„ˆ–—›‰‡|ƒ„ƒ‚|‡…ˆ—ŸœЄЌЇЕРНБЈЉЅДДНКЖОЪНИЖЈЅŸ™’Œ‡Ђ’›žЂЅŸ›Š—К‡o|ŒŠ•‚pk{qŒ—Œvx‚Š–ЉŸЊВЃ›ЉЂЁЄЕЏОЧздгММТОЗВЊЎЖЄt…ЈŠŠ””Ÿ˜ŸЄЅœЉ—wez~{iNh‚„‚v|ƒ‡v~•–ŸЏЉОЕЅЄŸЃЃЕКЕЕЎЎШЫАБСТРВЃЈЗйЕœ”˜‹ˆ„‹Ž”‹›Ÿ˜ВЫЌŸzœvpu…‡‚ˆ…„ŽЂ‹ЁЋЋБЉœЎВТНЕЌЖОЅЏДБУЭбИЂЁ™ЁЂЁž•—ŠƒzŠ‘‘œœžœ’ŸЇЅž••‡Lhv„„‚…Œˆ~zˆЅЈЇКЏЇЂЉЏЎЗБЉБЕАЛШОбЯЯЪ›——–•™ЅЄЃˆ‹‚’˜•ŒœŸ—ЉЃŽЅЎ‚{|‰Šƒ„‚}w‹–ž›ЄАЊЋЏЋЎЏЂЈДЗИМТМРЦазИЂ™ЁЄ™ЂЅЅ}}‚Ž„œ›œœЁ˜›˜’”ƒއ…‹ƒ}vxzzw}|ŒŒ˜ŽЁБВЌВЈЃЂЃЗМЖФТТЗЗОИБЄЁžЈ—‘ЊЇ’‚]ЇЃžœ––˜”…‘Šˆ™Œˆuw„Œˆ„…ЃЏВВЋВЋЄЊЊЎЏЗНСТУЯЫТРМЖЏЋЂЈ™œžЈ–•”}—ЛЕКЭЇž••—‡„„ˆŠ……|}„~ƒŽ’‰nЕУОКЋЅЋЎБЊЖЦЫжеадФРДБЊЇЈ˜™ŽЏ}~‹ŒЦчТЕУЮТЖЌДМ›z}{vmn{‰‚uw{„Œ’–˜žРИРРБЏВЎЗЕВКЪнжбСМЖЋЇЂ›ЋЏŸ›ЂЉwx‡™œЉЖТМЎžЁ›Ÿœ•ƒ~{tou}}ˆ‚Œ‹‹‡ЏŸЏЏСОКНИЋЕЗКОгпЮОСФНДЈЁЂЉЇ—”—Єt‡{˜”ЋЖДЊЅЂŸ›Š‚ztxuuqƒz{‚‚‡…„ЋББЕЛИНЖЖСЧРОЖТЫЦТгаЪКЏœЃЁЄ™ЂЂЌŠ–—•ЖИлР”ЂЄЁ••–›™Š‡wrv…ƒ‡‡‰ˆ„ƒ…ДруНЋЈЉНОЗЕВЕЖБЦджЯмеЫБЈЄЈЈЇ—С‹ЄЂ›˜АР‘‘ѕЂЃЋЅЄ•އx|ƒƒ€2|}ƒ‚’~ŒЕЭЪНЊЏКМВБ™ЅДВЕЭлеТЫеЭБЈЈЋЊЈЊЌАТˆ™ЇЗМžŒœЊЄЁЁ˜’Œ‹‡„‚xgox}|}w•ЗгдЪЛЎЕМРЌЎЄЕТВЕЯлнжЧжкЩЕЇЂЄЌЁЃЈНސŒ‡ЃЯЕЄ–˜ЂЇ›’™›”||u}z}‚…‰ЇШчгТЖООЦНВЎАКОЩагжЧЫанаКВЉЈЋЇЂЋЌЅЅ…z”ЂЊЉЃЃЂАЗМЏЊЊœ‹•‰~zvtqr~zro–СШМЏŸВРЫЛЏЇЌЕЫжккжЭЪФЪКЌЎЃЁЈЇЃЂЈ‹Š…z•ЌБЈЁЄЁЋЉЈЉœ—ˆŠ‚rr{}o‹˜„|m‰Щпа͘АМРЏЄЂЏЎСзпдйаТЫбУЏЂŸЉЕЎž—Џ……ƒƒЏхЩЗ™™€ё›ЇЎЇАŠ‚~|{Œ…Žœ‹z•тётаƒДТНИДААЗгдсржгЮаФЋЂЊЌЏЄЃИŽŠt~ЎжццѕумЩКДЊЊЁŠ…‚„‚„…ˆ‰‡}ЊЉ–Ыхспe™ОУРЏЊЄЈЪйкйкжаЭТДЁ™ЁЁžЇБ{„xn•ЮнкуьтхсуЭЇŠ‚~w|vtv~{vo{Ќгкб›ЈФЛСЕЉЇВцнтяэчгЪгНЉЋЊЉВЉЊЦw~ˆЗпеллщчхдбЏ‘•‡‚‰{u”З„xw{‘ИчЮЏЂВНФОА›ЁЈРйбшёьхзйЭВЈЌАББЏ€={‰Ё‘žСбксьюющаА‹‰–‹‘’‹„ˆ’—„}v{ŒŸОшдШОААФОЋ—ž”ЊуїшэщулЭНКЕЕЌЉЄЏЕ‡ŠŠ™ЂЩкпщђёёяшЩЏНЅ‚Š}‚oidu{zvЃЎБпцаФНОЧКЈЁ’ЄђўьюцускФНОБЏБЌЏЪШ›žЅУў§ьцрнжЫЭеМЉ–Ž‚wˆ”‘„‚‹˜{ŸйгРИОФОЖЏЎЧЯцђчкйебеЭУЛИКРИЎЕН’œƒƒЎшщптусцсбдЈ„x……„‚‚‡‰‡ƒ~œЂЪёгФЛСЮНЏЉЖЦФелхтднеЩТНТШШСЖЉДЦ••—›’ЎчётйкмдЫЎЌ›–˜–zp{‚‡ƒ{zƒЋžАЪтННУСЉŸЁЌЉЃОЫдеЫЮбФРОжтСЃЈЈїКˆ›ЇЌКднзз€єбШЩзМЛŸ™‘Œ‡~vr}~[d•™–ŠˆИУЊЅЄЂŸЂЇАЊžЏУЯмЫШЧОЛФЫФЏЁ™œЄЇgЄФЫцрсмтпкЮЗЂ”Аˆˆ~‰…ƒƒoY{Ѓžœ•ЁБЎЁЂ™ЁЁЃ™‘ŒВТсаДЎВЖРглЄŽ›—’™•ЉТмѓххЧЮтяянЋ•‹ŽŠ‰pt~‹‰ow••™˜›ЯЛЅœ‘•””™‘‹ЂУТЏЉЄŸИазРЁ–‘Љ…—’‘ЊФМŸ›™КЯФЫД—‘”Ž‡e`mmihmeސwvЅДЛЈ”އ„„ŠŒŽ›АЉ—Š—žЏМʙ•Œ’’i€Џm‡ЄЈ•žŸЎКЕЎ™•‘…‡‚korxv~xw}‚„xp„›…~‡”‹„„|ƒ‹œ”މ•ИЉЃЁЏАЎЅЂ˜™xuvnЂ”––ŸЉЏЏЌЁЄВЄ‰‰zorr{~|Œ‰‚‡‚xm}ˆŽ‹‰„‘Œ›ЂŒ…žВ™‘žЌЕЏЃЈЁЂ|{n[nŒ—˜ž˜ЈЊЅ‹ƒtjb^jjtokjr~z~‚‚„kiŠ…‘–™z™Џ‰{›ЛКЁЕЦД™›ЎКiihpˆˆŒ‰ƒrwŒˆ…‡ƒ|zk`c\bvxzx…|}v{x„„~ЌŸ’œЈŸž’ЕчёеЭШпаЭущнКЌДЛМoommt~„Šƒ{…|wqtvptoigp|ript{ƒŠƒ~wƒ˜—’ЁЈАЏНСнєнккемйжллЪЉЇЌВДmopt‘Є‘‘‹~„ˆwxtocmaZcedahkdipwuwjoŠ‘”•Ž‘Ž˜••ЇНнгЩмкЩНЕЛУЗЅŸЇЌВw}‚’–Œ’–…t{~uzjmnrrqj[aiqpcaagainh|ŠŽŽ‡„|~u„…ЊДААЕЋ‰Š˜‰™ž‰ŠŸЁžuuLJngk‚‰Š~}wtqvomkjdgdjgqzvotohimq{‚vzo}|tz‹’Ÿ”…‡ˆˆ‡‡ŠŽ™ЃЃЋozkip|„ŠŒŠŒŽprmvpwwrpqnrwvutruvuzxttrujx||~u~ˆŠˆ‡””‹Ž——–˜Єcimqp{z‡ŒŽ‹™œЂw{tgeq{}iiniowqnuuz~z‚Œ…||wppx{…’‹|‚„‰Œ™‘ˆ›•Zdnoonxwuup‡Šu„zoaghYZ^epmjdjoz~‡ŽЇvxwz|‰ŠŽ‰‰ƒŠ”ސ‰‚}‡ˆƒgz^cdb]aamorrvzƒ~}ncabYTY^conbaoqx|u‡ЄŽzmuƒŒ‡‡‚……‡ƒ{„…ŽŠ~wvvzxtvxeembV^hrrvx|{|wrvpha[WSY`khecdhunjmxmcgv|‚{‚zvw‚‡‚jqn‡pcot|Œzq}‚gmpvjpjhgehomouznkig[[`hjknqoojogmibcgc}wt‡zm{‹rk`r‚x`epi^]Uaqokjmx|ztroruwpoixgWTau|m|}‰Њœtjhc[aidvooc[FEHWJ<;:+EA,+4;44:5I;G>BGOLQC>B0GNGHMNTN?EBH:JOUZS:AC3<:;070*0:?FFSGJQW[ZibICEFBB4FEIIHSSPSCFEHE@GPTT\Z?4;9>ELTNIH?;C31->`BLITWVMUPTZ\[[UTQLGGJSJPLLNTTЫQSSOJcƒ‹|`WUBA;B?EHQEFABBLIMO<2!1CUGZVUUWY[[b`ca\[TOO€•Z\bW[Sa`]NQST[W`kdaZV@EB@@;NQLFFIM[PQC4)$HJNMU[`\[Z\UUQ[W]USNMMVZ]ZYWVNOMJUYYSQPQVSW?4>7FBEISVVWUbYUgS;EGOLTOVW]TWO[SYV^cg^]UYQVVTTULQGIJQYncemgWUSVџ€>txv‚|uvЅАOiZod~Ј™‡pmt{zz‰‘~]Cqwu–ioŒЁБЂЊЖЅ:2*B72;)$*9-5.-!5‡ƒqw{kpzЅЗnLqSC~Є’ЅŒx}Š…‚ˆ{eIUHO˜‘j~••КДМ:,N@A<3743&$-ˆŒ}rprqmm„i#Cdbp|‚z{rnv‹ŠŒ’…ˆh3+!7!)255&3ƒ}wkcMek{ЋrˆvZh‚vov‚ƒgjŠ‘ˆvzU>@ddueuИЌБЏ”ЪЦcE?LhI8&&%*48878Q&Œ~ƒqZSI~–Ÿ››xYZ`Ymu”˜…w–А‘…t‰jG2Zv‰‹”™ЁЌЎЂЂЖwJZ@:9131<><7*3)Ё›–~ukt‹ЁmSozjpzސ„„ЇЂ‹ƒ‹}~F)Enˆ„ЂЅЉЉЇВАВФЉNJMF,2-""+858+4…h`bYh{ˆjt||u‹ŽŠ„œЊЎЃŒhqj\.Nhu‹Ћ—’”ЂЋЋЎЅI)-."1815(P‰Ž™ŠvO`vqr{‡Ž…‡}‹Š‰‘’Ÿ˜~tt|Smirm›˜™ЂЃМеЭШaF8FMdG*.*?H?8$!3—В‘t[bVW’„‡vhep„’•…„ˆ‡‚kopxom}n‰ŠŽŒ›ЊЌЕДŸЅhPWIINH-8:?FFI!!€Еn›Р˜z`oxtœЅЌ–„xЅŸЃ”…‚Œ–ЄЊЈ’–nc`no…ŠŽŠœЄАЩЭдзФ>;?A7E\:#$0;7(˜ЂШЈ}‚up{˜Ё|ij‰‹||ˆ—žЈЌž‚„nhd~POqЂЄ}—ЖШЖАНЫлЃ.5>5AB?-(*33+*ЌŸ‰q{joopŒ’‰‰‚i|Ž’‹‰z’ЋЕЖВ›‡etheGU^dj‡’ЕМЭНЗЖВB9NIFAGCQ<8:5+1.Œ„‡}x{{tŒ™”ŽŠ„”•ŒƒЂЦДЖРИРgZiV9Qz{ƒ–—ŸЊАДЗЧЯk-@SVLLVQAA9B:ƒžЊuW…’›–‡Ÿ‚‚wx‡z…™ЂДВЇЋ–piv|hmok„ЁЋЇ™ЄТтЛU;ZSS€‡MHCI>8>?<Ž”žЈ„Mi}ƒ„‰Ž‡Œ…{nZ]}|{™—žДБЌЁnz||‚{|‚‡‰ŠЇЅЋЃЇЕЯzMOMLTWHBFC7230ЁЎž—zaqp{‚ƒ–…{w‚mttˆŒ{utv‡ЃЏНœ„|~…‡}‰‰…˜Ћ–™œŸЋЌА–AQLNLLG5B@5.80œ™ŸЉ—…wq}}ˆ‡‚}ƒŒƒwv~Š…~ˆАЗДБЁŽv{„‰‚‹‹‰ŠwДСЗЖИФЃ>[INOA0+",9@98˜”˜˜~{qiuƒ‡…x‡‹wzz„ˆ’Ž•ЋСДБЅŠˆ}tŒ…ˆ‡ˆ‡nСЏЋЎЫеL5LE<+,8;?<;,‰œЋАkamr}~{x•œ›iq‡……”™ЈЊЁ™–…‚~‚‚Š——’—ŒžЌАШлЂ9:HIJGH>11*(!Š•›ДЌ~vjomm‡Œ”ЋКhxxjŸЇž™–”’‰’‡„{‡ƒ™ЃЁœœ›ЁœЉЗРд‘1:FHJF8>@F?,-—Ѓ’Žo|wunxohƒЄ”…}vv|›ЅЅ•”žŽŠ‹””Ž~wx‚z—ЃЄЁЇŸЖЭншНI7@B?:980025)ЁŸ’{rtx|{q[u}Œ‘‰Š’‰ƒ˜ЃЅž‰ЂЎœˆ’™ŸŠ|xu{}‡ЄŸЁЃЁЉЪйкгЩŽ55AFF:GFB913ЏЋЄ‹uowikq‚Ÿ”‰{…ˆŒœ‹Ž•ŽŽ‘‹Ž„u…Š‹ЃЊЁž”‘НЫЪнчЁ?COGFCEF:,43ЌЖЌ–Š‡|tx‰‹ŒŽŠ–”›’Є–‘™ŒŠ›ЋЈЄ‘x‰’˜Œ‹……ЏШССОО`;C5857ЏЎŠ}wurqwt~Ž›ЃЁЏ’Š‚„‹’’—ž˜ЊЃœ•…‰”Œ—˜ЁЅЅЏЃ——Ћацч—9>:?LF@HPU™ž˜‰x||}‡xŒˆƒ„—’ЈАЈž„‰ƒ’ž™›ЁЊЉ—‘‰Œ‹”›ВКЊŸœ‘ŸЇВЯцЏ<575@<@HCC<œЃЎД„w|ouoxv~tkp‡›—‰Š‡‹‹ˆ‹’›˜—’”—•}}„{}‰”™œЂЅЈЋИЪЖc\SLLI@;9ЕДЉЎž‹…‚ww|wvmtxƒ’–˜‹‹Œ””–’˜Œ„…ƒ~‰‘„{…ŠŽ’˜ЃЂЈЉВРчюvIJOME;B>ЏЗДЉЅƒ„ƒ}{zx‡Žƒ}w{xŒ‘ˆ}—Њ•œž‡‹„‡…„ˆ‰Š–ŠƒŽŽ˜™‘‘ЈŸЁЃЇУьЈ>;WQNEOUДМЕЏŽƒ‚zkrzŽŽ‘ƒ„~ƒ~}~ˆŒ’Š‰ŽŠxvƒŒЄВœƒƒ‡„ƒ‡‘žЈЌЏЯуС[-HEJEHBУЗЭЛˆ`jmtt€§„œ‚rkmqmq{‚}|ƒ•‹„‘›•‹pŒЃ˜‘Œ‡‡‚‹Œœ™ЁБРую~:FS>0IQŒŠ™™p„””g^[{‘–…tmoqu‚ˆ„}|‹ŠˆŠŠƒ}…‰ƒ—ЅŸАЊœƒˆ˜™™ЂЊБВОйц’APUE@:z|‡…ˆ‚qhnhr„ЎЖЂˆ‚uw{Š›œ‘•˜žŸ”ŸЂ˜‰Š‰ЉМЌ™ЂЁ’…‡Ž‘‹‰…ЅДЛРШВb:82)+ŠŠŽ•}hgigiŠ‘‡–ЧЇzw‚‹˜”ŒŠ‘™œžž—–‹‡—ЂЇЎЈ‰‰ŽŠ„‡‰‚ˆ‰‡{ƒ˜ЇЁi;8)7-œŒ‡Š{xwkpjgr}ˆŒ…|„Š’•ŽŒ‚…‡‰ˆ‡‹Œƒ{ƒ…‰ƒŠ‰{{}}woovz‡Œ‡{M84?@Ђ•”‰|rvvtv‰ˆ…|z{„’›–ƒzx|‚‚{|wu|x…”—Š}vv~„ˆ„{pikz–Š‘Ѕ|4!::ƒzuqrjkq|…xƒ‰ˆˆ„xqz|ƒ}„ƒ}Œ…|vzupou–’ŒŠzu{„‡‚‚‡‚~žЌЕНF%™‘mpprjg`a]aaUP\hz–Ž‹ŒŠƒ}xu|……‚xt|‚ztv‚ЊЕЖЈЇ–’”•—Šƒ~ŒœЉЌ‹g@"..zgВ}QhnhgkpvzwСЉ”‚‹‰rdt|Š‘„xƒŠŒ…nŒЄЁЛТИВБ’‘˜‘Ž~‰Ž•Ž~rYJ<˜ŒŽg\kqq€grw~o}––ŽŒ‘”‰ŒŒ‡wu”›–‹”œЇАВВУЪЉ‘ŒˆŽ‹~„‚•ЁА™^<œЏДxN\mxtjimvx™Ђ‘Ž—’‹…‰ˆ‰„}{{~•ЁЂŽ›ЉЄЅŸЄŠxwz‚…{vq}”ДЭНe2|™ЂgU[\ehigkhZ‹™–‹„ƒ||‚‚‰ˆ‚ƒ‡zuŠ”Ёˆ‚„ŽŠ‰ŽŸ–ˆrrwtx{’œЎНОВЩк›Mx^^dN?SSc`\eijpw‰Š…Š|ru{z„Šƒkrttdgo‹‘Ђ‚}Œ‰vm]bquz||‡ЁЋЉžЄКЧЋa`\`^[PSJEVejiˆ”|uq„iT\j}ƒeWeiiZagehkjY[[gd`[LSWJPL9FMA?A>GHJ+[cuvr[U@LYZ[Ujoi[MNIIHGME493>34%-&01:?31,25+1)++5:E?)(25YV;3GQJC288($541!3-)(%$$)+8%4CIGEA>718;@FIGG@@?&#&+!  %0*$#2:@;->?@2#)!*#12$#13<:7A?70&>HGIBEAEB;+#%454, "$)1*".:.389-:@BA?:?>;9*)#,! !)*)*)&,)-+&3;34:4@BECI?.--98BA>9522€ƒ4075?@BEA5;A80%* "(*3--+.)2@FJIGE@73*7<2(,89@INMNGGEAF;979CFFHFI?.-8@A:497.318:>CHFEE@>5::€О2.713.5<( #35*&,58?A>B3(7-;79AB9.1474)"!0-8:2354>9:B18BEA8402&"07@-+?@:-.498215?@977549?BFJLMIA-$.,&9u‰M$8052:@BIFA?BC:449759>ELL8*7:0&-)3?8:758>9223:@GHELJ:4(CNH??rTCC?3))07CB8??љ8.15002€ќМСШЧЮШЧдјї’ЈБОИаьрйгМРЧЯЮббкгЎШЩЛрМЛЯлчтпцјсQ<>OMLIIEHBLMJBG>CSгдЭРНООЭѓўД3—ЯЊœЩюсёнЮаеждеЭЫЖЃ›ЂцсЛблмруёїўЃACaPNI@@JGHF>>A1>EбЫЪФТОФОНпКO‰ЛЕТЮкзШУФЫгзжехулЛˆ–ачЧСРМбрсшцўхg:8LSMEGEHBEHOLH.EеЮЪЕЖИЛЩРцЫаСЗНеЩЩЭЯЧТЏхклежжЯК‘ЃНЖЧЊНмїјышлўєuT[Z{VE@>@FHONNШeLпЩжКЏЃ—бшяяюЪБИЛВТеяэЪФпїпжжйпؘŠЏШкзртпчьыыцяQiFSNIFF€hPUQLGM@CхшсйЩНЦцєуьФЋЗОСЦгмйекнкѓхпдйЯݘn’ЯезчцчщэщщђўЖY^\QLFGC@FLNTMH2VуркНЋМБНгшкБЦЧЯддзлжагкмцхянЎРРЏxЅМЯкђухухцшчьЫVJnYJNF<@HNTJLIGpпньнЭаРЄНкЭЩЩЧЭдуйрлйбазкйрсаМКЧЄЛЖЛЯрмнссыыўўэjUH[ZqT9?MSWTWH8Jбн§щСЇЗЈЗцмжЩМШСзхытзббаЯбеШЩШУЦЦРШЎмлйсыщяяюум}Yc[\`Z9FGMZT`F?BРрўэРЁСЯЧюђјщдФЮѓыллйдайлпюрщТБЕВmЗгсунпщёьыњўћЇMILFVZ]G@>IJI??0цэўшЩЮЦЧРЮщсхдЪЖкзжезжрхшхсбкЭКНе™ЪмшЮмяѓэяыјўШCEQGIQTPJEEHFF?8јчскЦШШФЦНнрмкЩШЭдлмзШхђюяєркЦЧСФЁd™ЋЖАгуєюшэю§пQTcWZVTVUQNMIMNHкклйдЫЩЯЮЛеруржЯелрсййюўёёхбюљЕЏТБЈЩЭЩтуцшыяюўў‡@OZ`Z[a^VTSPOIHдеймжШФЫЯглттЧОСТлзжйЖныщчцтљыНЦмаЪЪСОзмнцшуущї§™<@QZYSNTYPMSQOOзклшкУТУпстмШУЯОМШЭаЮЄзшушшцшзРЩЩ€ЩФЧШбшѕэшыунхљўНV>?`d\VQOLVVYQQмрхэЦœЦмплпмаьзЩЪЪЯбЮЮжщнцььютНЫЮЭЮЧЪЮнщхучцтыћўы`FbY`ecYTPQPPJFрххђкЊЮдЯЯжйлййЮУФЪЪЫЦЮжесыээцСЯгбЭаалкзруххуььєўŽT]VW`c^VUNJGIJучьчЩДЫЯЮЯжжкгаЪЮЧЮгбЫЮФЩЯьэїмбЪЪааЯЯзлжйлццрьщшєНP[T[WUPUPMFJFFуьыљхжШЭЮзддееŽбЮЭбззйждкѓєющщжЭЫЯЯЮЮЯдгдбУщўяяёўЮO]OVVQHCJIINJFхччцзЦУСШЮдЮгжкрзегжжкмлпччющшйлдбдгЮЩааЯЭЕеѓщыуў§UTQPSPVQNNшЫюцйдЯШЩФЫдьэусплзккпумййзлрркзйкаЫЫггмнсхсрмєјєўўЧEOYYСOSULJLQьыщчрмзгЭЮЫЮжмсрумсплрпутпкенцштмхгЮглрпмзкйлаьљёёћшnHHUUбQPLGFGцщчхпййЯбааЮЯжсцуурлмпуыьщтсуцытебаактутпп€Mхщьэяьўў—^Y\TZWVTOJHуцышткзЯЯбЮШЦСкяыяпЕаЩыўэчнжпнхндЮгдлруыучыыяэёяюяўўЪQBaUPTMQHHFцутгзегдггЯЭЪЦжрьўщЦаЩжщмкждекжкгЮЫЫетцусцущэяяыыюїўщrIVVQPFB?LQччрббЭЮааЭбжлмщЮсхзллйкжзкпнйруцрйаазмсррущыющчутхћўўЇBE:UPLGL]cцхрлЭЭаедгбЫЫЭЮЭжкэцщспзмнтццруумжззмрслрхшыэьхтнцэћўЧJEEYVQMONUшщљыЪдгдаейжгЪЩЩЭФхыцппйптчщьэьёЯЪдллкчтУФпэѕштнхщюїўї~LTT€/PMJIHшчьцЮЩааггбЯЮЩЫайльцслйжзлтухшспбЮжзжпссжФЗШйзлпушююѓњ”C@IONQVSNчышђЪУЪШУЪЩЪЧЧЦЫйыщлегмлйзмстурпкйзЯУШжкгЯЮЯдлпхччыэђўбuiaYTVTNNыэёјщйаЧШЧШЩЮЩЧЦУЮйнжзйпсммпстплжгЮЦЩбееЯЪЮенуутшшщыєўўƒOL\YYUOPюьэььйздгЭЫЭбезжгЮгдздйкмуустрйкггЯЪЩазегЯемрммнхчьщщћўЛMIiZTSV\ёяёѓнздаЫЩЦЫжссзгЫЮЪЪЫЮбдднрпллйдЫЩЧЭднйеддб€Uдзтцчщюњўрc9^ZMJU[єэћјеКЩЪЧФФМЮчслЮЦЧФЩЩаЯЪЭйлнпйжгЮШДЪхттлжззедкйнрхцщєўў‘GUbOSW[нксцгСбгчИСЎЯчнйЯФТТЩЮжжабдллжежгЯбЮмыуцшчтмеемсхчшыюяўўЇP]^TQQJйкЮЫбЪЩЫзОФУбщснгЮЪЭЫЮгаЭЧаеаадгЩЩЭкщєыыэьњчждззнсщыѓђўўтiQQPOOIУЩШУРОЛННСЦЦТеккеЩЦЛЛФЭагзжгЮЯгдаЧЇЇМухцщчмЮггезнсшђэяђїл„MILIMLЦФФТРТРНЛОСИЮснЮаЪУМИОЩЮбезЮЦЫдлтТЧУЫрммуцсЮдгзжклбсђьяљћУmJFQOLЪШЫЫЭШТНКСРЯцлмаЩТРСЩгбаднзгжзкйдаЩцјхрнрскдЮЮаддЫбпщђћўч~EFMLCЪЪддЯЭУРЗЗЛДЪЮЫл§уЭФЧазжезмрснмнмждзрунеддйзгЮЮЫЮгжддШжпшр•TO:@IP[NE7>AAd]HANZqg`WYMI<12,.5*,-?E?<8ABI?453@@;JIICA@?>EGJFEGGTSQTUJAFLMLNPNIHIHJC;>;@CC€ДGCBCHMUTQUQTOIE?@?BCA?FNNLJF?;BFNNIJCFGC@A>EHMJGCB;8;77@;FHHCIHE@?ABCIFPVULFGFJA@CEFACFA:@?<@?HFLPMLECC??GEFFIE8:?<5348@<@C?>?>A?<>CNPIFGCELIJFC@>22€З92:CIJOQSNICGJJG??EJOOTYVQNMMFC@A?AFEEB@C?AILGNJGFB@ACCB>8::?:BHPOLMHGFC??@><8928>:27AGE>::<@CGE;;80::BEFJLCCEB<52:>>CA@8<@HLFB?CGIA<>@@>3-599AGMSSQOI44:A4@o‹S%9<<@AFNOOJJNOM@98;;:BIPMHHJGHH@EHGHB?<@>9349AHJOISP9725BJOFIt„YIBC?898@IH@?HF@<8;:??‰€4’ž•Š—ЧгdwŒx›НЎЅœ‚„‹˜—œžЄtP‡Œ‹ДŒЄЊФЗЛЗдЕE>GVOMWSNLOOIFE7>AI™™ŠŠƒ‚‘Мг„^p^˜ТЅНЃ‘—ЂœžЁ—~We^iДЏ…˜ЋЈЌЛЪЫд—CBd`WSSMANJB81:3??•œ–‘……‹‚ƒЃ-LŠzƒ˜Ђ—‘‹~ŽЅЁЌБЏЇЂ‚Od–Д›ŽœДИНМяМo;MAZZTT>4IœЉгБŠpzwvЖЂЇŒ…ƒ‡žЊЕЎЇ›™ЂЃЁœ’Љˆ„ƒЁЃЃЊЌИЦШЪЧСТ}ircmhnFTNV^]cE@EƒДлЖ‹k‚Ž‚НЛгАЄŠ™ОЗЕЋŸ—ŸЎСУОЋЌw{|<‚žЉЄЕОЦжсынбЃSS€ѓW\chWGILPM972ЏМцЛ•‘~‘ЛЖЊ™ƒЄЉ˜——›ЈВИСЖŸŸ‰}ˆ”giŒДК–БЧйЯЧЭеэДAIYQNVQOHJGJJHJ<ЩКЗЄ‘–ˆŠ‚‰ЅЎЁЂŽ•ЄЅЇŽЏТЭагЗž„‹h?nnzuœЋЫбсбШдШVOee^`]ZYTPNNQEJЅŸЈ…Ž˜‚ŸКДЌ˜›ЃЌЇŸœУнЫЩЮЈЫкzuƒoVbˆ—ЋЊДМеСШех‚AUvme]debYVVSLFЁ—ЁАЇ‘‹Œ•ŸЏМЕ‚Š…Їž˜˜}ЌИЗУКОмЕ‚‰Ђ˜žЄЌЌАНУКаЯ”@I`ihW\WZYQUPULЂЄЉЕЂŠЏИКВ‘‰˜‰…‹—Є‘mЂКЌИВДЏ–„‹–Š‡Ž—ЇМЏЛВВБЕатЃ[GLeoc`WPUQ^aWLžБЕТŽp‘›ЈЋЋŸ–Н™ŽŽ‘ž”ŽžКЏЩЮРУЋ‡‰–—ˆ‚ˆ‰ŸЖЕЩЗЏЖТнўаaIrdiigge\YVUWPЌЏСЪŸkŒЃ˜œЂЅЄЊŸ•…}„–ˆƒ”ЂЉЖЭЯТКˆ’‘•™”ŽžЂСОЗТШЪач•biahmrY]WTTPOMУЩЗЗ™ƒ„‰•›ЇЅ‘•‡‹ŸЅ–›œИЭйЃ›Œ”ЁŽœœ€МЉРЖЏКССЪЯЗShedd`YYZVTHHLЖЛЗЪАœ’Œ–’Ђœ›ŸЉ›’‘™ЃŸž—ЄЫбЩШДž˜Ž˜œ™—žЅЃЂ•ЫтЫаЯхНWhbhd`PNQTWPSOЗЗЋБЂ’„‰Ÿ›™ЈЎЉЄ–‘Ž™ЄЂЇЗЮгЧЦНžЂ’˜Ё›”–›™’ˆЁжТФСжуbJc\TBTOPSTOUЏКОЮЉ~v„Ÿœœ’”ЇЖК‰Š›ЉЃЃЉЉМЦНДАИЋž–—––Ћ™ŸЊЌЉЗЂОТЦлїВIPjcaWUQPUVFMЃАВгЮœ•ˆƒ‹ˆ‚ŸЊЉМе‹ŽŽ‰АКРЕБАЋЌАŸЁЂŸ—’—™ЋИВЛКМЗЗКбзыЅESeYcbdZZ€ITFQДЖЎЗЊŠ—”’‰ƒ‰~ЗЏЅ–™•—ЗРЧЌЖОЕЌЄ—ЈЎЉ‘‡”‹ВМНМФЗНЩрђ§к]JUYYLSWTJQJUОЕЎЂ˜Ž…”ˆ}ˆ˜ЂЉЉЃЋЇ›ВНМАŸВДВЅЁЉДŸŠ‹”ЂИЛЖОЖТхщчђэЉJFWaQ]YUTZUUЧУТЊž—Ž’ˆƒŽЁЋИЇЌЂ›˜ЅЏЖДЇЅЌЉЏАЂЁЃЃ—ˆ’žЄЖУТКБЎзппяўЗP\acZ^U[VLJSЦбЧЛДЅЃœ•’™ЂЎЌЊЄЌЉЎЎЉЖБЊЊЈЄДОНЖЊЉ––ЈЋЏЅЇЋЂŸЧужгйеpQUebc^\PMFMЖУОЏЉДЄ”•‘’˜–ŸЈААЎЊЌЇЅЋМИЖВЌАЛЗЖБ’ЎДЖЌЃЇББЕЕШЪЪсљ”g\`gjhd\YMHЎЪРЕМЖ™•‘‘‹ŠЁРОМЃ‘•ЛчЪЫФКЈЗАЌ–—˜ЂЊАЖЗИЛЭейЪЯЦЭцјТ\He]]V\]YJNЕУЗЋЇЅž˜Ÿ›”•ЁЕгљС•Ё’ЂШКБЋЃЂЊАЄ—•ŸЏЊЋЉЈЛФЮгШЧЛЛй§р|O`YVUPIJOTУШЖЅ‘‘Œ‘œЄЉЕ™ДЧЋЌЃ—œЂЊДЕААЛЛЏЊЃЇЌАЊАЖОЛТИЌБКыўњЉJSJ[`^UQgmЗЕВЊŒ’œ›”˜™Ё›—ЇЊТЯШКЁžЊДЗЕЗЛОЅЇЈЈЁЄЃЎЎЛжеЦОБЊДНЦх§УVJU^^bWSYZТСзИ”žœ˜Ёžž’”›™ŒИЫбКЄБЎЖДННФНШ—™ЈЁЅЛДЖ‘—ЗФФЗЊЏМШймьчZZh]\S[SPИФСʖžž˜œЁŸ‘”Ž–ЄЉККЖЈЄЄЅЈДНМККЂЇЈЅЗЪНЂ’ƒ›ЇЅЌЌЗУЦЦЧу™OFV\\^[YVЖНС٘•Š‰Š””ŽŠ‹ЅЛДЂœŸŸЋЇЅЂЇВАЌЏЊЌЌЇ•ЇЉЉЁ’’ЃЎВБЛУРЩацЩpm^d`[[ZдЫФЮЛЇ›’˜Ž‹ŒŽ‰ŸЉЎЌЉЄЂЄЅЇЋАДЛАЃЁ˜–žЅЇž˜›ЄЋЋВОИНОЩлўўŒ[`ei`TUTЪеЮСКžž€&–—–ЁЉЁ•‘ŽЄЈ”АРИЗКЏЂЇŸ™žœ™”˜ЃЅŸЁЈБВБЉЄЋЗЛЗРсўРQStj]\dmамзаЎЁžЂŠ‰–ЇАЅЅЁžŒ’”‘’•—ЅЎЈЅЇž”˜”’ЄЕФЌžœ›—ЏЌИОЧЪщ§рjFdcZ]ecкжхгЁ~ƒŠ‹Š‡”ЖЉœŽŠ‹‰”˜”•œЉЈЅЉЊЇЃƒЁСЖЖДЉЄЂ›—˜ЇЏЛННЦнњў•P[gWQahЅЋДЗ™‰ŸЊЊ||rЌЅœŒŠ‰ˆ‡•œЁ”•žЁžЂ••œ›АОЕШРЖЖЈ˜žЎБДМРЫаеэ§ЄSgiVTOYЋЏœ˜œžƒ}‰—НЇЃ™‘’˜Œ›ž•ˆ’œž˜Ÿœ‘”ŸВСйФЮжезЖ™ЁЅЊБЕЭглѓўуwb]`WNUŽŒ‘‹‡„„‚„‹ˆЇЋЇ™ƒƒŠœЁЅЊЎЊž•œЇЂ—{zŽКООУЫВœЁЅЇЋЌЖИзхтхтгŽSWTWSQ’–‘ˆŽŽˆ‡„|˜ЖБ—–ŒŒ•ЁЋЌЗЛЋЈЅЕЛИ——ЅТССНЪМŸŸ™ЄВВЊЅНзжЮссМqQJMQT˜œЃ™Ё–ˆƒƒ‹žФФД›œŽŒ‘™ЏДЊЎВЖАЌЖЖЋЃœ™СмУЕЏЖЖЌ˜žЁЁœЃœžДЫЫрцЮrHCQINŸ›ЄЋЂ›…}z{ЉŸАпС‘Ž’ЅЈЋŸЃЉАЕЕВЎЌЈЌДОРЗЁЁЈЃ˜——в›œЁŸ”›ЌВА{LLABNЎЄž—›”Œ…ƒ~~‰–˜ЄЁ’•ЅЏЎЉЃœЂŸŸа–”ЂЃŽ™ЁЄЃŸ•–ŽŽˆŠˆ…Š‘Ÿ–’ŽjJIHNЗЋЉЃ˜‘™’’”–ЃЂЅž——ѓ›ЉВДЇ–’””™ž™ŽŽ€‹‰–ЇДЃŠˆŒ˜žž”‰‚‡ЋŸБУŒMCFQquQM\jibUOL;:1#&(79;7087I?.889:3OBIH@BFHHJSFHILP[SYOTUOPW[`\\Y\QUB@@BB;>B254A+01@CCHFF@@BIONYTQMTQHA.FIGIHA@BHTVWUUQSHPVZ^c[WYVVQEBFFEHJ>4;%7-33B;AEGFG@CBALNLVZdaQSHJJTIGG€•MJNGNJOQTQOS[\]U[SYWTP@EH@?7&$-.35FCMCHH>EFLIEQOJUPTSP\`\ZOJF>UU[\]VILHLPMLLOSZZYYQT]STICA@82*9.;3@FFHF;N™”Ѕ„‡ˆ{{”oj}ox|ieŽ„‚vx}x‡‡xkq…‚ž~—ВЂЩФН•b|Š@5 @advrˆЯž}xŒЅЃ„–…‘‰‰€h‡…zrvu{ƒŠ‹‘”‘xr|‚‚ƒ~vqƒœ‹ЈœЈЪОФСЅq|‹B;"Tg„Œ‰ƒ—x:n„‚އžЄžŸŒ~Š’Š~ttw{‹œ›Š‘‰|p~ƒ‡wxkMŠДŸ›Ÿ‘›tАгЗЃ‰…‹Ž.18dq™А—›˜Ptm……‘’ЃЊ…{z•—‹krirbtYN•Ѓ„bu{ƒ}…xQkˆЇБЉ™‡r‡™–Œ‚–Ј.")!Lw}Ј’ЊЉЁŸ‰ЇЧ”œ”ˆƒ—Ђˆ‰Š‘Ўzz…vqvqN‰›‡zhvƒƒ}|km{xœЄŽƒ‚ŸЅ™ЃЋЧ))$5rƒpŒƒ•—…`ЅДЕНЎ›Ž‡ˆ‚‡•™Žƒ|…~{rpcppq‚{‚‰Œ…Šth‚‡’Šˆˆ‡›’›Т,)$U‹w‘ˆ~‡Ž™qT›‰–”›КŒƒƒ›‚vdYeehcc’Ÿ”މ‹Ž’v~Œ‡ЃЄЂ—ސޔ‰ŒŽ8--€р2^™‡‡”˜‰tz~”ЂŸ—–Ё}at‰’ŠŒŠ‡}‚k\e}„{„ˆˆ‡‰mov|•–ДНКЁ™Ё‘~…‡Œ)>80FYx‹Š…hЃЉЎ‹‚”•ЛЈ–‹–zotvtuwu~‹–™whp}„|‰‹Š‚tahzztpo™œ‡ˆ{:;83-Z‰’…|dЧʘ–˜ЃНУЗ™~t{rˆ‹ŠŽ’ˆc^aeƒ„|…—–ЏЄ‘—œt…УВЈŠŒ‚zt50-7)I~vod~ЏЃЅЁŸŸЃЈБ™›„’x|{‡‹Ž‡ˆev‰kjr‰‰„”Ё˜žБЁŠi„’™ФЄ—”’Ž…v995CC.N‘‚}o•ЃЌЏЉЋЄЎУНАЄ•~wzuww…Ž}vg]V`Œ‹‘—˜˜ЋЫЊ{‡z‘‹‰Ž”˜…‚uŠ>:+*%AUiЉ|œЉЈЌЅ—”žЎЗИСŠjiwvtwˆˆ‚zkdbhvˆƒ|}ЇЏ–xƒŠ•˜‰‹Ѓžˆ~ƒ24,(AFWk‡Ÿ‹ƒ˜ЊЎВЌ˜ВБФсФЕ{hxxuv”•xqjdi‰„ruˆxˆЄЉ™‰wˆ‘›”ˆ›Ÿ–„}{19:-3>i•Ж‰‰”•’—ЂЄЋНгЮЃ}wheo~r…oqki|…Ž„ЋЌБхН‘wˆˆ”™ŽЄАŸ’ƒƒ@B9+^œ~~‡–—ЂЄЂЄЫдгЮЏ‘‡{wv|ˆ…ƒnnr^iž…Œ•ДИРТФЯбЭЯЋМЏ›‡Ž˜:;AB?CEPcЄ™}{‚œ—‹žЊЄЃЊБМРУЈŠ…˜Šqrˆ‡…‰xt{—˜™™ЏОУззЫНЛЎЊАЅŸŒ‚~‡Ž7?BLFC?GN…•ŠŠ‹‰›ЃЂ˜ŸАЋЕœ„……~rnxƒ|ut~›–””ЇЊДИОЧжЪЦШЗ››ŒŽ–—>F?>G<>5EjœМœ–‡~ƒŠ˜—žЂЌАЏŽƒˆ—vikvwjwzxˆЉЅ™ˆžМЧЋЎЛЩСЕЊ‡‰‡Š•’ž>BA@??2%8hЇКЃ’ސ›žœ”Ž—ЇТО™Єœtgnrr€EpzŒЇЋ‰‡ЇЗРУЛНЇБВДЇЇЋЎЅQQIH@::<-Iƒ›x‡•—•АЕДЕЪэаЕЕРсЪŒq|uzxvxwƒ—Ї˜–žЇЋРЭЫСИДЎ›”Ђœœ——›A3A:,+(5G|™{‡ŽЄЄ——ЕИНЪежЄЊБаЖˆw}|}xvth…••ЂЏМВЈЃЊЎО˘‹‡”ž›E2<@98#:QY[tŒn{vgЋМЇЈЏЎЁЦФжЉŒ‘—„~|ˆ~uoptŠˆ‚‘›ЇЋРШУЋœ—––‡…™Ў12+8>?>):M0O–ЇЂb‰ЛКЎž”žСЫЮЖŠ…•ˆ„ƒ}~}mipu{‚~‡ЁБЉЏСЦНЎЁžЁ——’‰ŽŸ0.(-1173@G54%Er’Ÿ‰…„Ѓ›˜•›ЖЭАЋ›ЈЊЁ™žЇЁ’‡…ˆ„„„~˜ЋИОКСФЕЃЂЊЋРŸ5("*45;:?HC;))>B@BA@INn•ЌЁžЁ™ЈАДЎЊЛрчэьтчзОЎЎАЛ‰hYg]MMG5@POHW\TGPQUOHE9:8A..$,BB:>FI@HjžЌ—›™ЂКШЯбпэышыкД‹~dWOI94751)$<9<<872;FJJEAC1>:EJCB;FC>7;@8Yo‚Ÿ™žЇЌЅЕпуЩЎ—}dSC>.*;JV@%98A;78;@9>9@CHHMNQNH9@ChŸЄЋЃЂЈ–~oOGIC;:L`P;@GECHC<><>3&7?:A<9:HICFAEHF9,",47*(4>71&7?>4>HF@A9GOTQJ\^UMQTPJJ€мA<:39@@>AHEGC5958EMMICGJHI#*+04-$1%$-07CM@9B;3:JMLPJV\[TPMHE@?4<:@B?<3IOHEFOHEBBNM?M4"%").2FZ]WOFGI>4A@F>:9;??94>38>;A>B@1"!%&33811?BF?AW`Z5<@@GCIJB>29@>:873;><44:73AC120874775$$*,3.8L?;9:;BHHGC>@<:9C81.8>ABE;A95<:,*$5@:-104:;@911GC?3.-@CJ@9CGCIGHE:CFHE>1>B@ABA<;A?0-.98BA@?::C?.%.41:983?;:8))**1*)-1;GMOLIHH8<<€ќ50422.48998<7<>2+,+-,)3:753.79?@<@>>AC@A>.(&)-+1<@>4B?EA9CEJ@<7<825414*+.13((.8),*32**0&.&&*09A55<5.20.3>881+58AGJEBBEGBEB@<31;@BLPH331.ACG<>AIJGHHIGQOG><404:?@B€њЗТДЪЯђ§щщыукФЮкЫЭШТЎОЗЁФТРШбцЫЃЃФТРМНФЫейзЩЪФЦФЦЧЮееЪЩѕуцрСМЗЖД‹УИЧгј§шэчудмнгЭЯааШНИЗТЫЭажрЗЗЖЗжьЪСМНЖрйжЮЭЮЪШШЮЭгежлшхяхФНМНМ‹ЯдбНжссмБДщпўаЕаегмжРОШЪЫЯЮЩЦЧКБызРМЗУыррегЧШЫЭЭагЮэтуыўўлТЧЩОoдлмцуянлджжлтСЌамйдаУЦЯЮаШЧФУУТЅЛпсЕЕЎЎЫЯеЫЦУТЦЫФЩЭЦжгцьёѓсЖТбЫT™•РКСйлнрёђпёмЩЮзсѓЌТЧЯгЭЩЭТУФЦШЮЮЯЧСУНУЮЯЪУШЫУРСИКМзышыюљєбЯаЮižЧбМОФейжнЄEИшбаахцКОЭЯгЭЪЭШЪШЪЧФРЛФЩЪЯдагЫЩЫй›ŠБМЩртѓшєяїщЭЊКЦTuУЫРТШЪбэљНЇгрдЮЭТУКОЧЭЯЭШТКИЦЧЩТНРШЪЯбЯдкеЭЩСТЈЎЮОНЦТбјўљюэпТМHPЛтЧЩШЯЛєўчСКЦУФМСНУЯШШЯЩЪМОУШУИžЯЧЦШЦФЭгбЪЪушЪЛМЧЭгШдѓўўјђлЦЖFUЦЯРНОЪСчўЩ‰ЅЩгбЧФЦССОлЭасЊВыщФЃ”ЉШеаехрпкЮЮекєкаУНРЗШбсѕњєуЧ•Е;VДгЩМЛЖнээ˜ЯаджлзбЧМЖЪѓьЮАЛўўтЗžВчтЧкЯн§ьаЮжЮЯОЂКИЗŸКгЧыћѕѓлЋОAG‘йзШЦФзлёткЮЫЖгёбЩОРЖйѓюжНЖтјлДЄЕКДКЕмЮбнЉЛЧСУЫЩЧУЛ™ЫяртхеЯОЮЪE`uзтЮЧЦаюрЛt~ЌЊЃРЮЮЯШДОјяЮКДЧФЧНКЕКРФЩЧЩЪЭСЛЗЗОЭбдЮЪЎЧєёшушйФзд;NOнлШВЪсАrk”шщрсбймдЮЯжжТКУОРРОТЛЖйзЩФФЫбЯЪФСТЫдгеЯЕаёнч§їмЉЫЪZ^+qВЖНЛеўхТЩдђыЮлсремзгаЮЯЭЧФФЦШЯдлнмбЩФШЮаЪЧТЗдьгЮЮенєыьїуЦИЭЫVW?~ФанлехКxЛЭгЯгйхцхцнаЪЮзеЫЩЦЦЭдеЫбзйЪЦЦаЮЭФР’гѓтлзбЮРрљэкЭгдлNQG[ЄЗрїршсЗДЧеЮбгзрсмзЮгзнЪАОЧЦЛЧЃ–лыЩТСЮЫЮЭФ™ОЯклпдЩЖФЫзжЯгейJJIHСЯьрїїхнЯѓ§клкйлкййбгмйнТЮЭЮЫЧНЁдшЩСУЦЧЭаЪСАФСедгЪЮдемтпнх§GIHM•ЩИзЯймкгžмьшсцндбжзддейкзенЫСЦОЊЛИОЩФУЮазЪЛЛЪЦЪЭЯгжЯЫгзнмрїMOGM{ЩЩпадйпаВ™гЫФзйлмуєдЮдмнлегЎКЛЛЌЖАраЯаджйаШФЧФЪЩжммеЭЪабззлFMIGTžащлйлмьбСЫдСксхуцьФЈЦлжлзтлЮлеОЏЋЮЯбжмкжЭЧЛМФдйьњрнд䈕кжкнPPUI]ЩмжаЇхяљзЭебтєьырщЫРТТЩЯбЯбкльЯЛТбдейнзФМЅАСРДДБЦрмгежзеЪЫOOQLSЫдгРЃЫўтулкрчшшучрмЧФЧаЮджезгИЏЛТЪбЯбжтѕудусРЖЛНФњргбжйгЧТMLMQMuУЫЯФЌЧчшхцччхычщрЫрдЪЫгбзккдЩЩзНООказемллкёхЯАУЭм§скддеаЦСNON]dTрлЮФРрсхцшухчщююЩйнаЪЦЪажжгЪЧИДЇЋбжлйезруўьШЦРБемлйкбЭШгЭUOOSEZŠНЫѕйСчёььзчуушюёєзЗКНОТЧЭЯЪЭМЏЏЗШгЧЭЮбдЪсѕжЛОНШджеббФдЯбгHIOUYcЋаєммсчьшчхцуяюўћюМЕЫТНЧЪЫЩТЗДЕЗмЯЩШЮбЪгхэнеЭШЧбзз•йпмеЮаGENQITaЁшѕждкхтрпррхьђђўўьмЭРЛНСЮНЮЛННТШдкбЯчэзьўїЩБЪглмплмтчпеЮOWTOWcd•лцЯЯернцщхтннрщяђцыЭОНЛТэкуЧММ“Епйзѓў§јяўћцнезмеЯайнцснеUZ]\[TQhбядШЩпрђчццстЮпєёутРЫТОЌЦмужУЛМКЮкљўњђђѓђщйМаййаЮЯбзрцст\\c]Y]JJДрЧТУОЦчтцчууўˆћыажЭЛЛЕШаЯФСЗЏЋНхыьпёёяћютѓэцсФдглррспUOVQUWTH‰тмЩЪблтхчшурпѕяјѕчбЭаЩФШабгЪЧЛДŸЏпЫЧнёяяюьчыыѕуђсмкйеййGHOYZV\eˆххаабчмуу№тсхрчыђчеаЯЪЪЧЧЭЭ€ЫЪФРРкдйнющюьюьэцшщшшплежзкMIWZYPTZbЛнзжддбгдпрмлрсщюђуеЮЮЩССУШЧСФФЛКрлкзухщэюёьюэ§ёсннрннпQQUYUVNI\—тўснжЮЪанрурпсхыхбдеекМИЛОИЗЛТОЮщркжйыѓяёяяІыЪкйлмтухQYVOTUS7H‰сѓтйжзклмпхуххцяђжЦмхжДЋМЛЗЖСЩзечснгжЯщюёяѓьђяцррццххш`^^Z\TMLHeЌпхРгкррцтршьююўїцыцўљзМТФТСФЩЪбтьпп€…чьюяюяэьхспкпуухщPOMLLEF2GLqОчСФЭжуккнсщщюэядртћэЫРЪЭЪЦЦЧЦЕабдЭйшјччшыэшхукжззммцQPTVUMMBdvwЉЫЋЛТЎуђрннрашэњхЪЫбнФЮаЫЩЪЧРНРЫгЯЯНгрыцьь§щшпп€ЊгбемпHHQSTUSANePtЯркШЌЮєснйЩйѓњњчЩагзлбЯЮЫФНМСЪдгбгхяяьэюђяьхртржееппIHFGLMLO\jZaЈглЭСЧнлкгдлѕўхДФджнѕжФЭЮеНЛРШЫаЭжкттрхэѓђщшыщшччххнJE?mИбФЯезйжеммтщмЮФЮйпнсыунлОИРРОСОЩОгїўяююышщрдЛыюшчыCFA?@:0-2387E‘рырнппслпсшыњямбзЛ|ЂйакчшЮЗНФУКСЗпюјяёшчхцузЕщўяэщA@?>>005BHNW`ЪебтямзгеапуцшшєуТТчљнстщЫЛЪагЧСЮлдхющээььяжОнњ§єчIA?:<3:?TNSI?85aЕйтгЮбмнуппчшїшмдптрммМжгбгбЧТЩЪбЭпушыяэшькйтщёйFE?:7<8?CEGOanZ‹йшкЮЮблсхттчьэьшцчђйЯаггдЪЧЧьЭггмухшяьяыэьтжКŒ|u88х7;:7>8@C@:;?@>8EUUTT[YONOP\bZQ]gbTYZWSOONIHJMNLOVUSPQTNHINTSOPSY\W13;;:;8,478.0AHUbONPNIJPQTP[bhaUSQOIIHHAFIJJHHLNNLQQWOLTWTIJSVTMT?%%.-,,#00;LmjZ\ZZVPIJNQOSWZY]UPOMIJMJJMNHEGIOMQPGGLHHJE@>?GGILA9!*.1.-5<@EFOPSONQUMFIFBCE@L^gb7NJHCHMONGC>BINOIIHPOIBEIGBFPOIL<@849I?>JCAAFGAEFNTQNMILB@?NarqOC@<8:BJJFE??АCE@EGMOLC>@GLLMLLHFC<<;FIIPSOLFFJGBGO]\ULLF;58A;1:EB<98>GLHCBB?@:>;BBТ?A@AJMJC>TOL@BHHOMNOLGLJPJFLJMMIGJJIIJJMNIFEBAC;@CGCEEB@HIB>;:>CAB?EF@2*-939;@CFFB>AAEGHMLBEABE<@BHFFCEGCB?@CF>BCFIE;:><:;<;::39@A?:9459@@?@CBIQIB>>@BHHFAFIEHHCCBCHGJHFA?<;@FJF?AEGGCAB@BHQPC?@EGAGBC@BBHJIIFHNJHF?‰еЧŸžЉЎЊ›œЇКУдЊˆЂЈЃЛЫШЗКНШŸƒ‡ŠŠ’ЗЛЏЗТРЭггЩЃУНШаЩИЗЛLCF@EE3;4*3:YŸ”—ЅВЉЄЌЌВНЧЛЃžЉИЛЧРНМЈŽ‹‰—˜ЃЈмєеЯбзЮЫСЛ’дЮЮзЯGFIC;230:7:@:C>GLECIQNPULaŽЈ”ŸœЂЉЗИЖМЧзнмпжшёФ™„˜œž’‹‹Š™ЊЏййТЩФМНЅ”‚honHAHPFIEAABILMGAMBBH4?IS`bTLZ[MY\adjiqutibd[YVUYTSV[ZWUSUYZSZ^]\]^c[\dh`V`S3@82299€фFCTpqica[]UVV]]bchozqma`Y^a[Wa\[QTQZT[VVPTQSJPESGUWZYYUI.>9@7C;IPUHPWZYTLUSUOW[Z\SQmwtJY^YSZcj^TLPMYULVLQU\SPJJLLMZaVZTMCFH[IM\STPGAFIOSU]WUSTVS]cp‰}bVTOPMV`aVMNHLILLMOJSJSMMLJOQVUQQWVOOS[V\[UZWYNPQQV`d]YNSQPWYQGNOQQLNOQ`[QPOOMPP€TW[d^MCAFLJJPZVN[^TZZ[ZZVW]V\LOMQ[TZUQMLNV[[TQPSNPIHINQVNJIOOPTSPE[^SFGJO\WPQTU\]]ZY`[[`[TVQWVLS]VSWPGHOHHW\ZZYSQUPIBMOOHQMPTJPEEJNOGQIOQ[aaYVWYYUPTQZPSNPHMLMLLSUPNLJHGGCHOMJHMMUSQPUUVQUYZTIFB?JCIMOOHGWUUNMMPQTLOJPJGLLJE@CBGCMLMCLG@CFHIFGHFM[YSOPNJGSNVTJNJFHHMOSOMOQINIJNSQQTQSNGOJLHIJIC9LIEOGGIHFLPHJQJMUTQJMMHILTPVOOTTWVJNOQQWUPLEEGLWQVO[UTTPMMHPMNJGJMQYPLIMLTOMJQMQZ^SLINMQMQQOMSTSSTLSTWOMLMCJMMO\џq€Кwkhdbp‡^\aTdnbTHN…Њ*AS?\mpcaanpo`kUdvz’ецьѓэЄ‘кЦitvvuwx|…•™kgr{xdie[`dUdPHYoWdd‡œŽa\p}‚|—r]M^{rounmvn›žЊйтЈ›ЌЃrgq|xŸ›™epjvxZZjmho[@S<^hhnLpЋЛЁh]q‡АŽˆ]U]mxqqtZu‰ЁАуне˜ž•tummo‰€­njjp}znYŠ›ЭWHU^nW7,nŒ˜ОЃ›ƒkЄŽЉd;Seg‡{jkjZ‹’˜ШтѓМtƒz|rwr‚Œ„››rnnr‚~rmgoœYWNgdC;-SiV‘„d{zЇЋЕРzWMebnˆwbVozm}ЌбюлЗЇŽ‰‚…z|}z‰„~rhoY`YtugiАzvdrxkNUNixpce|žЅ˜›dcxjbiboqkk€В‰БетБ…Š”‚wvq‰ЁŒnhkicd`i|uzujtjaqk]Tiox|vm{}teVbnaY`dbhncaЎЂ’ауЩЖ›uƒ~z|…‘”‡odxnhvwe}’qQSb\ihd]Z][Qt~~zin‚™–…}Š•‘YZnohwioЕЄ™НджУОƒ‡ˆƒ~‚‡Œ™”t|gdo{b‡А™urbZtt^xmWYcwvep{xЏЃœ‘~‚qtwu|rp`{ЄЄШкмзБ”›Žrzz‡Ж•rw‚rgjd’ЂА„Pcepnngejabrr|urgwАЁ›—unYc`ieemeahr–РЪьйЅŠ’ttw{nЁРЊqrwn^o‘˜–œƒi-H^gT\SYaupm^cnpTŸЂž›‡hhvpgpqhggdž›КкєТЌ—ƒƒp]oЇИ}{x}ibЂцТЃo]eviiegno^„‡~tpti`i‰ЃЁ‡ˆp]—x]nƒˆgch|ŒЊЅЛЮрЮ”‰Ђ‰‚x~Њzu{~„kPzœ‡vuoj‚zuqwniw…pZkko‚~˜АЎБ’ЅЩŒb[ThŒkz…‹ВСЊШгдМАДЛ‹uo„Ÿˆ~„vwwUn›uwtuzvwtbebe‡juikxkaНлЃЁŒ‚…me^UjnjtŠДОЛТРУТЗЁ}p]^]‡ƒ{ˆŽ‰ŠŽ‘~qurgYITLI]appqkk‚—‹ЁŽ}|nqjkjhrhжУБЊеѓшЋž}vvuЁ‰‚ˆ„~zŽ—Ž˜”~rw{rr^g^YggUkrgpoz‚•ЏАО‹zr‚o^`WL{ƒ‘МЮЩупбЕ›–•z|xnqƒ”aF]ƒŸЅЛ‹raƒˆzmaadb]kq}pdotoutŠКЋŸƒi…]`^Gi||‡Л…›ЩзшхЏ˜›Ђ‘‹h~ЅД‘pjn„Š‹kimxƒuqtodd^cpvqootqthb•–‹Ž‰‘o{‚{z‰„™„’ВдЪЧАЅžŽ‡…‡–™›З•v–”„~|x}}‡}mihurejvqqgt…‰ƒŽЃ™ЃЁŸУŸxmrmqu||„„˜…”ДОЛЪЫНЖЏ—™•~wКш”oƒvuŠ}rzp{{vvhabccnqewˆ•‚‹•™ЎЈЉ–ŠЄ„jkpor{}}ЊЕЩаНКВЋЅ›zƒqzИНЄ‡‰„‹‹ŠŒŒ‡„އ‡^V]a5N\k„‹‹€€’™ŸИМЌŸЂЋ‡…pojhn”—œЕЏДЛеа̘ЅЋvŽžŠ—›Єtwv}…Œ‹™wIo~pGwq‡bLwv}……„”–ˆФЗЏЇž˜ŒTeu{vz‚‹—Ї‡”ЌюдКЏУЛ{z‚–ЉДŽto{x}ƒ‰ž—Gt›Š`}quppx‹„•ƒ‚ƒƒ€ГЂРЖЊИЏЉˆgu‚‡‚~”Œv„•ШЯЭбЗЎ{uk{ЕЎ~uzˆ•~xž˜™’”–opok`nhxrxvv‡zˆЄЊЏ”Ž‘‡Š‚ƒ‚uz‚™ЂЂбёѓ’Q|~h„––~~‘›‹‡’Œ”—ƒkigjxhmh\z‡‚q}ˆŽŒЃž–•ˆŠŽ‹zƒ‰Šp’Ј˜ЈQGƒ„ŸЃ˜}ƒЁЏЁ–”™Їœpqjwodmi`ednr|ƒ„‡Ž›”‚•ЇЋЁ‹‹”™˜ƒ~‚ЋЏ’cL\:3%‰Œt…„‡‡’ЁМТСОЗЈ‹•„{krupwpmhj^uvr„‰‹ƒˆtЉСЅЃЁ…|‰„Ї”zoŽЃGCEQedN•”ˆƒ}{ƒr…–•’›„jv”ƒutpopkome\YJgex„ˆ…ŒŠz…ŽЈЎƒvzŠŠ™ЂwWGO\]dSOQLPЁЉ‘m}|‹’„ŠАžЉ—Ž‚ˆ–›uwjaaw}…L\Uc\k|~|}‰‚‰‘—›Џ’ƒ…„…nH84@-FBQUYPЃЁŒ’wrqVm˜ЃЁœ›Š„Š„‚g^ptuxxihgjhxtm}ƒŠ~w‰–™ЈЖœ~dU@8508?QI8.0(5B79EI‹’Ђ”„orzxwЋЋž’Ї›Œ˜›‘„Šemdqxqkvvxpk‹ˆt‚”Q>MQ?QJ;.-?>7?E;><:BH@‘•|rtqno™ЁЇ•–ЄЇЄ˜‡Š‰z\bij|nkqgW\hxt[HFI;BNNOF?@AA81.22(*;9;HFŽ‘ˆ}xƒ„|Ž•ЧБ•–™˜Š…›ukk€owqp`gVbiQJLCC::EFMM@;A@>12424:-:?ME:>>œ›ƒ{x‚vj~™ŒƒЁЄЅ–œЃo^tmiu{rbYIJ<>MA#"CHHGMMC;><3::B?:?:7;:?GAEЋœŒ—ƒ|uz~x”ЈЩРЊЂЄУЛ~|mq~prd081):2.5?@;:ITP,41$.21??ŒE?CA::@71:FELOL›—‘”ž”Š‡…‹”…{›Змют˜M>,>;%4GC?F@>2-+%0199C;8EGA5@3<<@BJB>2CFGIGB™Ѓœ›ЇЃ‘‰‡Ÿ——œЯьл—[8@;+:BHGG8,8@:044&%*NQL?BA>A?4EB@@GE99EHЅЃ”—Ёœ’Žzv\UEHC;BC9@B@@0-7.*7>83!"&*#&4EcTGFGECC@9CCЩ<4;BFMQЛЂ‡ƒ‡ŸЄЎeIGE:GPbPHB>977;7@304878*%&%1&!1FCFF€^NHAJSLF@ECIEMP•”t‚‚c[QOFBSF@GECHCC9<88)23248<4,*0($*349?:985:7>AHFJ@?JILGAGF??„uWC<1A?BLLHIE@>FFC??;??N8@VI.71>>?>BHMPSYZWTJICI:AOQGC7MH7MNSSHB8;;5AGQSCA:9?;54"auG#(+&%>8AEMUUWQMPI:)$>JY3NL5AGPOLCNGB@:@?CIGUPNC907,08A545?:C@[d<)01+7-2AJPVVWPPM@U@@[|›EA09B?FAGJNH<>;7HIME>;,-&>@(39BGJLU|N593:>GJOQMNTTVSdUWQi”ВЂA?2C?MGEIIMIII<0+*%%73CA>M80.(00GIME9IhhdWUi~œдйША?EBEE:3824--+7::.#31-+;<43@ECHWЇФаендеАЕБB?7ECEC>209IMC8>3+-5@A>1,4:9830947428;89?9453",255PqžТУИœЉбЩРЉЇЉ?5+351-4218AJE<77Ь4-3A<5?:9@A4-.731AC@>>A<8511.-NboˆЃВЌЁžŸЌОНВЄАA?05211і73:??EC;5AA€ІHEHIG>IICE@E28?90+@UT\‡{”˜žЂЉЌЌДФЩБ<@4$(*8%+?ACA;<>>FECIMLTIFMMLE:?B:07CZH?-FE9d–’Š~zТТЧхЯДЊЊЅЂЏОЛCGG1*((*8@AAB<3>AAHIMJEE*#3I^<4Uhp„‘~ž™•НЛЄЕОМББ€DЊЏБЏ8?G@:9419><:89<;>@BBG@CEBCJMLJ@BJO;NVdrn{”ƒ‹œŠ…|ˆŠ–˜ЌЦТЕЖВЌАИТ3:@@??BC;9<C?>82@HHP]o||~„‡|vœŒŠŠˆ‚Œ–™ЊЎФглУСЛСЪОММЉCE>;1;:1;AB<3:;2,5FJB?EUc[j~ЁЋЁЉЂ}x„„…‘œ’”’Ž‹КФБЕКДЉžДЪФВИРОМЗВLIGBF;,+-<9?451>H^ZC8BNZ{ŸЦШКТЮУЂ‚Ž–Œ|ƒŒ‘‘™ŸžЌИНЧЭЦОЕМЗНТСШТЫжеNME>-$)2;AB7JVJYqtcMn™ОееЯЯЩРИЉЄЈЃЁ”‡„Ž‘‹Š…žЄЈИЦТДЇЎНТУМТСРУСЕA<;!",**09C>?IOWiŠЊЗЛЮчуцнЧБЎЕЛЕБЏЈ‘‹Ž‹ˆ‹‹›ЇЗД›–ЋНРЖЕЗАЅЉЈЂBC800(,.5?9+9HJ`~ЁЫуЧЏЋРаФМБАЊœЂž˜–žЁŸ™•’–ŠŽЅЎАЕЉŸœЋФЩТСФСНЗАЈЄM^QCMP@9ELFOciwƒ›Є•ЂАМЪШНЕЇЊБСнЭЈЇЁœœЇЈЃЈИДВДЛСТЎЉЕЧЧЪЪУСТООИЏЊѓРЪШСОМЗУНЈЏЌВВуБŘЉлєЭq…Њ˜МЦЦФКАЖКУМЛВЛЖОРгўўЂгЮў§МКЗКФЦЪЫЯаежОСРУСНЖАЏАЕЖЋЈЃЉСžБРзюйВЌТНЧЩкКЏНСУННКДЗКЧйзрјћккнйЕЊКНЦТажлйкйРМТШЦСЛРОДУЕžЇЇ€КДЛЛЁИыђшкОЁЗдяалаЄЏИРУФОМЎРдсыўђјлкзКРНКФЭймлннмУТСОФФУЗдюўщБЁВЕЌ„}РкуўєндКшшрђЕ~˜ЖЗЛСТНЗВЮжжђўўьСКУЭТЦУФЯЭЮбжмШЦСОРФЦРДЗпЮЏЈЕЌК™ЉЕЖнЩАУЫьсѓїЫœœБЋРФФЛМЛТЕУчћў§шплжгШЦТЩЫЩЭгзФТЛНИРИНЧТШђебЫРФбМ™ЇЂМФЖЕЏСспсрхЦКЛЗЛКЖОЛИЖББЮтїўчТаззЭФСЩЫбЮадМННКЕДЛАЦШЦТТФМЛСРЖЉЌЏРЫУУЕЦаЮЛЌЅЌФШзБЕБДЕЖЕ›ЎєчйљўѕѓнЖФУРФЦЭаггЛТРРНЗМБЦУОœ˜АЖЕБЎЕДЊЉžРЪЫЧСФЮестЯШмппЉЖЖЕКЖЏЛьсбюяїјёЯаЪШЪЪЫеклУТЧТОТРЎЯэхСЛДКЛКЛКЛАЋАЫШФМЖЖЦУмкмстбзТМУТННАРлмєўђњхлтЮЪЧФЫзєпФШЩЦРТВЏлщьЩЇЉЕМУМЛЗББМОЦФОЛУЪжщрспУИСЖЛЛКЖДЖЌАВгюђў§тЪйРЦЦРДуњцФЧЪЧУЇМпьучЯЊjЊБВБЈЉЋЌНСНРНЛИžйзррсшЭЏНММККМКИБЄжкцјўїьлТЩЪРžКзшЩЦЩЪЩОЏхўћчЛЅИЪЗЗЖИЖЗЎаЭШУТСМЋТбмпЫЧЏЉлЧЖКМЛИАЎУЪужхэљёЩЫмхЭЪРЫюЫШЧЫЧС–РзбФНАФФЧТСРОКОШШСНКРЧгЪЭсѓёэнцњЫИБŸЏгБТеаяѓээюјэчэыйУМжягдЩЩЦМ–НцдЮШУЧЪФФЦСЗЊЋЈТЯЦИИРЧОБюўсйзабЭЗЊЅЊЏКДСЭщїщщьюэмЧЖЛЉЄЎЫззггЫШМдылзййЯЪФСЛЕЊЈЇЌЊЋДЗЛУФКЖЦЦзцлкШЫУКЕЌЉЎДЖФањычюьўўчнЛОМИФкжЯаЯЦКЦкрслдЭЦТТСОЈЏЎЌЈЕЎНОСОУЧЮЫлїшћдЧаТЛžЃЃŠШЯжђљкэўѓїэсЩайТЧЩОаЯцВ–ЈжцкєлИЏТШЩСВЏАЎЎЗТФСНЗНУШФеєьпЧЕЪЫžŸЊŒЈЯЯаЯёЫдѕћўћслзжЯбаЕдэђлНЗЫзз€:ЗИНТУЦНВЌББАЖСЧТНРСОСВВрмнйкудЗЧЮОЦЯЭжЯпбеэњђэчцеезбкзкклњкСЯЮгЫЭФСОЫЪФРДКЛЖЗЛТУМОЦЩбдмьщшшцњщУИОРРУСРРШгЪпёяѓэчыцтмнййМѕўгЗаЪЧЩЮЪЦТЮЫЩЦТИЗЎЋАКРДНаджблщчючулшькЯТЛЗЛРУШУЩтяююєящхчзбаЗДщїцгеаЫЮдееЯЭЪЯемЗЗЏЇАЋКИЪзйжжнсчшыьышцЩгТЛКМУШжппѓююьёёэжцшШЩЫЭлхтСЪЦЧЫажхУ‡ЗтгМ’ЗЧЯВœШУЦггеежзЮяээцпнлЫЁЛССЧШЮбкхЪЮцўяёцєёРЧЫртїдМЩШббеецб„ЕьубБСФММСФгЪЪЮШЫадсйѕыёуєяЫЌТШЮЪЫЭбЮаМТШѓѕїјмдбЪЖЦѓьФНШЫЭЮЮбЫзбЮлнцЛТЛЗТРСИНФЧЧУТСТУФмумЯмжаЭбзЯЪШЫЪЭЩйлт§ўўЎdгЫКЪпзжШЪбймждейппмшЯЗТМНРРЛЕЕСЧЮШФУЫедеккжлгаагееббЮбеЯЇзлНУž^ZЭЮЩбедЯЮЫдзшѓпцлтйтТТКФНЛЛЖЎЎЕКУЫаагйеЫбйстрлгЯЯадбдбгёюгЖ‡`kCA?бдЫЩЩЭЭгпцёцшљянлтдРРУУНИНКВЌЉСТЭЯжзеЫЗхєууўгЫЫ€ дсмЭБНЯŸ\SY^trWейгЦЧШЭЫбдзкйгРЕТлбШРЛНЛООСБЂЃМЖЦбеддаЪЮклпхЧЩЦезхйЖ‡dckmrcb^a`цпмБЦЪдааеѕшркееджецЦНИЖМФЪЭ™ЂЇЏЏМЮгбЯЮЯбзкрюбЩЮЪР’eU<5GNM[]\dggсунйеЩТТЇЕутутлзйежЯЏЄИМТЦЦУЎЎЌИСРЧЪаЯаЯЯжйчюсЭЎŽjONMEGSYTSTSVVTптнзЮЩСРОЭѕуспрпздаугЗФУРРНММЖКФЦКНФЭгЭЩбзЛРОЄ~JLiYSSLOPVYSQPSS€ЋпрмлаТЧЦЪЦїцттрмлкклдЮйЋБИЖМНЛМТТМНРбдЭКЧЩvS[kTjMEILMMNPPTUPNLJNклмеЭФУЦИЖнщрстпммзкзЫЧЁЇЃАЖМВБЗЊЈИФРr]^ZOQ\[WYSNOJFEIJHMPNTWWYтмлаЧУЩЭдпўттммснлзезФЊЎВЕЖОЗЊЎЋЈžƒ‚mY[MVT[[ћYWVTLL€АNCHOY\ZTPSчтсгЫЦТЧНФйбЦухтцпннЩА˜ЗККИТКЈ–tpe^jYHBP[`]`^\\ZSIALOQTTUQWYPOYZускпдЩШЦФУТРкщ§ыэхлњёШЮЩКЛФЎЄ’SNL9HbVMLQUST`g[FIBA?@;MLHGBMWTUYcŠT?BFEFNTT€аSPSUY[i\a`~НтнNHHBPOOQSVZ\OOPLIEGINNMHJSPPNNL@GLNSWHJZJLACHLPQPQBOpkd`|—НѓўяхHJHFJNUPNMNPOLPNMLHNJEGFFLPQNLHGELLGB?E@C;?@CFHHCMQWoАрцѕў§јрсуPLNIJJPOHBFTVOMFJJIJGJLIGBBJMINNOJJFHIEFIFBCAFBEB@d‹ЛчюхбгєэыцртQEEGGHMJIEGPSPOMNIILHCEFIIGMTSLGFIPQTPFEJIGC:JAGgˆЁЗйунйжзрхшхчцNAAEHFFGGFINSPPMNNVZPNPPMJFNVOGCHIHQNGJGGMBAOmp‚ЎОРЧНглтррхцчшыэFEFAAE@GEFUTOMQQUUZWPOWUSQQTSJJGFBEFGg[HA[WP„СЩСНСдэыёўчычуххшыыLVTJFCCFFJPHBELINVVSIFIJOTPILLMJIC97>`o\PvЈУдФЦйндэыхыяюышщычщэHMMШIFILLJFBEEAAEJLHCBEHMSOONMJMWYWen{•žДбЫблЭУЩЮЯЮдзЭцщьэчуу€ЇщшBGOSPQQJHEBB@CILNJNLGEGIFGNU\Wqoq‹™ЅУЦОНСЛЛШЭЧЩЫзкжжЭмьяёьэщчыыщJEFA>?FBFE?:>BHILIQUJFJJ4:IQNYmŠŸЌОЩФРОЮпЯЮЮЭЧдбдйруьѕ§ђђёюьяэцуQNJBC??>;3<;EJQNJ`iTi…|[‚ЗнњћљјєюэытсслгЫЪЫЯЯенЩцшьэшххшшщээьщччцEA<><;@?ALNQW^jgЅШтсњў§ўїыыэыххтпллеббУЮЭЭбгемрхункксыьэюэыхтхуJJICBFGGLMPJLUatžбїўшлтяэяьшцтсрпжжеззМеддедйлхычтнпцшюђђяяюьщчч[ihVccOJSYZh{ŒЇЧЦгжбщыюьюьыщшьыўїрспмпсрсчххѕцшхццщэёююээќыххщг„‹‡{„z‡”nvrmw~ucgЁЪž?Nu`xˆ–Žxx‡…xzrz‹Јђўў€sћЎЉѕтƒˆ‚‰ƒˆŽ˜”ЂЊДƒz‹ŽŽ|v}xv}{|nat„o}}ЂНЅ}u…„›—В‚pcwŒŽ‚ˆx•ЏЏРшѓЛЖКЖŽz„Š‘ˆЁЇЄАЈА‚…Š‹‘~p‚{ƒpbgbt{{gƒЛЫИŸ}r…ŸЩ–Є›uqv„ˆˆ‡w‘ЁЖЦѕэчДЎЎŠˆ…ˆ–ЉЌЏААБ‡Š}ƒ‹–…{—ВюЗj`jr}pJH™АЭМВœЗУЌЮ}Pd}‘ˆ|tЃЅЌкѓўЮ”ˆ–”’Œˆ˜Ђ™ЊЛŠ‹ˆˆ–•}}‚Зkrix|YTAe|vАw‹˜РЪЪкejwmŠЄ’zv‚Š‘РцўђЮЛЇЄ›ž’’–œ—œЈˆ„‚~{|ŒŠƒƒ’Ю•—ƒ‚ce`‹{xr•ЖЏЕАЛ–}…„v‚‰ƒ}‚ЂЪщјЩЁЉЄœŽ’œЋŸ‚ƒ„tpvu‹ŽŒ‹‰‡}„ƒpktˆ’”‘––d|ƒœzk|„z{}iwТОЇщђпЮВƒŽ‰Œ‚™•ЌЊЄ„…’‚„{ƒЂiivn~ro{vjnh‡‘•‰‡ƒЁЁЕДЃ•ЇŸЈqjƒ„‡tЦМЎжшюмдЂЄŸœ”’—ЂЏЋ‘Ÿ”‡‹u™ЪДŠˆwzƒˆ„‡}oo|‘’Œˆ~„’’ЈРЏЕЊ•›Š‡Š‹ˆŠwu•НЛнѓящРЋВž’”ЫЗˆ’™–Ž‚}|ЈМР‘eu…ƒ‡{{„|w„Œ‘„ƒŠ‘ЂШЗБЏ‰uwzv|z~‡~v}ˆАз颸Л‰‹‹„ИбК”Œ˜…oŠЊВБИ–t?Zxzrnhp~ˆ‰…‚‚‰znЕЊАЖЖЗˆ…•xƒ~zАЖЫуўрЦЌŽ—™Ži‰ДЮ’’‘––„oКјкФ„nˆ|z||„m–›œ‘ƒŒ‹uƒžДЖ—ЁrЊŒx”–zz€ю”ЂЦБЭнюлЇЁЗЕœ•ˆ—Щ–——œ‡dŽЋЁ‰…z‡™„ˆ‡‚…›ž’„u}Œ›–ЋЩЧЯКЫрœupevЁvŠЃœЭжЦещщгЩЮЭЄˆ…ЁРЂ—Šˆc‹ВЅ—ŒŒŠŒ‘Šˆ‹‡rwx‰—ƒˆw}‹‚zЭђЗЗЇЅЇŸ„rmm{ƒwЂЩггаелгФЇ‰Š{ptАЂŸ™Ÿœ‡›ДЇœžЈЃ‘ˆˆƒzkbjejqw|ˆ‡™~ƒ•ЈЌВЋ—œ‡„‚zu~}|”ЌщгФНхўљЩЗ’ŒˆŽ–БЂ˜›žŒŠ”ŸЌЅАЄ‘‰‰…„k||mqwx~ˆƒƒ€”’—ЉЧФлž—tumV”–ЋбцЕмїюрЫЏЋЋЊŠ”‰ŒЁА}^w›ЖСгЌ‰q››~quztx~Љ‡‚ƒƒŒŠЇЭМИ–|œœirq]t––˜™гЃЋмыїѕИБЕНЃœЄ~–СЩЏ‰…žЃЉ‡ƒ…˜‹‡ƒqt}{‹ŒˆƒˆŒŒ{БЊЈЈЋАЈ‚Ž—Œ•ЄžЖŸЎШцклСЖЎЅЂ›ЁЂЉЊАгЎŽЂЇ•Ї‹‹‘™•ƒ{‰…{‹’‰„„›œžЂИЗНЛДдН‚…„„‰Œ‘™ЊžЋЮЮймпШЪНАЛД›зўž‚œ”ˆЁ–‰Š‘–Ž—ˆƒvwvz„z‚˜ЎЂЋЗООНЏЁКРЇžˆ‰ˆ‚‰›”’МШтцзбТУЧВœ™|‹ШйФЅЇЇЃœЄЂЅ›˜œ›Ђzmrucm{{™›ЄЅЈЊДКЮдШМЖОŸž‚ˆ…‡’ЋЏДЩМЩбшызЌЛЦ‰ЋЂЌЛКŠŽ”Œ™ŸЅД–[‚Ѕœ…\Œ‰™xdŒœžŸЌИДžмЯЮРДЉВ•m~ŠŒŒŽ—ŸЏИ™ЅЧўшдОгаˆ’ЂЖСЭŸ‰‚‘’›–ЇЖЊ\”ЖЌЂ‰ƒ…‡Ž™›Ј–˜™žНЌпдШгеЫx‚–—™˜™˜ЅЂŠ˜ЃрусшФФŽ…•ЪТ•ŠŒ‘–œЃ˜’ЌЉЄЃЖЖ„ƒ‚‰}ƒ‚Š‹Œ’—™•ЄИЛОЃЖЃЈЄ–››˜Š™ЎЏБЕщўўЇh‘—„˜ЉЄЊЁ‘ЇЌЊЅЂЅЇЋЋЈЗ•}ƒ„™ˆ‚ƒ~’•˜‹”›ЈЇИЎЉЃЂЂЁ˜ЅЁЂ™”—œЄŠЋЕЉМЊh]’’—ЕМЈ˜’žЈИаЕЗЎЌКЎƒˆˆ‡ƒwtv‰œœ—œЅЌЅŸЊКИЗЋ–ЁАЏЉž˜›ЦЦЈ˜xdqLC@žЈЇŸЁ—˜˜ЅКезадЩНЋА’‰}‰ˆ‡ƒ‰z‚vЉ‘žŸЁЄ›‰ЖбЗЖИЉ™™ЂЅКЉ‡ЂИŽZU`et~`ЊЌЂ›™—–Ž™ЄБАЌ”‚‹Ћ—‹‡ˆ‚ˆƒŒŠ{prY‚~‘ž™ЇЁ’–ЃБИ˘ƒЄЅБЛu\hpqpbchaeКМЋ…ŸžЄ™ЄЪМКВЈЈ›ЊЏС‹~z|Ž–`rhvr‚‘ž—™—žЅЏДЪЉ—˜›—{ZM72H\PYY`iijЕМЅВЅ–Šm‚ВММКЎЃ˜ЄЃzrƒ„‘ˆ…z~‚ƒ‰‰‹–™Є›™›ЋАОШЖЃ’v^QGIELUSYTNPW\^ЏЖЏЄ”‡‰ЂСДЊИИЎЃ”•МЃ‡‰ˆŠ‡|ˆxw~ƒŒŽu‘–˜™›’Њ™ЂБœnFIh]WGICSPVWMOUS[ЅЎДЏ—‰‡ŒŽŠУНДАЖОЎЃЇЎЊЇЎz{x‚‹‡‰‰…‚~›Ё˜”œВ`U]mTpZONLMOMHN\QZUYLWЇЏДЊ•”…‡ЌЖВДЋКМИЏЉЅЄ’mo{|‚ƒ‚‚qzƒ–—…q`VYJV^ahZNW[UOINSLLMSVWP\ЎЎЂ•Œ–••ЂЕхЭЋЊЌЕБЌЅЃВ–v„ƒ…‡ˆˆ|vqv~da`YUQHY[ddcUT]WNJFJPLOMWa\VQ^ЖБИЁ–”•‘’АЅœМЕНЗЗЌА‘}q‰ˆ„Š’Š„nW\ZTbWGBV^\cdibOWVOQTYVUVNTSZYWSZТРЈБœ•Œ’•ŒˆЊЩщзТЛЕнкœ——|’„…~BGG1@^LPOUSQUbk^ESMJHQPVV\[[UY[QQ[ЕЛБЂ–••Ž‰…‘ЄЧеаФЖЛ‹œ‹bThdWF;FCNLPPOQUIILQaV:JGLJMOUYZTQQZQTVcОЖВЅЂЂЉ™Š™Ї‘ЁИЭЩСгеЎ‡vbP?I\V?@BFTPSFNSOJVWOQTUTLQUU€šOSQOPQYZbe^ДБЊБМЏœ—žЊЄ–ЎзјўњЋ^LFLJGJ\O[WJNLECCHLNQUITLSQQLTMMNY`WJVT\Y[[]ЏИЏЕКЕЅЅŸЋМНБЗшўєЋjJNNCOQZ[WLNPWQONICFB>;A>>Zk]VQ[PU[V]^T\T]NQ[^ЗЗЉКРКЈЋЈŸŽŽuhZ\VQQWUPPWUPQLIHHZOG7F;BGBAB?*1GZYZZ`b`V[ge\VNZSYY\ЉЃЄ‘—˜|re^W^^VTZ^c\UTVVYQQOWCHNVSOFIH@8EJMHENY\]]abdcekk^WTPPUVZИЕЃbVbmjamh^S[V\`bb[SPUSNJILJUNHIIAJCECMSQLJLLQST][`V\bbZWPPJQNW™‰jSOLQSSWTZUYPP€З]ed^TISLPSZYaPNTUMUZNWnYJPIGMQVV\W``^bc[\UTSJJnk\YPbaabbeb^VVMOLTemgVSOT\[TWVOVSUOOP;CZnVNk„Ќ˜™ДИЎбЯШдзЯЭЪШНУУФV[YTOMLPP€оJNQPTPNJQUMNPSWaZ[\LN]aWdm}‚{‡Ј–ЉВЂ™•žЇЂЋЏЈШлжЩЦЩКНЦдGNUWYVV[NQNLOQLUYSJISW]ZTY``dct|xŒŽŒЁŒŒŽŠƒ™œ˜ŸЋАЇЋ–ДЩзйсгЮЩШЭШIOTMGHIQIEBC@GGNILIM[UZTCAT\Vao…”’‘ž˜‹œЕЈŸЉЄžЄЈЈВРЦгтђнкгапегЮМ[YQGHG?GGFH8BNLPMQZ\WN^iut~–ДНАКЌ‘‰™–žžЇЊЊ€ПЈбрТШЮЩКДЪргЧаеЮЫШЮ\]YMNJAJMNNJHQIJawnWFS\qИнсбнсйЕ›ЄЈ˜’œŸЄЊЏЌДСабнхтжЯжздзйкзмхчTVPL>MGLIPP[Q`j\hŠŽtY}ЎЮцщсысмбЧЖИЗВЊŸ–ЂЅЌЄЅЉКОНЭккЯМНЫдЮЫалдЯЫЮMPCGC@BAIPO[]hekƒЁОЯЭуњєјьаЭЧЭЭЧОУИЁ›Ѓ•”ЂЉЉЌ€†ЖМЭЦБЋОЭгЯаЯЦМСТРQYQJGSIMNVJNM[Zn–КцњлТМдпмЮЪУОЕЗДЌЋЋЎБЋЊЁЋЉЈЊИОЦШСДДСккзкпйжаШОНi}ndihJSU^W]u|‹ЃœЌКЏМТбспеШРРЧгѓуМКВБЕММЗУЮЭШЪЧЯЯФСгннїтзгайдЪТСџ–ѕ™‡Ѓ‰’EQ0U]WW€[UML?CGMQOLPTMQ^PWЄэЧŽЕлН‡HAU,) +1.2$1,+@::;5+8#&˜~‰ž›‹‘g\Z\\YTLB?8>NOWSL;4ABL53‘аДЌМ|3CMUTE3*##$$)>;A520%-FHMH>GGPUVNH@C?+;PVVM@pn?;GH8.*.1CL‘‹ƒ{•ФЭ~doOFBEBC?EPBH@HII?FCAC5?#74U\PHEB9925%&#%*-BF@8,+HMj…‘—˜’Œ‡ŒœЗТk^LL3I]F534+"19E)4:TTAG>8#-;?9,&()5>++1)-:7[‡Š…‘’„‡‡ˆЇЌЂ}TMj…YGLHJO\]ZUPB<9BF:?U*,5.?FA<<51+0>9*+8,1>+21<‘‘•’”ˆ…Ž‘ЃЅКЎnWGM?EQAB>JFHBB):7+84,B;;*AA:9>:5>EE5+)7AQJ8AWv•‹ЁЈ”Œ„ˆœ™œЧО—L\|pL>7:3HFHN2  )BGcQJA-54AHF7$ .8GE.Q˜ЯЌ™ЅДЕЋ‹ŒŽƒ‘ЋТЭВ‘i::1@?88;1ELAE!#Y30TB1-7@HFAF<5&-;ŒУВЕЋЉЄœ‡‚‚V}•”МЯрmV>CB<1)75+#&8BQ4$$:<,3>B@8:5301,%QEnСЯŠˆ˜ŸЈББŠkQj‰‡ЗшььТjBVWL7)1.%+#2,#!",&-7EA5(487@JBœШLJЌЛ”›ŸЉžЌЗ–‰toŒŠЂЭччюЅIG0"1($- %$).)51CEC>::GB4ImЗЪ^Fj™ЕЄŽ‘–ЦТЅ„…–ЉЈуЌb9:A;@HH\‘буЊTO@ˆ‰ƒ…’НЌБ‹w˜‘•wW]M(<80.&*)!")(&#E<32FMYPHQJ?88B:$@m”ВШЉkSˆu|pˆВ„’ozwI>+:ESEBC>E,*&*;A3+-TOPPOJA@JLJEH…ЄТМЃ‰uV‰‹u„œŸž–[\N<;>199F;223*+2$%%""# IbcQ\bce\PMI?OˆФЧМЄ˜˜™’}‹‡ТЭЎЋЇЁvLT701%127:89;2*%+$*"!#"4(*E^~r^[PPT@:Qd›быѓаЎ•—’‰ŽBw—ЁЛЭНР}B0;UJ",%2.*&717<<3!.1*"<3+7>Oc[\WTM@VJHАхтйуТЋ•œЅ–—ˆ‹АТаы٘g>>3:.,(%.92,-19;7:>?+%;J(,OTEJLMOSWV^QATЕйлеТМСЅЂЈМШЈДЏВЦЅ”gCC3&!!+,#-88?<;@IEAFJQOL@IHNSU]^\\ђZ”ЉдаЛЭЖЈЉЁЊЕЏЏ€§ЋАЛœp[•aH;A>:8,%".-%02+,17AG>5-&3@9@>8EIF>9CGNGCFNqnmd`cqœВРУСЧЩЭпЫЖЌЇЃЇЃŽ’АКIT:"#&.4*3)#1833*3^GAJOMIGE:CFEGNZivuq}ƒŽ„ЄзпмембЯФЧЮСĘЈЂ”˜žВВЄ:EJ8985-LLFONSOMHMO?LN^`eЉЋБЩЇ’РщјчбЧЦМКИЃ‡•‘œЇЇЅЎВЉЅOSQPG?13%3EB;5:31*+?BJHINSMFAGOTU[[ƒЄ•ŸЦДЄМТЧЕЃЖМЖЖЉ”˜АИЏКНККЛАPMI58+8<@4<>:5;<92..4??INOGILUbEQ„ЋЃŽŸдцСВДАЎЁžЇЊОЕЉЃЩуьТСЫЦФЛТДI?>A8582-.:,+*-,*<72<9@CJPVadTU–ЏЅЃВЪждЉЖШЩЛВАЊЉ›ЁЉЛЏАЦУжраДБЎЈH2@IG?<<72),,711(%$+@@9,)%"2MHJTUWQ…ДЄМžЇЎЌВЏБМШУОФМЧЁ•‘ДЈžЕЩрчгддажлгСB>AEIYw8&+,8:?8-,3*JtZQ3F]\pЃЁДСМЖЛЕДЗЗКМОФЩМЇанФИЌФйЫзлЫНМТЯЦМMPIGCG<$-+7>A57;CG?B?G4->ˆ‘ЅЫЯЪдЪЏЎЖЗЋЋЈЈЇЌЛЦКШздФбержакрбЫРМТММMTTVA.8.%&3A@AHV]NC7)@3J{‡•ЏШЦбсзРУФЖЛКЏЅЇЖРТЧЦЩдлкгбнтьэяуггЦЛТJLSVWM?>7?CFHNTZWF4);BHuˆРнэцррмЯЦЧФЩЭМЖЎВЖЛРЪбаЦадмстцсенкбШЩЧJJ€„L>?FI?ACJMWONIFLMNMHJGC?1E`[j}qb`ƒЅОЪРМЭбЧФТМКСМЛЦШУЮдлмлЫМНЦЫЮалхчнЫОЗАВИJJINZW[[€ЊZUH5LHTi}‡‹‰Œ|zЇТИКгкУЊЧмНМКДАИУЫмнзбФЧУОБИСШЯЩЧзйпг›ЇЏJOLSWVWTUUP<31\•ДЛЈ‘{œАЃЅЈ™ˆ‹ОКИАЋЋЏОзхщулгЗЕКЏЌЗЧЭЩУЮйЛ™–ŸQO@APVYTIgaHVxЛхслЭ˜zv|Љ—„ДЉ›ЊРЫМЛЪекШНЧаежгЮОАНЛЕФШЪЧЦЦВЂŽ‘MIGCHIFemz—ЅМЋНЮйЭбЛЎrcjƒ[TqžЌДЗЗСЭймьрЫШСанЮСЕАРОУЩОИНИЏКЩаЁtwHA58:BIPhЊЧИ›…˜ФШСЏЃЏŽ^N3^Ё‰‹ЁЈЗТТЯЫУРЫЃ‡••ЌЗЛДЅЃЋЏБЕЇ›žЏЏ’”ƒ…IGLajpwЕркЦЦЕœŒŒЅЏЄЅ—–}\pЅЂЛОЌОдЯЧРМБВЉŸЄЋЅЄОТИЅ›•‘’‰ˆ‰Š„mT>?YˆЃАЭудУЖ™„‚˜ЂЃЄЉЂ„‚ЂБЋЏРКМЦУКаЗВАЉАЅЂЃ™‘‹ƒ‘ЃЂ›ЁŸ˜—™œЇ—‰~~Zbaz”ЂЧрЛЏ˜–Ќ™•–ЉЋЌœ–™–•ЕЮНЊЅ™Ёœˆ‰—ЈŸŠ’Ž‚„’‘–ЁЃЅЃЋЈЈЊЃЁž–ˆ‰ЂЂ”–Œ‰”ЅЎЈВЖАРБœЗСЎŸЅœ‘”pt—ЇŸž}}|zƒ„‘ށŸ—˜ЄЋЌЌЇ–Ž”–Š•›”Є”’Žˆˆ‚‚ŸЄЛЯнЗЁˆ›™˜˜ž‘Œ˜™‹z{™С–t}z|‹Ž‘’™’Œ‡ˆ„”ŸЂžЁœ’›ЂЊВЖЧЭЩЂЃŸЋžŒ‚||ЌгЯгДŠgo|…Ž’‰~qw|{x}ˆ•‰—’ЅŸ˜›Ђ‘‹‚–œЈЉЋЊЋДМБЈЈЏЛКБЎЎЌЖАŒŒ‘žЊЕЄ•Ž‚Œ‡„xx~|w„ŠŠ‡‡ŽЇЁЊВЃ›˜•–™™„ШытУМНЕЌЏЖЗЎЄЂЌЊБЋЋЄ›œŽ”ЃЄЅЇЂЃЊЏœ}„…ˆ™~‡ŒŠŽ‹”ЈБЉЋЇ˜ЁЎЄ’’–‡™ТЧЫЫФЕЇЉЎБЊžžБЛЕКМЌ™—•ЂЎЗЕБЋžЄДМŽ|‡‡Ž”—ˆvrzŠ—ž—›•˜–Ÿ™—œЄ™›žŸМЯОАЅЇББЇЃž‘ŸБЛЉЏЎ—Œ‰ˆ–АЊЖМР›•ЃЂ‘ž˜ƒ~‡Ё•rk…‰Ž”Œ…’ДУЗЋАЛИСЕИЯЭИЊЊ€сЗТСВЋЃŸЌž’ЏЂ”‹‡…„„‡ŽЋБНŒ‹ŒžЋЌЈ—tЎОЈ˜Ž–‘КЏ˜–ЇЃž•˜ŸЅЎЏЕИЏБВДНУЯИЄ—‘ŽˆВА•ЋЊœ’ŽŽ‚Š›ЅЂŸ—žЅБЏЈЅЁЎТЇ‹ˆ–ЉЪыМБЋЂЂœ—œœ›ЁЈЎВЗОДЗДДЏАЅ•ƒ‰•–‘ИЊЃœЁžžЄЊЋЇЈЌЕЖЊЂЋНДЃАУВАДЃЁЄ˜ŸНФРЖЃ˜ЇЕЈЈЎЖЋЂ›––Ї~‘žЂЂœ’‘‘Ž‘˜Ѓ™ЂЉЌАЋЏŸžЄЎЋЇЈЕНЖЗЕДННСАЊЗТЛЕЉ‘‘’”œЃЌАЕЈЃŸŸЄЄ›ЈБЅ™›ЅЎЃЃЅ•™ЅЅžЊКНУЩЎЁЊНЮбФОММТЩОКЗАЅЁŸЂЃ˜™œЄЉŸœЈЁЄЌЏЈЂЏЏЅЂž˜ЁŸЂЊЊЄЉЎВЎЋЏЃЁЎЖНЭеУЕЊЖНМНМБЃЁЇЊЈЏЗМФДžЇВЋЄЅЉЇЋБЏАБЊЌАБЌАЖИЖЏВБННБŸЎИЋЇАЈМЋž—ЉЏАКИБЈŸЅЗШУМЗЋЂЅЗЌЖЧЮЦИДЎААЅЁЁЅЃžЁЌЕВИДЅЄЉВОКЏЃ™ЁЋЊЈž–˜ЇЎВЊЄœЊАИМОТТВЎЌАЎБМАЅЉДДќЕДВАА€—ДЗИДЇЎДЊЁ˜ЅОЪЫЦЊЁЅЈЌЊЅЃ’‘ЄЎЅЇŸ—ЄŸЊ–ЉМЕЌЕЛННФТДЖЗЏББВИМЩСЏЎЏЏЋЌНФСЎЎЉЋВЎЎНЛИРЕВЇЈЇŸЕДЅ™‘‘ސ›œЂЈЌЋЋББВВЎВТТООЖИООИЛДЖЛЧЦКДЎЌЊЎКСЖБЋЉЈЉКЩЩЛИТЯЦЖŸ›ЁЄЃЅœœъЁžЃЊЏЕИНАБМЦШФТТУЩЯаЩФФаЦФУОКСОТЕАЖМТЛАЖМЛЗЖУЭЮШТУЛАЊЅЉЌЉЇŸ˜ЃЄЇЎЕЏНЪРЎЊЇ€]ебажуЯЖWa<`eS]]TULE9BE;;5989:0,гддейтрЕЇrd\W\\TOH:8AMTQVIBFHIN<;Ÿёссм—GLV\bLHHE@?>@@:@B?859:>?HйееадшюШW>]POPLOTB3:F\VWOELJNJQW{БнМhSZWAGHFBAFGJFCA@:CB:844FbOпмлдззыщн™+1ZOFCHPNIIFMV[TUNNIE3HU\dYMzCFIJIA>GQMPHGBGIGA?A@4IMкнмаЭЮЧкўѕ™uxUMACFBFLOCIHTNIOLJHI<:.?LhdQMNHG;;?TVOF<;?EYTh…ЯбзеЫЭзмэєФveTP;PeHA?78,GLUWLL€pIC>?Q19BYVOLF9<;BHFHA?<<>;99?:C8iггжзжебгйцще`Sn‡ZNPPJTdm]ZZ>>@AG>E] 78:AGJFFACCFFEGC@88,??CGGJHA?OISQTBgКцущшщцыЭгдНЯсђѓЦ˜i?<2CEFC:>PT:M3"0\3!"5\QC@ENHFIHF??@?B:5701++,#*:$#(!1:?A9CNLB@;ACESOВхtvбспттпхрёжЧДДЩШкєўўћЋJN3)80-,3,*!!%,,)*24??EEMF@BIPJAZUSNH@AIU[YZ`БекчхбКЌŽаЪЩШЫезЯмл›”cTJINFGG€)FE20,,*-41)!&+) 0-JW^]WQEEFQ``e„ВжкзггОСШЌЭУуггукмзШnUFTIGFOLIG@:?9*,),.,(!&*.QcjQ]`a\UPSVM\ЃхђыдШЩЩаЭИЭдЧђљщэьЫbkVLWN?EC@<<1(,)(!)2+0)FHEBFC95,72-A253@QhZSMJNETU`РєѓщєслТЮбЫаЪТсљўўђО‚MSCE@:?B??1GP.ABJFAFNTPTUQJGISWWYUW^a™ЗшсдцкздклзклйжлщЯО…mЃ|ZFOPUOI><>@@>?@<:@FHB@EJYWVPNOTTVVNGTUd‘ксуйрпйжждбЮЭабЫблуd]JGJHTJHIA@AJLF?AGLIFLMPJGGJSONQQWwtojgpЊТеежншьњїчмпкжЯббдкмс^cN>GC?C?BCE@@CCECGBFEHLUUVNT[iHPˆЏЅŽЂнѕрнсцрйймурхулђўўщэююшщуц\SMPQJEG>A?;@??;>IIЪHBFHMOSQ\bPT˜ЎЁЅБЮхэптщьыхрпйккмтлкчыёёюэусхJIJTWTPJB;;€@?CB?BBGCIPYWYVS<@YmЮдШМЧЦЧмуцшчщњьзеЮбггНнєћёѓёяэщцQPMHIHEB@<47:HEBCEB@C\WWZY\Sc‹РЯЯйнккейрцшщхцзлФЭгезЩЧьєёєђѕєѓяюOMLMLM;.@A?CFEB@;9:.FPPSQOTOŒТЛеЩжйптцчэюяёьэђкЮбцрдмэјћѕђђѓёёяяPJICMa‡L?9:ELHFAA;1TvVN:O^hˆЪШЗпрхцхщшчшычххщсдђћящцюєђёёяяэышщхVWVOJSF8@@AACCпLSTQE?EFGEBCEGI@AЋ—˜œАЖЖЂАƒvkpxwnh[PQWbgdmd^\VW]J@ŸыСЦжES^mnZH707F?4?NOMLC?BCHL^ЌЌЂЄЃРЭЏpVIgge]^ddYOTZtmje^^d`[hd‹ЖеДpZj`V[TOOE@:1:@7EIPu^ЏБЄЈЅЊТМЗ‘-9haZ[Udb]Z]bnnoea\\WGQhoreV‡V^PWUL?@78EJC@HTIB>;HAFTFC@Gg`t–ЇЉЏЊœ˜ЄБЭзЌ|thcM^wWPOUMB`^gneb\^MSV[EHIte[^VLHISSM@OT1ЂжЦУНЖМЗА›’ŽnˆЋЉЩщєЖ„jQa\IIBBGCG;1GQWeN *<;@>UNGHW[QNAINNJE9a])xацЋЅЉЖУЩЮ—g~ЁаўўСуZknWLEHHF7;?15*A<.1(94@48E@FIYQIJIIJWZVИйSTКбЋЕЗОВНЯЋž„ЄŸЖмўў€“З]\I4C8;?><9.>A8@ALPLOPTLAIB:7>SGLBOawo]^YWT\[^ТяяпѓЯСЂБЗЎБŸœЧпшњцЏ„SPG;LJGGFIPJGMQUOSPUOTAV\HMJGJW[TTV\bh`WTWY^^€пVU\[m–жжпФТЧРЏЗВЉЅЇЏЉЅАМЮaaFGMN]ITSNGETULGMSZVZU^^ZOS[ce^T^`}zrwwЊНЩЭЪдймѓшЯСНММЕЃЊАКТЩ^hL>OJMMGOJCIUSM9Sxg[hbeW]]W]`[`^iwztt‚™ЃБлцыщїучкнтмУЏЗБЃЕЗЯЭСPbV\WNOIU[YSNSOJJVYh`achh`gha]adajdŽЏЏЕаАžЮѕўёцлжаШеЖ—ЂЄЋЕИЗОЫФИdheaWOO€ФLTZSTQQJFGS[b\]mjcaZZcd]bb‹АŸЅгТЖЫагУŸЗЯбФаОЇЁЦЮЧЯдЮЯЪЦhgUFILPOSNTUSTTOQL?SPPS[Z^\`\gnPUВЅ‹ЅпјаУУЦУВБКТгЧМКтєњажлпззйЧj\QVTTUIONNPIFJEHCPMJNLYW^`a^jVYœАЃЅЖбтхСЩптЭЦТУНЖБКЩФТкгрцтЮФЛРZVNZVVWTOHHAMM€GLEIOa`jd^aIIgv—ШеЦКСЗАТСФЧакуЭАЈЏАДЊœОчѕђёьтнбЮidNYQOQPOHIGPQUO?B;NQg`j`hd\k‹ОЭЭаагЭМЏЩЮеШЪШЌЊЈЋЏБЃŸкщщђящуцсп\]ZZ]]C?GNILNTM>@><4JYWWZVWZŒТБЭЌИМРШОЧекжддгпЏЅЇЩОБСпєїхцшщячсй\`ZWcuœSGEFNVUOFAL>8‡ћћёѓєєѕјјњїїѕїјѕљїљљїїњњ§їјћћдљћ§§њ§ћљљј-)48<8GEF?FC?G<3Tаћ§јѕљїѕїљїљїњљљљћљћљћљјјќїјїјјњј§њјљљЭ<4:07kчћѕѕјїљћљјљљјљћћљљњњў§§љјњњљљњјјњјћўљћће2.70?84;A?E758<:7,C]Нћћјїїјњњјїїљїїњћћљљћњјјћљј§їјњњвјњћљњјјљa>bZUB@EF3((B„ч§§љѕѕїјњљћњјјОїљ§ћљћ§ћћјњјїћћ§њљљћћљљњŸж‹~EFJIGBB9.973?B?:3$799A,>7rљ§ѕѕќїѕјњњ§ћїјјњњјњјњјјнљћњћћјњ’›ЇЩm9GCC3BFENJ;*-B>HmGEМљ§ѕѕўїјјћљ§јїћћЯљїљјјњњјњјћ§§ћљћјїј‡ˆЃЯ›SZNJFH<9A<03?<;B:5"Wј§§їѕѕшїјїїєѕљјїјњїљњћљјјїѕљњњїїаћјњњјњnŒjaŽiEIEFHF:<573;:9BCA)>Н§ћјјѕѕїїјјїјјїјѕѕћєїїљїїњљћјїњњїјјс0}ŸРТW.GJUVZ55;;>;<@?;?.n§ћюєїїјњїїѕѓѓєњјљјњњїўњћћкјњ[[~ЊФр‚+MIPMI78.013504(CИєяњњљїјњљљћѕњєндёњћћљћњњј§њљѕѕлїјњ!BzК‡@NH42BJ8,).508)$"4I–ы§љїїјјїЩјњљјѕщНцєѕїјћѕњњћјјћ§§ћљћњ\.B9|ЈЊL)4((:?73*9.3$4:HS[Jv§§ўљјјїўѕјјіњћћљћ§§њ§ћћља§љћћњ|I[;ŸУЈI7F0.7;8??@BBE<>G+-\Жћ§њєѕѕїѕїјњјјљљћћљљїјјњљТћ§љњјњћn ;h•Z.E478?CEHLHG@83G]F?IЄыћљєѓїњїљљїїјћћљћјјњїјњњћћљјлњјД‡є§љѕѕљѓѕїјјњјјњїјзћљљУЧ”^…ЂЉНЩЉH,:-)9BMMBNU<21;<@92?Ѓљ§ћѕєїїѕјїљјєјјљјј§њљћћљСѕљЛЭЌzƒЎБЖдь‹GUM8&3;E->>C829;25;IЅј§ћљѕѕљњїїѕјјњїїјѕјњљћјњљ§љћћг§ИИ•œЧСОЩыьФPECA7%*;;75288EGC2A7:;8?EGAA37тїљѕѕїїѕѕїјљљѕљљћњњїћњћћŒЕКЇ˜ЁЉОЪбмуэѓмzAMF?(>382*+1:AIJHH>M‹”тєљєїњњїїњћљљћјїјјљљћјљњВКЩТЎЋкгбмнххшОtBEVcO&@E>0-57)45:7CVdzAvђїщѓїјїњњјћћТљњ§ћјїѕїњЧФбШШаЫЯзеЯетрсЃI7BOG1%NJ;09:130+1]F7QZbаѓљљїјњїњјњњ§јљћћ…њћ§§РТЧжучщнлгжннсїєЏbVgcJ-ATVM<97&+9H:8BEпјљєѓѕїїЦјњљ§§ћљ§ЦдппдРЧТЪКДОЯбЫЧЦадщРh55MB2(Pzi;&-,$%4>IB25J’ьђђ§їјїїСјљљјћјЗЦЯбжЩДЋЌЏРРКЖНФЩТдючз‡13L%#*G<)$7uЫљ§ћєљјїїѕїјx„Œ‰ŽŽЂЇДМОЛИ›‰‡‹|ЕЖОжЉ[>5(>,:ZgO!*E3)BICCA9EUbŸцјњїѕњњїїњ‡‹ŠŸЇЁ›˜˜ЂЎДЌИЏ›ЊЌАВДВйдИО~51:*PiiQJG&&0@NCMMGB`CO›јћћјјљћћ€"‚…‰ŸœЁЇЎЅŸЅЈŸЂЉЅМЫеЁ–ЃЇЛЖ[1JH)?Gc[43)-4G9;@BAH?%4Ћѕљљєѕљѕњ~|ƒ~‚‰ЄЄ”‘˜žЊЁЊВБШдьЋ—ЅБЈŒЇЛЄeG2!(GhPC*7-%)-4>;A@58S›шљ§єѕѕї•МШЈ„}ЈААЎСКДИТЭеШ™œ˜ЄБТЎЂЖМФТЇ]1@?2BgOI:!+5284:>WYYiлћ§ѕѕњ›ЉН˜ŠЂŸЅЈАБЌБЖФЯзмгКЌЊАЗЖЋЅНсышуОJ;AA5@:J\tpI*&->CJB?]VZ^Nzєћћїњ——ЉДЏЮщѕєпйЫЖДУбВЕЭаТДЎЛУЕЋЄЕИЄБЮ–NI,&.5^uP0..*37@9#9WN9?5::588+CnБОРДБЇ”ЋžˆƒœЁЋЛМдпзнскДЃБЌРШЋЄ•‘—•x•ЌЛ™`THY? C]`F:3?MVoN?WЌМКАЌЉА˜›Ѕ™ЂЉЏФущхщчрЊЃžЕЪЧУРŒЊКРЌВЮсЧhcQSUI<[F0:930.AGL1-5ДСВЄ˜–Œ‘ЧШНЖЛЪдзЭСЯЫШЅЏЇДРШТР”‡ЏРОЎЅЅФТОœh48O;I!EGA*((973379{JЂЋЇЂ”‰„™ЋЅЊЏТШЦгмгЯеезхыпЗЮЮЖЄŽ‹›ИЮСЏЁЃœЖНШuMC&74147FE:513?8EM><:40278ABБИУРЊ™ЖбКЖБИЩбЯбдЩЮддбмкдаЮТИЉУЦбнЪаЦОЦдЩЫМЮНh75T5$07IMBA9BE@?A<ТЛМВЊЎЏЗОЛСЦймЮЯЭФОШЦШймлгЫФТЪлммбккгККОЛЊЌЛМ`HJ,(7"9OHC@?-)&50ЖМЧООЦФЛЏЎТгЯгбааЫТРСкпззмрнчлЧдпгжЯШНИНЦЛЈ‘ИЋЂ‚[OBL1.U[O??92(0,ЎЗЕЎЕРСВЇЋОЮЯЦТЩЯгзтнуурзЮЩЮмкЮЯлсЯНЎ›ЊБЌЅЊВЕЭЧНu@F[Z9-Qj725+#!"ЊЕРОбдбРЛФгебЯеанрнмгУабЫмнаЩЪЩУжмйЫФЌЎЖУгУТжспжМo?:cU29LO?<)*!$ЃЅЈЈКТНОЦжмйнкЮЛЧЭЮбЦНЛУЮпшхпйкжУОЧЧОМКФгбФСбтѕјјш‘I<7"49G@150-ЉЉЎЕМадазтмзЩТРНШЩЯжжртеЯакжзмжаЧЛЛЅВЌУШФЪбЭШдхѕїт^21O>!&EA4+7:ЃЅДФЯаЮЮЪЭФОЧзжагмнцшэщшйагаФКИЗНМНИЌВСЧЩЯбжджстШАБbPZAAQO0(5х.&2738>EGCCE@;<<>G@2SЭўўњјјљњљјљјљљћћњќљїљњњўљњњ§љњћћЭCEBA;@E@FL@<7:;>;37pюўјјњњћњћњћћњћћњћћ§§ў§§ћњљњћћљњњўљњњкћњћњ:#BB:<;7>%G`Чўўњљљњљњњћљјљљ§ћњћћўљњњћњбљњљњљћћљњњћ[LCBB;BA??ABbHTсўћљјјїјљњћњљњћћќ§ћћњњћћњћњћћкњћњљљњњљњћћњљi`UŽƒBLHCGFF?;:7;#&H‹эўўјјљљњљћњљњњћњ§њћњ§њњѕљњћњћћ§ћћњћћїљЖх•‡FJLFFюCA@;229F8.OЄўўћјљјјљњќћњњћћв§ћ§њњћћњћљњћћњљњћљўўЯŽA7GEG?<>:529:1;OWxпўўјјљљўћљљћќ§њ§ћћўњ§§ћњћљћњњиљјљњћњњљњљ§ўёt*,>FFC;:218?LJUZQM˜ўўїљљћњњљўњћћњќ§ћњљљѓњћњњћњљњњћћњљљчњнюўМZMNIEC;;85:GLC855Muўўњћћљњљњњћљњњћњњњљњљћњћћљњћњњљћњњуљыйїя]HLGC>;AJ@?,<><4-G>rўўљјјїљњњљљњњћњњўљњњћп§ћњњљОЭзцu?S<>BABJVQ@CPtL?Оўўјјћњљњљњњћћ§њћњћћњљњњљњњ§ћћњфћњСИЮѓИZ^TFJIC<;3.:>9;-EЛёц§§јљњњћћѓњћљїђэяњњћћњљљњэљјњљњљњљUtБОЭы–BSN@@ыB:432487:5(.Iмћћљљњњшћњњљћњјэѕюїљљњњ§љљћ§§њ§ћћсњљžnqДшкS,;18;@92<9;3>>?BM[Ewўўўјњњљњєљћњћњ§ћ§ћћњћћыњћљТ…‹FgнўУSGN43775:@@щGCBEF1-]Нўў§љјјљњљњљњњћћњїљњћћњ§ћљњњмЃ24;uЏгРn8I:-2;A@EGLLF>BO[I@JЁёўћїћљљјљњћіњ§§љљњњљћњњћй§њљњйo~ЉЛЎНЯdM:)28>FNHHB79?@4!;ŠўўћјјљїјљњњљњњљњћпяђЭŒОсйрѓРN2FA-3@CBIPP@945;:88@ЌўўўјљљіњљљјњћњњћњњељћњћњћћўћђђдЇРуурўў•N\TA:58:0AAIB;:739@AMЇўўќљјјљљњўћњњЪљћћ§§ћ§ћћњћћтуЪЮщящюўўгWMLI<719A>.#рўўћљљњљљћњћњљњњЮћљњњћњћњћњрнпњўяэьзљўžZ>759;>CHCFHGLEBBCE?@P•щўўћјјљњўћњњћЯ§ўўћ§њзжЯгЩШуыѓ§ўю{E7>?BFABFGC4<>:7@@ACT`|гўўњїљћћѕ§ўћњћњћњћњ§§дћ§ћ§ћмегЯЕКЯюѓїўўУZ9:MOH;CIPG;;727@>?;AQjwНўўјћљјљљћћњћћњњћњњў§ћћдркеаЯйсђђєћўўКF2FPH?@kSL<<>5242-22dL?N[gŒнўў§љњњћњњљљњњћњћњљњ§ћэщщэѓѕѕ§ѓѕєєѕўўЗn`mkL3<9-((5;??:15G?bбўўљљўјњњєљњњћњчююђѓєѕѕђкюўўаv`SdJ<#1FUJ5-!899<949>7BPoёўўћјљљњњ§ћњ§§ЭћюёђђѕѓѓєђяёяѓяёяёњљДnH`w@,00\…W-,9<93.28:#NMBтўўјјљњюљћћ§њћћяђѓѓђєюющыээлюђѕўћбq;>T79%Mua2798,))109JE:9L™ћўћљљњљТњћћ§ћњэяяђяьцтпрущьэщщшьё§ўэ•39AC85;jr?441+*.01-5%14@MŒтўў§њћ§§Пћ§њћњяьюыььцпйклцшччхёђтмђўхML`P;,BJ>>5;@>?7,$("Zb3VьўўѕѕїјљљњњРљњээщщххрпйдхьыюьчмбЩЪедкбЂ]PPA704GJB(,AOHIC:MYkЄьў§љњљљШЮЯЯбдрппнрппхрупцдрстутщўљхж‰<>C$Gc`NML813APLTQLIdITžўўњРћњћњббЮабемлпмннрпнпсхшьљеЫкйЯцчЭp?YN2#:ATS4:98@L48EG@GC,5ЎћўћјјБњљЪЭЪЧФЧЮткйкнсрчуцщчшўкжзнмЯлчЩ}T@%1(#I[J>*83+.09BCBH:9WЇєўўљјјљмѕўхСШИнпрцхщщБюяэщжеШлхттстщёщКg7GJ1#2VPF7,"302::8@HYYdjшўўљњљлуюеУгзнрыыььэяяёэюытклнпмнмѕўўйЩT?JH;:4@YigJ2+9@JGCJab]gV|§ўўћљмнтпйѓўўјюэђццшѕщщ€ŠьщтцщьыспруальЊ\S5.341ZkF1+09;?@<)@bU>nјўўјшчшыцщышцчшыеймлсхрхшьыюыыйкэљїјљцЗv]2;B$ %UwU!(;?@@;>F[[@Jшў§юяяэьщцмзтыттппссурсчцччыыюяђђоєїўўлЂ[THC70#9`uP4;43;9;99$7@vК§ўыы€ њђїэЭЏНЮккееньчуцчшьююэёюььшшщнўўѓ˜bGO91($0PeY<5-35<@@BIZcLEA:;9AE:93IzИыщщтмгуЯЫЯмшщэюєяѓєѕёчмнхщщыпзебежеЗецщЗnbZaE:TQAEC@:E@:HtJртрйдЮЯдсмушщыёђѓѓ€КђѕјћўњььыьпЭЪечьыррнзшсу„YO9@;217AACAACGICGOOтурзагЩлхуцшчюёёѓѓїјїїѕѕєєяюшцшшььёыцррцчђћэœH4YH50-CIG75><<><><щщцюпжщєщчыэюяёяэяяёђѓђђёюэыщьщяюьѓьэшщшщёыєр<шышчшхуцыыэђёёюњэёюяђёёТяёяэюьяёєђђьщуцшчущтЖuQQ:81+CIEHG90951цшцшышщщьээюѓёююяяёёїђєєЬёђѓёђѓёяѕяюэчцшхрпЩтужœ`YUI-JSOCA@>?80ышхртцчццыююёёљяѓєѕѓѕђђёѓѓёяёяђђящуцрсттцчёѕе}FH`a8%Aa;,:4201чцпкрыыœщююёђѕђѓђєєђяюшыѓёђєѓёяђяёђёщщшьюыюэєћћўс}GAm\7.CE?<940(тнззмчюяђђєєђяяѓёяёюяэюэђѕєѓѓєђяяюээюшхыьэяёёўѕ›LB>*($:C@77ь9ткнчюяђѕєђѓяѓёюэюђѓѓЗяюђђѓѓєѓёяьэььщцущщэяёяяђђѕўўѕi48P:$;:4::;рмрхыэђѓѕѓёяёэяђєєѕєјїљєєѓёэяююь§эьыычэяэяюяђђёьйжЌq]b@;T™љўўњћљ§њћћ§ћћћўћўћ§§ўћ§§ћќ§ћў§§ећ§§ћЏѓ—Y]`UZ^ZSTHJQMZP@bАўў§ћњћљћљћљ§њћћўћћ§їћ§§ў§§ћ§ћћй§ћ§ћ§ћўћћўўкœMLY\WWPMQIMNUAH`j„ыўўћљ§њћћёњ§ћў§§ћ§ћ§ћ§§ў§§ўў§§ћћњўћ§ћћу§њўѕƒ88O[\WLJMGAZaaktidЅўўњњћћјњћ§ўћўћ§§ћћ§њ§њ§§§ћўћћуўњ§ћћЮсўЦjcg^TQGQJHIY`]LNH`‡ўў§ћўћћў§ћћ№ўњўћћњ§њўћ§ћўћ§ћћењўњћпЫюэjU\\TNMV[UO@T[UWATIƒўў§ћљћљ§њўћћњўћћјњўћћњћњћћж§ћўћ§ћћЅАЖз|JcVSZVT`j`SMSV[aŽ[QЫўўћљћњ§њ§ћћє§ў§ўћ§ћ§ћ§њћћіњћћ§§ўћ§§ћћцœ”ДхЏeng\]\QSUNOLOPSWVE2nўўєњћљ§њћњ§љћњћћэњљћћ§ћћњ§њћћўњўћ§њћћеzŸt”TZZ^][YVMJQLLZ\`\ZcimxJNUOUSVTSVV:…ўўюњњћДњ§љњјћњћћўћћњћњ§њћћ§ћ§њћcmŒМкѕ’9^c[\][INNLHNVI@2)YШљчўў§њћњ§ћ§ћ§ћћјэрђњ§ћ§§ћћЯўћ§њ§њ§ћћ8L‹–Єг›MbaPBLZGFGMIIJP@-1AZœцў§§њўћћњўњћћѕљёнѓј§њћ§§ћћ§оўћ§§ћtCMIŽЛОW4G>IEIFGMULOLJNWbwZŽўўў§ћћўўњњљ§ћўњћћ§§еў§ўћ§ћ§ћўћ§ћћ’aj$AНсО]UVOFGFPPSP[YWLS]HGpЫўўљљћљњњ§ћћїўћ§§ўћ§§ћћћўњ§ћ§§ћињ§ƒ#BƒЕЁi@[OMGMLVVbb^YIZavbSTАљў§јљњћњњќћ§ћ§§љћњћњћћ§§ќћ§§ћћрФMZz‹‚džЯmWF9I;ELU^^PQEAMUF.+C’ўўяљћљћљћљњљњњўћћњўћћењ§њ§њћњ§ћ§йсЎh‘ИЛЭрТZ>SH1‰яўўїњ§ћўљ§љ§ћћОњ§ћўћћ§§ћ§ћ§ОРЩяўэьуШљўЃbJAJIMIJLTV^a^YYPUZWQ`Ђїўў§ћљћљ§њћћўћўњ§њћћ§ўй§АДВАЎЏЭмэўўяˆSHPNYUOJPVSUPQJQNTPSao‰жўў§љ§ћћ§ўўћћ§аў§ў§ў§ў§ўЕБЕЋ‹”ЎсыїїўШhFG^`Z[FZTVOHOMLMVQJPi}‹Щўў§ћљњњћ§ћмњ§ћўћ§ўў§ўНЖЊЇЈЏУлчщљўўРWBQdWJFmU\NQQшPNJSVb[YCHЈѓўўљ§њњљћњћћ§§Цћ§њћћ§ў§ћ§ЭеИБИТЮйсяё§ўэ‹QdWS@8*A?JIJGLTS]ca`PdЄЈїўўћњћњћћ—§ћўћ§ћўћ§ћћњћЫЯаЮФФучщээљїћбŽUVua<+;JIHAFHPITTGWox”P‹ўўњјњћћњўћ§ћ§ћ§§ў§ўњћљћежнййчучцщмхє§ѕЗ[HWh]G*3OUNIIђJIH@F~aPbqv™уўўњњћњћњћћПњћћ§ћ§ћ§§ўЭЮжцюѕђяэхыэюяўўШ{m„}`<.?OUSPUNJ?-9TSHGSVNeеўўїњњ§њ§њ§њњќ§њњћћ‚ўЭЯЮтёѕєѓцтчщхщїўўЩuppwaP81?NUSM99C@LQPLCFWOrбўўњћћњњћўћўћћњћ§§ћ§ажнрчёђѕёющььщхщјўк‰pnz^Z47IYSH?0EFIPQLJLBLa}ћўўћћњўњўћўћўћ§ўўЪ§кшчщхюэяёсйшьхмурюїБvZq‡Y8C?k‰`<:JPOJ@HEA>W`QыўўћјћњњўўћћПў§§ћўмшюющлжезгЮжхцтелыыѓЫzCEYQI0Pue<.EIG>><>HQ^QAAVЅўў§ћљњћўњњћ§§ћЧжмчючтЧФРЦедЭгЯгжйрњѕыž>EPVIA@x}JCC?;EQ]™ьўў§ћћў§§Оў§§ћ§мудббЩРМОЎДКЪеЦЧжхжЦшјЯ„OOgWH*.BUIBIFPZHACH?+;uv@`єўўљїњљњњўћћЦ§ЯмкЫднйРБАРЫазгЪЗЏЁЃЖДБЗ^WSME2HMMLOJUYTOM>B?2:>>LMOEJ]:<<@2CbY83BŠнўў€€љ§ћ§њ§њћ™˜™žЂЅЂЉБЖЛЯдбадЋ›ЁŸ”жЩйэТoQFHQE5WoZ9SSQ+2EUYW^SM]oxЗєўў§њћћ§њћЁЄЁЂЌЕНЖВДЌМОЦНЭЩВТЦУЩЫЯѓэЫаŠHEL-#0Qmj]\]LINT`Tbd]Z\oЗўўћ§„ћ§ЂЇЅЁЊЕЏВЛЦМДИФЕМНСЯцшМЎНМАгЯВnAdV;),FMdWNHGLP]JLTbUhSF\otQC3CI3\vWC?F?CSPU;ZveQ‚ўў€žћкЦТбутдЭЫЪадБЎЊЪЧМЦЭмчхсузНИлёѓѓхЭД~e:FL3"(Wƒ`4:LMTPWSVnoL]ЂђўўдбжебЮШРВШЯСТУТСЪЩТСФЩШШЮЭпьяђёёѓўњмАgbOQI5-Bj|]@QAJGLLNM5,2UtcLEMFIMU[Y]PW‰НўЧФЧЮОœœŸz”—ЅЋЈРьыцйзжЦШадткЮЕЏНШЦЗООЧЊ‘YHFbP<FemTUUP€ЎQ^ILG\ŠФажЫЭОЌРЊЂЌИРабьюыэѓщФДЧУдпФЗАЊЇЅЇЈ‘ЊЧгЏwkbrP!>^[WVVOVZSdr‹kSeШдЪШСКНАЉЏЖВЗНФсэѓяђюїНЕЗЪйзедЃŸЖУЯУУрёмДŠ{jut[$0[MNOMQHJ[\[LJI<-EEPPNPSOTTbcaЧШЗЉЃЄ•НЩЭШЩЭдмюёїѓїєјєѓчпуйдЯернхжбЦТУРЫсьщЄTHo[J4IFMTWPJMSNZOSббгзУБЧуЫЯЩжзуццрртёщцяьртйлдЫзмнюцчеалцсхдхЭzHTkP5?7HPUUY\[YYUPдЯЮЫОЧШббйжлыюлпсндммпыючпкекншёыыюёсЮЮ“ЪФЧеЮrZQFFG(4QTYYNTLSQGШЯбааеггЧЩкцхштхрпмййьђяшььёяьйхьтхюхЯЦЫеЩСЏЭЩНžocYd<)PZ]SNZNNIHШгЧУФЪЩУТТгшцнмнтчщђяя€˜ьшнрыюэччьёчгЦЗТЧРТСеЮтсЯ…OSqqM)NkJAUQIGFФЫЭбрхнзглцщщцэщяђэяпблрлюэшлмрнчьщшпФУЫрчлкыњїђйOOzmF7HVMMSHI>ККММЧгжзлщюяяэтйнцнркЯЩзцяђёэьючедййгЯбйухмжсюўўпЅ[NU:C1CLNUIPHФРРЪбршыяєэщнмзбкцччы—смтшьыютубджезЫЩкймпчкпщєўўїmAHdN&04.oч§§ѕїњјљљњњ§љ§ћћњћ§§њ§ћњўў§ћћљяїј+,+1,.%1Hzђћ§їњњ§јњљљжјћћјїћљ§јљњў§њ§ўў§ћ§њ§§ћћ(+<>99%@:Lœјћ§њњјјљѓћњ§њ§§њњћјћљћћљ§ћњ§§кјљљњ><>3.@JP[aJtщ§ўљ§ћљљ§љљњ§њћћљњјњјљљњсљўўњ§§ћ§521+-1HGIBOIћ§ў§њјїјњљљќјѕїјјјљћњљљњ§ўўћчњ§љљ@7.2,LPJNNIB:gФ§§їјј§§ћ§љћ§§ђјљљћћњћїљћњ§§њњћњњћњћћњњќ§њћњњћљњљњќћњњћћщњћћ§њћћўћљњњћњћњћњћњћћњњћњ§њћћњћћм§њћњћњћћњћљњћћ§ћћњћћљћњћћўў§ћўћ§њћњћћњёљћћ§ћћњ§ћ§њћћ§њњўћўўюћўћњћњћњћљњњћћ§ћњћћєњћ§§ћљњћњћљњњїљћњћњћћ§њњћќ§њљњњљћњљњ§ћћўљћћтљћњћњћњћ§§ћћњ§ў§§ў§§ћ§ћ§§ўјљћњњћћ§ћ§њћћњ§јљњњљњўљћћ№§ћ§ћ§њћњћњњћћњњћћћ§ћњњ§§њћ§ћ§ћ§§њљњќљњњћћњ§ћ§ћћњњћјњњљњњюћљћћњћ§ў§ћћњњћњћћњњќћњњћћњњћњ§ћ§њњљћњ§ћ§њћћі§ћћњ§ћњљљњњ§ћњћћўљћћќњћљњњ№љћћ§ўўћў§§ћ§ћ§ћ§§їњћњ§ћ§ћ§њњѕ§ћ§ћ§ћ§ћ§§ћћњњћљњњљљўјљљўњћћќ§њњљљјљњћёњћћњњћњћњ§ћћњ§њњћљћњћњњ§ћњ§§§њћљљњљјљљњњћњњљјљњљ§ћћ§ћћ§§ќњљћњњў§њњљљјњљћњ§§ќћ§њћћњјљњњљљњњћћяњ§ћ§ћ§ћ§ћњ§њћњћњћћэњћњћњћњљњћљњћ§ћ§ћ§ћћњєћњћ§§њћљљњћњњќјњњљљњјћњћњљњљћћ§њљњњћњўћ§§ћњњљњњћљљњќљњњћћњѕљњљћњћћ§ћ§њњљњћўњћћњљћ§ћњњћњњћя§њћњћњћњњљњљћњћњћћњћћњћљћћљњћћ§њ§ћћњіљњњћњћњћ§ћћњњћњћњћћњљњљљњћћ§њ§њњћ§чћ§њњћ§ћњћњ§ћ§ћћњ§ћ§ћњћљљњњў§ћћќ§ћ§ћћњѕћ§ћћњћћ§љљћћнњљљњњћћњћњњћњњћћњћњ§ћ§њћњћ§ћњћњћћ§ћћњ§ћњћ§§ћњњћўњћћ§љњћћњ ћы§ћ§§ћњњћћњњћњ§ћ§њћ§§ћћѕњљћњ§ћњњћњћћ§ћ§ўћ§§ћѓ§њ§ћћњ§ћћљњјљљљњјјљњњћћўњћћњтћў§ў§§ћ§ћ§ћ§ћўњњћћ§ћћљњљљјјљјљљќњћћњњќћњћњњћ§§ћ§§іћ§њћћ§§ћњћћњ§ћ§ћћњњћђ§ћћ§§ћ§њћћ§њ§њњ§ћ§ћћљ§њћњћњћћњњћњћњћћњљћћ§ћ§§іћ§ћћњћ§§њћћѕњ§ћњћћ§ћ§ћўўћћ§ћ§њњјљјљњњћ§ћћўљњњћљћ§§ћћ§ћїњ§ћ§ћ§ћ§ћћќњљћњњэјљљњњљњњћњћњћћ§ћ§§ўўўћ§§їћ§ћ§ћ§ўўњњ§ћњћћњћшљњљћћљњћњ§§ћњњљћћ§ћ§ћў§ўўўћ§§§ћњћћьњћњ§ћ§ћ§ћ§њћ§ћњћћ§ћ§§њћ§ћ§ћ§§ћј§њћ§ћ§ћўўњ§ў§ў§ўўу§ў§ў§ў§ў§ў§ў§ўћ§ћћњ§ћ§њ§§њњ§ћћќ§ћћњњћ§§ћ§§єћ§ў§ћ§њћћ§§ўў§ќћў§ўўюћ§ћћњ§њљѕђѓїљћћ§§ўў§єћ§њћњ§њћљњћ§§ў§ўє§ў§ўћњјєјљњћћ§§њћњњњћ§ћ§њ§§№ћўћ§ћћњ§ћ§ћў§ўў§§ћњ§ћћњњљљњљњњ§ћћо§ћ§ћ§ћ§ћ§ћ§њћњ§ћ§ћ§ћ§§ћњ§ћ§њљћћ§њћћўњћћ§ћў§ћћњ§ћћњљњњћћ§ћ§§ћћњѕћњ§ћ§ћ§ћ§ћ§§Эћ§§ў§§ћ§ћ§ћ§ћўћ§ћ§њ§§ў§ўћ§ћљњћњњ§ћњћ§§ў§§ћњњ§ћ§ћ§ћўўјћў§ў§ў§ўўўћ§§ўљ§ћњћћњћћќ§њћњњћњћћњћњћћўњ§§ќћ§§ўўўћўўњћћњћћ§§§ћ§ћћьњћћ§§ћљњњ§ћ§§ўў§њћњ§§ћћў§ў§§љћўћњћњ§§ћєњћћњљћћ§ћ§ћ§§ёћњћ§§ў§ћ§ўў§ў§ўўєћўћ§њљњњћњњћћўњћћ§њ§ћћў§ћћ§§ћњњћ§ў§ў§ўћњњў§ћћј§ћњћњћњљљњћ§ўћ§§ћћ§ћў§§іћњћ§§ћ§љљњњућњ§ћњћњћ§њ§§ћ§§ћ§ћўњћћ§њћњ§ћ§§§ћ§ћћў§љћњљњћљћћќ§ћў§§ћщ§ћ§§ћћ§§ў§§њћћ§ў§§ћћў§ўўєћ§ћ§њњћњћћњћћх§ћћ§§ћ§њ§ћћњњћ§ћ§ћћњ§§ўћўў§§ѕћўћ§ћ§§ўљљћћюњљјљњњћћ§§њћћњћјјљљшњћћ§§ў§§ћ§ћ§§ћћњ§ћћ§ћћјљљњњљјљњћћќњљњћћ§њћњњњљњљћћњњћћ§§ћ§§љњћњћўљњњћўљћћ§ў§§ћ§§ђњћњћњћњњљћћ§ў§§ўћ§§їћ§§ћћњўўњњђљњћ§ћ§ћ§ћћњћћ§§њћњћ§ў§§њљњмћњћњћ§§ћњћљ§ў§њљњ§ћ§ћћњњљњњљњљњњћћњћћ§њћњњ§љњћћ§њћў§§Ёўўљ§њљћћњўљњњјћњљњњћњћћў§ћћэ§ћ§ћ§ћ§ћ§ћ§ћ§FŠюўўљљ§њљњњўљњњћіљњ§ћ§ўў§§ћћ§ўћ§§ѕњћњћњ§5Aoкўўўљњњѕћњњћњћњћўњћћѕњћћњћћ§ћћ§ћћн§ћ§§ў,;^iЏўўњјљњћњњљћ§ћ§§ћћ§ћњњћљњћћы§ћњњћћњ§ћ§ћ§ўў:g[5AЖўўћјћљњљљјњ§ћњћњњћћх§ћ§ћ§њњљњћ§ћ§ћ§ћћљћL9,)-AЅўўўљјјљђњљћћ§§ћњћњ§ћ§ћћњўћ§§ўђ§ћћњњ+.3-SaGЄўўњљњћћњњ§ћћў§ћћўє§ўў§ћ§ў§ћњњ§§э0+2#1?55oэўўњњљњћћ§§іў§њћљћ§§ћ§§іћ§§ўў§њћњћћ№њ30248*1-Ezјўўћљљ§њљћћю§њћњћњћћ§ћ§§ћ§ћ§ўћћя§ћ§њњ-5>A?:,:9OЁўўљњї§ћћњ§ћ§ћ§§јњ§њћњћњћћ§тћ§§ћћ§7>8:>AQW\hNpяўўћ§њћћ§ћћ§§јћњћљњљњћћљъћўў§ћ§њ§92.22;CEC@OE„ўўўљњњўљћћњєљњњ§ћћ§ћћ§ћўў§ћњ>8870LLэPOOGMYH  0@9;A>B@H5 .GkŽ˜ОаЫпьу§§љћ§ќњћћјјћаљјћ§§ђ|?MJ,130.:417<:,0.(89+"Qt?:W[љћћћљњњў§§ћ§јљѕѕєЭћљЩ^()-,>?L*%*)%%OP;:0453,*%01A07@IW]9[Mћљ§љћљ§њљљЩњ§њћјћјњљњњў§§ы™OIWBA934$!*)7?B%,!%$&:cJ.9;9:EJYG#AGў§§ќћјљ§§Пјћћјїјњњљљїљјљ§ў§а[<@@BE>8)%&%+%*)&,%1AOA721-)2) 23ћћјїљїњљјјїїЬњјјњїјљїјїїѕњћљгp48EC@@514)!@LP5,+7zS<12--5.$().§§ўћњњЧјњњјћ§љјїљњљїѕљњћчŸin?GA5>GLP^P387$?8,083.3&-0ћћ§љћћћјїјњљљіћјљћћњњћћјјЯњўњ§їИ`9HdO4ISFCAјћ§§љћљћљљ§§јћљљњ§љјњњжїљїїјѕ§ўюЕm\CMhOCACA;>PoE,,5<> %$ -P§ўўќ§јћ§§ћњ§§њ§§Эљћјњњћћјњїњњїњ§јк„]V[L@8?A997279799L".+% ћ§§њћћУљєљћљљћњћјљћјљљ§§ћјјїїљїћў§ћЂNO<.1TI?4<:C>18<:4.*1?2@-§ћ§њ§§љњљљјљљњњј§њљћћгњїїѕєєѕѕѓђєї§§цЗoYNT`MF@C<њ§§љњ§§љљћ§§љкћњјѓїїєњњјѕѕјњўѓсщћ§§єЖ‚QCHM[k]B*379ћљљыћљћњ§§љћћ§њњ§љ§љњћ§§ўў§ћнљћћљљјћљјїјѓђѓѕљ§§ћїрхИ–•‘ˆ~Z]`њњљњњљћ§§ћћњўўњћ§§ћћ§§ћљўјљљїѓјњљћљњњїєѕєєѕѕѓїљћ§§ћљјїычФ§§ћњћљњ§§ѓњћјљјјљљњ§њ§ћћїњ§§ћћњљљјјўљћћ§јїјјћњљїїѕѕщїљѕѕњўћ§§љљћњћ§њўў§њјћ§§ўњ§§іљћћљћљћљћ§§ёћў§ѕїљїљїјїњљљїїўљњњљїћѓїњљ§§эћјњћ§ћћњљћћљњ§ўў§ћњњћтљћћљћљ§§љћћњїљјєћћїњїљѕѕєїњјњїїтљїєљћћњњўў§ћљљњјњћћњјјљћјїїљљїїјўїѕѕёљїїљїњјљїїјјљљњњхјњјјћћњљѕћћ§њ§ћљћљљћћљљњјњјјњјіњљјјњћљћћњњћјњїљѕѕїљљјўѕїїјњљ§јљјјћ§§њ§§цњўў§§љћљљћљњ§§љћљ§ћћљљћћљ§§ъљњљјјєєјљљјјљїљїїњјљјћћђњ§§ћћљћ§§љљ§њ§§ћљљћљћ§њњћћќњїїњњєјњјјїїјњїїњћћњњјљћћј§§љяњљћљћњїњјћњњћљ§§ўў§њ§ћњїї№њјњћћњїљљѕїјћћјћћњїјјњїїѕ§јњњўљўўўњ§§ањ§љћћ§§љћћљљњ§ћћњ§§љїїјљјњљћћјњјњљћњїїљњјњћ§§љћўў§§њ§§ўљ§њ§§љјљљўњћћ§ђљћћњћћљљњјјњњ§§юњїљњјѕїјњјњљћћљћј§§ў§ў§ѕњ§§јњљѕљљћ§§§ћ§ћћљћљњўјњњїўњћћњњљњњљљ§§ћъњ§ўўћ§§њ§§ћћњњћљћ§љћћ§§ћцїјјњњјњјљћ§ћћљњњјћјњћћљљњїї№ћљњјњљљњ§љ§њ§§њ§§ђљјћ§љћћљћћљћњћћ§ћћјћљљћћњјшњљћљјњњћњћљљњїљћ§§ћњњћћљљћўњљљїљќїњјїїљљћњїїјњњќїјјћћт§љљњїїјјљћњјјљљћћљљћљљјјћћњћљ§§ћјїїјћћїјїљїљјњјљљјћјјњјїћљљћ№њ§§љњњћ§§љћјћ§§ўўі§љћћљћ§§њ§§ўў§ћћўј§§љњћћ§§њ§§§јљњњљ№ћљ§ћћјљїїњїјјћљћћ§њ§ўўћўўпћў§љћљљћ§§њњљ§њњ§§љњћў§љћљљњћћјћњњћїєѕїњњј§ћљ§§єњ§§њњўћњњћћ§§ћяљњјњћљјїјњљњњјњјїїјјїћћњњїћћјїѕјћљћћљј§§њ§ў§ћї§љћћљћ§њ§§љљћњљњјљљќћљћ§§§љјњњўћ§§ьњћњњ§ћћ§§ўћ§§ћћјљј§ўўќћ§§ўўўћ§§ѓљњњјћ§§њ§§њљ§§ћєљћјјћћњ§ћћљ§§ћњћћњ§§јћњ§§ћњћ§§ќљ§њ§§іћљћћјњњјјћћњћєљњїњћ§ћљћћљћћ§љњ§§ќњљјћћжљїћњљљњў§ћњјњћњ§ћћњ§§ћјјїїљљњћњјјљћјїїѕјљ§§§њћ§§эћ§њ§њ§љћњњјњјћ§ћћљ§§ћњћљћ§§ћїјњїїњїњјњњјўњјјїёјїїњљјћ§ўўњљћјљљќћљћјјфћ§§ћњњјјћћљћћјљњјћћњјњїјјїјћћќњљљћћ§љћјјњїјћљњ§§Рљњїїјљ§§љћј§ћћјїѕљћћљњћћјњјљњљљњјјљћњ§љљњјћјјљљ§њњ§њљљћћ§§ћњљ§ў§§рњўў§њ§љћћ§ћћњћїјњљћјћ§ћљљћћјљћћ§§ћјќљћљћћћљњњљћћѕњїјў§§њњћћ§§ћјћљћ§љћћј§љњ§ўћњљћћіјњ§§ћјјћћљљїѕћјњћ§ћћў§ўў§њіўћў§њ§њўў§§ћіљ§њ§§њћћљћћћјћћњ§§њћјљјћљљћјњђћўў§§ћљїљћћљњ§§љћў§љћћ§§ћ№њјјћљћљљћ§љљћћљћћўљћћљјћ§§ћћњњ§шљјњљњ§љјѕїїљјћњ§ћљ§њ§њњ§§ќўњљ§§ў§ћќ§њ§љљћшљћљњљљјћ§§њјћћљјјњјћћљј§§ќљћћљљїћљћ§ћ§њ§ўўќњўў§§ћє§њўў§§њ§§њ§ўў§§љјњњ§љњћћљљћ§§ўў§§ћњћћљћћѕњ§ўўњћ§§ўўћћєјљ§љћћјћћљ§ћћљъћљљћћњњїљї§§њћљ§ўў§њ§љљї§ўўњњљ§њ§§ћ§ћћљ§њ§§ўт§ћјћљњ§ћћњїјћ§ўў§љњ§љћ§њњў§њ§ўў§ћў§§ўюћўў§ћљњ§§љјћћ§§ћ§ўўўћ§§јњљјњјјњ§§ћўњћћ§ћў§ўўјњљњ§ћ§њўўўћ§§ѕўњћљјњ§§ћћ§§№ўћ§§њ§љјјћ§њ§ћљћћўњјј§њїњњљў§ўўњ§єњїњћњ§§њ§ћљћћњљ§ћљћњ§ћћќљћњ§§ўќћњјћћљўњјјшїљњ§њ§њњћљћњљ§§ћљљј§ў§ћ§§ѕћљћ§љ§њљћљћћ§эћјјљ§§љїњњћљњњћљћљ§§іћўўћњњ§§њ§§ўљ§§њњљјћ§ўўўљўў§ћїњњћ§§ьў§§њљњњ§§ћљњ§ћњјљјњјјљљўћ§§ћўўўћўўтњћћ§§ћјљћ§§ћњ§љ§§ћљ§§љјћћ§љњњўўшњ§њћљљ§љћћњњљўў§ў§њљћ§§ўў§ќњ§§ўў§љ§їћљ§ўў§ћћљљї§ћўў§њћћ§§юњ§љљјїїѕўўћўњљњјњјјћњљњљ§§§ў§љљї§ћ§ўў§§ћљљяћљљ§§ћљљћјјњљјљљ§§хў§§ћїљћў§§ћ§§љњњ§ћ§§њ§§ў§§ћћ§ыћњјћ§§ў§§ўўњ§§њ§љћћљјјїўјћћяјњјљ§ћћљњћћњћњњљўўщћ§њ§§њ§ў§ћћљѕњљњ§ў§§њћўўў§љљќјћћ§§іњ§§ћљњјјњћћљћ§ўўћўўў§ўў§ў§ўї§њ§њ§ћјљ§§ћћ§љћ§§ћвљ§ћјћћњћћ§§ћљћўўћўњ§ўўћњјјљљј§ћўћњћјїљћњ§ўў§њ§§ќљћ§ўў§ў§љ§ћћљњљћљњљњћњћњњў§њњПљћњћњћћўўбnB5.CI\<- 98;809?AP80Lh—ЅЮпдшєѓ§ћ§ћћњћћ§ћ§њћњњћћњћњўўЭђ~AGOG9?JI915)!%";7527>?9.1)8A933^}IH^bћњћњњћ§§ўћћў§њњЧјљјјїїўўЩ^*-5-@GJ.-1,+) &OQ:314<:5017;;?;FNdgFbVћћ§ћњћћ§ћћ§ћк§љјљљ§ўўы›ƒTMYAAC>5300.7B@;,,(-!;^E5:;;рEMZI1GAўћ§ћћњћћ§ћ§њћњћњљљјјљјњћўўаб\7;E?<<75#%$022)02-1,AL@%10,2.:4"4<ћњњљјљњћ§њљљњЮјљїљљјљўўкr;>CA@M:510#):MH7539}U>*9833.&.,(.3§ћ§њљљќњљњћћањљјљјљљћўўхЁenC"B>08LLW\TF8750--*73(,7ћњћћњќћњљћћњћћњњљњњЦ§ўўјКd5HkH9FQFAB<;@@>"))+98+$,),02-8Eњњ§ћўњћњћћ§ћ§њћћ§ћћњљљЮјљљњјўўьКq^FLoTHBE@CA?<<>EN1.&-12.",њћћ§њњћўњћћљ§њњћњ§ћћў§њњљ§јљўўыљЃHTC45ZPE@?>?AA827<3*)O‹N&§ћћњћњћћ§љњљљњњ№ћљјњњћћљјљљјњљћљљјуї§ўчbG7G@EJ[I-()095FMPQLBA@7§ћ§ћ§ћ§ћ§ћ§ћ§ћ§ћ§§ћў§ћћїњљњњљљћљњњјљњљ§ѕучўўяяР…TFIOapaA182Eњћћуњћћ§§ћћњњћ§§ћў§ћљњ§ћў§ў§§ћћњћћёњћћ§њћњљїѕєѕјћўў№єцчНœœŒ~^bc§§ћљљћы§њћ§ў§ў§ўў§ћћњ§ћ§ћњњћћўњјјљњћљјљљјњјћ§ўў§хљєэщЪ§ћ§§ћћ§ћ§ћ§ћ§§њћћњњћћ§§њї§ћ§њњљћћњњћњўћњњјјљљњљњљјјў§ўўћіњ§њћ§§ўћ§ћћѕ§ћ§ћ§ћ§ћћњћћўњћћ§ўў§§№љјљјљњћљјјљљћљјљљјљтњљ§ўћ§ћњњљњ§њњ§ћњћћ§ћўў§њњљљњћћјњћњћћ§ћњњћљјњћњњљјљўњљљљјљћћњњ§§ўўћћќљњљњњјћњњљљјјљљњљјљяјљљњјљљїїјјњљљњљњњљћљјјњњ§§ќњћњћћћњћћљњњёљњљњњљћњњљњћњћљљўћњњўљјјўљјјїўјљљњјљјј§ћ§ћњњћ§іћ§§ў§§ћћњћћќ§ћ§ћћ§§њћћўњћћї§ћ§ћ§ћњјїїјњќјљјљљёњћњћњћ§§ћњњћњ§ћћ§§ћ§њњћёњћњћ§§ћњћњћљћњљљњљўњљљ№ћњћљњњћњћњ§ћ§ћ§ћћы§ћњћњљћљњњ§§њћ§ћў§ўћ§§ўњљљњ№ћљљјјњљњћњ§њћњњљљњљќјћћ§§ўў§ўў№§ў§§ћ§§ћћњњ§ћћњћћ§њ§ћљцїјњљћћњњљњљћњњљљјљњљњ§ћћњўўљћ§ћ§ћў§§ћћљћњћњњЦ§ћ§ћћњћ§њњћћљњњљљћ§ћ§љљјљњјљњљњљћњћћњњ§ћ§§ўў§ћў§ў§ћћ§ћ§§љјјіћњ§ћ§ћ§њ§њњћћњћњћћўњћћљњ§љњљљњэћњњљљјљљћћ§ћ§ћњњ§ћўўѕћ§§ћћњњљљњћћцњћћ§ћћњћњћњњљљњљњћњ§њњћњљњњњљћњћћљљѕњћљњљћћ§§ћ§§ућ§ћ§ћ§ћ§њ§ћћњћњњћњљњњћњћћ§њћњњћњўљњњіљћњћњљљћљћћўљћћљ§њљљћњћћњўљјјљјљќњљљћћљўњљљњ§ћњћћѕњљљњњћћљњњћћўњћћцњ§њњљњћ§ћ§њљљњњћњњљјљјњљњћћњћљњћњћћѓњћ§§ћћљљњ§ћћњњѓ§ћў§ўћћњћћњћ§§ѕћ§ўўћћњћњ§ћћћ§њћћ§§ђћ§ћ§ћњљљћћњўћњњўјљљњћњћћњ§ћ§§јћ§ћ§ћў§ўўю§ў§ў§§ћњћћњ§ћ§§ћћ§§ъћў§ўў§ћњћћљњњ§њњљњљљјљљњфћ§ћћ§§ћ§§ўў§§њњ§ћ§њћњћљњљћћњњјљјљљњљњљљѓњћњћљљњћњћњћњњћњљћњ§ћ§ћ§§№ћ§ћ§ћўў§ћ§ћ§ћћњћћюњћћњћ§ћ§ћ§ћћњњјљњћћїњћњ§ћ§ћњљљћч§ћ§ћ§њў§§њњћ§ўўћ§њћњћћ§§ўўќћ§§ўўш§ўћ§ћ§ћљљ§њ§ћ§ћ§§ўћ§ћћњћћњнћ§§њњћ§ћ§§ћњ§ћ§ћ§ћ§ћћ§§ћњљњћ§ћ§ћ§ћ§§їћ§ћ§ћ§њћњњљњїћњњљћњћћљљыњ§њћњћћњњћњћ§§ћ§ћ§§ћњњћнњ§ћћ§ўћћљњљћ§§њћ§§ћћњњљљјјљћљњњћњњљљіњћ§ћ§§ћћ§ћћя§ћ§ћћњљљњљњњ§њћћ§§їњћњћ§ћ§ћњњјљћљљњљњљљњюћљћњћњљћ§њ§§ў§ћњ§ћћ§њћњњћћ§њњљњњ§ћњћћѓљ§њћљњљљњњћ§њњўљћћћњћњћњњѓљњњћ§§ћ§ћ§ћћљљїњћ§ћћњ§ћњњщљјјћњћљћњњљњћњјјљњњћњ§ћћўљњњћ§ћњы§ћњљћћўћ§ћ§ћ§§ўћ§ћћњћћіњљњћњљћњњћћњћњњћћ§ћњњэћњћњћњћ§§ћњњћљљњўћ§§їњћћ§ћ§ћ§ћћњцћњ§ћћњћњ§ћ§ћ§ћўў§ћњњћћ§ћ§њњћїњљљњњљњ§њњ§ћў§§ћ§§ўђћ§ћ§ўўћ§ћ§њћћ§§љћ§њњћћњњѕ§ћ§ћ§ћћ§ћњћћёњћњћњњљњњў§§ћњћћыњћ§§ћ§ћ§ўўћћњћћ§ћ§ћ§њњўљњњ§ћњћћїњћњћњћњћњњ§§ћњњљь§ћ§ћћњљћ§ћћњњљљјњњ§ћћ§юћ§ћў§ћћ§ћ§§ўћ§њћњ§§ћтњћњћљјјњњ§ћњњћњћњњљњњћћ§ћ§ћћњћћўњћћњ§ћў§ў§§ѓўћ§ћћњњћ§ўўћ§§фћ§ћў§ўћ§ћњљњљњљ§ћ§њњћћњ§ћ§ћ§§љћ§§ћњћњњ§ўћћ§§ўњњъ§ћ§ћћњ§њћћ§њћњћћњћћњћљљђјљ§ћ§њћћў§ћ§§ћћў§§ўћ§§іћ§њњћ§њћћ§§љћ§ћўўћњњэћ§§њћљљњћ§ўў§ў§ћћњ§§§ћ§ўў§ќћ§§ўў§мњћ§§ћћњћњћћњћў§ўў§ћ§ћ§ћњљњћ§ћ§ћ§њћљњњ§ћ§њњ§нў§§ћ§ћњћ§§ў§ўў§ћћў§њћћ§ћ§њњћ§ћ§ўўћ§§ўћњњњћ§ћњћњњљљ§ћњљћљљјў§ўў§ѕћ§љњљћ§§ћ§ћћњ§іњћњ§ћњњћњћћ§§ћ§ўўјњљњњћњњћћњћљјљћ§§љњћњ§ћ§ћћ§шњ§ћ§ћ§њћњ§ў§§ћњћњћњ§ћ§ћњњ§ћ§ћћљћљћѕ§ћ§њў§ў§§ћ§§ћу§ћ§ћ§ћ§ћ§ћ§њ§§ў§ў§ў§§ћћљљњ§ћ§§ќћ§ћ§§єћњћ§ћњљњћњљњњњћўў§ћў ў§њћћ§њ§ћћю§њ§ћўћ§њћћ§ћ§њћћў§§ўћ§ћ§њћћ№њћљњћў§§ў§§ћњ§ћўўќ§ўћ§§ўћўўё§ћўў§ћ§њћћў§§њћћђў§ўћ§њћћ§ћ§ћ§ћћўњљљіў§ўў§ћљњљњњіљћ§ў§ћ§ћўћћќў§§ћћћњћћ§ћћњќљјњћћ§юћњњћњўћ§њ§ћћ§§ћњћ§§тћўћћњћњ§ћћљњњ§ћўћ§§ў§§ћ§ћћњњћњњљ§њћњњщћњњљњћ§њћћ§њњљњ§§ўў§ўў§§юћ§ћўћњњјљљћ§ћўћ§§ўў§ћњњћњ§ћ§§ћљљњњљћњћћњњћњ§ћўўљ§ў§ў§ў§§ўіћ§§ўћ§ћ§§ўў§њяћ§ћ§њ§ћњћ§ћ§њњћ§њњїћљњњ§ћњћўў§ўќ§ћ§ћћў§ўўі§њњљћњ§ћў§§сћ§ћћњ§§ў§§ћў§§ћ§ћ§ћћў§ћ§њњћ§ћњћѓћў§§ћ§§ћ§ў§ўћћћ§ћ§ћўўЩк‚NMHgnwN+&F&-$27(>#A[JIQOSUbG"B]|ŸЌдсйёљљ§ў§§ћ§ћў§ў§§ћћћўћ§§ўўдŽSbe\OOhiNMUB441.5LHeŠOTjn§§ћ§§ў§Эћњ§љћјњўўзo9?>AOYbM?JG@?,9]eQMEBJVBBIGOGTJYazqOraћ§§ўёћў§ў§ўћўћ§ћ§ћћўўЪљЅœeeoV[WQLHI9FG]]P<9GJ7NuZCNLJOSWmV;Q`U5<;BAAіE&&?Iћ§ћ§њњ§ўўњњѓўћћњўћ§њћњ§љўўзц‚IS[aZSLHEI<A1+;CGћ§ў§ћў§ћћўў§§ўў§§їўњ§§ўћћњўўйФtEVwYJWe`\YVMS[Q@ALLG?3>9;05>8Ai§ўў§ќў§ў§§іў§ўћ§§ћњ§ћћќњћћўўшь˜netjY]YTHYV[SSQOTmG7@JQN@228GJNM@FIBNG;,(&AQPH^WHCPCPF?WM92)*$7;-4+,7OIE7;:87-(-8>L>E5Cqg`N0>po288IG3:B>LPY>LO%*N\W^P!5-301?C($).123*$:2&&#*F9)P4&028<04*&820BG8??5;NLdowS7:HP;07*?.1-03-,&$#)73,&%+%"(0,#,)2<.29704275?GE<>39?;1917921,$)-$#02&!+;033&-!#-+1934*37<\ggM0*#-)%"1*354>:28203+%,*5<&N8)*+,#%%!($$+&%":2!&-+%")0*+0,,.)1,*8:+7&-! *5-*+.30,*(#!+%!$$$Я0:G"$(2,30!""2++&,(+381.",+*7)*SA.),)9SSO?@50++€g-(&21($"03#!!(!0*"+*"#3.$!$"(!*L8IPmH081184(-.*$((3154!+WG #%*#(0)()4*%+$15HCW]‚„i.?B5+&**&23@15U<+*"$,&"*GmY>41 #(@GE:5J>B(,BMPMOSNI2(..-7,!15B7887>A2;??>:;0""0JZhT;3O@EJ(-@EJC4*2JLWgHCWA7;<>9,.803..!-(7::HA8(LWHBAJEC+@LLSpriq‹ŒЉЦѕС~„”‡‹omoZLIOZ{vFL:.7AL3!%8470915*9?CIBJI]`YULTF?Jbq~™ЇЪь§§љїœСћ§ў§§ЙєЭЩВЉЏ–Ѓ›}‰„]AH87;F<9k„ŽŽ|omr‘z}ЉЄpuЕЭдљћћ§ћїєѕїїјњ§эёћѕѓђђёєљћљ§§ћ§§єћљћпхлцхтхѓ§§ћ§ўљ§§ьћў§ћ§ўјјљљјјљћћ§ћјїљљѕ§єѕїїѕѕљјєђяѓѓєјљљујљњњїїљњјјїїљїїљјђѕїїњњїїѕљњјјѓњїѕњљєѕєѕѕљљњњ§јїѕѕќјљјѕѕїіјєѕјїљљѕєѕѕ§јљњњчћњњјљјћњљєѕњјњљѕѕїњѕєѕѕјѕѕїћјѕѓєѕѕўјѕѕіїњћјїїѕїѕїїєїјљњњјњњїјјўљїїњѕјѕѕљњњђјњњјњњїљїјјѕїљљњєјњњїјјїїјњљѕѕњјљљїјњњтјљљјєєѕјѕѕїїљїњјћљљћљјњњљїѕїјњњвјњљњјљњћћљћњјњјљѕєєѕљљњљѕєѕѕљїјїљѕїѕѕїѕљљїњјјћћїсљћћљѕјѕѓєєјїїљјћ§јјїљїѕјњњјїљљјјњўјїїіљїљљјњњїѕїїўјњњєљћћ§ћўў§њњјљљћїњњјњњћљѕєєѕѕљїјњљљ§ћћў§ћћљљњљљјњћјјњўјњњрјњјћћ§ћћљћћїјїѕѕїјјњјњїѕјљјїљљїћћєњїїјњћћљљћљњњќјњћјј§ћљћћѓјњћ§љћњљљїјћњњѕљїљњјјњјњјњњяјљїјјљїљјѕљњјјњїњњѓљћјјњјјѕѓјјњћћ§ћўљћћљщ§ўћњїњњљѕјјљјњјњљљњјњјњњяїѕѕєѓѕњњћ§§ћћњ§љћћ§§њ§§єљћћњ§§ћћњјјљљі§јїїљїїјњїїѕљњјћљћјњљїљљњ§јїјјќњћљњњїїљїљјњњћ§§§њћљљђћ§§ћљјјњњћћ§§ћћљўћњњќјњњћћќљњјњњјўљћћ§ўљћћ§ўћњїїњћљћјљјњњјўљїїјњ§јљ§§ўњ§§ќњ§ў§§ћњ§ўў§§ўњўўј§њ§јљ§ћњњљјћћјљћњњњѕјњћћјјљыїљњїєѕїїњћњљ§њњ§§њћј§§ў§ћјјїїѕњјјћ ћњућњњїїњњћљћњїѕїњћ§њћњљјњћјњјљ§§ќњјљћћїњћ§їїѕїљјјєљѕјљћљћјїїњјјєљјїѕѓѓїјјћљћћіњћљјњћљћљћћўљћћ№њєјїїјћћљћјјћњњїїјјњљљћјјћћњјћћјјїїѕјњњћљњ§§ћљјјѓњјјћјћњњљљћћљљњ§ёљћљљћћјїћћљћћљ§§юћјјћћјљјїјјћћљљєћљљўћњњ§ѓњ§њњ§§ўћ§§њћ§§сњ§§ўљјїњњјљћњћјїњїљїјјїњњјјњњїјјћљћљћљљ§јљћћ§њћљћ§њ§§ўўћўўћћўўћ§§ћљьћљћњјюѕїјјљћљћјћ§§јћћћњљљћ§§їљћњїїњїјљљ§јњћћћјїћ§ўў§ўѕћљћћљљћјљћ§§ћўљћћїљћћљљјћћњњјяѕјјњњћњћњ§§ћ§њћћјјљњјљћ§§њњўў§§чћљњњјћљљјћћјћљљћћљњљћћњљѕѕўљјјќїњјњњєјљјјћћјћљњњћћќљњњљљѕ§њљљњћћјјљћћјћљћљ§њњюїѕѕјћљћјјїњљљћћ§ћјјгњљјћљљћћљћћљћљјјњњјњјљћћљћљњјљћњјјћћњњ§љљјљїћћюњїњјњћ§ћћјјїњљљћ§ћћјѓњћњћћњјјњљћљћћњћўљћћ§љјњўјњњѕћ§ћ§ћљ§§љљћћњљћљљћ§§ћљфћљ§§ћўљјћћљљћћљљћљћјњјћћљјјњњќћїњћћ§ћњ§§њ§§ќњ§§њњї§њљћљњ§ћўўњћњ§ћћ§§ћыњјњњїћћљћћљћљљћљњљћћјјќїјјћћћњјћљћћљљћљћ§љћћћљћћњ§§ћ§ѕјњњєїёѕјјљѕѕїѕїљљћћњњјњњћ§ћїљћћљњјњњћћђљћљїљїјњњћћљњјјѕњћљїыїћљљјћћјќћљћљљќћљљћћљћ§ћјљћљћљљћњњ№ћјјћ§§ћћњњљјњћћљљћћјњјљљљњјїїјїјјћћљћњћљљљјїњјњљ§§ђћ§§ўў§§ћјћћњљ§§ђћјњњјёїїѕїјљћ§§ђњ§§љјћћјњїњјћ§§љћўљћћђљњ§њ§њ§ў§ћ§њћ§§њћљћ§ћ§§ћ№њјњјјїѕѓєјљјљјјћћќ§ћљћћ§ўњљљћ§љњ§§ћјљћћ§чїјћјћјїњњјњњїїјѕљњњљјѕњјњњўјљљјњћїћћљћ§§ўњ§§їў§ћљљћћљћћШљћ§њњ§ћљјљ§ў§њљјћљїѕѕњњјїїѕїјњњјјњјњјљ§§љљћћњњ§њ§ћљјћњ§ўўоњ§њўўћ§њўљћћјљїњћљљћљћ§§ћїћ§љ§ћјјћћљћќїћљ§§ўњўў§ѕљў§њћљљ§ўў§§щњћћљњїїєєѓѕјћ§њћјњљљћњ§§єћљћћњјјћ§ўўњњќљћљјјћќ§њ§ћћ§ёљ§ћўў§јјїѕєєњњћћљ§§њ§§ћ§јњ§ћњјњїћћћљњњљћћяљћћ§§њўўњћљћљњ§њћћђњїјјїїјїјћљћњ§§ћ§ќњ§§ћћѕ§јњјїѕїјћћљљќћњњћћдњ§ћўў§§љћ§њ§ћћљ§њћњѕјћћљћ§§љљћјјљљњњћњ§ћљњљ§§ћ§§љћ§§ўњ§§ќњ§њўў§ѕњљњ§ћћљњїј§§ћјјћљљћїњћћњћјїњњћћљ§ћћўўћўў§ќљћћ§§љ§љћ§§ўўњјјќњјјїїўјћћєљћїїјљћћјљїјјќїѕїјјвњјњћљ§њ§њњљ§§ўў§ћћљљ§§њўўћјєюѓєјјњјњјјљњјїјљћ§§ћўјњњјќњћјњњћ§ўњ§§ўњ§§њћњ§§ћўўє§љїєѕљњњјљјњњ§љћљљў§ўў§§њћћ§љћ§§ќњ§њ§§ѕњ§ћњћћљ§ўћўўўћўў§€FўёчтзРЏзыюцшщђђюьшчщыыђщщттхэьыяэђєёѓяѓћэцѕєѕїљюпЧВu^eTMQdbBLWPIœЉА™mŒЮшяёѓїўўѓухтцюѓєїшзпяўўутўўћчтѓўѕушѕнЗ™‚jb`hH29E>JMMJIONMCZ[YO+4agZSp|—ВСД—ˆДУаЕŸpŠŽonŒ•‘™•}xƒhh^\LCOO?GqTNLSPC?785.9@BJJ14…‘…m9#C+:?A4:@HFIJB>CHBG53!-(4?b[478;@CFEEGLEEQSJLFC?M[dMMW,1TgWeM$3808@EC5003--14#:94923(+2U@#7Q9-9@>;@:7838CJFBA>??GQnxwV49MP@8C*;>38:9451B2,1&2;39:.-;:289>A9-0%##&-34.99:;?:254-,#,8:@FEMH>;4>GE;>>870,+$*)*-57?>),+445<:2:<3.,**,+2.8?BBA;117.23-2779;B9>?@AG<05252&1710217>>775+39433,**(*24142+148><<8+2,+%,334-2038[teL4+--44++0+302;;441344Œ-+224%$0P?3+$11-,73*(&%(""%##%,1 &E: 01,&%*(*0023-)-*,,+15$(0&  )A5+0.-:988.0(,.(%!"!))*&0.-NQ;0*3E`UUJ@5((+472.*-&*.2+#"%&$+%##)&)()0,2,()*#+)#.70N@JQtC.278?9:812,,04;2755)%%%:\F%!)+-1700..(%&+5:CA]WƒŒr2%:A<5750.&7H-.Q@,1(&")&&(4Op\:F?AA-:524;7.,1?.0G>?9?<<9,@FBAHSN<-)GLOUQ[IA+2255*($&;9?B9:;;AA.%)8L^h\?2T>IP"%3:LF>5+8FN\jEB[NHA@B;3525.24,&2;><<>2NVL?EFC>+HSOYx~q}–‡ЊЪјУŠŸ‰‡ijq`JJWavMHA*>@L9$9950?3-&7CAFCLU\c]VQSEEOgzžДаьўўќјУўўдїбЯБЌД›ЂЁ~\;J27<@<5n‰’’vkqx˜~‡~‹АЎwzЛЯкњўўыљїјљљњљўяѓўјѕєєѓјћў§ўўіјпчпшхтцѕўўњјњћ§њ§њњј§љјљљѕњјїѕєѓѕєјњћћ§эњљјљњњљљјљљјїљјљљњљљјўљњњљћјљјљјјєљњљњљњјјїјїјјљњїјјїљјјьїјњљњњљљњјњњљјљјњњљјјљјќїјјљљќїјїјјўїјјўљњњљўјљљђјїјњљњљљњ§§њјљљ§јїјј§њљњњ§љњљљ§јљњњўљјјўљњњљїљњјєїјјљњљњљњјјїїѕјїјјљљјљљњћћѕњћњљљјљњљњљљьњљћљњјљњћћњљњљњјјїїјјўњјјіљњљјљљјјѕјјљњђћњћњћњћњћћјїјїїљюјњњ§§њљјљњњљљњљјјњњљўњљљљјљјјњњљљњёљњљћњћ§ў§ўћњљњјјљњљјїјќљњљћћўњћћњћќљјјњњљўњљљјњљњћњ§њћћюњћњљјјљњњљњљљјїјњћћњўћљљћњљћњћћљ§њљњњўћњњћћњњљћћјњљјјљњњљљѕјљјљњњљњљњљљѓњћћњњјљјїјјљњњљћњўљњњољњћњ§ћћњћњћњћћ§ўў§љљњјјїїјњљњљјјљњњљјїэјљљњ§ћћњ§§ўњћњћћ§ћ§§ђћ§ћњњ§ћ§њћљњњћћјњљљјљљњљљѕјљ§њћњњљјљјјљ§њљњњќљњћљљёјљјњљљћћ§ћ§ћ§њћћ§њ§ћћњљњљ§ћћњћњћћўњљљёњљњљњљњњћњћћљњљљў§њњє§ћћњћњ§ћ§ћћњњќ§ћ§ўўњћњњљљњњњћњњћњљљњўјљљњљ№њћ§§ћ§ћ§ћ§ћўћ§ћ§§њўћ§ћ§ўў§ћљњіћњњљњљњљћњњјљљјљљјјљљћћ§ћћ§§ѕћ§њ§ћ§ћ§ћ§ћћєў§ўћћњћњћњњљљњђћњћњћњћњћњљљњљљњўћњњљпњ§§ћљјњљњњљњћ§ћ§ћ§ћћњћњњљћћљљњљјњњѕјљњћњћћњљљњњєћњљјїїљњ§њћњњљљњћњљњћћўњћћіњћљћњћљњњћћњљ§њљћћ§љњћњњ§ћњњўћљљјњљљњћ§§ћћњўљњњћ§њњљћћўњћћ§ћўњћћњіћњћћ§ћ§ћћњњќћњћњњћўњћћўњ§§ўћ§§фћ§ўўћ§§ћћ§ћ§ћ§§ћњћљњњћњ§њ§њљљњњћљљњњљљњћћњћњћћљњћњћњ§ћћћ§ћ§ћўўў§ўўы§ўћ§ћ§њњћћњћњ§њљјљњњћћѕњ§ћћ§§њњћљћћћ§ћћњљљ§ћњћћћњљњћњњћщў§ўћ§§ўўћњњћћњ§ўћћ§ћћњћћўњћћљњћћ§њћљљњѕљњњљљћљћ§§ћћў§њњњљњћњћ§§ќўћ§ћћљњћў§њњћїњћћљћћњљјјњьљњњћ§§њћ§ћћљљћњњћ§§ћћњ§ћћ§ћњњќћњћњњё§ћњћћ§§љљњљњњћњњљћ§њ§њњќљјњћћњћёњћњћњњљљњљњћњњћћњљњћњљњњќћ§§ћћђњјљњћњљћљњљњ§њњћћњ§њћњњѓљћљњњљњњљћњћњњ§њўћњњєћњњћ§ћ§ћ§ћћњњљўњљљћњўћњћ§ћћњћїњћћњ§ћ§њћћўњћћљў§ћњћњћћцњћћњћћњљћћњћњњљњљћњљњћњћћ§§њћ§ћ§ћ§§ўћ§§јћ§ћњћ§ћўўћ§ћћњ§§ыњћљњљљњћњћњћћњћћњћљћњњўљњњцћњљњњћњњћњћњћњ§ћћњћњћњћ§§ћћќ§ћћњњљјњљјљњљњњћћљўњљљњяћ§ћ§њћњњћћњћљњљљњњѓћњћњјљњљњњћћњњћћљћљћћѕњћњћњћњњ§њћћќњћњћћљњ§ћ§ћ§њњћћњћњћћљёњћњњ§ћћњљљјњљњћћњ§љњћћћљњљљњњљћњћњљњћћљљњљћћ§ћћ§ќў§§њњић§ћћ§ћ§ћћњљљњћљљјљњћћ§§ћ§ћ§ћњњћњљњљњњћ§ћћїњћњћњћњћ§§љњ§§ћћ§ћћёњљњљњњљјїљїјњћњњ§ћњћћњќ§ћ§ћћњї§ћ§ћ§њ§ћњњьћ§ћ§ћ§ћ§ћљњњ§њњћљљњљљѕїјјљњјїљљњљљўњјј§љћњњѕћњ§ћ§ћ§ћ§ћ§§ёњћћњњћњћњћњћ§§ћћэ§ћ§ў§§ћњћћљїњљљњљљњњљњљљњљњћ§ћћўњ§§ћњћ§њ§§њў§§ћ§ўў§ўшћњњјљљњћћњћњ§ћћљћћўћћњ§њњћлњћњћћ§ћ§ћ§ўў§§ћ§ћ§ўўћ§њћћ§§ўћ§ћ§§ћњћљљрјњљњњ§§њњљћћњ§ћ§ћ§ћ§њћњћљњњћ§ўў§§ћњќћ§ћњњћщ§ћўћў§ўћњњљјљјљљћњћњћћ§§јћ§ћћњћћ§§сњљњљњћњћњћ§§ћњњћњћњћћ§§ўў§њћњћ§§ѓћњћ§љњњљљњћњћћћ§ћћ§њњ§§ћ§§іћњњћњ§§њњљљќњћњћћїњ§§ћњћ§§ўўћ§ћћњ§§њѓћ§§ћљњњћњћњ§ћћњћЬљњњ§ћњћљћ§ћ§ћ§њћћ§ћћњ§ћ§ћ§ћ§ћ§ћ§§ћ§ў§ўў§ћ§ћ§ћћњћљљњ§§ђњћћњћћњћљћњћњљљќњљљњњљћњ§ўў§ўўѓ§ўћ§ћ§ћњњ§ћ§ћћї§ћћњ§ћў§њњќљњњљљ§њћњњђћњћњћњњћћњњјљњњќљјљњњњљњљћћ§§јћ§ћў§§њћћх§ў§ћњїјѕїїњљњљњњјњњћњћњ§ћ§њњљјњљњњљњњљљњћљ§ћћ§§ћ§§ёћ§ў§ћ§ўў§ў§§ћљјјіњљњјњљњљљћћ§ўў§§ућњњћњћ§ћ§ћ§ћ§ћ§ћ§ћ§ћ§ћћљћњћћўў§§ўћ€ƒјлбЫРЄ•РалебсяёчзеЫгхыпцгШШЭамклщющшхёёјудхээцэщЫМЇreo]Sevp[\mhc‡”ЁЅa„Ърцхьэў§чЩгШбтэхыпЛТсёђЧШяўђкЯчѕђШбтзЎŽ‡whcnS>IWSUeaaW]bgG^bg\-4gn`[}ЏФЈ‡|ЎМеĘmˆ‹uv—˜’•ЃžƒtЉtgad\LW`OUhdgWUNbZab`\`eZh\OEA8Uedb~r]Yb\e\WmgQGB;5FG@@?CJi]TJWQMNI9CFMaWTGW’ˆ^CT‡QPQQTJPTOPSQLOachaVN:5LOYo|iP9MUYLPOYj^\m]SHJEEPNPYbT@C”ЉŸ|E5U@$5OT]F?HOV]UUMMI\WL@!+;8CMvkBJ@LSS`VN`Z[abaZZSMQcodckC?g}qa?NNVLWWQC@GFAHNH:JESGG<4CBZN0BdH9FLUPZM>BIOT^ZVPSLUeg‹–”mON`mSHVFOUQNOS[POGE?:4.LFLFGI>HCM>@:?8:GIMPJSQPHIPJUNGSQGE\I99G@3&IOOLMLNLQLMJQQIH8;?::@FCH7QGNJOQBHB9@?GJOV`aYLOJHQPSFOIIOLCGNLLJQMJL9;B934@9FCCAQBCJEEIHPTOILMCEL@<@GBF<<ћ5?EC??šPGIEGLF>EF>A;?FGFIACFGGAA?BALA7;#.AoOG@GA9<9?38;*5>8;A@A[L)3A@?@;441?@;??€ЦC??HHJB>9?:?I++I\FA:ALILLGM:>G@:?:9ABE>94B;??IG;FF<+:F&:;3<5:0F@E<7@>B8FO:4C3;A0EGnP^h‹^1NPNOOTHNSF><>GEIBOL<2+,12544,>QwZ"(4A8B>C?@G@C@AALA7J`‰wUVP\\LJFFNOH@IOS@G]\bMQQNA#23GZ]]YMc`S99.>LSEP80(,.#YiG#91Tn•›Л§§іўїѓїєјљћљњњїгњћ*15?828>8<120,+.$S…m:>*.95SJJe™Щь§ўћљїїёјњїєєїїњјњћљ§§њњєљўў§§њ§њњ§ћўўп5>1.*2&51+?MO0?OOVQSQ|Ас§ўўјњјјњћћѓљњјїїјјљњјћњўўц§њњўBE?*.,7<1.25>I3S@::U„Эє§ў§ўћћ§§њњљњјјћ§§јњ§ћљљ§њ§§љў§њў§§ў ўц§њў>$5GPELSpУћ§§ћѕјњћњњљћљљєћњћћљјњ§§ўўњњ§њњ§ћ§њў ў§і;FY]Zp‘Їу§§ћљјјњћћњўљ§§§ћљ§§ўљћўўћўћњњў§ўўўћў ўљћvЕзє§§љњљѕњљљћћіњјљїњљњ§ў§§њћњјјњјј§ўўћўўўћўў§ўўћ§§єћјљњјњњјјїњћћ§ћљћљњ§§ћћ§љћљ§§ўњў ўўћў ўљ§љљјјћњњљћћљћљћћ§йњћљћ§њ§ўў§§ћ§њњў§ћћњњўњљўў§љћ§ћћўўњ§ўћўўўњїїјѓћ§ћћљ§ўћ§ћњњљљ§ћљћћ§љјћћйїјћ§њ§§ћ§§њ§§њћ§§њњћћњњ§њњўћўўћјњјјњњљћћљћјћ§§ўўѕ§ћћ§њћћњјћ§§ў§ћњўўњўўљћў§§ў§ўўўњћћ§љћљјјњїћћї§ћћјњњ§њўўћ§ўћўўћўћ§њљћћ§тљћћ§њљљњ§ўўљ§јћћњјњјљјћљћћјјљ§§ћћљјњљљ§ѕњћћ§§њ§ўўњўўњјљ§§њњ§њ§§ў§њћўўэјњљѕѕїјћћ§љћњћ§ћјљ§§§њљћћўљ§§їћњїїјћљ§ўўњњў§њњўўќћўўњњљјњћћљћ§§ўњћћ§ў§ќњ§§ўў§ўў§§ўўћўўч§ўўјїїјњљћњћћ§љљћњћїїјћћ§§ёњ§§ўўњ§њњ§§ћћ§ўўќ§њ§ўўўћўўѕћўўњљћљћћњјјћі§њ§љљћјјњћћќљћћљљќ§њ§ўўјњљњ§њ§њ§§ўўћўўўћўў§љћ§§њњћ§§ћѓ§њ§њ§§ћћљћљћ§§ўє§љљѕљљ§§ў§њћћљ§јњўўђ§ў§§ћљљњїјћ§§ћћ§ўљ§§љњ§§њ§§ўў§њўљћўў§§љћћљјћљў§љ§ћ§§ѕњћћљћ§§ћјјљљў§ћћљњљћћ§њўўўћ§§ў§ьў§§ўўћўў§§њ§љ§§ћћ§њ§§ђїњ§ћћљњњљћћ§§ўўќћўў§§ўў§§њћўњ§§ћўћўћўўў§ўўўћўўјњ§њўћўў§§ќћљљћћўјљљ§§ўћўў§єљ§ћњ§ўњ§њ§ћўўњ§њ§§ћў ўя§ћ§љњ§ўўњћћ§§њљћљљјљћ§ўњ§ўўў§ўўєћўўћ§љјљћ§ћўў§ўў§§эћљњћљњ§§ћћљљћћјљљј§§њў§ўў§ћўћњљћћ§§ёў§§њўњњ§ћњїїњћ§§њњћўўћ§§ўњ§§њћљ§ўћў ўўћўўћљ§њњ§§љј§ћљљњ§ћўўєћў§§њўћ§ћў§ўўїњ§§ўў§њљўўјћ§ћћўўћўўћћўўљћћў§ўўєћўћњњ§§њљћћ§§ў§ўњ§§§љћљљђћ§њ§њњљјѕњћ§ў§§ўїћњњў§ўћ§ћћ§ў§ћў§§њўљ§§њ§њњ§љњ§§ўўљћњ§§ћ§ўў§ќљј§ўўўњ§§ћўњ§§§ўћўўјћў§§ў§§ўў§ўњњљћћњўћћўєћў§њ§§ћљ§ўў§§ќў§њ§§ўћўўўћўўўћўўљћў§§њћўў§ўќћўњљљўћ§§ћњ§ўў§§ќўћў§§ўћ§§ћљћњ§ў ўўћўўћў§ўўњ§§љћњјјћљћћќљњћўў§ўј§њ§§ћ§§ўў§њћўўћў§§ўўћ§§ў§ѕћјјњћљњњјљ§§ўњѕ§ћљљ§§ћљ§§ўў§ћў§§ћњ§њњ§§ў§§њўў§ќћљћ§§јћљљћљћї§§јћљљћљћњ§§їљћљ§њљ§њ§§ћыњ§§ћљћ§њ§ћјћћљ§ћјњїњћћњљ§§ўў§§ћўљ§§ќњ§њ§ §ћњўўћўў§§ўњ§§ўєћ§§ћ§§ћјљњ§њњ§§њўўќ§њњўўњўѓ§њњ§љљ§ўњћћњ§§ўўћўў§§ћўњњ§§њўўњњћјћ§ўў§ћњ§§њ ўѕћў§јјћ§§њћў ў§ћ§ўўњў§ўў§§њћћњљ§њћћ§§ўњ§§ўўћ§§§љ§ўў§ўьњљљћљњ§§ўў§§њњ§§љљћ§§ћ§ћў§§ћўўў§ўўљ§ў§ў§ёњљљјїѕїјћ§§љљјћћў§ўўяњћћ§§њћљћћљћљљћ§ўў§ўўњ§§єћўћњ§§љћћњљ§§§ћјљљќ§њћјјћњјљћ§§ьњ§њњ§њўўњ§§љћћљћћ§§ўўњ§№љњ§ў§њљљћљ§ўћ§њ§§љ§ћљћћї§ћћљћљњ§ўўќ§њћјјћљњљћ§§іњ§§ўљћћљћ§§ўў§ћћўљ§§ўњћў§§ў§§ћљћ§§ћћ§ў §їћ§њ§ћїјћ§§ўњ§§ћњ§њњўўњњ§њњ§ўў§ќћўў§§ўў§ўўї§њ§њў§§ћ§§ћѓ§ћњјїјљљ§§ўћўў§љњ§§ћ§§ћћїњ§§љ§§ћ§ўўћїўћ§§њ§§њ§§ўў§§љяј§§ћћљћљћљ§љјїјљћћјњ§љћћјћ§ §ќњ§ў§§њў§ўў§ўќћўў§§§љћ§§ўљ§§ў§ўћўў§ўњ§§њњћњ§§ўўўћ§§ўљ§ћљљ§ћўўњє§њњ§§њ§ћљљ§ўў§ћј§њњ§ўў§њњћ§љ§њ§§їў§§њ§ћ§§ўў§ћњ§§ўћўўјћњўў§§ћўўњѕ§ћћњњјљћњљ§§ўњ§§ўўћўў§ћ§љљћ§јњ§§њњ§§ўў§ћљћљћ§§јћў§ћљњљћћњњ§§ў§ўўќ§ћљ§§їњў§§њ§њ§ћћ§љјћћ§ъњ§§ўўћћўў§њћљћјњњћўњ§љљћњ§§њ§§ћљ§ўў§§љњћљїњњћћљ§ћљњ§§ћјјљљњћћњ§§ўўћ§љ§§ўў§§ўћ§§ў§§њ§§ўћ§ћћљћћќ§љњ§§ьњ§§ўў§њ§§ћћ§§ў§§ћљљ§§љ§ћњ§ћў§§ћў§ўў§љў§ћћўў§§§њљћћї§ўўћўў§њ§§ћєњјјћљћћ§§њњ§§їљћћ§љћћ§ў ўї§њ§§њњ§§љљшњ§љћћљљјїљћћњњћ§§љћњ§§љўўЮU}…:*1;;<5,)&7?::1@HBP;.-,,"&1PM&&CB33MhZTЄатўўў§њњўљћћ§бћ[„x*33025<9738>@455HNIL9%%,--&]wJ!0E2T{ЁЅТўўѕљјљћњћњћљњљљње.45>:+*.;@:9<37-&.:@@5220387GJUU№4LОњўў§ћњњ§њњјњњќћ§§ћћ§ў§ћ§ўф<:0.473)#*Sc& ).?B;EQ;A4,.258<@EBAIEVzЊмўў§ћњљњњљњњњљњњ§ћ§§ўњ§§ўћћ§ћ§њ§§њћ§ћ§§ўўя%"&4<>80*%5IGLPQwШ§ўўњљљњљљћњћћњўћ§§іћў§ў§§ћ§ћ§§іў§§ў§ў§ў§ўўд§ўћ§ћ§ћ:I^dax˜Џрўўћ§ћњњљњћњњљћћ§ћ§њћћ§ћ§§ў§ўўћ§ў§ў§§§ў§ўўќ§ў§ўўѕ§ў§ўўxМсїўўќћњљћћњщљњјљљћ§ћўћ§ћћљњњљњњ§§ћўўў§ўўі§ў§ў§ў§§ћўўњојљњљљњњћљњњћњ§ћћњћ§ћћ§ћњњ§ћњћ§ћ§§ўўў§ўўў§ўўќ§ў§ў ўћњљћіњћћ§ћ§њћњ§§ў§ўњ§§§њћ§§њў§ў§§ћћў§ўћўўљњћіњћћўў§њљљћћњњћњћњћћьњћњћњћћ§ћ§њ§ћ§ћ§§ћћ§§ў§ќћ§§ўўњљјћњњћњћњћћћ§њћ§ўўх§њћћ§њњљњњ§ћ§ўў§ўћ§ћ§ўў§ў§ўўф§ў§§ћўћў§ў§њњћњ§ћ§њћњњљћњћњћћњљњћ§ўў§ў ўў§ўўд§ћњњћћ§ћњњ§§ћћ§ћў§ўћњњћљњљњјњњћњћњњћ§ћ§њћњљћћљ§ћ§њћћ§§§ў§ўў§ћ§њћ§ћ§ћўўў§ўўњ§ў§њљјјќљњњћћюњ§њ§њ§ћ§ћ§ћ§ћ§ћ§ћњњїћў§ћ§ћћњљљњ§ћ§ўў§ћў§ў§ўўљюњљњљћњћњ§ћ§ћ§њћњћњњї§ћ§§ўћ§ћ§§ўћўўђ§ў§ў§§ћўћ§ћ§ћўўњ§ў§ў§ўўыћўўњћљњљћћљћњ§ћћњ§њћњњщћ§ћ§ћ§ћ§§ў§ћ§§ћћњњћў§ў§§ўў§ўўј§ў§ў§ў§ўў§ћ§њљњњћў§ћћњјљћњћћњњћћ§§ћўў§іў§ћ§ћ§ћ§ћўўў§ўў§ћ§ћњ§ћ§њњћј§ћ§ћ§њњћћє§ћ§ћ§ћў§ў§ўћћў§ћћ§іћњћњњћћ§§ўў§цў§ћњћћљћ§ћћ§њћњ§ћ§ў§ћ§ћ§ћ§§№ћ§ћ§§ў§§ћ§§ў§ў§ўўњћ§ћћњћћшњў§§ў§њћћ§ћ§ћ§ћ§§ћњћњ§ћњњћў§њњљ§ћћњ§§ўўќ§ў§ўўѓ§ћ§ћў§§ћўћ§§ўўќ§ћ§ћћњ§ўўћ§ћћёў§§њњћ§§ўњћћ§§ўў§§ћ§§ќћ§ћ§§њ§рћ§§ў§ў§ў§§ўў§ў§ў§§ћ§§ў§ўћ§ћ§њћћњњў§ћћћ§ћ§§ўў§ўћ§§ћћўћњ§§љћ§ћў§ў§§ћ ўь§ўў§њћћ§ћўў§њћћ§§ћњћћ§њ§ћћўў§§ў§§ў§§ўю§ў§ў§ў§ўўћћ§ћњћў§ўў§§ћ§§єћ§њћ§ћћ§ћћњћћњћћ§ћ§ћ§§ўћўў§ћ§ўўђ§ў§ў§ў§§ћњњћћ§§ўћ§§ўњљљћ§їў§ўў§ћ§ћ§§ћљ§ћњћ§§ўўў§ў ўњ§ў§ўћ§§§ћ§ћћѓ§њћћ§ћў§ў§ў§ўўў§ўўіћ§§ўў§ўўћўў§§ћў§§љў§ў§ўћўўќ§ў§ўўў§ўўўћњњў§ўўў§ўў§эћ§ћњњ§ћ§§ўћ§§ћ§§ћњћћяњћ§ћ§§ћњњљћћўћ§ћўў§§ў§§ўўћњњћ§ћў§ўўќћ§ћ§§ќў§ћ§§ќћ§ћ§§ћ§їћў§ў§ў§§ћћўћў§ўў§ћћ§ћћњњљћ§§ћ§ћўўќ§ў§ўў§ёћўћ§§ў§ў§§ћ§§ў§§ћћњћ§ўўї§ў§ў§ў§ў§§цћњћ§§ўћ§ћўћ§ћ§ћ§ћ§ћ§ћў§ў§ўўќ§ў§ўўќћ§§ўўљ§ўћ§ћ§ўўј§ўћћњ§ћ§§ћўћ§ћўўѕћ§ћ§њћћ§ћњ§§їў§ў§ў§ў§ўўќ§ў§ўўэ§ў§ў§§ћў§ў§§ћ§ћ§њљњњщћњћњћў§ўў§ўћћ§ўћ§ћћњ§ћўўњ§ў§§ћўўњћ§ћ§§ўў§ћ§ћћўэ§ћ§ћћњњљћћњљ§ћ§ћ§§ўў§ћѓ§њћћ§§ў§ў§§ћ§§Жћ§ћ§ћў§ў§ў§ўћ§§ў§§ћ§њћњ§ћ§ћ§њћћњћњў§ћ§ћ§ћ§ћ§њћћњћћ§§ћ§ћњћ§§ўћ§ћ§ћњњ§ћ§њћњ§§їњ§њћћ§њњљљњћё§ћў§§ћ§ћћњћћ§ћ§§ѓћ§ћ§ћ§ћ§ћ§ћ§ўўр§ў§ўћ§ћ§ћ§ћ§ћў§§ћ§§ўў§ћњћ§њњћ§ћ§§їў§ў§ўћ§§ўў§ўў§§ћєў§њћ§§ћ§ћў§ўўќ§ў§ўўї§ћ§§ћ§ўў§§ўъ§њњћ§ў§ў§ў§§ћ§ћ§§ў§ў§ўўў§њњ§§ћўўў§ўўў§ўўњ§ўў§ў§§юў§ўў§§ћњћћ§§ўў§ћ§ћћ§ќћ§§ўўў§ўў§ћ§ћћў§ьћ§§ў§§ћћњћ§§ћў§§ћ§§ћћі§ћћњ§ћўћ§ўўўћўўў§ўўћъ§ћў§§ћў§§ћ§ћћњљјљњћ§§ћћќњћћўўс§ћњ§ћ§њћњћћњћћњ§ўў§ўћ§ћў§ў§§ћ§ўўя§ћ§§њњ§ў§ћ§ћ§ћћњћћ§њёљњћњ§ћ§ћ§ћ§ћ§ћ§§ўн§ћ§ћњњћњћћ§ўў§ў§§ћ§ћ§ў§ћўћ§ћћњћћўў§§ћћ§ћ§ћћўњћћћњћњћ§§њў§ўћ§њњфћљћњћ§ћћ§§ћўўћњћњ§ћ§ћў§§њћњћћюў§ў§§ћўћ§ћћњ§ћћњњћћ§ёў§§ћ§ћ§ћ§ћ§ћћњ§§ыњћњњћ§ћ§ћ§ћ§ћ§ћ§§ў§ў§§ўћўўь§ћ§ћ§ўў§§ћ§ћў§ўћў§ў§§єўћ§њћћ§њћњ§њњљћњћћ§ћўўќ§ў§ўўэћ§ћ§ћ§ћ§њ§ћњњћњ§ћ§ћћ§ў§ўўў§ўўўћ§§ѓћ§ћ§ћ§ћўћ§ћ§ћћњ§ћћњњћћћњћ§ћњњћљњћњ§ћћњњћї§ћ§ћ§ћ§ћ§§ќћ§ћ§§ѓў§§ћ§ћў§ў§ў§ўў§§ћ§ћћё§ћ§ћўћ§ћ§§ўћ§ћ§§ќћ§ћўўќ§ўћ§§іћ§ћ§њ§ћ§§ўўќћ§ћўў§ђњћћ§ўў§ў§ў§§ћ§§ћћ§ћњћћѕў§ўў§ћ§њћћ§§ўўћ§§єћўћ§ћ§ћ§ћўћ§§Ъў§ћў§ў§ў§ў§ўў§ћ§ћў§ў§ў§ў§ўў§ћў§ў§ў§§ћћњњљњћћ§ћћ§ћ§ћ§ћ§§§ћ§ўўћњњћњ§ћ§§ўћ§§ўћўў§§ўћћўњћћы§ћў§§њћљћњћњћ§§ћўћў§ўўіћњћ§ћ§§ўћ§§їњћњћ§ћњћњњљ§ћ§ћ§§ўўђ§ўћ§њћњњљљњў§ћћ§§ћ§§ћ§ѕўћ§ћ§њћњљљњњћі§њњ§§ћћњњћћљљћ§§ћў§ўў§шћ§ћў§ўћ§§ўћ§ћ§§ў§ўћ§ћ§ћўўћ§њћњњї§ћ§ћ§ћ§ћ§§§ћў§§ёћњњ§ћўћ§њћћ§ћ§ћћ§§ћ§§ў№ћ§ћњњ§ўў§ў§ўў§ћ§§ў§§ўћћ§љћњћњњћўўіћ§ћ§ћ§њћљњњћќњ§ћ§§юћ§ћ§ћћњњћћњњћў§ў§ўўћ§ў§ў§§ўћ§§ћ§ыўћњћћњњћњћљњњ§ћћњ§ћ§ўўЮbŒœ[+OJHPTJAF@GPPGOGOMZOB@;C77F&F>@QTMHGMUTMELYE5;?4F@>9?Pewr[cQmjzШўў§ћљњћћ§ћў§§щў§ўћ§QE>>@MFIPPEGJ@IGFCCьGE-4bž‚SMGONgbGCЛжўўћў§ћћќ§ћў§§ћў§ў§ўўлVrJHIJNJNF?FPOHG?ECFJ40:k…o}dg~kЌгћўў§юћ§ўў§ў§ў§ўў§§ў§ў§ўўрMPVQNL4H@@EEPWIFI?>9^Yj‰{e\VZgАўўћ§§ўћ§§§ў§ўўо§ў§ўUOMHCPGABIIONLFEICQN[aaoiG^—Яўў§ђћ§ћўњ§ћў§ўћў§ўўў§ўўфMAEIBJ;9:9g{@#@QUWZ\eFLjr{дўўтљјјћљ§њ§њ§љњћў§ў§ў§ў§ў§§ћў§ў§ўўхFGGAB@:>AHeˆ`2LSZULq^a|Алњўўэ§њ§њћћ§љћљ§њћћ§ћў§ўўў§ўўќ§ў§ўўчAH;@;LBCGIVpeFYtihkmj•Юљўўћ§§ћ§§ѕўњўћћ§§ћў§ў ўц§ў§ўIEёBFLPJH9LSnodxхўўя§њўћ§ћў§ў§ў§ў§ў§ўўо§ў§ў§ўћ§§ў§ў§ў§ўћ§§ўO:5HH\mPCB]–цўўљћ§§ў§ўћћэўћ§§ў§ў§§ћў§ў§ў§ў§ўўў§ў ўѓ§ўW9Chdebgˆкўўћњћћ§ћћўў§§ўњ§§§ў§ўўєњў§ў§ў§ў§ў§ў ўђ§ў§ўNdv|oŒЉУяўўё§ўћўћўћ§њћћў§ў§§ћў§ў§ў ўќ§ў§ўўћˆЃЭюўўљ§њћћ§ћ§§јћўњ§ћ§§ўў§§ўћћўўћћ§ўў§ўўќ§ћњћћёўћўћћ§§ћ§§ўћ§§ўў§§ў§§§ў§ўў§ќўњ§ћћ§єћ§ћўћ§ћў§ўў§§ћў§ўў§§їў§ў§§ћў§ўў§ўћўўў§ўўљћ§њ§њ§ћћћўћ§ћўў§ћ§ўћ§§ёћ§§ўћ§ћ§ћўћў§ў§§ѕў§ў§ўћў§ў§ўўќ§ў§ўўћ§ћњўћћ§њћ§ћ§ћ§§§ў§ўў§єћўў§§ўћ§§ў§ўўќ§ў§ў ўў§ўўїњ§ћ§§ў§§ћћіўћ§ћўћўћўћћ§ў§ўў§ћћў§ў§§ћўћ§§ўўћ§ўћ§ћћњ§ћ§ћ§ћћ§ќў§§ћћ§їў§§ћў§ў§ўўњ§ўћў§ўўќ§ў§ў ўћіњћљ§ћ§ћўћ§§ѓћ§§ў§ў§ў§ў§ў§§њћў§ў§ўўћћ§њў§§ўќ§ў§ўўћўњћћ§іў§ў§§ћ§ћў§§§ў§ўўњ§ў§ў§ўў§ўќ§ў§ў ўљњћњўћ§ћћ§ђћўњ§§ў§ў§ў§ў§ўўњ§ўў§§ўўќ§ў§ўў§љћ§ћ§ћўћћј§ћў§ўћ§ћћ§§ћ§§њћ§§ў§ўўі§ў§ў§ў§ў§ў ўљ§ўћў§ў§§ўў§§љћў§ў§ў§§іћўћў§ў§ў§ўў§§ў§§їў§ў§ўћ§ћ§§ўо§ў§ў§ў§ћћ§ћў§§ћ§§ў§ў§ў§ў§ў§ў§ў§ў§ўўќ§ў§ўўц§ўћ§ћ§ћ§§ў§ў§§ўў§ў§ў§ў§ўћ§§љў§ћњ§ћ§§ќћ§§ў ўќ§ў§ўўў§ўўў§ўўј§ў§ўћў§ўўў§ўў§љў§§ћў§ўўю§ў§ў§ў§ў§ўў§§ў§ў§ўўў§ўўќ§ў§ўўњ§ў§§ћ§§њћ§§ў§ўў§§ў§§ўј§ў§ў§ў§ўўў§ўў§ќў§§ўў§ћћў§ў§§їў§ў§ћћў§ўўў§ўўў§ў ў§§ў§ўўю§ў§ў§ў§§ћўћ§§ўў§ћ§§ўў§§љў§ў§ў§ўўў§ў ўъ§ў§§ўў§ў§ў§ў§ў§§ћ§њћћўўў§ўўј§ў§ў§ў§ўў§§ў§§ўі§ў§ў§ў§ўћ§§ўў§ўўў§ўўў§ўўў§ўўўћў ўўћ§§ ўќ§ў§ўў§§ў§ўўќ§ўў§§ѓў§ў§ў§ў§ўњћћўўў§ўўќ§ў§ўў§§ў§§ўі§ў§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўўќ§ўћўўў§ўўњ§ў§ўћ§§њћў§ў§ў ўў§ўўў§ўўќ§ў§ўўњ§ўћ§ћў ўћ§ў§ў§§ўў§ўўі§ў§ў§ў§ў§ўўў§ўўќ§ў§ўўї§ћ§§ў§ў§ўўў§ўўє§ў§§ўў§ў§ў§ўўў§ўўю§ў§ў§§ћўћ§ћ§ћ§ћў§ўўў§ўўў§ўўў§ўўќ§ў§ў ўў§ўўћ§ў§ўћћќ§њћ§§§ў§ўўђ§ў§ўћ§§ў§§ћў§ўўє§ў§ў§ў§ў§ў§ўўў§ўўђ§ў§§ћ§§ў§ў§ўћ§§ѓў§ў§ў§ў§ў§§ћ§§љћў§ў§ў§§јў§ў§ў§ў§§ўў§§ўў§§ўћ§§ћјњў§§ћ§§ўўф§ў§ўћ§§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўўј§ў§ў§ў§ўўќ§ў§ўў№§ў§ў§§ћ§§ў§ў§ў§ў ўў§ўўњ§ў§ў§ўў§њћў§ў§ў ў§§ў§ўўќ§ў§ўўћ§ўћ§ўўњ§ў§ў§ў ўњ§ўћ§§ў ўў§ўўќ§ў§ўўј§ўћ§ћ§§ўўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўј§ў§ў§ў§ўўў§ўўі§ўћў§ўћ§§ўўў§ўў§ўў§ўўє§ў§§ћћњћњўћ§§њћўћ§ћўўѕћ§§ў§§ћ§ћў§§§ў§ўўў§ўўќ§ў§ўўћ§ў§ў§§јў§ў§ў§ўћћє§ћў§ў§ћћўћў§§ѓў§ў§ў§ў§ў§ў§ўў§§ў§§њћ§ћў§ўўј§ў§ў§ў§ўў§ќћ§§ўўљ§ў§ў§ў§§ђћ§ћ§ћўћў§§ћў§ўў§ћљ§ћ§§ў§ўўў§ўўўћ§§§ў§ўў§ќћ§§ўўў§ўў§§ў§§ћўћ§§ўўў§ўўъ§ў§ў§ў§ў§ўў§§ў§§ћў§ў§ўўј§ў§ў§ў§ўўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўў§ўў§ўћ§§ћњћћў§§ ўљ§ў§ў§ў§§ѓў§§ћ§§ў§§ўўћў ўќ§ў§ўўќ§ў§ўўј§ў§§ћ§§ўў§ўћ§§ѕћўћўћ§ћў§ў§§ћў№§ў§ў§ў§ў§ў§ў§ў§ўўў§ўўќ§ў§ў ўі§ў§§ћў§ў§ўўќ§ў§ўў§§ў§§§ў§ўўє§ў§ў§ў§§ўў§ўўў§ўў§ўі§ў§ў§ў§ў§ўўі§ў§§ћў§ў§ўўў§ўўј§ў§ў§ў§ўўњ§ў§ў§ў ўќ§ў§ў ўў§ўўш§ўћ§њћњ§ћў§ў§ў§ў§ў§ў§ў§ўў§ђћ§ћ§§ў§ў§ў§ў§ўў§ћўћў§ўўє§ў§ў§§ћ§ћў§ўўњ§ў§ў§ўўђ§ў§ў§§ћ§ћ§ћ§ћ§§ћў§ў§ўў§§ћ§ћћў§ўў§їў§ў§ўў§§ўў§§ў§§ќўћћ§§ўў§§љў§ўћўћ§§§ћўћћ§ў§ўў§ўў§ўўќ§ў§ўўќ§ў§ўўўћ§§їў§ў§ў§ў§ўўћ§ў§ў§§ў§ўў§§ћў§ў§ўў§§ў§§ўњ§ў§ў§ўўј§ўћ§ћ§§ўўљ§ў§ў§§ћћ§ѓћ§§ў§ў§ў§ў§ў§§ћўћ§§ў ўќ§ў§ўўщ§ўћ§§ў§ўћ§ћ§ћў§§ћўњ§§ў§§§ў§ўў0џўˆ ,џўˆџќˆˆџ џўˆџўˆўˆџџўˆџўˆўˆџџўˆџўˆ)џўˆ*џўˆ+џўˆ,џўˆ- џўˆ0 џўˆ1џˆ4џўˆ8§џˆ }њ§ћљјћљљўћљљПћљјјљљћљ§њўљћљњљњ§§њњљ§§ўњњћљјїјјњјњњѕђѕїѕєѕјёцсллйб§§њ§§њ§ћљћјћ§§ў§ўэћ§ћљћћ§§њ§љїјїїєєїјјќїђѓєєщёьччхсхћћњљ§ўћўњњ§љљћ§ўўэћ§§њўћ§њћљљћњ§њ§њљ§§ћјї§јїјјљљѕѓёёђўўўљњњ§§ўћўўќ§ћјљљњўўљ§§љћљ§љљћљћљљћ§њїѕѕўјўўљћўћўћћўўїњ§њ§њ§§њўўїњ§§ўћўћњўў§ўў§§ѓњ§ўў§њљјјљћјћћњјїјњћўўќ§љљ§§љњўўћўў§§ѕљњ§§љјїїљ§ўўћ§њћ§ўў§№њўўћў§љћ§њћјњјћ§§ўќћўћўў§ўњўўўћ§§ћђљ§§ў§њўўњњ§њњћћљ§њ§юњ§љљћљљћљў§§ўўћўњ§§ёљ§§ћњјњћћ§§њ§§ћћњќјћјљљ§јљ§§ўћљљћјљњўў§њљћћыљўўћћўўћњ§§ўўћў§ћћ§§ћћњђ§њњ§§њћјћћљњ§љљјњ§њјјљ§ћћіјћ§љљњ§§ћ§§ўћўўўћўўўћўўњ§ђјћ§§њјћћ§§љј§ўўї§ћјїљљњ§њњ§ѕњљ§§ўўњњ§§ўў§њў§ўў§§ћ§§ќњ§§ўўљћў§§ћўћћўўћўўљњјљњћњўўўћўў§єћљњјїљњ§њў§ўўћћ§§њ§§њ§ўћ§ћљњўўњњўћўћўўўћўўў§њњћћў§ћљљ§њѕ§њ§њўўћўљљњњљјњјљљњ§ћўўњ§њњ§§ўўўћў ўѕћљћћљћљњћњўўћњўњљљ§ўўё§њњ§њѕюѕћ§ўћўћўў№њ§ћћ§§њћўўњњ§љљўўќ§ћјўўўћўўћє§ћћљѕюњ§ўўћўўўћўўў§ћћјў§ўўњљў§§ўўћўўњћўћўјўўј§љєђљ§ћўўўћў ўўћўўљњ§ўћўћўўќ§њћўўўћўўћћљѓљ§§ўўћўўњњ§ћўћўўўћўўэћњњ§њљњћў§њљўў§§њ§ўў§ћњўўѓ§љєїљњ§љћћ§§ў ў§ ўўћўўѕћ§ўўњ§њ§њћўў§њ§ўўё§јѓэѕљљњ§њўћўћўўўћўўјћўћўўћћўўўњў ўћ§ўљўўѕћўњ§ў§њѕњ§ўўћўќњћњўўћўћћњ§§ўўћ§њї§ўў§њћў§ўўњ§§ўњўўћћў§§ўўњњўўњћўў§ћљўўўћўўў§ћћ§љћў ўњ§§њўўўћўўўћўўњєћљњ§§њ§ўў§§ўўѕћў§§ћћ§љјєўўўћўўћ ўћ§њўћўўћўњњўўњ§ўў§ќљ§ћў ўўњ§§ќњћ§ўўћћњўћўўўћўўўћў ўўћўў§ўўћўў§њ§ў ўћўўћўўќћўћўў§њ§ўљўўўћўўў§њњўўћўў§ћћ§ўњў ўќћ§ћўўўћўўўћ§§ўћўў§њ ў§ћў§§їљўћўў§§ћўўўћў ўћўєћўћўћ§§ўўњњўўћўўњњ§јў§§ўўњћўўћњўћћўћў ўљћўћўћњ§§њљ§ўў§ћў§§ўјћўћўўњњўўўћўўј§ўўњўћћўў§њў§§ћћўўќћўўњњћљ§§њ§§њљ§њјњ§§ќў§ћўўћўћњљњ§ўўњ§њі§њўћўўћўњ§§ћэ§њњљ§ћўњ§њ§ў§љ§ћ§§ўўё§њў§ћћўњљљ§љћњўўўћўўњўўћўў§ўћўў§ќўћћўўў§ўўњћўљјў§§ ўў§ўўћўўњўўўћўўќњ§њ§§јњ§њ§њ§ћўўњњ§ћљїў ў§ўћўўўћўўћњў§§ўћўўљ§њљњњ§ўўљ§јњјћћўў§њћўў§њњўўљњўўќњљћўўќћ§§ўўљћўњњ§љўўњћ§ўўћўўњ§ћњ§§ўў§ўњўўќћњћўўўћўўњћўћўћўўњўўћўўоћ§ћћњњўўћћјїјјћўћћўўњ§њ§§њ§ћўў§§ћўўўћўўї§љњјљ§§њўўўћўўўњ§§ ўњћўўћ§ўўћў§ћўћћўь§ћљћћљћћ§ўњ§ў§љњњўў§§ўўћ§§їњўўњўўћћўў§ўћўўє§ћљљ§§ў§§њ§ўў§ўњћўўћњўўћћўўњўў§јњљњ§ўћћўў§њ ў§їўњ§њћўћћў ўћў§іљћ§љ§њћљљ§§ёћ§§њ§њ§ўћў§ўћњ§§љњўўћњћўўћўўћўўўћўў§јљ§§ўћўњўўўњўўљ§ћљћ§љјјљљњ§§ўћўўћ ў§ќљњћўўѕћ§љћљћњћўўћћў§јў§§њ§§њ§§ў§ўњїћ§њћ§ўћћўўўћўўўњўўќњљјћћјћљ§њ§ўўїћњћћ§ћљћўўўњўўћўўњ§§ўјњ§§ўўћћўўљ§ћћњўўћћљљћљ§§њўўћ§њ§ћўў§§њ§§ўўћўўѕ§њњ§њ§љљњ§ў ўыћўћўћјљјїјљ§§њњ§ћўў§ўўј§ћјљљ§ћўўћћўўњ§§ћўћўў§§ ў§ћ§јљ§§§њ§ўўўћўў§ћў§§ўљћўћўћў§§љќћ§њўў§ќњљљўўѓ§ћћјјћ§ўћў§§ўўўћљљњ§њ§ћњ§§њљћ§ўњўўўћўўўћњњ§ќњўў§§єўћ§ћїѕѕјљј§ўўћњћўћўўљў§ўў§њўќ§њ§ўў§ћў§§яћўћ§ћўў§љѕєљјјћњўў§ьўњ§§ўїјњјћћљћљњ§њњљўўќ§ћћўўўћў ўїњћјћћљљ§ўўіћўљњћўњ§§ўўѓћљћ§§ў§§њ§ћћўўћњ§ўў§§ћўњўўіњўўћўўћњљїїљћ§§њ§њўўѓљњ§§љ§§њ§§љњўўўћўўўћўў§ђњ§§њћћјњјћ§§ћўўўњ§§њ§љќћњјўўћіўћћў§§ўўћў ў§ўњўўљ§јљњћљўў§ўћ§§ўћўўѕњћћўћњћјўўћћўўћўў§ѕљ§љћўћ§ўўћўўіћњњљљ§§ўћњњ§§њ§ўўѕћўњњў§љўћ§ћћћ§ћњћњњєјљћћ§§ћјњ§§ўўњўћњћљљњњўё§љљћљљњ§ўў§§њњ§§ўњ§§ќћљћ§§њћјљњљўўќ§ўўћћў§ћўњ§§ўўѕњћўў§љјћ§њўўћѕў§јћћ§љїјњћћ§ћўўћўўњћў§њљћћљќј§§ўўќћўћўўћўё§њњ§§њћљјћ§љћњўўћў§љљўћњћљћћќ§ўћўўі§ўњ§ў§§њ§ўў§њшў§§ўўћўњ§ћћ§ўўњљћ§§ћ§§љўўїњљћјјњћ§њњ§њњљјњ§ўўїћў§њ§§ўўћћ§§ўћўў§§њ§§ќћљ§ўўіћ§њњў§§њњўў§ўћўўќћўњўўў§ўўў§ўў§јњћўћњў§ў ўљ§ћјњљ§љљъћљ§ћљљ§њ§њћўўћ§њћљћљ§ўўпћ§љ§ћћ§њ§§ћћљћћјњјљ§љљјљњћўњљћљјћћњ§ў§њњ§§њњ§ћљћ§§ћњјїјљљњњ§љњ§§ћјћ§§ќњљљ§§ћшљ§§ћ§ћљїїјјћ§§љћ§§њ§њњљњњѕљњјћљћ§ў§љћћ§љјўўњў§ўўћњћ§њ§§ѓњ§§њјїљєѕїїљ§§ќњ§љўў§љњўўўћўўћ§љљћјњ§њћњњћћћњћњњћћі§ўўћћљћ§ћ§§ћєў§§њћњћњњљњљљщјљјїјїѓщппмзе§ћ§ћ§§ћњћњњћќ§ћ§ћћћў§§ћўўі§ўў§њћњњћ§§ћљњљљјјљњњљ§їѕїїћєяшхттјћњљћ§ўў§§ћќњ§§ўўё§ўў§ћ§ўўћ§њћћњ§§іћ§ўћ§ћ§§ћњњљ§њћњњјїѕђѓєў§ў§ўў§ћ§јў§ўў§њ§ћћ§ќў§ўћћњљ§ћћњћњћћњљјјїў§ў§ў§ўўћ§ў§ћ§§ђћ§§ўў§ћ§§ў§ў§ўўўћ§§ўћ§§єўћ§ћњњћњ§њћњњўљўўћћ§ћ§§ўў§ћхў§§ћћњљљћ§ў§ў§ўћ§њћўў§§ћ§§ўўћ№њ§§ћњљњћћ§ћў§ў§ўўњћ§§ў§ўўљ§ўў§ћ§ўўя§ћўћ§§ў§§ћ§§ћњћњћћћ§ћ§ћ§§ўћ§§ћ§њўћћћўћћ§ўўќ§ћћ§§ыћњљњљњњ§ћ§ћ§њћњ§§љњњћћї§ћћ§ћ§ћ§ћћіњћћ§§ўћ§ћњњќћў§ўўэ§ў§ћћў§ў§§њћћ§њћњћ§§іћ§§ћњћњћ§ћћћ§ћ§ћ§§ѕњћњ§њ§ћћ§§ћћ§§ћўўў§ўўў§ўў§ѓћ§ћ§њћћ§ћћњ§ћћ§ў§§ћњњћћ§§ћ§§љћ§ћ§ћў§§ўћўў§ўћ§§шћў§ўћњћ§ћ§ћ§ћ§§ў§ў§ћћў§ўўў§ўўљ§ћћљњ§ўўт§ў§ўћ§њћљњњћ§ћ§ўћў§ў§ўў§ћ§ћ§ћ§§ѕћў§ў§ўћњћ§ўў§љў§ў§ў§ўўќ§ўћ§§ћў§§њћћ§њћ§ћ§§ўўћ§ћљљњћћ§ћўў§њћ§ўў§ўў№§ў§ўўњћњњћњћ§ў§ўўі§ћћ§§ў§ўћ§§єљјљљњ§§ў§ў§ўў№§ў§§њћћ§§ў§ў§§ћўўў§ўўћќў§ў§§ ўіћњњљєїљ§§ўўў§ўўј§њћњћњњ§§ўў§ўў§ўћўўў§ўўў§ўў§њјёєљћўўќ§ў§ў ўі§ў§ў§ў§§ћўў§§ў§§ ўў§ўўљјѕј§ћ§ўўі§ў§ў§§ћў§ўўћ§ўў§ўў§ўћ§§ўіћ§ћўў§ћ§ћўўў§ўў§ђјїљћ§§ћњњћћў§ўўў§ўўњ§ћћў§ўўє§ў§ў§ў§ў§ў§ўўїћў§§ћ§ћ§ўўё§ћ§ў§ўў§їюѓјћў§§ўў§ўўќ§ў§ў ўў§ўўў§ўўў§ўў№§ў§ў§ў§§ћўћњљњћўўў§ўўў§ўўё§ўў§ћ§§ў§ўћ§ў§ўў§§ћ§§ўў§ўўћј§ў§§ћ§§ўўє§ў§ў§ћћў§ў§ўўў§ўўў§ўўћ§ў§§њњўћўўў§ўўў§ўў§њћ§§ў§ўўќ§ў§ўў§ћњћ§ћ§§ћўћ§§ўў§іћўў§ћњћў§ўўћ§ўў§ўўў§ўўї§ћ§§ў§ў§ўўў§ўў§§ў§§яў§ў§ў§ў§§ћўћў§ў§ўўћ§ў§§ћћј§њћў§ў§ў ўќ§ў§ўўў§ўўќ§ў§ўўћћ§ћ§ўў§ўћўўј§ў§ў§ў§ўўў§ўўў§ўўћњ§ћћ§§ћћљ§ћў§ў§ўўў§ўўќ§ўћ§§ўў§ўўњћ§ћњћўўќ§ў§ўўћ§ўў§ўўў§ўў№§ўў§ћ§ћў§ўў§ћ§§ўўј§ў§ў§ў§ўў§ѕћ§ћў§ў§ўћ§ў ўў§ўўў§ўўў§ўўќ§ћў§§ў§§ћ§ћћћўћћ§ўўњ§ў§ў§ўўў§ўўў§ўўў§ўўі§ў§ў§ў§§ћ§§љћў§§ўўћћ§ў§ўў§§ў§§ўќ§ў§ўўўћўўў§ўўћќўћћўў§ћ§ћ§ћ§ўў§ўўћ§ў§ў§§іў§ў§ў§ў§§ћћ§§ћ§ўўћ§ў§§ћћўјћ§§ў§ўў§§№ў§ћ§њ§ћў§ўў§§ўћўўј§ћћ§ћњ§ўў§ўњ§ў§§ћўў§ўћўўў§ўўњћў§ў§ўўќћњўћћўў§ўўћ§ў§ў§§§ў§ўўў§ўўў§ўўњ§ћ§ћћ§§ў§ќњћњўўў§ўўє§ў§§ћў§ў§ў§ў ў§ўћўўќ§ў§ўўћћ§ћљ§§њў§ў§ў§§ўљњњїў§ў§ў§ў§ўўјћ§§ў§ў§ўў§§ў§ўў§§ћўў§ќћў§ўў§ўћ§ўћўў§ђћ§ћ§§ў§ўў§ўў§ўўі§ў§ў§ў§ў§ўў§іў§ў§ў§ўў§ўўњўљњњў§§ў§§ћѓ§ћў§ўћ§ўў§ў§ўўў§ўўў§ўўў§ўўў§ўўњ§ћљњћ§§ћў§ў§ўў§јћ§ћў§ў§ўўќ§ў§ўў§їў§ў§ў§ў§ўўў§ўўќ§ў§ўўђћњћњњћњћћў§§ў§§§ў§ћћ ўћ§ўў§ўў§ћў§ћњћћ§ѕћ§ћў§ў§ўћ§ўўў§ўўў§ўўў§ўўў§ўўљ§ћ§ў§ћўўљ§ў§§ћћ§§ўќ§ў§ўў§ўћ§§§ћ§ўўў§ўўњ§ў§ў§ўўў§ўўѓ§ўў§ћћњ§ў§§њћћі§ћ§ћњћ§§ћ§§іў§ћўў§§ћ§ћћ§ ў§ў§ћќў§ћўўў§ўўќ§ў§ўў§њњћњ§ћњњјћ§ћ§§ў§ўўќ§ў§ўўќ§ў§ўўњћ§ћў§ўўћјњћњ§ўў§ўў§№ћўћћ§§ћ§ћ§ћў§ћћўў§љўћ§њ§§ўўќ§ў§ўўў§ўўћњўћ§§ўј§ћњ§њћњўўќ§ў§ўў§ќћ§ћўўќћ§§ўўј§ў§ў§ўћўў§§ўњњљћњћћ§§ўў§§ў§§ђњў§ўћ§ћ§ћ§ћў§ўўїћ§§ћ§§ўў§§§ў§ўўў§ўўі§ћњјњћњћћ§§ўћўўўћўўї§ў§ў§§њњћћ§ў§ўў§іћ§§ў§ўћ§ћўўѓ§ў§ў§§ћћњ§ћ§ћћ§§ћў ўћўї§ў§ў§§ћ§ћћњњ§§ў§ўўњћ§§ћћўўќ§њћњњ§ћў§§ћўўћы§ћњ§§ћ§ћ§ћ§§ў§њњћћ§§ўўќ§ўў§§ћ§ўўћћўљ§њљјјњћћў§ўўј§ў§ўўћћўўўћ§§љў§ўћ§ћўўў§ўўћћ§ћ§ўўі§ўў§§ћљјјњњў§ўўрћ§ћ§ћў§§ћўўњљњњћћњћ§ћ§§ў§ў§§ўў§ўўў§ўўў§ўўћ§ў§§њњћ§ў§ўўю§ў§ў§ўў§ћ§§ўўћћњћ§§ќћ§ћўў§ќћў§ћћњќ§ў§ўўќ§ў§ўў§§ћљљ№њ§ћ§ћў§ў§ў§§ћўћ§§ћќ§ў§ў ўў§ўўњ§ў§ў§ўўў§ўўќћ§ћ§§§ћ§њњњљњњћ§ўўњ§ў§§ћ§§ћјњљњў§ў§ўўў§ўўћў§ўўў§ўўћ§эў§ўћњјљњћњў§§ћў§§ћўўў§ўўј§ў§њњў§ўўў§ўўў§ўўєћ§ў§ўў§ўћў§ўўіњљљћў§ћўў§§іћ§ћ§ћ§ћў§ўўя§ў§§ћўў§њћњњћў§ћљљчњћћњћћњћ§ћ§§ў§ўў§§ў§§њћћ§§эў§ў§ў§§ћћњћћ§ћўў§ћ§§ўћ§§ѕћ§§њћњћ§ћ§ћћљ§ў§ў§ў§§ў§§ўћћћў§§ћўўј§ћћ§њћ§ўўў§ўў§њћѕњљњћњћњ§ћ§ўўў§ўўў§ўўњћ§ћњњћћ§ў§ўўў§ўў§єћ§§ћћ§њ§ћњ§ўўь§ў§§ћ§§ўў§њћњћњ§§ў§ўў§ћў§§їћ§ћў§ў§ў§§ќўћ§ўў№§ћњњћўў§ћњћ§њћћўўј§ў§ў§§ћњњќљњћ§§јћ§ћ§ћ§ћ§§ўюћ§ћ§§ўўћњњћ§ћ§ћ§ћўўю§ўћ§ћ§ћ§њћћў§ў§ўў§§њў§ћ§§ўўћўј§ў§ў§ўћўў§ўѕ§ћ§ћ§ћ§§ў§ўўўћўўў§ўўћ§њљћћћњћ§њћћ§ѓў§ўў§§ћћњћћ§ўўћѕ§њњћ§ћ§њњћњњ§љ§ћћіњћ§ў§§ћњћњњ§§ў§§ћќ§ћ§ћћњњћ§ћћњњ§ћў§§ѓћ§ћ§њ§њ§ћ§ћ§ћћс§ћ§ћћњњћ§ћўћњјљљњњћћ§ћњћ§§ћ§§ћ§§љћљњњћњ§§ћњњћњў§ў§§§ћ§ўўћ§њћ§ћћ§ћћљњћјјяљњћћ§ћ§ћ§ћў§ў§ў§ўўў§ўў§§ўћћњ§ўў§§§ўћ§§љўћў§§ћўўќћ§ћўўќ§ў§ўў§жћўћўћўћўћ§ћћњћњћљїящччмл§ў§ў§ўў§§ўћ§ўў§ў§ўўў§ўў§§ў§§ыў§ў§ўћўњ§ћћњћћўњўњ§јњњєѓђээьюћ§ћ§§ўў§§ў§§ўќ§ў§ўў§§ў§ўўѓ§ў§§ћ§ћўћ§§ўћћіўћўњћљљїјўўќ§ў§ўўў§ўў§§ў§§љў§ў§ў§ўў§§ў§§љўћў§§ћ§§јўћ§§ћљћўўњ§ў§ў§ўўќ§ў§ўўј§ў§ў§ў§ўў§§ћў§§њћўћўћўў§ўў§ўўў§ўўљ§ў§ў§ў§§ўў§ўўќ§ў§ўў§їўћўћўћў§ў ўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўєћ§ћ§ћ§§ў§ў§ўўћ§ў§ў§§ўћў ўњ§ў§ў§ћћ§нў§ў§§ћў§ўћў§ў§ў§§ћў§ў§ў§ўћў§ўћ§ћ§§ўў§ ўђ§ўћў§§ћўћў§ў§ўўј§ўћўћў§ўўќ§ў§ўўњ§ў§§ћ§§їў§ў§ўћў§ўўь§ў§ў§ўћ§ўў§ўћ§§ў§ў§ўўљ§ћў§ў§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўі§ў§ў§ў§ў§ўўњ§ў§ў§ў ў§ћ§ў§ў ўі§ў§ў§ў§ў§ўў§ўў§ўў§§ў§ўўќ§ў§ўўї§ў§ў§§ћў§§ўњ§ў§ў§ўў§§ў§§ ў§ўњ§ў§ћљ§§ў§ќћў§ўўў§ўўўћўў§љћў§ў ў§јћ§ћўћ§§ў ўў§ўў§ќєјљўўў§ў ўў§ўўљњљ§§ў§ў ўў§ўўў§ўўў§ў ў§ћјњ§ў§§&ўќ§ў§ў ўі§љњћљ§ўў§ў-ўў§ўўќњўњўўў§ўўў§ўўњ§ў§ў§ў ўќ§ў§ў#ў§ўћўўќ§ў§ў ўі§ў§ў§ў§ў§ўўў§ўўў§ўўќ§ўћўўў§ўўў§ўўў§ўўў§ўўў§ў'ўў§ў-ўў§ўўќ§ў§ўўў§ў ўќ§ў§ўўў§ў ўќ§ў§ўўќ§ў§ў ўњ§ў§ў§ўўў§ўўў§ў ўќ§ў§ў+ўќ§ў§ўўў§ў3ўњ§ў§ў§ўў§ћў§ў§ўўў§ў ўў§ўўў§ў ўў§ўўў§ўўћ§ў§ў§§ўў§ўў§§ў§§ўў§ўўў§ўўў§ўўў§ўўў§ўўј§ў§ў§ў§ўў§ўћў ўў§ўўў§ў ўњ§ўћў§ўў§ћћў§§ў ўў§ўўў§ў ўў§ўўќћў§ўўњ§ў§ў§ў%ўў§ўўњ§ўњўћўўў§ўўў§ў%ў§њћўћ§§ўўќ§ў§ў ўў§ўў§§ў§§§ўћўўќ§ў§ўўў§ўўў§ўў§њћў§ў§ўўў§ў+ўњ§ў§ў§ўўў§ўўў§ў ўњ§ў§ў§ўўь§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўўў§ў ў§љў§§ћўћўўў§ўўў§ўў§ ўў§ўўў§ўўў§ўўў§ўў§ўє§ўћ§§ўћў§ў§ўўўћ§§ўќ§ў§ўўў§ўў§љўћў§ў§ўўќ§ў§ўўњ§ў§ў§ў ўў§ўўў§ўўєћўњўћў§ў§ў§ў ў§ќћў§ўўќ§ў§ўўў§ў ўћ§ўћў§§ў§§ў§§ўў§§ўќ§ў§ўў§њћўћ§§ўўў§ўўъ§ў§ў§ў§ў§ў§ў§ў§ў§§ћў§ўўќ§ў§ўўў§ўў§њњћћў§ў ўў§ўў§§ў§ўўќ§ў§ўўў§ўўі§ў§ћњўћ§§ўўќ§ў§ўўў§ўўћќњ§ћ§§ўў§ўўў§ўў§њћ§ћ§§ў ўў§ўўіћ§§ў§ў§ў§ўўў§ўў§ ў§њњ§њ§§ўўє§ў§ў§ў§ў§ў§ўўљ§ў§ў§ў§§љўћў§ў§ўўњ§ў§ў§ўў§ўћўўў§ўўњћ§ћў§ўўњ§ўў§§ў ўў§ўўќ§ў§ўўљ§ћўћў§ўўі§ў§ў§ў§ў§ўўў§ўў§ќћ§§ўўћѓўћўћ§ўў§ў§ў§ўў§ўў§ўў§ўў§ўўљ§ў§ў§ў§§ѕў§ў§ўћў§ў§ўўў§ў ўў§ўў§ ў§ђў§ћўћ§ћ§ћў§ў§ўў§ќћ§§ўўј§ў§ў§ўћ§§ ўќ§ў§ўў§ќћ§§ўўќ§ў§ўў§ўў§ўў§ўљ§ў§ў§§ўў§љўћў§ў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўіћ§§ў§ў§ў§ўўњ§ў§ў§ўўј§ў§ў§ў§ўўў§ўўј§ў§ў§ў§ўўљћўћ§ўў§§ћў§ў§ўўў§ўўњ§ўћ§§ўў§ќў§ў§§ѕўћў§ўў§§ў§ўў§ќўћў§§§ў§ўўч§ў§ўћў§ў§ўћ§ћўћ§§ў§ў§ў§ў§§§ў§ўўњ§ў§ў§ўў§ў§ћљў§ў§ў§ўўў§ўўѓ§ўћ§ћ§§ў§ўћў§§ўў§ўўќ§ў§ўўю§ў§ўћўћ§ћћњў§ў§ў§ўўў§ўўў§ў ў§ћхдйгсхщьшяѓїєјїїѕљ§§љњ§§ћў§љљњћљљјњѕѕћїјїїѕѕЩњёясiV?(..(?]G))74ххтцхтсрпцшьчыэяєњњїїњ§ћў§љњњљљјјљћћЧљњїѓюыыьѓћёпwVC+0.CIQ+ +478ѕѕєѓѓєєђёяюьыцшщщчтЪД–ž‡ˆ…œЏОзсѕў§ўѕїїљљѕєѓьшђљћ›^B7H@38.0+*&)јїїљјјѕѕѓѓђёсяђѓэулЮИЊЄЉЛРЊ’Ј•ŠЁТуљўўјћћљћљєєэѓаoSG>C<740$,%(ћљјњњ€„ћљјїїљїїѕїјѕєѕєѓэмейчюыжЮЫккЫБžЇешщєў§јљїѕў§є‡PJEUBNHF(+"ћ§§њїѕїїљїљњњјњјћћјїїјљљѕѓђѓѕѓяђѕѓяшмЮе˜Блєєѕј§ћ§ўњI91-)""§њљћљњњїјїїѕњїћљїѕјѕѕєоюёђяєѕёпЭНМЩЭЫРДЖДжьРF8211*&&*ћјјћїѕјјћћњўїѕѕї§ѕјѕѕїиљѕѕєђёѓђѕэхшцдзтмЗ™ЋЏUVUF57271,ћћњњ§љ§љљ§јїјјѓѕїѕїјћљјњјїњљљїајїєєѓђѓђђёёюђьтпЮТйРe,+3?90154ў§њњљ§њљљ§§њљљїјїјјї§ѕїѕѕўїѕѕњєѕєђёђђѓчёюђцпмлрЈA %Bњјћ§њњљљђћ§§њљљјњїјјїљїїрѕѓђёђѓѓђёђђѓђђёяяђёёяышсуђђтuю§§ўўњ§ћњјјљ§ўў§ћћ§јѕїїјМљїѕїѕђѓѓєѓёёѓѕѕѓђёяёђѓєєѕєёї§љШ` љћљћ§њ§ћљљјћљћћљјњјјљјјїїєѕѕєєѓќђѓїѕѕзїѓђёѓѓєѓјїѕѓѓљ§§Є3-13$)§§ћјїј§ўў§љћјјћћ§§ЪћїїѕѕєєѓєєѓђђѓєѕїїљїїјѓђѓєѓєєђѓђёёыєЧQ.7#љћњ§њўўњњ§§ўњ§§§љѕїїшѕїєѓєѕѕєєѕїїѕѕїїљѕєѓѓїєѓѓєёјїјј§Џb@2 љ§ўўў§ћћїљјљљњјїјїїіљїљјѕѕјћїјјјљїїјѕїѕєєѕўєѓѓіњћмA>)(3§§њіў§ћўћ§ћћјїїѕљїљїїѕїљјњћћўјїїїєћћјљѕєђѓѓђщѕњ§§Š;O1&?ў§ћљћљ§љћљњ§јјіљѕѕљїјњїјїїј№їѕєєѓђѓєѕѕїѕёѓѓєєЫяєяёђїљч~Z3FIћў§§љљјјєљћљћїѕїїњћљјїљїњјјїљљїљѕєѕєєѕѕїї§љєѓѓєѓюєѓѕђїјљЅ>HG5ћљњ§њўўї§њћїљїїјљљѓјњјјњјјњјјїљѕѕїєѕєѓђёђѓєѕѕїяѓєєѕ§ћЗ.3<8ћљ§ўўфћљћјњљљїїљњјїѕїјљћ§§ћњњїњїљїїињћїјїїѓёяяёѓѕјѕєѓђѓёђјћћ”b^Fўћўћњћўњљњњјјћћњћћљљѓјїїѕїѕѕїљјњњјјљњјєѓёёђђ№яєѓѓђёёяьїя™IOLўўљћўў§љњїїљјљњ§ўћўў§юћїјњљћљћћњјљїїєѓѓђђњёѓѕѕєѓѓќёїђѓѓћћљxT[ўў§љћ§њ§љ§§їћљњјљїњљћћїћјїѕєѓѓђюёђёёђѓєєѓєєѓ§§ЛJ-ўўљљњњљњ§ўўћћўўћ§§љљћљјњљћћє§ћјјњјјєѕїљїїєљѓђѓѓєєѕѕѓїєєѓєєѓ§јe9њ§§ьћјњјћ§§ўўњњљљћјјљјљјј§њјљљкїјјњјјљљјїѕѕїѓєєѕѕѓѕєђяююѓѓѕј§јДGўў§љјјћњјњњјјћћ§њњ§§јљћћљћљјљљ§јїѕѕўєѕѕњєђєїєїїюєѕєєѕєєѕѓљ§ћОћјјњљљ§ѕћљћњ§ўў§љњљљюјљљ§§ў§љљїѓѓђёђєєѓѓєќѕїѕєєяѕєѓєјћлљѕїїљћњ§§ўўїњљћљљњ§§љљўњ§§љќјњњѕѕїяљїѕєєѓђєѕѕљјљћїѓїїјјўћ§їјћ§§тњћљњ§њћћјѕїѓѓїјјљћћјїђєѕѕїњјјњњўїѕѕіѓѕїљћћјїїјјљїјјћћјљљїћљљјћљњљњњћјћљљћћќњ§њ§§ўљїїѕљфјљјїјѕѕѓѓєѕљљјјїјњїѕєѕѓєєјљ§§љ§ќў§§ћћћњў§њ§§ђљћћљјїѕїѕѕєѓѕїїѕљєјїњїѕєєѓїѕїїѕјєѕљ§§ўћ§њ§§њњы§њљ§ўўћў§њњ§§њњ§ћћїѕїїќљјјїїѕєщїѕѕњњћјјљјјљљјјїєљ§ўўћўўїњјљјљњ§њ§§њљћїѕјѓїјјїјѕєєѕѕїјїїєјљњњљљћјђѕ§њњч§љњўўћ§§љ§њ§§љјїјћљњљћјјљљїыњјїѕїїјѕјѕѕѓѓјљјћљњљїїќљѓєѕѕ§ёћњјјћћњ§њњљћњњ§§њ§§ћњїїљљ§љћњњјј§їѕїїёєїїѕёєѕјњћљјјѕїї§љ§ўўќћўў§§ў§јњў§§њљћљљ§љхћљљјњїѕѕїјњњјјљњї§§ћљјјњѕѓўўћњћўћ§§їўћўў§њњћўў§ѕљћћ§ћћјњјњљљ§ѕћјјћљјјњњјћћіљњњљљћћјњ§§ьњўњњћ§њўћўћ§њ§љ§ў§ћњњћѓњљћњјљ§ўњ§њњљљћ§јњљњїђєєјјјњјїїљњњўўўњ§§њ§љўћњљћћјј§њћ§§љјіћљњ§ћ§§јїѕѕћћўћњљљњјњљћѕљљўјўўўћўўўњўў§ћљэћ§њ§§њњ§њћјјњјњњјїѕѕї№ћњјљћљѕљћ§љљјјњ§§ћљјјћ§§њ§ўѕљљњїћћљњ§§њїј№їњјњћјњћљјјћњњ§ћћ§љјѕћњ§ўўњљљњњ§§ћјїјњўїјјїћјјїљћљїјј§љћљћњњ§ўў§ћў§§ќњ§§ўў§њћ§§ўљ§§ћћјїјњћћјњ§њ§њ§њ§§їћљљјљїїљјјцљјў§§љњњљ§§љ§њ§ўў§њ§њљљћ§њњі§ћў§§њ§§њўўўћњњ§§љћћјјїћњћћјљћћіјѕѕњњћћњўћћћўћљ§њњьћ§љљјњјїїњљјњ§љ§њњћўўїњ§њ§§ћјњљљћ§њљљ§§іљјњ§њ§њњў§§ўњќ§ћљ§§ѓћњїїљїїњјљјћ§§мњљњјњњ§љїїјљ§§ћћ§ўњљљ§ћјљљјј§љ§њ§§ў§§ўњ§њњ§§њ§љљћљњјљњњћўўѓњћњњјћјїљњћћ§§ўљћўћњ§ћўўњў§њў§§ўњўўћўўўљ§§ћљјљћњњќљ§љћћњіћњњѕїєљјћ§§њўљўўћёўћ§§љљњјљљњњўћўўйћ§§јїљћњўў§ћњјїєљ§ўњ§јљљњїјјїїљѕїїћћ§ћўў§ьћљљћјћћ§ћљ§§ўўћў§њј§§яўћ§§ўўњњљїњјљ§§њ§§ўў§§њѕљћћ§ћњћ§§ћўўя§њњљњўў§§љћљјјњћўўљћўўћњ§ўўіћ§њљјјїћ§њњэљћћљћљїєјєїљљ§§њњ§ћћћљњњ§љљњ§њњ§њ§§ў§њ§ўўљњћљљјјљљќћљћ§§ј§юўћњўў§њїїєљ§§њўўћ§§ќњљћ§§љћјњјљљћћ§љћюљ§љљњњўў§њ§ѕјљљћљўўюћўћћ§њ§ћјћњўћўў§њ§§ўњ§§ўњ§§њ§хћљћљљћљ§§њ§њњ§§њ§њ§ўўњ§§ћљўў§§њљћћюјљњ§њўўћћ§њљћћ§ўћўўѓћ§љћјњњјјљљњўўј§њјљїњљјјїњјљњ§§ћњјјЬљ§њћћљњўћўў§љћљћљљћ§ўњ§ћљљј§§љј§јјїљњ§§њњ§ўўњљћјљљћњњў§њљћћљёњўў§§љљњњ§ћјљћ§§іўћ§љћљ§њњўўо§љћћљћљљјњћњњ§њљњ§љ§њњјћў§§ћјњјћљћћіљјћћљћћњњљљћњ§ћ§њњњўћўњљўўљ§ўњўў§јњ§љћћ§њ§§ђњљљћјјїїјјљњњ§§яћљњјљћћљјћћљњћћљ§§яњћјљњњ§§љјћ§ћћўўњњ§љћ№њјјїјљ§§њћћљљњ§ўўћ§ћјјљљњљћў§љљ§ўўсћ§ћљћћљљњ§њњў§њљѕ§њў§§њљљјјњћћ§§ўњ§§ўљ§§ўіћўўћўўћўћўўўњћћ§ўјљљјљчћљњ§њњ§њњ§ћјњјљ§њ§§ћљњњ§ўўљ§њњћњ§ћћњјљїјњўўњ§њњљћљљ§§ўћљеєкрцыюяђѕѕїїљљћњ§ћ§ўўћћјњћћњљњљњњљјўлєrUE3$4;.Mb^2(4>;чтуутутнруычшьёђїљњљљО§ўўћћ§§ћћњ§ћћњћћљљѕяьэѓїўўьt[E,.:HLbuJ-9?>єѓђёёђёэьшсмзмнрщђхЮЏЌђўўћњТљјїєѓѓђєѕяўўdY?*NTS4!(7;B@јјїѕѕїїѓѓёёээшцчышсЮЏ’œŽ…ƒœЌТетѓўўќјљљјјїъњўўЄgB9GFH?5*-5:4њљљјњњўјѕѕєцѓђѓѕёхзЫБЄЃЄИМЁЂ‘‰œРнњўўњњчћњјљїўўуu^UBIMJ@3.082њћњљљћзњљљјљљњљїјїјїєюкзжэёюгЫЯезЦЌЁЂгхцїўћњјљљўўяVOFZNHII3-.4њћ§љљјјљјљљњљњњљћїћћјєєьјїёѓјєэхзЩбА’Впїђїњўўщ§„J:592(!(-2§§ћњћљљњњљљєњјљљњљљјљјїјјїпѕђєѓїїђмЮЗИЪЮЩТЎКЕйшСM9989.*,%45њњўљњњ§ћњљљјљ§јїјјљјрїѕєѕѕјюцщуелпйЛ—ЇЋ{PVNH;31344њњ§§ўўћћў§њњєљњљњњћњљњћљћћљќїѕїѕѕсѓєѓѓяѕэцрдФеРa.15:8,175ўћ§§ўћ§ћћ§ћ§њћњњљўњјјљјћїјїѕєєўѓѕѕшяєьтзннЊ<  (3§ћњћ§§ћћђњћћ§ћћњљњ§њљјљљ§јѕѓѓѕєыѕѓєђѓѓєєѓёюцхчѓђхq щ §ћў§§ћњљњњћћў§§њћњњљљњяјљјѕѓєѕѕїѕєѓѕјјѕѓѓдѕїїєѓєљўўЭd ћњћњћ§§њћћ§њћњћћњљ§њћњњљљјјїѕќєѕѕјјѕєѕїхљјѕѕ§ўўЋ1359(,*§ћћњћњћ§ўћћњњх§ћ§ћћњљјјїїєїїѕѓѕєїјљљјљљїѕѕїѕрєђюѕаP1< .*ћњ§ћ§ўў§§ћ§ћ§ћ§ћ§ћћљљьјљјїїјјїїјљљјјљљјјїѕѕї§єѕїїэѕћўўД[B,+0ћћў§ўў§њњїћ§ћћљњћњљљљјљјїјјњњјјљљњљљјїїјўїѕѕю§ўмB<-49§ћ§ћ§§ўћўўўћњњљќјљјљљїјњљћњћњњљљѕћњћњјјїѕѕєѕѕєёѓєѓє§ў§§ћ§ћњњљ§њћ§§ў§§ћћњ§§ћћњ§љњћћњћтњљјјѕѕїїјјњјїѕїѕєѕїјћўўДHўў§ћњњћљњљљњњўћ§§ѕћ§ћћњњћњћњћћ§њљјјўїѕѕўјљљјњїћўўРњњўљћћ№§ћ§ћ§њћњ§ћў§§ў§ћћў§ћћ§ћ§љјєєёѕїїѕѕєѕѕїїљјљљјјяљїїћўујљљњћњ§ћ§§ўўї§ћњћћ§ћ§ћћњ§ћ§ћ§ћћўњљљјљїјљјїїѕѕїјјњњћћљњљљўњўўуљњњ§§ћ§ћ§ћ§§њћ§ћ§њћњљљњњљњњћњњљјїјјљљњњљљјћїјљћњњљњўўњћћїњћћ§њћ§ў§§яњћћњњћ§ћ§§ћ§ћћљљјјјњћњљїјјїїіљћћњњћњњљјјїќњў§ћћќ§ћ§ћћќўћ§њњ§яћ§ћћњћћњљњљљјїїјљљјїѕњљљјїїѕїїјљљїјјў§ћћ§ў§§ћ§ћћ§ў§ўўўћ§§ўћ§§њ§љњљљќјњњљљјъїѕѕјњљњњ§њјњњћћ§њљљўћўўь§ў§ў§ў§§ћ§ћ§ћ§ћ§ћ§§ћћјњћњљљјјњњхљњњљїјїїјљљњћњћњћљљћћњњљјў§§ћў§ўўќћ§ў§§ћѕ§ћњњћ§ћњћњјјљѓћљњљјљљїјїјјїїљјњњћљјљљ§јњјјњў§ћњљњњљ§ћ§§ћњ§§§ћ§ћћ§ћљљћ§ўћљљњњ§љјљљєјљљјјљљњљњћњњљ§іў§ў§ўћ§ћ§ћћ§ўўћћ§љўћ§§ћњћћў§ћћрњћћњљљјљљњљљњњћ§ўћ§њћњњљњїў§ў§§ўўћ§ћћ§ўўњћ§§ў§ўўљћ§ћћњћњњќљњљћћў§њњћњљњёћњћ§§ћћњћњ§ћ§ћ§§ћњћ§§ўўїћ§ћўћўћњљљњљ§ћњљњћ§§ќћ§§ћћњћ§ћ§ћљљ§ѕљњњљљњљљў§ўў§ёћ§ћћ§§ћ§ўў§ћњћњњњљњ§ћ§ћћѕ§њћ§§њ§ћњљјјњљћ§ў§ћћњњљћћ§ћћўњўўј§ў§ў§ў§ўўќћ§њћћўњ§§ўћ§§њљљњљљњљјјљъћњљњћњћ§ћњ§ћћњњљ§ћ§ћћњњќ§ћ§ћћ§ќћ§§ћћіњћњћ§§ћ§§љљњіћљњљћ§§њћњњ§§њћњњћў§ћћњ§ўќ§ћћ§§ќћ§ћњњљњљўћњњэћњћњњћ§ћ§ћњћћ§§ћў§ўў§юћ§ћ§ћ§ўў§ўў§њ§ћћўћћњћ§њњљњњ§ћћ§ћ§ћћќњћћњњќћњўћћ§њўћћўћ§§їўћ§ћ§ћћњ§§ѕћўўћћ§§ћ§§ўў§ћ§њћњњјћњ§њњћћњњјј§§ћњ§§ўў§ћќњљњљљћї§ћўћ§§ў§ўў§ћћњњљћћјћў§ћћэ§ћ§ћћњ§ћ§ћ§§ўћ§ћўў§§ўњћћ§§њљљўјљљєњћ§ћћ§ћ§ў§ћ§§іћљљњћ§ћћњ§§ћўњћћњ§§ў§§їћўћ§ћћ§ў§§њћ§ћ§ћ§§ћњћћ§ћ§§ўўю§ў§њљљњњћћјљњћћ§ћўўї§ў§ћњў§ў§§њў§ў§ўћћњ§ћ§§ў§§ўљ§ўў§ћ§ћћўњ§§ьў§ћњњћ§§њњљњљјјњњ§ћ§§ўћўўќ§ў§ўўїћ§ћћљњћћ§§љў§ў§ў§ўў§ћ§ћћїњ§ўў§њљњћћ§ў§ћћљњіћљјјљљњњ§ўўў§ћћћњ§њњћћю§ћў§ў§ћ§§ћ§ћўў§ћў§§ѕћњљњћћ§§ћћ§§ўћ§§ћ§њ§њњ§§ћўў§§ў§§№ў§§ў§ћћњћ§ћ§ўў§ўў§§ў§§єў§ўћ§ћњњћњћ§§№ћњњћњћњћњћљћћ§ћ§§љњћњћ§§ћћ§њћ§ћ§ћўўћ§ў§ў§§ќў§ўћћњћљњћњ§ћ§њњ§§ћўўќ§ўћљљћ§ьў§ўћ§ћ§§ћњ§ћћњњљњћћњњћў§ћћњћќ§ћћ§§њўћ§ћўћћћњћў§ўўјћ§ћњњћ§ўў§ћ§ўћ§§њћ§ћ§ћ§§§ћњћћќњћћ§§ўћ§§ў§ћєў§ў§§ћ§ћ§§ћњњ§§ћ§ўўљћ§ћњњ§ўўђ§ўћўњњљљњњћћ§ўў§§ў§§њњјљљћњњяў§§ћњљњњ§ћћ§ћњћ§ўў§ћіњћћњћў§ћњћћѓ§ћћ§ћ§њњћ§§ћ§§їў§ћњ§ћћњ§§мў§ў§ћњћњћћ§ўўћ§ћћ§§ћњњћњ§ћ§§ўћћњћћ§ўўћњјћњћћњљњ§§ћћ§§ў§§єћў§§ћњњљњњћњњќћ§њћћќњљљћћ§ўў§§ўј§ў§ў§ў§ћћ§юў§§ћ§ћћњњћ§ћ§ћ§ћћњњўћњњёћ§§ћ§ћ§њћ§§ћњњћћ№њћљњњћћ§ћ§њ§ћ§§ћћќњћћўў§љћ§ћ§ћ§ћћюњћљњњћњћћ§§ћњћћ§ћўўўћњњћ§ќў§§ћћўј§њћњњћћ§§ўў§§уўћ§§ћћњњљњћћ§ћ§ћ§ћ§ћ§ћ§ћ§ћ§ћўўў§ўўў§ўў§њў§ћћўўћћћњћ§ћњњьћ§ћћњћ§ћ§§ћ§§ћњ§љњћ§§цћњћ§§ћ§ў§ўћ§§ў§§њћњњјљњ§§ўў§§ћ§ћћќ§ћњћюмлпхяђђєѕљњњљ§љ§§ўўќ§ў§ўў§№ў§§ћўњ§њўћ§њћљћўўэѕ}iNB4IAH[}pNHAP§ўћўћ§њўћўћ§ћћў§ћћє§њ§љћљћљћ§§њњрћљњљјљћћљёєюруюсОЂДБ‡`g^UGBFEJH§§ћў§ўў§§№ўћўћўњ§њ§ћ§ћўћўћћ§љњ§љњњ§љљ§њѕїїчљјьщмЯйаp;:@IM@?AHўў§ў§ў§§ѓў§ўћ§ћўћўћўњ§§яњћљћљ§њћљћљњљњљњјјфњїљѕїјєшусщЗL 4F§ў§ў§ў§§ўЪ§ў§ўћў§ўњ§њ§њ§њћљњїњљљјњјјљњјљїљјњїјєёэяњўяƒ.  §ўўј§ў§ћћў§ўў§Щћ§ћ§њ§њўћ§њћњћјљљњљњїљљћїњїљїњїњјљѕј§ўўпv1%$%§ў§§ўў§§шћ§ћћ§ў§ћћ§њћљћјњјљїљјљјћћѕјљјјљљјњљ§љљўђМNFPPBPB§ўћўћўў§§ћў§§ьў§ўћўњћљњјћњњљњљћјћњњљ§њћїћљњњюјћљљјљїўнh@Q;&GA§ўўў§ўўќ§ў§ўўз§ў§ў§§њ§њћњћњњљћњњљ§њћљ§њ§љњљљјњњћїњјњљњўўїЦwQ?*@A§ўў§ўў§§ьўћўћўњ§њ§њ§љћљў§ўћўћћн§њ§ћ§њљјњјњјњњћљњїљїўўыM)Q@EE§ў§ў§ўў§ѓћ§њ§њ§њ§њ§њ§ћћх§ћ§ћ§њ§ћ§ћўњћњљљћїљїћјњјњљўўєЂOh:?Zўўћ§ћ§§щў§ўћњћћњўћўћўћ§њ§ћўћ§љњњЫљћњћљ§љњїћњњјњњ§јљјјўўњ—tMdgўў§ў§ўћўћ§ћ§ћўњ§њў§ўћ§њ§ћћ§ѕњ§ћњљњјћљ§њњљњьљћњљљћ§ўўРSadV§§ўў§ўўя§ўћ§њ§ћў§ўћўћўћўћћцўњ§љћљћљ§њўљћљљјљјћјћљњљљњњўњЮBBHN§§ўќ§ўћ§§љћўњ§њў§§ўўћћуўћ§њ§њ§ћ§ћўњњїљѕљјљљћљњїњљњјўўћЂvr\ўўѕ§ћћўћўћў§ў§§жўћ§њ§њ§њ§њўћўћўћћљњљљїјјњјћјљљјјљїј§§ЊWhhўўі§ўћ§њ§ћў§ўўљ§ў§ўћў§§ћё§њ§љњїјѕњјљљћјљљњљ§їљўўќ‘rqўў§§ў§§§ў§ўўѓ§ў§ўћћњ§ћ§§ў§§њњўњћњљљ§їћљљьњјњјњјњљњљ§јњњўўд`<ўўњ§ў§ў§ўў§§ў§§ћ§ћѓўћўњ§њ§њ§љњїљљфјћљћљ§љњјњјћўў}Oўў§ў§ўћ§§ў§ўў§јў§ўћўћў§§уўћўњўћ§§ўњћљњљњјћљ§љњљћј§љњљўўѓФ\ўў§ўћўћўћўћћѓўћў§ў§ў§ў§ўћ§§ўћ§§ьћ§љћљћљћљњљ§јћњњ§ћљћћѕљњ§ўўд§ўћў§§іў§ў§ў§§ћ§ўўЯ§ў§§ћў§ў§ў§ў§ў§§јћјњљњјљљћљљјњљћњ§ћўћћљњњўўьњ§њў§§§ў§ўў§ў§оћ§§ў§ў§ў§ўћўћ§ћћњ§њ§њћјњљљњћљ§ћ§ћ§§ќњ§ћўў§њў§§јў§ў§ў§ў§§ўќ§ћў§§цњўћў§§ћ§љњљћњўћўћўћ§љћљњљ§§ђўњ§ћћњўњћўўћў§§§ћў§§ѓў§ў§ўћ§§ў§§ћўўъ§ў§ўћ§њћљ§њў§ўњћљћњ§ј§§№ћўћћњ§љћљњјњўў§ўўњ§ў§ў§ўў§ѓў§ў§ў§ўћ§ћўћњњр§ћњ§љ§њ§њћљњљўћ§љњњ§њњћ§њ§љњћў§ўўў§ўўј§ў§ў§ў§ўўћ§ў§ў§§цњ§њ§њћћ§њ§љћј§њћњћњ§ћўњўћ§§ќћ§љў ўќ§ў§ўўЬ§ў§ў§ў§§ћ§ћўњ§љћњћћўњћћ§љћјњљ§њўћўћў§ўћў§§ћћљў§ў§ўћўўь§ў§ў§ў§§ћў§§ўў§ўћњњ§§іћўћ§љ§њћљћћхњ§ћ§ћ§ћўњ§њ§њ§§ћљћљў§ў§ўћў§§ў§ўќ§ў§ўўё§ў§ўћўњ§њ§§ўћўћћхўњћњ§њћњ§љ§љ§њў§ўћўњ§њ§њў§ўўќ§ў§ўўў§ўўў§ўў§§ў§§шћў§ў§ўћў§ў§ћћ§љ§љўћўћћ§ўўї§ўћўћћњњўўў§ўўў§ў ў§љћўў§§ўћћ§ъў§ў§ў§§ћўћ§ћўћћњ§ћ§§ў§§љўћћ§ў§ўўњ§ў§ў§ў ўљ§ўћўћў§§ѓўћў§ў§ў§ў§ўћ§§№ў§§ћњћ§љўћўћўњ§ўўќ§ў§ўўў§ўў§ѓћўћўћ§§ў§ўћў§§ўў§§їўћ§љћћ§ћўў§їўћ§ћў§§ћўўл§ўћў§ў§ў§ў§ў§ў§ўћўћўћўњћљћњњћўћў§ў§ў§§ћє§ў§ў§ўћў§ў§ўўў§ўў§§ў§§уў§ў§ўћ§§ў§ў§ўћўћўњ§њћћўћўћўћ§§ѕўћ§§ў§§ћ§§ўўє§ў§ў§ўћў§ў§ўўѕ§ў§ў§ў§ў§§ћћюўњ§њ§ћўћўћўћў§ўћў§§ѓўћў§ў§ў§§ћў§ўўј§ў§ў§ў§ўў§ўм§ў§ўћў§ў§ў§ў§ў§ў§ў§ў§ўћў§ў§ўћ§њўћўћўў§ўў§ўўћ§ў§ў§§§ў§ўўў§ўўє§ў§ў§ўћ§ћўћ§§ўў§§їўњћ§ўћ§§ўў№§ў§ўћўћ§ћўћ§њћћўўў§ўўт§ў§ў§ўћўћ§њ§ћўў§ћў§ў§ў§ў§ў§ў§ўўў§ўў§§ў§§ў№§ўћ§њ§њ§ћў§§ћў§ўўф§ўњ§ћ§§ўћ§§ў§ўћў§ў§ўћў§ў§ў§ўўў§ўўњ§ў§ў§ўў§§ў§§ћў§ў§ўўђ§ћћў§ўћ§ћ§ћў§ўўў§ў ўќ§ў§ўўў§ўўѓ§ў§ўћў§§ўў§ў§§ьўћў§§њћњ§ћ§ћў§ў§ў§§ў ўі§ў§ўћ§§ў§ў ўњ§ўћў§ўў§њћўћў§ўўє§ўћ§ћўћ§њћњ§§ўљ§ўћўћў§§ћўћ§§ўўќ§ў§ўўў§ўўі§ў§ўћўћў§ўўі§ў§ў§ў§§ћ§§ќњ§§ўў№§ў§ў§ўў§ў§§ў§ў§ўўў§ўўћ§ћўћўўћ§ў§ў§§ўў§§чўћўћ§§ў§ў§ў§ўћўћў§ўћў§ў§ўўќ§ў§ўўў§ўўђ§ћ§ћ§§ўћў§ў§ў§§їў§ў§ўћћ§ўўјћ§њў§ў§ўўћ§ў§ў§§ўњ§ћўћў§§ўј§ў§ў§§ћ§§ќћў§ўўў§ўў§ўњ§ў§ўћўўў§ўўь§ў§ў§ў§ў§ў§ў§ў§ў§ўћ§§њћў§ў§ўўњ§ў§ў§ўўћ§ўћ§ўўљ§ў§ў§ў§§ўў§ўў§§ў§§ўќ§ћўћћ§ўю§ўћ§§ў§ўћўњћўў§ў§ћћў§ўўќћ§§ўў§тћў§ў§§ўў§ў§ў§ў§ў§§ў§ћўћў§ў§ў§ўў§њћ§§ў§ўў§ўћ§§ў§њў§ў§ў§§§ў§ўўќ§ў§ўў§яў§ўћ§§ў§ў§ў§ў§ў§ўўљ§ў§ўћў§§ђћўћ§ћў§ўћў§ў§ў ўў§ўўў§ўўу§ў§ў§ў§ў§ў§ў§§ћ§ћўћўћў§ў§ў§ў§§щў§ў§§ћўћ§§ў§ў§ў§ў§ў§ў§ўўќ§ўћўўц§ў§ў§ў§ў§ў§ўћўћўћў§ў§ўћ§§ўўќ§ўћ§§ў§ў§єћ§§ў§ў§ў§ў§ўўў§ўўє§ў§ўћўћ§ћў§ўўє§ў§ў§ў§ў§ў§ўў§§ў§ўў§ёўћў§ўћўћў§ў§ў§ўўљ§ў§ўў§ћћ§ћў§ў§ў ў§јћ§ћ§њћ§ўўђ§ў§ў§ўћ§§ў§ў§ў2ўˆџ џ3 џ3ўˆџ џ3ўwџ џ3ўˆџ џ4 џ4ўˆџџ4 џ5ўˆџџ6ўˆџџ7ўˆџџ8ўˆџџ9џ9ўˆџџ:џ:џ:ўˆџџ;џ;џ;ўˆџџ<ќˆџџ<џ=џ=§ˆџ=ўˆ ПЯ4?3*:\aЏючгЩЯейхцтхмЮЧРНФЩШФЯЮСФНЛЏЇЎБЖКФгжебЯУНТТЙЛИИМЩбзлптмйд--1$2"0dНзЧЭЭЩЫйкдкмйаЫЯегзЮЫОКЌЂЏВВРЭСЕБЎБЖЕМНЖФЦШЖЊЏУбктт€пхс--*1AB4+WТтлУЫЯгЯЭЮззЭдуррхпмнйЩЦФЫЦКУТАЖЌЊЎВЌЋЗЦЫаЫДЃБКРОИЏЁ›ЏБ!&+0@P-%7}ЛКУРФЦРШдгЯааЪУЪЯЭЦЦЯЦжпзбТВЗЕЎЂ›™ЈЦдЫИЦФИЗЖЖЎЃ˜™—ЇЊЏ)0!28#)4<›бЛВОМРгзгЮаШбкгййнпзбЮРЛЗЕКЗЮаеРЫзЌЗЦЛДЕФабЧДЎБЈЖЩЧЛЛ#0:91.2,;F}ЪЧЎТЮЧОЧЩбппдаШЦададдбаЫЭЫЫепшштЭФИБЗСОЖЫййЪЗВАЕМТУЛЖ!&(*%%€—"8ЈчпЧЧЦУТТЛЪгеЧСУажгббУМШЮннрзллсйНЕЋЅЊБЧгаМЗСЪЪЫЛЉЈЌК!##*:47>GwзшмжЮЩЩКМТЦЯзЯаЫЧНММЧЯмрпргЧЭжЯзеШУИДАИЫЯИВЗРЦЭРУФбЯ&&!!".01-@NžчхнгЭЧРТОДЫЪгзЯЦЧЧЫ€ЯгЯджкдЭЭЫЫЧЭЛИМажЪУСШйЮРИЛЫжй,(#-"".(CT9kмєѓхраШУЪексххцкЯЧйдЩЫдкзллгШЮЪеезхшнЯЯЧЫжнутжЩТОУТBB7.+1&1)0OYSЅѓхйкррлтцщыцмйжлмтунгЯФФЧНЩЫЮЩЩкйттлзгЭЮзбеЭЩЪЮздЭ"?;44"094:hЧкщтрцшцуупзжлкучэыпбЩУОИЛШймкзЫдаЫазШЦУЦФФШФЛСФУа *%+)0%WИщюсцшшннкЭЧЯЪЫЮбнщткззЭЪгймпсзЪЧРЧФФТЦФРСС€ЇТОРШО$0MG.<43@[ЌїмУнсжйааЦУФЩФНбмкпмйдЧЭзлмпрсгЪЭЪКЕЕЖЛКННЪмпклге  (&5C3ANУхппкеадЩЕРЮйеЩКОТгрчнаЭЩЦайлйЯдЩЩТЗЅЇЊАИЋЄЦВЕзгЫ)!!$%"@GULЃюїнзннеЭЫЮрышкжЮлсс€ћбЩРЖКШжЯЩФСФЦНАЉœЁЕУИБЏЄЋЫЭТ(13!)")+$.•їїѕмкезбТЯжззжзЩЯлпскдЭЯйзждЮЪЯйжлаЉЋАЎЊЄЇЋЖМУЦЮ%&%(0!5GN0AЈгЯаелдЩЛМСУЪаЯЯаЭЧЖДЕЦЩбУМЛИКЦеруцжЯЦЛИЉЅЈБАЗЩЫU0(#((#%PA;F4oЩтпкмЦЪЩЦЩзнбСТШЦД›œЛзнкЫУРЪРМШжррсхмсзСТамжеке*!,((*! !O4%‹щїѓкаакушуннйй€QпяЭЭжжхйбОМИТТЮЭЩЩжущыщусжЪЪЫЯЭ;"%(%-A9MРщцзббЫЮеЪдссйллреФЪбееЮУЌЊЪптхсгбктшчлдкблнрй1,%)3..%!$%7(F\UЕттутЯШЧФЦЛажлйЮггеЮЪабжжШОМЦбзклйЩзйнйЫбдегаЪY.+.),&$-2+##,JH˜шпгеезЯЮЯбаЭЧЫЪТЛЛНЕАФЪЭЮФКНСИИЦСОУУНБКСЦРОИ0)4@?92-(;--3-C9MѓјэйЭЪУЭЪОЩЯдЯаЮРШЫЛМТФСЪжЭСТТНАДЛЧТЏЇЄББЕИК@44@112*)>8(+>M3*gЮящзйуцшужнххсйЯжлрййдеЧааЭРБЌЌЄЏБЏЄžЎНЗИУЮЮ5%478?7:3.01-$!1MA$MЦјђтущцсйдкскбЪЩжйкнрунзкезЧИДД€„ЖЎЉЃЄЋДЗЏЩзн‚38?B88310&#*;EN*\™трзгемчьцйбЭШдндЩдсхзкмЯЮЭЮайаЩЦЛУЫаЪЛДЊЗЪЮЩAWnL<90%$)%%9GABvьчйбЪСЪрраЪежмнгЭЩехцмзпсмйлглскЮЦИМОЦОЊŸЇАуBF@C80%#(+)+!;J&@gчярсххсймдйрыскабЭЩззЦФаШЦбйзеЦКОЪЯбаЦУСЅ—ЇјrL,(,>.?.?J(@F>"-ТїэмлбагплрсйлбгпсЭКОЩаЫФЫЫегЫеССФгЩСАžŽ—ž§ЄG9%)?<7(#$LYvSH-FŽшуггЧаслпзждзкусеЩРЫаФЖЕЗБДЖЛЛКЕДМЪУДЋЄЦЕ§Я]G?25+030+<0&0YLH;*^ымггбеебдлйнхщцбЮабгШРРМТЗИНЫЭЭЫРЗЗ€ЖВЖОЪЮЮ§п>T]G;553#%")9*.+aБнйлптайпмгдммбЭЪазммздЭЧЫЭЫОЖАЎЕЎЖКЖОФНЏЌ§ћz\[J8<<;AA-1<29ECEi{зљђлщцрпндммкежедбзекмкжжЮЮ€пРЫСБЌЊЌСбСРЦРЦ§§ЃSGF::HI>093-.2JU1>`ЊїјсяэтнедлйкпбЯаеддйтхрзтцкйЮУИЎЊДНТЦЦЪЮЧ§ћЩ9*A+#&43,*(+28Q.1‡юїѓюьыргушлкллннсрхтцщээььцтлЯЫЪЫЩООКРНИУћ§ћq7)3EGC>(040::%#-9ŸещштщьщкнбЯемрсхкрцпьыэщцмжмгЮлтцпйббЯЦз§ћћV~[GALH73(1288€Д7`]`ЎщлмщшэхннкпхаЦЮммсщьюёююьшуслмзпрстхлззј§ћ’[e^GAF?487,"*,@.G?oйшгмтжйнррщчсдТЮжущхчцтщччхлррмйгктчснзбћ§ћчrGO>EMI877.:325SJENH^єјчьяяюшьщлюючпжрыыьщзЩббЦЮЭеежклздРВЕКњѕєћчTI5;(9Bt4(+1.EQoYF?LхїђрчэющрчзйррпсрмкхщстаЯлплЯНЧЭФШШЭЭ€бљѕїћћŽgZCFC]POG1<ѓђтеейгжбкжпкбгмгФШШКЎЗВШЫЮбмсйУйххмехљјћў§œE;,-$(&$BATM:OЖљјэшпазлмбдухмршсжснлШЧлмЯУФгбаМЛЭжеЯлљћћ§§žPOZueJWU--YnPLNB!:єёнсмнсрзмнлксщчлЮЭбцкКЖЮзЭЮжжЮЗНжшЦВУљљ€`ў§œZ5+U\Y[G)52@@BHILPO•ѓєухцсщыррысапщнаЯйсшндЫблкЭккЫНгкєкВРјѓѕ§ћŸ;CAQGL:?>0285BHNLBBAjэѓпчщььшпзсхмдпсысннпзЮжрздЭжгЯннлмсжЧ§љљћћЖ(xY4A8BF;A8‹ѓїшхцщхщпсэшугрцссйгсщьрдЯТКВТЭкЯджУИЖћљћ§ћёaJžu034.301232<*4QŠјћёяюэщчцшшсшшуяяустЭптлйнеЫЫдЭШОЧЦЧРЦћјїјљћg,NIP)1+((-54.":(ЖєєрнзучуьшэышлйппкеЪзйпхбЭкнЧЦИЧРЕЗЗУїјњјњљёbL?,84-(%&--#B>HBКшлцтншыьшэёэьусуцчсбмбЧкрмемпнбЭЪЪаЩЧјїїФљјћe88+58.:A8*52>8FMWЊуєрЯееЭШблцыыээяющцсчхйЭйжбЫжмжЭзбФбан;Sаўїєѕюяяьюяёѓѓєѓђёєяяёёѓяёђяяђѕѕјѓяёђяђђюѓѓѕєё*&.,239;))-02H3JcWНўўђђѓяээьяьђђяђюёёююьяяэьэяђюёяяэђээшшяюяёяэю^)2-2&&730125779YBc§љцяяђђєёђѓђёёяяюяьяяёяёёяяэьђэѓяябшщщчцучшьCC>9:987+-027:A;U^jїўѓєђђѓёђёээюэююёюээЛёѓёёяђяюѓёѓѓєђёэщшчцшщь#"5;:0:7**199:<3NU`ЧћїѓѓяѕђђяђюээьээщыыэююяёђяяђЯѓёяяэшшыёьщы>5CHC>9725>?:?IOOZИўўїѓђяёђяёяяђюяюььˆэђэяёяяюьэяђьэююэчтрхчшщь211HJ>>95,,5?9;8NC[œўўћђѓяѓёёѓяёђєђюєёяёёюёђёьяяээщцущщшцттмртщыE;"97;858,39<9;IY;2oщўњєєѓєѓєїѕѕє€“ѕєѕєєяєѓђѓэыхтуцщшууххччщэю1&39@88<9215,);ELB2QЭў§ђѓєѕїїјѕђѓяёѓђёѓѓєђѓѓёёэяёьыщчщцутщьшшчээƒ!..@:>@:2*+15>ALQ5cЎў§ђѓђєђѓђђяёђяюяђёђѓјїђєѓѓёђяёђяђьщщжящцчшьаBYoNE<70(#(),8CFNJIўўёѓёђѓяёђѓёєєѓѓєѓђѓОєѓђяюёяээыщчцтрхEE@I>::2*",4@8LT8GnїўњѕѓяёѕђѕѕїєѕђєѓѓєяяєѓяђѕѓїѕђђеяюяяээшюмждўrM1+55A940(IV,NQH+:Ыў§ђёђђѓѓїѕѕђёєѕѓѓяяююэюяэюю€МёыяэяыюхтлЦзздўЅH:+,8CB.933QW{^O5QžўјььёђђїѕєєѕѕїєђёяёяьэяюьюыяяђяюэьшщчттђцжўЮ\LE:-><;25A5-<`SJ@,jўњюяёююяђђєѓѓєєѕєёђёѓюьэьэюёёяэьююяяющэюёяўс@UhOAF@92)*,7A9?9CQ~їўђђёюьэѓєѕѓѕѓєєѓєѕєђыэыыхђюььэцэьыыющяюььўсISb;AAC977Т05>PILMpЯўєђѓёѓђѓєјїѓёєђєєѓєѓѓђюёяяюэышхсхчшышщььшўў‚]cQEEI@;99х75:JLI|…шўўїѕѕєѓђѕѓђѓѓђёђѓђђ€ƒѓѕѓёѓєяєььшуущыщёёюѓэўўЄSCG@GIE>5,194>P`;EhВўўїѓєїђёєѓѓђюѓёђѓєѕєђѕїњїєєђђюэьшыщэьэюэёўўб>%@;8;;:<45148CY:3”ўўћѕїѕѕјѓєѕѕѓєєѕєєђѕєѕєєљѕѓѓёђюёёјђяюыэяёўўсm4%*8ILIE:739<;@-(0EЊщўјђѓєѕїёѓѓєхѕѓјѕєљїљјјїјјєѓєђђєїєєђёєяўўћ•V|ZGGнFE>;8:;><1*+1?@4BAwэўёєёєєэїєѕђщььђєѕјѕєїєїѕѕјјєнђѓђѕѓѓёћўўчtLSHJNHA9??778>QF>gœєўјєєшѕєїђѓђёющэђёєєѓѓђёёяёѓѕѓѓкєѓѓїђѓєѓњјўўx<4Bme^eЮўўѕѕїїшѕєїєђёђёђђєђѓђёѓюєяёђљїѕѕйєђїєѓѓјїўў”YbG>7249>B<73:G\ei[СўўђјєђђєєїˆєђяєѓѓєїѕїѕєѓѕїѕєѕѓєєїјѕђѓёњљўўЏ35,AYLZA>E<5731GMBћљєђѓєѓђѕѕјљїјѕѕєѕѓѕѕѓѓєѓёђюђёёѓёюэђээюњњўўЩP7QJJV|Q;GMSgZSA7OQўўїѕѕњєїјѕїјјЙѕєєїјѕєёяђяюѓєёѓђђэяьщщыь§њўўцBMOFWWra*4:7A?Z[LTMdўўѕѕїїјљїѕїђѕѕїјѕєѕѕѓѓяШєяѓёёђёяящыыьѓљјјўёWN<9->F<.&*7MazOM;PђўљїѕїѕєїѓјѕѓєєѕєєѓЩїѓѕђяѓђяєђёѓёѓяяђђјјћўў”kVN?BLh8"++1VLFM5OзўўїѓєєѕђєѓєєљђёђёэюшшКьэђёѓђѓѓђѓѕѕєєѕѕћњљўўJL3)>2.E4"**AjVOL7?Ћўўѕѕѓёѓђєёєђѕїїѓєєёэышшяьяяђђ€‰яђэяѓѓїѓјњћўўЁLBFLIC>@A:79ACLHLZAtјўѕїѕѕФјѕєєѕѓѕђєѓєѕђєђђѕђђѓђѓѓєюђёєћњљўўЗVSQJGCEFE7:;GJSJNHBtўўїѕјїїщјєѓђєѓѕђєєѓѕѕїєёђяёьюѓђђсєяюь§ћћўўН,~\@BCIA;:?CEJHBA:˜ўў€‡§њјљєјїєїєјєїљѕѕєђѕїјјёюэяюёяєяььшцњћћўўљeJ›t839;8<79:?<74V–ўўјїјјњјјїїљїїњїїјѕѓћєїїѕђёђяьяюёэыыэыћњљњўўk+PHQ3128+289;A?9@FNеўћѓєђѓѕѕєєѕМїєѕїѕѓєѕѓїѓѕяђюяёэёююяэшњњљљўў”8NMFMA<408EHCHBWbLIЫўўюэёяђђѕѓѓїѓѕєѕёёэѓђђїђѓяђёёщыёюыыщщћћињўўеJ]FCH<171+3SC;!+?)+ЧўўєђѕєѕјѕљјњїїєѓѓЭёєяєєѓјѕђђєяђыыююёьћњљњ§ўѕcM9-;<:3((*2554IGMNЮўїёёѓѓ§ѕїјјўїјјщїѕѕљєїїёёѓѕєєѓѓяяёюђяњљљФћўўm3<,9?9MG?719>??JT]Зўўяєѓѓяђяђёђєїјїјјѕїєѓёѓюђђѕёёђѕяяѓяё€˜IHJFOwwФўњчптщщѓђѓѓюхмжгзнйттргйаЭШУЦЯФаЯсщщххнйзмйегагрчюђѓђђыхPLG>C>A}ЪђухспмщчшыяыцхюьчрнлзЮШМЩЪЭблбШЧЧЪебпаЯйстлШЧзшыѓђѓёэюяLLGJ]^LEjкєэммлупсрчтцьђђюТэящпзпрзЫезШЦТКМННЦЪнушлЧУЭмкмаУОАУШF9@N[rF>MQOIAVgДћїящтнкдйжспчтцнжнуухсштчыюшхумурсжакцшнййшэулжжншэGOEIA?JSIWkP‚ьўўюютскуьёюѓєђшунчххрчэщыюэпнлцыэѓёэущстэёѓѓэхсжккQ\ILEIGLEWjuiЕўјщыёьёѓђјђєюхыщяђђ€ˆчужджнпслртяэєєэьыртьщьчхптэыш)HEFE?4FULL‚пѓјєѓєєљѕєэьчшыяяєђѓцткзЯжуяяюьттцншщррткскпнждлнх"0EAFH?B4<@gЩўўјєєѕѓяёрймлкрпяѓђььшхчыяѓѓіэшнйллнкплл€ийкрсййм:-225CccLJPMTrЛўѓкщяѓятцпрптйлрюыыцччхсчыьюђѓђчючлЯаЫдЯгжхэєёэюэL-)817GCTWNZmењёьёышштбмкщурзммхђёѓшслдшыёьцхткнЮУСЪЫЯЧНЫТЦчцтC8<539.>749[`kbСўўёыээыхныяѓђѓэхыёёѕщрадлухунпзспгТКЕЖСггЪФОУуцуIG@GBBJB7A?<@5AЇўў€ЁёщшюхзуяюцщцруыюђээьччшчцрнуэыѕцЩЩЫТСМОФайппц<7@E.9GAC>AP]eCWОшсшщюютгЯгйпрмйсуржЯгзттлдаЮдлщяѕђэцсбЪУРСЫЮзтхqLFE@AAB?;:a^\\H‰тѓѕёёртззньяужзпмбСМгчяыхмглмЯсчыьѓѓŽѕюнмэљэяэчG?EJBFLE5$,55GkQ7Ёћўўѓчшюяђѕяєёяьё§усцщёящйгбпнцпххыєјјїђѓщпсышцO>C?BBCC3..,-@;SC]hbФ§§єєюзннмдущьшуцчьшнуцчцнлмлщцээытышьыпщшшыснqJNP?HUJMNQLEG@LgLmёсмучнрпыщэыячрппйдзмлхукйрсхумнсчычшпклезаШдWWQZZMMGCJGFHNPIccwїўчьёьыштссмзтллнслжпчьтьыулрпушёящцыцчтзЫЪЫЮ;5MQS[SHSCTMIJMC]bkЩђђѓђёёщцтнн€ПажмкзЦЫЯгпзстмйнршщёыщэчсущюшьчкQ+MV[TPUHPTPNBLJNZbЕўўыщэщцучслппхлзббегасуттмезжбамжддзЯЪажмйлй9GWPQNLNMVEAO>L`U>cлўўєѕјјєыщёёычпрыыНѓяђёьщщырЯдЭЫЯаУИКЩдгЩныђ–*EPVQSPQEHH?LGTWjFqВѓёёыђёѕѓющчхпшычтьёёђђ€ щчущчшшхмзмссщйЫШзмтмVm…YUSNC9-1:GEGYZUUŠўћяшсзуђяхушыёёяурщѓєёьёёђђяёяёяшжгзжпйФРЧајTY\aSSFI:FC@CMEZ\@U…§ўћѓѕёѓщяыёёѕѓюушсуьютпнккшюьяыккрщчыхрсТАДўcLAQOQLIGG9]c?ZaL3AдўўшѓщхыёђѕѓѓюстёэшЯдкснсрхцчхыйгехкжУЖŸВЌЖўИQN4-HOSUTCMJ]k–o]FaЌўђсснхюђяяыыьђёёшрлуунбЭгЮЭбйзЯЯлбпкдФКлФЗўтp]WLELQMPLSH>M|jjO;wўёчысцц шыяёѓѕєёхшьчйзгеджЮнхшхшмдекгйлщчтўёOk~cMTYLGCB@BUPNGQaѕєчсчхмсщѓђяшђяюђёёђььнгдзйшснЪжжЮпхЭЧЧрр€šўєUe}LWSNLGICAGMVa``QuЦѕььюёщхёёяяьысцпшыѓььщылуцхйЯФШШЧЯбЯабегЪўў”qubWYZ]ZOQJLLPb]gŠ™їўўюѓјяёяшьяшыышщяёђюѕёюячххлуйЮНЦЩеупйтрхўўЗmU[^Z\`WJ.LHIMhvTUzУўўїїФђящёэђьщшухщюєяєєљѓєђѕщундУШЮтккежлнўўкO1UMTZUTJHG>9@HO\L[Pˆыўхѓюшяэђёѕѕёчжтщѓѓљѓїєѕљѕђѕєїѓящьяѕѓѓьёћўўѕ‡^kakb`]WPPFOVPm[QtБљўѕѓьєїєёѓяьштйнуђђ€ёэђэђђѓёєѕєяьюђєёяяћћўў„Ieb^ac]ee\STUMT…‚m}зўўѕђјїљђђёяяынхуюяыыюшййпчюђцчёэщьѓшрцчљћўўЈw‚YZUY[U[QUGIAcw|‚nбўўїѓђєёђѕєюыяёђьѕєхыђєёюяьђђѓюѓђђяєёёчяћ§ўўТFEE\pdu],UZUWGGJV^Y’ћѓђѕєяэяѓѕѕїѕёчлёшщщёѓђшьђєящшхчэьчееЯбћћўўйcOcWag”pLP`]~pcUJcdЂўўјљјёђѓєѓјјћјєёїїљїёрхрчукрщэщччзйеждм§ўўУїQ`iVjk„w;FIMILvueg^zўўјїљїљјњѓђѕјѕѕыѕѕљїєьчцчнтпьщщыэььаЩбдћћўчpaTTL\h›P?ˆuYZd^[LOUPi^SSQIЎўўћћѕѕїјэїєљёьяѓѕѓщщёѓјїщцеЪЭдьярчщрЭШ§ўћўўТu[Ќ‰L.OVNIFNEVTMGNeЅўўњћљћљїђїїѕїљєљљѕяђщєєђёяштсцмкблпмпрћўњўў‚}?`]eLJNBFHLOSTWIWUZмўўјєїѕѕїѕѕїђѕїљёѓёєїјєюёыьскммсзйзЩЯбћўњ§ўўЊFdcVaQLGCPZW[Ybjx]UУўјђруёєюьѓѓыёєїєѓэщчяяђёычлбжрпзучпЮг§ў§ўўТрVp`e[SUGM8BeYL4@P;8ЦўўђяэёѕѓїѕћѕїяээюыщсщэєёшшёяццдгаЭбгпћўћўўмv`NAQNJOGE@CGMJWT`^Щўюєёѓєјїљљњљјђђѓѓьёѓьхыэьђюђёшцхпцттћ§§ўнxLLBOYQ[ZOG:œ’›™˜žЌЏРУœ{v„‡ŠЈБЎЋЌЎИА™œœ’™ЌЇˆ‹‘ŸЇЁžБОФ|eV™gZNтгСНУЭШВЎЛЕЏШЄ–—”ЂЊЄЖЖДЕРЦИАЄЁЈЎž‘ЇЈ’ЂББЏТЗЄƒ‰ЁŸŸЈЗРЕxUL+,ебЫЦЮЯТЕБААЋЏЗСЧ’–ЅВЌДРЧФФТЭЯЧЕБЊ˜žААЊЗФЯЛЃЋЩЧЩНЃЎЪэмЏДймЫЧЩМ”SУамнслаФРТЦУЫЩЧМŸ‘••ЅЏЅЉАЋЋЌЎЖЩЮША—›ЁЇ’˜‡Œ‘ЖИШгЭЛИТМЊžДЕ—‘ЃКШРРУСТШСФЦТЩЩЦСНТШЕЏЎБЗЧжжШМЁ—Ž•ЇœmgŠŸЇЊ•‚–ЊЧЏЊЋЂТбРœМИЌКЧКЌИДЊВБДРФЮкмнйЮЪЩЦбзаЩЦЧЧдЧКЛНВ‘ŒИВЌКСжЯгнЕЏЂ˜žКВЃ—”ˆ‚„{ƒ›Ž–ЩЖ–˜ЕВДДЏУдлбССЦЛАЌЌАВЛШЫЩЌЄБВЗЦЮНИИСаЯЩЧЛЎŸЊЁ‡‹–ž•‰‡‡‚xƒŒœЈ”t}…ƒ”ЁМОУЫЯЩТУУЕАЅЋМРЩШЮйбЧКВЖЭЫСВЌБОФИЈ’”•އ‰‰|{•Œ‰–—‹›”Œ”œ~ww{…–РЩУЛМЖЊЖКООЏЋЃ›ŸЛРСКЁЂЈЇЇЊЗЩЮааТЃ”ŸДИЎЄœ’Ј’ˆЂžŸЅЇЃЁ›ŽŽ’™™ЄŽ‹ЛЧбдЦИЕЗФШЦНЫаЩДЎЅЄЖТВЇАДЊЈЊЎЖЌЈЄЈ›–ЄЁЄŸž›’‘ЁДНŸ”œ˜”—‰i|ЂЗЏŸ‹{ЅЎЕЖннжЦФШЫЭШЛСЏЋЈЅЃЂЃЂЌЏИСНЕЋЋЅЄЉЅœœ”•œЄЏЏЊЋЃЊЊАЊЃЏИИАЏЅВжхмђцРЧйЯйгсэьычпебЭШТЪТЗЕЇ‘›–‘”™žЃ™‰’‘Ž‹ˆ„ˆŠ‘”–—’ށzj”ЯОНОСЦЧЗЕМКАЋЌЫЯншыыьышслмгжггпИЄЈЇЁŸЈЎЌЄ—‘‡‹w~}‚‰’…‹˜ЉБЌž—Œ‘ИЦУФТРЛОЦМЉЉЕТелртхцхччццппррутеОБМДЎЛРЗЋЋТУВ–œŽ~uv{‹—Ž”ЊЂ›ЊБВЈЈЃЅЊМагЧКЏЃДмнждезмнсжЮЯдЭебУКАЌЊЌБРЕЉЇЊЅ˜–ЇЏŸwˆ|g…‡…ŽŠƒˆ’ЇЋСДЏЊ˜—œЁЖРВЈЂ‹ŠЮУЦЯаЮЭазждзлтрнаШШТАНЦТЛЁŠ™ЈЏУеЦМлбНурбОЂЗИœƒ|•МЉŸЈЈЅАУЧЭбЪУЂаЫЩТЖЗМЦамчюэумкмтпббгкзеНЂ™ЄЂЇЌИНЦЫгбйЮФРНМФ›Œ•™ЃЌЛЩШКЈЛРЎВВЇДЪЛЖЎЌМЮЯЪШЮжйЭНЏМЦдлмлдШбкнджЦМЎЖЪЭЧЮЭШКДУаасИ‚n‰ЌТТ€$ЗŸЌВЏЗЩРЕЎЦЪРОЗРШаЩЛЖИВЊЖИДЕЦгЫУОТОЖЗЖУТТЦУенплжЧАЅœœ”~ŽœТусШЛДЉœЅЕКТЩгЮУСФЪЫФЯбЦМОМЗБЎЛУНЗСгдЫЮРДБЗКИКЦЦТЭаздРДВИЉЄАЊŸЋВОаЯЮФАВНСЦЫКЅЋВЖМТЪзбМЖЗЋВМШЮФРШШЗБИНОИЗДЛЫрмдШУЉŽœžЊЕРИЕМЪЯЭУгегмбКТаЧЛММИЇŸЋИДЧбеаЭШагЪЯЮЫЪРЦЩШДЗОСМДЕЗМЫгйЮЦЖЋЇЂЄЎВИНШжЫОМУЭЫЪЫЦУЧезнпйШабЭТшумбЫмхчткегЮТЛАЅЇКдкеЩББЉžЈБЧЧмгЦЗЕВВКЫЯЭЮЧЋЇЅžЄЌ•ЈФЪЩЦМЕЕТатнржеезЯаЭСЭкЮЧЛАБТУЗРЛЦœ™ЊСЭбуьющчбЎ—„™ФРЕ–ŒЈрЫКЈœЂЉАМЗКУЮШРООшхпптсбдкаККНЖШШКДМИЕТОЗЖЕЕОЫдВ…‚‹›Є‘—Ž˜’{~|ez’’”’•ЄИЗКЫЮктмлмсЫжлЮйрЮНМСУФКЕЗМЕМЪЮОЊЇЖЭЮМАЛТД‘‰‰‡—ŠŽ”˜›‹ƒ’’А™™ЌЮНЕМЖЈЄМШЮадЛТœwЅТФЖЗТЭЮдЯТЪаЮЦРКБЖСЫЫ•бЩЗРЏЃЄВЭкЇВКРб™|‰КЛЊЉЊЄБСРааИЉЋМЯЪЯмЪчТ{~žВЋДСЩЮУТУСОЦУНКИИКУЧЧТЩОЗЏЉЃ˜ЅЖОКТЪнТСТСДЇ˜•‘™ЋЖЉ™‘ЌЦЪгаТУНмсЮЩЩ€ЖСЪЧИЖИФШНЕУЮТКОКНФЩРРЩФЌЃ™ž”—ВЖНШбдсЪ›‰••˜™‰x}r|˜ЋИсдбТМЦТФЯЫЛМШлгзеТЗСФОЧЦРабШЛЖМУЎЋЉЖВЏЕЏБреВЈЂЌЕЉ‘‡Ž|ОкЗ…vq{ЊЏЖИЊЁцслжЯаЧакййгЩФЯЩТФМЕЛФШИЛММНРИКЩлаЩгзпЯБЋЏЖЈ–ЁЉИШУСЦВЈАЃ‡bƒВЏЏ€”ёээышждаЦЮбклмрйЭРТЧСдзШЛРФОЪШШЮЮдхщраЧЧЫЫаСЖИЖТЦЫШВЊЌЌЏЛœ‰ИЎŽВМэщыцрмелртраНМОКОНЦФНЦЯеЧЦЯддЯЭЩбмтцзЭзбйдбЮЭЭЫШФНЗЈЉЂœЂ’ЂЪтбСЦКпттхыцрклждЫРЩгЫЯммллг€rЩШЮймнслзлЮСВБЇВРжлбЭИРСВЈЇЃЇЄЌЎЄЌЧдСБЗРОШЮертплйФТЭбждапчыцлйдеЭбаадЭТЫЩЩМРОВБДКЩззЮЦЩОЁŸЈЋКЦЪЭЧЪЧгЯМЄ›АЖНЦгжгейаЪбжбЩЧОЪжсхсмйнкШУЦСЕФРННШТИРбгйпнтццнЭМЧЮзлйЫЧЦШЧЛЉЊЁШЭЩШЦТЩжеЮОЛММЏБЛРЦЯжрнгхчуеЧЪЫжкмнжЫРБНФЗВ™ЈЗУТОЅВЦдзмкЭЫЦЭаЧЋœмлеаЫОУйтмемснкдЯЪЛЖЕФаблутйгдйгЭазЪТЫдеЭЛВАБЎЄ˜ЁЏАЊЇДТЕАМЪЩСВЎЉкппйеЪЦЩблнурсмЯЯЩШЪЫЮблбЫЫЛЛЯЮайзккджйсркЩОЗДЉЅДЮЪКЕНЗЃЌЃ—ЇЉ•™ВйпумеЮЧУЯймщтсредЩШЦежкзйсзЧУШЫЯаЪМТШдкййбШТБЃЄЖЭЮЖЏСЧНЌ™—‘Œ‹Ž™РТенснсмкхччшяымЮЦШШУРЛИОкрнмсйЪНФШЩЫНЕЗЛНФРРЏЊЖЕЋ™ЂЊЂŸЉЌМЗЂ’˜ЌМЪжбЪгйппнлмтштпйаФУЛМОУРФксухнЩЛИШЯгЧИЎЇВдлжЧКЕАЖКЗБЩБЃЉЏЌЌЇ›˜œаШИРКЭнмбММФЩЪдкнйбЮТАЎЦезбЧУЧЯЪТМОанжЮЩНБЕНЩЭбЮлнмлзтказнебкЭУжКЗЛББЕКББАА€,ЕНШЧЩЪЧЦЛЛДДНЭжЫКЎЏВНЮезлжкбЫУВИШклрцшыьщшщтчщэыышруЗЇЇЌЈЅМЧЪММДЉЕИЖМЦФЧдзбгййлеШЛТЭдкмлкзгекупжзкеббазмскпрщшэюьэьщЧЋЃŸЇАИЗЗЕЏЌЌЗСЮйрхццутпрммзбЫЪЧШЭаеййззжгЯжмррйдзггЭсчтнмпсууЏŸЂЄž—ЄЄЊЋЅЉЏДРЮззлежжгадкзаЮЫУУЧЩЮбЯЯЮЭЦОЕКНгптлгЧИЗЏМШЭФИКЦЛМУТЛЩжФЊЄБž—žЊЕЦгжмнеОЗФЧНУЦУФЩТУРМКНЩЩТРВЇЎЊОНРМЛСФСОССДД€№ЌЁ”’˜’ЕЦЭадкжгЅŸЂЏЕМЧеУЌœ‡žЈРбОБЏЌЏЗЪддеОЧЧЗТЦОДЏАЋœЌЗЗФЧУДЏДДИОжаКЧщтЫОШШФМУЭНЖКИНОБ”’}\HЉпнЮЪЕЈНЪджЩзмлЦАЖСФСИФЮЫЖДЗОЩЩНАООФЮлумзжртШЧЧУНЦФШЮбдЮТИВАЋž˜Ђ‘„‘ЕЋЄ‡‘ŸЈЫббЭЛДЗАЄЉИОРКРБЉЈЋ˜ДУЮеЮдлзаЮгкмййЫЫЯЭЮгдкдУСШИ™ƒŽЋЂ‰”™ЉЕМŽ‹СжН—›ЄЈЈЊЉВМНЗКАЋЅЏШхтспйжжаФСЩЩДыьйШЫЯШЭЪСККНЪШЛЏЄЖЗ‘Œ›ЂЕФЭШЏВЗ‹ƒ{ЏЅžЇЏТЩЩТИДЗБЛблюхнгЮбЧЦдЫФЩУЕСФЖСФеФЪЫЧНЖЖИФгжжсЮЖБНЯЭОЗЊˆ˜Œ‹•––‘Š”ЃЈЅЃЁЈАМУЩЭлжОЂЁЎЖамЮЪЗДНЕШЧЭлшчнпнрнЮЩЫТЯзаУОСТЗКССЪЩОТИИМАЃЉž›ЅАИЕЛУЩЫЮбЮЫЏ›‡’ƒЌБЏЕДЗЊœТЦееЮзкнкусклручулекймнкзлдШаеЪРаяужЩКУРбййЁкжбЛЄœ›–™››œЋЖВИМСВЃДОЧЭЮйпхубФЩЦЦаднснмущьуннхйаЮджейдЯЮзпйжгдЫФЦМЌЉœœЅИФМЗЖИЧекзпЧЫдймушрчтммр€ЪшсхупцчнгдзЮСОЮкскгШЫЭбкеЩНЛЛМАЊЋДДНРББЈЃЂЉВМЩЪЁ{ЧФЯЯдгкмгжнплмсстсзжгЯеЯУВКНЦЩЯпрйгЪЪкдФМЖЗТдШЕЎНЛОЭаЪТИВЊЂЃБЪʘСжЩРРКЖННКРЦШЮлркмстЯЭЭФРРЮзкаЪЯЫЩШФТЯЯНЗЗФЩЩЪУИКЦФОТРЧЦИЋŸ•™ЈАЊ‘ЉпндШЦООФЧЭШаЮбжзбЪЭФЮЯЩЩлбззггдкЭУКНЦОБЉНЭгЭЧНЛЖЛШззйЪЏЃЅ›ЄЏЄ” шцунззмйзбгаддартсщь§ёмчррйдФЩЭЪДАВМФЪЦŸ™ЫбНОЌzVQ[SPIE@B>FLOF;1ххпззйкйдЯШШЮалєчщчхццьщццчрнкзддњгбЦНКЛЛѓБРМЎЄŒ|nGPNFEEцIHF0?:кдгйнрхцїљйЪЭЯЮбсууттрѓсцчнззнумзегаахЭЩЪЩаž~hV~•ŒoWL>9#1#(+$*%&#1@FF`L,  &#**$%(#" -(5;4! *($*##0G104 #+>>J%+&%)+.%&;T20%!#(1500.$"!!#,9MF( (400€š%308+#+*"$#%+" 09!"%)!!01.*)082.&)+&2&,81.85#!&%!%+%-)##0)-5)3-#$,!-%$?O:1$$2(!!€%#".$)3$"*(,+.$" —p@A:3@$  #$-"##$&*$;-%$&%##.)($ШЁŒ}S7.&)?& &# ""%%$""4;7571 Ж—’ЕЕ•x[2.>;(!4PFBF$"I7&,*!)7>:3.-"  —Ž’ЃЛЕŽmTB (.*&0>39<@#") %)"",2-% ‘ЈВЎˆmexzmL34)!+011&$%$$   .*(1!#БЏФжйИ”u}‰cchY81E;!,0%M-*(*" $!,+$?HZF9+*ОСЦЭеКЈ‰x{n{`OSnhUIN50UE3)#(!!!+024%%17>;5-34:2*,!0стЏ~}ЖкеУžtP![‚}‰„ސЂЃ˜’ˆ„„rgUOB7&,3+-5":FBI}„H4GZOE4<%чтСˆˆМжпгЪœr|mct•˜—wžФУБЁЂž„khchjaP\bEPm„ˆЇ‹`ou…ŒŒ”|igYv‹~k]NJАŒtqz‚Ž…wugddTZni‚ЪырЧИЇЄ™‚{naVMSSWPIOYPoœur„…•ЕЊ—}[m’‡z{zpŒ‰‰ŒŒžž‚…~ncd^dƒƒЭЭЕАЉЋКЂ•ƒwjNL[Z^YTSW]`u„v{‰|ƒ‚ЅЮУЃŒ‰Š~‰–™ЏИСОВ”‡‰‹…„pcZUr„ˆЭбАЂ–ЋЌЉЃ„‡Œ}ˆ‹gm[TUM4dމmrxЂЁЏНБЩгНагСБЈŸ‹ЗЗНЫанЗŽ’ŽЁТСБœ”ŽŒМхФБЃЃАЉЅŸ‚ˆ‹‚qnggUdS%kž”Ѓ‚ƒЏЌŸВЛРЛБЉœ„cnЉДЗМЛЏЅДВЈ•–Ђ”ˆz…ЁБЛзЮЏŸЂ–Ž™Ѓ…^d``ckiuЁ~U‚›˜™—˜‘‰žЂЄНдМœЃО˜rqtЖЗТКАЕœ…ЌЎœœ™›БЌЯгщйеУЎЈЄ—Ѕƒ[h`]dg]gdc^‚˜˜œ›ЁЇЌМШЦКЅ‘”››’‰•‹{АЎЗЖАЇ”ЊНŸ•›˜ЅЗЪяёяЯЄЌАЉЈЅŸ‘xwjghdkeemkƒ”Ÿ—‰–ЖСВЄЂЁŸ˜‘‹‰‰ЅЅЈ›ЂЕДЊЄ›œЁВЌЎЇЏЋМЪЄ™œЅЃž—ЄЕД’ˆЂЈ‹hgqrjcejŽМœ‹ƒЂЂЁœЂЅЌЏЁ~ИЈЌНСВЉЏЌЃЏЗРФРВАЊЄЋЏИВЈ›ŸВЕЋЄЊЖЎЁ‘Ѕ~d]jtpkkivˆ‰ˆˆ‘™Ђ—Ž’ЋЛАБЗЕЕЊ—лкбЪТРМКЛЪеыыеЫБЅЕККЋЉЇžœЂЇТеЎ”žбЊ~u„qttr‡‹‘ž™—’”›ЄœŸЉВЋ”ŒЩЧагЭампущыхмгШНИВБЖИЦОЗККЗАЂŸ’ŒЂŠ~}zoo}…Œ••œЈЖМЗУН™‡zŒ˜™ЂœŸДтлЯбршчсхйеЭУТТФЩЧМДВЕЖСЭЪжзмУШЦЕЋœŽ‡xtu|~‡—ЃЂЇВЭсзёмИЎВЊ™—›žЧаЭдхцхсрлдТТЪТВЖСОУУТЕБДФЪЮЫФЪЦŸЁŽ~x}}v{…Љ™–™Ž™ОФЛИЕИРОЎŸЈЊЋнлмлйжбжсмбЯЫРОЦШФЩЩЫЫбаЧЛРНЛЕИЂx…‹„„€•u{{ƒЇбЧЛВЇБУЦЛРЯЫЩЫОНЖЕЖИКМНАЕУУШРББЫлжЧдмйУЗТЪЩОКЮжжФУЗ”k{ˆ™ЄЅ…zr–лщСНРРЦФЩЫЭдаЯбЩЛБНЧЈЌЊДТЧЛТКААБЧдВ—ЃЁЂЖЕЛКБАЗБЎВАБЗ™{ˆ‹Š‰tdt[eЇОЦЧЦНИЊЊДБЕЛСЧНЈ˜ЌТИœœЊИКРОЪЪСРУВŒ›БОДЂ›ЌВЈЃЄЃЕЛЉ•–ЊЋЖОЕ‹qi|ОлФЗБЎЌЃ˜™™ЇЗЕЌЈЁЎНЭФЈ™ЂЊЏЛТСВЂАТОЗЄŸЂŸ——…ЅКИЊЇЅЃЇЊЁЇžЅЕЪН„–КЫОЊВМИžЂЎАЈ—•ЃЋЄЊЖТРОСБ™‘––”•—ЄДМОЌœЅ›™’‘ЄБЩЦЉ—•’™ЅЏЖРЗБТВЊЕЉЃ}r|Š‹Œ–ŸКЯЅ‡”›˜‘ЊНОЏИБЉЌЎœ—–˜—•ВТСЋЃЂЈŸœ˜ЇАА”tn‹‘›ЎЕЕЖМФСЕ–ŸžŸ›œ’˜—”ƒ™ЉМжЖЖЏ’žБОЎЛРШЧЛЄЃЁŸЁŸЄЗЧОИБИБЉ—Š‘Š‹ŠŽ•žЎСЛЛФмрйВЋЏДАЉ…”’•КЮЪНЌЏКВЈЁЁ•˜Ј˜˜ЈЛСМТЦЭЪИБМЯЮСЛЛНЛЄ‰œЈЉАЌЎКМЩЏЄЊФйнзЮЮзЭЛАКЭТацзбЪОЏАЗНЏВА––ЋНЃ›žЉЕЭйлгУУЛСЧФНМакЗЕЇ”БЕЊЃЉРЭЪСЖЕЖОРКДАЇЋЉЅАКЧЫЭбЮЪРЪкннэьужрчЁЇЏАЕЋЇЋЎВЖАЃЄАОЫжнлежкеСШРИТЩСЧбжгУДЊЃЂЃœЁЉЊЂ›ŸЇЖЧжтхтрмпхчч§цшЌЌ€ŽЉЊЉЌИДЎЋДКЧЮЭазйзаЭбзЯШЦМССРТЩЩдзЫЛЌНШОСЛСЧНККСЦбтшчттунтчшхтУЕДНАЎЎЌЗДБРепнеЩУЕЖРКФбзЫНЗЏЄЋЛШУЪШЕЎДКИЕБНТРШЯЭШНТпртрмйжкнлгОЉАЁ™Œ›ЋЏБМЫбЭегРР€ИЕАЛООЛАЁЂЄЋЎРЦЛЕЎЌЏЌСЮаЪЭЧУЪЗЁЃЋКББАЌ˜ЌЋАЛДААЇŸЂŸžЈЋЏВОаббМДЛажЫОЗДВЗЕЋЂЅЊЏОЫСВЏЗММРЫдтщФЏМК•ŽŽžЁ™ЈКВВЃЈЇЖБЗРТМЗКУЪСЪгЫЯТБАЏМОДИЩЯббЫЕЏДООТФМКНРФШФбркЪЎ™——ЭЅАЏЊАИТНЏ–ЂЇ›”маЮЪВЋБЏ›’‡ЇС‘›œЌЧЦЧжйзЧСНТЭЮЯШНИЕСРР€ЂТФЦОЊЄЎДБЏЄЂЅЊЅ›˜ЦдЗРЯЧЏпкзЪВЈЎЋЅЊАЄ•—ЋАЈДЗЧйтхнркнкпжЯШШЩИДЕДОЭРЖОБЌЇЊЕЊЇБЎЅŠzŒЉФЩЉ—БцтйаЭТТРФЭаУАЅИЫЕЄЎРЪймсрссйЮШЪЩЭбЯШгдШЧСŠhНЭЖЄЏЏЌœЄЉŸЂ…‚iqЃxŒпзлпкллмппўдЭЭ€•ШФОРТЪезййжкмйдгдзннЯОЛНЕЋŽžЮаФМЗШУЋЌЎЎЊ˜‘—…‘ˆˆ”жйзгЮЮбеежедпчцпйзбднкзежсрчццсццччхскйкзжппрмпхуреЫСЫЩЪпп͘ŸЋЇЏВНУЯббЯЯЧТУЦбекнтнкйрчхллтшшщыщушщьщщўцыыќэычщщ‡хнбЯЮЪЪЫгШЕЎЌЏЉБЩЧЩбкжаРЖЖЛШЪгмкнлйзйпсжЯлтцччцнптцччьщшщюьыыщшцстрпртууспнлзЪнахулрцнаДВИСЛРЦЩФФТЫдггСКЊЊЩжрпнддлсчцухчттЧрпшрззржйзснйлслезжаВебЪнсуйЧЧЩФУОМНЗЊЁЇЏЎКЖЛАКНЗФЭТЕЛЩгзз€šнухшцхытнкдбЮедждЪШФЭЮУЛНШЊЌЎЖНООЧййдЭМЉБКЗВЖЌЅЊВЕММКЖУаЦРМЗКЗИЗМбсучсхцплдгзцщплгааЫМНгмйЕЛТОЖВСетрйЯСУЮгзгмэякпмчьылЮЭбдегЦЛКБЖЩЯдбжкнрпгббнчыычыщшмкпйнЇЋИТЦЗЗЭкрхскбйжджбхэьычхупзКДББЛЧЧЪШЫФФЭмттнстххпжЯейтуыыьыьээч–œЋЗЖЖАБЕЏЛЯнгЮбррхьэуммлйеЯЧЗЛЖСднхеЪЫЦЩЭбкнлклпяшгЕЩдзлпшснпрзЂЊЦЦФМЕЕНКЛУЮлушцлмтпеЯбУИЦкцтраСФддзпбФФЯгерлЭЛЌК‰‰ЌЦбЫЭЪмухцчнТЏЛЖЩЭЛСТНЛФЭнрмЭЎИУЪУСЧРСЯзкзддабллмлгЮгбЫнхщусшдЋЕпрЮРИЫейезйжƒ‰nu”™˜ЋЧЧТШЭзпуйбКЄЌЎЗЧМСЭЪЛБНЪзжгЪбсусйСЖЯнлелтлЯглдЪТМЕЖНШЩРУoM:wЇЉ‰ЂЈЌЈЌАВМШРМЛОЦЩекрлжждджбЦКВЧкбФагЩИИОЛЪаезЪЧШЦБЄЈЋЖИТаЭжЄЃŽqŽарагЛЎЊЅЄЎЗТзйгЭгЯжунжленкЮŸЁЈЋЌЎЌЖЦЦСВЛЫЯгдЪФЪзгНСФЧЩЪздЯЯЖИŸ›ВРЦДŸЇЈЏВКЮбЫЧЩезсрусрлнйЖЊЎДВЖВНЖБЎЄЄЈЛТТОЛСЫлеЪИЕЕЭезкЯ€ 530((\G-240078?HB:;BAG?@73,3759<9:>>A;5:B<@BCZC@@F>,)-,(24?>EGEJPZE928?940?AC8-..7:+)39@@€Х?3+024:CYITN@C3+7B<9:7232..:<7<83+33912451021.*+&0A@:-&*13,:997480.-++.8;FG,(5035@A>5314<:59835>7.2573*+,!%)-44..9@<9)147789?<58150(127><><.$#25:9C>507>7*)1584941599772-,)Ц’\PMISA$)+)-,.-# 2+-##"$1)*2*+3530-&)128740&.38.0,20390343-%ђжРœjQI?5H\C.5;+$024$$%+%$"%17103,,#!#$%-("+*4537457:40-)+!!чаЫруК’qLI]MCGTg\V\B<<-9aQ+0::9)(#!#$+(+&(+.8@;451,)(,!#зггкэцФ—zZ3%8AINNMQNOJFBN`E9>AA<<731..%$(*(+-30)&-23+(-&+0+абщёцЯЈžОУЄt]F;FNQSNLJB?CGA:@CFC<>?>1250,*)(&)1*28E94<-0.+3(5<8шьыљўєзЛСЫДЉЋЃ}uncNGL;>ZLE>CGHE@:@>?9;<99;4107>50+BPUbWEC79835:>яэьыјьшЮРОЖТЪЕЃЅИЏŽ‚xUZpaMC7;EA343>;2?@?ёялхуьщеШОЖЗЏЉВИЃЋЄЂЧЦКВ‹w‰œЌŸ…cCA;G;FOJAELt]L83NSS€]PAJSV[J?BA3>93?MGTHJOPLI9?CMW[c‚gH13.?5EHJCA5.93@,42C:>2%VQPG<8+&78I9FEB@C@HJhQ?NPC:)?.55?:FEBOQa\M595BAFE?;,11@@Й9H?98OcFB9A.70;1JAEALFAB:BHA95E@@HCB*,4*74@NWYVJL<,;OHL9*3282<9@?E@9:3AA€!@?7?;58911*A5@34?>?9B9@9,F78400&&88LU>*B57BB>:94>E?>:?;<@>27080799:?HJ9B+747;5:;<:529:C>.814>>AG:88?702AC@7..Д‰WUPaTH(74%))44)&$-7.2.%%8441-:<8099-&&-.ABB4<0<:A885BB;77;52$мД›ŒiVLE4NcJ1,?%,)#..>,"!(;;8710-&,8.##€ж(*-15<:>>9B?E:<443%1ЭЏЊЦЭБ”tMLaUCAPj^[^C9A3B]V9*?AF>&"),#%%22?)*&+58JMEH54">%$30ЌЈЃМаЫž}eY1(7@CLMMFLSTIOVeI801-(&,ЈЊЦбРЃztœdJ4392-1%2?-?3BLC:M05.2-5+>@ЮЧляђжВ‰’Ђ|w{uUM[VM>EI?8:>B19-1>>@99CE>?9F[\r``IH;9;+:F>:;99ONGMGLFJPYYZ^aTHGNF592ьтНккбЫВ›”ƒp‚‡mvqz›‘–m]n~—‹uQ24-33BCB>FLobU>>S\PQLJISTO@5EC:UяњЩ—–нїђхШВ‘e8n˜—ЉŸ—ЁЈЛНБЅž™ЇЂ—™ˆznc^PGABJAOM<->>9,)41-8>?8?>AB929?CJBGCA#+-+-7)*-#*24AA?CCFHIJGBEIJF?2,)*51*<<й3258;:7,8@ALGH@  &1,8C>.""%(2<<€;@HLIMIB?<<42-*)-1320.**82.1@<40BFMPSY""2>FB95-*&(%("%%#082;FM^@,754,#%*0,1($+&137?9@BC8?CGIMG;+$(.9GHB99,"&(+-.013*,8FVLC,159;.+03.-")1?;915:?IEEщHNIJJLJ #C-4>@C>B>50**€W.-0745:;>?EIFCACLLGF<534;9<@83??@?4EJHNEEFBAC+972>43(&%!$3*1225>JB7EIG@<5,435<72;>CHHGFHJMIONGHBB 1%03892-,,(%+,15021>@GCE955;@EFB:<8>99<97E4>AG>F?GFFHIHE>?>  &3;:@7;::A@;2)-977;CG@5$%((2:;1.2.*3@E;; 9303JHC>>@EBE.7>?95C97FHOT`g :3(5-5?>8:>@H<35YGAV[YLB7G]WPC8HL:?FFNJG%,35A>8C>9+9EJPLBF48BWUG;5%-BE7E@GC?OHA:<>@W^aeg[[na[Yz~–—4&.MIETB.39HQYG.(9FMqq^UT]huv|•œ’…‘БЎЃДОСЊЊЂœЉАМняєрЧЫФЌЈЛЛМ:C**PZ@HOGinU|ЄЇЅЄЅЃ—ЁЮзпцчуеТСЦкйзнЯУЩЪШЗРхшмЭМТЯФЪехуЪСМКЗЕУЛЉWmjTmvkzЈЧбЧЛСЄЁЏЛТнпкуцеМЏЕЗТЩЩФЩШММНИКИКТФЦЦаЮШТНТЩЭУЗЏЇЉДНЖЈe]Vbz‰t[]РУАЇЇЈ’‘—ЊЛЈЌЏЇŸЁЌЗИАЏВВЧЫЩФЧЦТШЭзжЭФРЪЮжлеЫРИРУБŸ˜‘›”wkipdzЋНВ‘•’‘ˆ•”—Ђ™”ЋЄЁЄАЖКУбЯамтчхчтпдРИРФЛКФЫФНВЉЈЌАДЌz}}pmoˆœ‘‰ЁДБœ•‘‹‡Œ˜žЇЃ™™˜•žЁЄž–œ’””’ŽЃЗЖЅЛбНИИЈžЄАБЏЅžЋЏЎЌЎЇЄ|ƒvhjq~АИЈЏЈŸЇž›ЊЏАДЄЁЅИДЄžžž™—›ЈЕЛДЈЁЁ€kЈЏЌА–’•žЊИЄ˜‹‹™Ё‹Ž—oprnor‡РЫОЗБЉВКДАВЈЂЅŸЄЛЩУЉ˜—˜”—ŸŸžЃЁ‹œ›‘——‡~Œ’˜›Ž|tr\]`‘rmiovet”ЈЗЗœ™ЈЎЅŸ––‘œЎВЏŸ›ЂЇЉЊЉЇЄЂЇ˜—›—„x}”Š”ŠЏЛЏ‹ƒojwŠКЧŸ…ˆЃЂЛО—w˜ŸБИМЏЏЉБДБЌЈЊБгЪžЈЁ››˜™ŸЄЅЈ—”Š—–‹rZhŒ–g]ndc^az–ŒЉЌЊЊŸœ˜Œ…ƒ’žžЊЕЖЊЏЏББЉЌЦЪНЈ‘pЅЏАЋЁ›—˜œЂ”’”ЇžЁ}w{‚‚}xv{~w|‰~z‹…—ЁŸ˜—˜ЃЇЖЉЁЅЉЈЉЗЖАЈŸЈЋАЩШœ‰˜ККАЂ–‘Œ‹”——™ЅЊŸ•ˆŠƒvu‘ˆ}ˆŽЇЗВЊ’x•˜ЁЊЌž”˜œЇЏЕЦгФКЏЊЉЋЈœŸŸ€д‡ƒˆ™˜•Ž‹›ЈЎЊЅЊАЋЊ—ЄЋЃœЂ›ЁЉЏЎАФА™юшыђугЮЌАЕЇЂЎЫЛЊЉЊЋЎЋЅАЅ—žž”Ђ›žЋМОЌБРЌЈ••ЂЄЋЕБЈЇАЏЉ›ŽŠ”ЇЉЏСОВЋШИКЛИАДЖЋ™”ЄЕЏЇ›œЉННЕЌЉЏЛШФТггзддШКААЏЉЇЋЏНДЇЂž˜—–‘‰‰’™”‚ŽrzБЏЏЉЅЈЊБЏВЕКМНИДЏБЛТУСШЦКББЋЇКТУСООИЗЛЗЌЎОЕЎКАЅЅ€⨘–’ЃŸ˜Š|Ѓ™Ќ—•œЃЅЂЁЂЁЂВРШЦЪЧЗЕРЧЪФЖЌЊЎЏДБЌАИЗСЦУЗЋЋЂ›”‘—ЁМРЛЗгеФЛБЏЃ‰—ЄЃЈЂ’–’ЗНАЅЅЁЂЌЊЊЅ™œЈЫаЎ•ЁЂ––—œЋЖФКБЕБАЏБДЎЇЂœ›””›ЅИЧЧЛЗЕФзнѓцНЕИБЄœЎНЮцдУТЯНДЏДЛАƒŽŽ™’Œ›Ђ›’œЂЁЂЇЅЇЈЅЂЏЏЊБТСЕЇЌЌЈЅЄАЏŸžЇЗЧНЎЌДРЗЊ™ДЉЏЭЫлОœ•ЄЂЃЅЄ‰„‹’’‹ŠŽ’ЅЇŸЄЅœЃŸЁЅЊВЏЎЌЅЂ‡ЁЗКЄЂž’ЁЄŸЇЅЂЇЄ”ЇЎЉ––ЊЅ–™”‘ЁЌž”ЇЇАЗ~bwŒ–™œ–žЄžœ˜Š‘žЏБЈСУВŠ‹Š‹ЇЉ™Š‰ŽЈЉ›ŽŒ‚ƒŠ›™›ŸЏЖАВЊВСОРСВЎЏЏЕ›o|„’‰Žˆƒ‹Œ–›‹t}ЁЊ‘Œ‹‰ЂЈ›–˜ЉЌŸ{zx}‡–ЃЊЎЏЕЕЌЏЕВЇЁ›ЁЉДА•ƒ‘Љ˜‹Œ‘Ÿ›ž•…‰…‚‹•œ—˜—ЂЈЂ”Šˆ˜Єž‘Љ…ˆƒА™’ЉВСС€&ЕЂ˜ЉДДЈž˜’ЁŸАЯВ—ЋЋ‡z”’‹Ž‰™˜ƒ}{ˆ}|…‹Œ‘›™’™ЎЋ‘АМНДŒŒ’”‰‰™ЅŸндбаЪРНЗЦСТНДСТШЫБНЫгнЩ–v……‚opvux}ŠЗЦ›ntŠ‘•’™ЉЂŸЊРЩбАŠˆ‘‹ŒˆŠ›ЁЇуххнаФРУЪгкжЯгзгШИУЯЫЗЎ™’ЉЎˆzu|›бкЂzvŒ‡ŒЅЗЖБЌЏКЅ›ˆ‘ДЋ˜‡—ЊЈЃчшццрЮРЯмчщсзжаЧЭЧНОЛОдЩТЉЈЋЁ™ВСВЃЅЎБАИЏИЩсюйФТСТСТЫжШВМмсЦЏЉЈЄсрппнмппутлзбйннкйаУУЪеклЩФСМДЎЉЏАДЖТЯзлпрхцхнпжйжздЫЫЩУНЦЮЫШУСУЛРЧЫЫЩЯааЯЯЭЧШЩУФЮЭЪЮгрШАИООЕЎАММСЫШаейххцхпнйаагдегЮФЗЕКТРМКДРТЊžЏЖАЛЩЫМЕДАЌЌДИНКИДЎЉЃž—ŸŸЁЏЛТИЖУЦблмпкжбЯЭЦФЫЭУФЦЖЃЁ›ЂВЖЋž››Њœ—ЇБЗИЫУЗ‹ˆ–›ŸЈНШРИВЏЉЉЄŸЅЕА’œРЮагазеЫЦНРОЗМТРУШЦМЖОМЖЖЕЏЅАЖЎЊЄЎ’ЈКžЅ›–‹Uw•›ЂЊ•’Ї‹~”ЄЂ›–Š”ЂЈ’ЉКНЪЭЫааЦМЏЊККУтнЏЗЭЧЕЧедЫЯЪНБЄ™ЌСшЭ”~‰wb\…—’˜ŒˆŒ——‹„’›ЉБИМЕŸ˜‹”ЈЭСКСЭгбИЏВЛЋ™qG{ЌААНРКСШЧЎЃŸЂЉЇ˜ˆrm…Š•—’•ž—‹Œ•Œ~xz’ЛЌЎА›—ИЇ›ЁОСОЦШБйМˆЈДЉ”ЎОДБАЇЇЕЛРШЪЮУЖЏЊœž—ž˜”ЭбЂЄЄ•‹”‘…’œŽˆ—ЉŸŸЖЕ’rkzžЎЊ•АООЗР™‹ЁЉЎЋЗРЎЂЁЇНШФОРСЫФБЌ‹›—‘ЌЌЊ™ŠŠ‚Ž”˜ƒ„Œ–ЂВЌ~}ЊЕЌž–”Ž‹„‚c`w…ЃСЄœЉЊЁŸЋЂЅЉТФЖЧЫАЂЃ•œ–‘‡xuz‚}}u~ЌœžВЕŽpx‡ЄбЗ}Ќ‘trpx{„xw}„Žž–ЄВЛЅЃ‘ƒ}‡‹—ЄЃЉžЂžœ™Ž{|}–‹‰}ŠЉБИЖСВЅЃЕЛЛЖЌŒ‡‚}}‰‡~}„‹œ—”Œ”’ŠˆŠvxzwu{}~ˆ‰ЈЗВЈžŸЃЄ’•›”Š•ЁЄЦлБ˜’žž˜ЈДЊœ™—–Ё•ЋМБЈžž”ŸБЂ™ЄЌДž–’Œ~z‹‡„ržМДЎВДЊЄЁЄЖЇЁАЉЧЧВ™ŽЅ–ЄЗkŠЅ’ŸЇЈЈЎЏИКЗЊЏЊœЄАТСС€ЕАЊŸ˜—‹’™Ё„z…ЖЏ›ЩСЗЖДДŸФЧФРНРСРУжумйнЫЮхшРТкЕЄЌИШЪЭШгаФОИОЛВЏЅ˜’”—ЃЂ–—ŸЂ˜™•‚gwvqЯУФШЯййгзмЯбаЯйЭдлнстсхсцйззЦСШгпрнйздЪШНИАЂž•’—ЇЎЊЌЎЌНта–›’‡пммлтрмртсскнуукйжкпхьэшштпмеаакцщцумеЯЫЫЧЕЄБЧОАЅЄДЕОМАВЇЁœžЋЋЎтрпшцрлдЩЧЫбкспйбаЮбегейзмкемнзЮаЯагаЯеЭШОДМрэђэйЎЕЗСЭйрхёшуаДКЩлжбсххцщужЩЪШапхлдШНФЮжжерцтщыцпжбзкжжкмнсхээяѓюпЭЯШИСдадпнппйссзгзкдекйкмзТУабдегпунхьчццтйземчыщсдбзйамушыыгщхннртстзТЛЪЯеккеЯЮЭзеджлжннлЮРЭЮЦТЫШЯзжджкнппшдзктцлЩжплЮЯЮзлсрййлЯЮЭаа€”ЭЪФРЧйсеШФЦЪУЫЫекрщслгЦМЧТРООНСЧЩЯакрщыухрмеЯйлпдеЭУЯпухцлгЩЪблйгеаЮЧзхлЮдЪЩЧЦЗЖРЪглЩУЪЩЮЫЦИЕМЧжллнусцутснйжЭЪбжгЦОКЛЦЯЯМЖООЭнукежлпнмЮУЦжллдМЗББЖУЫЫ•ЮЭЫЫШСКЗМСЭЮемсучсЮЯЯжнмжмйдздЦКДАВРЦИСЫййагкжЯЭЄЎЖЦЫФЕБЎЃАТЧЭйждкммлждЫЯЭУШЫЯЭЭЦТЧФЦамусххрнаШКЗЗСЛЖВЕМУЫззњбггАЅЈ12974?^NICC?*B+-;;??>;;8;?9:;5@FIBJLIFACIIGMHC@?BAEBAECEIS[WLIF@.3559O]MFB:9:52.-,09;ABAABCHLFHPNFCH?A@C@8;998BHCCEF€2BAITPN@BG,378:4?;;@<;<:72.-157:BFMLHJOMOQNNPOIGEB:4802:;A;98@B?F?:@B>ISTYa2,271.7:BHH@448::488:23.9><>@GSdH4>@<983.,1.3.3>??CHJLIBCFHLNHIJ*&49:25;BH>8741.03:<:-331212EF@<989,479@FEGGJNPOJLML#,5L@<;AB>587011342758:><99AGGB>;@HH@;>;;CЃBA?;AA>?>HMMOHBCIG($379:3500.*.101,87::BC95?@FCA>EC><:@>79??>?>ECEHIHJLJJIHE?BC#$)-;3.07422‚4..204427:<;AA@;<;><>AA><8:8;:>@@9ABA;EBE@CGGFE@?:7+##**2!0CBCBB@AA>;@>>7;??BEBEGEEGC?CEEBFCAA50%4MQE:]MJJИLOFJGGIGHBGJFHHFA>?@EIGA;8APMOBB>@BCGLLCJLJOSS€ЭJGC;@EGJFMZWOG0Hd[NdggZLCTd`YVJWYMLSN[W[@<@@CGLJJNHEA@GQSUWOQWMWjbUN;8EOJCQYVJF^WNIFJTdkjj|oh‚wq}–КЋŸЌРТTI<;@FC^cWeVAFNbhi^CJSZb~mb`gu‰ŠЃААЃЉабУбсхгеЫЦглчњўўјщїѓсмчяыii]JxŠbexr’‡ЈЭЩУЪЫЧТЩцяїљ§ѓэццыющщєээвьчтэњўњђчьєђэёјљьшцчцщшчц›ЉˆБСЏМгуўўєюясйцяяћћш§ѓшрлсчшчшцуцчцчшччцшьяььгюэяыщчуутусрнЋЁЃЂДЩЗЈИшцнмйгЯбФЭппбзлбамнммррюпчыюяёёђёяѓюэьщьэююёрюэыццспмЪЭаВЏВЖЊВбьтзбЯбЮЭЩЯгежйй‹лммлйклпхшщьюьёђѓёёяыщчцчщщшчщчуусушчтНРНЗАБФждЪппнкжгабдазжзйкммплкжзййбЪЫЫШЦЭнмЯчєээяпннрухпзмккмнрнКИДЏББМхямтццхннмпстхрпусрмйззеейптххутсррнрсцтсЯзкнлхнжЪУажгЮдЗЗБЕКРЫєѕхтнппсусзббемкххсплкзжззлнммлзТСЩЯгбжеббдемундЧФВŸŸКЮаКК€“СЌДЩрслжгжнпкедажкрмйкзнрсрмклнпзлкйдбЮЭбжгеадпуяцШЦЩКЗНЭыўйУЫЮТжйкшщЭЗЦЫЭнчццрпнуцтцшыўюжзнрмлйкммкжЯЫЯЯедЯЫЌŸЈЯгЎЈЖЖВЂЁМгЫйейжеггаЯЫЮбжзтццчццтруу€ЈцшсФЈОтчцсйааггдкйклежйЯУНРЧЩЦСТЭЩЧШШЩЧЪШЩажзеджейужжцуруухтнммрхљљжТЯьссмдЫЫабзкмнрмеФЪЫОРдгЦШйьюычдИОЪЪакххлжжкклхщчшспххтппккйзТУЯТлпрмззйнпстссшсмктхцпхмннтуццьхйкўўњљјїхнззљтєшьцсттмХкймллпсцьыхшьсрпрлптутррнррнкеегежлпрстнччуххчшчсмклнсуснсшшудцххцшшїыюяььшцчшхцхчуцусннллдаЮгззжЦШТЋМбцтпплнрсспхшыыэщцучшыььыщцтхцхчыьыщщььшщщуу€ёмрхуррннгбзмнжЯЫЩЭЯбмкзйкейзкймпуцьыьэщцыышхуухчусхцчьыщышчсмйзжлнчьээїљєѓэшсЯепнппзнЪцюхсннснрклЯЭкяљчЮгзанмлнчцшщчыщштстухчслжнсшчшщчщэяђўўююхунлгххэћяёёѕрнсурлпШШЮжбйзлкззмпнрпнммпсруччххсррхчхуррндзмшцчцхтспйрнухьїтЫадзлмлзжеждЯЫЯабймспллšпммнсцхцчцхеЦжйнпупмлзжмсррмрмЭнкпкШЦкнЭЭжмспнлежмкхЕЇУЪдлнлмлкзгагжмплзэцчкзгбезпссмнтхсмзебЫЧШайжкпссКптуцшунсухрюгЖФЫгеззегЮЮЭЯадждеМЛйкЭедабелпрйлйкйбТЪЦЩШЮЮмйухычхццххсккЦпусзУЯрлЮбйзкддеаЮЭЮгедбезйкйбЯЯбжйежжЯгЫЪЭЮЪЪдкеуучььышчцц€ЖснмррхрѓткуыЦВЮбаЭгаЪЧЦЫгЯШУЦЫбждежелулщѓїэбЭгегЮЮбйзљїєюэычшщяѓэщюѓїђчшюяўєгЛЫЪРРЛОСФШЮєўмИКШЮЮазлпнмтцярШЭЫЮЮЪЭдзрнђѓєёэхтщюёђёѓёэьчххцхснгЪлнЪРМЧЪЭМе§ўзКИЭбСУпццуххсзгФЫусжЪФекнлђђ€нэчнкпыёёяюцхщшшцрнрђячлмтйггтѕтглшчщщсуэїўѕяэьчхцёјьсцњљщлззешшщхчхшэыцхснмцэющчхцщыыцщшхсппссрптчьююёяяюяёэюээььэщцсттцупмррхстуххцшхнйжлртхцтуухчєрЯмррпнрнстхыэюёяѓёяюяэьэюььычрнлмнснйлйнссхучщшчѕцтссруухуцтрпрнймрнйлхшш№щяяюёьюьшшщышщышш€‚чтлкмпсрлггжймуцччђѓцЛЛддкнсхшчуппсспрмеейхтщщюяёяьщцтусцщыььхчщшхцччшцхчрнпдпужагддУ’БйлйрбЩжпаФЭезкззкйпйШнууьэююэючутсхяўљзуїђыыŒьюышуннрнпўяЫТЭРЂЂЦкжжйедезЯЦЩЭкссххснждгдьчььююээхссмЪЧЂzЗшьшшщююёычтпмкйдШБЖаЭЪЯмдзеегегЭЧЧЩРбчмкрббхелрсчыьщмїьШккСЮуѕэющххщюяюяэьцусбдкжбЧј§умздгЯагббЭЧЮднзйхЮЋЋКеннлкЭрэюуцбОЮррђучхурсцчщыыьэщщ€луагйдедгйппйЩФЩЪЫЮгЫЧФШЪклчсТТдуйкжагдЮЫЧТЅЅТЪтѕмстснмнкнмьѓтюђссззгееЮМЕУЩЪФТЧмймкхЮННЧРмѕэЧбЭмЮДАЖЦШЧЧФЩЩЪбФбЮабжянйЭЪСНУЧЩессрмЮбйжЭЩУЪЩЭЩЧИЩртптнмйзмрршьеегЪЦРСТУЧЩЪЭбЯЯЮЮЫШЪЪЩНОФРСЧЫЯЯЩпэшзйзймббдагЧбкмьїжЯЯгжаадзжж›кнскшёщсклйзншййкнмсдЯЯЭЭЪШЪабЧСЅЫшпучцтмлклдкхпэђтЩШзЯмчРЇТкЩнсрпннпучтртдмчццхцчхсмзжебЯгжзпЪУТыубюю€ŠшцткюшыщщыщыщєўјєљєђўўцэљхццщьяюђюьышышхтпнййзклкмйжзаггКЁРУСђяьэююёѓѕђєяюяэѓђѓєѕѕїѕїёєѓяяьяёѓєѕїѓёёэющркжйеежмсучхтстўјмйггУїєѓѓёёѓяёёяђєєіђёђђѓѕєїїѓѓёђкёђєѓѓёђёющхдсђѓчужкшюычщщпмдттцшїѓѓёєѓѓўёяя№ёѓєђёђяююёёѓєѕѕѓѓњєѓђѓѓђђєћэуьћўўяљтщьщщэюяўўћєхщёѓѓћёѓѕїєєьяђђєєѕєєѓёёђєѕѕєїѕѓєє§ѕѓђђёѓђєєјљјѕєѕяэяяёёяяѓєѓєђёѓєєёђђёђѓёёяяюѓяююэюєѓѓѕѕєѓєѓѓбђєєѕєђѓђђёђєѓѕѕєѓѕѕѓђђёяэышэёђђёёяђяёђѓѓєђѓёюёыылщэыььэыюђѓєѓєѓѕїєѓїѓєѓєђѓёёѓєїѕѓєяююёёнюэяёёђёяююььшщьяєђѕѓююёэььщщыыэяђєѕѕЗѓјєѕєѓѓёѓѓєђяяэяѓѕёяьэюяяёѓђѓђѕєѓѓёђѓђющшшщэёюђђёђёяэыцшэяяђѓєљїјїѕєєѓєєђђчёяяююьшшьыэяђђѓёђѓѓђэщэяёёьіутчыюёђђяёёїяыээђяѓђєєђёѓёђѓђѓѓђєєѓђюьшшЪщыэьэюёєєђђяёейнђёёюшуцчьёђэюёђђѓѓђёѓюьэююёђяяээюээёђѕѕљєѓэцшшььёшщщьюёяяыэыярнт€З1B9:>Jmb\\TUGU;8AFHIONFTOOSMGLNU\]]^aZS\U\W`Z`]^Q\VVQQ\``bnnjaY]99198Qm]VFHJFI4277CFIELVOPT\[`V^^aYSQVMVLSHLJZY\UPS\[^[TU]cq^\ZZE;:?2HHIJPOTMMG?2?:@GJLWZ\Zb\^bb^^ad^[WQHMCNHIPPOLMVWWSS€“WY\caa\49>5>:EGPYV[HJFJB3@>?GHYYOWW\\bneaVWVNEEAFGANLHIGNPTZQSUOOT`jjkr57<328BLQUTNHBFAA>HGEG3GGILNQZ^wYFUVMIE?A@CL@NEOJNVU^[UVSVW]`^T`".:;3JFH[YJMBFA4CA<@5:8>AMF@EHNVSTIGOZWNOHNMGLITOLLJNTSSPT\QINJNQM##-1;?CA>??@7;7->7::IALIMMJCLNWLPMTOMBCFFBIINHMIQTYYWLSVQUTOMPM#+(&?<;>?C@BE;;<9B<:AEJLGHVTIEEFGIINJICGA?AGLMQQUOTPQMPLPIIJMHII#(02*+:QNPQQжOQTQM@SHQOPTYIG:5>?EHJMICGNCTPSMMPJQULMQJLL€eTOHJI.20:T^PFb\VTTaZYY[YQPWV]VWQLGOFICHOQMHEOJLBNQOTWSUSVNOJNVYT\ciwˆ5@AFSNMHNQVTPNW[\VTW\a]]MNFEHQVWIQYa[P>au`UpvucVM]rqm[O]bNQZVdad*C>G@EOWTQW\QMS[cpgY^VJWkk^QEE?YVJY^\[Ta\UONPQjurz|to‡qkq”ЕЋ’ЅЏЏLF;83@Mge\n`FGEdnw]AFQUd„‰vk\o|’Š”ЌЕЈ›ЃаЦЛШкйЧТИАНЪйѕўўђжшпЦСаддLWGGkuO]cZ}ˆjРРЗЛЗИБМтюё§§ѕьунпшцсыскппзбрјњђцджщхущљљпЯмкдЮдЮЦm‰xm‰~’ЉЦчђцнлСЕЫйсѓїёјѕыбЪЧЫгжлмслгжжадаЧккзкутрйймрсеЭЪОУШаШЛ|rqr‹ž‡qpžйпЯШМЖВЎŸЌУаКНТЗЏИЛТФШТОФЮпчлкллмчушцмгекцшяьцкдммЭСИЎЌЌА—‹‡vˆРеФВЄЊЋЉЋЊЇАДЌИМЕЋЖФНЗКШбдручцюёѓёђююужажжгЮзпндЫОУЩгжЫ•’ŠŠЂБЉЇРаФЛЕЏЄЁœЊЏММЕЗВЎЕЖЛЗЖЏЖЎЎЈЊЂŸЕЮЪЗаылдеСЕРЦЧФНЖТЧУСУОРŽ–ˆ‚„„ЫеЖНЫЧЦРЕДНУЧаЭМНУбЩИАВАЗЎВБЖФгдаРММИМТЩТНЇЋЏЕСЪОЎЂŸЖИЅЃЏˆ‰ˆ‡ŽЃнтабЧОЦЩЩЧЫКДККМбмзОБАБЌЊЏНСНДЖВŸžЄЊЏЇАЉЈЁ—ЂАЕВЄ˜ˆqpr‘ЂЈ‚…‰Ž}‰ЉОЮЭБЈБРФОВЋЉЋКСФСЗБДДМУРИТММНДВИБ”›ЇЏЈЇЎЈЛШжШŸЁ™‹…‹ЅехЗ—Ѕ˜ЕИЖЪжЏŠœЅЌФегЫЦСУЩЯЮЧШЭятВННЕИДВЕИРНЎЉЊЄЉЌЈЁ˜„k}ЅА~wƒqv‘ЎЃОЦТМЕЕВИЄ™›ЉЕИСаЫФЩЩЭЩОЩзпеУЂ‚•НЦЦУЕАВЎЕЗДЄЊВУЕЕŸ‘Ž•›œ’‰‹—˜˜™Ÿ˜’ЂЁЁБЖБАБЖИКЦЖЖЛМКОЭаЦНКСЧЫчсБ™ЉЯЩЧЕЈЃЅЄЈЈАВКНКЊЂ›˜‰ЉŸ’ЈУбаФВŽ•ЅЊЌМНОИЋЎАДТЪйскШСРЧЦФЕВЕКЖ––Ÿ˜КЖБЎЎЉЏЛЩУНУЩЦУДАКМЛЕЛДЖЛСЪФЦдЮЕЕўў§ўїячУРФЖЕЫчкЫЦФЦЩФРУОВАВЋККЖНааУЪгШКВБККФЭШОИРЦЦТЖЈЂЊДМОУЮкгЯзаЫбЮЪЯбУДЌЏМЪШКВИФекЭЦУЧлккжшхшш€CндбЭЩЩТЧЦдЩОЛКВЖВЉЃЃЄЌЎЋ—Ѓ~‘ЁЭЯФССННЧФЦЪждмдгШФЮдблрпЯЯШЧРЪагббЭЯедгЧЫзЭЦЩЦМЛИЗВАЈЊАЛЕЎЃœ‘ЄЕЎТВЎЖДКВЛИЕЗШгнмтржЮбпчмЮЦЦЧЦЩЧУЦагейгаЫОЗАЇЊЊНЪгЮЪшэтнЯЧИЌЗЖСКЋБЉбйЮЦМИИУТРНЏЋНпьЦЏЖЗЉБДЗОбйжШШЩЫЩССЧСКЖНЏЋЖЦЮплгЭЮсьяўјжЯЮЧРВЕНЫйљытмуЯЦТЩЫШЏŸЃБЉŸЗМБЏЋБМИЗИММСННЪЪТФбдЧСНУООЛФЦНБРЦлжШФЪЯЩУЕЧФШууђбЎЋЎЕКНЧВЂŸЅЃЊЌЁœЃЉИЦЧНОИЗОМЛУШШ€tЩФСА–ЇВЩгНМДЌЌЖЛНОЛЗТЖЋСУОЗЋЈРУЅЊЋЎЖТЕЋЏЛКТЧŽpŒ—ЇАИЕДЖКЖЖЌАЊМУУМжмаЋЅЃЄЉВЛРЕЉЇЎЕРКЕЌЌЅœЌЏББЛТЧМЦСЩбееЯЪЯФШЭБ‡žЈЏВЌЇЊЈžžЁЄЈЋВЋ‡’ЕМЁЅЇЅžЃКФЗЏАЛКЛЈ’•–‘—ЁЈЊЖЛЧОШЪШШЪЦМИЖИШЩЧЌ˜ЇТБЇЇЌЖЖБАЅЃ›œЄДДЏАЌЗОИАЂŸŸАЗДЄŸЂЇžžЁœ›ЃЌЋМЫгЯЯЭРОЦЧЧРЕЎЋКМТчЧВРТˆЅЉЅЇЉЊЋ–”Ÿ•”›œŸЋЇЅЄИТБШжзЯЇЂЈДЊЂЂЋЖЖђээцмзЯайнйнгрнтнЩехыђкЎœ––…ˆ‰’Ž™дцМˆ‘ЈЋЅЈЏООННбкуФž–ЉЉЄЁЂЈВМСђёяђсЮЯкнчьђхшыугЪзркЫУБЄОРŸ—™–ЌьэКŽŸЈ˜œЖЯШЧОФШИЌŸЃЩСЎЃ›ЋОРЗѓѓяђщйЧкшђёђшсптснйеЭгцнаОУЦЕБАШцаИИСЩЪбФамєўёпмйгдемэнЪгёѓлТСННыэыэшщщяэщутлтэђьшскгксщчскжЭФЛНФаЫШЯрчяшђёѓёєыэыччштнкеЮжтребалЯдлркммхплкзжкззйрнлнтђкРЮегЧТФаЭзмсмуыѓѓђѓёщыуычшхчпзЮЩЫйжгЩУЫжУЖИШЭЪЪлткзгЧЭЩЩЪбЯЭЧФКИДБЕЕ€ФЭйЪЫкучяюђььпнлжкнсмксбОЖДЗШаФИЌЏНДДУЭЭенуᨘЊЉВНейлгЮФОРМЖЛФСЊЖЮнсутюшумаббЭеежгнмеЯлбаШШУОШЮШНМЧВФаЕДАЉЋg‰ЈАБТЏЂЕНЄ’ЃДФРВЄЋАООЊТЮЦпчхцыпдШСШбжїђШЭупдкшычупЯФМЗМгћпЅ”œŒwr–ЏЈЌЂЁЈЌЊЁ–žЅДНЦЮйЪНЎЁЊКмгЯнсццжФЭЭТЉЅU’ЪЮЮзнзрхмЦМЛЕЕКЈ›‰ŠЅ›ЈБВАИЋЃŸЇŸ”‹‘ЋЭССЦЊЊЪОЎЗаздммТымЛЦРЇЦлЫЫ€­МШглнкйнЭЪШФЏДАЕЉЂхюТЛЕЋЇБЌЁЉБЄžДСЕЖШЪЂ~|ЉЗУСЕЉТйдЩбА’ЄКУУТЭйУЖЖНбпжагжнеЦЩЊЈЄВЋЊЕОТУВЁœ—•žЊЅ–—ЉЂЗКаЦ”‹ЉФЭМЕЉЂЇЃœœ•|t”ЂОпТИУФЛЗСДЗЗжпЩжнЧЛМЎЌЌЇЁ‹Š—œ”Œ‹”СИДСЧЃ‹‘—žЖхЯЁЌОЉ‡‡‘€Щ•’—Œ–Ј•ЃАЉДШжМЖЁœ•˜œЌССУВДЌДБЄŽ—–ЄЁŒ—КЪЯЩбФДЏНУШЦЮЦЛЊœ‘”’–›œ›˜—ЂЉЎЉЌЅЅŸЁЅ‘Œ”ŠŠŽ™Ђ™СЯЪКДДЖИЋЏЖЋЕЂЌМЛзяРЈЊВВБЊНЩМБЖАБЖЏУкЯТМЛДЉБТВАЕРТУДАЏЂ–”Ž™™žœ”ЋЮЫУЮЧШИЖМУДМЩМйуаЏЁЛЎТеœ{žОЃДКОФТЧЪЫЭООСАИЪзбдЯЪЩУКДАЏЉЏЈЕНЛ›—ЂдЪДтудЫЩЫЕлнлдЯамккыњёьђшцћљдачЩТФбрлупчужеЫеЯШФМЋЇЉЏЗРИЕАЕЊЊЉ˜zŒŒ‘шйдйкьыээђщчтчшсшђэѓїїђєђэьькйзхэяяюыхптйдЦИАДЋЉЎЖКЦФЭЩШЮєпЖЏЌЃžѕёэяюэщєёѕэьюѓёёыыьёєљјљєђююшххюђїєѕэщшшхрЪИЧпкЩФЗКЭЯдЪСУНАЎДФСУєєёѕєєэуллууэѓюящэцчучшыюѓюэьёытршщяюшцюэтЩмєўў€‚ѓЫагмчшюё§љњцЪЫйяюяѓѓєѕјёьсхпюђљїёнезчыьђѕєєѓјєђшчюёэщьяёюяїљњјјђщщселхыхьѓєёяюѓюёяѓшущщшьшмжтцчццэяюѓѓјјїяьющщѓѕѕёюьющчьђђјїїѕѕђєє€§юёькамсщююшцхчььщёэыьёюцлсмрннжтчютшьэёєюььёђєящюєэхшшцюэђюёэьтстыштрреныёщзйссмкнхэђїёђцпзнйбжйЭелрсцэѕѓјѓїѓѓччыяёьцпехюѕђєэпснуыыээщцуяѓячшчцшнаЫбкшяхнсхчпеЮЫЮнчэьёёјѕѕђѓээчлпюытнеблпчлЯЮдйшэєыьэяёящтекяёюыаЭШЩбнцтнхркмулаЭгзшшђѓјёѓёшцсчяэюяяёьщпЯЭФЦддГйрьяшщюыщхЛМЦлмкаЪЦОЪжхщышььяьящхкпкзпхцнммкнтхшюяѓєђђёпмдггйдЫУЮблцщььцчсФЗЛџ€б>G?;*)!0*+180:4;BA@G740$,4>;EitiY<::EC;E?:($059,0&-407AB94)+9;:5E;890+-"" 29CJHEA?85<>@50HViG3(%3:;:42755<52-"AG9?>BCA>?9C>JNH>>*%% FZHJI>5>8AA;>@B@FNkZB;7;<55.><;4-*2);iYMFE>:;7A>.^^nY9-++(:7,">::<919??;9:>71.00!(-0-4752FSLFB92?PHMJ?EFE@J<<72!&01,7;348@@BCEIGHB915--+"0@>5.,&):74404<:>;ABHJA?;9B;BHNJJNMOJNNPOI7A7?@8>BJICFIGFBAFIIMLJNNJNMFA?7EAAGMMQNPNOMIFHC53>CLFPSSNGEGHHAEJIMLCNHSMMIPOOPMMO€БTSOTWQNOC;5;EGJJLHMQNQOLFJHCCFGIJPYSPC?B;FB8?B?8>?>0107?<8A?FHIGPIJOOIGB9<-4931:HHC74517>3>8A@@?;8+,+292<7@:7>ACGJHIJG:8Lbq[FJQIFJF:NTVI77>139LYO-7?GI3***15OWkwp\\YVjŒЇЗЄzvƒz’ЦкЯƘŒ•’Œ‰’›—FOUV\QSjpnbS`v‡„rhrwoYPagq|…œДЖЗЖЊŠ…ŽЖКœ—ŽƒŠ’”…”жѓтжЗuƒŠ‰‡ˆЃžœŸЃ™—ЈСЧРЄЏТВžžœЁДА”~Š~…œЌЂЁ‘‰‰|n…ŸБЅЂЁЌЏЎНЅŒ’Счжхзžz™—•ЉЏЛЊœ–”™œ™ЅЈЇŸ˜›ЌДЁ™•‡‘”™ž‰™ž„……Œ”ЅЕМЏЂ—–›ЅЊЉ›”˜КЦБЃ™‘Є˜”’ŸЄЃ›˜™Ёœœњ›˜”–—ŽŽуŽœЇЅЄЇЌЗЎŸЁŸ™–—›ЂŸœ›žЂЄЄЁœЉЉ€œ’•ЁЊЌЇЉИКИАŸ˜ЅДЊЂЉЈЂ•–‘—›ЁЅЂ–ŒŒ‰‰ˆ’”‘•œЈЛВБЕЅ˜ЂЊВБЗКАЇЄЈЎЏЁ’‹‹’‘œЃЇЊЂ—„‡Ž›ЁЂŸЊЌœБЗЗЊ™ЋИЋ—™Ѕœ•’„ˆ™””œЊБЖЖАžЂВУЭУИЋВОА—ЁЋВЃ•—›ЄАФАЇ›•—˜™ЃЃЄБМФЅ›”˜ЂЕКЋЈЄ”–‘—œ•—‘——œЖгуцклЫЗаЯСЄ˜ЄЈЅ™™ЌФМЈЈЏОРФОЎ˜ŸЄЃЁЁžЁЄАВДЈЉЈЄЄЉЅЁ™››ƒ‰ŒŽ‘”–ЅЏЖДЖРйумЮМАЅŸЁЏКЗЕБЋБДАЄЄЂЗТЧФЕВЋЉЉ€KВМШЫФОЧžЄЄЂЂЋЈ›ŒŒ›ˆŒ‘‘–ЂЃЉЖРНЎМбтЅЅЋЎŸЃЅЌЇЋЛТРИЉЊЕМЖБЎЎБЕЗЕЋЅЇЅЌАЅЊЕ’Œ‹‹‰”œ™‹’•‘””–•žЃž˜ЁЉАКЖЎЗОВЋЏЈЎЏЋЎЈžžЉДАЇЅœ™ЁЅЈЉЎДЛЖЌЎЇЋЌЏЏЋЇ‹ˆ’‘‘™›ŽŸЊЉ–‰’žЊЌЋЏЕОУУССКЎЇЎЕКЖЉž››ЄЌЕДЖЏ˜˜ЂЌЕЗЗДЗФзннеЧНКСРОrvquxzvmЈЇ’ƒ›ЈЄАЗМЛЎЅЌЉЊЄ˜–ЂАСЫНЊœ—ЁЊЈЇЇžЁЇБКАЄЃЏКШззЮШОЖВБВx~z}…„™ЋЎ’ˆ‰ЋЏЈДЩжжнРЄЁЋЌБЏЁ–œЅВЗЛАžЅЋЈЈЂž›ЇДБАЕСЦТЏ—ŸЏШайЯТР—”‹‰‡••”Œ~›СгМОБЈЏЏ••™‘ŸЊКА—”ЇИМЕЇЃЊЌЂ›ЂЈИбЧКОШЫШНДЈЎРЫЭЭануЋЂ—ŽŒ•Ђ•—ЅЊ›ЃЕджаНЕНФЎЁЈЉž˜Œp‹ЛЧЊЄœ–ŸВУЪЧРНШакйкннйзнслЩШгЭЮжеЯЅ›œ›œЃ”˜ЉЎЉЋЗБЈБЛзйЫЎ…qދސ‘ЎЫФИЖНЕЉЅФлмнрткеЮЧЪлухчщхлЯЯЭЦайкгŽ›Š‚ˆ’АОШФАŸ•„„”{w„u‹›‘|ЕшѕёлжЮЪНУЦЫЮблпннмгееЭЮдбЪЛДТЫККФЪЧŠ•Šƒ‚ˆ’ЊЖБЇ‰v‡„ЌЩЧД–’ЇЇЃŸЈЖНОЭЮЦФЧЧбгЮЯзнммкеегЯЮЭЩИАЕЦТИОТЩбнг‰ƒ‰‰…‡ˆŸНеЯМЋЎДШчщпйКЅЌЦдЯФЛФбйзмпццрхпгЯблрзЮЫзкгЩДЖРИДАЕЧжже‘Ž‹”Ё•‚|˜ДЩйжМЊЂЏЩТИЖЕОЦажззжйжкчьыччцпгШЦТЧгзкнреФЛМТЦФФСФЪгЭСƒˆ‰”ЎМЖЉ”„ruŒŽŽœ™’ЁЄЈЋАМблмббзпнсцчцнбЯЫаФССЪймсркЫИЗЦЫЦКВЛЦФОМСЇžЎТТ€ŽРЂ‹‰ˆ„ŠŒ„‹•žЈВБНШгмпжбджзлкнрэхдИЅЈž—ЗазмрпеЧЖБКСЩЯЯагЧЖБО—ŸЂЃЃŸŸЋЧЎ˜Š’’––ЃЊŸЇСббдеййжряаСФОНРЄ—’™˜›НелжЪЪТОЛЦЯееЯЪелжЮВЏ‡‚‰‰ƒБЩСДЎЉЉБРжрмбб€йзеейжпмЏ–žЁЈЗИЖБДННЗепзЫФЫЦФУЫЫЪРЯйзеЫТАЅƒ„…Š‘‹‰ЃЊЕЖБДЖИРЯкхцххпнмгЧСВ™•›™ЌРНЕИНОЧССЧЯЫУЫгЯЩаклеЮгдЯаЯТЎЌŽ…Ž–—–œ—™ЄЇБИВЎОлмртххчунпркЮЗВЭШСБЈЄАЖОЫЩУШЩТКЖРЮжеаЭдгЮадЯЮУЕЗЃœŸ›•Ђ•’›ЊЄ’ЊЪжклйкмтчььшцрлдЮМНЧЪйлмйШЛЖЏЏДИШбдйЫРОЛДЈЎИЛМЛДžЄЌ~™œ™—ЎФЯймжлрйдпуухусуух€ЬнйлртунбОЌЈЎВЖДЗДЉЌЊЇЅЊЋЋЗКДБВЃЎАЊ–—ŸЋАЋЈЄЈНгбдйкллзймступпддбйуутнлнтйЧЏЊЖРЦФЭзбРЛКЏЉДУУЛИОЩЫРЧньюмжЪОВЄЁЇКаебмпсрпкегЯжжбШШЦжнпмнжаЮЧНОФЪЯймртрдгаЯжнрптхчтйШЯжзЭШННОРКИЛТОИЖЛЦСЗЖЎЋИНУСЛКЇœŠˆŸИадаЧИНЫйрхх€ЫпнзЭгззерхсррмзЭБЛМЕДККМЊЃЋБЎЎЕБЖМЪЗЄЂœЊРЩЗЄŸЁЁ”–’ЇЩгаТЗЋЊИШжппкйаЭРУЩгбнцжИИОЭФНКЗУРМШЭЯЮЮаНАЊЂЂЅЃЈŸЁЌМИЇ˜‘˜ЊУШреОТЦФФКДДЊЂЌИНРСРРЦФСТИЅ‘‰‰ЁЌЊЁЃЂЇЗСТСДЅЎНФФКЉЃЈЋЂ–™ЉЏЕОСЊЈЋВЏМСЧажЮЛЌАБЏЎАВИЗЕЋДКТЭаЭТЖЊЂЉЋБЗКœЂЎЦдаЫДŸЄЈЏВАЋЄЃЃŸЊЛШбЯНВЌЃДЩЮЧОНИЋЃЂЌЗМОТМДЖИМЩЪМВВДЖВВИЦФАЌЏЃ˜~|‹ЉЁ‰”–›ЉЕЕЉЄЅЅЌЗНРЖЕКЦНЏКРЦШФУОБЊЗМИЦЮЧОАВШЭУФОЎЈЃДЪЧШЫТДЕЕЃЃœ•‘Œ‡|{nˆЉЕЏЇŸЈЉЂžЁЊБЌЄœ—œЋЉЮлдгзЪАВОЩШЮллдФУЦРЦЩСБЈЗзнуйЫКИ̘™ЇЊЇЂ—”ДУБ—{Š„‰Ž•›žЂЄЇœ™ЁДЪЯзмшщпеУНЦаЧУШЩШФОТЧгйЯШОЕЛФЮййлтЭЅЂЄЋЋœ—™ЄБОРАŽŽ”››”Ž’ЏЗАЊЉБФФ€NШЫжгЭЫФТШЮдеЮФФЧУУгнзаЩРЏЇЗапрпсмВАДШ…‰’ŒЁЄŸœŽ‹’ЊОЪЌžЎФКБЎБЛМЛЧдллзмкСЩЩЪЪЯгзгдзЫНЗБНемдзтЎŸЈБ‹uЇ„ЄЌЅœ’ŽŠ‹‰„z•ЉЋЌЗСЦЧЯезйгаЮМНОРЮжжкнрммбЫЮФЩгззк…w|oc~ˆˆ‰ŽœВЕАŸ””ˆ‚‡‰Š…ˆˆ‹—ЁŸŸЁЄŸЄЈ™ЋИЗРЯдЫСЮЯбзжЯЩймззгЫЪЫЫУОЯмx‚„‰ŠŽ’ŠŠŽ‰Šztt}„‡ŒŽ•ЃЏЋ‘—СЮНгекйпдадпмЮЭЯгезЩЫЮЭЦУСЧм‚‚’ЃЇ›‹•žЁ•’ЂЉЉЄ›œ}t‡‰ƒ}ƒ‰Žž—–”‰‡}‚ЋРЪЮджлл€QкмккпмдЯЧЫЮШбЯЫалЋœЂАМЎВБЊЎДБЈЂЄЎЕМУЎЈЃ›ˆˆ~‰ŒŒ‰‹›˜Œ~j”лэзжйзТВДМФЭЫЦОНРЧЧЭагЭЯкйШНБЕОШЩЦУЛЕДВЂœЁЈЋЈЌИФœŽžЅž‘…ŠŒ—Їzr‘СрлсщеООУМТЫбУЦФНОНФаезШЩЧлЮЪЯЪНБЈЉВВЗКЕКЛЊАСУСАЅЋАИКДЎ‘ŽœЊЦНŽ}œЌЃƒ|›ЉОФЮЯдйШЖЗОТЕЎДИОСМЖДгЧТШЩОБЏЖЗМЫдЮаЧРИЕАЖРЩУНИДЊŸЃЃЂЁЄœˆ–АЎЄ•…›ŸЈЊЛЦСНДЊЉЊАЎЌВЋЅ›ЈЊЧЧФЩШЧФОНМДЎЗКЕЛОСЖЛААРЫааЪУИЊЇЄ›„ЇбНДДВžЃЗЛЕЕДАЖЗАЎЊЋЌЉЎОМБЉЋЎЩТОЭееЯЮЮУЕЊЏАЛКЛКЗЖЛЭгЦШгЭЧЯебазбКАЫжеЭВБРЖНамгКВЏЅ˜ŸЎЎАЕТЩЧШЯЪЧФРЧЩЮейЮбедТУтѕтйегбаФЕКНД‚tŸФблеЮЮбЯгйжкрйднпзЭзкШЦЫчмЮФФЗЖНЧСРЦИЋДОЦжккЯСЗЫнпйедджаКЖЖАЊЉЏЎАТЯгаЮбЪТШждФРТапцчшсннлЪУСОЎЋЕАБЕОЭЖЕУЪЭЯдЪЏЋИТЩОУджЩВЈЄЁЁ™ЃМУМЖЕСНЖЕДДЛЩЮНДЕЛЮзккнлмлкЩЗМШЯЦЕЌБКъB?GGIBB3?CE@HHIBEJMFA88ыAFIQqxaBAFCB8GJH1,<;;€Љ78:>;;BAA><8;<;>C@?@CE@><38.23EGHLNMHE@?BLGH:NdtS;:5;;@BA><9:4AIB?FHEABCE><:80&7QYPQNJIEFCCMTOGHEZq]FC<;8;1))79:5:;?BJVSPGALMPNWOLE:A@:BGLNMJJ€NPUSPSQIBEA?<9;;>>:>85>?B@BCFCCHG?EHIFJMMLIELEGFA>BCIEB>CCHHB@AEIHHCCGHEHJHCC?><>@;>@FIFGFEB?CBIGHHLNJNLHGJGF:@>@CFOUQMGGHJHGHLLGIOLJLLHGIAA;ACEINMNNLMMIGA??BEHCMSZZPLGB>?BAAECENJSPOHGEIJINMPPSOPPQNNMGB58>@BAEHIJMLHHFIHGFGIJJNOOSGFB;BAG<@><@@BBE?<<>;A>EGC?BCJJIFFE@>3;<;@@ј;9<<@ACFF€‡@GF?8HPF@IBAEG>HF>EHEF@?:A>::5>?EEGJC<:<3.7IGQNHPGBCHJJLUQJCMHPOO[^VPMPNLEG8@<+CSU[^e^YPPLZUSU>arˆbLSPCNOJJ€aFOVNTNM9OVOMWQ[OUV]SPjhd[OINFLG;@)E^pb`]TPSQSNWVUYYZj„t^LQLPNJUVPVSQUFJ1Q‰rcdZYSOPVTM}viYNIMONNG8EYT[VPQJMVUSZPSOLOGB9:LF@GFJLP\\aVZIPPddg^[U]NNOONQc`a\aTQPLA?N44>8>AB:A?@HQTQFMEGG>B;>LLB>11+2990F:;9;057;*0-893)-.-02.,4;<>BA42>AGMMONHEIG?97<431#$).0037?C--59..€R2*)&9>;7?>?A:>::@EIMI@@HQUTVMIC@?:8.,.-+&#$%%1GIE;2Qagk‹74>GFE9591248CENNLO@;AFHJBA93%$$3AJTh‡–Вђїѓн3C@FJHECC@@HMIJOIGIB8AEA:4+2A;>B88>-0$*:B4::@FB8;OgxЂЗƘ’АММОЪЦЋFLGIBCNAHC@?CEJLEHC8,;A@A55>?>C@A5B>2;@-%8NLGSakŸЂАИ—ЋКЗЧмгбЪОFB3(0::>7071@<::AB>:1,--0+.4C:-;EJMTcgcv„’›ЊЩджОВЊВДЦШЗЗЩазЮФФОКC>33,32987)1.$"*!!-F@;51));NEH`h„ЛРЊЕщюнИЉЖМЎЉЄДСШТЖБЏЉЋААЇžЌУЦ?7&*IL02<:?@C@@AABEILIH?BECE@BCLGECFCFFLMAQ?A@?>;<;9<<>@BCA>;59558;>AJOQFFIJNW8:>?<487;;?;<8;99::@?;99<:4><:>@@BFB@@;>9?AAOIIPGLPGF`{”ИЩгШЩцёьыюьщGHMIMICG@EC@AHFCBEF@?;BC;AFNQNGTOFOOIAM\b]p‡›ДФЮзпФРйцюѓѕяэьшAC@899CGJI@@>A@;>EG@>>AABFENLPLPW]ckt}„ŽЅБЪпє§ўяцухщѓїччѕьээююяяFFм@FGFBAAGC<>73,48BSOOILE@Qc\\t~ŸйнЯпўў€ТытуурпцшыььцспуутрпцщщяFG?>Y]JCP\TGA>@F]ZUY^Ua|…ŽЎтѓсйшхщњїщдЭсшцшчтстцщэышчтпухшшттцяьhp|~‡ƒ|…˜™›ЁЊВОШИКсюпшцкдуяячьнеклмлнптчшцчцчшщшыэычщщььщшхччшшзпйекЪРЮнюћњчЯЫЭдаУзнжьмккййжезжжйннсушьюьээёюяѓѓёєђёюяыыьэыыягйлреКЊИжрснйбЭЭЯЯлбджббеЮмнлйнртутхщььяёяяэыщщшэёяююяёюю­ьюээюяыћўѕчхжачщржжзезкмррсмгТЦнѓњђмкуяээьёђяьээёэшхттшэяююэыыэышшчхцуруххтучшчхжкззјнстммруххёљѕђяяющщэёђёяяёёФэшчшчьэюёэььшчхсучцчыслкнручщщшйппнншшцуммннттучыьшйЮнђьэюэяяЭэььчхчцчьышцшчцхчщыьысннуљэюэюьцпнсшьэяртркмушшуснллЛжньюѓэчххшщыцшычцшыщэыыэёяэыщхтсуррмїыэьэёёчэїўѓєўяьшхцёьюыущчђњћїяюээыљьяюээьююљђёююёэььыщцспьышццчшшыыэюёєєђюзсйШйпёёђѓѓђяюэыщщыщьыщччьэююяьыыьяђђяяюыыэяэщхђѓєяэыштхчщюёѓющцчцпмптшэьэьээюэыщышшцчуухччшььыюьэёяяђюющщњьююэщыыфьшыюёяюьщтуцчщшщыщышцшщэяююыысщшььщцтушяёёяэщьщщыююьэююяяцххццЬурчьюёёэыцтрхьэяяёїшерїящыышыщщююяээььщыьщцхкктнтцьээеђёђяыюяэычутцьюэяяюытнртхщыјтФдезйпццттсухыырэяяёюьшцттуухчьяэёяђђяюьюьюээююээ§юяээћѓяэпццшжйежтятхѕьышщыщыщчыюяёюяяєэьэёэюяђяёяђђўэяяыёююёѓђѓэчркЧяђѓѓяэшыььсєљўяђёюяьэяюэьэёяђѓєђюђѓђяёёђђёёияёяёюёюђююёђяђьшхтртѓьяяэычшыюэщшыыяьыщююѕяѓѓђёёѓѓђюяяъёѓѕѓѓђђэюяяёяёђяёђяэёыычшэёюяёюяыщщцщыьшцчщяююяэююёцђєѓєёээьэёёѓђєѕїѕђёєђѓђѓёђђЁёюыычшыёђєїїєѓђэчссчьяьшыььђёяьщцшьюяѓѓђёѓююяђєѓєѕїѕєєѓєѓѓєяяёэёђёёђюяэяёѓєѕєђюьыццьэёёђєѕєёююььќэюяёёшяюшхщээђєєђёђєєѓєђѓёђяёююёчђёєєђяюяёяыщэьэыьыьюяєђюььДэёђѓђђяьщэяёэьэяђёюёюьэьэюђєѕїѕююёђђѓэюяяѓѓяююээччшщчцучхщюёюяэюяђєѕѓђюышэяёёаяььюѓёэьшуучьяяђёыыяяэююьюэюяюьццщчщщььышщшщьююыыцьяђёїюрзбсяяёяюьээщщэюэюэююѕёђёэёђђюээяяцђёэьщцщщьюяююышшыыюэьчщьѓђђњшЮнпњююЬэыычцхууыюёюѓѓђђѓђюѓѓяьшщюђєѓяэщюэёююэёяююэьщщьюёѓєђђ‘ѓљјссжцэьыыщхссхцшщюёѓѓяёёююшыёяьшщыюёяььщьэююяьэьёэьхтццыяюёђёьчцчьюээюэыщхсртцююёђёюээышччхщюёээююьщыщхтутцыььњыэщутппЫушыыьщчцрушьыщусхшыыччьяёёююыщусрртыьяяђяьщыыхстушшщььвёэьштммннруспсшэьыщцчцчххщюђюычщьюэщщусущшшыщььщќычцххтщышыэюььяэьрййнтннппруцшьюёёђўўяјюээюьщыэшппнммхщщкчшцтрчштсццчшцшьэьшхчцутсртшыышцхшщщэююэіюяюэьяђєђяяїщхухркмщььєчцтцыьщцуцщыыоюэьшчхуухчыыщьыцшшщяђђёящцшюёяюяђєєуђёђяяььыштьяѓяээююяђяюээьыыяююпэыщщшщщьщщыяюяюяюёѓђёяюяяёёѓєѕѕєѕѕўђяяьёюяюђююыьяюяёыышцшьээюљьшшыьэююёЦяэыхуыьэяёёяёёђѓѕѕїїєєѓѓђёђѓђёяёяяьмсмйсхцттушччхпнпсттцчшшчущыщчуппхцччшщщыыьяёђђёьхтучыююжёђёюэзлмсустчшэьшхнкжкмнррсчэюььыяюяэыщччууэцччццщььцххуххчшчцуунщшшуссхцчыыщыэюьснлнмнухтртьююьчшыээмьшцучщьэыэщщцттхщэюяэьщшхпнпмлжцчщьээхыщхумппхчццчщыыэяёюэььэюьшццїчщьюёюяьщщчцщяђѓєюэшуммкнптцчьэюяэщччСхуцшыыюэяяююяѓђящцыьыюэщэьыююяяюёюээюэышшэююьшцхцхццччюяђєѓёёэььэьэюЭђѓђэяююђђёёяђёђяђєяэюььюьюђяящххцтхчщььщэышщёђїђяюёёцђёяёэьычуцшьэююёђєєѓёюээьёёЌюяьщухчюђђяюьщчшуцыяѓђёяёёюѓђѕєєюђёёѓђяёяьщщчхчщыщьээяёюэшчщьёѓяюыыьюьыээюющьыьяюђєѕѕўяээыѕѕѓѓђёёяђюёђёьшсмсчэяэяэяяюђяюээёёяёюыццщюѓёяюяышхшщшыщюєїѕёхрлЭєѓёцхчщыыющэьыыххчыёѓђюыхуцшыэьыэьэяёюэьэюёюёяэшшЬыьщщсныїјэтййеѓђющххщюяэщыуушшщщьщчуутчцчыщщььцучьэююаэыщщцучттшьђэыцснлннмрнкђђюьэыыььщчтрхшщэшчуусхшшѓщьээьшшхшьщцччЇцччшшчхцчшэёюящьщшщыэьчђѓяяэьыыщщцшчьюэюээьёэяяёэьщцхсрстьэыьщььыюэьщцууцююђёђящччыьыььёююЗэышыььяљњєєёяэёђюяэщшхрпсшыщыїюцшѓљчшчщьюэыээђєѕєюэюэьюэыыьщчхчыюђяяєѕїљјјѕЕѓђёёющуттррушээщлбНВЪркхщэѓєђёяюьюяыэюььяющшыыщхцшыыёєѕїѕў§ѕшуыяѕюэщчутущщттєчщчёчкбШмѓяѓѓЉєђэштцшыэщццчуцхцшухчщщэёяєђњїцкаЦШесььщчцухыыьчцчыхтЭтхєцьїюьыюяяьыхтшцщшэьщщыччттхыыяяпюйЮмлдЯбЪшшэюэшхццыыщшыэюяьццхушььёщтцэёьшыхшщшчцшшФьщььчщшьыььээшхрммйежптцшчцхщяюђяэююяэюьыььээяяюэьэщыышччщыээрюяёђёэчщщыщышцхтрспннзчцчышшьыяђђфѓёюёээыяёђёяээщхннймттушыюђѓѓёуђёхцучьщщтнлзлсццуёјђюыьээёєђђїѓёюяюыэђээЬыщчппЮкмухчыээюяяёяююяётйЦЫрчщцттмрэяэюђёђёэыышцшшщююŸёюыщшыьщчщыььўшйкршэььэяёѓђёђѓђяяумпЯучщцхщэюёєѓёђяюэюччцухтхчщээююыьэыыщщьёёђёѓёѓѕђёљєшшђтгмцйлк€аQOPMLUSNPETWQOJGMIJLNNJPHSMCHNIOJNJLALMTPSPLJMMLGJGMLVQOQPJJOVI^QJLOILQPLHMOMLJ;HGA@FHOPHIOIHPLPNZY]ULJSNHIGEFCH;><95;MTT]OLNTPULJNHJI@FFIIJPNPMJMEMICISOSTOJHSWTWWOMIEJB@?CGEHG?B7:7L\eTLA`u{‚ЁPTT^ZSPLAIBPMOUTTљJOGMLMLLоJEFINLOLFA;BGC;F@EIMSL:54FT[hzЃЏЪўў€ЬєWLNSW]PMJLOSHJNPMJLJHHLMLCBIBPJSQEFLFFNMUINTIWZMG\x–ВУЧЎЋЯкбанкЪQ\UWPQNPVOIIMPUJJMFECILLGJILENTZUO\ZJTQE)&здаксунзптЭНОЫЧСЦУРЩЪЪЮЯЪШЫакчщыэђяђыхмдЯЯдкйбЫЮгзддЖS%FV322B;1)бЯРЮкдЫШЧОКЉЋЗССМФЫаЯЮдсххэѓѓяяььээьраЩРТТЧЭебебЯгаС—?&,3:;1#"СМНЏЄ˜˜œЂЊЈЋЊЏААБИечщюэяёѕєђђєёэщырзбЮббЯЫНЕРУЮснМr149A92*"!ФЪЧМАЁЇЄЃДУИДЩРБйѕышэьщюёёѕьцхццхцртнллмдЭСЗИТЩкуЂV+*9?>:*)"!+ЊЎЖЧЭЦРКББЧхнуусцыэюёђяююёэшцнжЫЫаебЮзкжжмпгТЮпп€7ща„;!+%.0)+&*ЎИДЎКЛЗИЖЎВЭйпцэяёѓёєёьчхщхмждЯЯЦЭдЫЩебейпнзмчыыђюШzJ-*,"))$ЇЗМЖБЗВБДЎШухыэюяѕєєяырздейсйбЧФЫзйЯЭзйадЪФЫЮЯйкттЋV>NL!%&!СШУОМЗКЩзпрэюёяяюэющрйЯТЦЧЩШШЪЭдннррлжгдЮаЯЭШШУЧЧЎi0&  мндРИКЧкхцьюэюыцркссмцскбЪТОШЯмутрлжжЫблзклаЩМБЎНДi80!(!"%нкбУУЩежкрсррлжлеЫЧЫЫншытйдЯлттхтнйжйжЪЩЩ€ыЪЧЗЏЌЇСЕU&"!ддЯЩзрччэыьхжЭЭЯгЪЭаЭккздЪФЩжмрсмкаТФРСТЫЪМДВАДЫеЗT-3$""#&ЭЫЩетхььюььудЭазлбглйаежйпртркдбЧСЩеЫЪЪТШУУИЏЖНШбА@#?<($(+*)(.14жеммпстсмежбЫЫккееклйхыяэцмЯУЖИВВФаббаЪЮжЩЛАЊЎЛЗИ•?4A83-,$*$#снсркдкннлмнаабЯелпухх‰нплйШЗВЌЃБЕБЖРФФЮгТНЪдмймцБ]BI:-#))-нмкмдЫЦТЪазссллпхрсуунлбЮаЯЦКБЋЅЊВЋАРЭЭЦРЖААРЮзђюЌB8F:4,,284.1*$зеЫТСМОРУЫжейххпжеззеаЯЦСРЪЭУЖДИМИНССРРЖФТЌБМЭйэЎG4>&137<5705>AСУЯедгаЪбкупдймпгУФЯдУЏЅЎЖЛОФЭебЪСМСЪЮЧТЗИНЧзмтяјнoFG.38<7;.+)$гнхх€рнздйаЫЪЧЯШКЏДЛКЋЉЌЌЊЖФднрлкебжкущулзмхыыхлсШo?7.3)+3139,цчцшсусЯШЮрччзРВВКОСНАЂЃДТЯейкЮФЭксчшьюёыьытхшцѕјьF8(**090!(243хцулЮЫЪЧШУТЩЯЦКУШОИМФКЏЌДЗФЫеегатьяєђѓѓђьсрсуршщѕј™5$#1#*(1&(02+ЯЭЫНКННСМЖЗИРУТЮЩРЛЖОРТЦННФапуьёэшыэёэчшпршьёёщсьщЄZ?4*")%%$1A@;МИЖЖЏЏИЪЫИДЌЋЎВНФУЩЭйзднпучыььччщчыьшщхухрсшхмйбггМ”`4#-)%(5;;:ЋЎЊЈЈЅАКЛКЏЂЂЈАЕДШйрыэёяђяьэцсхсрпухтццслпккЭЖЌЏЌ›qPB:.+5.2>;;<ЋЊЈЅЎБЕЛШЩНДБКЭзуышюѓѓ€ЉяђѓэыхччтсллчшуунтпдШЮЮЫККЧC:??*1)0097:;ФМДДРУСТОЪбнрряюяёѓёёээышщщыцтннхцщчйУЗЧлзОРЩЫЭИЏИ–O:8;7;:7-1895ЭЛДСЪбзнсцёёѓѓєѓѓёэььшчшщуттпгажйкмдУУЩШакгббЪРНЏА}9BLA3025%*25+ўёяяђюёђёђђѓђѓьчыщээ’яюёээыьыьяюёяяюэюэьычцычыыштцчшњњѓѕѕѓђёёяьэяюэыььыьэььэрЫлсуцушыяышццщыьяёяђяэььыьэщусхуутчцуцьяёѓѕѕђђёэюэяюяыыэяЯшлпнтчшыэьээыччшьюяєёёѓэьюьющщшрцчшыщыэюяёєєђђьыююњшђяюьшшэщшщыюэщхчщчшшэяььхууѓчыьщышцхццщчщщМьюёёђяяђђюёяэюяёђюяьёђюшчхцхцщщышшьээчцуэььрмлпуццшычщщччььщюьюэяђёяяљѓёяяёёѕѕ№ђѓђђёюьчццхччщщььыІэщччшѕщжТймхчыщхщьээюыююэёяёђђєѕђђєєѓєєїљљјїјїѕѕєычтхшшцщщычучцыщыыщцрегбзсцшэшщыыьэыыэяяђђљёѓєѕѕїѕѕиєїїњљјїїѕѓыщыэюьшыьщщшхухрсннпсплакцђююььјюэяяёѓєђђсѓђђєєљїѕєѕѓёєђѓєѓёђюяяѓяђяёюыыщщэштртрсутупсюўђѓѓёюёё§ѓђѓѓюђѓяяёяёђѕєїѕѓѓёёђёёќэюяёёеђёђђюѓхнмрттччшэышшухшюяѕєѓђэяђђѕѓѓєѓђѓѓюэђђѓіђѓяђђяѓяёээсыюѕѕђяяэщэтпртцххшьыыьђёёђєѓѓђѓѓіїєѕєѕѕђѕєѓѓиѕђёђђѓђђєѓёђѓёяђэячцыѓёёщчссцщщыээчтуыэђђяіьяђёђєјѕѕїїјѕђєєѕєєђђЪєѓѕєєяьыяююёюёяююёюыыхухчыяььщчухшэёяѓёюыэыэяёєѓѕѕїїѕѓѓэєѓяяэююёђёѓѓёђэяђяѓѓэёѓщщыээяюэяююэыьююђђёјяђђєѕѕєѕѕпєѕѕѓяђђёэюэюяюэяђяёѓѓєїєѕїѕѓєѓяьююЗёяёюэяюёяюяђђёђяьэђёєѓїєјѕїјїѓѓёюэюьэяэщыыяччшыэюяђђѓїєђђююэёѓђѓєђёђёяѓёяянѓёяэююђѓїєїѕѕјјѕїѓёююььэьыюэююьшюёђђўюээтыэяёѓёэђђѓѕїєђѓђёђѓѓєєђєёэьэюёёћѓєђяўўіђчышшыыээююцэьёэяююяэщчшщыьяёяяђѓђђёђяя§ђїѕѕзѓђёэщщшщюяюьэёреЧИЛЧлрртшыььюёюьщьщщьшцуттЪпдкстцѓђёюэььыэяёђёюээєщыщычццщххутрхрпнтцщчшщыыщюёёюььэ№ьусмкжкмннпуєѕѓёёђюьэяёюычыыптчььщщштмнрхчхушььыььыьэяэьююМёэычхтхтухпкзкѓёѓђёяюэюђяюэьшупмттчцщчсслктцшшыюђёђяээыыээыюэюэщыыэююышётшеНєѓђђёыцщыыээцыщыышшхухтснлстчьыщьыьыыэыыяэьюэюэюьшчщьээчтпплрынжюёёђёэыышчтспнптчшщщхцщшщщыьшцхщххђцхшщщыыьыэююэююаэщхсцззбейзкыюђѓяэхстпнйжжлннутртхщьыщшччуутццщыы§эюяяњьэычщээыфщтпкеЯЭднжбэђяяюсемпнздезмсрррптяээщчщшюэычхшчыэяёэььюьыцшььычч’цхпйббжэўўыјытруыђнзжаббкртрнклстэюёђђєѓёђюшхтчыщьюяэьэьщыэўчнмппрпкжждТгйзулТджйлнмнтлмррпнмнтшїяёёя§ѕэёєххтццќчыщыыэпусЫеЛЕЮджмрцтнййЮймыхлжбаемтчщххсс€ЮртхщюыььшзЯгнпмпцьящэыхтппрмкждбЫЭгйтухррнайрЩссрнлклсхсккжклмнпххцыщцрптурсутччшщээяьхнклмкжзнкееклуцттшюхщЯvжзкнсчьщчрлмйжйнппнтцшшхрпнсччщццхшшыюьщщцпптхблїјлцтхцуснчКx^V9здЮлцшцчыюўјлЭујщрлмрнмлйкймтыыххьутхшыщьыээюэюэяюьэыщщррэє‘;NhYусьўўьышщыьчптччхрмртрнппякпсчххцыьщэььэяяёёПѓёяђяюэюяјљшН‚C$4A@ьщщььюыщшыэшснсурУбекйзймнупрцхшчыюэёёђёђёђєѓђђёХяђ§ўўЎNHE81?<хщьыыэчслптцхыэєтбзртухууххшьчщыщэяђѓђђєѕѓєѓѕєєѓмєўўмwAA7905:шыюьшцссеущцюяюяяђёэяшшыыєюэюээщьёяђѓєєјѕљјїјїѕїїхљѕзM?C81432хщющхстцшьїяђѓђђёхэщцучышэюёяюыюэѓѕєєїѕѕїјјљјјвљјјћўўлЄ—‘gA243-шыьєѓяєєѕђђёђђёёюьышчттхццэююээїыёѕѕїѕјљјјївѕљїћўўл~hgZQZUE0$яяђѓєїѕѕјѕѓёяяэяэыыьээюьюыьэяякёѓєїјїјїѕїѓѕєѓђёяѓђљўщŒ79E##)%#юяѓёѓѓёєяїщщыщяђююёюђёёќђяёѓѓѕкљѕїѕїѓѓђђёђђєѓѓђёьїњд]-S\98:353,юэщяёыыпэшпсучщэщшщюёѓѓєѕїјјїїјјїїѕѕђэюьююэгђёѕьЏI291;?0++ьэщумйежйлмнттчццщыэюёєѕїїјјљљЫјљјїїѕѓєђѓђэычхчыњћд8(8@;@9,&&%шшщштнйккдщёщцђющёўєїїјїўѕєєУђєѓєѓѓёђющшшщэўўЕ^03@;931$&--хуцчщьщщшщёўєђєєѕєєјјљљјњјїїєѓѓђђћяђёѓєємѓёёяяѓїњш”<*15*%*(,-,.ппуцуччхуушыђєєўїјјЇљјјѕїєїѕѓёёэђѓяђѓёѓђђяьююяђєўўтˆP4;#*&")%).,тучцчухчцныјѓѓїјљјљїїѓєѓђёђяёяёёяёђђѓяђђээышыылёїѓЖ[CZQ-*$%&%&эюющччыэяѓїљјјљїјїїєєїѓђяёюяёѓєє…ѓђєђєђёђђьшьѓжz:(>+#ѕєђящщэюёєѕјјѕїїѕѕђђєєјјєѓёёяёѓєїєєѓђєѓёѓђёёяэшмят~A2%*-*$+*&#"ђёюээяяѓѕѕјѕєѓєђёђђяєѓѓђѓёяёяёѓѓсєѓёюяээюэыщутлђпk++3+*!$&!!яяжєѕјѕїљљјѕѕђђёёѓђђѕяёёэёѓєђєѕѕєёюющыьэыщьшччъяўнa@<81+**"*)яяѓђѓѓѕќїѕђѓѓЧєѓѕєђђѕѓѓїєєѓёёяэьэяюяюэёяэышычхѓљФG,AA,*+,-$"+28ѓѓђѓѓђѓђђя§ёђёёќєѓѕїїгєёэышшщыьэёюёђююычшштууЄG7C@,&%-&)$*)(јљјѕѕєђђѓьђѓяяђѓѓѕєѕѕєђёђяьшуттТхчцшчьыьээщыэяўўЦhLL;1-*&%+!)єєѕёёюяёяёєяѓђєєѓѕѕєєѕѓѓёююэщчттлрущььыььышхчыэўўМJ9C;1.2-,07100ѓёђёэюю№яёёѓђяѓѕѕєѓєјѕёээзяюэьюьыцхцшыьщьщхттцщєўЖM;8879<52017<<ёѓђђьёяюяёяяђёєѓёяяюээьшццЫыёђёяяююэюэющчцчыьёё§ўхvLC78<<@црсстхтцыщчтнррухюэђїѕљјљїјјїїѕєѕђєїєєѕїѓђёэхжкзЊuJI@0,*5@BB>4цустхшщыььэчсцђѕњћєѕјјѕїїѕїѕљѕѕїјїїѓєђяђѓєёёяёырцьžE7NC4078;:??Bюьщщьююьёёѓѓєѕћјљјјїј§їєђђйѓєѕђэщышээѓёяяшчлпЅP8A?977239<>9юэюьђѓѕѕ§їѕјјўїјјѕїѕѕїјїєѓѓёяяёфѓяэёђюёёяяэскЮ‚5CS@82.3?><><€ажмддйзгзесцёьчЮЭгннссхсппчсзЮйпмккжзлкдтлгОСапедЫШТТбяђёёѓэцкжклмкдгббгззгглйОЈЖКУУЦЫзййгжЧЧЭккдмеекйЭЦЮЫФМИКИНЭЫУЪгалчёёѓяшуччнлйЭЫЩЭЦЪЪгдЯЫКЕВЎМРЪЯмржУЧЪадймнтуезгрсзгЩОЛРЧФдбЭкшщьюђюнездйЫШырЯЧНРЦЦЧЯжнжЯОСС€УЫЯЮемйЫЩЫЫЮгбЯЮЦЦЪбЩШФЯЯЮйпркечыцзлйущцрлкыыумдЪЪУРНУФСФаЦУСФШЦЛЦайЪФВЗКЛНЧЪаеЮЧФРСЫмелкйннчэщщсннусцхёяюющчтдШОНССЛМНЫЪЫЫгздгЭЛСзЪД™ЉМНЧЪШОРТЫажжазцутсуьёюэцснщыюёїѓєѓїяђэяЫНЖОСФЫЫЮЮФФТШЫаЪТСУКАЈЅЌКРЧЦгЪЭгдбдЯблнртщющьюѓёёѓѓёђђєїјїѕђэычЫЯЩдейЯЮЭЫТРФТЖИЖДЕРЛСЖЎЖЧзммеЩЫзждЯгплпцщщшссѓщѓјѓѕящчычыюшшЁутщпгчщчкаЮджбЯЪЦТОМКМЩЪННдєщыпмзжжнкзцёьытмзйгмшэюѓѕѓёытпгнтмнгЭгхусшхунуСДДЛМЩШЫЭЫЭЧФаЭбеццумм€PпущхычтьяырхуеежлуыьычрктлржаТСачыюьсгбЪЯКЖЕНООЧЧЪегбаншььэыцчэьцьєѓђыычьщчссчщщчунмгазрьщчлкЭЭегышкЮОККЦЩЫЯдЫЦССУйнчэяыуннлсцєєѓяѕјѕѓѓяёэюшшсмкцьэшчхтааджтщстжааЭЦЧННРаелбЯЭЦШЮйшээшеЮзнунухюѕѓђѕѓђыупыюыжбмтхыьчзбЫайптчшхччтхСЩЫЯкуткгглкаЯмшччцющутээчрхцэђѓѓђюумйзцшузЯаЫЭЮаечюёђьыэђыушусуеркслеЭЭглшчпждпсыхсжЮзьэяђѕђђёѓяэчскздйгдЯЮжйШШ€кгемншэюѓђђяунйдррхцхщысрукмекрцтьщсжлцьцыяяшччьытпйЧЪагЮЮЩЫЮаЪжепучктмддмемйдзуйшђєёющтщяэюшхщюччлЪдхшэьђѓёяё§ўїсЧУЮжгЯЦблштдСШжсщьндббжжЯдсэщщпюэюссптмкйчђїѓѓьтаЫгзбажсземЦЏŸ›АБЛМЦЧбуцжгжжЮУЧЪЭаЧСФРКВДЯШУцысжЭйжаЩечяёчпсьнбЫЦЪЪЯЮгФЛКСТМНСЦЫФЫабЧФЯзмеЯзЫЯллЯЮМЛЕЎДЦЦКВФшыыхррммбйуюраЧЮЩОРдтсЯЮЧСОКИЪТМТжймаЩЪгждбмтнптслйжЭФСФЛИЗРОЖЕЭпыэютнлшрезрйгЧСЕЌЏУТЪОЪмаКЋВЭкжЮмшьсрмкЯбжбЭЯедЪЩайкгазуснздгЋ—мтцудЭШУажгжгежзббЭдЭРМИЕКЕЪзкзлбжйпдзнгЯбммжеезаЦУЫбаФУСОАБИЭНАтшущучзабЫСС€ЫИНШЧЪжжФТЩЫШЭЯгдЮЦТЪСНСЩаеЯЭаемгбблмгдаЫбЩУФЗЋБЕЗАЋЭуыэчдНЛРКЏЌЉЇЋКТОЩШМЦдйекдаФФМТРШЫджжзпсупкжежбЭЮЭЯЮЧКЎЋЊŸЂЊЗЌЌЯйшюлОЏДАВЎЉЇЇЎМЦЮУРЧзежЧЦЦезеаЭЭЫЯаглнллсмеЭУРЪбаШРРШЦНЗЌЅВгэєпчгШФЦгЮИЎЋЈЃВРЧЦЫЪЛЏЗЪйщщђьэылаЧММОЪхсжгг€ЫджнхшўдРСМСОМЖАЁЄЗДМЛИ•ЈЋЎАЎБОФЛМННМИЖЖШдцуюёёјэззкаРЛНЩЩЦЯслЯглйдСЊЕ•‘ЋЊАДТОШЯНЊžЎОЩУЗЉЂЅЋЕЪмееЭЧФШТШЪЫЭаепмйЮЕЂЎКДДИЩегспбТКТШРМДИЗЏЃЂЃДНайдСЖЋЗНЇЧРЛБЊЏКНТФЛДЖДИДДЖЖМУайбНЛОМВБЕЖСЭзмкнзЭМБВДКОВКЗЖВМНМУШЫЮЮдЧнЩxЄЏЕНУЭмеФИЕЎЉЂВСМИТЯезеЭРИЎИЩнЯЭШШРСЭпупФНЖНЦФАЖлюЩкЪШШЯЫЦаЅpcUAЋЎЅВЧдзнжлђцКЇФнЫТВВЛРЛЕВБЋВШзаЧТЦСЩЫЭЦШЫдгкнзжшюшлЯЩЯаЯФйю–AbxmИКбўўчЮТЭплаСФЯкЭМЛТМЛИЗЕВБДЧаЮШФаЮЦЫбенмущыыэщцслйзгнчщйКŠO:PUQдЫСЮгкрнйрпЫЕЕФЭОЅЉЊЎЊБНЩРОФФЧУЩгзйзрхрлыэшхщцхцщччэўўНД]YWJCGNаЮЧбзккЧККШждгжпЧЉБНФШУЦЦШЧЪЧЫФЮбгжнтыяюхщьюыэюђђѕѓїїўўшˆVNNбH?CЧзнсзЫУЛЉЛЩЦайусепегйЩТЪерлсхтсчрлхшшчшыђєѕїїЛљїљљњћўр‘WYVCB>:?ЧЯдйЧККРасёьэёяыхяыцгЭгеЫалнйреаЭршёђѓёѓѕљјћљћљћљњјўўЩуЕŸЅtQ;A?@ЯжмђчптшщытуччуьштеЫФСОТУбзмнркеншяєїљјњјњјњјјшљѕѕљўўсŒxuhdjdN2рудтчслккйдССЪзмескпмлуэяђѕјїїљѕѕјѕєьхмкйзжуухрхпчсйЉO)BILFEE;&(бгЯЪИЎЏЎЋВЕЛНФЧЫШЪЫдцђѕјјљјћљљНјїѕєящцхщшсрЭЪЭжкяђаC3SNNPI9824зпжЮУИККВЌЫтЯЩткЯяўѕєјјњѕњјњјјѕєђєяя€ѕђюђэюцскЮЪбсєљКgA@PMHC<:848РУЪанмжзЫЦлћюяёѓёѕїљјћїљјјѕїђёчрнхццсшыьшёюшпююёёїх–F40J;).%2-&4ыюшеЯЫйьюєєљљјєѕѓёююёєђяычкджуьѓђяьющхшёьхчшрзЮШгЫ~N<57?97)+&1(&ьщнеерпчюѓђѓюэшышрзсчёєєђычцыюяѕђёэюышлпмкмкЭЪФРкЫe-8?8BA7#-$)->ыычцэїѓљїїєєцннухуцхцэщшхссцэёѓѓёыцебзймйзаЯЫЩФсёЮgCEA9318,#$<5Hпсрэђёѓїѕјѓђууьяэщчьщсчююђђ›эычхеглцснкпзебЮЭЯЭрёРG4PP;21@13C?FPхчцэюёяёшутцкрщщшшчюьёїљѕѕѓэкбЮШЫйухптмуыцаРРСЧЭЧNFSE?75:5)+?>?ђђВѓюььяээьэтнцшыэяѓђєяэцьшлЮЮФКОЩЩЪЩбгмскбкущщэјРkY[F40:C41E<#эюэютлккушшяэыьђѓѓ€ёђяшртпдЫЩФТОТРШгмпкгбФЫЯмуўўСSLLE9;;F;44@JQQWадЮЫСУШййЮУТФЧРбнкйхщюыёяђёѕєјєѕѓѕєњїѕєѓяђёїяьцххчаЃcB8BA<;EOSPUСУЛУНМУЫЭЫСЕЏЖОСЧЩечёїїњњїѕѕћєђёђяяђЋѓђююыхаОРНЃ}QWUCB9:LUPMaНФТНОТРЯнлЯФУЭньєјђјїјїљїљѕїїѕѕєђђюёђђээяђьутрйЫЫрЁLNaUG,NTL>QZS‹ЏдбкндЩЦЛайЮТШТЧЧУЭЮФЛИОЗЪаИЅЂЊЌЃБОСИВЊОЧЦУОЎЖЛНФ<,*#2FPYYUQ@32PThФЪдьёчдгЫЮЯЩ”˜›ЅЗФКМЕМОИЌЅЈЕЋЋЖОРЪОЕЕЎЖФЩЕЖШТС2AF?HOU^aWPQNF-<<8GcwЄЗбђуллгЯНСВЂЗЪЪЖЕМеСЗЕКСТЧЮРЪнЮЫЪЦЧТУажзжб?:>:AF??<;5:FOM75$15872B-31.3cЅЛЅЄБЈЏЌЅЈДЖУЦЌРйцсмхщьэыьшщрллбЫЪуткж114*&!12);CEG8-+A33:\o{™ИЩЌ—›ДИУКЏЋБРЩЛЋ–ЋЭзбУФепЯТЖЄВУЭлд-.5B4"$5AGLNF549VP8,8[ЄНЦФЕЕННТЖДТРОЫМБВЪЫеЯЗВЗОЛИЕЖНЗВФ9BE20 .98FGPQ;2.97:91WЁпΘ™ЕржЭбчыхжЪШЮбдаЮМИУЮзгРЖИЕБВ0"*##!$"&+HGG>@VC?QЈцєїюртщщупжмнцэысткрндРВЎЛЧзну " !,CBCA98<8@!)YŸЮяцзпшжРанрццрмелпурйУРУЮлбж!(+$&&"#)%9@?A4,00*>Cmаћљёюёутцѓящсйггжсчткгзтсзм &#(! 3G&!!48;;?><,#,90TВяэмуцычььрцтлйкссрмтрпкаа!)%,#*%#%B<:%538@:,("?2(cКлеккмбаЫЫалмсхррпгЪЧЭйлз!$&)$*+#O8%!"#+;9;-+#2I9#3H[ЈпсшнрЫЩЫЫ€˜дзжтлтмЧЛЎТТ).2-*(++&"!(..1!!Fr?#)!AG;-+4GPOF:@qЇУєубКЩРТФЧЩкнпспЪФЦаФ!"!.!# 0A&<:%;:3.1.!#&$2&($!4410558@40N`n–ЪмэщруцтаЧЛЗЖШУКб#12")MСћ§щЊp9&+711+*  -C?A51%"-HH>a…ЦзЪЧлпйЯбзлммаТЩ #%*-"$4ЄяћћњћћщŸO5>F)*$%&+" +57>>95?2A9;YFqБВЛхцмЩЯЫбмрбСО($,%.<Бљ§єєљ§ћћєЮŒ:)>+)(*,0#$,75<>BG8-7?IjŒЈппкЮзйкхьькжй3%>@:AМ§љљєєПѓюѓјћ§бwB9*#)!!#&)#$U[OM>?@@1FC*?ЕпысщрЮйщююяэWC7&-jю§§ёѓѕѕєєРѓѕњ§ћЌI.%&$-32 49.#*-8;>9+7($02853!&"@>9PFOwнћ§ѓѓєєѕђѕїїЦѕјћљљ„7>HHGc<:Pa`rЫјњѓѓєђѓєє§ёєѓѓєЫњ§уЎ{]BCB($;))#188+17>JF7TЖЪФЭпёёѓѕїѕљѕѕПїјњјїѕѓї§§јЌYH938,7* $%;@80%#-*,?BC88)8SЉедЯлщђѓєѕєєѕїљѕѕєѓЯєј§јЅN7""-)4MG7<19B3*%"%84;1MMC@14NИыщдмчёѕѕє§ѕїєєѕјЮѕєѓћћщ—OOUB1#09S"!4A7$#)";NQE(1GŸуедлюѓєѕѕљўїѕѕєѕЯєѕ§ћљ&"-257L(4323,+.+5.&-BBA9*9SŸбЮгньѓѕѕїїјїѕјєаѓј§хЂd@N:UV40*,9;>8:378()!5993HJWЖщнйрьєєїїљљїћѕјњњїїЫљѕєїєєњћ§є”nF9O:&21#()28>@),)+3).37CENVYЏтзцюѕљјїњјїїјњїјїѕљїїўљѕѕујєє§§ѓа~J))&%-(->ABA@@40-ёьцссчщщюэюяяђяѓѓяђѕєѕїѕїїђящццшьыёёэяэёёмкзтёєєѓїюѕўё•YYѕ70MmPACB?;A\]::EoМтѓэрсхщццэыёящыщюэђёэьщьяђэыыщщьы459:()"&-*23->FGGA:@?@B;8dВњябЭпјюђѓѓєѓєѓёѓєѕєяёээяёюёяэьья-3,-"!*(!$%+%,*)(&?>;>259?A.5GbИћўћўўєѕєєїѕєєљѕјїєѕђђќёящээеёѓђ)**,)!()$0)+**#!"&2A:@EB)0bЏцўћяїђєјђђєїїєёѓѓєєїёђёђєёѕѓ"+!"&-*%#(1-$"+1**05:4;?A43>Lvйўўњѕѕјљљјїєѕєєѓєѕѕїїјјїєєѓ$.&)(#"%* @M3$,03+3?F907?G7]Тўўюђєєѓќјєїѕѕьѓєєѕїђ%",0(#%%З+&3A*€›&7;5,#0CZL39PhЛѓўўєюёяюяђёёєѓїѓѓђэяэю23431,&()&&,*&+,MpE%!!"7>5*+9CTWJ;FzОсўћѓшыэюяёєђѓѕѕяёюяюя1102)00 &):3<5*)H;.112.%+))$,7920%4:)(35443%$"*>9;?89:#?TQEg”щћюшђєєѓяюяђёяюэ$15((*,Ѓѕўў§ўўыŸI9?F5:-,++--$""*1899?::F@G^N…жхчљђёѕёѕїјїѓђя#+3;3@ЗўўћїћўўХєб”>.?2(,)-0)&&(,37@BHCCF;?Uq˜Ф§ўѕѓюёђѓјјњїє?*2F?&BИўўћїїѕжјњўўг~F7,!$&%-2,"!OPJHE?BI8IG0GОўў§јїђђѕїё]FC((-pяўўјїјјїї§ѕјўўШЎJ."(),..,%##.<(77@CAA93ESxŸСпўўїљѓѓёёNVG90ZЇўўјїјјїїўњўўмФqJB+3.)**,( 4.78CC:1*JPNV\^–Тўўюљєѕ ,JAGНўўїїјљљјјўљїїўЮїЁB.,B<5585+,($$&.12+$!E?@OEBJFJ^ŽИЦгё70?:YvрўўїїќјљјљљЦј§ўўћ‡7>G1!*")*+*%&!204214?>5GFNeSP\CBPPOq@9Ygewбўўїјїїѕїї§јїѕѕїўŒщЖZG>C.#8:8**$%09<:<52278FGEMTLIgg]U#0IFSОўўјјљјјњјљјјѕїѕєѕјћўў§Њ@>aH>Q>832.(*2:@B:+15;HLEBFJMOMFHL8>EJAM‘§ўїѕѕјїїјќїјјљљЭћўўРpUI;:399<;1)$-B>4-305;>ELNMMGHTUP8>BAIBpцљэђєїјјћљїїјљљЩ§ўўђPGLGM92 &%+251,&%-+?QeGGIBJ87?VM<[ЧїюёѓѕјїјљљјјўљњњЫљјјљўўћБ`MA;;2?)*#%,75(&#)97(@HEFIHHB4<[Цўјђєєѕјјї§јљјјїѕаїњўўЈU5$&(1:LOAG%*897-&$%&..5>@B7ENOE3?`МѕєёєѓѕјјљљњљјїгјћўцЁeBI;U`:<,").2.45;;9?84>C<8:>щЮТМТФлстшючыхыыэящпэѓѕєє€ЉыдЧСФФЯрнпучуйнЗТЕЦньѓѕђрщўїŸjokH9Pk\WQеЪИМСУНИИУЛЮруйлмззсцытнуьЯЩФзеймптчщчучдЗАКбёьёэыщєћхˆdI<+-TTPТЯЯЭУСМСЫбагЧННбнбУФашргжлЧМЧпнмлсутпйФЕйЯМНТжнцщєѕћўўй‰;GJ4:FNзммдШУЩжщыжЪШЪЦКЖСЯхыьющееЯрнбШжыяыхЪРНУШдртсыыёѓєї§ўљœg^I.*CIсмхщпсаШрщучллннрбУЭЩЫгсххЯгжакрйныяшзжмЭгЮЮЭЫйтсычюё§ўў€šТxC7BUPьыйЭЯЭетсэючрлдбтзЩЩдеджпчткагпцжЧЪгзмжЪзтмсмжгьёёыьљёєў§ѕJhpH+сйЪШЩНРаЯецяьчржтштущхезуыцннззццнуыэяяёюыкаНЛЋЫмРДЗйЃŸЫЖЛжВWHA&урйауэшрждабеаЫзжтбб€ЕЯСЫйЯЭжхыщсджгцншщэшпзнШООШкЪДЕЕИДЗЌЅОШЁP@2тущьэюѓёшкбкмбетсщцхчуЩЪЮдеаЫемкгкдйамдЭггдтнсЯмлаШЛЏЎБВЎЎЮдЪžb?щщскзмлаЭжмцкурлнбУЪШЛДМТЩбмньшзжйгЯЦздсрйдцуйЫтчтйСБИЦаСЄ™УЭБEдззнуумчшээыšзсгШЪаЫЪаЦБЕцьщшнндЫСОСбпхжЧЌАЯргбЯЪРНАДОбўјд‹ŠЋЪМйшыукаЯжйЭЫпшуургЩЩкгНВЏЎМймнбЧЯЪЫжнзЯШЫЯбНЖИЧЩЦУФНЛЛ€СжбЕ‡ЭнщхэюэщскбаетпеЭЦУЦФКИКЛНСУЫЫЪйрллЦИСзтдЫЪКИОФЩЯддЯЧВВАЊЇТЭЊ‡›„ЈЌБзйжзгнжЮдушхзкЮООФЖФСИЛТЫдЮЯЪгЭСРОКФгаЦФФШЧакклмсзРазчœŽ•–’„ŽŒ•ЩЩЦжрчкйгббйзлдекпзШУМОЫамппгЧЪЮЯЩЗЛИрњпЯЦЎЎ™‘Є˜ЂЋ˜—˜ЕЊ‰’ž›•—…~дУМТЦЮбаЩЩЫмсцйЯЮЭЯЭбйннгаддбЭЯгЧТЕЌ‚’ШѓхртЛБЇ”Œ–œЄЂЊЛНЄЖЇЈЗ‹Š•ткЯЫЩдзЭЧШЯбезЮЮЦЧИННУФЭдзтрзЫрсЭЯНЖАЊБЛРОФ•ЂЄЗ—–ЅЇБСРУРЛЁЛЕСыћЩЫсхЫТЪЫФЧСС€ЮОРЭбеЭСМФбЯдзЭгФауйФЭШМЛгжЭШУМАДКЧЦРШФФЮЦКНШаккФЎзљдкшыткааШЧЧИФЫглнйгЭЪЫУЛКОТСТМИЖИЕЎЈБадЪФДЏНУЩЧкбНМФЕЌЊЖФбгйМДЁЏыЦЭтШЃŽ—ДЎЅТФШЪуыьпжгЫЮабШЕЏДЗЛЩЫСФРУЯцпИЈАтЯДМУКЎКБЋА›ЁУсљрЕЫЩШžЈОА•ЃЅЌЏИФЭШЩйхчсзпушдЫЕЕ€вНМСКЕИКЗАЄz‘}ЕдЯмЮЭцчпэйТцўэйУМЫкЌБУзЪУчѕСЅБЗЖИЛОЭйаЪЫШЮЭШСЗВЗЦЧОЗИИУСМКЌНЋЂСРєјэюєѓѕёщЩЩйцнЦМТЮЪАРСОВЎКШШОРУСЪЫмхтаЭШезаЫЮйЩЛЫукцєраОбрщчкРКажЮЮуыьхпсзЭШЪЯЫФЯлмИЦадИЊЛРФЭЭЧТжсрггЧТФйнлйргЫЯймьєњѓюткзЯалагещээ€БьтчшьулккчххьўхчыыђлзЧЭОляйшўђужЯЧЫЭрпймЯТФЩйчээѓєѕђушыэьпйрюѓєююхщцутшсэѕєячыгЮИЇФйО›‡ˆ”ЅЗхжйЫалжзбЧНЛЛУЪжпыёышцрбжтмьэцчууштмФджжксчщцршѓбБСРЕДЎ„a\QWjkjˆЅФЧЩеЫЪдпкЪТУСЫбжуцмаа€ЁжнпррпЫЫШЮЫШИААЩжтелдгйемЩТЫcWbhTB`gaOnqd›ЫёцёёылзлхшрдеймсмстсжадасуЧНКЦУОЧекжЫЮйрзздФФЭгрMC>AIVYW]VTTBAZbrŸжтщўўїхунчхлЇЌБМЩлзбЯкмЯТККЪЦЧЯпрхзЯЭЧжнрЭЦебдAWTJSS§\ZQQŠNFGAFJMGAFHAIPM^tЂйчгзЪЯЯгмйабЭЩУЦЧдцячлцщцьшчептчэхтьёјјєGHH€ьCA?CGUHB9.->ABBGA@;FT71398-*;,2)EGJLNJLIQonICJtЛзхнЯЪЫЯедЫпЯердШгктьуаЭакзбЭЯгЪЭйCJHB?9@1<191>85:??BJUMIJJVMSF>C>;73<.:&389@MJHOTVj\U^Кўў§њяђђшяюэђюѕѕѓёђђяэьжаЦанцэѓ552€Џ:<1>8E:).:<<0&853JJHFMSVWQ1;jЕхўђщщѓшрхэяѓѕђычяђѓёырлрхючю*024:7:>7?8@9:2@??905?:;>LFI>MLC)>NT~сўўћјѕѕѓњјљѕёьчыыѓѕєєяђђѕяэ%43;@4812815)5?98?0SdF?9;?E8MVJJ@LSBhШўњцђїѕњѕѕђєђєёёѓ€сэяђђёхч0@9;GF:3.7-7@9C@@VJ>{Юящыьыьтнмхыёёѓюђёыммтьюь?B@FC;$%+49>;7>$[ŽZ$:8@?:-AJA9;JSmk]NN~Ийўјцжррзелцьѓяѓьплкцп@;>FGE@1,!$58EMHVN;A]N>@JJцC-5824;E@T8ECVcvŸНежСЩШрюђђіюуддсхьщ@EE€†ACP;GqЂ’o`GdQNEE?JLEBALFF<5BЈўўХѕЎ\?SVHHC@>>:>B130.8CCHILPBaPTj^ŠЪШЭєяымцтыёёшзе;ECPN2#FРўўўјўўРкЂF7QB0H>@CL;1>:40:;AHQ]USNJOd‚–ЖѓјёпчуюёѕѕєёьZEJ[Q5VЪўў§њјњљјјўўРнŒLB;7B;4>+HCB7>5)Y[NUU[QTH``;NЧўўѕњяущїјјљјpdYE:;|њўўјњљћјњјљљўўТИ]<374@A?>@>.01%)8EAGIPSTZG;L^ЇЧнўўьїёёђюjvVMFiИўўћјћљњјњјњјўўмЮ‡dS?9NFG<::8B4!>BYYTLLCE5@;04>CFAJEH4WQPcZN][ZhœСЩЫьLGNNcŠэўўњњљјћљћњ§њњ§љ§ўў‹”GQWC&,@A>>PB@.45@8?ELUOL[UdjnqVUabW}FPm~{ŠлўўњјњїљјњјњјљїљјњўўђО”nYSNF5MNQO@794FB>-89+5IL;YUOTZWVVCLkСэьсьѕљјћљњјљњ§љћљњјњїљјўўгЗe:38+8YЖєщтђѕњљћњћљљњ§њћљћљњњћљљјћўўЮ’1-Gn+),*-49:98>EOIMUIFY^\SEGgЗхтчюѕљљћњњљњњ§ћћО§њћљћљћјњјўўяЕpObN+o}OQ921.@EFCLNPSO џўˆўˆџ6џўˆˆ3џ ўˆџ1џ ўˆџ.џўˆ ўˆџ,џўˆўˆџ*џўˆџ(џўˆўˆџ'џўˆџ%џўwўˆџ$џўwўˆџ$џўˆџ#џў€џ"џў€џ!џўˆџ џўˆџџўˆўˆџџў€ ў€џџ#џ#ўˆџџЛ7A71OPEE?>`OM•ѓљћјјєїљјјїљћјїѕѓїљ§§љјїњћљљћњ§љC77..iNIC:C4iы§ћѕїїаєѕїјјњ§§њћћљћњ§§ўўћ§љљ@7094F#1B;>75B7-$4:B7FCCїчбпыјјљјјњјєњ§ћ§њњљњ§љјљћћ-A?$!0288B7>FA$25mэыгчюѕјњћјљљїњ§њњ§§љљ§§њл -@?$1,#,7>1;FC8C%WИнћћёїјјљљњ§јљњўўњмў§њ§њ§:C2*1C8;ACISEEHB2&IЛјћѕѕњћљљбјљљјљ§§јљњїњњ§§1??1"T2<.49?;)BJmёљ§їїјјљљјљћўѕљљт])!52Z|93012NGTNPhI8\гљћўљњњєљјјљљ§њ§њњјљљмј›@0>A&00(*#%9C?9ITWdGj‘лћ§јљњ§§љ§§аћљ§њњ§њљћ}U(5L8*t\CСћ§їїњјјљћћљћћрљћњњuudJ 4IH?2.388?0.-4@I;?%Sћћёѕїѕїљјћљћ§ўў§§ћћ­mŽ{,+B;40@G8)-1487?+2<*Q‘љ§ћћїїљјћћљљћ§њ§љћљ|}ŽŒvU9:A7:@89110:3)-".:AvМљїуєїљљќ§љљјјжїЮТЁ”^),;BEA<>FB3+87AGSO\|cаљњљјљјљ§§љљІћ§њћѓсВАЉ‡N# 9?2+3:254,*378][Fcећћ§јљњњљћјћћ§њљЏ•—ЁЅ™œ|C!4AAB9-3;*,#-?92(-bEiМљ§љїљјјљјљдЖЕйТЇЅ›Šj AOJ:,577*,+)-25O?C2Fxљ§§љјјљјњљћћНюЫрСНЫуы˜B).>@4)$+11ъ,120359I@>uР§ћљјћћ§§њћћчљЎЎЖНЮуѓјјР\29^\;5)!&,"..ЦBEEFAAVhрћ§їћњјјљћћљњЖЕЦРЛЧдзЩЭИ]LSQ4,-+35.--5FJG@UQ9iѓ§§ћїХћљ§њЋЄЈœЂКТЩнмшЈ5AEJ+004273A7?BF><87HЅ§§љјјљћ§љњ§Љ•›ЇЊЅЉЉтОЗ}I(:B>9>E;;?:2(5;7APV`gюћўјјљ€ЙћљљЋЁЊАЉЋЉЂ›”ЋдкžA9I@CA5+,;:HBGC@%31q§ћљѕјјљљћљИЫрНШЫдЮТУЮЩРЩЪ…53^MJA-7AA:FGC?G?F<><Вћћўјјћ§њњЩлсрпжЫЧЮЛИЖАЇМŸM8\VM;5:FFEA;>F?A;YPVЦ§ћјљљћљљОЮйаЮУРбЪСЩЪЧЛдаЉ\MI54+524<;CF5H<ћ§§њ€nљЩЫЛИНОйхьуцуЪЅРШтт}GF?1,5:;:55>EF@PEb‘ИљњјјљљчйОБАЭрыысдЦЧШаМляьmN:94827EA88B<7@71bћ§ћјљћљаНЌЏБАФжеОЏБМЭадьюн›A,LHA7+)24?:75>7@5Uаћћљ§јјЯОВЉЌЊЋРЛЕžЇИггЯзѕзЌp,%>GA!(!,.99@A21(nћћ§љћћЭаЩСЧЦРЧаШАЖФРЕЏЛАВРЦL)5IJ;9("((+*I8JчћјїјћСТйхшсрпеСЛУНВЈЉЖСсхюЦU?14C,,&Eˆћ§§јрлсйЧЦапмЪЦЖЖЪЧЮУУСМУЮЖed?$+28+)&))54#2Q^Ућ§ѕЦНЦЛРайпзУЖЋЛезЫЧЯЮНЭктvPJO1(2*9><:<:>AF%35{їћѕШСВЊЄЈЉЎЭзаейнтчддШОМєјКUC-)3#2BE?28BIGLGEiј§ћЕЃЅЉЕРСКФуёёящцнкмдОНЫючnE:-8%!"9ABEJONUtprм§§ЛУаймсчкдтщщтдЭЯкшрФНШуц™gbIEH,&)8HI;2@.,4:VžћћШЧНУСУЏЇЕУЪЫЪРЫтштмЯОФмыЌeF;)9,&98Њ§ЪгмбЮбЭжЦЪЪайжгФЯдаЮлхюуг—E-.@9;:9-17197%T`O9ћдеаЦагмжбЭФЧземтунзУЯзрїїЯa1#+(1()5$5<41,BN>CЅћшццхслнрзмлдйкмнсмкЮЮзЭТУЛd5)#,CA9?75578,VQ;8ЩмныэыьщцтйажпмзхщхнпцйлйФИ^C29JGAA89:@H:HJ?(GьЮааЭЮШСЧгРЕЕБОЩлкегзмзЮдЯЕV?A#.9:8?<72&27;;2.))(*0,44”C-Nie~™™ЖгзШшйцѓюєїуяѓзжїхk:B&3+,++0)!0BPLLJ7#dA87>3>PYbmbFdcZuЉ‹jВЫДƒvqIJjT?71$,4$-.>F4??72™IGGHINJ33&AVG5--%3&"("-3;;?EEFŒLLJFI-+I"-3CIQ&*+.+4,$3*!# &$(&1<30$;9n3MBG12:889))8?Q+.!(8-)$$+!#&($(&2<;7?CB‹:04%5:.&)03))4.()>72"$-1!"&,*7@(7*)’,(+,8@7(,1.1-+&$)(%0I+#4!&&  %".0-CkcMŽ$$)%,0E@%$%&4h~8$&!**%+A&CBC‰,**+&&();MY:""!+AmpB#"($)+1(&)4@No917?4429V^nUC"2+44G++3:5-&##(#&(4:8-"%ZИфC<:0IOIBA>^JQ™јўўњњћњћћњњћњњйљњћћ§ћћњћљњћћњ§ћћ>B830gOGJJLubP9CB9>9;FwАўўљ§њљјјўљ§§ўњ§§Яў§ў§§ћ§ћњMB?2;:948HF:474?CA~ўў§їјњћћ§§ћ§ћ§ћў§ў§§ўў§ўк§?E?45..13399:8F@IBC›ў§яїљњ§ћњњљњў§§ў§§йћ§ћћ§ћњћ.5;74,1-37<<>AGG012qћўјјњљњљћ§ћћ§§ћ§ћћф§ћћ§§*9:B45#17>?CFOMJO10ZСўўљњљњњћћ§§§ћ§ўў§ўў§§сћ&148.:;J5EIMOUWQOJ7&PФўўљјљњћћб§ћћ§ћћ§§ћљћљ§ћ§C+1<@?1[’9,;GC>BHNI4LLq—їўўњљњњћћњћ§њ§ћћцu;3#9:#a~>1>;3TZ[ZUiQ<\зўўўћ§§ћў§ћћ§§ћ§§ћй§Ц\-7:;-49(288:EOSTSZdjMu™уўўњћ§ћ§ћ§ћ§ћћ§оћ§ћњНƒ;*%;A?<9795.9BHEFCL>0raEЪўўљљњзћњњћћњћњњћћ§§ЕД‰W+:EJC?99@E@@AABFB>B*Uўўљјљјљјњћћўо§ћћњћЕТט;*-993GLGA>285141+(0?F|Фўўђјћћќ§ўћњњзћ§эркУŠ?8)2>@BHIJJ>5202>>A[Ob{gкўў§§ћњћ§ћћлњ§§њўјтцрОr8 09@BCFC<510-8?88N:B*Aўўјјњњћ§§ћњњЪшщыћёюљўўŸG..<<4,023003.7:99@GE8qЦўўћњћњ§ћ§њћњћуцэёяяўўйЯd9"0VZ@>0.(%1-35?JMF@<[nчўўњћљњњћњњћ§щщЊыьээёяёЪb#FGM03028?:12>EIBAVW>kѕўў§њћњћњўћ§мсршхщюьњўўР>$9@@1,5>>5;;GFFEA78.JЊўўћњњћћ§итнсрпучццхѕш’S* 5<9?BC@;??873:>>UZejюўўњњћдњћћуххтрццххжтўњБL->@C??;79@FABAEH4+80tўўћњњћхњћяюўђѓѕєђђэццэїрŽ3+YGA;::FFєLGGIGJE8<<Вўўњ§еђѓѕѓёэыычьшхзауЦU%3WNH@:@FJEBBFACB?WOWЮўўњћћиёяюђяюёэёёяюѓыѓѓЛgG>@2;BG@;:98@CE4J?ŸўўЦћ§§ћєюѓяэёђїѕјїђёмьєўї~>@98::58<:9?FM?O>^–Рћ§њњћћѕѓђэяюєєяээьюьэњўўwC>:>>58CB;<9>B>83j§ўўњћњћяэьшссяјьщцшююёђћўўНL0ACA<.(3:8A<<9>:4[зўўћ§§њюыччууыщяыщхээёёяўљм‹3&AE;8#&-075:;F--(pўўЃћњћююђѕёяёђюьюьщышццсхятžU17CF>54.,,0*+0J9Mэўњљњћяїєѓєѕєѓёђёьятннсцјўўс`F7$0EeA2..45481L4`Дўўкјљєѕѕњєєѕїѓѓђўѓбмптстяљк‘cO+(TˆY-2?JCAAЌH4!5ЭўўљјѕјјѕїёїёѓѓѕїяЭбцььэщўўщbF48HB5;9;MLOMJ-EЉўўњњјїјїєѓїѓєюёюљшьююээь§ўБ?4G@44ђ;9:89:H-.2IŒўўїњёёяёѕєїѓѓюЃђяђэяээюяђШhkE40)&-,-+-,.,34]cУўўјёшнхыьяэюяэяђёєєђэыюђўљ„YVY:,(3788<857@A,84ўўјючусуушьыюєєрѕїђѕяэшцўўТ^O>35.+:>8:?@FBQCGpўўћцшыюяяѓ§єѕјјнїѕѕєяюэѓўёuJ?&45,&587IFYVvu‰ўўёѓёёюычщыыььцчяѓєђюььэљўѓu<*-BVЦўюђјєђёѕюяёяђяђёьёёээюёљўэ‘[4AHM())З+0*158:A!8ДўюёёђѓяѓюєёёѓёѓёѕёяёяђѓљћўДN33EEA@72&)3425NcN;Ÿўєѓєѕђѓѓєђёђђяѓѓтяѓюяюўўмn<*77<@<4.(02*8GL;IЊўїїѓѕјљљјјєѓїїѕѕѓѓзёђёьюшюнo:-<@?C?;2*.21CMS:?гђѓєєѕєѕєѓєєѓѓўѕѓѓ єѕђєђћљсtH:-AGHE@>53;;BBM9,Mэььюяьэёяьюэщюяѓёѓђѓѓёяѓѓ§пbMF,77>9:>58A;#WjIAGлђыышучшщьшьхцшюђэюэяягђэўћ—9&270778944>GC…‡[F2ЃœЏдьёњюђєцспщщьюђђяђђзяѓўў‡VFA:57;@?3*(037(+87H3Tww‘ЎМЭѓѕх§ѕѕўў€rьјўєt@J3500157%#>PBGF;"gF@>F:?[^jpOqkczМ™pМбЖ‚Š|vNQnS@10.,.1%)3:@CF<2ŸJPNSVVYE90($!$%")-882%@>u>UHGE;9@945217-!"$"+.359@IG’,(1&149:9514:2.,4+993.1*$*.""*%&!#$28>1>2+’(%&2<<>;847982,*&++@C1(1$#+$($#,:BmgQ)$(*.,78CF9+,..!!і5e~<,+""о(!%%""&(.$%#%+"-ESw5799<572T^hUE2-.753G1*C>42(%""-)"&*(08.*&&`Н№VSPO*^g\]aLrZdЉўўћяў§ўћў§§ћў§§ћ§§ў§ћћ§эўћTSNPC„e`YccŠvO]Ёўўћѓ§ћ§§ў§ў§ў§ўћ§§ћ§йў§§њOONNZg]OScOYOQZI~§ўўљ§њ§њћљ§њ§§ў§ў§§ўў§ўў§ьћHSHMV`E.LYNQNQP^’Фўўє§њћњ§њ§ћ§§ў§§§ў§ўў§§ў§§ѓPWPJHMQLI^^SEEћPVTўўєјњњћћў§ў§ў§ўўў§ўўў§ўўи§IHEI?8:CGSMOHOZ]bVTЊўњчёїћћўћўћў§ў§ў§ў§§§ўћ§§фћAECG9<@JILOOU\[\JECўўяїј§ћћ§ѕў§ў§ў§§ћў§ўўо§99FFJEB?JNUQZWZY\A4dЩїўўћљћћ§ћў§§ўс§ў§ў§ўў+4;@1LQVPOQZdbhY][F4\Цўўњљћ§§ћ§§ўў§§ћуў§ў§E5+HJHFk›G7PTTUN]TUAVVЈўўгњћћ§ћ§њўћў§§ћ§§ўћ§§o@4"??.m‹P0LLQ>kjkid}bNvчўўљћў§ўћў§§еў§ў§ў§§ћ§§Ї\+;@E>CC;FFEGTh\Y`xz‚b‹Ўєўўћ§ўў§§њў§ўћў§§ўў§§р^5((@JGBHFGASL[UJVQhSB’pWеўў§њћћ§лћ§ћ§§ўћў§ˆŽqN*BPLUOONHNVOEHN[\M]9#`ўўіљ§љ§њћћ§ћўўо§ўћ§ћ‚˜ž@(-:EGMYbOQHEJOWZTQSBgЇўў§њў§§гћ§§ў§ўћ§§Š•ЃЂ‘n:*1@BIW\\SGH@HPJ8H?BNWˆжўўяћћ§§зћ§§ў§ћћўћымМБ™qA91@ALUYZ\[QJGBHLQTm`z}чўў§дћ§§ў§§ћ§§ў§ўёШЦК›\.MLZZSSLSS`\WW\I;GEўў§њћћ§ћ§ћбчѕлрььэусйзрьр–;0bNNяOPWYV^c]`aZYGTMСўўЄћ§§ў§тђѓєыцйкмЪЮЮОИЫД\(7WUTOWUb]aU^Z\VVUogjжўўћ§§ћ§ћдхьххлжшселркЯутАjNMFYMU[^SJHPOTYHZNЌўўє§ўћсчлггбщюѓѓ№єсОблїє‰%!JIOFHLLХILQQ\[VgZpЉЮўўћћ§§ѓђпЯЫуяѓѓяхезмхеы§§}!IACHGLNWYQNYQQYL@|ўўбћ§§рбШРЧЩпэтжЩЮбэшшїўяЊO8IPOHIJGQTOOJHUMHpшўў§§ећмбЫЧЦФЧнйЪТФжьшяьўюЪƒA.-GMPGM;GJGENTYH<8}ўў§ећуххмлмжпцнбЩеаЦШЧЩЦнрЄ]B>JIHI>>B;>4EP<^OZўўвњћћйрэѕёѓяёшкамгФРТФЯёўўуeT@)4Q|M?@HBFJPJ\JwЧўў€ŒћњяѓёђяьхыыёьўсАЃДИРШрцР‹o[9.[•\9MG^ZWW\QL.Eжўў§љѓѕѓѓюэрыыщсцдЌЇУгегжёўщqUE(BHIHHPUab^]jATОўўћћѓєјђьчпцрчршђдбедаЯрђ§ЌG9ZTG<:EIFJOO[A>2A[Ÿўў€ŒћяюяэуттэщцсждчпнйздЯжсНu|PCBFIH4?mvдўўљжЮТЭзхщышеЧЭдьшшпсмднюяŽ`ec8;0>?CGGNLUTZ8JI’ўўљпеЩЧРЦРЯсчухьяёѓшшжгЮўўЩk^L.GEIE?LFLO[Z[ieVўў€DЫРРУЪдлбшѓѕјѕјѕєююшдгыўћƒ]N5@AFE0:JVUcii‡œўўыщыыкЩЧЯдЯЭгбЫзююёуЮЫсїўїƒS>ESxg3728EIM\Y@T[bйўьђёђясетмчуурсхщпумейчэўр‹c@T\VB>?2+8A@PQNW3HОўтшющпуушрсптычхрцшктьѕњѕшЈYOGZg[^НўєѕѓєђёђєяёэяююыёыьщцлцсдржuIHGIZSTMH;?>JPjgO+Mншёѓїїљѓђяяђѓёээѓёёююяэьєнбt[J;QY\[WUEAHSTaZO;VїрчтшрйптскгЮЫкчёшуэыюьчѓяЫ`Ya7JQV^SPIGEL4v‡dPZщпзйдЧЯЮЧЯкЫЧИбнтхнмнтрнсђђ™@4FHPJNGLC9E\SžЁvYFЕЃЕШьэяйсхеЧЯЧЫйтктущцхщыўў™j]ZNOFNQWI5,>@G?@NFЄ[;]ƒ‚–ЋВЦээхњщюўўДцэўљ|I\FEMFHIGI08Ia`]\M7qYPNZJHot|Ž|\‚}nŒНЈ|ЩкУ‹–”…]b„hTFCGHOF<2;IMV`QBВa]\gg‰bMGQmirrau„rLAAU@IZ]UE2 ,8:C?@74@BO[WVЊb[WdgnnzPQFULVET‚jT?ThaQJH5G@387>2;;>?79LQ`^ZЂbj`]dLQ`;@FLWbi<:IMJ+H?E@EB;?;00ш:4C9B8<8IT8QM…Vi`cNWPNJHH€NWnGHGSPIE@?ACB1930978;85A:>@JFT\YЁCNCNIHNSIFCHENCG:.053;9AF>L9:Ѓ@BAEOLNLHOGMNLAACFBZYC:E>E:?88:7855:>;5A2CVƒ}cŸ><8:2;2#5<;@1?@(,OYY™B>CCFANAWdmI(I8H755"ZŽŽY9A2--?>?<5B3<*"@Ve‰GIHNPLQWqx{qYB<>GHHWH?UTHE>58!49>B9;:I5;7<;89rЭ џ! џўw џўwџџўwџўwџџўwџўwџўwџўwџўwџџўwџўwџўwџўwџўwџўwџўwџџўw џў€ џ џўw !џў€ "џўw $џw'џўw(џ(џ(џўw)џ)џўw*џ*џ*џўw+џ+џ+џ+џќwџ+џ,џ§wџ,џўџ,џўџ,џўџ,џўwџGџўˆџ,џўџ,џўџ,џўџ,џўџ,џўџ,џўџ,џўџ,џўџ,џўџ,џўљ§љњ§§ћўўѓњћўњ§§љћњћ§њ§§ћ§§ў§§ўњўў§ќљћјћћ§§њ§ўў§§њ§ўўђћњљљћљ§§њ§ўў§јјјљћљљ§њ§ћћъјњљ§§јљћћњјј§§љћљњ§§ћљљїјєїјћњ§§њњіћўћћ§љ§љњўў§ѕћљјѕїћ§њљ§ћћ§њїљћћњњјљ§ўўю§ћљћћјјњјћ§њјјћћњ§§јњ§љћћ§§ћћѓ§ўњњљљћљ§ћўћ§§њњ§§ћњћћўњ§§ъћјњљјљ§њљљњ§ћјјљћ§ћљћљљєћ§њњ§§њћћљ§ўўў§ўўэћ§§ћ§ўћў§§јљљћњјњјћћќљ§§ћћіљјјњњћћ§њ§§ќў§§ћћњў§њ§љ§§њє§њљ§ўў§љјљљ§§љњ§њљњњћћљў§ўўњ§њ§љћ§§ўњ§§ўјњ§§њўћў§§ўў§ћћ§§њ§ћћў§њњјљћћљ§ў§ћћёњїїј§§ў§§ћўћўў§§ўћјљћ§ћњ§ўњ§§њћњ§љ§ўў§ћњ§§њ§§ћ§§њљўўўћўў§ћљњ§њ§§§љјћћљњљњћјћ§§ёў§љљћ§ћљћјїљјћ§§јњћњњјћћўўћћњ§§ў ўќћ§ћ§§њўћ§§єњћљ§§њћ§§ўў§§§њћ§§љ§ћ§ўўњ§ ўў§ў ў§ћњ§§њ§§ўњћћ§іћљ§љћћљћњ§§ѕњ§§њ§њ§ўћћ§§њњљњ§§ўўіњ§§љњњ§§љћћўњ§§ўј§§њќ§ћљ§§љўћўўўћ§§ўњўў§ќњ§ў§§ѓўћўў§њњљћњћћ§§ўўњ§§§њ§ўў§§ў§§њ§ўўћўў§ў№ћўў§§њљљћ§ћў§§њ§§ў§ћњ§§љћћ§§њў§§ўўћ§§§њћўўўњўў§ћў§§ўќ§њњљљњ§ўў§њ§§ўї§њ§§њњўў§§єўћљњњ§љ§ћўњўўњ§њћ§§ўўєњ§§ћћљћњћћ§ўў§ќћўњўў§њљћљћ§ўўѕ§ўўћњћўћўљњњ§ћє§ўћћ§љћћ§ўў§§ўћўўћўњ§§ѕљћћљњ§§јјћўўћћўўћў ўї§ћ§ўўњ§њ§§јћ§§њ§ћ§ўўњ§њ§ўћўўўћўў§ўњўўќћўћўўќћ§§ўў§§њў ўў§ўў§ћћљњњ§§ћљћ§њ§§ўїћў§њћјљњ§§§ўћўўќћўћўўіћўў§љљћ§њ§§ђњ§§њўўњљљњ§њў§§ўћњ§њњ§§ўў§ћљ§§њћјјљњ§§ў§ќњ§§ўўыћў§ўњ§§ўњ§њјјћћ§ћў§§ўўњ§њќљјљ§§іњ§њ§њћ§§ћўўў§ўўц§њњ§§њћў§§ўњ§ћљћљљћјјћўњ§ўўћў§љљў§ўўчћўўћўњћљњњљљћћљ§њ§њ§ћ§њњ§§їњ§§ўў§§јћћѕ§ћўўњј§ўћў§§ёўћњ§§ўћўўњњ§ўћ§§јўћ§§њљљ§§ў§ўўњ§§ѓћљ§ўў§§њљљњњўўњњ§љћњ§§ўўћўўћўў§§ўў§ўўўћ§§їњ§њ§њўў§ўў§§њ§ўўўњўўўћўўњћ§љњћ§§њў§ўћ§њљњўўќ§њљ§§ћљќћўћўўћѕўћћўћ§ўўћў§§ў§јњўў§§њ§ўўўћўў§њ§љљўњ§§ўњ§§ўћўўћўў§ўћ§ўћўўјћўў§§ў§ћћћљћ§ћўўћўўћўўўћўўє§ћћ§§ўўћ§љ§ўў§їћјћљјћћљ§§љјљј§ўўћўўћўў§ўы§ћљ§њћћљ§љ§§њ§њ§ўў§њћћ§їћљ§§ўў§њ§§њўљўўўћўўўћўўљ§ћћњћ§ўў§ћњ§§ћљ§ў§њ§ў§§їў§њњ§§љћ§§§љћўўњ§ўћў ўї§ћњљўў§ћ§§уњўћў§љћњ§љўў§§њ§ћћўў§њљћћљ§њ§§ћћњјј§§ўњ§§ўѕ§ўўјњћљњњ§ў ўёћўў§§њњ§§њ§ў§§ўў§ўјћ§ћјњљ§ўўљћњ§њ§њўўєћў§ћїљњћћњћў ўўћўўќњћћљљьћљ§ўў§§ўћњ§§њ§њ§ўўћўў§ўўњћћ§љћ§§ў§ўўћўўњћёјљљћћљћјћћ§§ћћўў§ўљћўў§љћ§§јњћљћћњ§ўўў§ўўў§ўў§єљћњјљўњўў§њ§§ќљћљ§§ўќ§ћ§ўў§ўњ§§љћ§§њўў§§њўљ§§њњћўњњ§§ўћўўћћўћўћўўўћ§§ў§њћћљјјљљї§јљћћ§ўњўўўћўўћўўњњў§љў§њ§ў§ћћ§ўў§§љўћњўњ§ћћўњћћљ§ўћћўћўўњўў§§їњ§§њњ§§њ§§ўћ§§љћњ§њјњ§§ ў§ў§§њ§§іљ§§ћљћљњњћћўљўўўћўўћћўўћўўќ§љ§ў ўќњўћўўўћўў§ўљјјљњћ ўљћўўћ§њўў§ќњћўћћњў§§ћћўўќћўў§§њўђњ§§њ§њ§јћњ§ўћўў§ўјћўў§љњ§ўў§ўљ§ћњјћљ§§№њ§њћћњ§ўћўњ§љљ§ўўўћўўўћўўћ§ћјћўўѓњ§§ћћљћ§ўў§§ўў§§њ§§ў§ќњ§ћўўћ§ћњєјћўўњ§ћњўўњ§§ў§§ўћўўђњљ§ўў§§ћўћўўћўўў§ўўќћњњ§§њќѕј§ўўў§ўўњ§ў§љћњјњјћ§§ўљўў§ўћ§§ўћўўўћўў§ыћњѕѕљњљљћјљ§њ§ўўњ§ўћўў§§љћћ§јљћћљљћљјљїјўў§ўћћ§њ§ћўўіњ§њњїјїњћ§§љњўўћўћўўёњ§§ћїїљјљћ§њ§љћћўў§§ўћўћўћўћ§ћћ§ўўќћ§њ§§єњ§љ§ћћњ§њ§љ§§ўўћўў§ўё§ћ§ўўћњљњљ§ўўћўў§ўњўўњћњ§§њ§§ћ§ћњўўћў ўы§њ§§ў§јїћў§ћјёј§ўў§§ўў§ћњ§§ўњ§§њ§ћўўћўўў§љљ§§љћћіјѕѕї§ў§ћњўўўћўўћњ§іљ§ўњ§њ§§ћўўї§љ§ћў§љ§ўў§іњљњ§§њј§ў§§њљћњћћ§§ќљјћ§§№љ§њ§§њ§њ§ћјљњўў§ §їћў§љјњћљњњњћњћњљїї§ѕїјјћљљћ§ћ§њ§§ыћљњњћљћўў§§ўћўћў§њњ§ўў§ћіѕєјїјјѕљјћћ§ўўћ§§ќњ§ў§§ћ§ћў§§њўўљћўўћњћўўћ§њ§§ўў§ѕћѕѕїћ§њ§§њў ўэ§њ§ћў§њ§§љ§њљћћљћћўўўћўўўћўў§њјїѕјћ§§ў§њљ§§љє§ў§§њ§§ћ§ўћўўї§њ§§ћјўў§§ёћ§њ§њћњћўўћўњћўўї§њљљј§§ћ§§љѓњ§ўў§њњ§љћћњўўѕ§њљњ§§ћљћ§ўў§ћў§§ћњљћћўўъњўў§§њљљѕїњћ§§ўў§љћ§§ўўя§њ§§ўўћњ§§њћ§§њ§њњ§љєћ§§њ§њњў§§њћћ§ўњ§њјїљ§§ўќ§љ§ўўўћ§§њћњњ§ћ§§ў№ћљљ§§љ§§ўћўў§ўњўў§ђњ§ў§§ћњљћ§§ћ§ўўє§ћљљћ§њ§ўў§ўў§ќњў§ћћўњў ўњћў§њ§ўўђ§ў§љїєѕљ§§ћљћ§§ћћўў§ўў§§њ§§ўњ§§љўћ§§ѕўћўўћўўћўў§§ћњ§§ћўў§яћўћћњњљћљњ§§ћ§§њў ўўњ§§ќћ§§ћћё§ўўћњўћћ§§ћ§њљўўўћўўѓњ§§ћїїћљљћљћўўј§њљ§ћћњ§§ўњћћ§ў§ўўћќ§ћћўў§ў§ћѕњљњ§§ћћ§ћ§њњ§ќћ§§ўў§ћњћћњ§ћ§§ўљ§ћ§ћў§ўўў§ћћј§ћ§ћў§§њњћћњћћ§§јњћњћњњћ§§ћћњ§ћ§ћћљњћ§ћ§њћћїњћћњћ§§ћ§§ўњћўћћ§ўўљ§ўћ§њћњњћы§ў§њћњ§ћ§§ћњћљњњћћў§ўў§іњћњћњњљњњ§§щњћњ§ћ§ћ§ћўњћћ§њћњ§ў§§ўћћўє§ћ§ћ§ћ§њљњћњњцћ§§ћ§ћ§ћ§ћћњљћњћ§§ћћ§ћћњњћћўњћћ§їћ§њњћ§§ў§§ўэ§ўћ§њ§§ў§§ћ§ћћњљњљњњћњћњ§њ§іћ§ћ§ћ§ў§ћўў§ќў§ћ§§ђћ§ћ§§ўћћњћћ§ћ§§љљјљљњћњњћќ§ўў§§єћњћ§ћ§ћ§ћ§§ўў§ќћ§§ўўћўћєњћњ§ћ§ћћњћњ§§јћњћћ§ў§њњѕљњћ§ћћўћ§њўўі§ћ§§ў§ўў§њњ§ћфњ§ћ§ћ§ћ§ћў§§ћ§ћћ§§ў§§ўў§ћ§ћ§§юћ§ћ§ћ§њћњ§ћ§ўў§ў§ўўў§ўўѕћ§ў§ћ§ћ§ћћњњњћњљћ§њњў§ћћўўћћўњћћњыљјњњ§ћ§ћћ§њљњњћњў§ў§ўўќћ§§ўўў§ўўр§њ§ћ§љњњ§ћ§§њћ§ћ§њ§ћўў§ћ§ћ§ћ§§њћћў§ћћј§ћћњ§§ў§§ќћ§ћўўў§ўўў§ўўњћў§ў§ўўі§ўћ§ћ§ћ§ћ§§єћ§ћ§§ћњњћ§њћћњћєљ§ћ§§ћћ§ћ§ћўўєћ§ћ§ћћ§ў§§ћўўў§ўў§ћ§ђћ§ћњњћ§§ћћ§§ћ§§ѕћњћћ§ћћўў§ўўёћ§ћ§ўў§§ћ§ћ§ћўћћ§ўтћ§§ћњ§ўўћ§ћў§§ћ§ћ§ћў§ўћўћ§ћ§ћ§§њћ§ћ§ћўўј§ў§ў§ўћ§§щћў§ў§ўћћ§ћћњћўў§ћ§ћ§ћ§ўўћћ§ћ§ћћњћл§ўћ§ћў§ўћ§ћ§§ў§ў§ў§ў§ў§ў§ў§ўў§ћ§ћў§ў§§ћ§ќўћ§ћћї§ћ§§ўћ§ћ§§єўћ§ћ§ћўњћ§§ћћўў§§ўі§ў§ўћ§ў§ћўўњ§ў§ў§ћћјњћњ§њћћўўћќ§ћў§§ќў§§ћћўќћў§ўўћ§ў§ў§§ыћ§ћњњ§§ўў§ћњњ§ўўћ§ћ§ўўў§ћћў§ћћњќћ§ћ§§ќњў§ўўі§ў§ў§ў§ў§ўўё§њ§§ў§ћ§§ћ§ћњћ§§§њ§ўўќћ§ћў ўњ§ўћ§§ў ўћў§ўў§ўўўћўўё§ўћ§њћ§§ћ§ћ§ћ§ћћі§ћ§ћ§§ў§ў§§ѕњћћ§§ћ§§ў§ўўў§ўўќ§ў§ўў§§ўћћћ§ћ§ћ§§юћ§§ў§ћћ§ћ§ў§ћ§ћ§ћўўўћ§§ўћўўќ§ћ§њњљћ§§ћ§§ўўѓ§ўћ§ћ§ћ§§ў§ў§§ўћ§§§ћ§њњѕћўў§ћў§ў§ў§§ўћ§§шћ§ћ§ћ§ћ§ћ§ћ§ћ§њћћў§ў§ўћўў§№ћ§§ўў§ћў§§њћњћћњњќў§§ўўћі§ў§ў§ў§ў§ўўњ§њћ§§ћћіњћћ§ћ§ћўћ§§§ћ§ћћэ§ћ§§ўћ§§ћњћћў§ў§§ћўўіћ§ћ§§ўўћћўў§§ў§§іўћ§ћўў§ћ§ћћљ§ћў§§ћўў§№ћ§ћћў§§ўћ§§ћћљљўў§јћњ§§ћ§§ўўў§ўўњћ§ћ§§ўўў§ўўўћўў№§ўў§ћ§ћ§ћ§ћ§§ўћўўќ§ўћ§§ў§ўў§ўўє§ўћў§ћћ§ћ§§ўў§ўћўў§њў§ў§ў§§ћљ§ћ§ћћњћћћў§ў§ў ўќ§ўћўў§ьћ§ћ§§ўћ§ћћ§ў§§ћ§ћў§ўўћ§ў§§ћћ§ўћ§§іћ§ћ§ћў§ў§ў ўў§ўўћ§ўћ§ўўў§ўўў§ўўў§ўўќ§ўћ§§іњћњћћњћў§ўўј§ў§ў§ў§ўўћќњ§ћўўчћўћўў§§ўћ§њ§њћ§ћњћћ§ћ§ћ§ћћњў§ћћўќћ§§ўў§єњћћ§њњћ§ћ§ћ§§ѓћўў§§њњћњћћ§ћћќ§ћў§§ћћ§ћ§ћ§§ўћў ўќ§ў§ўў§њќљњћўў§ћњљћўћ§ћўћћћ§ћўћ§§ћјњ§ћ§ћћњўў§ўћўўи§ў§ў§ў§ў§§њљћўў§њ§ћ§ћ§ћ§ўў§§ћњ§§ўў§§ћ§ћўў§ыћњњћ§§ћћ§њљњ§ћ§ћ§ћ§ћўў§ѕў§њњћ§§ћў§ўўє§ў§ў§ў§ў§ўћ§§ўћ§§ќў§ћўўњћ§§ў§ћћїњљћ§ўў§ў§§ў§єњљјњњћ§ў§ў§ўўў§ўўњ§ў§ћњћћюў§ўўћ§§ћ§§ћ§ћ§ћў§ўўћ§ћў§ўўю§ћњћњћњ§ћ§ћў§§ћў§ўў§њћ§ћћњћћі§њњ§ћћњў§ўўє§ў§ўћ§ћ§ћ§§ўўє§ўћћњ§ћ§ћ§§ћћєњ§ћў§ў§§ўў§ўўќћў§ўўўћ§§іћњљњјў§ўў§§яћ§ћћњћћ§ћ§ћ§ћў§ўћћйў§ў§§ћ§ћ§ћ§ћ§њ§ћ§ўўћ§ћ§§ћћ§ћ§ўў§§ћ§ћ§ћўўў§ўўћ§ћ§§ўўўћ§§ћњћњњћћїњћњћњ§ћ§ўўќ§ў§ўў§еў§ўћ§ћўћ§ћўћћњћћ§ћўћ§ћ§ћ§§ў§ў§§њћњћњљњћњ§§ўў§љўћ§ћ§ћ§§ўћ§§ќћ§њ§§ћ§ѕњљ§ћ§ўў§ў§ўўёћ§ћ§§ўћ§ћ§ћ§ћ§ћћїњћљљћњћћўўќ§ў§ўўў§ўў§§ћ§ўўў§ўўњ§ў§ў§ўўј§ў§ўћ§ћњњћјљњљњњў§ўўў§ўўњћў§ў§ўўќ§ћ§ўў§ћ§ўўў§ўўњћ§ћ§§ўў§ўћ§§ќћ§§ўўі§ў§ў§ўћ§ћўўћ§ћ§ћўўќ§ћ§ћћўї§њљњћћ§ћ§§ћћњ§ћўў§ћ§ў§ўўў§ў ўќ§ўћњњўэ§ў§§ћњњћњ§ўўћ§ўў§ў§§ћљ§ћўў§ћ§§ўњўўф§ўў§ћ§ћњїїњў§ў§§ћ§ћ§§ў§§ћ§ћўў§ўћўўі§ћћў§§ћў§ўўќћў§ўў§ђћ§§љјњ§ў§ўўћ§ўў§њћ§ћ§ћўў№ћ§ћ§ћћљњљњњ§ћ§ћўўў§ћћ§§ћўўљ§ўћ§њљјјљљћћњњћ§§ўў§§їў§ў§§ћћњћћњїћўћћњјљњўў§њћ§ўў§ўўїћ§ћў§ў§ў§§љїїљљњ§ћ§§ўўќ§ў§ўў§іћ§њћњћ§ћњ§§ћ§њћњњљўћ§ћў§ўў§њњћћў§ўўў§ў ўќ§ўў§§ћћ§њњ§§јћ§ћ§ћў§ўўј§ў§ў§ў§ўўїћ§§ў§§њ§ўўљ§ћњћ§§ўў§іћ§ўў§ўў§ћ§§§ћ§њњ§§ћўўќ§ў§ўўєћ§ћ§ў§њљњўћњњ§їўћ§§ў§ў§ўўі§ћћ§ћ§ћ§ћ§§јћ§њћњў§ўўќ§ў§ўў§ўћўўћњќјєљ§§љњ§§ўў§ўўў§ўў§ѕћ§ћ§ћ§ћўћў§§ўў§ўўћўэ§ћ§§ў§ў§§ћ§љјљ§ћ§ћ§§ћћ§ћћњњћў§ћћќњћ§ћћ§§ћ§§фњ§ћ§§ўћ§ћ§ћ§ћ§ћ§ћ§ћўў§ћ§§њћљљњњ§њљјљљњўћњњћћњ§њ§§ёћ§ћњћљљњўў§ўћ§ўў§ўћўўр§ўћ§ћ§ћњњћљїїљњњљјњћњћћ§ћў§ўћ§ћ§§ћћ§ћ§њњљ§ћўћћ§ўўў§ўўш§ўћ§ћ§§ў§§ћ§ћћљјљњћ§ћ§§ўўў§ўўъ§ћ§§ўўћ§ћ§ћ§§ћњњћћњў§ўўњ§ў§ў§ўўэ§ў§ў§ўћ§ћ§љјњћћ§ћ§ўўћ§ўћ§ћћ§єћ§ћ§њ§§ў§ўў§§№ћњњў§§ћ§ћ§њ§§ћ§ўўў§ўўў§ўў§ѕљјј§ћ§њ§ћ§ћћ§ўў§§ћњѓ§ў§ўў§§ћ§§ћњћћўј§ў§§ћ§§ўўў§ўўў§ўўёћ§§ћјјљљњ§ћў§§ћћ§ў§ђћў§ў§§ћ§њ§ћ§ћ§§ћћ§ћ§ћћ§ћў§њњї§ћўў§љїљћћ§ўўћћ ўі§ћ§ћћ§§ћўћћўћў§ћћ§хў§ўћў§ў§ўћ§ћ§ћўћ§њљјћћ§њћ§ўў§їњћћњћ§ћў§§эў§ў§§ћ§ўўћћњћњ§§ў§ўўј§ў§ў§ўў§§чў§ўћўћћљїјћ§§њћњ§ћ§ћў§ўћўў§№ћ§ћ§ћ§ћ§ћћњ§ћ§ћўўў§ўў§ћ§кћў§ў§§ћў§ўњљљћњћ§§ћњћћ§ў§ў§ў§ў§ў§ў§§ћ§§§ћ§ћћљ§њћњўћўўіћ§ў§§ў§ў§ўўѕ§ћ§њљљњћћњўўќ§ў§ўўў§ўўћ§ў§ў§§ћїњ§ћ§ћ§§ћњўў§ў ўј§ў§§ћ§§ўў§§ў§§ћў§ў§ўўђ§ў§§ћ§ћ§§ў§ў§ўўў§ўў§ќћ§§ўўњ§ћћўћ§§їў§§ћ§ћћњ§§јћ§§ў§ўў§§ўў§§ћћ§ћўћћљў§ў§ў§ўўќ§ў§ўў§щўњўћў§ў§§ћ§§ў§ўћ§ћћњў§ўў§№ћўћўћ§§ў§ўћ§ўў§ўўё§ћў§§ћ§§ў§ўў§ћўўх§ў§ў§ў§§ћ§ћ§§ў§§ћў§ў§ў§ў§ўћћіўћ§§ўћў§ўћћљ§ћў§§ћ§§љћў§ў§ў§§ўў§ўў§ў§§ў§§њўћўћў§§ў§љћ§ћў§ў§§ѕў§ў§ў§ў§ў§ўўђ§ў§ў§ў§ў§ўў§§ўўћ§ѕў§ў§ћњўћ§ћ§§ў§§ў§§їў§ў§ў§ў§ўўќ§ў§ў ўщћ§ћ§§ў§ўћ§ћ§§ў§ўћ§ћ§§ў§§ћћўћ§ўў§ўќ§ў§ўў§єћ§ћ§§ў§ў§ў§ўўі§ў§ўћў§ў§ўўь§ў§ў§ў§ў§ў§ў§§ћ§§ў§ў ў№§ў§ў§ў§ўћў§§ћ§ћ§§ќћ§§ўў№ћ§§ўћ§§ўњ§њ§§ў§ўўљ§ўњўћ§ўўў§ў ў§іў§ўњ§§ў§ў§§ўў§§ўі§ў§ў§ў§ў§ўўў§ўў§ўњ§ў§ў§ўўќ§ў§ўўя§ў§ў§ў§ўћ§§ў§§ћў§§ћќ§ў§ўўў§ўўќ§ў§ўўќ§ў§ў ўт§ўћў§ў§ў§§ћў§ўў§§ў§ў§ўў§§ў§ў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўў§§ў§§ўў§ўўњ§ў§ў§ўўє§ў§ў§ў§ў§ў§ў ў§ў§ўј§ў§ў§ў§ўўј§ў§ўў§ћ§§ўў§ўўќ§ў§ўўќ§ў§ўўќ§ўў§§ўќ§ў§ўўњ§ў§ў§ўўј§ў§ўў§§ўўў§ўўў§ў ўў§ўўљ§ўўћўћ§§ўћўўў§ўўў§ўўј§ўў§ћ§ћў ўў§ўўј§ў§ў§ў§ўў§ўќ§ў§ўўў§ўўў§ўў§ўў§§ў§ўї§ў§ў§ў§ў§§ўў§ў ўў§ўўў§ўў§ѕў§ў§ў§ў§§ћўўќ§ў§ўўі§ў§ўћў§ў§ўў§єћў§ў§ў§ў§ў§ўў§їў§ў§ў§ў§ўўў§ўўє§ў§§ћў§ў§ў§ўўњ§ў§ў§ўўђ§ў§ў§ў§ў§ўћ§§ўўў§ўўћ§ў§ў§§їў§ў§ў§ў§ўў§ ўњ§ў§ў§ўўў§ўў§іћ§§ўћ§ўў§ўўћћўћ§ў ў§ў§њћ§§ў§ўўњ§ў§ў§ўўќ§ў§ўў§ќћ§ћўўў§ўўќ§ў§ў ўў§ўўў§ўў§§ў§§§ў§ўўў§ўўј§ў§ўћў§ўўњ§ўћ§ћўўј§ў§ў§ў§ў ўќ§ў§ўўі§ў§ў§ў§ў§ўўќ§ў§ўўў§ўўњћў§ў§ўўў§ўўў§ўўѕ§ў§ў§ў§ўћў§§ўњ§ў§ў§ўўў§ўўќ§ў§ў ў§ђћў§ў§ў§ў§ў§ў§ўўў§ўўі§ў§§ћ§ћ§§ўўќћ§§ў ў§юћ§§ў§ў§ў§§ћ§ћћ§§ћў ўў§ўў§ўў§§ў§ўђ§ў§§ћ§ћў§ўћ§§ўўў§ўўї§ў§ў§ў§§ўў§§ў§ўўњ§ўў§§ўўў§ўўў§ўў§§ў§§њў§ўћ§ўўќ§ў§ў ў§ћћ§ўў§§љў§ў§ў§ўў§§ў§ўўќ§ў§ўў§§ў§§ў§іћўћў§ў§ў§ўўі§ўў§њ§§ў§ўўі§ў§ў§ў§ў§ўўў§ўў§ћўћћ§ўќ§ў§ўў§њњ§њ§ћўўіћ§ћ§§ўћў§ўўј§ўћў§ў§ўўў§ўўіћ§ћ§ћ§§ў§ўўў§ў ў§ќћ§ћ§§ќўћ§ўўњ§ў§ў§ўўђћ§§ў§ў§ўћ§ћ§§ўўў§ў ў§ћў§ўў№§ў§ў§ў§§ћў§ў§ў§ўўўћўўї§ў§ў§ў§ў§§§ў§ўўў§ўўњ§ў§ў§ўўќ§ў§ў ўўћў ўќ§ў§ўўш§ў§ў§ў§ћњў§§ћћњћ§§ћ§§ў§ўўў§ўўў§ўўў§ўўњћ§ћў§ўўњ§ў§ў§ўў§іћ§ћ§ћ§ћ§§ўўў§ўўѓ§ў§ў§ў§ў§ў§ў§§ѕўћў§ўћћ§ў§ў ўќ§ў§ўўћ§ў§ў§§§ўћ§§љћўћ§ћ§ўў§ў§§ўћћ§њўњћ§§ў ўќћўњўўќ§ў§ўўў§ўўў§ўўі§ў§ў§§ћў§ў ўў§ў ўќ§ў§ўўќ§ў§ўў№§ўћўћ§§ў§ў§ўћ§§ўў§ўћўўќ§ў§ўўћ§ў§ў§§ўў§ўўќ§ў§ўўў§ўўљ§ў§ў§§ўўї§ў§ўњњљ§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўћ§ў§ўћћў§ўўј§ў§ў§ў§ўўћ§ў§ўћћјўњ§§ў§§ўўњ§ўћў§ў ў§ћєљњћў§§ћ§§ў§ўўў§ўў§№ћ§ћў§ў§§ћўћ§ћ§њўўќ§ў§ўўў§ўўє§ўћ§љњћ§§ў§ў ў§№ћў§§ћ§§ў§§ћ§ћ§§ўўў§ў ўўћўў§ўћўў§ўў§§ўў§§§ў§ўўў§ўў§ў§ќњ§§ў ўќ§ў§ўўљ§ў§ў§ў§§ў№§ў§ў§ћњ§ўў§ўћћ§ўўў§ў ўё§ў§ў§ў§ў§ў§§ћ§ў ўў§ўўќ§ўћ§§љњћљ§§ў§§ўј§ў§ў§ў§ўў§ќў§§ўўў§ўў§ўй§ў§ћњћ§ў§ў§ў§ў§ўћ§њ§ћў§ўћў§ў§ў§ў§ў§ў§ў§§ўє§ў§ў§ў§ў§ў§ўў§љў§ўћўћ§§їћњљ§њ§њўћћ§ўў§§ѕў§ў§ў§ўћћ§ўўў§ўўќ§ў§ўўъ§ў§ў§§ћ§њћњћћ§њћћ§ћў§ўўѕ§ў§ў§ў§ў§ў§§ўў§ўўђ§ў§ўћ§љ§§ў§ў§ў ўў§ўў§§ў§§ўў§§§ћ§ўўє§ў§§љћћў§ў§ўўѕ§ў§ў§ў§ў§ў§§ўњ§ў§ў§ўўј§ў§ў§ў§ў ўљ§ћ§њ§ў§§ќў§ў§§ўј§ў§ўћ§§ўўі§ў§ў§ў§ўћўўќ§ў§ў ўі§ўћњљњћ§§ўў§ќћў§ўўќ§ў§ўўц§ўў§§ў§ў§ў§ў§ў§ў§§ћў§ў§ў§ўў§ўњ§ћљ§ћўўў§ўўў§ў ўј§ў§ўћў§ўў§ћўћў§ў ўќ§ў§ўў§љћњћў§§ўў§§ў§ўўў§ўўќ§ў§ўўњћ§ћ§§ў ўќ§ў§ўўњћњњћћ§§§ў§ўўњ§ў§ў§ўў§§ў§§§ў§ў ўў§ўўў§ўўў§ўўѕ§ћћ§§ћў§ў§ў ў§§ў§§іў§ўћў§§ћ§ўўќ§ў§ўўњ§ў§§њ§§ќћ§§ўўђ§ўћўћ§ўў§ў§ўћ§§§ћјїїќјњћњњяїњћњњјњњїїћћљћћљћћјљћћљ§§њ§§љ§эљћљ§њ§§њћ§§љљћњїјћ§§ўљћћјцїјјњїјїїњњћјїљѕїѕїљ§§њњ§њ§§іўњњљћљљ§њўўцјѕїїѕѕїјјћњ§јјћјљћљјњњјљњ§§ѕљњјњїѕїњћћљљўјљљћ§§ўћўўђњўћ§љјїјњјїљљћћѕљњњћћ§ћћљљћћћѓљћћ§§Пћљ§ў§§љљћ§§њњћћ§њљ§њ§§ћћњћћўўљљ§њ§ћљљјњњљ§§ћћљјљћћљљћљћ§љћљћ§§њњљљ§ѕњў§§њ§ўў§ћ§§§љћљљћ§њўўћћЫј§љљњњљјћћ§љћћњњјїїјљћњћњ§ўњ§ћјћљћ§њњћј§љћљљ§§њ§§њњ§ўўќћў§њњќћњњћћћ§ћњњћћ§§њ§ћћ§§њ§§ў§љљћ§§ћњјћћјјњњјћ§ў§§ўљ§§ўьћљјћљћљљњћљћ§ћћљћћјћћћ§њ§њћћ§ыњ§љћјїѕїћњ§ћљљћјћ§ћћ§§ђў§§ћћњјљљћљћљћћ№њјњїїѕјћљљјњ§ћљћћОљћћјњљљ§њћћїѕїјњјљљ§§њ§§њ§њљћћњјњїњјљ§њљ§љћјћ§§љћљћћ§њўўњњ§ћћљћљ§ћћѓњјјїїјјљњљћћ§§їћјљїјјћ§ћћљўѕјњјњјјљ§љћ§§ўљўўў§ћћћ§ћћ§ћћђљјљїјњїњћ§њ§њ§§ќў§њїїќњєћ§§њ§јњћљћљ§њ§§њ§њўњљњњћћэњћњјћљ§§њ§§љњјћљў§њњ§§ћ§§ћ§ћњ§ўћ§§ќћљјљљјљњњў§§њ§§ћ§ќњ§ћўўњ§ћјљњ§§љыћњўў§њ§ў§§ћўўћўўћљјћ§§ќћў§ћћњњјјњћњњўљ§§јљћћљ§њћљљњћјјћћ§§ўўћ§§їў§њћњљјјњњљїјњљљћјјљєјљ§§њћљљћњњћћёљћћњїїћљћљћћњћљљќ§ўў§§§љ§ћћљљћћјћљњњјњ§јћ§§љћњ§ћћљњћћїљћћњїћўћ§§ћњљ§ўњўўќњљљ§§ўљ§§јљњјјїїљјј§њћ§§ўђњћљљћћњњћ§ўўћ§§§ћў§§њћі§ўћўћў§њњљљћўљјјњћ§љјљљѕњљћ§§ўўњ§§ўў§§љјјћ§ћњћ§§ўў§§ўћўўїћњ§јњјњћ§§ћќњјњћћјњњћ§ћћў§§љъ§љћјњћљ§§њњ§ћћљћ§§њ§ћўўљћ§ћ§њњ§§љ§ўњћћ§юњљњ§ћњјњћњ§§ћў§§њ§§ћћљћљ§§њњћћњњ§§ў№§њ§§њ§§ўўњњћљћћљљўћ§§ќњћљїїёњјљїњјћњћўўњљјљљћњљљћ§§ыў§§ўћў§§ћљ§§ћњњ§њ§њњ§§§ћљ§§ћљљ§њ§ћљћћѕњјїњјїїњљ§ўўѕћў§§љњњћ§§ћћ§ћћњјјљњњ§іњ§њ§ћљћљљ§§їњљљњ§§ћћ§§ќћњїљљъњ§§њ§њћљљњїїљњњћћљљ§њ§§љрјїњљћјњљћљћљњўўњјљљ§§њљїїјњјњјјњњјёљјљљјјњјњћ§ўў§ўўљћўњ§§ћ§§ћ§љњћћљћњјїњјјњњћљљћјњјјњњћњўћ§§ћњљ§§ўћўўщљїјњљњњ§њ§§ћћњјљњјјњјјљљ№њјћћјјїїјјњњћ§њћћєјїљћ§§ћјњћћ§§ўњ§§њђљ§ўў§њ§њ§љћљћ§§пњ§ћћљћ§љћљјїїњјјћїјњњљ§њњћјјїѕј§ўўњћ§ў§§ўў§њљњ§њњўўўњ§§ђћ§§љћњљњ§њјљљћћњљћћјњјјѓњ§ўў§ћјѕїєњ§ўўьћўўћ§ћјњљљћјњњћ§љњ§ћћўљћћљќћњњ§§њћјўћ§§іћњљјїћўўњ§§љћьљћћљљўў§њљїљ§§ў§ћћљћћўњ§§јљјјњћњў§§ћћјћљћњњћњјёљћћ§њ§ћјћћ§ћ§§ўў§юї§§ўў§јљћћљњ§§ћљљћћ§ѕљјїѕѕјїјїїљљљњјјњ§§ўўћ§њ§§ћћўљ§§ћљ§§њ§§љ§љћљјјљљћћњјњњїіљїїљїљ§§њ§§кљњљљ§ћљјјњјљћ§њ§јјњјјћ§§ћћљћћљљћ§§љћћњњћїњїљњњїїјњњьћњћјљ§ў§§њћљћњњћћ§њћћёјњњљїјїњњљ§ћћљћћњўјљљјюїљљћљљјїљїѕєјљњћ§ўўћћ§ў§ћњњјњњјњћћљћћњљјњїјћћ§§чљњїїјњћљћљњћ§љњљѕѕєїїјљњўўјјћњћў§§ћћіљ§њўњ§љћљћћјњїљ§§њ§њњ§ћћрљћћјњћ§§ћ§ћњјњїљљїј§ўў§§њљ§њ§§љ§§ўњњћћљјњњіјїїјљњњ§§ћћљ§њ§§љјћћ§љу§њ§љљњљѕјѕњјљўљљјїјљњ§љ§ўњўћўўе§љјћћњ§§њ§њ§§љћјїјћјћ§њљїјј§њњ§љјљјїѕєїљїњ§§ѓћљћћљњ§ћњљїїјјњћ§§ћћ§§шћљњћњјљїљјњјљћћ§§љ§§ћљћњњїћ§њћњљњљѕѕљїћ§§њ§ўў§ћћўјњњїјљјњїљњћљљћяљћћљњ§њћјїљљћћ§§љљћыљћћњїїјјњїњњјњћљјћћљћћў§ћћ§љћњјљљћћжљћћљћћњїљїњћ§§њњљћћјљїњјїїѕїњћўў§њљљјјљ§њ§§ўњ§§ћўњ§§§љњћћ§§ћљљ§§њљјјћјсїљљјњјјѕє§њ§њ§њ§њњ§§љћњњўўћў§њ§§ёљјљћћ§§ћљћњћњ§ўўп§њћћњїїњњјјїљїѕѕєѕѕјњ§љћљљњћјћљљћћіљјњјјњјћљўўѕ§ўў§њ§§њњјљљшјћљљјјїњћ§§ћћјїѕѕјѕљї§њ§§јћњћ§§ћћњњјљћљћѓљћ§§њћћјјљћљћћћјњјјїїўјћћ§љїњњєјћљ§њљћ§§ћћљљјўњћћњ§њ§ћњјјљљ§§ћћљћћљћњћє§јјњјћљћћљљћћўљњњѓћљљњ§њљјћћљњјјћњћљјћћь§њњ§њ§§јїњћљћњљћћ§њ§§ћўљћћ§љіћљћ§§њўўћўў§щљћ§§ўў§љ§§њћўўћљљњјњјјћћћљњњљћћіљ§ўњњћў§§ўў§ўњ§љјјћ§§ћњ§њњ§§ўњћћљъћ§§ћњњјћљћ§§ћњјјњјњњћ§§њљ§њ§ћљљћфјћћњњ§њ§ћљћјљћ§§љћїјјњћћљћњ§§ѓћљ§њ§њ§ћњ§ћћљљэњћћј§њ§њћљћљ§§ўўњљ§§ѓњў§њ§њљ§§њ§§ћћ§љњћјјћњ§§§њј§§ћщ§љћћљћћљљ§њ§§њњ§ћўў§њњ§§ђљћљћ§§ћћљїњјћ§§ћ§ўњ§§їћљ§љјњњјћћјљїћћљћћ§§чљњ§§ћћ§§ћћљљњљћњњћњ§§ћўў§§ќћљљћћќљјљћћѕљћ§§ћјѕїљ§ћћњ§ћљћњўў§ќњ§ћўўўњ§§ћњ§§њ§§№љћљћ§ћћ§ћћљћћљ§ўўўњ§§ђћњ§§љћјћїїћјњ§§ў§ћњўўю§њўћ§њўў§љљћњ§ўўћўў§ўћњ§јћњ§њ§ўў§§ћћљћљћ§§њ§ўћўўў§љљ§ўњўўјћњ§њљ§§ћћчљћјїћћїљћїјљњљ§ћћњ§§њјћљћћњ§ћљћњ§§ў§ўљћћјљћћїћљћљљњњјјїљћћўљћћњћјљћћљїјјљљўћўў§љшјљћјїїњјћ§ћћўњљћљћѕћњїљјјћўњ§§ј§ћљћћјљ§ћ§љ§њ§§ћњ§њњ§§ўё§ћћ§љњ§ў§§ћљћ§ўўўћўўў§љљ§ўћњ§љ§ћћќјљћ§§њћљћћњ§§љљћћ§ћ§љљњћљ§§њўўў§ћћљћ§њћњ§љ№ћњћћўњ§њњљљћћ§њ§§љњ§§љљїћћўљћћќњ§ў§§§ћјїїњљїјњњјјљћєјљ§њњ§§ў§§ћљљ§ћњ§§іўњњ§ћћљ§§ћћњљћљѕћ§§тњ§њ§њ§ћћјњјњїљјћ§§љћјљљћјњ§§њўў§ў§ў§ў§ќњјћ§§ўў§ўў§ўњћўњўў§ћў§§њњ§ўўњ§§ўћ§§ќћњњћћ§ўћћ§љљњўўќћўћ§§§љ§ћћ§ќњ§љўўўћўў§ќњ§ў§§ѓљћљљњњљ§ћњњћњњ§ћ§њњљљќњљњљљљћљњљљњљљіњћњћњњћћњћћѓњћћ§§ћћ§ћ§ћ§ћћї§ћ§ћ§ћњћ§§ћћ§ў§ћћљѕњћћ§ћћњћњћњњљўњљљњ§љјљљћ§§ћ§§ќћ§ћ§§љћњћћ§§ўўћ§ў§њљљјўљњњс§ћ§њћ§ћњћњљљњћ§ћ§ћ§ћљњљњњљљњњўћћў§ћћњњћћ§ћўўў§ўўї§ў§ўћћњћњњћёњћњћћљљћњ§њњћћњњн§ћћњ§ћ§ћ§њћћўћ§ћћњ§ћ§§ћњ§§ћћ§ћ§њњ§ўўќ§ћћ§§єњћћњљљћ§ћћњћћўњћћћњћњ§ћћ§ћю§ћћ§ўћ§§ћ§ўћўћ§ћ§ћћ№§ў§ћњњ§§ћћљљјњњћћњљѓњћљњћњљњ§§ў§ћћўњћћ§њћ§§ўњћћ§ўћ§§ў§ќћљљњњї§њњљњњћћ§§њњћњћњ§§ќћ§§ўўщћ§ћ§ћћњ§ћћљњњћњњљљњћћўћћс§ћ§ћ§ћўўћћњњћњћћљњћњ§њћћњњ§њћњ§§њћ§ћљњљјљњ§ћћуњ§њ§њњћ§ћўћ§њћљњћћњћњћњћњњљњљљњћ§ћўњћћњьљћћ§§ћњљјљњљњћћ§ћ§ћ§§њћњњљњљљћњћ§§ћћњэ§ћћњћњћћ§ўў§§ћћњћњћћњьљњњљљњњјљћњњ§ћ§њ§ћћњњљ§њћњћњћћі§ўўњљњљњњћћјњ§ћ§ћў§ўўћ№њћњ§њњћћњћћњјљњљљ§њћ§§ўћ§§љћљ§ћ§ћ§ћ§§єћ§њћњћћ§ћ§ћ§§љћў§ћљљњњѓљњљњњћ§ћ§ћ§ћњњўўћ§§ћі§ћ§ћ§њћћ§ћћі§ћўўћћ§ћ§ћћўњћћћ§њћћ§§іћ§ћ§ћ§њњћ§§ўћљњћ§§ћ§ћћ§§ў§§љћ§§ћў§ўўћї§њ§ћ§ўўћњњљћљњњљњ§§ѕўћ§ћћњњћ§§ћћњћш§ћ§ћ§ћў§ў§ўў§ћћў§§ў§ћњњљљњќљћћњњјёњћ§ћ§њћћњљњњћњћћњљјњћњћњћ§ћћ§єўћ§ћ§ћ§ћ§ў§њњўћњњќћљљњњљљњњћћ§ћћыњ§њњћ§њћњћњћљљњўў§ћ§њњпћњљљћћ§ћ§§ў§ў§§ћўћ§ћўћ§ћ§ћљњњљљјњњољћћ§ћ§ћ§ћ§§ў§њћћњњљњњ§§ўў§ћ§ћў§§ћ§§ўўћўўќћ§§ћћќњћћњњљћњћћњјјўњћћ§іў§§ћў§ўћћњњђ§ћ§њ§ћў§ў§ўћ§ўўє§ћ§љњљћћ§ћ§њњќљњљњњљїњ§ўў§§ћ§ћћѓўњњљћћ§ћ§§љњћћ§ћћўў§ўўќћўћ§§ћт§ћ§њћњћћ§ћ§ћ§ћћљњљћ§§ћў§§ћ§ћ§ћћђ§ћ§ћ§њћ§§ћ§ћў§§ѓћ§ћ§§ў§§њћњњћћїњћ§ћ§њћњљљјњјљљњћ§ўў§§ўћћќљјјћћјўћ§§ў§§ћћї§ћћ§§ћ§ћ§§ѓћ§њћћ§ћњњћћ§ћћњёћљњњљњљљњћ§ўў§ўўыћ§ћњљњћ§њћњ§ћњњћљњњћ§§щњћњћћ§ћ§§ћћ§ћ§њњћ§ћћљљјјіљ§ћ§ћ§њћћљљјћ§§ћњћћ§§ћћ§ћ§ћћё§ћљћњњљћњћњћ§ў§§ћп§ћ§ћљљњљњљњњљљњљњњћњћћњњљњљњ§ўўћўўі§ў§§ћ§њ§ћ§§ћњњћљњњћћњѓљњљљњњћћњљњњљљњљіњ§ћ§ћ§ћћњћћўш§ћњњљћ§§ћ§ћ§њњљњјљњњљњњћћрљњњћњњљљњњљљњ§§ћњћњљјњћ§њњљћњ§ћ§§ќћ§ћ§§№ћ§§ўћ§ћ§ћћњћњ§ћ§§іњћћњћћњћњљљњїћњљљћћ§§њњёљјњ§ўў§ў§§ћћ§§ўўќ§ћў§§ў§ђћ§њ§ћћњљћ§ћ§§ћћўњћћњўљњњёљћўў§њњјѕїљ§ў§ўўў§ўўэ§ўў§њњљћћњњљљћћў§§њњќћњћњњћ§ќћ§ћ§§§њћњњ№§ћ§ћћљјїљњў§§ћ§ћћњћћњћњћћўоћљјљћ§ћўћћњћњћњ§ћ§ћћњњљћ§ўћ§ћ§њћњћћљњсљњњћњњћ§ћњ§њњ§њ§ћў§ўћ§ћ§ћћў§ћў§§їћњњћ§ћ§њћћэњћћ§ћ§ћ§ћњљјјїљњљљјјњ§ўћўўљ§ўћ§ћ§њњћє§ћ§ў§ћ§ћ§ћ§ћћў§ћћёњћњћњћћњћћњћљњљљўњљљрјљљјћћ§ћ§ћ§ћћљћћ§њћњњљњћњћ§ћњњљњњљ§ћћњћњћћїњ§ћћњћљњљљњљўјљљйњљњљњљњњ§њњћ§ў§ћ§њћњњљћњ§§ћњћњњљјљњћљљћћ§њћњњњћњљљњћћ§§њћћћњћћњљљїјїїјљњ§§ўўќ§ћњ§§ўњљљњњљњњљњћћќњћњљљќњљљњњњ§ћ§ћћљљ§њљћћњљњ§ћљјјљёњћ§ў§ўўњњ§ўўћ§њњћі§ў§ћћњћњћњњѕћњњљљћ§ћ§ћ§§њћњиљњћћњ§њљњњљјјљњ§ўўћ§§ћћ§ћ§ў§ћ§ћў§ў§њњћњљљјњљљњћ§§ћћќњћњ§§ћњћў§ћћ§ћъљјјїљљњћўўћњљњћ§§ўћў§ўўћќњ§ћ§§ћњіћњњ§њ§§ћњ§§фћў§ћњљјљљјљњћ§ћњћњњћ§§ў§ћљљњњє§ћћњ§ћ§ћњћљњњќјљјњњјћњњћ§ў§ћћѕљњљњћ§ў§ћљјјчћњ§ћ§ћўўћњћњњљњљњјњљљјљњћћѕњћњћњњћњњў§§§ћњћћњ§ћ§ћћћњћњћљљїѕљњљљњљћћ§њћћљњћњљњћњњє§ћ§ћ§ћћљњћћњњюћњћћњњљљјљљњ§ћ§§ћњњїјљљњљљјѕўўя§љјјњњћћ§ћ§ћ§ћ§ћ§§јћ§њћ§§ћ§§њњћњ§њћћњ§ћ§§ћњњўћњњіљјјњљњњјї§§љћ§ћћ§§ўўчћ§ћ§ћ§ћћњћњћћ§њћњ§њ§ћў§ў§§ќћњњљљњљјёїјјї§ћћњћћ§њ§њћћѕњћћњљњњљњњўў§ўјћ§ћ§љљњћћњћњњљњњ§ћњњјљњјїјјљ§§ъћ§ћ§њљњ§ћћњњљљњњћћњћњћћўњћћ§яћњњ§ћњћњћњћњњљњњљљњњћњћјљљўњћћј§ћњ§ћњњћћњєљћњћњћћ§ћћљњњћї§њњћњњћњћћњљњ§іњљ§њћњњћћњњћљѓњћћ§ћ§ћ§њћћљњњ§љњћћњўћ§§єћ§њљњћњ§ћћњ§§јћ§ћ§њћћњњ§ћ§ћћ§Сў§ў§ў§§ћ§ћ§ћ§ћћњ§ћў§ћћ§ћ§ўў§ўћћљњљњњћњћњћњћљљћћњћњћћў§§ўўћ§ўў§ўў§№ћў§ўћћњ§њ§ћ§ћ§ћ§§јћ§ћ§§ћњћћљњ§ћњљљћћяњћ§њљњњљњљњњ§ћ§ћ§§ўњћћњњћ§њњ§§ћњћњ§ћћ№§ћњћњњљњњћњ§§ћ§ћћ§њў§ћњњћћќљњњ§§§ћ§ћћўн§ћ§ћ§§ўћ§ћ§ћ§ћ§ћ§њћњћњћћ§§ћ§њњ§ћ§ћ§§њћ§ћ§њћћњћќњћћ§§ўћ§§ў§ћтњћњ§ћћњћћљњћћ§ћ§њћњ§ћ§ћ§ћ§ћ§§ћћўњћћљњљљњњћњњгћњњћћњ§ћ§ћћ§§ћњњ§ћћњћћљћћљљњ§ћ§ўў§§ћ§ћ§ћ§ћ§њћћњћњњћћњћњњћѕ§њњљљј§њћњћћ§њ§ўўыћ§ћ§ћў§ў§ў§ћћ§§ћћ§ћ§ћћўњћћъњ§њћћњњћћў§ў§§ћ§њ§ћ§ћњњ§ћњ§§їћ§§ўў§§ў§§ў§ўя§ћћњ§ћў§ў§ўў§ћ§§ўў§ћ§іўћ§ћ§њњћњћћћ§ћ§ћ§§ѕћ§ўў§ў§ў§ўћћі§ћ§§ў§ў§ў§§ќўћ§њњћњ§ћњћћяњћњћ§ўћћњ§ћ§§њњћњњэ§њћњ§ћ§ћў§§ћ§ћћњћњћћњњћњћњћћќљњњћћўњћћњњћњњљњњћћњњћњњћљњў§ў§§ћћћњћћњљљќњћћўўѕ§ћњћњ§њљњћњњя§ћ§ћ§ћњћћњњћ§њ§ў§§ўћ§§ъћ§ћў§ўћћњ§ў§ћў§§њћњ§§ўўљ§ў§ў§§ћћј§ћ§ўў§§ћћњьћњ§ћ§њћњћ§§ћ§ћћњ§њ§ћћѕ§ћ§§ў§§њћњћћњњћњ§ћ§§љњћ§§ћ§ћћ§њ§ўў§ћхњћћ§ћ§ћ§ћ§ћ§ћ§ћћњћњњћњњћњњ§§њћ§ћћњљљњјљњљљњњћњќ§ћћ§§њћўћ§њћћћњ§ћ§ћћє§ћў§§ћћњћћ§њњјћњћ§њћћ§§њљїјњњћ§ћњњћћѓ§ћ§§ў§ўћ§§ў§ўў§єћў§ў§§ћўў§ћ§§яњћћ§§ўћў§ўћ§ћћ§ў§§љћњћ§ў§ўўћл§ћўў§ћ§ћ§њ§ћ§њњљћњћћ§ћў§њњ§ћћ§ў§ў§ў§ўўў§ўўіћ§ћўћћњћћ§§ўў§ўў§ќћ§ћ§§§ў§ћћєњћћљљћ§њљљћљє§ў§§ћ§њњћў§ћћ§ў§ћћњњўћ§ћ§§іћ§ћ§ћ§ћў§ўўѓ§ў§ў§ў§ў§ў§ў§§ъў§ў§ў§ўћ§ћўњћћў§ў§§ћ§ћћмўњћћ§ћ§њўњ§ћ§њ§њ§ћ§§ў§ў§ў§ў§ў§ў§ўћў§§ўыћ§њ§љћњћћ§§ў§ўћ§ћ§§ўћћ§њў§ў§§ћћїўњ§ћў§ўћ§§ўћ§§ќћў§ў ўјћўћћњћћ§§ћћ§ћ§ћћ§єў§§ў§ћ§§ў§ў§§ў§єў§ўћ§§ўћў§ў§§ў§ўў§§юњћћ§§ўћ§§ўћ§ћ§ћ§ћ§§њћ§ћў§ўў§ўў§ўўї§ў§ўћ§ћ§ўўўћ§§ћњ§ћ§ћў§§ћцўћ§ћ§§ў§ў§ў§ўћў§§ћў§ўћ§§ў§§ћў§ў§ўўў§ўўў§ўўћ§ьњћ§§ћў§ў§§ћ§ћ§§ў§ў§ўўї§ў§§ћ§§ўћћї§ћ§ћўћўћўў§§ў§ўўќћ§ћ§§ўћ§§ўћ§§ућ§ћ§§ў§ў§§ћў§ўў§ћћњћњ§§ўћ§§ў§§§ў§ўў§ћўў§§ѕћ§§ћћўњ§њў§§іўћ§ћ§ћ§ћ§ћћ§ьўћ§њћњўћўћ§§ў§ў§ў§ў§§чўћћњћћ§§ўћўћ§ћ§§ў§§ћ§ћў§ўўќ§ўћ§§ќћўћ§§ћє§њўћ§ћ§§ў§ў§§ќћўћ§§јћ§ћ§ћ§§ўўћњўћўћў§§ћў§ў§ўўќћ§ћ§§жўћ§ћўћ§њћћњћ§ўў§ў§ў§ў§ў§њњ§ћўћў§ў§ў§ў§ў§ў§§іћў§ў§ў§ў§ўўќ§ћћ§§ћћ§ћў§§їў§ў§§њў§ўўђ§ўћў§ў§ў§§ћў§ўўў§ўўј§ў§ўћ§ћ§§ўў§§јў§ў§ў§ў§§ћў§ў§ўўєћў§ў§ў§ў§§ћўўў§ўўў§ўў§ћў§§§ў§ўў§§ћўћћ§ўў§§ќў§ў§§яўћ§ћ§ћўњ§ћў§ў§ў§ўўў§ўў§ўў§ћћќўћћ§§ћшўћўњ§ћ§§ў§§ћў§ћњ§ћ§ћўћўњњ§§ћ§§јћўћўћ§§ўўї§ў§ў§ў§ў§§эў§§ћћњћњћњћћў§ўћ§ћ§§ўћ§§ћљњ§ўў§ў§§іћ§ћўћ§§ў§ўўє§ўў§ў§ў§ў§§ћћќ§њњћћѕўћў§ў§ў§ў§ўў§ћћњ§§ўўќ§ў§ўўњ§ў§ў§ўўќ§ўћ§§љћ§ћћњўћћњ§ћ§ћ§њњћ§ћў§ўўў§ўўћ§ўў§§ўў§ўўќ§ў§ћћќў§ў§§ћ§јћўњўћ§§ўў§§ў§§ўў§ћћ§ѕў§ў§§ћ§ћў§ў ў§чўћ§§ўў§ћ§ўў§ў§ћ§ўћћњћћў§ўўъ§ў§ў§ўћ§ћ§§ў§ў§ўћў§ў§ўўј§ў§ў§ў§ўў§ўў§§ќў§ў§§іўњ§њ§ћћњњћћў§ћўњ§ћўўў§ўўя§ўћ§§ўћў§ў§ў§ў§ў§§ќў§ў§§ћў§ўћ§§єћўћўћћњ§њ§§ўў§ѓњў§ў§§ћ§§ў§§ћћњў§ў§ў§§ќў§ў§§јў§ўћ§§ў§§іў§ўћћњ§њ§њњњћ§ў§ў§§јћњњ§§ўћ§§јў§ў§ў§ў§§љћў§§ћў§§ў§їћ§§ў§§њ§ћћђўћўћћњўћў§ў§§ћћћўћ§§ў ў§§ў§§ўў§§їўћ§§ў§§ћ§§њћ§ћўњћћќњћћ§§ћ§ћ§іў§ў§ўћ§ћ§ўўј§ўћћ§ў§ўў§ћў§ћћўўћћ§їўћ§ћўћ§њћћ§цўћ§ћћњ§§ў§§ћўћ§§ў§ў§ў§ў§ў§§ўч§ў§ў§§ћ§§ў§ў§§ћў§ў§§ћћњ§ћћў§ћћѕў§ў§ћћњљћ§ўў§§ў§§ўњ§ў§ў§ўў§§ў§§јў§§ћ§§ў§§љћ§ћ§ћ§ћћ§ўћўў§ћћјњћ§ў ў§љњћ§ў§ўћћќў§ў§§§ћў§§ѓћў§ў§ў§ў§§ћўћћ§№ў§ўћўњћњ§ўў§ў§ў§§ўћ§§ќћ§ћўўњћ§њ§§ўўѓћў§§ћ§§ў§ў§ўћћўї§ў§§ћўћ§ћћ§ћњўњћ§§ќў§ў§§ўќ§ў§ўўў§ўў§пў§§ћ§ћ§ћў§ў§ў§§ћ§љћљ§ћ§њ§њ§њўћў§ўў§§ў§§ёћ§§ў§ў§ў§ў§ў§ў§§ѓў§§ћ§ћ§ћ§ћ§ћ§§ћыњ§њ§њ§њњћў§ў§ў§ўћћ§ў§§ћ§юў§ўћўћўњ§§ўћ§ћўћў§§іўћ§ћћњћћў§§жўњњћћњ§њћњћњўњ§§ўћ§§ў§ў§§ћ§њўћ§§ўћ§ћћњћњ§ћћ§ўћ§§њћ§ћћњ§§эўћў§§ћ§ћњљ§љњљ§ћ§§ўўљћ§§ў§§ћћ№ўћћњћћ§ћ§ћ§ћ§ћўћћ§њћ§§јў§ў§ћњ§ћћћ§ћ§ћ§§іћ§љћљњњў§ўў§ћ§ўў§њў§ў§ў§§ўћ§§ѓћўћўћ§§ў§ў§ў§§іћ§ћ§ћў§ўў§§ћћўњ§њњ§ў§ўўє§ўћў§ў§ў§ў§ўў§ћљўњ§ћ§§ўўкћ§ћ§§ў§ў§ћ§ўћў§ўћ§§ў§§ћўњћљ§ћћ§ўў§њ§ћ§§ ўёћўћ§§ў§ў§ў§ў§§ћћ§ќў§ў§§ќў§ў§§ћўњћљњњќў§ў§§Цћў§ў§§њ§ћўћ§§ўћ§§ў§ў§§ћ§њўњ§њўњўћ§§ў§ў§ўћўћўњў§ў§ў§§ћ§љћљ§§ў№ћ§њћњћћ§њўњњћ§ћ§§љћ§ћ§§ў§§єў§ўћўћ§ћ§§ў§§ёћ§ћ§ћ§ћћњњљћћўћћ§њћ§ћ§ћ§§ўћ§§ќў§ў§§ћ§ќћ§ћ§§јћ§њ§ћ§§ўў§іўњ§ћћњ§љњўўћ§ћњ§ћћчў§ў§ў§ў§ў§ў§ў§§ћў§ў§ў§§ћ§§їћ§§ў§ў§ўћћѕўћ§§ўћњњ§њћћюљњ§ў§ў§ў§ў§ў§§ћў§ўў№§ў§ў§ў§ў§§ћў§§ћ§§ўщ§ўћ§њ§њўћћњ§љњљћјћљћ§ў§§ўў§§ѓўћ§ћ§ћћњўћў§ўўў§ўўї§ў§ўћћ§ў§§ќў§ўћћс§њ§§ў§§ћ§њћљћњњ§ў§ў§ў§§ћ§§ўћ§њћћ§чћ§§ўћ§ћ§ћў§ўћ§њ§ћ§ћ§ћ§ћ§ћћіњ§њўћ§ћ§њћћј§ўўћ§§ў§§§ћўћћ№§ћ§ћў§ўћўћўћћ§ў§§јћ§ћ§ћ§ћ§§ћ§§њћ§§ўў§§јћ§ћўћў§ўў§ћћ§ћўћћљў§ўћ§§ўўі§ў§ў§ўћ§ћ§§єћ§§ў§ў§ў§§ћ§§ѕў§ў§§ћ§ћў§ўўї§ў§ў§ў§ў§§ў§§ў§ўў§ўўћћяўћ§ћ§ћ§§ћћўћ§ћ§ћўўў§ўўў§ўўў§ўў§§ћ§§оў§ў§ў§ў§ў§ў§ўћ§ћ§§ў§ў§ћћўћ§§ў§§ћўћћћњ§§ў§§їў§ў§§ћ§ћ§§єў§ў§ў§§ћўћў§§ћ§ўћ§§чў§ў§ўћ§§ў§ў§ў§ў§§ћ§§ў§§ћ§§ўћћ§ћ§ўў§§ў§ўўх§ўў§§ў§ў§§ћ§ћ§ћў§ўћ§ћў§ў§ў§§їў§ў§§ћўћ§§єћ§ћ§§ў§ў§ў§ўўќ§ў§ўўіћ§ћ§§ўћ§§ћћяў§ў§§ћ§§ў§ў§ў§ў§ўўњ§ћў§ўћћќ§ћ§ћћ§ѕћ§§ў§ўћў§ў§§§ўћ§§§ћ§ћћ§§ў§ўўђ§ў§ў§ў§ў§§ћ§ћ§§їћўћ§ћ§ћў§§јћў§§ћ§њ§§јћ§ћўћ§§ўўќ§ў§ўўў§ўўє§ў§ўў§§ўћўћ§§ўћ§§ўћўўљ§ў§§ўў§§ѕў§ўћ§§ў§ў§ўўў§ўўў§ўў§ўќ§ў§ўўі§ў§ўћў§ў§ўў§§ў§§ёў§§ћў§ў§ў§ў§ў§ўў§њћў§ў§ўўћ§ў§ў§§шћ§§ўћўћћ§§ћў§ў§ўћ§§ў§ўћ§§§ў§ўўм§ў§§ћ§ћ§ћўћ§ћ§ћўћ§§ћћўћўћўћ§ћ§ћ§§ўњ§§јўћћ§ў§§ўўѕ§ў§ўћ§ћў§§ћћ§ўћўў§§ћўћћ§їў§ў§ў§§ћ§§ѓў§ў§ў§ў§ў§ў§ўўјћ§§ў§ўў§§ќћ§§ў ў§§ў§ўўї§ўћўћ§§ў§§ѓў§§ћ§ћў§ў§§ћ§§љў§§ћћ§ўў§ўћ§§ьћ§ћ§§ў§ў§ўћў§ў§§ћ§§ўў§§ў§§юћў§ў§ў§ў§ў§ў§§ћўћ§§ёћ§§ў§ў§ў§ўћћњ§њњў§ћћ§§ў§§њћў§ў§ўў§јћ§ћ§§ў§ўўў§ўўљ§ўћ§§ў§§ўў§§ўљ§ў§ў§ў§§ыўњћћњњў§ў§ў§ў§§ћў§ў§ўўў§ўўў§ўўў§ўўі§ў§ў§§ўў§ўўў§ўўњ§ўћ§ћў ўћ§ў§ў§§ѕў§ўњћћ§ћў§ўў§ўє§ў§ўћ§ћў§ў§ўўє§ў§ў§ў§ў§ўў§§ћ§§ћўћћўўњ§§ўћћњ§§љљ§њљћћ§іњ§љјњћћ§§љљ§ў§ћќјљљћћќњ§§ўў§љј§њ§§ўўћўў§ћљћ§ћў§§љћћўњ§§њћ§њ§§љљћўљ§§їўћў§§ћљ§ўўќћ§§ўўњўћ§§іњ§§ўўћўўњ§§ўрњљјћјњњј§§њ§ўўћњљњњјљћ§њњ§ў§њљ§њњ§ќћљњўўї§ћљјљћћњ§§ћюњ§ћ§§њћљјљљњљћћљњ§§њ§ќћњњ§§љњ§§ў§§ћћўљ§§ўў§§§љћњњўњ§ўњ§§ў§ў§ьј§§њ§њ§њћљњњјљћњ§њ§ћћўљћћ§ќњўћўў§ћ §љњъљ§њ§њ§§љњјћљњњјћћњ§§ў§§ћў§§ћњњљћњ§§ўћўўќ§њњ§§їћјњњћћ§§ћћїјљћљћћљљјјўћ§§љјћљљњ§љћ§§ыњ§њ§љћћ§ћљњљћљљћљћ§§ћћ§ѓћљћћњћњ§§ћ§§ўўђњ§§ћјјњљјїљњљћћ§ћ§їњ§њјљљ§ћ§§љћљ§§ћћјј§ћљћћэ§љ§ћљћљћјћњ§§љћўўњ§§їћјјћћњјћ§§їњљљћўўњ§ўў§ў§ўњ§§їћљњљљћћљћћљљћњ§ўўћ§§љљћјњј§ћћ§љћћњ§њ§§ўњ§§љњ§§ћљћ§§ћјьњјњјњљљћ§§љљ§ћљћ§§њ§§ћ§№њ§љјћљ§§ў§§ћљћњ§§ћш§њ§ћњјћ§§љћћљљћћњљј§љћ§ўў§їћњњћћљњ§ўў§ќњћў§§іњ§ўўћўў§§ўўњћўў§ћ§§ёњљћћ§ћўў§§ўў§§ћћў§ўў§ђљ§§ўњ§ўў§њ§ћћ§§јњ§њњ§ћћ§§њў§ўћ§ўћўўућўўњћјјњјјћ§љљћњ§њўўњў§§ўњћћ§§ўњ§§ўљ§§§љћљљ§ўњ§§їњ§ўў§њћ§ћћўњ§§ћњљњјћїњњћјїїј§§јљћљћћљљ§§ў§ћњљ§ћљљћњ§њќ§љњїїэљїљјјљ§§њљњћ§љјљњ§ўў§ўќњћљћћ§хћў§ћљњћ§§ћ§љћљ§њћљјљљћњњћћ§§ьљїјљњћњјјљјћјїљ§§ўў§§ў§њ§§љћћјљћљљћ§§ћћљѕљћћ§њ§§яљ§ћ§§љљћ§§њ§§ћњљ§§ћћ§ћўћўўў§ўўў§ћћђљћљњњ§ћћљњњ§љћћљњ§њ§§ў§§ђћјїєєўўљ§§њ§§ўў§јћњњ§њ§њўўњ§њ§љљ§§§ћљћћќљћћ§§єћ§ўў§јѕєѕѕї§§ў§ћуљћ§§њ§њњўў§§њњ§њ§ў§§ћћњїјјњљ§§§љњ§§љёјїѓїѕјћњјћ§њљћљљћўљћћјљ§њњћћљ§§ћјїњјћљјњ§§ћ§ј№љїѕѕљљњњћљћћљћ§ћћњјћћ§њ§§їљ§њћ§§ўў§§ўїћ§њјћћ§њћћѓњљљѕєєѕљљїњћ§§њ§ўћ§§ў§ўљ§§єћ§ўўћ§§њћћў§ §ѓњћћљѕђѓїєѕњљћћўљўў§§њўў§ћњ§§§њ§ўўљћў§ћњњћћљћќљћњ§§ћјэїђђѓїїѕѕјћ§њ§§љ§њ§ўўєћњ§ўўњњ§§љћљљјіїњљћљљћјјїїіјћ§њ§ћњјєѓѓёєѕєєѕїњјѕїђїћњ§§ўљ§§јћњјјљћћљ§ўў§ §ћєљ§њћјђѓѓїљјѕѕьїјњјњї§ћњїљћјњљ§§њњ§§јљћћ§њўў§§ћ§нћњѕѓѓїєѕѕїљњњљљњљјњјњћњњљћљћњњјјћ§ўў§§ћ§§ўњ§§ќњ§§ћћњљћ§њјњїєєјцѕљјјїљїїљїјјљњћ§њ§ўў§њћљј§§ў§њ§§љјјжћ§§ћљћћљјєїѕїѕјѕјїњћћњњјјћ§њ§§љ§§њўў§§ўўњ§§§ћј§§ћћ§њ§њњј§њћљћњјїї№ѕјћњљѕєєјїїјњњјћћќјњњћћјјїїћљћњўў§љћ§ўњ§§ћћ§њћљћћјєѓќѕїїњњњљѕїїљїїљљїјјћћўўњѓљћћљћљљћћљ§§ћћњћљљћњ§њњ§§їњѕєєѕѕїїњњыћњјєјћјїѕњљјњњћљћ§љљјјћ§ўў§§їњ§љљћљћћ§§ќњ§ћјјљїѕјљјћ§§ћћњјјљ§§њ§ћ§ћћў§§ћљћћљўћ§§ћј§ћћњїїѓєєѕѓєѕѕїјїљѕѕїїўљћћњѕјњљљјїїљўў§§јњљјїњњћ§§јћљћњїњњяјљјѕљљїљїљљїѕєїњћћ§юљћњїљљјїїјјїѕљўў§љљћ§ќњ§§ўў§њњ§ћњјєєчѕјљњњјњљїљѕєљњћћњјјњјљљїѕѕўљїїўњўў§ўћэў§§њњўў§§ћјњ§њћјѕєѕѕўїєєїњѕђѕїѓїїшѕєєѕєѕїјјњјљјљїѕїњјїћ§§ўў§ўђ§ў§ћћјїљѕѕљјњћћњїїјјїєјѕѕєєѕѓєјјљљјєѕѕїїєљїљјєєѕњ§ўў§§ў§тћњљљѕјїєєјљїљїїјћћњљїѕѓѕѓђѓєєѕѕўјїїљ§њјїїњ§єїєєујїњљ§§љ§§ћљїѓєјѕјјѕїєјљљѕјєјљљїыѕєєїѓјљњњљћїјљћњљїљљїїєэїєѓѓєѕїїѕєєѓђђѓѓѕєѕѕќјїљѕѕєјѕѕїњљљњјјїєєћјїњјїїѕјѕљјјњљѕѕљїїїјїѓѓїѕѕїѓѓђўѓєєѕ§љїњњљњњћљњњјїї§њљњњќјњјњњєјњљїѕїјљїѕёєєњѕјїѓјѕѕіїєѕѕљїїљљїїќѕєєѕѕїѓјїњњћћљјњљљњјјўњјјќљїљњњўїѕѕљљјљїљљњћћђњћћљћћњњћљћњїѕѕїљїќјњјїїўљїїћјљ§§ћћњѕљњїїљїїѕїїњњћћљћјћћўљћћыљњјњјјњњћњїѕљјјћјїїљїїјњћњјњїїѕѕљљњњ§§ћњњќїѕјљљчїєєѓѕјљїїѕєєѕљљѕїјїљїјєјљљѕѕєєѕѕљљїїјћћњљњтјїћ§§ћљљјљћћљћћљјљљјјљљјјїѕљљїїіјљїїѕєєљѕїїўљїїјћїљљњїїњљ§ћћљ§§ўћ§§ћљѕћљљћ§ћљѕљњћћњќљїјѕѕїјњјјїїѓѕїїєњћјјћ§§ћїѕїјјїхљјј§љћљњ§њљњћњњјјћњїїњїїјћ§§њћљћљјѕѕїќњїљјјњјїљїїјћјњљїїїљїјјњјњ§ћћ§ўћњњїљњћњљїїјњњњјњћљљњњујњњїјљћћјјїљїїјњњїїњјјћћјјњћљљўјћћјјњњјїїјћћ№јѕѕљљјћћїєѓєѕљјњњљјњњїѕїјјїѓѓљћћ§ћїћћјњјњњјљјћ§§љљјјўљћћѓљћћњ§ћњїњљїњјјћљљћјїљїѕѕёљјћ§§ћћњјјїїѕїњњєјњњћ§§јћњћћ§§ћ§њјњњѕјїњњјјњњћ§ћћ§љњћћнљњїјјїњјњњјљљ§§њљћћљћљљћјјћћљњјњјњјјљїѕѕїњјњњјљїљћћљљћћљєњ§њћћјњїљїјћћ§§ћјћћ§ѓњљћћљћњњїњјљњњјћј§љјїїњчљїђђјњ§ћњњљїѕїїјјїїјїїњљїї§ќў§њ§§їѕљ§љјљїљјјњёјѕљјњњћћјњњљѕѕєєњцэѓїјњњљћѕјљѕљњљћњјљћћњјјљћњ§§њ§§ћљћћљјћћњњђјњїјѕёюёѕїєѕїњњњїљїљњјјїњњћћљљћћі§ћћєїћ§њњ§§љћљћјћћ§§ћћљјћ§§ћћњјњјїїњјўњћћяњїњћњ§ћљљћїїјњјњћћ§ќњ§њ§§ћћїјћ§§ѕћњјјћћњјјљїїђњћјљћњїњїїѕїњћћљўјћћўј§§ќљћћ§§§њ§ћћњєљћљћћ§ћњјјњћћѕљћљћљћљјњљїїћѕљјћјјњњїљ§њњўўх§љљњљћ§њ§њћљјѕѓђїѕљјћћњћћљ§§§ў§ћћњщјњљїљјєњњјїїѕїїјћјњјў§љљћ§ћћљћћјљїђёёђѕњњјљњјћјјњїїфћјњњћ§§њ§§ћљљњјњјњњїљїјњљњјњњјћш§ћњњјјњћјљѕљїђѕїјјњјњњљћћјјњјјњјјљљћњјўњљљљћњјњјїљђў§ў§§ћ§§ўў§ћ§ћћњ§ћњњћњњђћњ§ћ§ћћњљњћћ§ћћўї§ћћњћњћћњњ§§ћ§§§ћў§§ўћўўі§ў§ўћ§ћћњћћњьћ§ћўћ§ћћњњ§§ћ§ћ§ћ§њ§§ћњњћћ§ћ§§љћ§§ў§§ћћч§ўў§ўў§ћў§ў§§њ§ћ§ћ§ћ§ћ§§ўў§юћ§ћў§§ћ§њњљљњ§ћ§ћўўј§ў§§ћћњ§§њћўћ§ћ§§њћ§њћ§ўўоћњћ§ћћњ§ћ§ћњњ§ћўћ§§ћћ§ћў§ћњњћ§ћ§ћ§§јћў§§ћ§ћ§§єћўћ§њћњћћ§ћ§§љћ§ћ§ћњ§§ўў§§юћ§ћ§ћ§ћўў§ћ§ћ§ўўћ§§эћ§ћ§ћ§њћљљњћњ§ћ§ћћњњћіњћњћћ§ћ§§ўў§ѓћњњ§ћ§ћ§ћ§ћ§ћћ§ћ§ћљљ§њћљљњњщ§ћ§ў§ћ§ћ§ћўћ§њљљњљћ§§ћўўќ§ўћ§§њћ§њњљњњђћ§њћњ§ћњћњњћћњњё§ћ§ћћњћћ§ћћњ§ћ§§іћњњ§њћљћњћћћ§њћњћћїњћњћљћ§§ћћ§њў§§ћ§њњјљћњљјљћњњш§ћњњ§ћ§ћ§§ћћ§њ§ћ§ћ§њћћ§њњћћњћћўћћїњћњ§ћ§§ћўў§љћ§ћ§ћћњњюљњњ§ћ§§ћћў§ў§§ўў§ўў§јћ§ћ§ўў§ўўўћ§§ќћ§ћ§§§ћ§ћћћ§ћћњћћ§њћњњћчњ§ћў§ўћ§ћћњњљ§ћћњњћ§ћ§ћ§ћћљњ§ћ§§ћ§§ъћ§ћ§ћ§њћњ§ћ§њћћњљњљњљћћў§ћћ§ћѓ§њњћ§§ћћ§њћћ§§пћњћњ§§ћ§ћћњћћ§ћњљњњ§ћћњњћћњњљћ§§ћћчў§ў§§ћћљљњњћ§ћў§ўћ§§ўў§ћ§§ўї§ћў§ў§ў§ўўѕ§њ§ћ§§ћњћћўўєћ§§ўћ§њћњ§§ўў§яў§ћўў§§ўћ§ћћњ§ћћ§§јћњњ§ћ§ћ§§§ў§ўўњћ§ћ§§ўўў§ўўќ§ў§њњќљњњћћўњ§§ўш§ў§ћў§њњ§ћ§ћ§ћ§ћўћ§ћ§ћњћћљ§ћ§ћ§ћ§§њў§§њ§њњє§ћ§ћћњћљњњћљљњћу§ћ§ћњћћњћћ§ћћ§ў§ўћ§ћ§ћ§ћ§ў§њћћњ§ќћ§ћ§§ўћљљујљјњњћ§ћ§ћљњ§ћњћ§§ў§ў§§ћ§ћ§ћўў§йњћњћњ§ћў§§њћљњћ§њћћњћ§§ћћ§ћћњљљћњ§ћ§ћ§ћћуњћ§њљњ§ћўў§њћћ§ўўћ§ћ§ћ§§ўћ§ћ§§ћњњћњћњћћї§њћњ§ћћњ§§тћ§ћўћўћ§ћћњ§ћ§ћ§њњј§ћ§ћ§ћ§ћ§ћњњў§ўўќ§ўћўўћњыћњћ§§ћњњћ§§ћћњћњ§ћ§ћ§§јћ§њњљїїўўћ§єћў§ўћ§ћ§ћ§њ§§њў§ў§ў§§ћў§ћћ§њћњњћыњ§ћ§њ§ўў§њјїјјљ§ћ§ћ§ўў§ћњћ§ўўћ§§ућ§ћўћћњњљћњњљћћ§ћ§ћћ§§ћ§ћћјїѕѕњїћљњњ§§ћњћћњљћњћњњћ§§њћћ§ћ§њњћљњћћ§§ѕћ§ћ§ћ§њћњ§ћћљ§ћ§њјљјјђњљњћћњћњ§њћњћњњ§юћ§ћ§§ўћ§§ўћ§ћ§ћ§ћўў§їњћћ§њћњњјјїјљюњ§ћ§ћ§§ћћ§ћ§њ§ћ§§ўўіћ§ў§ћ§ћњћўў§ћ§ўўшћ§ћ§ћ§ћ§ћ§ћ§њћјєєѕѕїјљћњњёћў§ўћ§§ў§ў§§ћћ§§ћў§ў§ўўћўљњњћњњћњћњћћѓ§ћћ§ћћњњїѕѓєѕѕјњ§јћўћ§ћў§ўў§јў§§ћ§ћњћћњљћћњћћњњљњ§ћњљїїѕѕіїјљїјљљњњљљњў§§ћ§ћћј§ћ§ћ§ћ§њњћўњћћѕ§ћўћ§ћ§ћ§ћ§§ћѓњћћ§њїѕѕїљјїјјяљњљњљњ§њљњћњњљћћ§§щћ§ћ§ћ§ћ§ћћњ§§ў§§ћ§ћ§ћћњњјћ§ћ§њњјѕѕчїјјљјњљљјњћњљњљћљљћњћћљљњњ§ўњћњћ§ћ§§љћ§ћ§ћ§њњљїњљћћ§ћљљїїјњпљјљљјљњњјљћћ§ћўў§§ћћ§ћ§ћў§ўћ§ћ§ћ§§§ћ§њњщћ§њћњћћњјѕєѕјїјїљњњћљљњњ§ѓћўћ§§ўў§ћў§§ћћіњ§ћ§ћўћ§ћ§§јћ§њћњљњљљњјїљщњљњњћњћњњљћњћњћњћњњћњ§ўўєћ§ћ§ћћњћћ§ћ§§ѓћ§њћћ§њћњћњњїїѕ§їјљљќњљјљљўјљљ§јљњњфў§ў§§ћћњћњћћњњћћ§њћњ§§ћњњћњ§§ѕћ§ћ§љјїїјјљљыњљњћњћњљљњћњљњњћњ§ўћњњђћњ§§ў§§ћ§ћ§ћ§ћћљњћћњ§ћ§§њэљјїјњћћ§ћ§њњљњњћћ§љљћ№њћњў§ўћ§ћ§њћњћњћћљ§ћ§ћ§њћћћњљњљїїіѕїјјљњљјњљљшњћњћњњљњљћћњљљјў§§ћ§§ћњљљљњ§ћ§ћ§њњћщњљњњљњњјїњјјљјљјјљјїљљњњь§ћћњњљјјїљљїїљњјў§§ћћњўћ§§ўћўўўћ§§§њљїїчјњћњљњљјљљјљјњњћљњњљњљјљјјљњў§ўћ§ўўўћ§§ћўћ§њ§§§ћњјјћњљљјљљњјљјљњљљјјїїјјњљњњѓћњљљњљљњћњћћўўњћ§ћ§ћўўћњўљјјјњљћњћњћљљїњѕїїјјїїўѕїїјїјљќјљјїїяјњћў§§ћ§ћ§§ўћ§њљјј§їѕїїњјљјљљњњєљјљјѕєѕєѕїїјјўїљљј§љњљљ§їѕїїљћю§ћ§ћћјѕѕїїјїїјѕїїјјќїјїјјљьјїїѕїїјљљћњћњћњљјљјљљїэѕїѕѕїјљљјїїѕєєѕѕєїјј§їљјјэїјјљљћћљњњљјїѕїљљњљљљїјјњњљјјљўїѕѕјѕєўѕїїјђљњљљјјљљњћљњњљљјћљњљњљњљљєњљјљјљњјљјјїїњјїѕјїјј§ѕїјјљјљљјїїјјњљљѓњћљљћњћњљјљљњњўљњњћјљјњљљјњњјљјјњњ§§њћћњљљњћћљљјјљјљќњљњљљёјљњћњћ§§њћњљљћљљђјљљјљљњљњљљњћњњёћњћњћњћњћљњљњњљљјњљўјљљќћљњљљјњњљ§ћћљљ§јїјјљјяїјљљјїљљјјњљњљјљїїјїјљњѕћњћњњљјјљљњњшћ§њћћ§ћћњћњћћњјљїїјјњњљјјљіїјљљјїљјјљљўјљљњјљјјњљљњћћћњћћ§ћћљ§ћћњћњћћќњ§њјјъљћњћњњљјљїјјљњљњњљљњјљљўћњњљ§ћћљјљњњљ№јњњ§ћњћ§ћ§ћњњљљњњѓљћњњљљњћћ§ћњћћўњјјљ§њјњњєљњњјљљњћћљјљљёјљњњљњ§ћћњњћ§њљљѕћ§ћљјљљњљљњњћљќњљњљљќњћћњњњљјљљњљљњўћњњ§љњћћ§§ћњњљќњљљњњќћњњјјњ§ћљїїјњљњљњчћљњћћњ§њћњћњљњњљљјњњ§ћјјњњўћњњћћњ§ћћљљўћњњ§ћњћћћњљјљјјёњћћ§њњљњњљљњљњљљљњљљњ§§њњћќ§ћћњњќћљњљљњљњљћэњћћ§њћњћљћњњљљњњљњћћ§јћњћћњћћњњїћњћљњљњљњњљљјјљљњљљњћўњћћїњћњћћ§ћ§њњљђјљњњћњ§ћ§ћ§њ§њњь§ћ§ћњњћњљљћљњјљљњљљњњ§ћњљљхњљјѕєєјљћњњљјљњљљњњљљїљљњјљљюњ§ћўћ§ћ§ћўћ§ћњјљјњњљњіјњљљњћњњљјјї№ѓюьѕљњљљњћћњћњњјјхљћћљњћћњћњљљњћў§§ћ§ћ§ћћњћњћћ§њћњњћћњћњљљѓњљћїјѓьѓјљљјљљћјљјљњњљњћўњћћњњћњћћ§§ућ§ћ§њћњ§њћћ§ћ§њћњћћ§ћ§њњљњљњљљ§њљњњкћњћњљљњњ§ћњћћњћљњљњљћњћћ§ћ§ћ§ћ§ћ§ћ§ћћњњ§ћћљњњћњњћљњѓћњњћњљљјљљћњћћ№њћњћ§§ћ§ћћњ§ћ§ћ§§ѕњћњћњћњњљљћћњї§њљњњљћњћћќњљјљљјњљћ§ў§ћќ§ћњ§§ћьњјѕєѕљјњћњљњћћ§ћ§ћ§ћћњљъњљјљјњћљљњљљјљљњњћљњўћћьњћњћњћћљѕєѓєјњљљњњљњњљњњ§њљћћ§§ћћљњљњљљјјљњљћљњљљњљћњњћћљњњќљћњјјљѕјљњњљњљљћћњњўћњњќљњњћћњўљњњўљћћљњљњљњљјўќ§ў§ўў§§ў§§яћў§§ћ§§ў§ў§ўћўћў§§ўѕ§ўў§ћўћ§§ў§§§ў§ўўј§ў§ў§ў§ўўє§ўћў§ўћў§ў§ўў§ѕћ§§ў§ў§ў§ў§§єў§ўћ§ћ§ћ§§ў§§§ў§ўўњ§ўћ§§ўўў§ўў§ћў§ў§ўўў§ўўќ§ў§ўўћ§ў§§ћћ§ў§ў ў§§ў§ўў§іў§ў§ў§§ћ§ўў§јўћ§§ў§ў§§ўї§ўћ§ћ§§ў§§§ў§ўўў§ўўј§ў§ў§ў§ўў§ѓћ§ћў§ў§ў§ў§ў§§ўі§ў§ў§ў§ў§ўўњ§ў§ў§ўў§њў§ў§ў§§ћўў§§ўўћ§§іћ§ћ§ћў§ў§ўў§§ў§§шў§ў§ў§ў§ў§§ћўў§ўў§ў§ўћћ§§ћ§їў§ў§ў§ў§ўў§ћњњћћў§ўўэ§ў§ў§§ћўњ§§ў§§ћў§ў§§їћ§ћўћ§§ў§§ќў§ў§§њў§ў§ў§§§ўћ§§шћўћў§§ћ§ћўў§ћ§ћўћў§ўћў§ўўћ§ў§§ћћњ§ћњњў§§ўў§§ў§ќў§ў§§ўў§§ўўћћї§ћ§ћў§ўћ§§њћў§ў§ўўљ§ў§ў§ўћћ§іўћ§§ў§ўћ§ўўў§ўўњ§ў§ў§ўўљ§ў§ў§ў§§ћў§ўћ§§ћќ§ћў§§ћўћ§§ўўъ§ўћ§ћў§ўћ§§ў§ў§ў§ўћ§§ўўј§ў§ў§ў§ўў§чў§§ћўњћћўћћ§§ћў§§ћўћўћў§ўў§ћў§ўў§§њў§ў§ў§§їў§ў§ўћ§ћўўљ§ћћ§§ў§§ўћ§§ўћўў§§ўћћ§ўў§ўўњ§ў§ў§ўўў§ў ў§љў§ўћ§ћўўў§ўў§ќћ§§ўў§§ў§ўўў§ўўњ§ўћ§§ўўћ§ў§ў§§љў§ў§ў§ўўќ§ў§ў ўї§ћћўћўћў§§§ў§ўўќ§ў§ўў§єў§ў§ў§ў§ў§ў§§ѓў§ў§ў§ў§ўў§ў§§њў§ўћ§ћћќ§ћўћћњўћў§ў§§љўћўћ§§ўўђ§ў§ў§ў§ў§§ћ§ћ§§ўє§ў§ў§ў§§ћњљњњїўћ§§ў§ўћ§§ћћў§§ўў§ћў§ў§ўў§ќћ§§ўў§љў§ў§§ў§§§ўћ§§ћ§њў§ў§ўћћ§ћ§ўњ§ў§ў§ўўњ§ў§ў§ўўі§ў§ў§ў§§ћ§§јћ§ћў§§ћ§§іћ§§ў§ў§ў§ўў§ыћ§§ў§ў§§њњ§ў§ў§ў§ў§ў§§ў§ћў§§ќў§ў§§чў§ў§§ћ§ўў§ў§ў§ў§§ћ§јњўў§ўўў§ўўє§ў§ў§§ўў§ў§ўўђ§ў§§ћў§ўћ§ћ§ћ§§ћћ§§ў§§ўѓ§њћјћљњ§ў§ў§ўўј§ўћ§§ўћўўќ§ў§ўў§§ў§ўў§чўћўћў§ў§ў§ўћў§ў§ўћ§љњїњњћћ§њў§ўћў§§ќћ§ћ§§ўў§§ўў§§эўћўћ§§ў§ў§ў§ў§§ћ§§ўўї§ўћћњ§љћњњђћ§§ћ§ћў§§ћ§ћў§§ќў§ў§§ўў§ўўњ§ў§ў§ўўѕ§ў§§ћўў§ћ§њњёљјњљ§њ§ћ§§ў§ў§ўў§§ў§§§ў§ўўј§ў§ў§ў§ўўў§ўўъ§ў§ў§ў§ў§ўў§ћњљјїњјћћ§§ўў§ўўў§ўўў§ўўћњњ§§ўћ§§јћ§ћ§ћ§ћўўь§ўћ§ћћјњјљјњљћњ§§ў§ўўў§ўўў§ўў§§ў§§њћўњўћ§§ћЧ§њ§њ§ћ§§ў§§ћљјљїљјћљњљ§ћўњ§ћ§ўў§ў§ў§ў§ў§ў§ў§ћњўћ§ћ§ћў§ў§ўўљ§ў§ў§ў§§јўћ§ћў§§љљњі§љћљћљћњўћћхў§§ћўћ§ћў§ў§ў§ў§ў§ў§ў§ўћ§§ўўј§ў§ў§ўћ§§шў§ў§§њћїљјњљћњ§њћљ§њ§ћўћћ§ўћ§§ћћўћ§§ўўй§ў§ў§ў§ў§ў§ў§ў§§ћћњћћў§ўћњјњјњљћљ§њћњ§њњљ§ћўњўћўўј§ўћ§§ў§ўўњ§ў§ў§ўў§шўћў§ў§§ћ§ћ§ћћјљјћљћљ§њ§ћћѕўћ§§ў§ў§ў§ўўў§ўў§§ў§ўўћ§ў§ў§§ћуњ§њ§њ§њ§љњјћњ§њћњўћ§ћћњћћ§ћ§ћћўў§§ўэ§ў§§ћ§ћў§ў§ў§ў§ўћў§§сћ§њћјњјљљњљ§њћњћњ§њ§њ§њ§њ§ћћ§§ўў§ќћ§ћ§§їў§§ћ§§ўћ§§§ў§ўўє§ў§ћљњјћљ§њћћќ§ћўћћюњ§њ§ћћњ§ћ§§ў§ћћўћ§§щў§§ў§ў§ў§ўћў§§ћ§§ў§ў§ўћћі§јљњћћў§ў§§ћћ§ў§§ћћјўћўћ§ћ§ўўі§ў§§ћ§ћ§ћ§§хћў§ў§ў§§ћўћ§ћўњњјњјњїњљћљўњњў§њњаўћ§ћ§њћњў§§ћ§њ§ўў§ў§ў§ћњћћ§§ў§ў§ўћўћўћ§ћўњћњћњћњњњљћњ§ћ§§ќўћ§њњє§љњњћљ§њњўў§§ћў§ў§ўўч§ў§§ћћјњјљћ§њћњћњ§љћљњњ§ћћѓљњњћљћњ§њ§њћўўў§ўўќ§ў§ўў§щћў§ўћћљћљћњњљћљњњљљћњ§њњш§њћјњљћњњћћњћћўљ§њ§ћўћ§ўўќ§ў§ўўѕ§ўћ§ћ§њћљ§ћћќ§ћ§ћћп§љћјњљћљњјњїњљћњ§љњљћњ§њ§њњљњјћњўўњ§ў§ў§ўў§лћ§њћљњјњљњњ§њ§ћ§§ћњ§љљїљјљјњљћљљњ§њ§њњћњђ§ћћњњјњјћњћћў§§јўћ§јљњћљљђћјњљ§њћљћљњњ§њњћ§њћјњњзљ§ћўћ§ћўћ§ћњњ§љњњ§њњјњјљїњљ§њћјњїјѕљїљјћљљфћњ§љћљћљћљћљ§ћўћћњћњћј§љ§ћћњњкћљњњћћ§љћњ§њ§љњїљјљљњїљїљїљѕјїњјњјћљћњњћњћѓ§ћћњћњ§њўћћњћћўўћћѓ§њћњћњ§љњјњјњњёјћљњјћљћљњјљљ§њњё§њ§њћњњљћњ§њ§њћћў§ћћ§њљћћы§њ§њћћњљћљћљ§њћњ§њ§њ§§яћ§ћ§њћ§§ћћњћљћњ§њњќ§њњћћњќ§њ§њњќўћћ§§ѓћ§ћўћћњ§њ§њћњњѓћњћћ§ћ§ћ§ћ§ћ§§љћ§ћћњўћћїњћњћњўћ§њњ§§њћћѕњ§љћљ§њћ§ўћћњўћњљћњњэ§љћјћљњњ§љњљ§њ§њњћњњќљњљњњњћњњљћњњю§ћ§ћ§ћ§њўњ§ћўћў§ў§§ўћ§§ёћ§ћ§љћљњњћњ§љ§њњѕљ§њњљњљњљ§њњќ§њўћћў§њњщ§њўћўћ§§ў§ўћў§ўћўћ§ћ§ћ§§яњљњћћ§ћ§њћњњљћљ§ћћћњ§њћњњћюўћ§§ўћ§љ§ћўћ§њњћў§§ўи§њ§ћўћў§ћћўњ§њћћў§ў§§ћ§ћћљћњ§ћўњўњћњћњўњњћшўћ§њ§њ§њ§њћћў§ўћ§§ў§§ћўћћљўћћњ§§ћћќњћњ§§ќћўњћћє§ћ§ћ§ћўњ§њ§ћћѕ§њћњўћ§ћўћ§§ћћ§§ўћћщ§њћ§§ћўњћњ§ћ§ћ§јњњћњћњћћђњћњ§њћћўћ§њ§ћ§§§ћ§ћћяўњћћ§ћ§§ўњ§њўћўњ§§ѓћ§§ўћћњћ§ўњўћћю§ћ§ћћњ§њћљћљћњўћў§§њўћўњ§њњћћўњћћ§§іњ§њ§ћў§ўћ§§§ћўћћ§њўћћўўћћћўћ§ћ§§ћћ§§ўћћё§ћћњћћ§ћў§ўћ§ћ§§§ћ§ћћ§ћўўћћј§љћњўћўћћѕўћ§ћ§ћўћ§ћ§§ўў§§ћє§њ§њ§ћ§§ў§ў§§іў§ў§§ћ§ћўћћѕ§ћћњћћўћ§§ћћѕ§ўњ§њћњћњњјјјћў§њћњ§њњёўћњњћњ§њ§њ§њў§ўўы§ў§ўћў§§ћњњ§ћўћўћўњ§ћћї§ћћњћњћљњњѕќюїњћћўњ§§їћ§ћ§љ§ћ§ћћњ§ћ§ћўћћэ§ўў§ў§ў§ўћ§ћ§ћў§§ћ§§ќўћ§ћћ§ўњћћѓљїєїљ§љћњўћћњњїћўћўњ§њў§§яћ§ћўћ§ћўћў§ў§ў§ў§§љћў§ў§§ћћќў§ў§§ќћњўњњ§§њћћэњ§ћ§ћ§ћ§њў§ў§§ћ§ћ§ћћэ§ћў§ў§ў§ў§ў§ў§ўћўћ§§ќўћўћћж§њћћ§ћ§њћ§ў§§њћњ§њћњћћ§ћ§§ћћ§ћ§§ў§§ћ§§ў§ў§§єћ§ћ§ћ§§ћћ§ћ§§ћъўћ§ћ§ћ§ћ§ћ§њћњ§њ§љ§њ§ћћїўћўћ§§ў§ўўћ§ўћў§§фў§ўћўћћљјј§њћћ§ћ§ћ§§ў§ў§ў§ў§§§ў§ћћњўўћћпўњ§љ§њў§ўћћўў§§ћўћ§ћ§ћ§ћ§њћјїјћњћћћњћћ§ћћя§њў§§њћћў§ў§ўћ§§ћћљњўћ§њ§ћћўўћћ§ћўћћњћћчўњћњ§ћћњћћўћўћўћ§§ў§§ћћњћћ§ѓћ§њћњўћўћ§ћ§ћћўњ§ўљ§њњљ§§ўў§ўј§љјјєњњјјњљњ§ўћўўњћўњњћўў§єћњ§§ћўў§§јњїїўўћ§§ѕњћћјњњ§њњ§ўўј§ћјњћ§§ўўўћўўєњљ§њњ§њ§§њњўўѕћў§ћјњјїї§ћћћљјјњ§§ўј§љјјњјћ§§ћњ§ћў§§їћљћљљјљљћћљ§ћћўћћўўћ§њ§§њњ§§љ§ўўќћњњ§§ѕњ§§ћћњјљћј§§њњ§ўўћ§§њ§яћњўўњљўћ§§њњ§§њ§ўў§цљ§ћњћћљ§§њњ§њљњјњћљјјћћљљћћѕљћћљћљ§љћљћћљ№§ўў§§ћњјњњјњјњјћћї§љљ§§ўў§ўўћ§ћњњјј§њўљћћѕљћњњ§§љљћњјјњћљљћњ§§иљњєїїєїѕїњћљћњў§ўўћљњўў§њ§§ћњјјћ§§ћўћ§§њњя§ўћўўћњ§њљњјњњћћ§§№њ§ћјљљїњјћњјљћћ§§ћћњћћ§§Эћњњјњјљћјјњ§љљ§§љћўњ§њ§ћў§њњ§ћјљљ§§њ§љћљћњјњјљћњљљћћ§§њљјјљюћјјњћћјљјњ§§њњ§њњ§§ўћўўѓ§ў§љјњјњњјјїјјњћњ§њњћћјљ§ўћ§љћњњэљћ§§љ§њ§љљћ§њћљћљћјјњў§ўўяћ§§њ§ћћњњ§њўўњ§§ћћі§јљ§ћћљљјїїњњљљћјљљѕћ§§њ§њћ§њњ§§ћ§ўў§§ўљћћ§ўњўўцћ§§ћћњўћўў§§љјїїјїњћ§ћћљћљљўњ§§ћў§њљ§§јњўўћ§љћјјэњћћљјљћ§§ў§§ћћ§њљћўўі§љњїѕѕїјћ§§ћ§ыњ§ћ§љњњўў§њћљїєѕјїїјњњэјњњћљћћ§њ§ўћ§ў§љћјїїљњћћ§њћљљўћ§§ў§§љњїїљњјњїљљћћђљ§њ§ћћљљћјњ§§љљђїњјїїњћљћћљћћ§§јљћљћћ§њ§§ўњўў§§ћїїљєњљ§њњ§§шљћјјњњљ§§јљїј§ћњїљјћљјјћћљјќћњ§љљђњ§§јћњїїљљћћ§љљўћљљ§љщћѕѓїїјјљљћјњјјљњїїљљњљ§§њўќ§љњ§§ќљћљ§§ћ§ўњћћњљљћћљћћљљу§ћљ§§љћ§ўў§љљ§ўўљїљњњћћљљ§њ§љљ§ўљ§§пњљћ§§ў§њљћћјїљљњћљћљћћљћљљ§§љњњјњњ§јўњњїјїњјјљћ§њљњў§§ў§ћ§њњћёњ§ћљњјћљћћ§ћћ§њњўў§§цљјјњјњјњљљїїјћ§њљњљљћ§њ§ў§§ћњ§ћ§ўў§§њћћіљ§§њ§§јљћљљїјљћљћћ§њ§§љћ§љњўўйћњљ§§љћјњ§њјњјњјјљљњ§ћљћћљљњ§љњњїјїїјїјјњѓ§ћљ§§ћљћљљћ§ўў ћљњјїљњћ§§цљјњјњјјљњ§§њћњїїјїћљљњ§§њљљјљћљ§љћ§ўњ§§ьњ§љћјљјєєѕїњјјїљјљњ§§тў§§ўў§њ§ўў§њњ§њљћљљћћљљ§§љњ§њ§§§ћљћћ§ћљћјїѕѕћїљњњћћљѓћњћўў§њ§њ§ўћњњўљ§§ћ§§њ§§ћўћ§§ћћ§ўў§§ћћњїїљљцїјјњјїћћљјњћњ§ў§љљїїњћ§ћїјјњћ§њћў§§јњјјћ§ћў§§њ§ћћњ§њћћ§љј§§ћљљћјћћ§ћћўњїїьјїјјїѕїїћ§ўћўўїћњњ§јјќљњ§ўўќ§ћєћћ§ќљјјїїќљњїљљў§њњљ§ћњјјїыјњјљљћћ§§ћњњ§њњћљћљњјјўљ§§єћѕшѕњњћћїњїљљ№їѕїњћћљћљћћјјћћјјљяїјњјљјјћћљљјљљјјљљћц§ћћљћљћјїљћљјїїњљљћћљћњјћ§§рћјѕїїљѕїѕїјњјљљћљћљњїєѕѕјљљњ§ћљ§§јћїѕїїњњїыљњјћљјїїѕљјћљћљћљћљћ§§ћћљћњјјѕљ§њў§њ§ў§љјјѓњјјїїѕѕєѕїїљїїњўћљљіћ§§ћћјїїѕјјњќїњјљљћћљћјћћћљћљћљљ§њњћћњїѕѕћїјјњјјћњјјћљљіњјјїћљјјњљљюјљјїњњјїљњјјљјјћћљљљ§ћ§§љљ§§њљќњјљјјњїњњљћјјњђљћјјљћћљљћљћћљљёјљћјљїљћћљљћњ§ўўј§љјћњ§њїїћњљћћљљѓћјњјјћњјїїљњћћјљјјљљћњ§§ћќљћћљљ§ћњ§§ўўњ§§њљѕљјњћћцјљћћјњћћњћљїјјїњњјїљљћјљћњњћ§њљ§ћњ§ћјћћњљћљљѕљљјћљѕѕєєѕїїєјїљљћњѕњљ§љћћђљћћљјјїјњљћљљјјјљњљњљњјљљћћљјљћ§§ќњ§њїї№јњњјїїњћћ§§њјњњћћѕљћљ§§љљћєњћћўљћћљїѕјљњ§љ§§љћ§ўўэћўў§§їјјљљћљјњѕєѕєїїяєїјјїјљљїђѓђїњјљћћњљ§љљїјјщїј§§ћ§њ§§љњљћћњњўўћѕєєїї№љѕїјјїљљјјїљњјњјјэїњњјјљњњїѕїњљћћјјљїїўјљљћ§јћ§§ћцљњ§ўўњљїљјјњјјѕјјљїїљљїјјћћчљјћљјїљїљљћњјњњљћћљћћљљњљљыјњјћљћљћљћћјїљїѕјѕѕєїїўљѕѕјьїљјњљћљћћњљњњљјњјјњћћ№јљњјјћћљљјљљњўћўўчњ§њњѕѕјѕїљѕїјљїїљљњїєѕјјѕѕљјљќјљљњњћћљљћљљ№ћњјјљљ§ћ§љћ§ј§њўўњћ§ўњњїїыљјњїѕїїѕјѕїљјѕѕљїїњњјјєњљјјњїјњћћјїї§ѕјљљћ§љћ§§ўњјјњљѕєјѕѕїїюљјњљљњјјњјћћњјїјњїїљјњјјљљјјќљњњ§ §љњћљ§њљјјїњјњјѕїѕєњњіјѕљљїљњєјљљўћљљјЧњљљ§њњљљ§њћћљњњ§ћљ§§њњћ§њ§§њљљћњљјњћњњ§§љјјљћћњљїјљ§§љћћљљїњљ§љ§§љћљљјјїјјћљљ§ўўі§јњљ§§ўўћўўіћ§љћјјљѕјћћ§љћјјњћћјјюљњњ§ћјљћ§§њћјјљљћ§ §њ§ўњўќњ§љ§§ѕљ§љјјљљћњњ§§ўљћћўњ§§ѓћјјљ§§њљћћљћ§§§њ§ўўўћўўў§њњћњњјјљћ§§ьўћ§§њњ§ћљљјћјїњѕїјјљљў§њњј§ћў§§њ§ўўўћ§§ўћћўњљњјјњўљћћќјљљ§§ћњ§љћјјцњћ§ўў§њ§њўћњ§ўў§§њњљљ§њњ§ћћюљњљљўњ§ћњјјњљїїѕїјј§іћјјљјѕѕњљ§§ћњ§њћ§§љњћљћљјљљќ§ўњ§§љќ§ћ§їїўњћљсјњјњћјњњјњјњћњјїјјљљј§њћљ§њ§њњ§§ўўњ§§ћё§ўўћћўўњњћ§ћљњљљњћљћјѕїїсѕјј§љњћјїїѕјљћћљњњў§§ўўћўњѕљїћ§§ћїљњ§§њћ§љјјљњїјњћљјјюњјјњњјљћћљћћљ§§њ§ћћюњјљњ§љ§§њћњ§§љєњ§љљљћљњўўћўўєћјљћ§§ћљњњћјјљћјћјјїјјќњћћјјђљћљћњљњњљњљ§§ўў§ќњ§ћўўў§љљњћјћљљћћљїњћјњјјњњћћўњ§§љњ§§љћ§ў ўўњўўљћўњћ§§ћћєљћћљјјњћњњћ§§љыїјїѕїјљњњљћћ§њњ§§љ§ўћћѕњ§ўћўўћўўћ§§чјїїњћљћљћљћљљћ§ўћ§њљњљјїјј§њ§љљі§њљњљњћњњўў§№њ§њў§§ћўўњјјћћњ§§§њ§ўўќ§њ§њњќ§ћјћћњ§ўўћћўўўћўўї§љї§ї§§њўўўћњњћў§§њўўьњўў§љњўўћњјїјљљћћљ§ўў§ѕў§њљњ§њ§§ћўўћўќ§ўў§§љљћѕљњ§јјјњљћјјљљ§§љ§љѕњ§§њ§ўћўўћўўъњ§ўўћћўћјїѕїїјјњњћћњ§ћћљыћ§њљјљћ§§њ§§ћљ§њ§ћњ§ўўљ§ўў§њћў ўъњ§ўћњјїїљљјњљ§§ў§§ћћљјјіћ§ї§ћћў§§њњў§љљњјјћњ§§ў№ћ§ўћўўћ§§њћўјњјњњьјљ§§јћћ§§њ§§ћљ§ўўћ§њњ§љјљљњћљњњ§ўўћўўњћўў§§ўўѓў§ў§ў§ћ§§ў§ћўў§ёћў§§ћњњћљљњњћћ§§§ў§ўў§ўє§ў§§ћ§ћў§§ћўўќћ§њљљўјћ§ћ§§њњ§§ўћ§§іў§§њњљњћ§ўўў§ўўќ§ўћ§§њћ§§ў§ўўћёњљњћњ§њћњћћ§ћ§ћћ§ў§чћњњљњњћ§ћ§ћў§§ћћњћњћћ§ћўњњћ§ўў§ўўј§ў§ўћ§ћ§§іћ§§ўћў§ўў§§ўћ§§ћіњљњћњ§ћ§ћ§§ў§§ћ§§ђћ§ћћњ§§ў§ў§ўћ§§ўћ§§ѓў§§ћўћў§њњћћ§§їћ§ћљњљњћњњћіњћњњћћњћњћћ§њћњњћ§юўћ§њљњљљњљњљњњћњ§ћћэ§ўўћў§ў§ўћњљљњњћ§ћ§§ћњЭћњ§§ћ§ћћњљњњћњћћњ§ћ§ћћљљѕѕїѕјљљћћњљўћў§ўў§§ўћ§ћ§њљњњљ§ћў§ўћ§§ўћўў§§ў§§Щћљњљљњњћ§ћ§§ћњњјјљљњћљњћњњ§ћ§ћ§њљњњћ§ћњљљњљњћњ§ћ§ћўў§ћўў§ўўћ§§њћ§ћчњљњљњћћљћћњњћњћњњћ§ћ§ћ§ћњњћњќљњњћћ§§ћ§§ўћ§§ћћў§ў§ўўѓћўћћњљњљљњњћњњ§њјўћўў§ћњљљјћњ§§ўћ§ћћяњћ§њћњўњ§ћњљљћў§ўўћ§њ§јћ§ўў§§ћњњ§ћћњћћњљљћњћјњ§ћ§ћ§њ§§ћћ§њњћ§§ћњћё§ћ§§ў§ў§ўћ§њћ§ўўх§ћћњљљїљљњ§њњћњћћ§§ћ§ћўћ§§ћћі§ћ§§ўў§ћћњњќљћњћћєњ§ћўћ§њњћ§§ўўт§ћљљњјљњњћ§ћ§ћњњћњћћ§ћ§ћ§ћўћў§§ѓўћ§њћљјїїљћњљљэњљљњћњњ§§ћўўћўћћњњљљњњћћ§њћћјњ§ћ§ћ§§ўўћ§ў§§ћћљіњљњћћњњћў§§№њћўћњњљ§ћћјјљљњљљ№њћњњћњњћћ§ћњћњњ§§юћ§§ў§ў§ўћћњљљћљћћ§§шћ§ћћњњљњћ§ћ§ћћњ§њљљјњњћњњћњ§ћї§ћ§ћњљњњћћ§њ§ћ ћјњљњљљњњћћњњљњњћљљјьљћћ§ћ§§ў§§ў§ћ§ћ§ћћњћћњќ§ћ§њњљљћњћћњњћћіњћћ§ћњћў§ћћўћјљјљњњћў§ћћј§ћўћ§ћ§ћћ§ўћњњњљјјљњћћњ§ћњћћ§ўћ§§ћћ§ћћ§§ћѕїљљњњќћ§ћ§§іћ§§ў§ў§ўў§§њў§ћћѕљњњћњњ§њњћ§§сћ§ћ§ћћњњљњљњљћћљљњњ§§ћљћћњћ§ћўћћў§ћћўћћ§њћњњіћ§ћ§ћ§§ћњћћљњћњћњњ§§§ћ§ћћњжћ§§ў§ў§ћћ§ћњћ§ћњњљњљњњћћ§§њћњњћћ§§ћљљћњљљњњ§ѓћњћ§ћњћњћћњ§ўўњћњћњћњњћщњљјљњћћ§§ўћљњљњњћ§ћ§§ћљљњћ§§ћ§ћћњћњћќ§ћ§ћћњюћњ§ћ§ћ§ћ§§ћ§§ћћњјїїќјљљњњћ§ћіўћ§§ўћ§ћў§§јћ§ћњћћњћћї§ћ§ћ§ћњћњњїћ§ћћњњљњјјћљјљљњњћў§ўўјћ§ћ§ћўў§§ћю§ћ§ћћњњћ§ћ§ћћўўћ§њњіћ§§ўћ§ћ§њљљј№љњњљњњћњћњљњ§ћўћћљњљњ§њћњњіћ§ўўћ§ћ§§њњњћўўћћ§§љћ§ў§ћ§њњћѕ§ћ§ћ§ћњњћћњњў§њњўћљљьњћњњљљњћњ§§ў§ўўњ§§ћњњњћ§ћў§ўўѓћњћћњћћ§ћћњњљљ§јљћћ§ћ§њљњњљыњљњћћњњћћў§§ћ§§ћћњћљњњћё§ћ§њјњјљљњћњљљјјѕљјљљњњћњћћњњјњќљњћњњћњ§ћћњњћћўњћћєњћњћњњљћњћњљљћњћїљњњ§ћ§њњљљўјљљіњљњћћњћњћљљљїљњћћ§ћћў§ћћћ§ћњњљ љсјљњњћњљљјјњњћњћњћњћњ§ћ§ћ§ћњћњљњњћї§ў§§ћ§§ћњњѓљњњљљјјљјљљјљљўњћћљњ§ћћњњљљњљўњћћ§њћњњћћњћњћћј§ћ§њњљљјјћљњњљњњќљњњћћўљњњћћњњљћћђњћ§њљљњљјљњњћњњћќ§њ§ћћљ§ћ§ћљљјјќљњћњњљїћњ§њњљљћњњћјњћћњћњњћћѓ§ћњњјљћћњћћњ§§ѕў§ћћ§њ§ћњћљљќћњњћћњюљњњћљњљљјљњћњњћњњћћ§ћћ§ћћњњќћњњћћ§јћ§§ў§§ћ§§ўћјјњє§ћћњњљњњ§њћњњћћљљњћћћњ§ћњљљѓњћњњћћ§§ћњ§§њњјћњћњћћ§ћћўњјјїўјљљўњћћўњљљћњ№ћњћњћћњњћњљћњћћњњјћ§ў§ћљњћћњ§ћњћћћ§ћ§ћљљћњљљњљљъњћћ§љњљљњћњћњћћ§ћћњћљњњњћњћњњћћњћћ§ћўћћћњћў§ўў§іћљњњћћњћњљљјљ§њћњњ§ћњћћњїћљњћћњћњћћњћ§ћ§ў§§ћў§ўў§ўјљјєљњњљјјњњљјљњњљњўјљљћјљљћњњўјљљўњћћњрћњћ§ћ§њћћ§ћў§љјљјњњљњњљњњјљљјјљњњћњћћњљјћћёњљњљљћњњћћњћћ§ћћіњљњњћњўњћњњћћљјїјјљјњьљјњљћњћњњљћ§§ћњљњњљњњќ§ћљњњћћ§ћћ§ўў§шћ§§јјїјљјњљњјљљјјњљљјїїјјњћќњћћљљўњћћяљњњћћ§њ§ћњћ§ћ§§ў§§љђјњљљјљљјїјљјїјјљњїљћ§њљљњљњњљўњћћњљћњ§ћ§ћўўў§њњљњјїїјјљљђјњљјјљњњљ§њњљњњљљњљњњћћњњщћ§§ћ§ћ§ћ§ћ§ћ§ћ§ћћњћћ§ћњњћљњљњљљўћљљіњљјјљјљћњћћљ§њњљћћ§§ћћ§њњћ§§ќњћћ§§ўњ§§жћ§ўћњљјњљћ§§ћ§ћњњћњњљјљњћ§ћћњњўћћљћћў§ћћњћћњћ§ўћўўјћњљћћ§§ўўў§ћћњіјљњњћњћћ§њњќљњћњњќћ§§ћћћњ§ћ§њњћѓњћ§ћ§ћ§ћ§ћ§ћ§§ћћў§ў§§ќў§§ћћ§їўћўћњћћњ§§ћњљћњ§ћ§ћњњѕћ§ћ§ћњњћњ§ћћћ§ћ§ћўўњ§ўћ§§љљњђљњњћњ§ћ§ћўў§ћ§§љњћћ§њњљљњћ§ўћ§§ў§ўўњћ§ћў§ўўќљјљњњљњћњћњ§ћћќ§њњ§§ўћњњћљћћў§§эћ§ўў§ћўў§ћ§§ўћћ§§ћњњ§ћ§ўўў§њњ§љјљљњћњіјїјњљћћ§ћ§§ѓњ§ћ§ўћћњћњћњћћњў§§ћ§ћћ§ўћўў§цћњњћћњљњљњњљљњљњљњљњћњњћћ§§хњћ§§ћ§§ћ§ћ§§ў§§ћ§ћ§ћњњћњћ§ўў§њњ§њћљћћљќћњњљљјњћ§ў§њњљљоњћћњћ§§ў§ћў§ўў§§ћњњћ§ћћњњћ§ћ§§ўћћњњљљњњљћћњњёљњњљљњћњћћњњћћ§§їњћњњљњћ§ћћ§јћ§§ћћў§ћћћњћ§§ўўє§ћњћњ§ћњћљљњњћў§њњтљћњ§њњћћњћњ§ў§§ў§ўћћ§ў§ў§ў§ўћ§§ўў§ўўў§ћћў§ћћъњћњћћ§њњљњњљљњњћ§§ћ§ћ§§ћќњ§§ўўў§ў ўч§ў§ў§§ў§ћћњћћњњћњњљњљљњ§ћћў§ћћў§ћћєњћљљњћ§§ћњњ§§ћќў§§ўўќ§ћ§ўўњћ§ћ§њљљшњћњћњћњћћњћўў§§ў§ћњћњњћ§§ћї§ў§ў§њ§§ўў§ёћ§ћ§§ћ§ўћ§ўў§љњњњћ§§ћћ§§§ў§ўўќћ§ћ§§їћњ§ћњћњ§ў ў§ёћўћўћ§§ў§ў§ў§ў§§§ћ§ўў§§ў§§ўєњљњћњћћњњўћўўђ§ћ§ћўћ§ћ§ћ§ћ§ўўў§ў ў§ўўћћљњ§ћ§ћ§њњњљћћњњћћў§ћћў§ћћ§ќћ§ћўўќ§ў§ўўњ§ў§§ћўўђњљјљљњњљљњњ§ћњњћш§ћ§ћњћ§§ћћњћ§§ћњ§ћў§ўћў§§ўў§ўўў§ўўш§ћўўљњљљјјњљћћ§ў§ћњњћњњћћ§ўћўўўћ§§ыў§ў§§ћћљњћњ§§ћ§§ў§ўћўўїћ§§ўўњљњљљўњћћћ§њћћ§§јћњћ§§ўў§§јћ§ћћљњћ§§ќћ§ћўўњ§ў§ў§ўўќ§ћћўў§ ўў§ўўў§ўў§§ћўћћљўћў§ў§ўўў§ўўќ§ў§ўўў§ўўљ§ўћ§њ§ўўј§ў§ў§ў§ўўў§ўў§њћў§ў§ў ўј§ў§ў§ў§ўўћѕўћў§ўћ§ћ§§ўўў§ўў§іћўћў§ў§ў§ўўў§ўўљ§ў§§ћў§§ ўў§ўў§§ў§§ўѕ§ў§ў§ўћ§ћћ§§љў§ў§ў§ўўђ§ў§ў§ў§ў§ўў§§ўўј§ў§ў§ў§ўўў§ўў§§ў§ўў§јћўћў§ўћ§§ќћ§ћ§§ўћ§§ўў§§ќў§ў§§ў§§ћўћћ§§ћ§§§ў§ўў§§ўћћ№ў§ў§ў§§ћ§§ў§ў§ў§§ћћўћў§§ўя§ўћўљњјњњћњћћ§§ћўўў§ўў§њћўћ§§ўўњ§ў§ў§ўўщ§ў§ўћўћ§§ў§ў§ўў§ћ§њ§ћўћћ§ьў§ў§ў§§ћў§ў§ў§ўћўћў§§ўќ§ў§ўўќ§ў§ўўј§ў§ўћў§ўў§ћћ§§ўћћќўћў§§цћ§ћ§§ў§ў§ўў§ћўћў§ўћўћў§ў§ўўў§ўўќ§ў§ў ў§§ўћћєўћўћўћў§ў§ў§§ў§ќўћў§§іў§ў§ў§ў§ў§§ўўћћ ў§ўў§ўўћ§ў§ў§§юўћ§§ўћњњ§ћ§ћўћў§ў§§љў§ўў§§ўў§љў§ў§ўў§§њћў§ў§ўў§ўћўўѓ§ў§ћњ§љ§ћ§§ў§§љў§ў§ў§ўўќ§ў§ўў§ћћўћўћћќў§ў§§ўњ§ў§ў§ўў§шћ§њћњў§ў§ў§ў§ўћ§ўў§ў§ў§ўўў§ўўі§ћ§ћўљ§ћўћћќўћў§§§ў§ўў§ѕћ§њ§њњћўћў§§ўў§§ћў§ў§ўўў§ўўіћ§њњћўћўћ§§шћў§ў§ўћў§§ћћ§ўћ§њ§ћћњ§ћ§§ў§ћў§ў§ўўёћўњ§ћћ§ў§ў§ў§§ћћэњў§ў§§ћў§§ћ§њћ§ўћў§§іў§ўћў§ў§ў§§Эў§ў§ћўў§ўћў§ў§§ћў§ў§ўў§ћў§ўњ§ћў§§ћўћўћ§ћ§њ§њћ§ў§ў§ўўє§ў§ў§ў§ў§ўћўў§ўў§§яћўћ§ћў§ў§§ћ§ў§§ў§§ўў§ўўњ§ўњ§§їў§ў§ў§ў§ўўѕ§ў§§ћў§ў§ў§§єўњ§њћ§§ћ§§ў§§ўў§ўўў§ўўь§ўјћњћћўћў§ў§ў§ў§ў§ўўѓ§ў§ў§ў§ўћўћў§§ўр§ў§ў§ў§ў§ўћўћўћў§ўњњћ§§ў§ћ§ў§ў§ўўўћўў§ћћ§§ў§§ў§јў§ўћў§ў§§њў§ў§ў§§ўъ§ў§ў§ў§ўњўћўћўћў§ў§§ћ§§юў§ўћўћћњ§ћўћў§ў§ў§§ќў§ў§§ўњћ§ћ§ћ§§їў§§ћўњ§ћўў§ў§ћўћћўђ§ўћћњ§ћўћ§ћў§ўўљ§ўћўћў§§ћў§ўћ§§њћ§§ў§ўў§ў§їћўњћјњљњћћљў§ў§ў§ўўў§ўўў§ўўч§ў§ў§ў§ў§ўћўћўў§ўў§ў§ў§ў§§яў§ў§ўћ§њћљћћ§њўћ§§ўћў ўќ§ў§ўўќ§ў§ўўў§ўўў§ўў§уў§§ўў§ў§§ћ§њ§њ§§ўћўћўћў§ўћ§§ўўњ§ўћўћ§§ћќ§ў§ўўј§ў§ўћћ§ўўў§ўўў§ўў§ёћў§ў§ў§ў§§ћў§ћ§§№ћўњ§§ўћўћ§§ўћў§ўўі§ў§ўћўћ§§ўўъ§ўћўћў§ў§ўћ§њ§њўћ§ћ§§ўў§ўўћћќњ§њћћ§ўњ§ў§ўћ§§ћл§ў§ў§§љђљўћ§ћўћ§њ§њ§љ§ћ§§ў§§ћ§ћў§§ћўћћђ§њўћўћ§ћў§ў§ў§§ѕўћ§§ў§§ћўћ§§іћ§ћ§§ўњ§ћ§§ћ§№ў§§ћ§њ§њ§њ§њўћў§§яў§§ћњљў§ћ§ў§ўћ§§ўўї§ўћўњ§њ§ћћњё§њўћ§§ўњњћ§ћ§ћ§§њў§ў§ў§§ѕўћўћўћў§ў§ўўх§ўћўћўћћњ§љћљћњ§њ§њ§њўћў§ў§§єўћ§ћ§њ§ћўћўћћќ§ћў§§ьў§§ћў§ў§ўћ§§ў§ў§ў§ў§§ђћњћљћњўћўћўћўћћ§сћўћў§§ћўћ§§ўћў§ўћўћ§њћћў§ўћ§§ў§§ќў§ў§§ьў§ўћћњ§њ§њўћ§ћўћ§ћў§§ўўћћљў§ўћ§ћ§ §љћ§њ§ћў§§§ў§ўў§ўїњћњњћ§§ў§§ќў§§ћћўўћћш§њ§ћ§ћў§ўћў§§ћў§ў§ўў§§ў§§јћўћў§ў§ўў§§ў§§љўњћњћњ§§ћћ§ћў§§ёўћўћўћўћ§ћў§ў§ћћћ§ћ§§ўўи§ў§ў§§ћ§ћў§ў§ў§ў§ў§§њљљњјћњ§њўћў§§ћ§ћ§ў§§цћў§ўћўћўћўћ§§ў§ўћў§ў§ў§ўћ§§ўў§§ѕўћўћў§ў§ўћњњћьўњ§ћ§ћў§ўћўћ§ћ§ћў§ў§§ќўћћ§§ўћ§§љўћўћ§§ўўў§ўўы§ўњўћ§ћ§ћўћ§љћћ§њўћўћћ§ћћў§ўћћх§ћ§ћ§§ўћ§ћўћўћў§ў§ў§ў§ў§ў§ўўў§ўўлљћљ§њ§њћњўћ§њ§ћўњ§ћўњћћўњўћўћ§ћћњћњћ§§ћј§њ§њўћў§§ѕў§ў§ў§§ћ§§ўў§ћ§њњћт§ћћњ§њ§њ§ћў§§ћўћў§ўњ§ћ§ћ§ћўћў§§ьћ§ћ§§ў§ўћўћў§ў§ў§ў§ўўљњћљћљћ§§ќњ§њћћіљћћўњњћўћ§§јў§ў§§ћўћћ§єћўћ§§ўћ§ћў§ўўњ§ў§ўљћћњи§ћ§њ§њ§њ§љћљћљћљ§њўћў§ў§ўћўћ§ћ§ћ§§ўћўћў§§§ўћўўЫ§ўћћњ§њњћћњћњ§ћћљ§њћљћњ§њўћўћўћћ§§ћўњўћ§§ўњ§њ§ћ§§ў§ў§§ўў§§§ў§ўўэњћћўљћњћљћњ§њ§ћћњ§ћћўў§§ћјўћћњ§§ўћћ§ћшў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§§ћћф§њ§ћўћўћ§њ§њ§ћўћ§§ўћў§ў§ўћў§§ў§ўў§§ѓў§ў§ў§ў§ў§ў§ўўћћ§ћ§ћћюў§ў§§ћћ§ў§ўњ§ћ§§ў§§ћў§ўћўў§§ў§§іў§ўћўћўћ§ўўњћў§ў§ўўяћўћ§ћћњ§ћ§ћ§ћў§§ћћєўћўћў§ў§ўћў§§њў§§ћў§§ёў§ў§ў§ў§ў§ў§ў§ўўў§ўўћ§ў§ў§§њў§ўћў§§ћў§ўў§§ѓћ§§ў§ў§ўћў§ў§§ћў§ў§ўўќ§ў§ў ўћ§їўћўћ§§ў§ўўў§ўў§ѕћ§ћ§њўћў§§ўўў§ўўў§ўўў§ўў№ћњћўћўћў§§ћ§§ў§ўў§јў§ў§ўћўћћўў§ўўў§ўўѕ§ў§ўў§ўў§ў§§ћў§ў§ўў§єњћћўњ§њ§њўћўўѓ§ўћ§љћњћ§ў§ў§§њў§ў§ў§§љўћў§ў§ўўњ§ў§ў§ўўќ§ўћ§§ћћўћ§њћћє§ћўћўћ§ћ§§ў§§ўњ§ў§ў§ўўѕ§ў§ў§ў§§ћ§ўў§ўў§§сўћўћўћ§њ§њ§ћў§ў§§ћ§њ§ћўћ§§ў§ў§ўўі§ў§ў§ў§ўћ§§ўў§ўўљ§ўћўћўћћњўћўћўћћћўћ§ћ§§ўў§§щћ§§ћћ§§ў§ў§ўћў§ў§ў§ў§ў§§ ў§ћў§§юў§ўћћ§ўћўћ§§ўћўћўћћ§ќўћў§§ћў§ў§ў ўќ§ў§ўў§їўћ§ћў§ўћ§§ъћўћўћћ§§ћў§ў§ў§ў§ўћ§§ўўї§ў§ўћ§ћў§§їўћў§ўћ§§ўўў§ўўѓ§ў§ўћўћ§њў§ў§§§ў§ўўў§ў ўј§ў§ўњ§ћ§§љў§ў§ў§ўўў§ўўї§ўћўћў§ў§§ўј§ў§ў§ў§ўўњ§ў§ў§ўўў§ўўјћўћ§ћў§ўўў§ў ўі§ў§§ћ§ћ§§ў ўў§ўўў§ў ўњ§ў§ў§ў ўѕ§ў§ўў§ћўћў§§§ў§ўўќ§ў§ўўў§ўўў§ўўѓ§ў§§ўўћўћўћ§ћћћўћў§ўўђ§ў§ў§ўћ§§ў§ў§ўўњћ§љ§њћћ§ў§ўў§§ћў§§§ў§ўўљ§ў§ўў§ўўў§ў ўў§ўў§ћўњњ№ћў§ў§ў§ў§ў§ўћўћўўў§ўўў§ўўќ§ў§ўўњ§ў§ў§ў ўў§ўўћё§ўў§§ћў§ў§ў§ў§ўўў§ўўї§ў§ў§ў§§ўўќ§ў§ўўќјњћ§§ћєњ§§љљћ§§њњјљљ§ћњ§ўњ§§ъњљ§§љјїїєїћ§љљњ§њњ§љљ§§їў§§љњљњњљљћ§љћњ§§ѕњљў§њ§њњўњјјѓљњњ§њњ§њўўљћљљћњћўћ§§љ§§њўўќћўў§§щњў§§ћјћњ§њњљљ§њљњ§ўћњћ§§ўњўь§њ§ўћўћўћўўљњў§њћ§ўњњћ§ўћўўюњ§њљћјјљљѓїћњ§ўўњўўћћ§њњўўї§ћљјћљ§§њњчљњњћўўњћўўњ§§ћљњјљњњћћљњ§§іўћ§§ћјюѕћ§§ўўћўўћњёљњљѕѕїјћњ§љ§њ§ўўњ§ўњљљњѕїјњљњјћћ§§ўўї§ћѕњ§њњ§ўўяћњ§§љјїћћїїђѕњ§§ўўўћ§§њц§ћў§ўў§§ћћљћ§§ўћ§њњљ§њ§њ§ўўшћўў§§љљћћљћњњћјїѕљћћљћњ§§эћљ§§љњјљљ§њњїљљћ§њ§§јњўў§њљћ§§њў§љљўњ§§њўю§њјјїѕѕїїјљљјљњљјљљјїћ§њњљњљљ§§№њћ§§њ§§ѕњћћў§§јљљ§ѕњ§њ§ћћњ§§љјјёљ§њ§њ§ўў§љћћљњўўћ§§ћљљњћњњ§§ўўњЪ§њњјћћљљњљњў§§ћљњў§ћћјјћ§§њћўћў§љћљ§њ§§љњ§§њњ§њ§ћўўћў§§њўќћљњ§§ўљ§§њњћћўњўў§§ћјјєњ§ўўћўњћ§§њўўќ§њљ§§њњ§ћљ§ўўє§њњћјљњ§њњћўўїљћњ§њјњњўўћњїѕјљ§ўўњўћљљўћњњўўћ§§јјљјњјјњјјјњљ§њњљњ§§ўњўўў§ўўєњјјњјњїѕљћ§њњљ§ўћјјћљњ№љћњњјњјњљјљ§њћћўўљњјћњљўћћдў§§ћ§љјјљљјїїћљјѕјљљћљ§§љјѓљљїјјћљјїљљћ§њћћљљё§њ§§ўўћћўћўўћўћћўюњ§њў§ћњњјћ§ћљўњ§§њњћіњјјњјљјљћ§§ћљўўћўўўћўўњ§љњўўќћўћўў§њњ§ў§ћјјђћ§ўњњ§њњїњ§љљўў§ћў§§љўўњ§љћћњ§ўћўўћ§њ§§ўў§њ§њњ§§њ§јј§њћљљјњэјћњїњўўњћ§ўўћ§§ўј§ћ§§ћњ§ўўўњљљїјћљљј§ўћўўќћўћ§§їћјјћ§§њў§§љћњћ§§ўўюћњ§њ§§њўњ§§њў§ћ§њ§§њќ§љњ§§ў§ўїњ§љјљїљ§ўў№њљњ§§њ§њћ§§њ§§ћ§§щћ§§ћўїљњўў§њњ§§ћўљ§њ§ћљљѓј§њ§ћјїєѕјћљћћјіћњ§њљњў§љћћњљў§ћњ§§ўљњўћ§њњ§§§ћў§§ыњ§њћљ§њїјљћћјњњћљћљљ§§ўњ§§ўњ§§ћќњўћўўђјћўћњћўњњ§њљљ§§љ§ињ§њњ§љњѕјљњњћљјјѕїїјљљјњ§§њў§§љћјћљћњўњ§§ўњ§§эњ§ўњ§њ§љљ§§њњ§љјјљњњљёћјїѕћ§ў§§њўћў§ўўђњ§ў§ћљјћћ§љћ§њњј§њ§њ§ћњўў§ћўљњљ§§іњ§љњћјћћјїїћјњўў§§яљјљћ§ј§§њњћњјј§љўўњћўўњ§ўўўћўў§ћў§§ћўўућњ§њ§њ§љ§њњ§њ§ўўћў§ћјћљњњўўћ§§ўљўўењ§ўўњљ§ўў§§љљњў§ћјљљњўњўњўўњ§ћўўњљљћћјљњўўњњћњ§єњ§њћћљњљћјјћћљј§їљ§§ўњ§§ўљўўќњћћўўѕњ§љїєѓѕјњћўўќћўў§§ўњ§§іњ§§љћњјїїјјћљћњњўўўћўўўњ§§шљїєјћњњ§јљћћљ§њ§њўўњљјљ§§ќљњ§ўўњё§ўў§њ§љњљ§њљњ§ўўўћўў§ьњ§њљњљѕїјљњњљћљњњћћ§§ћѓ§њ§ў§§љ§§њўћўўњћ§њ§§ўўќ§њњўўўћўўћўљћ§њїјћњњѓљњћўў§љ§њљћњ§§§љј§§ўўћўўўћўўљћўћћ§§ўўєњ§ћћљїїјћ§ћњњќљњ§њњё§њњ§љјјћљљћљњњ§§ ўњ§ћњћў§ўўїћўњўўћљ§їїќњљ§ўўњђћўњћљ§њјљњњ§њ§§ўљ§§љњ§њўўћўўјњ§§љ§§њ§§ўђћњ§љїѕљљ§§ћўњ§§сјљљћљ§ћћў§§љњ§њ§§њњљћ§ћћљњњўћћўўўћўўхњўћў§њ§ў§њ§§ћїєѕїјћљљњ§ћ§§њњњ§љњљљјјќљ§§ўў§ћњјњ§ў§љљљћњњ§ўћўўљћ§њѕѕїјјћљ§њ§ўўќћўћўў§§ћљљъјўўћ§§ћћљћћњ§љљ§љўўњћўўњњўўћћўўјћїјћ§њ§њњю§њњўћњљ§њ§ўўњ§ўњњ§§љњћїљћљјњњћў§§ўўћўўя§ўњћјїљћњљљјјљћњ§§ћњћљ§ўўћћўўћўўњ№љїјњњљ§њњљ§ћћ§§љљ ў§щњљїїћљњљњ§љјљњњ§ћњћўўћўў§њўњњўњ§њћўћўўўћўўћ§њ§§њњўњяљїїњћ§ўњ§§ћўў§ћўњњљјќѕїј§§љќ§љњўў§њћ§§ћўј§њњ§ћљћљљє§њјћ§њњїњћљўўђњ§њњ§§љљњ§ў§љ§§ўњ§§љћљјћ§ћўўћўќћњњўўьћўўњћњљљћјљј§ўўћћўўћћ§јћ§њљњ§§њњў§њћћљљ§ўў§§љ§ў ўы§њљјїѕљјћ§§њћћ§њљћљљ§§њќўћћ§§щјљљћљћћљљћњњѕљњ§љ§њљљњўў§§њ§§щћјїј§§ўў§њњћў§§њ§ј§ўћўћћћўљћљњњ§§њљјјћ§њњ§ўўўћўўу§ћљјћњ§ўў§ўћћўћўўљ§§ћњўўљљњњ§§§љ§њњўѕћњљ§ћўўњ§њўўћўіћўњћјїїћњ§§њњ§ўћћўўљљњўўћўњњљўњ§§ћћўўёћўњ§њњћўў§ћљїјљљћ§њ§ћўў§§њћћўњўў§њўћћў§§њњћ§ўћ§§њ§љў§ўўьћў§ћћљћ§§њ§њћј§§љљњјј§§ћўў§њћўўќ§њњ§§ћњљўњўўўћўўјћўћў§њљћћ§ў§іњљ§§љјћћљ§§ўіњљњўћўўћћўўљћўўћўћўўўћўў§їњћћўў§§њўўў§јјћћљњ§ўўўћўўћўќћўћўў§іњћўћ§љ§§ўћћўњ§љњўхњ§ћљ§ўўћўўћўўћўњћћ§њњ§њњўћўўўњўўяћўћўў§ўљ§њ§ўўћўћўўёњћљ§ћўћў§њј§њўњњ№§њњ§§њ§§ћў§њњћћ§§§ћ§ўў§ќњ§§ўўхњ§њњўў§њљ§ћњћћњљћњњўћ§њ§§њўўўћўўы§њљљ§ўўћ§§њћїј§њљљ§њўўюћўћўўћўўњ§љљњњѕјљ§§њќ§ћћљљћіјњћњњ§§њљў ў§ћњўўњ§ћћ§ћўўѕћўўњћћјїѕј§§њ§ўћўў§§њ§ў ўћћўўћўўўћ§§ўћўўћїўћљїїњљћўўћўўћўўњњ§ўћњњ§§ўћўўњ§§љ§ўў§ўњ§§јљјѕјљ§§ўўј§љћљњљљњњћўњћў§њњ§§њ§§њ§њњњљњ§ўў§§љњўћўњњ§§ђњљљњјј§§ўћўњ§ўўў§њњ§њі§ўћћў§ћљ§ўўќ§њћўўћћњљњўўўћўўўћўўљ§ћњњ§§ўўўњў ўћўћ ўєћўў§§ћўўњњћўўћўўћўўјњ§њњћљњўўћўћўћ§ўћўўњћўў§§ўўѓ§ў§§њћ§њ§§њњўўўћў ўћ§ћњћўўћњћўћўўћ§ў§њ§§ўўњўў§ўі§љћўўћўћћўўњћњњўћўўќћўћўўћ§њ§ћўўњћўў§§ўўї§ћјјћњ§њ§§ћўњ§§їћ§§ўћўўњўўўћў ўўћўўћћўў§ўўѕ§љњўў§њњћїјјјњћ§ўў§§ўўљћњ§§ўњўўўћўўћўћњўњћўўќћўћўўћњўћўўћўўћ§ћћљ§§§љћў ўћњљњ§§љњіњљњћ§ћћњ§ћћќњћћ§§ћ§§ћ§§ъћ§ћ§ћ§ћћњљљјљћћўћ§ћ§§ћћњ§ћ§ћўћћћљћ§§ћћїњ§ћ§ћ§§ў§§ўћњњўћ§§љћ§§ўћњћћў§ўўћћ§ћ§ћћ§ў§ђћ§§ўћћњ§њ§ћ§§ћћ§§ў§§ў§ўћўў§ўќћ§ћўўї§ў§ўћ§њ§ўў§ўљ§ў§ћ§ћњњњћјјљњ§§ўњ§ўћ§§ўўћњћ§јћ§§ў§ў§ўўс§ћњћљњћ§§њћћ§ћ§ћ§ўўћ§њїєјњ§ћ§§ўў§§ћљјјіљњњ§ћўћ§ћўў§ѓћ§§ћћњљљњљћљњњ§§ћўўћљўћ§§їў§ўў§ћ§ћњњїћљљјљћ§§ўўњ§ўћ§ћ§§іћўў§ўўћ§њћћѓ§ўўћ§§ћћ§ћ§ћўў§ћњэћњ§§ћњљјјњћћњ§§ћ§њћћ§љњћћ§љњћћњћ§ћћ§їўћ§ћњћ§ћ§§ћњў§ћ§ћ§§єўћ§ћњљјјљњњћћќ§ћ§ћћњ§§ћ§ћћ§їўћћ§§ћ§§ўў§ћ§ћћя§ћ§ћ§ћћњ§ћ§ћњњ§ћ§§јўћћњћћ§ўўћљњ§§ћ§§ўў§§ў§§њћњњћћ§§ћќ§ў§њњќ§ћ§ўўћћњћћ§ћћ§§ћ§§ќћ§ћўўњћ§ћ§§ўў§ћљ§ў§ћ§§ўўљ§ў§ў§§њњ§ўќћ§§ўўњћ§ћ§ћ§§ѓњћћў§ўћ§§њћћ§§ўќ§ў§ўў§эў§ў§ўўћљњњћћў§ў§§њћћўњ§§ўѕ§ћ§§ћњљњњљњњѕљћћ§§ћ§§ћ§ћћў§ўўљ§ћўў§ў§§їњљњљљјјњ§§ћќ§ћ§њњёћњћћљљћњљљњљњљћћћ§ўў§ўў§ќњ§§ўўёћ§ў§ћњњћћњљљњћњњћяњћ§ћћњњјјљњњћћњњћћќ§њњћћќ§ћ§ўўќ§ў§ўўќ§ўћ§§єњљљњњ§њў§§ћ§§њёљњњљњћ§ћњћ§ћў§ўўў§ўўј§ў§§ў§§ўўў§ўў§њћ§ћўћњњћјў§§ћ§§ў§§ў§љћўћ§ћў§§іћ§§ћњћњ§ћўў§§ў§§јћў§ў§ўћ§§ћ§ўћњњ§љњћћїљ§њњ§ў§§ўўўћўўњћ§ћ§ћўўѓћњћ§њ§ћў§ўў§ћћљ§њћћ§ћўўў§ўўќ§ћ§њњїћ§§ўћ§ћ§ўўљ§њћћў§ўўѕ§ћ§ћ§§ў§§ћ§§ўў§§ћ§њў§ћ§ћўўзћ§ћў§§ћћњјљћћў§ў§ў§§ћ§ћ§њћћ§ћ§њ§ћ§ћ§ћ§ћ§ћћў§ўўќ§ўў§§§ћ§ўў§§ћњћћ§њѕљїјњњћњћњћњњї§ћ§ў§ў§§њњєћўћњ§§ћ§ћ§ћўўў§ўўќ§ўћ§§ћўћ§јњў§љљњћњњљћђ§ћ§ћ§ћ§ћ§ћ§ћ§њњ§§ў§ўўі§ўў§§ћ§ћўћћћў§§ћ§§ћёљњњћ§§њћњњ§ћњњћћэ§ћ§§ўћ§ћњњћћњ§ў§§ћ§§ћ§јћ§ћў§§ћ§§ћў§ћћ§§ѓўћњњљљћћўћ§§ўўћћў§ў§§іњћћњњ§ћњћ§§љњ§§ў§ўћћ§ќў§ўћћљ§ћў§њћњњљњњ§ў§§ћћѓњ§§ћћ§§ћљњњћўў§ўћўўў§ўўє§ћўћ§ўў§ў§ў§§ўћ§§ќћ§ћўў§ћњ§њћ§§ўћ§ћ§ћўў§ўљ§ўћўў§ћћї§ў§њњћћ§ўў§њћў§ў§ћћњљћ§ўў§§ўў§њћ§ћ§ћ§§ѕћњў§ћњ§ћњњћћњћј§ћћ§§ћ§ўўќ§ў§ўўє§ў§§ћћїїјњ§ў ў§ўћ§§ѓћ§ћ§ћ§ћњљњљљњњћћњ§§ўўк§ў§ў§ў§ў§ў§ў§§ћ§ћћљљњњ§§ћ§ћћњћћ§ћ§§ў§ћћњ§ћћ§§ўў§§ћў§§ўћ§§ўћ§§ўќ§ўћ§§фў§ћљљњћ§§ўњћ§§ћњ§ћ§њћћ§ћўћ§ћћ§§ў§ўўђћ§ћћ§ў§ўћ§§ў§ўўў§ўўї§ўў§љљњњ§§№ў§ў§ўћўћ§ўњ§ћћ§ћћї§ћ§ћ§ћў§ўўў§ўўќ§ў§ўўќћ§§ўўё§ў§§ћўўћљљњњћў§§ўћ§§ўћ§§§ћњћћћњћ§§ћћў§§ў§§ћє§ў§ћ§ў§ў§ў§ўўћљћў§ўя§њћћ§§ў§§ћ§ћ§ћўћ§§§ћ§ўўў§ўўљћ§ў§ћ§ћћўщ§ћћљјјћћ§ўў§§ћ§ћ§ћћњћћўўјћ§ў§ћ§ћ§§љћњћћњћ§§ўљ§ў§ў§ў§§њў§ћ§ћ§§ћђљїјљњњћћ§§њ§ћ§§ћў§ћћњњњўћ§ў§ўўљ§ћњњћњ§§ћћњ§§ћўўќ§ў§ўўј§ўћљљјљњњўћ§§ѕў§ў§ў§ўўћњћћєў§ўћ§њњћњњ§ћћўў§ўўў§ўўј§ўўњљњњ§§ўћ§§№ў§ўћ§ћў§§ћў§§ћ§ћћљњёћњћћ§§ў§§ћ§§ў§ўўі§ў§ўћў§ћњћћї§ћћ§§ћњ§ћћљ§њћћў§ўўў§ўў§§ћњ§§ёћ§§ў§ўўћ§ћћ§ў§ўўў§ўўш§ўћ§ћ§ћћњњћ§ў§ћўћћ§§ћў§ўўћ§ў§ў§§ўўћў ўў§ўўќћ§ћ§§ў§ўћљљћћў§ћћўўќћўў§§ћњћљћњ§ћћўќ§ћ§ўў§ћўњћћ§ќњћ§љљќњў§ўў§чўћ§ћћ§§ў§ў§ћ§§ћћ§њћњњћў§ў ўњ§ўў§§ўў§іњљћћњњјњћўўў§ўўї§ћўћ§ћ§ћ§§ўќћ§ћ§§ђњћћ§§ў§ўћ§ћўћўў§§ў§§щћњљјјњњћћ§ўў§§ћњћ§§ћ§ћ§§ўћў§ћћљ§ћћњћњћћжњ§§ўћ§ћўћ§ћћ§ў§ўћ§ћ§ћћњњљњћ§ўўћ§§ў§§ћ§ћ§ћўўќ§њћ§§јћ§ћ§ћ§ћњњ§§ћ§§ўя§ў§ў§ў§ўћњјњњ§ћў§§ўњћ§ўў§ўў§§ћ§ћћўў§§ўѕ§ўћўў§§ћ§§ў ўѕ§њњћњњ§§ћћ§§ўћ§ўў§ўў§ћў§ћћўў§ў§ћњћњњћћ§ўћ§ўћ§њњѕћ§ў§ў§ўў§ћ§§ўўћ§§ў§§ћ§§ћѓ§ўў§ў§§њњћњћ§§јћ§§ћўћљњњћ§ћў§ўўў§ўў§љћ§ћ§ўў§§ћќ§ў§ў ўёћ§ћћњњћ§§ўћ§§ўћћњћљ§ћў§ў§ўўњ§ў§ў§ў ўў§ўўщ§ў§ў§§ћ§ўў§ўћ§§ў§ў§ўћ§њњњћ§ћў§ўўў§ўўј§ћћ§ў§ўћћ§ў§§ў§§ўћўўў§ўў§ћ§ўќ§ў§ўўќ§ўў§§ќћ§§ў ўў§ў ўў§ўўќћўў§§ўљ§ў§ћћ§ўўљћ§ћ§§ў§§ћћ§§ћ§§ќћўў§§ўјћ§ћўћў§ўўѕ§ўћћ§ћћ§§ў§§яўћ§ћ§њљњћ§ћњ§§ўў§§§ћ§ўў§§ў§§ћј§ўў§ћ§њћћі§ћћ§§ў§ў§ўўљ§ў§§ћћљљћњћ§ћ§§њћєњћћ§ў§§ћћ§ћўўћьњ§ўў§ў§ў§ў§ћњњљљњ§ћ§§ќћ§ћўўє§ўћћ§§ўў§ў§ўўў§ўўў§ўўљ§ћ§ўў§ўўў§ўўўћљљўў§ў ў§§ў§§їў§§ћ§ћў§ўў§ёћўћў§ў§ћћ§ћ§ћћњњћѓ§ўў§ўћўњћљћћ§§ўі§ў§ћ§§ћ§ћ§§ќћ§ћ§§єћ§ћў§§ћ§ћћ§ўў§єћ§ћ§ћћљњњ§ћўў§ўўћ§§ќћ§ћ§§ўіћњћ§ўў§ћ§ўўў§ў ўў§ўўў§ўўћ§ќћ§§ўўќ§ў§ўўў§ў ўў§ўўћў§ўў§ўўў§ўў§§ў§§јњў§ў§ў§ўўў§ўўќ§ў§ўўћ§ўћ§ўў§ќћ§ў§§ќћ§§ў ўў§ўўў§ўўі§ў§ћњ§ўў§ўўі§ўћўћ§ћ§ћўўў§ўўў§ўў§ђћў§ў§ў§ўћћњў§ўўў§ўў§ўў§ўўў§ўўі§ў§ўћ§ћў§ўўў§ўў§їћў§ў§ўў§њњ№§ћ§ћћ§њћ§§ћ§њ§ћўўў§ўўў§ўўў§ўўц§ў§§ўў§ўў§§ћ§ў§ў§§ў§§ўћ§§њњјљћћўў§ћўўћ§ћ§§ўўў§ўўў§ўўў§ў ўў§ўўў§ўўјћњњћћ§§ў ўў§ўў§ћ§іћў§ў§ўћў§ўўў§ўўю§ў§ў§ў§ў§ў§ў§ў§ў§ўўі§ўћўњ§ћ§ћўўў§ўўњћў§ў§ўўя§ћў§ў§ў§ўћ§ўў§ў§ўўє§ў§ў§ў§ўћўћўўў§ўўќ§ўў§§§ў§ўўћ§ў§ў§§ўќ§ў§ўў§њў§ўћ§ўўў§ўў§ ўў§ўўў§ўў§ўєћ§ћў§§ј§§ў§ў ўѓћўћ§§ў§ў§ў§§ўўћ§ў§§ћћўї§ћў§ў§ў§ўў§јљўљ§§ў§ўўђ§ў§ўњћљ§ћ§ўў§ўўя§ў§ў§ўћўњўњўћўћў§§ўќћўћўўў§ўўѕ§ў§§ћў§ўћ§ћћ§ў§ўўњ§ў§ў§ўўў§ўўј§ўћ§ћў§ўўј§ў§ў§ў§ўўћ§ў§ў§§ўѓћўњћњ§ћ§§ў§ў§§ўќћў§ўў§§ў§§§ў§ўўў§ўўѕ§ў§ў§ў§ў§ў§§їў§ў§ў§ў§ўўѓћ§ћћњўћў§ўћў§§ћ§љў§§ўў§ўўў§ўўќ§ў§ўўћ§ў§ў§§§ў§ўўїћ§§ў§§ћћ§§ћў§ў§ўў§ўћўўіћ§§ў§ў§ў§ўўў§ўўћ§ў§ў§§іў§ў§ўћ§§ў§§ћ§§ў§ўўќћ§§ўўї§ўў§ў§ў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўў§ћќ§ў§ўўў§ўўљ§ў§ў§ў§§ўј§ўћў§ў§ўўњ§ў§ў§ўўњћ§њўћўўј§ў§ў§ў§ўў§§ў§§јўћўћўћўћћўњ§ў§ў§ў ў§ёћўћўњћњ§§ў§ў§ў§§хў§ўћўњ§ћ§ћ§ћў§§ћўћўћћ§ў§ў§ўўў§ўўэ§ў§§ћў§§ћ§њ§§ўњўћў§§юўћўњ§њ§њўћ§ћў§ўћў§§ќћ§§ўўў§ўўћ§ў§§ћћ§ўї§ў§ў§ў§§ћћ§ўћ§§ћў§ў§ў ўў§ў ўў§ўўњ§ўћўћўўќ§ў§ўўў§ўўў§ўў§ўј§ў§§ћ§§ўўќ§ў§ўўў§ўўю§ўћўћў§ў§ўћўћў§ў§ўўќ§ў§ўўћ§ў§§ўў§§ў§§ўі§ў§§ћў§ў§ўўќ§ў§ўў§ ўќ§ў§ўўі§ў§ў§ў§ў§ўўј§ў§ў§ў§ўўў§ўўј§ўћўњ§§ўўљ§ў§ў§§ўў§ѓў§ў§ў§ў§ўћў§ўўњ§ў§ў§ўўќ§ўў§§ў§юћ§њћћ§ћ§ћ§ћўћ§§ў§ўў§§ў§§ўј§ў§ў§ў§ў ўќ§ў§ўўё§ў§ў§ў§ўњўћ§§ўћћљ§ћ§§ў§ўўї§ў§ў§ў§ў§§ўў§ўўў§ўўј§ў§ў§ў§ўўљ§ўњў§ў§§їўћўћўћ§ћўўў§ўў§ћўћў§ўўњ§ў§ў§ўўю§ў§ў§ў§ў§ў§ў§ў§ў§ўў§ћўњ§ћўўў§ўўљ§ў§ў§ў§§§ў§ўўј§ў§ў§ў§ўўќ§ў§ўўі§ў§§ћ§њ§ћўўў§ўўќ§ўћ§§ўћўў§ў ўў§ўўў§ўўћ§ў§ў§§§ў§ўў§ўћ§ў§§ўўў§ўў§§ў§§љў§ўћў§ўўў§ўўј§ўћўћ§§ўўў§ўўя§ў§ў§ў§ў§ў§ўћ§ўў§§ѓў§§ћ§§ўћўћ§§ўўќ§ў§ў ў§њћњњћћў ўѕ§ў§ў§ў§ў§ў§§јўћ§њћћў§§ўъ§ў§ў§§љћ§ў§ў§§ћўћў§ў§ўўі§ўћў§ў§ў§ўўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўў§ќњћћўў§ѕўћў§ў§§ћў§ўў§ ўў§ўўі§ћњў§ў§ў§ўўќ§ў§ўўі§ў§ў§ў§ў§ўўў§ўўў§ўў§ќњў§ўўќ§ў§ўўњ§ўћўћ§§ ўј§ўћ§њў§ўўў§ўўћ§ў§ў§§ўї§ў§ў§ў§§ўўќ§ў§ўўі§ў§њћ§ћў§ўўі§ў§ў§ў§ў§ўўј§ў§ў§ў§ўўј§ўћ§§ў§ўўў§ўўѕћ§њћњў§ў§ў§§§ў§ўўў§ўўў§ўўў§ўўі§ў§ўћ§§ў§ўўњ§ў§ў§ў ўєћ§љ§ћўћў§ў§ў ўќ§ў§ўў§§ў§§ќўћ§ўў§јћ§§ў§ў§ўўў§ўўў§ўўў§ўўѕ§ў§§ћўћ§§ў§§ўќ§ў§ў ўђћўћўћў§ў§§ћ§§ўў§ ўј§ў§ў§ў§ўўќ§ў§ўў§ќћў§ў ўљ§ў§ўћў§§їў§ў§ўћў§ў%ўў§ўўў§ўў§ќњўћў ўі§ў§ўћ§ћў§ўўќ§ў§ўўќ§ў§ўўњ§ў§ўћ§§ѓў§ў§§ўўћ§ћ§§ўўў§ўў§їў§ў§ў§ў§ўўњ§ў§ћ§ўўў§ўўї§ћў§§ћ§ћў ўў§ўў§ћў§ў§ўўћ§ў§ў§§§ў§ўўќ§ў§ў ўі§ў§ўњћњћ§ўўі§ў§ў§ў§ў§ўўў§ўўў§ўў§§ў§§ўћ§§ўќћ§§ўўў§ўўі§ўў§ћ§њў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўіћўћў§ў§ў§ўў§ќћ§§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ўўў§ў ўј§ўћў§ў§ўўў§ўўў§ўўў§ў ўќ§ў§ўўљ§ў§ўћў§§ўў§ўў§§ўћўўњ§ў§ў§ўўў§ўўќ§ў§ўў§ў§їў§ў§ўћ§§ўўњћўћў§ў ўў§ўўќ§ў§ўў§ўњћў§ў§ўўќ§ў§ўўјћў§§ўў§ў%ўў§ўўў§ўўј§ўћћ§ў§ўўў§ўўќ§ў§ўўј§ў§ў§ў§ўўњ§ўћ§§ў ўў§ў!ўќ§ў§ўўќћ§§ўўў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўў§ўў§јћ§ћўћ§§ўўњ§ў§ў§ўўќ§ў§ўўњ§ў§ўћўў§ў§єўћ§ћ§§ў§ў§ў§§ўў§§ўћўўў§ўўў§ўўќћў§ўўђћ§ћ§§ў§ў§ў§ў§ўўў§ўўќ§ў§ў ў§ўњўўќ§ў§ўўќ§ў§ў ўќ§ў§ўўє§ў§ўћўњћћў§ўўќ§ў§ўўў§ў ўі§ў§ў§ў§ў§ўўќ§ў§ўўћ§ў§ў§§ћўћћ§ўўў§ўўј§ў§ў§ў§ўў§ ўў§ўўњћў§ў§ў7ўћ§ўў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўќ§ў§ў ўў§ўўў§ў%ўў§ў ўў§ўў§ќћў§ўў§ћћў§ў§§$ўќ§ў§ўўј§ўћўћўћўўў§ўўќ§ў§ў-ўћ§ў§ў§§ўњ§ў§ў§ўљ€Оњў§ћ~1FIA:9>Q1:CILLWvтшкнйбЭФЦШШОЪЦЮЭмйОНЧЩЦжзЮЭдкзмрцтмтшњљїјѕћїt#4?A33((,#(.44.4mрьшдЦЛМЦкЫИВЕЖШдЭЩЦФМЩЧкпрабдЪФдпжЮлцћјјљњћћœ,&8?;<8)32(3JY1&+aзѓкжЪРЪержжйЪШЦТееЯЦРЧЩЩЧЩзбнйКЉИИЕЪгљћћњјћљЛB>4>;871(177,>LSVN‰ьцлсунсрнббтжЭУлчркйдйЩМжймункгаЮлммбњљјњј§ћЗ8OF@>-8."+)2-G\LZ@—јљшхьђэцпххтдУЫлуыцукаЭЩймнсежНФУРекнјћ§§љ§ћЖH*^["+7152B>;5EO7›їїккрттнжчлЯаУШЪххшыьстзлтнлйкРФЪЫбЩРїї€Пѕє§§Р9;twG*&.1>AF<@2)2*эьлЪбкпйншмазШЭкгРЫухцнжЭЧЫжлегжУОЩеЦљѕѕєєљљН51257?9154;9@A>4;;8;?:99Q‚ј§їїђђѕѓээыююыштхржгЫгйккймжШЪТЩЯзгЫйјјљћљћ§ь[SaEACA?@AA;A>8+GIwјћѕїїєјєїђэьэьшмхцеббжрщцхцурЭОЕОжлпнљјљћјћ§м1,A>2CMJ<90>?GF@MNЧ§ѕѓѓїєёюїїѕёэюээюшццчммпймрчпЯЮбжмшхћћљљњ§ћхF02><:FOC;4?ELJFC>‚љћђєєѕёёюёёфющущьђщэчрмтхпзЯлхшзгенупњ§ћћц§ћдF0EB0;B99+8:B3>A9‚љћјѓѓођєяюящэыщёэщэёшргбйнебкчшцгбЫдд§ћљљП§ћг,#<>?>:8<88-;C7&*U^ђ§§ѕѕєюёёюёччщшушнщьэщуршхтчьцрмезбесјљљњљћћ†U&?<@9<9?B>:;><9YY]ёљјїєюэшуутммыхлртлшчёььцэыштедзййжлчњ§љњ§ўјыc:JE2&.9;<754@CJS?OЪ§§їѕёщшчьєђяэтхчюяяымпждзймйккЧЭЪЪзућљљТћ§ћЩJ>EB@4:?A?;3(5:AOGHЧљњєєёьцсччттххЯмднмЯШЭмедкнхюырЦИТЭлјљљƒїћ§Ї+5$>09A9:;79MMdбјїхуутспдлущшмккзуййЮФФкмнпжмййШЦЧЩНљљјУћўѓM-2.>;90-;9<@8.1VMIЯћ§єюурнжншцшшскйндШжтскЭбЮЩЪКБОЭШаЯЦїјјСљўў§{LVQ>?>4(!$:AGHQe4HлљћцумлнмнкйзддлтЯбаушцулгбкЯЕВЪЮШЫадјћњњїљћј`47:3--Э1$-CLPF9JWaйћћэшщщнШпьцхкжЭдЯглрежЫдгедЯШИЫмзЯбЯ§ћњњћ§ˆ599110<:ALVdbEG}Š[Ф§§єяэчшутцучщхтщёюьшукгаегпмЪЦЛбжзбй§њљњ§јўјЕ>BaHEAA5+1FSdƒŸV0œћљёяђїѕђёяюѓјщснцнСЧйЩйжкмзжЫЧЧšШТФЦњћљјјї§§•03JFGF@0238>7,O??YЊћ§ѕѓѓјїїјѕђюєєѓюхтыцпйбЫЭдгЫдЧЩгдЩОЯћћљћјњўћЦFE`LJJNHF;GB@GOSaY[FGgдљ§§ћєєчхцржлулуыэщшчєѓяэѕѓэшюёѓёыслжљјј§шѓT,3ECIIBEHAALZ]bnNwтј§љљ€Ÿїюхучурйжтрруыѕїѕѕёяуешяђђёьюэћљћљњў§г5F1>>9:HBFEI[TLNYFTг§§јњјњѓщстэшусуцнмушюэюььчыхпцьуЯЫпюљљћљї§§ДJ;-;9?>HB;0GQLJZeOUбљћїјљђэцЯшђюцщюхкнтхщюччхюђщцхтучтщэљљј€ў§ћZI4B[\BBA?JLIPLYUTcюљѕѕїѕюэььяѓёђѓєцтхщэыёѓючёяытзнпчщщэўћўћњ§љbVMB{ƒ@7CCGAEHQNCF^[а§єєѓѓщцщсмзрэєюэсйдгбйЯбхюђьыпклутчтњњљњљ§§„.\Ќ|+.7F?BEJILHJMжјѕьѓєѓэццурщэшцырбЮдккгФЧжймзлЯжЯзсжјјњѕѕ§§—.#~ДtAG4>@BJMYOOGAQжєљёяяюяюшшмчшущёюяђёьплтлгйеСНТШкчнкњћљљ§Т{G3Tj-$*19A99HJ;e^ˆєљњёыюяюьцчкйгдбЫмчррчунычржЮУЯжйппмм§ћјї§§Іr;@C?93287FIS4CŽёјљїяшш€сучюшлншющрлккпчщцучхсхрслззчяјјїјї§ћŸPJG7+47++.380B;TYUnмёчшщээяюхщсЮдмсмШднмЫмтЪдпсмбжмцуйпцћљћљ§ћћ~@$#*174082801@>?edOзѓхжтшчыѕёяэжлхгЧРбйаЭЪлхйгбппздййдбд§њјљјћљZ0.-;114;C3:<5CI&)4PёєуутчтртхчщщраенЯЭЧРТЧгмеЧИЫгШржйзгзњ§њ§§€ћљ{)0!<9.;;F:1+0A::%8СяпкхкгзнлммщчшпрхлнаЭУйрйгбЪйузстмйнљњ§љњ§ћ[3CNrP>8@C>:8B;577?AEBEc•єёустнмглжкемцхшчхунтсстснйкмжалшючяьћўњљј§љ3*?<<;:@:<>258;-58*2CŽугадаЫзсунржЦжЪЯбЫМСдмкЯЪпухйЭОШдкспб§§њњљљјp:7L;>9*3OНєїстспсжзбЮЮдлЧКЖТЕИдцщсдаУНЗЄЏБЛЧЧЯЫ§њљћўў§t::AHAC85BFF:,9;C?MЮєїёхчьшэёюхцргЪТгсудЯнргШТЫЮЛБНИЛЦЪЮЧљљ§‚ыO;&*9B>87Ji^QTrЏЩНКОФжУФЪЭглхсррнйЯУеккнлймзчьтШИОМЛМўћўњўћы\d``E9@9B>>BHVU]TVЪзлагзЪФАИЖУуцдлдУЗЖЩбуьшсЯНФкцщкЭЪТИЕћњ§њ§љЛ7AOAMEE>7@:?>?C9JVœыЧЪШЭОЯЯРСЛЯдспгбКЋЊВМбЮдЦЖКОаСЪйзТМЩЩњљљћХjGJHZYNB8EEJJITE8GВящзйухццелсслжгЧТФФИЭмусджЧЩЭЯЯЦШаЩТФЫўўТњ§ћ˜CZW[SNEIBNkY\TW`7^сєщкзккйпчтнзсжЯЧУЩЩНТЛЛРбдЮФМЦдбгбдкдШћћ€Ёўћјc23.EGA??F%3ZGEOQ2{єјљюцнтьытгШааЦСКМЯйЭЭЫбйчяцнЮкжжЯнеЩШЮўћ§ўўћc$;LJIA>EG<:A@19*oпрупдЯаЭбдучслдейжзгТРаЫагаЩФЭстщстжЛЮаўўњўўћ`-BNTLNLMMIHJML[VA;CEBZ;@HOPO^ˆўўѕєѓѓэяюящышёяѓёюєѓёяєѓѓєђђяѓєјїїјј€ь§ћћњњўў{"">FIJ@<998,2AG9-:tћўћђяьэёяђёьрущэяяыьёэѓёѓёєєёёяьэььяюњћњћљўўŸ.(@HEB95318:A^E88pєўђђёяёѓяѓяыччьђёђяёяёюяђѕёїѓёяёшщэюяћњћљњўўТG82BGB?442388GWYYU•ўўїѕєїѕєђѓѕђѓђєђѓїїђѓэяѓюєєђєёюэяяђђѓ§ћњљњўўИ7NAF;4JP<ЁўўєђђёѓѕјђѓѓьяэїяѓѓѕѕјѓѓёёѓѓєюяюыыщяёћљљјїўўТ45pxL07257AAC;B43+‰ўўёїёђѓїѕєєяэѓђюяєєђєєѕєђёяяёё˜юѓѓђэьћљјјљўўТ81:B8>Z…ўўљљ№њћљљјљљїѕѓєђёєѓѕѕрїєђѓюэыёѓѓїюњњћњћўўђ`QhHFEHG?@C@@ѓG5EO}ўўљћњћњћћТњјїїјѕєѕѓѓєєѓєѕєєёёэьэюѓѕѕћњћњњўўу.-B>BHLFBFHPCPTўўљњњљјјљљњУјѕїјјїєєѓєѕѓєєѕђѓѓёюђєѓєњњћћљўўыE+7@@FIGA7<@HPPCLB‹ўўѕїїјљјљјјыљњњјїѕљјїјїїѕєѓѕѓѕєѕёёђт§ћњњћўўжH#EFFA;98>4;;GB@>ўўњњіљјњљїњјљљјјьљјјїїѕѕєѕѕїёёыяёє§њћћўфз,(;C@B?>@A9[^Yїўћљјјїїјјїјјєѕјѕїћљ§јњїњјљљѕїєѓѕєђєђ§ћћ§§ўўђg5N>959@@:5.@BNLPЯў§їјјїїѕїљѕєљѓјєѓѓяђёѓђђєєѕѓёющыѓё§ћћўчЏ+1+9@?BE>99?E?FVMN^уўўїѕѕЁјїєѕїјћѕјїїѕђєёђѓёјєѕїѕїѓяьяюэњћ§ўћўўШ8!4:<8;:38;<<7BBPSmнўўњљјѕїєњїјјїљјїјєѕѓєѓѕђєєѓєёёюѓёяяюћћњўХљH(-0<<;4-->B:957`PLлўўљјјѕѕїѕєєѓєєјљѕѕїєѓєѕїђѓѓююёяюђёђєћњњўћўўпzIUWA>>8&-0@FHNUa9Pхўўњїјїєђѓїїєѕѕшђїђѕѓїѕєѓєєђёѓёяёѓђёё§њ§§Тћўўh;8B;25:.34?MNG;Nbiхўўјїєєѕћїѕїѕїєјѕјјїѕљѓѕяёёђђэяюяѕєђѓ§њ§§оњўўŠ+4A<7<>@AJ^hbPOŠ‘[Щўўљљїјїїјїјј§љїѕѕѓєюѓєђєѓёяыёюѓѓєё§§ћ§§ўаЛ??;AACIdMS\Z@YзўўњљњљјѕѕјјјїјѕљљњљјјђїјїѕєјѕїјњњїјћћўЦМO7&ACBIGCAFCJHNWdS[дўўћњјљјєўїљљћњјњћјњћњљћјћљљњїѕїїјњјјћћ§ўуŒ`H3CcZC>@HJMNJQSUWgѓў§јљјљљїїјчљњљћњљјїљјјљўњњљљјѕїјњњјўўм§ўўkVQC|‰G88>BIJOUQOGccеўўљњњўћјљјљјј­њљљѕѕєїђѕѕѓјљњљњјїєѕѕј§§ў§ћўўŠ1cН”3-<@@HIOSPSMQTрўў§њћњћў§ћћњљљњњћњњљїѕѓѕѕѓїєѕђјѓјјољњњљљњўў0#‚Б~@C9:?EFTT[SJFVьўў§њљљѕїњѕїљјјљњљњњяїѓїјєђѕѓѓїїѕљњ§њћћўы…H3Yq3*17><;GPP;iiŽўўњљ†јїњјњѕїѕѓѕјїѕѓѕјћѕјјїѕјђєїєѓѕї§њ§ў§ўў{;2;ABB:23293>EH,07pэўўњњћљњњјјїјљљѕєѕїљјљћњћ§њљјјѓєїєјјњ§њ§њћўў{:(?FFE<::87;@NQ4Eœўўяљјљїїјјѕїјљљјєёѓѕѕєјˆљїѕјѕїјћњљ§њћњћўўЅMF@?;450389:9:AA*?цўєїѓїјѕѓѓєјєјїњњљћљљїћїѕїїѕљѕєњїљљїѕў§§ўўч`4:VvNF<><9@B>889CC?>?02H™ўўјїѕїѕєјњѕєћѓѕёяюёђєјјљњїјѕєёєѓђєєїѓ§ћ§§ўўщu53M;AFA>99CF<9:1;UЪўўљљнњїћњћїјјђѓѓѕђѓѓђїљїїѓїєэёьёёђєєї§§ўўЦu94F;@?<5:LJ97\NMB?A;514"1Y}eJHNхўјѕѓђѓєђѓјђїљљїњјљјјєїјѕїїѕїѕєїѓђѓѓѕђўўТћўўСFhIQJ@@B?BBAFOujbd„пњђєѕѕђѕђяѓѕјѕјїєєёђљѕњњљљїѓјїњїїєђѓђёўўС§ўўя]^]gL?;A@?>AL]YgZ]”љўўђђёєяђюѓѕєїћїѕѓѓђэѓјїїђёѓѕѕїєјїђёђђў§§ўФН8;SFLIA>;:FEJQOFUcБў§єѓђїѓѓєђљєњїјїяѓёяђјјћєѓєђєёљєєѕїѕђђ§ћћўаeIIVY^UJ@>JSYVNFELЩўўѕѕєѕїєљјљїјєєѕѕѓђєюёєѕјђєђђлѓѕѕёєєѕёў§ў§ўўœE^^[[TMCEOqc[\`e,:^MIPZ3„ўўијїљїѕѕїѕїѓђєђѓѓёяђђєєѕѕїњѕљѕљїњѕѕјјљўў§ўўъd%AIJOI?AG?AGIG>8-|ўўїїљјѕљїљјљљїцјєѕїјѓљјјїїјјѕњјљїєљёђўў§ўўе]-CTUOOJOSMOPWWddFƒўўїјѕљњњјћљјјњљљјђѕѓјљјћћёїѕєѓєєѕњјїѕѕєў§§ўЦG2YЎўўѓђїѓхгпп€нрщђїѓїёѓяяшуыймщыцкцтщхкхяўў§§ћўўŒLw]NQQVNUUaTScbkemњћююђшхгсзмдпртпюьрпннрюютцшэюёђѕёѓѕњ§§ћћњўў‹25ZV[ZPHMBBLQOaTEO„єўўцмбенэрЪЮЭжпхцнпдзммыёяяыьппцящтэѓ§ўћ§ћўўЖ;:3TSaZMHCFIHaqUB?vяўьэмбсчђчхтжгкрщэчннлтнспцыѓяйФЭЦЩнэ§§ћћў€ЇгYMMUWVOJEHBJGQdkceЂўўђѓёьёђэцчэёкпыёяычсчнешяѓяюычсхэђяцў§ћўћўўЫLbZQPSILLG@JL[pjvWАўўњїїѕјђѓяѕячжлыѓѕєэёщсрыёєѓщщрлцйшыєћ§§ў§ўўЮW–ўўёнпюёэєђѓшэхцшсйхђїєєьчйсчёшчшскцьзћ§љћљўўбBAJMSYSPQYM]V‡zpNŒўўЙѓёыђюђѓѓьчшюяьыььчцёьрпркьчщяєяёнЫ§§ћў§ўўЮ@Lagc^TOPGLI9e„tWZwхўўњћѕјєєѕѕфѓщтлчсждлрэьяёщшэяѓюѓыьту§ўћћўь~W^hdeTLSLIJJN\bSeЌўў›ћўљњїѕєєљњѕѓшьщтнцщэтьыцтжкпшьђцэё§§ћўћўўцL@LYb]]YPZQNYSTOPkžўў§њўћ§њљїћљ§љљїѓяыччэёюёюёытнкнцюэцьћў§§ўжriaY[YWTWN[Wb^I`bўў§ћўћўћћњћњћјїяєєэшшыђђвїѓяржбйшэяђ§ў§§ћўўє:CYW]Za^WULZ]^gZiiœўў§њ§њћњњТћљјјћљєђєёюэёьюѕѕёчрщэёєї§ў§§ћўўєZ:H^ba`^MOMVacha`Q–ўўљјњћўњ§њњЬљ§ѕјљћљљєѕєєђюсэђђэчшђяѓ§ў§§ћўўсW(:a\^YWUMJVQW\UWM•ўў§ўњћћуњљљћљћјћѕљјјђэьэђђыёѓљђхрпюю§§ўыч<:[[V`]]TYOWSVSEBhtўўињћљ§њ§љјѓѕјћјєєјєћѕѕєїїєєїєђэшсучё§ўћў§ўўьg8NVSWQYTYJTSZ^Sjjoўўињћљјєѕѕєёёђєѓѓђѓј§ј§јјљљјїьёюёэыщѓ§ў§ў§ўўЧ‚NdWPOQZSWIYPVbdpUgуўўњ§јњјћјњїљјјёѕѕљљѕёёюьяёююёюжчщмщє§§мў§ўўцbOaVVUPZ^STSZQWVe^aжўўјћјјѕїјјєєОљэщьыэчхчьыщююїѕјятЯнсё§ў§§ћўўС;LETQQVTVTWVVYangdrїўўњљѕєщяяїѓѕѕїєєэђьуйньцчэђёюэьхтья§§Тў§ўўкI4HUSVNQIJJOTVQ]khыўўјљѓїэђыяѕјєљяєяѓёђхмрюёэюыьэьхртнд§§§ўњўўТ^>CFQPHFIIMaYOAI|i[ьўўљљѓѕєюяђїїђѕюѓяыхыђѕюыьчртеЭесцэытћўћў§ўў‡djoZSL@>7ZihjZ`^ec`cnhmpS‘ўўёяїђьђїјѕёёєљїђххэяьюяђђюцскмюѕюэьшрх§ў§ўўи•VFS\]Z[Wkie]itwŠS–ўўїёєшьэђђцпэђјєѓђуыяяёёєјѓяђщпыычэюэёё:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ›ркЯЪЯдйЯзадТžкђчрйжмкзЫлпдУЪТИНЪЧЛТЛЫЮйрузлмнспЮШТббЮаЩбалЮЄnTOpынмрсуххжМСЏžАдкЕ™ЂЇБЪЩЭттнюуЛЕлзЩВНОО€WРЭЫФКЦаркекмжЮекЭдьСpzd;.лЧАЕВНРзЯЎВЌЋДТуЊƒ‡ƒt—ОйЖТЖ›‘ЁЄŽЛеЧЛОЩЦИЖЧЮллжкзбжбаФрлb8"0ЭТЕАЗОбкгФДВЃ‘ŒЕФРЏ™ŠЅЖЊ›ŸЂ•Œ•‹’ƒЅЏВЛУЪМДЛЩеебйЮСЏЏКИагЋJ УСТЫШЮТМТУРДЦТФыєјѕаКЌлаНУМЮВВЊ—–•˜ЂЄЄЃЗЪРВНЯнмЯЪШСШлж|(2!!нрртзгкййддслЩМамнплеРИЌЎМЧЩАЈžЏВВ•‘йУБЉЃБЯШЪЖАУЮааЮгжщєА1ЯжленуцзддегЯКНдтстбНСЗИЈŸЂБННЄŸЈ‘h”РмКˆ…ДЎЌЛ™žŸВСЯжгЪКЃ0  ЗЖТЄЛШЫТКВЗЗЦНДНЪадазЮАРЛЈЂЈЁ™’Ё”|Ѓ”‘…ЊЕЧЮТТЩТЮдзЦцю‘  ЋЕЈЋАНКНУОМЗТЩЗЛЧбтщуйЦДИЏИУРАВЁЄЅМааЈ›”™АхлзпЦˆžœЁШЌЊh4НКДЉВЫШЖЩЦОАДБŸЅЭдтмбШРБТЛЎДВИДЂЄЎЗЦКАЋЋЦФЏЇЖКЦЃž•‡Є‘L  лжбШШбрразйеЦФЎ›™жкЯУРОШШКЄЃЖЛИЛЏЊВЗЕОРКД‰jƒ’ЏЇА––ВНi&+ ЯнмклдзкбееЩИДЏЃЉЊНУЪЧФУЭККМЧЫЫдзеЩаЧНБЇ—Ž›бмѓэУЁŽЅЩcпнзеркмлжпЯФЩЯНИЖИСЭИЖБЕЫНЛСЩФЦЫМЕБЎЗА—ЅФЦЎЂБШтнУЄ’‚РдN пдШЭгкдзеЮбгдкдЦФджЫЧАОгкдРЛЯаЫФИТЩЭФЛЦЮЯЖЖФД’‡–ЉООЧёе5  кпсуйнуйдллебснЯгжжЮЦЪдзздЦФРОУКББЧжСМЦМВЎЖМФЗЖИŸаЧдлŸNE& рслсчээыннмнепкзкдкпчуцшукЯЫЩЭазйЪЪЧШКУСЛЛМШСЛЦЫСШгщчзЫS  згбзцрчыцчыыхчшлгЦетыёэчщржбнЯСЫЫшСЕЕОМЧФААЈДНаШЯУИНМбц‡ €иупзЫйЯдпуусхыяэшнккхэђёётсбарйЦФЪжгФФШМЮжСЎЌЇВРЩзУКРЦсюыk схлЭЮСЫймднхцыюьчщхьэюыытцрттрбЮжгзеЮЮНМЫЩагНИАБСЫаТЩЯыьЎ4% зннееЛЦдЯЮблрцысыьяєєяцхухпхссмклпщчееТНЫеЫадРСЦКМанМ••ОЉM@Z;" ЦФадбсйлйШУЫдждЩтушђѓѓ€ћшццттщытурушщхйеЭЭЧЯргИНЯйЭзгЎ……ЏСj##ДЕЌИФжббджррзРЊОЫсщцыььђѓяьцсттщчрцщшппбЯкухтлммппйкЎЈЧнтxE%8НФРСЩлШФРЯмнЩРУЦТЦбЯжмтсщэьыьюэыьчспрчэьчсрмпнцсчутмрзцјї‹?ЮНАРЦЮОЧИЛРЩЮЯЫСОЧТРНалрхрхуцыюѓђшцмхцщшьччцрзнжжгйнззсљёЊB1*ЭЛБСЮддЭЖВВКЦМЦЮЭШЦЖЛЯлйнпнпщьыэђђёєэщшцсуёчхтцхндрнсйрєю‡G?5(,дЩЛЩбйгплеагЮТауслШНКТжеЯЮбйжрккчыээѓяёюыхрпцчтшунзммлнѓэ~A-3сургЪЩЖВООЧЭИЉВЛВЊЋЎЖжтмЯЩСЛЛМБАЕКСЛЭаЮЫббпрчщьђюётнсллйц0;95-ЮгммнпмеЮЋДКЭКЛЦЩОБЋЉШтчгЭбЧКНЩЯЧУЩЧСТЕАЕббжхрпнщьшхушуЦЪ•-8&59*лбЭдйлхрслЭЯбЭФЩбЯШСОашэчнгмйЪЩУРВВБЇЅЈБТййкЯеджхлжппттїюЖ83,0)1хэшплгЯЮРШбмзрсццмЮССТдлдбЦМЭаЛ›œЇЂЌРФЕМЫШЭЫааТЩЯЦУЮШЪШмшЫe[< юяэхбЩггШСЮгФНайёєшЧЧРКСТМЎЎРЭЩТФСОДДИЭЩЯЪДМИЄžАСБЗТРашєјpAO0&щпумпннлйЫкзЮгДE8гѓслЭЮеЭЧЕЛФЮИСЦШЧТЮЧЫМЪЖЄЊ™•ЃЊЊИМЛбєєлvC8 "эшыцрлкдггумтьєч›зјцлЯжпнмаддЮЫЧЮтмйЧЖЖМЦМИЛИЊŸ˜ЇЁАЦЫелеН^;C+3:снкмезз†рнзЪпьѕѓсттужЫрщучржЦСРФлццмгЩЕœ˜Ž•ЉСКЛРИЈŸЏДЦЮгдеŠ`M(37зпшшмхыяѓёыщухыыьящтнйтьулкйЩЧМТджзжйЭмЛЉ•™ДСУРШБЋЉДЁ›ДЌЉЏƒ#$J2,сшш€’ыхчщщшчьшшщяёђђїђыэђщзнсснЯЧСНншхнщжзЯВейнкеŸžЁ‘—ЄЈЇФ‰.232.мгШШкнсурлсчэююшьэёёѓђђєђсзймхкгакпыщлаЯбдгсхгИЈœЁЄž›ЖЛЄйаF"<1ытйсэёьэухмлтрхьуцщьюѓѓќєяяьь€зседЯемдгЦСбпшщщшхтЪЯгЯŸ”ŸЮСOьёѓяычбйхрЭбмаШгклнзцюѓяэюыьээчзлмкжЯЯЭФгдкжеЧУЭЪеФ™ЁЌСЦьбT2B%пжзцьсмдгсушсжбЮйзспчщщяьшччцяышуыхкддрыурчщмЧЯЭЪЮлаМДНТзюЮ`"хжШмбйаЪкщццжрсхрчщхпктхуцщччшщюяшчццуэюяышсдСЦЪусеВЛЛщМБЌАh1(+птшыцчрЪЩгззЧкк€ йгаЯЫЫкхээыткнчшчртусщузмсжлрцтуююцжгдззйЩО”4A*хупнхцпеаЯгЮЧЮрпкзЭЫглнгжмртышчхцтмцухшмлйгбШкышмпмбезкгсэш! ЭСРЧШЩЧММЩЮднсхудЫЫамрзЩУЭгдйеЮймплнуыьупебгЦУпьысзабмцуьјєТ7$CеЭЦУЫСТЪТНЪШглрнпйзнуудЦФЯЯЪдзЯбздклтррнрйкмЭЯлсэшлЫЪймчррљєЌF1ШажШШЦСлсшющпезаЮазтьчгЯбЪЪ€ еццрцсдпнлттрйжййЮгнцуФМДИММННЮдA;0ЗЧЮкктмчхлппеУСШЭТНЭххнУЦТгкйнпдбЫадЭкмлмлелЮЯЩТЛМТСеЮЏЖЏКАР‚!#жсшыужессзЮЫНЎДОЦККРксхтмгззмллЭСНЖЉЊЗОЫЯдЯеЫЦЩЯЧЯейтткЧВЦРА;1ОеЯЧЩЪезпмбНЗВЕЌЋЏЋЕбрчхмЭбгмелЭФРЖЌЛЮбЩОгЮЯШРИОЭзжОЩЭдЭЦУЦнЭCУЪРДИСЧЮРУЛОЖТШНЉАЂЖгрнгЭЭескЫОНУЭжЦФШЮЫЮЮ€гЭЪбгРКНЗЫЮЦШаНЭычo+кШЦВЗЮеджджзнеЯИЖЖОЫгЮЧЭЭгслЪМБМлчшнпеабейпзЯнрчнбЭЩппмЮЕОЮїї™$(бОЕСбйжщйззннмжЩЧЭЩбгТМОНШШЩНБАЗНЯрдмкЭаЭЯбдд€iетмФШДНжутгТНешШ2&ЛМЋЏКЯмптыыюьёьхйждрзЫМЌАБМЯЮНЗЛИКЪУОУедТЩРЛОЕЪеаЪКМТЯнлзЭзцьЫIЛНТЦДМЛСШЯбйцьюёящюютмЯЛДВЗЦЮЩЪУОТКОЕДМеЯЫРЖЉЅЖДВЫблнускбдлатнc#РЯЧбЮаЫШЪЮЪасункцщшхзпжзеЩРЧРЫЩаЩдаФЪежлзЯйндЛДФРлсггдгаесчхль›9РОСЭрйзреЗОСгОЛЪбжсчтщяєђэтепнхяэммШОТаеЯЮнйбЗБИФЮдбтцЪФпяхцяяз+дземрюяхлЩЪаШжнужлсухрптссцьёђїѓяхнЯНАЌЕЧЪжйдУДЪШТРКМЖwЅЌРЭнюгQжЭЪйтьюѕяхйЧЦСЫезлншюёюю€чмасщычщяьпЮаЫШЪпыэусмЮЪЪФФЗЁЇЁЉЎЗНМСёю•ЯРдШООкстцхрлркклнмьюхщьэынеЯамхпжбЪлмчуыђштупСМЌЉЌЈЉЄДФЛОЩЗЏзш–кзнЯОЖНЫЧЛЧФлуптшжннерсллмжзмпцчпкжегбгЯЪппуушпжУЛНКВОЧНЉЃЅДЊВуаклтхбМЉОгезЮмсжщцхрЯЫШзумЮЫддаршццтчхпцучэёђєютсрйЭЪТажкЫЧЧЯУМаЯћєђѓѓєє№їѓђыцжы§яёёђяђяѓѓЉёѓээяэьёщрчшюёяяѓёђѓђёёэюыэщщэщшђчЛ…\UѕѕѓяёђѓѓюьсптмёїлЦЮжрѓѓюэёёўћсзђычшцшчщьыюэёёѓёђђˆёяьшюљўЯ}p@:юььцышђэьэссрптњкТФУЖЮжгхёхшсЪЧаЯЪцћшыэыыщыыёяёєяюэьюэѓ§ѓЅh<370)ёыышчыыщыышуспТмыщцзУнчррклзЫСЭаЯЩлсучщцчцььмяѓёёээыхчєјЛQ""ђёёяђюёёэщщьѓяђјўўёѕыуўцьшыїщьлпйзз мрнптушьшхшэёѓђяюэўј”*,$єєїѓѕїђђёђєёюьяюяєѓёэющхррххшрпзмаеа§хсйкхчьснппхшьёюђўўН8 ыюяђђ›ёяыыььхццшэёээюццсрйклмйммйжВЮш§чЧТпнчсцнхыюяьшшюН4 цхсжрьщьшчшьшшщччщяєяырыхсмрппннзаСбмрйгЦрьь€—эштшцшєюўўЇхпслсшэчшыыьыцщцьюёђђёыхтчтхчцмнмуѓћњчнлмч§ыэєтРбЭаьнТn>  юышчщыюђьюээцрпрщђїяэьшыцххрцутсннуушцухёшлгсшяйзеУуУa!   ѓђяююсёюєёяэыыккЯѓшюяюяэьшчцчщщчшчуцшшЙчнЦЮЌНЯххчйеѓю0+# єёђђяђѓђѓђяююшцсжлшюыьыэыэщьэьяюэщэшышсрсзкаїўў­јнШнчu&! ѓђѓђёѕѓёђюєђэыьхрхщшэчшэшэщчшюющчтсуттщщчухгрыѓютжОЛяшO%&ѓђѓѓјєїѓёђяюяяюБыэюшююэёяюэчщшхчцыщцччщуххрлШБНЯнпыўт5 ѕєѕђїѕєѕѕѓёёѓёѓєёюяюђяђђѓёяэюэыщщДшщюьыычхчэцсмлЮшщїѓАVM+   єєїєѕєєѓѕђѕѓїєєѓюяююёєєѓєђёэяэююэюшшцшучшуррцччцьщы§§ѓгS   ѕѓѕѓёѕђѓїѕѕ…љїєёэяэёєєїїѓєёђюяющяяьыьщыычтлпущщђэюэшрѓѕ ѓђѓѕюѓђѓєѓїєєѓєёяюђѓєѕјєѕёѓѓюэьщььюяющьыщььчцсрчшюыцхѕўћu"ѕѓѓєёђёёчєѕєїѕѕєѕђѕѕїѕѕѓїєѕђѓюёяюѓѓвёщчшщяышэутущьщьчђўўФ73"ѓёђђьѕёђєѓђѓѕєєїѕїїјѓєѓєѓјѕђђѓЩђѕэюяььююьытсщыщїтУЩщЯZIa4ёюьюѓяєѓђђєѓђюьєёїїѕјїѕїїѕѕєђїєєѓєєѓёюышэђёёчьээђэємНСцьz,#0"щчьщэьяяѕђєєяыщщёяёєєъїѕјјїѕїѕїєѕѕєђѓїѓєѓёђѓѓьђєѓєѓёумюўў…M2C#,ђььщэьёэёюѓёєёээяяюяюђѓѕєєѕѕїѕХђєѕїєѕѕєѓѓѕёєѓѓђєёђїўўŽH#"юььыёюєьющььюяюяээюьэюёєѓѕѓѓєѕѕїїјѕїѓєєїѕѕцїѕєђѓяяёёѓѓђўўЏL70"(ёьыэђђлёђёяюьёяюёэыыэьёѕєєѕїєїѕєѕѕјїјјїїјїѓѕѕžєђѓєёѓёѕёў§‰@<>) -яяђэяяєюђђѓяяєѕєѕѓѓёѓѓяёёѓѓёєѓїєђєєїїљјѕєѓѕєєѕїёєєѕѓѓђђўў…EEZS34ђђѕѕђюёєђјёѕђєђѓѓёѕєђђёьэєыђђэѓёѓѓпјѕїєјјїњљљјїїєєђѓёєђўўЅB0(-79їјњїїяєђѓѓєюёяёэяэёёьёчэьыьыыєђѕѕїјјљљўјїїПѕєѓјђэѓєѓўўЃ;$94-3њњљѓѓёэѓюђєђёюэёышщэяёђёюьэщцхчыёяяёёђєїїєїєјѕїїѕЏђѕїђўўФ:3aA>8їїѕѕѓяэычыюыююьщьчхчьюѓєєёяыцсцчцщьђэяёюэђяёѓєѕѕјєїѕёѓюяўА2E@:4їѓђєєВяэцычьшяэььэюшьюёђїѓюяёюэььщшшышчуььѓѓяєѓѕѕїїѕєёюьєЌ-?005:ѓїјѕєјєѕђяђяђђѓєђѓђёёѓєѕєѕђєђычццтрухсуыэёёєяёђяђєѓєяёўўЦ:45135њјїјѓѓєёєђѓѓѕєѕїєєѓђяёяюђяюэьэщхручцххюэюђюяюэёэьюэщёяѓєўпq`H%јїљѕѕєёяђђњёютёяўўОїёюђюьчццчьэьщыщыщьыюычхгшхкмсхщщыёяјўў~PU7(*јњјњїѕєѓёєђѓѕѓкzUшўїєєіяёьюыэьєяђђтыюьєьэчмнзлйрнуцщэщјўь~B; 3љїї№љїѕєєїђїњўўњШєўєєгѕєєяюяёёєёєђёюььшцпртснтррсучээѓљнkMF-::їљњїјјчљјњїї§њїїљєѓїєєљѕїєєёёѓђєєЯёэыкрклсчюычххцсыэяѓјљ—j[:?<јњљљ§њћћњћћјњњљљњљњњїїўѕјјйєѕяєђяђѕїєїјяшппэёђєээччьжЮупсш›09O?8љїї§ѕљјј§їјїїЧјљњљћћњљјѕѕјѕєѕѓѓёёјѓїљљўїљєщѕѕѓяёжррлйкххцўЋ;:85*јѕїјѕљјјўїјјіљїљјњњћљјїїїєјѕїєѕђєѓѓёђєєјїѕѕщзкчцснррбнўшJ-H52љњћљљјїѕњѕєѕїѕѕѓјѕєѕѕїјїїљїѕїєѕѓђѕѕєѕюяяѓєиёљїёэшђмнммгїщb)%:4њјјљћјњїѓєјїєєѕєѕїѕјїїњјїљїјѕѕєѕјѓєяёєёєѕїђђкяѓююжспччёўјd*:L5ѕєѕєѕјјѕјїљїјѕїїєјјњјјїј§їњљљўњѕѕїеѕњњјєђєяђѕєљїэххцэўяh1#).ѓїњєљѕѕєёѓїєїѕїѕљѕѕїїјљњјїјїјїїћјїїјїїўљїїлђѕѓєђчёэычнсс{-238њњљљћћјјїєѕяѕяѕѕєїєєѕљїјљњћљјјїрљєєѕѓђєѓєєїјѕјєёёђяэїљѕЅ9H22ѕєѓѕѕѓєѓѓѕѓєїјїїѕѓѕѕяїѕѕєєѕјїїѕјїѕњїњјјжїєѓяѕђєєїѓёђёѓђѕїўўЄ*%,ѕєєђѓѓяёяяѓђєљљјљѕѕј№ѕєєђѓїїѕјѓјїљјјїїѕњёђѓђѓєєяѕєєјїўўбљѓїїњїјѕѕїєѓђђрёђєѕѕјѕјђѓёђѕѕєѕђѕёюѓђєјјѕѕёєяђёёцѕёыщчэшэяЈ-+4єѕїѕјљјѕњјјяььТэыђђєђїљїєѕѓєєїєѓђюээьюѓёѕєјђђёюьѓёѓєѓђяэяцѕэКE50їёѓђѓєѓєєђяђььюћьюёђѕѕРєѕѕјєѕяёяююяьюєєјяѕђђюяюяяюѓяѓёяююєўѕQ&їђѓђяђєђїђєюѕѓёюяцээюёєѕѕФјїїєђёєєѓѕѓєёѓёєѕѓђѓђяєѓюёяѓѕѓэђѓўўu3ѕѕёєѓђѓєђђѓѕєїѓєяяэюяђђѕ—їєёёѓѓѕїљїїѕђѓєѕѕјѕјѕѕѓяёяєєёѓюяўўЂ1,єєђёєѕћѕћјјљљјїїѕђєѓёђёюђяѓђёючшђђёѕёђїђѓђѓђѓяѓђѓѕэёђѓєѓёђѓїўл1)ђюѓёёњєїѕљјњњУ§їљєѕѕђђьяђяёюьщяяэёяяьяїяээчююёёяѓёёђяёяђяћўэU!ёђѓяєяђёєєјљњњцљњјѕјєёяюэюёюђяюяюђюђёїяѕёёіюыхыёяєѓѓђђєєѓёўўr,ѕяѕѓїѕѕгѓєѕѕєѓїѕјљјћїљѕѓєєёѕѓјѕљєєѓёяєѓѓїѕєяюычѓѓѕїїѕѕїјјўўЖ@ѕѕїїєћ§ѕѓїѓєёјїєїїќѕљјљљљјљњїњћљљТѕєёюьэѓїєєяючщэяяє§§ѓяњўѕѕўўя3љјњљћљњњјјѕђїђєєљїїјљњћјїєєїњћљњњСѕѓёьыьёљћљјђєяђѓёёыцАЈпкчяѓўѓ^ѓјјѕїїљњћћљљєїєѕјјљїњјљљјљјєєѓѕјїїєѓШѕїїѕђђээющчыьтсцээёьўўЃѕњђѓєїђјјєѕѕљѕїїѕєјїѕљјїїѕјѕєѓѕѕїїЦѓєѓѓєєјїєяяьяэщщчыьщыщчьэ§ўЎѓѕїїѕѓђѓїљєћїїљјєїїѕјѕїљљїїѕєїїэѕїїѓѕљєњћћїєёѓђююяээїщшшцщтўьїїьѓєёѓююёюёѓїўјњљїљєїјјљєђѕљјљњњћјљљїјјъњљљїњїєђѓёєѓєђѓяёьюэўј€яюхурюяёююсеЕчўєяяыёёюыђюьуукеншнзЫЭзцяєэьюєёёшнжзнцтпсульпЕmj’їєэђѓђѓѓыаШФБУхыЩЌЕМЩцчуёѓєўјЯТьюнШйгзжгпнндтщяёэьђятццсёўбŽ‘QGясЮЮЩегпчФЭШЩЮкєО™˜˜‹ЈЎЕеяайЧЏЇЕЕЈгьлййрпббпнэюыэххющшсјђЊqL>N;7тлЪЮЩдрьхжЭЫСЊŸФйбШЎ˜МЦНЕБВЕЅ•ЋБЊ™ЛТЩЭзпдзжлхёяэржЮЭбецяС`$100*2нжпсшцкзЮедбхтчўў€ыаЦјузмдчЫЭСБЎЎЏЗЖИОУКЪмеЪЭняююььухјэ’4(;@131юђёђэшьчэшюѓяжпцёюэёщмЯУУбймФОДШФФЊЌюкЦНДбцнкФЪзптхщцы§ўЧF*)11#тыщђяђђьсуцуйЫжтюѕюцЭбЯеККИЦЪбИКЕЋЉйїЩžЮУТЯЗЗИЧучьшмгЌC *-($)$дгЯКдрнжбаЮазЮЫдлсчяьцбзЭТЗРТРЏЏБЋ–АОДАЏ˜РЮстмжедрцяпўўВ($&:*+$,ЦЫТСЧкЪдадженсЭгзрѓїєэпЪЯУЭкЮЦФЛЛФйэчУДЏЕЭљэыђдžЏВВрЦОv?+0"+,%дгЯЧЫйпжлпйШЧЩЛИнцєёхллЫкЭОЩУаЫНОУЩкдбРЧркФМЮдмЛЖЊЁНЄU8*,%)яэцпкщэюушщщпйРЖЏёыпжкетрдНЦбеЯаЩФЩЯеемйШЁЈƒ•ЌТФЪБЏжж{8;+%-,"(.#шђяьыщюёшяюуЮбЫСИЦерчужктмкнлусээхсчцкЧОКЎДЅыѕўўыЛЁМнo%79&21(&0ёяыяэёэёыёьхсцзЫШЪкржбЮгкггй€псЪФЦСЦУИЧжзОБЫуђыаКœ’буV%21.&*&+ёшхуэѓэющцущшэыпйхухлЯдьыымЮсскмакрхламтпЮазТЊ—ЄЛЩШмўшC$+ёєѓєюєѓѕыяюьшѓѓшхштцзхщёьхзнкжгзЦЦлэрктйЮШЭзлЮШЪЗхряђЏ]^:яѕяѕѕїєјяяшѓьїѓьшшщѓђѓєїѓёутлхтшыщмлббЭекжЯпкЮкпймщўњыгc#" ьычьђѕѓјѕѕїљїљђюммьёѕјјљєђяьэщрнууйЭблдкдУСТЩаппхнжедцј—!"ѕѓюрючцёѓјїљѕїїѕщьюѓїљњјїѓцтюшмпсьчпйпкцынУТТЪзлхнабаѓўњv%"ѓѕяёчкмэююђљѕїјљѕїєїѕњљјђїѓєђёптыяьщчхЯЮрркцлаУФмусжлшўўОA(?1%3!ыђээтанщьпьђьєѕљїњљњјљѕѓёѕђѓђѓяёьюђѕэчдгухнхымекЮжпюЧЏЎЯНcQqE.4!жлхэшяэђщмпяцшшуёјїљјњїїѓјїїѕѕєѓяѕђјёэцпаншяшлкхыщяёШ™•Рн4270:(гЪШдЮщцчыэђђьмежцяёїѕљјљј§јјєїєјѓѕєїєѕёытыђѕяђяюэєѕѓбЭцєўUGP>?3хцгнмыхнжюэђслкхтцтчыђђѓѕљєљїјјєѓјѓѕюјјљѕѓђѕюђєѕёѕєёяёѕўў$.S:08шеЮкрынсазгтцьхйжлзггтюђёјѕѕєљјљїњјѕѓєјљїјѕѕѓяяччыэђьюёўўОVBE89>хбТжсщщтжбЪгзкмшйсгдЮчюёюђєёѕјїљљњ№љњїѓёјєѕєїєјёюэѓѓТяў§˜ZZO;$4чндпущчёьэьыьыыѓѓяхрднхшупцыыєєѕѓѕєјњњјјѓёьђђѕєѕѓээььˆэўў]UooPAяяэутщщтшшючпкшѓїѕђяцыыщзгудлюёыччьђѕєёѕјїјњјћєѕёяѓѓьуяўўЏS;:]ICђљљѓяшуйшєђђшьычйрйсчэятФкйупЪЦнхяёђєєђїљћљњїјј€њюнчђэђѕўўАJ3C%>їљєѕёђюьщыђјїўўћЛђўђщьыђђюцшэьмнхёющлдЮбеаЪЫЪЧНЖЗКВОктщђэзrUS8JJїєђѕюђяђђєяыёјў§єєѓѓюцђјїјёьтплсьїєёхпЪБДЏЋЧеелЯЫРЖФачьыьэЁ~dHOHяѓјјїјјљњ§јѕєјїљњњїїьэђєѕѓюялрпрыыьёьэяйТЕЊЫпрлхдЫШЪДЉЦРРЧ—@FaTHѓїїјѓїєјєїѕњћћњћјљљ€КѓяђѕѓѓюлптёїєєљѓюьЯэёёэьКОЕЖЉАКРРщЄEBSLEёьтцюђђѓїщєїљљїѕјїњћњ§љћїїхьѓєђёщьђјєятсэьяєђьдМЛРНМЎЕШЫОїч\њњјњњїююѓђщьюцчѓёђђ€ѕћњћљћїјљњѕэчюяюнчткчёёѓэуршццлЗЕВТзж§уc.AYEюшьєїњѓђэєїїђѕьщяєђѕєњјљјњїљјњљјєљєёыяёїєљїѕячьщттёчгЯЫеуўтo,+89ёёьёёѓэсыђѕїюѕєђёјѓєѓђєљїјјљїљѕћљљєѕѕућїљїєэрзтюѕэЫгааЭЧШЫ7HBAѓїѕљљьєэьёэщпяюёьыцщхщёєѕљљЮёђїњєєђјѓјѓььёыэюєєѕјљђяшщьыючлЎJVBEєѓэяєјђытуыхмёёкэюшьюяђюьёѓѕєљѕћѕїёѓєљѓѓяяыузюѕђуёыщшююЄєўўЂ22)>щслутнремлпцюѓїѕёщтщяєьукчыяюэтђѓѓёїѕєјјёящчлуѓјѓѕяшщёєѕјўўжF0@]юыьэчсцьнтхщьђїєяёяјј€РђхрыычьэшшээёёєїђђёюёёучђљїђщхуыьєђјўўУ\IEтшчхтцпяђєїјяэющђцыєјѕшчцуухщђђїѓѓюђюѓѕјёѓуяычяѓђэчгЯЭабдсэёЅ]QLекщєђєяѓђюђёсркпрркшєљђсллчьёєђшщтшэсююѓѓєэюхчцмгзкмьыжбЭбЭе”47?ьёєїѕђюѓђђтыеУжжпккльєє€юёььяюђьукйгШЪакццюыэрнтчмуыэђєялЪнпЭЂMG7мьхпрыщђєячйаЮбЪЧЫЧгьѓѕєёщчэюэыхпмдШбшэуйэяшмкбдпьшзнуюцслнјщT%1цщтегкццкрембнхйЩЯОачяююшшюїђхснкьючмнрлнряэццьылбйбешухыхсўў~);ёштдсцыюыщчэюьхлаайчыспщщьѓђызЭтђѕїєѓѓэьщяяььєєѕяшцшюђюнгпьўўЇ7;эрйсэѓѓђ€РяђђяёьущсцшрзмльххрЮЩЮйыяшьёухуыцщуччєэнсзтѓёђшрсщўпH5збЧадцьєєїїљњљјјёѓёђьтлЩЮЯлщрйггеймузжхырнпазаньшуееппщющцьћўщb*клншкпзсншцѓјњјљјїїјѕёужЩЦатцтулкеммЯЮбюццлЩЦТЮааыыђѓєюёыюђэўјu4сщушыэьччыыѓЖёєјјѕљяёящчуннпыцэщьшпсюьэюёёюшнУжряѓђѕєьыяєђљєўЛPпхтэёђђѓщтзсшкйшюёїѕѓњјљљ”ѓюѓѕѕњїєэнбзучхыюяцШЧЯнтчэћўупѓўєњўўю;юђђєѓњћјьцччхщюёђђєѕѓћїјєѕєјљњљ§ћјђхрЮОЮйчѓѓьрзхшнлгдж•ƒРКЯцёўяeющщѓєњњђљѕёынхшяяѕђїјњњщїєяѕѕјјњљњѓчшшлцэљѕјяяууклеЩУСОРФЭлзлўўЏцхштдмьђѕїєѓяѓєђєюёјѕїјј˜љїђщщэєѓёьяэёёѕѕјѓєёюйбШЪЧЦЧТбнйжлаЮєўЌыьююлгжычмчсђјјѕђёюєюѕїёёѕюэюѕѓљёђёэыьыцхђѓњѕєђяуедгЭллгЭРНЩУаўчђђрѓсеЩпчшшчэєѕњјїяцшьяѕёххщыьђјѕјїїћјѓѕєљљэћїєячспыьыёыьнчлзчыџщƒ—РЫЏеєїјѓыЧМИбаЦЮЪжЯЩЩе€ дгзбтэымЧОСЪЮбЦТУЦаеЧКНСЧЪЭжмймжЛЗДВЖ.*9Nk42^u‹ЃžЉЅ•™ВФгУРЯанмбаЯгзйпррбЦЦггмйаЪУУФЮаУУЭЯЪЦЭкЯдйЯЮббе*!!-#3HOQ,-]ZQ…™ЊЊРтјєцджёйВКЪЩЮЮЧСШЦЭЮажЯСЩммтсждздЧЦМЪЯбгеШР#07S@>:5A:>>9NOe‘ЌШЯЯЕЄУйдйЦАЏФЦИŸЉМБЊРаппбЭЧЭЫСЕКЦадрхшШ!"-483+"*,CG*9@J:AHTPZe–ŽЈ—Њ•zŽ‘ЃОсшуЯелаЩЩдгУМШЭЭдкдЃ  #$%()2A;@?7.>LQ;04*:LF:02-9OG004@Oz•РЧбччллмлЫФЮЩНРЮЪТ #&,*%--!-%.)397;<8:ELIEF?@9Q[5%CTVG>qŠ›ЪтесяшцлйдЯййЪЫ &&.()%+"!3<1&-01<;CFJABMILC2:9?FBJIB8i{\ezЂрююпШЮладЫНО$1($20)$J77<413BPE;;ф8494.0E54?NG?ETbЃЛЗЭеЦдждЭ€B# 5",!"G$#4OB??9,$!((,2%3QISVPjr‘ЇЉКЌНу ?0 !!&+%!&!(:jmB##$--2>857)),%&0-3+3BI>SMPFWgVzЁЗы)((!J1Bc?298))")*,21&$58:88<FTNBWVP+E;C\ )% !!$14(+*%&4<@174+)+$*5<:8CJB9+(*:@ "!#$ ",&-#+,$%-1)80.#+239@B:31  #(%**.71*.)&!(&+)135>#%.20-#"+((!1B4$%#53,;..9? !!#)(.5:03&%.245+11(#&.2841.)(40)*&"(11,-1   !,),*4,10--*-0&%#%!+.$")&..0959:B91 !$&""+."+0$##+-$#*!(&)53<90&( 32::tЋŸŽI** *+3()&1+,3,-%."")(1.0*4+&&, 7C1:FТѓђюнЪуНu[W9 *!1)*-),1("("&+)""%),8?4772(%!5%JCNFBEЂыєѓј§§ѕЦўямЭŽ\L>&  .2)#,15,,.&*%&-#(%!%#,:0BPP?–яћёёќюшяђђУїљѕюёядЖ|?:aVM% #15%&(-%"$)2*!&)(--2! $*-7*+"‰їћёёђѓђёёяШѓєѕјћ§ѓјљщцзК’}Q)  %1921-28+!(,)7)""1;4318>:Ёјїђюяѓѓ§ђэђђёШѓєєїшпцђњћљяцЕ{F #+71+2*)1230.+.%1)12<>‡ђїюяђђяёђяяђШёѓѓяђюэмеЯзцёђєљ§§љзЅc*%,-#,2-)0;0+),))BI;-oшљѕѓюѓєєюѓђђёёяёѓєѓєєђцтхьђђ™ѓёюёє§§ћеƒL]S"543*7F80++,4?ING1cћ§ѕѓѓђяёѓєѓѓюђђѓѓєєёђѓяэяђѓєєђюёёђѕѓ§ћ§љѕщЌd[H0-495;!)+27;FSN4]ѕ§їёёђѓ§юђѓѓєљѓѕючьёђђѓнєїјѕєљћљђємА•‚d2094(&1(01,AMdнљѓђђёё§ђєђђ§юѓєєѓїђёьэчыяьяяєђѓђѓђѓѓєїїљѕѕщњћћў195$#-0899;3Pтћєѓєєјѓєєяѓєєѓѓђєёђююьёюяёђђѓѓіђёёяёяёђѓєєнѓђђѓ92.-%&#&",14$Iщљљѓѓєѓђєѕђѕѕєяѓђђљёђёѓѓєѕѕ§єѕєєќѓђёђђнѓєѕєѕѓѓ(1*%$$(!"*3Nуљѕёѓђђѓєєёєѕєєѓ§єѓђђјєѕѕїѕѕїѓѓєнїѕјѕјѕјѕјјїѕ#-&*!%&"(8CСћєёяѓђђѓѓѕєѓўєѕѕўєѓѓєњѓєѓєѓєєдѕђѕѕљјјїѕјљїѕѕ(*-21+-+$,G‰ёљршюяяѓєѓєѕђєѕѕєЦѓєєѓёѕѕјѕєєѓєѕїјљїѕѕїєђѓѕѕє2%&%1."#0nтјццчыьэюяѕљєєѕєєѕњђэьёєѕѕњјѕєѓёєєѓєўёєєѕж,:9#%$!))")Njкьгуычщьююѓђєѕѕєѕѕјѕђяюёѓѓєє№ѕїїѕѕїїѕєєѕїїѕєѓѓп3A?.,"1$)E?FЎЮкйпттпхчмШуёюѓѓєєђћёђяѓєєЪѕєєѓѕєєѕѓєѓѕ)*.+&!!$$5БцЪСадЪШдйжгрцшщэюѕїѕєѓђєѕїїХѓѕјїєѓєѕїјїѕѕёѕѕїї.;4+!%JŒШйзздННУЩЫЮйзтюцюёєєюђѓѕїїїѕєєѕѓєєёѕѕћїѕїљѕѕ–-!" 3,3nБЖгКЏЏЎЎУаусзйсыѓђљѕѓђѓїїєѕјєєѕјєѓѕѕљїїљїјјїљїљї!($)7+&-;JƒзМгЦНФЩСЪбнцтутрхьђѓђђєѕѕєєѓѕїЬјљїїљјњњ ! ^P,A9@мёяйЫЩЯйкгеагзрзуьєєѓђєљїїєѕѕЕєѓєєѕїїљїѕѕїјњї b’c@(%zїєзпЫЦеЭМЖЗЛФжытчьђєђюђєїњїњњїђѕѕєєѓѕѕїјњјјїїѕЫ !!*>k[-1uљєзсргЫОЦТЮдЫУнщюяѓєѓђђѕјјћљљјѓѕјїѕєїїјљјбїљ#$7,B"-3+NйјјяющхцчнЭгУЪЪпчяђєѓѓѕїјњјєїї§њљїїўѕњњсјњїј4(*%*,&%1C7CЪї§єјѓєђёшууцхьуцюєёяяѓѕѕїѕѕїѕѕєїѕїїљљјјїцѕїїј)0%!%&447<57HЂћћѓїєєєяшьэшяёїѓѕѕђђьєјѕѕєљљїїјјїѕѕјѕјјїјјхїјј +&21#:7.13?A`ёћїёѓѓѕѕ§ђѕїїїєїїєђђѓєѕѕћјїїњјјїјњјуњјљ-1802+4<.1&()012Uрћћєѕђѕєѕѕїѕјђєѕєѓђєѕѕјїњљјњњѕєєўїјјѕїљїјјњ&,4%--ы"(34-*-&4?Ѕћ§єєѕѕєљљїїјѓїѕєѓђђяєїјњјїїдњјїєђѕѕјљјњљѕїїѕї4.*072*!)9<2.:010‚јљѓѕїїјјїїћєѕѕєѓѓїєїїљѕїњјїїЯѓѕѕїњјњјѕїњњѕѕ&)1,8B11+>OLG;;1(iљ§љїїјјєјјїњњїѕєѓѓјђѕѕљїїјїїдєљѕѕєѕјљѕљѕїїљїїљ$4>8#)82>NJ>(.mєћљєїїѕјѕѕуњћјїѕѕѓђђєѕїїјїѕїїњњљїјјїїљљјјчїљљ."11$#&9?IYFOp@mтћ§ѕѕљїѓѕїљћјјЫїѕєѓѓѕљїєєѕѕїїѕѕјїљјњїњјљњћљљћ #3)%#&(+1:-„ћћњїїћђєєѕїїїѕђѓєѕїјјїїїѕјїјјїњјњњЮїћћјћљљ(2 %T?2%1">pSH-LШ§ўјћћљјїљѕєѕїїѕєѓђѓєѕїјјњїєјћјїївјљћљ§ћљћљљ28((??A?+,&!?‚–pUс§љїєїїљїѕљњјѕѓїєєїќјњњјјљјјњњјјїћ§§уњћњјј2""7:FE10))%E—n(2Ў§§єѕѕїњѕјјїјїїѕѕєїњњљћћљћљљќјїѕјјћћљћјїїц.F"--:?71$,+0+GO1<ž§§ѕїјїїьљјјњјњїєѓѓєїїѕїїјњїјјїлѕїїјћљ§§ћћ3%( )>:(,+.93;BdA-tљ§љїїљїїќњјњїїљѕѓђђѕїјјїљїРјћћјјњљ§§ћњњ>53A3A8:5A@@4**7;)&LђћњѕјїјїјѕјѓїљїїђёђѕјјњћћњјѕїїљњњзјњјјљїѕѕљјT?05&89?C:7)CG;1%*5Т§§їѕѓїљїѕјјшїєђюёэѓїјјїєѕїњћљјѓјѕїјљљрјїѕљњ`&-52VSJE&&35?C89-Žћ§ѕњњјјљъћѕёђёѓїњћњјјїјјћјїјјїјјўїѕѕїˆЉЪтНт§ўўђыссєђцыюьээяђээКюэѕѓєѓђяюышщыыээюэыьщшьэьюђђёєѕьшхтю:?CZtCAd~ЃЖБФЪИТнрчшхђёээююяяьээюыы№ьчщыюёђђёёђёєђђяяќёюђяя€Ÿэьэ5,32%19MSZ45cb^ŒЃДИЯыўўћђђљєсуцтцшщщуусхыьыяяэђёёђяюььщышюяѓђѓш*&(,&+:3YABHBG9BB?UVo˜ЕлщхЫЪюєєёчнпцтеЪлцкзцюэяящццщьышыьђяяљц#"!"+&$58;9:2A5MN52BLAFPbbуq„Ѓ˜АЌЅФЃƒЁЉЧсѕўњыьыюэюьээёюяяЧэђЮ(((1535>CC??;99PT>8:3@QM<882@SL08;F]ŒЉзкшћљяяђђПёьэьяьёю##*!)&*27822838.3240.4;:AHLAEIJQIA;8B??HMNAEqeoƒЕшїўящђьёяээч"!*33,".852,)&*C?CI?38CYL@<>9;::@BF:AJTJ?IbtЊдмяѓшєєыь )P8";&"+$*&*1-+!.C"40;TGC>912,441291149WVZ]]wwЉШЩусшљJ8)((2*"($"+!Bj|H(-1+2725:335274,*1;9?CLOCWVVP`o^ŒЖШњ!,. 2&!(11&&)%!0JEHrH.:A??90(0887430--2;EC@:;3JQNB[ZY5MCJa$(&!(%#"$#8,493327;;5-(+535;8?C@CCEH?C1(2?> #!!+)&#&$$(.14-4794942<@@3-*085;>BGA7:  +**($$,&%(,+&0447;A8--.03177)%#0548@JC@?BNCE887;>$ %+(!&&%123.(*((,&).37;;A++)-029;5712207@C;73:599)4;:;  ##*1,,$)&(3:48774+!"%,.,858510388((02:8.70.>31 €  %&$,(-+-.&#&&("!-,(1,"#&%!0975858A?A><4!    #("(("!%-0(+($,#"&-)$(#,2*.+47?<@72-#70.?AxЗЃS(,& $"(+%$+10.0+10"!#)(0.(3,4:2>:1&!"7?8@NШўјянЭнЛuWW9 (($,.&(.2-*+*-((++.38>?:901,&(+*(QNEB?MАўўїљўўї™§ьйе’^L>(#)%,-,402)!%$&&%%(#1*-),*-**+"(7;?8*’ўўѓєєѕєєїђѓёѓѓѕѕѓўўЮѓјўыуй̘‡N"+053+2944%10&&)0%3;BE95AC?Ѕўўєѕїѕѕ…єїѓєѓѓєѕѕїљёсчђћўўячД‚H% $-#&(#+0310(,)&059537FBŒњњёѓєѕїєєѓђёѓѓєєѕѕїѕѕюхезнщєѓј§ўўїбЅY+()(*,))#47*(*078<>O>5uѕўљѕјїїћѕєѓѓђђўѕїїђєюхцэєѕїєѓђєјўўсе…LZU-3*715135<@EJVH2dўўњѕѕјїєѕїѕєѕєєѕэїјѕѕђюђєѕїїѕѕђєѕјїўўнѕїьЌdVL*3488)2>:>@QH3dљўљєѓђѓђєѕѕћєѕєѕїїїєёэяђєѓєѕѕгїѕњљјћ§їяѕйЋ–~Z.441.09:354ISgнўњѓєђѓђєђєѓєѕѕїїѕѓђяшэёђѓђёѓѓєѕѕїјїѕљћљ§љўўь§:4-),51:?;73Uыўћѕїїќѕїїѕѕёєѓєѓёьяђѕїєѓєєѕѕўєѓѓўѕїїъѕѓєї53,"%,733754+Nђўћїїѕѕїјљјјїїѕєѓєєљѓяѓѕјїјјїєтђєѓѕѕїјљјѕѕ43.+)12-$)"5Oщўјєѕѕїјїѕї№ѕѓєѓєїјјљјјѕѕєѕїїрѕјїјїјїјњњљј40)$%*-)(#$2:IЧўўђїѕѕїјїјўїѕѕїњјїјїјїї§јљјјњсљјїјљњј4122120*"*124Lљўяѓѕїїјїїќјљљјјїћѕїїѕјјюїјљїѕїјљњјљјјѕїѕїјјц5.$%!&-&3)+7|јўљєѕѕєєїљјјћљјїѕјјњѕёэѓїјјњїјїїјїїѕћєїїјїїј<х2-!$((05)4VrёўёђєѕєѓѕјѕєїјјїїјѕђяѓєѕїїХјљљјјљљјїѕјљљјїєѕѕ9<95144.005;GCMзљѕёђѓђѕєђыщыєјјїјјљїїѕєѕїї§љјїїјїјцљјјїјј1531-%%&,+72$8Эўѕщяяьёяюшхыєјјїљјљјїєѕїјљљћњјїѕїїћјљњљјјљз2,0-&%#%#*448Wюљњэчщхчяёѓёђѓђњјњјїѕѓѕјљљјїјќљњљјјд0*1+&$&3;.8FŠцщєщчхтчьёђєѕєѕѕјљљјѕѓјљљјјїїўјїїјљујљњњљјљјљ,"&(#!"55+&IYŒѓѕїььљёђѓѕєѕѓѓєјѕєєѓїјјїїјљжњјљљјњљљ("#("%)]Q9F2B”ўўћяяюѓёээююђєєјјїїћѕєїјљљјХїѕїјјљљјљјјљњљљ%-!%V‹^E#%{ўўєэяяыычцчшюѓєјѕїѕїєђєїљљћљљјїјњљњљњњљљмњљ*)()+%"8qa;,zўўјєёёяэьёюьыяюєѕїїћѕѓѕјњњћњѓљњљјјљљћњ§ћћњњЫљј,"%(%%&<02(51.!OсўўїѕєѕєђёѕюѓюїѓјїљїѕѕјљњљњћљњћљћњљљшњљљїB-#(##073-24;H;Jбўўїїѕэѓѕєєѕѕљњїїєёѓѕјјљњљљјљјњљщї-"%$,13-82::;@>ї>97*28:873[чўўљјљјїјјљљјјљјјїѕѓїјјњњљљћњљљјўљњњфљјљњњљ9:977:701214@@2:AБўўїјјќљјјљљњѓљјїєєѓїјљњљњљљдњљјљјљњћњљјјљљњљ9;70273+3;@BFC55,ˆўўїјљљњњћљљјїїѕѕїїљљјљљ§њћљљіњљњљљњљњњљљсњј23+2414279PIMA55%pўўћљћњњћњњљљќњјїѕѕјљљћњњљљјјћїјљјљљТјљљј%#&470+4;<7IUI?&)r§ўћјљљјїјјњљћњћљјѕєѓїјљљњљјљћљљјљњњљљјјњњчљјј58+380*3>LT\IIp>uшўўјјќљњљћћњїљјїєѕјјљјјљѓњљњњћћњњљњћ§ћћшњ):"%.0,0.,#75M2!„ўў§љљэњљљїїјљћњљјѕѕїјљњњљљњєћ§њњљњљљњњћњњћљ3<#$O88ђ02-Cz‰NM-QФўўњњюћњњјјїјљљњїѕєѕѕјљњњўћњњљўњћћк§њћњћћ@>374?B;3&1%-E‚œp#Zцўўљћљљјљњјљњњ§љјїїљќњљљњњћзњљљњњћњ§ћ§§ћљњњ%9832;?<9+142-MЃq,2Еўўјјњљљњљћњћљљјљљ§ћњћћ§њљњњќћњњљљи#?N4$+5:9148244LT2?žўўњљњњљљјњњљњљљјѕєїљљќњљћњњљЬњљљњњћ§ћћњ9+47.2793+3;::?MiB2|ўўћљљјљљћљњљћљљјѕѓѕјљњњљјљњђљћћ§њљљEEIE<:BACC;0•ўўљљњћєњљјєђѕљљњ§ћњњњ§ћњњљњњљјјЁœДалРшўў€,кееэхнкртупртьчхцыщђєјђугзмснппспсырззйлпуыђэёцбЮЪФйGJIixFGp‡ŸКЖРТЈЖЭзсмйшшяьттчущшэююржзттыьыщщцщэыпчщчхухьсшшьтцычE;5@A33E^nnFFvrhЋМЛбѓўўљшщўэЭанзхщркпзппььэнрьђѓѕэчшцрнжппчыяхй;B;:?FN3(EdWTVS^MQTJadw›КршхЦЛлэюямЯФйдаКЯкЪЗдцыюцлжйрлйджущђѓјм!-08<>9728GPTPO@PBWZFNQVOYbnmt‚›ЊžЗЌЅЧЅŽЂЅЛкѓ§єтхэхмуцмкк€­пцшёщД)(7,9::9B84CCLHJSWTONMObcHIM@Sg[L@CCLi[>@GOgŽЄдлсљѓээяьтжрмеетсз"(%)3,?.>8?@GIHMCIJHHGQSPWTPS[ecWVZQFkoM;SkoYVŠЊДтѕцюћєєщщчцьэсц!%:"47;CEFOUY[^a]eecdMCSOO‚[\iVNƒ‘r|Кёўљюпцыыштгз(# 0?.90BB.CBCH07?A?F5BE?7HB@[L`Œe?NSOWH>MICHHJFJGFBNNPPZOFZ\h\qrjL^UYt(9<75B-"42:*+:@9;AON4--IGOA@FMNSNNII?1>BILJTLQUT]c]QU>;FPY!3*1$(($",152?0<9;74.75@A>877HLSMSJHAGCHHSGBEE?EE€ˆQSVFUUQVP[EONZ$*1*&))#&12-03;;?@>8>:A?>HELNMSZ>;AAHJPJG@F>FCLUWICTWQPININMO%-&)1$**:50-180789:>FIJNLG;100E@FBSCPNH@@NS@?8EJPFII€HJM)+,!(!%$(( $24,<:E9HI>E87:72E;B@MBE?J5@>:-31,5FI?HCJLYNNAE%)"*-(03QJ?QF‹ШМЅ`0;8  *#2-.0.5,:7@@8<:99@?CB>@H>C?@393,ABN`Vbt`MЊўўїњїљєїјћћўўМ§ўјуШ–HLxj[3!74;;:9;C75B>C<9@AEHFG?AHME;;BHAAIO<5ELEHJ@INTŸўўєљјћљњјљѕјїњјњїљљіјѕьупщђњњўўачЖm4238#(428?B8GEABA@FFJ@C@.5Bbўўћњљљкјњњћљњјњљљњњљњјњјњљћњћљњљћљњјњјћљћљћљћћьњћ<3G:BG9E?>1FI\гўўљљњёћљњј§њњљћљњїљїњњвјњјњјњјњљћљћњўћ§љћњ§њћ:<:A;@E[œўўєєњљљјњњјљћљћљћјњњ­јљјњїњљћљћљњљњљ§ћ§њћљњјћњћљћ>7?3727.:JB9;EŠњўњђѕїљљћњћњћљћј§ћћљљєєїњљћљћљњњ§њњј§љћњњмјњјћљћNCIHTSYТцёыѓђєяїѓэЭяјљјњћћљњїљјћљњјњјњљћјњјћљћјњљћљћјњјћ9BB:>@>;B99E>,GШ§хкячхуыьтмьєњѕјњћњћјћљњљ§њ§њњСћљњњ§њћњўњћљњљћњ§>I>;57(-)37A;<^™кёёэшгЩжршчэёђѕјљћћњјњљћњ§њ§љћћњќјњљћћељ§њ§њћљћ;;?8>42&33:L;HGˆЯйщЮЦФЧЩпыєјьяѓїјћљљЙњјњњћљћјњљћјњљћњ§њ§њўћ§њ§њ§;71,4A8@:JI>@Ug™юзымецтсюяђєїѕђїїљљћјњњћљњјњњЩљћљћњ§њ§ћ§њ§њўћў04$59:;@qdIWLQ˜ѕўљщуттяюьцхтєђєѓјјњљјњњФ§љћљћљћљњљњћћњ§њ§љћ§ўћ§+,;122.+tœzV;3ўўђяпмысжЫЭЪйѓѓѕѓјљњјјњїўћўћ§ћћљњњћЫњўћўћ§њ§њ§$7530?;>?Y{G,B‹ўўєјячзжмпццййэјѕљњњљњљћћў§§єћ§§ћ§љћњ§ћћ§§вўћћњ§<9.8.82OFL?INE.cѓўўљјѕєђѓђђщзннёїљљњљљћ§ћћќўњўћћјўњ§њ§њ§ћћСўњћL?<80S?NT[N[тўўњљњјљєїяѓѓђїљјћјњјљљћћ§њ§њ§љћњ§њ§њ§ћўћўњ§§шњћ39-?@@CPLQFSSYH`Еўўњјњњнљњїњњљњ§њ§ћћјњљњљћљћњ§њ§ћўњћљћњўћ§ћћу§њў*:G9;8>FGQWUSQWYxўў§њ§јћљћћуљ§њ§ћ§њњјњљњљћљћљ§њўћўћўњ§ћўћћхўћўћ§NOOJIJHA?QNGPILIpјўўљћћљњћљ§њ§ћћнљњїњјћљћњ§ћ§ћўћ§љћћ§ћўћўњ§њўћў<;8ˆўў§ћњ§љћљћњўћўћ§љљјњјћњ§ћ§љ§ћћо§њўћ§њ§њўћўћ§њ§C;;1>:?AFOUjw`jŠY…ўўіћљћљ§њ§ћ§ћћуўњћјћїћњ§ћћљ§њ§њ§ћў§ўњўћў§ўћ§§ь-C+;C;>:@@;5GS[C.,žўўЋњ§њўњћјњљ§ћўњћљљјћњћћ§њ§њўћ§ћўћўћўњўћ§ћў§ўBU5%;hFCPP@9V–Їg`>]дўўћ§§ўћўњћњћњ§њњљјљ§љ§ћћ№ўћў§ћњ§њ§ћ§ћў§ў§§ЭNGCBЭўўћћњ§њ§њ§ћўћўћ§њћљњћћ§§ћ§ћўћўћ§њўћў§ў§ўњ§њ§.PVBCFAGFJQG@CAgoFIИўўњ§ћўњ§њћћўћћњћљћј§њ§њ§ћўћўћћњ§њ§њ§њў§ў§ўћўE@GE7NJENMTUc„YCўў§§њ§њ§ћўћћЬ§њћљњљћњўћўњ§њ§њ§њ§ћ§§ўћћ§ў§§ћўPJL\EGLGMQVVSVWQTA:aўўћф§ћўћ§ћ§њ§њњјљјћћўњ§§ћћ§њ§њўћћиўћўњ§ћћњўeT3CNNLMZWSNZ\]YQCBLдўў§њ§њ§њ§ћћШ§њјѕњљњњўћўћ§§ўћ§ћ§љћњў§ўћўњћњћ˜wCIIFio\N2@03813?5IE31*:J`‚БануюхсгЫУЩШЯдзнйазсцзЩШЦббемйкєТ›ЋЌ”КсхкЯй03583-39+0$14>J><<;33F\ŽНжэхйЦМУагнтпкднпрЮамурлушунКЃЦЯЛЪЯжйй2-42)%*%%3579$+0?YC>1FMZm‰ЗыјєѓѕюёшцчццрЮЫЦжстурткрнмм€­ЦЖУкшыю,2.--%&%#(*!,@><:@GA?#7@2:JS[eЧєѕчёјђюпРКйрмнйбжйрчтлкцшщтмну(18,)$:+*(.:95&489FIL;423*EC9>880.2C@?LN@YcQSSPV>Tc[v—ЃАйюлзьїэскксшцлг&4,*1YnE7+,@C?;7*-?GB2"#2;C28;?FH>:)+B?>;:&)0AF9*(#$$JPOLACHELCGJPMGEA@GA>1C@B5&GOLPYS;0L&+*,0&%-01;A27;812.781)&(Yd-!8>FGAA€™FP0*.:C?<;>:>>;>9,@n[47B.&-!(03;4+(57-!"82;#+!B<5+4?<59AA8;7+.5FB@0*:?:BEA.(7,(4()"+*%1,8)2-&-05,.4-$-713-2+284:10.95<89?BFC@9>HNTNC@>5@>><<187:<4>.*,,-80"$*211:&)-ACCAA.;:50+#$"32. 5.--74<9>>55.443422.$.7#**&571:@?24%++*0554,4?A,>A>,*&BMLG돘|ˆi(!#5.98><;2448-..,@C:3.&3.@CI>8;>:9;B@9-43:3;B732.A@<5љћ§ћўўёЭАa;3,25-1&+97047@@+&)047CIM:;@AA:?HNEA5153241;7>411ђђшєљњ§љўыЯ•77-0,;1>;5,033š*.*)*0,;7"$%?B99?:;8?>7?954;@9:*2єєѓѓєєѓђђѓѕњ§§ђтЪq9>9<;7948A54,-%.*..%19!9eE9450123<@>2<432:<43;ѕєѓѓєєЪѓєєѓёёѕљ§ўпА~M:4#%2*2588?>C7?>;C?ABE8,+.32538<11-5-:33§ђѕєєѕћєѓёєѕѕЭїѕјј§§ўюЫ{I-;G8BEHNJHFF@704471,?FNL;?7791)4-;>85ѕјјљєѓѕљїљїї§ѕєѕѕќїћњ§§зўЛ…c]T>5B?9IGFBAI>C;APEMHFCBE?58.,.?7>ђєѕѕїќљјїѕѕўєѕѕбћ§§љяЪžˆWA>IPI9MNLLJSN?EFFEBE@8:-38;?єѕїїѓѕљєѕѕїѓяђєїѕєѓђђгюєѓѕїљј§ћћєеЪИ’xqPB28;INQN<AIA>CC@:PGWP?A3Ngu‘ФчюјљњїюычтцчыюяёѓёяюяђёѓђѕѕєєѕўшЪммЩньяёѓю;;<<:89471877AF\LCLE8A\hЃзѓњўїуэюэѓѓЧёѓђѓюђёђѓѓєёѓѓѕшаесынцяєїѕ7>900,1*11747:AC>CM^OCCB>AITSJEFFC>qrQ?7IcmЌТОУЕФнјўў€‹њљѕюььюёяѕѓѓђяяь4B>448AG@:458;7>ABCGLEF@B@35BNMYLG\gZ[YacI\qd{ЃЗШтљљєћў§їёѓђђюяё-01.38^gE<:3:BJCA<>?GJH@@BBJEF@BMIIJ@52JWUUqW7;?QJnА”ОШућўў€!њїј01-2+.179312378AJG@;AGFNOGGCEFAAFNPUTLHJIMLFOS>?57:EGSL5001,FNQMGEGNNJGPVQMGFHMI>GLOI;7UZPU`ZFBZ%#2820214;B998:>5+.5@8.971T}e:"7FB@HGELW;89?BGC?EGE@EBF4Ht];F<(+,43GG40.59>ACF@?>:9799€Ь<><;4<;;7:A<@EHEGAEHMOOMJIFFGBFG38!..14-2*-15..-1.019887718B@@BAEGIIC?@5;<@;97518>GMNLJG@F>A>BFE1 2(&4378;:9<773<8;;114..72.5;AC>AEA95210.7327;@FB;;::ь>CCA:>:5;BA;8>AEAAћўўМњ§юЮВƒ]: +544:312:859AF?;5239@?>B@@;?BF?:AGE?483їѕѕїТѕѓєєљћўўђцШn5E878934507.*,24:548;;&?eH<:9;95:;?<>7::<;58;7јїѕїїѕїХѕѓєљњў§лИ~J4.!0#074:@C;B?<@<:BJ@<,159;::754788084795љјїѕљјјї§јїјјљьњћўў§ыЭžxG(.A);>EBEBBх?838;<7;<>JLA8<;47;598>@<јїїј§љјљљјўљўўећЗ‚^^Z?399*CIF??@E@G?:JBHHFGIGBFGCBCHA3400;>љјљћ§љјјэїјљјљјјїѕѓїѕјїїјљћўўнѕлШЖvhPG1::GILHFCGFEEFHFE:8E@љљјјљљќјѕїјјўїјјјїјїѕїјљњњјї§љћўўаєкНžŒi`;SWNG0>?8@GN`EC?>>љљјљљїѕїїјљјљњљљјњњћ§њњйћњњљјїјїѕѓєїљ§ў§ясеЕЧЅnVwoaZIOUH?:CB9Eљљјљљјљљњњљљњі§ћњљњњљјѕїїўјїїѕќїљњўўнёЫйЧžŸ‡gpeopTM;Jњљљјјљјљњљљњћћ§ћњњљљўњјјјїјњљљјјїїфјїѕѕїјјїєєѕњїћјњўрЉЄЅЋЖЉ}}…љљіњљљјљњћњљњњќћњљњњњћњњљњљљїјљљјјљљјїїјїўѕїїјцљћљєњшЖЖВњљњљњљњњћћњњљњљљњњљћўљњњ§љњљљњћ§ћњњљљњњљњљјљјјўїјјћѓўњћєњњћћ§ћњњљљјњћљњњљљњњљљњћњћљњњцљћњћњћњњљњњљјјїїјїјјїјљјљјјїюјљњљјљњљњњљћљњљїїјјљўїјјјљјљњїљљњњљїјљњњљјјљњњљјѕљјјїљњљљјјљљїєїјїўѕјјњљњњљљњњљјњўћњњўљјјєњљљјљљјјњњљјјіљјљјјљљјїјјїјјљњљљњљњњќјљљњњ§љћљљћјћљљјј§їљњњјљўћљљњћњљљњљљћјљњћњњўћњњљќјїјљљјѓњљјљљїїјјѕїѕїїўјљљїјљљњњљћљњњќљћљћћ§њћљљъњљњљјїїјљњњћћ§њћњћњћ§ћћіљјљљњљљјјљљјјїѕјљјљјјљјўїјјљќјљљњњ№љњњљњњћњћљљњћљљњњћёњћћњњљњњљјњљљњљљјјїїјјљњћћљњњљњњљљјјљњћјљњљњњћћљљњљўјњњљќјљњљљўњљљўњљљњљђћњњћњњ§њћњћњњљљњњћњћћ§њњљњўљњњљўћњњљњљљћњњћћњљљњёћњ§ћ§ў§ћ§ћ§ћ§њћћўњћћўљњњљљњљљњљћћњљљњћњњљњњќћњћњњѕљњљњћњњљљјњњљўњћћўњћћ§ўњћћјњћњјљљњћћњў§ћћѕ§њњљјњћњћњћћњђљњљјњћњњјљњњљјјљњјљјјљљјјљљћјљјљњњјћ§ћњљњњ§§ћњѓћњ§њљљћћњњћњћћњћіњћњњћљљїјљљћњљјјљљњћљњћ§ћћњїљћћњњћћ§њњјћњњћњ§њљљјњѕїјљљњњѓљњљњћћ§ћ§§ћњћћўњћћњўљћћњ§ћ§ћћњњћњљјњљ§њћњњљэћљњћћњњљњљњљњњћћњњћћњњљњљћљњњћћ§ћљњњўљњњўјњњёћ§њњћњњћћњћњљљјјљњћљњћћњњўћњњљћњћњћњљљћќњ§ћњњѕљњљћћљњћћњћћѕ§ћ§§ћћ§њћњљљњ§љћњњќ§њљњњяћљњћћ§њєђђѕљњћ§ћњњћњќћњљњњљћњњћћњћћіњјљњћћ§ўўћћњћњћњ§њљћјјљ§ћ§§§њ§ћћњљљњљљњљњњыљњљњћњ§њњћћ§ћћ§ћ§§ўў§§ќћ§ћ§§іћ§њћћњћ§§њњњљњњљњћћў§ћћўљњњі§ћ§ћ§њњљњљљэћњћ§§ћћљљћ§ћћњћњћћ§§ћћ§§ћњњљќњћћљљћўњ§§œчхєў§шмжкЦТЩШЩЩЫЫзкчсщштцђѓїѓѕєєёухзааЯднщььсЭЪкчсдТЧЮЯгжщэёщцшутнаменмжжнлмаЧЯхнсццтшцхшцмчьэшьптрхх€ЁчккпкхмзднххпЭЫжлмнзьэсзйкЯпЯЏЖВМЦЪжррмпскжтштедзсыышяреньцшщюцтхэьычыццстмчыыщцспЩерщынЦМТЕЗЋЋБЖЗИШЩЦЯеЮеЩЫЧЪкбабЪУШзюјјўяѓююьюёщпйкыяэюылцхцэьпртщуюыуЯУЁЋОМЏКЎЎНнМЗФТУЛЃЃМыунзШЋЅ•œЂЄКЪшёюьёььэьчцучч€.ыьюѓьяшмззпычнлзкчбйукИККЗФШТЧЕЅŠАЭцшьыьФТЖ•ЊКШямньєёђэуймгЩШхцшцщђѓђьлдбзтццшэѕыщшяѓњзхднмдЦНИОЕцхѓёѓяяљђкчђћўўѓєящшёяячяьтрьёђђєьычѓьяююёђухущкеучэѓхцныщрЦЧЫУШпдакндущуплпющшэящжЯзрщшцпсчьмхшёёѕђѓцтыютщяэтлдкнлтхцэчюшпклупесжЭЫжЯджемзкэщьюєёщпйлтнсспштаЮЮмыѓютмзкелюёужеулййжгдщѓїђюуяэчлнлтпбЪЮФйпхэытлуунпдгЪакьщщцтндхщщьяђььюырчхеЫЯщЧзсёщшёяєїјяёюукабЮеждбЫлэђщхрлсузЭШОЫшчщяїяэсттжрупшяютпгЯбЮЪзuЦьёчћўннўўђухуйрутппулнбляыцчрлхшнбтпьщёюёцяьыэцручткышшщщжпгзTeƒkdjƒvtžЪыїљўёхёђєєѓыщэщчыцпЯЭЩнщуаЮТехулЧШЯйххтьѓѓѕєїђьшэюьэшPojGJWPIG]kk}ЛљўўћяўўїюьшщшёудбкЪЪгклрммйнйЮШЫЩЪЯкнчуюёэёэющяїѕї\aa`\Y^Q[`O[TPpбйљўѕчхьщпсплрђђёђѕѕђьёёыбаййгсыщшьюьщшытыѕюяхыU^WZTZSSET[Qc]NO@Ugu”ШщэѓўјљцлжеаеушщэтшяѓьцуцьёяѓьёўжЌФОЇЯяѓщхёJLHOHLBMFG@EIQVgNTQMGJ`xЃкѓўѕюззршэѓђёысяёьушєѕєьїєѕђдВБкуЭсчыюѓIOJM@H9F>@BGMPSWATYv^LIZbxŽŸЫўўв§єєѓїїєтщтяѕїёїєѓєѓэёюмЪмщѕѕјECJ@BF4NELAINPWYUUэ`UO?S]QU^gu~˜ЎпўўњўўКњёбЮщюэђщуцщяєэєѕђѓѕяёєј>MMYFICGFM@HSOOVLSQbh^`SOTOT‚…eZBUpzŽБЩЦУМШйѓўўКїєятмршѕѕїѕѕюэщхJJPJEFOZTGHc…xM5WZd\YPicqLTMPVYTUP\S^OUYEO}jGFZ?:9C7B.@EOYOIJQSFOFPOP;?0)911:LP?BI:F7BFLBFEFJHIOQFEEPN]TMY^\\ab\TWOTQIEILGPPZgdd``ZTWQSUTU4!8899BA:FBHMJHHAULHF@CHFGCIJNUTVUMYTOBCBOISQJIVWZQZ[LNQVbb\чЦА—œ}HNC40$&3@GAOIJNHBMQOJIPTYSHIJQ^ge\PWVTPOY\WVQVHTW\WLMU[`TZўўПњсТ™m?##%2>ALM@INCNMJW]VVJNLLTWgZPTS[Y[Y]a]WSOVOSSUOZMMTQљћјњј§ўўПљнЉBE<--@>GJMIIHIPMFBCJEBCGJQ:LHTTPTUSQTOI[V]UQVWTJFGј§љљњњїњјћ§ўўП§д‚GSLL>FF@EICGILMGPQH>T^SQTVJ\QSVQMWOTSNONOMљњї§јњј§їњјљїњ§ўўЩыЩS>:(#;58A.4<5NdrИжИНйЭМЁМЭеглмЯгЫЩОТСБЈЉРНБ™‚…Ѕ™‚˜ШКЌЈЉЏМОТЧЫЧЩаюѕAMGGHHOI\V;37AEG>B?>U?.P:-@YoœŸ‹›žЧщјжмшєычЯЫймзебкаУЛЛЧЫОЖЏЃЅОУББЌЏЃЃДД<379879AA775@BG;<:%<1-;7PZ`•Œ—ЏбусёяьйеншртццххтгФЪЭТЫжуРЦйлЦЖФб>::€†?758,5@;4,3>A@@452:8:LQTVVQ[VqбсКЛЉЦєэпяшйяхлФлзЪдьмИž‰˜‡bbW0%+08-)15&+3*#3>HEFA07A*-A@AF(7Q[VPH37C@?>5:AFMHJJE9!Nr[GJ^mA7BCFZTGEPTJIJGAE4,Pbn[8759A?;BCBA@?948?CBGF@;4;9GMTHHPVQVYbYPLGF;HJHGFLMPMI@I.44CaHNA5@G73$.)&1>;3:4-+7?CGB?59:73(47NG3.B;<>EC<@Vb[\SMJE;2945+82208@77B€s;?7EIILA3-07248;7943:24;?:9C;3;(5@B;?4JONIIA>;>9.-*01&$&;7*8;1:;:037.098700+5<488>3?258@4),394A><@>;?B<>;40;@4:7CA:<4-79?A8,2?B>9>A@C@58;>7.2-:;3%(*0048:33??801*B>.;15?5:2*88@@979542:?>8+.19-7-28.)SUNLF>8@::CEBFCEF@C9C:>?>303;:0&%023+57;5,%,2,143;:07589.(%.9857@AAB9>57040:<3?983A<,717*105:834312>9>2&$)+5HBC>шШМ|w…\*,&%4:3+298))*.)497:1-<:0љјїљљїњ§ћћ§§ў§јзб’^T.<9<473їѕѓєєѓљєѕєђѕљ§§ЫўпЋtQrFIadO7ISMNP+H\84"17.55..4$)()**")-+&2%.јјљїїѕњѕѕїХљјѕєѓєѕѕћ§§ћя‘`H>NEgL#>4,38<<:8;EEAA78?FCGEH9;24<;WagžЇОсцчћўїчыјћѓђёяэюььшшццяыљуёњўёзхёE>:?:9>>€M;<>>:4.48BHNLEAAB:>B44BEFJ.Nmg+A;;5-2:9?>EGE7>9?EFBAEHEQNGPSI?"U~bHVkmB:HCQYZMJWZQPOMJN55#Thv^1<;:?@@EEFHIBE<9>BCFMHAA;AGUNNAU\PQ\cb[YQGGILIHJMMNNBCJ939LbON?8817899>HG@B<;@IMPOQMNQ`ˆ{BJG??CPPMNQLCBBCG45:@ACCHJC::92,25;NMCAA?€}>@>AA9<89<<@FBEIB#(i}T:A@@E[d``[NCA9;?<;9>9@C?C?@5JQMNHF<<;?>:9::74>C<:7ACF>?B@HEE@;48?A:;8>BAA@BBE?CABB;9<@@HILHEBAGHGE><;HC?4:?A>>?95535:<:@CH?<5499:324AIFBHC>;:@AJJEB?979:B;-**,).39?;:4;HCGIHA?:;<:8:9;?<99A@A52YH@QC@>A>@>?@8oWOA595498;7?E?:.783;7>AE@?>>;@@><8.-97828987.(SNML@:A@<8;@@;>A?A><9;99Ж847732347957594:557:;9:?@><8;?<5314>B@4…t`ZmaWE@5>85,3947?>?73)5-)023134:<<9„15,.8;94554:E?>хУКŽx|q|‰W)+(+8-1.0.1(+$**078551?@ACC::4-1171((,07?;33:@><>499ћў§юцмЫчюжйЮЌ|S>N0)-;+"B+,5;<?O];GQC*29@C.4213+&%,14,&+$$(-*%)&1780113љјїїўѕїїјќѕјћўўЯ§пЌxYqJN[[J;VWTUVHhS3;;8@V2)94.39@7-2>5BјјљљўјљљјљјљЭјћ§ўўђуШВœg{zG9O;UqZ9ACI:BAZYNVPcYVB89QTTVSNSFLJOOZZQWN[[c^jgkcmwЃ—V`ZUS\iciddZ^[V^`JHQYZV][[^UNMMJVLVhbQZYYNSWVTYUWMOOPL[Y]]\S5F˜jQWQ[Vnƒ{xkabPYPTSSOJMJNOUPGLJU\VZZ€aM]adUTPSNNQMQTPNONMa[^QUTSJUBQ[VZSIgab`hW\S[QSMNNGFFMJHLJSVUWWMUQ]PUJGITNSHIJSTVQYQYMNQYQIJNGPQZZYWUT[[]UMMJY\SSPU[YQQPPONMTH[NeYZOQHMMOOQJMTQQPISSQQ^a[YVZSPZ\]b`UYWV^TYUTYWUNOETYUOQTTNOPLINNFGMQ^ZSTVYMJNZUZHWSVZY\[UNZQ\YPSJLPPOMOTVTE5jSV]SLWUQJQNWQˆkhQVOLJENUTQTUIQLGPTQVOZUWW‹OPQWNUSTQPMMVPMPITHC.?a\OLLBLPIUBMLQSSOLIUOFFNFIGMCCFFMGIHI>G>>E5<9H483>:ECH>LLHLONH;@?GHHEFFE?CQOAEGOSMLTMOўўП§єчгѓњтшнИŽ\Q]B13CJ:89?@BE7<7:3BCIHДАЗФЦРНдйзЭТЗММРШОШзбЧЭдЧЫчющѓчюјљїшЦРсыУБДСЊ…qiTA5&9C<]eLEJOWUАЦЦЧдыыЫааООЉЎНьпИЈ”•™ЗВФщшРЈ–vƒ‡odUF[j`VOOULEY\E;;?>CGFHFGJPLNКФЖЧзНЌ™ЗууТЇ”žЄ„PUG?GSSIN[\YOMEo|ƒŽpINS]\J;;@@?4*+23?-РŸ‚rgQWPTZ[OQOQMHOSLMON:4VzbYM42YVTSIGPJJHNJPIG?4:;:92<5VTZ]WNMbI05AAE>GE@MLEOA?7NN>EE?:GEISLOPUTPPLFBEA<97B<>?AIB;CHBA?:B:395AJ27?9>B:@GLOM@C?@9?FF@::?;>CEHLONTGHGG?;975;<927253.;>8.7FABGA85?A>BGAC;>@AAЉ>;?@EFCC9:;B73AA@<5;C@AC977-%+.+",15:EJG@7GGCIB.*354;8;A3A5:@A??;A?<>EBGE4@?F@>3#%5:33К2.-,,01&$,,7B:8<5C>74**$2)0?E?24-AE:8<8AC@:<9?>E>?BB0,424499:-,*&&€ѕ"-*)18F?:88:>?<@>@@<++9EJC:92;B2.38BB;959:9.8@@:244)#&,7:24:7-(0",-&&00)*(,.1??B>>BI@<727AA2*+71"(.*((%-3,5,57B;3;.*!+,0.4<?<;5--,2);:A?FJF<.;B79;04325*&((%,59>4>FBC??7511-03"*091:AA::€3<7<78@FE><<4;3>BFCA??B;B7,()"&1*.31,)00>BEB$&+(#8BC88)),<<@CG;2;77@8:18497758>>5.)8)2??5,,$()&*#+)(("+A9.:*(),+,-0**.10858:;;1,5;>8--+9<;:?B{M"5M<&,2;14%.#%>@?>,2<;?Nh<422929:4*0B9;:@B?@@:A:<<25053.022;^J)3ZuF*;LJJ?98HFEGIC@:B<74**)4OdNVU:33JOW^H8:*05?:Jt–Иш§§љљ95.17@CB<@GI@B?:9?C>>EE534).@I?FbY\gA;k}WB:Ck‡Šp]SiƒŸДЮэ§§ћђэыюѓ,*.97&779BF;,<9##)+3,8>CFZpŽЌТКЯрдч§щрєљьШЪєў§§іѕшћ§§ћћѓєђђяцJ7?LLE9FebOM?9>d‰’Даыѓўў§§ыљїљћљїїєєљїѕїёяђђїјѕђђћѓѕђѓђђюѓє]kn|‰АЮЧЁКсђћ§§ѓњїїћїјїђѓєѓѓєєѓљєѓѕѓѓђєєќѕєєѓѓчєѓѓђђёёэњњ§§ћћ§љњњћ§њїјјєєўѕєєюѕјђѕјѕѕјїљјѓђђѓєїѕѕјїјїїњњѕїїќѕєѕєєћ§љјѕѓѓёѕїїѕѕєєїјєѓєѓђєєѓўђѓѓћђёёђѓѓєщђѓђѓѓєєїјњјѕїїјїѓђєїљљїїќњјѕєєѕчјѕїѓѓєєѓєєѓєїєђѓѓєєјѕїѕѕєєњѕєєїїєєѕнєѕѕїїјјѕїїљѕѕљїѕєєѓєѕѕєѕѕїјѕїјѕѕєѕєєіїѕјљїїѕјїєєьѓєјљјїљїњћњјјїїљјѕѓѕѕјєѓєѕљїјѕѕ§јѕєєћѕїљљѕѕъїљљїљѕєєїєѕѕљїїљѕїїљѕєєёѕѓєїєѕљїњѕѓєєѕїїњѕљљѕѕєє№ѕјїїѕєљѕѕєјїљїљїїїјњїјјѕљѕїїјњјњњљїїѕѕћєѕѕїљљсѕїїњјљњїїљјјљѕїїјњљѕєѕїјѕєєѕљїѕѕїћѕєїїљљќїјњїїќѕїїѕѕїўњїїѕњєїјјћјјљїѕїњљљѕѕєљѕљїљјєѕѕјєїњњјїљїїўљїїѕїїњјљљѕјјћјјњњїѕѕєѕѕўїѕѕѓєѕєїїђїїѕєѓёѕѕњѓєѕїїѕѕ§єѕїїђљѕїљїїѓїњјїѕђїїјїјіћ§љјњјјњљїїјњсјњњїљјњљїњљљћљјњјњњјњїљїљїјјѕѕєєћїѕѕљјјћьљћњ§§ћљњњћљћјїљїјїњћћћљјїљјјїїјњїљјњњјјўљїїќјїєјјѓїњјјїљїѕѕєїєїї§љјєєѕїољїљѕїјјљњјјїљїїњѕљљњљљјњњїѕєїњјјњїїѕїњъѕїѕѕєёѕљљјѕјјїјљљјњїљѕѕћљћћјїїёјїљљњјњјїїљїјњїїљјыњїјїјїљјљєѕїѓїїєѕєєѕїїѕїљїљїђјњњїѕєѕєєѕїљѕљљљїјјњјњљљјмњјјїїљїњћљњњјљїѕїїјњїљѕѕљїљѕѕљјљїѕјѕѕ№їјњјњїїњјњјјњїїјУюљєѓяюьщхттхьёюшшщщхснртчыщчшщшцщэёѓєђюёёяёюѓђєѕѓѕѕѓѕђэььыьышш’цшсуэцгхцтмлмучшщьщчусцутсттпкзлмчјђѓѕѕїђѓёёяёђєёёяяююьшщьыьющычштйдйезнсуутучююёющытцшспрчшщункгцуьёёяяюэшэщююЗьыьэяююёёяяьяяэюмпФЗШаднтцыыљїјѕцйцлмклкллуутхсцчуучэёюяёьщыьыэьяяьюёёђѓёёхђююёхњхЫежмнпхцюмЩЯаКРЩаЯаддшйпхцуппмрнхыьээяёђёюяёяёёШђюяѓяѓёяюььээчхслжжзйнрмзйлпмжЯЯЭЭгабдзсхчычцчьюэщэёёєѓєє€ŒѕєѓђяђёюэђёяяюээьюёшшььўчнмннзбеклнлкеаЯадйлмрушщььяэыщььэюяѓєєјїѕєѓѓёычшщьюьюэьэяђхухухнгдеддбжкЯапсштсзйхшчщшыщшчыьэыыщыюёяѓєєѕєёяяюяычшюёёўэёёэєлйнстьыннѕћслнрђьээЌщххсснпмлнсцчьэьычэяяєѓѓёёэююяѓёяэююяяёяэююяшщщчщььышсмййлсцуэнЭеуцтрнсрннсуыщыььыьяяќђыщььіёђђѓѓёёђёююэыюяшшщяшчтрнпсуѓышунмппБстртцччцтутсррхцххцюяэыыььюэяёђёяёѓѓёђёђѓяянсхутутсцѓѕњўўјљшцхцурпнтчьяэщычтнпхх€ТцшэюђђяычшщььюђєєђѓђђѓєђёюттчшшщыююяєёяяњуЫлжпспрппчщщшчутсцччјююёђєєђѓяяьщшьяёђєѕѓюэщыышштмыяцшѓяышѕшннпйЭЯюэццттнртрснкммцщюѓюёѓєѕєєђяёѓёёђёѓђѓёђяюцчшщыЮНСЋЁОсццснезмтцнућњэщчмнпущшутсрчыьюяёѓѓўѕѓѓмєђёђёёѓѓёяёьццчушьзЦБЄЮђїтсплпкпуѕяёёюьцхущщышыщыщцпэђяёё§ѓђєєЪѓђєѓђёєѓёєёющьщьэюђьязЯеШЫстрпсспаёёђёэюыёюяьюыщчхщюяѓѓжђяђѓєђёђёєѓѕѓѓєєѕђђѓёѓѕїѕїцѓкнлннтхущцщээђђйщеЮхщяяёьыышшюёѓјїѓђѕёѓєђёяюёђђєєѓѓђєѓѕѕїљЪчхсрпмжйтчщыэьюээдЫйлйяёяььыэыыьэюѓяѓєђѕѕєѓёёююђєѕѓѓѕѓѓєўѕјјЦплрнрпуцщээщтмуыћюнгпюћюэщяэююяяюяђюяыяђђѓѓёђђєѕєѕїѕєєѕѕїјјЭхтуухщьэяэшнппцщыьыхуушыьыыьюђяђђяюэыэьяђєѓєѕєѕїјїјјЩљјїјјїїјјљјннтцщыыьюыхплпртсуцстцчцшчшыёђѓєѕђѓэььюђєѕѕїїчљњјљјїїјїјїѕћ§ўФОнхцсннсххншчьыэььштхыышптщэђѓєјјєђђяђѕїјїїјјљљіјїєѕєєѕїїўўцюрЪЪжыщщунлхщьэьэяёёяьээјўўтяэяјїєєѕјјєѕїїљјљљјјњљљњјјљјћўўуыМpbSбуѕснмнсчщыщыьяююэюэыэђђѓђѕѓєѕїѕїѕѕєѕїјїїмјїљїљўўћуЦН’[UQJG.ёсплмкзцььыущыээьююјьяьщщэяђђћєѕїїєєњћ§ў§§ўўщћј§чппДˆdHIFуцшшьььяэыццхщыючѓѓђшхёяь§ўў§њћўў€ВюЫЦуэФЗЖСЊ•Šuo\G8(??C^kPIJOSWрпхшыўћщьюушппїўћйаВЎЉЈТНбёёШЌ—|Ž‘ziVG^ui\TPZOI`cLGIHJLLEJMQTцырьєпШНеўўмТЏЕВ—d^SPOaaPT`jdSQJvƒ‰ŽqOSYagL8FIMMHHCB@AA?:>987:@+сКžƒxhj^ijg^^V[TOW`OUU€‰?;a}n]Q98^WWVESVOQUOLJNJC@?@B>;;@A>?CEGB>a`d[ST]iP:AFMFFSMPQSSJNB9ACPYPPVTU[VJFGF?;>A><;CGA<@EHJB<<:>:7;:>;?9QJIHFBFGGJHBHAB?EHFABCCхFGB?@A>;<@FA<4?GA@?A<5345522,€у2:BCILFCMEIE<8:9>@><@BG9@BGB?9ABC@CFI@?EABAEC7.149;8995,144,$$*(#7CBC>30C>>2*0+3302.:@@<8AEFA<8>BB>;;?>BEFBC>3*534399:40+*-,$%,,.1;AC@92<>?@;??@;873ILI@:?@;0054584.-:;1&%)-*,4791,**.,.5?@:@:;4958479CBB<>9;8::B>:<88€Ÿ3135579<81*&42-.3.5400-+0;GE>47;?<9474379;;8:8A>CCB@<@:9798<@CFCEHBA>;?B?8022:7<@ACCE?>7:<:3849<>91+-%*2;<>?@?IB@>?798<:11.58;9:<5M?528A@:;<3,1-2><8<>:;CA974078?@4,-17;??B<833,+-0112180)*((!,537;-25545CB<8257?A?E@<57@>99:38:?@33179<:?B7724-,!"()&.+#!)*+,3<;7,*-*047AC<10.37:92849:9,+270"$-).-0310**$%,,03.*43&940-13393..2598:<>@72018722.0,2783>n?0J9$,421(3,.#)?;BA48@@Tj4-.339>@774,54;@CA;5338858253355415TG+4UoE37NFLGGC9@\]IE5+;h•Клѕ2188:;<BAA>::?<@BB>>;>7:<-%%.LaSQW7:4CJVbE5;.,4@>;>7;;557873:8*1"(BF@Ha]\hA8p‚WI:Hh‹oZUn„ŸИаюўўЭѕюђѕѕ**04:-B;:;A1013+*#*4028C@Su‘БЧОдтйэ§ьрѕўэЪЫђ§ўўќїцљўў§њјєєїцA0;IPG>IoiPIE;@c‚”›Жжэё§ћўўЯ§љћўћљљјјћњјєєѓєѓљњјєѕєѕєїѕєѓєєѕїbku‚ˆƒИдЭЈОпьљўўєљњњљњљѕјїѕѕїїјѕєѕѕїїєѕѕїћљјїїѕѕѕїјѕєєѓђщњ§ўўјћ§ўў§ћњїї§љјїїюјїљјїјјїљјїѕєѕѕїѕјјјљїљљњљњљљјїщўћњјѕєѕїјљљјјѕїѕїїјїѕѕїїѕєѕїѕљєѕїїјљњњљўїѕѕћјљјјљљњњјїѕїјј§їјѕѕїћѕїѕїѕѕїћјљјјїїіјїїѕѕїљјљјјљїіјљљјњљјљјїїјіљїјѕїјјїјїїіѕјїјљљјїѕїїяјњљјљљћљњњљљјїјїјјјїѕїјјљїјј§їјїї§јљјјѕљјјљјјїїѕїјјљјљ№јљљїїјјїѕїјјћљјїїўјљљўњјјїћјїљљјјїћљјљјљљјњљљїїјјљљљњљњјљљјјўљјјљ§њћљљъјњњјњљљњљјјїјљїјїїјјљјјљјљј§љњљљјљјўљњњћљњљљјјїјќљјїјјљќњљјљљўјљљјљўњјјњљјќњљљјјќљјјљљќјїѕјјїўјљљћњљјјљљљјљљјљљњњ§љјљљњ§ћљњњћљњљњњљјљљњљўњљљљјњљјљљћћыњљњљњњљљјљјљїїјјїѕјљјјњтћњћњ§ћ§њћљњњћњњљјљњљљњћњћћњљјњњїљњњљјњљљњњўјљљќњћћњњѓћљњњљјљљјјѕјљљўјїїјљђјљјјљњњћљњњљјљљјїњћћњњљљјљљњљќјїјљљљњјѕјјїјјєїјїїљњћћњљљјјьћњњљљћњљјјљњљњљљјљњљљјњїљћњљїљјњјј§љњљљћјїјјљљјљјљјљўњљљјђљјњјљјљљњњљњљћћњъљњњљљјљљћћњљњјљјљљњљљјјўљјјњњјљјїјјњљњљњњљљ§њљњњљї€žшяшяытдгЪУШгбпутегЭУООЗСгпкебгбЧЦЮмщщцзгекджЯлцыэёђєюшсбЧЭбзздЮжЭЫекЫАЦЭКБВШЭйгЫШЭСЖРЫЩЦЮЯЧСБЌЖКФёэѕєёшщэѓяёыыюђяэщцлмкЯЩкмаЭФФШФИЋАЛВОУЦНКФасцяшуШРУЯУИНТЫЭСББ€иЭШЭдушцхеЫЦажнйегЮЭЯбдлснтухрршхМФœŽ˜ЃЖМРЫЩкёьэшЫОЫНОШОИЛУЯзЭУЭкйаСЫкнусЮбгФЦблулпуцхыэышщьхйртшмыЫЄЎБВИРЦгпЏЁЇЂŠ–™ЃЉЏВЋАТЯЧМККЗИУШЯнхьшысхцндзплйуцштчлйзеббЫзгЭУНЗЌЅЌЎЖМЗЏЗРЛžЃЁ›žЉВЕЋЏИеммаЪЯжЭЪбптхшёёѓэёюььэцнлкбмчюхзЭЮгрЫжпрѕЭЕУЭЫРБЎКШЦНКВЈžЈЏДКЦФЪЪбемзумйгсмпссшэѓјїѕэрейЩЮбкйлкеадлюФЪЯгЪЧЖБЅЊЁŸЇЎЄЊКОЫЧФБДЧЦШЯртлЭЧЭрлзаддрмхэїѕјѓьунлеЯбЪгксххтчьяЛОНУЩзаЦЗрцРНЗИзрццснбЪЫСИИКИЛЗМЫнмгайзепхыёюрнрршцшугамчюндмцшьЪдЮабмссаЧОЛЖРУШЯмОЄВЫШСКУТНЛНМШЦджлеЯЭдуьнжЯЮЮжкчьытмлмрцстмнспархрмзЧФЦМЛЩйаНЗБЕДВДУОИЛЭзаРЗАРЛЕИУОСЪклпмжелбдпээьыюьёэщцхцчщыРРУЮЧУФМТцьљў§щюйннЪКОТТЧЪЯбзлдЪРЛЗФдЪНЪжхутхсЩФШЮЯзтчуюёђьђђѓьчЧЦЩаТЪнужтцшэђјЭЊЖНЛРЩОВКШгммеФОЮУОдяцсцыэяютлЮдбгЭзуюыючыхуплпрОМЭйЯйзненцйУТНЖЌЏаЯФШдФОТНЛКВБДЧзнйзьэяюяьыыэхышщэыьюёєымЮЫЩЧЧࣘ›„u”УдШИЕЖЖДЖНИФыѓмжЩОБМТЦФЛВЕНЯдкррхэёёяёэыцхщцушнйныхлбЮадЮеЈ•}xВруЯОЛИЖИОШрлчхмбЮЦЦУЮлрйездЧЛжрчхсхыяшурчььчущээыннелбЯалнтЯЯЌЇЎЅЃКЖЕМЧЛДЄхщёьшлсттнумжЫУЩЯецэђыпмучђёюшцыяяююээєёэтрыёяѓђїжхКРФВУмпгЧнтллхттЭЗЇЦзкзгЩЧЪйртчђяёютмшэяшпжмхццурцэђюяяƒѓїєєїњзЮФНМЗИЦЮЮгтпййтгКЃЎБВетцуйбйраЫеьёёэюяѓяђчкЭлччьяёшцышьюєѕљјњљљЛМУОЗУМЩкзадЪЧЯшядЖЏУмњьщхЫлшытпчэхчпэщёђёэысхуёѕѓююѓєяя‡ѕљњљњјљЦЪЩЪЭамщусЮУЗФЯзцшгЯЪУЯкждЯекнюёычтЯЪеллхщыђёёѓњљјѕјѕєїјїњјњљћљљбРИЯЫамчнпЯМОЦСРЮЭОЧКЕЧзйгзссшщьыьыщкзнцюђёѕѓєјљјљљїњљљѕћњњјўў’Ё™МлмЮУЦЮЭЧЛМЫбхсрЮУММРШШСЛЩзтэђяѓяублщђєѕєјєљјћїљјїїљјњєљ§ўўљымžВЫмйЦМЖЗЯтркземррлгЮюўўїтехяђѓєѕљєђяєјљјћљћљњњћљјњљўўиїЮŸueŸФтеЭОЕУйыхммпйыююпежцѓѕѓяьђёѓэёѓјјљњјјїљјњњћўЮюаЩЁnhe`YBнЦЦФИЛЖетрЭагтйтчщэцчыкпкгкхшёяѓѓѕѕїєѕ§ўўгѕщчЦ™uOTdSJV[ceбЯЮзаеешщыскЯзЫкмзтюьлзхруњўћўў€ јзЮюјЮССЯИЈ‹„nSG:QUTrb\YinvЦбенсўњруцЫгСФзўїгУЋЏЇЅЦСй§ўаМЋЂЈ|j]w‰vqegkedptZOWQd^\\b^d[aikЭлЭуянРЌЫўўлЛЇЎВ›iib[`om\gqxtid`ŽžЊ„benw}^NT]]^WVQTQTTSPHNMHTSHнИž’ƒknhkzwthdeb`ipheheQGw˜‰odHJvnpq]cij`ecb`aaVMNSVP[P[NOQZY\UOup{{kgmƒ^PQU]ZVc^^ca^cW[ObjWZWSMTYhncdikktib`ZZ€]POUVYVV\YSO[b^Y\Q^YLNT\^VVUYVc\bhmg^UWPT\\]YWSPNTZb\`acedc\cYYQSPLLTSUSNLQNQNTNYaWW[Y[TYZ`Q[T\SSVYd]TWU\WV]Z]WYVY\UYTVLWbTTUQOMHLIOIIGBHHMTc^^]Ydda]QTLPNYMOOVN[YVSVOWTYVY[\ZZUVU[WVOOIAHPOIBICMBHFGAAHIIPOPYSUNV[YOLNPVVIQOQQTUW[WVIEGHSGHSNJN@FEA?LAJAJQZUSOT\NYYTUTZPJGQgb\UMUQOQLT[[MYGOFGLGWUOLIEACA@@JLIECECIAJMSQVUYYPNMVTSULMIUTOHOV\SUOSNOIIQYTPPNOEGJIPIJIJGLCME>@IdTOLHOQ\TOBLHMISPPMJOQTTLMMPHIOPG?>ENNQUIH7B;@8?:?B8B@:8221ABEM5QI>PEGPVYSIMFF€ЫPVTVJJQTUPEIONLLOICIENMHOHF9?<42100*:-?<9,>8;;FFEYAIJCHVYQWOLAJMYU^[WJJLNPMLCCHMH>AEE;7,->8:@B@825F78(4?L@J*5>IH>NJCHBEOHNIIMHAFMLTOMFFGLIECBAACFBBMrJ7VH.FA@AH3ASTdWHJYQV`zJI@GIPMLC@CSEGENNLG@FACEFAAГ>CCA?EL^J8;pv\@M[^`][OFUjucZC5M{ЁЪуўHEBGGLMNJPIQITILFNMLGJNLEGAEFF>2,7E`pbjgJJю]ckxY@NA;ISLZƒАгјўўЧ?>HHGOJLJHHEAQSa‡ЈСйауэшѕўїюўўјкжўўўђўўрћјѕјѕјљћ^IOgbVMbzzd[PJJw•ЊЌУтј§ўўў§ўў§ћк§ўћ§јљјњ§ўћјљјїљїљјњјјїњt……•˜œЊЭчрИбыўўг§ўўњўњљјњљљјњјњјњљћљљјњїљїљјњљћјњїљїњјљѕјїљљў ўёћўљњјњљћјњјћљћљљюћљњњљїјљљјњљћљћњћњњўћњњі§љћљњјњјњўўцћљћљњћ§њћљ§јњљњјњљљјњјњјњљљќїљљјјўїљљёїњјљљјљњјћњћњћњњѓљјљљћњ§њ§њ§њћћыњ§јћљћљљјљїњјњјњїњјњљљфњјљљ§љћјњјњљњјњјњљћљћљћљћњ§љљй§њ§њ§њ§љњњ§њћљћљћљћљњљћљњљњјњјњјњјњјћљњњюљћјњјњјњјњњћњћљ§њћћкњ§њћћњљћљњљњљ§њћљћљћљњјњљ§њ§љћљњњ§њњљњњпјљљњњ§њћњ§њ§љњјћјњјњљ§ћћљ§њњљ§њ§њњэћљњјњјњљћњњљћњћљњљњњя§њ§ћћњћљљњ§њ§њ§њћћњхљ§љћљћљћљћњ§њ§њ§њ§ћўћћњ§њћњњц§њћћ§љњљ§љћњњљњњћљћњ§ћўњ§њњњ§ћћњ§њњъ§њ§љћљњњ§ћ§њ§њћћўњћћ§ћћё§њ§ћњњћљћљћњњљњњѓљћљћљћљћњўћћњњў§њњУљћњ§њ§ћћњњћўћўћўћћњћћўљћњ§њћљћљћљћћ§њћњ§љњљњљћљћњњљњњ§њ§љћљ§њњц§њ§њ§њ§њ§њ§§ўњўњћћ§њ§ћўћ§ћћяўћў§ўћћњћњ§њ§ћћњћћѓ§њћћ§њћ§§ћ§њћћпњћћ§њ§њ§љћљћњ§ћ§ћћњўћўћўћ§ћ§ћ§§ў§§§ћњ§§§ћ§њњю§ћ§ћ§ћ§ћ§њўњћћўљћњњўўћћѓњћњ§њ§њћћўћўћћїњ§њ§љћњћњњўљњњѕљћњ§њ§њ§љ§ћћјўњ§њ§ћ§њњРўћўњћњћљњћўћўњ§њ§њ§љўћ§њњћћњћњћљњњћњ§љћљћњўћ§њўњ§љћљ§ћ§ћ§њћћњњ§ћћ§њ§њњђћ§§њ§њўћўћўњћњњћчњ§њ§љћјћљ§њ§њћљ§њ§њ§њ§њ§њњў§ћћћњљћљћћѕњ§њ§љњљњћўћћ§ќўћўћћў§њњћ№§њћћњњћњ§ћћњ§љћњњјћљњњ§њћљљўњћћњїћњћћўњ§њћ ~џ§ˆџ7џˆ%џˆџўˆўˆџџўˆ џˆџўˆˆќˆџˆџўˆ#џўˆ$џўˆ1ˆќˆˆє€‚СРТРаэЮЗИУТЫйллйЮЭШКТЧЦИЊŸЊЖЕЉЕЪгбСОТТФУУТЯмпмлкемсжЏ•žœžЁЌбрЩОЩДВИУЯмкаЮжеЯСЮегУФЫЫОИДЗБЊВТФФЪедбЪТШЪОНИКРЮнлдЭЮагдраУРЛЩкьмЅaVЦРР€ѓЯуцраЩЩбадпжУНРУШОДЋžЋЮькЮСЦТИЉЌЦпеЦМЛЛКИРНУЦНМКМДТЫЪТБŸ~Q34клнсухчулаЧРФЪгЫРБЏЖДРЩЪдуїэтЫКЊЊЈДЧлшщтдЧНУФЫжрйЧНОМгЮЊtZA,4WгмлйжмтжТЎЏФЯЭШНФймгбзжнмрцштЩЌЌМЧШЭжрщшсдЧРЦдйллЯОКСдЪv*&3@;9:?лмссмпркЦКЕФТАВШзтхзЯЫЫЯЯЫЭЫМœ‰’ЏЭдЭЮкнйлжЧНШЫЫТНКЛЛШЪЇZ2)54#$",усдФУЭйлйЭРОЗЗРЧЭЭЮЩгЫУРСалшСЂИЧжыхнйзЮШЩаЮЯзпчсллщЮЗž^+0*8?0,)+жЯЧРНФгппдЭЪРРМОЛБЎЋМЭЯОЛЯсркаЪЯжмзгЫЩШТУЭднтнпдещюгЏh(*,893($ннЫЫШаршэхзСЊЂЉЕИТЭзсуусреежкпмлхткЯЯЧЫЩШетцхсркьѓй•V:)&(0(*&+ЦРСРЧглрсгУИЎЏУутчыяцжЮТССЦдкмутхупбЪРЩзкзтшшщюїїТq92"€Ъ$"#%$ШНТОЖСдллзмэбНЯжгбмшьшпЦСбмлйксщцтщщсмдбглцччхёюЌndYE#)+"ШЛЕЖЊЏЖЛЫцыьышхзаЯалзджрэёѓёяюшыыьшчмезмнрщѓѓпЉzI-3%+1,0,,S`9 %РЉЇЏУгЮдсыыслрсучтнптнхэђёэццыэцмбклйкщуэїюЗ{gA:23<,)-++!):,%3УгЯЩЪбпшьяђэяєяэььяююььыьцтстцыюыцррыєїлЎ…VB8+$%,1,##"ЪЮЭЦЧабмчщюээьыыэыцхчххэђюэцутсыыёњљју˜`313.?>>((-5317.($"$%,ЫбптрздлцэьыхцщщхцхсхычьэыьэяэёёђшЭЇŽ`MTH?.24.-++1559@C(2:<(*ыыссхцщьяяьцппцщщшстчыюььюђяїћјэЧ•[9;FEB@-+)0#&%,20FF@*&&*15эщээђулпщяэшссццщцщщю€…яѕї§љљтЅeC>9530;><7+30($(25;>A?:1"%!*55ѓящьюэцухээыщюєьряјєћћљјѕцкКwB?WQH;8<7799,(&-,0114852;-))"-"(#ыюђѕєяыюљњ§§ћѓпЗƒ‚x]VjŠ…^LA5FMC@<954<727+.5,%(%%311$&$##.*$%-4ѕњљћљћћјкРЄŒu^VF40,?O\WIA,AJIGFGI??>I3&!"*%$%$%224ћщпгЇtbU:7Pc]QNQVQMEFHQHL?AFC<83CB3,% "!&&)(!SB9ЄbFNPOFB;@dwzZ@FB@HBEACF?@,9?44.7<<5)""!*#&(-"*)#$-ST.!1:\G>M^\\Y?.+9HNC@BAA88;?IHE<55”.02+4231*137301++4-%3)(*847<>>*5FJJ>17;BH?@<+$(*-(**+8!&)7;4:;93*.%%!!""-243HEBAHEA>7722€Х1,2:@LI?3-14<<4,40044+-!&(*#&,..0"#$2ETc‡SMGC@24,.-++02.344$2003&+,1*(2A?B551+0;?>>A;4"#*hЁДУUNGIA;013()&,-0-213&"$+2-+*341..79?;:?A>?0&&-$$%$>žШИЗ%30B9;<98$&)$,44%%€#$+:3,*29;799<8;>>9:4%$(0I‰Лд3&+,<;>11,"%$)3+)22;2*3920B29?FG@8,..09)+#!+PЋ?;0>8940*21+*0.13+&--!$%7??7>@C::€Э>;32-  !""0ƒб>559AJB1-&1)0-%*01,-5;572;8?>AACC?52-*.#-4))#$#+,\У5.3739492!,71124++70-BFC@IGF@>??412-:5) #&##&9FTZ3048AA:81*+,0228)!4.1;;>GFBCGEJG:;GQA55+(€ž#,0$)?N92@a245@CB:0+0,+-45<,4>545:857>:E:;;C?C74;J[uЯИW!(+%13:7**1)#758CA4:9?7101399?73-)),$0+2877AC;7?QZQ3CeТяјєл‡5.8250.:F<11#..:F3>?IJJ?B;3<:>;?9@:7001)0+).(5PVOTTNWEO–дцыэпутБB*958()31851+23+&.7;@??AC?@>EAC;A?A5:NC9<@4"!>a^HaЉЪдЯЫрыурсмкуЪi-8$%+0+*,-4-)0.PO;1;:<:>:@C88EA8);#)83?LSgУљћьюљ§ђэыюуцчцзЫьљЊJ-,21,33:12-,*+&$,>B@>5B0+8ESSAEa‡Ž–ЃАЧпэёћћ§ћћјјђюышчссухрлтљћДM((B>9,3++#)+%,",B77+-54FrЌЩпѕїђї§§§ѕёђђОѓёђђёёѓёэьшххщыьэљњЋJ0.?C5+20-!,25FGG7:JbqŽМшћјцьѓѓёєѓђѓѓёёђѓѓђђѓѓєўёєєўюѓѓ§нЩi@871)%53,*,-**C‘Фрѕ§ћ§§љьсыяђѓєєћѓђђѓєєўѓєєўђѓѓЪђѓѓђћћбn7!"0%)213*4924."!*.%#&4:B<+їєјєѕєѕєђёђєєўїєєѓјђєѓѓєєѓєєвяєєѕѕєєѓєє§ћЉMG<*"#*,-"$"((78"ёђѓѓђђяюуьэђѓѓєєшїѕѕљњљјѕѓєїєєёєїѓєїѓїєєѕѕћьŠEML;30)-,80"#(4?J@ђђєёђёющщшёѓѕєѕѕѕїљѕѕјѕїѕёєѕѕє§ѓєѓѓљнŠ<:?4-!%%*21ёѕїїљѕѓяюыёѓѕїїѕѕјєѕјјљїљїїќљјїєєѓгѕћє‡GHF^T8)&%-489::јѕљїїјяёяяђѓєєјѕѕєїѕѕєїїјєѕїїјѕјѕѕєѓлјћЫeGEZhE4%"$!#+.;74јљјїїѕєђђѓѓєѕєѕѕєїјїљїєѕїїѕѕєнњ§юƒF@[Y+1-.2""*1LTNCњњїѕєїѓёёђѓѓєєљѕєєїѓёђђѓќєјєѕѕїўјєєчђњјмqYaaJ0.2;0.%#+2%@јѕѕїјѓёяяёѓѓєєѕє§ѓєѕѕєќѓєєѕѕємљћШO5PS7<:><2*! #-5E8Fѕњњјѕѓёэьђєѕєѕѕћїєѕїѕѕ§єјѕѕєќђєѓєєиѓє§ћсnFC<771:3+7)@@FGљїѕєєїђёѓїѕїњњљїїѕїѕўєѕѕєўёєєнѓ§§М<2PM<40*,$,+).392AMјїљѕѕїѓђђјјїїѓљјєѕѕєѕјѕїїѕїїЫєїјѕѕєѓєѓєїѓїљО8,OF@>4+*(388:<>E;7ѕљїјјѕѓѓєєјѕјѕєѕјѕїїѓѕјѕјѕїїѕїљљїѕѕєшї§ћК2&>9::7:,2*23..-,IAїїїѕђёяђєѕљїїљіѕїїєѓѓєєѓєєѕѓєїїѕѕјјѕєѓѓнћљНJMcC;:43-:>:32JїѕїѕјїёюяєѕјїїіјћјїѕєїљљѕѕѓШєѓєѓѓ§љЗ("4#")%-"#(234;F4Hѕњїњљѕєђђєѕѕњїїљїљѕѕєїјѕѕѓєїѕѕўїѕѕєѓщћ§СAїїёљѕѓёђєѕєѕїјњњљїїяјљљјѕљѕѕјїїѕѕјѕєѕѕжј§§СLOb;))!)+4+.V\aikVѕѕїїјѕђёђєѕїњјјњјњїїжѕњљљћћљњїљљјњјїѕѕєѓѓњљ–;>>7>3)"!)"&**!%7SуњцьюћьээђхёѓѓёђёююэыьщчхтхцчщьёэёююяююђѓбђёѓђђямШмкйзныјэпсцчщшьэяюёяёёѕђѓёђяяюющшусхщэююёёээюэюящьыюяюёђђОёяьљяшшыјўўјСxiюяяёёюђёєѓђэюёяююьыэыьщшерђ§ђяяыштцьяэђяьччццрхчшщшшюрхщузРЇT@EђѓѓђђѓђђуьэяяюьэьыщцэююяѓљўїѓђщчххчыяѓѓхђяющыщэюяэщшыїѓС~gH2%(A^яђєєѓёьыщшшыээюђѓёёя§ѓђєєюѓўђууцчююђєѓђђёьыээыьщшцуыјц„45AAC@BFђєђёёѓюэящэщщшшыёђѓѓяеэёђёяуЭСЫрђђѓѓёюђяююээюяющщшцђшБ\38;<7-59ѓёё§яюяяТюёэьшщьышчььяяььюђ§цбцёјўѓђяюяюяюяёѓѕѓёђяњьтЖk85??<;228єѓёюэюяяћђяэьццЫхчхчщььюђёђєђёѓђђёѓёёюэьэяѓєѓѕѓєѕ§ўёУp1(29:A@92ђюђяёёђŸяьчупучюёѓяяюяяюёёѓѕѓѕїєђѓёюэыэђђѓєѕєєђўўшЂ^A0.30.570-"яюэьыюђёяяэшшцшњђѓєѓєєёьчыяяђєєїѕєѓѓяяюэёѓѓЯљўўЫt;9*1.*+--&$0ююьыььэьяѓєћѓьяэьюёђѓђэёђяёѓѕїѕѕјєѓђээюёђђсѕљўїВma`B %+%&1)$!&ыццтшщшщяёєєѓѕђёђѕѓѓђєѕїјјвїѕїѕєѓѓђѓёяёђѕњўўшЖzJ252+;94113cmA$-утучщыђёђєєПїѕѕєѓѓїѕѓєѓєїѕєїїѕѕєѓѓёёђѓјјўўћМ‚hH<@9?;314-))!-G45;ющщчщэяёѓѓєјїїѕўєѕѕјїѕєѓђѓєѕѕїзѕћўўхЛ‹cI>405453870-("+,.,8юяёёяюяёюёђєєѕєѓЧѕїїјєєѕѓѕѓєј§ўўьЃd95;3AEA7535:<584.-).747:єєѓѓєѓѓђёёѓєѕєѕѕ§єѓѕѕЯјїїѕѕїїјћћ§ѓеАaSSP@3:9:9958BNJ@A.7715457-0EMMA024.74:@?љјїїєєѓєѕєћѓєѓєѕѕ§ї§ўўгыЌmE9>7.99?B;70277:;542,1+,4>јљњњљїїєѕєєјљўњєњўїўўиысМ}IFYWE70,.8895455A@:57<8.8:42.0030314.#$".-1010:<ј§ўў€оњтУЊ{dWF;21AWdYJ<4>LIFFLE@99J4*,1312.().*&#"%)&$&!7:2ўюцзА}kZ<>ZihWOTVZGLNQSSJCAELG?@FG;8* $"!%%#%)"#2-,OJEЊeNT[TQI:Ck}~aAFCFGIFGIGB:@>>?514?><*-)$*(%&"(#,*&)&5TU?+20WL@Pe`b`C32:NV@ACFFE>AGCCA>>;7759>95.&)+7<90)13-*-*-%#%)(.EFAJT287NUUQB<;:;<9;Zi{YPJLE<232.1%)8932:94:8721.00.07@G;85.787::8748$#"7{ЖзюUULEC::544.&%,042983(*59*!+-.0-3:FFB>>8ф%++"(% $""#FЈснп)-;E@@€ž<44-&+17.+121((0240.2479::;<7:?:.:(,.$!")%(2\Ёхњ95-8;A?;2*)%"(1,%*,78542027194AH@;10134--)!*!%01)5]Џе><;7E@8101-)032-32*.3213),7@@929GHA7&034853204598:<7.45<98:>A@;:750*.+!$#$.9I1")283,(-5eа>?98?A?2*13.220*+315>?A?@AB@A><<7028985%))+-,&&%)%+39:9?J`eЄ2;?@@C;45<51.44,,533217997?98;CPVL;EN\C5?;.)!)$(2:AFZF?Aj72:?BC?7144023.$-.1301++232;:<8>?CE>5BS]~ЊпЦ],-9*+&-120257:>4@B<@;>9>97+&.0-532+%)*(,*1,-.5<@C5BS^V7>j˜Шїўўї›C>C7492-17987-39J?AAB?@>@>EAA>;:97JJ@CG;.,CgeNiАксухєћєёёэё§чt7?77112,158:@;8429?;20.5+:5>PTcЩї§щяўўљјѕѕѓёёяьс§ўВH33224-+-5753.1-.221.4;5.$,?PQ>Ba‰ŒžЈЗЭрююљўўњЮљјѕѓђђяюяюььўўЗJ,05(-+.447871.?>1(088GpАЧкёђяјўўё§јѓєєѕєєѓєєѕєєѓѓђияёўўЈH,.99:4&+&(,-3((№*$$)*),5EGI:ѕїїјјћїєђєїїўѕїїѕќїѕјї їјїйјїїўўЋNCA+&0*#(&*$+5A?>4ѓєѕѕєєђьыщёєѕѕїїэѕјјљљјїјїїѕїїјїѕїїѕѕїјўы‡GQM<"+.)+,,)(.;LVFїєєјѓёычяѓѕјјѕљјљјїјљјјљјјїѕлўњ‹A??8-3(+--2)879јјљљјјѕёыюѓѕјљљјјјљјїїјљјљљќјїѕїїѕкњў§‰G@JdQ9$"$289>A@9:њјњљљјїєєѕѕїјјїјљјљљјљљјјїн§ўь‚EH^S(*<45.5215PSNJњљљјљѕѕѓѓєѕѕїїјјїїѕѕєѓѕѕїўљјјљїчѕ§ўтr[`iE7?;173+)$-,.(BїјјїїѕѓёђѓѕѕїїјїјїќјїїјјїўоЪL8UT8;?:010+*)2@CEMњљљњјѕѓёѓєїјљјјљїјљљњјјїїјјїќѕїѕїїмјїўўсnFIB;;?;51*2009E?OTјљјїїѕєђѕѕјљљўјљљјљќњјљјјїўјїїўщУ>7QHB:7:1.189;CG8IQїљјјѕћєѕїїљљ§јїјјјљјїјљљњљљјвїѕїѕѕўўС82UJC>><.,5>?BEFCE:јјљњњјѕёѓјїјїјљјїјљљѓјїјїјљљњљљјљјјїшѕўўЛ.);EBA<<94:99?974HFљљїјѕѓёєїјјљљјљ§їјїїѕѕїѕѕјјїїјїѕѕўђНMMiHCCB:1-7U€ŒгезехћржбежтыяяыстмзгммдЧКСЮЫЧгсчхжгзсйлртыђющычыяючМЅДБАККрђсжнЧадмнщцтрхшумцщхлпсйаЯЭЩУРЫкййрцхцззснегЩгзхыёщцуэыцюрдлмцяўяМwnпддлцђяяцртхх€‹ьшлзмккЫЩЦЗФсљьтлгЭЭУЦкэцкаЭаЯЦЧЩЭгаЮбЯЩбнлеРЕ‹aFSюђёёђѓѓєьунеенстеЩТЪЯзкзуїўѕятЫФРРФкыєђяцржзйрцьщлЯедцмК‚nT;.2GjушщэыьщшбУЩжухплсэьшущюяюђєїїтЩЦгппуэђєѓютзадтшшщнЪЫгьсŽ::JTTPSVшёюѓюыююмЯЫнбЧШкшєёюхппуутруЫЋЊЦцшспыыщышжбйхсегЯЪЫкмВk<>CCLM?IюѓхкйсцыцслжгадзпсмлупйгйтьњЮДШлы§ёящчтмлхтуыяёѓьыїтЯАrAAJOGLE?JычнкЯйуюьцммгдЮЮЯЧНЛЩкнаЫуюђюшчыщыычмзедкпуюяєёьђўўшОx;4CLGHGO;3ээрууыяѓђёчгТКОШЮпуьэяэяььГюёюыяяєыупллмпцяєєѕяюўўэЉeO>304@кжждЮйтыщююљцзчцпрьѓѓŒынкцыэщыёѓёїѕєюьртхьяѓѓїўўЛ‚ukN,9*4AAC25;кеаЫРФЩгсђѕљѓєёёшыэђыцыѓѕњјњїјєљѓѕєѓьщщюяѓљўўёМŠ]ABB;TIG@ACuU3>еФУЭечцьюѕѕ€ƒђѓяёёђьяяюёєѕѕєѕѕљѓђэшщючшѕѓ§ўўЮ{TINNIPLIA<::0@NEEMртжбзхьѕѓїѕљїјїјїїєјѕїѓєѓєђюяєїјїѕёѓјўўяТ—mWFA?CEH?L1B?72399E?G>ртрнрхцьёѕѕљїљїїюѕђёёѓєјїљєєэђѓјѕ§ўўˆѓЉtBECELSIN?FFJIMBC:@0GBC?Fчыюђяьуыђїѕѕєєѓѓєєёѓђїїњјљєјїћ§ўўїмИ™tejbSELJGIENHHPS\WGCJIJ@>EIїїђїђєєѕїєѓєюѓђјёђёєѕїѕїєјїљўўЦкЉnOS^`]TBCEEC>C?>2:?AFїњљћљљє§ўўЬђФ‘™kh}ŸЂvaWG[kWTTWMLIOJHMJIGJAF?A@AB5795>E?<3HCMљўў€’ыЫВ™”ŽwjVL<@Pkxk^UFM^eZ`^[VOH^G;7@??:@;4:931(*,0.<754IJMўўђчЛŠviGId~|obcpnZ\`^gibUOY``[PUYLG9*<;+@>:77.45.,,%&0.?E;:95:1713?4834:Gg`MAEAn]OivvupVEBMcgTWZWWЧ\YYb^UQOPJJMILJLEJLIOOP@?0355LLTJS`AHNbgjecTLPOQQ€ХY`dcTQSQ^bTWMJFCOLN;F?LF@?JGJAA@@<:17-&-55+3GNCEWaZW^ZWSPOJNGJJIJV`Y[JFUW]VSG@BHIHE@GECBC9>BHB81,4!+,)(53&4MWiz”pga`VPMMHE;FOHGNQMLNLLNQSGFC@AIUYUVOUGHOF>AA2@-(,&%.47)9,@ЖЩнee]`PNNPHEF@?ALBNMGCFAIGNEAOMGMNS[VSTSFJH;*+1-0)01-0170*VАйЧЧ?CHTPSYSFF>FBBCAIAE>:>BIGFMLJQWMPOLMIIEIB8&44341&.)%-<,44<`›бшNMLHPYUTHG488AA7+;>pжOPLNNQSLC@AHHEJ;GEFHMPPNNHOSLNHHFCBPNVF55A."%14957.<29;BCFFG]prЕSTWPUSQFGILBFC?;BB8B;;BOGLFJMFIPLEOYae]NOZbPCGI?98344;>@ALTjVOTwIOMVZVQPQFEACGH<8A3??4;B:;CONLIHNVWNHN[m‡БсЫg273><9<17CAEIBG?CEAAB>BACB<3;@B;Cbg`jgckS[ЇцєїїюѕљНN8FINLI9@>EBC832:H\VFMo–ЂЏЛШжыјњўўћљшєѓёяяёюыэўўРV?COOM@E89IAAьGB4;BNC93;>N|Игч§ўћўўњјХљјѕњјјљјєјєѕѓїєѕєўўАP;?LJIAC7@C@CFJZWcGMZzˆЇађўўюєњћјњїљїљјјљјзљїљїњјњјњјљїљїљїўўеrNHMGA4:;CFLCEB:C\ЯэўўЧ§єьѕѕјїњјњїњјљјњјњїњјњјњјљїљїљїљїљљўўр{>5AA@<;:AHGMPMMZpўўрњљїїєёяѕїљјћљћјњјњјћњњљћјњјњјљљјјўѕјјйѕўўЭm`^FGG:A99?ICIL`YN§ћјњљљїљѓяэєѕљїњљљїћјљїљјњљњњ€=љћјњјљїљїљїўў?;3:@IJI@BBIHJSYP?їњјњјљїњїїєїїљїљїљњћњљљњљњјћњљљћљћљњјљїљјјѕўўЈSHE:>B@>?FAE?JJOLBљћњћљћљњѕђїљјћљћљћјњјњљњїћїњјћјњљћљњјњјњјљјўўЕhnL4:8+:709;?HJYS@јњљћљћљњјљѕњјњјњјњјљїљјљјњјњјњјњјљјњљћјњјњјўўЛYWT>8A8?*9>>3ALSUAїјїљѕјѕєэђєјїљњњјњљћљћњћљњјњјњјњјњјњїњјњљћљўў˜TdaSAC:C@:;@:?Lac]їјјњјїєєяєїљљћљћљњњ§љћљ§љњљћљљЦњјњјњјњјљїљїўў–PNONGC":277F>43FHIјћњ§њћїјёєїљљ§њћљћљћљљњ§њњј§њ§љњљњјјмљїљїљњўў˜UV]zmM190?AFFHLPIJљћњ§њћљїѕѕєљјћљћљћњћљћњњљќ§њћљљћћљћљњњцїљћўкrYWmZI:;98;ABHIMCFћњњ§љћјјТљїњљћљћљћљњјњјњјњљњњ§љљњњљћљћјњјњўўј–YYuq97LB8BHWSZ[њ§љњјњѕљїјљ§ћћњњћљћљћњњљћћљћљњњЯјњјњјњјњўўЯPFeaWMPHBE@AJNSSOZaљ§њћљњљјљћљ§њ§љњљћљљКћљћњ§њ§њ§љ§јљљћјњїњјљўўЫH>a]ZZJELGBIVVYWYMBљњњћћљїљѕћљћљћљћљћњ§њћљћљћњњм§љњњћљћљћљњјњўўФ@3GTSQ[IICIGNNQSE\Wњњљяїјјњљњљњњ§њ§њњљњјјњХјљјњјћљћљљјљїљўўЮZ[uZWNNHGBEIOPPUOCaњ§њ§јњїљїњљљњ§њњћ§њ§љћњњљйћљћљћљћјљљњјњїљўўШ5-F>>EE@3C+SgUYњ§њ§њћљїјњљћљ§ћћњњЦ§њћћ§ћ§њћљћњ§њћљћљћљћљћўўЮ`h{P79A0A9>AJiru…zeљћњњљћљјјњљњћћћњћњ§њњћњ§ћ§ћћњњћфњ§љњјљўўЂOVUFH@87:928H@@78MLmЦэрУЦЭЦВЏМмсмйзкпчуьь㍘ЇЖУТШЧНЄ‰™ЇЋМКБЏЗТЧШелздЭЪЦУОФбзезJJ4,1\ЃЭпсЩЩдЯЮейдзЮЧЦЮглЯЗ••’ЇОЦФСБ—’ž›ЃДННЦзучхцлйкмсупззмнпсAB@9F[wЌезФУЧЭжаЯЮЩЩФТТОЏœ˜Є›ЊаргЯйзБŸЊЄЋЩТСМФРЪжмлнррнзгзййцьёHL@7ErМжФРЧЦЮбЫОСЭШЖЊЋЎЗДВЕЗНШгдЪТЕЗИИФСТЧЪЫЫгезлттнкпхцчэђщчууPbP@>BJcxВйтзйЭОВОУЗЈЂЊИОЛЗЗДЎЖТРНЗЖЖДРгйддзнхшхпннмдепщюяёяэщчэ%,I>5aЁРФЭЮкчыыхунпнкЭНЖЗЖВЎЛШУТТФШШТТСЭдбб€аЯзгЫЫерчцрмзекк2583.CQIF‰дѓшуццрнтустркзЮЦОРФбзкеЩОТЪбджгбЫЭЭЫЩЪЯййбйпцьэшмзклй270GQG”нььтцьщштлзгжЮЯггдклкеЦКНЧЯЮдлпммлйгЭйхухуруурчьютннеб5>58FCQSwпѓцыы€ЅьэцпзЯЭЫабгЯЮбаебаУСШЯЯжнтшручхсстццхцркйстсдамшэ*79vСэяпндЪРУФЫЪЩФЩгнрхтлжестмбйзЮЭТБЄЋЕИИДИДЋЈЉВВЕТТВЌЋЈЄЈЃЎОЪНЋœE~УЭЛУТНКЗОЫжпхтреззЁмнйЯгдЯаЭбЯЫСБЈžœЈЈЊЖАЋЋФмрйаЛДЌЋЏЕКАЋЄЏЈЂœ?‹айзкссйбйущшыэыьыщцмаШабЪМЛФРБЉЌЛСМЖЎЈЈЉЏБЈЌФУТЛЖББ€ПЛШЯеЫРЩхщдNŽпчхцшчцтнршхмЯЩЯгжаФМЖУЦНЏДКЖЏЋЕЪддЭЯРВВМИВЉЏЛЛВЎЊЊЏЩджтццхчтзZТЮзнттрчщшцйЪОМЦШРИДММАЄАУЫзбОМЩмзЫггСДЛЦЧФНИСРИБИЦжкдмцсдЪОНОgЈуээщхцшщчсебОЗДВДЋВЗККБЏОЪШЦЧНЋЇЕККСЕЏБФжЭЦЫЯккЮСЩббЋЫРКОЖЋЎБНQ—хєхтссмздгагЯдаОБВМОРШШЛКЕАЅЂŸЂЌЇЊЕЛОДЛЪжмнучххзЦУЧЩШЧСЖЃžВМЗНiУјюнммйжеаЫЫ‰ЩЧРФЪЭйдШУММЕБАЏАЕБЎЊЕУСФЭйлгЭаЮЫЭЯУМКВНЧШМКНЛСзЯаYЏчхстуррухшхчхЮЧЭЯалтсснзеЯЦБДОЧЫеЭЭЪЛИЖКМИЛРТССЗЗКЗШкжСИЕЕМЩЭг|лїэщщ€yхутмкЮФЦТЫЯСНЧЧОИЛЧЯаУИМкхнйЯЭЦАЌЋЊЉЃЅЏВАЕФейЪЪЫЯбШФЩЪазд’нїючцхнйкмлжЯЫШбмегйбОЌЂЁЗумзЮдлйЮгзгОЕЛФУЗЖЧгФООРЩЫЫЮЮбгжЭЯдЪЦјљнлзЮбглзЪРССУШбЮЮЧРЖЌžžЄКбзЧФЪЯбеЫЕАКЩШЛЈЉРбЯОЖКОЭЯжзЧКНЫжклг›яёшурзбблжЯжгЩОЛУЫЮЫЪСКИЖЉСЭЮЮШдйзЫСАЉВЧегТЛМУСШЫОЖРОФЖ—™ЌЕЩЮбvЧцмннжаеаббЮеЮФРЧЦРРИББДДМЧаШИИЮйЮНЉЃЌМУШЪЦТШУМЧФКВЉ›ˆ’‘’ЄЉ}…лынтхтнкгРУЩЫЧЧЩЮЪУСКЕНЗЏЅ›—Ё‹Š™™œžЅВШЭлцеУШгШНЗЛДЎЁœ’‘‹Ž›ЎЅ’ьбРУмѓмдцющцчыюѓђєяёђђњѓёёяюёёїѓєѓђёёэчххїшыэыьююьыыуэыьччхщээьpccx‡‰гўэьэыьэыюђѓєєнїѕѕєђђьыюяяюёяэытмсуттруцщыщьюыююьыыэюаэGGFSWxмўљщхцычхьэђѓёяёѓѓѕ§§ѕрЮдцяььычаСЦдмуцуцююёОђёђяёёяяёёTN@2:iАтћјьыыээьюђёђёёђёїёнЯЭСОйщыюьчЭУЪажптхшьяёѓёѓђёђѓѓѕъїJIIGNe‹ШєёчыэюэюэыэьччцфбгЮЯТмї§ээыїпЭзбзяыыэььэяѓѓєєўѓєєЩїєјј5IQN@L‚Ъѓыцыяюэчшыыцнлнутртусрчєщчхщчтусцщюёяђяюяђѓѓўѕїїаљјјњ\eVGELVmŒЭ§ћэюьуухчулкрхшхуухучщыхуцччшщэёѓєєвѓѕђђёђђѓѕїїјљїјјї$)23HSEQЈмчюяэщшщыччшыьычцыююєэюыяюэююёѓєѕѕєбђёяђѓєєѕјїєёѕѓѕѓ&H]ec\a–шўњээюьшчщьэьычшшэюяђёёјяюёёђѓєѕѕѓњёђѓђѓѕѕђЊёђяяђѓ@Zh\ptdUzТѓѓщчцттцчшщшьыяэюђђюёяюђђяђяёяђѓѕѕєєѓѓѕѓѕјјѕїєђюьюёѓёѓ83-$8V\OV~ФммхщччјщьщьђѓёяяэђїѕєєђѕѓѓђђёђёђёёєѕѕїЦѕєѕєђѓђёюяђёђAFMQVVAcСмйстучюёёћѓђѓєђђфёѓєђѓѓђёяяёяѓђєѕїїѕєєѓђѓёђѕєєхѓѕђѕ833?JNOB2hЫщьтхшюёяёђёѕѕщђэьэьщшыэёюёюяьэьээёђёѓѓёчѓєђїѕєђѓѓёS˜пщцѓїыщэюяёяэыэщыщююЭђѓѕѕјѕјѕѕїѓђяюышчяѓяьыцххшыыуурллнрпнпмSЭёѓёюыццщььюэюяЭѓїѕѕїєїєїїѕѕћьзгыьюьюэышунуцььыурпптюѓььђј”жрщюэюэыыєшщщюёьяђђѓѓѕѕўѓєєђиёэьшрсхѕэсТКзсусучыыцккжЦнїяяээяТеуяшщьщщ€‘эяёёѓёєѓєѕєєѓѓєђѓяэььяээьчтпрмжЮЧгзмхцхшцшхгЧлйёћюэчхшцчсмтцчыяѓѓєѓђѓђђѓєѓѓєѓєѕєђёэяююьщэьшуцтнбджймсухыюђѓєјщѓщыщшууцщцтртцьюђѓѕѓѓюшхщяђѓђѓђѓђђёёяэычххшччтслгекмсмчьээсщыышщщыьююяїяччыьёєєѕєѓђьшчьюѓєє§ѓђююжьэьчстщьэыутркглрујљэяѓђющчыэьюёђѓѓєєлчёяѓѓѕєёыюёюёёђэющцщыщьунпсцшыыкщтнймрклгюёђёэыьэёђђёѓѓєѕјў§ёђёяёѓѕєѕѓѓёкђёющхутхшщшщччсннсчыьышхрнплнньэяёююђѕѕѕєѕєѕѓўўђѓяююёќѓёюыыњяђёьцррѓтуухцччуснуыээЛщцсухцшшщэђѓѕєѕѕјїѕїєѕєѕєїўћяьщщэяюёэщщшщююэщцпллйлрхутуцуршыээьщхсшыыэњюђѓѓѕїїюѕљјѕєѕѓТыёђёюэюяюээчшчыяюяэщупрнушьычусррпсуххКчучяёяђєєѕѓђѓєѕїїѕєёёѓѓђˆрўўђёюэьыыьхтцхчэщщьыщшыьээщххчщшщыщшьюёяѓѓђѓѓєпђѕђєєѓђяэююяђ‹шѓыээђяяьюэщуснхыьээяёїэышщшшщьююјяђєѓѕѕѓєєѓкєѓѓєєѕѓёёыьыяяrЩчлщьэьэыььщупнущыыщыэёёюьрэюэыыэюёђѓѓёєѕїєђѓёђѓѓєѓђђѓђђюёяяаxбљѓышцрхшщхуххшщыэьыээяююёяђђєѓђёђђѓѓєђёюёєєђђєєНѓѕђђяёёяёёђёэiТєэышхушчхтцщьююяэююёёђяюяёђѓђѓяђђѓѓђѓяюшщяёђѓёёэюяюяяСђёѓёяюыёZЏышчутцшыышыююэяяюяяюээяёѓєѓѓяюяэёђёэяьющыэяяюяэшцщыьюююьёяьююёiСўўщхтуыэююЎэююђёђђёёэщьэёёђёюэыэяёёђѓёёчухшьюьычхшьюяюёѓяштчьюJŒяєьцууыьяёёюэяђѕїѕѕєёэюэюђёюяяѓиєѕєѓђюшхущщююэшучщьэююяђёѓюэяY•чјњышчшюђђоёђяэююђѓђєѓяяёёяяѓђёяёяяёююэыыэюэююЙьшыщчщыыччхсхшьGƒбуусцшээяэыыэыцччыяёёђђѓѓєїђяююёђђѓѓђђѓёэыыьэяђюяюэьэььышхушыѓ>dБйЮЭнхчыщшчьююєыяяђёёюььэюээюьэёяяёёюђюыэыщыюёёэьыыкьшшююэюяя>gЎТЧахшььщучшюяюэыььюђююэыьяяјђёёьыэяььфыччшььяыхттптхцщщьыю?рўєшьёёпђюээюяяэщчщщёяёяёээюяьююэьыщыьящшшЛщэюэыцтснлмтщыьыьAhНэєэюяёѕѕѓђђяюђёяюђюёђяющьээяяюэюыунсыяэьышшцшцссрряхщххыющычш@hЪѕяяёёєэююэьыыьэюђѓѓёэЮяёююээщцурхьюышхннмлкйзпстутуцщщьщнеFхўўэьычхтчыююИяёёѓѓђѓђѓєѓяяђёючссуччщхтсрчщыышцхтуцуссцшччулJ‰лясщщчххщэђєѕїѕїѓѓєђђёѓёёѕяѓяьшччппсрртнпсцщьюэщщххушщшчуутцйЭI˜юјєёяяђЊєїѕєєѓїѕєєѓёюяэьышцссцьэьчцтрппнстсчхуцупсщьэьююя§ўїVœэўїёђёђёѕѕѓѓюшцьяэышшьщщшщщыьшыяяёыыщцтсттцщчхтпммхыяђѓєєрђёяažпяёђђёєђѓђяящхчыщчтхччцуучяяЬыээяђюьыщчыьыьюьщцхцщэёѓёёђэшшщыpНњўћєѕєєѓѓђѓююэюэцшшсыщцхцшьыцттупрцхцччщыёѓђєђђёяэььччуцнмрну[ЁѕўѓѓѕєєѓёёяьэьщщыњюяьыыццщтрпснтсцышщьэяёєђѓѓёёяээюшшуспрцщщrЫўўєѓђђѓёѓђѓёђяящђёђѓяђььыщчшщшцщюэяёэюяяІђёьщццшьяэьщшцэћяѓ^Нљљѕїєєѕєїєѓђёђђяяёђёёяђѓёяьышюёюьяяээшцустчыэщцшщщыыьэяыыюёяєѕ~шўћѕєѕѓѓЄєѓёюэюяяёђяяющыэяёђяёюёђёђѓюэхсртстцшццшьэёюђёяюёэяюяђ™ёўїђёёюёђѓяээюёѓёђёяэыуйамљёёђёђёєёёыынэыщшщыщыцущьяђђєєёяѓђяєєЇўўѓёяѓяђяёёхяэыэюёэьщцтслашюэёюёєєѓююыььфчхшыээюэыэюђђяющщшэђђєŸјўјєёёпѓёђѓяяюышчьэюыышчшпэђѓюёяђёёьышщыычьыьюяюэяяьяѓыжлчпчюѓѕкњѓѓєђћёюѓэяяПэьщчхчшьышшщщшчѓїёщммпчьюёяђёэыьщыышцтнЫзйЭпузФŒёўїѓєїѕђььщэёяээььдыщыщшслгЭгжЩЦйнппмрђёяћѓыыььщччышркйбдбглннзТЧЏЊдюЫУйкбЩЦЮчяяцпхыэящууцчшнсюяюхймсснмейлпнлзкждаазпждЫЪСЧайй€]xmdzŠЧёрлжсчшхшшхьющьюёяючпбдйрхшчщтйжеЧСФШШЧЩЯадгжкзждЯЭаежжбдSOOeh…жўюзгйжЫТЮщёьырщюёяљћтНЋДЫжддмдЖЋБЛЪЯФЩдегсшюцрнмлебжцщшцaVO:BrЖйыёлнсунтрццсйрушяуЩВЉЈœКЯжжлЧЌЂААДФЫЩецэяёђяччцэюёыыщяюєUWQU`k‡РтцбгйсутйпмйбааЮРЏАЎАЊРтёмсххСЊКДСнлездгзхьээђюёшчцэюђѕјA\d\HZˆЪчждкзцхпагсмФКОСЦЧФЭЫЭечрйЯаЩЪЩгЯбжппрсстыяђчыюёёђѕїєєђєi|iSPYcuŠЫёѓсхмЯТажЭИДНЫгбЪЩУУа€xЭЩЫТТЩрчхсшэяђёюяььццэђєїјњѕѕєј227;AUZLSžОгжтсйЯгдбЦЭелмжЫЯдстхнпбдйксёёђяѓёѕђёьхутхђєјѕїєѓяѓёя-3Teom`g”рёцлхскЯдглйлйбЪЮечштмсмпсмксыѓђїѓђюэсшснцёёєѓѓэщпкпшыьNqzkr}e[|СпйЮЫЩЩШУЭЫЫЮдрнтсустсзжзнчстрсщёэыььтчсыяђєїђятнжждйхыFG54AacUWtЌУКТУШФЭЯЯйццыышлсьђэшшяэьмгЮжршхыччщяяђёѓђѓююцсррсщьцIMTUQbeod˜мцнзкжЭлшычыэьхщьёёїљњєѕђѓюыуыяєэёяёююёђяђэшлнхёэчушщыMQSYZ]]aGiЏЩНСФЫблучхюяђююіьыыяѓђђюшкк€цюёьэѓђєѓяђюђьтхыюђыьэяяэ0((*#"#,#кЫФЛОСШТЛУЪЭбаШУЧалнппллзгЮадЦЖЖЛЁЊШеЭЪЦКАЄЈЁŒЁВ…8)@1)"(%("#130кдЭЩУФЩФЦШЮежбЩЭдкбЫЫЪЪЧЫбйдЫТНМЗЉЃЋМЧСКЉЁ˜ЃЅ™—v85I:*),,*3781ШУЮЯЩТЫежнртслзЪЧЫОКЛЛ€—МБДЪйзЩЭгаОЏЏДЌЊЎИАЈЋЎИРШЧ;9I1*#$*!+5437аЯдббжмрртйллмлктпезйЫЗДЕЕОФЪбйбЩМКОРЎ——ЁЁŸЇМЯчщЯ{0)&+%1.:@JрчцхлмдЫЉƒˆЊЕМФЛЖФЮажйФЋЄЕВЂ„žТаЮгбЪЧЦОТТНМЧЌžНЗd01:7:+422BC8$4зруреаббЛЋЉВЛЩаЫажФМЮТЏЈЊСОАИгђржТЕАДЖАЇЎЖТОДЛкђщ‚-1&7,01:;F@4ьшрнжЧФЫенрйЭЛЛБ‘˜ˆ‚ЅИЗМЛЦЧЧЫажгжбЦНИЗРдЯШесуцэћєƒ33<099C4<8;?73пЯЋœœЉЌТЫжрЮДТУЖЉЁ˜œЋЖМЦУТФЭктрпеШУЦЯжссхьёэюьѓёзv&,C;?749?AHG<8абНЌЉЅЃЋВЫЮЧйаž™ЁЊЊВИРННФЩЯгЯелзеЯЮдсс€­хуцэђѓэшйРp42;7A5;3<@:48+ЃœžЄЊЄžЃАНЏЅАЌЈЊАЗИЛРОТОЧднжЮЮййжсуцтссцущчючсрєь…+&;>A@?<;4&!)%ž˜œЃЁ˜ЇЕВДЖНЛННЖНеедЯЫЭгзейезлцсрлжнмннтуцкдЭгђєу‚#3>?53:2+!!*-”‘–”’–ЌЗФгаТШЭамнллНтчцсусрнрухцсрмнмпууркЮЮрчЩu3+5153)9>0&*1-ЏŠ„НаЪИОРЛЪзгегкйдпчычхтццс€ЪтсрчэыхжлпплеЪСТЧксЧ|-0433#)##398+ЖДИбеЮЭадЭФРЦЭзрчщыыьыщчьщпежнррцчункжкжнрзЯЧУЯэу;2;;5+#*,*#ЕТЫемйзЭТТЭглртчцэююяюяэшйаецрдбтлкежкебййбжкмщясƒ,&*80%+%)!)*ЕНРЮажнусрпптььыььчшюяюысрнйптлеежгЯжнрйеклмабеЯЫ~!$*%*!,*,%1,-УРТаелххсхцухытнрсцшьчхпкпхштушцкЭакйннпЭУЫЫСТЭРЌo,81(!%.,$##$!хцхлнспцтуыьѓючмйрпдажЩЪггелчьёьыуппннжСФЧШЮаЦбЫЌh-7C??))(хрзжлзйжжрщчцткббдЮМДЛМРЫдккежднрпттаЩФЫекдЯЮЯгЧТS>1)+.:.(#(32)кмлззмкйтпкйлжШЩеЮЫаагййдЯЭЧЛБАИЩймЪООНаейбОКСцюЯ„-*,-.(,04!+70*аЭбммнйждЧанлкЮЯбдЮЫгйгЩКИИДВАЋЎЉЉДКИВМФСЗРЦЮддИЌu-.3,.$"0,-)40екпснеакнснпмеЪЮЮЫЧЦСТЕЕЖЕЗНОУОЗИЗУФИБДНКБМЩШМЄЄЯЈ-#-4,370:>9>"аййбрцьщчхпжеабЭЯегЮТТЯдЧОМСЧЧЪаЭЫебУРЦТКИЛЩЩСВЊТ”79M7+%*,+0125 лккрхчыыунЯУЪЯжжгпреадЯдпкдЮЧЖЗООЭаЩЗБВВ€ИЗУФООЧлк–<;8,0 ,d8$лтхпнццкЩИАБОЫЧЩбаШЩдкдЧСШабШМЎЏВКОКВИЦЧУУЧИИЗКШЪŠ3#:43?IL8%".&#ФЭЯЧТЩЪКЛКУЫЦРФЩФФОФШЪФЕЕМШЧНДЌДОМОКЗБДВВЕЕЋЅ•‘ЮОW;.:1-2)*%1<2&ЫЭЩСИЦЩЗЌЏМгйжЪУОИНСЛМИВЄЎРЭбФЖЖЩЭЫУОЉžЅАТЦЂЈ™ЃЌШˆ71B1><:2$+5?<8ЦаЮКДЖРМЏЂЇЈРШТСЪабаЩЗАЁ—ЉДЗТОЎЅЉЋБЋЄž›ЖазЪВ•œžЅР‰?42+0,-1!!5<;8РИЖЖИЖЖЕВБЎЎБВЎВЛМКЎЋЈЅЁ™ЌАЉБ•|–ЉДЊЎУаддуЫСДВСЦw$5+2.45>48,-ЩФТННОРЕЋДНЕЊЅ˜›žЇЅœЈЊАОТОТЉ…‡•œŸВЯкЮЮбЭЩЎŠ–ЃВла„93?:-*?9874,-1ЫЯЯЩШСЛИЌЉЏЎБЈЄЁЇЏЋЇЉЅЇНЩЫЫбклтхётмццмбаЯУАЋЌШгажŠ.2;25)9B@2::<>ОУСБЅЃЁžЂЅТЪУЛДВИФРСФЖЕЕЖУйрЭЧЗЌРЯЧЭЮЪЪОРМАЕФенчщЉH;J;-3737?HG9ЫкЫЊЂЊНЗЛОНЖБЋВЕДБЊЎЕВЋЂœŽ™Ї—œЂ›ЗЪЧШЮЮЦКФШЧУЧЯпєхœC4+-29;30(8E?;лйСЅ™ŸЈЎЈЄЋЌБЊЉАЕДЎЊЄЉДБЉ™•ŸЌДЗЭдхпйЦКДЕФШЫЩЦЩлјк‘9102:9A<.-4:41ШУВАВЗЛКОСТСЩЧУШЪУМДЈœŸЅЈЂЂЖМОКЛЛ€ЊМЦУЖЖИИЩЯмкпёыЅ;10-9<:1+.2;)2.1+724410-?C;A;:( •”•™™ŸЊЊЋЈŸЇЌЌ€ёЕУдмлмнтхууплйтххутхрмрпсцкЯбеаНДсСF$.:-9;GB84A83‘˜ЅЃЖМНИИКНТЦЧЫбзгейжзлййуыыяёящтспдЯЯгммбблзамчК@9F?1,9<4$+127žДЅЁАФжзжебйлмЯЯмскмнмлжкмстшчышснпмбЩЭдзбаЯЫШЧФУ—Q59444AF930(2ЫдздкрркаЧРЧЮжлзлуумееллзпмдгЯЩФЩйлжТСЫежлжждЧЕБРЛmJ>?75453.:.BIЫазеЯЪШЩУОЛООЗИЦайзгйслеЮЪЩЫЮжаЪЮелжЮЯклаТСЛЕЖЖДЗЊP7,288.30**4<ЧЫглзШСМЖНШЫЭЫШФШЯзежстрЯУОРЩОЖЗЦбкзЫЪЫСЛБЉЊЎЌЈЖТЁL0<.%)10*-,959ФЫбаЦЧгЧМФаЭЯеежккдЫШелндРИЗЛДИЛРЛБЌЖДМРДВЖЈЃœ™ЏО˜E0))*-58;8+71;ЪЯЪЪЯСВДТаесцшчрнйЮЦОКЖЕБЊЉБЏЃŸ›БЁ—ž˜ЛЯЯУЛЗАЈЌЉЏЪЉJ-+(<1-<;0%370кжЫЗЕЖДЗНММООЮмнкбФЛЗДЊЄЈЇЁžˆ‘~uЁЋ™—ДдЩРОЦМАЎННАЭЛS#BF@8395-021*нкЯОЋŸЁЄЈЕСИМУдгШТЕЌЎЏАДМЧдЮМЄЉСййбЩЪабЭРСЌ•‹›ЌЉЗМd1+(7>BH<#)$&0ЯЪЮБЃ™œЈАИФЫайлгЫЦДЋЉЈЈДЧЮдгСОЭйкЯТФЩБ—Š’˜”ˆŠuКбгu31$$,:510,+%7ЭЧЛАЅЈЌТЯжбФЄžЂ‘••ЃЌБКЏЇЌЉЋКЛТЧЧЏ–ЕВ‘‹•””—’›Еещг}9($&#$.7;AMHАЊЈЉЇЋАВТУЪФЪИ•ŒŽ•”ЎТЗЗИЏЋАЌЃЂБМЏЅ‡Š”œЎДЂ’ЃИЮТТБr9@-(,22779GFGА‹‹žЈЅЈДЧЛЇЄЋЋЃЁŸžВВЎЎЅ’Ž™ЂŸБОФЯсммЭЂЋЧшщшлШЮрцЇI<0,22$34;.17,+.0.OhrY14љїїѕїѓёяђёьщэёђюёёђѓѓђђѓђёђѓѓгёьцчэяёяяђыышуцчшў§ЧQ-5>+))5@BPA9їїєєѕѓєёяюяяљюэьяђєѕѕђеєѓёѓѓђёющыэђѓѓяштнкклмрыхЁ<*@@<.():AEE@3єѓђђяяэюэђђёяёяёёєѓєєђёёѓјёэююяёєѓѓЪяьхмлйпєяхЇN7TF;1)-585;:;ёђяяюяюьыыэяёюяяѓђђѓєѓєѓѓєєђээ€ПьчдбхђяэшцтскйеУгпЂ?"FI?3(+.2:>?4ёяяэяююяяђѓђєѓѓёяюяяююяёяюяёѓюэьщцтсцшыцчутрсмдббŽ<2JG<5*.9::<><ђђяђђёяюѓѓїїјїѓєѕёѓюьыщшчыэяёѓђюьыччщщчхтснмуюђјя’74IB81,*9;;@?<ђяяѓєѓѕєєёєѓѓђєѕѓєѕђящшцчьэяёяязьчхцпйеейкйптшљўѕŒ%&;;21+58?ABA@ѕђѓёєєѕєђђќёђєїї€ЧѕєяяююяюэьышыььшытЧОдкжнчяѕёѓїс$;931-1;ACCGAѓѕѕєѓєѓђяюяяѓѓђђѓђёёюёёяёђючсрсчшыыєёѓћљљњѓёяюјћс<.4>73-48@?:7яэпдбтыьёєёячьцурйжкучшщэьюяёёєѓђђяёёђёђѓѓѕјјї§ўсw#2<>417?GMHAB?їїюуррттшыэюјѓнклнсушьээьюёёѓѓЪёђѓђёђѓѓєєѕѕјїљђдv13?;10.;BB?:35срнррссрутххутснучьыэююўёђђЯёђѓѓѕєїїѕєјєјђђѓјўўˆ%#;>5.5?@5-+.4мллкллзмуцшщэьээўѕёёђёЪѓђёёђђѕїїјєѕєєѓѕєѕђђё§ўјŠ&;9.)03>5-.*)йежйкйнтхыяёёєёё§ђѕїї§ѓђѕѕХєїїјљїјєѓђєѓѓђђяёђїўэ4,780&29?8.2.4чЮЪшћєюььёююєѓєђєјѕѕїѕїїѕіїјјѕєїѕјєѓѓ”ёяышшѓјыŽ5254-*%&(0><7#ччщєјђёяэяяёђѓѓєѕјњљњљјјѕѓєѓѕєєѕєђђєѓєђѓђђёээьюўўЃA:B972+$).8552щэяђѓєёђђёяяђєљјњљјјљљыїєєѓђђєѕѕёєѓѓђђѓѕђђєђђшњўў—-,;71*&2139502ыщььђєєфѕєѕїїѕјѕјїјљјљјїјєєѕѓѓєѓђяђєєѓОђѓёђяєѓђŒ*,-,"&-7299212яёёюђђѓѕїїѕјљїїѕєѕєїѕјѕѕїѓѓєїјјїѕїєѓєєѓяѓђяясьяятŠ092%*+8??93-,2їєєїѕѕїєїјїјјєїєѕєѓђяэђёяђђѕєѕцєђяђёяђёюёѓђн…*$**.LLF>2,,њѕєѕєѓѕѕјѕцєѓђѓєёэьюьююёђђёђюђђєїїѓєяяё€ЗьыьѕђэЊ\?1.-4@B827<71ѕѓђѓѕєѕєѓєѕєєђѓѓюёюэяёяяёёяэыщцшьээяышээёюяющэ§ўє”<33:8:?@8:;<>7єѕѕѓѕѓєѓёїєђєѓєђђёёђёёяэьшщьыщшццшщщшышщыщхшыщёрх’8,@:0.<>:29;98єѓѓђѓѓѕѓђѓєѓѓђѓђёђёяёьющшщээёяюяшээрыщыщшшыьхдкўУ8.(3;;<:BIE-ѕђђѕєєѕўѓђђјяёёѓѓђђёёёєђѓяюэяэяђђяюыччЯхыььштзщЌ>:P91-7?77;?BB:яяюыэыээщшыьяюёяьщщэяьшхчшыэююЮэыэюяшшццюьєддздкыЅ?89?CLOLёюьюээщшсррхччщыээХьээщцтрцщщшчхцчцхпйтчьюєпЫждбуЄH1,32>A9:>GJH@ьщщшыэюышчцчшхх§цшццдчумррушщаРжкасушчыюђђ§ђьнпяь*>:1E84;9:?C>>0ѕэчууЙснпрнрхурсшьёяяёяюяьыээѓєяёэыщэюђяыцхыяыцйщРH"889?:ELAB81кгдкмпттсртсттьхьяёђѓђєѓєєѓђѕѓѕѕєѓёёћюёяяёёцђэюёўуU*77:@IGG@A<>8ждйтуээсышщьэьюяєєѕѓєѓєѓєѕѕєїїјљјїѕѓѓёѓѓеёђђёѓѓ§ўбJ?CA>?@FB:878;дуйдмюёёяюёяѓђєђёђїєєѕђєѓѕѕїєѕєѓѕѕёпяђђѓѕєѓђђэчюЏZ9.;4<@IG?8545ѓѕљяёююіяььэяяэёђѓѓјєѓѕѓєѕєѓѓђўѓђђфёєѓѓюэьысэг|H29;<>:885?CJёюёёюФэяэьыщчщыяюёёђђєђёюэяђяьюёёѓѓєѓђёђёющэычцюСW2&:?<@;877<@ьэяяёўяююњяюяюяёёђЩѓёђэщщшшцщьяюэяяюящччххтссчИM3?7;BAэђёёїђыэююяѓєєѓЯяэыююяюыщхччхтхэчллцыёььщтнлйжрєНN1,7>AEJMC@;ABэююньэыщьэђяђђѓєєёяььццуутпспнзЫтйежЮцшштцсмсспмђЮ]33BEBBCG?>;ABђђююьшччтыэщыэёѓђяюышцчшччулОаИЏптгецѕээёщцсхуслєнa,@BGEEЎB;7:7<ђяѕэупнсцыыээђђёђюэшчцщьээњїцдпьћјєьяюыцщчзШУбзЯлйq4(:@HONC;,53@ѓёѓснлтхщяёююяэюыщццхчшыььшшчщэюыёёˆпЯЩбздЭШВРпїяƒ;4&95?ёяьцттчѓэюэьбдбЩЯгкпхуццхцшшщуурсШсйФЪЯгдЮЦУРЭхјўэˆ?.8::7:;3:725>CEAHFуЪЦжлрухццчхусутунмзтшшхнеджкйпрхцц§љўїкжчўў§їыђўўКJ7*528A>;7C+-БОаддкнрмнмуцчщччцуцусйЯЪЮдлрртууссшшэпФЭрюяяјщћю{%188в<;9312@бежзЯдйлнртчыщшчхцччщщэѕпумрцуцчшцхчэьўўьїѓђјўэo(%08AB<<:8AE<šгЫдуэђѕњјњјњљјєѕёђэыыээщунбдййнчкйзтьяыьшлЯлнглћўў?AVLH>BGUTNLMжжйщёїјјљїјљјѕяюыютучщсзерпйтяяѓючжепсс€ŸнкЭЩЮжсѓёс—ATcI75B4W^aONчюђїљјѕѕїјєєѓёэююяяьцмжйгййхщююяуузелрсщпнжйтьэѕхж–?GhVC@HE\]PJGѕјљ§љћљљїѕѓђђѓюёєѕїѕяющюэчццыёяютзаЭЮйххсуцнлснзЮКk7F^\W<>BIJTPIклтытппсчёёђёяьссшкгЪЭгбЩЭмщшннцубУУЧЩЧЪЭЩЛЛУаецр—BAWJA<1:?INPOQчч€†шыюэяяюьээяьюђђяёщрЮЧШЮжммцщчжЭЪЭЯМЉЉЗИЗНарёўц‚)-JIB>;2CY[ZNNмлзчяєєѓюрпттццяѓђшцпбЭзлйзмжЭдззжаЭЁ™ДМЗРбпчучюЪx)H>@AEGMVUVUUэяюђяшцткделдкрщэюсййтшэхулЮИАВЧЩЭгупщѓєюѕыыщшуцеA4AJHCB>LPSWW[ѓєєѕёытузесьэьшудежзазкнадеЫОЪЮенцтхьэшхшячужЪТЯБd89NONG?CGT[`WcяѕѓєюьцлИ›œСЭнсдЫйрььшгСЛЯЫМ™ДерцхпйжлдееЯалСЕЌЮЪo2@HBEжжктуыёєєёёѓєєёяяѓђєєїђяшюёђёѓѓ€HэууыьэёюслпулжкеФ…8CEB1AEMMBBCCC@GLQNHIOLIшцчэыёэхтмшящыхшщхрнхыэсЯЭШЪЩЪЦТУРЧЫЭЩЮбеЭЭемчхЧУ‡>7GCCEALCEGLCNтыюющчпшьээюьцчцнтнкжжЯЮЫЮЯгдйаЮЪЯкнбЫЧЭЯЮЮрлеККшЛ9()A?ABNFJTYU<сщчхюђђѓѓєюыучуруыыцжкуьчпжйжлйсмнццлккаЩЫЭййаШКаЄBCTC9>IMQGQOJ-эююєђѓѓѕяярзнсхччёьщттхцьюшцйЭЦЭЯптмаШЧЭЪЧелажлєєЂMI?83&OŠT;@A9<эђёюэђяэмЮСШайгйсржкхющрзпхреЪСФУЯаЫТЭллдклЮЪЫЩкк>59ABT`iSBIBENкпкеглеЮЪазплжпркжблмпЭЦЦдйжЯЪФЫбЯгзеЯЧШШ€ЄЪСИАЊЃрбcG2EEGHJICEWPMспжгдпсжФЩжушшпйЩЦЦгжаЭШРУкхтлЪЯнчхйаФКЛФйнЗКЏВКеœG<:AAQPFCJMUTUрхргЮЯжЯТЗЗРЯзбгмшхуплЫНДУЩЪаеЩССЩЭЦКБЕЭучмЦЄЎДИеœP@?:?HJJHPQTQQбШУЩЮаЭдЪЧТОСШШ€‘ЫбЫФОСЛАЎЛСФШЂ‘ЇЋЅНШРЦгтццєрбЪЦлкˆ2)E@EJPQMPPUG5зжзлдйбЦСЭЯЩММАЎЗУИДЕМСЯждЮжМžžЊБИаышулзггЗ›ЎОШэу’@?M>CJUWTSQJCMтчпнлегаУЦТЦЫЦМЖИРННСНЦамнкььѓїљ§ѓёјђюмуткЪФФпхушž58A5?EJWVYSPPVйжаШИИКЕЗОдтндЦЩбжаемЯФЦЧзыюплаЛЪмнххузййЯФЭдтсюўНTHN;@HNUOTVd\WньнРЛТЯккзбЪШОТШЩЧННЦЧСТЗЅАРЉЌБЋЪслпцугбеезмйуэўѓЌO>8>APWSGLT^WZььзОДНТЧЦЦУФЫЦТФУСМННФЦЪНЕЌЕРЮЪлсѕющзгЩЫжптпзмэўђЃ?8?CHPUSFBEOHUзйЭТШЫЪЯблзсшчлурежЫТЗЗНЛСЗДЪжбЫЭݘЯемЭЯЪжтчщщшўўЛI85;HSQZLHLVVcсуйейкЫЫЩШФЧесхшуйЭШЩенрйЯФНчцййбЫФЪзцчпджйтлесѕўЯM,3FOPWaVQJWIIЇЉЎНИЯегЫЪЫеккжпэяьчьёшэяёяѓѓљјјѕђяюуцхыььщщюющїўЫNHNEGOPSNO?LANБЩЖБТйрцтумшэящсьёшёюёшшЂыяђђѕѕєёяьыпллцьёутнмндлЉbA7>BOPPQTJAELкшюыщььщреглтчхшшююэчщьэьёюђчхнстщээрмтшьяюштзЭУЭЯT@EJJ€MJTLPN]мтцьунмпйжбдЯЫШжрьшхчюьцррмпучутншяѓрчьюхкагЫдЭЧаКZ?2*AMOJMLILNVзруэьсгЭЭдксускссушщщёяэпзЯбйаШЭкцшэплннгЩНРШЫУЧЯВV9?;AMMINGJOUUррпыспхнЯлрпрххчыятлкцыэужЪЭЮЭЪЭЯаЦФЫЮзбШЫШНКДБШнЉO84@BJJWUPIJOPкмнррдЧЩдшуэюёяђюытзЮЫЪЯЧСОЧУИДЈСЗЉВЋЫннбгЩУУШСОкЗ^;8GBMNTT€ьHLGFюэйдЮЫФЫЯдгЯанюёюцлаФЧТУОМК˘Ј‘ˆЕМЊЋЩыппйлаЩЪбгШмЪc7AJSZYQIIGBLIяяцжРЖНОЦЭзбгншшпзгЪЩШШбейшчЮИСбшшуйлтрндеЛЃŸЗФРУШw:+GM^`ZQCEL@>їћјїїњњѕїјњјјїњљјњњјћћ§§љћі§љћјњљ§§њћћ§љ§њњ§ьјњ4G@BAjбїѕєјљїљїјїѕѕќљїїјјућљћїјћњѕѓєј§§ћћњ§јћљљћћљїєљљњњ§эњ115bT\Ќхяяѕїјњјєњјјњњћљ§њ§§їћјњљјћљћ§§нњљјћћљ§љљћљћ§љљћљ§ћљ§њ11gЭчёэѓѕјјѕїјљјљћњјјњћћ§љїјњјјћћњњјјљ§њљћћљ§ћњ§§ўћљљ№ћ,5E)7B›езтяјїѕїїћљјћљјјюїјњјїњјїѓћ§§љћїјњћћѕљћћјњјћћњѕїїњїђѕє).7.M^Њкяэѕїїјњъћљљћ§јїњјћљћњњјљњ§љјљјј§ћљјјїљћ§§ћљћљћћўљћћ(ш&-NЊучшюѓѕѕїїєѕѕїјјїјјљћћљћ§њнљјјћћљћљјјїјљћљњјїјћћњўћћ§(41-.<эщщѕюђїїљѕїјјњїїјўњјјьљћ§љ§љћљјїѕњљјјћњјјњњљћњїїјњћћц§њ1@Fec@wщ§§єѕјњјљ§§љљ§ћљјјѕљћљјћћљћћљћћіјћњ§њ§њ§љћћжљћћ§ўћўћўњ§§;>A@Ahр§њєѕѕјљјјїѕїњјјїњјљ§§љ§§љіњ§§њ§њ§§њ§§ўў§§ћ§њ§ьћў§AMOU9]з§љѕїљљѕєєѕѕћїјјњћћ§ўњ§§юћљљћћјњћїїљ§њ§§њ§ўўћ§њћћ§§њя§>@IC8uы§ћѕѕїїѓєѕѕўљјјђїјћјљњћ§§їїјњїїўњћћњ§љњњљњњљ§њњљћћљљоћљћљ§HNH7ENa™љ§єєѓјїјјњјјњјўњћћсљњњљћјљ§ўњћљјљћњ§њћљїњћљћћ§њњў§§FўaNNё„љ§њїјњњјјћїљћљљјљћљѓћљћћјљ§ћјјљњ§§ћљњљѓ§QЩћљђѕљјїјїїљњњљїїњјћћљјјњјїјњїјїњћ§њ§ћўў§њ§љ§§хљћћљћљ§EGJSIZkб§§їјјљјјїѕєїїўѕјјќњјїњњњјњ§њ§љљќћљљ§§љ§§њ§§њюVgZMVciг§§ѕїјћћљњїїћљѕљљјјяћљћљћљ§§љћ§љ§§ћњљљћљ§фћјњљћћљ§§љooI9??GК§§їїјјїљњјјљўћљљ§ьћљћћјћјљћ§§ћћ§§ўћћ§ћћзњљњњћњїјј~ˆtMMSbбћ§їњјјњјїїњјћјњ§љћљњ§ўў§§іћўўњ§љјљћ§§љћўў§љљ§§фў§њ§§јљ§C˜b51Sлћ§їљјњјјњјјћћўљ§§ўњ§§ўєћњћў§§љ§§њњўўљћўўћўњ§§йњ§ћў:dbWI;Eжћ§їљњјјљјљјћћњњћљљ§§љћ§§ћњљљћњљљћ§§ўќћўњ§§§ўћўўщњўBOн§§њјјњїјћљћљњњўјћћњ§ўћћ§ћћњ§љ§љљћњ§њћўў§ўњўў§ћ§ћ№8BU[OHeеў§їјљјјљљўјљљњљјїљјљјљјљћўўнжd4-&1>731,&)*8<>:98?2%$?HH„ћўњљјљјјљљњљјјљњњљњ§љјљљћњљљњўўЧм‘]-?:":33.+-7;98?;8>N\ij•њўјїїњјљљњљјљљњћњњћљњњјњљљјњјљјјћљјљћўўсз‡c]cF-*E?8337@AE3-BAF\›ўўїјјњјјљљјјїјїјјјѕїјјљјљјјњѕїєѕїўўчљкŠjF8<:PH0&,9;8M^U>PЊўўјјќљјјљљќјљјљљјљўњљљўјљљўњјјљўњўўчсЊ‚kSA53-%vЪўўљјљњљљћїјјљњњўћњњўћњњћњ§ћњљљјљљјїїєњўўф§щЊgMPUb8?0?TgгўўјјљјљјјїјјљљўјљљњіљћћњјљљїјљљњјњњљјїїќѕљљўўюхК‘p9>E9Htхўўљјљњљљќјљљјјњїјљњљћћўњјјўїјјњяљњљњљњњћљњњјљњћћўўѓ19MT3їўћїїљјјљќјљљњњ§љјљљ№їјњњјјњњћљљњћњњљљњњљњћњњјјєљњ48?CH4QСўўљњљњњјўљњњљњыћ§љљњљљњљњљњњјљјїљјљјјўїљљ§јљњњђљј?@9,EЄўўљњ§ћћяњљљњћћњљњљњћњњљћљљњїћњњљњјљљњњљњљјљѓњ54>BOЄўўљњњћћњљњјљњћњљљћњљљјљљнњћњњљљјњњ§ћњћћўњњјјљјљњњ§§7C\[kДўўљљћђњљљјјљљњњљњћњљљѕјљњјљњћњћћњњќљњљћћќњћњљљњућљ3LEHMяўїїјјїјјљњјљљћљњљљњљљ§јљњњјўїљљњѓћњћљљњљњњћћљњњчљњњJT]VaЃўўѕїѕѕїјљљњњћћљјјїњљњњћњљљњњќћљњљљњўћњњўћњњшљњљљ§ћ§ћћњ)7J7FЃўўїїљјјњњћќ§њћљљќјљљњњћљљњњћћљњњћў§ћћчњћњћћњњ40CMB›ўў§љћљњљљњљњњїћљњљљњљљњњ§ћ§ћћњ§§ћњњіћ§ћ§њћњњў§§щћ§ћ§љ2M?GGvсўўїїјљјљњљјј§њћњњїћњћњћљњњћћњњ§ћ§њћћўњћћ§ыћ§§5;>gYcФ§ўїњљњљњћљњњћЫ§ћ§ћ§ћћ§љћ§њћњ§ћ§ћ§ћ§њћћ§ћћњћњ§ћћњћћўў§§20*07rхўћєјљњњњћњћ§ћњњљљњњћћ§ћћ§њљњњљњћ§§ўњњћ§ќћ§њћћёњ4>N53JАљѕїљњћљљћјњћћњњєљњњљњљ§ћћ§ћњњќљћњћћњљљњњћљњљљјє3PNэўўљњњљњ§љјљљњќљћњћћњњћћ§§ћћјњћћњћћњћћў§ћћњћ№§ћ§ћ8.JWGZбўўјјљљњчљјјљљњњћћ§ћ§ћ§ћћ§ўў§њ§§ћ§§ўћњњњљњњћћ§§ќћ§ў§§ѕћT[[NLqцўўјјќїѕјљљєћњћљњљњћњљњћћў§њњ§ћњ§§ћќ§ў§ћћ§ћю§ћњћљ]pbQY…уўњїљњљљњљўјљљњњљћњћњњшљјљљњћњћћ§њњљјљњћњњљљњљћћэњ0HUgr‹ѕў§їјљћњћњћњњћўњћћњєљњњљњћњћћњњћћњћјљћўћћќњћћ§§єћ?8AH@{ђў§љњњ§ћ§њњћњ§ћ§ћњћћѕњћњњљћњћћњћћќ§ћ§ћћўь§ў§ўў§ћ§њ@Id]Avэўўјњњћў§ћћњсћњћ§њњћњњћћњћњ§њ§ћ§ћ§ћћњћњћњћћўўн§ћћ?EMEAqшўўїјљњћ§њљњћљњњћљњћ§ћў§§ћћќ§ћћ§§№ћ§ћ§ћўћ§ћ§ћћњ§ћ§§яћ§ўўћJLTQ1Zнўћјљјјїјўљњњћћњ§ћ§§љћ§ћњћћњњљћњћћ§ћ§§ў§ћћњ§ћ§§яћBBHE9uёўўјјљљњљјјњѓћњћ§ћљњћ§њћњљљїњћњ§ћњљћ§§ћўњћћёњћњћћONPELnтўўњњєћљјњњљњћњњљњњљјќњћњћћіњ§§ўћ§њљћ§§њћўњ§§эћMtN:Qhаўўїљљњљњљјљљћћљћњћћўњљљ§њљћћ§ћћ§ћ§ћћњї§ћ§ћ§ћ§ћўўѕ-MH7@ZЪў§їјјўїљљњћљњћњћћњўћњњђљњњћњћњћњ§§ћљњњщљћ§ћ§њў§78YA7`уўўљљњњљњњѕљћћјљњњћћњћћќ§љљњњћќљњњћћ§њў§ћћё§ћњљGIiOGMЖўўљњњћљњљяћњњћ§ћ§ћ§ћ§њћњћњљљњљћц§ћ§ћ§ў§ћ§ћћњћћLSdŸўўїїўљњњщљњњљњћњћљљћћњћћў§њћњћћ§§їњјљљњћњњ§§шћ§ћBLeMSTўў§љњљљњњћњћњћћњћўњћћшњћњћњћћњћ§ћ§ћ§ћ§ћ§ћ§ћњњћћ§ћєBGNGJTьўўљњњќљњњљљ§ћњћћњѕљћњћћњћњћћ§§іћ§ћ§ћ§ћ§ћ§§ћњ§ћш§@FI>9@CIМўўљћњњљјљњњћўњћћ№њћњћћњњћњ§ћћњ§ћўўћїњћњњљћ§§њњќ‚”vSSљgгўўљљњњљњ§ћћўњћ§§єўћ§ћў§ў§§ћњћћ§§ћўўћх§ћ§ћўћ§ћ§§ћћJЇЅe:7Uсўўљјњљњњђћњњћ§ћ§ћ§ћ§ћ§ўўё§ўўћ§ћ§ћ§§ў§ў§ўў§ьћ§ћ§ћў§AeibP>Fмўўљјњњќћ§ћњњђљњњћћ§ћћњ§ћћљћћіљћћњћ§ћ§ћўўі§ў§§ћ§ћ§§ўў§ѕBIƒуњ§їј§ћћћўњћћ§§ѓњћћў§§ћў§ў§§ћћќў§§ћћћ§ћўў§§јћў§ў§§ћ§§яEOYHBQЇшьєјћњ§њ§њњћў§ћћєўњћћўћћњўћў§§ўўћћр§ћ§ћ§ћўћ§ћћњ§њ§ћћљ§љћG[OQarЛїўљњњћѕњ§ћ§ћў§ўњћ§§ћћў§ўў§§їћўћ§ћћњћ§§оў§§ћ§ћ§ћ§ћ§ћ§GP>?;^Ућњљљњљљњ§љћљ§ћћ§ыћ§ћ§ћ§ћў§ў§ў§ўћ§ћ§ћ§ћћѕўћ§§ћњўћ§ћўўхGMJB@QЉўљѕєљљ§њ§љњњћћњњ§ћўћћ§§ћ§њњћќў§§ћћљ§ћ§њћћ§§№ў>:M\Uqзўўњњћњўћћ§ьўћћњ§ћ§§ћњћњўћ§ћўњњћћ§ўћ§§ћћў§ў§§х@$Ourˆтўўћљ§ћўћ§ћ§ћ§§ўћў§§ћћљ§њћћ§њћћ§јў§ћўћ§ћ§§їћ§§ў§ў§§ћћё§ћў82A`cуўў§љћћљўћўћ§њћћњњ§ћ§§ўў§ќћ§ћ§§љћўў§§ўћћя§ћў§ўGWNa[”їўў§њћћ§љћњњу§њ§њўћўћ§ћ§ћ§ћў§ў§ў§§ћ§ћ§ћ§ћ§§чўћ§ћ§ћ§ћў§ў§§MCPmYmйўўћљњњіћњњљћњ§њћ§§ўў§§ўћўў§ў§§ўћћоўћ§ћў§ў§ў§ў§ў§§[idW^ђўўћјњњљјљњ§ћћє§њћњћћ§ћ§ћ§ћћ§ўћ§§пћ§ћ§ћ§§ў§§ћ§§ў§ўћ§ћ§§ћњћnŒp`m˜ьўњњћсњљњњ§ћўњћћњњ§њ§ћћ§§ћ§њўћћњ§њћћ§§пњ§њћ§§ћўњњћћ§§ћ§C`k‰ž§ў§њљўћ§ћ§ћћћўњћњ§§їћ§ћ§§ћњ§ћћђ§ћ§ћў§§ћ§ћ§љў§§эћ§§ў§ў§ўNHTYVާўўњћћќў§§ћћј§ћў§ў§ў§§ћі§ћў§ўћў§ў§§ ў§я^d|tTŠѕўўћњћњћ§ў§§ћћ§ћўћћ§ўћ§§ьћ§ћ§ћ§§ў§ў§ў§§ћ§ћ§ћўўэUa]TQ|ёўўњљ§ћ§§ћњњћћіўћў§ўў§§ў§§ўј§ў§ў§ў§ўўђ§ў§ўћ§§ў§ў§ў§ўўѕWagtHkщў§ћњњъћјњљћљњћћњ§ћ§§ў§ў§ў§ў§§ѓћњ§ћў§ў§ў§ў§ўўј§ўћ§§ў§ўўщTb`YL…§ўўћљ§њ§љћљљњћћўћћн§ћћ§ў§ўћўћ§њ§ћ§ћў§§њћ§ў§ў§ўў§ћ§ћ§ћ§§зћў`haU^ƒэўўњњћћўњћћ§њ§ћўћ§ћўћўњ§њћћ§ћ§ћ§ўўљ§ћћў§ў§§ћўћ§ћ§§шў§§daLdqпўўњљ§њ§њ§њ§њњћћ§єћ§ћ§њ§њћћ§ћўўї§ў§ў§ў§§ћћљў§ў§ў§ўўэ>i^LTiкўўњљћљћљњњ§ћћљўћ§ћ§ћ§§ћќўњўћћ§їћ§§ўћўћўћћњўћ§§ў§§іGLkQIrюўўњњьўћћњўћ§ћ§њћћ§ћ§ћ§ћ§ћћљўћў§§њћћ§нћ§§ў§§ћўћ§ћў§ў§§ћ§[d{d[`Уўўњћћњ§ћ§ћћњ§њ§ћћ§§њў§ў§ў§§ђћ§ћўћћњћњ§ћў§ўўћ§ў§ў§§ѓћўMgq``oЛўў§њњчљўљћњћћў§ў§ў§§ћў§§ћ§ћў§§ћћ§њўћћ§нў§ў§ў§§ћў§ў§§ћўtdp~nŽШўўћњћњћњћћ§ћ§§ўў§§љћўћўћћ§§Юўћ§ћ§ўўћўћў§ў§ў§§њћћ§§ў§ў§ўWTTV[Тўўњљўњ§ћўћ§ћўњўћћћўњ§ћ§§ђћўћ§§ў§ў§ўў§ћ§§ћїњћ§ћћ§њ§ћћхўћўPVNce{Вўўњјњљ§ћўњћћўћћњћћѕ§ћ§ћўћ§ћў§ўўѓ§ўћ§ћў§ў§§њћ§§ёў§ў§ў§ўV^wbeiЁўўћњћћўћћљўћ§ћ§§ћћ§ќћ§ћ§§їћ§ћў§ў§ў§§іў§ў§ў§ў§ў§§§ћў§§ѓўUeaVVmљўўњћћњў§њњћї§ћў§§ћўћ§§іћ§ћ§ћ§§ў§ўўє§ў§ў§ў§ў§§ћ§§ёўPZ]PHThйўўљњњћћѓњ§њћћњњ§ћўћ§ћћўўћћњњћћў§ўўљ§ў§ў§ў§§§ўћ§§кў\acganxцўўњўћ§ћћљћљ§њ§њ§њћњћћўћћњћћўћћїў§ў§ўћ§ћ§§хў§ў§§ћў§ў§ў§ўr‰qdewzхўўњњћ§§ђћ§њ§љ§њ§ћўњўћ§§ћђ§ў§ў§ў§ў§ћћ§ћ§§ќў§ўћћэ§ћ§ћў§ў‹Ž\PVUYЩўўљћћњћ§ўћ§§јћ§ћ§ћўў§§ћћў§ў§§ћўћ§§ўўнћ§ћ§§ћ§ў§§њўћў›А•hecvчўўњўћћњћњ§ћћ§§љў§§ћў§ўўў§ўў§њћ§ћў§ўўњћ§§ў§ўў§§ў§§щўdФИ|LLdэўўњ§њћћўњћћ§ћ§§§ў§ўўќ§ў§ўўў§ўў§§ў§ў ўњ§ў§ў§ўўѕQzwvaMYшўўњњ§ћњ§§эћ§§ћњ§ћ§§ўћ§§ўћћ§§ћћ§ћў§ў§ўўњ§ў§ў§ўўђ§ў\V]uiTdёўўњћћѓў§§ћ§њћћў§§ћўў§њћ§ћўћ§§§ў§ўўќ§ў§ўўў§ўџ$ў€џџ%ўˆџџ&ўˆџџ*ўˆџџ-ўˆџџ1ўˆџ џ3ўˆџ џ9џ9џ9џ9џ9џ9џ9џ9џ9џ9џ9џ9џ9џ9џ9џ9џ9џw8џ8џ8џ8џ8џ8џ8џ8џўˆ7џ9џ9џ9џ9џўˆ8џўˆ9џ;џўw9џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џ:џўw8џ9џ9џ9џ9џ9џ9џ9џ9€Џ:%!0"$$142*$")%(#(P81*$02;;2-.?к2$%&!+-#!--$,97<4!"#Q?)*3@:8%"HчI?>LY;2;9558:;0% -;875>31%(4"1iяNHCG8<;BA7[h4.>J9,+9@>8C;9-?F`^H>HF>7)&:4Ў§AMLJHJ?@I;>[>?:3-%"(Ui:#јF&CLNTNQOOY^SJPTTGMN:9,$ #!##&(.*()Zу§јнЏƒ^1"$&)%3++#)"34$$<!14A@S&!%kђ§§љћ§ћњЧЅniN2JSo@+5.!-;Td?C9WBCPHG4"58>F*$EЋ§ў§њѕїєјїњљ§§ијуССЦЗ•wЏФЇКЋœƒ]–Ÿž‘’o]M+@1>Šх§§ўћјїєїїѕјѕїєљјљњ§ћ§§ѕћљљњѕћ§ћћљ§§јљћ§ьЌѕљ§§єњїѕѕїјѕїїєѕїї§јєїїє§ѕєѕѕкєѕїѕєєѓєєїѕњ§јљњїљ§јїѕѕїѕїњјѕїјјїјјњјїїќєѕѕѓѓ§єѓѕѕєьѓєјћ§јјїњјћјјїїѕїђѕєєѕієѕљїѕїїѕљїїћњјјњїїћјљјљѕѕіјљћћљћљћћїїўљїїјяїѕїјњєѓѓјїїѕђјєїјјяїћњћћ§љјїѕїјћњњ§ћћїњїїјњјјњјјїўјїїјљјћњљњѕјћ§§ўќњљјїїыјљјїїљљјѕїѕѕјћјљњјњљћћ§їјљ§§њњћљћћђњ§§њљљѕѕњјјћј§§њйјњјјћњјїјљћјјњјљљїјїљћљњ§§ћ§њ§ћћњљљ§ћћјјєљћљњћћњїїљјћћњѓљїљјњћјїјљ§њўўћшљјїћћњ§љјјњљєїѕѕїљљїњјјћћ§ћљєїїјјћљјќїћћљљјњјјњјїљїїљњјњљћњјјњћјћћљјјјњјљљњњ§љљћћєљљћћїљњњїїѕїјљљќњљћњњєјњїєѕїїјјћћљљўћ§§њўѕћјњњјїјљћ§ћћѓњ§ўњ§ћљљјјњїњњђјћћњїћњ§љ§ўў§ўўљїљїјњјњњљњћ§њњ§ћћђјљљјњњљћћљљњњўўяњ§§њјћљњњћћљћ§ћћ§§ўњјјўљћћ§њ§ћћї§њўў§§њњљљќњ§ћ§§јњ§ўўћ§§ћћўјћћљљ§§њњљњњю§љјј§§љњјїљњњћњўў§§ѓўћљћ§ћњћљћ§њ§§єћљјїїѕ§§љ§§њњљљ§њњљљћћўњ§§§њ§љљћќњјјїїэјљћ§§јљ§§њ§ћћљјћ§§њњїљјјћћљљћљљјњїјїїћ§§љјљїјјљћћљљ§њћњњ§њ§§їљћљ§њњљљ§§щњ§ћўўћћљњњ§ўўњњ§§љљњћљ§§яћњ§ўћњ§њ§њўўћў§§ўўћћ§љћ§§њѕљўўњ§њ§§ўњљљ§§њ§ўў§њўћњњћўў§њ§њњ§љњ§љњњўћћў§ђјљњ§§њ§§ћњ§љјљљјћљњ§ўўћўўњ§ћљљњ§§ћјєљћћљјћћњ§§њ§§ўўњ§§§ўњ§§љцћљјјљљњњљљћњћ§њљћј§љљћјљј§§рўћўћљјњњћ§ўўћ§љ§§љћљљћљћћљћљћћљ§§љў§§ћљћ§§іјћљљ§њљњ§ўў§њљ§њљћљћ§§ўћ§§§ўћўўю§ћјїїјјћ§ћћљћ§§ћљјјю§њ§ўћў§§љњњ§ћњ§љћ§§јћ§љљњњјїї§јљћћјѕљћ§§ћћљњ§њ§§ўљћћљњљњљ§§њњї§њњјљћјєјјљьїјјїїљћњ§ўўњўўћ§ћљ§њњќўћњћћўљ§§їњ§§јљљ§§ћћљђћјљњјљњ§§ћўўњ§§ўњ§§№љћ§њ§§ћћљљ§њў§њ§§ќћљ§ўўїњћјњћћњћ§§Ъњ§§њ§§ћј§ўњ§љњјљљњњљљћћ§§њљћћ§њ§љјљ§љјљ§§ћљљ§ў§§њљљћљ§§ьњўў§ћљ§§ўў§њљ§љњљњј§§ўћљљіћњ§љј§§њ§ўўўњ§§љћјњћћўўќ§ўўњњ§§њћљљћњљњ§ўњ§§њўћ§§њ§§ўјћўў§њўўњњ§љњ§јњљљњњѓљјњћњ§љњћўў§ўўўћ§§њћ§њљћ§§ђўћўўћ§љњњћњљћ§§§њљњњўэ§њњ§§ћјљ§љјљљћћ§њњ§§ќњљљћћћњ§§њ§§§ћњўўўћўўыњћјњїћљћ§љљњ§ўў§§ўўњ§§ўћў§њћљ§ћљ§§њўїњљјјїѕї§њњ§љёћ§§ћћ§њ§§ћћљјјљљ§§њ§§љљѕїљ§ћљљљјљљњћћњњљјћљњњ§њњў§љњ§§њўў§§ћўћўў§§ў§ўѓћњњўњ§§ћњ§ўћ§§ћљћ§њўўў§ўўѕћўћ§ћћ§њ§њўў§њ§ўњ§§ќћљњ§§ѓћљњ§§њ§§љњљћ§§ѕњўћ§§ўў§§ћ§§їўћ§љњћјњ§§їћ§њљњїјљ§§ењ§ћўўњњ§њ§§њ§њћњїјћљјљ§њњ§њњ§ћ§§ћљњ§§ў§њ§§ўўћќ§њћўў§ѕјїњљћљљћњ§ўўјњ§§ўћ§њ§§ѕњ§јљїљњњћћ§§іњўћ§ћњљљћ§§ўїћ§њњљљ§њ§§їћљћјљљ§§ўў§њ§ўўўћўўћў§ўўћ§ўњ§§њ§§ўћ§§ћўљћўўћћњўўэњ§§ћўњ§њ§њ§њ§њ§§ўћўў§јћўћњћўњ§§яўњњ§њўў§ћјјљ§§њ§ўўћћ§њњўўў§ўўћўєњ§њљћ§ћљљћњљљўњўўєћўўјјћњљ§§њ§§ўўћўўќћўњўўћћўњ§ўў§цњўћћўўћјњћјљ§њњўћўўњњ§ћћ§ўўўћўўћўњћўћўў§§њў§ўўћў§§ўћўўќћўћўў§ў§§њљўўњ ў§ћ§§љ§ўў§ўњўўўњ§§њўњ§њћўўўћўўњ§ў§§љћћўњўўўћўўќћўћўў§јўњ§ћњљљћћ§ўў§§іћњћў§ћњ§њћћћљ§§њўў§ўўћўў€w30*%% ,!,%!"+,)$082*&-*!#O<-*."(,0&)0;р31,+ *++140($#&,+%&3;84+&%"#S>308::,!"Gђ9>BL^B5@;.75(("*+)-39BA5+%%!)93+032(.;--oљ>EE>>;@CC:^a429M8.*4A@2970&5@ZT?A:<:-.?"7Љў7B;>HCFJG>:?CHJLFGLUZPG@IL;>J)48E" .)$$**%;\їўj\@,1*+:AEA@CLH2<:1&  "!#**.+(\ыўјтЕ‚c.$" !$7!($,;(!03"(<7?W+"&gјўўињЮЋogN9POp<+51.3BSc>>:^ABQCM5&1<<@.%@ЇўўљљјѕљњњўўпњуШЯдОžŒxЗЪЌСЗ›…aœЃЁЃ’—p[P-A2<’чўўњ§љјљљїїјљјўћ§ћўўќњ§ћў ўћьЉјњўўј§љњљљїјљљўјљљ§њћљљјўїјј§љјїїљўђњћ§љћћњљјјљњљњњїљњњћњњљњљљјї§ѕїјјїјњњ§ћњљљњњљћњљљјїїј§њјљљјљњьћљљїјњјњјњњћњћћњћњћљљўјљљњяљјљњљјјїїљљјљїљљњњўћњњћљњљјљњћ§§њўћљљњњљњњљњњўћљљўњљљњћ№њ§ћљљњњ§ћ§§ў§ћњљљіћњћњљљјјњљљњћѕљњљћњћњ§ћ§ћћ§§њћњњі§ћ§§ћјјњљњњ§јћ§ћ§§њљњњыљњљњћћњњљњјјљњњћњў§§ћћї§ћўў§ћћ§њњћќ§њњљљяјњћњћњћљљјљјњљћњћћў§ўўїћњћњњ§§ћњњѕјљѕјјљјјљљњњњ§ћ§ћ§ћћњћћњћћњњ§ћњћћјљњњљњљјљљњњљћћљњњђ§њњћ§њњљњћћ§§ћћњћљќњљњћћђљћњљњљњљљјјљљњњћё§ћ§§ў§ўћњљљњћњћћ§њћ§§ўўћћњьљћљњљљњћњљњњ§§ћ§ўўћўўєљјћњљњњљљћћ§§ћњћѓњљљћћњћћ§§ў§ўў§ўћ§§зњћњљћњћњ§њћћ§ћ§ћ§ћњњ§ћћњћњњ§§њћњ§§ў§§ћ§§ћћњ§ћњ§ћ§§ўю§ћћњћњ§њћњћћ§ћ§§ў§§ыћ§ћ§ћћљњљјљњњ§ўўћ§ћўћћ§љњћћќ§ћ§ћћњљћ§§ћўћ§§ўў§§ћњњћ§§ћ§§ћќљњњљљюњћњ§ћ§ћ§ћ§ћћњћњњћ§§ўћњњћўњћћњѓћњћљњ§ћ§ћ§ћћњњќћњњћћн§ћћ§§ћ§ћ§ћћњћћ§§ћћ§ћ§ћ§ћў§ўћњћ§§ћў§§ћњћэ§ћ§ћ§ћ§њ§ћўў§ћ§ћ§§ўў§ћ§ўўќ§ў§ћћ§§ћ§§ў§ўћ§§ћ§§ћ§§ўю§ћўў§§ў§ў§§ћ§§ў§ћ§§ќћ§§ўў№ћ§ћў§§ћ§ћ§њ§ћћ§ћћћ§ћў§ўў§ћ§ћћ§ћ§њњўћњњћ§њћњњ§§ћ§§єћ§ћў§ў§§ћ§ћ§§ћћ§ћ§ћћў§ћћљћюљњћ§ћћ§§ћћњњћ§ћ§ћўўёћљљњћў§ўћўћ§ћњћћуњћњћњћў§ћ§ћўћ§њћњ§ћ§ћ§њћћ§§ў§§сў§ўћћ§§ћ§ћњћњ§ћ§ў§ћ§§ў§ўў§њњљљњњі§њњћњћ§њћњњ§шў§§ћў§§њњ§ћћњ§ћ§њ§ћћљљњљљњњћћњћњњјћњ§ћњњћ§§ёћ§ћћњћњњљћ§ў§ћ§§ўћ§§ћ§§ћњњћљ§њљљћћ§§§ў§ўўћ§ўѓ§ћњћў§ћ§ћ§ћ§ћћћ§ћћњћћыњ§ћљњћ§§ћў§ў§§ћ§ћ§ћ§ћћє§ћ§§ћњћ§ћ§њћћ§§ў§§іћ§ћ§ћ§њћћўўѕ§њњљњњљњ§ћ§§љћ§ћ§ћћ§§ћъљњћћ§§ћћњњћ§§ћњћћ§ћћњћћјњћћ§њћћ§§фћ§ћћњћ§ћ§§ў§§њћћ§§ўћ§ў§ћ§ў§ћћћ§ћ§њћћ§њ§ћћћ§ћ§ћўўћ§ћ§§ћћ§ўў§ўў§ћў§§ќћ§§ћћ§њћ§§іћ§ћ§ћ§§ў§ўўњћ§§ћ§ўў§ў§ўћ§§ў§їћњљњ§§ў§ўўіћў§ўў§ћ§ћ§§љћњћћ§ћўўћъљњњ§ћњћ§ћ§ћ§ћ§§ў§ў§ўў§§ѓћ§њ§ћ§ћњћћњњ§§ћќ§ћћњњ§§ћ§§јћ§њ§ўў§ўўѕ§ў§ў§ў§ћњњћћћњ§ћћ§§іўћ§§ў§§ћ§ўўў§ўўњ§ў§ў§ўў§ћ§ћћњ§њћ§ћ§§їў§ћћњљњњ§§ћѓ§њњћ§ћ§њћћњњћћѕ§ћ§ћўњљћћњћћљ§ћћљћњ§§ћњћћ§§ћ§§лў§§ћ§ћ§§ў§§ћ§§ў§ў§ћ§§ўћ§ћў§ўў§§ў§§ћў§§ўўћћў§ћћ§ўў§§ ўє§ћњћ§ћ§ў§ўћ§§ўћ§§щћ§ћ§ћ§њћ§§ћ§њћ§§ћ§ћ§ћљћћ§мўћћ§ўўћ§ў§ћ§ћ§ћ§§ўћў§њњљћ§ћ§њ§§ћљћњћћ§ў§ўћ§§§ћљћћ§њћ§§љћ§§ћњ§ћћ§§ћ§§ўћўўя§ўў§§ў§ўўћ§њћљћњћћ§ўђ§ћ§§ўћ§ћ§ћ§ћ§ћћ§јћњ§ћ§ћ§ћћ§ьў§њљћћњ§ћ§§ў§ўћ§§ћћ§§љћ§њћњњћћё§ўў§§ћў§ў§ў§ў§ўў§ўќ§ў§ўў§№ћ§ћ§ћћ§§ћ§§ўћ§ћўўў§ўўњ§ў§ў§ўўј§ћ§ўў§ћ§§ћў§ђћў§ў§ў§§ћ§ћ§ў§§ђў§ћњ§ћў§ћ§ћў§ўўє§ўћ§§ў§ўћў§ўў§§ў§§їћњ§њћћњ§ћћў§ўўњћћ§ћћ§§њћ§ћў§ўўћ§ў§ў§§§ў§ўўї§ћ§ў§§ћ§ўўїњљћ§ћћ§§ўўј§ў§ћњћћў ўў§ў ў§§ћ§§њћў§ў§ўў§§ћўўў§ўўэ§ў§§ћ§ћ§§ў§ўћ§ћ§ћ§ўўћ§ў§ў§§ўќ§ў§ўў§ћњњ§ћўћўўќ§ћ§ўўў§ўў§ќћ§ў§§ўі§ў§ўћўћ§ћњњў§ўўў§ў ўя§ћ§ў§§њ§ћћњћњ§ћўћћј§њ§ўўћћ§§ёћњћћ§ћ§§ў§§ћ§ћўў€vFCB@9-2@75>.(-BE@I7GHAC29;<7,<4dNACGN;<,?AC+OьGF<4<08B.<&@Q.CЖўBJCFTJUZVSOUGStQPZc]\^Z\[NIHHG>I;E;>7031;p‡M7ВўZ1GJOUWTNTde[OOTSJNS<@ES&-)034?;.+;MoўўzpS:9>3CFOHQPZOB>?32"( 0.7%*,77@@C);,&iїўўђЭ–v:.*,!&(&?+?#5<4),FG>2@P0,5GNJSj<81}ўўймОЃ‚r^I\azN;C>CMLNQNOQaS(UюєюђьрмжзхпзмрхыщцурдгЮййхртычцтчлЫечхкљћљ§ћћ^-C3AEFJ<@EIPOMYh\‚ёяхышщюхкурцпсхтпюржрсцюыкцттстнппйгймкўћњ§ћцH-JPLILOOPPW\WN40;ФљљяыюђьыспэёшзмгсщыяькйлмдкзЯЩлншьёыхузћўў€ž§Яh-BTMEHLH?S]WkiwnMЌшхежушттэјћржйажлмуышёѓэшыђящутхухчьђшлћњљ§їм~?8GT)*.4:IAOIFUdgшїщнщѓђшђ§§ётмжпЮУТйЯжкьхстспэцплЯлтяѓэьћўў§јЅQE*->801&.249CHTPYщјчрэяђшьђђ€щхмЧдпнЫмейздЧССУзухккрзжкряяћћ§ўсd3GGJHFA?A9>HhakrimКььыююьчыёђюэютйкпбегаЧКОЪЧЭсчгебжагЧУгу§ћј§эW3OONGA>IEIHCFBL~a’ѓћьщщьэшщщяѓшсцщуумЫШЩШЫдммрчэыэыузччхкњњўћј…BGHLFMPMJFMEE>;hn^ЮћљѓёщьцккйссцрткпуунпрпсрцщсбЮЧЩгаЮайтпњњ§§ђŠmU?G>?@@€rJFIMPLYC\щјћљњљђудйамцяуйсущцндруьхйпаРИЗФаЮегЪбЩўњўўшpmF[H<.9<9:JJSHbxerћћ§љїѕѕєысммлкруулржЭктмухмйргЦаздЯаРРТг§њў§ОC.:Y{??HALTYTTUeeЉљ§њљњ§љљёьяяѓѓьцьщящшђѕњјѕђящэюэчМКЪйлЖИ§§ў§М|„WFSZPEME??FU`]c\ƒљљјњњћћњяээёьющцсшщэяёљљэебрсщьющтлсмкСЖўўЂ§щt?[UTMHAEbiFBJ]TH]ћћѕљћњїєѕѓѓљњїјѕђьсэјљљјѕѕыяёёчшюёяяьщрдўў§ћљŽ<>LNIF?A9Mwvg^dqrИ§ћћўћўўћљљЦєѓјњњєьнкущхюцщцыяёђёюђѓьчсрнўў§§љp:MLJMHB@(!FucbhWWЋљ§љћўўћшїњљљњњѓјєяыйххчюурмйкхтяясцтщѓѓў§љ§с]@]TVONFB;?WPY[Vc‰эћ§§ўћўўЬњћљјђюѓчьнутшрзерпшёыычрщђюўљ§§пT>PY[VMLHL]\Z`]aNrѕ§§ўњўўфћњѕїщыххчьятщуЮЭЭаатьшлмчэўћћшЯAFWPNNINJFIBHFQTO`щ§љћљљ‚њўўњљљјћѓэяюьяёёэёчлтпжЫггШТйтцкдуњљ§§Ж<59JJHOG:@HJIIQZV`у§њњ§§њљїљ§ўљљѕјѓьхущчышдбтёєєѓѕьззсхнжххњњ§§ёt`ZYNMOGILMOPYaVCnћ§§ўћћ§ўћўўЦћўўѕэыюђэырпцьэёѓѓёюпетюььшў§§ўШ@:ISPG@@>@EIOV]@,]ђ§ћ§ћћњўўћћњўўћћањјёшчщєјѓяччяђђёэчэшчхх§ћ§љРA5CQILIE>AAFLVujJŒљўўўњўўўћўўЅљјѓяяюяђєђђёюблцрцяёэщйЦеу§њ§§7Bbj`NCBINHJP[VaЪ§§љњћћўўњљњњћўћљєяумсщущюэёэюёэсууспхнзжж§§ѓѓg`rp[IA3@AEMM№JtPoтљћњ§§љњ§њљўўлњятзслтуыёыщщцрЭЮпруынблў§§їh;E9H<4NVVё\]aY^E[эћћјћљћ§§Тњљїљњ§ћћњэнххтунппкрзмеШЦезнхукањ§§ьi3PALGC18CIO\ba^;]є§ћљњ§§ўў‚љ§љїєєљјѓчхцкйхусммснгеЪдмйейкжЯ§ў§ы^BHMQOGHGACCQVhmGŽљ§ћњ§§њўўњ§љјђэщяёэышјљѓюгакухнмлзммтжеежн§ў§єG.PYU[UQI@HLQYYN7Б§§ѓїјљћјј€ ѓѕяѓѓяыяхыёєёщпмжмшузнгЯЫручууруљ§љтL*?BHGFPFG9IMTkI:НљћјјљљњјѕёючлтхшучуушшсжзЪРЛЫеЯСНОкчэђьхпщћўћДC4LELSSJ;CC?CHQQ9Ќјљљ§ўїєюячырбЭгЯагстрсбРФЧЯЪЯгЦНЖЗФЮлшђёьрљћљЗ@;dNP][J@E:FGLPSAœючшяїљљћљїюлЫаЧООЯсмкчсйЧРЯдЮкУЦбОМРгешцчзљћћЗFEVHHLLFALBBHOM@1nШЦехьяѕѕёёчмдЯгЦЦЪЮжпмеЧЫОбрдзгддЩУЩЮжлкумјљћУVHLHFEC?CAGCIQMJ@ƒкМЗЪдкхёѓљњѕяѕужЦзнЫФЖЖВЉВЧактрнмегмрхнмгТїћїЏ8NWA481:7‘ьхмнлжлчщуйзлпнчцяьщяыы€—ёяшрппелмхуцрдФЖФгў§ьŠF@ELHB02(.C@?IY?wŒ;:FŸючжйжЭЩЧбзЩЮЩЦнЮƒzpq’ечнрпупртзЭбекчттцрзШ§ћт[.9LQMCB;:FJJF][YdЕѓєщшлбСЧШТНКЯбуьцрŠWИЧОМЭхщлбЫесшюхпйемйЮ§јйH#.AE@A??<@>:@GI;NŸєћюхрркжЫФЩрщччтсйШœЯЩбЏŸЮмнуйнмтьщэшмкухщўћЫN*9AC3:3.29AB?E8JMœыящыяёщэыцяѕєђтйЯНБЎЎ‰a‡ЯпайЮРФЭагкнйейучш§ћЛ<4MLB55778ABS^Џцухюѕѓђёщяєє‰ёюцрЪЛФЧбНЇ•ŸМФРЪйЪЫЭмнзЭЪнхз§јЫ[IGLE;:;:08?CEHVSVДёцсыђёєїђєёюяѓэььмЭУЛМдеайФЩЯжкОЉЖЩдйнлхтх§єЫb?;G@E?710>CJLNPVюѓєьыы€эђяюььэырхымгЩЮСЫаУЫЭаЭЭЪКЈЅЎНШЭзелсћјаI)+A;9*IVVAME.cујёкажнмжЭЮджртхусхуккнжТЫалпннмбзрщткхчыссщ§лbIoZ<,4,*,&;@IPB5vйѓющытцлйеЫдкжЯбЯЩЫЛТЪгзаФЗКЦУШзллŒрзешыэщчрј”CLI8$8;1BLEMJO7*aШюцлнпеЭЮзЧЮЮагсжаЪЧаеЯУЦЦбййззлмшяяюхцптрзйѓb;PF0OxN<@WY]c`B1OИЩИМЫдбЯеЩШЩЮбжйкжЪЛСЧУУ€гЭймпдзстчхллгбЮЩддЫйM;MEGTwqF+B08PQPS?OЅМЗЪгккззЯСТЩЭЫгмгШЖОУЫШЩЦУЩЩЯгупбззббсйЯгСЪОH049V;!>BECCJQPUSV[^(^ўўњњѕћњљјѕјљјћ§њњјДћњћљўљ§њњћњњјљљјѕљћћњћћўў].?+BFE8BFIMTZZ^wcŠўўњћ§ўљћћљ§њ§љљћћјћўћ§њњљ§їљїјїћћр§ћ§ћўў§ўўьM-QTMJMPOU\bacY37BЮўўљљњпљ§ўћњїћј§љњћћњўўћљ§ћћљњїћљћњћњњјўўхжj.CWN@CEOF[^Upx~{UСў§љћћ§ўўЩ§ћ§јѕњљѕљћћ§њњ§§ћљљњ§њљјљњњљ§ћў§ћўўн>7JS13-<>T?IM?Pkqўўњнћ§ћ§§њљєєђјјњєњїњїљјѕїњљњњљћјњљњўњўўФБWL*)A>4.75399?MSU`єўћћљћњ§њћћљћјћѕїѕњєљѕљєѕєѓјѕјѕїјјњљїјїћўўЈчj4HFFJEA><@FLi]qxvvЫўўљњљњћћњћ§ўљљћњїњѕїєєїѕѓїјјї§њћљћѕјњјј§њ§ўє^8UPOE@CFNIMLIHGƒŽežўўњњјћљњјњћњ§§ћљїїјљљјњћњљљїјћѕјљњ§§ўўц‰EHOMICBHGGCJMCAh{bеўў§§ўњњќјљјћћќљћњћћ№њћћ§ўњјљїєєїїјїљљ§ўы‰rYB?C?@?ABHHQVL]J]ђўўў§ћћЧ§їћјњїњљјљњљљ§јћњњћїїѕєјїјњјѕїєљў§ўўыvnMQM?85;BEHSSLe~knўў§ћ§ћа§јљ§њњў§њўўјјњѕѕїљѕјѓѕѓ§§ўўРH0@G{‚d`ou{Оўўў§ўў§ђў§ў§ћњ§љ§њ§ћњћћћўћћњћћќњў§ўўьvEOPQQN{Vnюўў§§ћў§§§ў§ўўі§ўў§њњ§љўћћ§њћњњѕјњјїћћњћћїўўшqЌўўњљњћћ§§њњўћњњыћљ§њ§ћњјњјљљїњњѕѕєћјћћјсњћўўшG,GNIGHEFBMOTZqJ?Сўў§§ћћљњњэјљїљїљјњћњљїїѓїјљїѕѕУђѕѕјљљњћ§љњўўТA7SLGIMHGCEFHIS\?Еўўћ§ўўћ§ћ§љјїїѓєїјјљљѕїљѓєёєѕѕ€”єѕєѕїјјњњїјћўўЗ@4eUSWYEEFGCLJ\VIЉўўѓїћћўњћћјїѕёѕѓєєѕљњјњїѕѕєєљђїєяєєѕєњїљјјћўўНMJWMCAFFMJFBMPSC7ўћјѕїљњњ§§ўљљјєѓђђїїѕєѓѓэєїї§њћљјїјѕїєѓѕєїњўўШ[IPH>>§CHLLкMPWLL˜ўљэѕєїљњ§ў§§ўњћїњєєѕѓѓђьююёєѕїћњњгћїјѕѕєѕѕљўўЗBMNSSLHOMJ—ўўёєѕѕљљ§§ћњћ§ћћЩљїїѕёѓёёѓєїєћљњўћјњїѕєѕѓї§ўўЋG:GH??<>CFPPQTnV[œўўјѕїљњћћ§љјњњћљњјјљљјФљѕјњјјљњѕѕѓєєѕђєјњўўŸ2-GJG@:88?CT`@}ŒB5HЅўўїїЖєђєѕѓїёѓєћяБЇЃЃОїўјюэяєѓёѓїѕѕњѕљљєїѓєўўы\+5JNIA>ACPO?OTЋўўјљљјњјњњљјїїјѓѓэшулН‡БѓњюэёїѓђєѕѕєїїљјљљўўР;-IMF:-5?BHJJNHH`eОўўљљњњћњњљљјјШїєѓђяї§шнжнэяєѓёѓяѓѓѕѕјјѕїјўўаUJBIF<5::?BFGLGc[bЪўўјѕїјљљјїЮјїѕєѓђььјљѕљєђёђёђђюяђѕѕљѕљљўўйi<:@@7227:>LPTSQ\ЄўўѕћїѕљјїїьѓїѕїїєѓэяээѓюђюѓђёюээжюёѕѕјїѕўўсV2*EHJ@??NLONQ\PT‚хў§ѕѕїїјјњљјїѕѕУяђѓєђѓєђёђёѓѓёёєяђюѓёђєѓїѕѕўўйb7>FMHBS\hiU9ILHA`ЭїєђёђѓїїљњњјјљѓєјѓјљєєўѓїїјЪѕѓєђёяьяёѓёѓѓўўЏIE:EFC@GGdœ‚?AJVIєўјєђѕѓѕїљљјїєїєїљјљљЧњїѕѕєїїѕєяёђђѓёяюяёёўѓiEH5EHFB@5IwŽ]akZbсўўяєѓѕєєђѓєїѕѕєїїѓљїјѕєѕѕјїѕјєѕѕнјѓїїѕїѕёѕўўqCaUAB>@>-N^^M^Q8mэўўѕѕєєѓђѓѓђѕєїєєѕѕѓѕѕ“ѓїёђёђѓѓђѕєїѕєѕѕјїљјєўс^Ov^C@427>BFLOUJAюўўєїљєїєѓєёёђѕєѕєяђђѓѓёююёђёѕѕёѓїјјљљїљјњјјў›EWS3*4EBHLWLVVWC4jуўћѓѓљєѕєёѕђєєњђїѓёёђђіѓёѓђєїєѕїљљЯѕљїљјјњї§i;YS>,\‡ZCCdcjgdO:\мўщёђђѓѓђѓёяђєєѕѕѓяёяяњђѓђєѓѕѕкљєєїѓѕѕєєёђѕлS;MPJY}qH9H;@VY\\AZЧььяєѕѕѓўѕѓѓіѕѓєєёђяђяѓѓађєєјєїћјјњњѕѕєюѕѓФL,.G<[@!($AFFMT\kg}щўљђєїєєѓєѓѓЂєѓѕѓѓєђяђѓѓїїѕїјїјљњљњјњїїѕїљљј-)9FPOJA78AIIHOUF\uдњђѕѓїїєѓяѓѓєѕѕяѕєѕѕєєѕѕљљѕјїѕљѕїљјјљѕљјљїјјќў§ћўўХ™‡~WYSUTNbjheiepn8gўўјјњѓђђяєяюяїљѕљєѓђѓђэёѓєёєѕѕјїїёьюѕєј§§ўзq9UBV\ZaN]gcjrovŒt›ўўјјњјњѕјљјјєѓїѓљѕєљїјјўїѓѓђєѓљїєѓєљјўў§ўўХ^>kjc^`Z`hwv|t}GGSжўўњїњѕњїјљўљїэѓѓѕљњљњєѕѓїёёяцтюђѕїћјјєєўўйхzBWndOPSOTkrpƒ–ŽeОўљєяѕјїѕњћћјыхёяєєњњ§љњјјВљјљєїїѓїћјћјјўў§ўўчŠQLej9@ACTj^\cYgzˆўўњјїњњјњ§§ћђёыѓюсрэчюєјїђїєѕїѕѕёїѓљњ§њњўўчЭjcF?ZPGLEOYVIW^jhnњўљїїјјпњ§§ћѕѓхђёяцёэёююпсщсьѕђєяђѓђђїїљўўзѓvG\Z\WYOSIWWd‚‡Ž‰ƒдў§ћјњњїјћњ§њњѓєђёыяццїтлцххђљёђђљыьтрэѓ§§ўшmJhde`TLWYW\``[]žЁuЏўўњїїоѕєѕїљњњјїѕѕїєыуьшыюёёєћѕљїљѕяѓїєєўўыŸT\`c`c^TY[cbaYV„xуўўкњљјјєяёњњљѓѓёђѕјђѕєїєѕєѕѕыхцщєящьѓѓј§ўўьžˆoYY[YNSJYhhduexYqўў§нњѕяэыѓѕљѓёёїїњђёђјњјђѕхзлншяѓёюяыщўўыј‰dq`]TGPM]hgmg|”ƒ„ўўх§ћјѕїїђѓїњјљђяюєєёђњѓѓђясщээљырртэ§ўўіг[BLr›[@SYYїdpmoagŽўў§нўћ§њњљћјѕѓђэяьэёѓѓїїјїѓюђэшхцйждк§ўўчЊPF\ozp`aY[hztpnce•ўў§ў§ўўп§љњћљњћњјђѓярмрыёѕёѕїїѓїэђьнлрсхўўьƒO]eibhZOPB^mpopeo‚ўў§§ћњ§§хљњњћљњєєёєђёёѕјњљјёэьютхшэўўыэ]MeihhtdP[V^uup`]\Їўўм§ўћўњ§ћўћ§јњїћјєяєюђхмсюяѓѓёѓјѓючэ§ўўшюuIOipxžŠaO]dkprhjxсўў§ўўн§ўћў§њњћњ§јћњјїѕєљјїєѕєљљћђуьёѓѓээўўТБd`c`hurtQS\jrjkq„}Шўў§ў§ў§§љјљјњ§љљјћћљј§§ўћњљњїћ§ћѓлжчюяжж§ўўшд–ЁoZjh^U[Y[\ettuzw›ўў§ўўр§њ§ћ§љїєјљ§ћ§њ§ћђшєђїњјѕєѕѕђюдеўўщ„Wxekb\PYuŒaOk}n]tЇўў§ўў§тў§ўљ§ћћїћњ§ћ§§њєљљ§љћњњјљњјёяўўьЈNTdd\]SMPi‘‚vƒŽбўўп§ў§ўњ§§ў§љєѓѕљїњѓљїњћ§њ§љњїњљњѓѕўўь‚Ldnh\^YM<8`‘u‚„puФўўщ§ў§ў§ўћћјјѕєјїјјёёяєєїљљњѕљћћњўўьђoWzujmbTSV\ohj|u„Ѓўўў§ў ўч§ўљњјњѕѕћѕєёяёђєј§ѕєєїјњўўьјmUktvbe]]izw|~vg‹ўўў§ў ўч§ћљ§ђѕјћћўљѓыщшчьєєјѕђѓљўўшшSSrjigcZVb`cenxqbtњўўћ§§ў§ёњћљњїћјћјћљљѓѓььіычтэїѕєёѓўўтЦJEMdc\MIZW\^gmrzoxћўў§ў§ў§ў§ўў§хњјјѕљјњѕѕєїјћњћљјђюђњјѕѓє§ўўэ’~}qdcYUZbdioqp\‡ўўчћ§љљњћјјєѕїљњўћ§јєёїњљјѕўўшуWJaka^LFWT\`ot|\@qўў§§ў ўїћњїјљћњћљљоњ§љљјљѕєѕј§§ўўзOE`j[cWLT^bimuœ‡ažў ў§ћјыњћћљ§њјєљєїљ§љљёцыї§ўўь›LTБ‹vVM^hjckq{uwрўўў§ўўќ§ў§ўўэ§ўљѓёђєєѕї§њ§њњћѕїѓѓњєђёюяўўь{z‰‹p[UIY]cidod‹kƒћўўј§ў§ў§ў§ўўч§ћїђѓєѓѕјћјљїјєььѕѓѕѕѓяюўўэ~OYPaPA\cjjmtzm{Tqўў§јћў§ў§ўћўўц§ћљјєїєѓѓѕєђђѓёьцёёђєєђю§ўўэ{Jn]\VNQV]\etqQ|ўў§§ў§ўўо§ў§ћћўћ§њњћјѓѕѓѕёєёѓђюэыюђёєѓєѕч§ўўэzTiged][a]\Yev~‰bЊўўќ§ў§ўўє§ўћћ§ўљћљњљћћ№їющђѕјѕђёѕёєѓѓяююў§ўўвWAknonhc[Z`ekiqiNУўўњ§ћ§ћ§§ўњњљ§њћјњљ§њўћјђёяєєлёђьщьєѕїѕѓђє§ўўєV7W^\WS]TOTbnq‰aNзўў§§€ўћћњћјїяђєєїїѓјєѕєёьржкцяцктуюїїћјѕєђ§ўўаMCaZVWYTT]W`[`gpQЦўўћ§ўўћњљњїђыуэщчэђѓюёьксцупуюцтббрыѓњјћјє§ўўбNPxc`ja[TYW^]bkmZАўўєћћ§§ћбїђршсзжщѓєђїђэусщьцьурцнкпщђєњїђ§ўўг[]k\SSQV]`\\ѕdj^B…учюєјњњ€œљњјєюыщхлщчёяющьтнтяэёяюььыюыьэёѓѕћўўкm]cVTPSSZ`]`ehp`[›эрЯтьђєљћў§§њљѕёсяющмкжнЦаншэєѓѕђюяѕђєяёют§ўўЩLeh\NUSSac\a^\d^Uўєэыхпщїљўћўћ§њљѓєђхуцмсбЭдйрѓѕѓёєїјј’ђщщь§ўўФVN]YTSTP^\]aigzikЅўўяѕюьыёјљѓєѕјљћјјђяыёэѓьээяђѕљїѕїєїїѕцшщяћўўЖ?AVUMUPFUSNUY[FPPЅўѕёєэёяѕѕєёѕѓёђєѕњњїїьљїјѕђяѓђѕёѕєїђёркрьўўТЈ\NS\VOSVJLU]^aTgiЖўўѕїяээѓѓєєѓщцшьшёяяёєюшьёєѕёёюёящышцтпюшёўўТ\me`ZVWUTY\gciiggЕўўѕѕюєѕљєђёящыедуђюђьѓыххяюљїѓььххмтёѓѓњїїўўšЃa^^WT`TSJEQS`k`JMЃўєщяёєѕљїљѓёышээюяѕљѕѓьщэѓђїѓяяёыуушээєѓєѓўў§•UMOQSQPHPJC-M‰x`VЉў§ьёёѓщяѓѕючспйнпљўў€Ијєѓїѕѕѓѓёѓэуыѓђђэђєїўўђ\BO]YTLUSShzV•ЇNEWЏўўююёьтчщььщррѓь‰‡›ьљїёээїєюыучэђѕђѓђёылўўѓr:E``]\[WVZb\htutzЪўўљјёшкухрзлшшњўњјЄrайЫдсѓєящшяђѕјўѓѓяѓютўўю`5FVNNUPLWYV^bccPdЕўўјїђёэёючцђѓїїЊјёпЛмлхЧЛьѓюёѓяїљјєѕєљјїѓјўўлd9LUNMHNLV[OZYcObbБўўјїїјїљѕєјћјїјђтлЪЦЭЇk•хѓтшчхплцхююэѓѓ€—јўўЯP@[`^MOIPYa[]]Y]pvФўњїњњ§њћїњљћћњљѕячзплюеРВНеслуыцсуэяьщщяёяўўрj]YdYPNQTTV`]\^xorаў§ђїїњљњљћњћїњљјїюсндкьыыѓтхущысЮЭрщщђяђђѓўўрzGQ^ZUIHNSZ\eedeoАўўїњљјљјљјј€ЬяђєѕщрнйтшсхнтсцпеТСФжсшэюяёўўн`3?V[SQOUaa\geob^Žнў§ђёяѓєћљњјїђёыёяяэсббдллмхщшхнплпбнтцсшэя§ўгk8H\[YWci|ƒdMagTPeМшящтсяєјњўћњѕїёчсѕѕєђёююшыэяычнждежтйздднцўўЎ\QMNTLWWLuВ–NQ\a\Ÿюўљюьцэёѓїљјїёђђїєњјјѕєяђѓёё‚яшщшцлгпцрЯгмўђqZSL\VYUVJ]‹œnr}gtшўўчцьэяэяёјєѓђѓюѕѓїєїѕєюєээщьюѓэсрхчшшспмннўў„]tgUQFOMC]po\i[Bzјў§ёщьэёщупнуђєїёёєѕюёђёрмчюѓѓ€мячшёѓююђїѓѓёѕўэndŽpTPEEIQPZ[dd[NŠюўўѕєѓђђьыхьщэсэуцсезцышхйЯзрйзуэђѓєюєєљљїєєўЉNg`B8FWZWYgcaokT:rпўљђѓёхшхшпцтшчёющмнчэшзршщяюяэђєјјњѕїѓјѕєёюўwIj\G5e’g[\uw{}w`EbЫтдзрщшхцчслцэьёююуалтежлучёёыщёѓњїђяьххсющщы^Li]ak‚UE]LPii€ЏdN]МбаущёюэьчпнрстыючсжзрстчхйтсшьѓѓєєђююяёшщмцЮb;@LUjS35џ€zцстзЮЦВВМОЏЋЩЮлуыуммгЦйунЭНТаФбжчцлттухсттуышыщццмзнрмспеаНОЛИЫСлЭакллхппдалгЎАМУКЖЧрхеебЭЭжбРФззмйкрыёячулуђѕђцьђѕѓёєюнжФСЮдмьбЧНЗЖРКЪпптммтссзгОСЭгбаеЫЩЪжЮЪЪечупддутчыыяюььяђюёјњїјїђэцегмьєѓежйЭжЯйзцлщйЖЩемжбФЭдЫйрдЮднгзЫбуущђђютчэѕыыёђћћ§јєјїѕјїђёэяыкЭсцнкУЯккетэшМЕЦзткЯЯЪаЭлмзйдУБУЮЩТЪщѓшжймшчлпэюєяѕюѓёэёюђђёїїѕюђјьужгксспшѓыЮСгбдмкРНЩущлбФНЌЌЕШЧЭсдптзнТЫлекклгмхьђєюхмсцяѕѓѕѕњљхтчузпжлцэьрсхкдУУРШРейзЭбйШЪЭЪаЯЯЮЦлпшсЮМИРЯхйдмущчнсгйущяђёяёјктурзЪЮФЦбЦШмйенчжЩзтеЭмлтшшчцбШСБВЋМбмкНЈЗНжшсгЧбЯйкхщртыычычэяхѕїїѓугШеЫЦзхцххяытнтйЭЧлычлгкеУОСЛВШньэмМбгжзкбайлшусйщцшьнжрсяерыьёрбШЦУакчэцнцюуЪаййагхэптштхссшцчццхмРЩзччпШЭЯжмздежзлгЩШгбзбаезнлайлЭдрючйбЮкщмнпутуупшцтЪЭШСзздЮСЭбТЫелгЭШЭаЮпржкзжЭбЩЯнлйЮЦгебЯакЯедыёэчзлсюѓєэщьэшёєђшсркцюьаЧЪЭпччсржбжйтуейрпчхтйбжнрсСЪксЭжзмсжзчщщштыяђѓтатрндеккгзаЧЫаегЩнцшэяцждЛЎЖЭЮЩУЪСЫкбЫЧжыьыйачясжЯкуьђёщчнсщшцчшыыэскчреШЭЭСЧгЕЧЧейбенжйаЧВКСТРЌЋЋБЮнн€ѓеаЯрпшщсждгзпьёэукЮнуущьчыщткпящкеЯезжжШЫештупцтжснсУЦРЛКЗНЧЭдлЫМЖЯмЯдждхдЪзбрьчжЩЦЫггмучцуткщыцмЯзущйбгЧЯйпруцпЮбдЮЮкжзгдзЮМЧЪЮЧООЫЯйадеНЦзйчцхмаЪззгмнкщяяђєщчпдлхщззнЯЯпсртжЫЩйеШлщёыуунреЮЭРМСШРЗУЧФНАЖУрсмЯДЛФЦНдкыёятчђђэтммкпяхенмнтуэырЭкйцц€њчуйлмедбгЯЧЦЪЭгдеЭЪБТФбннСОЖЛЫЪЦРЭамтрщццыцщшйжтюяяуычртлтсрмнйптйпедпзймыхсрсрпчсмпкЭСЩЯСНРЮШЦдЪЩрнспхтшшжурйстртхяѓькШЩШЭЪбЮджмтркйнкептхкейзющшущутзЯбгЭбЪССЯабзеуэщьёёрмцчпестЯпымЭЭмрлхлзеупкЪСОЪнсчщшкжпдмрььыхчццсмнмаРЦдпжцннтрюёђђэцхущёѕёюьнгЭбддЦчяшхцычнЭЦпнмежжЫпкюяэяшшчюььшчщдУТЪЫЧЪажзЭнюэющчщчтшэѓђђььЩяђщщшхумшьсммьёэтежзккжьцсььяэяцшлйумЫЯФСЯктсггЮдкнуцщххБучшьыщышюяѓђёчяхпмрлщюэтззусстчхпзгсыэтюёѓькЪШРЧрчкФЋНЧЧТЪЭлчтзЪзнтхунуыђјљѓђёьь€ъяьцщщхыыэштрмнсдЭмучхьсьыјїчзбЧЪЭЫШеклЯУНФЯйннЪуыщьэчьыэђёђђэяьђэчхшьёюрпхщррмнжЪбччскнлщѓёёцтйааЫЦажтаЩУМкцаЩбмчхцыьщщцпрцюррыяыцхчяёяхшцшпцюунжцэщштйкззапгбжнзгтущьытпхрсшзШцшррблекжлЯЦЭЮйтщцепущэчэёээёюпгесысйепкЪдгЮЦаЭгймцюячтцсмжжш€фрурхтугаезкШДКУФетнжкмтшээьшщыягЪгцэмРУдбФбЫаддЯШЮШалычудермжбМТМЫдкйлзмтущчЯЪМбыэчйтцѓїѓюьэшщьксэяьмелпЮгйдЫбттгсчйкумледЭЮЧЫЧОРйгдлйжлмхяюёюнгзушщюѓђђєёёящщцеыюющхптйбжЭежлсршщхтцхлснТЗЖСемблбЦабжЫгЭдртптхёёыуущёђэђчхкнщьртухсс€љршшэчлтхкушуслпхпкмдШЪЫзшцчтбйлзЯСКБЛТжлнэщназеааныьрукцэщщруруцыьђјюђѓђыхетгйсмныыхкзгшщшыцйлжЭКСТЦЧдгкрчмЫЪлажуэюяёђѓђђяёюмжнцуысчѓїѓяшхтчтцкЩаршшунсесшёылрпжмзпйЭгмайсннйеАЦЩЮжхнцщпрсцрдептптлхцсрнтхмлплЯбкйплхтЯСЪсытгЫЪФнугаЗОжЮййпьєёшМЋИЦЮйрсаЯЯ€šЮкзгбемсшшрЪлпхёэчрзесщшмйззеЯЯЪШОЛЫкучсжЭестсеЮэјѕћхЭббШепжддпзЦЯбОдпьяюмблтьѓђчщьыхмбдлльяяпФУФСЯпуцьшцхьюужЯетыщтлксччтхлаЫЛЛНОЪежуцюьырцэщэяяцщчмзмзгЯенцщмЮЪЭЭмрхмуцлчукЕШгмшштпккшпнсдШЯЭСИЧЧФТбмпмчхжУЦйтхтссмпгЮдЧЭбжрржблнхёёшыцйЮллОМЩлурчёюыхтхщхеРлмйлрнЯУМкзЭМбмсхухллшщчбУЩНДЯмяѕьтщющэччхкдУдеЦМНШуюыштлрмсцнпчжййгЯкмеаЭЮйбЯазкгКФзалучпЭШЫбкурнзсрсщщуйЯЫЮЯЮФРСМЦлйЩЩбагЦЫжблхчмЧЎНРЯЩЫЮдаЪЭдтткЭЯСУЯбЯЭемкклаТгексрдннбЪНМЪЭЪЗКФЧзплмхэурбдЭыющзйхлгнзбдЩЮкнузнмгагнхцккпхѓчгВЕбрзЪЦЧббдЩЦЯздзжЫШмхлймнхчзлтЮСЫмзьэсхслеайлхекрртуэшщђэшппурЯЗгеещцзпктцмузЦИФРгЪгЯаЭзбзхйдбжЛБЛдцткЯжЩбЫЭнрЪЮжнзнщцутурпррнкдЮШсёђьпршьѓычуЫЯУзйеЭФЫексцпнмОЖБНЯйгУЦееУНЦЯЮЩЦЮйжесцхсёєє–яугйЩЦЮцэузбсьюычшйжжкШЧЧЦЛШЧагШТЭазШТШдЯРМЦЦШдлжЫФИНЩЮдлпццшчщшчмааЮбмцяылнузжншшцрршшлчтЭСМОдЭФЧчснйлбТЛЛšЪЯднлзжЮФНДСжчупзжлсщреЩФЫтьєючрезанпцчщусжтлхзЯзмжаМЛьыычлбаЭЧЛОдггагедеЮРУАЧЩЦйнкЫЪЫЭеЭЮтщяьычыщрлнууірймптсйжЯаа€RелжмнекЮЦУФМИЦзктчсхкЦЕРАЛНТРБЋДЧЫзййгзктузккзтчспкунжжзмстЩбЯагжмыхпннейжЦЩЩОКгтрЫжгйкдЪУФЧЯСНОУФТЦЭгддбЯТЪЮСФйпыяяьцпхцхушсмаЮмчдедйпнпеШФФШЭтсебейЪККУЭдйлдЮФИИЛСзрЮФУКЛОНКЧЧемпшцсклхрунеЯкспцзЫРТЯккттеддЦамтйаНРСЪгежгкттеЭбЭЩЧаЯЮЩСРайЫДуєурсмнммклнснззрплУНЦРЪЭбклпннжррзбФММЗФЧЭЮЫРШкеУЦЪЭЮежжЭЯйаКƒdСрртсрззбпррсйртшнлОСРЪдЫФУОЖЊЛОЭдЭЭ€-ЯЦФУУШССУФЪаЪЮдкхырадзкеѓєцжбШЭенснжЯбЯЯжншюыпСЭЯгкджЯСФДВФЭжмснзмхыштмлЦЪдкабзургаФдезЦехрЮЮЯджжйтркжгдЫЭЯЪмтцщурйЫФСЖЕДАЎКЮкццпеаЧЫЯйлзуыужпшсЭЯнебЯкедЮЯейлзпкжсргезЪФЫШсспбжпебжрпЯФШЧЪУСЧамппЮЪгчяцйтруыщщчшыранеЪбЩецххпптмлбгйнежйхтййндЮжппцчтслмлЭСЧЯбеббйлйзщчзрежлркШЛШлкмЭШЭЪЫбгебймзаерюьхкбмдЫЯЪдШМШзшэрццщсдЪЦЦСЩЯЩдЯепспжЯРЩЭдэшпдгдаЩбеклгЧКБСхыящыпкЮаЭгбдксЭЯйкршячшрпплрлкЯпрпеЩЦЦЪУНжджззьёщллучулрущюрСЧйущэѓјѕьгйггдазечсшшэщьёцмксцхштрсррзаЩУШЯЮЫазжлмхьлбрлЭдлуунлаЯасьщщьшцмгдмйШФЮттйншшсмзтщщрчуулйпщхжЯФРЮпуудЫЪарпрктщпйлспуурчьёёяяёђючжгзгЯЭЭяїљјјїёєєѓёђѕюђѓѓєєхїљєѓєђєѕёѕђљјњћљњћ§§њјјѕљљњњнљјѕїјјїјёђяђђћёїљјїљјѕїѕїљїѓњєђђѓєѕѕјљїїєєѓђѓѓѓљјљњћћ§њћљћћљљсўњљњњ§јјњїѕђяє§ў§ѕєѓёђѕїїњјњјєѕѕюёѓяёєїљѕїєѕѓїїјјїћћј§јњњћњћ§§јњћўћ§§ўћћіљєїјјћўўњїї™ђїєјїўєёѕюѓєєёєђђїїѕјїїѓѕѓїєєљњљљјњћћљћљњћћњ§ћћњћ§§љљјјїѕјыјњљѕњјїѕјљјѓєюыюѓѕєѓєѓїјјљєђэяьюђїљѕѕїїѕєѓѕљљїїљњ§њњћњљљћњшљўўњљћјјѕјћ§њљјјёїѕєђјѓєємїєѓђёьёђѕјђљїїјєљѕёѕєјѕљєљњљјњјњљњјњњќ§ўљјјгћѕљїїјїјїѓѕѕјђёюїяєєїїєљѕѕјђѓёюѓѓїїѕёяђєљѕљїєєЦѕћїћљјњњљњљјўћњћ§ћљђѕїђїїђєљљѕїљјїјјѓїјљїјєїѓяёьяђѓјєєѓёјїїьѕїђљїњљљћњљљњљњљўњјћћ№їјјѓѕїѓѓїљњљљјљѕѕЋїѓѕјїњѕѕјєђђѕєѕјїѓљяѕљњѕєѕѕћљњљћєњјїјљјљўјјљћњћњљѕїѓїјїјїїѕјњѕїїњњјїњљјњєѕєєїјїїєѓїєѕѕ•ѓѕѓєѓєїїјјљѕїєѕєјяїљјњљјљѕїњљїјћљѕїїѕњљњјљњљћљњїњѕїћјјѕђѕѓђљѕєѓѕїјїѕљєєјїјљљєїјѕїѕёљјљїјњјњѕљєјћћ§їѕјњљјјїјјљЭјљѕїїјѕљѕђјїјјїѕїїѓѕѕєјѕѕјѕљїїѕљњћљїѕјѕћєєѕѕјјѕјјїњњєћїљћїјѕїѕѕђѓѓёїєїѓёєђєїѕїѕїёђђьяѓѓђэяёђѕѕјїѕїѕїћјїљљсїњњљјњјљљјљњћљљћјњњѕїђѓѓђїѕюљяѕѕнјїєїєєѓѕђђёюяыыююєѕѓѓєїѕїїјљћљјѕјїјјќѕљѕјјќњ§ћњњЯћљњћѕјјљїєїєѕїњјњјїљїљђљѓєѓђђѓяђєѓєѓєђєљћћ§їјљѕњјјќњјєїїКјљјњћћ§њћљјљљћјљњѕїѓєїљјїєјєђѓїѕњјјєѓѓјђєёёяѓяѓєљїёѕєєћјњѕѓђєѓєјјњўњљћћщўћњћћњњ§јѕјјѕњћљњїјєїњјјкљћљћјјѕђєђюэюєђѓѓёѓєјїїєђѕѓѓєљђѕѕљљў§ћћњюљњћљњўљњљљћљљјћјћњњјњљїєїєѕѕнєђѓјјѕјђ§ђєєѕђјёєѕєєѓєѓњљћћј§ћљњјїњњПљњњўћћ§њћїѕїјљњћњћїјїїјїјїљїјјѕњљјјїѕїїєђѕєїѓјљєјљѕљљ§љњјїњєј§љљњњљћњњїјѕњњьїљїћљїѕѕєѓѕљїјѕїјѕѕњњѕ§љњљјјѕєїїјјњл§љљњћњјњњїѕїћљљўњѕєїѕѕєїєћ§ўњњјјѕєєѕјјцїјїѕє§§њњћ§ћњїїњљјѕїєїєњїњњяћњћўћћњњћњћњћ§њљјјћїљўњљљщ§љјєѕћїљјљјїљѓђњњћћ§§ўїїьљїѕїїѕєѕїјљљј§њљћљњћћмў§ћ§ћћ§§ћћњўўћ§ћ§јїљјњїјљїљїјјїїњўўњњщћјњј§ћјјљєєјјњњѕѕѓљљјљњњљї§ћ§њћљљ§њњрћњ§љњ§§ћћјљљњћњјљїїћњ§§ћљљј§њ§њћћђѕїѕїјїѓѕѓѕєїѓјјћњјњљћћињћњљћњћ§ћћ§њњљњњјјћљљјњјѕєћњ§ћјљјљї§ћў§ћћѕћєјѕѕѓѓѓјћјѕ§јљњњ§ўњћћ§ћўњћћўў§§Ањљћљљєјј§љјћњѕјљњљ§њћћњњљљњѕєљљћљњјї§їїњїєјјћћљњћњњ§ћњјњћљћћњњћљњљ§љњї§њњљљћїєјљљјХњєјњњљњ§њ§њњљїјѕјїїњўїљћј§ѕњїљїјѕѓїїљјїњјљјљ§ћњћћ§§їњњљїѕєѕѕтњєјѕјѕјїїјљљњћћїљњњїјїїјјћљјјњњЩјїїђђљљњњљїњњ§ћћњ§њћљљјљїїєљјѕїњѕљјљљјїјћњћљњјљњјљїєјѓїїќјљљњњ№ћњїњѕћљїјјћњ§њћ§§їћ§ћњјјїїјјЙїєјјѕїљњљј§њјў§јљљјєѕѓїїєєјёѕјїљїїљћњ§њјњ§§ћ§ў§§ўўћ§њљљњњјїјјњљћњћњїњјљљтћљњћњњћћљѕїђѕїїј§јљћјљєјєїјѕїњњќјњљњњњљћљћљњњјћјјљњ§ћ§§Рўћћўњљ§њљњјљњљњ§њїїѕїјљ§ћљњљљѕђѕѕњѕјєљћљњљљѕјљћћљњ§њў§ћјјћљћћ§ћ§§ўн§ћћњ§ї§њїїњљћљњјћјњ§ћњњјљїњѕєѕјїјѕјјињјєјљјљљћњћњљљїјјњљјњћњћўњћњћ§ћњјњїѕњјјљљњћѕљј§ћћњјїњјћїїтѕњљњњљљїьёяђєѕњњљљѕїїѕљљјљњјћњњЦјћњњ§ћњјљїјћњ§јїјњјїѕїјѕєљѕјћѕјїђљїњњ§ћњўыюэяєєјѕјїљїљѕјјњњљљњїї§љњњћЫњљјїњљўћћљјѕѓєїѕѕјљјњћњњљјњ§љњ§ўљѕѕєјѕїїєєѕѓїєѓ§јњњћњњтљћњћћўњњљћљћљїљјњћњњєєѕєїњњјљњњћјєѕѕљљќјљїјјтњљїєєѓёёєѕѓјјњјњљўњїјјљїњјљњњјјйњјјїѕѕјјћљ§ћњўјјђјђѕњјњњћњ§љ§њјљјєђѕљєѕѕшєјњѕѕїњњљљњљњјљѕїєяѕђїљћћтљћ§њњ§њњљћїєїѕѓїљўћњњљњњћћљјћљљпјїїјїљђѕї§їјљљјїљћјњјњјяёїёјљњњўњњЧљћћљјєћїѕєђєѕѓјћљїљјњїјњћјћћљѕєѕјјѕєјєѕѕїѕјїњѕѓљїїјѕјѕѕєјјѓѕљїјљјњћљјѕѓєєцѓяѓѕѓєљјїјїљїѓїѓљјљђѓёѕѓјїїѕ€„јљјїѕјѓїјјњљјѕјњћљєѓёїњјїљѕѕїєѕѕѓѕєјѕѓјѕјјњљїњїїєїљјјњїѓљ§љњњїљљјњј§љјћљћњћњўњњ§јїђѕјїљњјєїїњљњјјѕїѕєєјєѕїїјљљїњјїїјєђљїљ§љјїјљљўљњјјюљћљ§ўљћљњњљјєљёїўњњајњћњўњљњњєјѓљјљѕјјћћїљљїєѓєѕїїљїїєјѓѕѕєєљѕљљњњјњњћ§ѕћљїѕѓјѕљљњљљщћњћљєљѓјєѕђёђђѓїѕїїѕёѓєєѕїїєёёѕїєѓѓєєјјњљњћћњћћНљњєѕєїїљљјњјїњњћљћљљјљѓђђєюёѓєїїђїѓїѕїєєѓѓяєѕїїјѕєѕѕђѓєљ§§њљјјљјљљєєјјњћћ§ћјњњљЪњћћљљ§јїїєѕѕѓєѓђћ§ћњїїєѓђѓёєљѕїјїїєєјѕєѕјїјљљїєѕѕїїљњ§§щўћўјћѕњњћњћї§ї§јјїѓєїѕјјљхјљїєђёѓѓёјјњћћљїѓєёјђѓїєѓђѕѕќїѕјљљяћ§ћћљњћћљјњљјїєїљљљїљѕїѕїљљдїѕѕєђєѕѓѓјљјјєѕїјёјёђђѓѓяђђѕѕїїјљњљјћњњћљјљњњћбљњњљїўїјѕѕљњѕљњњљњїђєёђѓјїїѕњљћїђёѓєѓѕєѕюэяђѕїјјяєїєїѓѓїјїњљћњњћћњњюћїїєѕљјјњїјѕјљјїїѓѓјѕѓѕњњјєѓѓїєїјѕїјєѓєєшѓєїѕѓѕѓђѕїѓјљњњљњљњћљћњљљжјїћєѓяюђѓђїѕїјјѕњјљјљѕїёђѓѕјљњјїїѕєяђђѕѓѕєєЗјєёэцўўћћљњљњљњћћљљјћљјїѓѓяєєїїєїєєѓјѕјјѕѓѓёєђїѕїѕїїѕѕљєѕѕљњљїљљєѓэС•хћјљљќњјњјјлїљјћњњљђђѕєєїѕєѓђѕяѕєєјјїєѕѕјљїљѕѓєѕєєшјњљѕјљљјїјўў§јљѕјљљјљљїѕѕїєѕїјљњїѕјјчїђёєюёяэђєјљњњљљѕїїјѓњјљѕѕэјїѕјїљїјѕћѕѓєјјљљњљљјїєїєїѕѕњњяїѕјѕєєѕђєёяяёђѓѕїїћјѕјїљљўњљљОњїїљ§њєїјјѕѕєїњњћјњїјњїєїѕѕјњїћѕљћњљїјјїєѓѕєєђяюѓѓєѓѕєїїјјљћўњћњїјјєїѕјњѕѕљєјјѕњњјіѓїјљћ§њћљїїіљєѕѓђѕїљљјјїуѕєєђёѓѕѕїљћјїћєїїјјїѕљїєѕёѕїѕѕєѓєђѕїјљјњњљњњєѕшїђѓєєѕїљћњњјјїѕєѕјѕѓјєљѕѕєјѓїєјљїљїїрєѕїїљјљјєѓѓїѕњњўћћјјєѕѕїїјїѕїїјљљхћљљјїљѕљѕњѕїєѕїѕѓђѓїюђђѕљїјјљњёјєљѓїњњћ§њњїћєјјОѕѓјјљїјљњњјњљћјјљїјјїјѕѕѓѓђђяєїїєїѕљњїћћјљњјљјњћљјјћњњўў§§ћљљїєєїјјЮїљњљљњљћљјјћјјєїљ§њљїѓђїїјјєєѕєѕѓєєјјљњњїјњљјјѕјјњњіљјѕїјєѕѓєїЇѕјѕђынагедЧЫуяђѕѕѓёюышьјюнктшрьяєјѓѓєјљјєѕѓїјћїјѕїђђяѓђѕёэйездщжюєђєёѕђѓяээђыЯЯрндесѓєєѓююЏьтпььёёєїњљћљљѓњљ§љ§јћњ§њћѕѕюркьюїўщскзлгзнѓѕјёёюёёэшзйрчюьэцстющрэюђјїѓяѕєћњўљ§ћћћњљ§§ўўјћњїєщьёўўнђёюэыюэђѕїѕябущѓыскццуюѓьыяёьюцэѓїљљВєљљ§њљћ§ћ§§ўћўћў§§љњљљїяпёєђюшыђэюѓљєкЦжшђёшхшщыьѓюьшзЦршцлхѓљєющѓїјёјї§јњњўњћћ€…њўљ§ћўњњћўјїёьяяёїњњљьншыђёьтмсѓѕђссжЫШгшыщёёѓєяюырёэѓяєщюїњљћјљђјј§њ§њњўўєѕєѕяюяђѕћјєєѕюыпнжпкюэяыюясхшэючушхяѕєѓчпанђєёэюѓѕѕѓїюѓѓљћћњВўёїѕјячурсщптшьэђѓющђђёчэюѕјїєђырйЭЪЭдяёѓтЮгтюљєьхьцэђїєїєљїћїћїўњљњћљјэшщьсюѓѓј€тїѕєїёцшяљїятёэпнзеЮкяѕјьйчюяѓэыщёѕѕѓѕєѕјњјїяїјўюђљўљєэуцуьїїјђьѓјѓшщююёђљѕѕѓњїїѓѕђѕїѓѕїьхуэѓѓёшуьюёхяюїѕєыучѓцььэюѓєѓэёяяэљїљѕёчыѓђёѕѓяєљїјјєшшхшяђыумущпттэюущяэшђяэђєђђэшьђђѓчцьэышёячэюѕјўїєяѓљ§јљѕњљњјљљњѓѕєѕїїэпщхёїїєѓёьёёљёёЄѓяѕїєюёђјєјттюёщьшэяэяјјњїїѕћњњѓыєєяээёьыьщмхчышсяєїњїјюьдЭдшчррмнхюётнёљјїээєїѓђэђєњљњљєєѓјјПљѕїјћђђѓёстуцрсцррпяёуьююьямззммзШЧФЫцюяёышюѓёїѕѓёюуьэјјћѓёцяѓѕѕњњ€Эљїєїјљёэшёююыхшяєїѕѓђёяїёётхлнмперцьђчееыѓэѓяяёьчэюђѕєюцруышяїєѕѕѓѓљјњѓђюјѕёююххэёёѓѕђтышшчююяэьючпсыщлекпчьщящлряєїѕєэхсьяэяѕѓїњљљћљљѕѕѓјїђяяшыюђѓѓюшуэьюьѕјљјїѓїёђчнлрскдлйсрезпяєюшббсщншэїїњљ§њ§ћїёєєљјјђђЊёђњѕљђщюђѕјѕєѓёђюььхюустщпяьэщщзртэяянтзтшыхйсѓєѓєјїўљјјљїѕєњћћњњїјїјђѓяѓђїљїђѓюэѓђэёєєЛёѓђѓёяёюырсымукыщяьщщѕєѕѓєєњїюёєёѕѓљїњљњњђцюёяыюыяѓєђѓёьёёэёјєђёёэјїєє№ђяыщщыыэцльяэёєїїћљјљђѓѓньѕђѓѓљюущэяюїјєђєѓяымбшђђєѕїяѓюьїњјјёљїјѕїђђящмтяђьѕѕЭљїј§њ§љѕјјї§њ§њњђяхшэюђћјјєїїєюцщѕёёэїёыюёјћљљїњјћјјІљђэутшюхщэяяюѕњљњїїѕљїњљўњ§љћїјјћј§љњїњјјёђјњїђэёяяђёњјѕњјћљ§јњђђѓѓюьтныїїёьэшюяђєјїјєїђїњњРћљњјћњ§љњјјєљєѕѕњїїяѓѕѕїђїњєєьѓљљћјљњїјцыкыёїђыепуцрцхѓєєяьюђѓѕѓѓ§їњћћшњ§љњјњњѕѕњѕљїљєѕѓёѓђящёїїјфї§ћћїящучщхшяюэхсспыєїяёѕїїјј€љ§њўњўћўњћјљјћљњїјїѕђєєёыцюѓєјђєяљљ§љѕѓѓёычшьѓѓюуурђѓюшыёїєћљњѕљѕєєјїљєїјњјјѕњљњїѕѕїєјјїёёѓїјјѓёюяђюыяюѕєѓѓїєїјїёяђїєєѓьѓјѓђьєяђђяьчуыюѓѕѓюяяјїњћљћћљўѓђяѓєѓяядёььээщэчцэёњњћїёѓѓђюёєљїєѕєїјѓђюяёятжзнтєєѕђђієјљљњјљјјщщѕАёлсыыцщыяюёььхшёјїћѓюяєєѓыпнсшяяёёѓђїѕїђьтыёєљїђєѕњњўњљљњѕњьђѕїѕѓюяђхэёэыэѓѕѓђєѓѓрєёюьщчшшцррыюьђѓююїѕћњћїѕёђњјљњћћіўњћјћїјюѓљљїађэюьюђяјєјїѕєјѕѓѓђнмбтьѓюѕёщяёшсщэѓѓђѕїјјћљєѓїљћћ€ѕїђјїўєѕїјјњјњјћљљєїєѓєјєђяѓєѓѕђэьчуяѕїљѓэѓёэшпмктсшэѓїљђьщюээђљјјѓєїћѕјїїѓњїјћўћўћћњњјїёѕяїѕѕїјѓїяяѓљјњјяѓђыркцуђэьэєєѓцщьђяѕїњљћњњљћїњїђяїѕѕЖњј§ћ§јњѕїєїѕюхяђјѕїѓѓыђњ§јѓїѓюѓяѓюыыэюѕђѕђёщгннуыђѕјћјѕєѕѓэшяѓѓѕѓёєэђѓїјєѓѓЇяыяђѓђљђымщєљєящсрђѓящчмэцэяѓљћљљдУдухэђёяёэюшюяяюяђѓєєяёёѓјћљїѓяюѓѕєёёюїьэьчхнльюѓѓђющяђђФяђїћ§ўєщщышђёюьюяьсщшнчђјљїђэёёњљ§јїњїѕєяюяёѕћјѕупхцщѓєєѕјѕјјЧѓьуяѓљћјёђђєїїєяцхймнтхщэѕѕљњљѕјєјљњїјѕѓёёяђэьюїѕѕёчтщхѓєє€Цѕјїєѓькпюђњђїяєѓјєѕёэцьчппщпртщюяёјђющыёѓёѓђђэяытчсцюяєєёяёѓљјћїѕєѓюяьпжьђїѕљјїїјєѕѕїютёєёѓяюьцтььырьёѓєђёяѓњїїюслрйэёјљјїљјљѓїїєяёцяэтлзшѕљњјєёєђїђјљїѓєёюьёёющьтэхучэюыррыэяјєющыщыяѕђяьєђѓѕљјѓшщшштт€ЈнйцээпцыяцшучьяѓїэуЧЪсхсцщэщчщёюђэщхрпьюэчяёђёёулшѓђђяэяяыынзущшрзстьяѓђїѕєяыьыїљѕёэѓёѕђёэящыяѕђєёёяьюѕєєђєђљїђтЫкьёѓырхьэёхщшьээшхнёђююёђїђѓѓєчншяюјѕѕєђюющѓїїююђђѓјѓњљљ€јђѕїђщешьёљєёяєѓјєєюуттнятэцсщєяяёёюьыйЭуэѕђђюьсшршюђчэяђёјѕјѓєјѓєјѓєђычцѓїљњјёѕўњњёёычпяёђтурчыёѓёяюззжкцёыунщшщыттшунтээђјѕєњљћћьљїђэптчѕїљяюђјј§їјђяяЪпмулжпйрщтрщчьттхьшржзршэюэщкпнтчьёєїјѕїѕјєїщштыёѕљњяѓѓўьѕѕєзѓѕјљєєэыжууёмпїѕѓяяюцйебсшюђюяюыткемшѕђёяя€ШїѕѓэшыюїћњњїєёђыяђјїљјєэђљљяюьѓюэпеѕљїїяюццхлмюяэюяьэьылунунсяёььчщыэчшѓћљћњїїљїѕёѓѓїђюхѓђѓёёцэхыьёяїђєыэумдкпхюяѓїђїёсзлЫкжттЯЭЩпщьээяюђяѓяїєїђєѓѓђѓђёяёёѕђёюьыюшёїїѕѕђяюырыхкйыђѕђђяюььчпмпшпдлеутпхэьь€Œщлчшрчюђљљћјћїјѕјѕїєёщыёєыььёяєяьрммршђяяюёэчддпуьёюьхсйлесыючнймйплрмрэђѓјѕѕєѓѓїєєыђюєїєьсмрхюыїђюьыуяєјёэйлкчьюяєюєђэллнхпщухссншыщзјўѕєѓђђ€єђјѓѓђђяёяяспмншыьѓюђюёэѓђєчпекдучщчщхтюяхьчцыяяёђяьькЁqжєїѓѓюёяюяђђєёђѓєѕёпмсыюцнмкйЮййььщщэшурсттзпсхчцпхчїєїєэёђђюўўѕєёшнэђёђђючцушяєљїѓршьяяФщцухЮжсщшѓѕјёєєїєєѓэуыэёщщђјѓячщэюэхэѕюььээюяёђёыышьшшцыђїѕѓѓЇьхркезжЫЩзпюѓѕѓюытшяёёѓїљїюёєѕыщэщцыёэьщщђђѓёёьюэяцяэщцушёѓљюђёёуёяюухнпллжмуьюђщряїјљђїєєјїдђюяэчээюёјјѕђѕёэюэёѓєѕђїёыэєьэюѓьѕѓѓђѓяђупцщщЬцёёђёїјљяђьёѓїђчмхьёьщхцхрцщэчюяьяяћњњјєыёьтуђщхкньїїђѕјѕђцлнллпхцьяяжѓђьхкцчёѕѕёяыьщьыыьёьцегрђѕћјњяяхшцюьэюїщюю€€ёјјїѕёяёёѕёюьяяђђьлшщхйшшщэѕјњѕѓѓѕїѕёёєїѕђуьюєїљћћљјяяээьщюёєѕєњїїјњѕєёёђєєѕђєєѓьтрлмчрштяёєєњјѓяђяэщёђєђёяысђњљљћјљєщэюэхчюѕђѓѕѕвђєяѓѕјєєѓѓђѓєљєёчхкыяѕѓьтсыєђђюѕєѕяяђѕяѕђѕєјјћћіљїѓёэяьтлуџдz:?4(EHZ]a98+,82>CLGA)<3::$CgkT`яћ§њ§љњјјњђїљѕѓѓїћјїљїѕѕјјјћљ§њ§љљћћаЧ`0?HLH@GMJB3,NUWMCMО§§єѕѓєѕїњїєѕѓёьыыєїїјєјјњјјўљјјољћ§ћўћ§ћјюj(8>ABME170+1COQZH’§§їїъјѕј§њњ§ћѕёюёѓѕїїјјћјјїїјўћ§§§њћ§§ф‡ :@5<,09<4-;,>OBuћ§ѕїїѕїїєјљєђёєљїњјїјјљјљљїјљјљћћуњјћћВ{ZL:@G84+7BECAB&;Y]‰љ§њїїяљїњњљѕђююёїњ§њћћјјрћњ§ћћњњљљћјїїњј§§ѓФcMBIEI@:0--GHHї;>THcє§§љљўћ§§ућїѓђєљјћљјљћљњ§њјјїћљњјљњљљњ§§хїѓp^7:HIGB.8?ACHNLM:(5GILIN3Gы§ћњїљћћЇјїѕїњљ§њ§њљўћњ§љўў§љљћљћњћњ§ћњ§гзцШaO)*7JHE:59-74:HSr23Дј§јћћљјјєђяђїјљ§њњўў§јљњљјј§њ§§њ§§пњ§§њазьјwY9$4TД§§њ§§ђљїїђђјћ§§јїїѕјјљ§ўћўўзњ§њЧЯмѓЅJ8)LWP<.7>(&-&BN3G[Ћљ§јњ§њљјїѓяђїїњєљљњў§§Шљњ§§њљ§ўў§§ћћжбьёгUA8LUG:945-8;NHAASAAзE;SH`ј§њјєјњїѕѓѓѕћ§§њњ§њ§љћ§§ћљљћјњљњ§ћћљљхїкмяп‘\:1ELIF7EHMIAFCNPodqћћхљ§§њћјїњљњњ§њњћўњљљћєјљњ§§њњ§оњ§њ§ушыЮ^M95GGE:9GEEB95@:8Veц§ўљўў§§љјј§љ§ўўњ§њ§ўдњўћћўыцпчЩV>-;A7:-00&-580;;Thјћ§љњћўўњљљћ§ўўњ§§ўћўўўћўўњл§ўћѓьѓћєe21>CGG?EGB>3FNHGU[aЈћ§їјїјїєєѕјћћ§њњѕљ§јљ§§њњ§ћўўЭћчшхюєТVM@LMEIIGAF;3NTPNHFC@+"HJMV]nљ§јћ§ћјѕєѕїњїїљљ§§њњћљљјјљЯћјљћ§љћњўћшшыьєё~aO?Y^SLHIJ@)EQ@>abeшўў§§ћњљѕїјљњњЧјљјњ§§њњљјј§§њљ§љљј§§ўўєєюѓјяnEYMZcVI>FC?@EF.Ex[bАћћ§њњјїїіњ§њўўћўўћўўњ§§љўўзњ§њёёѕяѓї•O<CTL@??:;7<@B@B:CCFGM\b7pэ§ћљ§љљћ§љњљўўћћўўўћўўћжўћћўћўзднкцьКSB&-LFCA;+>@33>EQW,CЭ§§њљїљ§ўўћѓўњћњђњћњљњњўћћеўљадЩСЖУЧmTPAGLJ52+*#5GGHTWMdЛ§ћ§љјѕћњўўћ§њњўўљјј§ћљћћЧљћ§§ўўћўўйлнЪНСТi;-3JONG8935\MEHACI]‹ћ§јјїѕјћ§ћћљљєїјљ§§њњ§§њўў§ўћўўйгрчпдхпYT8LMJFGG?>?A9@98@:{ћ§ћјєѓєњљ§ћћњўћ§њљўўўћўў§ћњљїњўўлщэюыущнЕTC-NTJIG?EFA??HGELSO?@<%TvFFIJ95gmжћ§єѕјљњ§ўўјљћўў§њўњњ§њћўЯ§ФРадснюьЃMPOML;2.+8A@AC>8418CB@<@7*4Ђћщюєљ§ћћўўіћўўћў§§њ§ўўвћўњћћўў§љЮйзЦажпырpC.:EBIEGMPNE]Щ§ћї§ћўўњњ§§њњўўўћўўўћўўжљѕѕїњЭКЗЕСЪжРЭƒHQ]LH44(8@C?FELPgN@ž§§їљјњ§§њўўћўўўћўўкћўдбСВЖЕЊВА>@E@4:4(C?8077CNNFL”јћњ§§ўўўћўўѕћўўћўў§њћћўўйћўўрцчцлббИбжcJTYG@?%*49?5;;F@78}ћ§ћљњўўћњў§ћўўў§ў ўмждйегндбяцc@EPPNB?3:;-A9BEBI5hяћњј§ћћќўћћўўћ ўлздгаЯждлёзd7FQOGE:@:@FPP@9;N.1,<AHEMLIQA-Ёћ§њў§љљёњ§ћўўњўўњљ§њњљ§§вљњ§ўў§ЯЮаазрнЧшю‚BBTG907:892:FE@;NWOј§њњљћ§њў ўњћњњћљ§§ўдњ§йнсттцппьёЗ3<[PFEA?>:8AE:B@?:58B7eљ§ћ§ўўћћўўћёњ§њњ§ўњњ§§љ§њњўўц„I>:?:LPS\A:<<:>CV`Bzўўљњћћ§ђњћћљљјѕѕјљњћњћћињћћњљњњљњћћљњћ§ћ§њ–O48<7>,)@F?:CLIApўў§Нћњћњћњљљњљїјљњћњњљњљљјњњјљљћ§§њћњћњ§§ћў…44<2GkoWhїўў§ћћљњњљјјѕєљњњљјљљњўћ§§ћњтхh1CIFABBGMI?50UZ^THTЦўўјјїѕјљљэјїђэщђїљљњћњњљњњ§ћњњ№ћњћў§ўћњћўr)%8<>>ь;><:2%7IZW]L‘ўўљљћњ§§ћѕјѓяѓѕјљљњ§њњќћњљњњ§ќћ§ўћћс§ћў‡!%"8<;244AF9:A&AZIvўўјљљїљљіњјїєђїјћљњњћи§њјљњћ§ћћњњљњњўЛ‚\H2>??134CME@>2@ZcŒўў§љљўјљљјњѕђяђљ§§њй§ћњњљљћћњћћњњ§§ћўгbSBEFC>.03@FIMIHE]Giўўћъњ§ћ§њљѕєїјњњћ§ћњћ§ћ§ћњњйћ§ћћ§ћћ§ћ§ћўўvg2AFG@7<;@BELQNL@;SНўўћ§њњљќјљјїїћјњљњћћњїљњћ§ћњњ§њњљўћŽeBBHHыC@@:9?EJuZ9?HЃўўћћњћњњљї§љћњњћўњћћњйћљњћњњћњћћ§§ўўŸT37FEF?<@C?:--:TjUIŠўўљњњћє§њљјјњ§ћћљњћћљў§ћњћњћћњ§ўў§ў§§ўй–>97AEG943;>:59@@VI>\ўўћњњћњћњњљїѕїјљњљљћбњћњћћњњћњћћ§ћћњњјљјўўа^P9?FG<4274937>OwPM^яўўњћћя§њ§љїѕїїљљњљњњћњљљћњћњљњњљўЇйrW?+;9>@A84Yx^žўўњњћћњћћњљїљљћ§ћњћ§§ћў§§ћћїњљњ§§ўћ§ћћјюрЧzdGAA:>?F3A?pўўўћ§§ыћљјљљћ§ћ§§ћћ§ћ§ўўћ§ћ§§ў§цћѕясjNA48>IFEH>;>HPONZ4Hёўўљћћњњљљјљљћћ§§ў§§ћўўћмњ§њ§§ў§ћюєўьoW71?@ICC@@<:E:G[w43Сўўњњѕћњњјєёѕљњћ§§їўћ§ћљћ§ћ§§юћ§ћ§ћ§ћ§§єєўўƒbI*>>с<8<@<:B>]^E1`Уўў§§ћ§ћћљѕѓїњ§ћњљљњћљ§ћ§ўў§ўў§§ў§§дѕѓўўЌQE-GSNAA?7:9?;SU9G`Кўў§§ћ§ћњљѕѓѕљћњћњњћћУ§ў§ћ§ў§ћ§§ўћў§§ћћњєєўўнbG3HEIEA@9:7BVNSEQ>ўўљљњљњљїѕєѕљњћў§ўўћ§ћ§ћњњЬљњћ§ћўћћњњљєїўј‹M(?FGEGC??EHEFJAVNcўўљњћњљљјїєјњ§ћ§§№ўњћ§њћћњњљћ§ћћњћћхњјїўўЌmF9HHC>IJMNQLBIUYmeuўўьњћ§ћ§њњљљћ§§ћ§§ўў§ўћћњњћ§ћћ§§ъћ§ћ§ћјїўјЕk^?BAHGGIHEFFјGM:8Zkыўўї§ћ§њњћћ§ўў§§ў§§ўћ§§ўћўўќ§ў§ўўх§љљ§ўнeP3;7>9><8JF{ўўњћћњњљјњћњћњћњ§§ћћў§§ћћѓ§ћ§§ћћњћў§ўћњњўгзB9@IMQOJCHE;$&GQJ\aqўўњњћњњјїјљљћњћћ§ћ§§њћћњњћѓ§ћњ§ћњ§ўўћ§ћўўпˆeP8PQMCCJNF0IVF?dikёўўћћњљјјљњћ§§ћ§§ћ§§Шћњћ§ћ§ў§§ћћ§ћў§ћћ§§ўўtLSBC<>BF7QMbV˜ўўњћћљјљњ§ўўќ§ў§ўў§їєјњўўЋJ?2>@FIIєGLNGEBFNSA{ўўї§њњљјћ§ћ§§ќў§ћўўў§ўўњ§ўў§§ўўћ§ўўѕјјўщТPM:@EEB>GACHJGFF^h;wђўўћћў§ў§ўўў§ўўќ§ў§ўўп§ѓјєёћўк`I&)BF@48:9?@FA:237AH}ўўћњїѕљљћћўўјћ§ўў§ў§ўўћў§ўўр§ўўњјјѕјўўЮ[B2CJONFBC@FF>CLB3[„ўўњљѕѓјњ§§ќћў§ўўў§ўў§§ћ§§ќћў§ўўѕїнјўўлOH>BCFGHGC@C>;HG-25Јўхђљћ§ўўў§ўў§ќћ§ћўўў§ўў§лїѕђїђє§ўї|L4A>?GIB>>BGQoOBЇўўљћ§§ћ§ўа§ў§ў§ў§љїєїѓящэюЋP>:>EOZEM–ўўљћ§§ў§ў§ўўќ§ў§ўўў§ўў§ћ§ўўў§ўўсјѕјїїєјюўэkS[\MI>:?A>8:|ўўќћ§§ўўі§ў§ћўў§ўћў ўмљјѕѕјѓѕєўјeAOLQNH@GA?C>CCAGH2cјў§ћ§ўўм§ћјѕѕљїјћўїn8BLPM?>ABAJUQEAFOAQяўў§ў ўў§ўўћ§ўў§ўўн§јљњљњїўўю^;BIGA9.<;:CTZUFIBFGнўў§ўў§ ўў§ўў§ўўљјјрљјјѓўў˜BC?>IJPNЃўў§§ўњћўўў§ўў§ўњћћў§ћпјљјљєѕїўўФAC[QLCG@ўў§§ў§јћў§ў§ў§ўўў§ўўоїјљљїњљїўўм^J>AB>;788VMQI?@>;:ўў§§ўєћ§ћў§ў§ў§ў§ў ўе§ћїјїѕјїѕєњўьoP2@F?8154)CUQCB952Єўўћ§ўў§ў§ўўљ§ўў§ћ§ўў§§ћѕїїѕшєћтa2*1LC187>8EF?8:<5hўўў§ўўќ§ў§ўўњ§ћ§§ћ§§њћўћ§§ўў§лˆNQQNLT]]kQIGJIMYduUŠўў§ўўћў§ў§§ћўњћљљ§іў§§ћўњћћў§§ѕў§ў§ў§§ŽZCNN№I7,&0LONM1V][Pўўћ§ў§ў§§ћћ§љћњћћеўћ§њ§ўўњ§ћ§§ў§ўћ§§ў§ўў‘@GYSGUPTLPQYT>b‰ˆnzўўћўњћћѕ§њћїћњ§ћ§њ§§Сћўћўћўћў§ў§ў§ў§ў§§мpEU]dOM[\\aNSFqxvdZbдўўћћњ§љ§ћ§љћњљєюєњњ§ћўћћћўћ§§ћћ§ў§ўўс§ўўz;:QPAMNFNTNI8I\notdЉўўњ§ћћ§§њў§ўћћїїюљћ§§ў§§ћўћўњўћў§§ўўЇ§ўў•(!32BBGCHSSPLMVEZpZŒўўљ§њўњ§њ§њўњњѕљњ§ћўћўћўћў§ў§ћњ§ћ§§ўћ§§ўћўўЯ’{\LICCECQV^WWTBSpvЅўўт§њ§њ§ћўњћљјљљњў§ў§§ћўћ§§ў§§ћў§§тўћўњ§§ўўпzh\[YM?I@HY]``]YUjg|ўў§§ћ§§іў§§њљјњњћ§§ўў§§њў§ўћў§§їў§ў§ў§ў§ўўъ‰{HMPSPOFTSVYbhmaUSdбўўу§ўћўњ§њ§љњјћљћњ§ћ§§ўћўћўћћ§ў§§фћўњ§јў—q[ZUULUOZ\[PUe‘mLQ^Зўўї§ўћ§§ўћ§њњх§ћўћўћ§§ў§§ћ§§ўћў§ўћўћў§ў§ўўфЊ`IMPSUYTSTYUH@Qp‚r]žўўћћўћ§§јўњћљў§ўћћўї§ћ§§ў§ў§ўўц§ўјэ˜LMFQTH@TU2JPPTLTVQVIQJwўўў§ўўќ§ў§ўўў§ўўџ*џўw(џ)џ)џ)џ)џўw'џ(џ(џ(џ(џ(џ(џўˆ'џ)џўw'џў€&џўw%џ&џ&џ&џ&џ&џ&џ&џ&џўw$џ%џ%џ%џўw#џ$џ$џ$џўw"џ#џ#џ#џ#џ#џ#џ#џ#џ#џ#џ#џ#џ#џ#џўˆ"џ$џўw"џў€!џ"џ"џ"џ"џўw џ!џ!џ!џ!џ!џ!ѓћљњћўњљјљљћћњњпћљљ§ћјїљїљїїљїїјњјїїњћћљћљњњ§њѕјљљёћѕјјѕїјјњћћѕ§§њњј§љјјњњљћћй§њљјљљћљљјћ§љћћњњћћјєїјјљљ§ћўўњ§њ§ћ§ћћ§§їљєїјјѕѓћљљњћљњјљ§§њњ§њўўњњњў§љ§ћ§§юњ§љјїјљћњ§ћћњ§§љјљљќјљљїїђљ§ў§њјјћћљљњ§јјљ§ћњ§§ўњћћ§љїћљљїњљћњ§§њљјїїњћћѕњјїјїњїјњљћћѓњј§њ§њћљљјїїѕѕїўјљљѓјљљћљјјєњљљ§ћћїњљљњ§ћћњљљљјљѕїїјљљєјїѕїѓїїјљ§њћћїљћћљјћљћ§§ћјжїјљљјњљћ§ћјњњљћ§њњ§ўў§ћћљїјјљћ§ўў§њћљљћљљ§§ёћљћњњ§§ћћ§§ўўћ§§мћљћћњњ§§ўўњў§њјљњ§ў§љљњњљ§њ§§љј§њ§§њњ§ўљ§њљћљ§ўўў§љљј§љћљњ§њ§§ћљњ§ћўўњњћўў§љљкћљљњјјћњћћљћљљћїїљљ§ў§њ§§њѕєљїћјјћљ§ў§§ўњљўћјјљћњњў§ћјјћљњїћљљ§ћљјјљўћ§§љїњ§ўћћјїїјј§њјїїјњћ§њ§ўћўўћ§љјїњњщљјјљ§§њљљјљћљњјј§ўўњљљјјћїћљљњњњ§љњ§љ§§яћўў§ћћљљћљљ§їњњ§њњю§ўў§§ћљћњјћ§ћўћ§§њњљћ§љњ§§њў§њњ§ћўћјљ§§ўь§њ§љћњ§ћћљћћљћћњ§ўњ§§ўћљљь§њћћљћњћўљљћћјљњњ§ў§§ѓћњ§ўў§ѕїћћљљњњ§њ§њ§ћњ§§ћўўт§њўў§§њ§љћљљњћўњ§њјћљ§њ§њ§њљљ§§пћљћљљћћњ§њ§§њљ§§ћў§њћћ§њўћњћћљ§њ§§ўћљ§§љўў§ўћ§љћњ§§ђљјћљљјњјљ§њ§њ§§ўњљљўњ§§ўњ§§§њ§ћћ§ћ§јљћћљњљўўћћўўњљљўћљљњњ§ўўћўў№§љљ§њ§§љљћ§§ў§њ§§ћєљ§§љћљјїјћћ§§ђњљњћў§њљћ§њўњ§§ёњћћљљ§њњўўћ§§њ§§ћљњ§§ўўњ§њћ§љ§§ёњ§ўўњљљ§њ§§љљћљљўћјјљѓ§њњљњљћјљ§§ћўўїњћљљ§§њњўўїњўњ§њљ§§ўў§іњћњ§ўњњ§њўўћя§њўўљњ§§њљћ§њўў§љљьјњјљљњњ§§њўћўўњљњћў§§њУћљљјљћ§§љћћњ§њ§њ§њ§§ўў§њј§њњљћљјљјћћјјљјљњ§њњ§љњўўћўњјљ§§њњ§њњ§ўћѓўњљњ§§ћћ§ћљћљљѓњ§њ§ћљћњљњњ§љљч§ћћњњ§њ§§ўћњ§§њљ§њўўњ§њњ§§уњ§§љ§§ўћњ§њ§њњ§њњљљјјљ§њ§њњјњњўу§ѕћ§љљњљњњ§§јљ§ўўњ§§ћћў§ћљљњўўћћњ§њљљ§ѕњ§ўўћўњ§њњ§§њ§ђћљљ§јљјћњ§љћљњњ№љўўћў§љћљљјњ§њњўўњ§іњ§§ў§ўћўћўў§§ћўўћњ§ћњ§§ўєј§њ§§њјљћљњ§§ўўћћьўњљљ§ўўњўўћћўћўњљ§ћўў§јњљѕјљљћљљѕ§њў§§љњњўўњњў§њ§ќњљњ§§ћњ§ўўћћњўљ§јћњњ§њњ§њ§ўў§ўўъњўњ§њ§§ћ§њ§њљћћљ§§њўћўўљћўћўўћўўќћўўњњћљ§ћњјљћљљ§ћћњўў§§љњ§§њљљ§§вњўўњњўћ§§ўњљ§ўћћ§њ§њ§ћўў§§њ§§ўў§њћљћћ§§љћ§њ§§ћћ§ыў§њњўўњљљњљ§њ§ўћўўњћўўњ§њ§њїњњ§ћњљ§њўўњ§љћљ§њњљўњ§§ћєљћ§ћљ§њ§ўњћўўљћў§њ§љўў§ќњ§њўўўћўўућ§њ§ћўћњ§§њљ§њ§њћћ§§њ§§ўў§§њ§§њ§ѕљјјїјїјћњњўўѕњ§љћ§ў§§ўћўўњ§њ§ўћўўўћўўўћ§§ўљњњљёњўўљўў§§ўўњ§њњ§§ќўњњўў§ўњћ§њњ§ўўјћ§њљ§§љўўўћўўіњћўўћњњ§§ўўў§ўўћћњњћўўў§њњјўћћ§њўћўўхњўўћўћњљљњњўўњљјїјїљ§§њ§§њўўў§њњў§њњѕљћћљћњљљњњўўўћўўўћўўњћўћћњ§§њї§њљћњћ§љњњ§њ§ъљ§њљљјњјљ§љўў§§ћўўћњћўў§§њўўёњ§§ўўћ§њўўћўћўћћўќ§њњўў§§њ§§ўўћўўўћўўќ§љјљљјњћўњљї§ўўђћ§њ§§љљњ§ўўћњћћєўћњ§љљћћљљњў ўўћўўўћўўћ§§њўў§љї§њљћ§ўћћњњћўћўўћћўњ§љњўў§љњ§§јўћ§јњљњ§§ўљћ§њ§љњ§§їњ§њћљњњ§ўўјњўњћћўњўўјћўћўћўћўўљћ§њћћљїїјўњўўї§јјћњ§§ћўў§§њўўѕћўўћ§љњњ§ў§§њўћўўћўўўћўўўћўўњўќћўўћћќўћћўўћњћљљўўўћњњћўњўўћ§љћўўћўўћўўўћўўїњћћљљњ§ћўўќћўћўўљћўўћњ§ўўўћўўњћўў§ћўўўљ§§њў§ўўђћўў§ћљњљњћјљ§ўўї§љ§§њњ§ўћћќ§њћўўъћўўњћњўњ§њњўўћўћњњў§њўўўћўўћћў§§ўўњ§ўўћ§ўўћћ§њ§ўўцњљњњ§њўўћћўћўњљјїљљ§§ћўўњўўњћ§љњ§ўўљћўћўўћўўћњ§ўћўўћђњ§њњўћў§§ўў§њ§§ўљћўўћўћўўїњљ§ўўћўћўўўћўўў§ўў§ыњ§ўћћў§ўњўћћ§ћћњјњјљў ўћћўћўњњє§ўўњў§њњ§ўћ§§њєў§ћ§§њљ§§њљўў§ўљ§§ѕљћ§ўўћњ§§љћћѕњ§ћћљћ§§њћљљ§љњўћ§њњ§§ўўћўўћћњўўњўўіћўўћ§њњљљ§§ћќ§њ§ўўњўќћўћўўќ§њ§ўў§љ§ўўўћўўђњћћўўћўњњћўўћўўўњўўќњ§§ўў§ћѓўћ§§ћўўћ§љњњ§§§љћўўњћўћўўћћўћћўўћўў§ў§ёњ§§њїњљљ§ћћљ§ћўўјћў§§љњ§ўўћўўћћўћљњ§§љњ§ўўћў§њћўўяњћњўћўўћ§њљњњ§њњўў§љњљ§ј§ўўћўўћўўќњўћўўўћўўћњћўћўўќћ§њўўіљћћ§ўћњћў§§ўћўўўћўў§љњўўўћњњќљўћўў§ўњўўћ§њ§њўўћќўњњўўўћўўўњ§§ўћўўј§њњўўњњўў§љ§љљњћ§ўћћ§§љєћњљў§њњћў§љўўѕћўўћћ§љљ§њ§§ўўћўўћћњјљјјљљ§§ўўћњњіћљљњњљћћ§њњўћўўћћўћћўўљіћјљљ§њљњњўўў§љљїјљњњљўўћўўљћўўћњњўўј§њ§ўўћћўўћћўўћў ўћ§њњћўўњћўљљћ§§њћњ§њњўўёћўљњ§§њ§§њ§ўў§ў ўјћўўћћњ§ўўў§ћћњ§ћњўўћўўю§њњљњ§њўўћўћ§ћўў§њњ§јћ§љ§ўћћўўњјјњ§§њ§§ўў§ўљ§§ўћў ўњћљљњњўўћћўњћћўў§њўїјљњўўўћўўъћўў§њ§њ§§њњћўћўћўјўњ§ў ўёћўўњ§ўў§§њўўјћўў№§ћњўўћњ§§њўјўўћўў§ћўўћўўўћњњћ§ћўћўўћўўћўўўћўўўћўўјћљњўўњћў ўќћњћўўћћўўћўўўћўўљћўћћўўњњў§§ћўўќћўћўўўњўўўћўў§§ћўўћ§ўћўўљњ§ў§њ§ўўњ§њњўўњњўћћўўћўўўћўўћћўўњўўўћўўўћўўќ§љћ§§§ўћў ўљњћ§ўў§ћћўњљљўњћћњѓљјљјљљјљљњљњљљїћњћњћ§§ћ§§ћў§њњіљњњљњњ§§ћ§§єћњњљљћњћњћ§ћћї§њћћњњ§§њњўћњњћю§ўў§§ћ§ћњћћњ§ћ§ћћњњ§љњћћђњћљњћћ§ћ§ћ§ўў§§цўћўћўћ§ћ§ћћњћњћњ§ћњњ§ћ§ћ§ћћљ§ћћњћњћћ§њћ§§ћњњћёњ§ћ§ћ§њћњњћ§ћ§ћћёњћћњљћћ§§ћ§ћћњљљњѓљњљњћљњњљћњћњњќљњћ§§љњћћњљљјјќљћњћћњњћљћћ§њњї§ћћ§§њњљћћ§њјљљўњћћўњљљяњљљњћ§§ћњћћњњћ§њћћњ§ћњњ§њњћчњљћњћњњљљћњћ§§ћўў§њњћћњњћћўў§§ћњћћњћћќњћњ§§ћжњћћў§ўћ§ћћњћњњ§§ћ§§ў§ўћ§ћћ§§ў§ћћљљћ§§ћћўћ§§ўћ§§ёћ§ћўў§§ћњћћў§ўћћњўћћњћ§§ћ§ѓћў§ў§ўў§ўў§§ћћяњћћљњ§ћ§ћњћњћћњњћћљўћ§ћ§§јјїњћћ§њћћў§§ћћў§ў§§ћњ§§ўћњњћћљњњћћђњћ§ћ§ћћњ§ћ§ћћ§§њћњњљљњњ§љњљљћњћ§ћўўћ§њћљљјћњњћ§ћ§ћћєњћљњћ§§ў§ћћњњћ§ёћўћ§ћў§ўћћњћћњћћў§§ћ§§ѓћў§§ћњћњљњњћўў§§ћ§§ћћњћћ§ћћ§ћўќњћ§ћћўьћ§ћћњ§ћњњћњњћњњ§ћў§ћћ§њћњћњ§ўўђћњњћћ§§ћўћ§ћњ§§їўћљњћњћћ§§ўћ§§ќћ§ћ§§ћћ§ћ§ўў§ўі§ћ§ћћњћћ§ўў§їњћћ§ћ§ћ§ћћўњћћњ§ѓћ§ћ§ћў§ћ§њњ§ўў§ћњ§ўў§ћўў§щћ§ћў§§ћњ§§ћ§ћњњћћњљ§ћћ§§ћў§ћћў§ћћў§ћћ№§ћћњњћ§ћћњ§ћ§ћ§ћћќњћ§ўў§ ћ§ў§§ўћћ§ћ§њћ§§їћ§ћћњћћ§ћћњїћ§ћ§§ў§ў§§ѓћњ§§ў§§ћ§§ћњћћ§ўќ§ћ§ћћћў§§ћўў§ќўћўћћњ§ћў§§ћћў§ћћўњћћњћ§їў§ўњњћ§ћўўќ§ў§ћћ§ўћ§ў§ћ§§шћў§ў§§ћ§њ§ћў§§ћ§§ў§ўўћ§ўў§їћ§ћњћ§§ўћћ§ћ§ић§§ў§ў§ћ§ўў§ћћ§§њћћ§ћњћ§ћњњ§ћ§ћ§ћ§ћ§§ўћ§§№ћњћ§ћ§њњћ§ћ§ћ§ћ§§ќћ§§ўў§ћ§ўћўў№§ўў§§ў§§ћўўћњћњћћ§љћњћњ§ў§§ћл§ўў§§ћ§ћ§§ўў§ћ§ћ§§ў§§ћ§§ћћ§ћ§ћ§ћ§ћ§ћ§§јћўў§ћ§ћ§§ћњћ§ўћ§§ў§ћ§іћ§ћ§ўў§ћћўўѓћњћћ§ў§ўў§ћ§ћћ§ў§ћ§§ћ§§ћіњћ§њ§ћћњћ§§ўћќњћћ§§ў§јћ§§ћћ§ћўўўћўўђ§ћњ§ћ§ћўў§ћ§ћ§§ћјў§ћ§ћ§§ўўў§ћћўљ§ў§§ўћўў§ѕћ§ћ§ћ§њћћњћћ§јўћ§ћ§§ў§§ўўћћ§ћі§ћ§§ћ§ћ§ћўў§ўќћ§њ§§фћў§§ћ§ћ§ћўў§ўў§ў§ў§ў§§ћ§ћћњ§§ѓўњћћ§ћ§§ў§ў§ўўў§ўўў§ўў§§ћњћћћљњћњћћї§ћњ§ў§§ћ§§ѕћ§ўўћ§ћ§§ў§§§ўћ§§§ћ§ўў§ў§ић§ћ§§ўћ§њћњњћ§ћњћ§ћ§њћњ§ћўћ§§ў§§ўў§ўћ§ћўў§њћ§ћ§ў§§њћ§§ўћўўј§ўћўњћћ§§ћё§ћ§ћњњћњ§њћћ§ћўў§ў§ћћ§ћ§ўўљ§ўў§§ћўўѓ§ћ§§ўћ§ћ§њћћ§§љћў§§ћ§ћћ§ћћ§ћћњњ§ёў§ў§§ћњћўћ§§ў§ўў§ўќ§ў§ўўў§ўўћћ§ћћ§§ћѕ§ў§ў§ўћ§§ў§§юћ§ћў§§ўў§ўћ§§ў§§ћ§§ў§ћ§ћћћў§ў§ўўў§ўўљ§ў§§ћ§ўўќћў§ўў§§ў§ўўўћ§§ў§ўў§ўўї§ў§ў§ў§ў§§эў§§ћњљїљћћ§§ћћ§§ўў§§§ћњћћј§ўћ§§ў§ўўќ§ў§ўўў§ўў§§ћ§ћћ§їћ§ћњљњћћ§§ћ§ьћ§ў§§ћћњљњћћўў§§ћў§ўўќћ§§ўўє§ў§§ћ§§ўў§§ўўќ§ў§ўўј§ў§ўћ§§ўў§ћ§ћћ§ў§ўў§ћј§ўў§ћўћўў§ћћ§ћў§ўўє§ў§§ћћњњћћ§ўўў§ў ў§ћ§ўў§ћ§ћћћ§ћњћўў§ў§ћы§ўў§ћ§ћ§ћ§§ўћ§§ў§§ћ§ўўјћ§ћў§§ћ§§§њћ§§ўњ§ўў§§ўўј§ў§ў§ў§ўўќњў§ўўї§ўћ§њњћћљљћњћ§§ўўјћ§ћћ§ћћўў§§ў§ўўіћў§§ћўћ§ћўўє§ў§ў§ў§ў§ў§ўўј§ў§ўў§§ў ўі§ўў§њћћў§ўў§њў§ўўќ§ў§ўўў§ўўў§ўўј§ў§ў§§њћћ§ ўў§ўўќ§ћ§ўўў§ў ўўћўўў§ўў§§ћ§§ќћў§ўўў§ўў§єњћ§ў§ћњћћў§ўўў§ћћ§ў§ћ§ўўќ§ў§ўў§ў§ќўћ§ўўќ§ў§ўў§њћў§ўћўўњћў§ўў§§ўњ§ў§§ћ§§§ў§ўўќ§ћњћћћ§ўў§ўў§ћћў§ћўўў§ўўј§ў§ў§§ћў ўћ§ћ§§ўўѕћ§§ўћ§ћ§ћ§ўўў§ўўћ§ў§§ў ў§ўћј§ћ§ўў§ћўўјћўў§§љћўўў§ў ў§ўўћ§§ўўћћ§іћњ§ћ§ћ§ћ§ўў§яћ§ўћћ§ћњћў§ў§§ћћњњѕ§ћњњћњћћ§њћћєў§ћ§ћ§ћ§§ўў§§њћ§ћў§ўўў§ўўў§ўўњ§ў§ўў§§ћј§ћћњћ§§ўў§ўќћ§ћўўљ§ў§ў§ў§§§ў§ўўў§ў ўј§ў§ў§ў§ўў§јћў§ў§ў§ўў§ћ§ўўјћ§ўў§ўћ§§јћ§ћћњў§ўўў§ўўў§ўўў§ўў§ћўўћ§§ћћ§ў§ћћњћўў§ўўћћ§ћў§ўўў§ў ўќ§ў§ўўђ§ў§ўў§ћ§ў§ћ§§ўўў§ўўќ§ў§ўўє§ўў§љћ§§ћ§§ўў§ћ§ћћ§ћўћ§ћўўў§ўўў§ўўў§ўўў§ўўіћ§§ўўћњњћўўќћ§ћўўњ§ў§ў§ўўў§ўўќ§ўў§§ў§љћ§§ў§ћ§§ўў§ўў§ўќ§ў§ўў§ћўў§ўў§ўў§§ўў§ћћ§њ§ўўщ§ћ§ћћњ§ўўћ§§ўўћўў§ў§ў§ўўћ§ўў§ћћї§ћ§ћў§ў§ўў§ўћњњћ§ў§іњћћ§§ћњњћ§§ўў§ўўў§ўўы§ў§ўўћћњњћћ§§ў§§ўў§ўћћјњћ§§ўў§ўўў§ўўј§ў§ўў§§ўўќћ§ћўўў§ўўў§ўўќћ§§ўўѓ§ў§ўћњћ§ћў§§ўўј§ў§§ћ§ћ§§§ўћў ўў§ўў§ќў§§ўў§њћ§§ў§ўў§§ћ§ўўў§ўў§§ћўћћўє§ў§§ћ§ћ§§ћћўўї§ћ§ћўћ§ћўўќ§ў§ўў§ўў§ўў§јћ§ўћњћ§ўўў§ўў§ћ§ћў§ў§ўў§ўћўўў§ўўў§ўў§јћў§§ћ§§ўўљ§ўў§њ§ўўћ§ћ§§ўўў§ўў§§ћў ў§ўћўўў§ўўў§ўўј§ў§ў§ў§ўўў§ўўў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўў§§ў§§ўў§ўўќ§ў§ў ўў§ўўќ§ў§ўўћ§ў§ў§§їў§ў§ў§ў§ўў§ўў§ў ўї§ћўћ§ћў§ўўќ§ў§ўў§§ћ§§їў§ўў§§ў§ўў§ўў§ўўў§ў ўђ§ўћћњ§ћ§ћ§§ў§ўў§ўљ§ў§ўћ§ћћ§ўфћ§њ§њ§њ§њ§ћўћ§њћћ§§ў§ў§ў§§ћ§§ђћўћўњ§ћўћў§ў§ўўє§ў§ўћўћћ§§ћўўљ§ў§§ћў§§њў§ў§ў§§їўћўћў§ў§ўўь§ў§ў§ўћ§§ў§§ћўћў§§ћ§§љўћў§ў§ўўў§ўўѓ§ў§ў§ўћў§ў§ў§§јў§ў§§ћў§§ћўћўћўў§§ў§§ўќћўћ§§ђў§ў§§ћ§§ў§ў§ў§§№ўћўћў§ў§ў§ўњ§ћў§§ћў§ћћљўћў§ўћ§§ўћўўё§ў§ў§ўњ§љћћ§ћў§§іўћўћ§ћўћћ§§ќў§ў§§ућ§ў§ўњ§њњћ§ћў§ўњ§њ§њ§ћў§ўћўћ§§њўћў§ў§§юўћўћў§ўћў§ў§ўћў§§ўў§њћўћ§ћўў§§ў§§ў§ўћ§ўћ§ўўє§ўў§ћ§§ў§ў§ўўљ§ў§ў§ў§§ћ§ўќ§ў§ўўў§ўўњ§ўћ§§ўўў§ўўњ§ўћў§ўўќ§ў§ўўў§ўў§ўў§§яўћ§ћўћ§ћ§§ў§ўћў§ўўђ§ўљћњўћў§§ћўў§§ўђ§ў§ў§§ћўћўћ§§ўўї§ўћўћ§ћў§§њў§ў§ў§§щў§ў§ў§ўћ§ћ§њўћўћў§§њў§ўўћ§ўћўћћіўћў§ўў§§ў§§ћўћў§ўў№§ўћўћў§ў§ў§ў§ў§ўўў§ўўјћў§ў§ў§ўўў§ўўј§ў§ў§ћћўўћ§ў§ў§§ќћ§§ўўњ§ў§ў§ўўќћў§ўўљ§ў§ў§ў§§ќў§§ўў§ћў§§њўћ§ћ§ўў§§ў§ўўњ§ў§ў§ўўњ§ўћ§§ўўю§ў§ў§ў§ў§ў§ў§ў§ў§ўўў§ўўў§ўў§§ў§§ўј§ў§ў§ў§ўўќ§ў§ўў§ўћ§§їў§ў§ў§ў§ўў§ўў§ўўќ§ў§ўўќ§ў§ўў§яў§ў§ўћўћўћў§§ўў§ўўќ§ў§ў ўэћ§§ў§ўћ§§ў§ў§ў§ў§§ўўђ§ў§§ћ§ћў§ў§ў§ўўм§ў§ў§ў§ў§ў§ў§ў§ў§ўћў§ў§§ћўћўћ§§ў§ў§ўў§§ў§§ўј§ў§ўћ§§ўўў§ўўў§ўўќ§ў§ўўў§ў ў§ўќ§ћў§§їўћўћў§ў§ўўњ§ўћ§§ўўњћ§§ў§ўўњ§ў§ў§ўўў§ўўў§ўўћ§ў§ў§§§ў§ўўўћ§§ўў§ўўў§ўўў§ўўў§ўў§љћў§ў§ў§§ћў§ў§ўўў§ўў§ўў§§ўў§§ўў§§љў§ў§ў§ўўў§ўўњ§ў§ў§ў ўў§ўў§эў§ў§ўў§§ў§ў§ў§ў§ў§ўўў§ўўў§ўўњ§ўў§§ўўў§ўўђ§ў§ў§ў§ў§ў§ў§ўў№§ў§ўў§§ўћ§ўў§ў§ўўў§ўўѓ§ўћў§§ўў§ў§ў§§ў§ў§ўќ§ў§ўўќ§ў§ўўў§ўўю§ўћў§ўћў§§ўўћ§§ў§ўўі§ў§ў§ў§ў§ўўќ§ў§ўў§§ў§ўўі§ў§ў§ўћ§ћўўќ§ў§ўўќ§ў§ў ўў§ўўѕ§ў§ўў§§ў§ў§§њў§§ўў§§ ўќ§ў§ўўј§ў§ў§ў§ў ўў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ў ў§ѕў§ў§§ћ§§ў§ўўћћ§ћўћћ§љў§ў§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўўњ§ў§ў§ўўў§ўўў§ўў§ўў§§їў§ў§§ћ§§ўўў§ўўњ§ў§ў§ў ўј§ў§ў§ў§ў ўјћў§ў§ў§ўўљ§ў§ўћў§§ ўќ§ў§ўўњ§ў§ў§ў ўў§ўўў§ўў§њћў§ў§ўўќ§ў§ўўє§ў§ў§ўћўћўћўўќ§ў§ўўў§ўўќ§ў§ў ўќ§ў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўўў§ў ўў§ў ўў§ўўў§ўў§јћ§љ§§ў§ўўў§ўўў§ўўі§ў§ўћ§ћ§ћўўќ§ў§ўў§§ћ§ўўќ§ў§ўўє§ў§ў§ўћўћўћўўў§ў ўў§ўўќ§ў§ўўў§ўўў§ўўћ§ў§ў§§ ўњ§ў§ў§ў ў§ўў§§ўў§ўў§њћў§ў§ўўќ§ў§ўў§ўќ§ў§ўўў§ўўќ§ў§ўўў§ўўє§ў§ў§ў§ў§ў§ўўў§ўўќ§ўћ§§ќћў§ўўќћўћўўў§ў ўў§ўўў§ў ўћ§ў§§ўў§0ўњћў§ў§ў9ўќ§ў§ў ўі§ў§ў§ўћў§ўў§ўќ§ў§ўўў§ў ўў§ўўў§ў ўў§ў ўќ§ў§ўўў§ўўј§ўћў§ў§ў+ўў§ўўў§ўўњ§ў§ў§ў ўў§ў ўў§ўў§ќћў§ўўў§ўўў§ўўі§ўў§§ўў§§ўўќ§ў§ўў§ўќ§ўћ§§ћў§ў§ўўє§ў§ў§ў§ў§ў§ўўў§ўўў§ўў§§ў§§їў§ўћ§ўў§ў ўў§ў ўў§ў!ўў§ў ўў§ўўў§ўўњ§ў§ў§ўўў§ўўђ§ў§ў§ў§ў§ў§ў§ў ўў§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўў§ў3ўќ§ў§ўўў§ў ўў§ўўў§ўўќ§ў§ўўў§ў ўў§ў ўў§ў ўў§ўўў§ўў§§ў§ўўњ§ў§ў§ўўў§ўў§ћў§ў§ў ў§љўћў§ў§ўў§ўў§§§ў§ўў§ўў§§§ў§ўўњћўћўћў7ўў§ўўњ§ў§ў§ўўў§ўўі§ў§ў§ў§ў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ўўў§ўўў§ўўў§ўўў§ў ўќ§ў§ўўќ§ў§ўўў§ўўў§ў ўњ§ўћў§ў ўќ§ў§ў ўў§ў ўў§ўўќ§ў§ўў§ўў§ўўў§ў ўў§ў[ўў§ў=ўў§ўўў§ўMў§ћў§ў§ў ўјќњљ§ўўљњ§љћјћјјјљћћљїјїѕѕѓјњјјћљјљћљјјћћ§њњјјњњјјўњћћіјњњїњљїѕјњњ§јњјјўњјјљљїњјљћљ§§пћљљћњ§§љљјјїјњјњјљљјјїїјљљїїјћћїѕѕМїљєјїјћћ§§ћњїїѕђѓєѕјћњ§њ§§њ§љљјјњљћљћљљ§§ћјјћћєјїѓђэюѓёѕїјћљћјљћјћћ§§љњљљјјїѕѕХєїїјљљћћљњњљћљћјїјћ§њ§ў§љїїјїїѕєєѕѕїѕљљїѕјњј§љћћљљјљћћїћјњїїюјњјљљјѕєѕїїљћњ§ћћ§§ћњћњїњѕїѕѕђїїќўћ§љљђћјјљјљјїјѕїњјїїћє§њњїѕїїјљњјљљъћјїђєїїјњјїћћљјљјћћњїѕѕ§јћљћљљјјќѕјњљљћўјїїўљїїэѕјњјїѕѕїїѕїѕїљњњћљјјљјіњїѕѕєїњњјљљфћљћљљћјїњјћ§њ§њћљњјњјљїїѕјљ§§њј§њљћћњњјјіћљјїљјњјѓїїќљјјљљ§єљћјњјћљјћїјњњјќљїїјјћњѓћљњњћћ§ћљєњњћћљ§њ§њљјљљцјѕєѓїїљћљћјњ§њ§њњ§§ћљћљїјљљ№јѕѕїљїѕѕєїїјјњљћћш§ћњїћћ§њ§њњ§њћ§§њјяюѓєїљљћфљ§§љћњїњјћљ§њњљћљїѕјїѕљїѕєјїїљѕњїњњјљћћљчјљћћјјњѓєњћјћћјјњћћљљ§ћљјјљь§ћў§їљћїѕєєѕїѕїѕњїњјјђњјїљљѕїїјљљјњјјўїјјўѓїїюјєјїѕєїљљ§§њњ§§њњћћёњ§ў§љїѕїљњїњїћљљљћљњ§ўў§§њоћљљјљљћћјјћ§љњјљљ§њ§ћћјљўћњўўњ§њњљљјњїїјћ§њ§§їћ§§њ§§њјћћ§ўќњ§њ§§љѓњћљ§њљјћћ§§њўў§§јљљњћћљѕћјјєњћјљћ§§њњћћљљћљћхњїїњћљјѕїїј§§ћћњљљ§ћљјїњїјћћ§ѓњ§љјјїѕєјїњњјјћўњјјќїєїљљћћњљљјїїўњјјѓћ§љћњњ§љјљћћјјѕљћћјјљїїјњїїёјњљћјљ§§јљћљљјїїўњјјљјўћ§§љћјїљљћљњњ§§ђјћљѕћљјїїћљњњ§§фњћљћњ§њњјљјјћњћљћјљњ§§њљћљјћћќљ§њ§§ўњљљ§ћљ§§љ§эњјјћљњїїјљ§§ўћўўњљ§§шјљљњ§§њ§ћљћљ§ћњ§њ§ў§њ§§љљќјњћ§§фљћћљћљљј§§њ§§ћњїјћ§њјљљћ§§ў§§ъўћњњљ§њњљћљјїјјљјњњ§ј§§љ§љ§ўњ§§ўњ§§єў§§ћљјјїѕїјћћљјћњ§њћ§§ўјљљњљ§њўўћћўўњ§њ§њњўў§њ§ќњћћљљшћјјѕђѕїїѕјїљњњљјћљљ§њњљўўњ№ћљљ§ћћ§љљћ§љ§§њ§§ћћњњљўўј§љњћљљћјјђїњїїєїјћћ§§ћ§ћћќљћњ§§§њ§ћћё§љјњїјћљњјњњјћљљѕћљјјњљћћ§§ўўњ§јњ§§њњљљјјањљј§§љљјљљњ§њјјћљћњ§њљљћљ§њњ§љњ§ћћўўњ§љјїњї§§ћљўўћўь§њјњ§њ§§ћљ§њњ§љљ§љњ§§њ§іўћўњљњў§љњњљјћљљ§ћјћљљчјњњ§ўўњ§§ћјћљљјљњ§§ўњњ§§ўўћўўњўўўћўўњ§љћ§§ўўћщ§љ§љ§§ћљћјљћ§ћўўњњјјњњјјёљћ§ўњљћњўўћњњљћћѕњўћљ§§њј§ўњњ§њќ§ћљ§§ўњўўњ§њ§§љ§§ј§љћњњћљћњљ§§њўљњњўќ§њњ§§ўњўўћіўњўћњ§§њ§ўўњњљљ§ћ§§іљњјњљ§ўњњ§§їљњњўћўћћўўћўћ§љњ§ўўћўыњћћјїјњњјј§ўў§§њ§љћљ§§ћљћј§ўўћћўћћўўіћўњљљ§ўўћўўыћўћњ§ћјјњћљљћћљњ§§њћјјєљјј§§ўў§њњљћћќњўћўўў§њњў§§ћўўєњ§§њ§њўўћ§њ§§љєћљјјљ§ўўћўўњњўћў§ўњўўњ§§њћўўі§њ§ў§ћў§ћўўыћўњљљњћ§ћјљљћјљњ§ўўћўўрћњўў§њњ§§њљљњ§њњ§љљћ§њ§њўў§ћћ§њўўїњ§ћјћњ§љ§§ў§§ћљјјјљ§§њјјњјјљўєјјљ§щњљљћјљјїѕїїњћљћљ§ўў§ћў§§јљ§ћўўњ§њњќћњњјјјњјјљћљњ§§њњћўў§јљљјэћјљћћјњљљ§ћўўј§ўўњў ўї§љћљ§њњ§љљ§ћљ§§ўўћўў§јљўў§§њ§ўўс§ћјљ§ћ§§ўњћ§ўўћ§ћјјљ§ўўћњњ§§љљўўљњ§ћў§§ўўўћўўўћўўћћўњљ§§ўѓћў§њњћћ§њљўўћћў§ўї§љњњ§ћћ§ўўћў§њљўўўћўўўїљљў§ўўћћўўћўўђ§љўћўљ§ўћўўћўљљ§ћ§ўўјћўћ§њ§§ўўќљњћўўќњ§ћў ўћў§ўўњ§§яљўў§љћћљћљћјљњ§§ўўќњ§§ўўћўє§њњўўњўћўћћўўы§њћўћ§ћљњљ§§ўћњљ§њљљјјьћљљјїѕѕїјћњњ§њўљ§ўћўў§љћјјљ§ўўњљ§ўўѓ§ўћ§§ћњўњ§§ћўў§ўѓ§ћћ§§њ§ўўњљћ§§ўњ§ћў§§њљљўњўўљћўћўўћўўћ ўћўњ§њљњћљљљњўћўўћўўьћњ§њ§љњћњњўњ§§ўўћўћўўїћњњљњ§ўћўўўћўўђњ§ћљљњњ§§њўћћњњќ§јњўўяћ§ћљћњћљћњ§ўўћўћўўјћўњљ§§ћљљћ§љћ§§љљ§њ§§њ§§њў§ћћћ§њћњўў§ћљўўў§ўўњћўўњћўўў§ћћљ§њњћћњ§§ў§ўћўўўњ§§ўќћўћў ўўћўў§ўўћўўћ§љњњўўўћўўњћў§ћљњњћ§ўљ§§ћњћ§њўўќљ§ћўўў§ўўјњћўўћў§љљњћ§§ўњўўќћўћњњ§їљ§§ћўў§§ћћљ§ўў§њњ§§јћўўњњ§§ўўіњ§§ўўћ§њ§њњќўћўњњ§ўљў ўћјў§їјћ§ћўў§њіў§§њ§њ§њ§ўў§єјњњў§§њ§§њ§ўўћўќћўћўўћћўўћўўэћњўўћћўўћњ§§њ§ћљ§њўў§ћћ§ћћњњўљўўњћўўћћўўўњўўњў§њ§ўўчћўњ§ўћўћ§њ§љљ§њ§њљњўћўћў§§јљћћўўњњ§§ћњўўћўў№§љ§§ўћ§§њ§њљјћћ§§ќљўћўў§їћљјљњњўў§§ ў§§њўўўћўўњћўњўћўўўћўўћўћьў§§њўўњўўћўўћўў§њћўћћ ўњћўўћћўўѕћўћћўћўўћћўўѕ§љѕїћћўў§§ўўћњљљ§ў ў§іћўўћўўћ§§ўўўњўўјћ§§њ§ўћўўћњўњћўўјћ§ўў§ўћўўќњў§ўўўћўўўњўў§ў§ўћћњћћўў§љ§ј§ўўњћ§љ§њўўќћўћўў§ўћћўў§ўўўћў ўњўљўўћћўў§љљћћ§њћ§§љћќњўћўўњњћўћўћўўќћўћўўўћўў§ћ§њњ§ћёњ§ўћў§њ§њњћљњћўўўћўўќћўћўўќћўњўў§§љўўёћўћњњўћўўћў§њњўўўћўўўћўў§њћў ўћћ§њњўў§ўўћў ў§ўїњ§§њљ§ћћў ўћ§ў§ў§§њ§§ћ§ўћўўї§ћјњњўў§љљ§њ ўњ§§њ§ўўёћў§ћћњўўљљ§§њљ§§ўњ§њ§ўћў ў№ћўўћњњћў§њњ§§њћўўјћўўћњљјћћёјў§њњ§њ§њћјјљњўўќћўћў ўї§љјњў§ћјїїўѕєњќљћ§ўўњ§ћњ§ћњњ§ћњћћ§њљјјњўљњњњћњћњћњњіћњ§ћ§њњљљњњёљњњћњњљљњњјљљњљљ§њљњњўљњњјљўњћћє§ћ§ћћњћћњ§§ћћњюљњљњљњћћ§њћћњјјљљњњ§ћљјјќњћћњњюћ§њљњљјѕѕїјњњ§ћ§ћ§§ћњіљћњћњћћ§ћњњћпњљњљјїїјјљњњћњ§ћњћњњ§ћ§ћ§ћ§ћћњњљјјђљњњћћњњћ§§ћњћњњ§ћњљјыїјјљљјјћљњљ§ћўњњћћ§ћњњљъњљњћћњјїјљћћњ§ћњњћ§ћ§њњќљћњљљјљўў§ћћ§њ§ћћјњљїјљљњљљњ§іњљјљљњјљњћћњљюјљљњљњћњњћ§ћ§њћљљјјё§ћ§ћћњћћ§њњљњљћћћњћњњљљўјљљњњљњљњљљўњљљщјљљњћ§§њћћ§њњљћљјјљљњњћћєњћњћћњћћљњњ§§ћњќљњјљљћњћ§ћ§§јћ§ћћњљљњњїћњљјњљњњљљћњјњњћћѕ§ћћњњљњњћћњњљњќјљљњњљћ§њљћњћћљљњњ§§ћњћћ№њјѕїљћћњћњњ§ћ§ћ§§ћћњћњћћњћјљјљјјљњуљћњњћћњљћњњћ§ћ§§ћ§ўћ§§њјљїјњћћњћњњљњљњћћ§ђћњћћљїѕјјљјїїљљјљњњћњћњћћщњћњњљњјљњ§њћњњљћњў§§њћњњяћў§ўўћўћњњјїїјљјљљ§њљњњњљњљјјљљњњћћњљњњўљњњљїћњћњљјљљћћ§ќћ§§њњ§њћљјљјљљњћ№§ћў§§ћћ§§њћћ§ћћњњљ§ћљњћћ§§њћў§ў§ўў§ћљњ§њћ§ћњћ§§ќћ§ћњњћћ§§ў§§§ћ§ћћю§њћћ§ћњњћћ§§ў§ўћ§ћћ§ќњћ§њњєљњћћњћћ§§ћњћћ§њћњњћїњљњљљћћњљљ№њћ§њњљћћ§ўћњћљћњњђћњћћ§ћћњњљјїїљљњўљњњћљњљћћњћљљњњ§ћћ§§ћћќњћћњњіћњњ§њјљљњљљёњљћњњћћ§§ћњћћњљљњћњ§ћњћ§ћћќњћњћћьњћ§§ћ§ћ§ћњћ§њћњљљћћ§§љћ§§њћњ§§ћњђ§њћњњћ§ћ§§ћњћњњўћ§§ќћ§§ћћћњћћ§ћћј§ћ§ћ§њћљљћњћ§ћўў§§ћ§ћћє§ћћ§ћњћњћћў§§ќћ§§ћћѓњљњ§ћ§ћћњћћњћћѕ§ћ§ћћњљљњњ§§ћѕњћћўћ§ћ§§ў§§іћ§§ћњћ§њњћћ§ћћ§ћ§ћћў§ћћћў§§ћ§§ѓћ§ў§ћњћњњљјљњњњћњћћњ§§њўћ§ћ§ћћ§ќћ§§ўў№§ў§ўћ§ћ§§ў§ўћ§ћ§§њћ§§њњћћњќјљјљљњїћ§§ћњњћћ§§ўі§ў§§њћћ§њћћўњћћ§яћ§ћњ§§ћў§ўћў§њћћњњўћљљіјљњњћћ§њћњњїћњ§ћ§ћ§ћўўћѓњљљњњћљњљљћњћћѕњћњњљћћњћћўў§ўћ§§њћ§§ћћњњћљћћ§ћћќњћћ§§ћўњ§§ћ§њћ§§ѓћў§§ўў§ў§§ћњљљ§§ў§ў ўђ§ўћ§ћ§ћ§ћћњћћ§§ўљћў§§ћћ§§ќћ§ћўўљ§ў§ўћў§§ћјњћј§њ§њћћ§љў§§ћњњћћѓў§ћћў§§ћ§§ў§ўў§ўэ§ўўћћњћ§§ў§ўў§ћ§ћ§ћћјњћћњћўў§§њљњ№§ћњћў§ћњ§§ўў§§ћњњў§ўўћ§§ћ§§ќћ§ћ§§ђћњћ§ћћ§ў§ў§ўў§§ѕћўћ§ћ§њњћњ§§јћњ§ўћ§ћ§§ўў§§ћў§ўћ§§ћў§ўўњ§ћћ§ћўў№§ћ§§ў§ћ§ў§ћљћ§ў§§іћ§ћ§ћ§ћ§§ўўќ§ў§ўўњћў§ћ§ўўў§ўўћ§ў§§њњѕћњљљњћћ§ўћ§§юћњћ§ћ§ћњћ§ўў§ў§ў§ў ўћ§ў§§ћћўў§ўўћ§ў§§њњєљњћћњњў§§ћ§њњјћ§ћ§ћўў§§ўћњњў§ўў§ўќ§ў§ўўтћў§ў§§ћ§§ћ§ў§ўћ§ћ§ћ§ћћњћњњћ§§ўў§ ўєћ§ўў§ў§§ћ§§ўўѕ§ўћ§ћўћў§§ўўї§ў§§ћћ§ўћћ§§ћ§§ ўўћ§§ћћ§ћћ§§ћ№§ћ§ўўћњњ§§ў§ў§§њњђ§ћўћ§ћўў§ћ§њћњњћ§њўљњњћњћ§ћљњћћњљјљљѓњћњћћў§§ўўћ§ћћћў§ўў§§ћў§§ћњњђћљњњћњћ§ћ§ћ§§ўў§ћ§ћћњ§§ћњњћљћћ§ўўћњћў§ўўђ§ў§ў§ў§ўћћњўћ§§ћєњћћ§ћў§ў§ў§ўўіћ§ўў§§ћ§ћўўяћњњћћўћ§§љњ§§ўўћњњћў§№ћ§§ў§ў§§ћў§ћћў§ўўў§ўўш§ў§§ў§ћ§ўў§ў§ћ§§ўўћ§ћў§ўў§њћўўћћ§§њќћў§ўўў§ўўќ§ў§ўўћ§ўћўўў§ўў§ўћўў§ўћїњћў§ў§ў§ўў§ўћўўў§ўўћ§ћў§ўўў§ўў§мћў§ў§ў§§ћ§ўў§§ћњњћњћњ§ћ§ћ§§ў§ў§ћћў§ўўћћ§§ў§§§ў§ўў§§ў§§эў§ўћњћљћ§ћўў§ўћ§ћћњњћјњљјјљњњ§§ў§§ў§ўўў§њњїћў§§ћ§§ў§§іўћћўў§§ћ§ўўш§ћћў§ўћћњ§ћ§ћў§§ћњћ§ћў§ўў§ќћ§ћўў§ћ§ћћћ§ўў§ўўњ§ў§ў§ўўњ§ў§ў§ўў§ќў§њћћ§ўђ§ћ§§ў§њ§§ў§§ћўўќ§ў§ўў§ўћ§§ћў§ў§ўўђ§ўў§ћњћћ§§ћ§§ўў§шћ§§ў§ў§ўў§њћњ§њћњ§ћ§§ў§ўў§§ў§§ћўњћћњќћњ§ћћўў§§јћ§ћ§ћ§ћ§§ўћњњћў§ўў§§ў§§§ў§ў ўўћњњѓћ§§њњ§ћ§ћў§§ћћўђ§ў§ў§ў§§ћ§ћў§ў ўў§ўўќ§ў§ўўљ§ћ§ћћ§ўўў§ўўі§ўўћћ§§ў§ўўќ§ў§ўўќћњћ§§њ§ћ§ћћ§ќњћ§ўўў§ўўњ§ўћў§ўўњћў§ў§ўў§ћћњћћ§ўўњ§ў§ў§ўў§ћїў§ћў§ўћћњњ§ћўћ§§ћћќњўў§§ўћўў§§ћ§ўў§ўћ§§ў§іћў§ў§ў§ў§ўўў§ўўћяњћћў§ў§ћћ§§ўћћ§ћ§§љћ§ў§§ћ§§љћ§ћћ§§ўўў§ў ўў§ўўў§ў ўі§ћћ§ћњћћ§ўўї§ўћћњ§њњ§§ўњ§ў§ў§ўўў§ўўў§ўўљ§ў§§ўў§§љў§ў§§ћўў§ћљ§ћ§ў§§ўў§ќћ§ћўўђ§ў§§ћ§ћ§ћ§ўў§ўў§ћўљ§ћ§ћ§ћњњћћ§ћћўўћј§ћћњћњћ§§ѓўћ§ћ§§ў§ў§ў§ўўќћ§§ўўќ§ў§ўўј§ў§§ўў§ўўў§ўўњ§ў§ў§ўўјћ§§ў§ў§ўўў§ўў§ћ§ўўў§ўўў§ў ўќ§ў§ўўў§ўўў§ўўў§ўў§§ћ§ўў§ѕћў§ў§ў§ћћ§ўўў§ўўњћ§ћў§ўўљ§ўћћ§ў§§ўћ§§ћўўќ§ў§ўў§њўћўў§ўўўћўўў§ўў§ўћўўћ§ћ§§ў ўћћ§ћў§ўў§§ћ§ўўє§ў§ў§ў§§ћў§ўўў§ўўў§ўўќ§ў§ўўћћњ§§ўћћљўћћњ§§ўў§ћў§ў§ўўў§ўўў§ўўј§ў§ў§ў§ўў§њћњњ§ћўўїћ§ћ§§њћ§ўўќ§ў§ўўќ§ў§ўўє§ў§§ўўћў§ў§ўўў§ўў§ў§§ў§§§ў§ўўњ§ўў§§ў ўќ§ўў§§їў§ўћ§ўў§ўўќ§ў§ўўќ§ў§ўўћэў§ў§§ћ§ў§ўў§ў§ў§ў§ўўў§ўўљ§ћћ§ў§ўўс§ўћћ§ў§ўћ§ћ§ћћњћћ§ўў§ўћњћ§§ў§§ћћљ§ћ§§ў§ўў§ќћ§ћўўѕ§њћ§ўўћћ§ћ§§єћ§ћ§ћ§§ўћ§ћўўќ§ў§ўўў§ўўў§ўў§ћў§§ў§§њћ§§ў§ўў§§ћњњ§ўћ§§љњћ§ћ§§ўўњ§ў§ў§ўўѕ§ўћћњ§ў§њњљљўјѕўќћ§§ўў§§ў§§щћўћћ§§ћўћўњћљћњўћўћ§§ћ§§ђўћ§ћ§§ў§ўћўћўћћіўћўћў§§ћ§ћћўўњњў§ћћўўћћњўћўћўњњѕўћўћ§§ў§ўў§§ђў§ў§§ћўњћћўћў§§дћњћћњњ§њў§§ћ§љћљўћўћўњ§§ў§ўћўњћљљјћћ§§ў§ў§ў§§љўћў§§ћ§§ьў§ўћ§ћўћ§§ћљћњ§љ§ћў§§ќў§ў§§њў§ў§ў§§ћ§§љћћѕњўћ§§ў§§ўў§§сћўћ§§ў§ў§ўћўћ§њћћњљћњ§њ§ћ§ћўћў§§ўў§§іў§ў§ўћ§њ§ћћ§№ћљњљ§ћў§ўў§§ў§ў§§јњћћ§ћўњ§§ћј§њ§њ§ўў§§ўў§§ёўћў§ўњћљ§ћўњ§њ§§єўњ§љ§њћњўћў§§ђћњћћ§њћћўћ§§ў§§ѕћўњћљћ§ў§ў§§ьў§ўћ§ћў§§ћ§ћ§ћ§њ§њ§њњј§њћћ§њ§њњ§ќњћћ§§ўў§§єўћўћ§ћўњўњў§§љћ§ћ§§ўћћ§цў§ўћўњўћўњ§њ§ћ§§ў§ў§ў§§ћ§ћћјўћўћўњ§ћћі§њ§њўњўћў§§ќўћ§ћћёў§ў§ўћўћўћўњ§њћћ§§ўћћ§іў§§ў§§ўћћ§§ёў§ў§ў§§ћўљ§њ§ћ§§ўћ§ў§ў§§§ћў§§ёўњћњ§њћљћњњћўћ§§јћў§ћћў§ўў§єћ§§њћў§ў§ў§ўўѕћ§ћўћўћ§ўў§§ыўћ§љњљ§љћјћњ§њ§њ§љћњћћя§ћ§§ў§ў§§ћўћћ§ўћ§§§ћўћћќ§ўў§§љўћћ§ў§ўў§эўљњјћњћњ§ћўћўћўћўњ§§ѕћў§ћћўћўћ§ћћћ§њ§ћўўќњћљ§§ўќ§ў§ўўш§ў§ў§ў§§њћњ§ћ§ћў§ў§ўћ§§ўўў§ўў§§ў§§љўћ§§ўћ§§љћў§ў§ў§§§ў§ўў§њў§ў§ў§§яўњ§ћ§§ў§ў§ў§ў§ў§ўў§§ў§ўўє§ў§ў§§ћ§ў§ћўўњћ§ћў§ўўќ§ў§ўў§§ў§§ѕўћўћўћў§ў§ўўхћў§ў§§ћ§§ў§§ћўћўњўћ§ћ§њ§ћў§§ўћ§§ѕў§ўћўћћ§§ћўўѕ§ў§ўћ§љњљ§ћћћўћ§§ћћуўћўћўћў§§ћ§ћ§§ўћ§њўћўћўћў§§ћўўѕ§ўћ§ћўћўћўћћўў§§оўњ§њўћ§њ§њ§њўћ§§ў§ў§§ћў§ўћ§њ§ћўћў§§шў§ў§ў§ў§ўћ§ћўћ§§ў§ў§ў§ў§§яўњ§ћ§§ў§ў§ў§ў§ў§ўўќ§ћћ§§ыћ§§ў§ў§ў§ў§ў§ў§ў§ў§ў§§њў§ў§ў§§ўі§ў§ўњ§ћ§§ўўў§ўўќ§ў§ўў§ўќ§ў§ўў§§ў§§ћїў§ў§ўћ§ћ§§ђў§ў§ўў§ћ§ћў§ў§§ўќ§ў§ўў§ћўћў§ўўљ§ў§ў§ў§§пў§§ўў§ў§ў§ў§ў§ў§ўћўњћњў§§ћ§ћў§ў§ўў§§ў§§§ў§ўўў§ў ўў§ўўќ§ў§ўўђ§ў§ў§ў§§ћўћћљ§§їћў§ў§ўћў§§ў§юћў§ў§ў§ў§ў§ў§ў§ў§ўўр§ўћ§ћўћўћўњ§ћ§ћ§ћў§ўў§§ўћ§ўў§ў§ўўѓћўћ§ћў§ўћўћў§§іў§§ћўћ§ћ§ўўн§ў§ў§ў§§ћўћў§ў§ўћўћўћў§ў§ўћ§§ў§ў§ў§§ўў§ўўњ§ўћ§ћ§§ўў§ўў§§ћўўў§ўўў§ўўў§ўўў§ў ўћ§ў§ў§§љў§§ћў§ўўў§ўўі§ў§ћћ§§ў§ўўќ§ў§ўўќ§ў§ўўѓ§ў§ў§ўћ§§ўћ§ўўћ§ўћўћћўў§§ўќ§ў§ўў§§ў§§§ў§ўўќ§ў§ўўў§ўў§§ў§§ўќ§ў§ўўь§ў§ўћў§ў§ўў§§ў§ў§ў§ўўў§ўўќ§ў§ў ўў§ўўщ§ў§ў§ў§ў§ўћ§§ў§ў§ў§ў§ў§§ў§љўћўћўћўў§§ў§§ўў§§§ў§ўўќ§ўћў ў§њћўћ§ћ§§ўє§ўў§ћўћ§§ў§ўўј§ўў§§ў§ўўў§ўўќ§ў§ўўљ§ў§ў§ў§§ћўћў§ўўќ§ў§ў ўў§ўўў§ўўў§ўўў§ўўќ§ў§ўўіћўћ§ћ§§ў§ў ўќ§ў§ўўђ§ў§ў§ў§ўћў§ў§ўўќ§ў§ўў§ќћ§§ўўў§ўў§§ў§§іўћўћў§ўћўћћчў§ўћўћў§§ўў§ў§ў§ў§ўњћ§§ћ§§ўў§ўўќ§ў§ўўў§ўўћїўћўћўћўћ§§§ў§ўўј§ў§ўћўћ§§ћќ§ў§ўўўћўў§ќў§ў§§ўў§§§ў§ў ўў§ўўў§ўўќ§ћ§ўўњ§ўћ§§ўўћ§ћўћўўќ§ў§ўўњ§ў§ў§ўўў§ўў§ўў§ўў§ћў§ў§ўўќ§ў§ў ўў§ўўў§ўў§ ўќ§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўўћ§§ўў§ў ўў§ўўў§ўўў§ўўњ§ўћў§ўўў§ўў§юћўћў§ў§ў§ћљ§ћ§ўў§ўўў§ўўњ§ўћўћўўў§ўўў§ўўќ§ў§ў ўќћ§§ўў§§ў§ўўў§ўўќ§ў§ўўў§ўў§ўћ§ўў§ўўў§ў ўњ§ў§ў§ў ўі§ў§ў§ў§ў§ўўќ§ў§ўўј§ў§§ў§§ўўћ§ў§ў§§ўє§ў§ў§ў§ў§ў§ўўј§ў§§ћў§ўўў§ўўў§ўў§ћў§ў§ўўў§ўўў§ў ўќ§ў§ўўќ§ў§ўўў§ўўў§ўўє§ў§§ўў§ў§ў§ўў§§ў§ўўў§ўўў§ўў§ўў§ўўљ§ўў§ў§ўўў§ўўў§ўўў§ўўќ§ў§ўўќћўћўўў§ўўў§ўўј§ў§ў§ў§ўўў§ў)ўћ§ў§§ў ў§§ў§ўўў§ў ўє§ўў§ћў§ў§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўњћў§ў§ў ўў§ўўњ§ў§ў§ўўќ§ў§ў ўў§ў'ўў§ў ўў§ў/ўќ§ў§ўўў§ўўќ§ў§ў ўќ§ўћўўў§ў ўў§ўўў§ўўќ§ў§ў ў§ўў§ўўў§ўў§ќћў§ўўћ§ћ§§ў)ўљ§ў§ў§ў§§ўў§ўўќ§ў§ўўў§ў ўў§ўўў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўўј§ўў§ћў§ўўў§ўўј§ў§ў§ў§ў ўќ§ў§ў ў§ўћўўќ§ў§ўўј§ў§ў§ў§ўўў§ўўњ§ў§ў§ў ў§§ў§§ўѕ§ў§ў§ў§ў§§ў&ўў§ўўј§ўћ§њ§љ§сћ§§њћћњњјїћћљљњњїѕјїљњћљљјњћњњљљћјњљљїїўѕљљэњїљјјљњјїєѓѕѕїїѕњњћћ§їљјїњљћљњѕѕўїѕѕўљїїўњјјћњєљћјјїљїїњњјњњќјїїјјњўјїїјјљјњјєјјњњ§љѕїїљїљїљљїњјїјњјјњїїђїљјљћ§ћћ§ћ§њћїѕєїјјїєшѕљєєљїїњћњјјљћњњљїљїјњњјјїѕщїѕєљїїјћћњћјјѕјјљїњјњњѕѕљїѕјјїїѕѕљєѕїљїљїїћѕљїїѕѕёїјјїјњћћјњїљњњјјўљїїюљїљљјѕѕїєѕєѕњћљїњїїіѕјјїјјњћјњњўїѕѕќїљљїїўњјјїљјїјћћјњћћіњїїњјњјїїѕѕєјѕїїјњњљ§§ћјљћјћћљљ§ћћњјїјјюљћћљћћљћљљ§ћљћљ§ћјјљњрћљћњњїјјѕїїљїљ§ћјїєєѕјћ§њљљњњљјїїѓјїњљћјњјїљ§њћћіјѕѕїїјїїљїїјѕјљѕєѕѕїїѓњћћїѕїїљњњћї§§ђњљћњњљїљњјїїљњњј§ћјњњїѕўјѕѕљєѕљњјљѕѕїіјљљћњјњїњјјћњљћјљљ§іњ§њљјљћљћњњќјњњїї№љїјљјїїљїїљјњњљїїѕћїњ§§ћћјљљћљјњћњњјћь§ћљћњїїњћљјњїѕѕљњћћљљ§ћјїїѕњјѕїѕѕєєїфѕѓїјћљћјљћљјїїјјњјњјћћјјњјћјјћюљћјјњїїљјјњјњјјїїѕѕїјјљїљїїњњћћў§љљњјњјњјћћњњјњњљћјјјњјѕїњћљћћњїќѕїјњњўљїїјљїљѕїїѕ§§љљњ§ў§ћјјўњјјўњћћѕљњљћљљћјїјњњјїіљњјјњћћњїјјђњјјїїљїѕїљїѕћўў§єњљћљћћњ§љњјћћњњјњјљћћљћѓљћћњјњјљњњјњљљћћњјњїїњљїїѕњўўћћњљњњ§§ћњ§ћљјјјљћћљћљњјјљЇњїљљїјјњћћјљћљњјјњїїјїјњњјњјјї§§њњћњћўћћ§ћњњљћљњћћњѕїѕјћљјњљћњјњјјљљњјњљљћњћћњјћ§§љ§§ўў§ћћіњљњ§њћ§љћјјћћљјњљћћі§љљњѕїјљљјјќњљљњњўљћћќљћљћћјјїѕј§§њў§§љ§ђњћћљ§§љћјћћ§§ўўє§њљњјћљћњћћ§§љљњњјћњїїјтњїљїјћћљ§ћњљјјїјюшђљјљћћњјјљћљљ§ћыў§§ћњ§§јљћјњћњјњњћ§§ћћўњјјьњјљћћњјњјњњјѕѓѓђєѕћјјќћњ§ўў§ўћћўћў§§љјїњїјћњјћћ§§ўљћћ§љћ§§ѕћљїїѕєєјљњјјњљѓјћћњјњљњ§љњњљљўћљљјљўћјјњњјљїјїїэјћћјћјћћљћћљњїєєѕљїїђѕјљї§љћњјјїћњ§§ёњљјїљљћћљ§љ§ћљћћ§ћ§њљћћсјњїїјћљћњїљїѕїљїїњћњљїљјїїѕїњїјјєњјјћћ§њ§њћћљљљњ§§љ§§ўўњ§ўњ§§ыњ§љљћћїјјњћњјїѕѕјїљљѕѕїяјњњјћјїњћљћћјњ§§ћћ§љј§§єњўўћўў§ћћ§њ§§ўћўў§ўћјјјїјѕѕјјѕћћј§ў§њњћљ§§ќњ§§ўўў§ћћ§єћњћљјњљљћјјћћўљћћњ§§ћњњшјћљљњ§§ћ§ћјјњ§њў§§ўћў§љњњ§њїўћ§ћњњћљўњјјўїєєьїјјљљњљћћјјњјјљљј§њ§§њ§§њ§§ўѕ§њ§§ћљћјј§ўўу§ћјњјћћ§љњѕїјњћљјљѕјїљљћћљћљћћњўћўўі§њћћ§ўўњ§ўўќњ§ў§§ћўљћћњњјћљћ§§єњ§ћјњїљјјњњћћ§њјћћјљњјњљћ§ўўб§њјљ§ўў§§њ§ћў§§љћљ§љћћљљћјїљљјјљћћљљћљњљ§ћњїњљ§§њ§њњћћ§јљљьјљњ§њњ§њћњ§ўњ§љћњћћ§§ќўћњћћ§њё§ћћљћјњњљљ§§ј§ћћўњ§§їњ§§њўўћћўўњћўўћ§ћћќјњ§ўўљћњљњћњ§§єћњњљћ§ўў§§ћ§§іћјњљњ§§њ§ўўќћўў§§їљћњњ§ўћ§ўўњљќјїњ§§ўњ§њ§ћћљљњќљ§§ћћ§ћхїљћўўћ§љћљљ§њ§ћћјѓїјћљ§ћїћљљѕјїњљјњњ§ўћўў§њњљћљѕєѓѓљєѕїњјњўў§їљњјїєјљ§ўўћћўњ§ў ўђћўћўћў§§њ§§њљјјѓїјњњїєѕїћњ§§ўў§№јљњ§њ§љњ§њўўћ§њўўўћўўљћљћћ§ћўўўњ§§ћљ§§њљљћћњїїјјўњћћћ§ћћљ§§њўћўў§§§њў§§ўњ§§ўќ§ўўњњў§§њўўјћ§§љњћљјјїњјњјїћњ§ўў§§њўўћњ§ўћўўћўѕ§њ§§њћћњ§§ўўўњўў§ћћњћљўў§њћ§§љў§§ўћў§§ўћ§ћћјњњїјћљљћ§њћ§§ќћўћўўћћў§§ўўў§ўў§љњўўњ§њўўѕћњ§ћњњјјљљїїђћљљјљљћљћљћњјўўљљ§ўў§њўўћјњ§љљћћ§ўў§іћљњјћ§ў§љ§§ћїјњљћјјїєўўњ§ћљўўћўўћ§ўћўўћћў§§ўў§§љїї§њћ§§ѕњћњћћљћћјњћћљћњїїэ§§ўњљљ§ќњћћўўћўўћ§§ў§ћњћ§чћљїѕѕїјјћћљћљљ§њћњјюу§њ§ўўљћўћўћћўўћё§ћћ§ћ§ћљћљ§њ§§ўў§§љћћюїћћ§њ§њћјјћјїѓяээўўўћўў§ћњ§§ўњ§§ўњўўлћњљїћ§§ћљјїїњљ§§ћљљћјљљћ§ћњїљљєёышшюўўђћўћўўњ§§њј§§ћ§§ўћўўўћ§§ќў§§њњтљћћњјљљњїњћњњљєђяюьяєє§§њ§ў§§ћћњўњ§ўљ§њўћўњўўўњ§§§њ§ћћ§ѓћњљїёяяюээђѕјјіњ§§ћўўњўўњњўљ§§ѕњ§њ§ў§њ§§ћўў§єњ§ћњљћћїєєђююіяёђїљјћљљўўјњўўћўўћўў§ћњ§§ћњ§§њўў§ћњўћў§§щћљјљїјєёэыюяёђѓѕљїњњћћўўњ§ћў§ћў ўў§ўўќћ§§ўўћсњ§§ў§§ћјѕѕњїѓяёяђђѓєљљњњћћљћўћўў§ћ§ўўўћўўћ§ўћўўќћ§љўўє§њњў§§ћћљљєђђєѓєѓѕєѕѕјј§§ћћўћўќ§њ§ћћ§ўћўўќњ§§ўўўћўўњ§љљѕђёёяѕѓєѕїјњњ§§љљћћ§ўћћїўћћ§§њћћўўў§ўўћћўўћўўђћўћўў§љћљѕѓђѓєєіѕљњћљ§§ћћљљ§ўњў§ћє§ћњѕѓђѓѕјєѕїїёћ§§ћљњњљћ§љ§љћўўњ§ўћ§§ќњ§§ў ў§ћјљљфїєђђёѓєєѕїїјјњєїљћ§§ћњ§ћўўњўўѕћўњ§§њњ§§њўўўћўў§љћѕєёђєђђяѓєѕѕљјћ§њњ§§њњ§§ў ўњљњјћ§ў ўћњљљїѕѕњѓёђђїєєњѕљњћћ§§њц§љјјњїјњљћўўћўњ§њўњ§њўўњћўўы§ћћјѕђђѓђёёѓєѓђѕїєјєѕѕћјѕєѕїїѓјњћљћ§ћљњљјњў ўўљћћўл§ћјјїђяюяюяяђєјїђђїїјњїјѕѕљїїјјњљјїјћћўљјјњўўћўўўћўўюћњћјїѓёюёяёёэђђѓєјјїѕїїј§§ћљћћјљћњјњћњћћщљњњ§§њ§ў§ўћўўћўњ§§ўћ§јїїћѕѓёёђђљяёђѓєїљљэјљљ§§ћћљљњњїљјљћ§§ћћјљћћљљўњўў§ўћњњѕјѕєїєєѓёђђѓѓыїѕљїїѕѕљїїљљїѕїјћ§њљћћо§љњјњ§њ§љљњ§њїїјћїјїѕѕјњњљїљњљїљјѕѕьљјјѕїјњњјћњїјћћњћњњћћѓјљћ§§њњ§њњ§§ўў§єѕэљѕїњњјѕїљ§љјћјїјћљјјљћ§§љљњћћљюћ§§љљћјјњјћ§ћўў§њўўќ§ў§љћњћ§§њњўљњњћўњљљћњљјљћћњњљњњљјјћњљјјљљјљојїїјљњљїїјјљљњљњњћњ§ћћњћљћњћљњљњљјјљњјћњљљњљћњњ§љјљљўњљљќњљљњњљњљњўјњњќћњњљљўјљљјљјљјљњўљњњ§љњљљэјњћњ§њћњ§ћ§њћњ§ћ§њљљњљцјљљјјљјљљњњљњњћњљњјљјљњљљњњљъјљјљљњњћ§ћњњљњњјљљњљљјјўљњњљјћљјљјљљ§њјљљјёљњњљњљћњњљљјљљњњљіјљјјїјјѕїјјћљњћњљљњяћњњљњњљљњљњјјљјјљљњїћњљњњћњљњњљњњљњљљјјїѓјљљњљљћ§ћ§§ћњњїћњћћ§њњљњњћћњћњњћћўњћћў§њњћљќњћњљљњљ§јљћћ№њљїїјњњ§§ћћ§§ћњљљїњћљћњњљњћћ№§њћњћњњјјљљњљљјљљјјїјјљјјљљсћњљјљљјљљњўћ§ћ§ћћљљјљјљњљљјљњљњњ§ћњљљјўїјјњљјјљњјјљўњћћњљњљћљњњћљћњ§ћћј§ћ§ћљјњћћљљњљљ§њљљњјљњћњљљњјњљљјљљјљљ§ћ§њћњњэћњћњљњњљњљњњћњ§њћњљљњњћњљљјјњћћњћљљјјњїљљјјїїљњъћњ§ћњћњљљњњљњљњњћњњљ§њњћ§њћћњњђљћљјњњљњљњњљљјјљњќјљјљљњћюњљњљ§њћњћљњљњљљћћњњљїњћњћњћњњљљќјљњљљўјљљїјљјњљљј§ћћўў§§њ§љ§њњљљћњћћљћћњљњљЧјљњњљњћљћњњ§љњњљљјљјљјљјў§ў§ўћћ§ћњћњћ§§ћљњћњћњћњљњљњћњћњћћђњћњћљњљњјљљњљћћќњљњљљљјљљј§§ўўї§ў§§ћ§ћ§ћћѕ§њњћњњћњћљњњћљјћљњњљњњёћњћљњњљћљњћњљљњњјљ§ћњљћ§ўўѕ§њњљћњћљћњљљњцћњљћћљњљњњјјљњњћћњљњћљ§њ§ћћ№§ўўћћњћ§ћљ§§њћћњњёћњљћњћњ§ћћљњљњћћ№§њљјјљњљћњћњћњћњњђћњњљњњ§ћ§ў§ћ§ћћ§љћњћћ§ћњњя§ћў§ўћ§ћљњњћћ§ћњ§§њћ§ћњљњњљњљЧјљњћњћ§ў§ћњњћїяђєјњћњћљњњћњћћўћ§ћ§ўў§§ћћ§§ћ§ћњњљњљњљљћћ§њњќћњљњњэљњћњћљњљњљњњјђђѓїјњњ§§ћўўќћ§§ўўїћ§ћўћ§њљњњўљњњѕ§ћ§ћњњћњћњ§§њњћњљјїї§јљњњљјђћ§ћњљњљћ§ћћљљћћўњћћњћњљљњјћњћљљћ§њ§њњћїњћљљїїјјљљщјїјљ§ћњљњњћњ§ћ§ћ§ћ§ћњњћћћњћћўћћњє§ћћњћљћњћњњљљњіћњљљјљјљјљљяћљјљјњљљњљљњ§ћ§љњњ§§ћњћћ§ћ§ўў§§љћ§ћ§ћ§ћћђњћњњљћљњљјјїљјјњљћњљљњњьљњћњћћ§ћ§њћњћћ§ћ§ћ§ўўї§њћћ§ћ§ћўў§ћћ§ћ§њњјљїјјїїјњњ§§ў§§ѓњћћ§ћ§ћ§§ў§§њњѓ§ћ§ћћ§ћћњљћћњњєћњћњћњћ§§ћћљљћњљњњћћјљ§ћўћњњ§§їўћ§§ўў§ћ§§ћўљ§њљљњњћћўљњњљїјљњњћћњћњњљљњњћћњ§§ўћ§§јћ§ћ§ћўў§§юћњћћњ§ћў§ўў§њњљњњћћцљњљњљћћњјјїљћћњћћњћћњћљњљўў§њё§ўў§ћ§ў§ўћўћ§ћњњўћњњќљњњћћю§ћ§ћћњњљјњњљљњћњљњњќћњћњњљ§ћњћў§ўў§њћ§ўўћ§§ўіћ§ћњћ§ћњњћћюњљјјњњћћњћћњћ§ў§њљљћў§ћћ§љћ§§ўў§ћћћ§ћ§ћ§§ўњ§§ћюњљњћћ§ћўў§ћњњ§ћ§ћ§§їћњњћњњљљћћ§њћ§ћ§ћ§§§ћ§ўўў§ўўўћњњжћ§ћў§ўў§ћљњ§ћ§ћ§ћ§њљљћњ§§ўћ§њћћ§њњљћ§§ћ§ћўўў§ўўњћ§ћћњ§§њўћў§ў§§ћњѓ§ћ§ћ§ўўћ§ћћњћћ§ѓўћ§њћњ§ћћњћјўўі§ћњћўћ§ћћњњїљњћћ§њћњћћќљћћ§§ўњћ§ћ§ћ§§ёћњјјљїѕєїјљљњљўўєћ§ћћљњњћњћћўў§љў§ў§ў§ўўѓ§ў§ў§§ћ§ћ§§ћњњ§ћњљљјыљћ§§ћў§ў§ў§§ћ§ћ§ћ§ћў§§ў§ўў§ўўћћњњ§ўў§јћ§ћўћ§§ћћўњљљњћћњ§њћћћ§ћ§§ўўї§ћ§§ўћ§ћ§§ѕћ§ўў§ў§§ўў§§ћўћ§§ўўї§ўћ§ў§њћњњћћњ§ћўў§ў§ўћўўў§ўў№§ў§ўћ§ћћ§њњ§ћ§§ўўў§ўўђ§ўћ§ћ§ћ§ћћљћћў ўќ§ў§ўўњ§ў§ў§ўўў§ўўмћ§ћўћ§ўў§§ћ§§ўћћњњљњљљњњћћњ§§њћ§ћ§њўўў§ўўћўњ§ўћў§ўўђ§ўћ§§ў§ўћ§ўў§ўў§њњљњњјјљљѕњћћњћћњћњћњњў§їўћ§§ў§ў§ўўў§ћћњ§шў§ў§ў§ўћ§њћљњњ§ў§ў§ћ§ћћњњєљћњ§њљїў§ўў§§ћўў§ўўў§ўў§ћ§ўўћѕњљљћљћћ§ћ§њњћњ№љњњћњћћњљѕя§ћ§§ћћ§ ўх§ўћ§ћ§ћ§ўўћ§њћљљњњћ§њјљјјљњњћљ§њњїёц§§ўѕ§њњћўћњћњћ§§ќћў§ўў§ўћњњћўњ§§ўћњњњљѕђяюўўі§ў§ў§ў§§ћ§§ќћ§§ўўќ§ў§ўўм§ћњћћ§њћњљљњћ§ћњћћњ§ћћњ§њљњјјїѓьцыяўўў§ўўј§ў§ў§§ћ§§јћўћ§ћў§ўўў§ћћћ§ў§ћљљтћњњљњћћљћљћљљјїєђьюёѓї§ћ§ћўћ§ўў§ў§јћ§ћ§ћ§§ўўњћ§§ў§ўўњ§ў§§ћ§§ьњћњћћ§њњјѕѓђђёыюѓјњ§§§ћ§ўў§§ў§§ћўћ§ћ§§ќћў§ўўі§ў§ўћ§ћ§ћ§§њћцњљјїєђэьђѓєѕјњњћўў§ў§ў§ў§ўўђ§ў§ўў§ћ§ћ§ћ§§ўў§хћ§§ўў§ћ§ћњћњјљїїѓььёѓѓєѕјјљљяћњў§ў§ў§§ўўћў§ў§ўў§ў§ћ§ўўўћ§§ћњьљњљѕђюђєєѕїљјњљњњћњўў§ ўє§ўў§ўў§ў§ў§ўў§ћъњљјїѕєєѕїѕєїјњњ§ћ§њћњўўў§ўўќ§ўў§§ўє§ў§ћћў§ў§ў§ўўў§ўўћъјєєѓђѓєѕїјљњ§§ћ§ћћњњћўўћў§ўўњ§ўћў§ў ўў§ўўї§ћћјјѕєѕїїјњћ§§њћћ§§ћўў§§ў§§ў§ћёњћњ§њљјѕєѕјїјјљљ§њ§ћћљљћњ§ў§ћў ў§§ћ§§њћў§ў§ўўьћњјјљљїєёѓѕїїјљљњњљћћћ§њ§ћўўў§ўў§ўћ§§ќћ§§ўўэ§ўў§ћ§ћћјѓѓєїїѓєѕїјјњ§ўћ§§ќћ§§ўўќ§ў§ўўј§ўў§§ћћў ў§ќћјљјјњѕѓёєѕїїіјљљћњ§ћ§ћ§§№ћњњљљњљћњў§ў§§ћ§§§ћ§ўўћњўјѕѕѓєѓєѕїѕєєѕїїљјјћїјјњљљ§њљћћћљјњљўўў§ўўх§ўћћњїѕєёяђѓёѓєїїѕєєѕљњњљїјјљњэљћњљњњћњћ§њњљљў§ў§ў ўѕ§ћњљѕѓяюёѓєєўѕїїњјљљњ§ћћўњћћіљњљћ§ћњћћ§§њћўћўћўў§љћ§§ўћњљљћјѕѓѓєєѓќѕјљјјіїјћ§§њњћћљљїјњћњ§ћћњћћјњћћў§ў§ўўьћ§њљљњљљњјїѕїїѕєѓєєѕѕјљјљјђљјљњћћ§ћћњћћў§§њћ§§ћћ§§љњ§ћњљљєњљљјљјљјљјїјјїіјљњљљњћљљњњіљњљљћњћњњћћ§ўћ§§јћў§ў§§ћїїјљњћј§ћњћњњћњњў§ћћћ§њћњћћ§ћњђљњћћў§ўћ§§ў§ў§§ћЗ§ў§ў§ўњўћў§§ћ§њћњ§ћњњћћ§§ўћ§њћњ§њ§ћћњ§њ§њћњ§њћњ§љћњћћњјњљћњ§њћњ§ћ§§ў§ўћћ§§њўњ§њ§љљћ§њ§њћћѓњ§ћ§ћћњћћ§ћўњњў§ћћ§њ§ћћтўћћњћњ§њўћўћўњћњўћўћўћћњ§њ§њ§њњў§њњќўћўћћњћљ§њћ§§йћ§§ў§§ћ§§ў§§њ§љ§ћўћ§њћљ§њћљ§њ§њ§ћўћ§§ћњњњ§њћћўћћ§§њ§§ѕњћјњњ§ћ§ћўћћњ§ћўњ§ћћєљћљ§њћћ§њћљћћљњ§њ§њ§њњћ§њ§љћћћњўћњћћњ§ћўњњћћћўћћљњњѕ§њ§њ§љћћњјћћ§кўћ§њ§њ§ћўћћњў§ўћћњ§њћљ§њ§њ§њўћўњ§ћњћ§ћћ§ќћњљћћњщћљћјњјљњ§ћўћ§§ў§§ћ§ћ§ћ§§њў§ўћўћћ§§ћ§§їўћ§ћў§§ћ§§чњўћ§§ћћ§§ўћўњћњ§њ§њ§ћўћўњњћ§ўў§§їўћћњ§њ§њћћ§ћЮў§§ћ§ћ§ћћљњњћњ§њ§њњљћњћљћљ§љ§њ§њўћ§њћњ§њўћ§ўў§ў§§ћћђ§њ§ћўњ§њћњћњўћћчљ§љћљћљћљћљћњћћ§љћљ§љћ§§ћћјўћўћўћў§§ьў§ўћ§ћўћ§ћћњћћ§њћњ§њњћќњ§љњњћњь§љ§љћљћљњ§ў§§ћ§ћўћћ§§ѕўћ§њўњўћўћ§§ђћ§њћ§§ћўњћљ§њ§§§ћ§ћћњѓћљћљћљ§њћљњјњњ§ќўћў§§їў§ўў§њўњћћў§ћћ§јћў§§ћ§§ћћћ§њўњћћњјљћљњњўћњњћљњћў§§ў§ћ§њћ§ћћњћћч§ћўћћњћњ§ћ§ћ§ћ§ћ§њўњ§њћњћћў§њњў§њњћ§њћ§ўўё§ў§ў§ўћўћўћ§ћўћћљ§ћўћ§ћ§§ћћўћўћћћњ§њўћћў§ћћњўћ§ћћњњј§њћњ§њћўў§ћћў§ўћћѓ§ћ§ћ§ћўћћ§§ћ§§ўћ§§ћўњћћ§ўћ§§ћћњ§њ§њњўћўўђ§ў§ў§ў§ўћ§ћўћ§§ќћ§§ћћёўћ§ћ§њ§њўћћ§§ћ§§ћјњћћ§ћћњћћіњћћњ§ўњћћўў§§њў§§ћт§ћ§њ§ћ§§ћћ§ћћњћњўњњћћњ§ћ§ћ§ћў§§ћў§ў§ўў№ћ§ћўћћ§ў§ўћ§ћўћ§§њћў§§ћ§§эўњ§ћў§ў§ўћ§њћњћћ§ћ§§ћыњ§њћ§ў§ў§ў§§ћў§ўћўћў§§ўў§§ўћ§ќћўћ§§ыў§§њћњ§њўњ§ћўћўњ§љћћ§§эў§§ўњћљїхјњўћ§ћўћў§§ўќ§ў§ўўљ§ўћў§ў§§ћј§ћўћўћў§§§ћ§ћћњўћћ§§ћћѕњўљїєњјћ§ўћћ§ўў§ўўћ§ў§§ћћњўћ§ћћ§§ўў§§ўћ§§ѕўњћјњљњћћњћћњ§єћ§ћўћў§ў§ўћ§§ћћ§ћ§ћћњў§ўћўћћъ§ћўћ§њ§њўћў§§ћўћ§ћ§ћћњњіћњ§њњљћњњ§§ћчўњ§§ў§ў§ў§§ћўћўћ§ћў§ўћўћ§§хўћ§ћћ§§ћ§ћћњ§ћ§ћ§ћ§њ§љ§њ§њћћђњ§њўњ§њ§ћў§ў§ћћ§ёў§ўћ§ћ§§ў§ў§ў§ўўё§ў§ў§ў§ўћ§ћ§ћўћћј§љћљ§њњћћќ§ћўћћщ§ћўћўћ§ћў§ў§§ћ§ћў§ў§ў§ўў§њћў§ў§ўўљ§ў§ў§§ћћј§љћљћљћ§§ёў§ў§ўў§§ў§ў§ў§ўў§іў§ўћўћ§ћћ§§ћ§јћ§ћ§ћ§ћўўћіњћњћћ§ћћ§ўўњ§ў§ў§ўўў§ўўў§ўў§ў§ъћўњ§ћў§ћњћћ§љњј§ћћ§§њ§§ћёўћ§§ћ§ў§ў§ў§ў§ўўў§ўўі§ў§ў§§ћў§ўў§ѕњўћ§ћў§ћњњћћљ§ћњљћњ§§ўћ§§љћ§ћћњћўўњ§ў§ў§ў ў§§ў§§ўў§§ћ§їћў§ў§ўћћњњћэ§ћ§ћў§§ћ§ћўћћњћ§ў§ўў§§ў§§ўќ§ў§ўў§ўў§§іћўњ§њўћ§ћ§§љў§§ћњћўўў§ўўњ§ў§ў§ўў§§ў§§ў№§ў§ў§ў§ўћ§ћўћў§ўў§§ћ§§юў§ў§ў§ў§§ћ§њўћ§ћў§§їў§ў§ў§ў§ўў§§ў§ўў§ѓћ§§ў§ў§ў§§ћћ§§ў§ў§ћќ§ў§ў ўј§ўћ§§ў§ўўіћ§ћў§ў§ў§ўўі§ўћ§ћў§ў§ўў§їћ§§ўћ§ћ§ўў§ѓў§ў§ўћ§ћ§њћћ§§ўћ§§їўћћ§ў§ў§ўўћ§ў§ў§§ёўћ§њћљњљћјћњћњўўњ§ў§ўћўўў§ўўў§ўўѕ§ў§ў§ў§ћћўћћїўњћљ§ћў§ўўњ§ў§ў§ўўў§ўў§ў§ўќ§ў§ўў§§ў§§іћњњўћћњ§ћ§§ўћўўќ§ў§ўўќ§ў§ўўј§ў§ў§ў§ўўў§ўўў§ўўў§ўў№§ў§§ћћњћњћњћћ§§ўўў§ўўў§ўў§§ў§ў ўљ§ў§ў§ўћћў§ўўў§ўўў§ўўќ§ў§ўўњћ§њћњћћ§ѕћ§§ў§ў§ў§§ўўў§ўўў§ўў§ћњћњћњњ§§њ§§ћј§ћ§ћ§њћўўў§ўўў§ўў§§ў§§ў§ћ§ьў§ў§ў§ўћ§§ўњћ§ў§ћњњўўў§ўўў§ўўћ§ўњ§ћћпў§ў§§њ§ћ§ћ§њћ§§ћ§§ўњ§јѓ§ў§ў§ў§ў§ўўњ§ў§ў§ўў§ћ§хў§§њ§љћњћћ§ћ§ћ§ћўў§њљєч§ў§ўў§ў§§ў§ўў§ћ§ђў§ўћўћ§њ§їѕѓѕў ўј§ў§ў§ў§ў ўћ§ўћў§§јўњ§њ§§ў§§ўћ§§ѕћўњ§јїѕђюїў ў§§ў§§ўў§ўўў§ўўї§ў§ўћўћў§§ћў§ћћѕњјјѕїђјјњ§ўўў§ўўў§ўўі§ў§ў§ў§ў§ў ў§шў§ў§§ћ§ћў§§њњјїѕѕєїѕњљћ§§§ў§ў ўє§ў§ў§ў§ў§ў§ў ўф§ў§ў§ў§§њ§ћ§њћјјѕђєѕєјјњњ§§ўўњ§ў§ў§ўўќ§ў§ўўщ§ў§ў§§ћњњћјїёѓєїїјїћњ§ћћў§ўўў§ў ўў§ўўў§ўўщ§ў§ўћћњ§њ§їѕїѕѕјїњљњњћ§§ўў§ўўў§ў ўу§ў§ў§ўћ§љњјљѕјїњїљјљњў§ў§§ћ§ў ўќ§ў§ўў§ёљјїљїљїњљ§ћў§ў§§&ў§ьћњљљјљјњјњљњњ§ћў§§ћ§§ўњ§ўћ§ћ§§ћяїјїћљћљ§љ§њ§§ўћ§ћћ§ќў§§ў ўњ§ў§ў§ў ўћњѓљњјјѕїїњјћњ§ћћњўћ§ћў§§ўќ§ў§ўўў§ў ўъ§ў§ўћћјїјњїњјљјћљњњ§§ўўў§ўўў§ў ўќ§ћћў ў§њнљћљљїѕѕњјњјћљўћ§§ў§ў§ў§ў§§њћћ§њў§§ўўњ§ў§ў§ў ўхћ§ћћљљїјїњїњїјїњјћљћљћљћљћњњў§ћћі§ћўћ§ћ§ћћўўкћўљјѕјїѕѓјїјјљјјѕјњћњњљћљ§њ§њўћ§ћ§ћ§ћ§§ўњћћўяћўњљєљїјїјїјѕљјћљљђћљ§њћ§ўћ§ћ§ћ§ћћїўћ§ћ§§ў§ў ўў§ўўњјљ§љљїїѕјјљѕїїњїћњњќљњћ§§јў§ўћ§њћ§§љўћ§ћ§ћ§§ў§ћўњћћёљњјњјљјњјћїљјћњњќћљ§њњёћњћћў§§ћ§ћў§ў§ўў§пћў§ўњ§ћ§ћўњ§§ћћўњ§њўњ§њћљћљњљћћњћћљњћ§§ћ§ћћѕ§ћ§ћ§ћў§ў§ўўў§ўўы§ўњњјћљћњћњћњўњў§ўћ§ћћ§љћўћ§§ў§§њћ§ћ§ћ§§§ћўћћўў§ўў§§ў§§яћјїѓѕєѓђёђєѕїѕѕѓєєѕјцѕјѕїњјћћњјњћњїѕєѕѕ§§АPE-#11з)&5238?9AJQјїјњѕєђёяђєѕїѕѕєєѕїљљїѕѕјљјјєєѕєлѓєѓђљ§бU22858S>#-*$)5Tјњњјїѕѓёђѓѕѕыљїљїѕњјљїєёєѕѕњїєєѓђѓѓ§єѓєєлљ§јu<;QA,0,5521јѕљљїїѕѓѓїѕѕєєўѓєєѕїЫјїєѕїљљѕєєјѕѕєѕѓєђѓћ§ЉN1(*-%?C<*&%.&"!&,ѕєљїїѕєѓѕєєїѕѕїїјєєѕѕїљљїїѕўєїїуєѕїѕѕєћћжŽ\B%*.001!"*#(-Gљѕѕєїѓєєѕѕїѕѕљљѕђєѓєѕѕїѕїљѕїїѕїїгјєѓљљд…I!*#)&++!%&"*-љљїѕѕєѕєѓїѕѕљѕѕєѓєѕјѕѕјїѕјѕєѕєїїѕ§єѓёёуђї§ЯpC,<;;953<3(1&!(@NјњљїѕѕѓѓўєѕѕјєљљїљљѕѓѓОєёєѕјєєѕјѕѕјѕѕєѓђёѕ§§еe8147@38$&.002+37:љљјјїљѕђђѓѕїњїїјѕєѕєљїїљїѕѕїѕїћљѕјѓєєтљ§ТZ5.9:420(-;822$.;8ѕєѕѕљїїєѓѓўєїїљФїєѕєїїјјњњјљїїјїїљљїѕљїѕѕў§з`A;@:385894-%%ѕєїѕєѓђёђђєѓѕѕјјѕјѕѕјјѕѕбєѕїѕѓѕѕєєѕѕјѕѕїїљѕ§ћкp5#(885,(#2+:3(+*Hѕјїњњїѕєєіјѕїѕјљїѕѕїїјѕгєїєїљѕѕёѓєєѕѕєєѕ§§ЭM051<952%25:;;8:,>ѕјїњјїїѓѓїѕїћљћјїљїїњЪљїљѕјїїњїїѕєєѕѕїяїћТHLP)"5@9+1.12.927AљїљљњљѕѓёёєїјјѓїїыѕѓєђѕѕєѕјѕѕєєѕєєѓєѕѕѓѓћоЕVZwQC>4,!*0)+%,7-EїїљѕѕјєёюяѓѕљѕїїњњљњјњјјОњјњїїљѕѕєєѓѓєѓѓђюјјЊC1.)013,3)#,37BHAљњїљљїѓюыюѓљњњјњјњјјїљѕљљњљїїЮєѕѕєѓѕљѕєђђяљёШiAGLB>:<:>4<;2?<@4јїљћћїєёюёєѕїѕѕїјјїљїљљїѕјѕїї§ѕєѕѕЅѓєѓђђљћжvNPJMG?4.><877;@52јћљјљјђьюяѓѕїїјїєѕѕїѕѕїјљјљћљј§§јїјїѕѕєђштчђљЯiTJ>B32)*279))1<@)їїћѕјєёээћёєѕїјјФїљїїњћљњѕѕјћљјјњјѕєђѕђюээюѓїИZBPP@2,0&(0:>4(5&?ѕїїѕјєђьяђєѕїїќјњјїїдљїѕјїљѕїїѕєѕѕёяѓяяьшђљЧ[@OI1>7)*,20::@9%GњњјјщїєђёёєљјјљїјїјјїѕѕїљѕјѕѕїаєяээчцшцщщяїлtB&1%)$&08CA>12љїїјњїѓёёђѓєєѕљїљљїѕЬєѕїјњјїјѕяэющтспурхїЛU9;8-+,!3:B;BE?5(&єѕјєєѕђяяѓѕїјјўњјј§њљїїљѕѓєєѕѕєєжяьэььцтушцхюШnA#"01:?AA518BњћћјїѕѓёђєѕѕўјњњїњШїѓјњјѕёчмрпрхцуйцщюьн‚L25+%7V92:@CA@@:CљљјњїєѓђѓјљјїїјјћћШљњјљ§§њљ§њњћїђээююэыркесёуФUB#04JEC@83*-@JA474Lјћјљљєёяђєїћ§§љїїњїћјјњњїљїѕѕЯєяяэчшхплмкмлче‡*+EB9500,IWOC<418њљјїїєюэѓјњћљљјњњљ‡їјњїњјјњјјїїѓяцнлмлйжснсѓѓА?$.;9795+*5?C04+ћљћјїєѓѓѕљјћћјћѕјјћћјњћћљњјљњљњњїьеденнкпннмыьЃ<:C7.73-8PN9.4*(0?5@??ѓ8.їјњїѓёяєњћјјњѕјђєїјјћћљљаћњ§§ћјєщхэытуюяюьђѓЄ;@2%!.(,,31:<--14јљљѕяюяѓљњјјљ§ёЋУїєїїјНїѕѕїѕѕјњњјѕєѓюѓєєѓюїяЕ[<9757$%&0;A5*)->ћљјјђёёѓєѕїїѕїњщЄпўњљћјјљљћљљ§јњјјїѕЯѓячмтм–8&255;1(*+8@;,+3.љћїѕђёяѕљїљћ§ћ§јїўњјјїјћ§§ћљијїѕѕѓєюнзс‰7&3*%#(&-:4:55ETM§§њєёёѓїљњ§ћћўљћћўљјјћћ§њњљљињљјјћљњїѕёэябv0(<<71*.*EC5-+TdMљјјђёёѓѕїїљљјїјљљјјѓњћљћїњћћјњјљјјлѕјјїјїєјєрŒI?<4.151>CHFF0k‡cњїјѓѓєјљњњљјћљљћћљїћћўљ§§РћњјјѕїњљјљїŒ&;@959*+4B@<3#9^hїјєјѕєѕїћљћ§§љћћљћћљјјњљљћљћћњјљїїњњўјњњхјњљ§ћЧI:8<02.17A<<7#+ђѓєїїіњљ§љјѕїњњћћњїћ§§љћљљћњњгљїљљїїљњјїј§ћАN2SJA259:C:70*4;Yыьђѕѕїјљ§§њ§љјјђњјљћњјїљ§љћњћјјмїѕїїјїљєѕє§љИV89&08Gсьєєїњњўћљљњ§љјњњќјњћ§§ўћљљЩњјћљљњјїјјћњїїѕ§ћЦg*4HNOO"2*$5:9:@:GFI34>JF2%*0ѕјїћ§њћћјњјјћ§ўў§§ўљћћЮњїјјљћјјљћњјїїѕїњњ§§’;38;322A,2.9G50$;єјљ§ўўњ§њћћјј№њљћ§ћћљјњјњјїљјћћлјњјїїјјїїѕ§љGGCB?@;7,*,;CA?Geјћ§ћњљїїѓјњњјњјњћњњјјњњијњњћљћљћћљћјљљїїѕ§ј…943A?B;51(8BB@>EUћјїї№јћ§§њ§ћјњљћљјљњћћѕјїњјњјїњћїњњхјѕ§љ›<5BA>9703-)3.828Mћјњњћћћљјњ§њњћљљћћљћ§љљ§§ћљ§§љјрњјјї§љЁ?@BGEC@8>GFE>71:BAHH§A;§§ћ§љћ§§ўўњњўљјјћњјћћљљЬјњїјјћљјјљћњ§§ВPIiE@GCE54AEA@CA5Cњ§ўњ§ўў§њњљљ§ћўњ§јћћњјћљљјћћљўћљљћяњўўпnB9.EGLI:9?<22њ;BEљћ§§іћљїїљ§ћ§њ§§јћљћ§ћњњўїљљпјњљїѕїљћљјј§ћжwb>BA5:A?.3-3+(28;§§њ§ћљ§§№њ§љљћљћ§јїјјњјњјјѓћљњјњїјїєјѕѓѕѕъњ§Э^G?28>CB;77.,.5@B"§§ўњ§§ћњ§§љћћћњјјњљљіјћљћћ§њћљ§§сћїѕєјѕїљїћ§ч~TJ:;.15+04177:C73§§ўњљљГњљљњњ§§њ§§љћ§§њљћљњ§њњљјљњѕѓєѕїїѓћћд\;2982:?3:?7193BIaљ§§ћјћћј§ћћјїѓїњљћљљћљ§§§љјћћњйљћњћљћјјїї§§еN*7CE99;8::>9<8BLOњћљјљћ§ћћњћ§їљїїљћјѕїјњјјљљ§љјїїс§љкZ.&318$)&.)0+??NPSњњћљњљїјњљљўѕљљћюљћњћ§њњ§§ћћљћјњћћљљдћљљј§§у\9*37@<::.%&%"@TJUљћ§§ћљћћ§ћћљћћљћ§њћћњзћљ§§њ§ћљљјћљѕїїѕє§§еQ,#)(!)4><#((24%%ћј§§ўђ§њљ§ћљћћљћјљњјјўњћћўњ§§йњћћјїїјљљ§ўЮI39:0-*8FI3023.0+ўўњ§§ћљћ§§ќћњћњњћ№њјћљ§ћљјјњјљћљјѕѕуєѕѕєљћкV5C`NA><:@7*+137,-јљјћћьјљїњјїїђѓѕјѕїїѕјћљћљљѕћњѕєїѕєїљїѕѕ§эхe?1>:1:>IJ7%(18AVZњїћњјјѕєѓєљљјїјїјјїјљњњћњњћљњњљјјўбЖTM,%7700&3*04:9@ESYњћњљјїєѓѓєїјљљјїїјљјјљјјїјїїќљјјїїьјїѕѕ§ўеW8@?9?N:(%",,ё3-9Zњљњњљјѕѓєѕјјэљјљњљњјљјјѕјњњљљїјѕѕ§їјїїтћўљzAWF:FnV(!.05543$1ћњћћњљјѕѕћїјљљњњљєјљјљјјїјјїјїїцљјўўёm,;B??AYI.345><;::їјјљјјїѕѕјјљїїјљњњљљјљјјїјїшѕјўўЎO1.0.4?JF7.99;::15јјљјјїѕєїљљјјљїјќљјјљљјљјцљњјїўўз]B++-7308:9:5<@HPјјіљјїѕїїјјљј јїљјњљњљјљљўјљљїч§ўлŒJ*(,,)*3;887;<5CјјљјјьїјѕјјљјјїјїјїјјњљјїјјљнњјјїѕєѓђєўўзzF48>>:488:408;>E\њљјљјјѕўїјјћљјјљјјїђјїјїјљјїјјїјјїїєўмзb4-:?;:077578;A@HHљјњњљјјѕєѕјљњљљїјјљ§јљјјљјљ§јњїїъ§ўФV:7@A?4).39@@:EGHGјјљњїѕѕјјљљјљјўљњњљЮњјљљњљљјјљњјљјјўўрbF;??@:5?;?BF9љјљјїїѕѕєєїјњљљјљ§ћљњњљјњњљћћњњљвјїўўэSF>:<;:?AC@;:9:?8јјљјїѕєѓєѕїїјјїїјїјјїїјјгљњњјјїїјјїјјљљјјўўцu4#*3783+0-9;;@@:OјїљљњљјїїїјљљњјљјјљљїјќљјљјјїјељјјўўЯO0;7;@>74,5>?BIјљјјњјјѕѓѓїљњњљњљјѓљјїјјїїјїїјїјјфїѕєѕўўЛ[a{SOBB742474:>;2Pљљјјїљѓэђѕјјљљћћљњљњњ§љњљљјїќјїїѕѕўзЇF,5$1:83845439BHPMћљљјљљѕяьяѕјљљњљњљњњљјјљўјљљјїјжѕїѕїўўЮj9NOGCB<@>B>9?CHG>њњћњћљїѓёѓїјљјјљњњїјљјјљјїјљљјІїѕѕїўўнwVVTMLFACB@:4Mњљљјїїєѓђєїјљљќњљњљљіјљјїљјјљљјј§љјїїш§ўбbFPLAAB2Nњљњњщљїєѓєїјњњјљїѕїїљјјљљјїјјљајїїєѕєѓєєѕўўхv?89:43-0:;>>HJC(CјљљњљљѕђѓєѕїјљјљјјљјїљњљњћњљњјјйљѕїѓѕљўЮ^>B?<9229C<:95@]F?BAFGG?CIћћ§љљїѕєѕїјњљљњњћњћћљњћћ§§ћћ§§ћћљјљјјїѕјѕѕўтцŽ^V+;AIIF?@?A::;AEћћ§ћњјїѓєјћћќљњњћћњќћљњљљќњљњјјдљїјїєєѕїўљCIPNLE>:;AEA>@?FSњњ§ћјїѓёєїљњ§ћћљљќћњњљљ§јљјјљјўєѓѓгѕєѓўљ›0;LIE<53?LYPEA@A@§ћњљљїѕєѕїљњћћњљњљјјћњњјљњњћћњїєєђнєяєѓўўЛF1?C@C@<-,9EEH<5"њћћњљїѕѕјјњњяћ§§њћњњљћњћљњћ§ћљљбїљѕїѕѕєѕѓђѓўўАBALHF;275:B?<><;8љћћљјѕѓѕљњњћћњћљљўњћћњћ§дћњјјїїјјїѕєѕјєўўЊ@WS;:1.544?>AB>B:љњњљѕяђїљњњљњјєєїљњњћањ§ћ§њњљљјѕѕїјѕїјїўўЊ;B:38.-,14<@>>9?<њћћјђыэѕљљњњљўѓЈРћјљљњњљјјљљњњЫљњњљїјїљјјѕўўФbAG<:84+2;@B<44@Fћћњїїђѓѕїјљљњљ§чžрўљћњњћўњћћ§њљњњљјЧїјєўўЊ<1<<>>557??>;?BE;ћњћјїєїјјњћњ§њўїљў§њњљњњ§ћ§ћћњћњњћћењљњјјїїѕўўŸ9?C:52.49:@:<@SeN§ћњїєђјљћ§§њћњћћђњћњћњћ§њњћћ§§ћћяљћњ§њћљћјјћўюŠ2499ы571;AFBA8[k[ћњїєѓѓѕјљљљјњћњћћњњўљћћїњљњћњљњјњњоћњљљћўї—LJG>9<:9C?<553@<74>IJ<9;"*<єёїљљћњѓљњљћњћњњљњћ§ћћњбљњјљјјљљјњњћњўўЖO5YQG>00@HGCBA>J^шяєјјљњћ§ћ§ћћњњќљњћњњћњ§ћћ§ћњњљљјљћњљјјтїўўСUEOёєїјњћћњћњћњ§§ћўљћћИ§њњћ§ћ§ћћњћћ§ћћњњјљјўўКVF;AEGEF;;ACG@;?5єїљњ§§њњћљњњћћў§§ћ§ћ§ћћњћњљљњњћњњећњљњћљјљњљўў˜:5><99:H3),?BB@AEE?:82299?BCA:59:;?CEJeћњљљњћњ§ћћњљћћс§ћ§њћњћњћњљљњљњњљњћљњљњјўўœ?4GBBя<@::<:>CCEVћњљљћњњћћ§§ћ§§њ§ћњћћѕ§њћћ§ћ§ўћћњњшљўўЃACGFCE>BHHIAFLIFB§ћ§§§њћњњўљћћљњљљњљљњњљљњљњ§§њњљјфњўў‘OLJEHF@?NVNGNQNL5ћћ§ћћњћћђњћњћћњњ§ћњњ§љњњўљјјљњљдјїљљњўўѕN;1AFFA??EIIGMMLQћћ§ћњњћњћћ§ћ§ћ§ћў§§ўћњњўљњњћћњљњњћћњићњњўўНJLmIBGQGA;@EFLLJON§ћў§§ўўћ§§ћћ§ўў§§ћћњћ§ћћњ§ћњћћўњћћсњћњњўўпpBA;FMTIFFC>::BILLћњ§ћ§ћћѓњћћўћ§ћ§ћ§њњћћљћнњљјљјљјњћњњўўр~eBB>@EBFA41.0;BEC§ћ§§љњћћ§ћ§ћћіњћњћ§ћњњљњњђћњћљњљњњљљїјїјјўъЯ[F?89?EGGB;74@FGF5§ћ§§ёћ§ћ§ћ§ћњњћљњњљћћб§њћњћћ§њћћ§ћћљјјїјљјљўўёƒUP389?E<FIIћPTљњћћђњ§њћњљљћњљјљљћћ§њћњњњљњљњњћћўњљљўур\,37?A>7:7;8?@WVYQ§§ћћљјљњљћћў§ћћњћћњљћћ§§ћјњћњњљћњћћєњћћ§ўўц]955<<нA@9:22,N\T^ћњ§ћњћћњ§њњћћњћњ§§њњћљњљљћќ§ћ§ћћй§ћјњљљјљўўжO.)513:FJA:2.:J:@+њћ§ћ§ћў§ў§§ўўћћњњћњњјњњЪљњћњ§ћ§ћ§њћњћњњјљўўдI5??>::BF?44785?;њћ§њћњњјљљњљљїїјїјљљњњћћѕњљјїѕјљљјљјјўљыm@7@;CCEј?824>Lbmщ§ўћ§љћїјїјљ§њћљњјњјћљћљљићљњњћћ§њћћ§њњљћљћўўРo]A0NLC4P88:GELP]ciћћёљњѕїїјњћњ§љњјћњњДљћљњљћјњљћљњјњјњјњїљўўнbCNMQOdI-745A@JH@Qmњћњћњљљїјљљћљћњ§њ§њћћњњћњ§љњњ§љњјљљЭїњјњјњ§ўў‹SoQ]Z„i@:??IEGE4.Cћ§§ўњ§јљїљјћњ§ћћњћљ§њ§њњњћљњњћљљрњјњјњљћўўїv:LYSNTp]>.@FJHHCBEљћњњћљњїњљљ§њјњњѕјћљћњњћњљћњњЦћјњљћљћљњјљјўўНbA?;ALM[SIQLM>@E2>љћњ§њћјљљњљњљћљћљ§њћјњљћњњи§њ§њћљћњ§њћљ§љћјўўыЃtP>>BGLE:1C@BGJO]њћљљшћјљјњљћњћљ§њњљћљћљћјњјћњњо§њ§њ§љњњ§љњњўўщ]7.GIEH?84CFHCAEIњњфћљћљњјњљћљћљњјњљћљћњњљћљћљћњњЫ§њћљњљњїљјўўр„UFPMJCLGGVљћњћћ§њјљљіњ§§ћћњ§њ§њњкћњћњ§њћљњњћњ§љћљћљњљўўгU\dC5OOTJMFMNSOOў[њњљїљјњћўњ§њњФ§љћљћљћљћљњјћјњјњљћјњљћїўўЧn}”g`UEMICC@AFFNC`њ§њћљћјїђѕїћњ§њњћќњўњћћа§њњљћјњјњјљїљѕўўЖS;A49PCMHG?JCEOTb]§ћњњљњїїѓїїњћћРўћўњњљњљћњ§њ§њћљћјњљњљ§їљїўўзuP^eVYSYSWLHEOSYUFћўћ§ћ§јїєїјћљћљњћћі§њ§њ§љћљ§њњŠ§љћљћљћјњїљїўўщŠgia]]TPUUYNGMVOPAњ§§ћњћѕѕѓјїћњ§ћњљћљ§њ§њћћў§§ћ§§ў§ўћњљћјљїєѓўўп{h\NNTLLHJJMBJMYYAњ§њћљњѕѕёѕїњљ§ћўћ§њ§ћћѓ§ћ§њћћ§ћћњћњћћзљњїјѕўўЧeVijTQLIFHLMMLTUB[њ§њћљњјјѕјјћњ§њњћўўњњд§љћљ§њљњњљћљћјњјљїјїўўзnQd[I\JLGLHPCOWO;\њўћћо§јјїјј§ћћњњљњљљњљљњљћљћљћљњњћљјїѕєєшјѓўўэƒP@JGE9:CAJIPYTP7Lњњєўћ§їљїјїњћ§њњЧ§њ§љћљњњћњћћ§ћљљјђѓѓѕщїўбiMPMBE;FENQOHPSMF:ћћљћљћѕњєљљњњћћњѓ§љњјњљћљћјљѕјјђиѓєђљўп‚P<5@E8C5IQOLSNII^ћ§ћћњћїљјњљћњ§њћћ§њћњњТћњ§њћњўњјїѕяяэєѕѓюєѓўўё’^JLEGMk[QVTIPWTN\§§ћћњњљјїљњћњ§њћћўћ§ћћеў§ўћў§ўћћљљїљїјїєюэѓўћй‹g[?HTP\YNNOMQJUOWћ§§ћї§ѕћ§§ћРњ§ћ§ћў§ўћ§њ§њ§њ§њљњњљјєјђєяѕјѓ•LVe[]TPJQQTOMOOPcћў§§њњїјјњњ§§ўћњњћўўћће§њ§љћљљјјљєёѓёяьэёяјэ–9IZUQHMIMY`ZOSOOP§§ћњњъјљїљћ§ћўћћњўњ§ћћњўњћњћћФњљђюьяьчыээыўўОJ:PLZJPH<9OMOSPL8§§ћћњњїљљ§њ§§ўћў§ћћ§њўћ§ћћњ§§ћУљјэшьяђѓяѓэь§ўЗLQ]SWJIJ>INGMILELћ§ћћљљїљњћћўћ§ћћњ§њћћ§ћ§њ§§ў§§дћљћєєѕјѕѕђѕѓѕўўВJhbFG@IAGHIIPHQHIњћњњїєѕњћ§ћћіїјј§ћћ§§ћ§§гў§§њљєљѓїєѕѕљїјўўДLOJ?I?EFNJLIELTJPћ§ћћѕѓѕљљћћГњћўїАЦћћњ§њћњ§љћњ§њўњћњњљњїњљћјјўўЩnPUOLBFLMJOIMHOPZћ§њћїљїљјљњ§њ§ўяЅыўћћ§ћћ§§јћ§ћўћўћњњкљћјљєёљѕЈL2PJQMPCLHMFIMOME§§ћћѕјїћњўћ§§ќўћњўўєћ§ћ§§ў§ўћ§ћ§§Сћ§ћ§њћјњєђюћЂCEQHCGFBHHMJHTapa§ўњњјљјњћў§§ћўћ§ћ§ћ§ћ§ћ§ћўћў§ў§§ћћ§ћхјўўщ…<;HJFHGOQSUHF?k|iћћљјїїўћњњћњў§§ћўћћњ§ћўћ§ћћжўњўћћњћњћћ§јўўё[Z[HMMLJQ[\IIFvŠuњњљљїњљњћћ§іћ§ћ§њ§ћ§ћ§§ћћ§§ў§§јњўћ§њћњўўц>JZHMEEGMTPHGATt~љљјћљњљ§§ѕћў§ў§§ћ§ћ§ћћњ§ћ§ћ§ћћњљ§ћћњћњћћўњўўъе`JNQN@HOWZTMFA32Gјљјњњћэў§ћњ§њћћ§ћ§њћ§ў§§ћ§§ћњћњ§њњиўћћўўРbLp`ZNNQW[ZISSJPtёѕјћљњћ§§ў§ўћўћўћћћ§њўћ§§ЗћўћўћўћўњћњћћњњћљњўўЩmNN^\]U;GPUMLUTZbыєѕњњћњћћ§ћ§§ўћћњћњћћ§§ў§§ћ§§ўћ§ћ§ћћг§њњљљўўй{>@[kb`:JFOANNTM]єјњћћ§ћ§ћўћ§§ў§§ћћњ§§§ћў§§вў§ў§ўћ§ћў§ў§ћћ§њ§ўўФgTYWYUYUOGITPNPJJїћњ§§ў§§ћћ§ўћўўы§ў§ў§ў§§ћ§ћ§ћћ§§ћў§§ћћуњљ§њћўўЄNBSSWGLYM7IHOUOESљћ§ўўш§ў§§ћ§њћњ§ћўћ§§ћњћњўњ§њ§§оћ§ћўћ§њћљњњ§ўўА[U\YZVWPG:GGUZ[a‰ћ§§іњ§њ§њ§ћўњћћє§ћўћћњћњћћўћћћ§ћ§ћ§§вћ§њ§њћўў–OLNZ]WYUPMINPZa`uћћњ§њ§љ§ћ§ўў§ўћўћ§ћ§§їћ§ћ§ћћњўћћрўћ§њћњћњљўўЇLHZUTMQOTJMHSSWUaћўћћ§ќў§ў§§Эћ§ћўћ§§ў§§ћў§ў§ўћ§њћњћћњўўВN\Z[d[YV\^PLTYUUP§ў§ў§§ћћўў§§іўћ§ћўћ§њњћћњњћњћћ§§јћњњ§љћљўўцЁab^YUSWU`c[YTbd[Gћў§ўћ§ћ§§ўў§§щћњћњўћњљћљ§њћњћњ§љћњ§њўўщ‘^LAWVZZPMYZQ[``MUўў§ў§§ўњ§ў§ў§ўўћ§ў§ўћћ§§ћ§ћћпўћўћ§ћћ§§њўўС]Yƒ\Oa[VPUTUW\\WPQ§ўўў§ўў§§ў§§ў§єћ§ћ§ћ§ћћ§§ћ§§сћ§ћ§ћ§ћ§њўўя}SQL\d[WUMVQNNPSVW§§їў§ўћ§ћў§ўўѕ§ў§ў§ўћ§ћўћћє§ћ§њћњ§љ§њ§ћћўшэ|TPOVJYTNGL;JLQZL§ў§ў§§јў§ў§ўћў§§ђў§ћћўћўњћћў§§ћћјўћњљћљњљљўтпo]M@LQWYTQMGFHUWN?§ў§ў§ў§ў§ў§§њћўћўћ§§ъћ§ћ§ћў§§ћў§ўћњљћљћњ§њўўе•heMIOHMTQSQMMTSOG§ў§ўћўћў§§ћ§ћў§ў§ў§ўћ§§ў§§Щў§ўћўћћљњјћњ§њўўщtINTLPPVSNJMPNOZduћў§§њ§§ў§§ћћњ§њћћ§ћ§§јў§§ћ§ћ§ћћл§ћўћ§ћћњ§љўўс`9JWVUQNSVQNOPTW`eћ§§ўћ§§§ћўћћС§њ§њњћ§ћ§ћўћ§ћўћћљћћўћўћў§ўњ§њўўьi8:OMLIECGIIHS]gie§ўћ§ћ§њћћ§ћ§§ўћ§§єћ§§ћћў§ў§ўћ§§ћл§ћ§ћ§ћ§ћўўѓhGFTEPJQLMGMB@\d\kћ§§ў§§ћ§§ўћ§§љў§§ћћњћћ§зў§ўћ§ћ§ћ§њ§њћљўўрZ;@?>CEPQSIB<>POG4§ў§ў§ўўх§ў§ўћ§ћ§ћ§ћ§њћњўћ§ћў§ў§ў§§ћћтўћњљўўнWBQQIJILVVLCmЈОЎЁЅЉЂЂЉЌДЊЄ™Š••ЂВКАЈЅНФЫЩЯкрмкздЪШШЦШРНЦСЛМРКРШФУМВЏЏЊЇЎРЫЪ>YŠЕЗŸ—œ››˜˜ЊЉ™œœОЪрюлеЧЫЫЩбжзлЯСС€#ЛИНЧЮЭРТРЗБВБЎЏДКЋŸŸЏКЛУФУТЪ.j˜™˜’Ž–žЁ•ЎЭЯсяцлкрпкдздгсшхзФКБЕСЪРФЦЪУДЏЕЕЖЛЗДЏЕМВЇŸŸЇЁЌДДЕ0C‹ИЗЖЊБЛИЛЯкребзмрсмегЭЫФУЮлзгЩЭпснжЪШдгЏЂЂАУЩЦЧРНРЗДЖБЁИЩТИДЗНILЭЭгйлбЪЦЫЪЩУШЫЫЪЪЭЮЮШЦЭжйдЫОЛОУЪЩСЛЪзСЉЁ˜ЂЦЭСАЅЁЌТЪТСбплбРЗДIQБюьсплзаемлаФУЩШЩЪЭаЮЭаЦУЪЦОЛКММЗЕЎЌЋБЏЌœœЎНЦЩТЖЌЋВИКИИРЦЧУМВЖ8HИєрзмм€впнгЧШЫЫЯЮЭЫЩФЫУРИЕОСЛВЏЏНОЗЊЈАЌЃЈЎВСШУЌЋБУШЩТИЋЄЅЋЏЅЇL`ВуЪЫадлзбЧНФЮазннждйкгЪЧЭЮРОФЩОБЃЅЏДБНЦЛИЏВЭддШДАЖОКИАЖЖДДМКСФMZВгЭЪШШЮййзЭЮжйетцпдЯЯЭТЛКНСЦЮЯЗЈЈЊАКЩЮбмпдШЪемжОБИРБЋЏБЖСЪЪЫЭЧBnЏлпбЩЫЯдлйдбЮЭЭжгЭгйззЯЛДКФЮЪУМВЊВЗЦхЯЄЄаЪМблжЮМЗЕЇЁАИЧОИМФЦЩЭ4bФЯаЯгнтнжгдммеЭЫЯЪЪЧЦЗЌДКРИЛФееЪТФЭгхйЃxЉЪЩдкздЮЮЧЧТШжлннбдбРО+eЯыцккгЫШЧФЭжгЯЮЪЮЯЧТКЕЌЎЗЩажаЩЭШУЧТКАИВЄАЖУЭгзЯЧТЯгкптмлжжЦДЗASРзЫдеЯалеЯЫЭгдаЯкйЯбЭЪЩЦЦМамлжТИМКЕМЭтЭЅŸЗакнжкжзнмблпеШТЦСЗРФNbКшѓпнзйпдЭдрчшназмлдесьЫЗДОШжМЂ˜ЃЋНЫабЧФЦЯлЮаЮейлпЯУЧРКЖНФФЗОУ;S–РЪРТЦШекзгжййЯЦЦСРМУСЇЂЃАИМЏЅžЉКЦЩггЪШШУСЦШЫЭддЭУШЦКДМУТЦЩРЗ$>ЄыькгеенлйрупгУНОФМЕЕКЏЇЄЂЋНОЖАЏДЦФЭйжаЧМИЗОЩЧШЯбЩОЗЏЋЕКОУЪЛЊБ3@ЖєэпслкпсчнаНБЋЈЉЇЎНОИИОФССЧЯЪгнегднчцзЪбЪНОЫЫФНСТСКЌ›ЉВШФОККТ48ЋјѓллдЭзлкЪЗЉЊВЏЉЉДОФЪФЧЩЪШОКБУЭемкнлгСВШлйаЫШЩШЭЫШЮТНЖФЪЩЧЛОФ++ŠїцзкЪНТСТФМБЏЕУСКФЭкзгЫШУУИАВУЯЭШЫЫЮФИБКШаЮЭЦЪЫШЦРТСРРОФЪЭЭЮЦC9ŒщреЧОЛОЕДЏЕЕМЧЮгжмпслбЧЧбдЮШЫЫЧТШШСЛВЋЌЛжмрпкдРНЖФбгзкйслгдкд4&bЯпКДЖРМЅЇЏДВЗФЯптзЭЧЩЪагЫЭЪЧШЯдзЫЩЩЛББАЗЪйкзаШСЦФЮзддздедтхрп&eИетЭЗКРЊЃЄДУЫЭжснбЯЯгЧТОШдЮЫШЮаЧЮбЮаСОЦТЧдрслгЭгЫгздббжкаЭЭат7BaйрЩШНЕЛОТТЯстжЩШШЮгЭОЕБИВВИЩЯбЪдлнйдЪШЩЯбйннеабжкаЮЭлщцрбЧФЩе8bщюшЖЎннЫЦТУРЧЫЫбйЩЖБЌБШйртдШдкЮДЈЕВЊВБИЦЦЩЧгЯМЕЕœ™—ЄЕАЗУОФгШOOrкѓђщцрнеЭЦКСЮЫФСОНТНВЖдчунеЮЧЦЗЂЁЄЏБДДВЖРЗЌЛНААЏЃЄАЕЉЄŸЂЕЛРАЄ08iЮыырплнсутйзЯРООЗРЧШМЪЮееЫНЏЊЊЋЊ›Ђœ–ЅАБЎЅ˜”ЃЃЏ€ЗЗББЎžЋБЕЗЌЉЈEJˆыяйгаФЛЕЕЦОМЗММЕАЗЧйррлзЩНККЏДЌЂЇЇЃ˜ЉБМШСВžŸЃЏЌЏЏИОФСВОЩдЩММУj:dэыУЛЎЏБЎЋЃЇКШЭЮСБМЮззйдЭЗЈЏЏЎxFgЇЄЗДРШЖЖЏЖВТЫгежЯЫЫЭебаззсхV>}юьИr”ЉЃЎДИОСШаШЛТгрслеЩЏЃЋБгрчкктЫтыкйккжбШбзжззблсрнрлЯентнbG‰ЯЯЗ—‘’‚›РйспдЭЯЦСТЮббКагЮйдЭЯЮЪМАБИТЪЯмусцкЯЫЪЧЭЫШСМЗРРКРжпегIT‘ТЕ‘Ž˜–ЄЪуссйдггабЩЦУЖАВАНгЯЩЩІЧЭТИЗЛЪжмчсупжгдааЫФСНЗКИКФШШЩО?JŽюыУССЎДбщчуупнкаУСМБЊЏИЛШгзлгЯеенллгкцьхрраЩУШЩТЛЧЯадждбб€олмм>I„мбЧЧЪеущщхмзкмпмлзФИВКССанмЮШЯзЭШШЯанурутрсхмпдУУОТбйЯФЫЪЪИœ‘58tжьсЯгзрсукЪЦУСФжйгЪУЧШУЦкмгелнккзаЭЭйннбЮжЭЯажЦЉЇБНЦЧМЊЌЏЎЊЂ;0bДДЏОЯсцхтзФЗЖОЪбЩЧЪгмсмжпрдеккдпмбТМОйжгЩЕЌЎЋЊЋФНЫЯбЩЖЈŸЈЈИОЇ,4ŒК›АйлнзжЯЩОЛСНЧШУЦЭкмцышшп€ бТЩУИЕСлрэцРЈЈКЎЏЕТИЋЊЉЌЗЛУмпзлЫ-?гЫкснжеаЫУОАЅЉДКРКЦЧУгешйЩасцуйагЦЛЖЖНДž‰—ЃЌЕФЪНВЏЏВСЛЧажбЯай8PЅяыжкдЯУНЩбзЩЕЌНЧЛТЯЭЧСЦСЎЅŸажгЭЧЯШОЪТЛАœ™›АОЯжбОЉЗМФЛВНСФгмЯОOHЊюржлжйЭЧЭЭЦЗЎБНОМЮзЪСЫЯЮОЛТЯжлеЮзгШРНЭУДВНылжураЅЃž™ЂЎОаЫаЭНОJdТљєрунзммххндФОЛУЪЧНЗЈЎЏЌАИАВЗНМНЛЎЎЋЊЊТЪЮЦСРЛЗЭжЮРЖИЕИЦбеЩУНД)0цщкпзУЛОЭЯФТЛЎКЯЫНДНИЋЌАУЯджЯЯФДЅŸЅБОФСЎЁ›ЈДВЂЊДРНТЫЪЧЩдЭОЖА)5ЕёкКЕЋЇЌКМТССКЗФСТЧЧЪгШЛЪддШШУЖЇœ™žЊЌЦШРЕЃЌ…„ИпЫЛШЫзнтлзлйШНИФ9ЌюцТМОБЎЈЈВДКШеаССЦЖЎБЦФРННЕБЕЩНЄЈЛЧЭгкнзЪйзйѓїзЩалжезеРШЩЩТКН.O›СДЏДАЈЄЇЋЖДЈЎЕМУЛМНФЧабЭЧМЗЛФЫУайждбЩТЮслЮзслЭамкебЩЯййаДНРЭс;M’ЂœЕНЏЌДМЛКЖЗЖЛнзглсгШШЮлнеЮЫУУЧЮкклнзЮбЧМШШОЧентпмггйппкаЮйшц@8™ЉžЎАБСЫжкбемпчычуцщпЯЯйрндЮЭЯкжелррлбдккмйдкзмсцнлййутйЮжпеТћzжўљђђвюыцуцчыююыцхсхьюычмжгадзклнртпкпјњэёкЦЩзнццунккњйззелннѕпdДўяющчшчццОчшщшусмлмнручццслккмкмппеЏФспмёїчжадзннжззкпнуцхууццTЈњњыышхусххрссŸнжкдпбдймркЭЪзлкнпхёнФУЫЯЧкпплжждежеегжзрщчшхрртGЁљўюуупнмннпмнкжаШФЦЫааЯЮЫЫаемрттчяуФЧЧЯджйсспмжж‚Яаанхцчсплннп:oлюцмжгдгзйрнкгЮЩЦНЫныздбгдгейзмсцшыЯОеёщженучурлйжддптхцпнккпхTkЪукждаЭЪбйрхтнЯЭЪСсћмжабгбаЮЭбймхёянйуѓюйчыюыщххвускщьэыцтхчшш@]ЛзмагЯЭЯгкнрпжаджлѓкеЭЩаймзЪжншшСєѓєёяюээьыююьёёююььюэюэщшшчьB]ОнбееджйнрсйгЪЪЭжлнмйзжнчятсїњћўєєђѕєёьщщшшыьэяяёё™яэюьчцуучыьJЪёцнлккезмртмгЭТЪЯгхщселщыыэђѓёђђёээыхпмхчхчышуццщющшшщшщьэююђJmЕцщжзгзегзкпЭЮЮгшёї§яэёяёєєёѓяэьыээыыхрмхшщщкшчцущшхннпрцчыьэя3B”гдгаЯдггШлѓєњў§їѕѓѓЦђёяёђєѓёюыыюяюяюьскрхчщьщщцщышсрмнрсццшыьEZЏщщцлнцтхѓѕїюяёёјяёёяюэяѓѓћюяээѓѓчєѓыщазкншыёыщцучщцсжьѕьэьь№[UКїїєэьюяяюёяяююмёюяяёёяяюёээьыэёьчхшѓнТЮгЪзшщчсмлпцшшчыяёююээW`ЪўўђѓѓёёђёђёёээююєяюяёююяьэыышшымштсзбЧбмцэыэщумнушыщшцшшццшхƒўўљяёѓєђэышучыяяђђёєєђѓєѓѓїїјєѓёёзєђѓђьяююыщшчьюяэшхтухусхE:‚ххпшёяёяэьщщьююќэюѓјјКљїєѕѓѓёђяёюььѓёєёэььшссычющыщчцстхышщу4;Ќюгпєяяьшццшчцьэяюыяёєєѓїїєєѕѓѓю€чыщььёўћщхцсчшюышусхшцщюээяьѓ8HАїхэђьэщььюыцтцшэщёюёѓяђљёцэјђђёѓяяьэышрзЫпнтьююьщшшэщяяѓюёёѓё|ЭЪФеуяђёёчнЪЮднттйныѓђёђѓюшщыыцьюрдакыыхпЮШССУЧжжрцулЫУИТРЪжОEIЇгЏЪээщцррзгЭбензнппыюєјєљђђяёшнулЫгйыяўљжТНЩЦЩЯлЭНУЩЭЯзньыьшл>SЃшзюёьцхуулдУРУЭЪбдплйуэѕыесђяяыщыкдЯбЮЧИЂВЕРЯлтеЫЪЩШмжущшсцтэLdНўјцтцсмкпуынЮРакмрцрткжЯЦОДыёщцучхжпзЭЦИЖЎЦзшььзЧЭгжЭРЪЭлчьпзc^КћыуучыхкчскЭШЪжбетшлнрусдЭалцчьныхрзгрмЫФг§яюяђхКК€ЪДКФбуццсгдVvЭўўюяяюёэѕёяшргелтзЯЩУФЮШШЦЧШггаЭгЦШЦЦСдмпЮабЫУйымШЫбегрщятнкжAFЁѕђчшхжЮЫкпмйЯЦбллЭШЯЫЩЪЪмчышцрмЩНЛТЪзждФОЏИМЩШРФЮбжзшсймщтзЫа:GФўьЭЦСКТШЫЯкзЯаржмцутчмекццплзЪОДДКЫЪммкЪЖТ™™ЫятамньэђьщьэкдЯт)OМўѕзбзЯУЛКФЧЩкууеЭеЭСФггекаЩФЮлаССЭклрщяьыѓьхўўшныёщуцсежнждЩжFeАжЩЧЭЩМОНОФЦКЛТЯкгЮЭжрсьчхеаайлйпчрчтрдхяяучэяуяэьчсрчхщпЯегпюPbЇТЊЧЯШСЭгЮЫЭЫЫађычшэщруцыёышугйнпэьюыумрекспмууёюээщээяђыксяђїVL•ЋИЖНЦТгсэьшчэюѓєѓѓїёюуучђэцпцщьытчьяёшцэюьэьэчыюєєђэѓёђчуэёцкџ€љŸДСАЇЊБЏЏАЁЌЗВЌЃЅЉДМКИТНДЖРТЦбЩРИЏЌЊМЦШгнсцхцреаэяЎN507AF@:4*13.ООЗЛОИСОАžЈВБАЊЉЕЖИТМЎЊЕЖИСЪОАЊЛЛКТабЮФЭжжаЩЮзцутЂ8449::BG?*00АЗНЦЕЛФКЖБДИЪОЏМЧШРИКТБЋОЗАЖОУДЏЗЛСШЧФЧШНОЗОТЪеЫЩФo&,4**+847ЏЕШдЦООККТУУНТЦУННЕЅЇЩТУЧбгдЩШЦУеннцщыьулейдаЮгкнЛc+505<>>€б,91$ДФжзаЧЖЕДРЧНЗЛШЫЛЊœ„БрлбШЫЮйпкмхнрчююьукрмллрцчьгW+177BC<4+2::2ЖРФТИЦСЌЖКЧЧИБЕЗК™ŸФнђїыщшхтычшщснсшцумзлмЮТЦжрцєйT172.EahP1+<;AОФакЮЛЖВЗАЛЯЩЦЪЩФЫЫелмпжбрчыыэьшцттппнмЯЯдгЭЪдерщŸNH@34Q^[{I@FECНЛЩЯдЦЛИЕЛСЯааќейзбб€фЪФЩпшыщундЩМИШзжеЮЭЮлткйктяїЩT5<:EBGFA:E?>ЪбЮРИИЖТСНЦкумздШЧЦКФЪЪУСжчзЫБИИДЎЛЫЪНФглупкхщьѕјУG27?58>C8<9;<8пунЮЯйрскЦФЪЫЧШЦЫелгШЦЛКЗББЉЌВЗРРЮбТЗЖСетыяёщщьїјЮL-3CCGF>998ММЗКНФатрзСЎЋЂЅЖЪЧЪЫемннснЪРИОЦОЧТРУЩЪЭанрмкйдЩдюД5135?ЛФКЎЅЂЂЃРЧОЗЏЉЊЗЦФНЗИЛФебЧСЛСКФЧЧЦЯгкеЫжкзеЯЭгЯРЫ‰>9:@C:72.09FЗЎЄЅЇЖИЗМРЯдЧБЌЕРРЧЩЛИТабНКСзкагеЦОЩЫЪУНТНМНЧЫакшЅ<09:+2885-"&!2<;CЦЭШРРТОЦЩСБУадОВРФЧЪФШглтЭФаждЪЮОУббЫЦЮррч€ѓнптспЌ<5532>;,+.9@:)ИМШЦЯгЫЪЭЩРЪЦКЛЧЧЫдзЦЦЪкрйтмгУОУЧЮйлбЧЪмнкЮдЮгйетЪY4;AB:3),2529ТУЧРЦЩЫЪЮЭЭШЧНТСРЫЭЯШЭгбзуйЮСТжблттзЮгЫЮаЪСЭдждлюЩT+AC?A:&##%-:4ЯегРДЌЊКИИЗВБЧЧЮжмсретпгзЫЭжаЭЭжузжаЩШЫаеЦУЩЮСРЗОАY(8;<-.%3--5<<ОЦЫЧЩЪЪУУРФННЦЭелутлблкаагФЩЪЪжнкйжЧЪЫЭЛРФМКИРЪФЦЭj#)40%5-4*$+54зннЭТЫжлнркбедмслкедзгаНЕНЕЕНФШЮдЭМЖЛОФбеЪСКЗШУБДЂ^0:>;:?HC-318%кзжгЭЮмучцхлсрндагеггРЕБЖМЦМЛМЕЏЖНКАВФЪЦМТЛНСЦУДЉЂ|8;",4@GB;1-.(цтжзЮЯемуртлсхмзкссмбЮТДАТЭФШТЩЩЧУОУСЭЮЪЪШФШЮФООАЕ43<5*18:21498чычзЯзплбЯзмрйЯаклпцргЫФУШружЛСС€sЩЭжбдбкдЮТРЩЧОЌЏЗЊ>:587728;>>CHннлкЫЩдцэьёэьышрзжКАсрНглйдЩОЛРЕЖЕКбдЧИЖЖЕИИЛЧСТЪпмW-320-3:AF:AздехптшчсхчхтжебеЖh{ЭЪЧТРРОЛЕНРТЕДЇЏРСРЗМЦРТТФИЕЕШЕW4,.(>E<>4;;ЧУЛУдлЯТНЖЦаЯОРШадЮЪМЛЦЩФЮзлнбЩЫТйсхлЫЪЦФРЧШКЕКУТЏЉ~>82218@><<>:гбСЩдзЫНРЧЮкЪЋКСЛСРШШ€cЛЌЛйеФФСЧЭРЭйаНаеЫЭаШМНДСЗРгй—E#(,<7&+ЦАЋЅЅžЊАŸЉЖаОЋЎДААИЦМЏРЪкдЫШЦТМТЦФНКЖВЦСаЫбУКТШЫЩБk7"$74>474%ЯЎРООРМЃЇ—‘—ЕКЖЌЌЕУЧРЛМЦШЪЦУФРЗВЖДЛУТККРаУШЮЮЫгажяјшЏC>#5%:?@84(ИВДЏБЕИЋЎŸ›ЇВЏФЭСЉИЦКВСдЫЌЇЛЪЛЕЛбжрпцлЫйпйжнттчшункؘ?EBHH€ЩJGLE&ЈЎАРбтхЩАЗЈЗбФбаМЏНОИМСаОЖМКДЗРЧЮЯгблЯЭладжблхццнЮрт—1!88591299БВЉАСгеЫНРШРНУаМЊРебФУажйеУЖИКСеЮЭФЪЭкрумщэшяыэяёуыцД[INE<93.09;СМЦкдЭЯШФЫедбдЫФНЧЪТИВВЖНКИУЦШЮЩЮжрхццьшчшшюёшыёьѕэча{E"0CF@:?BFтрсттсскдебЯСРйзбаТДЌБВДЏАЄЉ‘–ŒЛпзнртсцнхцчшышщцущстЋM5GMLFBC>>ЯекЯТОФЛОТТССйтмжеЩЌЎНШНЕИЖКВœЂЇЩШсхлзтршыэчкнучммбФШБB,7EFHGC9ЩЧгЧЗЛЪЭЫбЫМФЯдУЧЦЦИМахуШШУОЖОТмпмппаЯнмхрлзаЪЯгЮкзеЫУzN:)9>есргйЮМТеЧТбазйнзгЮЯбТЧЪйджкдТСЫНайкЩЩЦУгзтхшчццзтрсМЦжШO)99F?1AсхцхмЩЧТУСЩеЪжстлЮНКУМТСЩаа€ЯЩЛЗКЏРжЦЗВЗКСбСдщшшцжзеЪТэкQ#9BB?CBЫЮббЭНЫггЧбцхзТОаШИЕБАМСанрсркеКЃКдаЮУЦЮЧШТЗЩушпгЮпяУЛьѓ‡8:<@4INМРСТУОЦШЭалкдаЖМдЩКДЗНМЭЧбрмзаЦТАЌБРЪбЭзекммнцунххыѕбЗбш›0;>B8w”ЎЖЖТСФЖМУОМВБТанаФКЕЖЫЯжЗВДДЈŸАЗЛРИЉЌЕУМЛЖЮмзхцчцяѕЫКэѓЋLE>:(-IОШЮагабЛИВИКЕЎАЗМТИЧРФЦОЊЁЇЏЄ›ЊМЫйЮЖЛЫЩрменшэушёёяњцЇејЁB8G8@B:жзлсмзЯЭЧедЩЖААВЖФЗадЯЪЪзЪЖННЎДжЯбйЭЩаЫФТгйсмллсшцшђсОйјЖHEb@<;GЮЫЫгБВЃЁ—ЩемЧЖЖИЛЌЛЯгУЩШФЖБЛРКЛажЩФФаЧЪгдЩаЩЪУгтуршљмгчїшC%*98<;пйёкОœœЕДЭчйЪЧУЕВИЕЛФТИДДЩсрчрхшрнкпсртчымЫллШуюьреЫЋЅпїчG2;:5:7цхн–ЇЕЛНУжаННЧКФгежгЮТЧбуьуЫатссЂнчээщяьтзЯмктмрмтшТЊсємI%!&3AHЦтѓлбИФбгблхзмбЪбмштнЭблсчрЯжзккжечшшцрмгдЮЭлндЮЮгйяЮЖлєбP"+,489гпууцуртцхсуучщшхтухшэщцчьщыэящччццтутшюяђѕєђёёрюўўЗP77@HLE;5589:шщьышэьыцхрхыыччъхчхчцурсттхчшутсхцщщыччйцшхчэёѕўѕЈ5,:8:BFH@<785щьэщэьыюыыщэшщэыыјщхцччцхшшЙышшцшьэыыььцусуучььыьн{,*$4.409989@<хщэьяэщшщшчцщшьэьчтрсщщыщщьщььэюяяђђуєѓђёёяяюёяѓњрq.19:B@;84??;эяяюёчхцхьщышшццсджшћћўєѓєїјїјїєѕѕсѓєѓђёёђєёяююїўш]4-72MihN70;?@ыююяІычушьыэяээёэяђєяэяѕєѕѕїєѕѓђёѓѕѓђюёѓёёяёяђјўЗV?5:7V`aƒJCCLJяёяяэщчушчьюђёђёђёяюэююяэѓѕєђюэшшјщьююяёєёёРђёњўбZ87@AFMNE1?9>Eѓђђёюшщщэюяяђєѓђѓђёѓяюьщщђјэщмщшцыьщщьяёѓђѕєѓѓ€Є§ўЩM52CяђђѓѓёёяёєєѓђёяяђёяяђюяшццсттущьёэыьшчыэѓєєѓєєѓўўаO*(8@FGGIF@4@BщышыяёєѕѕєёюышуыююђёѓђђяяэшуучщшэьыыщшщюяђѕђєѓђјўБJ>1;?FEGLE<7:;эшчцчщѓѓююэмуптчьђёёљяђѓђюэщщКыюээяяёююђєѕєѓёђђћўК558<;>B9;:5>BCэшцрнпбгцшээшстчьююьшыяэюэыььюьэяяьююОёэююьэёюыцэ”8>?EB@:517>@тпмнухшчшююэщтущюѓђэщыюээюяђяђђюьэюэёюяььтэюю§ўЗ9.958<щщыщьыышээђяяёяёяёээющчсрсрсшщьээыьыыщыцщцсушьэєїДM89789;>;8;;8:яяђёяьышьыюђђюђєяююэюьыщшщщьщыяёяяёшьыыдчшчьюьўўИ9741*,.41)2A>;яђђээшцщщыюэююяяёяююяяаюььщщыщщэяёяьэёюьђэяяььщёѓŸ44)438;;F"1;<@юёяющшччншччщыђёђяђяѓђђєяюэяьччшшьяьэьюяяђђѓѓЧяљћЎQ5!85?юёяђёёяыьэьэыьяюэьээяђѓѓєѓђёэььыьщьяяэђђцєїѕєєђњўВ@)"-(0;A<20,A;?юяюђёюёяяќёэьыыяхёэђюёюёѕѓђюяюэюёђяяёёэђђєяёёЮѕўт[:17;@:3,77875ђђюыщыэяёёьыщэьэђяѓяђђёђѓюђяђђэђѓѓСєюђяяюђюяюэѓўр\.?EHJA5025478ээььщчшцшшчтчшёяђєѕєјѓѓєёђђюёёѓѓђєђђкѓяьщюэьщэщцьжo29<8<<8-1579?ѓђёюььэюяяююФяђђєђёяѓяюяэщьшчэюэѓђюёююыюьыышщьшяёюz0158;?A;1+3>>ѓѓђяёёђєѕѕьєђєєђѓяёяююшщышььщыььэкшчэяэьюьхчцшсуаq85?8>GIF;+712ѕѓђёђђёєѕѕљїѕѕђђєѓѓгђёыцчэьэшушшыьычщыююёьэчыщцутй‘>5*24AFA:8432їїялёѓђђѓѓїѕѓєєјєѕєѕюьыэьюѓюьыщэяяэёяѓѓёююэтыячр9057ѓєѓѓёюяѓїјѕєє€ГѕѓђѓѓёєѓюэяѓёђюђэыышьэєяяыэщыюэюыхушОC3315;>?A;>CHѕѓђюђѓѕєїїѕєѕѕєяјємељњѓььяёэыщыышцшшьэыхчэюяёьыхюўђc119;??@FAB@ёёѓяѓѓђђяёђѓёѓюыясЉьѓээяюэьэыюьючшььэьюыщяььшчухђеh235@FGICAFB<ђђ€6єђђёщчыяюёяююёёлэѓяђёээђёяяђяэюёяђѓђєєѓєяюышщћўгh739ABIFI@CC<ђђёђѓђђююьяэђяяёђёэяэьэяяэёяѓёђяюёѕєѕђђюяэяьцушэљщФb*::B@ьэђяёяёєђёѓёёђщэђёєѓђьчщээёѕѓђђёєёээѓьюёюяюэшычыьѓњЌH+&:ANLN9597ђёюьыыящььээююяьэььяяюьчщьёяяїѓђяыэщююьюяэьюьэёёюєчЛQ&):AAЉ3$&1.юцйУУдмрцхучюьюьшшхшююэьыыђяьёюяяэяыёэяьяюэёєюёююўўнn1.7;9AB:581ьццустуутхлгпюхтуццєщчццхююёёэьшшИщшышчьщяэёыщчхчххЦn9&2>?C<8*(эучцххтчпмжЮчццуучщыщцшщьшшщюэшшчыяяююьюьяядюьююўў§ЖI:%5%BJH09%шчшьщьэхугзрчуюэьэшшщщэьщщюшчыьяэђёѓђюѓяяёђђѓѓЋђёыг™@G?JMMNJCF+хцшщюёёєкпцшѕююьччщээюђюяюыышшьяђђюющёђэѓђђѕєѓїєђцюы”3??8353:4чхчыььщ€ьяђђьыэыэюяюьююээюшщёэѓёѓёєђєѓјєїїєѕїїѕїљщБUGQF>909;:AёђђюєѕђѓѓђёђяэяёђяюышчхцшыышщшщэяђєѕїїѓїјїїѕѕїѕєїјїыЭxA!,EIBECBGїїѕђёёђёяюяюёєђєїђящьщыцшшйрУКСОщїѕїѕїїєљѕјїїѕїєєђѓхмЌG3IHLJICC5ѕѓѓЏёяьяэюыьђяёђѓёэыыююяющшцтдймюђђѓєѕєїєїєђѕѓєђєёщйгВF%57GGJE<юёщщюяюяђэюђяђяђяюэяёёђюєюэыыэєљ§єѕѓєєШјїѕѓёююяѓїђїёуТvH4+1@GLI@юхцухьэщхцыэёэьыьюяьђђѓђѕѓђяёѓєєђђїѓєѕєєѓђєѓєѓѕѕхёѓкЫЄZC-"A8жцэяђэёёђђѓїёюђяяѓђєїѕђѓѓїђѓѕѓѓђїѕїїуєјёёєђѓєђёѓььюаСк{H>BBGCQMщыёёїЇєѕѕёёђѓђэђѓђёёђяѓёёїєѕєёэёєёђєёёяѕѓѓєђёэёёђяўаЌч’Y2;A@<<8ьїёѕѓђюђђёюяѓёѓєєяђёѓьэяюѓєєђђѓёёнєђђюёѕѕѓјѕєїєђїѓёюЭасЛ[7BA::CђєѓяёяэщээяяюццшэыєэђђѓѓюыьутчщљјђёяяьёяѓяђяёяѓѕєєѓћшЛмўМE@^E>@CђєѕёшмхугэєёёяэюыяьэюѓюьчьяюьюђёђєѕѕюђђЧѓюђёђєѕјјћўнкёўь>"0778@ѕїўѕцрухюёёѕєёююяяђђяяюыёђѓѕѓєѓєїѕѕФјїјјїєјёѓљђѕјїѓрДЌэўы@0>5;ACєѓєЯЮучьхђђєѕђыюёѓѕѓѓђѓђїјѕђѕєєѕѕђљјїїјїїѕѓѕѓѕѓєємјїЦЏёўэM%!:?HMѕђўљїэьюёєєѓјєѕєѓєєїђѓѓыѕђёѓяяђѓєјѕїјєєђєяђѓђђёѓєўуШьўсT.9;A;€$ЖЦаШОНШШЧРМЦЭЯЪУНОУЮШбЫббжзммцлЮУРТФЮзкуьѓїјђяшцўўР]@BMYaVNLNOPSгжааежбдУЕЕФЩЭЩФЧЪЦЪгаУТШЩЪдйеССЭЯЫапрмджштрлншјїїА@3CMVT^\SPLIMЫагйЫдйеЯЫЫжмжЭймкдЮЯаФОЩЮФЩамЯЩЧЪдкгдзкЯЮЩЯгсхллгu84,BLEFNPJMPTФЮжцклжбЯжжгажзкеЯФЛМгЮЯдууржлелпхьяяѓѓђчшщштрпыьЫt4AGUVV\WYUQPSьєяшчыяяыржурйжкншщупсжбЯЪУСТЩЭелннжаЭзчяѕєїјјѕўўнW;9PUaW\`aTUU`еззтщящёєюыьуЮФЦрщычмттумгЧФЧЯЭекппмЯЯгпщѓэђѓѕёјљЗVTBGTW[]]ZQTMQеЯЩЯЯетђюхдШРМРЭсусцшёэёюэмдбжпмнмбжйрсчюѓюыыцтѓўУFEGJOUPSNNYOTVЮкЫУККДЗблййЧЛОЫклдаЭапьтйгдлгдлркрцщумцьшхурщтжт™"-JMPVVWPPSPObЯФИКСгЮЫЯкптдШЦамтусгЮзшхдЯзщюччхегсмрйейзбзнххѓўРJBGEJSQSLEMGOPСФСЮЯгЭбдршьтбЯпыёяыктххсктыэёпнсшыючрйгбйбШЪйкыюР\J>@HOWZTLQJNLгЫапжаЭЮжхццчссччпутдгЪШТФЫддуцредерплЪаЧЦМУдеессЌUC<@GMQPOLLQLOйнппнжЯгдпкксшшхшхшьцпзгзжбЭЯлнхэхЭЧУЮЭбЭЫШжкнхўўНAH>9>MMOICLPP€жтцщысбЯаггдмпчучсурпнтйзбЯгпкЯЯйшяьцезсщнсмнупечцЁ@C:8>LOSV:ESQWсыэчбЪФФЭйнйажзрхынлрьцхснйпмЭСЫгзммдннмлчьђёытёэЋV<4?EZY]ZVPVPUкуплмлпйЭЯкейжмцшубкшэяѕяыччхрмржбднущсцэѓёѕѓѓюћљИI83:HVSSOHGMNbйжжддхщтзрхчсчщщнжЦбЯддейхрхьэттхпншющсююїѕїђююњўУ:AQELTNSIOHLFCееЯЯ§зхььрпнпщяштткЮЮпмпберцчштрЫдуюэяьђєїї€эёѓўўкF7IGEJSHEELUZWкзйрлзазгаФЭпцгЩкпнтмсэђюскюэыупаечюрнуэёѕѓєьѓёѕїНCE@BCLPILJYUOTЮмклцчмуцрЭмзгамуухылпмшяёяячйгеенхыцлмщэёхычхяэђсeFBMLSHGHHEIGзнгзйнрчрхмзжгджепучпнхщыячхззчщэђяюхчттннкушштэўкc7JOUWQM@GENHSхчсеЧТШЫЪЮЭФЩллхэёёђюяющурншшхпёяящхттпхупкттддћЫТi8CCЬVJHLIGAJNклмжлсулжслджклцьђюышэшрпрдйймшяшщылжнплейдд€Ёгрмдс|99H?PLQIMEGFHьёьцкцщьяѓёууьюёээьшшщтгШеЮЯЯйрушхзЩалмцттббЫндЦЦКuJOPONOHNSёѕёыцшьяьыьююьурьэёђђяхнжрэђыежгзймууыцщхслкпжбУЭаКMA>?JNNMJVWQYђёшшнршђѕјѕїїљёђяыЩЩѓљмушшхпбеадЫажтшйЮЮЭгмегзеднѓєp7";IOVY^PUZSNышчёяђьчнтлтйнххсрнежррйеухтллмукмхѓёюьюьяулждлсьнВg2B@FOUVbP[SSекаечэспзЯдцуйглхыццзЯйсзшььшццькыэёылдмлкуцЯЩбзпФСˆF??IMVc\UQQWухклхщхкглпысЫЯдджлхпнЭФЮыьрммсхлтшпеуумсрмеЫЭезгэяЌP)8P^[aIPLLьчннпсйушёсмтщщ€срсшюшЯЩгмнээтцэчгШажттцучзднщпемыеЏU14EQYNC3HAEкгЛЁ™ЋОЦУЪЫЪеюхаЩЧЪЮрэщпнргрухэялжбцтсмрейшсуёшшыўљнq87HLHJUUJLCзШСКВКЗФЦММВЯхгЦУЧШЦШкЮЫйршьхткйЮжлкШбЭЭйлшцнкЧбеммСq9(1>HSYQNHGуЦЮЮЩЮаТЛДЋАЪЯШЦЧЪзкбгЮлнмезлрЮШЭЭдйезЯзхйзттхуцыўўњИQI4F?TZ\IJ@ЮЫЭЫЦЯжУУЎВЗЫШлчнЪЪгЯЫдшрЩТкйаЦжцыяюяязщьээяђђёєєѕщдЄIQSW\`dcgZFФЫФжтююуТЦНащйщчдЦайббзцеШжгЭагрусчрщуччтшычщѓѓїьрюѓœ7"CMGHPIEJЩШНУйуцнаблржлхжУкщщмлхэьщеЭЭЯжщпхммлюяѕѓѕѕїєїѕљѕјћђВaQZOPIVOVNTпнлщьщытстщщухпклррлЮЮШЪееЮмнххстыяєѕѓѓљїљїјѕїїјјћјёаƒI42L`bYU\ZєёѓєёѓюышцчпенщђьюсеШЯЩЩшЧУТЄ˜ЄŸгёьюѓєєїєєђљєїєѕђђ€1эуЗS;YT\]Z`OYуышчпзддждлйкщюђчьпЪШдкаЭдЩЭЧАВОкмюѓщщюёёєєѓэёѓѕёюудЭКN8:"EZga[cтнтжбжнпнцхрмсшлтпегеыэякпкбЯжцєєёяёунэѓёѓэштжчыыючщнЧ|[;8GY[[VZЩУЗЧзйгйЯЯгнрщнжддлусучђѓэуйейлыьэыёюёюшыщсюэђяяычцюмаДeT<5VYWUOлШбммббЮЦЯейндеучпцрущэѓѓынпяїєєёььёєљєїєѓэѓѓєђячяяњЩаЫwbdS`][QWЎЪчшзйешььчкххдбжмыѓээьыычуяђјѓѕяяѓјј”ђѓђёршьщщчйчушЮЩр‰VHMZU`\cТЫйхчсшђёэшкммнхррщььхрйпшуюяшзкрмчыуыыьхунйууцрххюўдБьœg?JUQMQSащьяёьышулркйьщхрццшруЭкшышяѓэзжсьыььюэсчѓїђђльяыяђьЪебНmC>QOVOUщёяьэчскунрххыэяьэцц€mсйущшыячтйпбсшщрценмцюјїїѓѕђђяыШеюу[-C…гѓђѕѕїјэїњћљјћјњљљћ§§љјїјљћћїњїљѕѕїњћ§§њћљћўћўўѓћў3:;588)HЉшыяѕѕєјѕїњјњњјїѕѕјѓљїљњјјїјљјљљћћјјїњћћ§ћ§њњ§§ћюњ§ћћљ§§7H72TuЦхјѕјјљћјљјћћњћљ§§ћјїљњ§§љњјјўћљљљћљљњ§њ§§шљ§§њћњ>IW[i[гј§ѕїїљњјљ§ћћљћљ§ћіљјїјљљњјљ§§ўњ§§ўф§њ§32?NLkѓїѓєєѕїїјћћљјњљћљћ§§єћјїћљћћ§њњљћћљ§ђњћјћћљћћјћљњњўўућF\[F1kїљђѕїїјњћњјїњћљњњћљњ§ћћўј§§еў§§љћљћљћљћ§§ћћљ§њ§§ћљ§ўў§§њMYQI@qюјєїїјјїѕѕїќјњљјјїњњјњјјњїї§њљўў§ћћљњ§њ§§юњ§њћљћFbZMOPЯћѕђєѕѕ§єѕїїїњѕљћћњћљ§§јљјњјћљ§ўўќ§ћљ§§§њ§ўў§фњ§§њљ(44YW\Юћљѓїїјњћћјїїѕјјљљ§њљ§њљњ§§ђњјћћјћњћјљњ§њ§§ўћўўЧћўўњљESFV][Тљћѓѕїјјћњњїїјјїјїјјћћљћћјћ§§њ§њњ§ћјјљ§§ћљ§§њљљыњў§љїјјљљћ05>CHДљћїјјѓїѕїјћљћјљљњљћћњћјњњћљјћ§§њ§љћщјћ§ў%:MdZkЭљћѕјњїњїјљљјјљшњћњћћљјјњјћљљћћ§§љ§ћљљ§ўў§фћјљ§§ћјћљљ1;PNE-јћѓѓєєѕѕєїћћљјњњљљћњњэћљћ§ћћ§§њћћњјјњљ§§јјњњјјњњљљў§ўўѓ§@@FHJ>™ћљєѕљљњјўїћћћљјћљјјэїјљ§њ§§љјњћћљњ§ћјјїїўљћћыљњљ§§њїњ1$(]\8nѕ§љїјїїљјїєѕѕїѕѕ§їјћћяљ§§љњ§ћљћљћјћњњјїїфѕїљјљћњ§љјљїћ§ў*5V@$Lё§љїѕїїњѕјјїњћћўјїїъѕњљјјљ§§њљїјњјјњјјћћјљљъћ§љ35GUTbx§ћѕјјћљљјњљјјёїћњјћ§§љћћњјєјљљўћњњ§љћ§§љўћљљэћ§њћF@B4M:Hї§њјљѕљ§§љіћњњљљјњљњ§§ѕћњ§њљљ§§њљїїљў§ћћљћ§јћљљMђJ01]eѓљљїљјјњјјћњњ§ў§§ћњњћљђћ§ћћјњїјїїјњјїї§ћљ§§њ§бћїј5!-LЮ§§љћћўљјјѕєїѕљљјјїјњљћ§§ўў§њњ§ўњ§§њўљўўрћў§§8>B?1-.%EЁ§ћљјј§§ћїїјјїїјїљћћ§њњћ§њњ§§ќўћћўў§ўяћў§;C][UM7b§§ўљїїёєјљѕїњњћћ§§ћћљћћљўћњњіћјјѕјћљљјњњћљ§ўў§§юњў732.9EBHN@Uѕћљѕїїќјћљћћјїћјњњљћћїљћћ§њњљљћћѕ§љљћљћћљљћљљ§љю.8@;:><:OOEБљ§їјјїїђњјљ§§љљћљјљћћљљѓњ§§ўў§љћљјњњћћйљћјјњљљњњљ§љ*;@BCC?ILF<–§ћїљљњљљћ§§љњњўўђњ§њўћњњ§љљјїјљљдћјљ§љјћљљћћ§њљњ§CF;BAA>GMEIћ§§ћ§љјћљћљћјњў§§ўў§§іњ§њћљњјћњ§§њўтћў§ўў§њ§<:59?@IL3"#bућїѓєїњјјњњњћљјљїјјїћ§ћћ§§ўў§§§њ§ўўњ§ћљ§§ўўхB>2>EEGIN9ExОћњєѕїјїїјљїјјњњљѕїљћљћњўўћћўў§ў§ўц§њ§њHJAAEF?4(2Ћ§ўћ§љљћљљўњўўњ§ћљћћ§њљ§љљ§§њ§§їћљљћ§§ўў§§ф?:8-$-EGE3NQŠћ§ѕїїђѓњљћ§§њ§ћћ§њћљљЬћљљњћјїјїљљ§§љњљјћ§§ўњњћћљћћV?@-(,>@H;[A§§јњїѕѕїїљїїћљњјћ§§јћљњњљљїјјжљњћјїїњћћ§ћјњљїјјљјM430:;@UGBAL™ћ§љћњњјњћјјќљћљћћќ§ўў§§эљ§ћћљћћљјєјњљљѓїјљ§§њя3,;?CBCBPaPP’љўљћћљьјѕњ§њ§§љ§§љјњљ§ћўњћўўў§ћћь§љћљњћћ§§њўћўљ§§љIHJJц;CIF!;OYШћ§љћљјїїњћїјћљћћљљѓњ§љћјњўћ§ћљњўў§Мўћ§њ§ўўњ§њ§@5JJH5BGLIT>Fйћўљљїљјњњћћјљ§§јћљљ§њ§ћћњљћњїљ§љ§њ§љѕћѕљ§§ўўё25,:97;FMSTJ…љћћјњ§ћћљњ§ўўў§ўў§ёћњњ§§ўћўћ§ћљљ§ўўьћ§љB@703#;IIB>?bЖ§§їїјїў§ўўђ§њћћљћљјјїјљљ§§ёњ§ћјћћ§§јїјћ§§њњч§.95@qLGPTQQNQ”§ћѕєєїљћћ§§фћњѕѕїѕјјїїјњљ§љњ§љјјњљљ§ўћњћћљ§њњ§§њјю?GINEH`лў§јјљњћљњљљјљёјњњљљњћњћћ§њћњћћќ§ћћњњ§ћ§њњщ§ўў§ўћ§§1AMQWbtкўўјјљјљљўјњњ§љњљљјгїјњњћњћњњћ§ћ§ћћњћћњљћћ§ћћљњљћњћњ§ћEIPHArяў§јїјљљњњљјјљњљ§ћњћћњћ§ћќњ§§ўўю>;4WqIўўћјљњњљљјљљїћњњљћћ§ћ§§ћ§§ћ§§сћ§ћў§ўћ§ћ§њћћ§§ўў§ћ§ћў§B9#?NAvўўњљћјљњјњњћљњљљњњ§ћњћћљњћћљћњћћ§њ§ўўќ§ћћњњћќњ§ћ§§№ћG?9@VWtэўѓјљњњљљїњћњњљљјљњњіћњћ§§ћ§ћћњњ§њћњњћћњњћь§ћ§§ћћHEFBMNƒўўћјїјљљ§ћљњњљњяљњњљњћњћћњћ§ўўћ§ћћ§љўњћњ§§ўўцћ§ћGNOSNU•њўјѕјјїјћњљјљћћњњ№ћњћћ§ћћњћњћћ§ћћњњћј§ћ§§ўћ§ўўћ§ўћћўў№POM@GLѕўљјјњљљњњќћњњћћ§ћцњ§ћћњљњћњћњњљјјњљљњ§ћ§ћ§§ўў>ї@A[^Кўў§њњўљњњ§љјљљјћ§§ћћљћњњўћ§§§њћњњћ§ўћ§§њћ§ћ§§ўўю§>:3?@aЫўўїљјњњљљћћ§њћњњіћ§њћњљљњћњњшћ§ћўћ§њћћў§њњ§њћњћњ§ў§ћ§§єўH?A?)LКўўѕїїјјљјјљњљњњўљњњўљњњњјљјљњћћќњћњћћ§ўћ§§ћ§§ћўўћBл?>*PЖўўїјјљїјљљњљљњљњљњњјљјљњњљњћ§ћћњњњљњњ§њ§§хћ§ћ§њћ§§њњў§ћAJ;;Y{еўўјњњ§ћћѓњћћњњћ§ћў§ћ§њњћњ§ћ§ћљњњћѕњћћ§ћ§ћ§ћ§ћћ§щњљ?BWapcтўўјљљјљњћ§њћњћћѕњћћ§ћ§ћ§ћћњњлћњљњћћњњћћ§ћ§ћ§ћ§ћ§ўў§ў§ўћ§ћ<18QPtћўїїяјљљњњћћњљћњћњ§ћ§њњќћњњ§§ћўњћћ§њїћњњ§њћ§§ўўиM[aP2rўўљјљљњљћљњљљњћљљњћ§§њћњћњ§ћ§ћўћ§ћћљњћ§њњћ§§ћ§ѕўћ§§JTZOAxўўђљћњњљњјјљљњљјњњљєњљћњљћњћ§ў§ўўпћ§ћ§ћ§њћћ§ћ§ћ§ћ§ћ§њћњJa`WJYзўљѕїјјљњћљ§ћћњњћщ§ћћњљњћћ§ўў§ўў§њћћ§ћ§ћўўќћ§ћ§§ыћ§ћA57a^Wеўўїљљњљћњњљљњћюўћ§ћ§ў§§ў§§ћ§ћ§ћћњњѓ§њњћ§ћ§ћ§ћў§ўўю§ћFUEbjZРўўїјљњњћљљњєљњ§ћњћњњ§ћћ§§ћњ§ћ§ћћќ§ћ§ћћћ§ў§ћњњћєњ<*AMEHЖўўљњњљњћіњјјњћћњћљњњљћњћћ§ћ§§§ћ§ћћњв§ў;:Tp[gйўўљњљћљћ§ћћ§§њјјљћљћњћћњљњњћћњњ§ћўћњћћ§ў§ўў§ћь§њћњћћ<;QTL-ўўїјјљјјїћњћњћњљљћћљўњћћъњ§ћ§њћљњњљћ§ћ§§њљњњљљћћўюћBEFJOBžўўїјјћћљљњњўћњњћ§њћњњўћ§§ћѕњљњћћ§ћћњњљљчјњћњћљћћ§§ў§7-d^4rћўћљњљљљњљјјљљјјўљњњћќ§ћ§ћћїњћћ§ћ§§њљљшјњћћ§§ћ§ћћњ§§0.`G$Pђўћљљіјїїљљњћњћњњљяњљћњњћ§ћ§ћћњљњњљњњў§ћћђњћћ8,FW^dxўўљњњћ§ўћњњђћљњњ§ћћњњљњћњћћўњ§§їћњћ§ћ§ћ§ћћўњћћь§њACG?N>M§ў§њћ§ћ§ћ§ћћїњ§§ћћњљћ§§§ћњ§§ћї§ћ§ћћљљјћћќњћњћћўњћћ№LPQ80[gѓўўљјњњљњњ§§ћњљљњћ§њ§њњњљњњљљњњїћљљњћћ§ћ§§чњћњBBG+HLCБўўјљљјїјљљњњћњњћљёњћњћњ§ћћњљњњљњћћќ§ћћњњ§љњћћў§ћћ№ј>??&@0AНўўјљњљњњюљњњљљњњљљћћ§ћ§ћ§ћ§§јњћњћњњћ§§їњћ§ћ§ў§ћњњ§њў§њ,+11їGI”ўўљњњљљўњљљћћњћњ§§ьћ§§ћћ§ў§ћ§њћ§§ћ§§ћћўўћтњ§њљњњћ547>4AV…§ў§љњњјјљњћћ§њћћэ§ћў§§њњћћњћњљћћњњћ§§јћ§ћ§ћ§ћ§§чћњўћ51;@0$4gѕў§љњћћњ§ћ§ћўў§ћњјњљњњћћ§§ћѕ§њћњћћ§ћ§ћўўє,0<@?HMZсўўљљќњљњљљ§њљћћћ§ћњћњњћљ§ћ§ћ§§ћћўњћћћњљљњћћы§ћ§ћ§ћ,+3>MA@BЗўўљњњљљћћњњљјјњ§§ћњњќ§ћ§ћћє§ћ§ћњњљљћћ§њњўћњњќћњњћћѓ()3-;[GN˜ўўљњњќјњјљљњћ№§ћ§њ§љћ§§њћњћћ§ћћўч§ўў§њћњћњљњћ§ўћ!!%*3gZ;tўўњўћњњєљњ§ўўћ§ћљњњљљј§љ§ћћјњљљњ§ћў§§јћ§ћ§њћњ§§№ћўў"!?HG0M9Eпўўњњўћњњєћњћћњњћњњљћњња§ћ§ћћ§§ћћњћћњ§њњ§ћ§ћ§ћ§ћўћ§ћ§ў&1:E;!4Nмўўћњћњћњњѕјљљјјњњљњљћћњ§ћ§ћў§§ћ§ўћ§§ўх§ў§ў§§ћ29?:50-!CЅўўћњ§ћ§њћњњљёњћћњћњћћ§ћ§§ћћ§§ќћ§§ўўі§ў§§ћў§ў§ўўёћGGA9-20LVrћўўћћђњљњћћљљњ§§ћ§њћћюњ§§ћћ§ћ§ў§ћ§ћ§ћ§ћ§§ъў§§ћ§ћ§ћћњIJLPG?FB0Pзўўјњљњјљњњћћћ§њћњћћњщћњ§ћ§§ћћ§ўў§ў§§њћњњћћњћћўњћћэ;AJPL]SuYL~Єћ§њљњњљљњіљ§ћћњ§њћњћћњићњ§ўў§ў§§ћ§ћ§ў§ћ§ћ§§ўћўћ??@ACdaZI9dўў§јљљќћњјљљњћ§§њћћњћўњ§§њћўњљљћќў§§ћћ§№837:?LHIUFZћў§њљљњќћњћњњїћњњљљћњњћћўњ§§ћіњћњ§ћћњћњћћўњћћў§ћћю78?B?<>ETPLДўўљњњљљћі§ћћњћ§ћњњћћ§ћћўў§ћћјњљњњћњћњњщљћћ§§ў§ћ;@BFMGFBEN<›ўўћћўљћћћ§ў§§ўў§ў§ћўњћћўњћћш§њћћњњћ§ћ§ћHEG:ABABMJN•ўўьњ§ћњњћњћњ§§ўћ§ћўћ§ћ§§ћњ§ўћ§§ў§оўћ§ћ>;8?EIMH.gщўљѕїљљњњљњљћћњјљњњѕ§њњћ§§ўћ§ћ§§§ў§ўўмћњћ§ћў§ў§ў§AB>71.1.EGAaFўўњњљјјљљјљљјјљњњ§ћ§ћћњњљјјљњњћћ§њњљљёћњ§њњљјљњњћњL5;;ёAGVMHGSŸўўћћљљњњћњѓћњњћў§§ћ§ў§њћћмњћњћњљјјњљњћћ§ћ§§@9ACBFEHPdUU˜ўў§ћњћћўњ§§Рћўћ§ћњљћћў§§ўў§ўћћњњћўњћљњњ§ћ§ўў§ўћ§ћHLNOIGHHG)8S[Яўўћњћњљљњњћњћћўњћћ§§ћњ§§ўўћћл§ўў§ўћ§ћ§§ўћ§ћўў§ћ§ћAEIQA;@JJQSCFнўўћћєњљљњњ§ћћ§§њћћщ§ћћњ§ўћљћћ§ћћ§ћћ§њ§ў§ћўўэ§ў§ўў>4757;?ISYPJ‰ўўјћњ§ћћњћ§§§ў§ўў§ўўћ§§ўњ§§ўћўўс§њћў§§ў§ў§ўў§ћH@;aМўњљљћљћљњћўћћї§њ§ћ§њ§њћћ§њў§§ћћўњћ§§іў§ў§ў§§ћў§§Яў§ўWiMHhзњўљћћ§§ћ§ћ§ћ§ћ§ћўћў§ў§ў§§ћ§§ў§§ћўћўњ§ћ§§уў§ў§ў§ўћў§ў§ћQahxtхўўћњ§њћћ§§ўћ§§ўћ§§љў§ў§ўћ§§ћюњћ§§њћ§ў§ў§ў§ў§ў§ўўсYEQjb…ўўњњјћњ§њ§ћ§ћћ§§ћ§§ў§§ћў§§ђў§§ћ§ћ§§ў§ў§ў§§ўѓ]ptdFўўћћњ§ћћэ§ћ§§ћћ§ћў§§ћ§ћ§§ў§ўў§їћўћўћ§§ў§§їў§ў§ўћ§§ўўѓ§ўemn[T„ўў§њћћњјћљњљћћ§ћћј§њћћўћўћћћўћў§ўўл§ў§ў§§ћ§§ў§ў§ў§ўў§ћ§\xuka`мў§ћњћљћћ§њњћ§іћ§њ§§ў§ў§ћћ§ў§§ў§ўўы§ў§ў§ў§§MHCrogкўўњњ§ћћј§њ§њ§ћў§§ѓў§ў§ў§ў§ў§ў§ўўќћ§ћ§§јћ§ўў§ў§ўўђ§Yte{oЪўўњљњћћњћїўћ§ћ§ћ§ћ§§їћў§ў§ў§ўћћ§њўћ§§ў§§љў§§ўўћ§§чM7PbYYСўўњњўћўћўљ§њћ§§ћћњњщ§ћ§ћћњ§§ћћўњ§§ћћў§ў§ў§ўў§ыћўћ§ћ§ћ§§ўPJdq‚щўў§ћћ§§ћ§§њћј§ћўњћћў§§љў§ў§§ћўўц§ўћў§ў§§ў§ћ§LUdg\;ўўњјћљћћћњ§ћ§ћћ§ћ§щћўћ§§ў§§ћўћўћ§§ўћ§њћћўћћ§§ћўўёMWbZbUЎўўњљњ§§ћћћўћўћ§§ћћў§§ћћ№ўћў§ў§ўћўћ§ћў§ўћћѓ§њ§њ§ћ§§ў§ў§ўўјI3@uiC‚ўўяњћњ§њћњћљ§њћљћњћ§§яћў§§ўўћў§§ћ§ћў§ћњњј§њ§ћўћў§§яћ§§ўB3?mW2b§ўўњ§њњў§њњѕ§љћљ§ћ§ћ§ћ§§ёћўњ§њћћўћ§§ў§§ћћќўћў§§§ўћ§§ў№JN[vuƒ‡ўў§њћ§§ћ§§ћ§њўћћ§іўћ§§ћњўћў§§ќў§ў§§њў§ў§ў§§яўћ§ћ§ћўў§\ZYSdT^ўўўћ§§ќў§ў§§ќў§§ћћўў§§њў§ў§ў§§ўэ§ћ§њ§§ўћ§ћ§ћ§ћ§ћўћ§§їўcgbIGv{ўў§њ§ћћќўњў§§ѓў§ў§ў§ћћў§§ћ§§ыўћўћ§њўњћћ§њ§ћў§ў§ўў§§щћўZ\W4]^VСўўњ§њњљћњћ§§ћћї§ћ§ћћњўћ§§ћ§§њ§§ўћ§§њћ§§ћћ§§ў§яQUL:QBQЮўўљњћ§ћўћћўўћћєўћў§ў§ў§ў§ў§§оў§ў§§ўў§ў§ў§ў§ў§ў§§SJGML]ZЇўўњўћ§њњ§§њћћ§ћў§ў§ўўђћў§ў§ў§§ћў§ў§ў ўяћў§§ћўћ§GEJTEUi™ўўћђљћњћћў§§ћ§§ў§ўў§§ћ§ћћўў§§ќў§ў§§ўљ§ў§ў§ў§§іўFWNPC5G~ўўї§ћ§ћ§§ў§ўўш§ўћў§ўњ§њ§њћћў§ў§ў§ўћ§ћ§§ўќ§ў§ўўнJGNZVh\rьўўњњ§њ§њ§њ§њ§њћћ§ћўћ§ћ§њћ§§чў§ў§ўћ§ћ§ћ§ћўњћћўћўћў§ў§ўўяAMNMb\QSЪўў§ћћњ§ћћѕљћљћњ§§ўћў§§јў§ўћ§§ў§§ћўў§§ћќўћћ§§сHLBHVxZbЎўў§ћўћњњћњ§њўњ§ћ§§ў§§ћћїў§§ћ§ћў§ўў§ћ§ўў§јћ§ћ§ћў§ўўі2A7>O„mN‡ўў§ћўћћћўћў§ўў§ћё§њњћ§ћ§ћ§ћўћ§§ўўќ§ў§ўў§њћ§§ў§ўўл8AQc^G`LOёўўћўћ§ћўћ§ћ§§ў§§ћћњћћ§ћ§§ў§§љў§ў§§ћ§§љў§ў§ў§ўўж§ў§ў;INUP11EYцўўћ§ћ§ћўћћњћњ§њ§њћњўћўћў§ў§ўўќ§ў§ўўј§ў§ў§ў§ўўх§ўHQNPE?A7WЗўў§ћ§ў§§ћўћўњ§ћћя§ћ§ўў§ў§ўћў§ў§ў§ўўў§ў ўѕ[^VPHEIeg‡ўўі§ћ§ћ§ћ§ћ§ћћ§їў§§ћ§§ў§ўў№§ў§ў§ў§ў§ў§ў§ў§ўўћ§ў§ў§§є[hbabYZSBcсўўѕњ§њћњћњ§§ў§§ќћ§ћ§§§ў§ўўў§ўў§љћ§§ў§ў§§оћ§ћ§N]d^`|m‰k^‘Иўўњћњћњњљћљћњћ§§ћ§§њћ§ћ§ћ§§ўє§ў§ў§ў§ў§ў§ўўєVOOY]~ti]Ftўўьњ§њ§ћўњ§њўњ§ћў§§ћ§ћ§§јў§§ћўњў§§ћ§ў§ўўў§ўўђ§ўNOFUV\]\eYiўўюњ§њ§ћ§ћ§ћ§ћўћўњўћ§§љћ§ћ§§ў§§ўћ§§ўћ§§ўћ§§мћў§ў§§ћўJQTNPQQ[eg\Оўўњћћ§њ§ћўћў§§ћ§§њћ§ћў§ўў§лћўћћњ§ћ§§ўћўћўћў§ў§§QQa\ZbV\cVJЌўўћ§ћћљ§ћў§ў§ўўў§ўў§§ў§§ђўћћ§§ћ§ћ§ћўћў§§юў§§ўўWZV`[YZ[[V]Єўў§ќћ§ћ§§ўў§ўўю§ў§ў§ўћ§њћ§ў§ў§ў§ўўў§ўўп§ўPOWT\gc\E.-xѕўњљј§ћћњћњћћ§ћ§њўћћ§§ў§ўўњ§ў§ў§ўў§ўUтNT\edaVHY’бўўњљ§ћ§њћњ§ћћњћњћћ§§њћ§ћ§ћў ўў§ўўў§ўўь§ў§ў^a[WZZbYZVaŽёўў§§ўў§§ѓћўњ§ћћљћњўњћ§§§ў§ўўў§ўўјћў§§ћ§ћўў№c`NJP]c[VG7AМўў§§ўћ§§ўћўў§ўћ§§ў§§ў§§ѓў§ў§ў§ўћ§ћ§§ўўо§ў§ў[UNJ9Ca^UEeiЂўўћњ§ћ§ћ§ћў§ў§§ћ§§ьћ§ћўћўњўћ§ћў§§ћњћ§§ўў§ўћ§§ЪdUCLHB]W\YvYЃўўћњ§љћњ§њ§њ§њћћ§§ў§ўћ§њћњ§њўћўћў§§ћ§њћћ§§ћњўњ§ћћя`IMLNV^jb]ZcВўў§ћћќўњ§ћћћ§ћ§ћ§§ќћ§§ўўѕ§ў§ў§§ћ§ћ§ћћњщ§њўћў§ў§ўUaMVb\Y[a{hhЎўўљћ§ћ§ћў§§§ў§ўў§ќњћћўўў§ўўїћ§§ўў§§ћ§§§ў§ўў§т\bij]WZ\Z:Ikjнўўћ§ћћњ§њ§ћўћ§ћ§§ўў§§ўќћ§§ўўќ§ў§ўўў§ўўў§ўўшT^]`OZ[a`bhYVэўў§ўћ§њўћ§§§ћў§§ѕў§ўћ§§ўћўћ§§ў§§ў§ўўђMLJNQNUbhpddŸўўіћ§§ўћ§ћў§ўўў§ўў§§ў§ўў§ќћў§ўўэ§ў]PMOO>V`eeH[tЪўўњњљўњўњў§ўў§ўћ§§ћњўњў§§јў§ў§ў§ў§§сўћўћ§§ў§ў§ўPOGa•c`ghggmiЋўўљћћ§§ђў§ў§§њ§љ§њћћ§ћћ§њў§ў§ўћћ§ў§љћ§§ў§ў§§џ9џ9џўˆ8џ:џ:џ:џ:џ:џ:џ:џ:џўw8џ9џ9џўˆ8џ:џ:џ:џўw8џ9џ9џ9џ9џўw7џ8џ8џўˆ7џўˆ8џ:џ:џ:џўw8џ9џ9џўw7џ8џ8џ8џ8џ8џўw6џўw4 џў€3 џўw2 џ3 џ3 џ3 џ3 џ3 џ3 џ3 џ3 џ3 џўw1 џ2 џ2 џ2 џўw0 џ1 џўˆ0 џўˆ1 џ3 џ3 џ3њ§ў§ћњћњ§ўў§ќњљ§ћћ§ў§њ§ўўћ§њњ§ўўќћўў§§їњћћїљ§§њ§§ў§ћўћћўљ§њћћњ§ўў§ћў§§эњљ§§љљћћњњ§љњўўћўћўўћњўўћўў§њўјћњ§њ§љ§ўўў§ў ўћ§ўћўўсћўўњ§ўћўўњњ§§њ§ўњ§ў§њњўўћўўћўћўўіћўћўћ§њ§ї§§ўћўўњ§§ўћ ўљ§ўћўўћўўє§љј§§ћўўћ§њўўњ§њўў§љљќћњ§ўўќћўўњњўіћ§§љ§њњўћўўњ§њњљјњњ№§ў§њўўћћўњ§ћћњ§ўў§§њћўў§§њўўњў§ўўђћўў§§њўў§§ўўћўўў§ў ўё§њўўњ§љљћљ§§њњ§§њљњ§њћўўќћўћўўюћўўњўћћў§љљњ§ўўњњљљўњ§§ўўњўўѕћњ§§ћ§§ўњњўўѓњ§њ§§ўўћўўћћўўўћўўўћўўќћњњ§§јњўў§§њњ§§љњўўћљљўўїћўўћ§ћўў§§ћњњћћ§§ўў§ћў§§ўћћўўњ§§ўљ§§ѓў§њћўњўўњ§љљ§§їњїњјјїљ§ўўўћўўўћўўїјћўћ§њ§§ўўўћўўљћўўћљљўўї§њњ§њ§њњўўёћў§§њ§§ћўћћўўћњњ§љ§ўў§ў§§њўўќњ§љ§§§ўћўў§ўю§њћўћћўћ§§њўўћў§њ§§ў§ћўњ§§ўўўћ§§ћ§ўњ§§њў§њњ§ўўѓ§њљљ§ћўўњўћћўўўћўўѓ§њ§љљњ§њ§§ћ§ўў§јњћљњњўў§§ѓњљјћ§§ћў§§љњўўєјљљ§§ћў§њњ§ўўј§њњ§љ§љ§§ъњ§ћњћћњљћћ§њ§§њ§њ§њўўљљћ§њ§§љљћ№љћљљ§ўўћўњўўћўў§§ќњћћ§§ўїћўўћўўљћ§§ђљћћљљѕљљћјјљњ§§іњ§ўўћ§§ўћўўђћ§§љљўћћўўњљњ§§ўњѕљ§њ§њјћћљћ§§љ§ўњћўўњ§ўў§§љ§§ў§љњ§§ћћ§љњљљћђљјњњћљњњћћљљ§њњќўћћўўў§ўўєњљ§§њ§ў§њњў§§ўђ§њєћћљљ§§ћљћћ§§рњ§ў§њњћўњ§њ§§ћљћ§ћ§њ§љњњўњњ§њњ§ўўі§ћћљљњћ§њ§§іњ§ўћћўћўў§§љњњ§ў§њ§§ыљўћўћњљљћљћјњћјљћћјљ§§љњўњњ§ў§§њњљњўћўљљјѕљњ§љ§њ§§јћљћљ§њњ§§цћ§§њ§§љљј§њћ§ћўћўћњ§љјјњњћћѓјљћћљ§ћўћўўћўўїњ§њў§њ§§ћћ§њћўўўћўўћўљ§§ћћљљћњњў§ўќћўњ§§ўс§љўўњћћљјїјјћјљњћўљ§§ћјјћћљњїћ§§ўљњњшљњўўћўћћў§љћљѓїѕїјћ§њ§§љљюћљњјјњљ§§ћљћљљ§ўћўў§ў§ѓў§ћњјљљјћ§ћљћћшњљћјњјњјј§§њ§љљћњњўў§њњ§§љљњњћњњ§§мњљјћњљћњљїјјљ§§њ§љћ§њњљљћљ§ў§њ§њ§љљ§§ќљћњ§§њљ§ћљљћћѓј§њњ§њњўњњљњ§§ўњ§њљљћ§§ћњљљћ§§љўјўў§юћњљ§ўўћў§§ўўњѕј§њ§§њ§њћљјћ§ўўўњ§§ѕћјћ§§њ§§њњ§§ўњ§§ўњњ§њћўњћћ§їљћћ§§ћјћћђљ§њ§§њњїїљњљњ§§ћљ§ћіљњ§њ§ўўћћўўї§њњћљјћћ§§ў§ћљ§§ўњўўјћ§њљћ§њ§§ёљјњњљћ§§њ§§ўћњ§§њ§ќў§ћўўўћўўћ§ћљљћћ§ќћљњ§§љљћ§§ўћ§§ўњ§ў§ћњ§§ўтњўў§§ћљїљљћљ§§љњїїјѕїћ§њњ§§љњ§§їљ§љћћ§§њ§§ўњљљ§ћљ§§њўћњњ§јїѕѕђєѕјјљљњјљњ§њљ§§№ћњљњ§§ўћў§§ћљјљ§§єјєјљјњњ§§љљћћљѓћљћљљћ§§њћјї§§§ўћўўўњўўћўњњјћјїћћ§ћќљјљ§§ўћ§§єћљљ§§њ§§ўўћўўо§ћњњјћљ§љћњњљћљњјњњјїљ§њ§њћљљћњљћ§§єјљћ§њўўћў§ћљљћљћ§љјћћѓљћљћљћљњїѓїѕљљћј§ћћљћљ§ўўўњўўљћўўњљљ§§љљњ§§ћћ§§ўњ§§ћ§єњ§§ѕљ§§ћїјљ§§ўћўўўћўўњ§њњ§јѕњћћўљњњѓ§њљљћљћљљ§ћј§§эћљјљ§ћўўњ§њ§§њћљћњљљјћўјїїяјљљјјћљњњјѕ§љњјјљљњћ§ўљњљљЮ§ў§§ћљ§љћј§§њ§ћјћњјїїјњћ§§ћћ§§њћјњћ§§јћ§§њ§ў§њћјљ§§њ§љљћјѕјћ§њњљњ§ћћљјљљјђњјљћ§њ§ћћљјјћ§§ћѕњјћљљјїњљћ§§љ§љ№њ§§ћћ§§ћњјјњњћњћћћїёїј§§ўћљљвћљјјљљ§ў§§љћљљћљћљћћ§§ўўћўў§§ћљљ§ћљљјћћљћћљњ§ўў§цњ§ћћњ§ћ§§ћ§њ§њ§њ§њјљљјћћљјјєїћљћћ§§ћћ§§ћћјљћ§њ§њћ§§ў§§њ§§јћ§§њјћ§ћћ§щњћљјћћјњњјћћјјїњљїјљћ§ўўўћ§§ђњћљїїјјњљћћјљ§§љ§ћќљћљћћћљњћњ§§ўїљњ§ў§ћћљ§§ўћ§§њњ§њ§њ§§ћњ§§њ§§іњўў§њўў§§њњћўќј§ў§§ћњћљњ§§ћљѕћћљљхћ§њјћ§њ§ћјљћњњјјїљћњў§љјј§њњўљ§њ§љ§њ§§ћћљњћњ§§ўў§§ћіљћњјјїјјљћћўј§§ћљњ§њўўёћўњљ§§њ§§ћљљјѕїїяњћ§њ§њњћћ§њ§њ§јћ§§іћўўњ§§љњњ§§ўњ§§њњ§ћћјљљќћ§§ўўў§ўўћњ§њњ§§ћћ§ћўў§§ћіљћњ§ўў§ћњ§§њўў§§ћљћњў§§ўќ§њњ§§љњ§§љћљћћјјњњљћ§њ§§їњ§ћњјјїєђ§єћ§§ўў§ћ§њ§ћўўў§ћћќ§ўћњњѕ§ћ§§ў§ў§§ћўўў§ўў§њћў§ў§ўў§ћћ§ћ§њњћ§ќћ§ћўўў§ўўњ§ў§ћ§ўў§§ў§ўў§№ћ§§ўћ§ћћњћ§§ћў§ўўў§ўўў§ўўў§ўўќ§ўћ§§§ў§ўў§ћ§љў§ў§ўћўўј§ў§ў§ў§ў ў§§ћўў§ўћ§§њћўћ§§ў ўў§ўўќ§ў§ўўў§ўў§јў§ћ§ћ§ћў ў§ќћ§ћў ўќ§ў§ўў§§ў§ўўћ§§ћўў§јў§ўћ§§ўћћњњ§ћў§ўўђ§ўў§§ў§ў§ћўћ§ўў§ўћ§§њћўћ§§ўў§њћњњ§ћўў§ѕћ§ўў§ўћ§ў§ўў§ўћўўі§ўћ§§ў§§ћўўљ§ў§ў§ў§§ћў§ў§ўў§ќў§§ћћћњћ§ћ§§ђћ§ћ§ћ§ћ§ўў§ў§ўўў§ўў§ўќ§ћћ§§ќў§§ћћ§њћ§ћ§ћўўў§ўўѕ§ўў§ћ§њ§ћў§§ўњ§ћ§ћ§ўўў§ўўњ§ў§ў§ўўў§ўў§іћ§ћ§§ў§§ћ§§њћ§§ў§ўўў§ўўљ§ўћў§ўћћѕ§њћљћњ§ћў§ўўќћ§ћўўъ§ў§ў§ћ§ћўћ§ћўћ§ўў§ў§§ћћј§ћ§њљњњћћўј§ў§ў§ў§ўўњў§ўћўўў§ўў§§ў§§јћ§ћ§§ў§ўўї§ў§§ћ§§ћўў§ћ§ў§ўўј§ћ§ўўћ§ўў§ћ§§ћўў§јћ§ў§ўћ§ўўњ§ўћ§§ўў§§ћ§ўў§њћў§§ћўў§ќћ§ћўў§їћў§ў§ўћ§ћћћў§ў§ўўќ§ў§ўўў§ўў§ћ§ћћ§ќћњћўўтћ§§ћћ§§ў§§ћ§ћ§§ћњћћ§ўўћћў§§ў§ўўў§ћћћ§ўўћ§§ў§юћўћўћ§ћ§ћњљњњ§ћћњ§§їћ§ћ§ћ§§ўћћќ§ћ§ћћљњћњћћ§ўўў§ўў§§ўћћљ§ўўћ§ћўўѓ§ўњћ§ћўњњћћ§ћћњњћ§ћ§ћ§§ў§§ћўўљ§ўў§ћћўўі§ў§ў§ћ§ћў§§ўў§§ўњћћќ§ћ§ћћ§§ћўў§§ћўў§ћўћћўѓ§ўћ§§ћ§ћўћћљћћєњћћњљњњћљљњћћ§ўњ§ў§ўћўўц§ўћ§§ћўћ§§ўћ§ћў§ўћ§ўњњћћ§ћћњ§§ћ§§ўў§§ў§§ћњћћ§јў§ўў§§ћ§§ў§њћіљћћ§ћ§ћ§ћўўћћ§ћ§ћћќ§ћў§§ћћ§ћ§ўўп§ћћњћњњљњњћњћњћћ§ћ§§ў§§ћўћ§ћ§§ў§ўўћі§ћ§ћўћўћ§ћћ§њћ§§їћ§ћ§њ§ћ§ћћ§ћўћў§ўўћ§ћћњ§§њѕћњ§ћњњћћў§ўўў§ўў§ўєћ§ћ§њћњ§ўў§ўўњњћ§ћ§њћћ§ўќћ§ћўўў§ўў§ыћ§ћ§ћ§ўўћў§ўљњћћњљњ§ћћў§ўў§њіћљћњ§ћ§ћў§§ћў§ў§ўўћїњћњљњљњњ§§ёћўћћњћљњњљћ§ћњћћўяћ§§ўћ§ћ§ў§њљњћћњћћяњћњћ§ћњњљњљњ§§ћ§ћћ§§ўћ§§дћ§ћљљњ§§ћ§ћ§ћњњ§ћњљјљњњћ§ћ§ћћњћ§§ћћњўћўћ§ћ§ћћ№§ћ§ћћ§§ћ§ћ§ћћ§њћћњњћњ§ћ§§јћ§§ћ§§ў§§ћєњћ§ћ§§ћћњћ§ћћєњў§ўћћњ§ћ§§ўўјћ§§ў§§ћ§§ўћ§§§ћ§ћћњ§ў§ѕћ§ћћњњ§ћ§ћ§§ќћ§ћ§§ћћ§ўў§§§ў§ўўўћњњ§ћ§њњћ§§ћ§§хћљјљћ§§ћ§ћћњћћ§ћћњњћ§ћ§ћў§ўў§љњћњћњ§ћћ§ёўњћ§ћ§§ў§ў§ўћ§ћћщ§ћ§ћ§ћћњљљћњ§ћ§ћ§ўў§§ћ§§ћјўћњў§ў§ўўѕ§ў§ў§ўћњћћњњњ§ћ§ћ§ћћч§ћ§ћћњ§ћўў§ћ§ўў§§ћ§ў§ўў§ћћў№§ўўћ§њћњћћњћ§ћћљљћїјљњ§§ыћ§ў§ћ§ћўћћњњ§ћ§ћ§ћ§§ћћѕњћћ§ћ§ћ§§ћљљ§њљјјњћюљ§ћ§ћ§ў§ћ§ћћ§ћ§ћ§ўўю§ћњћ§ћ§ћ§ћћњћњњ§§ћћњћќњћњћћ§јћњљћћ§§ўў§ўђ§ћњњћњћњ§ћ§њћњњћї§ћ§ћ§ћњћ§§ўњћћ§ўћўўя§ў§ўћћљљњћћ§ћњљљћћољњљљњњћћ§ћ§њћћњљћњ§§ћ§§ћњћ§ў§ўў§њћћўњћћљњћћњњћњњєћњћњћњћљљѕђјјљћњћ§њњћћў§ўўќ§ў§ўўг§ў§ћћ§ћ§ў§ћ§њњћ§ћ§ћ§ћ§ћћњ§ћ§ћ§§ћ§ћћњњћ§ћ§ўў§ўўў§ўў§ўћ§§њњљћњњћ§§№ћ§ћћњћњћћ§њ§§ћ§ћћѓњћћўў§§ћ§ћ§§ћћўљћћњќћњњљљќњћћњњѕћљљњ§§ћљњ§ћћњњ§§ў§ћћњ§ўћ§њћћќњ§ћ§§§њ§њњљьњљњћ§њћћ§§њњљњћ§§ћћ§§њћ§§ћ§§§ћ§ћћњћ§ћњ§њњћњћћњтћњћ§§њћћњњћћ§ћњњћљњњћћњљљћњћ§ћћу§ћћў§§ћњњ§ћћљњњљљњ§ћњњћћљњћ§ћћљњћњњћћ§§ћўњћћњќћ§§ўў§ћфњћњћњњћ§§ў§ўћ§§ћўў§ћњ§ћўћ§ћ§§ћ§њћњњєћњћњћћ§њњћ§њњ§ћњ§§ўўћћўў§§љћ§ћ§ћћ§§ћњ§њћњњћ§ћ§њћћњћљњњћњњњћљјљњћћўѓћ§ћ§њћљљњњљћњњћћ§ћ§ћћћ§њћњћћњћћљњ§ћћ§ёў§ў§§ў§ћњћћ§ћ§ћћѓ§ћ§ћ§ћ§ћ§ћ§ћ§§љћ§ћ§§ў§§ћў§§ћ§§ўэ§ћўћ§ћ§§ћћ§ћ§ћћ§њњћћ§ћь§ћњћћњњљњњћћњ§ўћћњњ§§ўљћ§ћўћ§ћћъ§њњћ§њ§ћ§ћ§ћў§§ћћњћњљњњќ§ћћњњѕ§ћ§ў§ћ§§ў§ўўё§ўў§ў§ћ§ћ§њћћњљљћљ§ћ§§ўў§§њѕ§ћ§ўў§§ћ§ћ§§ћћ§ћ§ћћј§ћ§ћћњњћћњњћћў§ўўі§ў§ўў§ў§ў§§ћњъћў§ўћ§ћњњћњ§§ўў§њ§ћ§ћ§§љћ§ћ§ћњ§§ћў§ћќ§ћ§ћћњљћњљљћњ§§єћ§ћ§ћћљњњљїєњ§ў§ў§ўў§§ў§§ўў§ўўќ§ўў§§§ў§ўўў§ўўќ§ў§ўў№§ў§ўў§§ў§ў§ў§ў§ўўў§ўўќ§ў§ўў§ќћў§ўўў§ўўњ§ўў§§ў$ўј§ў§ў§ў§ўўў§ў ўі§ў§ў§ў§ў§ў ўќ§ў§ўўў§ўўќћў§ўўў§ўўў§ўў§ўќ§ў§ўў§ћўћ§§ў ў§§ў§§ўќ§ў§ў ўў§ўўў§ўўў§ў ўў§ў ўў§ўў§§ў§§ѓў§ў§ў§ў§§ўў§ўўў§ўў§ќћў§ўў§љў§ў§ў§ў ў§§ў§§ўў§ўўњ§ў§ў§ўўј§ў§ў§ў§ўўў§ўў§§ў§ўў§ћ§ўў§ўўј§ў§ў§ў§ўўў§ўўќ§ў§ўўў§ўўњћўћћ§ўўјћ§ўў§ў§ў ўў§ўўќ§ў§ўўў§ў ўћ§ў§§ўўќ§ў§ўўќ§ў§ўўў§ўўњ§ўћў§ўўќ§ў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ўў§§ў§ўў§ћў§ў§ўў§ўї§ћў§ў§ў§ўўќ§ўћўўє§ў§ў§ў§ўћў§ўўў§ўў§§ў§ўўќ§ў§ўўќ§ў§ўўљ§ў§ў§ў§§сћ§§ў§ў§ў§ў§ўў§ў§ў§ў§§ћўћ§ћ§ћ§§ў ўў§ўўў§ў ўћ§ў§ў§§ћћ§ћ§ћћ§љў§ў§ў§ўўў§ўўќ§ў§ўўў§ўўэ§ў§ў§ў§ў§§ћ§ћў§ў§ў§§ ўў§ўўњ§ў§ў§ўўш§ћћў§§ћ§ћћњ§§ўћ§ћ§§ў§ў§ў ўћ§ў§§ўўў§ўўў§ўўі§ў§§ћ§§ўћ§§љў§ў§ў§ўўё§ў§ў§§ћўћ§ў§ў§ўўњ§ў§ў§ўў§їўћў§ў§ў§ўўљ§ў§ў§§ўўј§ў§ў§ў§ўўўћ§§ћє§ћћ§ћћ§ў§ў§ўўў§ўўњ§ў§ў§ўў§ўў§§ѕў§ў§ўњў§ўћ§§њў§ў§ў§§§ў§ўўќ§ў§ўўћ§ў§ў§§§ћў§§ ўў§ўўј§ў§§ћ§§ўў§їў§§ћ§ћў§ў ўў§ўўј§ў§ў§ў§ўўё§ўўћ§ћ§ћ§ћ§ћўћўў§§ћў§§ћ§їў§ў§ў§ў§ўў§іњ§њ§ћ§§ў§ўў§ѓўћўћў§ў§§ћўћўўў§ўўђ§ў§ў§§ћћ§§ћћўћћщ§ћ§ћўћ§ћўћўћ§§ў§ў§ўћў§ўўу§ў§ў§§ћў§ў§ў§ў§ћћ§ўћ§ћ§њћћ§§ўў§ў§§ћ§ўўе§ў§ўћ§§ў§§ћў§ў§ў§ў§§ў§§ћ§ћ§§ў§ў§ў§ў§ў§ў§ў§ўўѕ§ўћў§ў§ў§ў§§їў§ў§§ћ§ћўў§§ў§ўўў§ўў№§ў§ў§ў§ў§ўћ§ћ§§ўўщ§ў§ўћћ§§ў§ў§ў§ў§ў§ў§ў§ўўќ§ў§ўў§ћў§ўћ§§эћў§ў§ў§ћ§њћ§ў§ў§ўћ§§§ўћ§§§ў§ўўі§ўў§§ћћ§§ўўї§ўў§ў§ў§ўў§ўћўўљ§ў§ў§ўћћ§ћў§ў§ўўњ§ў§ў§ўўў§ў ў§ўћ§§єў§ў§ўћ§§ў§ў§§ўќ§ў§ўўќ§ў§ўўў§ўўў§ўў§ўў§§їўћћњ§љћњ§§љў§ў§ў§ўўўћ§§мў§ў§ў§ў§ўћў§ў§ў§ў§ўћўћўћ§љћљћљўћ§ћћ§§ўѕ§ў§ўћ§ў§ў§ўўћ§ў§ў§§ёў§ўћћ§ћњў§ў§§ћ§§ќћ§ћ§§ѕћў§ўћўњўў§ў ўђ§ў§ћћ§ћ§§ў§§ћ§§ўћ§§њў§ў§ў§§ћў§ў§ўў§ћўћћ§ћќ§ћ§ћћњў§ў§ў§§§ўћ§§ўў§§ў§єћ§ћ§ћ§ћўћ§ћ§§ќћ§ћ§§ѕўњљѕћњ§ћ§ћ§§ќћ§§ў ў§њў§ў§ў§§№ў§ў§ў§ў§ўћ§§ў§ў§§їўћўћ§§ў§ў ўі§ў§ў§ўњўћ§§ў§ўћ§§љў§ўћ§ћўўѕ§ў§ўћ§ћћ§§ћћј§њ§њ§ћ§ћћў§ћћўў§§ћ§ўћ§§ьў§ўћўћ§ўў§§ћўћ§ћў§ў§§гњўњ§ћћ§ў§§ћў§ў§ћћ§ў§§ћў§ў§ў§ў§ўћў§ў§ў§ў§ў§§ћ§§њћўњўћўў§ќћ§ћ§§юўћ§ћ§ћћњћ§§ўў§§ћ§ћћњў§ў§§ћћы§ћ§ћњћ§§ў§ўћ§§ўћ§ў§ў§§ўўћћюўћћ§ўћ§§ћ§§ћў§ўћў§§ъўћўћ§§ў§ўћ§ћ§ћ§ћћў§ў§ўўђ§ўћ§§ўћ§§ўћ§ћ§§ўў§ўў§ў№§ў§§ў§ў§§ћўћ§ћўћћњў§§ћў§§ўў§§§ў§ўўє§ў§ў§ў§ћў§ў§§ўћ§§ўў§§ѕўћ§ћўњўћ§њћћњњ§ћўћўўѕ§ў§§ћњ§ћўћ§§ъћ§§ў§ў§ўћ§§ў§§ћ§ћ§ћ§ћ§§ќћ§§ўўў§ўўп§ў§ћ§ћў§ў§ўћў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўўў§ўўў§ўўў§ўўў§ўўѓ§ў§ўћ§§ў§ўћў§§щў§§ћў§§ћў§ў§ў§§њћћўћ§§ўўћќ§ў§ўўњ§ў§ў§ўў§ўѓ§ў§ўў§§ўћў§§ћћћў§ўћ§§їћ§ў§ў§ў§ў ўљ§ў§ў§ў§§єћ§њ§њћћў§ў§ўўѕ§ў§ў§ћ§§ў§ўўќ§ў§ўўњ§ў§ў§ўўє§ў§ўћ§ћ§§ўћ§§ ўў§ўўќ§ў§ўў§ў§§ў§§ў§ћў§ў§ўўѕ§ў§ў§ћ§§ў§ўўќ§ў§ўўњ§ў§§ћ§§ћћўћў§§ћў§ў§ўўљћўћўњњѕ Р§ўћў ўўћўў§ђњ§§ўњў§ћњјћћљћћ§іћљћљљћћљјћћј§ўћўњўћўўћљјљ§ўўћћў§ћўў§юћ§њ§њ§§ћљ§ўўњ§њ§§ўў§ўњўўњ§њ§њњўњљћјћћќљј§ўўќ§ўњ§§ћ§њћўўё§њљћ§ћњўўћ§§љћ§§№ћў§ћљћў§§ўўћћўњўўўњўўіљ§ћјѕјњћћљљћњ§ўњ§јћћћљ§§њћћ§§ћњўўћ ўљ§њўњњћўў§јљїљћ§њ§ўўћ§ћљљћћљў§ўў§ћюј§ўўћ§§њњјљ§§ў§ћћўўќ§њ§ўўћ§њњ§ўўљ§њ§њљљ§§ўњ§§ў§ћќјћћўўў§ў ўў§ћћїљ§ў§ћљњ§ўўђћњњ§ћћљњ§њњћјњњѕјћљ§§ўўњ§§ўўхњ§§ўў§љњњ§§њѕ§ў§§ћљћћњљјј§ўўѕћњћљћћљ§њњ§§њђ§ћњљћ§§ўў§љ§љ§§ў§ ўї§љћљћјѕљјјћ§ўњ§§іћўњ§њћћљћ§§ёћљ§ћ§§њњўўћњћћўўћўћўњўўч§ћљњљћћљљњ§њ§§њљ§§ў§ћљћњ§§ўњћћљ§њўўћћ§§яњ§§ўўњ§љ§§ўў§§њ§ўў§іћњњћљљ§§ў§§ўњ§§ћњ§ћўўњўўўћўўћўўћўў§ўњћ§§ћ§ўўћўќ§ћњ§§ў§іљњ§јљјїљљ§§ў§ўјњ§ўћўўћўўў§ўўј§њјњјј§ўўўћўўљњ§љљћњ§§љўњў ўќћ§§ўўчћљћћ§њ§њњћћњљљћњ§њ§ўўћў§ўўѓћўўћўў§§љћ§§ўўўћўў§њтћљљћњ§љћ§ў§ћјљљњ§§њўўћћ§§ћњ§њ§§їљ§§ћ§§ўў§§ўњ§§ўћўў§§ўњ§§ћѓ§ћћљћћњњљјћњўўўњўўјњ§јћћњ§ўў§ўљўўќћўћўўћњўўћўў§ўў§§ў№§ў§јїјѕ§§њ§ћћ§§ўўќћњ§ўўѕ§љћљ§§ў§ў§ўўўћўўўњ§§ћўћўћўў§ўћўўћћњњћ§§ќљћћ§§ўњ§§љљњњћ§§ўўі§ћїјўћўўћўўўћўўўћўў§љ§ћљ§§ўћћўќћ§ћ§§ќћљ§ўўј§ћљћўўћўўў§ћћўњ§њћљљ§§ў§ўњўўєћњ§§ўўћћўћћўў§њ§ѓњљ§§љњњј§ўўћўўўћўўїћўўњ§§ўў§§ў§ћѓ§ўў§љњ§§њ§ўњ§§јњ§љћћ§њ§§ўћ§§ўы§њўњ§њ§ћ§ўўћўћўўњњ§њўў§ўмћ§§љљњљѕ§њ§§ћћ§њ§ћљ§§њњљ§§ў§ўўћњњ§њўўњљћћўў§§ўўћўўўћў ўќ§ћћўўў§ўўшњўўћў§§њ§ћјјљћћњ§љў§њ§§ћћ§љљћўћўћўў№њ§ўњ§§ўћўўћљ§§ў§§ўњўўї§ўў§ћѕ§ў§§ўљћћўњўўўћўўўћўўћўќћўћўўљ§ўў§љњўўќћўћўўљћ§ћјјїћћєљћ§§ћїўћўўћўў§ўўћўўьњ§ўћћњњћ§ўў§§њў§љ§§ўў§љјћљ§§љћћўўњ§ў§§њ§§ќў§њўўћ§ўћўў§ѓћњњјљћћњњ§њ§ўўњі§ў§њћљљ§§ўўўћўўѕ§њњ§ўў§§ћњўўў§ўўјњ§§љњљ§ўў§ќћњћ§§јљ§§њўўћўў§ќљћћљљќ§њ§ў ўќћўў§§љ§ўў§§єњ§ўўћўў§§њ§ўў§ћјћ§ўњ§§їњ§§њ§љўў§§ќўћћўўњћўўњњ§§ ў§§ўћўў§љљјњјљ§ўўєћўўћћїћў§ћћ§§ћў§љћўўњћўћўћўў§ўї§њћў§ћћ§ўўщљ§њњўўњ§§њ§§ћњћћњўћўўњўўўћўўћ§ўћўў§§њ§§іљ§§њњј§ўћўўі§њћћјћћјљ§§њ ўћўѕћўћўў§ўћўў§§њўћћњ§ўў§ћћј§ћўўќ§љњўўіћў§ўћўўћњўўўћўў§њ§ўўюћўћў§§ўўњ§њ§ўў§њћўўќ§њ§ўўѓ§њ§њ§§њ§ўѕўћўўї§ўўњњўљњўўўћўў§ќњ§њ§§њ§ўў§њњѓљњ§њ§ћ§§љљ§њўўўћўў§њћ§§ўћўў§ќўњ§њњ§ўњўў§њњ§§љњ§§ў§ў§ћњў§њўўўћўўўћўўљ§њљњўћў ў§љјљњ§§њўў§ўќћ§§ўў§ўњћ§ўўћўўћў§ў§ўјњ§ћћ§§њ§§њњ§њ§§љ§§ў§ўњќ§ўћўўћўќњ§§ўў§њњљ§§ћћ§§њ§ѕњ§§њљћљћ§ўў§ћњќ§њњћћіўћў§њ§њ§§ўўћ§ўўћ§§§ўћўўіњ§ћљћњљћ§ўў§ћў§њљ§ўўћўўћўћћў§њўўќћўў§§ўўћўў§ўћўўёћўњњўћћўўњўўћћўўј§љћљћћ§ўўўћўўћћљњћњўўћўїњљњњљ§ўћўўћ§ўўћўўўћўў№§ћћ§ўћ§њ§њћўћўћў ў§љћћ§ўћћўўћњўўњў ўўњўў§њў§ћћўљ§§ўћћўћћўўўћўўќћўћўўћў§чљ§ћљњўћњљњўћўўљ§љћњћўўћњўўќћњњўўќћњњў ў§ўњў ўјњ§њћў§њўўћў§ћ§ўўћ§њ§§ўўљњ§ћљњњ§§ўћњў§§ў ўћћўўћўўћћў§§ў ў§§њ§ўў§ћњ§§ѓњ§њћљћћљћ§ўћўў§ўќ§ћљ§§ўћћўњњўўњўћњћљ§ўўї§ћљљ§ћћљўўћћ§њ§ўўў§ўўў§ћћќ§њ§ўўћў§њљўўћў§ўў§ў ўњ§ўћўўјћўћ§ўўћўўўћўўўћўўћўј§ў§ўћ§§ўўљћўўњўћўўњ§ћўћћ§ќў§§ўўћјў§§ћћљљўўћћњњ§ћћьњ§їјљљћњ§§ћ§§њўњўўћўўўњў ўћў§ўћћў§ћ§§щўћњћѕљњњ§§ћљњјњњћћљљњљ§§ќўћћ§§ўќљўўћћў§ўў§§њў§ўћћўўўњўўѕ§њ§ў§љњљћљћћћљћ§§ћћўыћњўћўў§§њ§њ§§ўўњ§ўўћўў§ѕўњ§ўћўўњўў§§љўњ§§ўњ§§ўўњ§§ўќћњњўўўћўўќ§њњ§§љњ§§ўўћўўѕњћљљ§ћњјћљ§§ўљ§§їњ§§њћљљњўў§ўћўў§ёўјўўћў§§њ§ўў§ћ§§ўў§ўў§ћў§§єњ§§ўћў§§њ§§ўў§ўњ§§ ў§ћќ§ўћўўњћўўћўўўћўў§ў§њ§ў ў§ў§ўќћўћўўљћ§њ§ўћўўќћўўћћ§њ§ўўќ§њ§ўўў§ўў§ўўњўўўћўўњ§њўўћўўўњўў§ћљўў§ўўў§ўўќ§њ§ћћўіћўњ§їўў§§ўўўћўўўћўўўћўўўћўўќћўћўў§ћўљ§§юњ§§њ§§ўћћў§§ўў§ћ§ўўўћўў§ѓњў§§њћ§њ§њљ§ўўњћў§ќћљћјјљѓћљћћ§§ћњ§ў§§ўўљћў§§љћ§§ўўћўў§§њ§§љњљљ§ў§њњ ўў§ўўў§ўўњћ§ћ§ћ§§њљ§ћњћњћњњћє§ћ§њћњћћњњћњњћўў§ўўњћ§ћ§§ўўўћўў§фћњћ§ћ§ћ§њћ§ўў§ћ§ћ§ўў§§ћ§ћ§§ўў§ўћ§§їћ§§ў§ћњ§њњўћ§§ўї§ў§ўўћ§§ћћњ§ћњњћњњ§ў§ўў§ћ§ћћјў§ў§ўћ§ћћј§ћ§ћћўўћћўў§§ўј§ў§ў§ў§ўўў§ўўі§ўћћњјїљњћћьњ§ў§ћ§њћњћњћћ§§ћњћњћћјљў§ў§ў§ўўњ§ў§ў§ўў§ќў§§ўўіћ§ћљјћћ§ћўў§ўњћћќњћњћћёў§ўћ§ћћњ§ћў§ўћ§§ћ§ўј§ў§ўћ§ћўўљћњљ§§ў§§ћўћ§ћ§§ѓћ§ћў§§ћ§њћњћњњўњ§ўћћ§ўўђ§ў§ў§ўћњњћњћћ§§јњјљ§ўў§ўў§књћћ§ћ§§ћњњљњњћћ§ћў§§ћ§§ў§ў§§ћў§§ў§§ћћ§§юў§ћњћћњ§ћњњ§ўў§ў§ћћќњћћ§§ўћ§§ћ№љћњ§ћў§§ћ§ў§ћ§§ўўјћ§ћ§ћ§§ўўў§ўўў§ўўћљњћњњјјњњ§§ћ§§ёћ§ћў§§ћ§њћћњћ§ћћіњ§ћ§§ў§ў§ў ўў§ўўў§ўўћхјњћћњћћ§ћ§ћ§§ћћ§ў§њћњ§ћ§ћ§ўў§чў§ўў§ћ§ћ§ћ§ўў§§ћ§ћў§§ћ§ћўўэћ§ћћљљњћћ§ћўћ§ћ§ћ§ћћћњ§ўў§§ўњ§ў§ў§ўўў§ўўў§ўўєћ§ћў§ў§§њ§§ўўч§њљ§§ћ§ћ§ћ§§ў§§ћ§ћў§ћ§ћњћћ§§ћўў§ўћўў§§ћўўђ§ў§ў§ўћў§ўћ§ћ§§ўћўўў§ўў§ћіњ§ћ§ћ§ћћ§ўў№§ў§ў§ў§ў§ўћ§§ў§ўўюњћћ§ћ§§њњљјјњ§ћ§ћўў§§ў§ўўў§ўў§ћќњ§ћўўў§ўўєћ§ћ§ћ§ћ§љњњћћ§ћюў§ћњјћ§ћ§§ў§ўў§ћњ§§ѕћ§ў§ћўћ§ўўћћїў§ў§§ћћ§ўў§єћў§§ћ§ћћњћњћћѕњћњњ§§ћњњ§ўўѕ§ў§§ћ§њњ§§ўўљ§ћ§ћ§ћўўў§ўўў§ўў§ьћўћ§ћ§ћў§ў§§ў§њљњ§ћ§§їњћћ§ўў§ў§§ўћїњћ§ћўћўћўў§јћ§ћ§§ў§ўўњћ§ћ§ћўўњєљћћ§ћћњћћ§ћ§§ћњљњњ§§ўў§ќњћњўўў§ўўќ§ў§ўў§§ћўўќ§ћ§ћћ§ў§§ўћћї§ћ§њћћў§ўў§њњћњў§ўўўћў ўъћ§њћћ§ћ§ћў§ў§ўў§ћ§§ў§ўўћ§ћ§§ўўќ§ў§ўўќ§ў§ўўј§ўћ§ћ§ћ§§ѕћ§ў§§ћљљњ§ўўў§ўў§іћ§ўўћ§ћў§ўўў§ўўпћ§ћ§ћњњ§§ўћў§§ћ§ћў§§ћ§ћ§ћћњћћ§ћ§ћћў§ћћя§ћў§ў§ўћ§ў§ћ§ћњћўў§јћ§§ўў§ћўўў§ўўў§ћћђ§ћ§ћ§ћ§њњћ§ћњћћ§ћ§ў§ўіћњњў§ћћ§ћў ўў§ўўў§ўўћ§њћ§ўўўћўўў§ўў§ђћ§ћћњњћњњ§ћўў§§ўћњњ§ћ§ў ўљ§ћў§§ћўўє§ўў§ћўћ§ћ§§ўў§яўћћ§§ў§ћ§ћ§ћћњњљўўў§ўўњ§ў§ў§ўўў§ўўў§ўўљћў§§ў§ўўћ§ўў§њњѕћњћњћњ§ћћњўўњ§ў§ў§ўўќћ§§ў ў§ў§ћѕў§§ћ§ў§ћ§ћўў§ћјњћћ§ћњњўў§їћ§ћ§ћўћ§ўўў§ўўќћ§ћўўіћ§њљљ§ћњњ§§ў§їўћ§њћћ§§ўў§јћў§§ћњ§ўўўћўў§ъћў§ўћў§ўћ§њљњ§ћ§ћ§ћ§§ўўј§ўћ§ћћњћћ§ћћўў§ўўї§ў§ўћ§ћ§ћћљ§ћ§ў§ћ§§ў§ќћ§ћўў§ћћ§ћћњњї§ћ§ћ§ћ§ћ§§јћў§ћћ§ћўўў§ўў§јћ§ћ§§ў§ўўњ§ўў§ћўўў§ўўђћ§ћњљњћ§ўў§ў§ўўђњћњўў§њћћ§ћўћўўў§ўўў§ўўц§ўћћ§ўћ§ўўћћњ§§ў§ўћ§§ў§§ћ§§ћіљњњ§§ў§ў§ўўў§ўўў§ўўь§ў§ў§ўћ§ћ§ћ§ў§ћљљњћўў§§ў§§њї§њћњћћ§ћ§§ў§ўќћ§ћўў§ўњћ§њњћўўњ§ўћћ§ўўўћўўќ§ў§ў ўќ§ў§ўў§њћў§ў§ўўћћ§ўў§§ќўћ§ўўќћ§ћўў§ќћ§ћўўљ§ўћў§§ўў§љў§ў§ў§ўў§§ў§§ўћ§§њћ§ћў§ўўќ§ўћ§§ўћ§§ђњ§ћћ§ћ§ў§ў§ў§ўўј§ўћ§њ§ћўўї§ўў§ћў§ћ§§чў§ў§ў§ўў§ћ§ћ§ў§ћ§ћ§§ў§§ћўўі§ўћ§§ўћ§§ўўў§ўўў§ўўјћ§ћ§ўў§ўўќ§ў§ўўю§ўћ§§ў§§ћ§ўў§§ћ§§ўўќћ§§ўўіћ§§ў§ўўћ§ў ўњ§ўћ§ћўўіћ§§ў§§њћћ§§ќћ§ћ§§ѓћўћ§ћў§§ћ§§ў§§§ў§ўўљ§ћ§§ў§ўўў§ўўўћ§§іћ§ћћњ§ћ§ћ§§юћ§ћћњћњ§§ў§ўћ§ћњњ§§ќћ§§ўў§ћўў§ўў§§ў§ўўћўћ§ў§§ћћћ§ћњ§ўўќ§ћћўўї§ћўћў§ў§ў ўјћ§§ў§ў§ўўјћ§ћў§ў§ўўњ§ўћ§ћўўњ§ўў§§ўўў§ўўњ§ў§§ўћћєњ§ўў§ў§ў§ў§ўўћ§ў§§ўўі§ў§§ћњљћћўўј§ў§ўћў§ўўў§ўўћїњ§ўўћ§ћ§ўўў§ўўў§ћћќњ§§ўўќ§ў§ўўў§ўўј§ў§ў§§ћ§§ћњ§ў§ћћўў§ўўў§ўўќ§ў§ў ўў§ўўљ§ў§§ћўћћ§ћў§ћ§ўўі§ўћћњ§ўў§ўўі§ў§ўў§§ў§ўўў§ўўў§ўў§§ў§ўўњ§ўћ§§ўўњ§ў§ў§ўў§ћў§ћ§ўўѓ§ў§ўћў§ўћ§ћ§ўўћ§ћњћ§§ќћ§§ўў§њћў§ў§ўўў§ўўў§ўўј§ў§ў§§ћўўќ§ў§ўўў§ўўўћ§§ыў§ў§ў§§ћ§ћ§ћ§њћњћћњћўўјћ§§ў§ў§ў ўіћњћ§ћ§§ў§ўў§§ў§§ў§чў§ў§њћ§ўў§§њћћ§њњћў§ў§ўў§§ўў§ўўљ§ў§ўў§њњ§ўќ§ў§ўўђ§ўћ§ћ§§ўћў§ў§ўўў§ўўі§ў§ў§ў§ў§ўўјћў§ў§ў§ўўў§ўўў§ўўі§ўћўў§ћў§ў ў§ўљћ§ћўћ§ўўў§ўўіћ§њћўў§ў§ўў§јњћњ§ћў§ћћ§іћўћ§§ў§ў§ўўў§ў ўў§ўўњ§ўћ§§ўўћћњћ§ћћї§ћўў§њ§ћ§§ћђљњљљћњћћ§ћ§ћ§ўўї§ћ§§ў§ў§ўўіћ§ў§ћ§ћўћўўњ§ў§ў§ўў§§ћљћћјњћњћњ§ћўўќ§ў§ўўў§ўў§їћ§ћ§ћ§§ў§§ўѕ§ў§ўў§ћ§ћў§§ќў§ў§§шћ§ћћ§§ћ§ћ§ћ§ћў§ў§ў§§ћ§ћўўў§ўў§љў§ў§ў§ўў§јћ§ћ§ћ§§ўўў§ћћчњљњњћћ§ћ§ў§ћ§ћ§ћ§ћ§§њћћ§ўў§іћ§ўў§ў§ў§ўўі§ў§ў§ўћ§§ўўўћ§§ўћ§§ћўўќћў§ўўяћ§ћ§ћ§ћ§§ў§§ћ§ћ§ўўњ§ў§ў§ўўь§ўў§ћ§ћ§ћ§ћ§ћ§§ў§ў§ўўјћ§њћњ§§ўўў§ўўў§ўўў§ўўќ§ў§ўў§ћ§ў§ўў§ћў§ў§ўўљ§ћў§§ћўўњ§ў§ў§ў ўќ§ў§ўўє§ў§ў§ў§ў§ўў§§§ў§ўўќ§ћ§ўўј§ўћ§ћў§ўўўћўўњћ§ўў§ўўў§ўўј§ў§ў§ћ§ўў§§ў§§ў§§ћўўљћў§ў§ў§§§ў§ўўќћ§ћўўѓ§ў§ў§ў§§ћў§ў§§ўў§ўўў§ў ўј§ў§ў§ў§ўўєћ§њћћ§ћ§ћ§ћ§§ўћўў§љћў§§њ§ўўї§ў§ўћћ§ў§§їўћ§ћ§ўћ§ўў§§ў§§ўў§ўўћћ§њћњњћќњћњћћіњ§ћўћћ§ў§ўўў§ўўєћ§ћњћ§ћ§ћў§ўўї§ўћ§ћ§ћ§ћћ§ўћ§§ўю§ў§ў§ў§ў§§њ§ћ§ћ§ћ§§іћў§ў§§ћ§ћ§§ћў§§ћўў§§ў§ў ўї§ў§ў§ў§ў§§ўњ§ў§ў§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўўћ§§ ўў§ўўї§ў§§ћ§њ§ўў§§ћўў§њћў§ў§ўўљћ§ўў§§ўў§§ўћћт§ћ§ћ§ћ§§ў§ў§§ћ§ћ§§ў§ўћ§ћ§ўўћћўўў§ўўў§ўў§њњ§ћў§ўў§іћ§ћ§ћ§ћў§ўўњ§ўћ§§ўўі§ў§§ћў§ў§ўўќњћ§ўўђ§ў§ўў§§ў§ў§ў§ўўѕ§ў§§ћ§ћў§§ўўў§ў ў§єћ§ћ§§ў§ўњў§ўўь§ў§§ћ§§ў§ўћћњћњћћ§§ўўќ§ў§ўўў§ўўќ§ў§ўўј§ў§ў§§ћ§§ќћў§ўўєћ§ћ§ћў§ў§ў§ўўћ§ў§ћў§ў§ўўњ§ў§ў§ў ўјћ§ћ§њћњћћўў§§ўў§§§ў§ўўю§ў§§ћ§§ў§ўћ§ў§§ў§ўўњћ§њ§ћ§§ў№§ў§ў§ў§§ћ§§ў§ў§ўўў§ўўј§ў§ў§ў§ўў§ўў§ўў§§ўћћћ§ћ§§ўўњ§ў§ў§ўўќћ§§ўўў§ўўў§ўў§ў§іў§§ў§ў§ў§ўўќ§ў§ўў§љўћў§ў§ўўў§ўўў§ўў§§ў§§ў§ў§§ў§§ўў§ўў§№ћў§ў§ў§§ћ§њ§§ў§ўўў§ў ў§§ў§§ ўщ§ў§ў§ў§ћњ§ћ§ћў§ўћўў§ћў§§§ў§ўў№§ў§ў§ў§ў§ў§ўћў§ўўў§ўўў§ўўъ§ў§ўћ§ћ§ћўћ§ћ§§ў§§ћ§§ўў§§ў§§§ў§ўўљ§ў§ў§§ўўў§ўўќ§ў§ўў№§ў§ўњў§ў§ў§§ћў§ўўў§ўў§ ўњ§ў§ў§ў ўќ§ў§ўўђ§њћћў§ў§§ћў§ў§§ћў§ћњ§§ўќ§ўћўўѓ§ўў§ў§ў§ўћў§ўўјћў§ў§§ћўў§§ћ§ўў§§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўє§ў§ў§§ћўћў§ўўќ§ў§ўўў§ў ўј§ў§ў§ў§ўўњ§ў§ў§ўўќ§ў§ўўјћ§ћў§ў§ўўњ§ўћў§ўўј§ў§ў§ў§ўўќ§ў§ўўў§ўў§§ў§§ќў§ў§§ћў§ў§ўўј§ўћў§ў§ўўќ§ў§ўў§ўў§ўў§ўћў ўј§ў§ўћћњ§§ўљ§ў§ў§ў§§§ў§ў ўў§ўўў§ўўў§ўўќ§ў§ўўў§ўўёћ§§ў§ў§ў§§ћ§§ћў"ўќ§ў§ў ў§њћўћ§ћ§§§ўћўўў§ў ўў§ўў§ўћўўћ§ў§ў§§ў§ћћ§ћў§§ўј§ў§ў§ў§ўўў§ў ўў§ўў§ћ§§ў§§ћў§ў§ўўњ§ў§ўў§§ўќ§ў§ўўќ§ў§ўўќ§ў§ўў§ћћ§§ў§§§ў§ўўњ§ў§§ћ§§ў№§ў§ў§ў§ў§ў§ў§ў§ўўќ§ў§ўўї§ў§ўћ§ћћ§§ћў§ў§ўўќ§ў§ўўў§ў ўњ§ў§ў§ў ўў§ўў§њћўћ§§ўў§§ћўў§ќћў§ўўў§ўўќћ§§ўўї§ў§ў§ўћћ§§ ўє§ў§ў§ў§ўћўњўў№§ў§ў§§ћў§ў§ў§ў§ўўў§ўўў§ўўў§ўў§ўњў ўў§ў#ўў§ў ўў§ўўќ§ў§ўўў§ўўў§ўўњ§ў§ў§ў ўў§ўўў§ў ў§ѕў§ў§ў§ў§ў§ў ўљ§ў§ў§ў§§§ў§ў ў§ўў§ўўў§ўўє§ў§ў§ў§ў§ў§ўўў§ўўў§ўўў§ўўќ§ў§ў ў§ўќ§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўўє§ўћў§ў§ў§ў§ўўј§ў§ў§ў§ўўќ§ў§ўўќ§ў§ў ўќ§ў§ў ўъ§ў§ў§ўћў§ў§ў§ў§ў§ў§ўћ§§ўі§ў§§ўў§ў§ўўќ§ў§ў ў§ўі§ўћўћў§ў§ў ўў§ўўў§ў ўў§ўўў§ў ўј§ўћ§ћ§§ў ўќ§ў§ў ў§ќњћ§ўўќћ§§ўўў§ўўі§ў§§ћ§ћ§§ўўє§ў§ў§ўћ§§ў§ў%ўњ§ў§ўћўўўћўў§ ўў§ўўў§ў ўў§ў ўў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўј§ўћ§ћ§§ўўў§ўў§§ў§ўўў§ў ў§ў§ўќ§ў§ў ў§§ў§ўўў§ўўќ§ў§ў:ўў§ўўў§ў ў§ўў§ўўў§ў ў§ќћў§ўў§єћ§§ўў§§ўћў§ўўў§ўўў§ўўќ§ў§ўўў§ўў§ўљ§ўћ§ћўћћќ§ћў§§§ў§ўўќ§ў§ў ўњ§ў§ў§ўўю§ў§ў§ўћ§ћ§ћ§ћ§ћў§ў ўј§ў§ў§ў§ўўў§ў ўќ§ў§ўўў§ўў§§ў§§їў§ў§ў§ў§ўўќ§ў§ў ўў§ў ўі§ў§ў§ў§ў§ўўчћ§§ў§ћћў§ў§ў§ў§ў§ў§ў§ў§ў§§ўќ§ў§ўўў§ўўќ§ў§ўўќћў§ў ўј§ў§ў§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўўќ§ў§ў ў§ќћ§§ўўў§ў ўў§ў ўў§ўўў§ў%ўќ§ў§ўўў§ўўў§ўўќ§ў§ўўў§ўўў§ў ўў§ўў§(ў§єћ§§ў§ў§ў§ў§ўўў§ўў§ ў§ўќ§ў§ўўў§ў ў§ћіўћў§ўћўў§ўўј§ў§ў§ў§ў ўј§ў§ўў§§ўўў§ўя§ўўњћјћћ§§љ§љћљћ§§љїїјњћјњ§њўў§§њћљљћіјљћјљјјњјћћ§ўљ§§ќњ§ћљљнјєћћ§§ћњѕјњљјјћљљћћњ§§њ§§њ§ћ§§ћћњјњњіћјњњљћ§§њћћяљћљњ§§љћјћ§§њљћњћћєњљћ§§њњћљљћљљћњјњњјљћћњњ§ћћљјјѓњјљћљћћљјњњћ§§ђљћїћљњњ§љљћљћ§§љљћћјћњћћјћљљћљ§ћљћћ§ўљћћљљњ§љћљјћћўљ§§ћ§јћ§§ћ§љћљљўћ§§љњ§ћњјјћћјљњ§ћ§ўў§§юћўў§њњ§ћ§њ§њљћјјћ§§њ§§љ§§ћїљћћљћћљњћћїљћњ§§ћћљјјќѓћљћћљљћњїљњ§§јљћјћћ§њ§§јљћјњљљћјјћќљћљћћќљћћ§§яћљљћћљљћњћћ§љћљњ§§ќњћљћћўљ§§ўљњњіћљњњјљљћљ§§јљњјјњїњћћњѓјњјћћљћћјјћћ§§ўњўўт§љћћљјјљћћљљћњњћљћљљћњћљїјјњњјјљњљѕњјљћћ№љћљјїњј§§ћћ§§ўў§§љљјћњ§њ§§њћњјњњћћїљјљћћљљћ§§ђљћљћћјјњјјњњјћћ§љјњњгћў§§јћњјћњјњїїњњ§§њ§љљњ§§љћћњјћ§§ў§љњњљћћљћљћћѕљћљћљјјњћћјјњњљ§§њ§§єћљјјњњљћћ§§љљћљјћљћљћћљњњіјїћћњњјњјћћќњћћ§§ќњўћ§§њњћћљћ§§ў§ћ№§њ§ћљљјћћ§§ћћїїљљєїјћљљћњјјћћ§§ћњ§ў§фўћ§§ћњ§ћљ§њ§њ§њ§§ўў§јћјїњјњћћћјњљљћћ§єњћћљјјњїњјћ§§ыњ§љћћљћћ§§њ§§љћћ§ћћљ§§ўњ§§ћш§њћљѕєѕјѕѕјћ§њ§њ§ћњњїїљїїэљѕїїј§§ћў§њ§ћљњћћ§ћћюјљћњћћ§ћјїјњњћљћћјјњњћјѕљљїїѓњјњљћћљњјњћљ§§ћўјћћ§љцћљ§§ў§ћћљљњњїїјњјљћљћњћљљ§§ћљјєљћљјћћ§љњ§§ьњ§§њјљљћљћћљћ§§ўўњљћћњьћљјјњњћћљљћјјћ§§њ§§ћћњљјњјљњњјјќїњљ§§ўћ§§ўњ§§іњ§јљљћћљјћ ћчјљїїњњјћљћ§ћјїѓјјњћњњјњљѕѕёљњјњјњћњћћ§њўћ§§ќљјљ§§ћ§ўњ§§њщ§љћњњїјїјњњјјѕїљљїњјњњјјёњјјћ§ћўўњ§ћ§§ћ§§ёљ§љњћ§§њ§њњјћћљљўјњњјјћћљњњћљљћщњљїњљћ§§ћјјљ§ўћўў§§јћљћћ§ўњ§ §љћјїјћљјј§њјћћњћјјњњћљјјїїўјњњўљ§§њў§ћћљўјљљэћљћњњ§§љљћљњњљњјљћ§§№љћїњњљљїњїјјњљњћћў§њњћљљћ§§ўњљљ§шјљјњњјћ§§њћ§њ§ћјїїѕјїїѕїїљїљљєїњљљ§§ќњјјћћўљ§§ўњ§§єњћљћљћ§ћћњњјјѓљїїљ§њљњјљјїњњ§љњјјљїјљјћїјјњєѕїљїљњљћ§њњ§§§њ§њњ§њћ§§ўў§§љѓ§ћћљјњїјњњјљњњіјњјїјјїњњћћќљћљњњћљћ§ѓњ§ўњ§ћјљћ§њјћћњћљљћјљћљљћћѓјњїљїњјѕѕї§§ћћ§љњ§§ўњ§§љњјћљњћ§§щњљњњљљјјњћћљћљњўўњљљћћ§§ўњћћўљћћўћњ§§ћ§§ќўћ§ћћфљ§§ћњћ§§ћєѕљјњћљљћњїјїљїњјњјјћѕ§њ§љњњјјћћ§§ћњ§ўў§§щљњјћћљ§њћљћ§њ§§њћћјњјјњњјљњљњњјњћћшљћљљњјљ§§љћћїїѕјњћћљњ§њ§§ўћ§ўў§ћћљњјњњјњћћљћњ§ў§њњ§љ§ѕћјїїєѕљѕњњ§§ў§§ўћўўљ§љјљћјњњ§љћљљљјњћ§јїћћљћњљћ§ћћљљєћјљјїљѕїїјљўўќ§љ§ўў§ўц§ћњ§§ћјјњљћљћљ§§љљћјјњњјљћћљљјљїїњћћјїљљћљ§ћўў§љњ§§њўў§§§љћљљјїњљљ§§їњў§§ћђ§јћљјћћјїјњћћјјњѕїњњўў§ћјѕљ§§єњјћљћ§§ћњњљїїјњљћљ§љљњњёєњїїѕѕљњћћљћљљ§§ўљћћљљћјјћћўўќ§ћљњњл§љћњїњњјљїјњњћћњјњњјїѕїљѕїљїјјњћјљњњ§§ќњ§њљљуњљѓїњ§ўњ§§ўњњ§њњљљћћјћ§њ§њћјћћўљћћёљћћѕїљњјјњјћћњћћшњїћљћїљљјњљћћљћћ§§љћљћљћћќњ§љ§§ўњ§§ќњ§љћћјљѕљћјњњћћ§љћљљјєљјљћљћљљјћјћћ§ўљћћ§ёў§њ§ћњїѓјљ§њћљћћкњћљјљћљћћјљћјјїљљћјћ§§ћћљљњ§§љљћ§ўў§§ћћ§њ§ўўўћ§§ўќ§љљћћђљћљћљћљјћјјњњјјњёљћјљћ§§ћїњћћјњўўјћўўњњ§њўўќћњ§њњ§љћљљћ§љ§§ќњљљћћљєћјћљћљћљљћљћћёљћјљљ§њњћјљњћњ§§јњ§ћћњњћўўћ§њћњ§§љњ§§њ§њљљј№їјњљћјјњјњњјћјјњњћў§§ў§§ћјЃћ§§ћћљ§јћћљњ§ћљћћ§§ћўћ§ћљјњћљћћљћћњїјїњћљњјћљњїїњјў§њњўў§ћњ§§ћњјћ§њљ§§ћњњјњњљћћјјїј§ўњ§љљјљљ§§ќљћјњњыјїћ§ћљљћњјїј§ў§§њ§§њ§§ћњљљћ§§№љ§ћћљћјњљљћћљћјїїљљїїјћ§ўў§њ§ћћљћћјљљћћіњ§ћўўћ§љњўўњ§§њљћћс§ћњљїїњјњјјљѕєѓїљљјјћњљњћјњљљћјјљљћ§§њћј§§ўј§ўўћћў§ћћђњїѕїїјљћ§љјњљ§§ћјљјћјњћљњњћћўљ§§ўњ§§њ§ўњ§њ§ћљћћујћљћљњњћ§ћћ§ћњїљїљћ§ћћљњњ§§њ§§њўњћўњљљ§§ѕўћњљјћљљћљћћѕ§ћћњјјњћњјњњіїјћћљћјљј§§њћљћљљ§§њћ§ѓљћљ§§ўў§§ћјљћћ§ўљћћўњћћњѕљћјїїћћљћљ§§ьўњ§§ўњ§њјљ§ћљћљћ§§њ§§ћў§іњ§§њў§њћћ§§§ћњїїѓјћљћ§њ§§љћћљћћљ§љэњ§њњ§ћ§љњ§њ§§ўў§љљћћ§љњўў§ћјљћћљћ§ћљљњјњњћљћћќјњљ§§іћўњ§§ў§§њ§§мњ§ћњњћўў§§ћћњљњћўў§њ§ћјњјњњјћћ§њ§ћћјјњўћ§ §њєљћћ§љћ§њ§§ћњњїћ§§њ§§њ§љљ§ћ§ўў§§ўїћўўћњ§§њ§§јњ§§ћ§§ў§§ў§љэјњћћ§§њћћљ§§љјјљ§њ§§эћў§ћўў§§љњћў§љћљљ§ћћ§њ ў§љњ§§ћњ§ўћ§§ђњ§њ§њњ§ћљ§§ћј§§њћљњ§љћћѓљњњ§§љљћј§ўў§§ўўћўў§сћљћ§ћћњ§ћљћјћљ§њћљћћ§њћњјєїїјћ§§ѕљ§љћ§њњ§§њ§§ќњ§ћљљў§ўўѓњљљћљ§ў§њ§ўћ§§яњ§§њћјјћћјњћљћљљћћ№љћњњ§ўўњ§ћћњјњљ§§іћљљ§§ћћўњўў§ў§§ћљљѓњјњњћ§њњљњїљ§§ћюј§§ћ§§ў§§ћњљ§ў§љћ§§ўў§ўў§ќњј§ћћќљћљћћѓљћљљ§њ§љљћћњјјїљ§њћћјћћ§§њў§њэћ§њўњњўћ§ћљ§њ§§љћљћћ№њ§љљњјјњљњњ§њњ§ћћ§љљћљљ§ўњњќљњљћћљњћћ§њ§ўўјњўўљљ§њўўўњ§§ќњ§ћљљў§ўўѓњ§§њ§§ћћњўўћўў§§љћћўљ§§ў§§њ§ўўњ§ўўњ§ўўќћўў§§ўў§§љў§§ћ§ў§§ўћ§§љћћ§ўћўўњїўћўўњ§њ§ўў§ў§ћў§§ўњћњњљћњњўјћћљљћ§ћљјљљєћњћ§њњ§§њ§§ўўўћўўќ§њ§ћ§ќў§ћњњє§ћўћћњћњ§ћ§ћћњ§ќў§ў§§ћ§њћњњћьњјњњљњњћњ§ћ§ћ§ћ§ћ§ћ§§ўњћћёњћћњ§ћћљњњљћњњћћ§њћ§§ўћ§§ћњ§ћћњњљњ§љњћћ§њрћњћњћњћ§§ћћњ§њ§ћ§ћћљњњћњћњћњћњљћћ§ўњћћюњћњљљњћћњћњћ§§њћћњњэљњћњћњћћњљљњ§ћ§ћ§ћњњўћ§§ћяњћњ§ћ§ћњњ§њљњћњћњњњ§ћњћњћћіњћћ§ћ§ћ§ћњњћ§ћњьћњћћ§ћ§ћћњњ§ћћ§ћ§њњћћћњ§ћ§ћћў§њњђћњћњћњћ§ћњ§ўўћћћў§ўћ§§ўњ§§ўћњњћ§§ћ§§јћ§ћ§ћ§њћћљњћњћћ§њњѓћњћњћњ§ћ§њњћњњъћњњћћњљћћ§ћ§ћ§ћ§ћћ§њњ§§§ћ§ћћњњљћћњ§§шњћњћњћћњћњњћњћњћћ§ћњћћњћћќњљњћћэњћ§§ћ§§њћћњћњћ§§ћћљљћљъњћћњћћ§ћћљњњљњљњћњћњћљљљњљњњћћњњї§ћ§ћ§ћ§§ўўћјњћћњњћњћћќњљљћћњњ§њћћњњўљњњіљјљљњћњћњћћзњљљњ§ћћњ§ћўў§ћ§ћ§њ§ћ§ћ§ћ§ћ§ћћљњљњњћњћ§ћњћћћњ§ћ§ћћњцљњњљљњћњћћњљњљўў§ћ§њ§§ћљњљљњњ§§ћ§ћћѕ§ћ§ћћњљњћћ§§њћњљћњћћњћ§њћњњъљћ§ћ§ћ§ћ§њћњњљљћњњ§ћўћћњћјњћњћњћћљљѓњћњћљљњљњћњћњњћѕ§ћ§§ўћ§ћ§њћћю§ћў§ў§ўў§ћ§ћ§ћ§ћ§њњ§ѓњћћњњћћ§њћњљјј§љњћћ§њљњњћљ§ћњњћњ§§ўћўў§їћ§§ўћ§ў§ћћ§§ћў§§њЫћљњљњњћњљћћњћњ§ћ§њћћњњљћљњћ§§ћ§ћўњњћњњ§ћ§ћ§ћћњ§њћћ§ћ§§їћ§ћћњ§§ћјјњїјјњњ§§ўњљљўјљљїјњљљњ§ћў§§їњћљњњ§њћњњћ№§њњ§њњљњљљњћњћ§њњљњјљёњљћњњћљњљћћ§ћ§њњћљ§ћћњћћ§§ўњћћљњсћњћњ§њћћ§ћ§ћћњњћћњћњћњћњћћ§ћ§ћ§§ќћљњћћцњћњ§ћў§§ћћњћњњљћћњњљљћњћћњњя§ћ§ћ§њћњћљљњљњћљњњљћћ§ћ§ћћў§ћћ№§ћ§ћ§ћ§ћћњћћ§њћњњѕћњћњћњћњњјљљњљћњ§њњљњњљљћљљњљјјўљњњч§њљњћћ§ўўћ§ћћ§ћћ§ћ§ћћњ§ћ§§ќћ§ћ§§ћіњљљћњћњњљњњјљјјљљњљњњњљњњћћўў§§ў§ћћѕ§ћ§ћўћћљћћ§§њћўњљљјњћњћљљњћћ§њћњњёљјљљћњ§ћћњњћ§§ўўћ§њћњњћ§ћќ§ћ§ћћј§њњљњњћњњўљњњёћњљљћњћњљљћћњњљљќњљљ§§ќћ§ћ§§ћњћўњћћќњћњ§§ћјњћ§§ћљњћћі§ћћњћљњјјљљњїљјљњћњћњўўѓћ§ћ§њћћњћ§ћ§ћћѓ§ћћњљљњњ§ћ§њ§§њљўњљљјљћјћћљћћ§§ћњњбћњћћ§ћ§ћ§ћ§ћ§ћ§њћњћњ§њћљљњ§њњјљљћћ§ћљњћњћљњљјљњњљљїјњњћњњљљјљјљћњ§§њћ§ћ§ћ§§§ћ§ћћ§њўћ§ћ§ћћѓ§њњћњљћњљљњјљљњўљњњќљћњћћўў§§њћњћс§ћ§ћ§ћў§§њ§ћњћ§ћћњњљњљћњћћњњћњћћ№њћњњљљјљљњљњљ§ћњњѕћ§ћ§ћ§ћ§ћ§ћћ§лњћ§њ§ћ§§ћљљћћ§њљћњћњў§ў§§ћћњћћ§ћ§њћњћћєњћњћњўў§ћ§њ§§ђћўўћњћњћћ§њљњћћћњјњљћћѕњљћњљјљљњљњњ§рћљљњњћњ§ћ§ћ§љ§§ўћ§ћ§ћљњћњћћ§њћњ§§§ћ§њњќљњњљљњіљћљљњљњњћњњћэљњћ§ћћњћњљјњљњњћ§ћ§§щћ§§ў§ў§ўћўў§њћњћћњљљњљњњћћ§ћўћ§§ћћ§ћ§ћћћ§ћћњљљјњћљ§ћ§ўўѕћ§ћ§§ў§ў§ўћћњњљњљћњћћіњљњ§§ћњћњћћњњћњћћњћћђњ§ћњљјјљљњћў§ўўѕћўћў§ўћ§ћ§ўўњ§њ§ћ§њњљћњћњў§ћћњљїњћњћњћњјљљўћњњћў§ўўњћ§ћ§ћ§§іћ§§ўћ§ћћњћћњчљћћ§ћў§ўћ§§њњ§§ћћњњћњћњљњњ№љњњљљўў§њњљћћ§ћ§§іњћњ§ћњљљјљљ§ћњћћўњљљўћљљјяљћњћњћћ§ћ§ћњњћњћњњњћњў§ўћћ§§ўћљљыњјљњљљњћљњљњњљјљјњљјњњћљњ§ў§§љћ§ћ§ћ§ћћњљјњљљ§§ўћ§§ћўњћћѓ§ћ§њ§њћњћњћњћћњѓљјљњњљњћњљњћњњћњћћњљћњћћѓњ§ћћњћњћњћњ§ћћт§ћћ§§ћ§ћ§ћ§ћћњћњћ§ћњњљњњћњњћњћћђњћћњћњћњћћњњ§њњў§ћћіњћћ§ћ§ћ§ћ§§њяљњњћћ§њћњћњћ§ћћњћћћњ§ћћњњћѕњћћ§њњћћ§§ћћјў§§ћћњћ§§ўш§ћ§ћ§ћў§§ћћњћњћћњћњћњћ§њњљњљљњљћњ§ћћћ§њћљњњўљўў§ў§§ћ§ћћћњ§ў§ћћљ§ћћњћњћћєњ§њћњћњћћњћњњњћњњјј§§ыњ§ћ§ў§ћ§ћ§ћ§ћћњњљћўў§§їњ§§ћ§ћ§ћ§§ћњ§љћњњћљњљљњњљєўћ§ў§ћ§ћћњћњњћю§њћћ§ћћњў§§њћњћћ§ўўќ§њћњњюћњњћћњљљњњљњћљњњћљљњтўћ§§ў§§њ§ћ§њљњћћ§ћ§§ћљњњљљћњћњњ§ёў§§ћћњћћ§ћ§ћњњљљњњћњ§њћћјљњњ§ћўћ§§№ћ§ћ§ћ§ћћњћћ§ћ§њћћњњљћћњћћўњљљ№јљљњњ§ўў§§ћћњћњћћњћњ§ўњўўќћў§ўў§№ћ§ћ§ћ§§ћњћњ§њњјљљњјїэљћћ§ћћ§ў§њњљћћњ§њњћћёњћ§§њњ§ћ§§ўћў§ўўўћњњљьњљљњћњ§ћњљћћ§ћ§њћњњћћњѕћ§§њћњћћ§ћ§§ќћ§ћ§§§ћ§ўўќ§ўў§§љњћњћњћњњяћњћљљњ§ўўћћљљјљјћћњњћ§§ћ§§ћћ§ћ§ўў§ћўѕ§ћњњћћњћћњћћњыљњљњљњљљњћњћњњћ§ћ§ћ§ћћћўћ§ћ§§нњћћ§ћњћ§ћў§§ћњ§ћњћњ§ћ§ћ§ћњњћњљњћњњљљљћњњљљњћћљ§ћ§ў§ћ§§ќћљњћћ§њћ§§ќћ§њўўўћ§§ѓћ§ў§§њњ§ћ§ћ§ћћ§§њљљњёћњћ§§ћћњњћћњћњћћќ§ћ§ћћ№§ћ§§ћњ§ћ§ћ§ћ§§ўћћъњћњў§ў§ўћ§ћћњњћћњћњ§њћћќњљљћћюњћњћњљћ§ћ§ўў§§ћўћ§§эћ§ћ§ћћљљњўў§ћћњљћ§ўў§њѕљњљљњћњћ§§њњљћё§ћ§ћ§ћ§ћ§ћ§§ћњћћўњ§§іћњљњљњљњћ§§§ћ§ћћъ§ћ§њћњ§ћ§ћ§ћ§ў§ћ§ћ§ћ§ўўь§ў§§ћ§ћ§ћ§ћ§њћћўћ§ћўў§ћлњљњћћ§§њњћћ§ћњњћћ§ћ§ћўў§ўў§§ћў§ўў§ћњћћњћљ§ћ§§ў§ўўъ§ў§ў§ћ§§ћћ§§ўўћ§ћ§ћ§ћ§§ѕћњћ§ћњ§§ћ§ћћъ§ћћњћњћ§§ћ§ћћњ§ћўў§ћ§ўўў§ўў§пњћњ§њћ§§њћњ§њћћ§њћњњћ§њљњћљљњњћ§ћћ§ўњ§§ўћ§§ћћ§ћ§ћћ§ўѓ§ћћњћћўћ§ћўў§§љћ§ћ§§ћњњћљњћњћћњћ§ьћў§§ћњњљњљћ§ћ§њћћ§ћўўі§ў§ўў§ћ§ћўў§§њћћњљњљљњ§§цћљњћћ§ћ§ћ§ћћњ§ћ§њ§ћўћћњ§ћ§§љћњћ§ћў§§єў§§ћ§ћ§ћ§§ћњњѕћњћњћњћњћћ§§ћќњћљњњ№ћ§§ћњ§њћћ§ћ§§ў§ўўўћ§§ћўј§њћћ§ћ§ћћњ§ћњљњњљћ§§ћќњћњ§§§ћ§ћћўў§§фў§ћњћњљњћћ§ћў§ў§ўўћћ§§ў§ў§§ћћ§§ћ§§ўњћћў§іћ§ћ§њњ§ў§ўў§ћўњњѕўћ§ћў§§ћ§ћўў§ўў§§ўї§ў§ўћ§ћўћћљ§ћўћ§њ§§њћ§ћў§ўўѕ§ћћњћњ§ћ§ћўў§ў§ќћ§ћўўы§ћў§ў§ў§§ћ§§ўў§§ћњљљњњћўњћћќњ§њ§§ўћ§§ќћў§ўўњ§ў§ўў§§ўў§ўўћ§іў§ўћ§ћ§§ў§§јњћњ§§ў§ўў§їўћ§ћ§ћ§ћ§§эћ§ћўњћњћћ§ћ§§ў§ў§ў§§ќў§ў§§щћ§ћўћ§§ўћћњўћўћўћ§ћ§ћў§§ќў§ў§§щўћ§њўћћњ§њћњ§ћў§ў§§ћ§ћ§§ќў§ў§§хў§§ћў§§ћ§ћ§ћ§ћ§ћ§ћў§ў§§ћ§ћ§§§ћ§ћћє§ћ§ћ§ћў§§ћ§ћћ№ўћ§ћ§ћ§њўћ§§ў§ў§§їў§§ўў§§ћ§§ўў§§єћ§ћ§ћ§ћўњ§ћ§§ѓћўћ§ћ§ћў§ў§ў§§юћў§§ћ§ћ§ћ§ћў§ў§ўћ§§ћћў§ў§§ўћ§§ћћ§§ў§§ќњўћ§§єћ§ћ§ћ§§ўў§§ўў§§ў§§њў§ўћ§ћћ§ў§ўў§ѓў§ў§§ћ§ћ§ћ§ћ§§ќћ§ћ§§ў§ўўћћ§эў§§ћ§§ўћў§ў§ў§ў§§ћ§§јў§ў§ўў§ћћўў§§њћ§ћ§ћ§§ўћ§§іћў§ў§ў§§ћ§§шћ§ћўћ§§ў§ў§ў§ўћ§ћ§ћ§§ў§ћћћ§ћўћ§§љћў§ўћўћћєўћ§ћ§ћ§ћўћўћћ§§ћ§§§њў§§љў§ў§ў§ўў§ѕћ§ћўћ§ћ§ћ§ћћ§§ћ§§ћфњўћћњћњ§ћћ§§ћ§ћ§ћ§ћ§ћћ§ўћ§§ўў§§ў§§яў§ў§ў§ў§ўћўћћњ§ћ§§ђћ§ћ§§ў§§ћ§ћ§њћћўўћћљ§ћ§ћћњўўќ§ўћ§§ћѕњћљњњў§ў§ў§§њў§§ћ§ћћѓў§ў§§њћ§§ћ§ћ§§ќћ§ћ§§ћќњ§§ћћ§іў§ў§ў§§ћўћћ§љў§§ћ§ћ§§ќћ§ћ§§ћћ§ћ§ћћќўћўћћўўћћ§§ћ§§јњ§ћў§ў§ўўі§ў§§ћ§ћў§ўўї§ў§ў§ў§ў§§№ў§§ћ§ћ§ћў§§ћўњ§њњћ§№ћўћ§ћў§ў§§ћ§ўў§ўўќ§ў§ўўђ§ў§ўћ§§ў§ў§ў§ўў§јўћўћў§§ћћ§їћ§§ў§§ћ§ћћћўћ§§ўў§љў§ў§ўћ§§шћ§§ў§ў§ў§ўћ§§ўћњљћљћљћњ§§єў§§ћћњ§њ§њ§њњћ§њў§ўў§§ў§§ўў§§ўћ§§ћћўћў§§њћ§ћўћ§§ћћ§ћўћћі§ћњњ§њ§њ§ћћ§ћњўћ§§ў§§њћ§§ћў§§ьћў§ў§§ћ§ћўћ§њћњўћ§ћ§§ѓћ§§ў§ўћ§ћўћ§ћћч§ћ§ћ§§ў§ў§ў§ўћў§§ћўћ§ћ§§ўўѕ§ўћ§ћ§њћћ§ћћю§ћ§§ћћ§§ў§ў§§ћ§ћўћћўњћћѕ§ћ§§ў§ўћў§ўў№§ў§ў§ў§ўћ§ћ§ћ§ћ§§ѓћ§ћ§ћ§ћ§ћ§њ§ћћ§§ћ§§ќћ§§ћћяўћ§љћљњћћњў§ўћ§ћўўъ§ўћ§§ў§ў§ўћ§§ў§ў§ў§ў§ўў§ћ§ћћіўћўњўћћњ§њњћљњўћћњўћћўы§ў§ўћў§ў§ў§ў§ћћў§ў§ў§§ўћ§§ўўћћўўћћљ§ћ§ћ§ћ§§ђћ§њћћ§§ўћўћ§§ўў§їў§§ћў§ў§ўўќ§ў§ўўѓ§ўћњћ§§ўњћћў§§љћ§ћўћ§ћћщ§ћћњ§њћћў§ў§ў§ў§ў§ў§ўћ§§љћ§§ћ§ў§§ћў§ўћ§§ьў§ћћ§ћў§ўћ§ћћњ§њњћ§ћћјњћ§ћ§ћ§ўў§§ў§§њў§ў§ў§§љћў§ў§ўћћ§ўў§§їў§§ћњњ§ћ§§ћњ§њ§њњќ§њњћћэ§ћў§ўњўћ§ћ§§ў§ў§ў§ўў§§ў§§ћћў§§ћћёў§ћћ§њ§§ў§§ћћ§ћћћњћњўћћњ§љњћ§ћћљ§њњ§њћ§§ыў§ў§ў§ў§ў§ў§ў§ў§ўћў§ўў§§ў§§ўўћћшњћўћћњћњћ§ћњўњўћ§ћ§ћў§ў§§їўћў§ў§ў§ўў§№ў§ўћ§§ћњўћ§ћ§§ў§§яћ§ћ§њћњ§њћњ§њ§§ў§§ўј§ў§ў§ў§ўў§іў§ў§ўћ§ћ§ћћ§ў§ыћў§ў§§ћ§ћ§ћ§ћ§ћ§ўў§ў§§ў№§ћ§ћў§§ћ§ўўћўњ§ћћ§ћі§њ§ћўћўћћ§§ќў§§ћћ§љў§ў§ў§ўўћ§ў§§ћћ§ўў§§ќў§ў§§ћўўћћѕўћ§ћћњћ§§ћ§§§ћўћћ§іўћ§ћўњћћў§§ў§§ў§ўў§іћ§ћ§ћўћўћ§§§ў§ўўэ§ў§ў§ў§§ћў§ўћћњ§љћњњћћ§ў§ўўќ§ў§ўўѓ§ў§§ћўњћћ§ћ§ћћ§ќћ§ћ§§ѕћ§§ў§ўћ§ћў§§їћ§њћњ§ћ§ў ўќ§ў§ўў§љў§§ћћњ§§јў§ўћў§ўћћјў§§ћ§ћўњњќўћў§§љў§§ћ§§ўўі§ў§ў§ў§ў§ўўќ§ўћ§§іћўћћњўћ§§ўў§љћ§ћ§ћўћћ§ўўћћкњўћћўў§§ћ§§ў§ў§ў§§ћ§§ў§ћћњњ§њћћ§ћўћ§њћћјњ§љћњўћ§§ћћ§§ў§§ўћ§§ћњћћ§ўўќћ§§ўўѓ§ў§ўћћњћћўњ§ћћў§ћћњўњћњћњњќ§њўћћєўћў§ў§ў§ў§ў§§цўњ§њћ§ў§ў§ў§ў§ў§§ћ§ћўћў§ў§§ећ§ћ§ћ§ћ§ћ§њ§њћћўћўћ§ћ§ћ§њўћ§§ў§§ћћ§§ћ§ћ§§ў§§јћ§§ў§ў§ўўъ§ў§ў§ў§ўћ§ћ§ћў§§ћћњ§ћ§§яў§§ћўћћ§§ћ§ћ§ћ§ћ§§ўш§ћ§ћў§ў§ў§ў§ў§ў§§њ§§ўћў§§єћ§ћўћўћ§ћ§ћ§§ћќўћ§ћћўў§§љў§ў§§ћўўј§ўћ§ћў§ўўњ§ў§ў§ўў§њўћ§ћў§§ўў§§ћ§њў§§єўћў§§ћћ§§ћћўўќ§ў§ўў§ўќ§ўћ§§§ў§ўў§љћ§ћ§ћў§§ўћ§§јў§ўњ§§ў§§ўђ§ў§ў§ў§ўћ§њћћўўј§ў§ў§ў§ўўћ§ў§ў§§іўћўћћ§§ћўћћќ§ћўћћўѕ§ў§ў§ўћ§ћўћћєў§§ћ§§ўћ§§ў§§ќћў§ўў§њћўњ§ћ§§ёћ§ћњћўћ§§ћћ§§ћњњћћўў§ўў§їў§§ћўћўў§§ћљњўћћ§§ћћњў§§ўў§§њў§ў§ў§§ўўћћ§ўћ§§§ћўћћ§ў§ўўї§ў§ў§ў§ў§§ў§§ћ§ћћяўћ§ћ§ћћњ§њ§њ§ћ§§ўўђ§ўћ§ћ§ћўћ§ћ§ћ§§ќў§§ў ўі§ў§ў§ўћ§ћ§§њя§ћћњўћњљњњ§ћ§§ўћўўъ§ўћўћ§§ћћўћ§§ў§ў§ў§ў§ўў§јћ§њ§њўћ§§ћи§ў§ў§§ћўћ§ћ§§ћњ§ћў§§ћ§ћў§ў§ў§ў§ў§ў§ў§ў§ўўь§ў§§ћ§ћ§ћ§ћ§§ўћўћ§§ўўћьњ§њ§ћўћ§§ў§ў§ў§ў§ў§ўўќ§ў§ўўќ§ўћ§§јћ§ћўћ§њћћі§ўћћњћњћћ§§чћ§§ў§ў§ўћ§ћ§§ў§ў§ў§§ћў§ў§§ў§§ў§§љћ§§ў§ў§§јћ§ћўћ§§ћћмўћ§њ§ћ§ћ§§ў§ў§ў§ў§ўћўћўћ§ћ§§ў§ў§ў§§ўўї§ў§ў§ў§ў§§ћў§ў§ўў§ђћ§њ§њ§ћ§ўў§ўћ§§ьћ§ћ§ћ§ћў§ў§§ћ§§ў§ўў§§ўў§ўў§ћћ§ћ§ўўќ§ўћ§§ўћ§§ѓћ§§ћћўћ§ћ§ћ§ћћ§§ў§ўўў§ўўї§ў§ў§ў§ўћћѕ§ўў§ўћ§ћў§ўўњ§ў§§њћћќ§ўў§§ћяўћўћўћў§ў§ў§ў§ў§ўўћћ§ћў§§еў§ў§ўњћњћ§ў§ў§ў§ў§§ћў§ў§§ћ§§ў§ў§ў§ў§ў§ў§ў§ўўњ§ў§ў§ўў§ўў§ўў§ћњ§ћў§ў§§ѕў§ўћў§ў§ў§ўўў§ўўќ§ў§ўў§љў§§ћў§ў ўќ§ў§ўўў§ўўё§ў§ў§ў§ў§ў§ў§ў§§ўў§§§ў§ўўёћ§ўўћ§ћў§ў§ў§ў§§ўќ§ў§ўў§§ћў§§цў§§ћўў§ћў§ў§§ћўћ§њў§ў§ў§ў§§яў§ў§ў§ў§ў§ўћ§ћ§§ўў§ў§ёў§ў§ўћўћ§§ўћ§ћ§§ўћ§§ќћў§ўўѕ§ў§§ћўћ§§ў§§ўќ§ў§ўў§§ћўћћ§юў§§ћў§ў§ў§ў§ўћ§§ў§§ў§љў§ў§ў§ўўў§ўўі§ў§ў§ўў§ў§§ќћ§ћ§§ёў§§ћ§ћўћўћ§§ўћ§§њћў§ў§ўўњ§ў§ўћўўі§ў§ў§ў§§ћ§§ўў§§ўўћћ§їў§ў§ўћ§ћ§§љў§§ћў§ўўє§ўћ§ћ§ћ§ћў§ўўќћ§§ўўў§ўўі§ў§ў§§ћўћўў§ќў§ў§§ ў§ўў§ўўќ§ў§ўўў§ўўў§ўўў§ўўў§ўў§ћў§ў§ўў§јћ§ћ§§ў§ў ўќ§ў§ўўў§ўўќ§ў§ўўэ§ўћ§ћћњћ§ў§§ћўћўћ§ћћ§љў§ў§ў§ў ўќ§ў§ў§ўћњњљљїѕїњљћћ§їњљљѕїј§љћћіљјїјћћљћљ§§ўћ§њ§§ўў§ўљћўљћћїљњњ§њ§њљўўъћњћћњљїѓєљ§љљњјњѕјљ§њў ўё§ћљњћћљјњњћљћћ§§ўњ§§ќњ§ћљљћѓљњљєѕяяёїљћћњњћљ§њћўўѕћўћўў§њљўћўўўњ§§ћњљќћ§§ћ ћэјїєѓѕјѕєїћ§§ўћўўћћўў§ћ§ўћўўђћўљћњјњљ§ўўњў§§чњўў§§љћњњљњ§ћїњњјњћљћћ§њ§§ќњћўњњљ§љ§њ§ў§§ўћ§§ўѕјњћљљћљћ§§њњњљ§љјљ§§љіћјјїјјљљ§ўў§§ћљћћ§љ§ўў§ўљћћцјљ§ўћ§ћњћћјњјњћћ§ћ§љћћљ§њ§§ќњ§ћјјќћ§§ўў§ўўћўўћњ§њ§ћћћљћјјћћяљ§ћјњћ§њ§ћљћћњњћљљ§ћ§ћћ§њњ§§њ§ўўёњ§ћљњњ§ћћљћ§§ћўўћ§њњјњњїјњћћљњћћ§§ћ§њћљћ§ў§§ђћњўњњ§њњ§§љ§њ§§ўќћјјїїјћўљћћі§њћј§њњ§љ§§ўўћўў§ѕњўћўћћњўў§ўўѓ§ћљ§§ўўњўў§ћјјіљјјљјћ§§ћњњєћњћћ§§њњ§ўћ§§ў§ўћўўћў§їњ§ћћњїјјћћў§ћћўљћћњђљјћћњњљјњјјѕ§ў ў§ћњ§§§ўћўўњћњћ§ьљћњјїљїїљїњљњ§ћјњјљ§§їњ§ћћњћ§§ў ў§њћњ§ўљњњћљљћјљљћ§§юњїїѕјљљћјљћ§њ§ћљљћћјњјљ§§ўћњњйћўўћћўўњљћћљњјњњїїљїњћ§ћљћћ§њ§§љћћљљћћљљўћ§§ўљћћўљћћ§ћћ§љљћ§§ќћ§§ўўўњћћјьњјјћ§љјћћљћ§§њћћљљњ§§ђњ§§њ§§ўћћў§§њ§§ўў§§ќњ§§ўў§њ§їљњ§ћљљћљћћїљїјѕїјјћ§§љјцїљљњљ§ћћњ§њљїјћ§§љћћ§јћћ§ўў§ћўњћћћјїљјњњћ§њ§јјэѕњњјїјћњ§њ§њ§ћћњ§§ћћёњјњјљ§ћўўћў§њ§њњї§љљћљљћћњњјљјћјјћљњјћћљ§њјћћіљјјњњўў§§ўў§ћњ§њљўў§ўљ§§ѓњ§ћ§§ћ§њјњћћ§§єћљћ§§њ§ўў§§ўўћћњњћ§§љњ§њћў§ўўќћ§ћўўіћўўћћјљћљћћхљћћ§њћњјљћћњ§ћћљћ§§љћћљћњ§љљіћ§ўћўў§њ§ў ўўјѕѕљїљњћјњћћјљїїѕѕїјћћѕјљћћљћјјћћ§§ў§њњљј§§ўў§§ўћўў§Шњїјѕђїћћљћњ§љљћљћћјћјјњњјњјљј§ћјљћћљљћњњћљњ§њ§§њ§§ћћњ§§ћћ§ўђћ§љњїїљјњњљјљ§§јњ§љјњћћ§§§ћў§§ўњўўїћўћўўћў§ћћ§ёњ§§њ§ћўў§јѕљїїѕѕїјљѕјћ§ћљ§§§ћјњњјћўњўў§ўќњ§§ўўќњ§§ўўоћўў§§њјњјїїљѕєјѕїїњјљ§§ћњѕїјћњњљљћћъњћљ§њ§§ўўћ§§ћ§њћ§§ћњ§ўўь§њ§§ћ§њ§їјћћњћљњјјњјјїољјћћјњњјљћљљњ§§њћўў§§њ§§њ§њњўў§њњ§§лћљњћ§§њ§њ§§ћњїјљљїљјїљјћљ§§ћћљљћњњїљ§§њўўћўў§ўћўўѕћ§§ћљћћљљћ§§щњєѓѓєѕљјљїѕѕљїјљ§ћњњјњљљјіњћ§њ§§њўћўўћўЯ§њ§ћљ§§ў§њўў§§ўњ§§љћѓєѓєїњњїїѕѕјѕѓёєѕѕїјћљ§§ћњњћ§§ўљћћљ§ћљћјљћћў§ў ўяљѕїєїјїњњћњјњљїїљљњѕїљњљ§§њ§љћ§§љњ§њ§њ§ўў§јљўўћўўћўў§ћўћћћјњјњћћљњћћљјѕєєњѕїљјљ§§ўѕњ§ўў§ўћў§§ўў§ќљћљ§§ўћѕ§њћњїљїѕїљјјїњљћњјњњћ§§љўћњ§њљњњъ§љјћ§§њњ§њ§§њ§њљћћњјћ§§ќўјњїїјјћћњљњјњњўјїїёј§ў§їїјљљћљњјћ§§ў§ўњ§§ўќ§ћјїїљќњћјњњћ§ўђњљљћћ§§ўўњњљћ§§ўћ§њ§ў§§ўў§ћћъ§њ§§њљћћјјњјїєљїљїјљћљљњљћќњ§§ўў§ўњ§§зћјћћ§§ћљїѕїјњ§§ћ§§ћљћћљљњјїїѕјћљћ§§ўўћўћўўўћўў§ћїљћњњў§ћњўўѕ§њћљљј§љјјњњыљїљїњћћ§ў§њњљњўў§§ўћўўъћў§јљњњ§њ§ўўњћћњњ§§ўћўўўћ§§ањ§љљњћ§§ћљљћћјїљњїњњћ§§њћљћћњ§њўў§њљ§ѕљћ§§ћњ§њ§ўў§ёњ§§њ§љљјћ§§ћўўћћїљћћњјїњјћћєљћ§ћ§њћ§ўўћўў§ўњўўњћўў§ћ§§ўў§ўў§ў§єў§§њѕїїѕњјјћћјђћјїњјћ§њ§ўў§њ§§§њ§ўў§ќњ§ћўў§§њ§§ћўћћў§§њј§ћїјјќћ§§ћћэ§ћњјћњћѕљћљ§§ўў§њ§ўўўњўўўћўўўћўўљ§ћћљћ§ўў§њњјњјљћћќ§ћћјј§њ§ўўђћўўњћљћ§ўў§љ§ўўўћўў§ўљ§§ћњ§§њ§§ћњ§§љњњјіћ§§њ§ўў§њ§§ўњў ўќ§њњўўўњ§§ўєћў§§ў§§ўў§ћјјћўњ§§ў§ ўјљњ§њ§ў§јјљћ§њюљ§ўўћћўўњћњјљњљ§њўў§ўўћўўљѓјћћњћў§§њ§§њ§§ќў§ћ§§ёљїјћћ§њўњћљ§§ћўўћњ§ўўћћј§ўў§§њњ§§ўћўў§§љ§§§їњўўћћўў§ћћўўћўўўћўў§№њјїїњљћћ§ўњћ§њ§ўў№њћљљ§§ўў§њ§љћњ§ћћў№ћўћ§њўћћўћў§њўў§§іњ§ћ§љћћ§ў§§ѓњјљћњћњ§њўћћўўћћ§§њўўќћўћўў§§њўўћўќћўўћћќўћ§ўў№њ§§ўўћћјјљћ§њўњў ўўћў ўљћўћўњњўўўћўўўћўўўћўў§љљ§ћ§њњўўњ§љј§§њњўћўўћў§ћўћћўњћћ§ўњ§ћћњћўўўћўўј§њ§§њўњўўђћўћўўњњ§ў§њњ§ўўўњўўўћўўњћ§њ§њ§§ќњћљћћ§љљћ§љљћ§ўў§ўўћўўќћўћў ў§ўњў ўўћ§§§љћ§§ўњў§ћћњљ§ўўњћњњљ§ўўћћњ§§ўўњ§љ§ћ§ћћўњ§ћ§њћўўљћўўћћўћћўќћўўњњљћўћўўњў ў§ьўћўў§ўў§њћљћњћўћ§њ§ўўћћўћћўўўћўў§§њўўћћњјљўўљњњўўњћўўјћў§§љ§§ўў§§ўћўўћўўњ§§ћ§јњўў§ўћ§њћј§§ўћўўіњљјљ§њўўћўўўћў ўўћ§§ћ§њы§ћњ§§њ§§љћ§ўўћћўўћўћ§§ўћєў§њ§ћўўњўћ§ўўњћ§љўћўў§ўњўўќћўћўўћњљћ§ўўхћњ§ћљ§ћћў§§њњћ§ћћў§ћўў§§њ§ўўћћўўљўўўћўўћћў§њћћ№ў§§љћ§§ўўћ§§њњ§ўўўћў ўќ§њћ§§ќњ§§ў ўўћўўёћўўћўћў§§ћў§§њўўўћўў§ђњ§§ћ§њўўћћўўћўўўћўўўћў ўѓ§ўўћњї§ў§љњњљљћњўўћўўћўўњ§ќ§ћћљљђјљњљњћћњћњћњћњњщ§ћ§§ћјјљњћўњћњјїљњћњћњћћёў§ўћ§ћ§§ў§§ћў§ћћіњћњћњћњћћ§§ћў§ў§ўўъ§ћњљјѕїљћ§ћћљњљњњћћ§§ўўњ§ў§ў§ўўћєјљњњћњљњњћњћћ§ўћ§§ўњћћёњћћљјїєђюѓѕјњћљљћў§ўў§§ў§ўў§ућ§ћ§њћњћњњљћћњћ§њћњћњћњћњћњћњњєљјѕєїјјљћћ§ўўѕ§ў§§ћћњ§ћ§ўўо§ћњљњљћћўў§ўћ§ћ§ўўћ§ћњљљћ§ћћњљљњљћћўњ§§ћћ§§ў§§ћњ§ћўћ§ћћї§ћў§ў§њљћћњњћњ§ћ§§ѕў§ћњћ§ћ§ћ§ћћњљљњњћћ§ўў§іћњћћњћћ§§ўўзћ§ћћњћњ§ћ§§њћћљћњњљњљњњ§ў§ћћњћћ§ћ§ћ§ћ§ћћњњ§§ћўўћў§ўўў§ўўі§ўў§ћ§ћњњћћњ§ћњћћќњљњ§§јњћњњљљњћћєњ§њћњћњ§ћ§ћ§§ўћ§ћњћ§§љњћћњћ§ўўьћљљњљњљњљњњљњћћљњњћ§§ћъњћћ§њћњ§ў§ћ§ћ§ћњ§ў§§ћ§§ћя§ћ§ћ§ћ§ћў§ў§ўўњњљљњћјњћњ§§ћћ§§ћѕ§ћ§ћў§ў§ў§ўўў§ўў№§ў§§ћ§§ў§ўў§§ўћўўє§њћћ§ўў§ўў§њњіћњњјњњ§ћћљљљћ§ћњ§ћ§§ўўћћњ§ћ§§ўћћ§ў§ўўј§ў§ўў§ћ§§њ§љћњњўћњњћ§њћњћћьњћљљјњњћљљћњљњ§§ћў§ўўє§ў§ў§ў§§ћ§§ўўќ§ўўљљжњћњњљњњћћ§ўњљњљјљљјћљћ§§њњљњћ§ћ§ћ§§ўў§њћћўўў§ўўѕ§ў§ўўћ§§ћћ§§ўћљљњћю§ћћњћ§ћ§ћ§ћ§§ћљњњћћьњћњ§§ћњћћњњћљњћ§ћўў§§ўў§ўў§ћћњћ§њљљќјљљћћњ§ћўњћћўњћћѕ§ћ§ћ§ћ§ћћњћћюњћњ§ћћњ§ћћњ§ћ§њћћўўј§ћњћњњљњњћіњћњћњ§ћ§њћћ§єћ§ћ§ћ§ћ§ћ§ћ§§ўћўўё§ћ§ћ§ћўћ§ћ§ћ§§ўўќћ§ћ§§эћў§§њћћњћћњћњћњњљљњњњ§ћ§ћћњњћ№ў§ўћњњ§ћ§ћћњћћ§ўў§њ§хў§ўћ§њћњћљњњћњњљјњљљњњћ§§ћњњљћњљњћ§§њ§јћњњћљњљ§§ў§§ў§§ћњњћћњњљљњћњћўљњњћўљњњћ§љў§§ћў§ўў§ћ§№ў§ў§§ћў§§ћ§ћ§ћ§ћћђ§ў§љњљћњ§ћ§ћњћћ§ќўћ§ўў§њў§ћ§ћ§§ў§ўњћў§ў§ўўњї§ћњћћњћњћћчњ§§ћљњћћњ§ћњњћњ§ћћњњћњ§§ћћќњ§§ўўњћ§ћў§ўўђ§ў§ў§ўўњљњљљјњњќљњњћћљљјјљњћњњћ§њћњњяћњ§ћ§§ў§ўћ§§ћ§§ћўўњћ§§ў§ўў§ѓћљљїјљљћњћњ§ћћќњћћњњљѕњљњћ§ћћњћњћћіњ§§ўў§ћ§ћ§§ћёњ§ћ§њћњ§ћў§ўћћљљђјњљљјњћћ§ћ§ћћњњћя§ћў§§ћ§ћ§ћ§§ў§ў§ўў§јњћњћћ§ћ§§ќћ§ћўўљћњљјљљјјљњћќ§њњљљњј§ў§ўў§ћўў§ўћўўќ§ћћўў§ўћњњљјїўјљљѓњћ§ћћљњљњњ§§ћћхњћњљњћћ§ћ§§ўў§ћњћ§њ§ћў§§ўў§§ћњ§ћљњћњњ§ћљњњљїјњњћњњљњћћ§іћ§ўў§§ћ§ћ§§ўўћ§§јћ§њћљћћ§§ћљфїјјљјњљјњћћ§ћћњћћњљљњћћ§ћ§ћ§§§ў§ўўю§ў§§ћў§ў§ў§ўћ§њћњћћьњ§ћ§§љѕѕїјјњјљљјјљњћћљ§њљћћњ§љњ§§јћ§§ў§ў§ўўќ§ўў§§ќњћћ§§ёў§§ћў§§ћћњѕѓѕїљљјцїјїјїјјљњћћ§ћњљљњћћ§ћ§ћ§ћњњћњњ§ћњћњњћ§ўў§ўўў§ўўјћѕїѕїљљјњљњљјљљјјїњљјљћћ§ћ§§ћэ§ћ§ћ§ћ§ћў§ўћ§ћ§ћў§ўўќ§ў§ўўњћњћњљњњяћњћљћњћњјѕїїјљјњћћ§§ћўў§ўўћўўоћ§§ў§ў§ўћ§ћ§ћњћ§ћ§ћў§ћњ§§ћљљјљњљјњњ§љћњњєљњћ§§ўў§ћ§ћ§§њћњњ§ћ§§эћ§ћ§ћћњљњћ§§ћ§ћ§§њљљьњћњљјњњљљњњћљљњ§ў§њћћѓњћљњњ§§ћ§§ў§ўўњ§ўћ§ћ§§ќћ§ћўўњ§ўћћњљљјѓљћњњљњљћњћћ§ўўє§ћћњћћ§§ў§§ћћг§ћ§ћў§ўћ§ћўћ§ћ§ћў§ўћћњћћ§ћ§§ћњћњњљњљљјљјљњћњћћ§ћњњ§ћ§§ўўё§ў§§ћ§ћ§ћ§ћ§ћ§њњћі§њјљјљњ§§ћћэ§њћњћјјљњљћљњњћњ§ћўўў§ўўў§ўўђ§ў§ў§ўћ§ћ§њћњћћ§§њ§ўў§ћ§ўћњњљіјљјљљћњ§ў§§ўњћ§§ў§ўў§ћ§ђћ§ћўў§њњ§§ћ§§ўўљ§ўћ§ћ§ћћќљњ§ћћђњћњљјљћљљћћ§§ћћяњ§ћ§§ўћ§ў§§ћњ§ћў§§ўњћ§ћ§ћ§§ўўћћў§ўўюћњњћњњљњљљњњћњћћњћћќ§њ§ўўќћ§§ўўљ§њћћ§§ўўўћўўѓћ§ўў§§ћўћ§§јљљњљћњћљњњ§§ў§ћ§ћћ§§ћ§§ѕў§ў§ў§§ћ§ћўў§§ћ§ўўћ§ўљњњўћњњћщ§њћњ§њљњњ§њ§ћњћћ§§ўћ§ћўўў§ўўљ§њњћњћўўёћ§ћљњљњћњћњњћћњњ§ўя§њћњ§§ўћўћў§ў§ў§ўўў§ўў§јћ§ћўћ§ћ§§іћ§ћ§ћ§ћ§ћљљњўћ§§ќўћ§ћћљ§ћ§ћ§§ўўў§ўўњ§ўћ§§ўўэ§ћ§ћћўў§ўў§ћўћ§ўўћњњњћњћ§§ћћўњћ§ћў§ўўў§ўўљ§ћ§ћўћњњћњљ§ћ§§ћћўўіљњљњћ§ўћ§ўўј§ў§§ћ§§ўўў§ўўћ§ўўћњњћ§ўўћ§§њћ§ћ§ћ§§љњ§ћ§ћћњњћ§ћњћћ§ўўќ§ў§ўўў§ўўў§ўў§ўћўўњћўў§ћ§§ќћ§ћўўіћўћ§ћў§ў§ўўўћў ўў§ўўњ§ў§ў§ўўћћ§§њљљћћњћћўў§ўћўў§љњћћ§ћў§§ћћњ§§ўўў§ўўњ§ў§ў§ўўќћ§§ўўьћ§ўўћ§ћ§ћўћћњњћўћ§ћ§§ћћњљћ§§ўі§ў§ў§ўћ§§ўўћ§ўћ§ўўўћўўі§ў§ў§ћћўўњњћћњ§§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ўў§§ў§ўўў§ўўњ§ў§ў§ўўќ§ћўћћ§ўћ§§ћ§§ўќ§ў§ўўў§ўўў§ўўњѓ§њћњћћў§§њћ§ўў§јћ§§ў§ў§ўў§јћў§ў§ў§ўўё§ўћ§ћ§ћ§ћ§ћ§њћњњћў§ћћўњћћѕњћў§ў§§ћ§ћўўў§ў ўў§ўўњћ§§ў§ўўќ§ћ§ћћќ§ћ§ўў§ўў§§ћў§ћћўўј§ў§§ў§§ўўё§ўў§ћ§§ў§ў§§ћ§ћћ§њћўўї§њ§§ў§ў§ў ўќ§ў§ўў§ў§ ў§їћ§ўў§ўћў§§ћј§ў§ўћ§ћў ўў§ўўќ§ў§ўў§§ў§§§ў§ўў§ўћўўў§ўўў§ўўњћ§ў§ћўў§ћ§ўў§фћ§ћ§њњћ§§ў§§ћўў§§ћћ§ћ§ўў§ў§ўўј§ћњћћ§§ўўў§ў ўў§ўўњ§ћ§њћњњ§§ћ§§єћў§§ћ§ћ§ћњћўўќћ§ћўў§ўј§ўўћў§ў§§ўћўўі§ў§ўћ§§ў§ўў§ћњў§ўў§ћћѕ§ўў§§ћ§§ћћўўўћўўћ§ ўў§ўў§ћ§ўў§ћ§ћћ§ў§§ћ§§ўќ§ў§ўўњ§ў§ў§ўўў§ўўў§ўў§ѕњћ§ћ§ћ§ћ§§ўўќ§ў§ўўў§ўўќ§ў§ўўіћ§ўўћ§§ў§ўўђ§ў§§ћ§ћћњћ§ў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўўћўўї§ўћў§ў§§ћћ§ўў§ўў§ћћ§ўћўћћ§њ§њњї§ћ§ћ§ћ§ћ§§эў§ўћњљњћў§§ћ§њљњћћ§§ўћўўќ§ў§ўўў§ўў§ќћ§ћ§§єћ§ћ§§ў§ў§ў§ўўјћ§ћ§јњљ§§їўћћњўћў§ў ўќћ§ћ§§ќњћњ§§ўћўўљ§ў§ў§ў§§щў§§ћўћ§јљѕѓїњњ§ћўћўћў§ўўќ§ў§ўўѓ§ў§ў§§ћ§ћ§њћ§§ьў§§ћ§ћ§ћ§ћ§ћ§ћў§ўњћљљћћ§ћў§ўўј§ўћ§§ў§ўў§ќћўћўўќ§ў§ўў§ћў§ћўћћї§ћ§§ў§ў§ўўј§ў§ў§ў§ўўњ§ўћў§ўўћ§§ћ§§№ў§ў§ў§ўћў§ў§ў§ў§§њўћ§ћћ§§ўі§ў§ўћ§ћ§§ўўњ§ўћ§ћ§§ќў§ўћћў§ћћ§№ў§§ћ§ћў§ў§ў§ў§ўћћљўћўћў§ўўў§ўўѓ§ўћ§ћћњ§ћ§§ўћћђў§ў§§ћ§§ўћ§§ў§§єћ§ћ§§ў§ў§ў§ўўђ§ў§§ўў§§ћ§§ў§ўўћёњћњћњћћ§ћўћ§§ў§§њўћ§ўў§§їў§ў§ў§ў§ўў№§ў§ў§ўћў§ў§ў§ў§ўўћњњ§њћћ§§эўћ§ћ§§ўћў§ў§ў§ў§ў§ўўќ§ў§ўўў§ўў§ќћў§ўў§ћўњћћњ§ћў§ўћћїўћ§§ў§ў§ўўќ§ў§ўўћ§ў§ў§§ћћўћ§ћ§§ъћ§ћ§ћ§ћўћ§ћ§ћўћ§ћўћ§§ў ўќ§ў§ўўћмўћ§њћ§§ћў§ў§ћћ§њ§њ§ћўћў§§њћћ§§ў§ў§§ўў§љўћў§ў§ћћўњ§§ўћ§§юў§ў§ў§ў§ўћ§њўћ§ћћ§§ў§њћўћ§§ўўќ§ў§ўўњ§ћ§ћўћћњя§њўћўћ§§ў§§ўў§§ћ§§цћ§§ўћў§ў§ў§ў§§ћўћ§ћ§ћ§§ўћ§§љћ§§ў§§ўў§ћ§ћћќў§ўћћх§ћ§§ў§§ћ§ћў§ў§ў§ў§ў§ў§ў§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўўї§ў§ў§ў§ў§§шћ§ћ§§ўћ§њўћ§§ў§§ћўћўћў§ўў§ќў§§ћћ§ў§ўў§§ў§ўў§цћ§ћў§§ћ§ћ§њћћўњ§ћў§ўћўћўњћћїњћћў§ў§ў§§њў§ў§§ћћќ§ў§ўўќ§ў§ўў§ўћ§§ћєўћ§ћ§ћўћ§ћћ§§ќћўћ§§ўћ§§ўў§ўў§ўњ§ў§ў§ўўю§ўў§§ў§ў§ў§ўћў§ў§ћћѓў§ў§ў§§ћў§ў§ўўў§ўўі§ў§ў§ў§ў§ўўў§ў ў§ъў§§ћ§ћ§ћ§ћ§§ўћўћ§ћ§§ў§§јўћ§§ў§ў§§ўў§§ўў§ў ўсћ§њ§њ§њ§ћћ§§ћ§ћ§љћњћћ§§ўћ§ћ§ћ§ћћ§§ў§ўўњ§ўћ§§ўўў§ўўі§ўћњљћћ§ћ§§чўћў§§ћ§њ§ћўћўњўћ§§ўћў§ўћ§§ў№§ў§ў§ўћ§§ў§§ћ§§ўўш§ћљ§њўћўњўћў§ў§ўћўњ§ћў§ўўј§ў§ў§ў§ў ўђ§ўћўћў§ў§ў§ў§ўў§ћ§њњјћљћљћњ§ћћђўћћњћћўћ§ўў§§ћћўў§§ўў§ўў§ ўљ§ўњћњћњњпћјћљ§њћћ§§ўћўњ§њ§§ў§§ћ§ћ§ћ§ћў§ў§ўўј§ў§ўў§§ўўў§ўўж§ў§ўћў§ўњўћ§њ§ћћњћњўћћњ§њ§ћ§ћћњћћўћ§§ў§ў§ўўі§ў§ў§ў§ў§ўўћ§ў§ў§§№ўћў§ў§ў§ўћћњћњ§њњћ§эўћўћ§§ћћўћў§ў§ў§ў§ўўў§ўў§ќћ§ћ§§ќў§ўљљ№њљњњ§њ§љ§њћћўћўћћѓ§ћ§ћўћ§§ў§ў§ў ў§њћў§ў§ўўў§ўўю§ўћ§љјљњњћћ§њћљћљњњэљћњћћ§§ў§ўћ§ўў§ў§ў§§їўћў§§ћ§ћ§§ ўѕњљјњјћњћћ§ћћњў§њњї§њўћў§ў§ўўіћў§ў§ў§ў§ўўќ§ў§ў ў§ћ§ћћ§ўњ§§юћ§ћўћ§§ўљ§јњљ§њўћўўў§ўўў§ўўў§ўў§§ў§§ћў§ў§ўўљћ§§ўћћњњћ§єњћњћ§ў§§ўў§ўўв§ў§ў§§ћў§ў§ў§ў§ў§ў§§ћ§ћўћ§§ў§ў§ўћћњ§њ§њћћ§ћ§њћћѓњћћ§њћ§ў§ўћў§§ћ§§ў§ўўј§ў§ў§ў§ўўћњњ§њ§њћћіњўњћћ§ћў§ўўј§ўћ§ћў§ўўљ§ћў§ў§ўўў§ўўќ§ў§ўўѕћ§ћў§ў§ўћ§ћћє§љ§њ§њўћ§§ў§§ў§ўћўўў§ўўў§ўўк§ў§ў§ў§§њ§ћў§ўњ§љ§ћў§ўћў§§ћ§ћ§њўћ§ћ§ћ§§ўѓ§ў§§ћ§ћ§ћў§ў§§ўќ§ўћ§§№ћўњћћњњ§њћћ§§ў§ўўў§ўўќ§ў§ўўў§ўў§љў§ў§ўћўўэ§ў§ўћўћ§§ўћўћ§ћћњ§ћћѕў§ўћ§ћ§§ў§ўў§§ў§§ўќ§ў§ўўђ§ў§ў§ў§ў§ўћў§ўўўћ§§ёћўњћћ§ћ§ћ§§ўћў§§ўў§ўў§ўў§ўўў§ўўў§ўўљ§ўљ§њ§ћћќў§§ћћљўћ§§ў§ўўў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўўї§ўћўћ§ћўћћћў§§ћ§§єћў§ў§ўћ§ћў§ўўў§ўў§ўь§ўћўћў§§ћ§§ўћ§ћў§ў§ўў§ўщ§ў§ў§ў§ў§ў§ў§ў§ў§ў§§ћўћћљў§ў§ў§ўўў§ўўњ§ў§ў§ў ўў§ўўќ§ў§ўўў§ўўў§ўўў§ћћ§њћ§ћў§ўўў§ў ўў§ўўїћўћўћ§ћў§§ћў§ў§ўўњћ§ћў§ўўў§ўўў§ў ў§§ў§§ўѕ§ў§ў§ў§ў§ў§§їў§ўћўћўћўў§ќћў§ўўў§ўўј§ў§ў§ў§ўўќ§ў§ў)ўі§ўћ§њўћ§ћўў§ў§ќћ§§ўў§§ў§§§ў§ўўў§ўўў§ўўќ§ў§ўўќћ§§ўўћ§ў§ў§§ћўћў§ў ў§ ўў§ўў§ћ§7ўј§ў§ўћў§ўўј§ў§ў§ў§ўў§§ћ§ўў§ўћўўњ§ў§ў§ў ўј§ў§ў§ў§ўўі§ў§ў§ўў§ћ§§ћћў§ў§§ўў§§ўќ§ў§ўўў§ў ўі§ў§§ћў§ў§ўўў§ўў§ўўћўўќ§ў§ў ўў§ўўњ§ўћў§ўў§ўќ§ў§ўўќ§ў§ўўњ§ўћ§ћўўў§ў ў§ўў§ў ўќ§ў§ўўў§ўўћ§ў§ў§§§ў§ўўў§ўўј§ўћў§ў§ўўњ§ўћў§ўўњ§ў§§ћ§§ћў§ў§ўўћ§ў§ў§§ ўў§ўўќ§ў§ўўў§ўўў§ў ў§ўћўўњ§ўћў§ўўњ§ў§ўћў ўў§ўўў§ўўњ§ўћў§ўўў§ўўў§ў-ўє§ў§ў§ў§ў§ў§ў%ўў§ўўў§ў ўї§ў§ўў§ў§ў&ўљ§ўў§ўў§§ўўї§њ§њўћћњ§§іћўўћў§њ§њўўўћўўў§њњўўћўўў§ўўѕћў§§њ§љјјљ§§ўњ§јўћўўћўўћћўћ§ўћўўѕњћјљћјњљњ§ўў§ў§єљћњ§§љјјћњњ§§ђњ§ћћўўћњўћў§ў§§ћўњ§ў§§§ўћўў§ўќћўўњњќ§ўў§§љњ§ўўњ§ўўњњ§§ўў§§ўњўўѓћў§§љљ§њ§§њ§ўўќ§њ§ўў§ўњћўўћїћћўњ§њўўњўў§єўћћў§њў§њњ§ћћ§њ§ў ўњћњ§§ў§§ќњ§њўў§§ўћўўќћўў§§ўќ§њў§§јў§њўћћњўўќћњћўў§њљ§§ўћ§њ§ў§§ўњ§§њњўћ§ћљљ§ћњўўњћў§њћўўћ§ўљўўўћўўћыў§њљћ§љљњ§њћ§§ў§§ћ§њћћ§њ§ўўќћ§§ўўћєўњћўћ§ў§§њ§ћћў§ўўљћўўћўћўўњњљћћў§§ ў§њћўўі§њїњћљњњ§ўўљњ§§ћљћ§§њњћ§ћћ§§ўњ§ў§ўєњ§§ўћўљњћўћ§§ўѓ§њ§љ§ўўњ§ћљљ§§ѓљћњ§ћјњ§§ў§§ўўћђўћўћњњћ§њћјјљ§§іљћ§њћљљ§§ўўўћўў§эћњўўњ§љњњћљјћ§§њ§§ў ўљњ§§њўћўў§ўїњ§§љљўћћўў§ўўљ§§ьћљћљљњљћњћћљњ§њњ§§ћўўўћў ўћћўћ§ўў§§њ§§эћ§љћ§§ўў§љљњ§ћњ§ўў§§ћћ§§њ§§ќњўћўўћ§ћљ§ўўє§њјљњњў§§љњјјўљ§§њ§ўў§§ўќ§њ§ўў§љј§њ§љљћљ§§ўў§§ћўћўћўўьњ§љїїєѕјћћјћљљњћљћњ§§њћ§ўўћ§§ўћ§ўњ§љѕћљ§§ўўћўў§ўўўћўўё§њњ§ўўњ§§њ§ћњљћћ§§љћњњ§§ѕ§ўўўћўў§ўћўўќћњ§ўўћ§ћњїљњњљћћњ§ўўќ§њ§њњ§јўњњљћњћ§§њўўћўўќћў§ўўшњљ§§ў§§ћў§§ћћљљћћњ§§њ§§ўўі§њ§§ћ§§ћњ§§§њ§ўўћўј§њ§§њ§§ўўњўћўњўљ§§ќјљћјјњљњ§ў§љљ§њј§ўњ§ћўў§§єњљћљ§ћ§§љћћ§§§њћўўўћў ў§ћњ§§ћўў§ўўћўўѕ§њњћў§§ўћњљљ§љњ§њњ§§ўўњћњљњ§ўў§ўњ§§њ§ќњљљўўўћўўћўќ§њћўў§ўњ§§њћ§њњїў ў§ћњћљњўўэ§љјѕїјјљ§ў§§њўўњћћўўќ§њћ§§ ўњўр§ћљћ§ўў§ћїјјљ§ўў§§ўњћѕѓёђђѓєїњћ§§ў§єћїјњјћ§њћјѕјјћњљў§љљћ§ўљћћќљўў§§тњљњћњєэюяюѓљњљњўўћ§ћћ§ћљјћћљљ§§ўї§њ§§њўўћўў§ўњўў§§њўўњў№њљљїђьэьѕћљљћћљїїј§ћ§ўўјћўћ§љјњўўъњўў§љјљћјјљћњўўћћ§њўњ§§ўљ§§ёєёјђыюѓєѕњћљ§§ўў§њ§ўўёћўњљћњ§њљ§њњљ§ўўќњ§љ§§іњ§њњћ§§ўћ§§њћўьњєёёєћњњљљћћўћ§љјјњ§§ўўћўў§ўћ§§ўћ§§ћў§ћњ§§љ§ўћўў§ћњ§§љњљѓѓњ§ўўћћўўћўў§њў§§ў§ўњ§§њћљљ§њ§§їљјњњјј§њ§§№љћћљљћћњїѓяѓљћ§ўў§ћў§§ћјјљћћњ§љњ§§љћ§њљћ§ћћјљѓћў§§ўў§љ§§њћўў§љћїёѕјљ§§єљњњћ§љјјњјћ§§ыјћ§§њћљљћљ§њ§њ§§њћљћўўїњљљћћјљћўўњ§ћїїјљљћїјљљ§§ў§јћѕјњњћћљљ§њћьљћњјјљјјљћўњћ§љњ§њјћћ§ўњ§§њњћ§§ў§§њтљћ§§љљћњ§њљњљјјћ§§ћћљћљћљћљћљ§§§њ§ўўћ§њњў§§юў§њњ§љ§§ћўўњ§љљ§§ўўљ§љ§ћћњ§§юњѕћ§ћў§§ћћљјѕ§њњ§ўў§ћў§њ§ўўїњўњ§§њ§ћўўњ§њ§ўў§§њљќњћћ§§ёњўў§њљћљљњ§љћјћћќљ§њ§§їњ§њњ§ўўћўўљ§њљљ§ў§§іў§ўў§њ§§њ§§ў§ћјњ§ў§§ўћјјћњјїђѕѕћ§њ§§њњќ§њљ§§њўљ§§§љ§ўўљ§њљћ§ћўўњњ§њљљћћўљ§§єњљћљћћјљѕє§ўўўћўўўћўў§љљјјљїў§§љѓћњћјћљњњ§§јњ§§љ§ћљ§§ћјјћћљѕћ§ўўњћ§њ§§ўў§ѓјћ§§њњ§§њњ§§њњэ§ћљњњ§§ћљљћљјњјјїљћћљљѕ§§њ§њћћ§ћѓ§ўўћўњњ§ўћўў§§њћўћ§њўўўњўў§љћљјњњјљљјјїїљјєў§§њњ§њћћљљљћ§њ§ўў§§ўўћўўћћњћћљљћјїљїјјўѕїїѕщђїјјњїѕѕєє§њ§ћљ§ў§љњ§њўў§њњјљћњ§§љњ§ўњћћўў§јњћћјњњћ§§ўў§§№ћљїћњјѓёє§§њ§§ћўў§њ§ћћѓњј§њњ§њљћ§њ§јјўћ§§ўљ§§ћћљјњ§§ўњљљ§ћјљѕѓѓїњћўў§шњљћјљћљљ§ўў§ўў§ћўў§§љћћњњ§ўњ§§ћћљћљћћјќљјјћћњјѕѕєњўўє§ћљћљћ§ўњ§§ўўќњљ§ўў§љњ§§ћћ§§њјј§ўњћћљўјћћњјїјѕѕўўљљћћљљ§ўў§ќљ§§ўў§§њ§§§љ§ўў§цњїњѕљ§§љ§ћљћ§њ§љњїїѓѓ§њљ§ўўљњўўћ§љ§§ўњўљ§љћћљљ§§ўињ§љ§њ§§њњ§ћљљїїјњљљћјїєѓљћћ§§ћўћ§њљћћ§ў§§ќћўћўўѕћ§њњѕљћљћ§њњњљ§љњјћћљјыїѕѕєѕ§ћљћ§§њњ§њўњ§ўў§§њћўћ§њў ў§нљћ§§ћ§јїїљћјљљћћњњ§њ§њљїљѕўћўў§ћњ§ўўўћ§§ћњ§§њ§§њё§ўћўўњљјљњњћћљћћ§шљњћћљћњєўў§ўў§њјљћљћ§њ§ўў§§ћўў§§љїїїѕјљ§§њњљћћќљћљ§§їћјѕњњћ§ў§§ћћљјї§§ћў§§љ§ўўѓћў§њ§њўћ§§њ§ћћё§љјљљјїјјњјїјјљљћђљ§§ћјћљћћјїљћўўњњ§јјњўўњѕћљ§њљљњ§§јћћ§ўњ§§њїљћљ§њ§њњљљўјћћќњїѓўўўћўў§§њ§њњў§ўў§№њ§§ўў§љјјћ§§љјљћћэјљћ§њњћљћњјўўљњ§ўћўўўћўў§ў§њє§њ§§љћњ§њўўњњ§ўћўўќ§ћљћћўјїїўњ§§њљћљјїћћўќћ§§ўўјћ§њњ§§њўўњћјљћћљљчјњјјњј§њў§§љћљњњћћ§њњ§§ћјјќњјї§§ќў§њ§§ђўњ§ўў§љјјљћ§њ§§њўћљљќјѕѕєєњѕњљ§њўўќћ§њ§§ѕљћїјјњї§њћўўћћўћў§њњ§шљњњўћ§љљњ§њљљћћјњїѕѓєњљ§§яњћљћљљћњњ§§њ§љћїўўћ§њњћўўўћўўўћўў§ўўћ§§ўњљљћіљјјїѕљјћљћћћљњњ§ўўћ§њ§ћўўі§њ§§ў§њњљ§§њ§ўњўўњ§њ§љњ§јћ§љ§§ёњљјўў§њњў§§ћўў§§ўцћў§§њљ§љљ§§љљјѕћљљћ§§љљњјћћьљћљњћљћјљљ§§ћћљћњ§ћўўљѕ§ўўћћњ§§ћњўўќњ§ћњњ§ўјїїљјљ§њљљћћ§§њљћћыљћјњњјћў§ћўў§љ§њў§§ћўўљ§љјњ§§љљћыљћљјјєјћљљ§њўњ§љњ§§њћћ§ћ§њ§љљќћњ§ўўя§ћљљњ§ћљљћ§§њ§њ§љљў§ўў§ћфјњљљєїѕѕїјљ§§ћ§ћљћћ§§ћјјњњћ§§ўђћ§ћ§§ўў§ћ§ћў§ўўњћ§ћ§§ў ўќ§ў§ўўўћ§§ўј§ў§ўћў§ўўўћ§§ёћњњћћ§ћ§ўў§§ћ§ћћўќ§ў§ўўё§ў§ў§ў§њћћњњљћ§§љў§§ћ§§ўўћ§ў§§ћћ§њ§ћћњ§њћ§ћ§ћўўў§ўў№ћўћ§ћў§§ў§ћ§§ў§ўўњћ§§ў§ўў§ѕўћ§ћ§ћў§§ћўўѕ§ћћўўћ§ћ§§ўўў§ўўћќ§ћћ§§эў§ў§ўћ§ћў§ў§§ћ§ћў§ўўњўњћ§§ў§ўўќћ§ћўўї§ћ§ўћ§§ћњњ§§ћўўќ§ў§ўў№§ў§ў§ћћўћ§ћ§ћ§§ўўћ§ћ§ћў ўћў§їўћ§ћўћ§§ўўќ§ў§ўў№§ў§ў§ў§ў§ўћ§ћўў§§ђћ§ћћ§ћћ§§ўў§њћћќњ§§ўўў§ўўќ§ћ§ўўў§ўўў§ўўў§ўўў§ўўћћ§ћњћћѓ§ћ§њ§ћўћћњ§§њњђ§ћ§ў§ў§ўћ§§ў§ўў§ў§ќћ§ћњњўћўўњ§ў§ў§ўўє§ў§§ћњњўћ§ћўўј§ў§ў§ў§ўўћ§ў§ў§§їў§ўў§§ћ§ўў§ёћњћњћ§ћ§њ§њћћ§ћћќў§ў§§ќћ§ћўўќћ§ћўўь§ў§§ћ§§ў§ў§ў§ўћ§ћў§ўў§ћў§ћњћћ§ћћћњ§§њ§§јћўћћ§ў§ўўћ§ў§§њњ§ћ§ћћѕњћ§њћћ§ћў§ўўш§ў§§ћ§ћ§ћњ§ў§§ћћ§§њћњњћ§§ќћў§ўўј§ўў§ћћ§ўўђ§ў§§ћ§ћў§ў§§ћўў§§ћўўэ§ўў§ћ§њћњћћ§ћњљњњћ§§љћ§ўў§§ўўў§ўўў§ўўќ§ўћўў§ѕћ§њћўўћ§§ўћћќ§ћњ§§ўўћћїњћ§§ћћ§§ўўў§ўўћ§њћћўўћћ§ћћ§§ћўљњњћ§§ћ§§ќћ§ћ§§ѓћ§§ўўћ§§ўў§§ћћ§фўћњћћ§ћћў§ћ§§ў§ў§ў§ў§§ћћљјїњњђ§њћћ§њћњ§§ћ§ћ§§юћў§ўћ§ћў§ўўћћ§ћўў§§їћ§ћћњћћ§ўў§ўќ§ўћ§§ў§љћ§ћњљћњњњћњњћ§ћћўњ§§ќћљ§ў ў§§ћўўч§ћў§ў§ў§ўў§ћњњљљћ§§ћњњ§ћўўќћ§ћ§§цћ§ћў§§ћњљћћ§ћ§§ў§ў§ў§ў§ћ§ўўп§ў§ўў§§ћћўћћўўћ§њњћћњњ§§ћ§ћ§§ў§ў§§ђћўћ§њ§ћ§ћ§ћ§ћўўќ§ў§ўўѕ§ћ§§ћ§ћ§§ў§§§ў§ўў§љўћ§ћ§ћњњўћ§§ћћ§ћ§ћ§§эћў§§ўў§§ћ§§ћњћћўћ§ўўљ§ћ§§ў§ўўў§ўўў§ўўў§ўўє§ў§§ћ§§ћћў§ўўє§ўћ§ћў§ў§ў§ўўѕћ§§ўў§ћўў§ћћя§ћ§ћ§§ћћў§ўў§ћ§ћўўў§ўў§§ћ§ћћя§ћћ§§ћ§ћ§§ћћў§ў§ўўќ§ў§ўў§ўї§ў§ўћ§ћ§ћћ§ўў§ўўў§ўўіћ§ћ§њћљў§ўўћњєљњњћћўћ§ўў§ўў§ћњћ§ћўўў§ўўэ§ўў§§ў§ў§§њћњ§§ўћћњњћчў§§ћў§ћјяђєѓѕїљљћћ§ћў§ў§ўў§эћњљњљњњ§§њњљњњћ§ўўћћњњћ§ћ§ћњњъћў§§ћћ§ў§ћљљѕяюёѕјљћ§ўўљћњњ§њћњњћ§ў§ќћ§§ўўі§ў§§ћ§ћ§§ўў§ў§ыў§§ћћљѕюцюјњћћњњћњљљњњ§ўё§ћ§§ў§ў§ў§ћў§ћњњќћњ§ўў§пў§§ћ§ўћћ§ћ§ћњїёшёєјљљњўћ§§ў§§ћў§ўў§§ћњ§§ёўћ§§ўћў§ў§§ў§ћ§§јњћћўў§ћ§§ўў§ўўї§ћђюїћ§§ўўј§ўћћњћ§ћћќ§ў§ўўщ§ўћ§ћ§ћўћ§ћњћ§ћўћў§ћћ§ћћќ§ћ§ўўя§ћ§ћ§јѕѕњћў§ў§ў§ўўэ§ў§ў§ўћ§ћ§§ў§§ћ§ћ§ћћщ§ћ§ћ§ћћњњљњњ§§ћћ§ћ§ћњњћћєњљљѕёѕјћћў§ўўљ§ћћ§њћњњћёњ§ћў§§ћ§њ§§ћњћњњјљњўћ§§ўћћ§ў§ћћѕєјњћћс§ћ§ћ§ћћљљњ§ћњњљњњћ§ћ§њћћ§њћћњћ§§њћ§њћњўўќ§ћћњњѕћњ§ў§§њљљњћћьњћћ§ћ§ћ§§ў§§ћњ§њљљњћћщў§ћ§§ћњћњљњњћњњћњў§ўћћ§§ьњћњ§ћ§§ћћ§ћ§ћ§ћ§§њћ§§ўћ§§ђћњћ§ћћњ§ћ§ў§ћњњѕћ§њњћњћњћњћћљ§ћ§ћ§ћўўђ§ўћ§§ўћ§ћ§ћўћ§§ќў§ћўў§ћў§ўў§ћћњњ§ћћ§єњћўўћ§њњћњї§§ўћўўъћ§§ћ§ћ§ў§ў§ў§§ћ§ћў§ўў§§єўћ§ћ§§ћћљњњћћѓ§ўўћ§ћњћћ§§ћњњѕћј§§ћћ§ћ§ћ§§ў§§ў§§ћ§ћњ§ћўћў§§юћ§ћ§ћ§ўўћ§ћ§ћўћ§ћњњћљњљљјј§ўћ§§§ћ§ћћ§јў§ћ§ћўћўў§ћ§ћћўќ§ў§ўў§щћ§ўћњћњћћ§ћ§ћњћћњњјјї§ўўў§ўўў§ўўћ§ў§ўћћњјћўўћ§ћ§ћћњњ§њ§њ§§ўћ§§§ћ§ћћњњў§ћ§њњјћўћў§ўўњћ§ћ§§ўў§ћ§ћћљ§ћ§њ§ћ§§ўћ§§ўћ§§ћ§їћњћћњћњљњњўћњњїћјј§ћ§ћ§њњі§ћ§њњћў§ў§§ёў§ўћ§ћ§ћў§ўћ§§ўўў§ўўі§ћ§њћњљљњћћ№њљљјїїў§§ћ§ћ§њњћћєњћ§ћў§§ћ§ћ§ўўї§ў§ўў§њњћћћ§њјљњњљѓњјљљњњљљњјїї§§љњћћўћћ§§ўє§ўћћ§§ћњ§ћћ§§ўў§ўў§єћ§§ћњ§љљњ§ћ§§яћ§њћћњљїѕєї§ћ§ћ§ўў§јћњњћљњћ§§љћњ§§ћћњњћў§ћћ§њћ§§њћ§ћ§§ћћє§ћ§њћјјїїљ§ўўј§ћ§§ћњ§ћћўў§§ѕўћў§ўћ§ћњњ§§ёћ§ћ§ћ§ћ§њћњћњћњњўјњњљћњјјљљўўєћњћњћњћў§§ћўўё§ћћ§ў§ў§§ћ§ў§ћ§§ћї§ћ§ћ§њћњћћњ№ћњљїјјў§ўўћњўў§ўўє§ћћ§ћћў§ў§ў§§§ћ§ћћў§ћћіў§ўћ§§ў§§ћћќўћњћћќ§ћўљљїїє§§ћћў§ўўћў§ўћњ§ћўћћѓ§ћ§§ў§§ћўћ§ћ§§ћљёњљћћњњљїїћњњ§§ўў§њћњњћўћћќ§ћ§ўўњ§ў§ўў§§ћћњћњ§§ћўћћљњњћњєљјјљј§њћњћћ§§ўў§§ѕўћ§ћ§§ўў§§ўўў§ўўъ§ў§§ћћњ§ћўћњљљћћ§ћћњњ§§њљјљјјўўћ§њ§ћўўі§ўћ§ћ§ћ§ћ§§ўћ§§ўі§ћњћ§§њћћњњфћњ§ћ§ћў§њњћњљјўў§§ўћ§ћћњћњћ§§ўўћўў§ћљьњћ§ћ§§ћњћњћњћћ§ћ§њњљљћќўћ§ћћќњљ§ћћўј§ўў§ћўћўўјћ§ћ§§ўћ§§њё§ћ§ћћњћњњљњљњ§ћћњњћћ§ћњњўћњњўљўў§њћ§§ў§ўў№§ўў§§њћћ§ћћ§ћ§ћњњўћ§§№ћ§ћ§ћ§§ћњћћ§ћ§§ћћњѕћњћљљїў§ў§ўўљ§ў§ў§ўћћ§јћў§ўћ§ћ§§њћўў§ћњњўћ§§ўћњњћўњ§§їњћњљїў§ў§§ўќ§ў§ўўјћ§ћў§ћћ§§ћљњ§ћ§§ў§§ўљ§ўћњћћњњљіћ§ћ§ћњћњљўўї§ў§ћў§ўў§§ћў§ўў§ћўњћћьњљњњљњћўў§ћћњћ§§њњћ§§ўћњњјљњљ§ћ§ћ§§§ћ§ћћяў§ћ§ўћћњњћњћ§ћ§ћ§§ўњјјєїјјїѕїјљћћ§ўў§ќћ§ћњњљ§ў§§ў§§ћћ§ћћ§§ўўћћщ§ћ§ћћњћњљљјїљљћћ§ћ§њћњћћ§ўћ§§ћюљў§ў§ў§ўћ§§ў§ў§ў§ўўќ§ў§ўўѕ§ўћћ§ўў§ћ§ћћ§ћњђћњњљјјњњћњњћћ§§ўќћ§ћўў§ћѕўћ§§ўћ§ћ§ћ§§ўћ§§ћћ§ўў§§ћ§ќћ§ћ§§ћї§ћ§§ћњўў§§ќў§ћўўяћ§ћў§ўў§ћ§§ўћћў§ћћљњ§њћћњћћђљњћњњћњў§њћњ§ћћ§§њћћ§ўњўўћ§ў§§ўў§ўћўўќ§ў§ўў§ўњ§§ќћ§њљљљњћћ§ћћњњћ§§ўњњѓћњњљљњњўћў§ўћћ§ќћў§ўўћ§ћ§§ћћњћјњћњњћњњћћ№§ў§ћћ§§ћ§њћњ§ћ§њњў§ћћќњ§ћўўјћњћћ§§њћћћ§ћ§§ћћ§њў§§ћ§њњўљћћњљїјјњћћ№ўћњћћњ§ћћњњљљњ§ћўў§ўўќ§ў§ўўў§ўўќ§ў§ў ўє§ў§§ћў§ў§ў§ўўќ§ў§ўўі§ў§§ћў§ў§ўўў§ўўў§ўў§ўѕ§ўў§ў§ў§ў§ў ўў§ўўњ§ў§ў§ўўў§ўўў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ў ў§§ў§ўўў§ўўў§ўўќ§ў§ўў§ ўў§ў ўў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўўј§ў§ў§ў§ўўў§ўў§ћўћ§§ў ўў§ўў§§ў§ўў§ў§ўў§§ўў§ўўў§ўўљ§ў§ў§ў§§ў§ўў§ўўќ§ў§ўўў§ўўї§ў§ў§ў§ў§§ќћў§ўўќ§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ўў§ѓў§ўў§§ў§ў§ў§ўўј§ў§ўћ§§ўў§§ў§§§ў§ў ўј§ў§ў§ў§ўўћ§ўћў§§ўќ§ў§ўўќ§ў§ўўў§ўўў§ўў§§ў§§јў§ў§ў§ћ§§љў§ў§ў§ўўњ§ў§ў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ў ў§ўљ§ў§ў§ўћћ§ўћўўў§ўўі§ў§ў§ў§ў§ўўў§ўўї§ў§ў§ў§ў§§§ў§ўўќ§ў§ўў§њћ§ћўћ§§їў§ў§ў§ў§ўўў§ўўќћў§ўўљ§ў§ў§ў§§§ў§ўўў§ўўќ§ў§ўўљ§ў§ў§ў§§њћ§§ў§ўўї§ў§ў§ў§§ў ўў§ўўї§ў§ўћћ§ў§§ўќ§ў§ўўў§ўў§љўћў§ў§ўўў§ўў§іћў§ў§ў§ў§ўўќ§ў§ўў§љў§ў§ў§ўўњ§ў§ў§ў ўў§ўўё§ў§ў§ћћў§ў§ў§ў§§ћў§ў§ўўў§ўўћ§ў§ў§§ўў§ўўќ§ў§ўўќ§ў§ў ўў§ў ўў§ўў§љў§ў§ў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўў§ў ўў§ўўў§ў ў§§ў§§ўј§ћњ§ћћ§ўўў§ўўњ§ў§ў§ў ўў§ўў§ўњћўћў§ўўў§ўўћєўљѕњљњњўћў§ўў§ёў§§ћўћў§ў§ў§ўћўў§§ў§§ќў§ў§§ўў§ўўћіљњљѓєљњў§ўў§ћћ§ўћ§§ўњ§ў§ў§ўўњ§ў§ў§ўўў§ў ў§ьљђуђљ§ћ§§ў§ўњ§ћўћ§§ўўќ§ў§ўўј§ў§ўћў§ўўў§ўўќ§ў§ўўю§ў§ўћћѓѓєћћ§ћ§§ў§ўўў§ўў§§ў§ўўў§ўўј§ў§ў§ў§ўўњ§ў§ў§ўўјћљљњћў§ўўў§ў ўќ§ў§ўўњ§ў§ў§ўў§§ў§§§ў§ўўі§ў§ў§њљљњўўќ§ў§ўўш§ў§ў§ўћў§ў§ў§ў§ў§ўњўћў§ўўю§ў§ў§ў§§ћ§ћ§љњљ§ћўў§ўћ§§њћўњ§ћўў§§ў§§ћў§§ў§§њћўћ§њўўў§ўўќ§ў§ўўр§ўћјњћћ§ўў§ў§ў§ў§ўћў§ўћўћў§ў§ў§ўў§ўў§§љў§ў§ўў§§ўј§ў§§ћў§ўў§ўћ§§іћў§ў§ў§ў§ўўы§ў§ўћўћўћў§ў§ў§ўћў§ўћћћ§ћћ§ўўє§ў§ў§§ћ§§ў§ўў№§ў§ў§ў§ў§ў§ў§ў§ўў§§ў§§ўї§ўћў§ў§ў§§ѕў§ў§§ћ§§ў§ў ўќ§ў§ўўќ§ў§ўўњ§ў§ў§ўўњ§ўў§§ўў§ў§ќћў§ўўў§ў ўќ§ў§ўўќ§ў§ўўі§ў§ў§ўћў§ўўћ§ў§ў§§љў§§ћ§§ўўќ§ў§ўўў§ўўњ§ўћ§§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўь§ў§ўћўћўћ§ћћљћ§ў§ў§ўўћ§ўў§ўўњ§ў§ў§ўўќ§ўћў ўѓ§ў§ў§ўћў§ў§ў§§јћ§ћ§љњ§ўўћ§ћў§ўўї§ў§ў§ў§ў§§юў§ў§ў§ў§ў§ў§ў§ў§ў§§њў§§њћўўў§ўўў§ўў§§ў§§ћў§ў§ўўќ§ў§ўўўћўўћ§ў§ў§§њўћўћў§§іў§§њћ§ў§ў§§ўў§§ўў§ўўќ§ў§ўўў§ў ў§§ў§§ћя§ћ§ћ§њњљњў§§ў§ўў§§њћ§§ў§ўўњ§ў§ў§ўў§ўў§§№ўњ§ћўћ§њ§њ§њћћ§ћћњњћјњ§ў§§ўќ§ў§ўўќ§ў§ўўќ§ў§ўўя§ў§ўћ§§ўћў§ў§ў§ў§§ѓћ§ћљљјњ§ў§ў§ўўѓ§ў§§ћўћў§ў§ў§§ўіћўћўћў§ўћўўч§ў§ў§ў§ў§ў§§ћў§ў§§ћњљњњ§ўўћ§ў§ў§§ќћў§ўўў§ўўё§ў§ў§ў§ў§ў§ў§ў§§ѕў§ўћ§ћћњћћ§§љћўљћљћўў§ўў§ў ўї§ў§ў§ў§ў§§ўј§ў§ў§§ћ§§іћ§ўћўњћљћўўњћ§§ў§ўўў§ў ўњ§ў§ў§ўўќ§ў§ўўў§ўў§ўј§ў§ўћў§ўўјњ§њћ§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўњ§ў§ўћ§§ѓњўћ§ћ§ћ§њ§ћў§§ў§§ў§§ўќ§ў§ўўў§ўў§ўќ§ўћ§§ѕћ§§ћћ§ћћљћ§§ўў§ўўў§ўўќ§ў§ўўў§ў ўњ§ў§ў§ўўыћ§њ§ћ§§ў§§ўў§ў§ўњ§њћўў§ ўю§ў§ў§ў§ў§ў§ў§ў§ў§ўўј§ў§ўў§ћ§§їћ§§ў§ў§ў§§љўћћўў§ўўј§ў§§ўў§ў ўі§ўћ§њ§ћ§§ўў§ѓћўћ§§ў§ў§§ћ§ћћўј§ўћ§ћ§§ўўў§ў ўў§ўў§§ў§§ќўћўћћ§§ћ§§ђћ§§ў§ў§ў§ўћ§§ўўќ§ў§ўўќ§ў§ўўў§ўў§§ў§§ьў§ў§ў§ў§ў§ўћ§ћў§ў§ў§§іў§ўћ§ћћњњўўњ§ў§ў§ўўњ§ў§ў§ўў§ёћў§ў§ў§ў§ў§ў§ў§§ѓў§§ћ§ћћўў§ў§ў ўў§ўўљ§ў§ў§ў§§§ў§ўўў§ўў§њћ§§ўњ§§ћћў§ў§§§ћњўўў§ўўў§ў ўї§ўћ§§ў§ўћћ§ўћўў§§ў§§ўў§§јў§ў§ў§ўћћёўћ§§ў§ў§ў§ў§ў§ўўцћўћў§ў§ў§ў§ў§§њ§њћљћњ§јћћўўћ§ў§ў§§љўћўћ§§ў ўў§ўўњ§ў§ў§ўўў§ўў№§ћ§ћўћ§љ§љўћў§ў§§ѓћ§ћў§ў§ў§§ћ§ўўќ§ў§ўў§§ў§§ќў§ў§§јўћўњћњў§§њћ§ўў§ў ўў§ўўѕ§ў§ў§ў§ў§ў§§§ў§ўўќ§ў§ўўц§ў§ў§ў§§ћў§ў§ў§ў§ћўў§ў§ў§ўўў§ўўў§ўўх§ў§ў§ўћў§ў§§ўў§ўћўћ§§ў§ў§ў§§єўћў§ўћ§ћў§§ўўў§ўўў§ў ў§ќў§ў§§ќў§ў§§§ў§ўўќ§ў§ўўћ§ў§ў§§ћўћўћўўњ§ў§ў§ўўќ§ў§ўўц§ўћў§§ћ§§ўћўћў§§ћў§ў§ў§ў§ўўёћ§§ў§ў§ў§ў§ў§§ўўі§ў§ў§ў§ўћўў§ў№§ў§ў§ўћў§ўњўћўћўў§ћћ§§ўћћћўћў§ўј§љ§§ўўњ§§њњљўўњўўњќ§њ§ўўўћўўќћњ§ћћ§љіњљљјїљїћљ§§љ§ћњњ§њ§§ћћ§ўћўў§ўћљљјћэ§њ§§ўћћўћўўњљњѕћ§у§§ћя§ћњњјњњљљћљљћљћљ§§ўћљљ§їѕњњ§ўќћўћўўя§љњћ§§њјѕѓ§њ•§ћњўў§њљ§ућљ§§ў§љљ§ћљњњ§§њљўћњ§њ§љ§ћ§ћўўѓ§њљљњїёѓѓћћЛ§§ўяћўў§ўў§њћ§§њјјћ§ўўћўў§§ў§эњў§§њ§љћћњњўў§ћњїјєєћ§ће§ўўћ§ћњ§ўў§§љ§§њњ§ћљњўўљ§ћњљ§њ§§јњљјјљњњ§§њѕјљєѓѓѕћ§љŒњњў§ўѓ§ўћњ§њ§§ўў§§ўў§єўћўћ§§њўћњњ§§ћљ§ѓћјїєёѕєѕ§ћШOљљњўћ§§ўњњ§ўў§§ўў§рњўљљјљ§њћљњћ§њ§ћїѕѓђђѓѕєљћЫb§ў§ўў§ўќ§њ§ўў§ўљћљњўўћўўш§њњ§њњљјљјїїѓђѓєѓїѕћљЋLўўћ§њ§ўўўћўўћ§љљњўўў§ўў§ўў§§ьњћћљњјѓђѓєѕјћўћћx>ўћћњљћњ§§ўћўўћћўћ§ўў§њ§њњ§њўі§ћ§§њў§ћјѓѓэєјїїљјц[(§§ћ§§ўў§§ўўўњљљ§§ў§§№ўћўў§ћјљљњ§њўћћўўѓ§њњ§§њћїѓђђєѕѕюїј§§шb5љљјћљњ§ћ§њўўўћ§§ўњ§§ўњј§јњњ§ўў§§ћњљѕєѓѓђѕљњљћњј§ћЕ3"ў§§ў§§њ§§§њ§ўў§ўљћћ§ўћўі§љљћјљћљњўўч§їєєјїјњљљћ§љ§§цh5ћ§§њ§ћўў§єњћњ§ўўљњ§§њћћњљњ§ўћњњ№§ўўљ§ћљљ§§љјјѓѓѕѕќїљљїїљљћОQH§ўўћ§ўўњ§§ђўћћ§§њћў§§њўћўў§ћюњ§њњ§њ§ћњњљѕєєјљїѕѕѕєїѕѕћћ‚0Qћ§§§ћ§ўў§јћњћўўњљўў§ј§љћ§§њћљєђѓєєѕщѓђїїњјњїћљ§ћјr?E§§ћјњ§ўў№ћўћўў§§ћћ§њћ§§њўў§кљјјѓђёёѓјљљїјїјѕѕјћљљћљћ§бE@Iљћћњ§§њњ§§ўњћўћњћўў§ћўљ§њўўє§њѓёђѓѕєѕїљјјћ№љѕѕјћћјїј§ћЈUcJ§§ѕћљњњ§§ў§љњћћў§ўўћ§њњ§ўўѓ§њѕѓяшюђєѕїїњњїјљљјїѕїјїїѕ§їž9<4љ§§љњњћф§љєјїљњјјљћ§§њњ§§ћїѓђяюђѓєїћћлљћљћ§§љјїѕѕљћћњљєїћ§‹]gQљћћљ§њ§ћњјјћ§§јћјјћ§њњ§§цїѕђююёѕєѕѕїљїјїћ§ћљїјїѕєєјјЮїѕѕє§ћЛ?:LB§§љїњњћљћћ§§љљ§љћ§§љњјѕѕѓѓђђёёђєѕѕїљљњїїўјћћјїѕїњњјјїї§јнH!AEљћ§§ќњ§ћ§§Ићјјѕљјїѕёёэяёђѓєѕљјљћ§њ§њ§§њ§њљћљћњѕѕєєњћљљјјїї§ћ‡1EUћљљћ§§њљљјїђэььяђєёёУѓѕїјћњњјћљћ§§њ§§ўўњњјљјїљѕєѕїњњјњњјљћ§}4JLљћљ§§њ§љїѓђёяёѓђєѓєєѕї§јњїїѕіљјћљљ§љјћ§§јљћњѕєєѕїїѕћљk(4BњљћњјјыєёэёђєїѕїѕїњјњїїѕїїњћћЮјњћљћљћ§§ћљјјљћјїїѓђєїјїјї§§ћn"0?њћјњњјїђѓђѓѓѕѕєѕїїјьњјїѕѕљњњјљћљћћјїјљћљљжћ§њјєѓёѓєїєїїў§ђi%35ћљјјљєђэђєєѕїјљћћїјњњљљњњћљћ§љљћјѕѕјљљќјћњўўјњћњїєѓѓѕѕйѓєљ§щS)84§њћљѓђѓѕїњћ§§њљћљ§§њ§§ўў§њљћћ§§ћўљ§§пћљћјјљѕѓђёєѕїјњўћы]BMAћњјђэђїїњїјјьљїјїњј§ћћњјјљњњ§љѕјћћзљјћљћјњњљћњѕѓѓѕїјїѕћ§йG.42љјїюэђєјљїѕѕїњїїыњљћћњњћћљћњ§ћњљјјљїїјјїјћчљїѕєѓђѓїљњї§§з>8@;јїѓяёєїїќјљљ§§ђћјњњјћњљјјњћњјјўїјјлњїљљїјјїѕѕєђёђѕѕїѕ§ћЁ;1-<ђэюяѕєїјљїїјјїјїљљїїјћћљљќћљњјјњјЖїћљјїѕєѕљїјѓљћФC8B?єєђѓѕјњјјњјћјћјјѕњїњњјњњїїјљћњ§љљњјњїјјћјћћјљћћњјїєїѕїјјсўћС8+$-єѓєѕїњјјћљѕ§њћјљљњ§њ§љћљљ§јѕїїїјњјјїљ§ў§§љћњїєѕєѕѕєїѕјї§ћЖJLN>ѕѕўїјјќњљ§љљя§ўўњњљљћљ§§ћљјћћ§§ћўњ§§ўљјјоњјјїїѕјѕѕјѕѕјјї‘Bљњњћљћ§§ћљћћѕ§ћљљњ§љ§њ§љљќїјїљљіћљјјљћјјїћћшњїѕїїєћљ˜A?+29ѕѕћћћњћћјњњ§ћњ§§ћљјјљ§§њў§§ћјњњїћљјљћјјѕїїэњјњїљћыt>>5§ёЗxМ§§љїїіњјјћљћ§§њ§§љПњјћљћљћјљњїјѕљњњїїљљњїљљїјљї§ћаƒZ<)@<8§ўЫ‡mЄєўјјћњїїјћљћћјїїјјњљћћљљїјїљњїїзљњјїљљїњњїљїјљљ§ћВdd31,5<јљёзеТЯёїћ§§љ§§љљћ§љћ§§§њћњњћјњјњїїљљњјјњїѕѕлї§§МA23!(-9їєѕѓэѓѓююёьяѓѕјћ§§ћћўћў§ћїїъјљјњњћњљљњћћњњїїљљѕїїњњлїєјљђd#"8+83њљѕѓђђёёящтмхюёђяяђєѕїјљћћњљјљјљјјѓњћљћћјїјљїїљїїѓѕђяїк`*7:A?ћћфјїїѕєѓєюэяђђюьэыыьэяёёюяѕљћ§§ђћјїїјћ§њ§љљњњјјњђјїљїУJ$*577&ћ§§чў§§јїљљїѕѕєђђёёђююэырнлхььњђѓљјћ§§ўљ§§щњћћјјїєёљпc**21%*ћљљјїјјіљћљњїїѕїїєєЭѕѓёьшыьщчуустушяѓѓђяыщэёѕјљјїѕѕђ§§рO&-728:ћњћљњњјїѕѕїњљјљїљѕєѓѓђёмюышшюёяячшшчыыщщьэяьяёњаT423&)0§љљћљљ№јїљљјѕѕєїїћјїјєѕѕёїјѕєѓђєѓѕѓѕѓђяёёћяђђёяяѓюёёєћэw#.(#ћ§ўћћўўћћ§ћ§ў ў§ќћ§ћўўў§ўўў§ўў§эњћњ§ћ§ўў§ћћњљјљўў§ћћі§ћћњ§ћ§ћ§њњўћњњћ§ћў§ўў§ћњ§ћўё§ў§ў§ћљјўўц§ћ§њњђћњљљњљљћћњћћњћћћ§ћ§њћћќњљљ§§њћў§ў§ўўќ§ўћўўћю§њјѕў§™§њ§§ў§ў§§ћ§§ћќ§ћњћћўўћћє§њћ§§ћ§§ў§ў§§њћў§ў§ўў§ћљѕјєѕўўЗ§ћ§§ўў§ѓўћ§њћћ§ћњњ§§ўўў§ўўјћ§ћў§§ћ§§љћ§ћћњњ§§њўћњљљїїўщк§§ў§ўўћњ§ћў§ў§ўћўћ§ћ§ћћ§§ў§ўўљћў§ўћ§ћћј§ћњњћ§§ћћ§љњјїєѕјўўў”§§јў§§ћ§§ў§§ўў§§њћў§§ћўў§ўћўўј§ћ§§ў§§ћћы§њћћўћ§ћњњљїєєїјўўЭUћћ§јњћћ§§ў§ўў§цћў§§ћў§ў§ўћ§ћ§§ўћ§ћ§§њћњњ§§ђњљјѕѓєѕјјўўбd§§ўћў§§ћ§ўўя§ў§§ћ§ћ§ћ§§ў§ўў§ўўќ§ўћ§§юў§ћњљѕѕєѕїњљјўўАNўў§љў§ў§ў§ўўј§ў§§ћћ§ўўўћўўщћ§ћўћ§ћ§ћ§њњћљїѕєѕїјњћўў§}?ўў§ћў§§ћўўђ§ў§ўћў§ў§ўў§ћ§§ўћ§§їў§ў§§њ§ћ§§§њїѕѕїљљћўш\(§ћћ§ћўћћ§ўўў§ћћўўћћ§§ћўў§јњ§ћў§ћ§ўў§§ў§§іћ§§ћљѕѓѕїјјюљїўўю\2ћћњњћ§ћњ§§ўўћ§ў§§ћћє§ћ§ћ§ћ§§ў§ў§§ўчћ§ћ§§ћљїѕѕїјјљћњљњўўЛ3+ўћћўў§§ћ§њў§ў§ўћћњ§§ћўўњ§ћћњ§ћћ§ћў§§љїїтљњљћћњћћўўчh:ўћ§§ћўў§ў§§ћ§њ§ћўў§љћ§њћњћ§§ўў§§ўї§њћћ§ћћњїїјќљјјљљўљРPJ§§ў§§яў§§ћ§§ўў§ћ§ўўћ§§ўў§§ћ§њњ§§ћ§§њњљљјјїї§јљјјљщјўў‚9Uћћ§ћ§ћ§њ§§ў§ћћњ§ўўќ§ў§ўўэћ§ћњћњћ§ћ§ћ§ћћјїєѕїїјўїљљњњљњњћўўєtAB§ћњћ§ћў§ўўў§ўўХ§ћћњ§§ћћ§§ў§ўћ§ћњїѕѓѓђѕїјјљњљїјјњњћћњћўўдACMћњњ§§ћ§§ћћ§§ў§ўўі§ў§§ћўў§§ўў§ѕљѕѓєѕєїјљјњњјњэћњљїўўЌZiL§ћћњћ§§ћ§§§ў§њњ§ўў§§яћў§ў§ўћњјѕэщьєїјљљшњћћњљјљњћћљјјўў:C9ћћ§ў§§ѓњћњ§ћћњљјљњњћћ§чћ§њљєяёѕєѕїљњћњћњћњ§ћћњљјјяћњљјїљў§‘bkVћњћћ§§§њљњњќ§ћ§њњўћ§§юћ§ћјєяяѓѓїјјљјљњњћћќњљјїїњщљјјїўўК9;QE§ћћњљљњћњњ§ћћъњћ§ћњїєєѕєєѓѓєѕїјјљјјљљњїћњјљњљњњљљўяхM)ILћњ§ћ§§ћњ§ћћњњюјїѕєђюёђѓєєїјјњћњ§§ћћ§ћ§ћћыњљњјїјљњћћ§њљљўў…5IUћћфњ§ћ§ћћњљєьщэѓєѓѓђѓђѕјљњћљљњћћ§§ћў§§јћ§њјјїјљљ№њљљњћўў‚5IGћњћћ§§ћћљєєђђѕїјљўњљљјњћё§ћњњ§ћ§ћњљјїїјљљўїk(9?§ћњљњњђїђєѓєїљњљјљљњљљѓњћњћ§њњћњћњ§ћћњђћњ§љѕѕєїљњћњћўўыm"1>§њњљљњѕѓђєѕїјјљјљљњќљњљјјљєњћњћњћњљњћњћћљ§њљєѓѕљљўєћj"9>њћњњјјєєїћјљњћњњљћњљњћњ§ћћћњљљњћћђ§њ§ў§ў§њљљїѕєјјїцћўюN-9?§§ћјѕѓѕјљљћћ§§ћњћћ§§§ћў§§њћњњћ§ћћј§њћў§ћ§ћћњјщѕєєїјљњљўўэW?Q:њљїѓєєѕљљњТјљњњљћ§њћљњњћ§§ћјјњњћњћњћњњћћњљљћњњјѕєјљњљјўўкC3;<ћњѕђёѓїїјљњљљўћљљљћњћљљњћћѕ§ћњљјњњјљљњњљњчћљјїѕѓѕљћљљўўнC9A:њљѕёѓїљљьњћћ§ћ§њњљњњћљјњњљћљњњљјпљњњљљјїѕђєјњљјўўЈ;5;;ѕєђёєјљњјљљњњљњљљјљљњћњћћќњћљњњљњсћњљјїјјћњњўўЧC2?:їђєѕјњљњњљњњ§њњљўњљљєњћћ§§ћћљњљљњњў§њњѕћњњљњљїѕјљњњўуТ3(,8їѕїјљљњњћћ§ћ§њњћћ§ћ§§ћњћћўњљљќћњљњњћіўћ§ћ§ћћљљјјєљњњљўўКNQOBјјўљњњќљћ§ћћў§ћќњћ§ћћђ§њњћ§ћњњ§ћ§ћћњњўљњњљюїјјїјјњўў–;:EIјљљњњўћљљћљњљњ§њљњњћњїљћћ§ћћњљњњћщњљїїјѕєєўўЮj[HLIїљњњћћњњшјљјћћњћћњљњљљјњњћ§ћ§ћћ§њњљњўљњњјћњњјїєєѕѕєїўўлZ.&+:їјљљњћљ§ћћњћћ§§ќћ§§њњ§ћњћћё§ћ§ћћњњљљјјљјѕїїєјѕњўуeF??Hјљљњћњћћ§њћњњі§њћћ§ћўћ§ћћњћљњћњњћћњњкћњљљјљљјўў>CC9Bњњљљћњ§ћћњћњћњћћ§ћ§ћљћћў§ћћ§§њћћіњћћ§ћћњћћњњљїјоїўўŸ39@?<њћњљњ§ў§ў§ў§§ћ§ћ§ўў§ўћ§њћћњћћњћњћћ§њъљјїјјїѕїјїјўўž4.><4ћњћћјњћљњљњћ§§яћ§ћ§ћўћ§ћ§ћ§ћ§ћ§њњљуњљљјљљњњљљјљљїљјѕљўђnA0,1%њљњњљєјїјњљљјѕєїѕјјѓљћњњћћ§ћљљњњјјуљїјљњњћњћћљљјјїїѕ§ўЫI*)8;јљњњљњћ§њљјјљћ§ћыњћ§§њћњћљњњ§њ§ћњћћњњјјэїўўЕ18;?љњћњћћ§ћ§§ўњљљњљњўљњњўћљљћ§§ћ§§§ћњћћяњћњљјїўўЫG.)438љњњ§§ћ§§ќћ§ћ§§ыњўћ§њћњљљјљњљњљјљљњљњњїћњћћњјљљњњшљњљјўўДCB&1,3їјћњ§ћћ§њћ§§њћєљћћњњ§ћћњњљњњяћњљћљјњњћћњњљњњјњњљьњўў‡:?8<7>јљћњћљћњњљљјњ§§ћ§ћ§ћћђ§њћћ§ћ§§ўћ§њњљљћњћњћњњљњшљ§ўэu?BH>54јјњћњњћњћњћњћћњњ§§ћ§ћћњњћњћњњљљўњћћхњћћњћњљњјјѕњўд?,8:@97јјљћњћћїњћњњћћ§§ўўњљњўљњњєљњљљњ§ћћњњћњњўљњњљыјїѓ§ўЭ4%258;5ѕђєјћњњћћѓў§§ћћњњљћњћћњњјљњљњњћћњњўћ§§јћљњљњљљјјїўѓДB9?A?>8ћцЮьўўћњћћ§ўўљ§ћљјњњўўћћ§ћ§њњћ§ћ§ћњњн§ћћљњљљјљјљљњјјїўўБ]FJBA>9ўяДwНўўћљљњ§ћњ§§§ћ§ћћЮљњћћњћњњћљљїјјњљћљјјљљјјљїјљўўйˆ^;(9>9ћўЩgžїўњњћљљњѕћњћњљљњњљћњњћќњљјљљљјљњљјјљљсјљїјјўўКca919<<њ§ђзЫРЮюїњ§§ўћ§ћћњѕћњћ§ћ§ћ§§ћљљќњљњљљљјљњњљљјјтљўўСC.5"5:7ѕїјїюєњяёююђѕјњњ§§ўўћњњљљњћ§§јњљћћ§ћњљљјљёїћўїe)(;:9љјјєєђцыпнцьѓєёёїїјљњћћњћњћћ§ћ§ћњњѓљњћћњњљњјљљјљљѓјѕјўсg(05?C8њњљнјїѕѓёюђєєђяыьюэюђѓѓяђєљњ§ћ§§ћњљљњњ§§ћљњљтњљўўЮJ-*9;81ћћ§ћ§ў§ћњљјјљљјїєѓѓяёвэукпчэящюёѕјњњ§ћ§ћ§ћ§ћ§§њњ§њћјћўх`,-8570њћћњљњњћљќјѕѕїїЭјѕѓэщцшэшсхсрпуђѕєєёэыёђєїљїљљњљўўсO#48:94њљњћљљњљјјљїњљњјљјјїѕѕєкђѓяэущяѓёэщццшчэыьэяэѓѓђћбN313353§ћћњћћњњљјјїјјјљћњњљїїјјъњљїјїєѕїѕєѕєѕѓѓђѓђѓѓєђђєѓђїўюv*0&.0ў§ўўў§ў ўќ§ў§ўў§юћ§§ў§ў§ў§ўћ§њ§ўў§ўўѕ§ў§ўћ§§ў§ў§§њћ§§ў§ў ўѕ§ўћ§ћў§ўћў§§ ўїћўћўўё§ў§§ўњћўћўћ§§јў§ўћ§§ў§§ћў§ў§ўўў§ўўјњћљўўЌ§ўўј§ў§ў§ў§ўўћ§ў§§ўў§ћў§ў§ўўў§ўўќ§ў§ўў№§ў§ўћ§њћїўўЫ§ў§ўўў§ўў§ўќћў§ў ўў§ўўђ§ў§ў§ў§ў§ў§ў§ўўє§ўњћјњњўўь§ўўў§ўўј§ў§ў§ўћў ўў§ўўј§ўћў§ў§ўўї§ўћ§јћљћўўћЂ§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ўўў§ўў§чћ§§ў§ў§ўњњјљњћўўмa§ў§ў§§ўўў§ўўў§ўўў§ўўў§ўў§чў§ўњў§ў§§њћљњјљљћўўнt§ў§ўўў§ўўј§ў§ў§ў§ўўў§ўўщ§ў§ў§ў§§ћ§њљјљј§њћўўР]ўўў§ў ўќ§ў§ў ўў§ўўќ§ў§ўў§ћјїјїњљћћўў§ŒUўўў§ўўј§ў§ў§ў§ўў§њў§ў§§љљ№їњљ§њўўѕo5§ўћў§ўўќ§ў§ўўў§ўў§ ўр§ў§ў§ўћњїњљњљћљ§љўўјoF§§ћў§ўў§§ўў§ўј§ў§ў§ў§ўў§§ў§ўўщ§ў§ўћ§јљїњљњћ§§ћћўўЧA8ўўќ§ў§ўўў§ўў§§ў§ўўј§ў§ў§§ћўўъ§њјњљњћўћ§§ўћўўњvLўў§ўўў§ўўў§ўўќ§ў§ўўњћў§ў§ўўў§ўў§§ў§§іўћўљњњћљћњњѕ§њ§њўўгeU§ўўў§ўўќ§ў§ўўў§ўўў§ўў§§ў§§ўм§ў§§ћўњћјњљ§њћљћљћњ§љўў’Ckћў§ў§ў§ў§ўўў§ўўў§ўўю§ўћў§ў§ў§ў§ўћњјјїњњљљћњћњ§ћћќў§§ўўїˆP]§ў§ў§ў ўі§ўћ§§ўћў§ўў§ћољњїљљћњ§њўњћљћћ§§ў§§ўўсPZhћ§§ў§ў§ўўў§ў ўў§ўўў§ўўв§ћїїѕљљњљњњўћўћў§§љћћ§ћћњћўўМm~b§ўў§§ў§ў§ў§ўў§§ўў§ўўщњћїјёєјњћ§њћћўћў§§ћ§љ§ћћэ§љћўўБMTH§ў§ў§ўў§ћ§§ћћўњ§ћћћ§ћў§ўў§“њћјњјјїњњ§ћў§§ћ§§ўћўњћљ§ћ§ћ§њ§ўўЄ}‡q§§ћ§§ў§ўћўћ§§ў§§ћў§ў§ў§ў§ћљјїљїћјћљ§њ§ћўћўћўћўњћњњљўћ§љћјўўЮLQgT§ў§ўћћ§ў§§пў§ўў§§ў§§њљїљїћјњїњљњљћњ§њћњ§њ§ћ§§эћўљ§њћћўњ§њўўё\:[Z§§фў§ўў§§ўў§ћћњњћњїљїїѕїјћјћњћ§§эў§ў§ў§ў§§ћў§ћњћјћћ§§єўњ§ўў™G\oћў§§ў§яћњјёѕїљјјїљїљљћњћћљ§ћў§ў§ўўё§ў§§ћўњћњћњћћўћћўю‘Ha]§ў§ў§ў§ўњћјљѕљљьњ§јњјњљћњ§ћўњ§њћљ§њ§§њўћ§§ў§§юћљњјћњ§њ§њ§ўўz5HN§§сўћўћњљљїјј§њ§љ§ћўћ§њ§њ§ћ§ћ§ћ§њ§§њўћўћћ§§іјљјњњўћўћўўш‚0ES§§ћўћћјњєјљњљћљћњ§њћћ№§љћњўћў§ў§§ћўњў§§ђћўўћљћїљљ§љ§њўўэ~3BN§§ћўњћјљјњњћњў§§іўћўћў§§ћў§§ћћ§§ў§§ўє§ћњњљћљћљ§њўўцdCCOћўћў§ў§ў§ў§ў§ў§§ўў§§ћ§ћ§њ§њўњўњ§њўћ§§§ћў§§ќњ§ћўўћђњ§љўўФV[>LALљ§§ў§§ў§§ќў§ў§§ўў§§ќўћўћћѕўћў§ўћ§њћћ§§фћњўњўћўњ§ћўўžLSQPQPћ§ћўћўћ§ћћч§ў§ў§ў§ўў§§ў§ў§ў§§ўў§§ћўћћ§хў§§ћўњ§њњћћњњўўњ‹QUVPQOћ§ћ§§єћ§ћ§ћ§ћўў§§ўўцћ§ћўњўћўћўћўњћћњњўћ§§ў§§ћ§§щћ§њ§љљўўрS@LTTPIљћњ§§ў§§ћў§ўћўўх§ћўћ§њўћўћўњћћ§њў§ў§§ћ§ћћњћћч§њћњњўўнN8ETSPNљљїњћ§§ў§ўў§ћіў§ў§ўћўћў§§оў§ў§ўћўћўњ§њћљћљћјњўўФVNSQ\QG§ёаѓўўќ§ў§ўўњ§ўћ§ћўўќ§ўў§§ў§ўў§§§ў§ћћч§њ§њ§њ§љњўўТrQeVWWTўєМzЧўўќњ§њћћ§§ў§§Ъў§ў§ў§§ћўћ§§ў§ў§ћњћћ§њћћ§њњћ§њ§њћњ§ўўс›qP~ўw=ўˆОўw=ўџ=ўџ<§wџ<џ<ќwџџ;џ<ќˆџџ<џ<ќwџџ:ўwџџ;џ;џ;џ;џ:ўwџџ9ў€џџ9ўˆџџ:ў€џџ;џ;џ;џ;џ;џ;џ:ўwџџ:џ:џ:џ:џ:џ9ўwџџ9џ9џ9џ9џ9џ9џ8ўwџџ8џ8џ8џ8џ7ўwџџ7џ6ўwџџ6џ6џ6џ6џ6џ6џ6џ6џ6ўˆџџ7џ7џ7џ7џ€!p8B>HPMI?0*24AGLC7[ЂЮжтнтебЮРЛРблнеЫнцуреаЮЫннгкццсжеепснпчщцщцшm5CNE?<::;@B@8,MЩюхзжЦЌЄЊКЪСЩЩЯзжЪЮОЗЪкнгЭлппеЪЫЭксрчьукйцщючC;EEBHOGFBGOPH54+.gдштзЂ‚˜ЄЊИЦЮЩШТТЧККЕЖЦСадШШенмпкццтцчшЯЪЩзрцьYG?B?:8;>EBHMa[E50|ЗСЦТРКАЌЌАСШСОО€ъТОЦУНССШЮдзЯШдзсрлбджснтмкйзцQY\B7357@A@UZUG<17iдаЛЗОТЦЪЧЧШЛЖНЦЫЪСМЪОбкдЭЧЩТУФЪаксцшщэччюычсл19IG8-57EBEISOL?*)…МКЂžЊТЩИИЦЯгЮбЮЭаЯЫСЮФОдлбЦШблзЮатчухцёђѓђёщц\VU4#$*+?<>CIMLC?YМЕЂЇЕСЧТЗЫкжбгЭажллЩЭЫЯннжадЯзжлмсчттцхэђђэлаF;)&::;":>:IQАюрнсхпкррлеууцукЫЯжжЪУРОЛОезгЮРИДИЛУШЪезтсрмршыGG2+212,:@:ENQH(NТяёшхщьчстт€—схййммжктыэчтрмррммлЪШЭаадмлдЪЛВЛемнж0>;&1>A?BPMOCGSOP85aЩћјяєїѕђяєыццщэђэмпсуцсйжлтцуутццусс щэсгШШСЛЯЭТКLJ>99.58?GO`JOŠјљњѓѕѕєђёђяюьхнпхчутплртмккепцэшсйеетщчмззпжЪЧШЩдOIC;2<8AEMSYAQŸћ§јѕђђГєїѓђэящчцчщшщчшєёщпЮдзкчыщшскгжгеббдмпуллпICFH>557]QJHCP•ћћѕѕђїѕѓѕїѕєёыьяюђэђђ’ѓяуыустпшююшумпйЫезмдекйхпкA:183))#$9CMNEЊћћїљєљљ§љјѕёюььёѕѕєѓююёшхыьюууллсннсмдпхсчтдзлнЯОA8>F:53>?>E7MAЅљљѓѕѕђјїѕѓѓѕїїюытчэщщРцшюхутпмйеемчшшщыђёьчткЮОФ@?HCB:.:?CAAGT™ьєщьёѕѕјјњјїјјїяьчурсушшŽыщутшрснммцщщцяєєюпжЩНКО<@GA08&,8L15FЛєщгкцыђєљњјјїѕёшсутмсхпмшштхщщшулемущщшыюэрбЩЪШТТ5:B@?8442?F<4ZУшлйлтнкцяѕїїЃюцхчурсчпшшчцхщячщхшхщчухэёэщхшлзб@:ZЪёѓшььхкезклзлтчышцщшщущэпшющпжлцюшрпмнеммтушяёёэп:9;2kxuc<>8J3gаюсрлттускдзббЫЧЪйьёєњѕюяутцселхтучштпнлЮййзссуьчл@;9Ii\*AHI4hккУелнрушцхнгЮЩРИЩкуюяёяшыютсчцущэущьмлзЯЯЪЦагмхтж>HB"-?UL<8;>LOV391*AZaZЄєєспмкаРИШгуучыхпсрпзжЯЭЫЩбзхщээчмгбзйнсхшшсхмкгаеGGNQH>E?44PL]дјјючснжЯЩШЯадкхцчштжЯЫгелкайсэшутчпбЯажехцуннллЭЮбA:@@FFJCOTZU`ЧћїююхмттйгйбгдпчтсржкйцытлййкбглдЭЩбаЮЮенЩТШммдЭЭг>HEC>@LJMTILvн§ѕяышчщђяьщчулксслмшщхёяьэцнздСЧккЯЧЪЯЭгаЯЦкдЭСУаеLTIC2133T5)~уљђяёюыьшщюээыщчснгацюэяэььхсумежзеппзгЧЯбгмлРШЪечш2@2!LPHTo]U‘єћњєѓяђђяящьюшуэщсжйгксхснсрцтрнебдктмеЦОЮкрмйдкшщэ%5MT[u]UЦљћяѓюёѕїїђюыьушштпŒйЭлпктрсрпзеббмйЦЗСЪйснййсьээ)$(+)$?9EE(Bi.?HI7H–љ§їїФѓєїјїђююыщььтчтшысррттуыхртыцртсркмлгбШУЪЩЯ49-N‰W%COGZТћћѕїїјЛѕђђѕїёђььчшчппрмлгуьштззхчучхыяшхтшнмпйЮСМ47(&ej:>HMpчћ§єяяђїћћљїђёђђ€єыщшщхмлпцпххцьхслпклшёяшшюшыпЯШФЛМ29<%AN75cjEјћѕѓяющёђєѕјјєїїѕѓёёэьющрхсйжцыттшчппжсщмтцэщткЮШТКВB?;8:77(EQ7‡ёјяюыэяэчшщюёѕєђѕѕїєёяёёшцрушхьюю€Ошмдйурнрртшплегмей528B95<@L<&ŠяюєяььющтбесшяыющюяююёѕѓђюцшшхрмнущьымЭкнлЮаджпшушюя--.579@BQPBžѓяпхуурнрнрчтуяэьяююяјјѕєљѕђяющучцщышцрзппззнушёђѓђѓ,,00:4?BOJ8vйшщцыыцпшхэщюёяшутхтчђёѓьђїѕёѓїѕѕђѓюшнзкггбжкцшээ€œ)%&01I9.8*|Цегухрщыяыэђюччсьчрзсыюыыѓђїѕёђїїѕєђђєэюэыулгаагнснп.%!(((~юѓрйжкуёючутзрхшчхщщцхтсшшяѓїђђёяэёєёяєѕєђѓщттепмрлз*+!2JJZ1cРюёмбЪгчычцсммтпнззпспчэёєєёѓѕђѓєѕђѕєюёяяёёычьэющм&C]7$+5-@S1SЩяындеезхэщунбабздажмрхтчычщутууцчыьяёєѕєяёююэьщхчрр@C?+-1.#;>)PЮщтлЯШЩОРжхцчуйжкркнкемуутуьщыпптрнушшњяьяёьюю€эттус)(.19353<<0cёщЦЯййЯЪЭЮгмллсруымзегепыющкЯШСЭдпсупцпцђёэхттьщхсхы5+.,9>5;:AHUQOBhМљњњѕѓѕїѓєђђяѓѕѕјѕєјѕїєђѕѓѕјїїТѕєђѓѕїљњјјњјњљo7ENHEFGB<:8<@LOLHUщўўїєєѓѓёюэяђѓђѕєѕѓѓєєїѕєєѕјѕѕ‘ёѕѓђєљњљћњњћњћ:..FG@HL@;@EHFCFA2[ьўљєђхйзтёяєёѓђяюёыьююяђѓѕѓѕїѕѕєїѕјћћњљѕѕїњјћBBCIHGIPI?EW\QB@3;|ўўњѕгЛнтщэяђђёё€эяыыэыёёђїјѕѕјєјєєїїѕєјєѕѕјњњWIEBF?7;Œўўчшшюяэьээюьяяђёёєьѓяяёђёяёђєѕѕијїїјїћћљљјјљ2?JG:74>CFFN[ZJ@55ЈѓямнсььёяяЃюяяђѓёѓђѕюѓїѓђђєѓђѓѕїљїјњљњјљњћњјїWZZ2$,*5?A;CNSQBCZдыЩазцээьёяяєѓёѓѓђѓяѓюђѓђєєѓѓєяђёѓѕїјјїјљљїЯѕJ<.*7<:4.AFLOQN7;|ўўчсятыэьяђѓѕѓђэяяђюээюыээѓђђёёпяѓѓєѕѕєїѓєїјјѕJF;??AHJAHLNOSW?hдўўкћэшшьэюяяюььюёюяяэчцщьђяђєёѓёђѓѓєєёѓђѓѓ…єї*;C-)1>A>A?GIBHFўўїѕїїєёьшхшычшхшээђѓђђяьыыэюяђёёяђєєёѓёђяђѓѕїє-7+!1475, %WYT.NЧўѓѓѕљјљїѓѓэючцтухшцыыђђяяђюяёѓєєѓљѓєѕѕѓєєЯѕѓїїѕ33-(7<>CHbVdWW?EЛўњїїѕѕјњїјђѓяђэьщээюёэюёяюѓѓђљёђѓђѓєїїсјѕїјїљ%-.,7;9;?48@AAPUУўћѕїѕїїєєѕїєїєђёѕѓюэяяЧэяѕђѕєђющьэяююяюѓђѕїјјљљIH719<:;@7:?IFa{пўљїјєѕѕєѕѓєњїљјїїѓѓяђяђяэєєђёюышшьэЩьяєїјїїљkpa><3>BIPOFFOZP)TЫўћїјјїјљљјљљѕїїєѕїјјљљ§јљјјѕѓєєѕїїѕєѓђяямюёђђ;G:@FNSSEUЁўўњјљљђњљћљјѕїјјљњћ§јјїжѓєјјљњљїѕјєѓѓђѕєєѕєїїѕEFEFC93?hPPFHU‘ўўјјљљўњљљЧјљћћ§љћњљљјїљїјїїњїјјљїјѓёѕѓѕѓѕєѓѕѓїѕ>19<80,4*?EMTIДўўљјћћљ§ћњљњљњњ§љњјјќєїјѕѕўљјјёїљљѕєјѕїњљїљѕїѓѓщ@;@B?:>BGC?;CHFHSZЎўўјјђњљњњљњљњњљљјїјјїљРћњїјѕѕєјїјњњљјљјјђђёяя?GF@?3:58FO:9CGEHhU]Юўљѕєєѓѕѓєѕїјѕљјїїѕїѕјїјјїјјўљїїјієїѕјїѕѕјјњњыљїѓ:>><&*3:%Om`.+?GM?BMNMZNM{хўўљљј§ѕїјјХљјѕјїјїњ§јїјїјѕѕёѕѕѓђєѕѕєѕѓєяїђєђёѓѓѕQSM>:2:$7M5)ƒэўћљјњљїјјмљњјїєєљѕјјїјјїљљјјїєєјѕєѕѓѕёѓєѓђљђїјјэ<@08G[O]q^YЄўў§љїљљћїјјѕїїјќїєјѕѕћїљѕјїїѕкїєѕѓєёяѓђѕїєёђѕїћј+&39P^ZvbZЪўўјјљјљљћјљїћїїјїјѕєїѓјњљјјмїјѕїїєђђєяѓѓѕѕїѕїѕїј0&!#:10C>ABWпўўјјљјЬїѕїїјѕђђѕѕјљћњјјїїєѕђѓєёѓєѓѓјїїѕїїј>J9*8OLNME9MРўўїљљ§њљњњЩљјјѕјљѕєѓїїѕјїѕѕјїїјѕєєјєєѓѕђѕєєѓєђѓѓїїBNH1Mi5FMC4F˜ўўљљяњћћњћљљјљњїѕјѕјїєєїјмєѕјјїѕјјљјїєѓєѓєєёђђ><5T•c3IMHYШўўљљњљћјљњљњњќљјїєєњѓѕєѕїјјѕћјѕњњљљцњјљјєєѓђё9481i„i?JNQzёўўјљљћњњћћљјљљшјљјљјљјїїєїѕјњјљїјѕѕїїјїїрѕїєѓѕѓёяя841%CI99coFˆўўљїљїљјљјњњ§ћљњњЦћњљјјєѕѕјїїјљїїњїїјєњјњјјїѓђђёюяAA:>FB?,@S5ўўїјљјїјјїјљњљљњ№љјњњјјљїјјїјјѕїјј§єђѕѕъїєѕђѓїђѕє;9;A@A?HL@%”ўўї№ѕєѓїїєїїћїњљћљљњњіљјњјљљїѕѕјјќїјњїїўѕїїлњљјї575:]тўєшщеРЕСжусшрыщыспЮарэяэцэяѓэтхяюёєљњљюёѕљїїVSW\[[\]`c`ik^SMCB|ўўїэНБИЦдкухскклЯаЭгдпышршэєѓђюђєєѕѕђшмлэєѕњkY\\VQNSWYaajxzZMIзкпеаЪЦТФШкрркздебмлггкмчтьхчьєїєёюэяђєёѓюыяјkor^QIPGVZagrvhUGJющЮФаемуслйЫЫгурсеескчяьнйркртхыюђѕїѕєљљњїєёёFJaaGCHUW\\iopjVE<’жбДКУдхйбзчцтцусшчрпыпмуьщттьээыщђєєїѕњћ§њћјѕrumM7@CLY`V]iedZVnгйЏЇВЮжйжгсэыцхстээ“рурхэюшщсшщыюэѓљѕјѓљїћљјђщePABHINB@\^cangHE‹ўўмЮкЦЭксрцюэыцющрлпзклтсслыючжЯдмцёюьыэёјѕїђщ^ZONPY\[aieeceqSxуўў€хњхЯжмекхмдбкгзтреЮЩЦЫдмчщтпкрьыухтмнччыэюь:JVICLMTY[\]gVVTЅўўњїјјїясмЪЧЫЯЧЦЦУзхэьшмжЭЮптмлмйцььшчснедрсщюѓFF>N9FIEF#>vph@aеўхђѓїјїјѕёчйаЧЩОТНЪгппсьэтмлрцёьытцюёээюцснчщюђHJ@GEMTY\zqimNVЛўјѓєїїѕєјїїёёхмазгдбесрлрыэцттцэяыюяыыёєљђђєЭї9>EMJJUQQWNSWY^nШўїђєєѕєђђььѓјєђчтчэчлееждйяэщсзЯдд”лкзцьєёяяђѕљV^ICPML^STV]\Zj‰пўѕїѕїѓёэппєїњјћїїючжпрржещтюєюлУШЭЮШЪЮЫдшэѓѓјѕљŽ‰}UIVOTS\c`cipШўўњјђєѓѕєђєјњњјњњИјѕєњєђыунцыюыухчпрлеекглшђяььёda9.NQQ^^VW[\NNОўўѕђёѓїѕяяёѕђѕјјїїјћљњђюёђђэ€"хцщђёѓёёьцпултхндЪ^\W[OSZ`eghnuOWбўўїћјѕєёѓѓяєэђёєёѓѕјљјѓяэёѓѓєѓяёьэђђёёячпдШечьчеJSJTVdbbZZejd;`жў§єљјњїѕѓѕѓѕђээюыюяѕїїѓѕёёђђяѓэпкшхчыѓэшужЪжсьяыHTQTJ\[\hmmnbUdЯўћїјїљјњїїјњѕѕѓѓёєѕїєљђєѕјєјѓєёёђѕѕїђђэцшхкгглпчPUTWSPOQ`nhmTMzлўўјћњ§љњјїђєѕјїјєѓїѕђѓэюяєѕѕѓєёєѓѕѓђѕїђьтхмбушлк]VSUWVQQYahniЁўўТњћљћљћљњѕєёђђїѕѕєѓяєђѓяѓяђѓјєїэяэяѕјѓьэєюсцшщюb^WZPLITYdmt`kЗўў•љћљћљ§њћћњѕѕѓєѕѕљљњћјјёщушяєљїѕєюэыэщщчёёяѓђяя[S\a[OPO~qceZhЃўўћљћњ§њ§њ§јњљїљ§љћјћљјљљєѕєєѓїљљѕјяюыщчэьытыёёыQSMOJLGJAVYgg[Сўў§њў§§Оњ§ћњњ§ћ§њћјљїјєљїєѕїѕѕѓєђєяющююђѓєхэяёхкWTMVNUVTYYbZaZЖўўњљ§њ§ћўњ§§ћќјљђјјтњјјїјѕєёющэюёєѕѕјѕљљњєєюцзкWS^^юYPQUZa`bmЋўўјѕњњ§ћћЗњўћњјѕђѕђђѓєєјљћњљїєѓяюѓѕјїјјћљљяыхрйзNW]cTNHJSQhVM\Ыўўэђњњћћ§§ўћ§њњѕјѓѓёёѓ‹љїњљјљјѓёэёєјѕњљљјѕхпупмпSU[cSOSLTY]VMqлўѕышёююѓњњћћњњ§јѕїјяѓђѓѓєєїѕєљњњјѓєїјєѕїћјїѕїєэщт[ZdibWLSWZd|cnЩїююяюыцщюѓєѕњњ€Юїјѕѓёђѕјљљѕѕѓѓђїљљѕїѓѕёђёїјћњ§њљєїPQTW09Z[cEєїтюэђєїєјѓѓчхтлйхьњљњњћѕљїѕѕѓѓ€їєћѕљєђяютухсуђєљјђ^[]@Eatd[[YQQяўыцччяїєєѕѕђїѓящьэєєїїјєјїљїїѓєїљјњњїђыхыээѓљѕєюђOWak[UMOQLh`Œњћэшнььпхюѓљїјяєёяєѕёюьяьччёєѓїѕјљёѓѓљєђяяђљїѕёячь[W`qnESYHPw‚rНўўѕѕюьргзхьѓѕѕїђэђђєэыцулршэђјїљєёцэшђюѓєјєђђѓюёщы]\gk\ZV[JQkduыўўљљєяьцлрышяєїјїњђѓцхьььюхьёїѕїѕѓяюуяюэєјѓђяяфучюYZV^V`^`htopuсўўњљїєёїэшщщ€ГяёѕѕїёяяѓђєђячяьхщэьщуьщхтчщйетяярнуэUc\\Ub`dgoacŒёўўњљјїјљїѕѕїѓёьѓёяѓїљљјљєјђяэьпуыюшухьшышчсюючпхьяirhTNZH;MkF9•ѕў§јњјћјњјїљћљљєєючьјљћїљѕјїѕѕѓььяёяђьыпццщььлмрёїњ\ZJ>FbqkzroВўў€љњњћљњїјѕјїјѕѕђёьэёѓђєєѓєѕђёђяььюђющзмуёяёышюљѕљ>3.5AQguqŒtmкўў§ј§ј§њњљїїјѕїєїѓѕђёяяуэяђђєёїёђяюьючйдлуђёђюёєєѕћGHH>@E@VOSSgыўў§јћћ§њњјјїњїјєє€ŒјєїѓђцчёїїљљјїњѓѓђђцтсрччыёєѓуыёњTgPAJb^kbWJ[Ыўўњњ§њ§ћњњ§њћѕљѕєѓѕєѕєѕїѓѓїѓїјјѓёьшчюѓющюэщсэёѓшяѓєaj^MaƒC``eOaЈўў§њ§њ§њ§ћћњћљњљћљјєјѓјєѕѕђёєѕѕРєђјєјєѕѕєђёэщцнкстшZWY%gАtA^h[xлўў§њ§њћћўњћљљњћљњњћјїѓђяюэьёїєјђђмѕѓѕј§јјєљѓєѓєэыкеLQQIN`aa‡љўўћјњћћ€‹§ћћљњљћљћљјѕјїёяѓђѕђљѕѕїїьяюяєњїїєјїѕэцткжмOOIAbdHO\˜ўў§њњћћњљћњћћўњўњ§љћљ§њњєїёёєѕѓѕђїђѕѓѓђѕђѕѕћѕєшуккеЪVNNaS[S>YeMЃўўїљїљљћєљјњљ§љћњњљћћбј§ѕѓђѕєљѕјєљѓѓщэђѕяѓѓєђяыщыяэяNPQU\Q]Ye[:Ёўў§љјјцяььѕєљњћљ§љ§њћњ§љљѕњјїёэяѕѕѓбэыюђычыёёєѓѕїљICMMQQW[kdYЗўўэѕёѕёєђяэјїјјљѕїњ§ћћл§љњњ§љњїєѓѕїљєѕёїёѓэяяѕѕњљ§љњIHIPNV[aaёLŠёўїђѓєјјєїєљјјљёїїјїљњњЯћњ§љ§њ§њњљћљњѕїђѓёчшэёїїјѕјEA9A@NaTSM@ряряяѕѓљњљљїŸѕєљєђѓљњћљњљњњћљњњћљћљњѕљїљєђьшцяюѕюђIA9H:H;Y^O?ўўяычёёјљљѕїђїєїєїђѓєїєєїјј§ћ§љ§љћјњјњјљљћјїєђёђђяхHF945%Bјљ§њўўњћњ§§ћўўћўќћ§њўўмпкйаЦЩйтюцыƒ:OaWE.5A>8:1)*-?B(;ыћ§љ§§ўњўўќћўћўўќњћћўўзњћћўющчдЮйксюѓє{G>YJ1)*&+90:;;HF5Mѕ§ћљ§ўўћўў§ў ўоёчяцпшрамлŒQJBO?++$(8;BFEJYYSЩ§ў ўўћўўћњ§§ћўўйрщяюхнпЭкш–QC):<183<8*98><::.,dєљўљњ§§ўўњћ§§ћњўўжюцхуссыђјѓŸV>7%73-171+:9C@?YHqШљљѕћ§§ћћјћўўљњўўћ§§ўўУњ§§ўррмкрьюэёѓЎcC<>?2.2279;CMB<.;VЦћ§ћ§њўћўћњїњўўњљ§ћ§њ§њњ§ўўљмтмкйуччрёжŠ`GGM?<;:@EB?:C@,5;[Сљ§ј§њ§ћћўўћђњљљћњ§ї§§ўћ§ћўўРћўяючмрстууѓѓЈ<4BHH:134GPCZЪјљћ§њўўћћўўћ§љљћ§§њњ§ћўћћўў§љўўкумжекзчьёѓыЌ>(1;;9@A;3FEB>CO^>Gнїљѕљњўў§јњ§ї§ў§§њњўлћ§пйзмтрцёѕћћхtFTV87EJB;II:EJrj>Lц§јїїўњљљћљ§§њњўўўћўўћмўцчнжзпсушњћљ…02?3@@G@C?>1@GJHWЛјћљљњњјєљљјјѓ§њ§§ћўћўњ§љ§ўўвњнрлйдЯЮкцїяЩ^!3IC412>CJ;?2+8FZQЃѓєђїѕћєјјћњњ§§Лљјњљљ§ўўћ§ўћўўћўћнмуузжрумчыЏg.1-0+.45??3412AJ[йёрщэюѓѕїїјљ§њљѓѕјћ§њњўћўўеблкуцмсрчяс˜M1C;&)1;?85>?4OQWаєїыыђѓє§§ўћўў§њ§§љ§ўўћћФ§њ§ўњрутхшхртшїѓѓb$*5;<72-!&%3IG7IF\Яїюшяѕљљћљћ§ўўћљўћўњљљ§ўў§ћЮўћёѓяцуттхтнєїk(,8AA;2,.;FTG4JМёячэїћњњ§§ћћњњ§ўўўћўўўћўўгяшучђєїяузєюp@5CHIA125:8274AF;\Июљѕјљћљ§њ§ўћўўўћњњ ўбѓюяёђјјђшуёю<1BOLA#00+:9FGVSLJЂпчёѕћ§§ўњ§§љњ§љљ§ўћўћијўўюэыюёѕђящшюгV(*IPO>,.0325<<4G[[Сєћѕћљљїћњ§њљњ§ўћћ§§њўўияыэяѕєђэыттйV&-?FC7#-2.19?CHAOiьљћѓњљњњ§§љљњ§§њ§ўўўћўў§вўчышыющьчшнщь—):MCOWзљћєїљњњ§њњўћўў§ѕљњўў§њўўњ§ўўднлдзйнтспутлА$%$?H]FUЯ§§їјјїњћљћљљ§§ћўўњњ§љљњњ§ўўажЮдлйжЮЫСЭЭНŸ@#4;:4347FC9HV81љ§јћ§§њ§њ§ўўїћўњ§§ўњ§ўўўћўўЭЯзмкйкхкНШкьч])*708;9:ENQPOW[@B–ћ§љљ§јљћ§њўў§љљ§ўћўўи§њњћћжедЭнягДЇЯцюыw0<,5A8*9;FBEAE?8@›љ§јјєљїњљњћўњњљћўўћўб§јћ§ўўуптяхйНРТчёёљД<75>IA4881A;2CQShРћ§јјњљ§њ§§њўўћўў§ќњўћўўкшёянАЌСбгжпёєЈ+4@732.+8E?9JbIB|ћ§јљњ§§ёљ§ћћљѕњњ§њ§њњ§ўўў§њњЭјыОИДМалюсыїє1-MG@A2-39EEIMSGEФћўњћћљљћљј§§њ§њўўћўўћ§ўћўўмчЧУДЌЫщцтхчљћ›@@7BLAJB<:543]wG%Ѕћћїјјў§њњљћўўћўћўўбњћ§ўўћўћўўеРНЦЯЯьтйймьј—*?7%87ZZ;9Ÿћ§їћ§§њљћљњ§ћћў§њњ§љњњўўлћаЯЪЫЯЪктрсжхєЅ7?8@EGB5:9+#GFESЈљ§њљљ§њњ§ўћњ§§њў§ўў§ЯпмпррцшытскэшЁ:9+9E823@B>&)^^MQљ§јљ§њћўўћњў§§љњ§§ўћ§ењ§§шщычшэяђюшущюЁC@,AB?>7AMIG:E[>&eљ§љњ§ўћњњєљјљљњњ§њ§њў§§ћњ§§њ§§ЦњыыщэыѓєєяєьђуœPGHIMQWcYj˜љ§јљћјљљњ§њўћ§њ§§њ€‚ћљљ§ћўўњ§њњурутудлнптчэьЛS1JOSUIHB‹љ§їїјјњћћљњ§§ћћљјљљјљ§ћ§§љ§њўў§њхртмлдШЩЫажюѓЋL58BE>;-7;@LJOGBW›§§њјјљ§§њљњ§ћљњ§§њћўћњ§§ћњ§ћћўўЫсчщхрбпллЯйюѓЗF>$(38@5781;GVOC^Ёћ§љљњ§ў§љ§§њ§§њћўћћў§§ЩњћўўћњћћлщђєёчйЭнунэтЋL>$2IJB988CE@MPS\Žљ§јјњјїјљњўўћњ§§ќћ§§ўўбћўћњ§њћўмрутхцуждпсщюРN-,PZP<748?>71APE‡§ћјћљїјјўњ§§ўњљўћўўћњўдсхыююськмрььВ?1CJJ?8@94874ge2kј§њњ§ўў§ѕњљ§§ўўћўў§ў ўоЯмцущшттущкЪмЦ`;0IOGB<853>IHP<M`W:jућљїѕѕїјњљљњ§ўўўћўўћўб§ўЭУбннЯЫлпнмкёЯ}A7LJHSN;iы§їїњњћјћћ§§ўўњљ§њћўўўњ§§ФедЮЭЭФЯЭзхыјљљt93QWPL8>ACGBHeH.`цћ§ћњ§§њ§ћјњјјїѕњњ§њћљ§§љћћњњ§–клгЮжаенуюђјјёt;9HLPJHAFLI".kiqЂј§ўњ§ўћ§љљјїјїљўўњћєїљ§ўў§§љљњ§њззгйзУЪгпхѓњљсt8&"HPVQNMBC*4Uh@MЦ§љћјљљјљћћљќјљљ§§њњ§ўўћўўЩ§хыээшспЫЭкэяћљИE-ANP@@?4%;@-3EFBИ§§їњљјљљћљљћћљћљљ§§ћўў§вжзЯгкнпжЯжкжтяМO-QVQSJN>9<;BCGEFЃ§§љњћљљћљ§њњљљњњјћ§§њњ§ељћњ§јћмЯЕРбеннмаШЩжсЧn8OVSMIF?HHF>>IPVљ§њ§§њя§ћўњ§љћњ§ўњ§ўўћў§§њЮљдггеезрчмЪбйкмЎM#Q[SC>FA:937;BH[{љ§ѕїњјћћљћ§ћўњ§ўўЫћўљѕ§§ћњ§њљ§ИЕРУРарцчлагщѓОI%5C<;9A59;YЛћ§ѕєѕїјјФљ§§љњ§§ћћљјїјјњњ§њњ§њМУЯзучььысучщяЮ\5GSIMJJ<B:5;:9?B5);Вљ§ѕњљћ§§љћјћњ§§њњўћ§ћўўг§ћўў§юёюээяьчпйгЫЭЫЕb:;II:BAAELAHLLF4Sž§ћјїјљљћљўњ§§ћљЯњ§§ћљћћѓёѓьэцскезйлтнФdGTYMHIJGGH4-:FJ>Mœћўћћњћћљљ§§њ§§§њ§ўўћњљћћ§рјѕјѕѓёєѕјўўkAEMhE%49A;@C@98@;%<ўў§јў§ўў§ћ§ўўќћў§ўўћїњљѕєєўїўўъŽ@YbaM4;BE725549??&>ђўўјћ§ћ§§ў§ўўў§ўўў§ўўлјљјљїєјѕ§ўў‚NCTM2-552+78>?IG8Hјўўћћў ў§§ў§§ ўпј§љњ§їїѕјј—[U?3,^њўўћ§§ћўўв§ћў§ў§ўўњћ§ћћўљїўўЉ]E92;;>>?<74@?ABWGpЭўўјњћ§ўўќ§ў§ўўўћ§§ў§ќћ§§јјмїјјњљўўНoJCGC>@;AE@>BEFG94G\Ыўўћћ§§ўў§§ў§§ў§ћњ§§ўћўў§њ§јљјјсћўђžmPAEC>85;;@>C85?<;@?FUbхўћјјљњњљљњћћ§ћ§љњњ§§ўў§ўўщњїњљїњјјѕўўАZ$0F>8-577<<я?FIELSпўњјјїјјљјњњѓ§ћ§ћў§§ўўћў§ўўзљњћњјњљјјўўжZ%<@>75110?@BABC9Oьўўљїљљњњћћ§ўў§ўў§ећљїњјљњјњњўўьƒdFAA:;73*,EFJI@VZ`йўўљћћ§ўћ§ўўіћ§ћ§ћўў§ћўўєћ§ћў§ћљћљїѕљљўпp++;:79;4529EFHAQ[cуўўљљњћћњћњ§§ўўћ§ўў§ћћќў§ўћћўћ§њћ§ћћљцѓўўr*5?>CG?@@><:9GcZ@Tгўўћћўњ§§ќћњњ§§ўњ§ў§ў§ўўўњћћўљћћнњєў§rE>CEFCA>;?@>:EJJ@dЮўўјњћњўћ§ћўў§ћў§ў§ўўѕ§ў§њ§ћњћњњљљў№„;7HIM;;11>AE1Sgbбўўњњћћќњ§ћ§§ўћўўўћ§§ўўїљљјѕеєѕўљc)4AB@88227:>AEB@Vpєўўњљћ§§ћ§ћў§§ћ§ћў§ўўђ§ў§ўћ§§ѕѕїѕѕјїїоњўў—)<<9?>9878AA5BONNQжўўћњћ§§ћ§§ўў§§ћ§§њўћ§§ў§§жў§љїјєѕѕїѕѓєўўН0#+3:>;535:98>[OZVЌўўћћ§њњ§§ёњћњћўћћўћ§ћ§§ў§§ћћ§ў§јјћѕђђяёёжјёДC*$07;7,#&<;;@L^LUеўўћњњљљњћњћћ§ћў§ў§§ћћ§Сў§ў§ўўєїѕѓєђєђєѕђцНG**0:A:835A@5Сўўњњљјљњњћ§ўў§ў§ў§§ўў§ў§ўўа§ў§єєѕєєїѕѕѓѓлцЦM.9<::1887;FF<:3@[Иўўљјњћ§ћ§ўћћ§§ћћ§ў§ўўв§ў§љѕљјїїѕђызхўыW.8;894::9BICCGV<2…ўўњњ§ћ§ћ§ћўў§іћў§§ўў§ў§ўўа§ў§ѓєѓѕїѕљхЦЯхўў`+27<:89;;FOTUSZHI•ўўћў§ћћњ§§ў§ћћўў§ўўић§§ўўєѕєјђјхКЉйїўў}9F2><:9:?@LIEB:7Aœўўњњёћў§ћ§ўў§§ўў§ў§ўў§ћѓў§љњљўѓтУЪЦяўўцИA:>B@::<;<<@BESVgОўўњњљћ§§ўћ§§ѕў§ў§ў§§ћ§§ўўа§љўўхВБШйпэєўўЏ+!8<<:4,37>CCOgH>~ўўњћ§ћ§ћ§ћћњњћ§§єћ§ћ§§ћ§ў§ўћ§§ЯўёЦМАСзуїєѕўў›;;H?B;:42:CJIPWJ<Ыўўљњњћћњћћ§ћ§ћ§§ўўйђЪСЗЋбњѕѓєјўўЁ;E7HMOGC?4:?2^~F%Їўўљњњћ§§§ў§ўўњ§ўў§§ўўб§кФСЭЮпњђєєѓњўž&BUCEGEF?58-9]ZC;Ђўўљњ§ћ§ћћњћ§§ўў§јћ§ћћ§ў§ўўмкдедйуьђєђѓўўБ>C8;AC?@?:5-BAIQЇўўљћћѕ§ћ§ћўў§ћ§ћ§§ўг§ћтушёєєђєїѕї§ўЕ??5:;A>::CB+9a]YSŒўўњћ§§ў§ўў§§ћ§њћ§ћў§ўўўћ§§лћьёєѕїјљљњљјўўВHG9BFECABNMF:CaC#hўўћ§§ўў§§ћ§љўћ§ћ§ћ§§хћ§§єїјјљїљјљїїўўБU@BCAGH>BJJѕGM\O:–ўўњћ§§ћ№њ§§ўћ§ўћ§§ћњњ§ћўўшћ§ћў§їєјѕїїјїљїј§ўУN<:@BBя?BMQTU\bYhŸўўњћњћћѕ§ћ§§ўћ§ћ§ћ§§ћњћћ§ўўћ§ћ§§јјћєѕѓѓѕѕўЁЯZ7AHJIE?;FLSYVNNG‘ўўљћњњљњњћ§ћ§њћћ§ћћ§ћћњћ§ћ§§ўў§§љћљјѓёѕєѕѕїўўИYA:?EFA?>CHFNSHHYЁўўљњњћ§ћ§ў§ћћћ§ћ§§ўў§ўћ§§ўі§ўўѕјјљјњѓѓїўнТMF+3:A;>947AMOOH^Їўўћћ§ћўћўћ§§ћћ§ўўП§ћ§ћ§ўў§ў§њњїјљјјѕїїђђѕћўНQF+:FLB72CJNMJUYb”ўўњњљњљњћ§ў§ў§§ћћњ§ћўўг§ў§ћ§ўўєѕїјјњјїїєѕўўс\7-FPLE94>C>>5GTO‡ўўњњћњњїћ§ћ§ћў§ў§§ ўќ§ѕїљљуњїњљјўўУG8,BHGFJEAA?<@kg1mўў§§њў§§ћ§ћћљў§ў§§ћў ўо§јїјљјљњјјєѕяўйgB8GFIEC>47;HIUA;rўўїћ§ўўћћњ§њњ§ћў§§гћ§ћ§ћ§ћ§§єѓћјљњјїјїєњўщgEBNVUE8><79@CMF9rєўўњњјћњњћ§ћ§ћћќњћ§ўўћ§Яћўћў§ѓѕєѕїјѕєїєєїўчk57MQOIFBBAB5Tg`?iщўўљјјљњљћћ§§§ў§ўўў§ўўў§ўў§мёїєѓђѓѕёєѕѕїўх…F0A@EF?;9(BNNMHFJE45YpEUЪўўњ§ћћњћњњћўњћћ§§ћ§§ўє§ў§ўћљѕїєїїѕѕеєїўўОJ-7EBE?75<@?;8BA>Нўўњљћ§ћћњћћњњћњћћ§ћўўќ§ў§ўўг§ћѕёёяёђѓѓєђёђјўЩQ,LOOHOH@A@?>?;@CIaўўљљњјћњћўў§ћўўљ§ў§§ћў§§љўћёяыюєєѕЫїѕѓўўЭL3@?<<897:BGJV)!Zчўўљњљћ§ћ§њћњ§§ўћ§§ћћ§§ў§§ћ§ўўюэюёёђєјјїїѕєљўђu:IIњJMLQMHHчIJ?B\Рўўјјњљњњ§ћ§ћў§§ћњњћћўњ§§ўћ§§ћёђѓѓѕѕрїѕљњїўўхc3@JMLVQHEGOJHNMTYœўўљљњњћќў§ў§§ћўњћћѓњћћ§ћў§їєјјїљљйјєєњјЪ\E5FE>BE>Ќўўњљћњ§ћћњ§њ§ћћ§§ўћўўд§ўћў§ўћјјњљљїїѕѓёёђёєаq@4LGA;@BBFPNIJJ8U—ўўњњћњћѕ§ћћ§њњћћ§§ћћњэѕјѕїєѕїєѓѓєє§ўзkHMJJGюOME>>?E;NЂўўњњ§њњћћ§њћ§ћ§ћ§§љў§ў§ћњћћрьяьтрчыыяљўxQT[tW?HWQSVP^TMON5Qўўў§ўўў§ўўрѓїѓэтуьђїўўЂIauk^INUUWIGJHIOS:Mўўќ§ў§ўўрїћєэыэяѓњўў’ZOc\F4FLOHWMQTS\]iхўјѓѕєњј§њўћў§ў§ўўзђёђћѕѕѓђђ§ўж^+#SPN@GHAFJSSVVQMeђўўїјїўњћ§§њў§§ў§ў ўд§ўђюяјїљєїѕўўщtYUFLAF?>JTZ]ZYnkgрўўљњњў§ў§ўўќ§ў§ўўў§ў ўїјѓїєђёѓѕўўцn9>COIFCLBJBMZ\Zcdtыўўјњњ§§ў§ ўањ§љїјѓѓїѓѕўў7BJMPML^SNJJV[xhP^еўўїљћ§§ў§ў§ў§ў§ўўйћ§јїљћњљєђўў‚VNQVZPPNNQPNPVW]Ovаўўљћ§§ўўќ§ў§ў ўњњ§јљњћћмјїўў”OBT\TNFCENQUZ]pmocЗјљј§§ў§ў§ў§ўў§§ў§ў ўвњљѓњћ§ћњѕњўяg5ETTMHIENOSYUP@cvrуўўњ§§ў§ўћў§ў§ўўрїљїњљћљњѕїїѓi8EPFOJCMNHVMNYYTbўўјњћ§ў§ў§ўўў§ўўќ§ўѓїїујњјљїѕњўЈ7LJJOCPHMNTSS]qbegыўўќ§ў§ўўњ§ў§ў§ўўў§ўўў§ўўлєђщяѓђђѓюѓљњФ?.;@JELFGLILNV~ctiСўўћў§§їў§ў§§ћ§§ўўў§ўўў§ўўнѕїяячщтсннцрБQ3,OMG>L>GQSd\UMCYvаўўњ§ћ§§ў§ўўќ§ў§ўўжђѕѓђєєѓєымсўц`:JLNEGQJJ[b]Z[pOFўўћ§§ў§ў§ўўў§ўўў§ў ўйхшэёюёїыЭбыўўj5FPFGIIQ[]jjhnoZZЉўўћў§ў§§ўўћўўешяьчь§мТЊкѓўў‰FSEQHINPZVY[[]UNUАўўћўћў§ўў§ўўў§ў ўќ§ўћўўѕяѓђўѓуЫЫЩєўўпЪSSQUMTMOQWW[][gq~жўўћўћў§ў§ў§ў§ўўќ§ў§ўўгѕўўчВАШллцђўўЛ;1NNHHALGL\Ucm‚\M‹ўўћў§ў§ў§§ўў§§§ў§ўўкљШРДСзьћјїўўЈAEWVQPNLGNcbcgiaTмўўћ§§ў§§§ў§ўўиѓаЩРАкљјђїїўўДQVP[V[[ZLSLUGr–[3Кўўњўњў§ўўў§ўўвкФЧЯгсњєэьэњўЌ5WmZSQ[VMMHVWxvUHЏўўњ§§ў§ўћў§ў§ўўњ§ў§ў§ўўдлгЯйкйсэяёёљўОISHQSLSVPNN,A[WYeЛўўћ§§ў§ў§ў§ўўќ§ў§ўўў§ўўи§ўшцщэђєёѕђѓыўўКPJIPFNMQPWU:JqieЈўўћў§ўўі§ў§ў§ў§ў§ўўж§ў§ўєѕѓѓєљњћјјѓўўЛWWLVNPOUVae]JWtV4wўўћў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўЮ§ў§ў§ўѓєјљљњљћјњјўћДhVSQTWT\UZgcacpbOЅўў§ў§ў§ў§ў§ўўў§ўўњ§ў§ў§ўўў§ўўћїљєјѕѕпјњњєћўЩdOQULMNU]^bknozr…Зўўћў§ў§ўўў§ўўі§ў§ў§§ћў§ўўв§ў§ўѓєѓѕёшяѓяїѕўўжhIT\YZWZWZ`nki]cZЉўўњћћўћ§§ўў§ћћ§§ў§§љў§ў§ў§ўўд§ўєєђёэючутэюўўРbPEPSNMULTZdd[\]oДўўћўћў§ў§ўўњћ§ўў§ўўњ§ў§ў§ўўлѓїѕїєююяэююўўУ]V7LHNQQFHWYdi][xОўў§§ўўў§ўўў§ўўќ§ў§ўўл§ўяѕљћјјюяэђяўћЦ[M;JLUPTSSY[bhrpwЇўўћћћўњў§ўўњ§ўў§§ў ўвёѓјњљјѓёяђѓўўд^A@W]WUWPPSWWE^mcЁўўћ§§ўћўћў§ў§ўўќ§ў§ў ўпыєєїњњјјїїєўўРNF8WPOQWWUVY][~{Eƒўўў§ўўћ§ў§§ўўпыѕђїѕјїјѕјёхѓмuP@OPYQQSLOV`]dTS‡ўўў§ўў§Ъўћўћўћў§ў§ў§ў§ў§ў§ў§ўюёьїїєѕыыёѓјўђwPQQVYSLHHST[aa[N„ўўєћўћўњ§§ў§ўћ§§ўў§ўўвышэєѕѕѓїёєђёўщvGAWTZTQYV`YOkwqN}ѕўў§љћњўћ§§ў§ўўв§ўхцыёьттёђєэєўчŠU>LJVTTGM[WYcdgWxћўў§ћћ§ў§ў§ўў№§ў§ўяьхунтхщяїїўўй„JBUPUSTPU[a^]~gAzљўў§ўў§ў§§ћћ§§ўў§ў§ў§§ўў§§яў§ў§ўёьрххтыѓѓїљўўэˆMM[QY\^W\`[1Bƒˆ‰Мўўў§ўўњ§ўћўћўўњ§ўћ§§ўўќ§ў§ўўзэяэёьуцёѓљјўўњƒI;0IVee^`[YHItWiмўў§§ў§ў§§іћўћў§ў§ў§ўўоѓїѕїєїяьшёїљўўЧV;MOPTTNIZSVGG]PVЭўўїћ§§ўћ§§ў§§§ў§ў ўе§ўццуущээёьэщыѕўаa@^`[\^^OS]\Z[\UVЗўў§ћў§ў§§ѕў§ў§ўћћ§ў§ўў§бў§§ьцйрьђяяющтуяўм„HW``SY\NY\]UU`gmЖўўћ§ў§ў§ў§ўў§њћў§ў§ўўв§ў§ў§§ьхчщээѓѕёэшыѓїМ^5\WTTNWTQPWVQV]t–ўў§њћћ§§ўў§ўўў§ўўў§ўўежЪзнйцяјѓђэыњўЯY2;OIFSZTTQU]co@*mђўўњ§ћ§§ў§§ў§ќћў§ўўќ§ў§ўўѕкеЯуьђєїѓёяятўє…ISSUaidca[]^a]OUdЯўўћћњ§ћў§§ўФ§ў§§ћўћў§ў§ў§ў§ўкнчюяѕїјїѕѓљўўчt>NOPag]cU[`ddbgomЈўўњўћўћ§§ўўў§ўў§§ў§ўўёєїўљѕѕєїћьШgNALHTQTTђUYTSYLGJРўўњў§§ќў§ў§§ўў§ў ўеїјјїїћјјюпчтрхШvHBOQOWWV]ghegb]SdБўўћўћ§§ў§§§ўћўўЭ§ў§ў§ў§ўћ§§ўїњїњїјїѓыюэьћњлzO`YUU^[Wa\SWVY[VbЕўў§ў§§ўі§ў§ў§ў§ў§ўўћ§ћ§ћўџ!џ!џ!џўˆ џўw џўwџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўw џ џ џ џ џўw!џ!џ!џ!џ!џ!џўѓ§ўћўњ§њњ§њњўњњљљ§њў§њљ§§ћњљ§њўўњћ§љљњ§§іњўўћўўћўћўўєћјўўњњћўњњ§ўўў§љљћњљ§њћўњ§ўў§њћєјљ§ўўћљўћўўћћўўўњўўќћўћўўўљўўїћўћўћўўћўўћўўћўўћўњўўћ ўјћўћў§њљўўћўўћўўўћўўћёўћћўўњћўћўўћўњўўњў§ўўљњ§ўћў§ўў§ћ§љўћћўўћўўўћўўљњўўћљ§ўўњ§ўћўўїњ§њ§ћћ§њўў§њўћћѓўћћўўњўўћўўњўўєћўўћўўћўўћћўўњћўўћћўўќљ§њ§§њ§њўћћўўћўўљћ§љѕћњўўћќў§§ўў§њ§ўўўњўўѓћ§љћћїїјћ§§ћўўўћў ў§њњћњћћўўўћўўќћўћўўћњ§њћћўњњ§ѕљњћњѕїј§ўћўўњћўћўћўўљњ§ў§љњ§§ћњ§§ћўўћўўћўўѓ§њјљ§§ћўћў§§ўў§ќћўўћћўћњўўћўўќћњњў ўўћўўўћўўўњў ўњћўћўћўўќћўњўўўћўўїћўўћўўћћў ўњњў§ўћўўўћ§§ћўћ§ў§ў ўўћўў§ўњўўљћўћўћћўўўћўўўћўўњ§ћ§ўўњўћў ўўћўўћћўўљўўћ ўћ ўћўњњ§љјњўўіћўњјљћ§ўћў ўя§љњњћћ§§ўўћўўћўћўўќћўћўўёћўћћўў§§љ§ћўўћўўјћўўњњ§ў§§§ўћўўўћ§§њўўћўўћўѕњћўўћўўњ§ћўўїћўћў§ћћ§ў ўћћўћћўўћњћўўћћўќћўћўўўћўўљћўћўўћўўўћўўўћў ўіћўћўўћўўћўўњўћєњ§ўћўўћћўўћў ўћћўћћў ўўћў ўћўћў§њћўўќ§њњўўў§ўўћўќћўћўўўћўўћўўћўўўћўў§ћўњњўћўў§ўўћўўќћ§§ўўћ§ўћўўћћўўћўўўћўўўћўўћћўўћўўўћўўћўќћњ§ўўєћўўћўћўњћўњў ўћіўћњћћўў§њўўўћўўўћўў№ћњ§ўў§њ§ўњ§ўћ§§ћћїўњћћ§њћћўўўћўўўњўўљћњњћўњўўњњўћњћўўќћ§њўўќћўћўўњўќћўћўўўћўўњћўћўўњњ§ўћўњћўњўћўўўћўўњ§ћўўћўўќћўћўўўћўўјљњ§ћўўћўў§ћ§ўўўћўўіњўћўўћўўњћћў§ўћўў§ћњўўўћў ўјћ§љљњњљўў§ћњўўўћўўјћњ§ћўљћўўўћўўѕћ§њљћўўћћљњњўћіўћ§§њ§ўўћўўўћўў§љњўўўћўўћёўћћ§ўўњњљљћўўњўўў§њњўћўўћўўњўўўћўўћў§ўўћўўўћўўќћўћўўћўўћўўјћўўћ§њњўўјћ§њўўњ§ў ў§ќњћў§§ўњўўўћўўћ§ўњўўљћ§§ўћћўўќ§ћћўўўћўў§ћњўўўћўў§§ўњўўћћў§§ўўўћўўўћўўі§љљњћўўћњўўўћў ўњћ§§њ§ў ўќћњ§ћћўўћў ўўћўўїћўўћўњћўћћњўћўўћў ўћ§њ§ћўўћўўћўўћћўўћўўўћў ўўћўўљ§ћњўћњўўћўњ§ќњ§ћўўњў§ўўќћўћўўўњћћ§ќњўћўўћўњј§љњўўљњўўђћ§њћўў§њ§§љ§§ўўћњўћћўћўў§њћў ўўњўўќ§љљ§§њўћўўћўўќћ§њўўўњўўўћўў§ўўћўўўњўўы§њњљћўў§љњњ§§љњўћ§§њ§§ўњћћњ§њ§§ўњј§ўў§љћ§љљњ§ћњўћўўўћўў§ћў§єљњ§ўўћўўћўўњњў§љўћћўўћўў§љћњ§њ§ўўћўћ ўўћўў§ћўљўў§§њ§§њўљѓћњљѕњ§ўўћњўўћћў№њўњ§§њљўўћћњўћўћћў§њ§ћќњ§њ§§§њ§ўўћї§§њћћ§ўњўўћ ўўћўўўћўўћћ§§њ§§ўћўўћћўћўћћўіњћљљ§њљјћљљќ§љњўўћўљ§њњўўћўўўћўў§ўњўў§њўћў§ўіћўўћўћў§њљљш§њўћў§§љљњњ§§ўўњћўў§њњћўўњњїњ§§ўўўћўў§ўћўћљўўћўў§ўћў№§њў§ћљљўћћў§§ћў§§ўўћўўћ§њ§ћўўћўў§ўўў§ўўћ§њ§њўўўћў ўћћ§ћћўўўћўўћўўћўўўћўўўћўўўћўўњў§ў§њњ§ў§љўў§ўњ§§љћјїћљљў ўќћ§ћ§§ћўїњ§њњљћљћ§§іћјљѕњњ§њњўўњ§њў§§љћњњњћљ§љљўўћјў§ћѕ§њ§ўўћў§ўљ§§ћњћљћњњ§§њ§ўў§њ§ќўћћўўћшўћўўћ§њњљ§ўўњўћћў§ћ§§њ§љљ§њћћњ§§ўўњѕјљљћљљ§§ўћўўњ§љњ§§њћћўўѕ§њ§§ў§ў§§љўўћ§њњ§ўћћўўќљ§њ§§ўњ§§ўўћўўјћў§њ§§њў ў§њљ§ўњ§ћ§ћћш§њ§њњ§љњўћ§§љћїѕљњ§§ўћћў ўў§ўўў§ўўьћ§ћћњњљљ§ћўљљ§§ћћљљ§§љњ§§ў§ћўўќ§њњўўњў§ќњўћўўї§ћјљ§њ§љ§§њљњљ§њ§§ўњљљўўћўўўњ§§ўќћўўћћў§ћў§§ќћљ§њњќ§љњ§§њш§ўћњћ§§ћћјјћћњ§њњћў§њ§љ§§ўњ§њћћљ§§§љјљљхјїїјћ§§ў§§њљљњњ§њ§ўўљњјћ§§ўў§њ§њњў§ўћўўћўћ§ћјљјјѓљјјїљ§љњљњ§њўў§§њљљљ§њћљ§њ§§ўў§ўўћњ§ўћўўћ§њ§§ўў§јљ§њњў§§ўў§ў§§њ§ўў§§ўћўўўћўў§ў§ћў§§њў§њ§њўўЮћ§§ўћўњћјњњљћћљљћљјљњ§§љћљњљ§§љњ§љњњљ§§љљ§§њјћљњ§ўўј§јѓєњ§ћљљєјљћљћћјјћљљћћ§ўњ§§љњ§њњ§љ§§љќћљњ§§љђ§ўћћ§§љћњњјљјљљђћјњњћљ§§љњњ§њљљ§ўћњ§ў§ў ўѓћ§ў§§ћ§§ћ§§ў§§ћўў§§ћ§ћї§ўў§ў§ўўћћ§њћ§ћћ§ўўў§ўўњ§ў§ў§ўў§ўў§§њў§ўў§ћћў§ѕћ§ўў§ћў§ў§ўўђ§ў§§ћњћњћ§ўў§ўўќ§ў§ў ўј§ў§ў§ў§ў ўў§ўўў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ўўњ§ўўћ§ўўў§ўўќ§ў§ўўў§ў ў§§ў§§ўў§§ўћўў§ ўї§ў§§ћћњњўўќ§ў§ўўў§ў ўў§ўў§ў§§ћ§ўўю§ў§§ћ§ћћњ§§ў§ў§ў§ўўў§ўўў§ўўќ§ў§ўўњћ§ћ§ћ§§ўћ§§ўі§ў§ў§ўћћ§ўўќ§ў§ўўќћ§§ўўњ§ў§§ћў ўћ§њћњњ§§ћўўќ§ў§ўўў§ўў§љћ§ћ§њ§ўў§ ў§ў§ћј§ћљњљњћўўё§ў§ў§ў§§ћўћў§§ћћ§ўћў ўќ§ў§ўў§ћўј§ћў§ўћ§ўўќ§ў§ўўќ§ў§ўў§ўњ§ў§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўўўћўўі§ўћ§ћћўў§ўўќ§ћ§ўўў§ўў§њћ§§ў§ўўў§ўўў§ўўў§ўў§ћњ§§ў§§ўі§ў§ў§ў§ў§ўўќ§ў§ўўќ§ў§ў ўў§ўўў§ўўј§ўў§ћ§§ўў§ќћњћўўў§ўўќ§ў§ўў§ўћ§ћў§ўўў§ўў§ќћўћўўў§ўў§ђћ§§ў§ў§ўў§ћ§ћ§§§ў§ўўі§ў§ў§ў§ў§ўўў§ўўћ§ћў§ўўњћњњћ§ўўў§ўўў§ўўњ§ў§ў§ўўў§ў ўў§ўўў§ўўў§ўўћ§ў§ў§§ ў§ўў§ўўў§ўўў§ўўќ§ў§ўўў§ў ўў§ўўў§ўў§ўќћ§§ўўњћў§ў§ўўњ§ў§ў§ў ўў§ўўў§ўўў§ўўў§ўў§§ў§ўўњ§ўћ§ћўўў§ўўќћ§§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўўќ§ў§ў ў§§ў§§ўў§ў ўў§ўўќ§ў§ўўќ§ў§ў ўў§ўў§ ўњ§ћў§ћ§§њћўў§ћўўћ§ўўћўўў§ўўў§ўўќ§ў§ўўў§ўўў§ўў§ћ§ўў§љў§ў§ў§ўў§ ўў§ўў§ћћў§ў§ўўњ§ў§ў§ўўўћўўў§ўўќ§ў§ўўћ§ћў§ўўј§ўў§§ў§ўўњ§ў§ў§ўў§ў§ўћўўў§ўўќ§ў§ўўў§ўўј§ўћўћ§§ўўў§ўўў§ўўў§ўў§ўќ§ў§ўўў§ўўј§ў§ўћ§§ўў§ўѕ§ћ§ћў§ў§ў§ўў§ћў§ў§ўўќ§ў§ўў§ћў§§§ћ§ўўў§ўўў§ўўўћ§§ўј§ў§ў§ў§ўўў§ўўќ§ў§ў ўў§ўўў§ўўў§ўўњћ§ћў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ў ўў§ўўў§ўўњ§ў§ўў§§ўћћ§§ў§§ўќ§ў§ўўћќ§ўўћћљў§ў§ў§ўўќ§ў§ўўў§ўўј§ў§ўћ§§ўўћ§ўў§ўўќ§ў§ў ўќ§ў§ўўў§ўўў§ўўў§ўў§ћ§ўўј§ў§ћћў§ўўў§ўўћ§ў§ўћћў§ўўі§ў§ў§ў§ў§ўўћќ§ћ§ўўє§ў§ў§ў§ўў§ћўўќ§ў§ўўў§ўўќ§ў§ўўі§ў§ў§ў§ў§ўўў§ўўў§ўўљ§ў§ў§ў§§ўј§ў§ў§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўўі§ў§ў§ў§ў§ў ўў§ўўќ§ў§ўўђ§ў§§ћћ§§ўў§ў§ўў§ўћўўў§ў ўќ§ў§ўўњћ§ћ§§ў ўў§ўўќ§ў§ўўў§ўў§њћў§ў§ўўѕ§ў§ў§ўћ§ўў§§ћѕўћћ§ў§ў§ў§ўўў§ўў§ўјћў§ћћ§ћўўќ§ў§ўўњћ§§ў§ўўў§ўўў§ўўў§ўўјћ§§ў§ў§ўўў§ўў§ўђ§ўћў§§ћћў§§ўћ§§ђћ§§ў§§ўўћ§ћ§ћўў§ўћ§њ§ћћў§ўўў§ўўў§ўўў§ўўј§ў§ў§§ћўў§ћ§ў§§ў§§§ў§ўўћ§ўћ§ћћ§§ћўўў§ўўѕ§ў§ў§§ћ§ћ§ћћћ§ћ§ћўўў§ўўў§ўўў§ў ўў§ўўћћ§њћўў§§ў§§ћ§§ћ§§ѓў§ћћњ§ћ§§ћў§ўўў§ўўє§ў§ў§§ћ§§ў§ў ў§ќћ§ћ§§ўћњњј§ћ§§ћ§ћ§§эў§ў§ў§ўћ§§ћњћњњћ§§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўљ§ћ§ћ§ћўўќ§ў§ў ў§їњћћ§§ћћњћћ§ўјћ§§ў§ў§ўўќ§ў§ўў§ћўћћ§ўў§ќћ§§ў ўћљў§ў§ў§ўўћ§ў§ў§§ћяўћ§§ў§§ћўћ§§ћћў§ўў§ўі§ў§ў§§ћў§ўўї§ў§ў§§ћ§ўўў§ўўќ§ў§ўўў§ўўј§ўћ§ћў§ўўќ§ўћ§§§њћўў§ћћў§§ћћў§ўўђ§ў§§ћ§ћў§ў§ў§ўўѓ§ў§ў§ўћ§§ў§ў§§ўћ§ў§ћ§§ўў§ўўў§ўўўћўўў§ўўў§ўўў§ўўў§ўўњ§ў§ў§ўўў§ўўі§ў§ў§ў§ўў§§ўі§ћћ§ћ§§ўћ§§єћ§ў§ў§§ћ§ћ§ћћњѕћњћ§ў§ў§ў§ўўњ§ўў§њћћў§§ў§§ћў§ћћ§ўћ§§ўў§§ћњўћ§ћњ§§ћћ§ўў§ўўў§ўў§ћњ§§§ў§ўўћ§ўў§ћћі§ћ§ћ§§њћњ§§іћ§ћў§ўћ§ћ§§ќћ§ћўўў§ўўє§ўћ§§ћћў§ў§ўўљћўћћ§§ћћ§љў§ћ§§ў§§јћўњћћ§ћўўў§ўў§ќћ§ћ§§§ћ§ўўј§ў§ўћ§ћ§§єћў§ў§ўў§ћ§ћўўь§ўћ§ћ§ћ§ћ§ћ§ћ§ћў§ў§ўўјћ§ћ§ўў§ўўё§ў§§ћ§§ћў§ћўћћњњќћ§ћ§§іў§§ўћ§ћњњ§§ќћ§§ўўў§ўўќ§ў§ўўьћў§ўћў§ўўћњњљљћўћў§ћћіњћћ§ћ§ћ§ћ§§ўќћ§§ўў§§ў§§ўўћћ§ў§оњ§ћ§§ћћ§ћ§ћ§ћ§ћў§ўћ§ћ§ћ§§ўћћўў§ў§ўўћ§ў§§ћћ§ў§ўўў§ўўљ§ћ§њўћ§§њћў§§ћ§§їћўў§њ§ћћњњњ§ћ§§ў§§їў§ћ§ћ§§ў§§њљўћ§ћћњћћљњљљњњћ§§ыћ§ћћ§§ћ§ћў§ћљњњ§ћў§ў§§§ў§ўў§њћў§ў§ўў§ьњ§ћ§ћ§ћњњћћ§ћљћ§ћ§§ўў§ћ§ћћ§§њћ§§ћћ§§ў§§ўў§ўўўћўў§§ў§§№ћў§ўћ§ў§§ў§§ћў§ўўј§ўћ§ћў§ўўњћ§ћ§ћ§§ўњ§ўћ§§ўўњћ§ћ§§ўў§ўћ§§ў§§ћўўј§њњљљћњћћщњћ§ћ§§ћћњў§ўћ§ћ§ћў§§ў§ћћ§№њћ§ћў§ўў§ћ§ћ§ћњћћў§ћћњћњњћњњћ§§ќћ§ћ§§љћўћ§ћ§ћћјњћ§ћ§ћ§ћћ§ўі§ћћњљљњћ§ћћњљіњћ§ћћ§§ћ§ћћќ§ћњ§ўў§ўўќ§ў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўј§ў§ўћў§ўšўў§ўўў§ўўў§ў ўњ§ўћў§ў!ўў§ўўў§ў ўњ§ўћ§§ў3ўќ§ў§ўўќ§ў§ў ўў§ў ўў§ўўјћ§ћўћ§§ўўќ§ў§ўўў§ўўў§ўўє§ў§ў§ўћўњ§ћўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ўўў§ў[ўў§ўўќ§ў§ўўў§ўўў§ўEўќ§ў§ўўќ§ў§ў ўў§ўўў§ўўў§ўўњ§ў§ў§ўўњ§ў§ў§ў/ў§{ўў§ў=ўў§ў=ўў§ў ўў§ў ўў§ўAўў§ў5ўў§ўўќ§ў§ўўў§ўWўў§ўaўў§ўўў§ў+ўќ§ў§ўўў§ўўў§ўўў§ўўќ§ў§ў ўў§ўўќ§ў§ў ўў§ў;ўў§ў;ўќ§ў§ўўў§ўўў§ў-ўў§ў ўў§ў/ўў§ўўў§ў'ўў§ў=ўќ§ў§ўCўў§ўўў§ў)ўў§ў9ўў§ў3ўў§ўўў§ўўў§ўўў§ўўў§ў ўў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўќ§ў§ўў§ўў§ўўњ§ўћў§ўўў§ўўў§ў ўі§ў§ў§ў§ў§ў+ў§ўћўўќ§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўўў§ў ўќ§ў§ўў§§ў§§ўј§ў§ў§ў§ўўє§ў§ўћ§ћ§§ў§ўўњ§ў§ў§ўў§ќў§ў§§ ўў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўў§ў ўў§ўўќ§ў§ў ўў§ўўў§ў ўў§ўўњ§ў§ў§ўўў§ўўў§ў%ўў§ўўў§ўKўў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўњ§ћћў§ў ўў§ў ўђ§ў§§ћ§ћў§ўћў§ўўў§ўўў§ўў§ўњћ§§ў§ў ўњ§ў§ў§ўўђ§ў§ў§ў§ў§ў§ў§ўўў§ўўј§ў§ў§ў§ўўќ§ўћў ў§ўј§ў§ў§ў§ўў§§ў§§ћў§ў§ў ўњ§ў§ў§ў ўњ§ў§ў§ўўќ§ў§ўўє§ў§ў§ў§ў§ў§ў ўў§ў ўў§ўўўћ§§ўќ§ў§ўўќ§ў§ўўў§ўўќ§ўћўўў§ўўўћ§§їў§ў§ў§ў§ўўў§ўў§ўј§ў§ў§ў§ўўќ§ў§ўўў§ў ўў§ўў№§ў§§ўў§ў§ў§ў§ў§ўўќ§ў§ўў§ѕўћўћў§§ўў§ўўі§ў§ў§ў§ў§ўў§§ў§§чў§ў§ћ§§ћўћњњў§ў§ў§ўў§ћў§ўўњ§ўћ§§ўўќ§ў§ўўў§ўў§љў§§ћўћ§§ќћ§§ўў§ѕў§ў§ў§ў§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўў§ўўј§ў§ў§ў§ўўў§ў ўќ§ў§ўўј§ў§ў§ў§ўўў§ўўї§ўћћ§§ћў§§ћў§ў§ўў§ўў§ўўќ§ў§ўў§ўў§ўўр§ў§ў§§ћ§ћ§ћў§§ћ§ћў§ў§ў§ў§ў§ў§ў§ўўњ§ў§ўў§§њў§ў§ў§§ўя§ў§ўћўћў§ўћ§§ћћў§§§ў§ўўј§ўћў§ў§ўќњ§њ§§§ўћўўњ§љћњћўўўћўўўћўўє§љљїјљћјњјїєє§ѓћўўфћўћўўћў§ћћ§љљћ§§ћўњў§њћў§§њўўћ§ўћўўэ§њћњјћћљћћјњїјѕїѕѕўўўћўў§ѓњћљњ§ўњљљњ§ћўўќћњћўўѓ§љћљњњљћјїјћјјљњїјўўћўўўћўўўћўўќћњњ§§ўњ§§їћ§ћїјњњљ§§њњўћњњћћіўњњ§љ§§ћўњњўўћўў№ћўўћ§§љјѓїљњјљ§њњњјњљ§ћ§§ўћ§§ўѓћўўњљћљјљњњ§љљўњ§§ўўћ§§єњћњњљїїѕњїїјјћћљћ§ћўўўћ§§їўњљ§ўў§њўўќњ§ѕћћў§ўў§ўђ§ћњѕєѓѓљјїјњљ§§ўњ§§єљњўўћўўћўўћў ўіћўўћњјњћ§ўўшћўў§ўўћњјїјїѕњћ§јљћљ§§ў§§љўњѓѓћ§ў ўјћўћў§љ§ўўчћ§§љљњљјљ§љ§ўў§ћѕєѕјћљћњўў§іњїђѕћњћў§ћћ§њњ§§њ§ўў§їњћўўњњ§њўў№ћ§§ў§љјїєѓєѕїљњў ўщњљјјљњўћў§љљњ§ўўћњ§ўћћўўъњћ§њўўњўўњћўўћ§јєѓїѕћўў№ћўўњљњ§ўћњўћўўћўўўћўўўћўўќ§њ§ўўѓњљљєїѕјћ§§ўћўўўћ§§ўћўўњўўјњ§ћљ§њћўўњќ§ўћўўю§єѕєѕїјљљјјћљњљњ§ўўњћў§ўћўў§ўћўў§ўћ§њ§ћўў№ћўћўў§њњћњ§љћњ§љљћћњ§ў§§§ўћўўўњўўўћўў§іў§§љћћўћћўўєћўў§њ§њ§њ§њ§§іњ§јєјїњљ§ўў§ў§ўљўўќћўў§§ў§њѓ§ўў§њњљњњўћўћћћњ§њ§ўўћ§љјјљљћљўњ§§ў§њ§ўўђћўў§§њ§ўњћћўћўўўњўў§їћўўњњўћћўўљ§љњћ§§њњњћўўћћўў§њ§ў ўў§ўўњћўўћћўўўњўўўћўўљ§ћљїњњўўјћўћћўўћўўўћўўї§њ§ћўўћћўўяњўњ§љјњћ§§њњљњўўћћћўњњ§ўўўћўў§ўћў ўќ§њћўўљ§љїјњћўў§њ§ћљўўћўўњ§§ў§§ўўћўўцћў§§њўўћњ§§ћњјњјљ§§ўўћћўњ§§ћљљћ§њ§§ўў§љљњўўћћўўњњ§ўў§§ўўћ§ћћјћћ§њыў§§ўўћў§§њ§§њ§§њњўўћўўў§ўў§ћў§§ўњ§§ўњўўўњўўў§јјѕњљ§ў§§њњљњў ўќљ§ћўўі§њўў§§ўўћўўяњљљ§ћўўћўўћњ§ўў§њњђћїјћ§ћўўћљ§ўћўўјћўўћўўћўўћїўћўў§њњћўўўћўўіћўћћњњћљљћћїњѕїјљ§ўћўўћўўћ§§ў§ћўћћћ§ўћћўў§њћ§§§ўњўўќћўљ§§ўњ§§іћїїњћњњ§§ўўўћўўњњ§јњ§ћўўќћўћўўўћўў§ўсћ§ўћў§јјїјљљ§ўўњјљјљњ§ўўћћўћћўћћўѓ§ћјљљ§њћўћњ§ўўњњљљј§ўўќћўћўўњњљћћ§ўўњ§ћњјћњњќ§ўњўўћўћћ§љ§ўўћћўњ§ўў§ў§єћўўњўўњ§§њ§ўў§јћњїјјљћ§§§њћўўћћўўћўўќћўћўўєћўўћћў§њ§§јљљњјњњјњјјјїѕѕїјћљ§§ўќ§њ§ўўўћў ў§њ§љћўўњў§ћќњјћњњєљїћљћ§њў§њ§ћћўіћ§§њўћўўљўў§ћњ§§ћўў§ўњўўќ§њљ§§њњ§§њњўўі§ћљїїљњ§ћљљ§ќў§ћўў§њўћњ§§ўўћњљћљўўч§њ§§њ§њ§ћљјњјѕєєљћ§њ§љљ§ўў§ўўћўўў§ўўўћ§§ќњўњўўўћўўю§њў§њ§ћїђѓѓѕј§њ§§ўўњћ§љњ§ўў§§њ§§ўњќўћў§§ўњњ§ўўћўўљћѓ§њ§љњєѓёєњљ§ўўћњ§љ§ўћўў§ўћўўњјўњўўћ§§ўўљћњћљљћљљ§§ћљѓѓјѕјљњњ§§ўўћўњ§ўўњў§§ўђћўћўћў§§ўњ§§ћўў§§ћљљћљіћњњ§ћљѓѓєјјљћћ§§ћњњє§ћўњ§§њ§ўў§ўўў§ўў§§њўўч§љћћ§§њ§љљјјљћћњїѕѓђєїњљ§§сљћ§§њњ§њћњў§§њљћјљ§ўўњћњ§§њўћћўўжљњ§§ўћћњ§ћњїњјјњјјѕєђѓѕњљ§§њ§ўњ§§ў§њњў§њ§ўўћ§ўўћўўєћњ§§њћћ§ћјљјјъњљњљћњїљљјћљљїѓёђєїћњ§§ѕў§§ўў§§њњў§§ў§љњ§§ўћ§ћ§њ§§щћјїњљћћјјљљћњћїєєђѕњ§§ўўўњўў§ћќў§ћўўќћўў§§ќћ§§ћћњў§§љћћ§§њ§§ќњ§§љљяїѓёёєљњћ§ћўўњ§ўћўўћћўўћўўыћњњ§ўћњћћ§§ћћљњљ§§њћљљјћіјљєёёяјїљњњќ§њ§ўўќњїњ§§ў§§њ§ўўњ§њўўњ§§§ўћ§§щћљјїјљћљїљѓёђєљјћћ§§љњ§§њњ§ћњ§§ўў§ўћўўћўўчћ§ўћћўў§ћјњњљљњћјљїѓѓєїј§§ќњ§њ§§ў§ћњўћћ§§ўљћњћљћјљљњљфћ§њљїїњњјњјњњѕїѓєѕї§ўў§њћј§ўўэћўњљљћ§ћўњњ§њњљљћњ§§ўњїљћјњћњїїјјњіѕђюяђѕј§њ§§ўєћњ§§њ§ћћ§§њ§§јў§§ћљљњ§§ўњ§ћћњ§ўў§јёњћљћћњљїђяюђѕљ§§њ§ёўњљћ§§ў§њљњ§њњ§§ѓў§њ§њњ§њњћћљўўїљ§§ћњїјњљљћїњјѓђѕєїћ§§ћќљ§њўўўњ§§ћў§њњ§§ўњ§ћљћјћћўф§ћњїїјћљћњїѕђёђѓѕјїљљћћј§§њ§§іњћћњ§§ўћў§§ўјћўўћўўњ§§њї§њѕѕїњћљ§§ѕњїєѓѓєѕѕљљћћѓљћ§§љћњљљ§ћњ§§њќљћњўўќћўћўў§ўћїїсѕљјћљћћњїѓђёёѓѕј§ўћў§љјјїљњ§§њ§§ўў§§ўўњ§§оўћў§љљ§њ§љћ§§њїљїјљњ§њ§§љљєђђѓѕјњўўќњ§њ§§ў§њєўћ§њ§љњ§њљў§§ў§ћћјїјћћќљћћјјїѓёђѓђјћњ§§ќћўћўў§ўў§ўўњ§§њ§§щњў§њћјљ§§њј§§ћљѕїљїљїїјјї№єёяяюѓљјћљњ§§њњўў§ўћ§§ќњ§њ§§ћњћљћ§§ыћљјњњљљћћјїєєѕїјј§§љјјєєяяьюяѕњ§ўў§§ђњ§§њ§њ§њ§ў§њљњњќ§њћўў§ьћљј§§ћћјїѕєјљњћљћїїјј№ѕђђююђјјљћћїљљ§љљћяљ§§љћњ§њљљ§ћ§ћћљћћњњљѓєљ§§јнѕјјїїјњјњјјњјѕђяыщшяђѕїјљњљјєћћњ§њ§§ќћ§њ§§ђњ§ўњ§љљ§љјўўњљљє§ћїѕїєјѕїїњћћь§љјјѓёяюэяїѕїћћ§§њ§ўўќћњњ§§ўћљ§ўћњњћўў№§њљјљєїєєѕєјћјјћћњљљєђюяяѕѕюљјњћ§ў§ћ§§ћљјљјћћ§§ћњ§ћњўў§ўў§§жћјљјѕѕїјњјљћљљћљћјјѕђяяююэђєјїњјјњјјїјњћћљљћїљњњћўњњљ§§єњ§јљјјїѕјїњћћћљћљљћћёљјєђёьцчщэѓєњћ§§ўњ§§ўўљ§§њњ§ћјљћћэѕљјћћњљјѕїїѕљїїљљњјјхѕјњјјїѕђюычхшюђєјїїјљњ§њўў§§шљњњјїјѕљњјњћљљћљјјєєѓјјћћњјьїјїєєѓяшкзншьэюяѓїїћћј§њ§§ћћљњњјћѕ§ћ§ћ§ћ§§ў§ўўљ§ћњ§ў§ўўў§ў ўў§ўўћ§ў§ўћћјњћњњљњљїїћў§ў§ўў§њћќњћ§ўўіћ§ўўћћ§ў§ўў§§ў§§љњљњњћћњњљњїјѕјјўўў§ўўь§ў§ўћ§ћ§§њћ§ћў§ћћ§ћў ў§ћљќћњ§њњќљћњўўў§ўўќ§ў§ў ў§іћ§ћ§ћ§ћњћњњљѕћ§ћ§ћ§§ўў§ўў§ќћ§ў§§љў§ў§ў§ўўњ§ў§ўўћћљњљјљњћ§§ќљњљћћќ§ћўћћ§ў§ўўќ§ўњћћ§їћўћћ§§ћ§ўўў§ўўћ§јћљљјљљњљљњєћњћњ§ўў§ў§ўћћњў§ћћў§§§ў§ўў§њљћњњћў§ўўђћ§ћў§ћњљјїѕїјњњѓљћћ§ћ§§ћћ§ћ§ўўў§ўўў§ўўў§ўўљњљњљњћўў§љўњљњћњљљјњћ§ћњћћ§§єћ§ўљїїњ§§ў§ўўў§ўўћњў§ўў§ћћњ§ћ§ћћ§§ѓўћњјїїњњћњ§§ўў§ћщ§ћ§§ћљјћ§ў§ћњњћћ§§ћћ§ћўўћћ§ћ§ўў§эў§ўў§ћўћћњљїѕїјљћ§ўўќ§ў§ўў§њћњњћ§ўўћњ§ћў§ў§§ўў§ўўѕ§њћ§ў§ў§ў§ўўј§њїєѕљћўўў§ўў§ўў§ўўќ§ў§ўўў§ў ўў§ўў§§ћ§§ѕў§ў§ћјїѕјњћћўї§ў§ўћ§ћ§ўўќ§ў§ўў№§ў§ў§ў§ўў§ћњћ§§ўў§ўћўўђ§ў§ўћћјїјљњћћњњјћ§ћ§ћў§ўўўћўўњ§ў§§ћўў§ўћўў§ўќ§ў§ўўђ§ўћ§§ў§§ћњ§§ћјјїњ§ћўћ§ћ§ўўќ§ў§ўўў§ўўљ§ў§ћћўћћўњўўэ§ў§ў§ў§ўћ§ћ§ћ§ћ§ћ§ћћ§јњљїљљћћўўљћ§ўўћ§ўўї§ћћ§ў§§ћ§§§ћў§§ќў§§ўў§§ћ§§ў§ќћњњћћњћљ§ћ§ћ§§ўў§ќћў§ўў§ќћ§ћўўў§ўўћќў§ў§§ўљ§ћњњ§ћ§§ўњ§ў§§ћўўќ§ў§ўў§§ў§ўўў§ўў§§ў§§§ў§ўўі§ў§§њјљљ§ўўў§ўўј§ў§ў§ў§ўўњ§ў§ў§ўўќ§ў§ўўј§ўћ§ћў§ўўќ§ў§ўў§њћњљњћ§§ў§єћў§ў§ў§ў§ў§ўў§ћїў§ў§ў§ў§ўўћ§ўћ§ўўі§ў§§ћћњљњўўњ§ў§ўћ§§єћ§ћ§ћ§§ў§ў§ўў§јћўћ§ћў§ўўў§ўўћў§ўў§єћњљњљњћ§ћў§ўў§јћ§ћњњћњ§§ўћўўў§ўўћ§ў§ўўє§ў§ў§§ћў§§ћўўё§њњћћњњћ§§ў§§ћўў§ќћ§ћ§§ђћ§§ў§ў§ў§ў§ћ§ўўю§ў§ў§§ћ§ћ§ћ§ћ§§ў§ўў§њ§јћ§§ў§ў§ўўў§ўўў§ўўљћ§§ўћ§ўўэ§ў§ў§ћћ§ўў§ў§ўў§ћў§§ѓњљњњ§ўў§ўў§§ўўў§ўўќ§ў§ў ў§ўќ§ў§ўў§ђњћћњњћњњјљњћћўўў§ўўќћ§ћў ў§ћ§ўўћўў§ўўї§ћћ§§ћ§њљљўњ§§ўћўў§§ў§§іћ§ћў§ў§ў§ўўњ§ўћћ§ўўўћўўюћ§њљњћћ§§ў§њјњћ§ћў ўѓ§ўћњњћћ§§ў§ў§§ќў§§ћћ§ ўю§ў§ћњћћў§ў§ўћњљњњ§§ўћўўў§ўўљ§ћ§§ў§ўў§ћў§§ћўў№§ў§ў§§ћў§ў§ў§§ћ§§ђў§ўћ§њљљњњћњ§ћћў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўј§ў§ўў§§ўўћћ§ћ§ћћќњљљњњљљјјљњњћћ§їў§ў§ўћ§ћўўќ§ў§ўўў§ўўќ§ўћ§§ў§§ў§ўў§ћ§њњѓљњњ§§љјљњћњћ§§ўі§ўў§ћ§§ў§ўўц§ў§§ћ§ћ§ћћўў§ўћћ§ў§ўћ§ћ§ћ§§ќћ§§ўўі§њјљћћ§ћњћћўўћћ§ўћўўъ§ў§ў§ўћћ§ў§ћћў§ў§§ўњћўўў§ўў§§ў§§ћќ§ћ§ћћїњљњјїїјњ§§ќћўћўўњ§ћћў§ўўљ§ў§ў§ў§§ўўћћ§ўў§ўўў§ўўўћ§§јњћљѕѕјњ§§ѓћў§ўўћ§§ћў§ў§§ћћ§ћў§§ў§ќћ§ћўў§§ў§§ў§§ћњњ§іћљїёђїљћћўўќћўћўўї§ў§ў§§ћ§ћћ§ў§ўў§їў§ў§ўћ§§ўўў§ћћўњћћ№њјѕёѕњњћ§§ћ§§ў§ўў§ўщћ§ћў§ў§ў§ў§ћћў§ћћў§ў§ўћћњћўњ§§њњјѕёїњњћћњћ§њ§§њћў§§ћ§§њўћў§ў§§њў§ў§ў§§ўј§ћњњ§ћ§ћћњ№ћњћљљјѕѓїљљћ§ћ§ћћ§ўћўў§јћ§ћњћўћўўћ§ћ§§ўўј§ў§ў§ўў§§ў§ћњљљњхљњњјїѓѕљљћ§ћ§ћњ§ћћўћ§§ўћ§ћўў§§ў§§ўѕ§ћ§§њњћњ§ћњњсљћ§ћњљљјјњњћћљѕђєїљњ§ћ§ћўћ§ўўћ§§ѓћ§§ў§ў§ў§ўў§ћћ§ў§ўўњћўћ§ћ§§њ§љћњњћю§ћљїѓєјњћ§§ў§ў§ў§ћћўўћўўў§ўўї§ћћ§ћўћћњњ§њў§ўћћњњћћ§ћ§ћ§§ћѓљїђєїјљњћў§ў§§їў§ў§ў§ў§ўўќ§ў§ўў§юћўў§њћћ§њўў§ў§ћ§њћћё§њњћњњјїєєїїњћ§§ќћ§§ўўї§ћ§ћў§ўћ§§ўћ§ў§ў§§фў§§ћ§ћўў§ћ§ћњћњљњћњћћјѕђєїјњњљ§ћў§ћћ§§єў§ћ§§ў§ўћћ§ўўў§ўўў§ўўњ§ў§ўћўўђ§ўћњњљљћћ§њ§јѕѕфїљњ§ћ§ћћ§ћ§ћћ§§ўћ§ћ§§ўў§ћ§ћўўј§ў§њћњњћћ§ћъњћ§ћћњњљњљњљњјѕѕѓєљћў§§ћ§§ў§ўўў§ћћўў§§ћіњ§ћ§ћ§ћ§ћўўі§ў§§ћњ§§њљљњљђјєяђєјњ§§ћћ§ћўўы§ћћ§ћњњ§ћ§ћ§ћўћћњћћ§ћћ§єўћњњ§ћў§ўћ§ћћњяљњћњњ§ћљєэяєјћ§ћ§§јћ§ў§ћњћ§§ўћ§§јћ§ћўћ§ћ§§њюћў§ў§ў§ў§ўћћњљљњљћћъњћљїѕєєљњњћ§ћ§ћ§њњћћ§ўў§њћ§ћўћ§§ћ§ќћњћњњўі§ў§ў§ў§§њљљњюћњљљјѕєєѕјїљћћњњћ§§ћљ§ўў§§ћўў№ћ§ћ§§ў§ў§ў§ў§ў§ўў§ќћ§ћ§§яљњјљљњћ§ћ§љљїѕѕїјјГћњћњћњ§ћћњ§ўўћњ§§ћ§ћ§§ћњ§§ў§ў§ў§ў§ў§ў§§ћ§ћ§ћњљѕєјјњњћњћљљїєђѓєјњ§§ўў§ћњњћћ§ћ§§ўћ§§§ћ§ћћ§љў§§ћ§ћўўћ§ѕћњћ§љљјљњћ§§ћїјїєєѕјњ§ўў№§ў§ў§§ћ§ћ§ћў§§ћ§§ўъћ§ћћ§ћ§ћўћ§ћў§ћћ§ћћњљњњўћњњѓїѕѓёюєїћ§§ћ§ўўє§ў§§ћў§ўћў§ўў§§ћ§ћћ§іўћ§њ§ћ§ћ§ћћјљљјњћњћњњёћљїєђэёѕјњњћ§ћ§§ў§ѕћ§ў§ћ§ћ§ћ§ћћё§њћњ§ћ§њћњљљћћњњѕљїїјљњ§§ћћњњьїѓээьѓјљ§§ўћ§ћ§ћ§§ћ§§ўћ§§їћ§ўў§ўћ§ћћќ§ћ§њњєљјїїјљњћњњћњњ§јєёёћєїњћњњћ§§ўћћњяў§ћўњ§ћ§ўўћўћњњћњњќ§ћ§ћћЫ§ћ§њїјїїљљњљњљњњљњјѕђьчяѓѕјљњћ§ћњћњњ§ћ§ћ§ћњћ§ћ§ћ§ћў§ћћќў§§ћћјњљјєїїјљљыћњћњ§ћњїјєѓяюѓѕјљњћћ§§лў§ў§§ћ§ћ§§ў§ў§ўў§§ў§§ўў§ўћ§ћњјїѕїїјјњњєћњљљјјєёьђєјјњњљњ§ўћћ§§њћћћњћњ§ћћћ§ћў§ўў§ћћ§ћўћћњђјїјјљњљњћњћћњћћщњјєёђяьюєїїљљњњљњњљњљњћћњЩћ§§ўў§§ћ§ћ§ћ§ћ§ћњњљјїљњњћњњћњћћњћњћњїѓѓэутьюђїљњ§ћ§ћ§ћ§§јћ§§ўўћћ§§њћњю§ћ§ћњњјїјљљњјљљјјњњьљњњљјєёьшцщђѕїїљљњћ§§эў§§ћ§ћћљљњљїјјљњ§њћћњўљїїњўћњњљњщћњљјїєђцмепщэёђѓѕѕљњћњ§§ћћњњћљљњўќ§ў§ўў§ўљћўћў§§ћћњ§јњјњў ўі§ў§ўћў§ў§ўўў§ўўэ§ў§ўћ§ћ§§ўћўњћљњљћў ўљ§ў§ў§§ўўќ§ў§ўў§ћћўћў§§ѕўћ§ћўћўћўћў)ўъ§ў§ў§ў§ў§ў§ўћўћў§ў§ў§ўўў§ўўј§ўў§ўў§ўўє§ўњ§њўћ§§ў§ћћћўћў§ў ў§§ў§ўўј§ў§ў§ў§ў ўю§ўћўћњњ§њўњ§ћўћўћ§§ ўў§ўўў§ўўј§ў§§ћ§§ўўў§ўўя§ћћњљњ§ћўћўћў§ў§ўў§ўњ§ўћў§ўўћ§ўў§ћћщўњ§ћўў§§ў§ў§ў§ў§ўћўњ§§ўўў§ўўћ§ў§ў§§ўў§ўўі§ћњўћ§§ў§ўўў§ўўі§ў§ўњўљћ§ўўњ§ўћў§ўўў§ўўќ§ў§ўўў§ўўў§ўўі§ўњњїњљ§§ў ў§ћў§ўўў§ўўў§ўўј§ўјћј§ћўўў§ў'ўў§ўўјћ§јњљћћўўќ§ў§ўў§ўў§ўўћіјћњўћ§ћћ§ўўў§ў ўў§ўўў§ўўќ§ў§ў ўє§ў§ў§§њ§њ§§ўўќ§ў§ўў§ћ§ў ўњ§ў§ў§ўўў§ўўі§ў§ўљћњў§ўўў§ўўў§ўўў§ўўў§ўўњ§ў§ў§ў ўў§ўў§ћ§§ў§§ўќ§ў§ў ўў§ўўў§ўў§єњў§ў§ў§ў§ў§ўўў§ў ўў§ўў§ќњ§ћў9ўј§ўћў§ў§ўўў§ўўў§ўў§§ўћћў§ўўў§ўўј§ў§ў§ў§ў ўў§ўўі§ў§ўћўћ§§ўўћ§ў§ў§§§ў§ўўў§ўўў§ўў§љўћ§§ў§ўўў§ўўј§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўўє§ўћ§ўў§ў§ў§ў ўў§ўўў§ўўў§ўўќћ§§ўўў§ўўі§ў§ў§§ћ§§ўўў§ўўў§ўўђ§ў§ў§ўћ§њћњў§ў ўў§ў!ўў§ўўє§ў§ўњ§ћ§ўў§ў ўќ§ў§ўўћ§ўњў§§ўњћ§ћў§ў ўњ§ў§ў§ўўў§ўўњ§ў§ў§ў ў§ўћўўј§ўћ§ўў§ў ўќ§ў§ўўў§ўўў§ўўў§ўўњ§ў§ў§ўў§ћћ§ћў§§ўў§ў!ўћ§ў§ў§§яўћўћўњўћўћ§љћњў§ўўў§ўўў§ўўў§ўў§§ў§§юћў§ў§ћњ§§ў§ў§ў§ў§ўўќ§ў§ўўќ§ў§ўўњ§ў§ў§ўўє§ўњ§ћ§ўў§ў§ўўќ§ў§ў ўў§ўўї§ўћўћўћћњњћў§ў§ўўў§ўўў§ўў№§ў§ў§§ћћїљљў§ў§ў ўњ§ў§ў§ўўў§ўўќ§ў§ўўў§ўў§§ў§§ѕў§§ћњљљјћ§ўўќ§ў§ўўў§ўўў§ўў§ћў§§ќў§§ўў§§њљљќњўћўўў§ў ўў§ўўў§ўўћћ§§ў§§єў§§њљљњћўћў§§§ў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ўў§сў§ў§ўћўћў§§ћўњћљњњ§ћ§§ў§§ћў§ў§ўўњ§ўў§§ўўќ§ў§ў ў§ўь§ўњўћўћўћћјњљ§ћў§ў§ўўў§ў ўў§ўўќ§ў§ўўт§ўћўћўћ§ў§§ўњ§њў§§ћњљљјњњ§§ў§ўўў§ўўј§ў§ў§ў§ўўў§ў ў§ћўћўћ§§їћў§ўћўћњјјћћњў§ўўў§ўў§ў§ъћў§ў§ў§ў§ў§ўћњњљјњњў§ўўў§ўў§ѕћў§§ўў§ў§ў§§ъћ§§ў§§ћўћ§ћ§јњјћљўћў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўы§ў§ў§§ћ§ћ§§ўћ§їљјњњћ§§§ў§ўўў§ўўњ§ў§ў§ўўћ§ўћћ§§єћњјљїњњў§ў§ўўў§ўўќ§ў§ўўќ§ў§ўў§ћў§ў§ўў§ў№ћўњћћўћћњљјљѕљњўўњ§ўћў§ўўќ§ўћўў№§ў§ў§ў§§ўў§ў§ў§ўў§ьў§ћ§њћћўњўћћѕїѕјљў§ўўў§ўў§ћў§ў§ўў§ўў§ўўў§ўўў§ўўћћўћў§§пў§§јљїјљ§§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўўў§ўўњ§ўў§§ў ўш§ћ§ћў§§ћ§ћћљљѕљљў§ў§ў§ў§§ўќ§ў§ўўў§ўўњ§ў§ў§ў ў§щћ§њў§ў§ўњћљњјљљћњўћ§§ў§§ўў§ўўў§ўўќ§ў§ў ўѓ§ў§ў§ў§ўњћњў§§ѕў§ћњњїљјћљ§§ўћ§§ѓў§§ўў§ў§ў§ў§ўў§ ўђ§ў§ў§ў§§ј§љ§ћ§§ћњјјљїћљў§ўў§ќћўћўўі§ў§ў§ў§ў§ўўў§ўўќ§ў§ўўщ§ў§ў§ў§ў§ўњ§њћ§ў§ў§ўћњјјљ§ў§ўўў§ўўў§ўўў§ўўў§ўўў§ўўў§ўўљ§ўћўњћ§§№ћўћћљїѕњѕћћў§ў§ўўў§ў ўў§ўўў§ўўј§ў§ў§ў§ўўтћ§љ§њў§ўћўћўћњјјѕѕєљњћ§§ўў§ў§ўўі§ў§ў§ў§ў§ўў§ќў§ў§§ќўћў§§чўњ§њњљ§ћ§§ўћўћўњљѕєєљћћ§ўўў§ўўў§ўўј§ў§ў§ў§ўўў§ўўў§ўўћћў§ў§§єўњћјћњћ§ў§ўћћіўљјѕєєјљћ§§ўў§§ёў§ў§ў§ў§ўў§§ў§ўў§ђў§§ў§ўў§ў§ў§ћљљјћњ§ћўћўћћљѕѓяєїљљ§ћ§§ўћћ§§ўј§ў§ў§ў§ўў§§ўћўў§яўћў§њљ§јљљ§њўћ§ћ§§ћ№јњїїѕљјћњ§ћў§ў§ўўњ§ў§ў§ўўў§ўўў§ўў§љњ§јњјњћћф§ћў§§ћ§ћўњћјєђѕїћљ§ћћ§§ўўћў§§љў§ўћ§§ўўў§ўўќ§ў§ўўп§ћњћљћњћћў§ў§ў§ўћўћћјјѕїєѕјњљ§ћўћћљўњўћ§ћ§§ўў§§§ў§ўўю§ў§ў§ўћўњўњћљ§њ§ћ§§тћ§ћ§§ўјњїєьяяѕїњћ§§ў§ў§ў§ў§ў§ўўј§ў§§ћ§ћ§§гў§§ћ§њ§љћ§§њ§њ§њ§њћћўњўћўћ§љјєѓяэѓјљњљ§њў§ў§ўў№§ў§ў§ўћўњћљ§ћўў§§яћ§ћўљњњћћ§ћ§§ў§ўћћрўћўћўњћјћѕђрршёєїјљїњњ§ћ§§ў§ў§§ћћћўћў§ўїёѓѓѕјїљїѕѕњєїїћ§ўў§ѕљњњљїјћ§њћ§§љћќњјњћћ§њ§§ўћ§§њїѕїѕјћћќљћљ§§ўњ§§њў§§јљ§§јћљљћљћ§ўўє§љћћ§§њћћљљ§§ў§ўјћў§њњћњ§§њљњњ§ћўўњњћљљ§ўў§§њ§§јњјјћјћћ§§ўўћўў§њћўўѓњљ§љјљљ§ў§њћўў§§ўњњѕ§њўњ§љ§њљ§ўўўњ§§ћћљћћ§ћћ§ў §§ў§ўўўљ§§№њўћњ§§љњ§њўћ§ћћїїќњјљ§ §єћ§љљћ§ћњ§§њ§§ўћ§§ћњћ§ўњ§ўўјћўўћўўћўў§ќњ§§њњћў§§њ§§ўњљљћ§љћ§§ўѓ§ћљњњћ§њ§ўўћўў§ћљњњќўњћўў§№љћљјћ§§ўўћћўў§§ћћіљћљјјњћљћљљѕњ§љћњ§§ћћљ§§ўљўўјћ§њљњ§ў§§љ§§ў§ћћю§ћўњћњјјњњљїїјїїњћћњѕћјљ§§ўћћ§љўўўћў ўтћ§ј§њ§љљњљѕјњћћ§ћљјћљјњћњњћ§§ўўўњћћ§§љћћ§ќјљњўўїћњљњўўњњўўљћўўћўў§§яњ§њњ§ћњњљ§§ў§ћћњ§§љј§ћў§њјћ§§љћјњњћћўўўћўўј§ўћњ§њњўў§§ўћўўњ§љћћњўў§ђњў§јћњљ§§њ§љј§§њљјјњ§ўў§ћњўўќ§њњ§§љўћ§њ§њўўј§њ§ћјїћ§§юћјјњњїѕњ§љћјјљљјјњњјљњњўћўћўўнњјћћљљ§ўў§љјћћјјњјїѕѕјїїњњјљїњћћјљ§§шћљљњљћ§ћћјњ§љ§њўўћўў§њћўўњ§њњљћ§њћћ§њјњњўјћћѓјћљћ§§њ§њњ§њ§§ўљћћћњљљњ§§ћњўњњўў§ўёћўћў§§љћјљњћљљћћ§ћ§ў§њіћў§§љћљљњўў§њњїњў§§ўўѕћўў§§ћњљїјљљј№ћ§ў§њћљћњћћѕћћ§ўў§§ћљўўћўћўўћњњя§љћћјљњјјћљћћљљњ§§їћљњљ§ў§§јјќєјћљљќ§њћўўћћўўћњњћ§њћ§ўў§љњљўўњљ§§љњ§ћљјњћћ§љќћљљћћќјњњћћѕ§њњ§ћўњњ§§љљїћљ§§њј§ћўўћ§ўћ§§іњћљљћљјїјњњюћљљ§§ћћљљњћћњ§љјљ§§њўьњ§љ§§ў§ћ§§ўўњўўћњ§§ћћѓљјїјїљїњљљ§§ћћќ§њ§ўў§ў§ћњ§§њ§§јљўћћ§њњ§§§ўњ§§§љћљљ§ўљћћђјљљћњљљ§§ўћ§§њњ§љ§ўњ§ў§ўћўў§ўњ§ўў§њ§§ћњюћљ§§њћ§§ћјњїјљ§§ўњњ§§њўўњ§ў§§њ§§ќњ§§ўўќ§њ§њњїћљњљћћљћњњљћњћљ§§љљћќљњњћћїњ§љњ§њ§§ўўќћўњ§§ўјњ§ўњњћјїїљљ§њљјњњћћ§§ћјјћћїљ§ўўњ§ћљјїјјўљ§§ќћўћўў§ўњўў§ўћ§§њ§їћјљ§§ћћљћћєљњљј§њ§ћћ§§ћћ§љ§ўўј§љћўўћћ§§№ўћўўњ§§њњўўћўўћ§§пњ§§ћљћљћ§њ§љњїѕјѓѕјјљћћљћ§§ўў§§њўў§ўўћўўќћўћўў§јћњјјњњћљљѓћњїљљњњјњљњњ§§§ћјћћўљћћ§їњўў§ћњўўї§љћљћњ§љјјќљјњћћі§љћјњњјћљ§§ъј§§њ§§ћћјїњњћљљ§љўў§њ§§њ§§ћў§§ќћљћ§§шћ§§њњ§јјљћљћљњћ§ўў§§ўў§ўў§§љћњњ§њ§ћњўўњ§§ўњўўћњ§ћћ§§ћыљ§њўў§љљћ§§ћ§љј§њ§§њ§§њ§ўћўўўћўўўћўўіћњњ§§љ§ћћјјћ§љњјјњљћћљћјјћћљћљ§§ўњ§§§љ§ўўљ§њ§ўўћ§§ў§§њ§§ўњ§§ћћњїњћ§§хњљљћљћ§§ћљћћјњјњћ§њўў§њ§ўў§§ўњўўћ§ўћњњћљњ§ћјјћњїјљ§§ѕћљћћјјњ§љљ§§ћ§№ўљ§§њњ§њ§њњљѕљјћћ§ўїњ§§њјљћљ§§ѓўњњљћћњњћћљћ§§§ћњ§§§њ§њњ§љњ§§њ§њ§§љћ§њ§њ§ўўўњ§§ќњ§§ћћљљ§§љ§§ўўћ§§њўўјњљ§§њ§§ўўћћ§њћўўњњ§§њћўў§њ§ќћў§ћћљ§ќј§§ўўћ§ћўћўўѓ§њњ§§ўњ§§ўћљўўўћўўћћў§њњ§§№ўћў§§ћћјљљјњјјњїїюћ§ў§њљћћњ§ћўўћ§ћ§ћћћљћўћ§§ќў§§ўўўћ§§ѕўњ§ћљљј§ўћ§§ћюњїїљјјљљћћѕљњћ§§ћўўіљ§ћћњћљњ§ў ўѕњ§њњ§њћљћљћћїњћћ§§ћњњјјљћў§ўўњ§њ§љ§ўўќ§ўћўўэћўњ§њћћњ§њ§њћћњ§§ћњњћёњїјћљљњњљћњјњљ§§њєљћћљ§§ћћњ§§њњ§§ћўў§њњћљћљћћ§њљјљјћ§§љњ§ў§§љўўјћ§§ўў§њўў§єњ§ўў§љњ§ћњїјјјћљћљћ§ў§§њњљћћ§љљњѓћ§њ§ўўњ§њ§ў§њњ§њ§ћњ§§ћўўјћ§њ§ћљїћћўњ§§њќ§љћљљћљјћљљћљћћ§§ўћјј§ћњ§§ђњ§њњ§§њўў§њўћ§§ђњ§§њњ§ћћљњїњјљљѕјњћ§§ћћљ§§ўў§ўў§љљ§ўќ§ўўћћќ§љћ§§ўјћћіљћ§§ћљћљћ§§ўўћўўє§ћљњљљ§§њ§њ§§ўњўўјњ§§њљ§њ§§ёњ§њ§њ§њљћћљљћћљљј§њњ§ўћў§§ўў§§ќњћўњњњћ§ћћњўў§ћў§§ў§ћ§њњўћњ§љј§§ћћў§ћ§§јћў§љћћљ§§ћњљћћњњћћѓљ§§ћљј§ўњњўњ§§ќћљћ§§њњ§ћўћ§§ўфћўў§§њњўў§ћ§§ћњјјњњћјћјњјљћјјћњјћћљљѓћјјњћњ§§ћљ§§ўўђ§њ§§ћњћљћљћћљ§§эљєјћљћњјјїњјјњљћљћјјћќњћ§ћћ§ћљћјњљљ§ўў§§ќћњљ§§љћћљћћњћћ§ќћљ§ўўђћјћћ§§ћ§§љћљћ§§ёўћ§§ћ§§ћљњўў§§ћћўљћћўљ§§ћњјћјњњћћљ§§єћљћљћћјљћљ§њњљќћ§њ§§ўќћўў§§ўќћ§њ§§§њљћћ§ќњјћ§§іў§њћўњ§§њћћњўћћў§§ўўўћўўј§њњљњўў§§іћ§§њ§њ§§њ§§ћљ§ќћљ§ўў§њў§§ћў§§њ§§ўѓћў§њ§њ§ћ§ћљћ§§ўћљљўћ§§ѕљћћљњїћћјћ§§ўњ§§ўћћўћў§§ўњ§§ўњљљћњјљћ§њ§§јњ§њ§§љћ§§њ§ўў§§њўї§ћїјјњћћ§§ўў§ўўљ§љјљњњ§§ђњћћњ§ўњљ§ћљћћ§§јљћћљ§ўћўўћ§ћњ§ўў§ёўњљћћјћљїњћћ§§ўў§§њ§§ђњўў§љ§§њћ§љћћ§§ўћ§§љљ§ћћљћћјјќљ§њўўђњ§љљћњњћњјљњљїїљјњљћљћјјјњћћљ§§ћјјћљћљљјјњњјїљњ§§їћљћћ§§њ§ўўўћўў§ёљћљјїљћ§њ§ўўњ§ћћї§њ§§њ§§њ§§цњћћјћћ§ўўњљјјљ§ћ§њј§§њњјњ§§ўў§§ўњ§§ћњљљћ§§ўћў ўњћў§љћ§§ўњ§§§љњ§ §єњ§ўў§§љљћјћ§§§њ§ўўќ§ћљ§§ўћ§§ћћњјјћћ§ћњљњљ§§њ§њ§ћљћћњ§§§ўћ§§§ћљћћўњ§§ћћљћјљїїљљєјѕѕљїїјѕћљљњ§§љљ§§ћћ§ђњ§§ў§њ§њ§§њљљ§§ћћљћљћћўљћћўјњњћћљћћ§ћћњљ§§ћў§§§ўњ§§єћљљћ§§ўўћњў§ §ћ§іћ§§ћћјљљ§ћћўљћћ§ўњ§њјєѕјїљљјћљњћћўўо§ўћ§ћћљљјљњћћ§њ§ћ§ћћњћњћљњљћњћћ§ћ§§ђћ§ћўў§ћ§ћљјљљњњљћњћћ§ћ§§ўћ§§јћ§ћ§ћ§њћћюў§ўћћњћћ§§ћњћў§ћ§ўўњ§ћў§ў§§ѓљњ§ћ§ћ§ћћ§§ћўўњ§ў§ў§ћћўіћ§ћ§ћ§ћ§ћњњћщ§ћў§ў§ў§ў§§ўў§ў§ўћћњћћ§§ўћ§ўћў§§ыў§§ћ§§ўћў§ў§§ћ§ћњњћњћћйњћћ§ћ§ћ§§ўў§ћ§ћ§ћ§ћ§ћўћў§ўў§ћ§ћ§§ў§§ћў§§ўс§њћњљљћљњћ§ћ§ћ§ћ§ћ§ћ§њ§ћћњ§њ§ћ§§ўћ§§ћћ§ћњњ§§ўћў ўўћ§§ўћ§§їў§ћ§ћ§ћ§ћћіњћњ§ћ§ћ§ћўўћљњљћћ§ћўўњ§ў§ўў§§ўљ§ў§ўћ§ћћћ§њ§ћўў§ћњљћњћњњљћћћ§ћћњ§§ўњћћў§ўўё§ў§ўў§§ў§ћ§§ћ§ћћђ§ў§њћњћњњћў§§њњљћјљљїљљљћњћњњљћћ§ўљ§ћў§ў§ўўќ§ў§ўўќ§ўў§§ћъљјљњљћњ§њћ§њћњљћљљњ§ћўўќ§ћњћћјњћњ§ћ§ћўўќ§ўў§§ўў§§ўў§ўў§§ћ§§яћњљљћ§ћўћњњ§ћ§§ўћћэ§ўўћ§§ћћ§ћћњљљћњў§ўўјћўў§ћ§§ўў§ўћўўћќњћ§ўў§§ћ§§ќћљћ§§№ћ§ћ§ћ§ћ§ћ§ћ§њ§ћўўў§ўўўћ§§њћ§ћўў§§ў§њћќ§ћ§њњљіћўњ§§ћћњњљљќј§§ўўэ§ў§ў§ўў§њћњћћ§ўўћћњњёљњљјјїљљњљњјљљњњћћ§ћ§ћћїљћњ§њћњ§ћћ§ў§ў§§ћ§ћћќ§њћњњ§љњљљњњћњћњњћћ§ыћ§ћ§ћћњћњњљћћ§ћ§ћ§§ў§§їў§ўћ§ўў§ўўлћ§ћћ§ћљњћћњћњћћ§њћћ§ћ§ћў§§ћ§ћћ§§ўўћ§ћћј§ў§ў§ўћ§§њў§ўћ§ўўў§ўўє§ў§ўћ§њњјљњћћњћьўћ§њћњ§њњ§ћњ§ўў§§ћ§ћћ ўў§ўў§ћњћјљњњћћєњћћ§ћ§ћњћњћ§§јћ§њњћњњћћ§ћў§ў§ўў§ђћ§њ§§ў§ў§§ћ§§ўўњ§ћћ§ћ§§ћњћњљњњў§ћћњљќњћњ§§§ћў§§ћќњћћ§§јћў§ў§ў§ўўї§ћ§ў§ћ§§ћћфњћњљњњљњњћћ§ћћњћў§њћ§§ћ§ћ§ћ§§ђў§ў§§ўћћўћњћ§ўўя§ў§§ћћњњћ§ћњњјљљћћы§њћњћћ§ћў§ўћ§§ўћ§ћ§ћ§§јћ§ћў§ўў§§№ћ§ћў§ћћ§ћ§ћ§ћћњћћщ§ћ§ћћњћњћњћћњљћћ§ћўў§ћ§§ћї§ћў§ўћўћўўћћ§ўў§§№ўћ§ћ§ћ§ћ§њћљљњў§§ћї§њњљљњћћ§§ќћ§§ўўќћўћ§§ўћ§§ќћў§ўў§ћљ§ћћњћњљљќњљњћћюњћљљњћњ§§ў§ћ§§ћў§ўў§§ћ§ћћњў§ў§ў§§ћњћћљћћћ§ћњљњњў§њњћ§ўњ§њћњћњњћќ§ћ§ўў§ѓћ§ћ§§ў§ўћћњ§ћћ§ѕћ§њњћ§ћћњћњњњћњћљћ§§ўњћћіњћњћњћњћ§ўўўћўўћ§ћ§ћўў§ўћ§§ўњ§ўћ§ћ§§ћћњћњћћш§ћћљљјїїјїњћњњћњ§ћў§§ћ§ўўњћ§ћ§ћўўў§ўўў§ўў§іћ§ћћљњћ§§ћћљјљќњљћ§§ьћ§њ§њћњћњњћњњћњћљў§ўўє§ў§ћ§њћћ§§ћњњѕћњљњћњћњћњћћњљчњћћ§ћ§ћ§ћ§ћ§њћ§ћљљњћў§ћў§§ќћ§ћ§§юћ§ћўў§ћ§њћњ§ћћњ§ћ§§ћѕљњ§§ўћ§§ўћўўњћ§ћћњ§§ћ§№ћ§ћ§§ў§§ћ§ћ§§ў§ўў§ћоњ§ћ§њћћ§§ўў§ћћњ§ћўћћ§ћ§§ћ§ћ§ћ§ћ§ћ§§ќћ§њўўњ§ў§ў§ўўѕ§ў§§ћ§ћ§њћњњ§ћљњњћ§њћњњѓћњћћ§ћ§ћ§ћўћўўѓћ§ћў§њћ§ћ§ћў§§ћ§іћ§њћљћљћћ§§ћфњћњ§ћњћћњњљњљњћ§ўўћ§ћў§§ћ§§ўў§ќў§ћњњіљњњћ§ћ§ћ§ћћўњ§§ћя§ћ§ћ§ћ§њњћ§ћўў§ћ§§ћћ§ћ§њњћ§ћў§ўўі§ў§§ћ§ћћњћћчў§§ћњњљљћњћњ§ћ§њ§ћ§ћ§ћ§ћ§§њћ§ћ§ћ§§ћћ§њћ§§§ў§ўўщ§ў§§ћ§ћ§ћ§ћ§ћ§ћ§њћњћў§ћћ§ў§їў§ў§ўў§ћ§§ќћ§§ўўђћ§ўў§ў§ў§§ћ§§ўў§ўћ§§јћ§ўўћћњћћ§ў§ўў§ўўњ§ў§ўћ§§њћў§§ћўўў§ўўі§ў§ў§ў§ў§ўўўћ§§ѓћ§§ў§§ћћњ§ћћњњљћсўћ§ћћњ§ћў§ўў§њ§њћњћњўў§ћ§ћўћћ§ўўт§ўћ§ћўў§њћћ§ћўў§ћ§ћ§ћћњњљљјњњћћњьјљњ§ћў§ў§ўўћњћ§ћћ§ћўўќ§ў§ўўў§ўў§љћ§њћњћњњўћњњћћ§њљљњњћїњћњ§§ў§ў§§ћў§ўў§ўї§ў§§ћ§ўў§§ућњ§ћ§њњљљњћњљљњњћћљљћњљњљћ§ћ§§єћњњћћ§њћ§§ћ§§ќћў§ўўѕ§ў§§ћ§ћ§§њћћњњћњћњ§ћћј§ћ§ћўћ§ўўќ§ћў§§ћў§ўћ§§їўћћ§ћњљљњњћћњћњ§§їћ§ћ§§ћњњћћљѓњћ§ћў§§ћ§ћўћ§§ќћ§ћ§§ўћ§§ѓћў§ў§ўў§§ћњћњњћ§ћ§ћ§§ћўњћћўњћћєњћћњћњњћ§ћћњњ§њћ§ћ§ћ§§ђћ§ўўћ§§ўћ§ћ§ћ§§їћњњћљћљњћћюњљњћ§њћћ§ћў§ў§ўћ§ўў§ћўћћ§§ћўў§ўў§ћћ§§ћњњќћњћњњ§ћњћћўњћћѕ§ћ§ћ§ћ§ћћ§ўўў§ўўћў§ћћ§љћ§§ћ§§ўўў§ўў§ќћ§ћ§§ьћ§ћ§ћ§ћ§ћ§ћ§ћћњћћњњћћјњ§ћ§ћ§ћўўѓћ§ћ§ў§ћ§ћ§ўў§§ћў§ѓў§ў§§ћ§§ў§ўў§§ќў§§ћћЩ§ћ§ўўћњћ§ћ§ћ§ўўћћњћў§ћ§ћњњћњћљљњћњћћ§њћћ§ў§§ў§§ћ§њћњћћ§§ўћ§ћ§ћўўќ§ўћ§§ьўћњћ§њљњњљљњ§њњљњћћњњўљњњћњћљћ§§ћћўьћ§ћ§ў§њћњћњћћ§ћ§ћћњћћїљњњљљњњљћћњњћњљњ§њњїћњ§ћћњњљћћю§ћўћ§ћ§ћ§њљћ§ћ§ћ§ћћ№њћњњљћњћњ§ћ§њћћўўњћ№§њ§ћћњћњ§ћ§ћўў§ћћї§њћ§ў§§ћњњћсњћћ§ћ§ћ§ћ§ћ§њћњњљљњњљљњћћ§ћ§ћњћћњћ§ћњћ§§ћљ§ћ§ћ§§ўўђ§ў§ўћ§ћў§ў§ўў§§єћ§ћ§ћћњћћ§ћ§§ќњ§ћ§§іў§§ћ§§ћњћ§§§ў§ўўќ§ћћўўў§ўўѕћ§§ў§ў§§ћ§ћћч§њ§ћ§ћ§ћћ§§ћ§ћћњћћ§ћ§њћћўўь§ў§ў§ў§§ћ§ў§ћ§ћ§ћў§ўў§ѕћњ§њћњ§ћ§њћћ§њ§ћћюњћћљћњњ§њ§ћ§ћ§ћ§ћўў§іћ§ћ§ћ§ћ§§ћћњ§ћњ§§єћ§§ћ§§ћћњћћ§§тћ§ћ§ћ§ў§ћ§ћ§§ўў§њћњњљћњ§ћ§§ўћўўњ§ћћ§ћ§§іћ§ћ§њњ§§ў§§ьњћњњћ§ћ§ћ§ћћњњћ§§ў§ўў§ќњ§ћўўюћ§ў§ћћњ§њћњљњћћ§§ўўќ§ўў§§хћ§§ў§§ў§ћ§њ§ћћњ§ћ§ћ§ћ§њ§ћ§ћћ§§њћћњќћ§§ўў§ѓћўћњљњњљћћљјљљїњљћњћњ§§њњљљњњћћ§њњћћњћћњњђљњљјљ§ћ§њћњћћ§§ўћћ§ћ§ћћњ§ћњ§§ѓў§§њћњ§§ћћ§ћ§§ћы§ћ§§њњ§њћћў§§ћњњћ§ўћ§§ўћ§§фћ§ћўћ§ћћ§§ћ§ћ§ћћњ§ћ§ћў§ў§ў§ўўЬ§ў§ў§§ўћћ§ћ§ћ§ћ§ћ§ћў§§ћ§ћ§ћ§ћ§ћ§§ћ§ўћ§ћћњ§њ§ћ§ћ§ћ§ћўўл§њћћ§ћ§ћ§ћ§њ§ћ§ћ§ћ§ћћљњњћњћћ§ћ§ћњћ§ћ§§ћ§хћ§ћћњњ§§ћ§§ўћ§ћ§ћ§ћ§ћ§њћњћњњё§ћ§ћ§ћ§ћњњћњњјљљїјљїјљјљљњњћ§ћ§§ћњњћр§ћћўћ§ћ§ћ§§ћћ§ћ§ћ§ћ§ћ§њћњћњћњћћњњ§ћ§љљњњћњћњћћіњћћ§§ў§§ћ§§пћ§ћњћћњ§ћў§ў§ўћ§ћ§ћ§ћ§ћ§ћ§ўўћ§ћ§ћћј§њћњћћ§њњќћњћњњј§ћ§ћ§ћ§ћ№њћљћљ§љ§љћљћњўћўў§§ўћћњћўў§§јў§ў§§ћ§ћћѕ§ћў§ў§ў§ў§ўўі§ў§ўњћњ§ћ§§эћ§§ў§ў§ў§ў§ў§ў§ў§ў§§ќћ§ћўў§єћў§ўћ§ћў§ў§ўўў§ўўђ§ўћ§ўў§ў§ў§ў§ўўќћ§§ўў№§ў§ў§ў§ўћ§ћ§ћў§ўўў§ўўі§ўћў§ў§ў§ўўќ§ў§ўў§§ў§ўўћ§ў§ў§§єћўћ§ћў§ў§ў§ўўі§ў§ў§ў§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўў§эћўњ§ћўћ§§ў§ў§ў§ў§ў§§ћ§ўћ§ў§ў§§ѓўћў§ў§§ўў§ў§ўўф§ў§ў§ў§ў§ў§ў§ў§§ћ§ћўћ§§ў§ў§ўўјћ§њћћў§ў ўў§ўў§ўћ§§ўќ§ўћ§§ѕћ§§ћњћћ§ћў§§§ўћ§§њћ§ўў§ў ўў§ўў§§ў§§ѕў§ў§§ћ§ћ§§ўў§шњћњћћ§љ§љњњћћ§ћ§њћћў§ў§ўў§ў§јў§§ћћњ§ћћ§ўћ§§ћ§ўђћ§ћўћ§ћ§§ў§ў§ў ўў§ўўђ§ў§ў§ў§ў§ћћў§ўў§ўў§§ў§ѕћў§ўћўћўћ§ў ўќ§ў§ўўў§ўў§ўћўўљ§ў§ў§§ћћ§ўў§§ѓў§ў§ў§ў§§ћћ§ў ўњ§ў§ў§ўўќ§ў§ўўы§ў§§њћћў§ў§§ћћњћњ§ћў§§§ћўћћ§ўќ§ўћ§§ўп§ў§§ћўћўњћљљњ§њћћ§њћ§ўћ§§ў§ўћ§ћћ§§ћќ§ў§ўўў§ўўє§ў§ўў§ћў§§ћ§§ћёўћ§ћ§ћћ§§ћў§ў§ўўю§ў§ўћ§ћ§§ћћ§§ў§ў§ўўў§ўў§ьћ§§ћ§§ћ§ћўћў§§ћў§ў§ўўќ§ў§ўўў§ўў§ќћ§ћўўў§ўўў§ў ў§њўћ§§ўўћћў§ќћ§§ўўљ§ў§ўћ§ўўо§ў§ў§ўћ§§ћњћћўћ§ћ§ћ§§ў§ў§§њ§§ў§ў§ћћћњ§ћў§§ўј§ў§ўў§§ўўњ§ў§ў§ўўћ§ў§ў§§ћ§ћўћ§ћ§§ўўћћљ§ћ§§ў§ўў§§ў§§ћў§ў§ў ўп§ў§ў§ў§ўћ§ћ§ћўњћњћњ§ћ§§ўћ§§ў§§ћў§§ћў§ў§ўўў§ўўќ§ў§ўўќ§ўћ§§ћёўњ§ћ§§ў§§ћ§ћў§ўўў§ўўє§ў§ў§ў§ў§ў§ўўњ§ў§ў§ўўљ§ў§ў§ў§§єў§ў§ў§ўћ§ћ§ћћ§ўћ§§ўќ§ў§ўўћ§ћў§ў ўў§ўўў§ўўр§ў§ў§ў§§ћўћ§ў§§ўћў§§ћћњў§ў§ў§ў§ўўј§ў§ў§ў§ў ўј§ў§ў§ўћ§§шћ§ћўћўћ§ћ§§ўў§ћ§ћ§ћўћ§ћ§§ўў§ўўќ§ў§ўўю§ў§ў§ўћ§ћ§ћў§§ћћњ§§ћћ§ћў§ўў§ћїўћћ§ў§ў§ўўњ§ў§ў§ўў§ўђ§ў§ў§§ћ§§ўћ§ћ§§ћћ§§ћ§§№ў§§ћўў§ћ§ћ§ћ§ћ§ў ўќ§ў§ўўњ§ў§ў§ўўљ§ў§ў§ў§§ѕћў§ў§ћњћљњћћ§ўќ§ў§ўўќ§ў§ўўћ§ў§ўћћѓў§ўћ§ћ§ћћњ§њћћ§ќў§ў§§ќћ§ћ§§ќћ§ћў ў§щћў§§ћўћў§ўћ§ћ§ћ§ћўћўћ§ћћ§ћў§ў§ўў§§ћ§ћћё§ћў§§ўў§ў§ў§ў§ўўў§ўўё§ў§§ћ§§ўў§§ў§ў§§јћ§ћ§ћ§§ўўў§ўўј§ўћ§§ў§ўўњ§ў§ў§ўўњ§ў§ў§ўўє§ўћ§§ў§§ћ§§ўў§ў§ўў§ўўѓ§ў§ў§ў§ў§ў§§ў ў§§ў§§љћўћўћў§§љўњћћўћ§§ќћўњ§§јћў§ў§ў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўў№§ў§§ћћњћћў§§ўўћ§§ѓў§§ћ§ћўћћ§ў§ўўў§ўўќ§ў§ўўў§ўўь§ў§ўћўћўћў§ў§ў§ўћ§ћ§§ўї§ў§ў§ў§ў§§§ў§ўўј§ў§ў§ў§ўў§§ў§§ ўј§ў§ўћ§§ўў§іћўћ§ћ§§ў§ўўр§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§§ўў§ў§ўўш§ў§ў§ў§ў§ў§ў§§ћ§ћў§ў§ў§ўўў§ўў§§ў§ўўў§ўўў§ўўј§ў§ў§ў§ўўљћ§ћ§§ў§§ўў§ў ўќ§ў§ўўў§ўўњ§ў§ў§ўўі§ўћ§§ў§ћњћћњњ§њ§ћўў§ќћ§§ўўђ§ў§§ћ§ћ§ўў§ў§ў ўў§ўў§ќћ§§ўўї§ў§ў§ўћ§њњѓ§ћў§§ћ§њ§ћ§§ўўњћўћ§§ўўі§ў§ў§§ћ§ћ§§їћ§њ§ћў§§ћћїўћўћ§ћ§§ўўњ§ўў§§ўўў§ў ўў§ўўх§ў§ўћ§§ў§§њћћ§ћ§ћ§њў§§ћў§§ћћ§ћў§ўў§§єћў§§ћў§ў§ў§ўўт§ў§ў§ў§§ћ§ћў§§ћ§ћ§§ў§ў§ўћў§ў§ўўў§ўўў§ўўў§ўўќ§ў§ўўі§ўў§ћ§ћўћ§§іў§ў§ў§ў§ў§§ѕў§§ћ§ћў§ў§ўўќ§ў§ўўђ§ў§ў§ў§ў§ў§ў§ўўљ§ўў§ћў§§ўі§ў§ў§ў§ўћ§§њўћ§§ў§§ўў§§ќў§ўћћђ§ў§ў§ў§ў§ў§ў§ўўў§ўўї§ў§ў§ў§ў§§яўћћњ§ћ§ћћ§ў§§ћ§§ўўў§ўў§§ў§ўўў§ўў§њћў§ўћ§§јћ§ћ§§ў§ўўђћ§§ўћў§ў§ў§ў§ў ўјћ§ў§§ў§ўўќ§ў§ўў§§ў§§љў§ў§ў§ўў§ќћўћ§§љћ§ў§ў§ўўі§ў§ў§ў§ў§ўўќ§ўћўўў§ўўќ§ў§ўўў§ўўј§ў§ў§ў§ўўј§ў§ў§ў§ўў§љћў§ў§ў§§ћњ§ћ§§ў§§ћў§ў§ўў§§ў§§ўќ§ў§ўўќ§ў§ўўќ§ў§ўўћ§ў§§ћћ§ћў§ћћћўћўћ§§ѓћ§ћўћўћў§ўћ§ўўы§ў§ў§ў§ўћ§ћ§§ў§§ћўћ§ћћѕўњћћўћ§ћ§§ћћ§§ћ§§љћ§§ўћўћћћ§ћў§ўўѓ§ў§ў§§ћў§ў§ў§§ѓћ§ћ§§ћћ§ћ§§ў§§ўњ§ћ§ћў§§ќў§ў§§§ў§ўўћ§ўћў§§ў§§ў§§ыћ§ћ§§ў§ў§ў§ў§§ћ§§ћћ§ћћѕ§ћ§§ў§ў§§ћ§§ўў§§ќў§ў§§јћў§ў§ў§ў ўў§ўўё§ў§ў§ў§§ћ§ћў§ў§§ўў§§ћў§ў§ўўі§ў§ўћ§ћў§ўўў§ўўќ§ў§ўў§ћў§ў§ўўѕ§ў§ўћ§ћ§§ў§§ ўі§ў§ў§ў§ў§ўўњ§ў§ўў§§ћћ§§ў§§§ћў§§ўљћ§ћ§ћћ§§љў§ў§ў§ўўќ§ў§ўўљ§ў§ў§ў§§ћ§ћў§ў§ўўј§ўћ§ўў§ўўє§ў§ў§ў§ў§ў§ўў§ћ§§ў§ўўў§ўўћ§ў§ў§§њў§ў§ў§§ѕў§ў§ў§ў§ўћ§§ў§ўњ§ўў§ћ§§јћўћ§ћў§ўўњ§ў§ў§ўўћ§ў§ў§§іўћ§§ў§ў§ў§§ўў§§ћћ§ћ§ћћ§ўэ§ў§ў§ћњ§ћў§ўњ§њ§ћћ§§љћ§ћўћћ§§іў§§ћўћ§§ўћћўўћћё§њћ§ў§§ћ§ћў§ў§ў ўї§ў§§ћ§ћў§§§ў§ўў§ќћ§§ўўќ§ў§ўўћ§ў§ў§§ўћўў§љћўћ§ўў§§ўњ§ў§ў§ўўў§ўўћ§ў§ў§§ћў§ў§ўўф§ўћў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ў§ўўћ§ў§ў§§ћў§ў§ўў§јў§ў§ў§ў§§јў§ў§ў§ўћћё§ћў§ў§§њ§§ў§ў§ўў§§ў§§ћў§ў§ўўї§ў§ў§ў§ў§§ўћ§§ђў§ў§ў§ў§§ћ§ћ§њњю§љћљ§њ§њўћў§§ћў§ў§§ўў§§ўљ§ў§ў§ў§§јў§ў§ў§ў§§ќћ§ћ§§§ћ§ћћѕ§ћ§ћ§ћўћўћ§§ўї§ў§ў§ў§ў§§ўє§ў§ў§ў§ў§ў§ўўѕ§ў§ўћў§§ћћ§§ќћ§ћ§§љў§ў§ў§ў§јћљљќ§њљћћщљїњјњњћњћљјњјњљћћјљєѓєїїшј§§йM8;B:>@?<@* CJjњ§§§њ§ћћТњўў§§ћљћ§њљјјњјћљњјјњїѕљїїѕђїѕїљћ§тg50+35>7.9-)7JG45Hјїћњ§њћњћћљ§њјјљљћћѓљћљљјјћљћћњљїї§љѕїїхѕјѕњ§еcL>$15:43.+Ce[(17Bљљћћў§ћћ§эњ§ћ§љљїњњћјћјјљљћљјјїњцљїєѕў§јm5CIIE@.()NN>&0(§§яљњїћљ§§њјћљ§§њћћљљњјїјїљћћљўћјјїЯњ§зS%?E@447)(;8)&.QZcўћўћўљ§§ў§§ћћјјњјјњљћћљћјѕїјјћўњјјїњщјћ§лh@GGA39;:>73<;8?Fњјјњјјњљћћ§њћћљњїњњћљјјљљ§њјљїјјхљїѕѕћћнŽ@44;EJUC;717149-(њњјќљїєјјэљћјјњјњњљј§§њ§љћљљјјЮљћљїљєјју‡HQC@9:(+$+503-I§љћјњћћњќћјљјјїѕњјјїјѕјљћћ§§§ћјњњчѕђђї§Ъ]7HCC49005-)7>2-$љљњшљћјњњјњ§њњ§њ§јљљ§§ћїњљљїїћѕјјєјјмѕђѓђ§љАG9ZJFHHB@?A>7212Aњ§љљћљљћ§њћћыљћљљ§њ§љћћ§§љћ§§ћћњјњњўјїїчѕѓђњћРMCg;292.$-490,%!Cўўєњјљћ§ћљљћљјћћљЩћљћ§§ћўў§їјїїѕїѕјѓѓ§§п[<]J8404."!)()-:M§ўўћњ§љћћ§§љћїјјђїј§њњјћћљљ§њ§љљфћјїѕёђћ§пnTdP8+!*($14?O?NTP§§§њљћћТјљћњљљјѕїњњјјљ§§ў§§ћњњљћћјїѕњњїѕєєљ§ЩaHaM*(1-088A?EPVH§§њњ§§љљіњ§§јћћєїњјјѕћ§§њ§љјњњћ§§жћњїїљѕєєў§ьr;GQH<:9>3+3>F7.2Oњљњ§§љћћљљћњ§§ўћјјєїњњїїјљћљљћјјдљћњјѕѕєѓј§ђu179F<4?125§§љљњ§ћўћўўћ§њ§§їћљљћљћљњјјќљјњћћцїѕїїѕєѓђѕћї‹::JLI<5.4002-,,ђњћ§§ўў§њ§ўўњў§§ўњ§§ћћљћњјј§ћљїїњлјїїѕѓђѓ§я{B0<;155.,*38718?J§§љјјїјљ§ўўћ§љїњјћљјљњњјјоњїјїїјђяђћ§—^>87A99.+-;GIJ?@2§§њњћћ§§њ§ўў§№њ§љћљћљћњњћ§§ћћ§§ћтњїѕђяёћѓ—L;B@52,7.,"27-"(ћ§њ§§ћ§ўњ§§Эњўњљћћњћјљ§њћїњћљћјјњїљїѓђђ§љД]>F@4-&%311<451,јћ§ўў§њ§ћэ§ўћљњ§§њ§њћљћјјїїњјјѕѓшѕћћИhI42++0$)&$**&+-)§§ўўў§љљіћњ§§ћћљћћ§§љїћ§§љћјѕѕїїыѕѓѓђ§§ЏG-BA(-8.+*#*..я3ћ§§ћћ§§ћћ§њћјњњћћњјњњћћљјњњ§јїјјњејїљљѓѓёћј”U@05)%$-("$-4AHўў§ћћ§ћњћ§њљ§љњћћљ§љњћљњћћњњњјїїѕѕїїхѕєєїћьT22>;9C:"##%4@1ћћўў§їњўљњљљћ§ћћњљјїїјљљ§ћњјјпљѕѓєѓѓїюŽM:E@FBLNMўў§§њљљђћљ§ј§њјњљњљћјљљјїејћћљљћћјѕљљњљѕѓ§ћУY4*<04&&&3?E<7>CQјјњјљ§њњ§љћ§§ќњ§§њњШ§ћћљћјњјљћљљћјјњїљїѕїїѕћ§•CE+4<4%%,0((9IIENMZ9?F92303AAL§ўўњњ§ўўњ§§їњћљњљњјј§§ћњѕђѓїѕєюѓјлN0IJ;HHў>::Bѕ?:,PEўћўњњ§§юњљјјљјњјњњљљјјћ§ћљљјњќјљћјјхљюшэљж]5P@9>9084:;CTN80PVћў ўќћљљћћўљћћњњјњјјћћњљћјјњјјаїјѓьѓ§лW#944:175:;FEJBF;auњ§ўњљјњњ§љљѕ§ўў§њ§ћљјћћѕљјјљљћљњљљћћујѕєыщєЛY>A).-3728<>@NMHB?1ћћ§§њў§ћљљ§§§љјћћњћ§ўт§њљїѕѓыєєЄ+?121-7-9EGINQU\`M§§ъћљљјљњњ§§ўћњљљјјљњњ§њљљї§њљћљїњїѕѕцэјћИ??A:>?<,(+37<@::>>Gљћ§§ўЧ§ћњ§§ћїјњїљњћјћљћћљњјћјїљїїјњљїѕ§ћŸ4$)0.4*,+0,(-55;ML;ћћ§§ћќјњћ§§§ћљћћіїѓїјљ§ћћњ§§§љїјјфїѕѕєђљћ•3,#.;7.1,(**)9BAE>(§§§љћњњ§јњјјўљ§§ўљ§§књљћљћћљјљїѓђыљс‚5;<<841213&,,0:8..5§§ћћљїћјѕѕњњћћљљдћљљ§љјњљњ§ў§ћћљћ§ћјѕїћы‰II585:57:39.25?8:LY§§єњ§§њ§§њ§ўћў§§јћљјїїјљ§§њм§њ§§љњјјњѕћ§Юa9*28?807>4+:A@-+GHEўў§§ў§ћўћ§љћћ§§њ§љљћјћљљћћфїєєѓћєЇ@-3>CHJB<82.54>,AVb`ўў§љћ§ўћ§§њвћљ§ў§§љјњњ§њћњњјњјїїєѓћѓКZJYIFIHJS)0-&%1*8^§§њљјяїћљћ§§њњ§њў§§ћћљјјвљћјїњљїјњњїєѓљљОNOMNFF,,,##F><5Sњ§ћўўњљћљћћ§їћ§§њгћљјњјњњјїѕѕїјљћјїѕєђюљљЫZLVQPObF277.$:A")201:*)..;HHz§§єњ§њўўћћ§§њљјјяњјњљїјјњљїїѕљјћљћћсјѓђѕљ§љ–.!40.-**)3$()#-041.`§њ§§ўњ§§ќњћћ§§ањћћ§ћљјљћљ§§љїѕєђєєђїєеw9(0,)-003;>.*,29:7B‡ј§њ§§њ§њњћњјћ§§Чљћљћ§њљ§њњљєјјїѕїђѕєѓђљњдk5*2"+*#%&(.,1AA%$JЂњўўњћ§љћ§§ћћњљјѓїћљјљєћћљїђѓїїч§љЌF1,37&)0-1)::AG??C?Їўўќњљћ§§ќљћљћћ§ёљїєњњјјљјјєїїјѕѕпѓ§љ˜5,,(%(.05;5:5<@?A&>Ю§њ§љњњ§ўў§ѓњљћљљјљјјћћњїїјћњїїєѓѓрї§ђ‹?4"10!%..2321)28,@,5Зўўћўўњ§§ўћ§љћљћћјѕљїѕїїњњїїєѓѓхђї§ы|3(++072())$*++8E3QжњњќћњљћћћљјљљїїљјњњїљјѕѕєсѓђђѓѓђѕљщmA@737@GG+-*3<84242.{ё§§њћћљ§ћћњћњћћьљњљњњ§њћњљњљћћњњјљїљљїњўўпQ4<:BBу>;;+,8LTk§ћ§ћ§ћ§ћћњњ§ў§§ћњћћї§ћњњљњћћњњљфњљјўўьh7218994:52,3SO?;Eњћњ§§хњљћњћћ§ћњћћњћњћњћћ§§ћћњњљјљљ§јњљљчјїј§ўмkS>,8980144Lk\:2;Oћћњћњќћ§ћ§§яњ§ћћњњљњ§ћњњћћњћњњўћљљлњјљјј§ў§o8EHFF90(+NQ<$*)ћћ§ћћљћњћћ§§јњћћ§§ћњћћњћћњћњћћњэћљљўўнY%?CB@;279;<88Wўiўўѕ§ћўћ§њћњњљњњћљњћњњљљњњўљњњљчњўўнdALC?;:;<--09@?87229>C4V§ћћњ§ћ§ћњћ§§§ћ§ћћњўљњњљњўћњњљќћљјљљщ§ўчŒ>(1hћћ§њћњћњ§њ§§ў§§њћњћњћњћњњљћњћћ§ћ§ћћњљљјѕ§ўе~N@C?;?44ю75>A<8I§ћћњљњћњњљљћњљњѓљњћњњ§ћ§ћ§њњљљэјѕєњўЯd3ML@<7378?A>>ќ8+,ћћљїћњ§љљњ§ћ§§ћј§ћћњљћћљљњўћњњљёѕєўўЕH8bOJHCAEGGј?>?83H§ћћєњћћњ§§њњћћњћћ№§ћћњћћ§ћњћ§њћљњљљўњљљхјѕєўўМQBh@7?;5,#9820902Jў§ўў§ћћњ§њћћљ§њћњћњћћј§ўў§§њњљљкјїѕѕўўчbBcG99442135(148CU§§ўў§ћћњћћ§ћњњ§§ћ§§ўњћћў§ћћњпљјјїўўшr]mV:43)-7<;@?>:8;?<>;85318-§њ§ћў§§ўїћ§ћ§ћ§ћ§ћћўљњњћљуњљљјѕєѕўє„E7@@?<:?<8;<;?9954-08;>B:9:њњ§§ў§§ћ§§єћ§њћњ§§ўў§ћ§§ћњљњрљјѕѕєўўЦiQ;3-4-1-..321-40§ћў§ў§ўўћњњ§ћ§њћћћњ§ћ§ћћљ§ћћњњјљљЩјїѕєўўАJ3;<00+4511-33798ћћ§њњћ§њњћ§њњљљњћњњљњњљњћћњљњљњњгљњњљјјїѕђўў™P;41121%),(.01:CNўў§њњћћљћћ§ў§ћ§њњћі§ћ§§ћћљњћљљњњљљјњљљчјїїљўђ‘T23CAB?>4$",01@G7ўўц§ў§§ћ§ћ§§ўў§ўћњ§њћњћћњљљњћћњЭљјїїѕѕѓђM:?AFGE@91143@BE<75;SPTN4ў§ў§§ћ§ћ§§љўћ§ћ§ћўўюћў§ў§§ћ§ћ§ћ§ћ§ћ§ћњњдљўўшgQ]BEISC?E?54#BJB:§ћ§§ў§§ћ§ћў§ўў§ћ§ћ§ћўў§§ћњ§§ў§§ћњњтљјїѕ§ўыm@JPHMZd:CACA<??>7<@HPZWH.Y\ў§ўўќ§ў§ўўєћњћњћњћњљњљњњќћњћњњпљїјѕ§ўпU*E;9?B97?IMQQPHCmz§ћў§ћћ§§ћ§ќўћ§ћћї§њћњњћњњћћжљћћњћњњљїѕњўНTBFB9>A?:>FFLILOGF2њњ§ћ§ћ§ћўћћј§ћ§ћ§ћћњњ§ћљњње§ћў§ўћ§ћћњјѕўўЊ-%FB99BA7:EIJIMTVeQ§ћћњћћњћ§§іћўў§ћћњ§ў§§ћ§љўњћњњљјјўЭЖFHSCBF@9,27?><@AL>Nћњ§ћ§ћў§ўўћњ§ћ§њћњљљјљћ§њћњњћљњњПљјљљњњјљјўў™.+-<@<:434149;<@FL@ћњ§ћ§њћњљњ§ћ§њћњћњћљњљњћ§њњ§§ћ§ћћњњуљјјїѕўў120>CC>80.+1;?AGI<(§ћћљ§њљњњћћ§ћ§ћћз§ў§ћ§§ћњћњћћњјљїїѓўш5CJEB@>:748997;E538ћћњћњљњћїњћћ§ћњљћ§§њћњхјљўєŒQQ7?;759593;878CGSY§ћ§§ќћ§ћ§§ўё§ћ§њћњљљњћ§ћ§ћ§§жћ§ћ§ћљњњљјўўЫW714CB@;<48>?@;>8NIIў§§ћ§ўў§ўўє§ўћћ§ўћћњћњћћ§ћњћњљуїѕўѕЂ:08@AOQJA:778:9?F]mkў§ўћћўњћћњњ§ћ§ћ§§јњћћўћ§ћ§§кћ§њњљњљњћљјѕўњЗVW^MNMMLW83,,!1:-9gћћ§§ћћ§њћњћћ§ўћ§§ћ§њћњњћњ§ћљјљњњљљїѕ§ўМHQPPL?,3&$((%)GAA4W§ћў§ў§ћњћњћњњћњћ§ћ§§ћћњљњљљњљјњљњћћњљјїѕѕћўЭ\T^UVNaQ5170*("%))Fp§ћ§§ўћ§ћ§ћњњљљњљјћњћњћњћљљгњљњљјїїўўЛ>8W?A;&:858353.;:NM§ћ§§ћ§ў§ўў§ћ§ћњњњљњљјљњњѕјљљњјњњћњћњњхљјћўў˜(%93.-1-1-4,.417597g§§њћ§ћ§ћ§§єћ§ћ§њњћ§ћ§њћћўњћћз§ћћњњјљјїєљјдr3.2451343;82009:@7I‹§ћ§ћ§ћ§§чћ§њљњћћ§ћћњћњ§§ўћ§§ћћњњћљљјйѕ§ўбi007,2+-41%$*2HFAAHFЕўўѓ§ўњ§ћ§ћ§ћњћћњњќ§ћ§ћћљњлћ§њћћњњљњјјѕўњ˜7*(42-*045259@A@CG2@л§§ўў§§ўћє§ћњћћњћ§§ћњљљњљјѕгљўјŽ;1454224954945+,3@.8Ыў§ў§ў§§ћ§§ў§ўћћњћњћњњќјљјљљўїѕѕхєљўыz4#+07512..41.).57N9Yю§§єњљћћњћњћњјјљљљњљљћјїјјїсѕєєѕѕєїўьm:529>HLA:-19@@;7040ƒўўћ§§іў§§ћ§ћ§ћ§ћћўњ§§ћєўћ§ћ§ћ§љњљ§њњл§њ§њўўыcFOQJUOSPG4!1.>]^~§ў§ў§ў§ўћ§§ўўї§ў§ўћў§§ћћП§њўћћњ§љњњ§љ§њ§њўўљ{A5Qћ§ћўћўћ§§ў§ў§§§ћ§ћћО§ўў§ў§ў§ў§ў§ў§§њўњћљўўЫcTQ^JNFUJMBEGJPUUtћ§ћў§ўћ§ћ§§ў§§ћ§ћў§ў§ў§ўћћ№§ћў§§ћўћ§ћ§ћћњ§ўўцЗcQ;29OLQOIGHIJMUHb§ўћ§§ў§§яў§ў§ў§§ћ§ћ§ћўњћњћћињўћ§§ўћўћћњ§њ§ўўщ›P;3LNYTZ[VTQUOQSZbњћњћћ§їћў§§ћ§ћњћћЭ§ћўћ§§ў§§ћўћўћћњћњ§љћўўтL@9UTYTTUTJSSPLJI>ћўњўћ§љћћ§єўњћћўћ§ћў§ў§§љў§ўћћњћћ§ћњљћўх\b[[ђ][NPLOUPSSO>Zћћ§њћ§ћ§§ўў§љћў§§ћўћћњў§ћћ§§ћ§њњћъў§Ў[VZ[adVOJNGBCLSQMu§§ќћ§ћ§§ў§§ћ§ћћ§Яћ§§ћў§ў§§ћћњ§њ§њћљўўуŽbNZTVJGGAENFIIL4c§§ћўћ§ћ§§ћћёўћўћўњ§ћўћўћ§ћ§§њў§ў§§ћћфўљљјўўпrE^]TN?IPZGIILNN;>§§ћћў§ћћ§ў§ўўє§ў§§ћ§§ўћўћ§§љњ§њўћўћћф§љљјўўЧ[Mjb\YGVWYZQONJJ>Y§ў§§јћ§§ў§§ћ§§јў§ўћ§ћў§§ќў§§ћћўўћћф§њ§љљјўўЫaWrSHJHFOLGNELLCI]\US\ZYVUQICJ7L§ў§§ўўђ§ў§ў§§ћ§ћ§ћ§њћћйўћ§ћ§ћўњ§њћјљљ§ўў™NS]UPHZPMLJJI?LG@ў§§ўўќ§ў§ўўѕ§ў§ў§ў§ўћўћћ§ћћњ§њћћњљрѕљўў‘TGYOJJYYNTMOMJWY^§ў§ўћўћ§§ўўћ§ў§§ћћћ§ћ§§ћћињћњ§љјїјўўЎxTIHMSU[PIV\`YUSG§ў§ўћ§ћў§ў§ўўћ§ў§ў§§Яћўћўћў§ўћ§§ў§ўћ§њњљјїїўўЇ`LZJILMOJHIOSMIE;§ў§ў§ў§§љў§ў§ў§ўўѕћ§ћў§ў§ў§§ћћн§ћўћћњњјљѕјўўУoTWHJIJLOCJAQPMJHћ§§ўўє§ў§ў§ў§§ћ§§ўўї§ў§ў§ўћ§ћћњћх§љљїљўўЯ|eICALGOSaўў§ў§ўћўћў§ў§§јў§ўћ§ћ§ћћр§њћњњљ§љњј§ўўЁb@FOTMWTPBAB5MPUIўўњ§ў§ў§ўўќ§ўћ§§ђћ§ћ§ћ§њћ§§ћ§њћћвљћњњїљїњ˜]JQJSOWTMJBBJMVk?§§ћ§ўў§ў§ў§ў§ў§§ћ§§ћћњўћ§ћ§ћћ§лћљћљњљўћщ‰L9ILPPTLLEJFMPTW`ћ§ћў§ў§§ћ§§ўћ§§§ћўћћ№ўњўћћњўћўњ§ћ§ћ§ћћцљњїўўлr84MLEFCGHHIM;YWYb§ўўш§ў§§ћў§ў§ў§ў§ў§ў§ўћўћ§ћ§§дўњ§ћћњњћћњћјўўрk0@LGF*AEJOSTZZ``cўў§ў§§ћ§ћў§§њў§ў§ў§§іћ§њћњћћ§ћ§§ћњѕћљћјўўг^?AUQV\YP8§ўў§ћћўњћћўўћћ§§ў§ўўд§ў§ў§ў§§ћ§ћ§ћ§њњїјўє‹CLVV[PPLIHNINSOUOFEўўћ§§ёћ§ћћњ§ћћ§§ћ§§ў§§ћћ§ў§ў§§ићў§ћљ§ўѕ’ccMMSHOHPPULOIHSZ^g§ў§ў§ў§ў§ў§ўўщ§ў§§ћћњ§ћ§§ў§ў§ў§ў§ў§§ћћсўљўўжeB?CT[QWFTPLNWVOH\\[ўў§ў§ў ўњћ§ћ§ћўўй§ў§§ћ§ћ§ћ§§њљњїў§ЏFEFMxўў§ў§§ћ§ћћ§ўћў§ў§ў§ў§ўћ§ћћ§ћп§њўњћњњїўўШQ^g[^]GGIHCOF@OMV\ZV^BOт§ў§ўўў§ўў§ѕћўћ§ћ§ћ§ћ§њњћр§њћјљї§ўў˜J9BGCFELQLJIOFPGC\;BЧўўќ§ў§ўўњћ§ћ§ћ§§іњћњ§љ§њћћњњљеїљј§ўљ„>29MFMOBJAIBGLIILYBdы§ў§ў§§ћ§ћ§ћ§ћўњњќ§њ§ћћињћљћљћљњјљјјїљјўўї{MLHENP^TQIJNVTLQ?CB”ў+џ+џ+џ+џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ*џ)ўwџџ)џ)џ)џ)џ)џ…?4—зжЫЮрплтусмршцррнжаЭУРЦбзегбкженнйнкйЯЯаЪЮбежЪЧзтхтснпнаЪЯЯУЯ70–ьёржлскдЯЭЦжукаЮЩаЫЪаЩЧЯЪЫбгбдйедйгЮЧЪЭЦРЫжмддЮггЮЯжйнждд€њЫЧР")”яёпрмйггЯРШзундгЫдЮЮЪШЮЯаллмшюшнккждЯЧСФЮазтпЯССШШЫдгбШЧФРОТЛ&>ЕїїпЮдбдеЫЧСЩлссмжШКМЭжЯбеайушулзбезЯЦНВЧзЮЭЩаЦМШзлбгЦОЎСЫаЯблLCЭљјрЪамкпмжедйббмгМЌЖжтсгЧЪгкжСЪеЫУУЪУУЩааЮНЎЌЄЌНОМЉИЩСЖФнпнкаTJСятгйлнхццьсрщуспаТИВТЧСНЏРНЌ››ТдаФБИТЮмраМЛВВДРбЩЕЇЉБРЫЖБРШШС?@ЇьеаабШОКЪзцтзЭШСТМНКЧОЌЉЕЯцЦ•œЏОЖБДехтцдОЌЏЊАОУЮаТУСНРФСЎББЛИB@ЁЪЫЪЧШЫЫбЮгаЩОНИЗДККБЎЌАМзчьыЧЕМЭЭЩбЭглжМЕАБЕМбжмлММЕЂ›ВРРЧУЫбAkжкНМОФЯгНОСБЕЅЅЊЉЏЊЃАЕВЋНж󏘌ЌЉЗЖВЖЗЛСБ—ЋЎœЌНТУСЕЕДУЧУЫБКЫЭЯЩ>hЩИДЕРЫдкЧОНЖЕБЃЈЇЏЖТЪцткзЩВЋЋЊЈЎЏŸœžЁЕЎЉЈЊЄАУЛФЕВАЃЇРР€яМанбЫИ3gКЩВДЦбкгАЋЇ›žЇЃЃЈЂДэѓшьэщжЧЕКБРЯСАЖНЦЧДКЧФБЦУЛЛНдаШФЫеууткаЗЕМUqуѓсптсхйаЖЎЅЕРЋЁЃ™ŸВБЌЫмйЯЗЏВБНЖœАРСЛМСакбОТЪсьсстлалЛЌЁЄЃВФФJtУСЃМСИЕМЖКМЛМРЅЅМНЕЕКТ’’БРДНДЌЄЇЗРУгРДКЮУМБФ‘z›ЉНУЕАЎЈЂЃЎЖТУIUЄИБЧаМББЏЋНЮЩЗЈЦрубББЂЂ”‰ЁАЗЖЊ›’ЇСЧЦОЋЇЇ€ъŸЃЌЕž’ЫУНЏЗССЖДРФЫзг3™ѓмРФЦЩШТИИЗДЛЗЕЭмлнрмѓящШЖБДЕБЕЋВОУМЗЪаЩеаРМТМЋЗРФЛРгкЪТБУзнтйJoЕБЗОТЕДКНЖБЋЕОИСЧЕРЫЭйЯДЕЖЩбЭЏЩЭЖИРажбЧЗЫЭЮЭедЫрмЯМЫЮШЪШФЧЦШзЭ[‡ьееЩЫабдзЦНМРШКНИДЛСЩЦОТЧФЛЯсчшцбРНЛБЅЂЉЧпкУРдалгмЧЮеЩЭЧаЧЮухаN‹ёярждаЪЩЫЧЪгдРЗЏЛУЖЖ€ЕЖЖДМКИЮжехсзнузРЭШзрхрцсспрпЩШбШЪШЯпцмЮЮ?QДйЪРЩЮЧОЛСЩФЛЖСжрраФУТКЛЭгеШОЧШЩЯдйзбЩЧЫФРШЪеккнчуеЮЯЩбЮЭжгШЧЮ>\ЪшЗЦЧЪЪЛСЮЯНЗЪнкгбЫЩЮгЮЯждйЦМЭОШЭЧЮжкебжкаЫдлккдмнказрЩЩйббЧЪЮF[УѓбЧФЩЭдЯзйЮОЮлмтдЯлзежрхсржазжтсллтмгкхьюсннуьщьчулсшшчыургйп8[АЩЗНКЕЧЯжЪСЧЧдрнчктхуруххчнмкмнсушьшухтхцыээ€‡ьээщьяшьыщуйжут#EЇрФРЩШЯЯЧЭжгбмхснкнхщщьщшшптцыыцыщсчьюёщыььщщыщэяэшпстышщпЯлруBZТѓтзпсхчскушнжзндРбцшшщэышсухшэььшэяёяђѓђэчщучшчурйпыюю˜цнжжус<]ОєкДРРЪзаЯзсймутмЯдрссчцзлссшшычухьэюьщхлймплххсттздлхшскгЮТЩа!7wЉВВЕТепнжбжнмежЯдйлжлнйбгтцыстлл€ЧжйлдангЫгжжЯбенЭШнрццлеЩЪЪда".ƒыючкжнтпулЧРСШСШЮбЯФЪаЭЯкннлдеФФКУрнЫагКЗЛМИИЪЦОШЯаглбЭССНТЭЭ"@œїїяюэцжгййШТМНЪзрхйЮЯЩЮкбзнккжггкжЭЩНЛМРШбгжееЫдлкдЩРЫЦФЖОЫдЧ>7pјїччшлРНдйСОТНШбмсеЪОЦФЭжмйШЮжелжНЊИСЭЮсс€ќлрйншсеОгпедФСШбдЮЮI:nйаЗЪЫЧЦанпаФЪзпзймзЮеемцшпмзЧЪРКЖДЮмбЮЮгеЦлунспмтмсззЫФЛЗЕЛпс(8ŠчЭНЩЪЧЛНОЦФФбкнлбебйтупцхзЯУЛНЗЧггпсЮазЮИУжлдгБИЧЭЗШЌЂВЖБЗМжЯ(4‚зЧЗСЦУУСЦЫкжжрчупнмшэчцпЮСЕБЛКЃЊКУСИЖЖЗЕИТбЫСЖЃЂЂЁœЉИУЯНУДКЩМIFббЛКНШЯЦЛФжзлммурттнутмаТЋЊЋЅСШЖВЕЕДЌЎЎ€ТагкЮСЋДРДМНФеЭФФЭйаЦ72}жЮЏИОФЧЮЭбйдднлгдЯЭЦЮдЦЛЎИЗЧЪздССОМФЕЏЕОЯаЅЅ‰ˆЂЋМФКЕКЪаЪдмхщх&$ŒшрЧУУЦЧЫкзкбЫЯлмсусмжгЮНЏЋБЌЊЋЊЎУЯбОММЗФЦКЄЈЇБЌБРЩНЖФЫЮЮгтщчс4EИюуЯжкЭЧбксрйгЯЯЫЯжмЯЮФЩЕЊМЛДЖВДКРТМУЮбрлскШНЧгЫФЪЮЫЧЫЭбжййаЮг?QОшймпмйтчыундЯадЫЫЪзйЪОДРЧЯСЪнжббаШСЩлёЪ‘ЭуЭУЧдрыцршчэщччбЮЭгй7mбљђцэяььщттлйбЯЧУУЧМКЫЩШШадпрггтѓѓђчкСjS–ДйтзещюхлнтцтскгаабЩHwЦтдсуплсцткгЦЭбУОКМСЛЫаЫгддЯдллзслʋ}T,9Q|дмдцыяюыышмнээшш€Етс>‹цтэусжбщчлШННСЫдЩЪЮЯеЯжнммжкббжблсМh.8;B71ŒЫшяэчэђєѓыюѓѓяяьёё@ŒьЫЯЦОШгйЭУЛКЭжблхжЃžУНтщщыцсццурѓїщ‰<4%)0тљєьчшыёёѕѕєёясэьх]•зЪЩЭФШбгФЭЮЫйцрухФ|ЎЃшэпёћырхыєјпb((47;@"@ШјљяыыТяёѓёщучьэььqЕѓєчсмннузШЪкэєпЊ}`cZh]xЋ–ЦчьррхјюY0A-+,92;&žыщыюю€“щчыыцтщтмхт9’хшмзпшытрутпЯдЃgWA:)#?B„Ѕ‰ьћынрёЉ@)!,3<>ˆчёхщшцртхпгнхпрйбJŸёуаЯртххмбЪкрЦ„hB>?!:>\”‰ЩёццєхАe0GF3(402-:ѓёмдзпцщпгмсухнЯТ@›рхймклл€=уѓяэ”7&!)7%)A5v‘ЇьѓюЇzЄ~G85:%+1@-cыяхккнпсмагштххкгVРѓщлнйплмпшєс[)!90,$+%3e•Вяє˜I@H,,3*1*$A3’ѓїѓчхпзШЦЪйдккеаж]гыщшшрнхрйшьЧdA?#!!&&*P˜УзФo;8.,-.(.-:&oЮЭжйбдаезссзЫЫаспuжьчхнсрненёєu@[E4-(5.-(#&mКР‚Z1+75A((2#;CT*-pЖЯмеЩИЈЌЎЗЛЧУЧнмрЩїљыэёэяэњўНI-2J:71+338A?74"4L[>:eA8+7Q^F22)?ЋйкЪТЭРЭдмуурпцюьшЦљћѓюючхю§ћЃ70%4<)1"$3+**+>+9<9ASЈAHWGJWTGHBAЏюїмпнбаншщуцщээуйВкчшшнкбхѓрu#%+%!(&%.287:)*,2#,V˜эŒCZ7>ZjB3N,FРщпрелзгххыэщмлкзЩмїѓхзаЯжахНQ!)%*!!$)3)"+$&eФяk*94(%4!7`АзшмлаакпцшмЦАЃЏЎДЭјєтЮЪЭжяё•1&>,-)+122)2hзЩZ2-75#24<)FkЄйбТЈ™ЄЎФгсЩŒ…”ЁЌЈюѓцжбгйктцi2W;(7%$4&(*$+$EЇцЌ5)$2<0(*>NP*ƒЯСЎ˜ЄТаУТФЌŸЇТЫЦОцяпцмлнтсЛN9bN"($),%230LУлБEIC1(2:?.-7тЦЏ›œБЪЭЫРЕЖЉЅНзйчяпмнстэч”5;2!1$*"-)%@@;+jьж~;B5-7409?4NДТбйнллгажЛИШЮалббёрЫЩзцьјїЄ)!.+9;95%" 8483 Hбы…2P?AH;QФЩБаЭеннцтЧТЯнхнкжмгЫОнцюјю‡5*"&-3+<4&##"!**$)2A–Ѓa$B12(2-)3&%mхеТгеазкзлждпшумжйыщдбйдЯыкt("3@>C<9724+-% >O~бq,!-+*.8CI-.ухсхклдЯЮЩСЩЫЫбдЪећєнзйцєёМ@4B?>8+($-#!9<9ЎЩhGT7.+"0AJ5>„ИЦэррйайаЩЗЗЭдчнцшєCBЎћўђђћёѓѓђђєђёђќѓђђяядђёёяѓѕђђєёёяђђяёёѓѓђѓђяђѓёђѓєѓєѓђюяэ>7Їўўєѓђђ§яюєєлѕѓђђяёёэяёюёѓяђєїєєђяьыяёюэяяђѕєяђюяђђўєђђёшяэю++Јўўѓђёђёяюёёѓєѕїёђээщёђёђђяёѓђѓђєђюээыьэюяђѓѓќёђѓђђ§ѓђёёЬяюэђ)@Уўўѓєяѓђђёёђѓяёяѓяэыэёђѕѓёѓєєѓѓђёюэыэьшьээєёяшшы­ьэьэщэьёђєѕёUIгўўёѕєѓїѕєєѓѓёєјѓёюьэюѓђђёёююэђёэюющшэюэяяэьыцчыьэшшхцыяяюѓєђє[LФўњѓђђ€ЕюёєѕїѕёѓђёяэщяэьычьыютбЭушщцшщяѓђёюющшхыюэяычцыэыэчхщюяEBДўўђёяяюёэђёѓяяьыщьщщцщщчыэ§ђЯпртчыёёѓїёяющхшшщяёююшцсхчццтцьђOMИњїьюэяяюђяюющчщчшуцщшцчьяђўўёщчцшьыёѓѓюэышшщяюѓђьђшсйпшююэяяпIrюўььюђєёѓыцыччхуцуушщээюэьјлЮтххтйхшцшнЭлйпццщццчхщщьющщёёѓёђMuсюхцьяђюэххЖнсхщщюђѕ§єѕѓђшшцуцшхупнусхурмпучюшьшцшэыёђёєёюэщэWёўєїѕїјљљїњљїљљїїљљE•ўўћєђёѕэёяяюяяюыюььэюђђєшѕђїїєєћўтz13EA>%4•чўњєѕїїкјљјїјљљњјјE”ўѕыььыяяюэыыьюѓѓћѓМЌЮлњўѕїїєўю‘A>7.,1ыўўїјљљјњњРљјї§јїљdЇїяяыщьюяєэяђђћљћљк–ЛЖїўєћўєїѓєўўьi%.5<948$EбўўљћљљїјїјјѕХїјјrТўўђђѓєѕђєїѕђўўњФ‹ke^ogˆРЅдћњєѓјўїa2G0);:>8,ЎўўѕјјѕјјїїѕѕїїѕљFЋў§ёѓѓєїїђёєєяЛxaB;.(>I‘Ј’ѓўљѓљўИ;.4&2.48E%ŽўўєєїїјїѓѓїѕѕїєєѕOАўњѓѕёђѓѓєѕяћњз‹j>E8*?EcЅ•дўњўўјОo2.-3<#8UœЪэжw<97&787;73)?2~ёѓяёєђѓёѓѓяёёђєѕѕwр§ђюђђєѕїѕўў{IHC@@;+8>{§ўэюђюяёёѓѓюёююђђŠцўљюђђѓѕєўўпC93.."LЉЎ^OJ,BEHFBGA<;BE:ˆўўёё€ѕяяёяььяёёђ‘ћўѓѓђђѓђяўўКC:EG5&(.7vc8A\hS;8AL7N…шяђѓэюьээыьююяѓјїЋўўёєђєѕєїѕт…;9NE?73%+!1POLTMYVPGdmPJ?81@>Ln>7Žшїљьюьюьяђєђєјїњћйўўѕєєё§ОB49L;858547FA<1);IdJE{›PB9E[oT;E0JСў§юѓюєюёѓѓєїїјѕјљЮўўѕѕђёяјўўЃ3*+219051+8304*9:>CM`УЂIN`GUd]JPGGМўўєѓђѓєїїјљњјїєєќЪњїёё€ёяђѕўшq$*,*-+,*).7<448780;pЎў–I\@B]tG,O1BЪўјёѕѓѓїѓљљјѕѓяяёђяў§ёюяёюяўеV%1:()*(,&%*0#*&>-;bШњўяяђёяѓєўјюцррнщмўћёђяђёўўž32F40.13532:FC51("8vљрg77C><;?;-EwТўїхжжмуььљяЯЦхутцљўѕєђђёѓўюo9[<.3557;0-)(+9:7+"NНўЩI;1EFEECATY2‘ѕђмрсцшэюыумрюњюяўўѓёєѓђљўнYBiS-)11.7353++8A>1([јўЦGSJ8;FMGB)5@ОўяшбдтэёюэыцчыяюяўўѓђєѕїўўЗCB93<9<8;95.,#%LB;)-wљѕ‡)OC?>EJHBF2[сјјэюёђѓѕэёээяђёїєўћяюёєѕўўЎ0(5>9?5.vўўьяђѓёёѓѓ€‡єѕѓєѓѓєўњёяэяяўё|.*$AFGBB<<7(380. SUŒя„;9B::;FLO30”ўў§ѓѕёђёђђяыяђѓђѕѓўўєёђїўћЩB;I?CFBA:8;2(,.:;#??MUN1:œтњћїѓѕїњјїїњјј€MњTЄўтткЮкушсеЯакшшяєхДЊЯгїћѓєѕєђєёю§ўў™TJAA2 ;яўўјїјљњљњљљјљјљјєrБчурсентукхттщљюѕїк•œТКљўђ§ўѕёѓѓўўђn2:CNHNN1Vмўўњњћїћњњјјѓѕїјѕѕ‡Ыўўѓёьюяђштчю§ўѓЦ—xpn{qŽЛЈжїњяєљўўi?Z<1@PJG!5АўћїљљјњїєєѕёѓђѕєѓOБўјыюэєђёёєюєршКƒiUOA7UW˜ВŸјўљѕёўНH:E;?;GNU*1™ўўљѕљѓђђёэшяђёяэч^ЏўѓтцяєѓѓющйюљтœuJSQ42ZPtАЄзўјњў§ЪzF`ZIHGLL@JŸўўёыђщєѓђшѓєѕђьщмPЌѓєщыыээьѓўў№ЃF3?@B~ЎЧўўЏ[N`N.3CB>3:7B2ChВжяс‰OOH72JNHBGH9NA„щсчуущршюээцхтцяя{сљѓяэюђшьяўў‡NqSE4:3<@E;48‰дп˜vB+JIQSSNULN4AGƒёюжчсчрнкбдкдгчюяуўўђјєїєїўўуT(NF..015"+>>4aЏМocW>MSP[VMPJMMJCўчхррмштмйтпйетккŸўўђюђєјєїўўСWJZ]E1154>JŠzGQpm^M[YZ]dWL@BHGVH[ƒдгллргмлегеЭручтёЖўўђяѕјјїћ§ю˜OHVV[NA9A)Cc^ba[g]]OruUUWIF7H\zG?…ЫлэхтйШШЫЭеумтюёєпўўљїјєјєўўШP@IbQLHJEGNYNFW@IUqQJ{’UHESw}]FQ>WУыщтйунстэюёёŠяѕєјгўўљјѕяѓљўўДBJqФщєёычшяюєљѓпШРЦРЩпўћёууцяўў>-BJE>@:CII@EMLJA54@„ѕуpFCVFJFSPA:9>AB@E2-YУўЧG@:QSNN€–G`i9цкЦДСетеежЦЗОецпзїўёђёяьѓѕж^Owb:?;CG9G><;BJOL72VшїЪT[VQPMPOL.7?;3>5YOI18ўцŽ1VJLMNPSMQF@?;GABNЌЕz>bL@INMSO;7њѕжыцщшыюђюёяєёэчяўљтцыччўѓŒ:;-MNTZWSHFH;>H8"^j–ч‰>?OQINHTYFB˜њјѕѓююшцстйнпншщхыў§юшхѕўўаQIUO[YWINHJH@:EIB78TYHШнzYnQJPL@U^JLгмїѕђэтыхйЭзцьяєђєџ€ŸкмдФКЉТзуйШжллмйбдллЯЪкджЪШШЧФЦЧЭкпзбШЧРФКФаЧТМЪЮммжбЭЪЪЗV*&2)1@ШШЫдбИЭпжТДКОСФЦЧТИТУганчхччуйЩЩТартЯШШЦСУдгУЪШТЭлкмсмзхюƒ;A<9C@ЭЯЩйгЫЫлндЧШЮзегФЗИЫнпкзхупезжЦИЛЯкгдмгЭЭеежЮЧЧбднмуплЩЛаŽ*9E985гСТУМРЪзеШЛДЗЛЧУАЊСцьпРЧФЛТЪлдОШйжтутмЮжкнпкЩЭйнзмйхпкеух„-<9$!!йжбСКОТФСТОДВВДаЩИЧззаапрйШУШМФЮйЯЯждййЧЫЫдбаджЯТаЯкзбЯшюЋFAL4--ССаЯЩШУМИОРЗЕВЛЪЫппзеЪШЭлсккчхдабзтррйжжлккмндШЩСЮабЪЯЭаЩŒ%>A-&ФЩМЩТУЧЧОЩЩЦНФЫкхцжйЯШЪдЦЪЩЪзнлл€ЮмджажймпьчнЧЧРМТШбдгаРДАC@44;2ЭбдуцчхтеЫмбШШачыыутрЧЮлнЭМОРФУгдЩЩЪРШмшщнлзЮЯдтщущЮгЫШЪжЭS(2B3.аЪЦУбдеРЗБТЯснкнйаЩЪЦУЮмзкйбУМСЫФТЩЦИЦСЮЮНИЗРЧКЕМТТНЖНШСЦаV%4-"ННЊДНЧФНЗВЩлнкзмгЯЫжТОЫРЛЩЪШШЩгЧКЖДЏЌООЕДСЗЌЋЕЎЎ€EВИОНЕБЕаУ^$$73"ЛЪШкжЮЩОИТФЪШУЩЫЫбегбмдЩТСЮжпмЯЦЄ›ЂЃЛТОФАЗЖЖЋЏББДАСУЗЊЛмьс„5&2:.ЦФТаЯОТЛМФЦРТШЩФМТУкццзкЭЯмусееБЏjeˆЌЇ›ЈБЖМОНКВНВДВДЊБВœЈЉZ*3@:<ОЧШЫЦЕВЏЇАЕСЭЯгЩФЪУЧдкппуцнаЪМБ˜Њ•žБРЧВЄЊЏЋВИАЊЋОдааШИВКЩбA(><+аабаЫНЦЖАЇБОССУУМЭЦКЕИИЛРУЛВИОЩЫЖБКЧшбУЩИИМКРРЗБДМШЩЦШЫЫуяН>1,.*ЮЮЫНТЪСАЖДЖТООИЗТРЖБЖЦРЕВЛФДЗРКДЊЉЋЫжжЫЛЗЗСРЕОЧРЧЮбЮЫЮЮ€ЛФчЉ(!2аЩбзгЦНЛРУбЮЩЯЦНЩФЮййЪЮШЧзШМШЭРКТЪУеаауЮТДСЩРНКРглпЪТФЭлсдНE9#@;УФРСЪФИЕМТейЫСТЩУУегЫдккЮЯЪЯЩТНФбЯдтклюшцйЫЪешштучцмегжйуёёC-78РЦСВЕТЛЛШжклжЦЦШбЪзлджЭкЯнкЫЯлеЮгббйнрмЮбрухшюэячщхх€Жжмнчјїu4)8ШКЖЗЖЦУШедаШСТСЪздмкЭЫЭйкцтмкдЫТЭЫЭалйФЖСнцучыцлзмделнкммшпœ4&8ЭбеШОНЦжйЪЭЧФЗКСпцмебШЛЯднеЪИЊКУЪгйЫРМЦЫдруьчснйкспуттпмкбыч91GCслсбЯЪЩдЫРЛШеазттыээшыускбЫаШКСЩЭЭаЯбпрмцсцц€єлцхрхчяюэтхшѓѓлF%)0леЭЫЯЮЫксЮЯкйнклуунккгШЭЮбмлзкзунзттцрчыэющчьшщурулщспснчѓѓлm,45реУСЪЦТСддЩЮжуцшрзеЮЪШШзЫМШЯцууяѕєєэчѓѓђьххущтнзйрунамчяюѓѓы144нпнжаЧкзаЯгбжлЯЧЩЮлгдегййЩУбсуыцмлррюђяьттшхтпкмтпсеЩЮбкгММЩŽ**0гмжаЭЩбЧРЫЫпылнлуугЭЫЩдаОВРкмутхшыэыцлнкмтткйнекземршшраЩЭОЫЖ@$.нжбФМЖЛЩлпмжеЪСРЭбдЪездбЩЧантрцюяющтдгеУМЗЦжсжгЭЪгдЭЫдгбртУДЫJ$&ШЧЛЗЌБИагбЭУЧШбенеущпгФЪМЫстзлнтрЯЮТКЎИКРУЮдбЮШЫеЪТЫдЭныцжЮгЏS5+ЧДШОДВЩдФЪТЄМеШкцхррЫРЩжЮЫЫаЮФЮЭгУЫЯУЛЦЯггбЩТбШбЛОЭЯцщьшуцрйУiBGКЦЫЧЛИОТОРОЦзжптлЯШЪЪааЮЧИЖДЗФЯФСС€ЛМЌИЫШгЯУЦШЩгжпусушцрухцхюˆ?IЦКЦМДЩЛЦРНФЭгйжЭЮЫУШгпгЧЗУНЕКЏЖОМЪНЗТФТбЪЮЧЖЖНЦСЩнхсхчысгкмдШŸ;СДЛНМФМЗЗСбшыугРРШЫЫбкЭкдаЩРЩИЛЗЛМРЧРМФЫгзЯОДБРЧапцщщспмкбДНЫЊM.ЛУЦШЪЧЭздерслпаОСбкнздШЗНжкЦЦбжккагеРЧЯтснзЩКСЭебеЯШЦекзЮШаЭкУO"ЭамуыьюыыртбЪйгЦУЩгкЮЫСЧЩмхпмппждаЮаас€/леШЧУУЦЪЯИБТзпЯЧФНФгхшƒ1рплндллЯЫдзнунЧЫпдЩИРЫЦжЯггзщырмгзЫлдкррзЫЕЛЛЩакчтркдзФВЛЩнщєяƒ5жртнлЯзжЧШШжЮШамшпггрэщьщюэцхдЩСЧгЭбжйпскЮСЌНРЎОУЦЪЮаббЮаЭбнјєŒ3зелрлежЭЭССакееждгкутчыццчэшпЯЧШЭМЛСЪЮгжгЮбЫеЯСЭкЯбШЪФдаНОШЭжаœBжЮдЧФЪШЯгбнщщютмнсуутнутцччнЯЗЛУЯмхумхпШаажЭгЯТЧЯйЯЪЮРБВРЧЧУДЪДNзщшшыцтытпчээёєяуцэыцчттЊслкбЧШОзсуццхытууЪШЫгТФЫгзкбЭШФгезгЫтЮщєђѕѕёьээшщыьяышпржпмнйЭйтмрйЪЪгсчуруцшцррЫЮЧШжжспуедезкхчшыыцт—ёяёѓяыщщюьхнсрушшхрсскЪЩззмекмрщяшчщчпллжццхээчысуйгеЭЫжксчнлёѓЖщшђђэзтээ€ЖшщшчьыжзуцчшсйЦИЮмээщытезаЮеЮаглппртрзтагЪЮкрнрчьхюєцхььююэьснпуштплзлЩзтпмрмзЭВЫскппункпуттхпхлмхэяэхчушэыэссмцышяїцтчмппмззручшьщцпслнѓчшђчлестнтсххубпчыцрхсцсэяьсрлзпэючтцпхщэыїјлтмбЯЫдблрчнтнднёюѓю‰EЉтюрлйбсшучубапцтзййлйчющшчлцычсРШбйнсхмшјРЩЦФЯжжнсснчуеЯзЄ‚Bj]+ЕїздЮФЧетррткЫзмцшхмдлыйеЖnAdВТЛИЧЧдпчусэїЩФФЪУЫежедмнэддЮI,97ьылдШгЯжеддЯзбЪадмгьЮдЦ{pH8*]БчЖЩЫЭрзанЮФлзЯКННЯлдЮбЧЯлЇŒ(?.2FгжЩеемксдЫШжсппгЩСЯщгКm"-!)>ВѓёшлМ‡ЅжтнШЯклмпгЮзндЦДЏ‹J+3>"EoбьтлспсщсчжбЯмсрмЭЧДИh!%"1.iжшСЕr7@пЭгЭЫЧШЧФлрйпж˜T,&:*#:CсымшуплЪймаРЩпсуцзжч„-0892>’юž>*5&$0”ЧЫЪЯдЯЫдкцшїљьˆ)%+*+-3P‰ЪмйтзйшптспрпцсрцтяЯnB3$,+4-93^дЇ8-(5vршузеЮещёюьюћљгe&%23#;[TИёїхцшэшнсчэђєыыїїє42#.)*9@PP@]oH">78hлшмелжЭжхяюшлеЧВБшБE:Joa>8,3&181,+:B:кпуцшнйЮЧТЛЭйЮкБz5AF3FMBM•ншЩЯзурэыпеЯккЪВЪМ^8&(O)I0(!)(,589@B;ЦТФЦЪЧСЖКЪЯЦЄiŠ’˜H3+.@ZI4ŠпЩЯЮбЯгСупдняыУЌИтw,$*.!)+:*$-(.5354%УТЫШРЖИЗаЯЪЫЏЖКЯкƒ3.CO@dАЗМЭЯтЫЦгЌ|aƒЗААЮтŒ:725+BVF,*#-.1.*,ЊЋУзЩКНЕЋЌЛТОЧФЭЦ:+UG>?%LЮсЛЪаБЈЛ’I#1>P|МюцЁ9*:;:EIJ$+113:?:>,!МЭЮЮдИДИЛЛФРЧЦТКЕЊL!582"EКспйаЄxE5)CC@3;iКёЫY$5;7CMMV5*-;93-,(!ЯдЫЧОЊЅКЛСбмаЯнЮзСz;+(4<9НьщююЌF)@<"<-5(9<3;OЧЁB,AHC3-0#(7-3;%**дгеЭТОглбгагдЭЧЫсяЮa2&")$$AИцлЊ4;(&:aКс‡H21<7;0+%&(,1.5%-ђяђђѓяящэюяђьяёё€–єђяяѓєёѕђєђђѓђёэяђѕѕѓђёёыьююёђђэђѓєђыхуял`+0::??яёѓяяѕяёђђюшюёёђяэююєёїѓїљјѕђєєэёѓєѓѕѓѓёђёяюѓьяёѓѓѕєьхщўўŽ8?CA?Aюяѓюёяѓяђђёюёюђюэьюђѕєѓѓёђяђђяэыююђѕѕѓѓзѕєѕѓђёђѓѕѓјєэтрхє‹(<::58ѓѕђюђююяёѓђёяяююяяЭђјєјёяђюяььяюэѓёѕєєјёяђѓђєѓђђѓёєящухўў•.775+.ёююёёяяющэыщёщюѕђёёюяэђёђёёєёяюєєПїєђѕђєђѓѕєђђєюѓэтжрўўИN?:$,3ёђэююэюьщыьюьяяёјѓѓєђђёђђяђѓѓѕїѕєѕѓїєєќѕјєђђгэђюёэубсєѓЁ)8:4,3яюѓёѓѓёяѓюёяђюёѓїєїєѕѓѓђєёяёёѓЛєђєђєјњѕјѓѕяђѓѓєёыхмушрЋL?,74:ѕїїєїѕєэыёэђєђєђїѕєѓђїєѓђѓєяяёєёѓєѓёѓёѓѓšєђяѓђђёѓѕўьмрыѕњсY03372ээыээёюёььюѓђѕїѕєђђёяяђяѓђђяёёяьёёээюьѓьыэююэьэщшщчлдкрцёч])&)10ьщэщыэюющэюёђђѓѓ€Чєяѓђяяђюёёђєёяюьышыщщыщччххучцттххтсхщўшj("429ђэђёђђяэюыёююяёяђяёєјєєђёєїїѕѓђёнбйпѓцщчёыьшыщчшцхпкжпчљў§‹7.84<ёяѓяюэщыэыьюэюяюёэѓяєєјѕјјєѓђёєштЃЃЦухчучыььющьшьхпжжлпембd1)997ёююэьээььшюяђђёђѓђєђяђѓѓђђ№юёьнтгсщѕѕэьшшыщщхшхщсрхщыљћЁE*@77ёёђёяѓьэщщыюяяТюѓьыщыэяыьыэююёющьыюѕўђєьяюьыщььыщчспщэяэ§ўЫE0343їѓёѕєюэящыюэяяьюфяьююяђюђяэёээыэьяёёєёёююящщььычхшыээшўЗ#),-ђєяяюяььмюэђђэяђэяђяђєђёѓэѓєѓёђёђюєюђєяєѓєёюяяёШяыяэюяьјјаL:*?9ѓяёёююэююѓѓєїєђяђѓёѓјѕѕђѓђєёђђѓяёєѕѓјљїїєєѕєчїєяяѓѓђђєњўў@)14ёьыььыяђђљёяђяяюѓѓЎєђѕяѕђѓѕѕђѓєђђѕєѕєёяёёєѕїѕїєђыёѓѓїєѕѕўў{2*-ююяыэыяёѓєѓёяьэюяїѓёєяђёѕєѓѓёяяђюѓђєђяяђХїјјїєюупыђєєѕѕѓјўВ8(7єєђђяюяэяєёёюёёїѕїњјѕєјѓѕѓђяыщщьёёяђёёћђєѕјѕѕѓщмуѓјљљњљїїўё?-E9ѕїђѕёёѓяђёєѓёѓѓђїѕїїјєєђѓѕѕђююьёѓђђѕѕѓєјјљјїєїячшяѕїјїїєїўўђL!&+їђѓёёђєѓяєђёѕѕјїєєњђяэяюёёѓєіљњљљїљјњљјјїѕѓьхыяїѓѕѕыљјўўћu,22љѕѕѓюяѓїђђѓђђћєђєєђђ…ёѓэяєѓљѕјњљњјљљћјћљњњљјѓэпрщђєѓїєѕїїћўў2.1ѕѕєђђїѓѓєѓђєєѓєѕєїђѓђѓїєяюѓѓђѕєєѕєѕјјѕїєїљјѕђцмуюѓђѓѕєєяючшїЁ0&,ѕѓѕђёѓяђїёѕѓєјѓђђщїѓёђђёюьяюѕєїљїѕїїєїєѓёёаѓячщюѓѕєїєѓєђђёыўл@%:ђєёююььюяѓёђђёђєђѓђѕѓѓђяяёѓѓ„ѕїјљѕѕѓђюьюэёђющцьёєяёѓђяєјєїэшуT)!ђяяшщчээёђяьщюяѕѕјѕѓєђєюѓђђѓѕђєђёѓяёюяюёђђщмдзчяэяѓђђјѕїєєђћй[<1эѕьэььыьѓюшцущјѕїѕѕяяёяюяяюьѓяѓяѓюэюёяяђётЮбмыыѓѓ§јєјјчњєћўюtFAѓьюёяюяьюьыььєѓѓїїєѓНюэюыььышьыэьышьыюєшйЮжцяяєѓєѕєєѕїєѓњўў—@LђюыьђыѓщьэяђѕѓєёяюяёєѓєѓѓююЇыююэђыюяььёэьйЫЮйсцэђѓѕљѕѕђђѕяѓђэБ<#юэюьышыээяѓєїєёюёѓєєѓюєыяђѓёыяёѓѓёяэюёёющтсптчщяѓєїєѕѕоєђэртщОG$ььђђёђѓѓєїїѕѕђѓѓђяёђѓёюёђђќѕђэёёъђёэѕђёьщшцчььяюёьыюєђёёјэяђўлQ(ѓѓ§ђєѕѕїєїѓїљєѓєѕѕіђѓяђёѓђѓєѕѕ§їєђђ№єыутуцшэюяёэюьэяяущтчюѕўў2ѕїїѓєђяёёяѓѓђђїїѓєђєєФњєјїљљѕєєђѕяѕяєячтчщэхыьюяёђёяѓюычшыюњўў–9їѓѓєѓјѓђѓюѓюєєѓєєѕѕќјљћјјїЯѓёььяюђючнпшяёььшыюыюёђяэюяёюяѓѓўўЃ7єїѓёёђяђяёєєѕѕјѓѕїѕєјѕїїЯљїїѕђяёёѕясгапыяђёђёяђёюђэёэяыьёяююєљЗIђїђѕѓёѓђѓѕѕ§љѕљљњќјљїѕѕцђєёёѓѓёшуцяїђѓяђяёѓёёяєєђююьчыхћкYєѕјїїјљѕљњљїїјљїјїєѕѕїњѕђяюєяяпэёѓђїјєѕёяюѓёёђѓђєѓђєѓїѕѓѕўћ‡љїљјјїыѕєѓѓєѓїѕљїєёђїєѓјѕєєѕѕђєўѕїїсєљѓѕїєїїєєѕђёђђѓѕјѕћўўЄјљљјїѕѕјјљјќљєєѕѕыѓєёѓѕјљєѓѓђёёѓєђєђїљїїўљєєёёђєєјјїљјўўОљ§љљўњїїјђљјїјїїѕѕєїѕєѕєєќёєёђђкёѓяѓєёєђѕєѓѕѕїїјѓљѕјїїѕљјјїљ§ўёћїїѕјїѕѕѓїјїњњљїђјєѓїјјјѕёїёээёєєѓїєїїѓїѓїјљљщјљѕјїљњїњјјїѕїњўёћјјѕѕєєыѕїјјїјѕїљўјѓў§љѕђѓєѓѕѕѕђѕѓѕѕєєѓєєїїѕпєїљњїјѕїєїѕєѕљўўєѓѕєєѕђїїјѕљїєђїўўК—LТў§юяяђђєјїєїѕєїїјѕєѓѕѓљљ§ћёњў§ѕєђђєѕїѓѕ§ўяэђѓѓђѕєѕѕљѕєђј§АŽIk^,ФўѕяяЅёяѓєєѓѓѕѓєєїљјїѓўљёпƒQxгљѓшыёяѓђєђћўєѕђёђёёѓѓєѓѓћј§эT!3?<Ѕўўяёѓюєєђяёѕєїїєєђј§ђђп‰{U>,gЛ§яяјёјяёњђюєєЬїђѕѓѓѕјѓюѕўЮЈ1547MŽљ§эђѕєїѕїѕѓђђєѓєѓїяўїуМ{40+#&AЩўў‰ђЦАсўћјєђёѓяђђєєђящбžT2@@"+MzяўљєѕїїєїѓїєєѓѕїєїяыюЦw*5@G3!qюўса‡:$IЋђѕёѓєѕѓёєђєїћўК^%,50)ASЖўўѓђѕєѓїђѓєєѓяѓђёјўў˜0<<­9%@ŸўДC1B2!2Ÿѓѓєѓђѓѕєјїјўўњ%((2779S™љљєёєїєєѓєїѕјєѕѕєјўмvO4*55<9;:hьА-!&1.9„љїјјїїўєѕѕўхлj,+.81?g]Щўўєїљјјљїјљљјљљўўф˜;8*015;CMWLezO2HHA,)љњјљјјєєајѕєљўёь1%4@@IOўўњєїѕїѕњљљњїѕѓёэњœA:&..:>;H942>>ж<@CHGјљјїљїѓђёюэяѓїѓяp4:;;E@?nьўєѓђђѕєѕїѕђђцётшўзTG%,V|eC<<225275<>EAѓѓєчђэщшьяюѕшюе•BMPGGULTБўўѕєєпјєєѓђђяюэьѕшn?8%8W5P>:4+479>>AG@ёё€юэщхшщьюёдЛбУZ94CF`W?˜ћяёёђѓяхљўѕјўўэщјўŒ5)8:7.<<:249@<;@A;7шьыэщшхьшыэђюыђўїŒ9AQUL+tпѓэюѓњєїљЭ‰pЅмшчњўЂC1@G?@C]I+)789>C>01чююэђёщыюяьэяьёїёЦE0^HIB-^юўяюєтсыЏ\7>Le—мўўЗF1CHFLVS;98:AHEC@:5ђэяђщэщщьёёєяюьцыдZ.&<@A*JЯўњњћнŸY<8LLS8BuЧўьd,2MNOUS[C>>AFCA?7-єяђяьшыщяёяёєѕяїћь•A8ACF)FШўў–еP3@E2@NG<@mЦўŒ*CTOL8.98@F?B@;57,ѓђяёэђяёђђєяѕёяэєўзH:5>>7@Šёўўђ‡-7G<91:@C>AVаЋH.JPE?:448<8<<>51.ѕѕђёюѓёђѕѕўђёё‰эўўпj:4;3432A?BP*iєўЅ.(5UP>)*1$PMoŠZF>FNSJA325:954:;8їѕєєѕєєЛѕїљєїяяўўєuIJEAEGCŸўўз;3`cŒE*.+ 1C{ЋbQAIOOH<8-2,432577јєјѕїљјѕїїјєїёёаљўч—M?B@?+.kяўа:3cdH984+%!;jаў’H9ECJ@710148950<>ъэяшмйЧЮуящпщыюьэушщэтыы§щпм숕утйпьяэцпйлйЯжхйздкуэюэтплйЪa2:BNJTзслшуекыщзЩбгжзлрмазкшхёђєєѓяяцммьяђцртрктшщйпзксяэёэщсљ§;GTQNWущщьшулщэщнмрчццнаатяђыыюђьупчеЮЩкххшээсжхэюулпшшёё€бятжбц–0ENNAGымдндзтьшрзЮЫжелЧЧляѕђннгдеушшзпшююяюѓюяэяёьссчяыььёэхчѕѕ”5BB@?<эырегесплеаЮЧЭасзепцшцнэьыктскзтьшшыэящснчшшщющшзттюцжпўўОSJN>CFжмспкйЯбЯагбЮЯдпсюёђэщущыяьцёєэыыьяёюэшььюяёэшмпкшшхлбмун›,CHB5Hпужзййштззйкжймыёєюяурчшнмлсшђээ”ьыцыэѓђєїёпргелнсупйгЯЦŸSC1FBLщюэёѓѓяюскщщнпцѓєїёяьмхяэуазбкмчусрпЭхэєёюььчсшюђяњунлзтщпd-5@@HрмбрпйбйгйккмпнлзкзэєєђёхшюѕёщтЪРvzЅЦЦМШаЯасжЫЪзЭЯЦЦМШЦЖСФe<:G;BджктзЩШЧУЧЯхщшчхсьмпшёёЎяюэчнеЧЕМЉЗШгпФРРЧЧЫЯШРУеусраЮЭгнц›M4O@CшшщшппмгСРЫдййжнжкдЮЪдгабгЮаадкнеЫесњщмхеааожгаЩЩддмйтутяўеPG?>>ышхнзрдЧЧЮЭакее€ддбЭЮЮккЯЪзлеепжЮУЧЩетрмжггсзЪййертллккннкћК+,150чууьцзебглхццукжпмкщщшцукуйктхегзрмцхуьрлзптдгЯжшычлклпыёѓбPC:C:йсйжтхдаблчьшурлнсщэсыююмпсуцзгмсшшђюёєїђячхэђёђёєёэщтэяєўўЃH5:1жззЭЮлдецэьюхйзжруыэьэщэсяырцьыхтьщяяёюхсяёєєјєєѓђюѓёёƒєѕўўƒ:)33кгбзапйущюьуйждтьцэщмснэёђяэыысзслцшшщсЮкяѓѓєєђястуцьююээ§їЕ@$19ьэцпедкцшпхчжгдтяѓђёщнзтшѓэлЮЦЮппшштлздтьѓѓєѓѓёшнчюѓѓ€№ѕїђьўљJхэцхтрчсамнэђѕёьяђыумтшыдЭдьэѓђєєїѕєєђюыыёёшщшущюэёёюєяюхраёЯN.8ььсйбЮЪзщюыщумкнццЇтщьшцннтёяѕѕљјјѓђшцхнгглшчсутпухутчщшяђеЯн\),мтдаЩЩдсшьшпдкцяяёяђыткрйрюђэьюїятткгЫагерсееЖсчултшчяєєьсьС`?<ненйШЪнцсщйТЫчнюѕєѓђслнптсзтшпхууйлслпмьтчпЮдрктЯксьђјѕњєєЪнzLJбмхндзердебмщьюђђётэыьщшбадбгйрггдйЭбЦЫхншзЯенныыёё€­ђёяѓѕєљўœGYйежбгрбйглпцрђьртйжсчёчкзндааЪдлдхжерупцсгЫШШаЯжтёђѕђѕђёюящцйКC&аЮЫкдздЯЭлцђєѓшклхшхцшмщчхржнбгебкелзекхтулжЫЩдтщђѕѕѓѓяёюшЩЮнКS5бмйммссььщёѓїѓьммцыэьхмЯжэючйхрыщчч€3псуычщцлЯймспцтптцчшнйнцѕк^1сьэєѓїѕїѕёђычяытчююёшпзлляѕєшяяѓюхцхчшщххсклзлзмскУпщючтжбльўўœ<ѓѓюёььыумчюёєяхшюьтжншуьышщюѓѕяяьщныюэчцтргбЯлтэюєяэухжЮЪныљўў›AюєяюэыьыккйшхнтёђяьюђїѕѕјѕѕѓѓюлбрщнтунмээчйШезбдбжктмтчртццѓўў?яѓэяюцтнкпсцюээюшыюѓѕѓєѕѓѓѕїяшуххздйаблшуустщщмхшсцхумхчнзмсшьЏUщчцуппрыэщяѓєѕѓїєѕїїєјѓѓТѕѓясдкутьюшуэьтчщчнсуйнцшщэукЫазрдгЭцШ^яѓѓєѓђѓїђѕѓѕєњљљѓѕїљјѕєєЯяёьупнщяэяђѕєєѓѓхсучнзхтыьуумтыьэытљэ‹єњљљјјѕјѕїѓѓ їѕєёѕђѓюђщуэяяѓэштюѓѓђђѓјїѕёюышсршёюђёяцшсюёјѓїњўљЋјњїјљљѓјїѕєєђєѕњјђюѓёёхпюяыщюѓёјїїѕѕяёььыяѓїєєіѓёьщшцхьяђђКѓўўЦєњљљїёёѕјљљјѕљєјєѕэѓѓјёяятлчюєђїєёщщтхшрххьююѓђёяящьщчыѓђєєјєњўїєјјСїјєёђёђїїѕёчьууяёёєѓэхбхыюыђѓюцюёђёѓёёяѓѓїїљєѕѓєїѕѕђђѓѓїєћўєѓєяяўѓяяИёѕєѕјѓяяђђўїљўњёяюђюђѓєђђчёѓїєяёѕєєѕїєѓюђюѓєљѓєђёђѕѓћўўьђээшщцьюђѕєђюцюўўљ—PЗјњьщщ€ХёђѕђѓьщђѕђяёьяѓёњћјљёѕїњѓйцьэяєёыњўемлстыцюёёђѓёэшђЌŠNuh5ЧўьшьслюђяюђыщююђєєѓээљёьбPrЪплЭмйчюѓёёћўунусншщючьэщљьээW&)?HFЎўћэьхчщьцчхуяюршьяьљушд’~[F9qУ§брсхїюшњульяьжлрчэшёцесєЖŸ9-B@FY™щшсяђёђёянрщёђющщйьћшкНx8:3-2GТўўћыЧДчћѓцщьюьютсцэщзЩОЂ^@GJ15TцўѓщѓёєѕєёюэшэѓёюутЭзЖ}%4CAJB*zэўнЩ„B+VЗўцчпхсрлйыяюїэЏb34990;MWЎљ§щѓэђэрчэшлльэђђєѓў”<)BNEG,%MЇўЖL3IB4AЌклптшчрьюѕѓўўњ”447BC?E`Јчээёцюёђђѕѓѕяєяѕєѕўт~Y?<@LCHHFpыНC0BG?A’ёєђяьчьѕєјїњўўуz54>I?їћјњјљєїјљјљ§ўљњ@4HPS\c•ўўљѕљїёёяѕћљњѕїьзуNN+@GBLVTI<>HEGPN`[`її€vљјљїїєяђѓёњѕєC@OVUMMwыњёщьыцыђїјѓыцлЧЪўШVN(-eVNNFJEPNQGTT]шюѕїђэыслжйыччшЩŽLZVW[iVbЅї§пьяёђєѕюцсцщкЮтЯtO@,G`HUIHGJIMOPOUVQнмжпмждЫзппрК‡ЅЎВbE?P[keE˜ялучщхужїўшїўўзЩдј>:CGNQPGH@MIHFPSQLMмжлжбЫЫехумтЪЯзяы—E0E]^[+xЪегучљчпчЩu•даЭсћЄN;MTLIWn`LLGLMPOSHFЧЧныцгаЪЧЦдпкззутЖJ?k^YY5cцћжнцЭРйЃ`>ENh’дўўАO?PQU\gdJBFEJQNPMHAдхтучбЫбдазнрпдЫЪО\87MHF2TЭ§ѓяшМ„]A5цустпйжнмнсыхющклўЮQ9;GG7H‹сэёл‚8GQJHGGEOCJdлФT;SWYNMF?FEN>PQE?Bыюэхдзчьёюстррнрѕўлw?4CBC5MЮјћСF0NQSGOELCLHM^]GH[[]^UPLIIGCLIE:9P~Ўm[QSQTSOAJA@9AHPNGѕѓяѓєїђяяїѕєюђчцэћлœOHHPM83qмэЯ>:prYNJ>F3,BrжўЂYGUTTQS:HIGEMMQNLџр?BIGMNJMQS^P[‰§ћјјљћњ§њ§љјјњјљљјјіњјћ§њ§њћљ§§љћљћљћћ§§њљїјљћљљрј<904E0A@JFN[H‚љћљљјјїѕѕїћћњћјљњњъ§њљћјћљ§љјљјњ§ћљјєјјљјјчљ§§љћ§§74*!+3;GHAASkљћћљљхјїњїјњљ§§њљјњљ§њљјњљ§њњ§љ§ўў§љў§ћћљѕ§§08ы4,>7@8L@L|јћєѕјћ§њ§§ћћ§љјћћўњ§њ§ўў§§њћјјљњўўЫ§њ§ў003542.)7UIPGOя§ўјљњјљјћљћћљћљ§њљњ§ўўњ§њ§њњ§ћљљћљљњћљ§њ§ўўрћўћ%**!0#&3>.MJAп§ћїїјјљњ§њ§ћћ§§ёљњ§љљћћ§њўњ§њ§љљѕ§ћњ§њћљїљћ§§чљј1-+ ;EGvŠnсћћјїћ§њ§§ћћўњїњњ§ћў§§ћјљїјћ§§њ§§ўњ§§хњћњјљћ§3;;7.!AILLgktмћћјћљљ§єњ§ўћћ§љљњ§§њњ§њјљњ§§њљћ§§§ћєїїщјњћћљ,*44."$+G@:?o…п§ћљљќћњўњњј§ћјїћћ§ўў§ћўњњ§љјљћњјљћћ§шњ§њ(+75.FPO4ONБћћњњ§ўўњ§ћ§ѓљћјљћљјљ§§ћњљљ§тћјљљ§њњ§415;:.*-#55(1>…§§ўњљћљљП§љљћњћљ§ў§јњњљћћљњїњћљњ§§ћљјљ§љћњ§ћљћћ5;<>1"$50,;NUExћ§ѓєїњњјјњћљљћљјњњћћњљћћљћ§ўўњ§§њќ§ћћўўщћў$5EE<37<@AINJ9[щ§ћїїѕѕќљѕјљљ§ќњ§њ§§ў§њўќ§њў§§ћл+-8>3!#.3PWB:AЦ§ўњјѕїїјћљ§њ§§њњћљјњ§§њћ§њ§ћљљњњљїјћ§§зњ§њ§њ§ў#03)#"*#4EG3L7ˆ§ћїљјїљ§§јїљјњ§§њ§§њњ§јљћљљ§ў§њјєїњ§ўўћћ§)2ю",)+-9:>H8w§§ўљљњ§§њђћљћњњћњ§ўћўў§ўўћћў§§ўўћњ§њћ§§сњљї1-!1&*,449FGFNNjћћѓєїјћњњјћњњњ§њћљ§ўўћњ§њњ§§њњћљћћ§§Ъ:57<@3304@EBF34CВў§їїњћћ§§ў§њ§јјњјњјњїјњјћљљјїњїљ§ћўў§§ўдћў§љј9A<@A33F>ACAMLN„ћўњїљћјњљћљљјїјѕјћљљїјјёїєљњ§њњ§ћўћўўћўў§щACA<4)$3:+:2;<7QДћ§њљћ§§њњћљњљ§§ћћў§њјј№ћ§§ћўўњњ§њўўћ§љ§§јњў182"+22ъ(3ACAC1xљ§§јјїјњњїјћ§§хњћњ§§јћћљјјћљљњў§ћјћљјјљћљ§§љњўћ74,22э>;0)7BHNFC[Ч§§їјљћњњїјћћ§§љ§§ўўјћ§§љћњћўў§§ћјјЭћљћћ§§ў§њљћ7712+02(1>BELQ]CLьљћѕѕєєѕѕњјћћљњћ§ћљћ§ў§§єњ§§њњћћ§§њњ§§ўф§јј8:@;>.#+,-EGV?0-Aлћћјјљјљљїћљ§љњў§њљљ§њ§єћљј§ўў§њ§љњ§§љу8:B@B,%&I0-:P-1•љћћљњ§§јћљћћљ§ћћљљћљљўћ§њ§њўўћрљ§љ§ўћћ§њ§ў§3<:3AP,0#.314)$?Љћ§§њ§эјњїїљѕїњћњјљ§§њљћ§ўў§ња§јћћљљњ§њњћ891&1!GC.H55LJ9’§§њјљљћљћ§ћјїљљїћљћћќљњ§ўўїњ§љїљљњљћћзљћјљјћ480BLGJMONQGzћ§їјљњћћјћћљјњњљћћюїјњ§§љ§§ўћ§§љћћњњ§§ўљ§§шћўћNFH4;5<:>37-29erGqћ§јјьєјјљ§§љѕїїњљ§ўў§§љћ§§ўњўўћўп7748&12:CE<:8;E?е§§њљ§§ў§§ћљ§њ§§цўћўћўў§њљњћљ§њ§§њ§њљћћјћћ§§ц2+:?+0.&01-:1C49Qœћ§јљњ§љљіњ§њ§ўў§§њўўўћўўњљњўћћ§§юњљњўњљ24;-HbP3)+:BJŸ§§љћћњњљ§§њю§ћљїїљ§ў§§јјћљ§ћ§њњр§ћўћ§§љ§њ3?8&*HE7@A@JVIHH;O„ћћ§љљ§јћ§§ўў§§ѓў§§љћћ§§њ§ўћњњЫ§ўў§њћњ§§њ§њў)?AGe8)!2YINS3Ctю§јјљ§њћљ§ўћњњ§њћ§њњ§§ќњ§§ўўє§ћљ§§њљњјћ§ўўфћ4>A;@8A91"1,5HIJ@A^шћљјїљћ§§ѓўћњ§§љљћћ§њјљљ§љў§њљ§ў§§шљ§њњ§њћњ58;3(793);EYH?GGіLа§§ћњћњћўў§њў§§ў§ўњ§§њ§Яћљћћ§§њљјљћ-$7559B>7(C53EF.48@+">G5Sˆћўѕјћњњ§љ§§ѕўњ§§њњўў§§ўўўћўў§њ§ўўсћўў§§-.G<;+4@J<8,I>nn^^NŽљћ§љљ§§ћњ§ўў§§њќ§њ§ўўў§ўўрћ§ћћљ§[4;:@>15:.!QSHIYMUYwЦћ§јјљљ§ћў§љћљљљ§ћўљ§§ўўєњћўћњўћў§њњ§§ўњ§§фO,?G< .&#@F;ZPGENSЛјўїљљњ§§ћіљћњ§њљћўў§§њўћўўћўў§ўњ§§хњ§•+@HA>0-*CA8-7:>E;Ёћ§љјјєњјћ§њ§ўњћїљўўў§љљўћ§§іњ§§њњ§њ§ћ§§ўжд;""!$-3080CG9@@NMEbѕ§ћљћјћјњјјћћ§љћљ§ћ§њњп§ћњњ§ћљћљњћћњњўћўћўўб94LJ2%*5.,7AAп<8L;aѕ§ўєљћћњњ§ћїїјћ§ўћўљ§§ўў§њ§§љњљљ§ўћўўпњ§Ѕ:&:>359<@FA??FIQ^;Qeц§§љјљћљљјјўљ§§ўўћўў§љўћљљ§њп§ћљњЫG5I;.+!.0BFFEWM;oь§ўїњњј§§№њўћў§§њћ§§ћљћћљћћўњ§§љќћњ§ћћр§ш}8?47@@JcYœћ§љ§§ћ§ћћљ§њ§§ўњ§§ў§§њ§ўўљњ§§њ§њ§§йЋG1.!%*$0#>@BA?8OiF{љ§їљљћљћљјњћћ§њћўў§§ћ§§њўў§ўўсN, %%"-,1;473:FE7nљћєєјљћњ§§љњ§њњ§љ§§ўћў§§њ§§§ўћўўсW>%".58303?L:Vю§њљ§ћљћ§§њњ§§љћўўє§њњ§§њњљљ§њ§§ўцA(-89AA:@54Yї§ў§§љћ§њјјћћ§љњ§§ќћљљњњ§Щћўў§њ§§њ§ћљѕћ57$ $<0SPE@C;BF[ђ§§љ§љ§њ§љћљћ§њљјїћ§§ћўљ§§§ћ§ўў§ањћ§§њ§+#* 2>GLF48Fс§ўљњћњ§§ўў§љ§§ћљћћ§§ќћўў§§љў§њћўћўў§х#"$  7"HEFGFeї§§њўўќћўњ§§љњўћўў§ўўўљ§§ћљћљћ§§љјћ)#хN95QFA70[р§ўњ§љљ§§ўњљ§ћћўљћћќљћ§ўў§њћўў§сњљQ\C3@BL?Eљўѓјњјјќљћњ§§ќљћ§њњіљїњњћљћљљћћїљћљњ§њ§§ўбCBEQVMOQMQ`Waўўњњћњ§ћ§ћћњњљњћћ§њњљњћћ§ћ§њћћ§§ћћіњ§ћ§ћћњћњћћрњB@;5E7FGFLUaHƒўўћћњњљљњњћњ§њ§ў§§єћ§ћћ§ћћ§ћ§ћ§§оњћњћњњћ§њњћ§ћћњ§ћ>B;1)4BBEA:Nm•ўўћћњ№љћћ§§ћњњћ§§ћњљћ§§іћўћў§ўћ§ћ§§њфћ§ћ§ћ§ћ+9?<:?:<:;I>N{ўўљљњњ§§ћћњћњћњњў§ќћ§ћ§§яћ§ћўћ§ћћњњћ§§ўўћ§§и5:;>:947;ZEVBQјўўњћљ§ћ§њћњћћњћ§§ћ§§ўў§ћ§§ћўњћћљћћ§ћў§ўўт2.)+--%#5C3QOBчўўљљњњћ§ћ§ћћњ§ћћў§ћћћњ§§ў§§ћ§§њ§§рњћњћњ§ћ§ћћњ::511%!&AIH}Žuтўўњћњ§§љћ§ўў§ў§§ўњ§ћ§ћ§њњћћњћћ§§ћ§љћ§§ћљњћћь7@A<512@?QFptwцўўћњћћљ§ћ§ћ§ћўўћќ§ћћ§§їћ§§ћ§§ћ§ћћ§§њћљљщњљњћћ&.9<7*#7CC09pŽьўўћћўњ§§ћј§ћњћћў§ўў§№ћ§ћ§ћћњљњћњћњћћ§§ы878>3(ITG5NTКўў§§ћўў§§ћ§њњя§ћ§ћћњ§ћњћњћ§ћћљћћї§ћ§ћћњћћ§§яћ939A8739&44-5>~ўўў§ћћшњљњћћўћњљљћњњћљћљњћ§ћ§њћћтњ§ћњћњњ??FG8-115<:TTIwўўѕљљњљњњћўњћћњњљњћ§ћњњћї§ўў§§ћ§ћ§§ўц§ў§ў§;@77@FLHC25EЗўўњљљћњ§ћўћ§ћњњљњљњљљњљ§њћћњњљњћћў§ў§§ћўўћы;:FI@:A<@IC>@SFMŒўўљћћ§њљћћњњљїњњћћњќљћћ§§ќћў§ўўг§ўў§ћ§ћ?CGC1-990:5>989SКўўљћњ§ћ§§ћћљћ§ћ§ћ§ћў§§њ§§ћўў§§ћ§ўў§щћ§ћ§ў59:?87>:0(4BH;B,ўўњьћњљљћњћћ§ћ§њ§ћ§§ћњћњњћ§њдћњњћњћ§ћ§§ўў45418>>8395CIFGG`Эўўљњћњљљњњћњ§ћћў§ўўњћ§ўћ§ўўў§њњћћњћћ§§мўњ208:;7837FFHMLhHPђўўјјљјјљњњћњў§њћћљўћ§ћ§ћ§§ќњћћ§§мћ§ћ§ћў§ўћ§њ;;CI?4513ME4-1C. &3;Q.8—ўўћћ§ћ§§њћћњћћїњћћњћћўў§§§ў§ўўќћўћўў§шћўћ1.3>?O-,2+22(0%@Ўўў§§§ћ§љљўјљљѕћ§§ћ§ћ§ћњћўўўћ§§ќћ§њћћ§мњ4245&3MI5P75PL?ўўњњћћњћњћћњљјјњћћњѕћ§ћў§ў§ў§§ћћбљћњћњћњњћ§њ:89?CB>?AC?>413-4?;<>5>Vўўњћ§§ћћ§ћўћ§§ў ў§ўљ§ћ§ћ§ў§§ућ*795IgPB0>BE@BITQE‚ўў§§ћњћ§ўўћђў§§ў§ћў§ўћ§њњ§§ўдћ§§ў§ў§§ћ§ћ1?;5@YmB5<@FHFG:IOЄўўћњњ§§ўћ§ћ§ћ§§ѕћњјљњћћўћ§њњћ§ўћ§§ућў§ўћ§ћ§§1>:0,[SABAIQJCGIAU‰ўўћш§ћћ§ћўћ§ћ§§ў§§ћћњ§ћ§ћўў§§§ћў§§гћ§§ћ§ћўў+>>A;BMe7-#9^LON9Hxёўњњћ§§ћћ§§ў§§ћ§њ§§љћ§ћ§ћ§ўўћв§ћ§ћљњћћў§ўў<9<;5?@@.1+4;INJBFeёў§њњћњ§ћ§§ў§§ћћўњ§§ћ§§ћ§§њўћўћ§ћћ§уњљ#*977??8*27>WFHBHFLйўўћљњ§ўўі§ўў§ў§ћ§§ўўћћ§ћ§ћ§§дћ§њћњћћ§§ћ§ћњ0&25>>9>;>AFGFHG4CMЪўўљћ§ћўњћћ§§њћ§ћ§§ўўќћ§ћ§§јћў§§ћ§ћ§§нћ§ћўћў§--9@::;?<;289!%8okb`S•ўўћћ§ћ§ћ§§ўќћ§ћ§§ў№§ў§§ўў§ўћћњћћa.>>ы;9:97#TVGN]NMW~бўўњњћћљ§ћўћћњћћїў§ўћ§§ў§ўўќ§ўў§§Ъћ§ћ§ћ§ћV*@HC%#AIA`VNCTOШўўњћћ§ћ§ћ§ћћњћњ§ћ§ўў§ўћ§ћўўј§ў§ў§§ћ§§тћ§ћ§ћœ.9F@F1*)2*GG><>BŸўўјњњќљњњ§§љњћћў§ўћћќњ§ћ§§ўћ§§уњ§ћ§§ў§к<+*7%037ACAA?GMWAcўўљћњ§њњљњњљ§ћћў§ў§§ўў§§іњћњћљћњ§§ўўум78OO;0037<5-#.>094?@BHJ49LC>qўўћћњћћ§§ћ§ћ§ћ§§ћќ§ћ§ўўЬ§ўћ§ћ§ћ§ўў§ў§\B%(#0737447?EQAZѕў§ћ§њћњ§ћћ§§ћћњўў§ўћ§§ћї§ћ§ћ§ћў§ўўщE31"" #!7?<>?;B:cўў§ћ§ћћ§њћќ§ћ§ћћ§ћћ§ўў§§мћ§ћњћ§њ781&8;UOEMIEAF`њўћћ§ћ§§§ўњћћЏ§ћњњћћ§ћћњћћ§ћўћў§ўћ§ћ§ў§ћ§ћ03)& 7B+HGL@AGцўўћ§њ§ћ§§ўћўћ§њћњћћ§ћ§ћ§ўў§§ћ§§ўч§ћ01+!1"OMNHTkўўќ§ў§ўў§ћћ§ћ§ўўўћўўг§ўћ§ћ§ћћњћњ§ћ§ћћњ..%%G>2]ыўў§§ћћњ§ў§ў§њњћњќћњћўўќ§ў§ўўч§ў§§ћ§ћ§ћ0,(O]HHыPE#Uцўўћ§ћћњћћњ§§ћўў§§Лћњћћњћћ§§ў§ўћћњ§ўў§§ћ§ћ*#$&0Q`WOQM27Зўўљњњљњљљњњћњћћњћ§§ў§§њњјў§ўў§њћњњў§ўўп§%#!1GIWTPUSpкўўљљњњљњљљњћњњћћњњљўћ§ћ§ћ§§ћњћћњћћс§ћ§ћ,%#%+AB;FLJTG;Tуўўљћћёњћњ§ћ§ћ§ћ§§ћњњћћв§ћ§ћњњћљћћ§ћ§ћ§ћ§ћ4-*$ -;@EFHFJJMQДўўњћњњё§ћћ§§ўўћ§ћ§ћ§ћўўе§њњћ§ўў§§ћ§ћћњ§ћ33)$#0+HCFCC@<@Ezўўњћћ§Лћ§§ћњћњњ§§ћ§њњљћћњћ§§ў§ўћ§ў§ћ§ў82%#-&$-;)08AIJOCIœўўњњљњњ§ћњ§§ћ§ћћ§ћљќњћњћћіњћћњћ§ћ§ћ§§пU^]hadbdeivtvЄўўњћћ§§ў§ў§ўњўњ§ћ§ћћў§№ў§§ћ§ћ§ћ§§ў§§ћў§§ћцUWJHSEW^\actY—ўў§§њћњ§њўћ§§§ў§ўў§ќћ§ћ§§№ў§§ћўћўћ§ћўћ§§ў§§эўIPFBHHS]V[MgЊўўћ§§цњўњўњћ§ў§ў§ћњ§§ў§ўћ§§ў§ў§ўўћ§ў§ў§§кў§ў§ў§ўAFMLCMNQYQd[]ўўљ§ћ§§ў§ўћ§ћ§§ў§§ўі§ў§ў§ў§ў§ўўј§ўћўћ§§ўўя§ўJPMNMIGENm[n[^ўўћ§ќћ§ћ§§ћў§ў§ўўњ§ў§ўћ§§їў§ўћўћў§ўўтGIL?8FE;B[BmaVяўў§њўћ§§ў§ўћ§§ўўј§ў§ўћў§ўў§§ў§ §ўў§§ыў§ў§ћVMLGCAF>V[[•Єƒэўўјћ§§ў§ў§ўўћ§ў§ў§§ћўўћћћў§ў§ўўћ§ў§ўћћэ§ћўMQMOABGUSd\{ˆŽёўў§јћ§§ў§ў§ўўќ§ў§ўўё§ў§ў§ў§ў§ў§ўћў§§чўњ§њћћ§ћ§GMHMG;:FW\AO‡Ђѕўў§ѓў§ў§ў§ўћ§ћ§ћўўк§ў§ў§ў§ў§§ћў§ўћ§ћў§ў§ўFGNOE:F0`maHciЪўўў§ўўћ§ў§ў§§ћў§ўћ§§јўћ§§ўћћ§§јў§ў§ўћћ§§эў§ўHQOYSH@I?TH@HNўў§§ћў§§ўў§§ќћ§§ўўћ§јўћћ§§ўў§§йўћўћ§§ў§ў§§LZSOHFAGJNOgh\Œўўљљњњћћўњ§ћ§§ўћ§§ћќ§ћў§§§ў§ўўј§ў§ў§ў§ўўхHT^cZGJOP\\iZMt§ўўњњљћћ§њћ§§ўќ§ў§ўўћ§ўў§ўўў§ўў§ыEIQeH4MG:OmqSMOеўўћћњњшўћ§§ў§ў§ўћ§§ў§ў§ў§ў§ў§ў§§ћЮў§ў§ў§ў§ў§ўAGFJL@JE;[agPcCўўњ§§ўћў§ўћ§§ў§ў§ў§ў§ў§§§ў§ўўє§ў§ў§ў§ўњў§ўўFё?;BFLJECLNV\^cj~Zbўўюљћљћљ§њћћ§§ў§ўћ§ћўўю§ў§ў§ў§§ћў§ў§ў§ў§ўўо§ћAOIWQLBFAQ\hpTLCSяўўћўњўћ§ћ§ћў§ўў§ђћ§§ў§ў§ў§ўћў§ўўл§ў§ў§ў§ўћў§§F@MVTW?GVB7FOeAFЇўўћ§§ў§§њћ§ћўћ§§ўћўўќ§ў§ўўќ§ў§ўў§ўы<8FQJpCJ9<:GE<@8SРўў§§ўў§§єў§ћњ§њ§њћћў§§ўў§§ўў§ўў§сћ§ћў§ўў§:@<8JA4-d^CaIFb`JЁўўњў§§ёўћћњ§њўћўћ§§ў§ўў§єћ§§ћ§§ћ§ћ§ћ§§FщNVSNTWj[iiherYўўћўћўћ§§єћўњ§ћ§§ў§ў§ўўў§ўўђ§ўћ§§ў§ў§ў§ў§ўўэNQTVYPQ\WSSQQN‹[‚ўўћўўћћїў§§њ§њў§ўў§§ў§§ўќ§ў§ў ўм$5FOTVALMZdYQIW`1Pтўўћ§ў§ў§ўћ§§ў§ў§ўўѕћ§§ў§ў§ў§ў§§ўў§§щў§ў(;GSSLOOFMJSOWTHPeБўў§§ў§§њћў§ў§ўўў§ў ўў§ўўњ§ў§ў§ўў§ф1AAGTzj\GNU`TY`jd\—ўў§ћ§ћ§§ўўќ§ў§ўў§§ў§ўўў§ўўц§ў§ў;HG?Mp‹SJTa^d\aMZbЖўў§§ўќ§ў§ўўј§ў§§њў§ўўњ§ўћ§§ўўў§ўў§ыў9B>87h^WOQVbcb[]Ym›ўўўћ§§ќћў§ўўњ§ў§§ў§§њћ§§ў§ўўќ§ў§ўўњ§ўћў§ўўь:HEEMYbN<2Sv[cgL[‹ўўјњ§§ўћ§§ўў§§ў§§їў§ў§ў§ў§ўўљћў§ў§ўћћўчCFHLGOWPIFIHP`agQWtљўўћў§§§ў§ўўї§ў§§ћ§§ў§§ћў§ў§ўўм§ўћў§ў§ў§ћ+9CCQNSOSNMWkcU[\]\сўўћћ§ўўќ§ў§ўўя§ў§ў§ў§ў§§ћ§ћў§ў§§ч?5>CFP[ZMSSd^U[ZEY`нўўњћ§§ћўћў§ўўќ§ў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўўо;7@@HMLTZLMQL4@P[EgЉўўњћћў§ўћў§ў§ўўќ§ў§ўўў§ў ўў§ўўщ§ў92NFEMMW\VJLYJ‚‹{teЃўў§їў§ў§ў§ў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўцћ§§ўjAJFFGJMNJ2co^apagk˜сўўњћўћ§§ўўўћ§§ўћўўќ§ў§ў ўр§ў§ў§ў§ў§ў[$2IOT(55G-TbYrk^[gcЯўўіћ§§ў§ў§ўћ§§§ў§ўўў§ўўн§ў§ў§ў§ў§ўЁ2GPTWE9EQ][[\Vcƒ]Œўўћ§ћ§§ћћ§ћў§ўўј§ў§ў§ў§ў ўђZE")%0.8CJWPPљQMaYNˆўўъћ§ћў§ў§ў§ў§ў§ў§ў§ў§ў§ўўњ§ў§ў§ўўщoQ)()-<70AEQIHJPOWgOpўў§ќћ§§ўўћ§ў§§ўўў§ўўє§ў§§ћў§ў§ў§ўўщ`CG+-+-&*-,53JVWONVUFwўўц§ўћ§§ўћћ§ўћ§§ў§ўћ§§ў§ў§ў§ўўљ§ў§ў§ў§§Jы:)&&**.+SLtg^]^bUVqўў§ыў§ў§§ћў§§ћўћў§ўћўћў§ўўо§ў§ў§ў§ўMA>+#**#().HUB^`TONZјўў§§§ў§ўў§§ў§§јћў§ў§ў§ўўљ§ў§ў§§ўўч§ўBF7(+!##%#.C+;`]`[b~ў ўњ§ў§ў§ўўљ§ў§ў§ў§§уў§ў§§FEE9)"!&% (WMTtd]N?jёўў§њў§ў§ў§§§ћў§§ ўр§ў§ўў§AA8:,%(*$$"jtZTYaM,iѓўў§§ќћ§ћ§§ў§§ў§§ќћ§§ўўќћ§§ўўѕ§ў§ў9970!,э$1Gi{jn``:320)#!%;OTU\[\^bYcУўўћ§ўў§§ўњ§ў§ў§ўў§§ў§ўў§ўл§ўўFA70(2%9&19:F`V^YW\LNW…ўўћ§§ћў§ў§ўўј§ћў§ў§ў§§ћ§§ў§ўўл§ў§ў§ўJF+2-$595)3EP>AGWV^jU[Ћўў§ћћњћ§§љў§ў§ўћўў§ћї§ћ§§ўћ§ћ§§ўќ§ў§ў џ3 џ3 џ3 џўw1 џўw0 џ1 џ1 џ1 џўw/џ0џ0џўw.џ/џ/џ/џўw-џ.џ.џ.џўw,џ-џ-џ-џ-џ-џ-џ-џўw+џ,џ,џ,џ,џ,џ,џ,џ,џ,џ,џўˆ+џ-џ-џўw+џў€*џ+џ+џ+џ+џ+џўw)џ*џ*џ*џ*џ*џ*џ*џўw(џ)џ)џўˆ(џ*џўw(џ)џ)љќ§ўћўўњћў§њљўўє§њ§§њћ§њ§ћћ§§эњ§§њ§ћњљѕїњћјћњ§њњўўѕњћљ§§њ§њњў§§ўў§ћћљіћ§§љћљљ§§ўўѓ§ћњћљ§§њўћњ§ўў§ћћјћљћћўїњ§ў§њ§њјљљўњ§§љўћ§њ§њ§§ў§ѕћљ§њ§§љљјљўўўљјј§љ§њњ§§љ§§ћћѕњћјїїљћћљљњўўшјљјјћљњћўў§§ћјњљћљњ§љћљћћо§ћљљњњјћћјњљћћ§§ћљ§јј§љњњ§јњњїѕјћљљ§яћљћ§њљћњњјћј§ћћ§љљ§сћљјњћћљћћ§§љњўў§ћњљј§§њ§њљћљ§§ћћјљћ§њўўћўў§яћўўћњ§ўћћњ§њљ§§ћўўўћўўё§ћњ§њћњ§§љљ§§ћў ўњ§ћћљ§њћћ§§њћћќљјљ§§ўњ§§љљњљјњљћћљўњ§§ўњ§§ќљјћљљ§ћј§§љў§ћћўљћћ§ўљ§§ќњљљ§§ўњљљљјћњ§§љћћўљ§ §ѕўњњ§§њ§њўў§§јњ§љњјљј§§пў§њ§§њ§§њћљћљћћ§§ўњ§§ћљћјљљјјћћљ§§љ§єљїњјўў§ўћњњ§§њљћњ§§ўўј§њћћљћћ§§№ћљћњ§њљњјјћљљїњ§§ўнћў§ћўў§њ§§ћљјљћћ§њ§ўњњљљњљћ§§ћћ§§њўўјћўјћ§ћћўўћ§њўўњњќљћљјјќљ§ћўў§§љјјќљ§ћўў§ћяљјћ§њ§§љљјїјїћњњ§§ћњљњ§ћћќљћљћћў§ўўњћ§ў§§ћћўљјјїћљћћњ§§ў§§єћљњјјњјћ§њњ§§њћ§ўўћ§§ѕў§ћњ§ћћ§§љ§§ћ§їћљњјїњјј§§ќњ§§ў ўўњўў§ќў§њўўљ§§њћћћљњјћ§§ў§ўўћўў§§њ§ўўјћўћўћўњ§§љљ§§љћћ§§ћ§ћ§љўћ§§ћћљћљћћ§њњ§љћћ§§ђњ§ћћљ§ў§њњћљљћћўљ§§љћљљћљћњњќ§њњјј§њ§љљњћ§ўўћ§§іњ§ћњјјљїјњњёљћ§ў§§њљћћњњћ§љљў§њњўќ§њћјјўљ§§ѓњ§ћњњћњњ§§ўў§§ўњ§§ѕњ§њћљ§§ў§њ§§їјњјјљјћћ§§њњљљјљћћќњ§њ§§ўќњўћўў§єњўўћ§ћњљћњњўўўњўў§ћјњўў§§ћћўўўћўўњњ§љћћўў§љћњ§љїљћћ§њ§ўў§ћ§ўўњњ§ўћњўў§§ўњњєљ§љћњјїѕјњњјјќљћњ§§њњљћњ§ћўў§ђњ§ћў§§љјљљ§ўћўўћ§§њљљљњ§ћљњ§ўўўћўў§сћ§§ўў§јј§§ћћљћ§§ўњ§§њњўў§§ћћњњ§§ђњљћў§љ§њ§§њўћ§§ўъњ§љњўўњљљњљ§њ§§њћљјјљћћёљ§њјљћћљљњ§ћљћ§§ћя§њњљњњўў§ўў§ўћ§§ћћјѓћјњњјћљћћњ§§љљўњўў§њњљј§§ўўћ§ўњ§§ўњўў§ёљјљ§§ћ§§њ§ћћњћўўїњћљљўўћў§§њ§§њћўўћ§§њ§ћћљњ§§ћћњ§§љњ§ћљ§њўў§ѓћљ§ћћ§љћјїћљ§§ѕњїљ§њ§ћљљ§ўўќћњ§ћћќљ§њўўїћўўїїћљњўўђњ§њљљћљјјљ§њ§ўў§ўѕћў§ћљ§ўћўћўўіљћ§њњ§§јћ§§ўјљ§ћљћ§њ§§ў§њўћўў§ћїњ§§ўњ§ћјћћєњ§§љћћ§§љ§§ўўќ§њњ§§ћњљ§§ўўћ§ў§ўўўћ§§ўў§ћћјјљ§§њљј§§ўљћўўћ§§ўўљћ§њњ§њ§§јњ§§љћ§§ўў§ћ§ўћўў§њјћјћ§ўўўћўў§яњјћ§ўўњњћћљљ§§њљћћ§§њ§§ў§ћў§§ўўћћў§ўў§ўўњ§ўљ§§єњ§§ўў§§ћљћљўў№њљјјљњ§§њћћљ§ўћўўўћўўў§њњњљўћўћўўюњ§§њљ§њў§§ћ§§ћ§ћћ§§јљјјћ§§ћў ўў§ў ўњњ§§ћћ§§эљћћљћљљњ§ћјјњњјјћњўўѕћњњ§§јїњћљ§§§њ§ўўўњћћїљјјњ§ў§њљљ§ћ§ўћў§їћњјїѕјћјћћјњїљ§ў§њњћћњўў§§њќ§њ§ўўўњ§§ѕњћћ§ћњў§§ћ§§љћњјјљ§ўўє§ћјљ§ћљјїљњ§§ћў§ўў§јў§њ§ўўњ§§ўљ§§ђћљ§њ§§ў§§љћћљћћћњ§§љ§§ћыљћћў§§ћў§њ§ћљњ§§ўћўњ§§њћћ§њњ§§ѓњ§§ћ§њњўћўўњ§§ў§љњ§ўўњў§§њ§ўїњ§§њ§§ћћўў§ўћ§§ўњўў§§њ§§њњ§§њћ§§ўўћўўњ§ўў§њ§§іњ§ўўњ§њћћ§§њј§њў§њњљ§§љіњ§§ўў§§њћјјєљћћјњњ§њўњњ§§ќљћў§§љњ§њ§§њ§§ў§њ§їўћљ§§љњ§ўўћў§яњћљљњ§ћљћљљјћћ§§ўўїњљ§њ§ўўњ§§ўћўўћњћљњ§§ў§§љњ§§љћўћњ§њўў§ќћљњўўћћ§љљњњ§јћљћ§§ћў§§ўћ§§њљњњ§§ўў§ђћљњ§њћњ§ўћўњў§§юљћљћ§њ§љњљљћ§њ§§ћњњ§ѕњўћў§ћ§§љћ§§ћ§љўћўћњњ§§іћљ§§ћљ§њў§§ћљ§§њўўћћў§ўћўў§ўњў ўњћ§њњћўў§јў§ў§њ§ћ§§тўћўўћўў§ћњњїјјїјћ§§љћјњњћњњ§§ўў§ўѕћ§§ћљ§њ§§њўў§щљћњ§њў§ћћ§§њњ§ћћљљјјљљ§§ўљћ§§ў§§ўўїњўў§§ћћљ§§іњў§§ўўћћљњњќћ§њ§§ўњ§§њћў§§њ§§ўў§ўўњћ§њ§§ћћњёўћўњњљћљњїїјјћ§§њћ§§ў§ўўў§ўў§ћ§ўў§ќћ§њ§§јњћћ§ћ§ћ§§іћ§ћћљјјѕ§њњљ§ћ§§ў§ўўъ§ў§ћћ§ћ§ћ§§ўћ§ћ§ћ§§ў§ўў§ќњћњћћі§ћњћћ§ћў§ўўя§ў§ўћћљћћ§ћ§§ў§§ўўћ§ўћ§њњѕћњћњћў§ў§ў§§ћыўћ§ћ§ћ§§ўћ§ћ§ћ§ћ§ћў§ўў§ћњњћћ§§ћћ§њћўўўћњњўћ§§ѓў§ћ§ћћњњ§§њњљљћў§ўўў§ўў§њјњњ§ћ§ўўн§ћћњљћњћ§ћћњћњћњ§њћћњљњњћњљћћњ§ћњћ§§ўћ§§ўћљљњћю§њћњ§§ћњњљњњ§ћўў§ћћў§ћћьњљњњћњњ§ћў§ўў§њњћ§ћ§§њўњћћ§њњћћњћ§ўўї§ўћ§ћ§ћ§ўў§§ћўў§ћў§ўўў§ўўћ§ўћћ§§їў§§ћў§§ћўўў§ўў§ћ§њўћњњ§њћо§ћ§ћ§ћ§ћ§ћў§ћњљћћњњћћ§§ћ§ћ§§ћ§ћ§њћћїњ§ћ§ћ§ћ§ћћњ§њћњћњњј§ћўћ§ћ§ћћњ§ћ§ћ§ћћљњў§§ћћњњћё§ћ§ћ§ћ§ћ§ћў§§ћ§§ќў§§ћћ№§ћ§ћ§ћ§ћћљњјњ§ћ§§яћ§ћ§§њћњћњњћћў§§ћћўњћћњњћњћћ§ћћљ§ћћљ§ў§§ёў§§ћ§ћ§ћћњ§ћ§§ўўчћ§њњћћњ§ћ§њћњ§ћ§ћљњ§њћћў§§њћ§ћў§ўўоћў§ўћ§ћћњћ§ћњћћ§ћў§§ћћ§ћњ§§ўў§ћ§§ўўњў§ўўљ§ўћ§ўў§§ќћњћњњћ§ў§ўўъ§ћ§§њћ§ўў§ўћ§ћ§ўўћћ§њ§§ћѕњћњћћ§§ћ§ћ§§ќў§§њњћьњћћњћћў§ў§§ћўћ§ћњћћњњєћњћ§§ћўћ§ћ§ћћљљњњљњњ§§ќћ§ћ§§ўћўўєћ§ћў§њ§ћњњ§ћћј§ћћњћћ§ћћїљњћљњњ§ћ§§ўћў ўї§ў§ўў§ўћ§§ьў§ў§ћћ§§ћњћћљњћћ§ћў§§њћ§ћ§§ўўј§ў§§ћ§ћ§§јў§ў§ў§ў§§ћ№§ћњњћћ§њњћ§њњћ§ћћ§њ§ћћј§њћњћћњћћ§ћхњ§ћ§ћ§ћћњћћўћ§§ћјјњћњћћ§ћ§ћћќњћњ§§јћ§љњњћ§ћћ§ўђ§ћ§ћ§ћћљїїјљњљљ§ћњ§§ѓћ§ћњњ§§ўћўћћ§§ў§ћ§њњњћ§ћ§ћ§§књљљћ§§ћ§§ўћ§ћћ§§ћ§ћ§ћ§њћ§ћўћ§ћ§ћ§љњњћњњђ§ћ§§ћћ§ћћњћњћ§§јћ§ћ§§ў§ўўўћ§§ўјћў§ћњ§§ўўў§ўўђћ§ћ§ћћњћ§ўў§ћўў§§ў§§ўѓћ§њ§ћћљјњћњњ§§ўљћў§ў§ў§§ўў§ўў§ўў§§ќўћћњњљќњљљњњњћњ§§ћ§§ъћњ§§ўў§ўћ§ћ§ћ§ћўў§§ћ§ћћў§ћ§§њћ§§ў§§ўћћњ§њ§ћў§§ыћ§ћњћњ§ћў§ћћ§§ў§§ћћњ§§ќћ§§ўўћж§ћ§§ўў§ћ§§ў§§ў§ўўљћћ§ўћ§ћ§§ћћњњћњћњћћ§§ћњћћ§ъњћњ§ћ§ћ§ћ§ћћњњћ§§ћ§§ў§§єўћўў§ћњњћњ§њњє§љљ§ћћњњ§ћ§ћћ§ђў§ўћ§ћ§ћ§ћњ§ћўўўћ§§ќћ§§ўў§ћ§ћћљ§њћћ§ћўўњ§ў§ў§ћћљў§ўў§ћ§§јћ§ћ§ўў§ўўя§ћ§ћћњћ§§ћўў§ћ§ћ§§ѓњћћ§§ў§ўўћ§њћћ№њ§ћњњћњћћ§ћ§§ўћ§§њњћћ§§ўўє§ћњћњћћ§ўў§ўўћ§ў§ўўѕ§ћ§ћћњћњњћ§§§ў§ўўњ§ўћ§§ўўіћњћ§ўў§ў§ўў§ћњ§§§ћ§ћћ§§ћўўћ§њћњ§§јћ§§ў§§ћ§§ўђћ§ћ§ћўў§ћћў§§њњыћњћ§§ћћњњћ§ћ§ћў§ў§ўћ§§іћ§§ўћћўў§ўў§ёў§ўњћ§ћ§§ў§ў§§њњёћњњћ§ћ§ћ§ћ§ћ§ћўўі§ў§ўў§ћў§ўўћ§ўў§ўўњ§ў§ўў§§њћ§ћ§ћ§§ћќњ§ћўўіћ§ћ§ўў§ў§ўў§ўњћћўў§ў ў§љћ§ћ§ћ§ћћўў§§њћј§ћ§ћњћњ§§ќћ§§ўўќћ§ћўўњћ§ћ§§ўў§ћў§§ьў§§ћ§ћ§ћ§§ћ§§ўћ§њћњўўё§ћњњћ§§ћ§њћў§§ўўў§ўўї§ў§ў§ўўћ§§ўс§ў§§ћ§ўћ§ў§§њ§ћўћћњ§ћ§ћ§ћњњћћ§ўўў§ўўў§ўўў§ўўђ§ў§§ћ§њћћ§ћћњћћ§њљњѕ§ў§ў§ў§§ћ§њњћ§§ћ§§ўѓ§ћњњћњњ§ћўћ§ћћћ§ћћњ§§§ў§ўўљ§ўћ§ћљњњћ§њћњњћ§ўћ§§јњ§§ўћ§ћ§§ќћ§ћўў§дћ§ћ§ћ§ўўћњ§ў§ћњћ§ћ§ћћљњњћћў§ў§ў§§њњћ§њћњћћ§ћћр§њћћў§ўћ§§ћўћ§ћўў§ћ§ћ§ћ§ћ§њћћ§ћ§§ћњцћњњћ§§ћўћ§ћ§ћћњћњњўћ§ўўћ§ћћё§ћ§§ў§§ћ§ћ§§ћћ§§јћ§ћ§ћ§њ§§ўя§ў§§ћ§ўў§ћ§ћ§ћ§ћ§§їў§ўћ§ћ§ћ§§іћ§ћ§§ў§§ћ§§ўћўўн§ў§§ћ§§ћ§ћ§ћўћ§ћ§§ў§ўћ§ћ§ћ§ћ§§ўћ§ћўўќ§ў§ўўќћўў§§ёћ§§ћў§§ћ§њћћ§ћ§§ъўћ§§ўћ§ћ§ћ§ћў§ћћў§§ћ§њњќћњњ§§ёў§§ћ§ћ§ўў§§ћ§ћ§§юћ§ћ§ћ§ћ§§ў§§ћ§ћ§ћ§§єћ§ћ§ћўћћ§ћћ§§§ў§ўўы§ўў§ћ§ћ§ћ§ћ§њћћ§ћњћњћћњ§§ћўўєљћ§§ћ§ў§§ћћўў§эњћ§§ћ§§ўћ§ў§ћ§ћў§ў§§ўї§ўћ§ћўћ§ўўћ§шћ§њћњ§ћў§§ћ§ћўћ§ћћ§§ћ§§ўўѕћ§њћ§ћ§њ§ћўўі§ўћ§ћћњћњ§§њћљћћњ§§ћ§ћў§ўўћ№§ћњ§ћ§ћћњњћ§ћ§§ўў§ыћ§ћ§њћћ§њўћ§ў§ћ§ћ§ћ§њњћў§ўўў§ўўўћўўђ§ў§§ћ§§ў§ў§ў§ўў§њћ§§ў§ўўя§ўћ§ћўћўћ§§њ§ћ§ћўўў§ўўћћњљљњњыћњћћ§ћњњљљћ§§ћ§§ў§§ћўўћћ§њћ§§ъћ§§ў§§ћ§ћ§ћћњ§ћ§ў§њћћ§§ћъњћћњњћћ§ћ§ћў§ў§ўћ§ўћ§ўўъ§ўћћњњћ§ћ§ћ§§ўћ§§ўњћћ§§ўњ§§цћ§ћ§ћ§ћ§ћ§§ћў§§ћ§ћ§ћў§§ўў§§ћ§њћ§§ў§ќћњћљљњћ§§ћ§§ўћ§ў§ў§§цў§§ћў§ў§ў§ў§ў§ўћћњљј§ўћ§§ў ўњћ§§ў§ўўњ§ў§ў§ўў§ўћ§§§ћў§§ ўћ§љў§ўў§§ў ўќ§ўћ§§ќћ§ћўў§§ў§§ўў§§ў§ћў§ў§ўўњ§ў§ў§ўўђ§ўў§ћўў§ўћ§ћ§ўўч§ћўњ§§ў§ў§ў§ў§ўћў§ўў§ћњњ§§ќћ§ћўўћћ§ћў§§ўњ§ўћўћ§§љў§§ћ§ћ§§ћњћћ§ћћњ§ћ§§ў§§ђў§ўћћњ§ћ§ћў§ў§§їўћ§њўћ§§ўў§јўћ§ћћ§ў§§§ў§ўў§ѓњ§ћў§ў§ў§ў§ў§§§ў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ў ўќћў§ўўў§ўўў§ў ўє§ў§ўћ§§ў§§ћ§§ћў§§ћ§§§ў§ўўў§ўўщ§ћћ§ћ§§ўћў§ў§ўў§ў§ў§§ћ§§њў§ў§ў§§ўћ§§ўн§ў§§ћў§ў§ў§§ћ§ћўў§ўћў§ўћў§ў§ў§ў§ў§ўўњ§ў§ў§ўўў§ўўы§ў§ў§ў§ўћўћ§ћ§ў§ў§ў§ўў§§ў§§ўї§ўћ§§ў§ўћћ§іў§ў§§ћў§§ћћўў§ўўє§ў§ў§ўћ§§ў§ўў§ћћ§§ў§§јў§ў§ўћў§§њў§§ў§ў ўњ§ўў§ћ§§ќћў§ўўњ§ў§ўћ§§ўќ§ў§ўўќњ§§ўўў§ўўі§ўћ§§ћњћ§ўў§ќћў§ўўј§ў§ўўћў§§љў§ўћўњћћњў§ў§ў§§ќў§ў§§ўћ§§ќћ§ћўўў§ўўњ§ћ§ћ§ћћ§ќћў§ўўї§ў§ўћ§ћўћћ§ўќ§ў§ўўш§ўў§ў§ў§ў§ў§ў§ўћ§ўў§ўћ§ћћјњћ§ў§ў§ўўќ§ў§ўў§ѕўћ§ћ§ћўћў§ўў§ћў§ў§ўўї§ў§ў§§ў§ўў§ќўћў§§ў§ўў§§ћў§ўў§§ў§љћ§§ћ§ћўў§єћ§§ў§ў§ўћ§§ўўю§ўћњњ§ћ§ћ§§ў§ўћўћ§§јў§ўўћўћўў§ћў§§§ў§ўўѓ§ў§ў§ўћћљљњ§ћћ§ќў§ў§§ўљ§ћ§§ў§ўў§ѓћўћ§§ў§ў§ў§§ћћћў§ў§ўўў§ўўљ§ў§ў§ў§§ўњ§ў§ў§ћћ§§ћ§§ќў§ў§§ђћ§ћ§ћў§ў§ў§ў§ўў§ў§ ўј§ў§ўћ§ћўўў§ў ў§ў§ѕўћ§њ§ћ§§ў§ў ўў§ў ўћ§ўў§ўўї§ўћ§њўњ§ћћ§њў§ў§ў§§§ў§ўўњ§ў§ў§ўў§ўљ§ўћ§ћў§§§ў§ў ў§ў§ќў§ћ§§ўў§ўўє§ўћ§§ў§ў§ў§ўўњћў§ў§ўўќ§ў§ўўо§ў§ўўћўћў§ў§ў§ўћўћў§ўћ§ћўў§ћ§ћ§§ў§§№ў§ў§ў§ўћ§§ў§ў§§ўўў§ўў№§ў§§ћ§§ўћў§ћћ§ћ§§ўў§§§ў§ўўї§ў§ў§§ћ§ў ўњ§ў§ў§ўўє§ўћў§ў§§ўў§ў ўќћ§§ўўі§ў§ў§ў§ў§ўўі§ў§ўћўћў§ўўє§ў§ў§ў§§ћў§ўў§ћћўћў§§іўћ§§ў§ў§ў§§ўў§§§ў§ўўљ§ћ§§ў§ўўћ§ў§ўўђ§ў§§ћ§§ўћ§§ў§ўўў§ўў§ў§їў§ў§ўћў§ўў§ћў§ў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўў§№ћ§ћ§ћў§ўћў§ў§ў§ўўњ§ў§ў§ў ўў§ўўњ§ў§ў§ўў§ђћ§ћ§§ў§§ћў§ў§ўўў§ўўў§ўўє§ў§ў§ў§ўћ§§ўўќ§ў§ў ў§§ўћўўњ§ў§ў§ўўўћўў§§ў§§єў§§ўћ§§ў§ў§ўўў§ўўќ§ў§ў ў§§ў§§њў§§ў§ўў§ќћ§§ўў§єћў§ў§ў§§ћў§ўўў§ўўќ§ў§ўў§ўђћ§§ў§ў§§ћўћў§ў ўў§ў ўђ§ў§§ћў§ў§§ћ§ћ§§ўўћћў§ўўё§ў§ћўњўћў§ў§ў§ўўўћ§§ћў§ўў§§ў§§§ўћ§§ўя§ћћњўњћћўћ§ћўћўћўў§§ў§§ўј§ў§ў§ў§ўўј§ў§ў§ў§ўў§ёў§ў§ў§ў§ўћўћћ§ўўќ§ўћ§§ћ§ў§ўћўў§ўћ§ў§ў§§ўў§§іў§ў§ў§ўћў§§ћўћў§ўўњ§ў§ўћ§§ўў§ўўј§ўћ§§ў§ўўя§ў§ў§ўћў§ў§ў§ў§ў§§§ў§ўўя§ў§ўў§ў§ў§ў§ў§ў§ўўє§ў§ў§ў§ў§ў§ўўњ§ў§ў§ўўї§ў§§ў§ў§ўўќ§ў§ўўј§ў§ў§ў§ўўў§ў ўљ§ў§ў§§ўўє§ў§§ћў§ў§ў§ўўі§ў§ў§ў§ў§ўўј§ў§§ћўћ§§єў§§ўў§§ў§ў§ўўю§ў§ў§ў§ў§ў§ў§ў§ў§ўўщ§ў§ў§ў§ў§ў§ў§ўўћ§§ў§ў§ўўё§ў§ў§ў§ўў§ћў§ў§§љў§ў§ў§ўўќћ§§ўўў§ўў§ћў§ў§ўўњ§ў§ў§ўўў§ўўћ§ўў§ўўєћ§§ў§ў§§ћ§§ўўќ§ў§ўўј§ў§ў§ў§ўў§ќў§§ўўш§ўћ§ћ§§ў§ўћ§ћ§§ў§ўћў§ў§ўў§ћў§§ѕў§ўћ§§ў§ў§ўў§§ў§§§ў§ўўї§ў§ў§ў§ў§§њћ§ћў§ў ўќ§ў§ў ўќ§ў§ўўў§ўў§§ў§ўўѕ§ћћўћўћўћў§§ћћў§ў§ўўў§ўў§ћў§ў§ўўъ§ў§ў§ўћ§§ў§ў§§ћў§ў§ўћ§§ћ§§ў§ўўћ§ўў§ўў§љў§ў§ў§ўўх§ўў§ћ§ўў§ўў§§ў§ў§ў§ў§ў§ў§§ўўњ§ў§ў§ўўў§ўўє§ў§ў§ўћ§ћў§ўў§єўћ§њћћ§ўў§ў§ Рћў§§њ§§ў§ћў§§ўє§њњ§њ§§њўўћўўћўјњ§ћўћњћўўњї§њ§§њљћљўў§§ўћўў§њў§§љћ§§§њў§§ўўћўўўћўўћў§іњћћ§њњ§§њўўћяўћ§ћ§§ћћ§§њ§§ўћћ§§ўћўўћўў§ў§њћўў§њћ§ћћ§ўў§ћњ§§ќћљљ§§љњ§§њћћўўўћ§§ўќћўћўўњ§њ§њћўўўћўў§§њўўтћњ§§ћњ§§ћ§§њ§њ§§ћћўћћњљњћњ§ўњ§§ќћљ§ўў§њљўўњ§ўћў ў§јћўўњ§§ћ§§ўњ§ћўћў§§ўњњћњјљ§§ўќћўћўўў§ўўћўўћўўњў§ўў§§њ§§ў§њљ§§љћўўћўўћўўћ ўќ§ћћ§§ўљњ§њ§њ§ћћўњћўўћћўўљ§љћ§§ћў ў§§њ§§ќћїљћћї§ўў§њўћў§§јљ§§ћћўћўўј§њћ§љ§§ўўўћўў§їљјљњўћ§њўўя§ћњїїњњјјњїїњ§§ћњњї§ћћјѕћ§§ўўўћўў§§њўўњћ§њ§њ§§ўњ§§ќњ§ў§§ћљјњјњљњ§§ўјњњў§ў ўќ§ћ§ўў§њ§ўњўўўњўўўћўўў§ћћўјїїњ§ћњ§ћћјјњћўў§ўўѓћ§ћјњћћљ§ўўћў ўўњўў§ћњўљљјћ§§ўіљћћ§ўўћ§§ўў§§њ§§ўў§§ўћ§§њў§ўў§ў§ўћўўћўјћўў§љћњ§§ьћўћўњ§§ћ§§ўћўў§њ§њњўўњ§ћј§ў§§ўћћњ§§ўў§їњљљћћљћћўўќ§ўў§§ѕћ§ћўўљ§љћ§ў ўъ§љљћћљљњњ§§ўўћћ§њ§ћћњјјњіћ§ўўљ§ћњњўўјњ§ўћў§њ§§ўўћўўї§љћўў§ўћўўќ§њ§ўў§ўь§љћћїњљ§§ўўћўў§§ўћў§§§ћњўў§ћњ§§№ўћћўћўњљљћїјљјїљљўћњњўћўўљњ§§ўўћўўј§ћљњњ§§ўў§іњўўњљљ§§ћўўћ§ўњ§§єћљљћ§њњћњїљ§§ђљ§§ћњўўћўў§ћћ§§ўў§ўўјћўўњ§њњўўћћўўњўўўњўўђћўў§§љћ§§њћњљ§§ўљ§§ўљћўўћ§ћўўј§њљ§§ћ§ўўљћўў§ўћўўћћўўћўў§ўњ§§ўњўўї§љљ§§љ§§ўўњњљљј§ўў§ћў§ўўіћўўћў§њљљўў§њ§ўћ§§ў§ў§њў§ўўўћўўўћўў§§ўћўўљ§ўўћ§§ўўћћўўћўўњ§ћњјљ§§№њ§§љљ§њњ§ћћњ§§њўў§ўў§§јњ§§њ§§ў§§ўўњ§§ўњќўњћјјэћјјљњњ§ў§њ§ўњљљћћњўў§іћљћ§ћљћљћ§§ў§ўќ§њљ§§§њ§ўў§ў§§њўўі§њ§§ўўћћњўў§ћ§эўћ§§ћћљ§њў§њ§§њљћљ§§љњ§ўў§ћћ§ ўў§ўўўћўўћ§њ§§ўў§§њ§§ўњ§§њ§ўўћ§§ќљћћ§§ћњ§њ§ўўїћўўњ§љ§њ§§ўўћњњ§ћў§ўў§ў§љў§њ§§њ§§њњ§§њњ§§ћў§ўўћўў§§ўћћўїњўў§ћ§§ћўўїњ§јљљ§ўў§§ўљћћ§іћўўњћћўўћў ўќћўўћћіў§њћ§њ§ћљћћѕ§њ§ћўћў§ћћ§§јљјњћћљњ§§ќўћћўў§цњћ§§њўћўў§§њ§ћљћ§§љћ§ћјјљћћ§њљўўћў§§ўћ§§ўќћўћўўы§ћњ§ћћјљ§§ћћ§њћўљ§§њ§§їћ§њћћљ§§ћћњјћћ§§ўў§§њћўўўњ§§љњ§њћћ§ўў§њў§ћў§§ў§ћљњјјћћ§ћў§§ћўў§ђњ§љњњћ§њўў§ћћ§§їњ§љљ§ћўў§§ћћ§§њ§§§љћњњѓјћљћјјїїћћњћ§§ўњўўўћ§§ѓў§љњјјљћљјјљћћ§ўў§§їћљ§§ўћўњ§§ћњћћјћћ§ћѓљћњћћњћ§§ћћљћћ§љњћфњјњ§ў§§њ§њњћјјћ§§њ§ўўњћћљј§ўў§њ§ўўх§њњ§ћјљњ§њљ§љјљїїњјјљ§§њјњ§§ўћ§§њў§ѓњ§§њ§њњћ§њ§љ§§ўњ§§§љњ§§§њ§ўў§ћюљћ§§ўўћўўњ§ўў§ћљ§ўўњ§ўњ§§њќ§њљћћєјїћљ§њ§ћљњјїїљў§ўў§§ўћўўўћўў§њћўў§§ћћъљјјљћ§§ћїњћ§§љљћ§њћўў§§ѕљћ§§љћћљ§§ўўўћ§§юњ§ўћћўњ§§ў§љјўўћў§§јљћњњљћљ§§ўѕњ§ўњњћўўњћўўћњљљ§ўў§њ§ћћў§ўў§ў§їњ§§ћјћћ§ўў§ўўћўўўћўўќњљћ§§ўўњ§§ўі§љљјљњ§њў§§ћ§ёўћў§њ§љћњјїїћљ§§§ўћўўўћўў§љ§ўўј§њ§ћўўњ§§њћљ§ћљ§§ќўјћ§§ўљ§§ћјњїєяѓїїћћўљћћўњ§§ќњ§њ§§іћљћ§њ§њћљ§§ўј§ћљћћјјљљћђљћњ§§ћ§ћљєјњћ§§ћ§ќћ§§ўўљћ§§њ§ў§§ћыјћљ§њў§ўўћ§њ§њћћњћћљћћ§єћњњћљјњљјћњ§§ ўўћ§§њќћ§ў§§ўњ§ў§§љћћњљјљєњћћіјљћљћљњљ§ўў§ўј§ћћњ§§њўў§љј§њћўў§њўўц§њ§ўњњ§ћњњїѓјћ§§љј§§љ§њўњўўъ§ћљ§§ўћўў§§њ§§ўћ§§њўў§§ћўњћњ§§ъњ§§њљћњїћћљљ§њ§њњ§ўћ§ўўњ§ћљћњ§§ўђћ§њ§§ўў§љјљљњ§§њє§њ§њ§ћјј§љњћћїјћљ§ўњ§§ўў§њ§§јћ§§§њљћћјљћљљ§ћў§§ђћљјїњњјњћћ§њњћћ§ўћ§§јћ§ћ§ћ§§ўў§њћ§ћўў§§њћ§ћ§§ўўќ§ў§ўў§іћў§ў§ў§ў§ўў§§ћ§ћћўјћ§ћ§ўў§ўў§ўћ§§ћіњ§ћ§§ўћ§ћўўў§ў ўњ§ў§ў§ўўњћ§§њњ§§ќћ§§ўўы§њ§ћћњ§ћ§ћ§§ўў§ћ§ћ§§ўўў§ўўќ§ў§ўў§ўћў ўј§ў§ўћ§ћ§§юњћћў§ў§ў§§ћ§њћћ§ћ§§§ћ§ўўў§ўўњћ§ћ§ћўўў§ўў§ўў§ўў§ўн§ћ§њ§ћ§њ§ћ§ћ§ћ§ўў§ўў§ћљњ§ћў§§ћ§њћћўўў§ўў§§ћ§ўўў§ўўы§ўћ§ўў§§ћ§њ§ћ§ўў§ў§§ўўќћ§ћўўі§њљњћ§ћ§ћўўћћ§ў§ўўў§ўўў§ўўћ§ћў§ўў§№ћ§ћћўўћ§ћћў§ћћњўўў§ўўў§ўўќ§ў§ўўљ§њњћ§ћўў§њ§ў§ў ўі§ў§ўћћњ§§ўўў§ўў§њћ§њњћњњ§ћў§§ўћљ§ћ§ћћњў ўђ§ў§ў§ўћљњ§ћ§ћўўѓ§ўћ§ћњћ§ўў§§ўўјћњљћћљљњњљћ§ћћљ§§њјћ§њћћў§ўўќћў§ўўћћ§ћ§ћћѕ§ћ§ћ§§ћћ§ћ§§љћ§ћћњћњњљљћ§ћ§ћ§§ўћў ўє§ћњ§ўў§ўў§ћ§§ќћ§§ўўў§ўўѕ§ў§ўћњњћњ§љљ§ћћ§ћћњњљњў§ћў§ў§ўўѓ§њњљћњћћў§ў§ўўў§ўў§јў§ў§§ћ§њњўўћћѕ§ћ§ўў§ћњћћўўћћ§§ў§§№ћ§ћўћ§ћ§ћ§ћўћ§ћ§§ќћў§ўўђ§ўћ§ћў§ўћ§њў§ў ўћљњ§ћ§ћ§ўў§кћњћ§ўў§ўћ§ћ§§ў§ўў§њ§ћўћ§ћ§ћ§ћ§ћў§ў§§ћўўќћ§§ћћњњћњў§ўўюћўў§ћ§њ§ўў§ўћћњ§§ўўў§ўўў§ўўѓ§ћћњњћћ§§ћ§§ўўјћ§ћћњ§§њњњљњљњћўўіћњ§ў§ў§§ћўўјћ§ћ§ћў§ўўў§ўўќ§ўћўў§ўћ§ўўћ§§яў§§ћў§§ћћњћљћћ§§ўў§§ћўўњћ§ћњ§ўўў§ћћќ§ћ§ўўќ§ћћњњќћњњћћњњљљњњўў§ыћў§ў§ўў§њћ§§ћ§§ў§§ћ§ўўў§ћћў§ўўў§ўў§њћ§ћ§њћћ§ёћљљј§ћ§ћ§ћњ§ў§ўўћіњћћ§§ўћў§ўў§ќћ§§ўўў§ўўў§ўўў§ўўћ§ўћ§ћћ§ѓћ§ўћ§ћ§ў§ћ§§ўўю§ўў§ўў§ўћ§ў§ћњћў§ўўњ§ћ§ў§ўўў§ўўќ§ў§ўў§ёћ§ћ§ћ§ћ§ћ§§ў§ўћћћўћ§§ўў§ћ§§ў§ўўј§ўћ§ўўћўўў§ўўєћ§§ў§ў§ў§ўћ§§ћўћ§ћўўјћ§§ў§§ћ§§ўћўўў§ўўў§ўўў§ўўќ§ў§ўўі§ў§§ћ§ћ§ћўўўћўўќћ§§ўўќ§ў§ўўі§ўћћљњћ§ћ§§ќћўў§§јћњњ§ћ§§ўўр§ўћ§ћўћ§ћ§ћ§§ћћўћ§ћў§ў§ў§§ћ§ћ§§ўў§§ў§њњш§њћ§§ћўћ§ћў§ћћњњ§§ў§§ћњћћўњћћќ§ћ§ўўѕ§ћў§ўћ§ћ§ћ§§ўў§ўўљ§ўћ§ћў§§ќў§ў§§ќћў§ўўї§ў§ўў§ћћњњћўљ§ћћњћћ§§ћћ§ћњћћї§ћћ§§ћ§§ўўўћњњјћ§§ў§ў§ўўќ§ўћўўќ§ўў§§љћў§ў§ў§§ўћ§§њћ§ћ§ћ§§њћ§§ў§ўўў§ћћњћ§ў§ўћ§§§ћ§ўўќ§ўў§§єћњњ§§ў§§ћ§§ўўюћ§ћўћ§ћ§§ћћ§ћ§ћ§ћ§§ќћ§ћўўў§ўўњћ§ћ§ћўўњ§ў§ўћўў§ўћў§ўў§§ћ§ћћўэ§ћ§ћћњћњ§ћ§ћ§ћ§ћў§ўўў§ўўў§ўўў§ў ў§ќњћ§ћћхњћћ§ћў§ўўћњњћ§ћ§ћњљћњћ§§ћ§ћћў§ўўў§ўўіћ§ћ§њ§ћ§§ўўћ§їњћњ§ћћњ§њњѕћњћњњћ§ћў§ўў№ћ§ћ§њћћ§ћ§ћ§ћ§§ўўљ§ўћў§§њњћњ§њњћ§ўўі§ћ§ћ§ћ§ћ§ћћљ§њњў§ћњњћћњ§ћўўќћ§ћўўш§ўў§ћ§ћ§ћ§ћ§ћ§њћћў§ўў§ћ§§ўќћ§§ўўљћ§ћ§ћљњњљћњњћ§ћ§§ўћўў§ыћ§ћћљљњ§§ў§§њћћ§ћ§ћ§ћћь§ўў§§ћ§ћ§ћњћ§§ћћ§ўњљљњўћњњўћњњљ§њ§ћ§§ўўщћ§ћўћћљњњћњћњњћћњћњ§ћ§ћћѕ§ћўћ§ћњћ§ћўў§ћћ§§ћњњѕћњћћ§ћ§ћњњћћн§ћњ§ў§ћњњћњћњ§ћ§ћћљњњћљњљ§ў§ћ§ћ§§ћњњѓ§ћ§ћў§§њћћ§ћўў§§ћўўўћ§§ќњ§ћ§§фў§ћњјљњљњњћ§ћ§ћ§ћ§ћ§ћўћ§ћ§§ўўўћ§§їћ§ћ§§ћћ§ћћх§ћћ§§ћ§ћ§ћ§ћ§ћ§ћў§ў§ў§§ћ§њћћў§ўў§ѕћў§§њћћў§ў§§јћ§ћ§ћ§ћ§§ўћњњћў§ћћ§љњљљќјћћўў§јћ§ћ§ћ§§ўўў§ўўя§ўў§ћў§ўћћњћњћњњћћњ§њћљњћћјњ§§ў§ўћ§§ћё§ўћњћћ§ўў§ўў§ћ§§ў§нћўћћњў§ў§§ћ§ћћњљљћњћћ§ћ§ћ§ћў§§ћў§§ўўћ§ўў§ћћў§чњћњ§§ў§§ћ§ўў§§ћ§ћ§ћ§ћ§ћ§њњћўљ§ћ§§ў§ўўч§ў§ћњ§ћ§§ў§ў§§ћ§§ўў§ћћњћ§§ўўћћњ§§ћўўћћ§ћћњњїћњњћ§ћ§ћўўњ§ўћў§ўўё§ўћ§ћў§ў§§ћ§њўћћф§ћ§ћ§ћ§§њњ§ћ§ћ§ћ§ћћњљљїїјљћњњўћњњћћ§§ћ§§ћћ§ћњћћ№§ћ§њўћ§ћ§ћў§§њћњњћњэћњ§ћ§њ§њљјїљћћ§ћ§њћћњњ§ћў§ўўўћ§§њњћ§§ўћўўѕћ§ћ§њћљћњћњњхћњ§ћћљљњў§њјњњ§ћ§ћў§ў§ў§ў§ўўјћ§ћ§ћ§ћ§§ўњ§§њћ§ћў§ўўљћўћ§ћћњњјћњјјљњћњњќћњ§ћћрњћ§ў§§ў§ў§ў§§ћ§ћў§ћњњ§§ћ§ўў§ў§§ћћќ§ўў§§ўїћ§ћў§§ћћљљњћї§ћ§ћ§ў§§ўўњћњћ§ћўўх§ћ§ћ§ўўћ§§ў§§ћ§ћ§ћ§ћў§ћљ§ћ§§јћ§ћћљћњћћ§§ћ§§ўрћў§ў§§њћњ§ћ§ћў§ўћ§ћ§ўўћћњћћ§ћ§ћ§§њњ§ћ§њћњњћѓў§§ћў§ўў§ћ§ћ§§§ћ§ћћћ§ћ§ћњњћўї§ћ§њћњљљњњћ§ўћњўі§ў§ў§ў§ў§ўўќ§ў§ўўј§ў§ў§ў§ў ўў§ў ўї§ў§ў§§ћ§ўўќ§ў§ўўљ§ў§ў§ў§§§ў§ўўў§ўў§§ў§§ћў§ў§ўў§їўћ§§ў§ў§ўўњ§ў§ў§ўўў§ўўќ§ў§ўўќ§ўћўў§§ў§§љў§ў§ў§ўўќ§ў§ў ўќ§ў§ў ўў§ўў§§ў§§ўў§§љў§ў§ў§ўў§єћў§ўў§§ў§§ћў ўў§ўўў§ўў§§ў§§§ў§ўўў§ўўў§ўўј§ўћ§§ў§ў)ўњ§ў§ў§ўўў§ўўћ§ў§§ў*ў§§ў§ўўј§ў§ў§ў§ўўўћ§§ ўј§ў§ў§§ў§§ўў§ўў§ќўћ§ўўњћ§§ў§ўўі§ўћ§§ўў§§ўўў§ћћѓњ§њћ§ўћћ§ў§ў§§§ў§ўўќ§ў§ўўњ§ў§ў§ўўф§ў§ў§ў§ў§ўћ§ћћњћћ§§ў§ў§ў§ў§ў ў§ўј§ў§ў§ў§ўў§ўћ§§ъњ§ћўў§§ў§ўћ§ћўћўћ§§ў§ўўў§ўў§ћ§ў§ўў§§ў§§ўј§ўћў§ў§ўўќћ§ћўўў§ўўњ§ў§ў§ўўњ§ў§ў§ўўњ§ў§ў§ў ўў§ўў§ ў§ћў§ў§ўўњ§ў§ў§ў ў§ўј§ў§ў§ў§ўўў§ўўї§ўћ§ћў§§ўў§§ў§§ўњ§ўћ§§ў ў§ћў§ў§ўўќ§ўћ§§ћњњћњћ§ўўќ§ўњўўў§ўўќ§ў§ўўў§ў ўў§ўўў§ўў§§ћ§ћћ§ў§ўўў§ўўќ§ў§ўўў§ўўќ§ў§ўўї§ў§ўћўћў§§њўћўњ§ўўў§ўўј§ў§ў§ў§ўўќ§ў§ўў§§ў§ў ўћ§ў§ў§§ѕћў§ўћћњ§§ў§§§ў§ўўњћ§ўў§ўўў§ўўю§ўћў§ўћў§ў§ў§ў§ў§ўўў§ўўќ§ў§ўў§ѕў§ў§ў§ў§ў§ўўў§ўўќ§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ўўњ§ў§ў§ў ўў§ў ўћ§ћў§ў§ўўі§ў§ў§§ўў§ўўў§ўўў§ўўў§ўўў§ўўњ§ў§ў§ўўђ§ў§ўћћњ§§ў§ў§ўўў§ўў§ў№§ў§§ћў§ўћ§ћў§ў§ўўў§ўў§ћў§ў§ўўў§ўўў§ўўќ§ў§ў ўљ§ўћў§§ўўђ§ўћ§ћў§ў§ў§ўў§§ўј§ў§ў§ў§ўў§§ў§ўўќ§ў§ўўю§ў§ў§ў§ў§ў§ў§ў§ў§ўўў§ўў§ўњ§ў§ў§ўў§ћў§ў§ўўљ§ў§ў§ў§§ўќ§ў§ўўў§ўўў§ўўє§ў§ў§ў§ў§ў§ўўќ§ў§ўўў§ўўќћў§ўўњ§ў§ў§ўў№§ў§ўћ§ћ§§ў§ў§ў§ўўђ§ў§ў§ўћ§ћ§ћў§ўў§њў§ў§§ћћљўћў§ў§ў ўј§ў§ў§ў§ўў§ћћ§§ў§§ћ§јћў§ў§ў§ўўђ§ў§§ўў§ў§ў§ў§ў ў§ќў§ў§§§ў§ўўѓ§ў§ў§ў§ў§ўћў§§ќў§ў§§ћўћ§§ўўў§ўўђ§ў§ў§ў§ў§ўў§ћўўј§ў§ў§ў§ўў§ўћ§ў§§ћћѓ§ћ§§ў§ў§ў§ўћўўі§ў§ў§ўћў§ўў§єћў§ў§ў§ўћ§§ўўі§ў§ў§ў§ў§ўўѕ§ў§ћћўћ§ћ§ћћўў§§§ў§ўўў§ўўћ№њў§§ћўћ§ћ§ћ§§ў§ўўў§ўў§§ў§§ўл§ў§ўћ§ћ§ћ§ћў§ў§ў§§ћ§ћўћ§§ў§ў§ў§§ћ§§ў§§№ћњ§ћўћћ§ў§ў§ў§ўћћ§§ў§ўў§ќћ§§ўўў§ўў§ѓў§ўћ§њўћўћ§§ўўќ§ў§ўўќ§ў§ўўњ§ў§ў§ўўјћў§ў§ў§ўў§§ў§§љў§ў§ў§ўўі§ў§§ћ§ћў§ўўў§ўў§ўњ§ў§ў§ўўф§ў§ў§ўћ§§ў§ўў§§ў§ўћ§ћћњ§њ§ћўўј§ў§ў§ў§ў ўў§ўўя§ћ§§ўћ§ћў§§ћў§ўў§§ў§іћў§ўћ§ћў§ўўњ§ў§ў§ўўў§ўўў§ўўї§ў§ўћ§ћћ§§љў§ў§ў§ўўў§ўўў§ў ў§ў§ќћ§§ўўќ§ў§ўў№§ў§ў§ў§ў§ў§§ћ§ћўўќ§ў§ў ўљћ§§ў§§ўўќ§ў§ўў§ћў§ў§ўў§ўї§ў§§њћћў§§§ў§ў ўў§ў ўы§ў§§ўўћў§ў§ў§ў§ўћ§§ў§§ѓў§ўћ§ћњјћј§ћ§§§ћў§§цћў§ў§ў§ў§ў§ў§§ћў§ў§§ўў§ў§ўў§яћ§§ћћ§ћ§§ў§§ћ§ўў§§№љўљћћў§ў§§ћўў§§ўўћ§ў§ў§§ўў§§ў§ћ§ћћ§§ўћћ§јњ§њ§§ў§ўў№§ў§ў§ў§ў§ў§ў§ў§ў ў§ўћ§§љўњћћ§ћ§§ўћ§§ўћ§§§ў§ўўќ§ў§ўў§ћў§ў§ўў§ћў§ў§ўў§ўў§ўў§§ўћћњ§њћћў§§ћў§ў§ўў§ўў§ўўў§ўўў§ўўј§ў§ў§ў§ўўћї§ў§ў§ўў§ћћћ§ћ§ћўўќ§ў§ўў§њћ§§ў§ўўќ§ў§ўў§§ў§§ђў§ў§ў§ў§ў§ўњў§§ўћ§§ќњ§ћўўў§ўўё§ў§ў§ў§ў§ўћў§ў§§ќћ§ћўў§§ў§§ѓћњўњўњ§ћў§ўћ§ €§њћ§љћ§§ђћљћњ§§њћћљњћљ§§їњ§њћњїљјљљє§љњњ§ћћ§§њ§ўўќћўћўўђ§ћјјњњјјљљјљћ§§ќњ§ћўўќњ§њ§§ўњ§§јљ§§ў§§њћћјљћћ§§њ§њњ§§ћўў§ў§ў§§ў§§њ§ѓљћљјљњ§§ћјјћ§§њ§ўњ§§ћњўўћў ўњћўњјљ§§зћњ§§љљ§§њ§§ўўњљљћ§§ў§ћљєјјљјјљїњљѕљјїјљњўў§ћњ§њњ§§ўў§тўћ§ћћњ§§ћћљћјјњ§њ§ћњїљњћ§ўў§§ћћїљ§њ§§ћћ§ўўя§ћњњћ§љћњњћњ§њ§њ§§іљћњћћњ§њ§ћћћ§њћјїїјјѕїјјњћ§§ќћљњўўъћњњћљћ§ћљћљћћ§њњ§§ћјњћћў§ўў§ћљњњљћћўљћћ§њ§ў ўўћўўќћ§§ћћќљћјћћ §§ћњўўўњ§§ўћ§ѕњ§ўћўћўўћћўўўїўўћ§јњ§ћјћњ§ўў§јњљћњјћћљљўњ§§ўњћўўћћ§§ўўћўўњѕјћљњ§§ќњ§§ўўўјўў§ќћ§њ§§ў§ўћ§§ћћўўћўўўћўў§ўўћўў§§њ§ўўњњўњ§ўћћёў§њњ§њћћљљњ§§ў§§ўћћўћћўў§ћњћћљў§њњў§љљќјєљћћќљћљћћїјїѕѕєѕљњћћјњњћћ§ћўўћћўћў§§ўћ§јњ§§ћљљћ§§ћўњјјїѕюїљїјњљљњћћљњјњћћњўўњњ§ўћ§ўўўћ§§ќњ§§ўўі§ћћ§њ§њ§§ћћ§яљњњјњјњњјјљћ§ћўў§§ўњўўњ§ћћљ§ўўљўћ§§њњ§ўўњ§§њћњњћњ§§њђ§ў§§њ§ћћјјљћњў ў§ќњ§ћўў§ўѕљњњћ§ўў§§ћ§ §ўњўў§ќљћњўўўћўў§љѓћњјњјћ§§њ§§њћћюљ§љљѕљћљјљњ§ўўћћњ§§ўўћўўў§ўў§ћљћћћњ§§њ§§ћ§їў§§љјїїћ§§ўѓ§ћћљј§ўў§њњћўўћћўўћўўќњћљ§§њўћћ§§ћћњљ§ћўў§§юљјїїњјљљ§§ўўњ§љ§§њњўћўўїћўњўў§њ§ўўї§ћљ§§ўўћ§§ћў§њ§ўў§ўњ§§ўњћћјљ§§ћўўњўўљњћўўћћў ўў§ўўњ§њ§§њ§§њњљњњў§§ўњ§љњњћ§§§љ§ўў§ўњњ§њ§§ўўўћўўў§ўў§ћя§ўў§ћљ§§ўњ§ўћњ§§ўўўћўўўћўў§ќљњћў ў§ћљ§§ёў§§љњјљј§њ§љљћ§§ўўњћћїњћљљ§њўћўўўћўў§ћ§хњћ§ўў§§љћјјћљ§ўў§њћљћњјјћ§њњѕљњњ§ћ§§ўћћўўыћўћўў§љјљћњћћјљљћѕјњћћ§ќљћ§ўўћњ§§њўў§њѓљ§§ћ§§ћ§§љ§§њњўљўўќћўў§§јљћљљћљћ§§њќј§њ§§њ§љ§ўў§њўўћўўў§ўўќ§њњ§§ў§§њћћ§љћ§§ ўэ§ћў§§њ§§ўў§§ћ§§љјљћћњјњћћ§ўў§њўћ§ўћўў§ћћ§§њ§§њљћїњјћћ§ѓњљљ§§ўўњњўћћўўїћ§§њјљњћўўўћўў§њћ§§њ§ўўјћўўњњ§§ўў§§њ§§љњћўўћћўўўћўўўћўў§ў§ўќ§њ§ўў§њ§§ў§§јњ§љ§ћћў§§ћўўћўўўћў ўїњ§ћћ§§ўў§§њў§ўљћћњљћњћћўў§ўўћў ўѓ§њњ§§њ§њњћљљ§§ѓћљћљ§§њњ§§ўў§§љљћњўўћўўћ§ўћў ўјћўў§њ§њ§§єћњјїјѕњљљ§ћўўќ§њјћћўћ ўўћўў№§ћћ§њљћћјѕїѕїњљ§§ћўћўњўў§§ћ§ўўўњў ўњ ўј§њћћњњћњњњћљњ§§ћћ§ўњ§§іњћњњў§љћ§ў ўўћўўћўўћўўћ§њ§њ§§ў§ўњ§§ўћњ§§њўўўћўўіїњљ§ўўћў§ћћў§ћћў§њ§ўўўћў ўћћўўћўў§§ўћўўћўћјјљћ§§ћњ§§§ћ§ўўїћ§ћљћљ§ћўўіћї§ўўћњўћўўњјњљњјћћ§љћњњўћіњћљјћњўћ§ў"ўћ§ўљћћ№§ћћњ§§љјљћ§§њ§§ўўўћўўўћўўѓњ§§ћћњїїћљ§ў§§ўњ§§ќњ§§ў ўўћўўўћў ўђњў§јњјњљћљћћњ§§љњ§љћ§§ўўќћўњўўўћўў§ўўћ§§ђњ§§њњ§њњ§ўћ§њ§§ўњўўўњўў§§њ§ўўћћњћњўў§љњ§§љўћўўќ§ўћўўўћўўўњ§§ќњ§њћћљћћљћ§ўўўћўўћ#ў§ћў§§їћњњ§ўњњ§њњўњў§ў ўљњўўћљљћћѕљјјљњ§њ§њ§ўўћћўўћўўў§ўўњўўњљљўњўўўћўўўњћћјўљћћ§ ўўњўўўћўўўћў ўўћўўљњ§ћўўћўўќљїљ§§§ћ§ўўўћўўўћў ўўћўў§ўќћ§ў§ћ§цњћњћњ§ћ§ћ§њћњ§ћ§§ћњћ§ћћ§ћ§§ѕњљљјњћћў§ў§§ќњћћ§§ўћ§ўў§њњљљњњјјњћћћ§ћ§ћўў§§ў§§љћ§ћ§ћ§ћћ§§ў§§њњћњћњћћ§ўѓ§ћ§ўў§§ћ§ћ§ћўўіћўћ§ћ§ћ§ћ§§ћћњћњћ§§њћ§§ћ§§ўћ§§љћ§ћ§ћ§ўўў§ўўў§ўўў§ћћњ§ћћ§§ћћї§ћ§ћ§§ў§ћћ§рњћћњњћњњјћљћ§ћњљњћ§ў§ў§§ћ§ћ§њћћ§§ыћў§ўћ§§ўћћњ§ћ§њњћћњњ§§њрљјљћ§ўў§ћћњћњћћ§ћ§њћћў§ў§ўў§њљљћћњ§љћ§§ьћ§ћћљћњ§ћ§ћћњћњ§§њњљљюїјљњњљњ§ћ§ћ§њћ§ў§ўўў§ўў№§њљљњћњ§њћњћњћћ§§ћћњњљњњяћў§ўћ§ћ§ћ§§ћњћњћњњ§ўў§ў ўѓ§ћћњњћћ§ћњњљћћѓ§ћ§ћ§ћ§ћ§њ§§ўўј§ћћ§§ў§ўўўћ§§ўќ§ў§ўўѓћњ§ћ§§ћњ§њ§ћўўђћ§ћ§ћ§ћ§ћћљњњћћѕ§ћ§ћ§ћў§ў§ўўљћ§ћ§ћ§ўўь§ўўњњћћ§ћ§ћ§ћ§ћћ§ў§ўўљ§ўћ§ћ§ћћ§ћ§ўњћ§ћ§њ§§ўћўўђ§ў§ў§ў§§ћ§ћ§§ўўћ§ћ§ћўў§ў§ќћ§њћћ§іћўћ§ћ§ћ§§ўўў§ўўўљњњћ§ўћ§§ћўњћћѕњћћњћћњћњљјјњўћњњљљњћћў§ўўў§ўў§ћўњ§ћњњћ§§њћњћћњ§§ћќњћљњњљјэљјљњњјјљћњћљњљћњ§§ўў§ўўћўўю§ў§ћћ§ћ§§ћћў§ўћћњ§§ўћњњѓћ§ћљљњљњљљњњћћјў§ўћ§ћ§ўўіћњњћћў§ў§ўўў§ћћ§§ћ§§ёў§§ћ§ћ§њ§§њ§§ћ§§ќћўћ§§њћў§ўўј§ў§ў§ўћ§§ўћўўћ§ћ§ћўўщћљљњ§§ўћ§њ§ћ§ћ§ћ§ћ§ћ§§ўў§ћњњ§§ў§ў ўў§ўўў§ўўєћ§ўћњљњљњћћ§§ћћ§њћњњћє§ћћ§ћњћњћ§§ўў§ћћ§ћ§ўўњ§ћ§ў§ўўљ§ћћњњћњњц§ћћ§§ћ§ћ§ћ§ћњњћћ§ў§ћћњљљњћћёў§ўћњњћњ§§ўћ§§ўўњ§ў§ў§ўўі§ўўњњћћ§ћўўъћ§њћњћћў§ўћ§ћ§ћћњљњљњћћўћ§ћўћ§§ўќ§ў§ўўя§ў§ўћ§ћў§ўў§њћћ§ўўћ§ћ§ў§§юў§§ћ§ћ§ћ§њћњћћ§ћў§§ћў§ў§ўўи§ўћћ§ўўћ§§ћ§ћ§ћ§ћ§ў§§ўћ§ћћўўћћљљњ§ћ§ў§§ўўњћ§ћ§ћўўј§ћ§§ћў§ў ўэ§ўў§§ў§ў§§ћћњ§ўўћњћћѕў§ћўў§§ћў§ўўћћ§ў§ў ўћњћ§ћ§§ћљљњћ§ћ§ћћѕ§ћ§§ў§њњћ§ћћ§ўќ§ў§ўўў§ўўў§ўўр§ћ§ћћњћћ§§њћў§§ћћњ§њњћ§§ўћ§њћњљњњ§ўћ§§ќњћћўўђ§ў§ћњљћњњћћњ§њњэћњ§ћћњ§§ўў§ћћ§ў§ўћ§§їў§ћњћ§ў§ћћ§ ўїћ§ћ§ћ§ћ§ћћњњћњ§ћ§§ўћ§§љў§§ў§§ћћ§§ў§ўўў§ўўњ§ў§ў§ўўљ§ўў§§ў§§ќћ§ћўў§њїћњћњ§ћ§ћўўў§ў ўў§ў ўыћў§§ћ§ћ§§ў§§њ§ћў§ћњћњњіљњњ§§ў§ўћ§§ўў§§ўј§ў§ў§ў§ўўћ§ћњћ§§эћ§ћ§ћњњљњћњћћ§ћ§ћ§ћћќ§ўў§§ўњ§ў§ўћ§§ўў§ћћ§ў§єћў§ўћ§ћ§ћ§ћўўњ§ўў§ћўўј§ў§§ћўў§§ў§ћ§їћўћ§ћ§ћ§ћћўњћ§ћ§§ўўў§ўўў§ўўќ§ў§ўўў§ўў§іњћћ§ўўћ§ћ§§ўјћ§ћњњћњћћў§ўўў§ўўќћ§ћўўўћ§§љћ§ћ§§њћћў§ћћ§іћў§§ћ§ўњ§ўўў§ўў§љћ§ћ§ћ§њњѕћњњљћћ§ўў§ўўј§ў§§љњњў ўў§ўўі§њћћ§ћћњњљљћў§ћћўў§ўў§ћўў§ўў§ў§§ў§§њћњљљћљљћќ§ћ§њњы§ћ§ћ§ћ§§њ§§ў§ћњћў§ў§ўўў§ўўў§ўўў§ўўў§ў ў§њћ§ўўћ§§ќћ§§ўў§ћў§ў ўў§ўўў§ўўќ§ў§ўўњ§ў§ћћўўљ§њћњћћўў§њћў§ў§ўўќ§ў§ў ўє§ў§ўћћ§ў§ў§ўўљ§ў§ћњ§ћћњ§ў§ћ§ћћўї§њћњћћў§ўўњ§ўў§§ўўў§ўўѕњљћљњњћњћњ§§ўі§ћћњњ§§ўћў ўў§ў ўў§ўўє§ў§ўў§ћћњћњћћіњ§ћ§ћ§ћњћ§§ќћў§ўўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўўў§ўўю§ў§§ћњњљљћњћћўћ§ћ§§ђћ§ћ§ћ§ўў§ў§ў§ўўў§ў ў§єљњљћњћњњ§§ћ§§ћњ§ўў§ў§§ўў§ўўќ§ў§ўў§ђћў§ў§ў§ћћ§ћ§ћ§§ўћ§§ўјћ§ћ§ћ§§ўўў§ўўќ§ў§ўў§ўћўўјњљњ§ўў§ўў§ўћ§§ќћў§ўўў§ўўќ§ўћўўў§ўўў§ўўї§ў§§ћ§ћћ§§ћћњћњћћ§њћўўў§ўўњ§ў§ў§ўўњћ§ћ§њ§§ўў§§ўў§ўўњ§ў§ў§ў ў§ўћўўў§ўўў§ўў§ўь§њћћњћњћњњћ§ћ§ћ§ћў§ўўў§ўў§ўќ§ў§ћћў§ўўў§ўўљ§ўўљњћњњћњќћ§§ўўў§ў ўў§ўў§ќћў§ўўь§ћњћћ§ћ§ћ§њ§ўў§ў§ў§ўўќ§ў§ўўў§ў ўќ§ў§ўўќћ§§ўў§ћўћўё§ў§§ћ§ћ§§ў§ў§ў§§цў§ўћ§§ўћ§§ў§ў§ў§ўњ§ћ§ћў§ў§§њћў§ў§ў ў§ќћўњћћњљ§ћў§ў§ўўё§ў§ў§ў§ў§ўћў§ў§§§ўћ§§ўћўўњ§ў§ў§ўўќ§ў§ўўњ§ў§ў§ўўє§ў§ў§ў§ў§ўў§§ўћ§§эўћўћў§ў§ў§ў§ў§ў§ў§ўўѕ§ў§ў§ўћў§ў§§ћў§ў§ўў§ћћў§ў§§яўћћ§ўћ§ћћ§ўћћњў§ўўј§ў§ў§§ћўўў§ўўў§ўўћћ§ўў§§тћўћў§ў§§њ§њћћ§ўў§ўћ§ћ§ћў§ў§§ћўў§ћ№ўћ§њўћў§ў§ў§ў§§ћћ§єў§ўћ§ћ§§ў§ћњњєћљ§ћўћ§§ў§ў§§ ўќ§ћћ§§ђћ§ћўћў§ў§ў§ўћ§§ўє§ў§§ўўћ§ћ§ћ§§ўќ§ўћ§§ќћ§ћ§§ўї§ў§ў§ў§ў§§ўў§ўўќ§ў§ўўјћ§§ў§ўў§§ўї§ў§ў§ў§ўћћѕ§ћўћ§ўў§ў§ўўњ§ў§ў§ў ўєњўћ§ўў§ў§ў§ў ўі§ў§ўћўў§§ўўў§ўў§§ў§§ўњ§ў§ў§ўўќ§ў§ўўў§ўўє§ў§ў§§ћў§ў§ўўњ§ў§ў§ўўўћ§§ўћ§ў§ў§§уўћ§ћ§ћў§§ћ§ћћњћљћљ§њ§ћ§ћўћ§ћў ўў§ўўѕћ§§ў§ў§ў§ў§§њўћ§ћўћћёњ§љћњ§њћњ§њћћ§ћћ§ўў§ў ўњћў§ў§ўўїћ§§ў§ў§ў§§њў§§ћўћћ§§ћўўќ§ў§ўў§ ўіћ§ћў§ў§ў§ўўћ§ў§ў§§їў§ў§ў§ў§ўў§§ў§§ћ§§ћў ў§ўќ§ў§ўўњћўћ§§ўў§ѕў§ў§ў§ў§ў§ўўњ§ўћ§§ўўћ§ўћ§ћћїў§ў§ўў§ћ§§ўћ§§§ћў§§ћў§ў§ўўњ§ў§ў§ўўўћ§§ўћ§§ўъ§ў§ў§ў§ў§§ћў§ў§ўћўњ§§ўў§§ў§ўўњњ§ћў§ўў§ќћ§ћўўє§ў§ўћўњўћў§ўўі§ў§ў§ў§ў§ўў§ќћў§ўўј§ў§ў§ў§ўўў§ўўі§ў§§ћ§ћ§§ўўў§ўўј§ў§ў§ў§ўўў§ўўў§ўўі§ўћ§§ў§ў§ўўќ§ў§ўўў§ўўў§ўўњ§ўћ§§ўў§ў§ўќ§ў§ў ў§ыў§ў§ўћўњ§§ў§ўћўћў§ў§ўў§јћўћ§§ў§ўўє§ў§ўћ§ћў§ў§ўўљ§ўћ§§ў§§ў§њћўћ§§ўў§ў§ў§§ў§§ћ§§ћ§§јўњўћ§§ў§§ўў§ўў№§ў§ў§ў§ў§ў§ў§ў§ў ўэ§ў§ў§ў§§ћ§ћ§ћ§§ў§ў§§ќў§ў§§§ў§ўўќ§ў§ўўў§ўў§§ў§§§ў§ўўљ§ў§§ћў§§§ў§ў#ўј§ў§ў§ўў§§ўћ§ћ§ћ§§ћ§ўќ§ў§ўўё§ў§ў§ў§ў§ў§ў§ўћћј§ћў§ў§ў§§§ў§ўўў§ў ўњ§ў§ў§ў ўј§ўћў§ў§ўўќ§ў§ўўњ§ў§ў§ў#ўў§ўўў§ўўќ§ў§ўўў§ўўј§ў§ў§ўћўўћ§ў§§ўў§ќћў§ўўњ§ў§ў§ўў§њћ§ћ§ћў ўў§ўўї§ў§ў§ў§ў§§јў§ўћ§ћ§ўўў§ўўњ§ў§ў§ўўъ§ў§ў§ў§ў§ў§§њўћўњћћ§§ўўћ§ћћ§ўў§№ћў§§ћ§њ§њ§њћћў§ў ўќ§ўћўўў§ў ўћ§ўћ§ћћ§ўў§§ўї§ў§ў§ў§ў§§"ўј§ў§ў§ў§ўўњ§ў§ў§ў-ўўћўў§ќћ§ћўўў§ў'ўўћ§§іћў§ў§ў§ўћўў§ўў§ў ўћї§ћ§ћ§§ў§ўўќћўћў)ўѓ§ў§§ћ§ћўћ§§ў§§ћў§ў§ў)ўі§ў§§ћ§ћ§ћўўє§ў§ў§ў§ў§ў§ў(ў§эћњћ§§ћ§§ў§ў§ў§§ћў§ўўў§ўўў§ўўђћў§ў§ў§ў§ў§ў§ўўњ§ў§ў§ў)ў§ўћ§ћ§§ўўњ§ў§ў§ў'ўќ§ў§ўўє§ўћ§ћ§§ўћ§§ў/ў§§ў§§ќў§ў§§ўў§ўўљ§ўћ§ћ§ћћў§ўўў§ў ўў§ўўќ§ў§ўўђћ§ћ§§ўћ§ћ§§ў§ў1ўїћў§ў§ў§ў§§,ўў§ўў €ўћќўћћўўњћўўћћўўўћўўўћўўќћўћўўўњўўўњ§§ўў§ўўўћўўќћўћўўќћ§њ§§ћўњўњќћўћўўћ§ўњўўќ§њњ§§§љћў ўћў§§њћћўњ§§ўќћўћўў§ћњ§§ў§ўўћўўўћўўњћўўћў§§ћњ§њ§ўўѓћўў§љљјљ§ўћћўўўњўў§§ћўўўћўўњўєћўћ§њћ§ћњ§њўўћўіћўўњ§ћ§ўћўў§§ћўўўћўўі§љ§§ћћљћ§ўўўћўўјћњ§ћўњњўўє§њћўћў§§њ§§ўўњљ§њ§ўўћўўћўўћўўћўўњўў§ў§ўў§ўў§јњ§њјјћ§ўўћўў§ўўќљї§ўўќћўћўўїњ§§ў§њ§§ўўћ ўўћў ў§ўљўў§ќўћћў ў§ ў§ўњўўќ§ћў§§љў§љћ§§ўўюћў§§ўћўњ§§ћў§§ўўћўўћћўўћўўўћўўўћў ўљћўљўћћўўљћўўњњљўў§ў§ўњўўћћўўћўўўћўў§ўўћўў§§ћўў§ќњ§§ўўљ§ўћћўћўўіњћћљћћ§§љў ў§ў§ўњљњћ§§ўў§ћљў§ћ§§ ўўћўўќ§љћ§§ўњћњў§§ўўўћўў§ўњў ўў§ўўћўњ§ћљћ§ў ў§ўўћўўўћўў§ў§њћ§ўћћўў§ћњ§њљ§§њўћўќљ§њўўњ§§ћўўї§љћљћћјјћћ§јњ§§ћљњ§§ўўўћў ўўћўўћћўўћўўў§ўўўћўўњ§ў§ў§ўўћўўћўљ§љ§ўњ§ўў§ћњ§ћљ§§§њјўў§ўљћўћўўћўўјћўўћўўњўўѕћўў§ћјљљ§њўўљ§ўўћўћўўўћўўїњјљћњћўћ§§ў§њћљћ§ћўўўћўўћњўћњўўўћўўљћў§ўўћўўі§ћљ§§ћўўћўўјћўўћўћ§ўўћ§ўћћўўў§ўўќћўўћћ§ўћўўћ§њ§њћћ§§њћњњўўћўўћў§ќїљћўўў§ўўљљњ§§ўћўўљћњ§§њў§§ћћљћљў ўќћўў§§ ўћћўћћўўўћўўњќј§§ўўѕ§љјјћћ§њўћўўњ§ўўћћўўўћўўўћўўўћўўўћўўёћўў§њ§њњљљ§§њ§њњ§ўњўўќ§љ§ўўўћўўч§њћљљћ§њ§ћјјїћљ§§ў§њўўћћўўўњ§§љљћљљ§ўћўў§ћў§§ўњћўў§ї§§їћў§ўћўў§њњўўћў ўќ§њњ§§ў§§њўўўћўўўћўўњ§њњўћўўў§ўўўњў ўќњ§ћўўќћўћўўўћўўњћўў§§ўўєћљњ§њћ§њћћљў ўіћўћњўў§ўћўўћ ўё§љћ§њћ§њ§ў§§њњўў§љњ§ћћљћўўўћўўњў§ћћќњўћўў§њњљњ§§ћћјћўљћћ§ћ§јћўўўћўў§ўћўў§ў§ўњћўњљј§§№ћ§§ў§§њ§§љљњљљїњњњјљћљњ§§ћ ўќћўћў ўјћўўћњ§њ§§ўњўќњ§њ§§ћјјћљћћ§њ§§ўј§ўћўћўћўў§їћ§§јљљ§њћћњјїњћ§§њћўў§§§њ§ў ў§ћћўў§ћћхљњњ§§ћљћћљњњў§§ћјњјљѕїјјћћ§§ћњ§ўћў ўћ§ўћўў§єўћўњ§§њ§§њў§§љњ§§ўўњћћљљћћ§њњ§§эћљћ§§ћћњћљјњўўћўўћ§§ёљћћ§§ўћўњњћћ§§ўў§ў§ћњ§њўћўћћў§§њ§§ќљњјўўћў §ўњћћјљћљћћњњјјћћљњњћћћјљ§њ§§ўњ§§ў§ўјњ§§ўўњњўўєњ§ћўћ§њњ§њњ§§ќљћљћћћљјћљ§§ћћ§ўўњ§§§ўћўўїњ§§јј§§ћўўќ§ўћ§§ў§ўњћўћўўњњћћўўћ§§ћ§єњ§ћњњјљўўћћўўўћўўўњ§§ўў§§ўђ§ћјѕјњњљљњћћљћћћ§њў§ћћјјњњћњјљћћњ№љ§љљј§ћљўћўў§§љћћќ§ўћ§§ўњ§§ќћ§§њњєћњњјћљјљљћћ§§їћљ§§ўћљљ§§ўњ§§ўњ§§ћў§њњ§љ§ў§§ўњ§§ћўћ§§ћћ§ўњ§§ўє§њ§ўўћўўњљїћћјњ§њ§§њ§ўў§љћўњ§§њ§§ў§ќљћљ§§ўш§љљ§§ћјјћљћћљїњїћ§§њњ§§ўў§ўќњ§ў§§ўў§ћћ§њљћјљ§ўў§§љјћћљћђљјљћ§§љћљјљћћ§§њћ§ћ§љ§§њўђ§ћћ§љљћћ§§ў§§ћћ§§њљљћќ§ўћўў§ќњўў§§їћјћ§ўћћ§ўў§ў§љњ§њ§ўћў ў§ў§ўњ§§њ§ўщњјљјљљћ§ўў§ћў§јњљћѕјњћїїћњјљћ§§ћ§ћїђњў§њћћљљјљљ§§ўў§њњўњћљ§§іњћћ§§ћљћћњњјћљћјљ§§яћњћћњїјњїњћ§њ§§њ§§њ§ўї§ћћ§ў§§ћўўќ§ћљ§§ў§ўўў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўў§ўўў§ўўњ§ћћ§§ўў§ ўў§ўўќ§ў§ўўў§ўўў§ўўќ§ўў§§ћћ§ћ§ўў§њў§ў§§ўўі§ў§ўў§ћ§§ўўќћ§§ћћўў§ўўќ§ў§ўў§єћњћњ§ћ§ћ§ћ§ўўю§ўў§ћ§ћўў§ћў§ў§ў§ўўі§ў§ў§ў§ў§ўўј§ўў§ћ§ћ§§њў§ў§ўћћћњћ§§ўўў§ў ўў§ўўќ§ў§ўўўћўўў§ўў§§ў§§§ў§ўўў§ўў§ќўћў§§§ў§ўўў§ўўў§ўўў§ўўш§ў§ў§ў§§њћ§ў§ў§ў§ўћў§ў§ўўћ§§њћћўў§ўўї§ў§ўў§ћў§§ ўќ§ў§ўўў§ўўќ§ћ§ўў§њћ§ћ§§ўў§§ў§§ќћ§ћўўў§ў ўќ§ў§ўўў§ўўњ§ўћ§ћўў§§ћўў§љў§ў§ўћ§§њќћў§ўўј§ўћў§ў§ўў§§ў§ўўў§ўўњ§ў§§ћ§§ўћў ўў§ўўў§ўўљ§ў§§ћ§ўўњћ§ћ§ћўўќ§ў§ўў§ўћўўњ§ўћћ§ўўњћўў§ћ§§єћњћ§ўў§ўў§ћўў§њћў§§ћў ўў§ўўў§ў ўј§ў§ў§ў§ўўў§ўў§ў§§ћ§ўўѕ§ћ§§ў§ў§ў§ўўў§ўўіћ§§ў§ў§ў§ўўя§ўћў§ў§§ћ§ћ§ўў§ў§§ўђ§ў§§њњћњњ§ћў§ўўў§ўўм§ў§ў§§ћў§§ћў§ћљњћ§§ў§§ћў§§њ§ћ§§ў§ў§ўўў§ўўћ§ў§§ћћ§§ћўўў§ўўќ§ћћўўќ§ў§ўўѕ§ћ§ўў§ў§ў§ўў§ћў§ў§ўўћћњћў§ўўљ§ў§§ћ§ўўў§ўў№§ў§ў§ў§ћћў§§ћњћўўј§ў§§ћ§ћ§§ћўћ§ћ§§ўў§ўў§ћ§ўўў§ўўќ§ў§ўў§ѕћў§ў§ўћћњћњњщћњњ§§ћ§ћћ§§ћў§ў§ў§ў§ў§ўўў§ўўў§ўўў§ўўў§ўўўћўўќ§ўў§§ќћў§ўўќћ§ћўўќ§ў§ў ўњћ§ћў§ў ўќ§ўў§§ќў§ћўўљ§ўў§ћ§ћћї§ћ§ћ§ћў§ўўќћ§§ўўў§ўўў§ўў§§ў§ўўў§ўўњ§ў§ў§ўў§њћ§їў§ўћў§ў§ўўќ§ў§ўўў§ўўј§ў§§ћњ§ўўњћ§ћ§§ўўљћ§њћњћўўў§ўўў§ў ўўћўў§§ўћћ§§ћў ўўћўўўћўўќ§ў§ў ўћ§ў§ў§§ўќ§ў§ўўѓћ§ћ§њћњћћ§§ћ§§ўў§ўўў§ўўќћ§ћўўњћў§ў§ўў§ўћўўќ§ў§ўў§љћ§ў§ћ§ћћў§ўўў§ўўј§ўћ§ћ§§ў ўќ§ў§ўў§јћ§§ўў§ћњњ§ћ§ўўќ§ўћўўњ§ў§ў§ўўў§ўўў§ўўў§ўўђ§ўћ§ћ§§ћћ§ћ§ћ§§јћ§ћ§ћ§§ўў§ўў§ўўј§ў§ў§§њћћј§ћћњњћњћћћўћ§§ўўў§ўўќ§ў§ўўў§ўў§іћ§ћћњћћ§§ўўў§ўўёћ§ћў§ў§ўћўћ§ћў§§ўўћ§§§ў§ўўў§ўўќ§ўў§§њћ§ћ§ћўўќћ§§ўўў§ўў§§ў§§§ў§ўўњћў§ў§ўўў§ўўў§ўўћ§ў§§ўўў§ўўђ§ў§ў§ў§ўћ§§ў§ўў§љўћ§њћћўўў§ўўќ§ўћўўћіњ§§ўћ§ћўћ§§ќў§ўћћѕ§ћћњћњў§ў§ўўє§ў§ў§ў§ў§§ћњњўў§ўўѕћ§§ў§§ћћњћњњђћњћњћњћњћњћћ§њњ§§њўў§№ћ§ўў§ўћ§§ў§§ћ§§ўўє§ћ§§ћ§њћ§ўћ§§ћњњјјљњљљўњћћљ§ћ§ћћњў ўў§ўўў§ўў§ќћ§ћўў§єў§§ћ§ћ§ћ§ћћњњїћњћћ§ћ§ћўў§ўў§ўўј§ћ§ћ§ћ§ћћ§ћћў§§њњљњїљћћ§§ў§ўћћ§ўќ§ў§ўўић§ћ§ўў§§њћњћ§§ћ§њћњњћ§§ўћћњњљњјњљњ§ћњ§ћ§§§ў§ўўў§ўўў§ўўњ§ўў§ћўўі§ўћ§§ў§§ћ§§ўћ§§ќћ§ћ§§єћў§§њћњћњћћ§§яћ§ћћњћњ§ћћњ§њћ§§ўўѕћ§ћћњћћ§§ў§§№ћњ§ћў§ўў§ћ§§ў§§њњћћ§ўў§ўўў§ўў§іћ§ћ§ћ§ћљњўў§§ўћћѕ§ћ§ћ§ћ§§ћњћћњўљњњ№ћљљћњћњћћ§ћ§ћ§ћ§§ќћ§ћўўїћ§§ў§§ћў§§ў§ўћўўўћ§§јћ§ћ§ћ§ћ§§ћњњћњћњћћя§ћ§ћњњ§§ў§§ћ§§ў§ўўј§ћ§ћ§ћ§ўўђ§ў§ћ§ўћ§ћў§§ћўўў§ўў§чў§ўў§ћ§ћ§ћћњњћ§ћ§ћћљљњћ§ўўў§ўў№§ў§§ћ§ћўћ§ћ§§ўћњњљћъљњњћњњћћ§ў§њћњњљњњ§§ћњњљћў§ћћў§ћіњћњњћўў§ћ§§њћ§њ§ћ§§јњљљњњћњћћіњ§ћ§њћћ§§ўўќћ§ћ§§ўћ§§шћ§ћћњў§ўћ§ћ§ћ§§ўћўћ§ћ§ћ§§єћ§§ўћ§њћњ§ћ§§ћћ§§ў§§ўў§ўўћ§ћ§ћ§§ўєћ§ўў§§ћ§ћ§ћўў§іћњћ§ћ§ћ§ћўў§ћў§њњћјњћњљњћћ§§ьћ§§ў§ў§§ћ§ћў§§ћўћ§ћўўљ§ў§ўћћњњя§ћћњњћ§§ў§§ћ§ћ§ћњњўћњњћњяћњћњ§ћћњћ§ћњћћ§ћ§§ђћњћўћ§ћ§§ў§ћњћћњњ§ћўћћњњ§ћ§ћћќњ§§ўўђћ§§ў§§ћ§ћћњћћўўўћўўіћ§ћ§ћ§ўўћ§§ўќ§ў§ўўќ§ў§ўўќћ§§ўўіћ§ћ§ћ§ћ§ћ§§щћ§§ў§§ћњћћњ§§ўћўў§њљћњ§§ўћљљњэћњ§ћ§ћ§њћћ§њћњћњўў§§њћњћћ§ћћў§ўў§§ћ§§ёњћћ§ћ§њњћ§њћњћљљњёћњ§ћ§ћ§њљњћљћњљљчњ§§ћћ§ћ§ћ§ћ§§ћћўў§њњћўћ§ўў§ўњћћ;ўў§ўўў§ў%ўј§ў§ў§ў§ўўў§ўўў§ў ўќ§ў§ўўђ§ўћ§ћ§§ў§ў§ў§ў ўќ§ў§ўўў§ўўі§ў§ў§ў§ў§ўўњ§ўћ§§ў?ўў§ў ўў§ўўў§ўў§ўјћў§§ћ§ћўўў§ў#ўњ§ў§ў§ўўњ§ў§ў§ў#ўў§ўўў§ўўў§ўўј§ў§ў§ў§ўўќ§ў§ўўњ§ў§ў§ў#ўћ§ў§§ўўќ§ў§ў ўў§ўўћ§ў§ў§§§ў§ўўў§ўўў§ўўў§ў7ўќ§ў§ўўќ§ў§ўўќ§ў§ўўў§ўўњ§ў§ў§ўўў§ўўћ§ў§ў§§§ў§ў ўў§ўўў§ўўњ§ћ§ў§ўўў§ўўњ§ў§ў§ў ў§ќћў§ўўќ§ў§ў ўў§ў ўќћ§§ў ўќ§ў§ўўќ§ў§ўўћ§ў§ў§§їў§ў§ў§ў§ў+ў§јћ§§ћћ§ћ§§ўњ§ў§ў§ў1ўќ§ў§ўўў§ўўў§ўўќ§ў§ў ўє§ў§ўћ§§ў§ў§ўўў§ў+ў§њћ§§ў§ў)ў§ўќ§ў§ўў§6ўќћ§§ў+ўў§ўўђ§ў§§ћ§ўў§ўћў§ўўў§ўўў§ў ўѓ§ў§ў§ў§ўћ§ћ§ўўќ§ў§ўў§ќљў§ўў§ћћў§§ў.ўю§ўћ§§ў§ў§ў§ў§ў§ў§ўўќ§ў§ўў§ћћў§ўћћў§ўўў§ўў§§ў§§ ўў§ўўў§ўўў§ўўќ§ў§ўўј§ў§ў§ў§ўўќ§ў§ўўў§ўўў§ўўў§ўў§§ћ§ў$ў§ўў§ўўќ§ў§ўўљ§ўћ§ћ§ўў§§ў§§ўх§ў§ў§ўћ§ћўћўћ§ћ§ћ§ћ§ћ§ћ§ћў§§ўќ§ў§ўўў§ўўќ§ў§ўў§ђў§§ў§ўў§ў§ўћ§њњ§§њћћі§ћ§§ў§ўћ§ўўњ§ў§ў§ўўў§ўўє§ў§ў§ў§ўћ§ћ§§њћў§ў§ўўў§ў ўѕ§ў§ў§ў§ўћў§§ќў§ў§§ћўўћћ§ў§ўўў§ў ўќ§ў§ўўє§ўћўћў§ў§§ћ§§ўя§ћўћњњ§ћ§ћ§§ў§ў§ўўў§ўўў§ўў№§ў§ў§ў§ў§ў§ў§ў§ўў§ўћ§§іћў§ў§ў§ўў§§§ўћ§§ўј§ў§§ћў§ўўњ§ўћ§§ўўњ§ў§ўў§§ќћў§ў ўѕ§ўў§ў§ў§ўћў ўђ§ў§ў§ў§ўћ§ћ§ћ§§ўњћћќў§§ћћя§ћў§ў§ў§ў§ў§ў§ў§ўўў§ўўў§ўўў§ўўў§ўўѓ§ў§ў§ў§ў§ў§ў§§ьћ§ћ§ћ§ћ§ћўћ§§ў§ў§ў§ўўќ§ў§ўўј§ў§ўћў§ў ўў§ўўў§ўўў§ўўё§ў§ў§ўћ§§ў§ў§ўћћ§ў§ў ўќ§ў§ўўќ§ў§ўўі§ўњўћўћ§ћ§§єћў§ў§§ћ§ћћњ§§ђў§ћћўћў§ў§ўћ§ўўј§ў§§ћ§§ўўљ§ў§ў§ў§§њў§ў§§ћћё§ћўћ§ћ§§ў§§ћў§ўўя§ў§ў§ў§ў§ў§ў§ўћ§ўўћ§ў§ў§§ўі§ў§ў§ў§ў§ўў§іћ§§ў§ў§ў§ўўќ§ў§ўўў§ўўў§ўўќ§ў§ўўў§ўўў§ўўў§ўў§ћў§ў§ўўш§ўћў§§ћў§§ћ§§ўћўћў§ў§ў§ўўќ§ў§ўўў§ўўўћ§§љўћ§ћ§§ўўј§ў§ў§ўћ§§ўћ§§ўћ§§§ўћ§§ќћў§ўўі§ў§ў§ў§ў§ўўќ§ћў§§ў§ўў§§ќћ§§ўўў§ўўћ§ў§ўћћўњ§ў§ў§ўўњ§ў§ў§ў ўў§ўўђ§ў§ў§ў§ў§ў§ў§ўўћ§ўњў§§ўё§ўћ§§ў§ўћ§њ§њў§§уў§ў§§ћў§ўћ§ћ§ў§§ў§ўћ§§ў§§ћў§ўўћ§ў§ў§§№ў§ўў§§ў§ў§§ћўћўћћ§њў§§ћ§ћћћ§ћ§§ўўќ§ў§ўў§ўў§ўў§ўћў €ўўћўў§љхћ§§њљљћљљћ§њљјљњњў§§ћљ§љљћ§§юћљњћћљњјњњљѕїѕјћћўўћћўћћўў§ўѓњћњњ§љњўћ§§њўўў§ўўўћ§§ћњјїїљјњњќјњјўўщћўўћўћўўћўћћњњ§ћљњњ§ўћўў§ўњљљјѕћњњћњњљљїћ§љљ§§ў§ћћќјѓљўўњњћњ§§ўўњ§јўњљљњћћљљ§ў§ыњ§§ћљњјњћњљћњ§ћјљћ§§ћћ§њљ§§ћўўњ§§§ўњ§§ёћњњћњїљ§њ§ћњїљїїхјїѕїїљјњјљћљјјљѕѕњћћљћљїїјўў§ўћљљўњ§§јњ§ћћњњјћћњ§їјњњјўћњњќјћљ§§љљћњўў§ўўћ§њўћўў§љѕјљјћјњјћљљћћфљњљљћљћћљћњњјїїјњњјјњњѕїїљљўўіљ§§ћћњњљћљљўћ§§њюљћћјјљћљћљћњљћјњјїїјшњјјњјљ§§њ§ћћјїї§§ћњћћ§ћўўўћ§§ћќїјјљљєћ§ћњ§§ўћ§§њ§§ћјћљћњњ§§яњљћљљћћњў§ћјћњ§§ўў§§њўўѓњљљ§њљїјћјјљ§§щњ§љљїїјїљљїћљћћ§њћ§њћјїїњљїїњљ§§§ўћ§§ўў§јјћћљљћ§§њѕ§јјљћљ§§ўў§§§њ§љљѕћ§љњ§ћљћњћ§§ћњљїћўўќњ§ћ§§чњ§љћћљћћ§љљ§љљј§§њ§њћ§§ћљљѕњў§њ§§њ§§їњњћ§ўўљ§§ўј§§їўњ§ћћ§§њљљўњ§§ѓћљљћљ§њћћєњћ§§мњ§ћћљћћљ§§љћљљјїѕљјњћљћ§ўћўўњўњ§§њњ§§њњўћўў§§ёњ§ўў§њћњ§љїћ§§љљ§њ§ўў§§њ§§ћњ§ћљјј§њјљљўўћўўў§ўўўћўўћњ§њљ§§ёљћ§ўўљњњ§ўўњњљћћѕ§ўў§§њ§§њњ§§ўю§ћљ§ўњћљћ§§љј§§ћњўў§ћњјќћ§§ўўш§ћ§њњ§јјљћљћ§њљјїјјћњ§њ§§№љ§ћљћјјљљ§ћїјћ§ўў§ќљ§§ћћљљ§ў§љњћћэљ§§њ§§ћ§§ћљ§ћћјїїјћћљ§јїўў§ћњљљћјќїњјћћќњ§ўњњўщњћљњ§§ћћњњћљљћћјћћљњњћ§§ўњћћтљћћљјљјјћјјљ§§њњ§§њљњћљћћљ§§њ§§чћ§љљњћјјћљ§§ћјїєєѕїњћ§љјљљёјљљњ§ћљћљљ§§њ§ўўќ§љ§њњ§ўўљљћњ§§њ§§єњћљљјљћњјїїјјїћљћљњћљњ§§§ћљјј§љњ§§ ўщћ§љћћњ§ўў§§ћ§њ§њ§њћљљњ§§ћћљћљћћ§ќў§§ћћ§ўј§њњўў§ћўўўњ§§ўњ§њ§ўўњњх§љљњ§ћћјњљ§§ћљћјјљњњ§ћћњјћљљћўњ§§ў§ћњћњјїїјнћљћљјјћћњ§љјћњїјљњў§§ћљћћњћљљћњјјљ§§ћў§ўў§њ§ўўљћьјїїњљљјћљјљћљћћљїѕљ§§іљћњјњї§ћћ§§§јљћћђљћњљљћћ§њ§ј§ћњњњљњјјљ§§јљјјљћ§њ§§ыћїњњ§§ћљћ§§ћљ§§њњ§ўў§§§ў§ћћяљњїљѕѕњњјїѕѕїѕїј§§њњўћўћ§§§ћљјјўњјјўњћћўљћћ§§ћјјѓљјѕїњњ§§љљїљ§§ћ§љћўў§ћњљћ§њњљћ§њљљ§§љћјљјћјїјњјјљљ§њ§§њ§§ўћ§ §ўљўў§§њ§§ќћ§§љљ§ёћўљ§ћљ§љ§њ§§ўћўў§юњ§њ§§љјљјјњљњ§њ§љ§§љћљљњ§§ўў§ўљјјќљћљ§§ќњћ§њњ§ћ§њ§ўў§ўўўњ§§цћљћљ§ў§§љљћјљјњњїјћћљћљ§љ§§њ§љљћ§јљљјїїјђћњћў§§ћљћњћљњ§§ѕљћљ§ўў§§ћњћћј§њњ§ўњ§ўўћћ§§њ§§юћљ§ћўњў§њљ§§ћ§ў§њ§§ѓњћњ§§њњљјјїњћћјљјћ§ћћ§њњўј§њњ§ћћ§ўўњў§ў§ћўћћў§ўњ§§љћ§єћїјљјјњћћљјћћіљћњљћјћѕћњњћјљјњѓїѕјљ§јјъћњ§ў§§њ§њљјћ§ћљњљ§§љњљљчћњњјјњњјњ§ћћљћјљћњ§њћћњљјјњљ§љњјљљћыљћњњ§ўўћњћ§§ћўћў§ћћљ§§љ§ћљћћќ§њљўў§љњњљћ§ў§§љњљћјїљјј§њљ§§ў§§њ§§ўћњњљјјћ§§їјћ§њ§§љљўўї§њўћўў§њ§§ѕћљљ§ћћјљљћљљэњљїїњљњњћјѕїїјњћ§§љљ§§њ§§љїјїњўў§ўў§§ў§ќњљ§ўўчћњњ§ћћњїјњјјњњљћћљљћљјћљћћљљњњ§њћ§§ѓњ§§љљњјјїјњњљљьћїјјћћљњ§§ћљљ§њ§ћўў§§ќњ§ћљљ№§љ§њ§њњ§§љљћљ§§љљўќ§њњ§ §ѓћјїїјјљў§њ§љ§§њњ§њ§њљ§§ћњ§§њўў§ћў§§юњ§њ§њ§њўўњ§§ў§љ§њ§§ћљћљћ§§ќћљљ§§њя§ўњ§њњў§њњ§њњ§љњўўњћўњ§њ§§њњўў§њ§§ќўћњ§§ўњ§њњўў§§ўјћ§§ўњ§§ўўј§њ§њўўћўў§ўћљ§њљўўњ§§љћљћ§§љћћјљћћљљєћ§§єљћљљјїјћћљћљљћ§ўўћўў§њѕљњћћїїнћњ§љјћћ§ўћњћљћ§§љћ§ўўћў§ћљљћћњ§§ўћ§§єњљ§љњ§њўў§њўўќњ§§ўўљћњ§§љћљљё§њњ§§њў§§ўў§§њ§§ўњўўћћ§њ§ўўћ§њ§њљљѕ§ўў§§јњ§§њљљћ§ў§§ўў§јјљјњћњ§ўў§ўћћљўћўўњ§ўњ§§іљћљњљћ§§ў§§њ§іљћљћљћј§§ћћє§ўў§њ§ўњјљјћћў§ўў§ћў§§ў§§њ§§ћњћљљ§§ўћўўўњ§§ўњљљ§ ў§ўўћўўћњ§§ћўўўћўў§ћљїњ§ў§љћћ§ўўўћ§§ўћўў§ўљўў§ћў§§јјљ§§ўћћўў№ћўћћўў§ћјљљјљљњ§§їћјљћ§њўў§§ўї§§ўћўўљњћњћљљ§§ќњ§љўўњћўњњў§§юњўћ§љљїљ§§ўў§§њћћјјђћљї§њћњњљњў§§ўў§љјљќ§ўћўўњћўў§њўўќћ§јљљўћ§§ѓњ§њњ§њ§њ§§љљћћљ§њћћњљ§ўў§ўўћ№њћ§§ўћњћћњћ§ћњћ§§фћњћ§ћћњћћ§ћ§њћљћњћљњљљјјљљњўўў§ўўў§ўўђ§ў§§ћ§§ў§ўў§њ§§іћ§§ўћ§§ў§ўўўћўўђћ§ћњњћњљљјњљљњњўњ§ў§ў§ўў§ќћњћ§§ўћў§ћћј§њ§§њљљћћј§ћўћњњћњњўјўўѓ§ў§ў§ўў§ћ§§ў§§јћў§ћћњњћћўўћ§§Ъћ§њћљњљњљћњ§ћњњћњ§ћћњћњљј§ћ§ўў§ў§§ћ§ћ§ћў§§ћ§ћ§њ§§ћљћћ§§њўјљљіњљњљљјњљњћћњјјњљњњћњћњњћў§ў§ўў§ћ§§њћћ§§ћ§ћћ§њўљњњ§ћњљљўњљљњљњћњ§ћњљў§§њў§§ћ§ўў§ћў§ћћ§њјњњњљњњћћњњыћљћћњћњњћњљљњљљњљљњњљљќјў§ўўї§ћўў§§ћњћћјњћ§ћ§§ћњњѓћњћњћњ§ћњњљњљљњјљњњљњћћ§§њљј§ћћљћњ§ўўћі§ћ§ћњњћњњћћёњћњ§§ћўў§ћ§ћ§ћњњћ§ъћ§ћ§ћ§ћњћћњћ§ўћњњћ§ћћўўљћ§ўў§§ћћќ§ћћњњєћ§ћћ§§ћћњћњћћњѕћњњ§§њћ§њњљљўјљљћњ§ћўў§ћћњ§ўўћ§њњћћ§ћ§ћ§§ђћ§ћњћ§ћўў§ћ§ћ§§ћцњћў§§њћњљњ§ћ§ћ§§ћњў§ў§§ћњћћђ§ћ§ћ§ћћњњћњњ§ћћ§§ћ§§ћўћ§њћћѕ§ўћ§ћћ§ћћў§§ўї§ћћ§§њ§ћ§§љћњњћћ§ћћњ§ћ§ћ§ћћюњћћ§њњћљњ§ћ§ћ§ћ§ћ§§њћьњћћ§ћњћћњљљјњљњћњћ§ўўќ§ћћ§§ћє§ўў§ўћ§ћ§ћў§§іњ§§ћћњ§ћўћћё§ћў§ўћ§ћ§ћ§ћњћњњ§љњћћў§ў§§ў§§ћї§ћћњ§§ўў§§ћў§§ћњњјћў§§ћ§ћ§§ђћ§ћ§ћ§ћў§ўћњћ§§ћњћњ§ћћ§њ§ўўђ§ћћњњљљњљњљњњћћј§ў§ўћњћ§§ћћњћњћћћ§ћњљњњ§їћ§ћ§ћ§њћњњћї§њћњћћў§ўўўћ§§ћќњћћ§§§ћљњњіћў§ћ§ћ§ў§ћћў§њњљњўћњњћїњљў§ў§ў§ћћњљћњћњњ§§фў§њћ§ћ§њњ§§њћћњњ§њћћљљњћ§ћ§њњёћњћћњћњњћ§§ћ§ћ§§чћ§ћљњћњњћ§ћ§ћ§ћ§ћ§њ§ћћ§ћњњћђ§њњљїѕјљљњ§ћ§ћћї§ћћ§§њћњћћћ§ћў§ўўќћўћ§§ћђў§ћћ§ћћ§§ћ§§њћћњњљњљљњњіћњћ§њћ§ћ§ћћњњћ§ћ§ћўўў§ўўі§ћњњ§ћўў§ћћѕ§ћ§ћ§њћћ§ћ§§ћњћњћњњъћњ§ћ§ў§ћћњћћ§ўўћ§§ўў§ўў§ѕћ§ћћ§ўћ§§ў§§ћљ§ћћњњљћћ§њћњњїћ§§ћћњљњћћњљ§ћ§ћ§ћўўљ§ћ§њљњљљњгћњћњњћњ§ћћњњљћњћ§ўћ§њћњњљњћћњљњњћ§ћ§њћњ§§ў§ў§§§ў§ћћќњћњљљћи§ћћњћњћћњјљњћ§ћ§ћћњљћ§ў§њњћ§ћ§ћ§ћњњћћњљћћўњ§§ќћ§њљљюћљњњћ§§ћћњ§ћњћ§ћ§ћћњѕљ§§ћњћњћћњћћ§њћў§§ћ§§їњћњћљљјјљљћњљјјљљњњ§ћ§§ўўў§ћћќ§ћ§ћћ§њћњњўљњњїљњћњћћњњћћњ§ћњљљ§ћњ§ћ§ћ§њњ§ћњўўі§ўў§ћ§ћњћ§§ћ§ћќ§ћ§ћћїњћћњњћњљњњћ№§ћ§§ћћ§ў§ћ§ћ§ћ§ћћ§§ћўўљћ§ћ§ћўћћм§ўў§ћњћћўћ§ћћўў§ў§§ћ§ћ§ћћ§§ћњњљћ§ћ§ћћё§ћњћћ§§ћў§ўћ§ћњњћљ§ћ§§њћ§§јћ§ћћњћћ§§ўћўў§ў§ыћ§ћћњћњћћўћ§ћћњњћњљљњњћќњћ§ћћ§§ћ§ћћўќћњ§ћћќњљљњњфћњ§ўўћћњћњ§ўў§§ћ§ћњћ§§ўћ§њљњњћ§њў§ћў§ўўћ§њћ§њћћўў§ћўњ§§ћ§ёћ§ћћ§§ћњњљљњћњћћњ§ў§ћ№њ§§ў§ўў§§ў§§ћ§§ўў§мћ§ћ§ћ§ћћњћћ§ћ§ћћњњћ§њљњњћ§њћњћњћњ§ћњњ§§ћљљњћїљњѕјњћћ§њњћ§ћўћ§§ћїњћњћ§ћў§ћћєњљљњњљљњљ§њћћѕњћњ§ћ§њњљћњњїћ§ћњїјћћњњ§ћњ§§ўь§њћћў§ў§§њњћ§ћ§ћћњћњњќћ§ћўўјћ§ћјљћњ§§іћ§ћ§ћњњћјњњњљћћ§ћўў§§ћ§ўў§§ћњњў§ћћњ§ћњћ§ћћў§ўў§ў§ћќ§ћњћћњћўњћћ§љјљљњћ§§њњљљ§њљћћ§ћћњћљў§§ђўћ§ћўўћћ§ћ§ћћўў§ђњћљљњљњњљљћњњћћњўћњњїћ§§ћ§њ§ћ§§ћўљњњљћњќћ§§ћћ§§ћўўћў§ћћњ§ћ§ћњћћќ§ўћ§§ћњњўћ§§ћћўъ§љљћ§ћ§ћ§ћ§ћ§ћњњљјњњћ§§ќћ§ћ§§№ћ§ћ§ћ§ћ§ћ§ћ§§ў§ўўњ§ћ§ћћ§§їў§§ћ§§ћћ§§ћќњћњћћўњћћ§§ћ§§њћ§§ўћ§§єћў§ў§ў§ў§ў§ўўї§ћ§§ћ§§ў§§ћ§њў§§ћ§ўў§ў§њћ§ћ§§ўўўћ§§ќћ§§ўўњћ§ћ§§ўўњ§ў§§ћўў§ў§§ћ§ћћўњћћњќћњњћћяњ§ћ§ћћњћћњљњњћћњћћ§ўё§ўћћ§ћ§њњћљљњ§ћћњј§ўў§ћћњћћ§њћўў§шњћћњњ§ћ§ўўћ§ћ§ћ§ў§ћ§§ўћўўё§ў§§ћў§ўў§ћ§ћњћћ§юћ§§ўћ§§ўћћ§§ћ§§ў§ўўї§ўћ§ћў§ў§§ћў§§ћ§§§ћ§ћћ§ўћўўђ§ўћ§ћ§§ћњљњ§ћўўћ§ћ§ћўў§§ў§§ыў§ћћ§ћ§ћћњћ§ћњћ§ўћ§ћ§§ћ№њћњћњњ§ћњњћњњћў§§ѕћ§§ћћ§ћњњћўў§ћ§ћћўў§ўў§ћ§ўњћћ§§ћўў§ћў§ћћћ§ћ§§ўўњ§ў§ў§ўў§ў§ќћў§ўў§ўњћћ§юў§ћћњ§ўў§ўћ§ћ§ћ§§ўўњ§ўўћћўўћ§ў§§ћћ§ўў§ўўў§ўў§§њ§ћћы§ћ§ћћњћњћ§ў§§ћ§ў§ћ§ћўўј§ў§§њљњћћі§ћ§ћў§ў§ў§§јўћ§ћ§§ўћћј§ћў§§ћ§њњѓћўћўў§§ћ§ўћ§ўўћњћўў§ўў§ўћ§ў§§ћћцњ§ћ§§ћ§§ћ§ћ§ћ§ћћњћњњћ§њњљћћ ўј§ў§ў§ў§ўў§ўї§ўћў§ў§ў§§ў§§ў§§ќўћ§ћћљўћ§ћ§§ў ўќ§ў§ўў§ћў§ў§ўўў§ў ўя§ў§§ћўњ§њўћћњћњћўўў§ўўў§ўў§ћў§ў§ўўї§ўћў§§ћў§§ўї§ўћ§§ўњ§ў ўў§ўўў§ўўј§ўњ§ћў§ўў§іў§ўћўћћ§ћ§§ќў§ў§§ѕўћ§ћ§ћ§§ў§ўўњ§ў§ў§ўўї§ў§ў§§ўўћћтў§ў§§њўњ§њ§ћ§њ§њњћўћ§ћўћћњћњў§§њў§ўўћўўў§ўў§ћў§ў§ўў§§ў§§іўњў§ўћ§ћўћћў§ћћћўћћ§ћћ§§ћўў§ћћўў§ў ўў§ўўё§ў§ў§ў§ў§ўћў§ў§§ўў§§ыў§§ћўћ§њўћўћўћў§§њ§§ўўў§ўўљ§ў§ў§ў§§њў§ў§ў§§њўћ§§ў§§єўћўћўћ§њ§њўћћјўћў§ў§ў§§њўњ§§ўћћ§ўљ§ў§ў§ўћћ§љў§ў§ў§ўўў§ўўі§ў§§ћўњўћўўћ§ў§ў§§ћў§ўћўўћ§ўћ§ўўў§ўўє§ўў§ћў§ўћ§§ўў§іўћўћў§ў§ў§§яў§ўў§ћ§њ§њ§њў§ў§ўўў§ўўў§ўўє§ўћ§§ўћў§ў§ўўј§ў§ў§ў§ўўљ§ў§ў§ў§§ћў§ў§ўўђ§ўћўћ§§ў§ў§ў§ўўќ§ў§ўўѕ§ў§ў§ў§ў§ў§§ѕў§ў§ў§ў§ў§ўў§§ў§ўўў§ўўќ§ў§ўўђ§ўў§§ў§ў§ў§ў§ўў§јў§ў§ўћў§§ўў§§ћ§юў§ў§ў§ў§ў§ў§ўћ§§ў§§єў§ћњ§њћћў§§ў ўў§ўўў§ўўў§ўўі§ў§ў§ўћ§§ўўў§ўўѕ§ў§ў§ў§ўћўћћќў§§ўўў§ўўљ§ў§ў§ў§§ўќ§ў§ўў§§ў§ўўў§ўўў§ўўњ§ў§ў§ўўћ§ў§ў§§§ў§ўўў§ўў§ћјњћњћћўћўўх§ў§ў§ўћў§ўћў§§ћ§ћў§ў§ў§ў§ў§§ћћ§ћў§§ќћўћўўь§ў§ўћ§ћ§§ў§§ћ§§ўћў§ўўњ§ў§ўћ§§ђћњ§ћўћ§§ў§§ћ§ўў§§ў§§ёўћ§ћўћ§§ў§ў§ў§ўў§ўў§§ўў§§ўў§§їўћ§ћў§ў§ўў§јћ§ћўћўћ§§ёў§ў§ў§§ћўћ§§ў§ўўћ§ў§ў§§яўћўћўћў§§ў§њ§љ§ћ§§ќўћў§§ўў§ўўќ§ў§ўўћ§ў§ў§§јў§ўћћ§§ћћы§ћўћў§ў§ў§ўћўћўћ§§ў§ў ў§ўќ§ўћўўї§ў§§ћ§ўў§§ыў§ў§ў§§ћ§§ў§ў§ўћўћў§ўўў§ўўќ§ў§ўў§ўћ§ў§ў§§їўћ§ћў§ўў§§ќћў§ўўљћ§ћўћў§§ћў§ў§ўўэ§ў§§ћћњ§њ§њўћў§ў§ўћћ§їў§ў§ћћўћўў§§ў§§њћ§ў§ўћћ§љў§ўћ§§ўўў§ўў§ћ§ўћ§§Эћўћў§§ћўњ§њў§ў§ўћ§ћў§ў§ў§ў§ў§ў§ў§§ћ§§ў§§ћ§§ў§ў§§ћўћћяўћўћ§§ў§ў§ў§ў§ў§ўўі§ўћў§ў§ў§ўўў§ўўф§ў§ў§§ћ§§ћњ§љўћўћ§ћћњ§њў§ў§ўўў§ўўќ§ў§ўўћ§ўћўћћїўћўћ§ћ§ћ§§щћўћўћўћў§§ћў§ўћўћў§ў§ў§§ўћўўў§ўўљ§ў§ў§ў§§№ў§ў§ў§ўћ§ћў§ў§ўћћїўћў§ў§ў§ўўі§ў§ў§ў§ў§ўўў§ўўќ§ў§ўў§ўў§§§ў§ўўљ§ћў§ў§ўўњ§ў§ў§ўў§ќћўћўўє§ўћў§ў§ў§ў§ўў§фћўћ§ћ§§ў§ў§ў§ў§ў§ўћ§ћў§ў§ў§ўўў§ўўі§ў§ўў§§ў§ўў§єћ§ћўћўћўћ§ћ§§ўў§ўўў§ўў§§ў§§їў§§ћ§њўћўўў§ўў§јў§ў§ў§ў§§ўќ§ўћ§§ўћўўќ§ў§ўў§§ў§§ўі§ў§ўў§§ў§ўўќ§ўћўўѓ§ћћ§ћ§ћ§ћўћў§§§ў§ўўј§ў§ўћ§§ўўќ§ў§ўўў§ўў§§ў§§ъћў§ў§ўћўћ§ћўћ§§ў§§ћ§ћ§§јћ§ўћўћћ§§яўћ§§ў§њљў§ў§ўћ§§ўўђ§ў§ўћўћў§ўњ§§ўўэћў§§ћўћўћўћў§§ћўћў§§ўў§§љў§ўћўћ§§љњљњ§ћў§§§ў§ў ў§§ў§ўўўћ§§ќў§§ўў§§њў§§эў§ў§ўў§§ўћ§ћўћў§ў§ўўњ§ў§ў§ўўњ§ўћ§§ўўі§ў§ў§ўў§§ўўў§ўўў§ўўє§ў§ў§ўћ§ћ§ћ§§ѕћњ§њў§ў§§ћ§§ћў§їў§ўў§§ўћўўў§ўўў§ўўћ§ўў§ўўѕ§ў§§ћўњўћўћћ§ќћ§ћ§§ћў§ў§ўўї§ў§ў§ў§ўћћўўћћјў§ў§ўћў§§їў§ўћ§§ў§ўўў§ўўі§ў§ў§ў§ў§ўўќ§ў§ўўі§ў§ў§ў§ў§ўўр§ћћў§ў§ў§ў§ў§ў§ћњўћў§ў§ў§ў§ў§ў§ўў§љў§ў§ў§ўўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўќ§ў§ўўў§ўўќ§ў§ўўњ§ў§ў§ўўќ§ў§ўў§ўў§ўўќ§ў§ўўє§ў§ўў§§ў§ў§ўўњ§ў§ў§ўўў§ўўў§ў ў§ўј§ў§ўћ§§ўў§эў§ўћ§§ў§ў§ў§ўћ§ћ§ћ§§ўѓ§ў§ўћ§њ§§ўћў§§ўјћў§ўў§§ўў§§ў§§ўў§ўўњ§ўў§§ўўў§ўўў§ўў§ћў§ў§ўўў§ўўќ§ў§ўўј§ў§ўћў§ўўњ§ў§ў§ўўњ§ў§ў§ўў§§ў§§ќўћ§ўўќ§ў§ў ўў§ўўю§ў§ў§§ћў§ўў§ўў§ў§ўў§ѕў§ў§ў§§ћ§§ўўў§ўўј§ў§§ћ§§ўўў§ў ўў§ўўј§ў§ў§ў§ўўў§ўў§§ў§ў ў§ўў§ўў§єћў§ў§ў§§ћ§§ўўљ§ў§ў§§ўўў§ўўќ§ў§ў ў§ѕўћ§ўў§ўћў§ўўј§ў§ў§ў§ўўђ§ўћ§ћ§ўў§ў§ў§ўўќ§ў§ўўњ§ўћў§ўў§§ў§§њўћў§§ўўќ§ў§ўўў§ўўњ§ўћ§§ўўў§ўў§ќў§ў§§§ў§ўўћ§ў§ў§§ћћ§§ў§§§ў§ў €ћїљћ§§ћњљѕљљјѕћљјјїљљїѕѕєєѕјєќѕѓѓђђѓђЯёѓ§ўŽ#%)*јїјљјјѕїљћњ§§ћјњљњњ§ћјњљљјїљњњїїњјњњљїїјѕєѕѕјѕјѕѕєёђяђс`3)"03*њїїљљюњ§§њ§§ћјјљћњћљјїјљљ§єћјїѕѕїїњјјњјјњљїњїїљљђѕђяјз>JM:%јљљњћїљњјњљїєїјјўїњњїјїјјїѕѕљјјўњјјїўѕїїєѓѓјјw3JMA>,њљ§§їћљћљћћњћјјњњћћјљјјљј№њјјњјњјїїљјјњјњјјщћњїїѕљ§ш^.%+(2,љћњјјћћїї№њїјћљћљћљјїћњјјћћј§њјїїњлјњјњњјїјїїѕѕјїєѕєї§е[L5,4AїїљјїњјјїњњќћљљћћыњљљјњњљїїјњјїїѕѕјјѕїјјЈњјљїїѓљїѕѓѕћю^-B5;GCїїјјїїњњїїјјњњїїѕјљљћћ§§ћјњњћћјјњјљїјћћјјњїјњјјєїјїѕђёэўѕr<75:@;њ§ћ§§ќљћљћћѓљћњњћљћ§§њў§ћћђ§њ§ћјљјјњњјјљћћгїєїїѕєђђєёv-.:2ўў§њј§ўў§њ§ћњњјћљћјњїїњјљћљјјњњїїѕљјјїјрњјјљїљѕѓєѕћюo%9>??1њјјњїјјїјјћћјј№њљћњњѕѕєєѕїїњјїјјљїљиїљїѕїњљѕєњ§э˜2*@.@Lѕїѕјњњјјњћ§§њ§§ћњњјїљљїљјљљјїњјјћс§љњјњјїїѕїїѕєѓёљєдF!13@ћљљњћљћћі§ћћ§§ћћјјћћ§њ§ћћћ§ћљјљљїјшњћљњјїїљљїїѕѓѓћ§ж9YJE9§§љљјљ§§ў§§ўі§њ§њ§ћћњћ§§ћјћїњјјїїўњїїѕяљѕєёїўыbGL>1+ўўњ§§ёњћћљљћљјљњњћљљћћјяћљћњћћјјњљ§§ћјїњћћјїпѕєѓј§с{:,A:+љћћљњјјњјћљњјљћ§§ћћљћћљ§ћљћћѕјћљјњїїјјњїїўљїїэљѕєєђяєл|>0.1.њњјћ§§њљњњљћјјїюњћѕњњїњћјјњњїљћјљјјљїјѕєїјїїљўїѕѕнїєљћљœG&32њљњ§ћўў§љњњћћјјљјћљљћљљјјљлћљњ§њљјјћ§§ћљћњњјјњїєѕѕєѕѕѓћљj!љјјпћљћјјїјѕѕїјћ§§њљљјїєћ§њљљ§ћљћ§§ћљљцјљјњћ§§ћљњјѕѕєєѕѕ§ћЯ8#%%§§ўћљљФћљњјњћћњїјљљћ§§ў§љ§ћјјњњљљјњјћљњњїїљїїњјњњѕѓѓєёѕћјчT!%1§њ§ћћѓљћћљљјњњїњљљ§§јљјљљћљљћћћњјїњћћљзјњјћјјїїєѓёѕѕљ§чq")(§§ўў§ћљљ§§љљјјћљ§ўў§§ўњ§§њњ§ћћњ§§ћђљњ§§ћљјљљѕїјєѓѓіє§§Ъh5F-!ўўў§ћћћјљјјљљыћјњјјљљїїљ§њњ§§њљњ§њћћћњљњћјјїыѕѓяюђє§§гb<;%њњїѕјљћћњљ§ћљљћћљњ§ўћјјрїљїѕњњјјїјјњњјћљћїѓяяђѓћ§Я8,(0.јјћўљћћјћљ§њњћћњјцњјїљљїѕјћїњјјїїѕѕљїєѕѓёђёѓѓсћуQ7%."јјћљ§њњћњјјћњ§§њљћљљћљћљљѕњјњљљ§§њ§ћ§§чћјјњјјњїљїєђёёєѕїћ§жS?h<јјйћ§ћљљћћљћљњ§њћљїњјћњјћћјњљћћ§њ§њњљљїњїћћсњљѕѕєђяёєѕѕљ§ћ‡#4G§љњјїљљћљњјѕїїљљћњјњјћ§§љўјїїыљїјјњјјњјјљљїѕјљєэёѓѕѕћљѕc@E§њ§§ўћјјљћћљјћћљљ§њљћњјјњњјьњјћњїїѕѓђѓѕѕњњў§РF<§§љќјњћ§§љњ§§љћњјјјњјљњњ§§ћћ§§ў§§мњ§§ћћјњљѕёяяѓјѕєєљћшU)јїїјњјњјњјјљћ§§ѓњљ§§њ§љћћјјњјјћњљјљћћ§№њћјљњњјњїєюшюѓєѓѓ§пЛPћјњњљћљљјјћћљћњћљњ§§ћћљљјїљњљљћћћљћњїљљњќјњљћћзљћїѕэщэѕљїђѕљљйSљјљїїљћћ§§ћњљљњїїљљјљћћњ§§јў§§њњћљ§§ћљїѕїњњљмѕјѕэщьѕїјњљњ§ю`љћ§њ§њћјјњњљћ§§ћљњњћјјьњћљљћћљљњћјјњїјјљјљћћ§яљњїєюууяѕјњљј§ћФ§§њ§ўљјјљцћљ§ћјјњњљћљћњћњњ§љњїїљјњљ§§ћўњїїїљѕящчшяѕїїщњ§уљљјњјћћљћњ§ўћљњ§њљћ§§щўћўњ§§ћљћћњ§њћ§§љћћњњјѕѕјђїѕёцшьѓєѕєє§§ћћљјљћћљљ§§ўў§§ўўћўўўњћћяљ§§љћћљћћљјћћњљїѕѕїљїѕђэтчђїїѓєјћћљ§њ§њњ§ћјјяћ§ўўњў§јљјјћћјњљ§§§ћљћћјљјјљјњјћћщњїјљїѕѓэурщјњјѕѕ§љћ§§ћ§§яљјјљћћљћћњњ§ћљћ§ўў§њћ§љ§ў§§ћжњјљћјћћјјїѕьцшюєїјјћ§љњ§њћњњљћњњљјћљћ§§ўў§§ўўћўў§§њ§§жћљћћљћ§§ћљћїєюыыѓѕјїїћ§ћљ§§ћњїљѕїїјљљћњ§њљљёћљ§њўў§њњ§љљјњ§§ћјьћљћјјћ§њћћњѕђяюђѕјњ§§њ§њљћњ§ћ§§іњљјјљљћ§њћћъљћћ§ћљњћњјїїјћљ§§њ§љјћћіјїящщьѓѕњ§§ћє§њ§њњ§§њњ§ћ§§ћљњћћ§§їњ§љјћјїїљљ§їњљљјїїјјћћшјѕёцсцэ§љћљљјїћ§§ћљљј§§ўўўљ§§ѕћљћ§§љћ§§њўўљ§ўў§њ§ћћы§ћљћћ§ћјїєѕѕєёчждсљћ§§ћљћљћ§§њњ§§њ§ћћ§њ§їћљјћћњњљћћ§њ§ћћјљњљљјћћјјюїјњњьпЭ§ў§§љјїѕјјљљќћљњ§§ўљћћ§ћћњїјјћћўњ§§ўњ§§§њјљљ§№ћљјўьњњ§§ўў§њњ§ўў§љ§ѕњћљћњљћљјљ§§ў§ћњ§ћћљљњњћљћљ§§јћјјњўў§ўў§ўљћћњ§§њ§§јћњ§њ§ћў§§ћњ§§ћ§§ћў§ћћљљ§§љћјјїєѕј§ў§њ§њ§ў§ћћќљ§ћўўѕћњ§њ§§њњ§§ўў§ћњћћ§ќљћј§§њљњ§ћ§ћћсјїњјјїїѕїє§јјљ§§њ§§љљ§њњ§§ћўўњ§§§ўћўўќ§љ§ўў§њћњјћћ§§њ§љќјћљјњћњ§њљјњјјњіћњњљјјљњјїї§ѕїјјїшєѕєєѓєѓєєѕѕєєњўћ’"%(-0*њњнјїїјљћњ§ћ§њњљћ§§ћњњљћћњљјљљћњљњљљјљљјќїјїјјїёѕїєуb2-.7<.љњљјј§љћ§§ћњћќ§ћћњњћј§ћћњљљњљљњўљњњўјљљјѓѕїўс@"EN;+њћћљњѕћњћљњљјљјљњњљњњћњњљјјњўљњњљўњљљцјїњўўu5HMFC8љћ§ћ§њћњћњћ§ћњњўљњњўћњњћњѓљњљњљљјњњљњљњњљїјћўюd1+$77јћњљњ§њњљљѓњ§њћњћњћњћњљњњўћњњљїњљњљљњљњљљњщљјјїћўл[F9)9<љљјїљљњњљљхњћћњћњљћћњљљјљљњљњћљјјїїјљњњчљњјљљњјљјѕјўєa2;7@HEљљњњљљњљћћљњњћћЯњ§ћњњљљњњ§њљњјљњњћњњљћњљњњћћњљјѕђє§ўtB2GJIњљњњљљњњљњ§ћ§ћ§њљљњљјјљљњјјњћљњњч§ћљњљњљљњљљјїєєњ§зJ(*E50ћњњћљњњљ§њћљњћћђ§њњћћњњћћњћњћњњ§ћњљљњљўјљљјїъѕѓїтƒ<(;89љљњњ§ћ§ћљљћњњљљћ§љљћљњњљњњћњ§ћњњљљїїљљњљљјўљјјтѕїћўўЁE$43љћ§ћў§ўћћљљњћ§њјњњћћњћ§њћ§§ўћњњў§ћћљњљјђљјјїўўr& &ћњњўћњњђљїјјљњњ§ћ§ћћњћћў§ћћўњћћ§§њћћуњљњ§ћњћљњњјїїјјўўб;%)+ћћ§ћњћћѓљњљњћљљњћћњћ§§§ў§њњљјњњљ§њћљљўјљљњэљјїѕїјјўўяY"-3§§ћњњћњћўњљљћў§ћћќњћћњњїћњљњћљњњћћ§њљњњљ§їѕјјюћўэn"(#§ћў§ћњћћ§ћћњіћ§ўўћ§ћ§ћ§§ўћ§§њ§њћ§њћћ§§ќњћњјј№љїїѕєїїўўбg1A$(ўў§њћ§ћњњћћњэљњњјјљњћћ§§ћћ§ћ§ћ§њњќљјљњњљёјѕђяєїўўеb8:")љљ§њћњњћќњћћњњћ§§ћ§њњњљјљњљњњшљњњљљњњћњљѕђёєєўўд<-$73њњћњћ§њ§ћњљљњ№љњљјјљљњњћљњњљљјјюљјїїђяђѕєїўыV4*<3њњўћ§§§њљњњі§ћ§§ћњћћњћћќљњљћћ§њњ§ћ§ћњњъљњњљљјљїєѓєїјљўўзL8cLњњћњћѕ§ћ§њћњљњњљњњћљћњњ§§ћ§њљњњќћњљјјэїєѓђїјјњўўƒB>LIJ§ўћў§§њњћў§§ћ§§Щўћ§ћўњ§ћ§ћўњўњ§њћћўћўћўћ§ћ§њ§њўњћљњћўчkYO,JHWњ§њћњћћўњћћ§ёћ§ћ§ћў§ўћўњ§њўћћ§§љћћйљ§ћўћўћўћўњ§њ§њ§љљћўўpCUM[\[њ§ћћњ§ћўњ§ћћцўћ§њў§ўћў§ў§ћћў§ў§ўћћњ§ћ§ћћќўћўћћќўњћљљўѓŠNHMYYV§ў§ў§ўў§їў§ўћўћў§ўў§§ў§§јў§§ћ§ћўћћуў§ў§ў§ўћ§њћјњјўў‡,2PLNTўў§ў§ўўј§ў§§ћўњ§§ћЕњ§ћўћ§§ћћўћ§њћњўћўћ§њўћўћўћўњ§њћњњћўўƒ5PUa\`ћўћћњћћўћў§§ћўћўћ§§ўћћљњјћњ§ћўћћъў§§ћ§њ§њ§њ§њ§њ§њ§њ§њћўўгБIC[]^gњ§њўћўћўћ§§ў§ў§§ћўћ§њ§њ§њ§њ§ћ§њўјўћўћ§§хћўћўњ§њ§њћњћјўўю]*?UM[ћў§ў§§§ћў§§мў§ўћўћ§ћ§§ўћўћў§ўћ§њ§њ§њўћўћў§§ћўњ§њњщљњљўўщM3mcYZўў§ў§ў§ўћ§ўўў§ўўљћўћ§§ў§§Дўћўћўћўћ§њ§њћњ§њћљњљњјўўњz^gSLCўў§ў§ў§ў§ўћў§§ћў§ўћў§ў§§ћўћўћ§§ў§§ћўњ§§ўћўћў§§ћљ§њ§љњљўўљ—TE[PB§§њўћўћў§§ћќ§ћў§§ћћў§ў§§гћўћ§§ўћ§њўњўњ§њ§њ§њ§њ§њћњњљћўњ”P?NTQћўћ§§ў§§ћћь§ћўћ§њўћ§ћўћў§ўћўћў§§ўўћћэ§љўљ§ћ§њ§њ§њћљћћњњўўіВ`0AJIћў§ўўі§ўћ§ћ§ћ§ћ§§їћў§ўћў§ў§§Мў§ў§ўћ§§ўћ§ћўћўћўњћљћљћљњўў{;)&FH§ўћў§ў§ўћ§ћћљ§ћ§§ўў§§ћћўћў§ў§ў§§ћў§§тў§ћћ§§ў§ўћўњћјњљћўўпQ1;AIўў§ў§§оћ§ћўћ§ћћњў§ў§ў§ў§ў§§ћўћўњњћћ§§ћўћ§§ѓњ§ћўњўљњљњњћўўїj84>B§ўў§§љћў§ўћ§ћћі§ћ§ћў§ў§ў§§ўў§§чћўћўћў§§ћў§ўћў§ўћ§њњљ§ћћўўљ‚.2<;§ўўі§ћ§§ўћўћў§§ўъ§ў§ў§ў§ў§ў§ў§ў§ў§§ћўў§§ьўњ§љ§љњљћњњўўн|GWC8ўў§§ў§§ќўћћ§§єћўћўњ§њў§ў§ўў§ў§нћ§ћ§ћўћў§§њ§љљѕљјњўўх|PN4Cћўњ§ћ§§ў§§ќў§ў§§ўћ§§бў§ў§§ћўћ§њ§њћњћћ§ћўћўћ§ћ§њљѕјјћўўуN@8NFћўћў§§ћ§§ѕћў§ў§ў§§ћ§ћћиўћўћ§њ§њ§њ§ћўћўњ§љћњ§ћўњљјљљћ§ўћh<FдысдбЧЩкедаУНТгаЭЯЩЮдпххуцчшуртзмцььхцмлпнсщђючкаЭдйх?;(!)(FJ-(ЕљэлЪЭекдадЮаеЯЩСОМСгчусхэюђђщлйзуььцлкмдйлсщёщпдзкпн4-(&#$CUA-<™яјтррƒтмдтцтннжеЯЫЩЦЪллдппучлтремсцхрпйбЭзцучьпекухх(,0.*"#:BJЇєїшухтцсхсчшшычспбЫбдайлдЮгртткмндмэщрщыпкнчыщшчрппйB?;;7:5294QZЉсцщшчмШлхтхццттйЫЪббЮбШРНОЫйлйнрпзбчытщуйЭлптмсзЦРл+;02(*AxrCзсыцчгЧЯрр€:лкнзжФЮйкдкдУЖЕМЩЪЩЮйнснцыьччййелпттзШОЮ178.4%+GM*gНапзлбгйнуцрлзШЩайрцхрйЭСТЭййЮЫЭЫнрхснцхсрсшэыыэунб3.AMH!899oШджйслбдЮЯжйлЮШШдменкЮЫазлржУУНжхщёьштшчцщыююѓѓёярк- !&A:TпёаЯймгдШЫжрпрпкдпухдОКОТШЫОТЫЦСЩаймгкхуйлтчыыэышкд$32.AEЄяєхйлдгЯЦЩжрцчщшучшхкгзжбзЫЫФФЛДМЛМгкеЭемкпщуустур&)%!.$#+2dжєчмм§тхмм€хычнжейдншрмдйжбКЏЖАЋЏОЫШЩкпеддншщхчцскй0+.)$)!"#)$<:UЈющпршщэусуыхпнЫЩнхнйжзЯЫЮФЎЗЏЊАННУЦЧгзйЫекллхщчсп"#.)&1+$"%1?bхєїэёэёёюьчскЪРЩФЮЯЯйжЭЭббЭКДРЦТАЖУЫлкнлррслкзтлп#.,)5+%1+4L›яјщрпмлжгабгЪСУФЦРРФШЧЮбпспЮМЏИДЕМЧбдмхььппзезуу14-$13%%5;OF>@hЫѕпкжаазаЮйдЭЭЫЫздЭЩдктмнмкаЫУЩЫбйФЧШасллюђчєяеУ0,70(($3,$"8+HŸхьхррзаЩЪдмрЭЧШгЮЫаеЭЪЯЮжжбаЩегкхдюОЂЪУШЩОЁ‡{YC7$,$!*%$0:;@qзїєщэскпрруцркйЮТЏБЭытКЛШМЕЦцьЫОЌЄЃ„L@SaV<@QMB5!%&&0.+$.AA*3\ИљјёьэыщууптяєїжбждждЄŒžЇŒ[LIG;978?C**CQG3ANL?A)#%(!(E7>38jєљёэыѓђѕёсшьгЅgg‚cM)4J>:?<0@9-1%3$+8AG)2G.?G#$!)&"*<) Œљ§ћёюйНВŒunI&&O;C<57G>EIFG38<;4848.ZJ\9?-",B<5*)$(0"*+ $ŒЋ‰`]WF@CAH&->>3;85;`E.72.9:M$+,IEA@%*3,911SV:,(%&(+("#+%(A4%+10&*11&&"$!.Lp?2**#$!.0+.0.!**G<52&%$##% )&.("37<,%-1+ #"  2473*)470),8.&%(!"""",:-b,4?&:-$!,)&$.+0++25,& ".-+4+0-). 28!I:<^VдY…mS7:@*($"##!.1*"*8717034+(%)*23%#1$&!!47.2#"22@§Жn;>"%.&$%&&9T*2:E4)4#0N@7&.!&.0359,&(+)PjG2§ФwnE3#*$&# .+"!*,*<32#*7;B8**35:@BA@94>;E;BJJH?MLGE>495>;CILHPPLB>B<@GABBEABA?HJIC:њљ§§ОkBC?09.048%!+-)!"%4<5713HH:;CBC@CA<>BA9>9<;9>@A<7"2:?>8?Sєєїћ§ђЅ]7-329UaHF3++17::9>C?HBOQPHCA?#)0B39?A$*>VCJQ?,JSOJedqЇЌЉђєѕїњћ§зjQ8#2;GA.<<5*39AGSIIJSSJA88IP3>[N43B<9i}ŠШЭбсјћїѓєёшј§љюєїјјњ§§гФp+2?d[EMJH?GFNIGL9Y`28@58Qg}‡ŠДлѕьупњ§ћјјњњјјєєѓёюТрљ§њѕїў§§сЩО…QLLaS25TFHBE3>OS^”РСЭшэѓ§љњљљјѕєћћ§јјєєўјѕѕєѓЯѕНЈЕЯєћњћњљєя§ћЭ~`U-%BmYLPmŽКгптэђњњѕѓѕёыьяюђєѕєѓѓбяєєїјїѕёѕёѓєѕЧЋ’‡ЄЭђтлммсЗЋЇЇžŽžБЖЈДаѕљёђѕѕђёђђћяёѕїєєѕїЮѕѓєєѕѕјїјјћњјјћэзлуФ™ТЫЫЅŽСЩА›˜–Џдхжрхыј§§ћєѓєєѓђѓѓћѕёѓєѕѕїїљїјјїїѕљїїућљјѓюяєћшШгйЯБФЫЯБФУЮгкгрюєѕђђєїїѕєѓђїјѕјїїЗљњјїјњјјњњјњїљћјњљ§§ћѕїєѓяяэцчхьшпыхнжряяхьяєєљѕѕєѕїїєєђђѓёѕєєѓєѕјњјїјћљјјіњїѕїѕїњјљ§Ј"%-24;+HkHeьўјєєїєѓєєѓєѕєїјѕѕєєюёёђѓђёѓѓєѕѕѓєяыьыяяђѕїѕїєёэщяђёё&),*?BSE[>[юўєїѕѕєѓєѓєєѕѕ№їјїѕѕєѕѕїѕјїјјїјјъїјєђёѓєѓєѕєєђэьюяёёђ#))ёAFC?A97348$Ch8>FS>LтўѕёюёяюёёюяьђюяюыяяђѓѓгїјїјјђєѓєѕјјїјїєєѕјљњїѕѓѓђєѓC-)",(*NQ1&КўўѓѕђђшёђяђёёђёьщчыэёєѕѕєјїїѕїєєўѕїїўѕєєўїјјѕаєѕїјA8%&)AYF2BЈўўїѕєѓѓєїѓєїѕѓєђёяэюёюѓѕѕєєђїѓёѕѕњїљљїїѕѕдљјѕѕјѕєїѕ22547+34>NYЏўўїјѕїєїѕїјїїѕјљѕїєђёєђђюєѕѕљѕјєєјїїјћљїїєѕѕъјїѕјїєѕA<;;BA7>BHSœўўїїќѕїѕјјћїѕїїѕѕъєёѓђђёђєѓѕјјљјѕїљїїѕѓђђтѓѕїљљјїјCA42Cm[}Qnˆ™ўўјїјѕљїљјјљђѕѓєёєђёђяююёђѓѓгєѕђёѕѕєєђѓёєјїјјїєєѕFB:E>>C:SeИўўєїѕєѕёѕѕєїїєѓёђёяяђяёёюяяАёєѕјѕѕїђѕњјјєѕѓїѕјєѓяёё-(004$&4;~wHŠѓўјєёёяђяїѕїѕєѓюѓђёђѕђђюэюђѓєєѓёђђѕїѕѕјѕїєѕїїлєђєё2:<>;))13@N,zьљєѓђђёёѓєѕѕѓёѓѓђєѓєєўѓђђьѓђяёяёїѓјѕєїєѕѕјјїјљљлјєє1??JN+#3vьўђђёѓєёѓѓєєѓѓёђёѓѕєђђ§юэююяэыюьяѓєѕёѓєѕѕєѕѕїїФјїјє1 %15<<$[эўѕѕѓєѕяѓђёєїѕєѕѕїјѕєђђяяёюѓяьэюээяёѓѓяђѕїѕѕзєѕѓѕє+<477CPДўўљєёђёёєѓєѕїѕѕѓєђєѓђѓѓыэяэяыцыэёєёђѓѓђѓѕїєјїїєю,&**%!&!0&.7+pѓўћєєѓлєђѕєѕѕєђёєєђєёѓяђюяэыщццыщяѓђѓѕєєѓєєѕѕЅєѕє0231##,$$!+E@]Жўўєјїјїјїјѕѕѓюёєђѓѕєѓяёєёюьтчщььээьюэёђєѓѓђєѓѕѕїї"(0.2570"%)-InёўўїєїєєѕѕњяююэђёёЬюяэююяьэьчхчьыщюьђѓїѕїёѓёєђїѓ"#(47,!$)2*55QЃўўєѓєѓёёјђяэыэюяююяьѓяёюёьштьюяяьёђєєѕїѓѓшђјљ"(,-()#&)19JJBCiпўяяђђююяђюђђэюђэяёѓёђёєђђСюььэёюѓыщюљѓїўў§ўўра17;5.&(,.*5(&<,MЊўўљѕєѕѓєѓђѓёђяющыщьэёёэюьээ–ђющёњљўхОрмнрйТЈ‡iT*3(#,$,*(0:;rўўћєѓїљўўђёѓрЉn{”ŽuU8@WFBLC9BG5,4F49HNG:!8O3FL#,,є"0I8, "‹ўў€њјтЦК‘‚rQ++YGBC5EWIJVMG9>ABC:998[Vd;;52),9:>*10,(,.&57-#Ћ…bd`MLJHL)4C?89>:CpI5C34+*1>Q.$7;3WU;4+-.**$!&.9;83%(*(%)B3)5841*+,,%&&%)5FwB:5..,.37:;51.?HAA22$$)#(#)%#&,%*.*0!!490**$(*"&($(*(  $,,5880-7<7(("$.5;,,&,,""$)$(183-c-?C*B2()*)!$!$+0),,-80+-+43$&*2>>850&.3*<83*35+)88€д97-"),$7H@7"*$&:>:501-$#!+3UE<-$(,1-4::433435[jJ2ўЧ}qI91,$##!",$(021+&1083(1)*7C@+2*4AA>:9BE@ASSCўѕТЇЉx8"%.-)#-,&(*.,((+58+9:724;89EE<>AFC>BAC@@CMNFFOLўўШпh>4*.%*)*#(%!%+&#%24574BF;;8<7>@GFCF@?@:29A<<9758:;AA9€Ш7љ§ўўЦqCH;+7229,&+,$+*+,.9>@85COE98794;@><><;8991499><;<&3.;7482@HFHJFNNJF@;:FL.@cP75>?;bz‘ЂЪбелѓљєѓяђыћўњёїљњњ§ўўгЯw03Cg[@HNNJ@HCBB95WS35;83Ue|—Клђыср§ўўћљћ§њњ№ћњїјєєѕФнћўўјљ§ўўйЫУ‹VHJgU3>PEJ9B0?LP\™НУЩщёїўњ§§ћћјјњўћїїјїјиЛЉЖЭј§ўў§ћїяўїЭxaJ29gUIJhŒМЫлуёѓў§љѕѓєѓѓѕќљјїѕѕї§јљњњкљјљњћјСЈŽ|‹ŸЮѕнззптЕЅЁ›—‰›ЈВЉЏЮїїђѓјїєєѓѕєєїјјљљїїјњљљїјїїѕјјїљњњлљњњўыжжсО”РЯЩЁŒОЧЇ—’’ЎЯсдсхьљўћўїјїїѕѕўїјјўїјјљијљњњљљјјљљћњћћѕђђѕўщЫажгЏТЭЪЏТНЩездрђѕјѕѕљїјљљјїѕѕќїјїљљбјњњљњљњњљљњљњћњњљћћ§њјѕїєѓэыухцшхрчцлзнѓэцяѓїљјј§їјљљїєѕїјјїїѕїјњљњњўћњњўљњњ§љњћћ€гB9HPGQC]aqёўћѕјљњїјѕїєёёђїїѕёчыыьяьыюьѓђѓюёэщгЪЫейцёљїјѓѓьѓяїєїB>CGMUcWgOgљўѓєјїјїљєѕїїѕљїљјѕѓђяёьѓѓђѓѓѕѕєїјјяюшыщђѓљјјєєшьёѕѕјE4FHJVWUPH{ўўћїѕѕћєљѕѕїјјљїјїћљњїјљјјљјїјњѕјїјјїѕјѕјѕїѕѕђччёђєёя>FGPVMBoqWўўїјњјњїїљфјїљїљјјїїѕјѕїѕѕєїѕѕєљєјѕљєјєєжђьєяђющчхсжG@JLGOG^qd‡љўњђєјїѕљїѕєѓѓєѕљїљїїєњѕјїјєѕѕЭєїѓѓёючхяєђѓёяэхйкSHGJHL;HbkG>ЩўўэхцяььхчсышсйлЯЭзьђѓѓєїљїїѓяэяёїјѕђёюьяяђњњјюшшёѓїQPO@?F\qaMUДўўђѓяєђѓяяєєяёьяцумтпяяєяєѓѕяяэяэяѕєюѓющцэёљєїячёѓёєHGHGIGB@T[gЗўўїѕђєєїЛєїєјяючььшщьщтьѓѓїяюэѕѕјѕїєєёѓєѕїјєјєѓђѓaZWU[[INUV[Њўўїљїђєѕђѓїљѕјѓїѓѓюєюяэшпкяїј§њјђѓєїјјИєшчщђђїљњїљѓюZOQ\^‡r˜i‚œЌўўєєѕїђѕєљїњѓїєјјѕёютэюячрщяѓэєђюшыёюђђяэсщєєњјјмљѕїYUO[[@CZb7}кщђыьщшэёѓјѓяцхрхэєђїђђцззсхщлпхцёїєуюїђѓђђєљљїїѕюуWP\jmA>9COSO‚нцщчѓяыьчтьэђчукььэюёцтхыяёшегжщѓєјїѕђђѕјѕљѕћњњјљђѓI9)&).A@JWI,gљўэцєёючттяяѕѓђюєѓѓєёпакссхктухссмшюэыѓђёђїѕїљљїєюь08.-299GJTGP]ИўўїэюшмцтныѓѓѕѓїёѓђѓьэьюшустмйгЮзггчьыпцэюёјѕјїєѓђCCHFE>B??AEQ:ёўљѓёѓђѓюяэѓѓєшэыююёюыущэюлабШСШаржньёяюьѓђѕђјјѕёяI@EEFE9B8BGYUqТўўђєљјѕѕїѕїєюыццяѓђяюьэчщлЭЯЭУазпкзекшщхыцьщѓѓјєѓ27CQJPCB@9B>?]{ўўј€ЂїѕѓэрммхчууюччсьукЪЪЯгаЮЯзншюёђѓёѓяѓђєђёA;@HCJBA>CH>IH]ЕўўѕєєѕюячшьыцгечкмзлзртшьѕёчнЩЪЪамтыхяїљїёэюыёѓћGJMJE?>?C@`eeTZ|уўюяэччёяцьщщххтыыррьёёѓяђьхнмттсюскмхјђђўўќцжGMM€šJF@A@L@@AO?`ОўўїѓђььучшьэчрптпрхчрмхцщчцшхцуыњюўгМрдлтзОЄ”xbJ>>E@H@E:><@NQOQ…яўўјљѓэюєђђяђюящйШЪрўљддрбФкљ§хгУДБ˜bTj„oSYjdTH32:B:GIQOIHQ[]JMqЪўўјїїѕѕёђёёўўЭщпыёѓэМЎБЛžu`[[QJOT``BC\jcS\eoWV324H4GNMF<9FoVPHI‡ўўќљј§ўўЧёљўчЏz‚œЁ]>MaVS\OFOUGB:SFEWcUB1McNTi-,@CBGBC;7(BSM8#(Ёўў€щяжЦЁ’Žc>:eTVQCSgYbg]cNSSNIILMTqeuZMGEJ@N\PEMIQC<:3C9H>81#7žМ—qut]YbYg8BVQJTPUW‚\MYIJIBHTcG18GNW[]]FCHAOBMPU?HJFA93;A@BB@%)EETe[LZiZO>.;EIJJ30H?).rLGAFHHF5"#@OFHAJF9AC>@B;C8>JIOYTWOBriQFFAB?:?AF<<9O\YJEL@IC;HNSUJFJMJ[TQL?9>><;C>:<:B?<2EHEF>C,1QHFGEFE>@5>3,2B>A(&*?5AINJNJCTEG739@MSNM81FE?-5@?LWQBn+@USBTEG?9;?I.7*4;89*2::BE707<8:91%CJMLAIIWUNLSHLA89BHAIHNBILL98UhTH<947CN^\ўЪ‡SO2<77E>>49;79B@EE<>>BVpQPV\QNLBC:<03?LeWTIMGGEPOQUOJFIGFq‡eLўд•ˆ[N?J@C<7:?338>A44*11G5IPLL?HJPIGFHG?QVQAFLLOUTWSOMOZUQSdbZўўгСС—H4HGFC??9A@JGFG]ј§њўўСМtH;EF\n~b[NILEJNYSUWYVTU\PNON<1-3GLEEQ88NgQQcM7W[ZVop„ЕМЎљњљ§ўўаь{hO\h\$*48@V[djHTEТЕƒ[;A2@>5QVObeF>J]PZL11IGQŒoI0:C>.&4.*#2P4EpA,;15c5*E2*B]00C9#&^`<8:-.?UC.382AHE&:5,4AIV‹qB:CFHC43975$>;`pEFA40*,4BIE<9:;C:A.CNQnP&33*12<>.<0H<)Pmwd84??;.05,*)&,7C2%.91008AQF55BAC<324!"#!-("!)#(*Fzv)NiE ":98*+014..1&#$1943+%,?G8023,.#+(&+)5)*475EH@5EtjI5:0;+")5,55.1*0&(131$*()2;JH82))-"!PS*,&$(%,,"(:;:>;Jh]G5@584*..30*$32-271#11#$.TB:7#&!()$[hJF#+-01.LT4##2(+1--&4)4E+1+&7pH<,43B@>@9++""7AEEF>-)$#,74+A %?@38&4>P:*(*(13,)"*&0<,(0"5@Q4(*$$!..0(%+*8 )A&4,,(!(18*$8?:3501.%(+84@C<8#4#..889#4FF@A,*(("!)+#&,9[v˜B!%+%92+)*&%%,*$,-3-)+,0-.7N?)#489:&00)2)4-303+-,*--€ы&Lb•h4,(9948@:0)&3.").;?:A?>4"&!3*2;LTƒU28;4,"+4BHEELI@<8GC@809??:71:3209?>,38;:84;& *:Y@158>@GFA4;;$&OY[>@A9480?GLGOHEMIC.+2720188CAG- -aIPO?8,&;?:4?9;8<]CAHIA8;<<@ACA>?A5.49:18.289AA8..)$;*?JLONIH?48E;99C>>8818(%.2AFB74:3;A74::9?AGC19A<@:895.-7AG@7,I7NYQPUYPJGBCEE@CEIaVO@8948CMIG[^8?ZVMWWGHpu^VWPMH:BCNMMSIHc@.H72Nh77?>&1gp<L?A+84%!;>IO•v;>@JI>9;A<3*F0^|MEF:3:259ABCA<:<>B>8FPQuU"28@1(.47<;8,5%F;)Qo‚i8+BF?*4;3)-99:?99@;;€47GML84CE>;>?$)5"()(**244*223@ƒx7Tm@784..0+(4;5.32589<7127?F?45?;+.*:3033980#"##.3;AFFC(0($,.*+UW283+,,040-325AGA8OmhG;7<9&#,97.083,.-7815232%+.`HB:7++),..[mPB2;54<;PZ?&.++)24-5;4:N5+.+!:pIA44-::A?;>0!&&:GIH>A8*$*1155>07??€§9>BEU?0-+,2:5-1**,480),2AV;.(&#&)94-35+$+5#,L%27*#*%-<5+G@8;:91.88315:AIG7211:975$;JM;B,"%00&+#(@bzЂG"452,--.)+$+4+*099<;95440&:N9237<4B$01.)50.8472)&()$&)(Ogg827352:A><)+4535>CAB>E<8,&%&?(&8<27@GG<45b<;12:?9-%.%2->8058.9>2-0 +I099€˜:>;@@>57;1$1>EVC)%78BIHJFFEBEHNF??>08517<<:799;?:28<*(C\?39@AHLPC@<7%&SYVEC?737?CHBGJHHLE57;AC>83982:55:5588.04<5;8;79AbGEI@<@><>AAЧECCB90.9A@97284(%43?AB@>@;:4*7CINFA>>;;€О53;CGCAB<:5>?B<3.3:?HHE>:FGMYLNOSJCBAECCGBBHe\PC<9<>8@32&8ZOHJ25BENLLT]8?][Q]UELqqUQLFHE:AJGIMFJF;G[jrMONj`pmHQUEHe`Ž„ˆzoŽЎЊЉИРД–‡kQQbbC08:8O`Q@GHL>;8CHJLTOP;CCAVBFMLJFCNSTacUP@HAG>:?pvFHHG?AG9Jx]TPBLIC?BG@uˆhdIMIOLL`mU3A?ECQHEGMWPO[IMGF;UŠ`\HFLV\WUVOJI8JCP^\j`IN>>ABOIN`<%,MOVN@ON\pQE@AGHHUJJFENNECEBCWiW?BFB9HGGPICB@AU:*EbEMOP>BBNOOFB@.^TSLLFMJFFQQUOUa]ZIO@EIAA?;F3W|’ЏY&5LIGAJHOO>>CIEPJHHLVWGQOPB4PjNONFOOTA-IGAUFFHNJNFF9>Oo]ecNHTWb[]rrHYvxpp›`bˆƒbaZWUMHUYU][^]aP[nƒ…^e^|vŒ[kiZZwqžž‰ЎЩРНгпЩЌ™‚heu}UECNJevdGLVPJMIJdpˆONYYa\[z—‹•ЊШСУмеЩНЖЦЦРўўэ§шЦЕТцїгЉЁЈ‹‡”гнпњўўлgbzŽЂŽvˆЂ–˜ЋЇЎЅЁЊ’kp›ЊлћєччарыгТаѕўўАюлЏЗЏ˜rŒЛЊЏ‰Ž—ЋЫїўўћјјљИЕЗЩЫаРЈБЌВИ’ЂŸ—ОДЊБ’id|ЖЫŽiwkevN7S™ЇАЎž}o|‚mЦлЮЦУрљўўю§њњ§њ§їєћњњў§ўўїєўўЪѕмхЫЩїљуМЋбѕЧЋЋud}}~—›ЉЏ›ŸŸЛФЖЩКЃЛрьњѕјўћ§јћљћљњјњїљјљљјдњѕљљћ§ўўњѕўћјєээў§шьжЩЯУЭЮбмьЪЖВгСпяспђјћѕљјјНњљћљћїњїћћ§љћњ§љћљћњћћ§њћјњјљљћљњјњўўњѓцчыяїўњћѓуцѕјўњїїњїїѕљјљљћјњњј§њњћўћўћћћўћ§њћћ§њўћћх§њ§њћљћљћљњљњїљјљјњјњњљїљљјјўїљљѓїљљћјњњў§ў§ў§§цўћўћўњўћўћ§њ§ћўћ§§ўћўњњїћљљё§ћљљњњ§јњјњљљјљљўњљљњѕћўћўћўћ§њћ§§§ћўћћ§ћ§ќћ§љњњьљњњљљћљћљњјњљњјљњћљњњ№љћљњњћљ§њ§ћўћўћ§§їћў§§ћў§ў§§сўћўњћљ§њўњћњ§љћњ§њћћ§§ћћ§ћ§љћљ§§ъњ§њ§ћћњ§ћ§њў§§ћ§§ўћ§ћ§§эўћћњ§њћћўћўњ§њћњ§њћћтњ§њћљћљ§њўћћўўћўћ§њ§њ§ћ§ћ§ћўћ§ Xџўˆˆ ˆџˆџўˆˆˆ ўˆџџў€ЗжрсскмдбжмцчскшШb0BVPGAAFEC:-2@FB5mћ§їјљљћљљћњћљљ§§Тћў§§ў§њћљљћћљпьычржмщщшптрёк]>U\P59@A7>.9CMUF9„§§їљћ§љћ§љњјјћ§§Юњў§§ѕјјљљћ§њњрхэяхзйлцчзрыячmFb]\T;*),3;HHLS>>•љћјј§љј§§§ћў§§ќјћ§њњзўћўћэлцьынухсцрршянmAHLHBF><49A>AC??:‹§§їїўљњњ§ћ§ўўћўўењ§§шчцнеЮжрсплгнєсo?OP3+,+897.;<<152pї§љњњјјќњљљћћѓљјїљћњ§љ§љјљ§§йњулрЯШгйцрлпллѓнwJE>;4(2BQ-4:;1BUJVы§ћљљђњјїїѕїјљљјљњњ§§ћЯљ§§љњычслгЪетэпкЪЫэпrCLZEBGOT@A?789:+2:Аћ§їјјэњћљјћљљњњјћљ§љў§њљ§§гмншюэпзлдззяѓ–>LVMB:38:MchЦ§§їјјћјјљћљ§§ўњ§§бњ§њљњ§јјтмрчшшуштнждїїEY^TF>?>>C;99CEI1QЦћ§ѕїјјћљћ§ў§§љљјїћљћ§§№ћљћ§њњтхёїљѕьтхуухєрZ1QTJB,>:<44--7bwUUељ§їјљљ§ћјјљљћљћљјјљћј§ўўтюєїѕѕдяючушёФP2GNTC?9CIFCAMHSF-Hд§ћїњјјњћ§ў§њ§§љљћћ§ўњћљ§пђїїјЪѕєѓї§юz3-YJL>;:9:5?894,NJ…ћ§ћљ§њњ§§љјїјљљ§ћљњјћ§§ўћћњ§§еьюєєѕєѕѕєјћћЊJBNSL>75,421A:B:E@CGAgЌћћљћљћјљћљњ§§Эљ§љљњ§§ћ§§ўў§љљћ§љ:B<1.0JPESOJ??ANJ,1(*,;325.81+Wжћћўљњњћюљњњљћјјњїїњћњў§§љ§§н0FLSGELF9>A79:?792*)$".4..394§§єѕѕ§їњјјЫїѕїјњјїїѕїјјїћ§њ§њўў§§>8;?@GE8:9:;93947+*)-07;:;@B0(7:8?C>@0:-:33:<<.A?9AКћ§њјїјјћљљћћљћјїјљћљњњїїѕѕјїљћљ§§Я)488@981785M>-%$)-;7;:BGCH)4ž§§ћїѕїјњїїљїњјјѕїјљћћћњ§ћћ§§љкњћ**,5?AQPFiNB>4$!&$)0345•ћћ§ѕѕјјћћњћќњјјћћЮјљћ§§ћљћљћљјљ($&!"FEF93+&2@>945153,0)-.17;@<5^Рјљїѕїїњњјјњњјјѕїјљњјћљћљљ§§ўњ§§тњ§15>8ELLJ:3.9>9-.5).8T\Е§ћњѕїїўњћћќљћћ§§эћљїјњњїљјћћљћћљљћ§њњ§ч.?98LF@>845@aUBBE)3cЪў§§ѕѕ§їљјјШїјїјњњјћљљјїїљњњ§§ћљћћњјљњљјј5NJB7,80499O^97^[^Ёю§§њљїљїїћћњњјњњјыїјњјѓјњјјћњњћћјљњ§љ§ћћфљћUWNLHB;%:A?ENYF;‡ўўћћњўњћћљњњљ§ћ§§ўћ§§ћ§јљўјїїфѕљѕњўёtC\YO[C:58>CENSQ9B–ўўњњ§ћ§ћћўќ§ћ§ћћ§њћ§§ўлїћљїєѕєѕљїѕєњўљx>8F@AA@9<:3.HV89::4>TOWэўўћћјљњљљњљњћћ§Ыћ§ћ§њћћ§ћћљѕѕїїѕѕѓѕєѕђѓяўѕxAGOCBMO…U1A<@GL\Qvћўњњ§ћ§ћћ§їўћћњњљћњљљнјїїѕєђђѓѕѓѕђы§щw8FB@JФўўљњњыћњњљљњћњњљћњљњ§ћ§§ў§ўўкѕєїєїѓѓђєѓєђјѓЃ2-7B<;AGF?<;>?>84;Џўўљњњ§љњћћљњјћ§ўўћ§ўћћи§ћѓѕѕїѕєїєђђяђўўЅ@F]IC;?;8:B@<54FdnШўўљњњћќњћћ§§ѓћ§ћ§ћ§ў§ћ§њїјјїпјѓѓђѓяўў”EQYJA958;CF8;>?EFEBNMYI+Jжўўљљњњљњ§ў§§ћњњ§ћў§ў§§ћўћїѕљљїхјїѕњўє}3.LE;BC>98<:>9<0NLŠўўћ§ћќњћњћћјњћљњњ§ћўў§љћ§ћѕїїјјнїњўўЋPEGHGB833)+7:ABB5@OЇўўњњљњљњљњњњћњњћћњњѓ§ћћњ§њћћњћљїјјўљўўчеg12>FC>9841-9BFLNPM@Шўўљљ§њјљљўћњњћћ§ћ§ћћњ§ћњћ§ћћјїлљ§ўўїнЁbN8-GG@>@>7,7?M-&)A>@:9?@:4742?@GFEEAEoЌўўћњћњ§ћњћ§ћ§ћўћўў§ћ§њ§ћўў§ћћњ§ћ?C>8.0LNGBMI?:@?88*014;>85:92,[тўўћњћљљњћћ§§ћњњљќњ§ўћћє§ћ:IJNNGLE@>>щ9;9>3.0)#&1797584•ўўїјјљњљЮњљњљљјљњњљњћ§ћ§ў§§ћ?@@EEBA?4;?41312-)242.8:@?8?Fўўљќјњњћћњћєљћћњћњћњњљњ§§Яћњњ§ў79@BGC;-*5;;:;11)49;98>;@<<@HСўў§њћњ§њћћњњћњњћљијљњћћњћћ§ћ-.997@B<57@7.-,*.8:<9;A>824F‘яўўљјљњњљљїњ§љћњћ§§њњћњўћњњћцOOC98718>B:2040:A:90GДўўјќїјљњњљњїћњћћњћњњћћќ§ћћњњсћ§ћ9:>@@>C<7207;723743BA8[Фўўњљљњљњяћњћљњњћњћћ§ћ§ћ§ћ§§пћ§ћ§ћ;@@9:2038HbN?CE,2dг§ўўјїјјљјњњљњћћњљљћ§§књћњњљњћ§ћњњ;GFE;92.55?La@8gbgЉёўў§ћљјљљњљўњљљњќћњљњњўљњњўљњњћ§пћ§њћњћњGLJ@<>?2FB1:rZ`vАУўўњѕїјљњњўљњњќљњњљљђњљљїјјљљњњљћћњњћяA>B@5?;CZZMY`YzеўўњћјљјјљљўјљљњўљњњјўљњњќјїїљљћћњњљњњэљјјFCFF2HQGU@F{Ѕд§ўўњ§јљјј§ѕїљљэњљљњњјљљњљљњљјјљљјњњ§ьћ§ћњјјљ:.LFNOCLqЅЫёўўщњјњћњљњјљјљњљњљњњћћ§ћ§њњћћњњћњњљњыјљјћ§§ћњњљћћgu”Жзыѓўўњњљњљљјјўљњњћљњњћњњњћљћњ§ћћњќ§ћ§ћћњљјњљњњ§њћњњўѕўўљћѕѓїїјїїћєїѕјљљњћљћњњљљљњљњњљљћћїњ§њ§ћ§њ§ћћєњћћњњјїїјїјїїјїљўјљљўњљљњўљњњќљњљњњ§љјњњўљјј§њћњњњћњћњњљљћјѕїїјјњўћњњјљћћљљњњљљѕњљњљћјљјњљњњљ§њљњњ§љјљљјњєћљљњћљњњљњњљљќјљљњњћњћњј§њњљљћћњњљьћњњљњљјљњљњљњњїїѕїїјјќїљјљљјїєјљјјљљјљљјљњњцљњљњњљњћњњљјљљїїјњјїїјљјљїїьѕјјїїѕїјїѕѕїјљјљјїїјјњєѕєѕєїїёјљљњљњћ§љњњ§ћ§ћћћњљћњљљїјјљїѕјїїѕїїўјїїљѕєѓѓєѕїїѕєіїјњ§ћ§ћћњљљьјїјњљљњњћњњљѕєїјїљјїїјўїјјљѕїѕѕїєѕѕєњѕїѕїїѕѕюєѕєђєѕѕјјїѕєѕєѕѕїјјїћѕјљњљљчјљњљљјїѕїјљјљїїјїїјїјљјїѕѕћєѓєєѓѓэюьюэьёѓђѓђѓєѓяђѓѓєњњјљњњљњљљјјљњљњ§љњјјѕ§єѓєєђряьшюэшхььёђёяёёѓѓ§ћ§њћљљїјїјљјјљљїћњ§ћ§ћ§њљљћњљћћњњ§љјљљўјїїѕєђѕюђѓѓђэьюђєѕЮђѕїєюышёёјјѕяўпw?L[VYVY`^WTTHV^WIўўњћ§ў§ўћўћўћ§§ўўТ§ў§ў§§ћў§ўђњљїюыюѕјїѕїєўђvM[WYMUPIWLQQYdo`J–ўўћўћўў§ў§ћўћ§§ў§ўўЬ§ў§ўћ§ћў§ўєћљњєђэяѓѕѕј§ўљ‚Nc\TiTLFTQTVejiTUЉўўћўћў§ўўќ§ў§ўўј§ў§ў§ў§ўўжјѕњњѓяѓђѕѕѓђєўє…FEYWVWMJNMUUWWPVJžўўњ§њў§ўў§§ў§§§ў§ў ўЪђѕєѓшцщјєяящэўѓˆMVUIJPIIPMSIHNGNC„ўў§ћћўћўћў§§ћў§ўћўћўў§’ћў§ў§ўёяяхршэєєђюяь§ђˆOHEIJBB[uNVTZMTtbnњўў§ћўћўњ§њ§ћ§§ў§ў§ў§ў§§ћў§ў§ўїѓєђюхчїєјьчсўяLVWW\`kЁiUQ\Vdjpiˆўўћў§ўў§ћў§§ћў§ў§ўўћж§ћў§ўњўѕљјјѕѕєјїёррнћь‡FLHMPYqˆnH`SI@N\`Њўў§іўћўњ§ћўњћ§§іўњ§ћўћў§ў§§јђјїєхжсђђѓўчнzW`YPHB9MUj^`Za`]\Ÿўўћўћћёўћ§њ§њ§§ўћ§ћў§ўўў§ўўФ§ўєїєэмккньѕїїўўыiE[cMPYYVbg`d`^jNbдўўњўћўћ§§ћћў§ўћўћўћў§ў§ўўЭщѓєїђђэяёђьщёьЁ<5FUSOY[U\TYUHTMCNЧўўњўћўћў§ўћў§ћћў§§ўў§ўўи§ўыюђљјљѓђшшщёўўЊCOb[JOOTNSTWWYG`{ƒгўўњћћ§ћћўћў§§Цў§ў§ў§ў§ў§ў§ў§ўєѓєїїљѕїяяччўўЃU`dYNTSJV]^WJVd`Liпўўљ§ћўћў§§Цў§ў§ўћўћ§ћў§ў§ўћў§ўєљј§њћѕђђјяјўђm:LVSSPHN^dWTCM‚woэўўњћ§§ў§ўў§§ќўћўћћ§§ўћўўЯєљљ§њћљњїљѕўўдe;BFC@FOH.EMEЄўўњћћљ§ћўћў§§њўћўњњљ§ћўњўўп§ўSQ]\b]UOS]ZNGA8<:OFCEOJZSUP]`Єўўђ§њ§ћ§ћў§ўћ§ћў§§єў§ў§ўћ§§ў§ў§§рўMMZ`WWLLMPQCE<:8JPNMLSPSVSWPYЯўўњћў§§ћ§§Ьћўћўћ§ћўћўћ§ћ§њћ§ў§ў§ў@MOOT\YLILTL8;8[\chPZ‚Кнўўѓњўћўћўњ§њ§ћњћћіўћў§ў§§ћў§§ћч§њ§њћњ§њў§ў§ўћўћ§w‰ЎБШђѕўўћћўњ§њњђ§ћўћўћўћўћўћў§§ћўћў§ўўь§ў§ў§ўћ§њ§ћћ§ў§§ћ§§ўўњљњјњјњњєћњњћ§§ўћўћўћћўўњњѕ§ћўћўћў§§ћ§§ўў§§їћўћў§§ћћњњёјњјњљћљћљћљ§њћњњѕ§њћњ§њўћў§ћћїўћћњўћўњћћќњћћ§§щћ§ћўњ§њ§љ§њћљћњў§§ћўћўћћі§ћ§њўњ§њ§ћћєўћ§њ§њ§ћўћўћћўўћћёўћўћ§њ§њ§љћљћњћћў§ћћќў§ўћћя§њ§њ§њ§њћћў§ўћ§ћ§§ўўћћяў§§ћўњ§ћўћўћ§њ§ћ§§§њўњњќјћљћћсњ§ћ§ћўћ§њ§љћјњљ§њ§ћўњ§њ§њўћўћўћћшўћўћўћ§ћ§њ§њћљ§њњљћњ§љћњњѓљћљњљњљњјњјћњњкћњњљћљћљћљћњљљњњ§ћ§ћ§§ўћ§ўў§ўћ§ћ§ћўћћњњяћњ§њ§ћњњ§њћљћњњјњњєјњљљјњјњљњјљљиїљљјјћљњњћ§ў§ў§ўњ§њћњћњўћўћўћ§ћўљћњћљ§љњњіјћљћљћљњјњњљшїћїњјњњљїљјљјљјљјћјњїћїљљвјћљћљћљћљњј§њ§њ§њ§њ§њ§њ§ћ§њћјњјћњ§њћљ§љћљћљўљњњсїљљјїњјњїњђѕёѓђљїљїљїјїљѕїїјћўћћљўћўњ§љћћгљ§њ§њ§ћўћў§ўћ§ћўћўњ§љћљћјљјїјјѕљѕѕєѓђєёёяїєѕєєьјїї§ў§§ћўњћљћљўљ§њ§ћћ§ђў§ў§§ћ§њўћ§§ўћћі§њ§њњљњј§љљёјѕљѕїѕљїјѕїјљѕљ!џ!џ!џ!џ!џ!џ!џ!џ!џ!џ!џ!џ!џ!џ!џ џўˆ џ џџўˆџџџџўˆџўˆџ!џўˆ џўˆ!џў€"џўˆ#џˆџўˆ$џўˆ+џўˆ, џўˆ/ џўˆ0 џўˆ1 џўˆ2џћˆˆˆ3џўˆ7џўˆњујѕљњњћљјљљ§§љјѕѕљјљњ§§ћћ§§ўў§§ињ§§њ§§љћћ§§њ§јћњ§ћљ§ўў§њ§§њ§њњ§љ§§ўћњњљ§§юњ§§њ§ћў§њ§ўў§§љњ§ўўѕћњ§њњ§ўњўњ§§ўњўўљњ§§ўўћўўѕ§њљћ§њўўњ§њњ§§њ§§ўоћўћњљћљњњћљљњњјљљћћњњ§њ§ћљњ§љјљћњўў§ѓњ§њћљјїћјїјј§§йћјњ§њ§§љћњ§ўћћўњ§§љјљћ§њ§§њћљљњ§§їў§§њ§§ўњ§§љ§љїјїѕљњљћњ§§эњљћљјћћјїљ§§ћљљ§љ§ўў§ћљ§§њўў§ћћњњљјјњљћ§їћ§§ђњ§њ§ћњ§§ўў§љљ§§ћ§јњ§њњ§ћћўўќњ§§ўўјњљњ§§њћјјћљћћљњњіћљјљјїјљњ§§ўћўў§љў§ћћьњјћ§њ§ћњјїїљњ§њўў§љ§§љљ§ћљћјћћољћљјјњљћљљњњјњјћљљћљљћћљћ§њљћјјћћјјўљ§§ўюњљјїјљјћћњјјњљљћњ§§ўћ§§њј§ўў§љљћ§§љјћјљјњїїўјљљѓћљјљњ§§љћњїљјјѓћљљј§њ§§њњѕ§љљћєњјўўћ§ўћў§ћљљє§ў§§љ§§њљћћ§§ѕљјћ§§јѕѕїѓїїќјњћљљћ§јљ§§яѕљјјїњјћљњљљћљњў§§ўњ§§ўњ§ўў§њњљПјћљњњљћћљ§§њ§§ћљњћћјњїњјњћјјљљњјљ§ўўћўћўў§ў§§њљўћў§ћ§§њ§§љ§љљјљљјјмћ§§њњ§њњўњљћљ§њљѕћћљјјљљјћљ§§ў§ћјњјљљў§ўў§§њљ§§їћљљћљјћљ§§§љњ§§њ§ћіљћљ§њ§§ћћ§§ўњўўмћўў§§њњ§ўўњ§ў§їїѕјћњњ§§њћћ§§љјјѓїјљњњђћњњўў§§љјљ§§њ§§јћљћћ§њњ§§ќћљ§ўў§њјњњљ§љїѓїћљјњћћљљіћљњћљћљјљ§§юњћљљјњњјјњјћњ§њљїњњщјћ§ћљљћњјјњћ§ўўћћњ§§ћћљљўњ§§§ћљћћіјїєљњ§ћћј§§ћљ§ћњ§§њ§§ћќ§ћњјјєіљјѕљљѕјћњ§§ѓћњћљћљћљїјљљћћ§љћљљђ§ўў§§њ§ўћўњ§§ћћэ§ћўўњљ§ћћїљїїѕјљњјљљјћћ§§њ§§љућњњ§љњїљћ§§њ§њљ§§њўћў§§ўў§љљћћѓјњјљћ§§љљјјљ§§њє§љјњјјїљїѕљњњјќїњћ§§§њ§ўўєћў§њњ§§њ§§њ§§ућњјїљјћљ§§љјћћ§§њ§љњ§ћјјњјїљїїѓљјїљїћћњ§њўў§§ўвљўўћўўњљљњљљћ§ўћўћ§ћљћљћљњћњњјњњћћњјїїјјњњљїї§§ћѓ§њ§§ћљћћјљћћ§§ћћјљћњјјёћњ§љ§њ§ћљћјјњјњњїўљјјѕњјјїїѕјѕ§§ћћє§њўўњ§§ћјћљћћѕљїјљјјїїјјљљ§јћјјўєћћъњљѕїјљљћ§љћћ§ћљљјїѕєє§§їњ§ћ§ћћљљћћћјњјњљљњћ§ћљљјјјљњ§§ћјљћћљљћљљћћ§§§њћјјќњѕєѓѓђњ§њ§§њћљјїєљћјјяњјјѕєѕєѕјјїњїњљїјјћфѕћњїїјћћ§§ћњїјњјјњјїљѕїѓѓєћ§§љћјњљћљљѓћјњњљљѕјјљїљїїљѕїѕјњјћћђњјјїїњњјљїїѕїєєіѕјњљљћћљћ§§чњ§њў§§љћ§ћїјњјјїїјљљјњјћјјљјљѓїњћљјјњјїљѕѕєєќѕїњјјќњћћљљ§ўњ§§љћћљљїљљћљљјњњєјјїїўѕњњјїњќїјѕїїјѕљњї§§ћўў§шљњњћљћјјћћњїѕїјљћљћћјљљћћљљћњјјњјјњјнїѕєїѓєєѕїїљћћљњ§њўў§њїїљјјїїјјњїѕєїї§јћјјкћњљјјѓѕњљљћћјєїјњњјљћјљѕєѓєѕїїљљ§§ћјљїїеѕљјљћћјјїљїљїѕј§ћјњћћљљњїљјћ§§љљћљјљћћљњћїѕѕэїљљїјјћ§њњћњїѕїїјјїїѕїјњјјљјћљћњњїїђѕјјњњљћљћћљјѕєєѕїјњњљјјљјњњкљїїѕїњњјїњћњњљљјїїєѕѕїѕјїјјїїѕїїљјјїїјј§їѕєєѕїѓњћћљјїѕњјјњїѕѕиљјјљїѕѕїїњњјћћљљћїјњњјїїјјїњјћјљћјљјїїѕєєёѕїљїѕєєѕїљїјїѕњњћўјћћўїњњљњћќњјљїїяњљљћћјјїїјњјїєєѓєєјѕїѕѕњњљјјќљћњћћўљјјїяњјїїѕјїљјњїѕѕјњњїї§љјћћјјїјєѓђѓїѕѕьїѕєїѕїљјїїјћљњјјїћјњњхјїїѕїјјљїљїјљћјјљљњѕїјљїїјћћњљњїїѓђђєєѕїјњћњїїѕѕїїѕїђљјїјњјјїѕјєѓєјјўњјјўѕїїљјњњљїјїї§ѕєѓѓђѓѕєѕїњћћљј§јњѕѕ№љјјїїѕљјѕљљїїѕєѓѓїѕїљѕїєѕїјјњљшјњїїјїїјѓђёѕѓѓєјљјїњњјјћћљъїјњљњњїѕїєѕјєєїєяєѕѕїѕѕљїњњјјњјјъљћћјїљѕєёьюяяёђєѕїїјњјјљћћјјѕїїјѕќїљљѕѕїќљѕѕїїђћєїјјїїђѕяёююёыяёѓїѕїњњщјћњјњјјїѓїѕїјњѕїїјћћњѕјјѕуљјњјјљ§§љјљљјїјїёѕєѓђяёюэёяђєєѕѓїњљјїњїїњњјњљљї§ѕїјјћїѕѕїјј№ћ§§љјљјјњљјјѕѓѓђђљёєёѓєєїїяѕєѕјєєђяѓїєѕїїњљ§§њїѕѕљїјјїћљњњћ§§ѕћњјїїѕєѓђёђђѓіѕљљїјњљїѕїїўѕїїюјѕљњїњљјјњїјјћљјјљљзњ§јїјјљјљїєєёѕђёяьёѓђєєѕїњћћ§ћјјњјљљїїћїјјуѕїљїїѕѕјљћњїїјјћћјћћ§§јњјѕјєѓѓњєђђѓѓєєўјїї№єѕїјјњјјљѕљњјљљјјњјїњєѓєёѕјјєєїѕъєїєђююэяяёђяёђђѓєѕїњњјјїћѕїѕїјјХњјїїѕѕјљ§§љјјїїјёђяьюяђђёёяэюяьяёёђєёюээюёђђєѕѕєѓєѕїљїљјјѕїїќєѕєїїяљјјћћљљћћјјљёёяђёёіэыюёяёѓяђѓѓњєђёђѓѕѕцјїѕєѕљїјћљљ§њћћјїѕѓїїјњјњїїјљљћјїїђёёђјэыщюяюёђђѓцђѓѓђюђѕѓѕљїјћћњїјћљјїљ§§јћћњјљњѕїјњњјјї§ёћ§§њћњћћ§ћћ§ў§ћћ§ђћњњ§ћў§§ћ§ћ§ћ§§ћќњћћ§§лћњ§§њўћў§ћ§§ћ§ћ§§ћў§ћўў§§ўћ§ћ§§ћћ§ћў§§љўћ§ў§ћўўљ§ў§ў§ў§§юћў§ў§§ћ§ћ§§ў§§ћћ§ўў§їћњ§§ў§ўћ§§єћ§ћ§ћ§§ў§ў§ўўљ§ћњћ§§ћћ§ћњ§іњћ§ћћ§ћњ§ўўўћ§§юњћњњћњћњ§ћ§ћњ§§ћ§ћћўњ§§ўў§ћћўњ§§єћ§њћћ§ћ§ўўћ§§ўћ§§ъћ§ћ§ћ§ћў§ћћўћњљјјљћњ§ћћќ§ћњћћњћ§§њћћіў§§ў§ћћ§њћћ§ѕў§ў§§ћў§§ћњњјћњћћњ§ћ§§ыњ§ћ§§ўћўў§ћ§ћ§њћњ§ћћ§§ўћўўњ§ў§§ћўў§њў§ћћ§њњћћњњћљљэњћњћњћњћ§§ћћўў§§ћ§ћћњъљњњћ§ћћљњњћћ§ћ§ўўћўћ§ћћќњћћњњтћњћњњљћњћћљљњљњњћћњћћњњћњћ§ћћњњћћ§ћ§ћўў§§ћњњўћњњ№љњњљћћњ§ћ§ћўћ§ћ§§№ћў§§ћћњћћ§ћњћћњљљўњћћѓњћ§ћ§ћ§ћњљљјњњћћ§ћ§ћ§§ћјњљњў§ўћўў§ћњћћўўћћю§ћ§ћњњћћ§ћ§ў§њ§ћ§љљўњљљќњљњћћїњ§ћ§ћ§§ћњњэљњћћ§ћћњћ§ўћ§ћ§ћ§ћўў§іћ§ћ§ћ§ўўћ§§ћѕ§њћ§§ћњњћћ§§ћўљњњћћљњљњњћљљњћћў§ўўю§ўћўћћ§ў§ў§§њ§ћ§ћ§§ћќњћћњњ§§ћ§§цћњћ§§ћ§ћњћњњћћњћў§ћўћњњљњћћ§ў§ўў§ёћ§ћ§ћ§ћ§§ћћ§ћ§ћћќњћ§ћћќ§ћ§ћћљў§§ћ§ћ§§ђћ§њў§њћћ§§ћњњћћї§ћ§§ў§ў§ўў§ўћ§§ѕў§§ў§њљљњњ§§јћ§њњћ§ћњњќљњћ§§ъњ§§ўў§ћћњћћ§§ћћ§њћњњћ§§ћќњћћўў§ћђ§ћ§ћћ§ћњћњљњњћћфљњћњћњћћ§ћ§њћћњљљњњљњњ§ћ§ћћљљњє§њћћњљњњљњ§ўў§ќћњњћћ§ћћ§њћњњљєј§ћћњ§ћ§ћћњћћі§ћ§ћћ§§ћ§њњљћњњћћљњњћњјхљњњ§ћ§ћ§ћњ§ћћњћњћћњјјњњћњћњњ§ћњћћљў§§ћ§ћўў§ўћњњэћў§ў§ўћћњћјљљњњћљњћћњўћ§§пћ§ћћњљљ§ћљњћњћћ§ћ§ў§ћ§§ў§§ћў§§ћћњњќћњ§ћћњћ§§ћ§§ћіњљњњљјљњјљљњљіњ§ћ§ћ§ћў§ўўјћ§§ћћ§ћ§§хћ§ћ§ћњљњљјњњћ§§ћ§њњ§ћ§ћћ§§њњћљњљјљљюјњљјљњњ§ћ§§ўћ§ћў§ўўў§ўўц§ўћљћћњ§§ў§ўћњћњћњћ§њљљњљњњчљњљљњњљљјљљ§ћ§ћ§ўўћ§ћ§њћњњѓћњњћ§ћћњњћћљњњњ§ћўћ§ћћњ§љњљљћћљљјњњѕљњњљљјїј§ћњњіћ§§ў§§ћћ§ћћўњћћїњћњњљљњњћћњўћњњљћљјјљњћћўњћћюњљјїїћћ§ћ§ћўћћњћћњњќљњљћћњќћ§§ћћ§њћњњђћњћћњњ§ћ§ћ§§ћњњэљјїѕѕї§ћ§ћ§§ћћњњћћњњўљњњјіљњњљљћњјљњњћћњ§њљљњ§ѓћљљњљњњљњљјјѕѕћїњћ§ћћў§ћћћњљћњћћњљјњќјљјљљјєљњљњћњћњљњњљљјњјљљјѕѕїїќјњљћћњњћњ§ћ§§ўўћћњѕљњњћњњћћњљњњћњјљћњќљњљјјїќјљљњњќљњњћћ§§ћ§ћћ§јљћћўњћћљњљњћњњљљњљ§їјљљјњ№§ћў§ў§ўћ§ћћљљњћњњјћњљљјљњћћњћѕњћњњћћљњњљњњљњћљјїѕїїјјљљјњњћ§§ќў§§љљўјњњљћњњљљјљљњў§њњќћљћњњљћњћщ§љљ§ћњњјјїѕїјљњћћ§ћњњјљљј§њћњњѓљјљјљљ§ћњњљњћћљћјњњ§ћћїњћњњў§ћљјјћљјјљњњ§ўњљљњљјљњўљњњњћ§њћњљљњљїћњћћњћњјїїјљњљњјњњћњљљћјљљњљљђњћњњљљјјњљљјјљљњљјњљљјњњћњњ§љјїїјљєћњћњљјљњњљљјјњћјљјјљљњ§ћњћћњіљњњљљњњљљњњћљ§ћњљљјїїќјљјљљјљљјљњљњљљњњ§њћњћљљј§љњљљњќљњјљљћђњћњњљљњљњљјїєїїјјљјјљљћњњўћњњўћњњўћњњљђњљљјїљјњљљјљњљљўјњњўћњњјљїїѕєѕѕјјёљјјљјљјњњћњћћљњњљњѓћљјљњњјљјљњћњњћјљњљњјљљњњёћљљѕѕѓєѓїјљњљњљљўјљљјљюћњћњљњњљјїїѕїїњњљњњљјћњљљјљњљљ§јїѕѕєјїјљљћњћ§§ўљјјњљјњјљђјїєѕїјљјјѕїјљњњљћъњљњћњљљїѕяђєѕѕїїјњњљљњњјћљњљћљљћјѕїјїїўѕїїќјљљјјљњўљњњўћњњјёїђѓяэёѓєїјљљњљњњћњљњј§њљјјљјљњўћљљљњїђђяюђђѕќјљњљљњњљњњљњљљњњљјљљњњљњсљјјњљњњћћ§ћњјјїљњљњјїѕєђюяєєїѕїїјљїјљњћњљљ§њљјјљ§њљњњћљјјљњњњћ§ћ§ћњњљћњїєѕѕєєњђєєїјљљќјљјїїљѕїѕѕїјљљћќ§ћљјјўљњњљъјљљћћ§ћ§ћ§ћћљњљљјїєєђєєўѕјјћљњљјљљўјљљєњљјљћљјњњљљњњїћњњћћ§§ћњњјћњјѕїїјєєђєѓѕѕїїјљљћњ§њњјўћњњљїјљљјјњћћљљњѓ§њњћ§ћљњљїїєѕѕ§ѓєѕѕїљјђљњњљњњјњјљњћћњњљњўљїїјїѕјэїѕїѕѕђюыэяэђѓєєѕїјљљњљћјѕјљњњљјжњћ§ћћњњљљњєѓђяёѓєєѓђёёяэюёѓєєѓѓёыыёђєѕїјјїїјјљјљјњњљљўјљљћјїњњћћъњћњњћѓђђяѓђѓююёѓёѓђђєѕѕњїєѓєѕјј§їљјјќљњњћћў§њњљљњљљњљњљљњьћњњљљєђѓђєѓёышьяёђђєєѕўєѕѕїѓѕєєїјјљњњљњ§ћњћћў§њњљњљќњљљњњљћ§ў§ў§§ўў§§ёў§§ћ§§ў§ў§ў§ў§ўўъ§ў§ў§ў§ў§ў§§ћў§ў§ў§ў§ўўњ§ў§ў§ўўў§ўўў§ўўќ§ў§ўўў§ўўќ§ў§ўўў§ў ўќ§ў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўўў§ўўњ§ў§ў§ўўќ§ў§ўўљћ§§ў§ў§§ўњ§ў§ў§ўўќ§ў§ўўэ§ў§ў§ўћўћўћў§ў§ў§§ўўќ§ў§ўўј§ў§ў§ў§ўў§§ў§ўў№§ў§ў§ў§ў§ў§ў§ў§ўўјћ§љ§ћў§ўўѕ§ў§ўћ§ћў§ў§§ўў§ўў§њћ§ћў§ўўў§ўў№§ћўћ§§ўћ§§ў§ў§ў§§§ў§ўўє§ў§ў§ў§§ћ§§ўўќ§ў§ўўў§ўўў§ўўћ§ўћћ§§ћ§їў§ўћў§ў§ўў§ыў§ў§§ћћ§ў§ўћўћўћ§ўў§ўўѕ§ў§ўћў§§ћў§§ўў§§ђўћћ§ў§ўћўћўћў§§ўў§§ќў§§ћћ§їўћў§ў§ў§ўўюћўћ§ћ§§ћћўћў§§ўў§ўўќ§ў§ўўќ§ў§ўўѓ§ў§ў§ўћ§њ§ћў§§ўў§§ѕћњ§ћўћ§ћ§§ўўє§ў§ў§ў§ўћ§ћўўњ§ў§ў§ўў§§ў§§ўћ§ў§ў§§ўў§§ыњ§ћћ§ў§ўћ§ћ§§ў§ў§ўћўћћљ§ўў§ў§ўўњ§ў§ў§ўўј§ў§ў§ў§ўў§§ў§§§ћў§§юў§ў§ўћўћ§§ўњћћўћўћћћ§ћў§ўў§ў§§ў§§юў§ўћўћўћ§§ў§ў§ў§ў§§ёў§ўћў§ћћ§§ћћў§ўўј§ўћў§ў§ўўю§ў§ў§ў§ў§ў§ў§ў§ўћ§§іћ§ћ§ўў§ў§ўў№§ў§ў§ў§ў§ў§§ўў§ўўћ§ў§§ўўќ§ў§ўўў§ўўў§ўўј§ў§ўњ§ћўўђ§ўў§§ў§ўћў§§ћўў§ўј§ў§ўћў§ўў§§ў§ўўњ§ўў§ћўўћ§ў§ў§§ъў§ў§ўћ§§ћћ§§ў§ўћ§ћўћў§§фў§ў§ўў§ћўћўћўћўћў§ў§ўћўћўћў§§ћћўћ§§ўў§§ў§§њў§ў§ў§§щўћ§љ§ўўћ§§ў§ўћў§§ћў§ў§ўў§§ў§§њўћ§§ўћћ§ўћўў§§ўњњф§ћ§§ў§ў§ў§ўћў§ў§§ћћњњ§§ћ§ћў§§§ў§ўўў§ўўњ§ў§ў§ўўщћ§ћ§њ§њћћўћў§§њў§ў§ў§ў§§јћў§§ћў§ўўќ§ў§ўўў§ўў§§ћў§§іћњў§ў§ў§§ћћ§ў§ўўќ§ў§ћћў§њњў§ћћї§ћ§§ў§ў§ў ўя§ў§ў§ў§ў§ўћ§њў§ў§§ыў§ў§ў§§ћўћћњ§њ§њ§ћ§њ§§§ў§ўўў§ўў§ћў§§ў§ўў§§ўўћћіўњ§§ћћњњўћћї§њ§§ў§ў§ўў§пћ§§ў§ў§ў§ўћ§ћ§ћўћўћ§§ў§ў§ўћў§ўћўћћњ§њ§ћўћћіўћ§њћљћ§ў§§§ў§ўўь§ўћ§ћўћ§ћўћў§ўћ§њўћ§§љћ§ўћўћ§§фћўњћњћ§§ћўћ§ћўћ§§ўњћјњўў§ў§ўўќћ§ћ§§ђўћўћ§ћ§ћўћ§ћўћћїў§ўћў§ўћ§§ќћ§ћ§§јў§ў§ўћўћћњјљљ§§ўўс§ўћ§ћўћ§§ћћўћўћўњћљћ§ўћ§ћћњ§њўћћ§ћћ§њў§§ћ§њўћћѕ§њћјљїњ§ў§ўўў§ўўћ§ўћў§§дў§ў§ўћўњ§њўћ§њ§њ§њ§љў§ўћўћ§ћ§ћўћ§њўћћњ§њћј§њњћѕ§ћ§§ў§ў§ў§ўўШ§ћўћўћўћўћўћ§§ўћћ§ўћўћў§§ћўњ§њўћ§ћўћћњ§љћћњјћњўћўћў§ў§ў§§њў§ў§ў§§ћўћ§њ§§йўћў§§ћўњўћўњ§њ§ћўћўћўћ§њ§ћћњћљ§љ§љњњў§ўў§§ўћћё§ћўћўћ§ћ§љ§ћ§ћ§§њћўћ§ћ§§ѓћўћўћўћўњћћўћћ§§ћњњўљ§§ћў§ў§ўўї§ћњ§њўћўћћѕњћљ§њњћ§§ўћћјў§ўћ§§ў§§ћћўћ§ћћ§іћњћјљјћњў§§№ў§ўњ§њ§ћ§ћў§§ћўњњч§њ§§ў§ўћўћ§§ўњ§ћ§§ў§§ћ§ћ§§щўћ§љћљћљћљ§њњ§ўћ§§ў§§ћ§§љњўћ§њ§ћћї§њўћћњћћ§§рўћўњ§њ§њ§њўћўћў§§ћ§§ўљњјњјћљ§њўћћђ§ћў§ўћўћ§њ§њ§ћћуњ§ћћњ§ћ§њћљ§њ§ћўњўњ§њ§њ§ћўћўћћъњћјњјћљ§њћћ§§ўњћћўћћњћћђњўћ§њћљ§љћњћћ§§шћўћћњўњ§ћўњўћ§ћ§ћ§§ћњ§љњњ§јћњњђ§љћљ§њ§ћ§њўћћ§§ћћ§ћўћћя§њћњўћћ§§ћћњ§њ§ћ§§эћўћ§њўћўњћњћњњјњљ§ћћі§ўћћ§§њ§ћ§§ућўћ§њўћ§њћљ§њўћ§ћ§ћўћ§њ§њў§§ћћїўњћјљјљјћћЮљ§љћњћњ§ћўћўћ§ћўћў§ўћћњћћ§љ§ћўњ§њ§њў§ўћў§ўњ§ћ§њ§ћ§§фћњњљњјњјћњўћ§ћ§њ§љ§њ§љћњ§§ўћћљ§љћјљњћћўу§њ§њ§ћўћўњ§ћ§њ§ћњїљїјјљјћњћћ§§ћУљћњўћ§њћњћњ§њ§њћјћїњљ§њћњњћ§њўћўњўћў§ўћўћўњ§љљјљїљїњљ§ћўћўћў§§ђњ§ћў§ћћњљњјћљњњХћјћ§§љћљћњўћўћўћўћў§§ћўњћјљјїѕјїјјћњ§ћўћўћў§ўћўћ§њ§њ§ћўљћњ§§ћљћљћњњщћљ§њ§њ§ћћљ§њћћ§њ§њњїљјїїјѕљљњљњњћћѕўћ§њћћўћ§њ§§ѕћўљ§њў§§ћ§ћћќ§љ§ћћю§ў§ўћ§њћњўњћљњљјѕљљќјћљњњЮјњјћљћћўљ§њ§ћ§ћ§њўћўћњњ§њ§њ§ћўћњљћњўћў§ў§ў§§њћњ§ћљљўїјјњкћјћњ§њћљћљњњћљљјњљ§њћ§ў§ўњћћ§њўћўњ§њњћћцў§ў§ў§ўћўћ§њћњћјљјјѕјјћљћњњнўћ§њ§њ§њ§њћњ§њ§ћ§њўћћњўћўњўћ§§ўћ§ћўўйћўћў§ўњњјњњљѕњѕњїљљњјћњўћ§§ўћћњўњ§ћў§ўћћў§њњў§ћћщ§ћћ§§ћў§§ћ§§ў§ўћў§ћњћїљљјђљїљјњјљњ§њћћ§ћћі§њ§ћў§ўњўћћмўјњњ§љћљњјњјњјћљњјњљњѕљїјєљѕїјјљњљ§ћћдњ§њћњћњћћўњўњ§љћћ§§ў§ўћњњўјњѕѕєљјјїљјљїјљјїјјєїєѓѓєљјћњћљњњяљ§њ§њўћ§§њњ§љћљ§њњћю§ћ§ћ§ћўћ§їљѕјїљїѕєєђјїїѕјљљїљјјїјљљђћљ§љћљ§њў§ў§ў§§§ћњ§§йњўћўћ§њ§§ўћ§§ћњ§јљїљјњѕѕёїїјѕљјјѕјјљїћљљъњјјљњћ§њў§ўћ§ћ§§ўћ§ўў§§їћўћўћ§њўћћ§ўћ§ €§јњћљјїєєѕѕњѓѕїїњјјљњїїјњјїїьѕѓѕщнЦмЮпэєяюђѕїјћњ§§ћњ§њњ§§ъљћљ§њћћљћћїјїїјјњјїњјћћљмћљјњљљїїѕїљїєђћщВЉНкхыюѓѕїјљћћ§њ§§њ§§пљ§§ћљћњњљѕїњњћљњ§њљљјјњјјћљњјїјјћћђјѕїјѓрТУакмчяѓѓујњљљјњњјњїљїњј§§ћљћњїѕѕїјљћјћћ§ќћљћљљјшњјјїѕїїѕѓђђѕьччпрцыэююяѕѕђѓєђѓєїїєјјћљљћћўїѕѕїўљїїњјјѕїїјѓљћћјкљєєђышупнпцшыэёяыщышьяђёёькћјїњњїѕѕјјїїћјњјљѕѕќљњћљљјнљћјљѕїѓёэшщцшыэююђёщчухыьхчшцм§њљљњњўјљљјјњјњћјљјјўњјјќљїјїїјљњїѕєѕєёёяяёэьшчучщэщцуттцћћњїњїјёњјјњјћјљјјїїјјљљнћљјљћљјљѕѕїљїјєѓђђѓђёюыээюэюээыщыюїїєѕєєѕїїњјїњњјјјњјѕљћњњћћњќѕњљјјпљѕљљјїєѕѕјїїѓёэюяяѓёєѓєєѓљћћњљїѕїїщњћјѕїјјњњїћљњњљћљњјїњњјјіњјњњїјљѕјїїѕљјїєяѓѓѕѕјѕѕ§јѕћћљўћњњёљїљњљљњїїљћћјјљљћљћњљїїјјїхљѕѕїїѕђѕїњјѕююђчѓѕњјјњѕїѕњћћіљћљћћљјћћ§§эљћћљљјїјњћ§њ§љјјњњјјќљјњјјїўѕєєњјљћјјїїмѕїљњјњјњњјњњїљљјњњљљїјјћљћљћљћљћјїљїїњјњљћћїїѕјћћјїїјјљњѕѕўљїїЛњјњјћљћљћћјљєђѕѕїїјјњјјњћљљњјјїїњјњњћњ§§љљћљјїљїѕїїјљњљљњљѕѕјєѕїјњѕљјјљїфѕљїљљјјњїјњјїїјјћћљљћјћћљјњјјхљћјњљїњњјјњњєјњњћјњїїљїїњњћћўњјјћњїљљїїјўљїїњјљїѕєѕѕїўњїїэљїњјјљјєѕїњћњњћњјїњњ№ћљљћјјњјњјњњћћљјјањјїњїјљїїљїїњјјћљјћћљјїљѕїјљїѕѕљљїїљїљњјљїљїїљјїїњьљћљјѕїњљјњєњљїјљ§ћјїїѕїјњљэїјљјњјїјѕјѕїѕљљњћјљљцћљјјїјјїѕїїњјїїјњћљћљћљћћјјјїјњїїњјїїћѕїњїјјќїѕљјјзћљњњ§ўњ§јљћљћћљљћљћљљјћљ§ўћћ§ћљћћјїїѕјћћјјќљћјћћ§јїїђїјјћћјїїђѕјјћћљљћћ§§њ§љљћќјњїћћњјјљљњјјљћћчѕћћјјљњљћћњњїѕїљїїјѕњњјїѕѕьљїѕєѕѕїљїјїљљњњљћљћјјнљћљћљћ§љњњјћћ§њ§ћћјљѕїѕїѕљјјњњћњњѕїїдѕїљїѕњјїјњњїїњјјљїњњјљ§§љћјљ§§ћћ§§љћњјљњїјјњњћ§њѕїѕїїјјољјјїїѕљњћ§§ћћњїљїїњњјјњјјћљћљ§њљљћћїљћ§ћћњјњїїњїњјўѕїїчљїїјѕљњљљїљїљѕђїѕїљјјѕїїјјњћїјљљјјї§јљїїє§ѕїјјєћљљћјњїњїїљѕѕёєѕїїјњїљћћњњјјљљ§ћњјјыњћ§њњћ§њ§ћћјєћљјљїјїјјшћ§њћњљћљїїљїљћћјїјјљљћљ§§њћјјљјљљїїњљјњјњћ§ћћ§бћїїјћљљјјљњ§љњњћљјњјљїїјљљћјјњїїјїјјљљњћћјњјњјїїјљњјљћњјїїњѕјјљњћћ§љњћћњјљ§§ѓљїїєѕїјјљћћњјјћђњјїјћћњљјјѕїјїїыљїљњјїїљљїїѕїїѓїјїѕєїїўљњњљ§ћ§ћћћјњїїјјћњјїљїїјћьљњїѕљњћћјјљїљјљљћљљ§§ѕћјњћљљњїђєѕѕђїєѕєѓѓєїїњјјњјјчњћљћїјїјѕљїѕїїљїїѕѕєѕїњћљљћњў§ћјјќњјњјјИњјјњјїїѕїїљїљњњјїїѕїїјњњјїјљњ§§ћјљїєїїљ§ћћњљѕѕљљ§§ћњњјјњљћћјњїњјјѕњљћћљћћїљћћњјїїѕїїыѕїїљѕѕєєѓјљїјћћњїїѕѕїїнѕїїљїїѕѕјјћћљћћљћћљљњ§јїњњјјљїїјћћњњыљћћљњњїѕѓєѓєѕѕєєѕјњљїїњпћјњїїјјљљјѓїјћљјїјљћћјјњїїѕјњћљјњњўїћћќ§љјїїњјї№ѕєєїјњљ§ћљјїїѕѕїїєњјјїѕїїњћ§ћљљіћјјїїѕїѕїѕѕщїњїїѕѕєѕїїљљїљїѕјљћљњјїїьјњјћљљњјљћљјјїјјњћћњњ§јљћћјўїјјљњљѕєєѕєєѕыїѕјјїїјїњјјђђїїјњњїњћћљњїїѕїїњњ§їњјјъїјїљјјћљћљњјѕїїѕјѕѕјїѕѕіјѕѕїїјћћљћћќјљљїїѕћјћљћјјьљћјјћћ§ћћњјљјњјњјјњјјїїњњјјїјћњњјјњљїјњњјјрїљљћјњјњћ§§њћљћћ§њ§§ћњїјћ§ћјїѕљњњѓјњљњњћћјјїљћјјщњћљїјћ§§њ§ћљњћљњ§јљћљјњњћїљїїњњћёњїїљїїљїѕѕјћљњјјћљїїљћћюњљћјљїѓїѕєїјјњјјљ§§ћєњјјљїїјњѓїњјјяїљѕљєѕѕјјљћљћїњњїїёњїјћїѕѕј§§ћјњјїїљљјѕѕїїњњлћњћјїїјњљћљљћљњњћњїїњњјјњћљћћљљћјјїјїїћћјљљћћјљћљјћћ§ћћъљїѕєєѕїїљњјћ§§ћјњјљјјїїћњћћњјјёњїѕљјњјњјїјѕњїѕѕёєљњћћїјєјјњњїѕљљїіјљљ§љљћљјїїщљїїјњњјњћњ§љћљјїјљћјјїѕѕїјѕљѕїњћљ§§њћљјћћ§§њћњњјћ§§№љјљ§§ћњјјљљћњјњћћќјњњћћШњјјљїјћћњљѕјїњїљїїљѕјѕѕђїѕїјјњљєѕїјјњњјјћљћ§ћљљјљљћјїљљїїѕОїљљњїјњљћћљїѕїїјћњїѕїїѕѕїїљїѕєяѕїїјњћљљћњ§ћјїѕєєѕљњјїљњјњїїљјњјјїљљљјњњјјїћћ§ћјїѕѕїљњњћћ§§њљјјђњћњјњљћјјњљљјїїѕњћљљћњљјјњћћїѕєљѕїјљїїјјњјћђїљїјћїѕѕїћљћћ§§щѕљ§љљћљћљљћ§§љљћ§њћљћ§њњћѕїѕљїїќѕєѕњњѓјѕїћћјїїјћњњїїюљїљѕњљћњјћћ§ћљњћћљљ§ћ§љљјќњљїѕѕ§ћ§§њћњљїїјјњїјљћљњњљќњљњљљщјѕїчлУеЩпюѕэђєјљњћ§§ћћ§§юћ§ћћњћћ§њњћњњћњљљњњљћљњњћњћћ§њљћћлљњљјљїєўыЏЊРлцьёѕјљњћњњћ§§ћ§ћ§ћ§ћ§ў§ћћњњљљјјљљѕњћ§ћ§ћћњњљњњћћљњљњњ№ћњњјљњётРСЮзмуђѕѕфїљћћњљљњљљјљњњ§ћњћњљљјјљњћћњњњћ§њћњћћњќљњњљљјєђјэыхрнсэяэьђєјјљїєєїѕѕїїќњћћњњўљјјљўјљљўњљљњњ§ћњћњњоћњњјїїєђщпмрттщьёђђюышщюђяѓѓюлњћћљљјїљњњљњјњјј§љњћћњнћњњјјѕѕѓящчшщюяьђєѓёхсчьщцхцсз§§ћћљљўњјјјњљњљњ§ћњњўљњњќјљњљљњјфљјїєѓђѓђђюёяьшхтьюыустурћњћљљіњљљњњљњњљњњјћњњљљњњћћљ§ћњћњјљљшјљїїѕєєѕѓѓяьыяяюяяыщцюђљљћјїјјљљўњљљњјљњ§ћњљљњњљќњљћњњљћ§ћћњљјјўїѕѕьѓёяёѓёѓѓѕїїєћњњљјљњљљњяљћњњљљњњћ§§ћњћљњљљњіљњљљћњјјїљљѕјїѕїїєїјјїјјѕїјњњћњњћћњљљїјљјљћћљњћћњћњћћљјљљњњљјљєјљљњјјїєєѕјњњњљњљњљњњљћњћћњћњњъ§ћ§ўћњћћњљњљњћ§ћћњњљљњњќћњљњњљўјїїўћњњљшјљјљњљњљљњљњљјјњљљјјљњњћћїњћњћћњљјљљќњљћњњљњіћњљљњњћљњјјљіћљњљњњћњћњњјюљјјљљњњљњњљњћћљњњљљчњљљњ§ћ§ћћњћњћјљјљљњћ§ћћљјјўїљљћњљљјњњјљэњјљјјњњљљњљњљљњ§њњћћњќћњљњњњћњњљјљљњљљћњљљћњљљіјљћљљћњћљњњљјљњўјљљќњјљјјљюјљљњїјїјјљљњљљњљњљљћњіљњљњљљњњћњњѕљњћљћњјљљјљљњђћњћњћњљјјљњћљјјљѓјљјљњјљјљљјњљљћћњћњљљѓћњљћљјљњћћњњљљјљњъљјјљїјњљњљїјїјљњјјљћ§ћћјњћњњљњњљљѓњљљњљњћњћњћћњњ§ћњљљўњљљўњљљњљўјњњћ§ѕћ§ћњћћњћћњћћіњћ§§ўў§њћњњљњўћњњќћњ§њњћ§ћњњљљњљњіћњћћњњ§ћ§ћћњьљњћњњљљњћћљњњћћњћњ§њњњћ§ћњњљљєјљјљљїјљљњљјјюљјљјјљјљњњћћљљћњћњњяћњћњћњ§ћљљњњћћ§ћњњјѕљњљјјњњљљћљљўјљљќњћњљљњўјљљўњћћњћє§њњћ§ћњљњјљњњљњј§ћјљњљљїїяјњњљљјјљћћ§њћљљјљљњўљњњюћњћћ§ћћњћњћњ§њћљњљљўњљљњўјљљъјљљїјјљјјљјљјјљљњљјњњљљњћћњћћњњљ§њјљљќїјљњњћњљјњїљљњљћћњњљљњњћћ§њљњњ§ўњ§§њїћњћњјљњљњњ§тњ§ћњћњљјљјћњњљњњћћњћ§ћ§ћћ§њћњјјљњјњљњљћћћњћњњћћљ§ћћњљњћћњыћ§ћћљљњћњљњјљћњћћњћњљљњјњўљњњљњћћњљњљљпјїїјњњћњ§ћ§§ћњљњћћ§ћћњљјјљњњћњћљњњнћљњљњњћ§ћњњљљњћљљјљјљњљљјјљљјљљњљњљљїјњљњћћњ§њњљњћљњљјљљњјћљљјјљћњњћјљјњћћї§ћњњљњћћљљјљњјїєѕїљљњўљњњ§љњћћэњљњљјљњљљјљљјїјјљљћћ§њўљњњ§љњљљэјљјљљњљљњљљњљљњљњћ§§њѕјљјљњћ§њњљјјѕћ§ћћљљњњљћњњєљњљњњљљћћњћњњћњњљњљљњљљќњљљјјіїѕїїјљњњћљљјљжњљљјљљјљњ§њњћњћћњњћћ§ћњњљљњњјљљњћњњљњћњњћљљыјїїѕїјјїїјњљјљљњљљћњљљњћњїљњњћњљњћњњ№љћљњњљњћњњљњљњњћћўњљљњљъјїјљњљћ§њћњљљњјљљћљњњљљќњћњћћњљћјљњљјјљјљјєљјљљњћњћљњњљљњѕљњњћћљњћњћњњєљњћљњљљњћњћњ њљљјјїїјїїјљњљњњљљњњљљўњљљњљ§њљњњљћњљјњњћћєљњјљљјїјјїљјј№їјјљљњћњћњћњњјјљљјњћњўћњњђ§њњљњћ§љњљњњљњњљњќћњњљљјњљјљњљљњњћњћљњљњ§§ѕњћњњћ§ћ§њљњњљ§њњљљјљљњњљјљљњњћ§ћњљњћњњќ§ћ§ћћєљњћ§§ћћњћњњљљўјљљќњљћњњљєјљљјљњљњњћљњњьјљљћњћњћ§ћњњјљњљјјљњњћя§ћћњњљњњјљљњљњљљњњўљјјњњћњћњћљљѓ§њљїјњ§ћћњљњљљћјїјњљљѕћ§ћњљљњљћњћћ§ўћљљі§њљњћњћўћњњ§ћњљљћњњћњћњњћћцњћњћћљјїїјљљјљњћћ§њњљњћњњљљќћњљњњљјѕњљњљњљїјљљјјѕљјљњћћњћњњљљјљўњћћўњљљэјљњњљњњљњ§ћћњћњљњћњњћљјјїјјуїјјњљљњўћ§ћ§њћњћњ§ћ§ћћљљњћћ§ћћ§ѕњљњњћћњљњљњњљхњћњљњњјљњћњљјјїљљћјљљјјїїјљљњўљјјјљњњљљњњћћћњћћњћћћњљјјљљйјљљјјљљњљћњњјљјљљњћљљјѕѕјјљљјљјїїјљљњљћћюњ§ћћњљјїїјјљњљјљњљљљјњљњњљјјјњљљњњљћњњјћњ§ћ§ћћњњљјѕљћ§§ћњ§ћ§ћњњљљњљњљћњњћљћћњљљћюњљјњњљњћњљљњљјїїјћћ§њћњњљњьћњјљњњљјјљњћњњћћ§§ўћћўњћћ§њ§ћћћ§њћњ§§ћњљњјљљќјїјљљњљ§њћљљїјљјљљћњљњњњћњћљњћћўњћћњќљјљјЬ§ў§ў§§ћ§јњљћљњћ§ћўћўћўћ§њўћўњ§њћљўђцЯуйяѕ§ѕѕјћњўћў§ўўў§ўўљ§ў§ў§ў§§бў§§ћўњ§њћњћћўћ§ћ§ћ§ћ§ћў§§ћ§њ§њ§јјўєВБЪцёѓєљљ§ћ§§ўў§ўўэ§ў§ў§ў§ўћў§ћћ§љ§ћћ§§пў§ў§ўћўћў§ўћўњўћ§ћ§ћћ§ўљэЪЩкрмѓѕљљћў§ћћіўћ§њ§њў§ў§§іўњћљ§ћ§ћћ§§ћў§§ћ§§љўњћћўћ§§§њљјјцћєёэщшюёѓђїѕљљћјњјћјњјњљћ§§љњћљћљћњњњ§њ§њ§ћћ’§њ§ћў§§ћў§§ћўћ§јњѕїѓычуцђёѕїљѕїђѓёяѓјїїђт§ўћўћ§љћљћњ§њ§ћўћ§њћљ§ћ§ћ§ћўћўћўћўћ§ћ§љњїїѓєђѓёєёїѕјїѕяьыѕєэяюэу§ў§ўћћћўњ§њћћ§§ћўћћдўћўћўњ§ћ§њ§њћћ§њ§њћјљјљїљѕїєѕђђьюяѕђюэёючћ§ћћљ§њћњ§њћћѓўћў§ў§ўћ§њўћ§§ўћ§§ўћ§§Юњ§њћјљјјїњїїѓѕѓїѕїѓѓюѕђјњ§њ§ћњћћњ§ћћњўћўћўћћ§ў§ўћ§§єћўњў§ўћўћўћ§§ъћњћљћљњјљїљїјїљїјїњјћ§§рўњ§њ§њ§ћ§ћ§ћўћўћў§ў§ў§ў§ўћ§ћўћўћћўўћћрў§ћљ§њ§њћњњљћњћљћљћљћљћ§§ћў§ў§§ћћ№ўњ§њўћўћўћ§ћ§ћў§§іўћў§§ћ§њ§ћћѓ§њ§њћљ§њ§ћћњћћёљћѕњїћњћћўњ§њў§§јў§§ћ§§ў§§юў§ўћ§ћўћ§ћў§ў§ў§ўћћэўћўћўћўњўћўћ§њ§њћјњњёјћћ§ћўњ§њћњ§ћўћћјўћўњ§њ§ћћќ§њ§ћћь§ћў§ў§§ћўњ§њ§њ§њ§ћћ§§ьўњ§ћ§ћћњ§ћў§ўњћљ§њ§ћћќўћў§§§ћњћћіљ§њўћўћўћ§§ёћўћ§њћћўћ§§ў§ў§§ћј§њћ§§ћў§§йўњћљћљ§њўћ§њўћў§§њ§њ§њ§њ§њ§њћњћњўћћњ§ћ§§ќўћў§§ўўћћєўћўћћ§§ћћњ§ћћќўћўћћє§њ§њћћўћ§ћўћћщўњ§њ§њ§њ§њўћ§њ§њўњ§љћљћћрњ§њўњ§њ§њ§ћўљ§љћљ§ћ§ћў§ўћ§ћўћўћ§§ћћўћўћћ§§ћўћћўўћћЯўњ§њ§њ§ћўћў§ўћ§§ћњ§љ§ћ§њћљ§љ§њ§њњћћњ§њ§њ§ћ§њ§њўћ§§аћ§њћ§ћћўћ§њў§ў§ўњ§њћљћњ§ћћњћњ§њћњўћўњћљћљ§њ§њўћ§§§ћ§ћћђ§ћўњ§њ§ћўњ§ћў§§јў§§ћ§ћўћћўўћћр§њћћ§њ§њњћ§ћўћўћўњ§њћћўћ§§ў§ў§ў§§ѕћ§ћ§§ўћ§§ў§§ў§зўњ§њћћўћўћўћўћўћ§ћ§§ў§ўћћњћњўћў§ўњ§њ§ћўћ§§хў§ў§§ћ§§ћћўћ§§ћћў§ўћўћўћ§ћ§§§ўћ§§шћўњћњ§њњљћћўћ§љћљ§њћљћљ§§ўћ§ўћў§§іўћўћўћўћћ§§ћ§§ћўўѕ§ўњ§ћ§њ§љ§ћћє§њ§њ§њ§њ§ћўћћіўњ§ћўћ§њўћћў§ќў§ў§§ўў§§ћњ§ћўћўћћ§рўљ§њ§њћљћњћњ§њћњћћў§§ћћњ§њ§ћўћўћћ§§ћў§§ќўћў§§ћіўњ§њћњўњ§ћћтўљ§њ§њ§њћљ§ћ§њ§њ§њћћ§њ§њўћ§њњћћЮ§ћў§ўћўћўћ§њўњ§њ§љњћ§ћўћў§ў§ўћ§ћ§њ§љћљћћўњ§ћўћ§ћ§ћћ§ћњўњ§§ў§§ўў§§юўћ§§ўњ§ћ§ћўћ§§ў§ў§§оўњ§њ§ћ§ћ§ћўћ§§ў§ў§ўћ§ћ§ћ§њ§љ§ћ§ћўћћљўћ§ћ§§ўўР§ўћўњўћў§ўћ§ўў§ўћ§§ўћўњ§ћўћў§ўћўњ§ћўћўњ§њ§§ўћћњўњ§њўћћњўћ§ћўњ§њ§§ћАљ§њ§ћ§§ў§ўћ§ћў§ў§ў§ўњћћ§ћўћ§ћўћўћ§ћўћ§ћ§ћў§ўћ§њўћ§њ§њ§ћўњ§њ§њ§љ§њ§њўњ§љ§њ§њ§њћњ§§ћЙњ§ћўћўћ§њ§њ§ћў§§ћћњћњћћ§ћўњ§њў§§ћ§§ў§ў§ўћ§ћ§ћ§љћљћљњљћњћљњњ§ћўњўћўћў§§ћћљ§ћ§њ§њ§§єњ§љўћћњћћ§§ўў§§ћўћћљўњўћўњћћщ§њ§њ§њ§њўћўњ§њ§њўћўћ§ћ§§јћ§њћњўћ§§їћ§љћњ§§ўћћќўћћ§§ѕўћўћўћ§ћ§ћ§§вћ§§ўћўњ§њ§њ§њ§њњљћј§њћњ§њ§ћћљ§љћњ§њ§њ§њ§њ§љ§ћ§§§ћў§§ќўћўћћєўњ§§ўћ§њћњў§§ћѕ§љ§јљњљљњњћћћњ§њўћћд§њўћ§§ћ§§ћ§ћўњўћ§§ўћўћ§њћћ§ћўњћњ§§ўћўћўњ§њ§ћћѕўћ§њћњћњўћ§§ўўњњќћњ§ћћїњ§њ§ћ§ўў§§ьћўњ§љ§њ§ћћљ§ћ§њћљћљњњњ§њ§§ў§§Мўћўњ§њўћўћў§§ћў§ў§ўћўћўћ§ћћњћћў§§ћ§ћўћўћўћўћўћњљњјћјњјњјњљћњ§ћўњ§ћ§ћћіўћ§њћћўњў§§вћ§њ§њ§ћўњ§њћћўћўњ§ћўћ§ћўћўљ§њћљћљћњћљћљћљ§њўћ§§щћ§ћ§њ§њ§ћћњўћ§§ўћў§§ћћ§§ћ§ћіўћўћўћ§ћўћћц§ўћўћўћћњ§ћўћўћўћў§ў§ўћўћ§§їў§ў§§ћўћ§§ўћ§§Ьћўћўћ§ћћ§§ћўћўћ§§ўћ§ћўћ§§ў§ўћ§ћўћў§ў§ў§ўњћћ§њ§њћњћћ§§жћ§њ§њ§њ§њ§ћ§§ћћўћњњ§ћ§ћ§ћўћўћ§њ§њћћњћўњћћўўя§ўћ§§ўћўњ§њћћ§њўћћћ§њћњћћўў§§ќћўћ§§Ић§§ўњўљћ§ўћўћўњ§њ§љћњ§њўћўћўћћњ§ћў§ўћ§ћ§§ўћћњ§ћў§ўћ§ћ§ћў§ўћўћўњ§њ§ћўћ§ћ§§Хў§§ћ§ћўћ§ћ§ћ§њћњњљ§њ§ћўћў§§ћўћўћўњ§њўћ§ћўћўћ§љ§ћўћўћ§љћћ§љћћћљ§ћ§ћћцўћўћўњ§њ§њ§њ§ћўћўћ§ћ§ћ§њ§њњіўћўњћћ§§ў§§цўњўћ§ћўњћљўљћљћљ§њ§ћў§ў§ў§§ћ§ќў§ўћћјўћў§ў§ў§§љћўћўћ§ћћ§Эњћћ§ћ§ћўћ§њўћўћ§љћњўћ§њ§њћљўћћњ§њћњћњћљ§ћўћўћўћ§ћў§§њў§§ћўњњв§њ§њ§ћ§њ§њћњўћў§ўњ§ћ§њўћћњћјњљћњ§њ§љњљћњ§ћўћў§§ђўћћњћњњљ§ћўњ§ћћ§ћњћћўњњї§ћўћўћ§ћ§§хћ§§ў§ўћ§§ўћўњ§ћћњ§§ўћ§§ў§§ћћў§ћћ§шћўћ§ћўњ§њ§њћћў§§ћ§ћўћ§ћ§§тњ§љњјћћў§ўћўћўћўћўћ§ћўњ§ћ§њћљ§§ўў§ўў§ѕћ§ћ§§ў§ўћў§§ѓў§ўњ§њ§њ§њћњћћіўњў§§ћ§њўћћў§њњю§њ§ћ§§ўћ§§ў§ўћ§ћў§§ќў§ў§§њћўћњњћ €§ў§ўњ§§њ§ћњњљљјјњњєљїїњћ§§њ§ћјњњќљїјћћјћђјљљћљћћјїњ§ћњїї№јћћљњ§њ§ћљјћ§њћјјљљћњљїњћњњ§ћњљљњјкћїјјћћњїѕїњљєљїѕєїєѕїїјљїјљ§ў§њ§§њ§§њћћњђљњћјњњћћљћњїѕїїѕьђѓѕїѕєёььяюьєѓђяёђѓєєфѕљїљњљ§љљћћ§§њ§ћњїѕѕјљїјѕљѕјјеєяьэяёююээщщяђђёэщчцщцбпхспяэѓчанпыюяююёѓѕєє‘ѓєєѓѓёёэьыьяэяьэьююьтмтшщрзлжекущшхшчщыэюегбжлсткЭгпсучщщьыёѓяыыээююыыэщцучышшуснуцыцтчьытпмстцщччхьёёєђєрнкддззджзучуучэюяѕђщтручщщрнуцчтнснущьыэцчшэяяэььэёёђёєђѓєєїѓєєїїёшщээяюьљэюяюшшццєшщьуучэьччшщщђьшшчщэююэьщыяѓѓ№єѕѕјљїїљјјєєѕѓѕєєќѓђяёёыяэђёяччутсцяђяяэёяяэёёєєђєђєѕђюээяђђієђѓѕїљњљљћћфєѓјјїїѕѕјјїѓѓёѓѕѕђёяюььюёђѓђђѓвєѕљњњљєѕѓєјїѓєѕљїњјјїњјњњјњњјѕљјѓїјњїїјїїѕєѓѓєєѓїѕќєѕїѓѓијѕєѕјѕљѕѕєєїѕѕѓєѕљѕѕњњѕјњљњњљєѕєљљњѕїњјїї§ѕљїїљшјљєѓєєјѕєїїєїљјјћћљѕѕљїњњпљњћћ§љњљњјљѕїљљїјњњљїћљљћњјњјјћ§ћћњњјїјїѕѕїќљѕљњњћїљњјњљљїљїїњјњјїљјјћњјћћјјўњћћјњюљѕјјїѕїјљњњћљ§љњјњњљхїѕїљјћљћћјѕєяѕѕєђјљњјјњјњњћћјњїљјїљїїшѕјјїљїљѕѕїљјњїљїїѕїїѕѓѓѕѕЋјљјјїѕїљљїњњћћїјњњјњјјћњњјњјћћјїјјњћћјјњљїїњїјѕїљјїєѕјїїѕѕїєєѕєєѕєєјѕїїљњћјњјњљ§њ§§ћјјњїљјѕїѕљћћ§§ќћјјїїљјњјњїјљљёїєѕѕѓїјњјњњљћћњњѓјљљїљѕњјјїјћ§§јњћїјњјїљљњўјїїњєјљћњ§њ§ћћљњћћњїўњћћљюњљњњјћљњћћљћњљїјћ§§јћњњјјњњїї§јњјјчљ§њ§§ћ§њћћњјїѕїјћљћћљћљљјјўљћћщљћћјњјљјњњћљћљјњјљњј§§ћћјљѕјњћљћ§љћњ§ћћњјњћўљћћ§јљћћљяћєјћњјїјњћћ§§ѕїїјјћшљћјјїїњјњјћћљ§§ћњ§ћњјїљїї§њјћћќњћћјјљћљјїљњћћўњїїќјњїјјњљћјљњјљїїћѕєѕїјј§њјњњёљїњјїљљјћћјјњћ§§јћљћљѕјјћћљћѕњїїљїїњћљњїїљљїїєєїѕѕ§їѓєєъѕїљњїїјњїљїјњљѕїєѕїїњћћ§љњљљњ§їјћћћљїјјћћёљњјњјїѕѕјѕїїѕјєєеѕљљїљјјњјјњїѕѕјѕїїјјѕїјјњњћћњљ§§њћљћћјѕѕїѕїї§јњјјѓњјћ§ћћљњїѕєѕјјћїјњјћћ№јљјљћћњњїїјњћљљћћјњћњљћљїњћћяјљїїѕјњћ§ћјњјљїљњњћњјњјњјњњыјњћћ§јљїѕѕїљљњњљјјћћњњјёњљљјљћћљћљћ§њљћћјьљїѕєїјћ§ћљњњјљљјїѕљњњљрѕїњћљљћћљћљјљў§њћјїљјљјјњљѕєѕїїѕѕѓїљїјјљљѕїїњјћћыњјјљїљѕјїњћћ§ћњјћљљњјјфћњјїїјјњјћћљњњїљѕєѕјѕїњћћљјњњдїњјјњћњћњїјјћћњњјњїѕљјљљћљћњљїѕѕѓѓєѕїњљљјљїѕѕѓјѕѕєїњљљїїљјћћјњёјњћјјњљїѕјјїїљјјїћљћ§§љјњћћсњјњњљјљћњјјїїљњњљјњћњјїњћјљјїњїїњћњЖїѕїљїјјїћ§ўў§ћњћњћљњ§§љљћћљћњћљњїљњјјњњљљјњћ§§ћњњјћћјњїњњљљјјњјњњјљћћљћњњћћяљћћїјњћћњњћљјїѕїњњљћіљїѕјњјїјїѕѕїћљјјњјј§њѕїїѕѕњјљћћњјљїѕѕђїјїїљјїјљїњћћњњњјњјљјћћђ§њћљњњїјјћњјњћћљљћћљћјїїўјњњяјњјљѕїїјњ§ћћњјљљїїпјљћѕљјњњљћљњјїѕѕєѕјѕѕїљњљћћљћљњјњњёјњїљјњјћљљћјњјћћіљћњјњћћњћњњэћљћњљїљїљѕѕїњњјњљћјјљљћћјјњјјцљѕѕјїљјїїњњјњјїјњњїѕѕїњљћ§§ѓљњћћљњјњїѕїњїїѓєѕїњјљћљјїїњїї§љїљљїљњїљњњјїїћљјњњјјіћњ§§њњљњ§јјіћњћљјњѕјјћћђњїїњћњѕѓѓєєѕєѕѕћјљњњјјњјљњјњїћ§ћ§њјїїѕфјћћјєњњїѕїїљљїѕљїњїљљѕљљњћ§ћћїњјјћћљљћњњљгјњїљ§§њїѕїјњјњјїїѕїљјјњњјњњјјњћ§§ћњњїљјњњјњјњњєјїљњћћј§ћїљѕѕїїјњњјјњњїїјѕњїљїљљјїњїњњјїљљїїєјљљїќјњљћћљјњїїѕѕјјћљјјљјјўњћћћјљјїѕѕіљѕїљјїїјїѕѕќјѕѕїїїѕїѕїљїљїјјЬїѕљѕљїѕњїїѕјњћљћјљїјћњљѕѕјљљћјєњјњљєєѓђѓєєјѕѕљѕїјљњјјењїјѕљјѕљїѕѕљїїѕїљњјњњјїљ§њћњњљњњ§§ћљ§ћћїїјћћыјљѕѓѕѕїјњљјђєѕѓєѕїљљњњыћњјњїїњњћљјњїћћ§§љњјњњѕљјћљ§њѕћћљћћнљ§ћњјћљћћњњїњїєѕїѕѕљњњїјњјњњљљїњљљћћљщћјљ§ћїјїљћљћћљљћљњјњјјћћќјњњ§§њњљјїљѕѕњќїљјњњћїјњјњљћћњјјћњїљјћћ№њјњјћћјїїјјњћћњљљьїјњљєѕєїѕєєѕњњјљїњїњњќїјѕїїљјљщћњњћњњјѕљјїњ§§љћњјїљјћ§§ѕјљљњјјїљїїјјљњјњљћјљљїйњљљїјѕѕїїјњњјјњњїњїѕѕјѕѓњјњјљњїњїјјїљљћћјљћњјјњњћћјлїњјњјњљїїѕњњїљљњћњїѕљїїјєєѕљїїјїњњїїјјћїљјњјјћ§їјћћјљћјјћјјњњћјўњјјёњљљћ§љћљћјјњњљњњљћјњњјљћћўјћћћњїѕїњњѓ§ћў§ўћ§ћ§ћ§ћ§§іћ§ћ§њњљћћњњќљњјљљјњ§ћ§ћћњљљљјљњћњћњњђћ§ћћњћћњњљ§ћћљљћњћњћ§§љњћњћћ§њњћњћјљљћљљ§њљјј§њљњњўћњњћћљљјљљ№їјљјїѕјјљљњћћњћ§§љћ§ћ§§ћњњљђјљћњњљћњћњљљјѕѕјѕюјљјїѓэяђёщїѕєёѓєѕїїјѕљјљћ§ћћњћћ§§іњљљјјїјљїјјїжђёяђѓёэяяыэђєєѓяупуччдлтптшяєсЪтрьяђяёѓѕєїї›ѕїїѕѕѓэщыэююяьэьэђяырлпцчнйззейхыццышушяябЭЮайнрлгЮжтхушышэѓѕђьэяяьыччыьстхшщхрптцээчхшюшпллнрушшуцюѓѓієѓнздбгелккжнххсцщэђєєёхмсшышнкршхпммпттчьыэшщяђѓяшчяѓѓєФѓєѕїїѕјїѓљѕюыэёюяђђёэщююёђёщцчусцэщхтхыэшухчшьюьчшьяёьяэыьђѕѕѓїјјїјљљјњњїїєєїхѕѓѓђѓђѓєєѓюыщхнтэђєђююяюьюѓѓѕєѓєѓєєёюёѓєєјђєѕјљјљћћќњћњїїљјїѕ§єѕєєЮѓёёэюёѓєѕѓєєѕѕїјјљњјїєѕїїѕѕїјјљљњњћљњљљњњљњљјњњљњљљјњљљјїєѕїїїѕєѕѕєєїјѕѕїњјїјїњјјїіѕјјїїјљљњљљюњљћљљјљјљјљљјљљњћљљ§њјљљј§їјїїјјїѕѕјљјњњјљќјљњћћщљјљњјњљјјљњљљјљњћћњљњљњњў§њњњљњљїљјјљчјњјљњљћњћљњљјјљјљљћњљњљјњњћљњњћњњљљњњћњћњњљюћ§њњљњћњјљљћћ§ћљњљљјфљјљјњњћњћњјїљјјїљїјљњњљњљљћњњњљјњћјљљњьљјљјљњљјњљљјљљјљљјїјјћїјњњљљјпљњљћњћњљљњљњњћљљњљњћњњљњњљњћњњљјљљйїјљјїѕїјїљљјјѕїїјїїјїљїјљљјљњњљњљћћ§ћ§њњљёјїјљљћњњћ§ћћњњљљшњљњљћњћћјљљјјњљњљњљљћњћљљщњјјљјњљњњљњњ§ћ§§ћњњљњњјјљўњљљќњћњ§§єњћћљњћњћњћњљљпњћњћћљјљљњњћ§ћњћњњјљњћћ§ћ§ћћљљњњљљ§њљњњћј§ћ§њ§§ћњњљњјћњњћњћћњњћђњћњћњћњљњјњњљћћђњљњћљњ§ћћњћњњћћќњљњћћћњ§ћћњњљњљёћњћњћњћњћњћњћњћћяњћњћљњћњљћњ§ћјљћњњўћњњљњєћњћћ§ў§ћћљњљљњўљњњѓ§ћћњњћ§њњћњњљљќњљљњњљћќљњјљљћјїјљњњэљњјљљњљјјњњћњњљћћ§ћћў§њњ§ћњћћњљљјљљ§њћљљљјљљјїѕјјѕїј§љјљљѓњљљјљњљјјѕїјљљљњћњћћљјјљњњћњњћћњњўћњњ№ћњћљњљњљјјїјљљјїїј§љјњњљјуїјљљњњљљњњљњњћљћћ§§њћњњїјјљњљљ§њљњњ§љњћћјњћљљјљјїїќљњљњњњјњћћњљљ§њљћћ§њћњњљђћњћњјљњњћњћњјљљћњљћћњњўјљљњтљњљњљњљњљњњ§§ћљјјљјјљњћњњћњљљњњёљћћњћћњћњћњ§§ћњњўћњњьјљјљљњњ§њћљљњћћњљјјљљјљћцњћћњћ§ўўћ§њњћћњћћњљјјїјљљјјўњљљњјќљћљњњяљњњјљјјїљљћњ§њљњћћўљњњєљњљљњњљњћњћљљјђљјїјљљћњћњљљњљљњч§њљљњњћњњљњљљјјњћћњћћ§ћљјјїїјљљћћњјљјјўїјјљјљэјњћњћњњљњљњљњћњљјљњњљўјњњћм§ћ§љњњћљњљљћ§ћњљњњљљјљљјњљњљњњљњњјїљљњќћњњљљљјљјљњњћћіў§§њљњ§њћ§§ћњфћњљњћљћјљњњљљћћњљњ§ћћљљњћњњљљјњєљњљљњћњћћњљњњ№ћњћњњљћњљљћћњљјљљђјћњћћљљњљњљњљјјљљћјњњљњњ§љњљљѕњљњћћњљњљљјјђљњљљјњљїјљљћњљљњђјњћњћњ§§њћљљћњњьљњћњћњћћњњљљћљћњљљњљљєњљњјњљљњ§ћћњњ§љјљљїњћњњјњљљћћќљњљјјёїјјљјљћћњћњћљњљљїњљљјњљњњћћћњљњћњњіћњљњљњћљћљљћљљјљјљјљљќњљћњњћћњ§њљњњјћїљјїљљњњљњљњљљјљфћњћћ§ћ§ћљњћћљњљљјљљњћљљјљљњћћњўћљљюјљјљјјљљјљјљјњљњњљљћјњљљњњ§ћћ§§ў§§їїњћ§ћћњљњњќћњњљљіћљјѕѕїїјљјјћїјљљњњљћњљњњјјљњљѕћњ§ћћњћњљњљљјњњћњњћљљјћљјјљјјљљјћњјјљћћјњћљњњћњћћљћ№њљћћ§ћљљјљњљњљњљљўјњњъљњљљњњљћћ§њљљћјњљљњљњљљшњљјљњћ§§њћјњљњљњљљњњљљњљљњљїјљјјїљљћљљјљэјїјљјљљњљћњћњћњћњњљљ§јљњњњћњњћ§њњѕљћњћњћњјїљјјјљјњљљњљјјљїјљјљјљјљњњ§љњјјљўњљљ§њљћћќњљљњњёјљљњћћњїјљњљјјѕѕїјњњѕїјљњњљјїјјїјјљјјљљјљњљљњћћі§њњљћ§§ћ§ћћтњљљњњћњњјјїјјљњљјїѕѓєѕїјљјјњљњњўћљљхњћњљћћњ§ћћљњљњљљј§њћћ§§њњћњњћёљњњћњћљљћљљїєѕјјќњљљњњљјљћњљћњћћњњћћњњљјњћњћћњњћљњљњњшћњљљ§ћ§§ћњљјњјјљњљљјњљњљљѕћњњљњљћњњљњњ§љјњњѕћљњљњњћњљљњњ§ћљјјќљњљјјіљјїїјљњњјљљ§їјљљјжњ§ћћњљљњљљњњјїљњћ§ћњљњњјњћћ§ћ§ћњјјљњњљјљљњњљљњљћћњјјђљћљјјљїјјљљњљњњъљњљњљјјїјњљњљњјљњњљњњћћѕњћњћњљњњљљњњићњњћљњљњљјљљњљњљјјњњљљњјљљїјљјјљљїљљњљљњњћ§§љњњќћњљњњўћњњќћњњљљљћњћњњљњњїљћћњ§ћњћњњљўјљљњљ§њћњњјћњњљњљњљў§ўўј§ў§ў§ў§ўў§§ў§§юўћ§ћўњћњ§њњћ§§ў§ўћћњќўћ§ћћљўћ§ћ§ћ§§эћ§ћ§ўўћћњ§њћћ§§ў§ў§§іўћў§§ћўћћ§§њћќ§ћ§њњњћњћћ§ћћї§ћћњћњћљњњшљњњћљ§њў§ћћў§ў§ў§ў§ў§ўћ§§ќћўњћћѕњћћ§ћ§ћ§љњјјќћљћљљфњљњєїѓѕђђјљѕјїјљњјњјњљњњ§ћў§§їћў§ў§§ћ§љљњљ™њљћљћјѕёѓѓїєђёѓєёѓјјїѓяцьяёзсыщцїѓћыжтщѓїѕњєїїљјњјљјњїљїѓээёђѓѓєєёєѕїэшнчюяцрлпеньђюяюяяѓѓїкйжзхэьцманььЇэђьёєљѓїёѓѓїѓяэѓяючяёёыцчтщђёёцђђёчунсшьэячёђїєјѕјшуннзрухтчщёящшяђѕїјѓятьђєэштшьэчпрцхёѓѓѕђяѓёѕїѓёѓёїїјžѕјїњјњјњѕ§њљюѓєѕѓѕѕєђѕяѕєѕєѓюђьююѓђючэѓєящэђэяђяьѓяѓєєѓїђѕѕљїљјћљћњ§њ§ћћјњїћљњјњљњїљїљїїѕїѓѓэющьђѕѕљёјђѓєѕїїГјѕјѕјїјєјєљѕјјњјљљњњћ§§ћ§ћўњ§љћњ§љћљћјљїјљљїјїјєєђєїјїњјјїљјћњћњњјљїњљјїњљњљћћпўњћћ§њў§§ћўњ§ћ§њћњћљњјјїћјњїљјћјљљчњљљњљћњњљћјњјљљњјљљ§њћћ§ћћю§љћљ§љћћ§ћўћ§њ§њ§њњў§њњўћњњєјћљњјњћњњўћ§§кљћњњћўћ§ћ§ћўћћњћњ§њ§њ§њћћўњ§§ў§§ћўћўћ§§ѕћўњћљћљћњ§њњшћњўћ§ћўњћњ§њ§њ§ћўћўњњћўћћў§ћћђўћў§§ћ§ћ§§ўћўћћ§јўћ§њћћ§ћћ§§ћўћћњэћњ§њ§ћ§ћћљњјћљњљљњћћжўћўћ§§ўћўњ§ћћњ§њ§њўћ§њ§њ§њ§њћћ§њ§њћњњљњјћљљњ§ћћњ§њњћў§ћћќўћўћћўўћћв§ћ§ћўћ§ћўћћњ§њћњћљ§њћјњљљњ§љћњњјћјњљњљћљ§њњћ§ћћњў§ў§§ћћкўћ§љћњ§§ў§ў§ўћўћ§њ§ћўћўћўћ§њ§љћљ§њўћўћћќ§ћўћћњ§њ§њњћћі§ћ§§ў§ўћўћћњўњ§њњћћ§ўћ§§ћ§нў§ў§§ћ§ћ§ћ§ћ§ћ§ћћњ§ћ§ћ§ћ§ћ§ћћњ§§ўћ§§ѕњ§њћћў§ў§ўћћњ§њ§њўћћњў§ў§ў§§іўћ§њћњ§њў§§іћ§ћўћ§ћ§ћ§§ћмњћњћћ§ћ§ћўћ§ћў§ўћ§ћўћ§§ўћћ§ўћўћ§§ўћ§§ћўўћћ§§ћ§§ёћ§ћћ§§ћ§ћ§ћ§ћўћћ§јўћ§ћўћў§§ћёњ§ћћњћћ§§ў§ў§ўћћї§љ§њ§њўњ§§ућ§§ћћ§ћ§ћў§ў§§ћ§њ§њ§њ§ћћњўћўћћѓў§ћћњњ§њћјћњћћёњћњўњ§њћћњњ§ћ§ћћѓў§ўћ§ћ§§ўћ§ћ§§§ћ§њњ§§њ§§§ўњ§§чњ§њ§њўњњљћљњїњјћљ§њћњ§ћћњњьўћњћњјћњ§ћ§ћ§ћ§ћњњ§ћћћ§ћ§ћ§§њћўћ§ћ§§щћ§§ўћўћњљћљћњ§љћјњјћњ§њњфўњўњћњћљћљ§њћћ§њћњћњ§ћћ§ў§ў§§ѓљћљ§њ§њ§њ§њўћћђўћ§§ћњћљћљћљ§ћћ§ѕћњћ§ћ§ћўњњћћц§ћ§ћ§ћўћўћ§ћ§њ§њ§ћ§ћўњ§њ§ћћїў§ўњўњ§љћћ§ћћњўћћ§§ћћњљћњњќўњ§ћћѓ§ћўњћњћћ§ћўћ§§њћ§§ўћ§§§ћ§ћћњћћљ§ћ§§іўћћ§§њ§љ§ћћњћћњћћ§§ўћ§§ў§ћф§ўћўњћјћњ§ћћљћњ§љ§ћћњњљ§ћўћ§§§ћўњњњљћњћћ§§ћ§іћњћћўћў§§ћћ§ћщ§њћљћљћњћћ§§ўћћњћњћћўњ§§§ћ§ћћі§њћћўњћњћ§§Щћў§њљћјњјћњўћ§ћњ§ћљћљћљћњћњ§њ§њћћ§ћўћћњћњћ§ўћћњ§њўћ§њ§ћћњў§§ћў§§ќў§§ћћљўћ§ћ§§ћћтњ§њћћ§ћў§ћћўћ§њ§љ§ћ§њњћћњ§ћ§§ћћљњћњ§њўћћў§ўћ§§ўў§§јў§§ћ§ћ§ћћђ§ћўћўћў§ўћ§§ўћћѕ§ћўњўћ§њћњћћљ§ћ§§ћњ§§ћћ§ћўћћѓ§ћўћ§ћ§љ§ћўћ§§Чћ§њ§ћўћ§ћ§љћљ§ћ§ћўћћњўћћњ§њ§њ§њўћўћ§ћўљњљћљ§ћ§њњћ§љњњћћ§ћћ№ўњћ§ўћ§ћ§§ў§§ћўћћю§њўћ§ћ§ћ§ћ§§ўњ§њ§ћћїњўћўћўћ§њњгћ§ўћ§њћљ§њ§њ§њў§§њ§њћћўћ§ћўњћљћљћљћњњћ§ћ§ћ§§ћћњћ§ћ§§ћ§ћћў§ћћї§ћћњ§њ§њ§§§ћўћћў§ћћњ§ћ§§ўћћі§љћљ§њћњњћћў§ћћШ§љћњћ§§ўў§ў§§ћ§ћ§ћўћ§ћ§ћўћ§љћњўћ§ћ§ћўћћњ§њ§њ§њ§љ§њ§њ§љ§њњјћњўњ§њњћћсўћћ§ў§ў§ў§ў§§љўћўћ§ћўњўћ§ћ§њ§њћћљѕњјћљћљћљћњћћїњћћўњ§њ§ћћрњўћ§њ§ћ§§ўћўћ§ћћњ§њћљўћ§ћўћћњ§ћњњњћњњћ§њњј§њўћўћ§ћћ§ўћ§§ћт§њћћ§§ўћ§љњћўњћћ§њ§њ§ћћњћћўћўћћјў§§ћўћ§ћћљўњњћ§ћ§§ѕћњњ§њњћўћўћћюўњ§њўћћњ§њ§њћњўћўћћрўњ§њ§њћљњљњњ§ћћ§§ћ§ћ§ћ§њћњ§љ§ћўћћў§ћћђњћњўћ§ћ§ћўњћњћћщњћњ§ћњњћњћљћјљљ§њ§љ§љ§њњќ§ћћњњі§љ§њ§њ§њ§ћћї§ћћљ§ћ§њ§§ћћўћ§ћћэ§ћ§љћљњјћљћњњјљњћњћћяљћљњљљњњљћњ§њ§њ§ћћйў§§њћћў§ў§ћћўћ§њ§ћ§ћ§ћ§ћњљћњћћњљљѕљљњљњњѓћњ§њўњћњћћ§§ћћ§їўћўћћњћћ§§єў§ў§§ћ§§ўћўћћ§§ћўћћыњјљјљљ§њўњћњўћћњ§њўћ§§ыћ§ћ§§ћ§ўћўћњњ§ћ§ћ§§ўћћ§шћўћў§ў§ўћўњ§њљљ§њћњ§ћћњћћў§ћћ§ћіўћўњ§њћ§§ћћђўћ§ћћњњћћњ§ћўњњћ§ћћњћћѓњћњњљћњўњ§ћњћћѕ§љћњ§њ§њўћ§§ѓћў§ћћўњ§љ§њў§§ћьўњћћў§ў§ўћњњћћўњ§њ§ћћўўћћыўћўњ§њ§ћћњњљћљћњ§ћћњћћњ№§љћљћ§ћњћћњћўњ§ћћѓў§ўћўћ§ћўћўћ§§яћўњћћўћўћњњ§њўњ§њњќ§ћ§њњћїљћњ§њљњћњњъћњћћ§ћћњћњ§ћ§њў§ў§ўћ§ћћќўћўћћј§ћћњћћўћћ§њћњћћ§ћћњ§њћћў§§ўњ§§§ћ§њњћ €єїњјїїѕѕјїїѕїїўљїїЧѕїљєєѓјјѕѕєѓѓђђєў§§бQ@@:;5.)58353::>CF;?ŸљѓєїєѕєѓђєѕєєјєѕѕњјѕєєѓєєѓђЧѓєєѓѓєєђёёнЮŠ38EB4&,(1*0;9UCJGA3IОјэёѓђђѓђђѓѓєѓѕјјѕєѓєѓѓёёњѓєѓѕєѓѓђсёяѓѓђЈ27Y?8&&!"ANL43Cаљыяёёыѓђђяђєјјєїєїѕѕјјѕѕєїєєѕеєјѕєєѓћ§О?@9+0&(!&0$*-OP?;F(-&#.87EGZPNШєђђѓєјїїљњјљєєїјјјћјїѓєїћ§§љћљћљљјїїгѕє§ћ‘LgIBB?.&-17,ABCM>+[ућєјљњјјњњјјњјњњћјњїї§љјљљћ§ћињјѕѕѓћ§z7HZE20042"1>>EA?."0~їєјњјєјїљїњћћќјњћњњјїњњјљїљїїўљїїйјѕєѕћј}9>L1+123344&5*%9WŸєљјњљњћћњјјћћўљјјёїњњјјњјїљљѕїєѓєєѕпѓї§яZ5?4&1(,7080%,)0GF@[ујћљћћљјњјњњћјњїїљјњјњњјјѕљїїљјњњјњјњњј§мŠ<-H?.3Q,+1>72+%",%vюїїњјјњњћљњ§њ§§ћ§јљїїћњљћљћћљјуњјј§§Е33:3,&#"%#%<њћћіљћљљјјїљїјјїїѕїљњњјјїї§њјїї§љјѕѕчђѓјї{#4O:&,#&)*%$)&%їїєјћјѕяђёїїњњјј§њјїїіњћћјљјїјњїїйѕєѓѓђћ§КAJQ1,;?8E$+-2)ћљћњїѓёёєђєїї§јїљљїЙњљјїљљјљїѕњїљјяѓ§љŽ>BGEABB?54793!"!"љњ§ћћјљљјњћњњјњјјїїњњїљљїњњјњљїјњћћжљјјљљѕѓћ§кgVLG>9AB<92!##%(-#ћћњ§ћњњ§ћљћљљјјїјбњїљћјћљљњјњљѕѕѓђѓђєєѓѓђљюЄL51@H?0425)$.!&$ћљћљљњњјњњјљћћвњїљїљєѕїњњїљљїїњїїѕјѕѕѓѓљћшw3)7CE704+3:B44%"јїїѓјљїљјљћћњѕїљњњњјњїњњїїєњїїјјњјјњјїѕѕнєѕєёєїА<)?HE@CI<<:E95@Aјјњљљїјљљћњјј§њљѕѕёїљћљћћљјјћљ§ћњљљзѕљїѕљїњѕєљ§§Д4&)$;9B5,;@;5:1јњћњјњјјљїљњћћѓљјїљѕјѕєїїѕјїїрѕїјњјљѕѕјѕїїјѕѓѓѕўћ”9GA1<0713*22§њљїїљѕїїљјјњњюћљћћјјћћњ§ўў§њћјљјјфїѕѕљїїљєєѓј§ЪM8N%53208TVZ7њњјїїѕїјњњћјїїђјњњјїњљ§њ§ў§њ§§єћњљљјљїєєѓѓєєхѓћћш^BQI4%!%NNHїїјљљњњјћ§§ћхњјјљѕїљњјјїѕљјћћ§ћњїњњјѕѕєѓѓєъёїѓїћ§цn;[]J@2*(>3Nїїљљёњјјњїѕѕїїњїјљљњњј№љјѕѕїєєјѕїїѕїїљїїѕєъѓђћ§ёŠ5.-FH3%-.њјњјјљљњјљјїѕјљљ§§ќћјїѕѕ§љїљљрїњјѕїјљљћљјїєєѓѕјљњ§ўЛI,:WYMM78јјёњћљћњћљјјњјњїјњњљћ§јњљљћєљћћ§ћљћљјјњјјсїєѓљ§ћэ|IPQC@J8љћћљјљѕѕїїћїјјљѕѕђєѓяђѕїїѓњћћњ§ћћ§кљћњјњјјѕїјћљњѕїєѓђђїцЉdMMB<<ћ§§њ§ћјћљ§§јћњјјњјљїїјјћћњјїїѕѕїіѕєєѕєѕѕњїєєђѓєєїљћ§ћЖ|SHOјјњћўњїїњћїљћљћ§ћћљћћојљјѕњњїјјњћњјљјјєѕїљѕјєєљ§ћљсБœњјњњњћљћњњљљѕђєїљњјљћљљћњњљѕѕєїљѕєєїјљњјїњњћэњїѕљјјїєєѓјїђєћ§§ћљљќ§ћљњњ§ѓїљљљњћљјјїѕѕ§єѕљљяѕјѕїїѕђєљѕїїѕєѕѕєєюёєјјѕѕєѕєѓєјїјјљ§љљїјѕєєѕєїєњњјљѕ§јљћћ§јњљљћїћјїјєѓѓєѕѓєєѕїњјљјјїїљњјњњћљ§§ћ§ћњќїљњљљіјњњћљћњјїєєѓьѕљљєєѕїљїїјћћљ§ћїїћњњэјљїїњћ§њћїїљїљѕїїѕњњыјњјјћћњњѕѓљїєѕїљљјјїєєяѕїїњњјїїѕјћљћњјјћћіјїљћ§ћјјїњњёѕљїјјїјљљњњјјњљљѕѕєѓєїљљѕѕјїњњёћњјњјјњљљћ§§јњјј§њјћћїљћћјљљњјїїњњљљњїњњїљїїјїїѕєѕљїїѓјњљљїљїїѕїјћњњфћ§§їњїїљјјњјњњћљјњњјћ§§ћњћљћћяљћћњњћ§ћјјљјєєѕѕїїђѕєєѕїњјћљњїјњћћљјњљїєјєєѓљњјїљїњњћљћљћћэ§ў§§ўўњ§§ћјљїјѕњћћјјюњљљћљњњ§§ћ§њњ§§јїјјїѓљїњњљѕєєѕљјљїїпћјїљїїјћ§ўњњїљћ§§љјїїјљ§ћљћћљљћјћћњўіњљ§њ§ћ§§љћћћњљљїњњўјњњіљјјњћјїјѕїїѕђїјљ§њћјјљѓјћ§ћћ§ўћљљђћњ§њћљњњљњњјјњњ§ћњљњљ§њћћгљњ§§њљћћњљљјњњћ§§љјїїѕљњїїјљ§§љћљњљљћњјћћјљћјљњјљјјїљљњљљўјљљќњљјїїјўїѕѕкї§ўўдWA7A;73;;><5:;@AFN;CЌўѕјљјјїѕѕїјїїј§їјїїѕљїѕїїѕѕїїтєѓхг‹34@CA9+%&79,:UHML>8PШўыѓѕѕєѕїћјїїјїїѕєњѕїјјїѕѕєйѓёїєяЄ02O?>1#*"!$%&@MP99Fжўьђѓѓѕѕєяђѓїїѓјљјљјјїїјјїѕїїј§їјїїўвСF<2-:-$$((0-(PGFGJSнўђёёђєѕїєїїљљњљњњљјљљњњљљгјљјљњљљјњљљјјѕўў‹@NGA:M(2*)(+05B?G^PSбўєєѕїїљљњњјљјљњњяћњљїјљћћ§ћњћњћћњљљмјїўўŒMaEAAB;1,51("BJOH>-cщўїїјљњњљљњњљњљ§јњћћњњ§ћњњћњњјўЭ~8IWE><@9,8BB?IC@*$2…њўњљњћњљјљљњћњћњњљњљњљћљљњјљјљљўјљљўїјјпўњ{;@B0021;53.-2)2.:]ЊўўњљћљњњљњњћњљњўћјјўѕїїјлљјїћўѓO:T@91,(&%0,%5822@VЃщщљљјљњњћњњњ§ћћњњјјќљјјљљњљнњјњљјѕљўўi>974541%(35*49( @U}Оьљљјјљјќњљњљљўњљљњќљњњљљјїфјћўў^.>5>FG,-1109;4)*Vрўљљњўљћћњёљјїјїљјљљјїїјљњњ§јљїїхѕўўw*4<::84.01+0540,*7C8.*&-1I>Abшўћћњњћњњљ§ћњљљљјњљњљљњњѕјљљјњљљњљњљљњўщŠ?*>>48V17B@><81+8*xљљњљ§њћ§§§ћ§њњўјљљћњћњўшЕ3,:;FSw+&9:,.(0*1;;Эљљјјљњљљјїјљљњњљњћњљљјнњљњљјїї§ўЯN2C@Gk]8,5994+.4.3:I;}јјљљўњјјћљњјїљљљњљјљњљњњјУљњјљјјњўўЅJ<1,#-52,(&L4075.,!+qјјљљћњћњњћћ§ў§ўћ§ћ§њљљњљњњћ§§њњљињћњњљўўѕx:BC;:1,.-*35*)?72§ћ§њћљњљњљћћњ§ћњћћќњћњљљќњљљјјгљњњљћљљ§ўЧL,;@9335.%".1*&-25"Fљњћњћћњјјњњљјљњњїљњљјљљњњљљњљ§јїјјчїєўњt!2O?742*,&13-*,.,+љљјњћњјїїјљљњ§љњљљљњћњјїљњњљ§јїѕѕўхЛ?HH@CCBBL8;>31+%&*њћћљљѕѓѓ§ѕїљљ§њљјјљ§ћњћћ§њјљљујїїѕўњ‘A@BHHJOC39>981-*1.ћ§§њњјњњљњљљњњљћњљјјљљѓњљјљњљњћњћњњјјўпзiTN?BFHGB707432325њњ§ћў§§ћњћњћћњњљњўљћћњћјљњљјљјїѕѕїщѕєєёЊQ72AFA;:;?<117028ћћљёњљњљљњћњћњљљјљјјїљњљљјјљћљљ§јїјјщѕћўцu4+8EC8:2879<@;71њљљїњјљјњћћњљљўјљљћњљњњљљўћљљњќљњљјјюїєѕєЎ5)4G<4<@:.;>FFўEњњјћљњћћњњўљјјјљћњћњћћњњћћ§њљјјЭњјљјјљњјїћўўЕ1$.$$;8197;>848њљћљњљњњјљјљћњћћњљјјїјљљ§јїљљњјљњљњјјуїјљљїјѕѕј§љŽ5GC2172-,5*05љјљљљњљљјњњљљћњћњћњњўћ§§љў§§њ§ћњњфљњљјљљјљїѕћўЧI:P#3<82.0MVY2љљњіљјљњљљњ§њљљњњљњљњћ§§ўў§§ѓћ§њљћћњјѕїїјїїшѕўўы”W:QN5),(CJIљљњћћљњњрћ§ћћњљњњјјљјљњњћљјњћњ§њњљњљњљјїѕѕїъјѕїљўўыr0љњљњњћћљњћњљљњћћњ§ћћњљјјўљјјљњрљњћћњћњљјїїјїј§ўћНO,8\^QLBA§њњљћћѕљћћњњљњљљњљљћћњћ§њћћњљћњћњћ§ћћњыљїїћўўэOIUI;M7ћњћћњјјќљњћњњјЯїєїѕјљљњљњћ§§њћњ§ћћњљњљњњљљњћћљјѕїѕєѓ§ьЕgQYB:>ћћ§§њћћ§ћћљњњўјљљјњћњљњљљјјљіјїїјїјњљљїїњѕїїљћўўњНƒTNZњњљњўћљљњљћњћњ§њћћњњћњјїњљљњўљњњѓјїїјјљљјїїљћўўђцИЁњњљљњњћњљљјјіљјјљјљњћњћћљјѕљјјїїљњћљњљљ§њћљљєјњњљїѕјїѕєјўўўњћћі§њћљњљњњљјјљљњћњњљјјўљјјђїјљљјљљјњљљјљјјьїѕјјїїјјљјїєїїљњњћ§ћћ§њљјјќљћњљљњ§јљјјїњћћњћњњљћћіњћњћњљїїѕїїојїїјћљњћњњљљћљњљњњћћ§ћњњ§ћ§ћ§ћћњћњњљ§јљјјёњљљњћњљњљјїїѕїјјћљјљљњњќћ§њћћњљњљњјљљѕњ§§ћћљјљјњљљњњљњњљњњёљњљњјљјјљљјњњљїїўјљљќњљљњњљћњљњњћњњіћњљјћ§ћњњљљёњјљњњћњћћљљњњљјјїўљјјўїљљёћљњљњњљћћњ§ћњљњњђљњћњњћњњ§ћћљњљљћљўњљљјњљћјїјјљљѕњљјјљјљљјљњњњљњњ§ћљљэјњњљњљњњћњњљњњ§ћћљћћўњћћќњљљћћњўјїїјљѓјїїјљљњњћљљїњњќјљјїїјћљњљјљљћњ§ёћўў§ћ§њњјљїјљћњњњљјјћћ§§іћњћ§§ћћњљњњљўјљљјїјќњјљћћрњљјљљњњ§ў§љљјћ§§ћњљљњћћњћћњћћњћњњ§гў§ўћ§ћњћ§ћћњћњљјјљњљљњњљљћњњљњњљїјљњљјјљњћ§§њњќјњњћћњњћћ§њћћєњ§ћ§њћљљћњљњњєљњћ§њњў§ў§§њњдћ§ћ§§ћњћљјјњљљњ§ћћњљљњјњљљњћћ§ћњћ§ћћњљњћњ§ћњњѕњћњўњћљљњ§њњњ§њ§њ§њњў§њњљјћјљїћљњўўвпaTEOLMNLPPIOQOSWU^LVЖўљћњћљњїљјћјњљњљћљћљњјњјјењїљїљјњїљјјїјїщг’AFMVTI@@8>APNo[\^OGaаўѕїїљљјђїљјњљћљћјњњљїјјњїњјћјљљўїјјƒїјњўћД;?NOUEE5538A-9UdbJBSпўѓѕєїѕљѕјѕњјћљћњћњћљћљћљњјњјњјњјћљћљћјњњўўЮTP@?@CFZ]cP\eрўѕјєѕѕљјћјћњћњћћўњћњ§ћ§ћњњћњњљўњ§њњв§љћљўў™ObTEQ]AMB>;LCSSaanjdкўѕјїњљњњ§њћћњљћњўћћїњ§ћ§ћў§ў§§ћњсћњўў˜WwTVYYNEAEOS7V[`cL9CBN@HJ?GSbЈчшћ§њћњ§ћ§њћњ§§ўћћњћјћљћљ§њ§њћњћњ§њћњ§љњљўўuGGLCFL?09B@PGHG#4YeŽРнћћњћљћљћњ§љћњњћѕњћњ§њ§њўћўћћнљћјњјљ§ўўq8MLPS[1ECCBHFVIE-9`уўњ§ћћуўћўћ§њњљћљћњњћ§љњјћњћћўћћњњљњњуљўўˆ2B@IGH@GIFEFIPJG?GMнѕћўћћўўћћњ§ћўћ§њњ№§њћљћњ§љњјљњћљ§ћћѓњљћњўўˆ8JSUQFFтMHBN@.5CN;3hрўњ§њћћўњ§њ§њ§њћњћћвљ§ћћњћјћљћјњњћљ§љњћўѕhEAEAOBLMLVHCHE@EYUTzњўћ§§§ћњћћњ§њњћўћћіўћўњ§њ§ћўћћўх˜N;H@GSiCGYOWPMA<5E;…§њ§њћћј§ћў§ў§ў§§ѕћњ§њ§ћ§ћўћ§§ћуњћћўўУAILNCM@@F;Q[CŠњњў§ћћф§њ§љљњ§њћљ§њ§њ§ћ§љ§ћў§§њњљ§њњ§§љўўоАZH;45:MBCFBeBFNCI;53њ§њћћ§§ўћ§ћўўё§ў§ў§§ћћњћћў§ў§§њћќ§њњўўњ…AMONHHю?;.88>LICOL-A§ў§§ћћѓњћћ§ћўћћ§§ћ§ћћѓўћўњўњ§љћљћњћћс§њўўбV4CINJFG>@C@AFAF<5@CC>њ§њћћљћїњњ§ћћМўњћњ§њ§ћ§ћћњћњўњўњ§њ§њћјљїћўўФJSUFUUYYhMJMFA:EF38§§ћћњљїїѕћј§њ§њћњ§њњь§њ§њ§њћ§ћћ§ћћњ§§ћњ§љљўъ™ILNPT[`aZTLSI@3;BCћў§§љћњ§ћћ§ћћїњћћ§њћњ§њњћкўћњњћћ§ћ§§ћћњњћјўўуt^QVTVYYUQMNHBE@AC§§ў§§ў§§љћўћћњ§ћћњўћ§ћў§§ћћњ§љ§љљњуїјўћДZ>;JQNTMWIFF@GI?Hћ§ћ§ћ§ћћўњћћћ§ћ§ћњњњћљњњћњњњ§ћћњ§љљићјљўўђ};8AOћ§њ§њњњ§њ§њњћћњўћ§ћ§ћћљ§ћў§ўў§§сћўћ§њ§њњљњљњїўўйYI[5AMILBF]pnJћћњўћ§љ§ћћюў§ўњ§њўњћћ§њ§§ў§ў§§аў§§ћўћћњњјњјњјњјљўўјЊePbaIC;,7W\]њ§њ§ћўњћ§ў§ўћ§ћћѓ§љњњћњўћ§њўћ§§књ§њћћ§љњљљїњјњјњ§ўў§„Oz^QCC>TU\њ§њ§њћћєњљћњўћўћњњўћћњйљћљ§љњљ§њ§љ§њ§њ§њћљњјњљљўўљŸI;8F^\TALBћћќўћ§ћћюўњ§њ§ћў§ўћћњћљћњ§њњљ§ћћњ§ћ§§ћјњћјњјљњўўѓШYEONUŸьяутмлккхсцсежйЧЧЭѕьхсхцтУp.*08:+"Z{?&9,8;+!-zгЫG7<.)534)+BДюшхкгбжйзлпзлгЪЫЧЫёшшхчщєШY"-"%,&E‡|5:27>04?G>ŸЭНU:\U9@795A5<ОыенпгШЫЧРФЯЧЧанЦФйєэыээьуИ]5"@*"5E;OЈu4-75BFGeo4$#ZЅЮмЮжутеЫаЖЭЮжсычрляцчщэёюЗ1-?B4:2A8ьюєыm@BFQvЮьбСЂ?Qdd{~SGHPAяхЩйттхмЭгцкпщїѕїщтйлкнпьѓДO:I-%&xЪЯЭгмкйпйбШР’ƒЖыјїщгншыѓєёx##+(($.9КдЩЦкژŸ—uрщЧШшЃ;4dHCFB4"ЏыяїьхујїŸJ;]40Jv‘НцшччхЭ9%,7(:BcйѓзЦбйрцкКВШШСпЗP.]E2B4$%щмЮкЯЧйУ<(001,%"+ЛяшрысжмОY:4.#*!ˆеТОТШТФЭааЩЮдсыЕ>M\85$  TФйЕЭзьшžA(%(!. ƒжїткрзЮ‘,#(,450•щмЫЭУНЧРУФОбжэюАB+C21eБалаеыїыS,$,hлєщнжцР`!").$2ЈЩКОЦЩЮгаШбЫзЮЪУИ\.V?"IйюылбИШЁ5-W:!VдшьчєєШ: #33.04+wткЯТЧЯбЮЩбзЮЯЯКЫЕP2B2* AЖЛЏЭбЩємL%"*1"#4wцптгёёЅ ,0&}цєсйЯбЫЪЮдаЭзесчхЏS>.2+$ BУзбЩдЭЫЁ:9>(.";ЊКящпуУS($28.-4eУлжлмеФЦОЧНММ€DЮгЭшюœMS<>,(…юнЩЭкюсОN3;+$+!mВzащэбФОЏk,1mЫѓшпумцштдкеЭбагмршюеmN:O^GLUЗыяѓЩбЗдкnA@?,;<87rНШG—јяюьЭ‘&%dйеЯЭбЯехлбддЪкдгжмгЯнэѓЫU8JdˆпмДТЛЌЋТнЛV;57LNnФЮР`ЋаЮФИm25”ЗЭФШМРЭЫТЧгЮЫджййейлЯЫЦН—jŠŠ{œлййзЭЫЮуѓыШМЎ…ЄахУцмШ?SgY{ЇСЕЊалєщеУЗЊТУСЛСЧШЪбпксйеСЭТЕ—ЂДЛдбскжлЯМЛжнчбЯСЩнаЈ›АВО(1>318CFd’žЃКЧОТНмлсйнрЩРУЪжЭеЩгг€ъаВЪйчянЮезежйжССТЦЮбНМЖЋ™ЃЄЉИ#2.4%]@-"F\?*SpœЋлымФетжзйцщщтмдедШРНОзнуЩТЗАЈЃНСгкжЩЕЏЏЏНББОКР(-5-).,(&-8!":Q?BHe™ВеТЦйтЮаЭКЗТРФТЫййннгаМСЛБЄВЭрдЧТТЩжмлаУШбЪ)%-5973$02,.;A.91)+800,50::CWEW.B248ZM>73->EF;HGE;79E4HOC>Z}\(&*,#$3<5+,547+!+3$-5;0>4)+#+8:3AGE@;FG8B>>?<7@52.57?9,+:9AB34((CM71+Nk‚Q+-4rU)1)#VH@B34)%%,+)371..5?.+7;C>89878&.3;;32<@VJ<5&BWJ>2!HFOUJG7&(4>7(%7.AE2,&35.0**4*,5-,53;:2BG;)H20(2"$(%&,2-T+.01.)((9?-@?*3%-,3:5A>B9>;9"2.+2%04+-.;@;A7)+05FC?-9:.2,4B7#&+19*H>>C;)0;>50))9:;9<-09?E;A@48A<9??87AE@433*%++FHB858AEEC@%!")(79BCB7738:078@CGC9J><:28;%3@;>;C;85.77B@>9<594.EF<>03GJ@7<;I<98($)5Q`Gh@CCG8EG?:A04@8?CQE3%(*9>:8A;82902813?759>B1.9<54<2,$-10bA)+4BCBBIMF82ћФ{CMACTTJI.-44>98QMPQH?5*(-477HmV+7>8,;AFmQ3+§§љяњд™kVBk]547*-41>B78<;4;?HG?>BAA>?:;>:4#!јњјљѕјєљљњћћњца™Z81+NA+.;GNHN^EE@FcTB<<4#IEGE:5>@;>>;@>,>C@GTEINњјљїњњјјљјљћ§§ЦЩ—Œ›ŠoP@;8An^NENJCIJC?@13>8A>7?JMqE?F>;B@^ZITU§љљјјњњћњњјјПљјњћ§§ў§§дŸq]P[iU@@WIL?>GB::hbOQVHOTU-:1)UTLYVTW`W§§ћїїјјњјїњїѕѕєєї§єј§§ЩїШТЯЎЉ™™vmTG\T?MEJMYHFH;BHBB:WhaS>SiiL§њ§ћјїјњњљћјљјѓїјјќѕјѕїїљљњјѕёћ§§жёкнлЎИСЌ–zx{dOHPZT5EdYhdmqx–јћљћћјјѕїљїјјњњЭјљјјїћњїїјїѕѕєєёѓѓєѕїѕї§ћљ§§їялШМp‡ВК”ŒарШЌЕУдЭћћљљћ§єћ§§њљћјїјјњјјњїрљњњјљјљљјјўўћѓюьž‡АИМЯБжбЫЏЏДК”§§јњ§§ћљљњ§§ў§њљїњњјїїћјњїѕїїмњјњјїљѕєѓѕїлКпхЮдЛЎФМЇЄ›™›їјљљјћ§љљћћјљэјљћљћћљљћјљљћћљћљљћћјњїњљїѕјєє№ћљѕјѕєѓьнцЩЭгФШЯ€ЗўѕєёяѕуФk)(2+72<4AQ")-.5.3&7‹ўьrNTG;<:@ET98Ÿ§ћђєѓѕѓєѓђєѓђѓёюѓђўѕєѓђњћчœG77"49AE9Ye74028>;:.2TеШ@.OE79ACAQO\Еўўѕѓѓђѓѕѓїєєїѓяђёђ§ѓѓѕѓњћч~3(%*583%&o’H,7F5BкўѓяяђѓђёёОюёђђюѕєёўєїїє§ћЪe0-A,,BH>YБƒ4,>AGIFNS2?5"vїшВˆ^S\E>jйпыщНL@YUZtw*F,2pк§јђѓђѓђђэїёєєјїјјѕђєђђёљ§Р44G>E?CB:™ўўйђtGISZ{щўњёНEY\cƒTSPYBžўўяёђѓяюђюћјћ§ўўњэяђєђѓўўНVCM;74:-BКўўдОbgpЂТѕяьћКB$BGN21)ˆѕљёѓёяяєєљђшВ’еўўћєяђђ–јўў{#&0219;!<йўђьђыВМД‚эўђњўНCFUPLT80(1ЇўєюѕѓђљўїŸb]+Cањчыўїєєћўћk#1739L2Uўўњэєў§члЦт§юўўВ@9jOLJE:Цўў€ЉєѓљўўЁNBiG7)PŠБеѕєѕђјђБA)--+-3@ErўўѓюэђюњјпзщэыћЪY3gI5GA&%ŽўћьюѓэїрJ.;)7>,$.Цўљѕђђљўй^97++%"#—ўѓэьцшшщьэяёёўўЭ@(Ua<5-+ ^яўчђєўўЕL-,$%))—ўўїѕёљђŸ4$%)185Ђўўяэюэыюю€кѓяђўўФI0J1$,tзўўѓёњўѕ].&$#!(wўўјєєўцi24-(,8Ыїцщьюяяёѓяєяяђїдd4[A3#$SэўћѓђэєИ90]@*+%$!^љўўёўўп@ 01254:)ўўѕэьэюяѓяяєєёюћпe;M8,0+*HзярыюѓўяT,-$-,,$+>ƒўѕўёўўМ% 3..‘ўўјёђэяяёяюяюђјћўЫ`E;>9+(PьўєюэђяТEE2ч540&!HФлўўя§уY0,3;:#0nсўђђОёѓђєёёюэѓяёюўўЏNZHE82!)”ўўѓђю§ўшaFG997.("*{сƒрў§їязЧu..!%щўўїяѕѕєєыёюђяѓѓєєўўцzYIWeEP\ТўўьђшщњѕxMIG3>C:<ˆпўMœўў€ьшЎ0(`ьљѓююђђяёєєёєяѕѕїѓѓёѕўўз^,;Qmэѕхээяхѓўе\J<?VU|шјђiЕцыюм|59ЏюђяээыщыюяюђђяѓѕєїєђѓяышВwœ›‘ЅїњююёэяћўўрйУ‘Мщђзўўђ%NbpmŠЖаТЧнѓўўыэщьыёђѓёьщьяэђђѓёѕѓёэкУпцѕї§ѕєђєѓѓэњњѓїээўўсаршэ*);C<:<>GBE8!)%3WVQ.(:J`kQG>UbhQ;IU[vb[kЃЕЂдсЪЂ…БЕжЛ—hjuT^.,,294.2044;?B@9;A@EA@A@FJC89?ZePS7P@>LocE9<@GNSCIOQNBHZ:??:885>;7175EG@<;5CCGЙPQNNMGEAJGLdS?EMT@IV^B:00Fpa?@[1e[*%,292--E98AHS"&$+G25;;@HJGELHJC@BEEЛC?ALIE?;AFIG?71Vv‘]89:t]&$14$,3VIF<>.00(05749?<GUWVI>.F^SF<)%"HAOOF?3.,8E125;FC?:23329<>GHH€nILHLJLN@*02-573@A?BGFA5P89%)?!1&*231>M2),,-0-2:AJE<>;;13:9:C@CEF?:ABFJF;39>83-*27955205:7<"&)33*-+.19?9::><5,->ELFAA@A77@B@#!,1;;A>@4+,-;9A>97:>@@5149773354;BC;39>:157IPF>9?FJLIC37(%&?AGA?A>;<9::CANB??L:C<>@B@<730287>@<78><4:>JLGB?BOUE?40(1@Pd@nIBHBACMLABNk:AE3:BC@?T>,(,20:<>:43:2884549;<579*).8*i…?3:;FHHGJLA58§Щt@SBJM[OJ7233б45:?BA?@99:;@AFECFLLJLM<.(+29<2LeZ:??>;@CLGHEJQC",NA;5:@>:;%S^L:8;P]c`?>FJF@BC@>:7NHFMcFA>?ZOC47%0PCIJ<:99юHY>EOњњјљљњќћњћўўЦг”™xM>?9BneJCFGG>>C@3::9CC3Ug]W@TinO§§њіљњћћњјїњљњњќјїјљљњћ§ћљљўўжэзлмАЕТБ–{zw]E?G][2Eg]k`irxњњћњћњњљљјљњњљљљњћњњћњљљјњљљјїїјїїрјѕјљўўћўўњёжЮЗwm‚ЏЛƒЯсФЉВУаЮњњћћюњћњћћ§њ§ћ§ћњњћњњљњњљђњљљјњљњћ§ћћњњўўђЬэ˜ƒЊЖНаЏгЯТЈЊЏЗާћ§ћ§ћ§ћћњћћ§ћ§ћ§ћўў§ћ§ћћљљњћљљњњљјљљњгљјјїѕїњзИмыЫжНЈСРЃЇ˜–Ÿћњћћ§њ§ћћњћњ§њњјјњћњћњћћњњ§ћћњћћњљќјљјїї№њћєњљђѕщкуШЫЯСЪаЭўяђююѓгМn19A.FBVHTJW1&;@JEAC5G‘§м|`\UOQQPN\@W;EL^JeОŒE@USWTUU?WбњЦZ]rYQZYUL^dŒсцгйрэяэстынссрьёюяњѓьёђўўћh5>:9@931ˆяЖP9?rWE,;QTЗчЉ5L|[\biTYjgmмўѓктяђпнушэёэёђѕѕѓјєёјїўўнOFWQjLTI*}юкЏ™nejS?rеыуЩБUAOWj}‰8P<8jОшѓсхяђцрсмххыђєєђєѓєѓїєў§Ф0*5ŠхуьэюсщыьёмйЏ—еўўћѕсяёєјўўŠ1,?F9BB"@ЧыхзьхДКЏ‹ѓўсьўМTNdbYZ@35+?ЌщнррщьѕєьЂjj:$Lаёптўєђљўўй})(CBGLUB]ўўєыю§ѓЫРУзјѓўўЗMH‚k\]TF3(2Щўў€ђёїўўЊVNvTE.Y…ЉЯёђѓѕљчЏH.7?@;LLOxѓўютшщёєягЫмсељЮjEtY3LZQ53*”ўьтщчлэлM0.2™ёнжжкдзйхслрьљўЩM-\rNFI1&bпѓЪчяўўИQ988@>;.!ЁљўєюэьцŸ;%&:11BGAЈњћэчнЯккнймцэњўРZ?[F$5"8Шўњьшўўљa;,*7:>,zђўѕэшўжt)(:9jN875+1QђўњђщнлЋ??pH<1.1*)eэўўяўўтH5;GCGF3‹њѓцмдйрхлцррьэзьЩeCa@;@50MЭдЦпррўёY8<7<@411J’ўјњчўўР$&AF?%˜§ўёясхпхчыхпхэюѕїЫePEMG9(%ZпђуутнсЗJTUF:;8;0+OЦаў§юєлa84FCI4?uйьыыящмйрлнбежтхсљўВaeWPG5*2–ўђрцш§јмeJVGEF>2.4‡ЯŽцўўьмЯЦ‚>9*(„сўљёээюђьюыслцрэюяљўтƒ^ak}ObjУўў§тсЭцэzZTOAJOIEŠбюYЏўў€­сЎ:%4cяэчстшђёюыёюмцыьѓэыуяўўдg3A`}‘яэЭгаШЦйљдdPH&CZc|кре&,vНццйа9%AЊбнмйзкнйзрщцршхчэьэычсгЮЋЄ—”ЎюэьхтрхјўѕпдСžИђљеўїп)IP5:UbPTdzЏШыдрѕђчшхжЯйеЯбнэхяяђуаагЩРЭуьцнжмсчюыэтхщщBA@FLOMQMBHPNGQ`U]g^W{‚œЪўђшєўэсечђїїћўўѕнрнуцкабхщщ€LчнулдрцрйнрLLELFF;?>LCJJLSYUco‰xQGJPYpx—Ѕ~‰ЗЭТДЯшЯгЯыуменбмхыјўьѕјяёїўћхцйѓB@GQNI8@@ICNUJYNOLLIMIQIWQLMP]qanG^BFUxgPFECOVZH\`[SONZC]^aQv–q<:?IBM?HOSOOLIMLJQJLGIIHQTOOIFLTP\\[[\^[ULUTQQg\O[Z`OQbnUG7;SЗuZVqGvg:5FOIHCCWZTQZg,2;(8TJIELHTT[UNPMNTLSPTPQOYZQZSMP\ZPICjŠЉmM$3FOŠq-$??CL2Nr`YOQEH@FHBFMNGMJLO[NMV[[YQSNMCQHOVTOYManeZQB^vcZSI747Y\`e\V9?>PPOFPVUSQLELCGOFG>LMYa][\`hVSOPGOFMSUVQTY]TFaCU8?HAFFGAOPL[>?@9A>EHNPQWWNMMAFIPMHEHHGIP-95EEAAFEQINVOQMOJ@JQY]VTUSQUVPSM<>COTJSQ`\ZLFIVTQFJGJOTSTUSMSVQNFECHMFACHMMWTSNQLMNQba\PQJU]\a\?NH<BYq‚^VZW]aY`\]U^}MW[IMO\TZcWBCЯлФУадЫдюйn”Дc^eРыЦmHG*-9,?ИшћљїЮЌk?,1"(gбѓјѓž.,?@?B:50".!&2ммЮИЛУШТЕ–H*E?VaЧьеd9<"02;8WёыюђндЦО’gUb„ЄтшцчДOM>OOIJIEFVcm˜vœптгШСЪЭР™uB#,8SZЎюЭx228841UЪэлЭФкюдВВ€mцјєыеЫлЎYM:AGECML88uлюяйЭйгнгЮаТ•9E;#&-4EИљЮ|8.HOB3*@ёюЩЩЯЫйрмяьдМелсцёёk:LF:0;@J3F™щбЯчттсрзхѓ‹?MPJFE<;>70*0*0A.3‘ьбШйкжлдйнлгкуеждУгЛoA7-A;BFC7Џзйыуппрзяљыp8IhH:>4-(77К+-<7ЂмЪЭабззцрдкЩЩРУбЫЭге•V:JPMJHJ& +ЦюпѓплбгаЪэяАPF3&5:80280.5&4Wvбб€ЌЮЫйнгрцтЯЧжйЪжмтѓєЅBE;$$#8йыпїпхпззййђт`A42GNJF>00$B3IzŸЋЏНебйЪднкЮТНИТЧаШЭЧЄCN11,#%-12ЎїєєёчлагЭРШзŸV5CC;.<<5*E[eŸИЕдЯШЪЫЫЮЯИЏВТЧМЛФЩйёёVCO*)&%,1*rчшчклкЯНЗСКОШЖd-IM<:<><7)@ЗуїёмтпзекЯТИЕРЫЯаЫТкуїєВ+"153.37A?:A•КььжейЯЦОЦНгкб~94?A9CW1:ЁУШЯеШакгШЯгЫМВЖаЯЪМОЦдтпЋ"$J@B:<:4>?]ЁбѓФОССУЫемсхеьЛP;:ЫЩбмхццржгмцЭТРВАЉАЩЭНЊВМЏЊЃŸЋЕРЫШЫШФблдЦИЁŸ’МзрпьтнЕЂЭж–PEB;9ддеЭкеЪМЗШкзжНШРИНШеЧСДВЌЕЖВВЖУБВЕЏЗФСЦРСЦЧУШнЪйјјѓзvaЉ`BTC0:774ЫЩеМИЏЋМЁ’Œ–ВБЕЗыёСМкрцеЗгЯЪзЖЪЫССкЛТШИдцлђхрїчзлЈr\C^V1W?%*&-ЯЪЗНЉЄБВ™”—ЇВЛбаЅ‘ŸЏ……LNexaBC\hrxrˆЂЉЅŒ•—••ЇƒG7GGce:5J@3;:BHФДЭаОЃВВŸ™™€#~q`AISWGJ[YYMJ?JC!08-94>1+,4+!@HNP;%?-(;A5&0;:.0-24ТСЧБVpeaNA)GPFQ<9FSeQVUCMF@((8@4:7>@:AG7.?JZC*?$(.4FBC;;<99?3QQ:&OYbM)!CVOF@:?545.0,!.+)0,.3)*%9899),*FNdQ:<<>QdLMJ$$34:?BJ?%)"<53882383:@>8;<10%G.%+(*-58:B-)9B@8&?CI^@50)@@?2495)+1?EA?A?@3**WE@(:3*49HE?5.37.CC1((4,17;B825+*7C49A98*$$,3<>0)>:784185GE;>2,A5AB552>FC>..-,2;4:@BA><:7?;LF?F?5L49?<:FHFFEA9<:234..+2772-39598?90(:>;>B:;314?BI@0++-4394;B:;2:IH53,1*:2.-.98+->72,02-5@C?744914*7:8@CAGEC212:875:-)81>E8,@.>BF4))*3.B922Ш0$*.>>+"BWGNJFEA;;.3<975824<)GQML8-&190-*2<<§;#..я1-79::@9AHF?GGC;55€Š25@HCA<<>8?5AC)9TLBFEIB,L{a>WЎ@>-0>2;5?E:;@92FTLPCCPWLNVTdWG@?3G^t{WdЯї§ўѕOJECPSJ@:8@?JMHGB4;F@JIecUZVSFEC<"(7ACBT@aYFIA3,18)4P^‘ИђћћїјњљQLQQO>W^?bP4GB:Hb^|”ЋЖФтнЛЄ‰ЂУЯРŒЋдмУНЮОЩѕ§ђлОЌЋбгя§§ў§§ўњјєѕѕHC>[BG[„{d–ВЗФЧбљњт—ŒŽŠƒ™зё§§њ§ў§§њѕыщљїљњѕјєѕјљѕяєєѕјѕѕєёѓѕИЋЉЁЇЉЛЪбюУЃСЊ˜лкЈЛЁv^Z[aНцыњ§їѕєѓѓєєѕјєѕїїќјѕѕљљСїљјјњјћћњјљљжазнгМнЯЖСРИА”z|vhx™Ћ˜œА’КтћњѕѕљљѕѕєјїїјњњљєѓѓѕњћјћћИјњљїѕљњјљѕѓ™ЧькŽ˜‡k‡АДЧžƒ‹q‘ЏЧйКЯхљ§ўїєєђѓєѕїјїєѕєєѓєёѓѕїїћљћљјїђјљїњљїїуљŽОптœi|}dz—ЭсЕЖБЌаШЭкчляёѓѕїїѕјљїїљљїїѕѕХљїїѕѕїѕјњїєїјћћњњјїјјДИуѓблаЮЅ—ЊСОЎЦмыђђљ§ўѕїїљїјѕїњћљћњњћ§§ќћїѕїїјђћ§ћњњљћњћњ§ћћїЂѕѓѓєѓїѕєўћы§ўуШКюўФbEBA;?ABUчўўЖaTj?!%+?kЗўў›4JGHGHH:4803:8@EBјёѓяюёђјўьxžСkipцўыxPF+7?:5NэўўѕцМrE9:,4tпўў…Б$<9LLMSFA@2:1)"(>ѓѓюяыыђэьЛP7TH`nчўшj>C+8><@cћў§њѓѕњчЈuji–Рѓњњўе^YBQWUQNJO]r{Џ™ЉѓѓєюэѓјуЉ~J19<\hЧўе‡?<9?<7^чўёыяѕўѕмзЮьўўОёєўхbQCGFLPNSE<{щўўёшїљѓєђњѓРLF>4+99LОўд‚:7FLF3+EљўђђёѕюёєўњыхђєёўўђrCTEGLNPP>;kСўўеђјѕјєђїяп\8("&\цўѓєѕѕљїїјћїїѓѓяьњўРN?4AHNJLIOHnсўўўњїїСѕўўЪSSHOLPTUNJA8<9181@?љјыђёяѓёєђїѕєјђяђћўУC5@;QqI@?;582;<5):?@Чўєёѓѕѓѕєїљёєѓѕђяєё§ўЈ`BMOQIFT;%)еўўєнїѓєэўўЧ]M8,>@EB<0540+8eћўєяѕђђјѕєѓѓЉюэѓђєѓўўВHGA+!,.9$!;ёў§ўњѕєѕѓёяўўŠiA:CNTLFCA72G;P™тшцђэђёѕєєюьээёюяюёёјЮL]B?90142.+ Зўўсѕїѕёюёј§Уd# 8IL;:BA92Si{аыыїёѓђђШёьщшщьэђђяєљўў‡]HS$$(01.8*wћўўѓєђѓѓяыююѕеw1PUFFJQQ>0N’зўўђ€‹яёёђєёюэюёѓёяѓяєўўМ*(5:89:;CC?HЕщўўєђяёёѓёюљўєHAMHG\g>2IСїђђѓјїђєјїєєѓђђюёяёяђёњ§Р#)GE?A;:5>AjФѕўѓёыыяёёєѓљїўп^GG94d{cjњўўїљљјїѕѓєѓѓђёяюђђёЮђ§ўѕt@TLF@>:A8TКњѓўўьэюэєђђѓѓюўўœY]EMƒжцњљћњѓјѕѕјїїљѓђёяѓђѓѓэѕѓяючўћ"9LIE2SOAўўїяђёюјєїјѕђљўю–cZ˜Юмцєѓёђѓїѕѕїјјїїђёђёюјяѕєђѓѓєўўм?0~„‚M4qећўўљєѓѓєєїјјљљїєїўћгЭжтююђѓђљљјїјјѕѕїѕєјѓєѕєѕѕђёѓёєўўэЋuбўўсЌАьнЌ|2ђєђєѓєєїдјѓяячряюѕљўѓђяёююђёєѓєѓєюђюђђѓђѓёђѓєѕїђњ§бВўўгћЗДT@>?юёёїѕјїѕєѕїѓѕющшсыцьяюяьэхнрмтуьѓёђёѓђђдэрЮхўєѕѕяјёцьшёўМB%??C@юёёђѓєѕѓѓѕєёєяьщчщьыээДщцщхтррщыыющыяэяююшцпШтэђѕћўўрТэщ›U%*M>9>эёђєюэяшуьѕјїђыьюяяэєёёыьщчхтчхщчцшшаяюђёюэяёњѓєўўћсgЕnJ\L;;:8:юђьђэьпчкаЮЫутшяўўяэўўьћуљєѕњсяєйхўщььшї§љўў€ §юЕeLg]:aJ24.85яьёчщуышмлжлуьщьшЦЏ—ЏФž™VVuŒrOVpp}‚‘ЄОЭСЃŸЗЋЅАŠV@WJpvJ(8AGC@@EEюшєўѕмнжЮЮУБ’rGPaeSWga\TTCVH,4:B4$)LVWLC7H94@2$.)7LI@78F@Z[?.P]hQ<2J[VEFHHAWLC>3@MI><;AGF@AJJLMECAFG?31+,)"&,!5Y&CB;04OhJCW0*:LE;9AA€}FIIW#5BHHB?>43?>73SGJPLIMSTC52:43002575-1?7.2BGIJT@.-ELF@?HMPME>E<15A>:27F3,--#19957<>:45828:5:35951AEGC:91%5A@58@ISWVMVA),847570%%+2.2%+5747845873981,)22*2427227FG@;45LMjO@EH?U`SJN402>;>GLF1#.#4F83:88@@>?CB?;<5%N3,1&)07<9907:CA;<>@;-%)WI;2521&.8GE758GHF??8>55,259<>;;3,3441:EB<9;;:7;CAA78@GB;74EC;.&5,.8:784178:FJCC@>95:540::œ7AEE<2.48-9<89583417@>@>3.++089><<7788558?:@<0.1EE<19@;?EE?AFGC<;:850%.5;85:73;799;7;;9?GA?94.54>E@.*+3;:58:?@??;;49@HC8-..37@7,2:33#0>;3)18:7BA@>:944+-29<;72-01348341(7;>>1B3;>@<0$-21-<7-13-0)3B<-&<`MJIIF@:54558522.,7@A>4471377;<)FJTO:-.7>5-,5>@A:3)04495;>?9>8NL>NNC@:;3259<@717242>@A1@YFYЖEI;3B0:OC><9179>ECGE?>CFFA 87877<5:HHJCHI]TIZWcYHFF4Mdu{`gдўўФјWPMOWTLE>CAMONOCE;BBEJQg`VVPN@A@9#$:;FGYAb`LLC1.35%5Vd—КђўўЧњљјQPW\U?YcCaQ9IC9J^d‚œЎВШцщВ™‡~ŸТЫН‹}БксШУлТгєўюзЛБВгдьўўз§љїїјљMIBYIO\ƒ”a˜ДЛФШШљћм‘‹’‘wzЁйѓњўћўў№§љючјљў§јњѕѓњћјїїњјїјјїјјдНВЎЅЈЋИШгщОЁОЄдпžЂИ’mYP\W{Кэѕ§ўљјїѕѕїїјїїјљљўїјјћљјљјњњўћњњјогЫеудКкЪЖЦСДА‘q~n`v”Ѕ’—ЎŒДцў§їјјљјј№їљљњњљјїѕѕјљћњћњњХљјљјјљњјјї–Щьзˆˆz]}ЉАУ–x‚iˆЊСеКЭю§ўўњїїѕѕїјљњљјјїїѕѓєѕјљњћћїњљљїјљњјљљујˆРьп‘`xz[pŒУпЏДЌЎЮТШншуїєѕјљљјљјљјљјљФњљљјљњћњњљњљњњЖЗхёжкЫЫŸŽЁОИЄТкщѕѓњўўјљљјљїјљњњћњњљњћ§§ћњњљљњњћіљњћћљћ§§њћћєЄэёєїѓђљљсћћшСЕкяРhNMEPIQN[з§ђЎdawI0(07,FqСўўЅFaW]`YTGE?MCHNOTWьюмйцьньўэzŸЧrovжўп‰a[1GIN@TжўўѕхТNB90>}шўў…В,H@^[[bUPO@G;:1:MььцгЯгпкЮЇWVўўтхурьэюўњхецьѓњўў~LdZ[TZchQOzбўўљхяючыушхдdHWJMH4N`ŽLHoU[W@+qўў§ѕєђяхщьєђяѓэюлЭтŒaJLbb[\V0IAgуњыкюђяѓюўьЎU]GWW]Lrbuc@WdPN;11jшїёѕєјѕїїјєјёёытйшўЩ\MBQW]`[W`OpбхўўєѕєѓёћўЫbaVa^Zdeb[LOJAGEFPG‰тржчтщуьчшяїєњянЪѓўИOBHQPSPYWeG[ДўлеѕїєєёяўўŸ[^mbT\WQNEHFIIбYCCЌўђкэьюьяьёьщьяыышухн„ZOEQ\OZW<5"GТёѓјёяђяяўў€ЖŒPb~]USLFGMJHN5ANMОѕсхьщыьєёэщурзлцшрщяЉhI\ga]c^E.1аўї§єщыэшмўўЪgYGANSLPPQ?IB<@o’є§ыхтщяэѓђђчмшыуэёђўўКPTT7))AB<8)CяњёўѕђђэьышњїtQMW^kbVVLN;VB\‘ТУЩйчщятююьдггЭзртххрИPbMJL9@EHB8ФўўЛѓђышслшёЕn3Ea]USNSO9\i}ЖЮЪяуййннрлЯРЯжйдзпуёўў•k[iBC8‡љўћыщютсее€Ёдче{9^ePVM[]I@\–дѓў§яэюцщььккгзхчыуйяёўўЧ>:HIIMJNSSNYЏкўўьэшцнмндщёэ˜MHOVPbmE5OЛцпшщцчьчнпщшсЮжтухззйтэєН,8[TSQST@NNtИчўсбгеемшчэѓщјгaJOC<54>243.9Je.>ZLG?@\TUk?;L\VNOHIQPZ\^5"GYTZ[ONMNLIG?b]Ua[[]ebZLHEFCG:IHB@A5F.O4>BMI[YcPLJMZVTWVYd`W[SLNLMQNGMeFC>EG?MSTSGOISTJJNQPLLE;GNBSEFII>BQY[USSECHHLSW]\de^bo\1?HJNOHJEA5;EEIINONGJNMLHPAIPNC5?ABCH>7C]\SaTT€ЖS\YZWWa[PQTQTMNLOIPJTQIEJGFFJOUVQNGB?J5HAFFGHGL@BIPPWNNHO]aPSSZYV[ZY^\YQLGHBPGPMLNOQTNTLNFPPQOUTYQE;NMNLJQHIN@<:;?B@VWOIGAPAGNLTB]gdeI;?IPVGLLTVTQPGCLMFJJYPWPZccQ^^`SWE?@FGLTJI@C8JQTMANkgQ]\cU9\‘xWcЧWYGIQMWjVUQIQNUYVUW\\WWa]YYVLMHEFJGEJNMTV^Y`b^\Z\ehmooƒxJ7B^ŽЧ§ўwq[hkhbZ\e^dx`ng`ej~ƒknhcbVaeUHH?LHVPQTZhpe`rpƒm^YVG`z‰•hv—уўўХћke]jcg`WTSTYbd`WTIPVTYb{tae\QGIC?,3BPPZhTun^[P<9>@44318ET-;Кћ§ј§§ћћє§њ§љљјљњўў§ћћ§ћњљћћ§§ўўт4F- %-*%9^A;:72:J8PЮ§ћјљљћљљћў§ўўѕњ§ћј§ўњ§ўћ§§ўў§§ќњўў§§лћmOC2-+ $",4CEL5B”љ§ћјњњћ§§љ§њ§§љљћћљћћјјжћњўў§њ§ћў§њјљїѕѕ@NH %1#185@:A8;Lkжјњњўјњњьїљ§§ћјїїћ§§њљљњјљїј§§ћн§њ§њјјњ:3(2+,:17:BIHBCћћўћ§§ъљњљїњњјњјїјјњљ§њўњ§§љїїљѕєљј§§ўўжœC@9>(*$&O3?HGHBF5nћћэїјљљјљњњїњљ§§ћљјјћ§жљјјњњјљїњњћ§њљјћгi?$#!-%1?EIHC;-2LЂєћѕђѕѓїїўћ§§ў§ћљњ§§ўў§ћќњїњјјлћяЋkJ!4732 FF+13JPAG”ыјчцюїћјћњ§ћћєјћљјљћ§§њ§јљљћњњјљћћњњнєюНL;,.30+(%&-(ASTTžёяйжнє§§љјјћњћћ§љљћўљјјљ§Яњ§§њ§ћ§њљяаm&-0;92$$)0+?9@?[qєћјхуяњћїјњјљљћ§§ћћљћљћ§§еўћћў§§їщO 4394%!&#(")*+-(*>pчєьпушёїјћ§§ўў§ћљћљљ§§Юњ§њ§њћ§ўў§њљћћюєЃ[ (-#!).175.+7GМьцежхьюѕјћљ§њ§§ўў§ќў§§ўў§йњћљљБУЇ0 837CH3$085:?@>A-3HФёцрсэюєєљ§§ўљњњћљћћљ§§ењ§њљљ7374"#24?F@@880%!*FF>?jняђэшскхђљћљ§ўўє§ћћљћјљћ§љјћћќљјћ§§жњў%5:%)$+2-8,@81+.,*5?>AŽїїљєэцтэєјљћћњљћћўњ§§ћ§ўњ§§Эњћћљ§G:*#"+*0841,(&-?>B9F::Žшчкшхслнсюѕїїљїњљћљћћ§§ћЯњјјѕїѕїјјћћ§8>5(0*%*51;978(.24BILLY‹яындедакмыѕљјјяљњјїјћљћћљљ§§њљљћћ§кљIFQoжєяёѕѕђящтхїћњњ§§њћјћњњјј§їљїїњјљлјљћ12%+0.B??92*1949&&1+%$,03#.,5Ќљћєѓѓїєјїљњјјњљїњєњњїїєњјњћ§ћљћјјћ§§њ§чњ-)3<;:.70"2,201%EQE‡§ћћѕѕђєљјјљћљћћњћљѕћћіњїјљїњћ§њ§§њў§ўўњу§,2>45-"3-;8HH90!4pь§ћїљјјњћћјћў§ћћњњјјњћ§§їљјњљћњјћ§§бљћ12?0#%5184CBPNEVYЄїљ§ўїјјљљћњњљљћљјњњјњћ§ћ§§ўў§іљћјїљїњћљјјпћ§99?<>HO5+?EJFPW”чћњѕјїјњјњјјєјјўњћћїњ§ўўњ§§њ§§їћљњњјњћљћћхљјћ<:?8;><@%-bowwrЈћћјѓєѕјѕѕћљњјљїїёјћљћњ§ћњјњјїњљћћ§ўњ§§ћњўў§ћћф>;?<@CI>:4><>P:Vжўўњћћњћћњј§ўў§§ћћ§§зћўў§ћ§ў§ћћ§ўў§ћ§њoPH1&"$!&)-018?IM8G™ўўцњљљњ§ћћ§§ћ§ћ§ћћњћњћћњњћ§ў§§ўлћ§њјљјј‰FTO)((18;:@@88Otнў§њљњљљфћ§ћћњљњћћ§§ћћњњјљњћ§ћ§њћћ§ћњњчљ™:;,&(*!!$075?CFAJHˆўўћш§ћћљјљњљњљњћњњљћ§§ў§§ћћљљљјїјњ§ћўўпИIIF>$%!!%H8@FJEFB3tўўєљњћћ§ћљљћќ§њћњњєћњ§ћћњњљљњјљљћо§ћњњёE+")"%&%9BMHFLAOpћўўћњћ§§іћ§ћњћћњњћњњћњН§ћ§ћ§њ§ћ§§њњўЅQ,$#"AiCA@?F5:PАўўјљјњћњћњ§ћ§ћў§ўћ§ћ§ћ§§ў§§ћ§ћњњќљћљњњиўИrQ*;+.&%E<22;GYIPЎўўѕїјљћњћ§§њћњњћћў§ћћ§ћгњћљњћћњљљњћўЯU>38-11*##$.2%LVWYЇўўїјњљ§ћћњњ§љњћћћњћњћњњћ§рћ§ћўћ§ўўѓz2!,223-#$).&+>9ECbtўўрљњљњњћњљњћћњћ§ћ§њћњћњћњ§ћ§ћ§ћ§ћўўд§ћўў‘T)),.%*1108)..Czѕўўїєїјљњњ§ћў§ўћ§ћћб§ћ§ћ§ћ§ћ§њ§§ўћ§ћњњўўЋc"!&!"0527AEJI^ьў§єїїхљњћ§њћњ§ћ§ћ§ћ§ћ§ћћњ§ћ§њћњћњњў§ћћўкЗ%#+10,*,18+100))-0>878878:7BJF•ўўїІљїљњћњћ§ћњћњ§ћ§ћ§ћ§њћћ§ћ§ћ§ћ§§ћњћћH@70()(.125:4-+3:GH;8420,1187:;8105AJNZS`›ўўєјѕєѕђѕѕјјњњњћњњљњћћЩњћћ§ћ§ћћњћњћћ§ћ§ћ<><;727387;?CB:><31;9?:93473435:ONYwчўўјљњљљјњњљњ§§јћ§њ§њњљњњ§љјљљњћтњћњ1-0)-137;A94-311711%Atнўўћљљњўћњњ§ћњћћњњћћљљњњўљћћр§GB<50978;4,-3**187.9wсўўћњћљћњљљЧјїїљљњљћћ§ћ§ћ§ћ§ћ§ћўў§ћ§ћ§ћћњњћ>?1)&103;9*(-,(**".1qэўјјљљщњљјљјјњњћњњљњљњњ§ўў§§ћўў§оћњћћњ§ћ§ћ827839501.%"+.(05)5Дўўјѕѕїљњјљјљљћљњљљљњљњ§њћњњќћ§ћ§§ћч§%&25843+-0*01.)!AWFўўњјјуљјњњћњћњњљћћ§њћњљљїјљљћћ§ћ§ћ§§ўћўў§пћ-4::3,*(%4:AFB7+).rьўўљјњњљњћњћњњћњїћњњљњњљњ§§Фћњљћњљњћћ§ћ§ћћњ-+,8%813:CIOLC^Užєўў§ћћ§ћћњ§§ћћњћњљљњљњ§ў§ћўўзћ§ћћњљјљљћћ§њњ§ћћ1:88>ML:,8BNJLY•ьў§јїљњњћљњњћњњћљћњњ§§ўў§§§ћ§ћћљћњљћћњњћњшBEFGE:3;;JLS\YeonˆŽЭўўѕђєѕћњ§ћўћўћў§ў§ўўї§ў§ўћў§ў§§ќћў§ўўмб>(FE9+537IFBE?.47;3HNJHJHGIIY]WЅўўБјѕѕѓѕљћћ§ћўћ§ћ§§ў§ў§ў§§ћў§ў§ў§ў§ўћ§§ў^SGB?A;AC9@BF@IHST`U^LNЇўњыѕёёыёяјљ§њ§њћћ§§ёћў§ў§ў§§ћўћ§њ§ћћЭ§ћўPGEGEJLd^iцўўј§њљїјїјљ§ўў§ў§§§њўћћњ§њ§њ§ћћсўћ§§ў§§JH?E5CIGLL@AC@AJFVE9S„сўўІњ§њњћўњ§ћ§ћ§ћўћ§§ўћ§ћћњћћўћўћўћ§ћўћ§ћўZPMGHLGCHHJLGC?IHJ?EŠёўўћњњ§љћњћњћјњњўњћћў§ў§ў§ў§ў§ўўљ§ў§ў§ўћћу§PME0:5>AFHBB7UmPўў§љљћљ§ћћ§§ћ§юћ§ћ§љ§њћћў§ў§ў§ў§ўўч§ў@?BQ>133CBQ^aYQC9Aњўўњњћќ§ћ§ћћї§ћў§§ћ§§ћћ§ћў§ћћцў§ў§ў§§/classified-ads-0.09/images/000077500000000000000000000000001260620453500155655ustar00rootroot00000000000000classified-ads-0.09/images/logo32.png000066400000000000000000000026021260620453500174000ustar00rootroot00000000000000‰PNG  IHDR@ •CŽЖРPLTEqŒЅЅЄ ———ЂЪ ьььћћќŒŒ‹ЪЪЪxxwдддГГГVj ККК::7VVUђђђѕѕѕХХХhigIJH%'" @A?иии451qrpœУ јјјЯЯЯяяяссс-.*оооччшџџџффф9E d| Б ˜О ‚‚+5ллл]^YGXЊе & ™П ППП}›aa`’Ж †І›П•ЙикбЦШПbcXвдЫ3юЂ.}IDATx^•хВ#7„G0ЬЬŒfі… Мџ[хHГОЛ›T%щ?ЎЛ?ЕŒ…ћПылй9Pj†…-Kг>‹p’`’іEпу)"џ (…"УPuK+ьИшq’…YcšШп{І_%Ѕќ\ZVу„†Бѓi`IDІщg@U‰\еЯHY~“ЎЛ ƒфжЕьЕƒ~jЌвQВi"?{pП цХм>пEёўЪё‰њ)яЄБЫ‡жu™пѕZЙn­ЗЗ|іЂјмм"Šn—БкќЎŸ†ќДш†‘BЊп њ8C ŠJсхп_0yiJЗ/ТчŸн2JЫЂЋu’(Jт>sŠbљJ˜M<СъпЇећ§уђm%|ў6JZT-!$JMг‚sVи fMр~ў‘й№ЦмnЭcФОй@ш$wQб9!8CвЬхŽ'KБ љJP‰v№ё)‚ЎЂpdS\Џа<шЙ‡тd† ^™ЩѓЦNвщ Ќz›ћЕ‚fTеѕЫƒŸ"aЬKkѓ\зрЦЈввI@V@uп0%юїЦМ=Џя7А\PНs7ф‹ЉюКв2zЕd… †'г@ќР„Є;qЯ†a; lСw{Џірuт4ВUŒ Lж:Џ•аћ1BUСєР›с8ŽSŒѕ|рfќъж Иo+ђќ˜§мЌи#ж+dJe”*Ш›gmВ3ХŽHOi‘Т›ѕ8№ГŸу­xg7!&АіyefyЫ<Жѓ\fC7[…c$Dі/№ѓ\Xј0eжт[ъАŒВ, ЅЙS ZЄ™†2ђу ТѕчПЂљ§ Ль4{^зЙЎ<зУ"ЛNјhНхqpдЂ§Ћˆ`М\ŸЏ,+ %@Yv‡Ѕѕъ™Љ–дN ›ъmэЙunX%&kŸМь‘ЩЏq3SоЦ{ЕћC%з“хZn‡fЌO6єЅ•eWUДpZа4>7WъЗ‚Q6"и(Я@xnЇ7‹Ћк“ct’4<;ŒЩ XK™Ђј|Е”Т( Vќц4ТBКƒяч’‘žЊAƒа.Ђ Њ6|…wз+,Л?/зŠ–Џ ѕЫj$”$ 5…э„=;шЕЮЛѓЄс)l7)-ЄOj†е cлЖОeœф&KRѕЉэ81T`№:ожбŒ"qё.T;ќ† _FOBEЏѓ‚›&(јFqРšaЮ—№‘-г[&ь уб ‹+k8=Ѓ76ЋAprUЧЏp‰еіˆзј(@/nЛu3јzЗH9 њ”ЅL4ЭXr_+{ђыkНzš—ЭцВ§И‹beТrp@Ќ „(P`~5LЂд~;”ЅЎ>šюР?T‰  ЬO~РŽ8Šб,нв ‡§Џ…Ёc+О•ЫшŸm\œі0Хoj[o\dosиїqŸ$EбKžрп]аfядЪ:Œ”яФI J [)cBў€р€!uhд&W’B;OS%”„ќ,ƒмєљёОIENDЎB`‚classified-ads-0.09/images/mac/000077500000000000000000000000001260620453500163255ustar00rootroot00000000000000classified-ads-0.09/images/mac/editcopy.png000066400000000000000000000026741260620453500206640ustar00rootroot00000000000000‰PNG  IHDR szzєƒIDATx^ЕWKlTеўю;[hщP†:иHЕJxˆ !дG\(DCФ‰К‘Иqх#>7$ЎмИвАа• џфП +*h•J ДLщ“–N;гЮЋѓИЯsячwrO2ЩdŠ“ŒПфЫyLц|пяq~gFЊVЋhХž;§щKуё6ріџ}^@SZ$ЧЗG_§ўЋ ЊEI7@@„OЃуѓ7Юvщ ?Ё‰ЩhЭЖ98АУE@ЕРd€ыŽ А<`N ЬAIc84јдЫМѓцЛ5сЏЕKЦРL{R|Џ%aЈT*(ђХ о:~јьы/юƒRзR оўшђЁК%ŸїѕѕG—RыƒзўœѓИvDB žŒущ'ЃV,•`Kшъо†ТzŸœ?§^&_6k"юеъЁдL€ І“ЮНА7~NьэˆuгШlІшКЖe`чvDЛTф*lцсЧŸ81Дћž‰Œ1Ы3AfЖ@зuѕьЩЁУw'їјуq8uюфСїOшЧfYŠХ"њz{pц•~Œм_FOWН=$ Іa€,PЭVЩdф]šІq/62ЧqшаAЛvіbOпfмJЌ •-CЈ˜ŸКƒЏ/~ŒKп\DrqšjGк ZѕУїRQ<Л'ŽРмnOЎрјб~9:„СНћрUetvvbЕВPmЋ!BиІM›p`W/юLM`9gт‰о>Фj лbл ЁPЪkЋY–y†‡‡ЉјКЃЃІЎaœмАЉ^ЈWДЉ„B!Фуqž†rЙL5УSсT%ш&`;0@z˜ Д5T|$€ђK‘ Еmл˜H'сVy‡„щpr˜\D›#@W-cыж­ˆХbˆFЃ<0˜ФъN7ьЖ h,BЏъСѓ<0bP4x ИmSлnГ"ЃыК ёЙЧљ)ќ~№Јh6№Ÿ\Cy.жВ,AГ€€Э#РНїxMД1Т{"#эё7Рі8ЁХ€МЦSСч&ks(ьD, ’цt ]WFA\шйЬ=G8иЦk(ТNЄ4вЃ$ёtT]D‚@МмвE 3DQЊвДvA&BNїŸDƒAzФј5ЌXРьэ rwgs`–&y д„ЫtœfUi5ч"д|hM"(~ъŽ$Ž:c9Зˆ_ЦЧy”$йДфюЃД–$ш8ўНVˆiЄžOsг4‰”PCЂ‘яЭŽ]УШ•‡Ш–єE%ЄN1DY5ИШЬдјЬя "˜WйЈШˆŒLф\Д\ъџКЎCUUФ?3tЗbц8ХхŠњлВЧ­|zAЫ/Ѕ Щ‰Ќяu' €!|Tšy.DЏщp‘kBЯoЉTbЩ{Љ5Џ›З~Лў№оѕž.[д/Ш‘бhD*rЬQ(ˆ€<І_М$іЈї“ї$ŽЃ\.1гu™ђC­њˆд> њBdЁІЉђš"‰DЈЪЩsкуO2™ф{sssƒ')іjFВ+…еЌ…> ˆ-гD0ЊФ ї˜|0‰љљyЄ2EУђBe+Э›VЪљ•›љє\ЪПjž€HцЏН&(м<ЇŒ1ђD"ббQNšЮ•57ЫКсј: я˜5ДТTjіюШќиpТИD,ŠpCКЎaii œxzzљ2Ћxj|ђˆ‡XхмЏЫS§Йœ ћъъј`MЬЬЬрї+—А–з+‘mЛгСюcйрЖЎ ‡йзJЙх‘Ћп^Є’@ƒ€цBh^Яў8`РU7јђLZЊ™ ђ‰б„М^„дЕтЋ‚ТRdЭIENDЎB`‚classified-ads-0.09/images/mac/editcut.png000066400000000000000000000026461260620453500205040ustar00rootroot00000000000000‰PNG  IHDR szzєmIDATxкХ–}L•uЧП\гт'/‰QО`м’IAоLjЫI›“Ђ\ЅdflИ™ОŒ_paˆ\Й"\œЂŽ\dрtN bШRR™h6wЏKNчм§юіќСфњ‚§ёЯ}žч|Юяœѓ{бџŠs^L“ШD2ОL€пd`нJрј: }9аlS2ўB !hЮH‹ШŒV9д+$ HШБ•еsя傇Z QВ§8рЦK$4R C& 5~ и˜мZуэ}JQ_јэјё]"&‚C' В—lЭЁЁVUѓ8( Кі(ќЅуЅѓMж˜›Ќ„P5>9Ътt0`“ Fйн鹕btКя$Јeёb;?&%9нBbccгOже§nээ§ЗЋЕѕyІpк>VVЂШУƒvz{гvWW’оАєnЃЃЃгOX,VЋ•„ОЎ.:ДrхПWwщ-Р э~0и)KЋЙnЄŽŒŒLџЕВВЃЇЇ‡„^І­ЎюіFc‰*ƒŸгкŒЄ'$№‘фdъэш MjћиЙИPСЈQdЮЪЂ]љљ§ЋSRк3RSЛJ6lј‹kоњєijnnІПЛЛћГ–,Љ‘ЉpZР1FЬв@љz C‚~м‘Пл[ё„ $Ч^^l0фШѕJ6r†ЇчЦк-[z››ЈЉЉ‰Ў\ъЄУfѓЙСњР CX € 3чcраžйГЉ`ФZ TЉяБˆž2n\ViffпО}ћЈЁЁў8{ж63 €q Фo€NћвъѕЗ?6:l˜Й‰@E‰П?•є5P` ѓЄIƒwuўyfСчsчў\БЫд_]]Mлкю$ХЧs„k &СwгkРzM№ч˜ЄЯ€_L~~Д7.ŽrXTВ`žRcљ4уЇAўŸРŒg|˜7&zxlЪ[ЖьКйlІцSЇ(#%ЅV;Ђp|^ЩЋVОѕф \пЩ,ГИ ™Ыoy:u:№О ,•Ь Œъ| 3•™ТМЬМЛ(4tavі§&“ Р;кЬ’њ›ƒ‚Ј2>ž$ МjЉЙ#xАР‹ъ3˜™L8Ё!\cB™`%4™y}ЂСX*IhЇ@TgrДшt$яћb;;єzћ;?X`:ІE11ЬцU sдиE3Г•LЈЪу­ЪЃp#JfуРW_;VEœrf8лJЭ’€AMŠnАPЧ ggЦ1Я0XЕЕЛ:#рТ SЖcOен“юЃ EоGшh•˜‹VрnУ•„cPЋсэь*ёБ’„ >Т‘НVР Wf”*‰›бЕмOЈР#еstкь…џуX‘­юСјIENDЎB`‚classified-ads-0.09/images/mac/editpaste.png000066400000000000000000000035621260620453500210230ustar00rootroot00000000000000‰PNG  IHDR szzє9IDATx^Ѕ—klз†Ÿ33{ёкЛ^лёА!ИC…ІQ)+ЂI‰_mAUЩE(BЇ(MЊўъEтGў”DQJ“ŠЊEMЃFŠZ•HihC!­‚b.66ЦW№ЕНяюьЮхt8Zeеѕb њJЏЮhЮ}ЯљОoЮЮ )%х$„иЌgquI)џЮ}J”^ЋiZдћžу8,"яй?^юQZщЎ<НщЇЏялљѓ'6ЎyђтХ‹  14шyЈрСA5zїёцй§фцg>xuчkk›ТЯy№юQF Р†іhvWUeŽЋ!IOOсp˜Л)•JaL д9нuKДtЭUЈ’џ€И9иGХHГЗ\ўqђ$3‹cйHР4MrЙљ|лЖЉ­­Ѕ">EЂBУvЙ/%ѕHpЦ рТПў†™™CУEˆш.К&№ q[В,b pСЈ<ѕТЯОўв/Л6Q hA‰Яwџ`}_Y€#GŽ]з5Љ9 `еЊј2:’RJЯ д‡ƒ €Oc<+И>1ЩП'ЧnкЙgыЖm{*Т!–жtЊ+uъТ~ЂU~zF’эЧ>› ћKцwЅx‹Ќ‰V’Е,лХ•Mќ†FаЇ“u‰h oМљ>KP …Qй+“*WuЕŸЦкF&чіНєжч>Аaџ]аAh ызГс $W 4Ёю+пJ9|ѕщЭDыъUo”‘ъ—d2I0TЭќ§эЭиі"Dіюн+;::\C|јu УабиК‹+Q†І04ѕŒ™ЭЊ >ŸrВ,‹D"AMMьjџюЉ›ћ:оМpўW/o iЊ P"ЅLqЎ\”">|ЁЅЊ­єё@иЯй+gYџШnBAƒЌgл–ž] ]P&( ‰,f‡Лf@YЈqžЮЬ08kБЃу-zfЃшС Ў‚л–ЯаPЛt]$%’ца4PfžњЇRМњ^§Звˆj“цњ ВІCЮД1НqгъЮœ(_`ёёПY(UkS˜зwЏg(aЃ7ЌfЭКЏЈЮ.ˆ3#ажжЖ0€\Ќ(Су­Е|me„O{'ё?ВŽЛ^T]^ЂEX0ЪšAQЎe’OMcЭЭ`gтфf$†•)йбтR` 7ЁP–вС1“фчМ Љi @$Фs08+Y:чо€Dbс dЦКŠAMЩhBr-ц2–’ц`О.ёэЊї р8Ž2 П†–3YIџŒчi—‰9iNЅeџlVіЧeЯК-эыЋ›ZŸ),xzzšббQ&вA`YМ,РфœфтИ‹„›IП='ћЦчdЯэДœЦ oXожЄ~HЇгъDWW7GбЊWiо я”§tиЙб=%ЧЧSВЫƒ&q јZyгpЇ€њ™˜˜P?ЫнннФв:†ЕT­о†ц§овŒЗНЏуsхКўихќˆ€ „J РMозDEУfќu‘ГЎtоОvюO§нn{РnйЗР›шB\4 Pœt@NaNїљƒЖD03;ЫФјИ :04JЪЎBЏnA4=:fЅœћшƒKЇпяц“Ь—,#Р)€_BБ‘[S\§ь/LgјЃЭлfіид­оcџќѓ+g ШYР\@. = !мТ ‹ЌЌ^аЮєыпDŸ{mI љЛЛ+s™™фє‰ џіуЎOт…5NСVбИВЄaў ЊгщЏp50#IENDЎB`‚classified-ads-0.09/images/mac/editredo.png000066400000000000000000000032111260620453500206270ustar00rootroot00000000000000‰PNG  IHDR szzєPIDATxкэ•yL”WХыккRZšЈеЊuСЅ–TР"Х*TYFЄиЪ6E#УRv`ЁŠB…ADKqДAЉХ0жT;)L5DŒЩ(M&!9=РIЈŠЖ6і’ќ2љоћоНчž{ПЧk^)џ јo XьшLтI@N‚ˆљП*€ м‰RšЄвЦЪ5qr>.CЇOЮО§ Fоx'PІМЩ§z!ЮьЅ `Р‰Žщъ”ь{ўРr`‰/`/œП|6ЁЩ@JžЁkлnM‡oDЁFИcїВDФЄЋл=7s€iіФ˜хЬёЬзж јFQ™€|NџE]BўЉ€њЈTCзBр=†šьЬ№ц­,6’`“[вOˆ](рM!Л€Œ§:НяІGddтпаm8-ўx50е˜эЧŠЅ€KБZIА–Пn;и–XРf Ї#_s/H.ЖцЉлзЇЋ)"ј…t[)нXБїfОЌ’=гH%{ (jіœR›J(†‚R€Я"9+ГB„P\vЉЁ+,Љђж Й!Zа› , ЅЭдяВ•‡š€]ЪЦ;ЁЩЪ›iEѕ­GtњЃз™Ји|№ЩЅ­<E7"),Hљиžџи їчžŒC—GћM[ѓ€М3Ќќ„ІC|vцФ›Ќ‘*š+uњ#з€ДZ И„neQљœэa lтl(Jяuz+šEKПГHг!U0XіP~‰.dєиiляЂВ#ВЬЪ[езє†}?БUРК}€лN`Y)т+ЦQ”К‚bzОYџЄ\33о)=!ŠfХQVD e‡€#j IссЇм€\їsJWWќxћAe ЏBЫЏн€#чС•эрoF)А%UЅэ›‹Офљ%НЪфХъіД€D )gџг‹ы[Л­šuмГ$ђф•Жц†Ё+џ"ХsP%ћщBfя,I(b[КGнnЌ˜Фчаёs€юљ3›ш˜ЎVжы 9œќ;tііƒюѕАЛЯБ…šZоp€Ю%д”lЇ‚BR_]РVeѕT|LšЌщгiU§c}ЖJ" 5G.КrЮkюЁјюяkIЭѕ{-Ќј,АБ№aт•РъВЂdzƒ{8їиf•аПšИ•іЬ рм/@йЉо>‰§DИЛPDЩiMGхM@о„W~Pї]€C`иlёpЭч!AЁв^љ hЙ Ќ.д<я7mьq)E|OЉчщQŠ(Іˆ,`iBяЖ! ЈЌž№з+"WЅmЙœЅ­|VZ:‡цжСаЇ0ФЦ3zŽ­W|ЂММёNa3Рv„P„Є„эPЎL.ekЊЮ?YР 2˜ БѕŠ‹ ˆкЋЙЌ5t)Ъ/м]фЬѕфMђж“{#,]Є}К&noVNŸЪŽeЕсЧР2РПЯхРЩЫ0XT1œМAFZЏ’mі ЫnЉЛzя„мъV ЇЎ!cуЦч13,WЬЗ^™VXлrПт6ШlЖ7пдбU@Ю с†Q@_ђaЂBђЎ8С|Yа†EЋdЧВ” э’-ЗоŸЗt9зg32[`&жf.p йQ\ндб|Јџ8СY:і+{ЮЁ.o!з€г?Э­B€А}ЈHўЖЈh2™Iцsг1“э>\"I?нТ›Я6Ф–,ю‡эј,|$[vkOЉ[;O_mэЌU“ЋmjеmjЎД=:yЅэЁЊЉэсЩKК‡'.ъєP`Ќўub"ЊžJц+‘Шž8'тJмШJВЊ+‰л”љіqŽ!ЊœBЋ-œУЊЌ\Є• WDЖvпRЖШ#њ€Эъи§œБНVЦцР‰ž›’ ТJKВ„8Š„d ё&k‰ёя‡ŸиѓяzˆГŽ"–%™%r˜ŠœC^Й€—оёŽ“8c/bX‰˜SE‘s№s !Б ‰ѕГ†PьY“…тŒЙˆ1SФ'rŒ9 ј’Id ™FІ‹`O§ Х;гФ™I"ЦXгDфfЌў™‘8`Jо!ЃШш."ёЮ(qЦTФ)b9џќ ГЄžсС“)IENDЎB`‚classified-ads-0.09/images/mac/editundo.png000066400000000000000000000032111260620453500206430ustar00rootroot00000000000000‰PNG  IHDR szzєPIDATxкэ• L•eЦгДЫвЉ›КL“ѓ’Ыƒ†H hrЙ ˜p”‹ˆфЊr‘ƒ) "ŠŠˆJ’Ш%o AрE-NВ`$As;JлйиžžоМ 9[ыl?Ю9|пџ{žїљџпїhxЅќoрПkрSЇшЙФƒ$’4A$Бx)„Јž)s ЪЉ ŠЏj пбp?"БEНeW‹:6EеWвШы9ФZЊyQТ&$ЭiCІJ‘ ъиЇщ’+k`Љ;`ь ,‘іо@x"}ЊНгЬMYУš‰/DX˜SœаЂv,(КШ јx50Ы˜aL[L5уgsРдˆйьЬЌicmРѓ O$ iХСŒз5 Xц |В–ТŸчIж~їfЪ]`Š%0лpc:yХš.ЉUЯ#юНlВ& ЖІЭk `О0\,№цћ&‰dдŒй% pо и*?“бїeЮ4@#N@n! Ес_Џк#4П~“RгeЫ‡|Ц‡јё]XХžщ@дз@ЪрP~ˆ-<вiŒfeОL…)­ ЅbР+,Їn тжfвЊуjкжFsА6ВЯў=ТЫу)lЃабЋРwѕР™+-jeVY“ЯжœКиЌЊVх9`Э>`qk(М8]№ЙеŠмz]ђрэtnЬsE1Œ9сŠTх @ЩѕЕЃђБчФYЉ<СэwАйЌи „г№йяХ <БwѕњWИpТ§4]VAgь&Q€нNРч(№еE ЈЈЈSkBvхз a“^Я0ђOШЏaфђ4Ў~/ ѓszžЊCве’ўьЫцaтЩ~Џ‹(i\ЯˆЭƒ)˜Хqеьчцг@ж5 ђPPйpпТЃ{O;џн‰шS—xи˜ФфЅ5€Н/“ЂžtCuiА'K˜‰*йяXŠSи$’бqеžй@<ьW}§žІkлў’FqдъїгBЇЈєВІ]Ѕ@\!kЏ{sЛЯ…tНл@ъa`KпmЂР/Vе!сŠЅ§Н pH6œ’ЪйЛŸ+ j{XІJšЬPbjQУ§4жцRќТ ЕЦмНч|d \oNД/ЃQЈ56‘\y4`™ЌfфŒ|П4сŒМтn{gЏШћ§mXЩЁ<§#WЮиЫUš.з`Е *#їžSЬ(XеЙkZ МTЕ'ЫT–=тжмО‘KTяВeП‘Щl™Hэ)Š=€Б? OŒ)nDё#/2n2ђ_МKgd g‡[hІъ6koг|T ХEпŸ1uАbфІьЗM2ХГ9Б…мfU@QАяTUЋ‘cdДЁ}ш‡ZZZƒЩk}УkDпТoДє“{щ‡іЮкжЧтZ}Н$ё'йыНь*р~ŒWШЂЫ@*ћ–]йЂ^ф‘ЁoщџoNо oі…И6|Ё§fяфу•Пнhдt­ ЩP9FlцДЩ g d^ь9бђ№s@\А›бў (e|'Ъj7А Nј@пjKЦБ‚q‚Б‚12sŸUQ)EMЅЗкџАїл]k`Ћј’џA†‘Ё")эЇ ”зЙеЄшёZрnЕ3РљfрZаЈUwЬ3ѓ‰gЩ42ш‘=2§НYЦŸЫƒвъ“r*кк* ц.ѕ№фџ'sя‘тG&ЄуГјj‹š<(Ооќрл›ЭЮоl~xЎ†мj~xсVSЇФљšІNyPjујЉВU,3’J{aD ЧыЪœf/–o9f’ ПЯ%3…щI"­З„ &СvpИLйЃ У•aк…1А:ЖР* oОЅОЬТяŒЬмЗHfцS"1yŽi‹Vbл qm91'ЫˆЉ06ŸЬ"SD:фѕПR,њ3’Lёъ“ХФL<дŽ8'ђq&.НpзœФНvЂжLцЮLлtІQb1Е>ЊVmKХ E\ˆBзED]˜MWвКD\ˆЅвEIQZмЙŠbt@%blЈ$щЫušU+’њўpћ /ыlnA{†ЁQ !†а…/ЭpѕzЖ  ЁсX„{LKа( ”JELУНЃ„:ЉТдOХVШT^BЁМUћЗK`ш/LŽ1==EЁчNфКmЌ[ЗtЧ]ЗВF@HЩяПУќќ<љ|žJЅВаВЌ%lлж­ ­УњFV.——јьѓукSЁЧЈ ŒЦUИ:•ІІњњњ8|ј0‡вЧЗ!эЅ<њ*‹ Pп„ЎыRгШШЉTŠt:­&JRJъB{еNLD_†ЕeHY/L$њЩXbнFЈaА^Rэ˜Њ CдMъ›'4П§ЋC‚D>фЂю„ Њ€ UђOП ”Ы%Mг№М2ЅR‰RБЈwvЫ$!Зcfц27цf›ЯРЭ…›ЬgГ8NœЩЖ№Й0>ЦиљГД%м 0Иl€BЉРеЋ3xОЇdОћ‘d2ЩЮч_lxŽOMЯа\‰ФW>ГГ7PпŒŽўB Ёћ&т ~и†~P[?ˆHuыVЫІэjkW[MЋIг6I“4ЩЭ5iSћьљ{ЮхД­ЅGФРsЯЩ=чџ{ž{M!ЂwЪћ!№хЮуYиџХЬI “­Sс……'.и-.]Пг1Ъъц@S‹;кт№ФšбЏїЈч=t дђH§§Drƒ>ёx‚М^ѕѕѕQCSЋiЫ?v–їej@ры0Œ56> |’Щ$•џUВ; -ЯŸWЇxyTSѓ/YŸX,FЗЊъ^HhшMОšPЗAwюж [I˜&­љцHdпрРžоС„#&Uоў‡nоќЎ”–RYйUњЃтOкДЋшAJJژQ єYBяЦ(ж 3IэN*НzЮџ….\МLUпЅœ­‡яkHH˜‚яЇ`$AюŽЕЙНфс1Ш…п{Zт\mфЗкъЃРˆcЃу=иЋх0{pАRЃ ХдЎБ9m†Ќ:h Й–Pыж&хЪКЂ8XŒўˆђ†­@ЌaЎFьб&цъ;ЛU8F !‚{о’@Ш$ђ‰кCA€%ƒ5€5uэAZЋE8pua)1>іЉk@ {Д ‡clѕBD:ЛЌюрZЩ О(FЊJШ U"іNЭэaUУOєЈ"…ŒУwИ†@gDр—ŒJе aЭэУ\!цPђtC ?ХiL*3VЩŒP ‹š<ЎdЊЦ\vРПѕ8…™ФŒ(ђFИUД‡ˆојBUс.йўћ."ьЩЫ?кРgЬff1гЅH$†эg+(ЎC;ылˆўs#С˜‹яžјX Шэї‰ъ]оpoюіТ >уcц#f.3SJЄтќсЦтF8ЊъZ‡jƒ -Ё/$[|‰K7ЊC{8хЬнvИjХкн?ђYЬgЬ)1љчП‰@žугnеюnqЕC„b§žн—8љkЙПр`‰3ћЋя*VЎлszютЌ=Мwccr™Я™Lf!“ЮL‘Њ{ШUЗq'м!Ђ:„ўVюЯ?Xт@hfЮŽŸвч,йЩїod60ы5ЈGщсжл§ёSou|ћskЮ–яЫ—лv•Бt пГ†ЩГР\†ЎfОХ#/aоŽЂ"tџ‡[ЖjѓCŸdурO™eђрЬJ ЬБ.+^:ђ—pЈDЊlйTйО™9ЬрaxЌЦSIENDЎB`‚classified-ads-0.09/images/mac/fileopen.png000066400000000000000000000041441260620453500206370ustar00rootroot00000000000000‰PNG  IHDR szzє+IDATxк­– L›ч†з.ывiЊЖЕ›vUД›ж]Z5i“F›”UZКejг5Љ”„цВu[ГЄ™–k“4)€S88мBРI‚Б1л`plЖБСи`csБЙRХяЮїч*ШCы–#=њ-aОїœѓžѓ§ў€G ХгФkD,БјёRп”ТЫˆп­ZНFlrѕњmS€ch|Š'ёUі7т8>ђј q@гhtX&ТaнаЇ(ЗТ˜ыФŠ+ФqqgНššš0Oт‘Х/‰ПœOЫTй'>} Jm(3vBevС:8ŽƒЗх\  "š˜ЃяяљџeЙЯлvю’vŒоmJgeІ.”ь(ж™”“мМ0сЉщ{NЇЫOџЗсѓ=KЌхў.№йH>›B€Кo2cЪЉъ[wZ‘QЄ€(%–v]@QQQ=;ѓПn­ДЈИžљЪќ%^љЌЯu9ШкzQar@ж`FЎBƒИ$ 45кЂ“wg015аф]ЌYГFLg,_Jј{Ф›ЬSЕж0ш|“h™~ ГtzmЁ…>Ы­(ЌnФЉD1nЫ ЂСа$†GƒшєЯвй{mя,_цЉйIИВ'„rЋКЎдЛќа{FQхzшsГ 7ъ HШ”"+'—љYxdŒ„шёxQЏзїБtЭFЧа§pј6=…ћ‚Чk жNЏ9з ЬBaѕ1aкЮ>дvј Жє@iьР­л-HП.Gœ(nwAеЌеуSМтœнn˜­э(•—AQЉђŽMпŸИ8ЇЫј„ЫŠGЌu(1ћPmїЭ k;МаXнѓ>чШеј0!њІцˆэ †0b CXЅв %ѕ"ДК;№ЬCГ€!”Л' 6YМŸэ@lK(Ќ5ЂЮб/T\нюAekJѕСчЮˆP^ЅŠ(<6>!ирэ€НУA ”œŒТ’RИƒ3№LMlvм3{брcїС)f§‚Ўi›QcїBeщ~шsm3bSв‘_XФЗ{очО?Юn[ZQPxё‰чaэFї] —Ф•ОOpУB–žЮэє‡ˆ.&Э-Ф|ФƒЇбЃЂХ’њ6фUъ K˜ЯЋкнэюE›ХŠŠŠ*œ9F‹]фБyPiЫ’ЋmИкцЧUƒЪ;Mlјі "Жiјф–зсfЙr ЁЉйБнсxМ}Ай;QKўŠS%(МYŒбћ€}а%T~vГЉud5zMе7x†и*ž$ОГ8гѕƒгH/ЎРe™ ЂЌЋиЕ3bЛ}§ƒшьrЁйи‚ЌьЫШШ•Т90 Uнфž{Иl№!НО™z7.оv"Ѓо%Еў­ЗwHIkcЄ шŒж=†Є+7‘xЙћЃЯтиЩшљЕbэ№СеуAЋй‚™‰IЩ0Zэ№Э}„ЪЦЅІ^V­ ,жvрBm'вю8‘лшФ5ЅЊtўIDŒјЪŽ~ФЅIёСЙ x{ї>d^Ъfk5пюv[ДЕ:AИDYЩ9Р7 дŠоYСуcп|еёJ“рНдрЁ•іN‘Ц т)"bˆd-.џH‚НЧЂБіЗыбкfaг-ДЛЩ`‚фbЄљзh­І…Њ[ЧЖћzGч5эЌэ‚h’кŠгЅM) *Лќс•/­ѓЋї1"b$ж[А?F„{ў…uы_eU —‰ЌT‘шЌ.я^ОV…і1|lА)-ЁМ…Е]Ј>ЉЊ —юtBушŸлwфј-:ПїПјŸ’H–jБћШ‡иМу8є>ZкЬP(ЫёЗwwг щ†ы.p{(hDз…<Ыѓœ UЧЪ_fРeН r[ИHЃыЂsујд‹ЗџI–HЄ$.d”VcзОCxuуfa­”•ићо{)‘ hbУХЊeOСыГeF–ˆDb•YhїЖJ“-№ќЪUщlАљОПHќПiПN|™x|qi)… lљы^<їтЫТ”Ÿ:ƒїcу‘\eBљЩ„2zX›йp ОЇАЇЪŒ4­ =й}GŽЩйЏу?Ы…ПСЋўК%уpЂb&ЏІ‡Џ”cgbЮ•‘orCcq7Gm—ђЋt/_ЉЇИШЯ‰ч‰_ёV—кМ0Џzщрƒ"‘ъ;ёїдыИвм­г?w&EЂт`пс‡-уOпц<3б|.aќРcйВ*gyGИДNяр?™ŽНDч"Ы™ >С=цТџ[,уmŽсЯ]ФˆHё#–А$џBZЕќ4vtIENDЎB`‚classified-ads-0.09/images/mac/fileprint.png000066400000000000000000000040471260620453500210340ustar00rootroot00000000000000‰PNG  IHDR szzєюIDATXУЅWлog?п73;ЛіоёЎзMLьФНиЦM/iЌЉЁieU Ё„Zў†>ѕ‘ŠђШT/Q*Т%М$ *B}")PЕjœЎo*Žз—Ез{Ызп93ы&$Еp˜ѕњ›љvц;чќЮяќЮ7Šі9цццfпyчЇ?ЏежЃЯЪ?вј№_ЊxЮь§ŠscTЅRб.\xїќљѓПў*і~ИЎ[š™yњЅ ( CвZ‰FЃШhCZiу9ф{рY–EйlіЏћйиз,вюvЛДББ! і`ƒ*6Ў0o0ЏyФЕж‘q­ }mЈLэvЛЙŸ Н/œ˜}гВ-Вm [ЅFT–ЅШв˜уhљšУˆ[1*‰мрwЯ<ѓьї*•ББ;066–ЊŒŒ|л„ŒDСтіаШя!>ЪŠoŽАЇ€,ўM!eнЎGO>rфРььь„­VЛхоXхnНG3ќХ‘U‹­ї”ˆvwwЯ3ўЃЄ8ŸС}Qrd{Uа?,+vЩbhbЇ4…x&КнЩGd9ч(1їмєЏŒљ•ўТV щ CŸ”ЏЬимœo`С^ˆE$§€дР 9$шЫhя/hЌ>haЯєЖї-УЧ†††ІћKЂдТ‘‘‘t"a ТoєЈG6›г…ТаЗŽ;VFuш(c–Fy./,,|">ž>Њ†‡‡ѕЪвѕР н )ŸЯOe2™Ђ x3/Н|zђѕГg)сКвIЙ\Ž–——YХшјёJ&8M”JЅXžЩХшXV,ЫЬt#R%~Ўню@:tыжПшьйзЬ™3g”чyTЏзСЏMšŸŸ/јспЗё`~НЖ6є›KПЅд@JeizjŠ>њєSњрƒПТ@щ5Дi‚аж{ВЌDC пgG<Œy^GœКuыпtшаcjvvVUЋUъtz(ЈЅЅќŠ BИџљ|еv–фЬv\кЊoвЧBЕЛ› LЦl1fГA›ЯЕ0œЙ X˜L?їдНя{ЃХ_ЛvІЇЇщЦ4:z˜VWя“ЯЇl№ЮmЕ[VoЛGЩD’ЩЕšM*•*єЃџ‘„ЂщqsUt-КЧњЃ”%кЯ_%j!#ечМŽGƒйAКxё"Ћ+нЙ3OMЄч›/ОШ(&gkkKу b;A(Жi}}ƒš­šŒ5˜И#rЮmŽч–b. ВєЪ9ЇЧмЦљўБЏQЛгІ,Ш WЉ˜OвЦц:чи€ТщјВсчзEВ‘„c“[,‰Б06Nl hЈЉЁ(p-ŽАaЗežc'К^—JCЅXб‘J ‚шШ‘У )CQ[)-Ž”рёѓе&4РHƒ‘ZЇЈюYbљ#hP_О”Х~eЄS„ТcмЊLЙIщЈт@Їл"k'ъы\ŠL˜лЗoS:‰4^…єЦ}ŠIїп7pДшЈДP§Œоxѓ'RžМЗАЗtY|˜„ЁчљfgЇщФл-CPЊB.ФۘскФнbx-юx}ѕ“mb+aД=ум6[Yu€+ЭёQRhFhC<ИІг)aЖƒМ3!_›Ѓоќ=т9j4‘1ЧчЄAЉ(^ч]DЪ$х/ ю_‚њMNN#ИAљтНЂ#‚ЖККку*ш Х€‚ЂЦnƒ&ЦбвB• `’ Fƒѓ™HИ"6&ю бЮРPОX'y ОЃMІEA'&&hyБJYдОŠбsAxЮ>Ї LК^2™$пУЦ$qЁVл;u:qт:wюœ Р›S–YŽŠсѓ$ˆФ{оjЋйо"7w”%§я7oв•?\Ёждm˜re'@“иEд-\фК~Э;­.гёgŸ‹иьƒЏиЂEг”‰ЪЭ‹ЃtŒMŒ \Щ dDѓХЂчу33tхB*юzJйВЧ,—Ы пК uк†еSЇNlеЗ@›vu рa.—‘E:НŽ0Иfj(!›•`T8eьУЊjsмЈјw&oз …">}FаcіЛЎC‹‹ЫЭ•••.УрђхЫПИzѕъGAДЙ4^р…ЏМќъ+пy§ЛѓGS*•aААhќтС uB+оР9щмл.ТСd2Бѕо{Пњ]Ћеђ”–юѕZЗTMt;“ї1Мo џм~Ž%,..QБ˜ЃѕЕMЩШsрTW˜бL6Із7ыHC^жi4wwЅЄпBEl§ЏoFN­Ж–ЋTЪёЎлвАaŽ–‘ZDyй ;bЮdѓypХЇЕЕ5QЩОљlMЈ1€hнƒМšй;]!цcjj’юлsрˆдАйЉеjц tжkwп]Ј.<„AJGлžћ„VнћЊќр;ЅŠ4‚BЄЇW­ЮџчЕ‡:Иѓіm‡СцтУ…Э›Ь"ВmE{/юфЃjaоXіfф МцЙСЖlcIENDЎB`‚classified-ads-0.09/images/mac/filesave.png000066400000000000000000000022611260620453500206320ustar00rootroot00000000000000‰PNG  IHDR szzєxIDATxкэ—]L›UЦНїzС‰MМScЬцt[pncs€+пэВ…mТ |H[ а!-X)я  aя>иE^ТГaŒАšЕ™р Jеш’%мpѓјџŸИъEпЄq^xёфœѓžџљ=ONпsвїOUџYYY $ыПЄ„PЌ•ЖєЪpўтe”vЩ;ниїКkCbØЩlі`ЏbоEŠіŽŸ(„&ЮЧ1‹™ЏНё&ШC=Рžи8ЭЪGщЩфы144хч5ЂдRƒ˜]{Aъ$$C_X л) ŸWvB’œœэмнz.@КмЩ3iшЄЗ н4q—[ѓsžч:ЎчuМžYЬlђPЏIEОС‚ъњиl혘˜ˆˆ˜ХLfЧkRžДfXk%TTvРчѓСч'љќ№SпџИяї‹91fћ\'бђ –Uь€9ќьOТ‰ќbTT7ЂмвYі@О4љыыoBОy ђm/фЛї џ0љС<фЅ%бŠБяЯsзѓ:^Я,f 6yЈиw Yz,Жг0—Зbqq1"b3™MсhЈШ‹Ец2'–——ƒ ˆ6€хѕПцЄЧsСZЎ і™ХLС&Ея€ђэ$†НPЦ}PМSPОŸƒ2Лeщ'(_ ќіЪЃGP~ˆŸЅч?ŠyQчЦРИЪ№wkп§q‰ШЮ3сd•5 XYY‰ˆ˜ХLf“ЧZ^Bz/yАКК 1ыЯ—А$ќKј‘\:*•ЕMИzэ:nпёcњўмŸ]јGтЕЬ`3™Mът>LОЈ Ж/Ю@rѕТеuEЈ­›DmЈ1їƒЯCˆŸ7ЋŠ˜Ь&Ен„Ээчсющ‹„˜ELЇ`“‡z€„Ф4š*pЪю‚Бд н‘ЃаЄш6$f0‹™Ь&ѕ“Д(*ЉDНЃ]Д т:ЧШШFGG166&юwЏз+ЎрЉЉ)ЬЬЬ`nnѓѓѓ,бŸžžѓ“““AІZђP IжСhЖЂAъ@U]s0€нnGzz:t:ДZ-ЧК0‹™Ь&ѕ‰)‡`*ЗСо|ЇЯtddd ;;ЙЙЙШЩЩAfffиГГГР,bvЛ фЁ )ѕJ,еp8Лаив РЦƒ&“IHЏзЏg˜E:‹т'HN=,ў 9ZПD“Г; //FЃQ˜Ѓ  `}šЛ`Ї&њ &kУH; sE [ @!" ArЃЎб…C]D‰сNAНБЈsДЁХ-G.@“[=Щ МГ#F=РоиxЫ. ]ЈEkЧЙШpИ№бЧŸbЫлятН]Л‡UП vФь—Ч'ЧsQ[/ЁЛї"Оъџ§žA’В Ђк+}зажбƒ"Ѓomй†элw sвГ!МќЪЋиД) QQ›ё|є‹ˆ~сЅ ‰ЯmŽЬ­[ЗЭŸЪЇY(sжџ_ЧЊ•нАwIENDЎB`‚classified-ads-0.09/images/mac/textbold.png000066400000000000000000000031131260620453500206560ustar00rootroot00000000000000‰PNG  IHDR szzєIDATXУХWklUžЧгнЅг.юBaЗЅбZ|дД@%ЦЁJxљЁ ђH‰СЈˆб€ёи 1>€Фb ‘4МФ†Ъ+<"PRДл-­ДtэvgvggяŒчьм…qЛЛlЫor2;wюНчЛч|чБЌaЬџ9lЉ W}\e)гm !ЫЛ2=Эy!КімЩ§лкF•oyЭjы„ПЋWQ”IО;vОИИШ‘КQQЂФпеЃќuѕV.ђ;L 'F 1&Mђ8m‚ШЧ4†ёx|R\7чY6ё #РNяшХxœa4вв2з‚5оюю€Зёрбd'€иI›Ъ‹ ЪЇN))ZОlёфќC™ŠPЉ]d˜–––ю_›NєтXч˜9ЃLšŠЃ*УфTђMУОіі›ўтЇœЄ€ЉŸ8б§щІM*Т мœЪƒ§а—_}З–l†ƒeX‡|ЈŸ7їйЕѕЏ/yRŽ˜`эy0KBъ[Оh†uѕщtpйќ›šzzњULŽ0uŠ•х|—щГ фГг­—Zюї)шІИC‰‚%ђ$€UШE#`hVBLЈ У8v­эFП#g?ш:ЧvcМ#"Ёu R]7E z–дС&зƒо\Ÿ-гфdИёPyв †WrЙD4œEw…•(Т5ƒ*ЧPC"Іу-ји й“М%љhzŒZŒЦPЩй?/б=Ѓv*заЇ„J|˜ђjx,zљЕК*NФ(oŒ >дм+{€ЄЁQH˜Ÿо>ЄТX‡Q Š/рЪYхвŒЪ™ЎЩOUИ‡d“Є,Џ’пšš;ЯžЙД'["Ъ™„3 Ф*pћЄ­лЗUйэf&D@В‚О6з @ž8rpџmEVіРіŸ™Ч%!I ІЂQ•КЁЎЮ@ШrЗ;Ц@Ьƒй1gИ'јЄ56VОєjн‡ЮБŽS˜аЫЈ#0Ю†ћф§п'2ЁuTз,œы~nN­/І‰|4.ђгžЎё–•—ЛŽ4о Мщ\‘3 у4Д0lТƒLИ>…Œы/žПМіэѕ+е˜Ш‡‡ЧБtѕ›Slјv|П‘ZЙ‘DQЗЄт4Љ{З ŒП|ўК#„э‡ ‰ќ’ѕ%iњŒм ‰…й2!‚8}ВЕ_Ь3н…ѕ`0Ь0c]> ј0Ќ <RhI7<К‹;ззЁПpO@(P!‹KK0Y•Ъ N-Arh# šТбjI1FŠ K$$\`@ЁГ0x‹pIС[: j њ7шŸр“‰OC й"ЦФшb$СDŒfМ‘ JІ“В mЗnПnmЗЕыЖŽ ЖЩ_жўюзяЙ=ЁПT~ЅD|јфмпЙчœћэ§ол>рБМ§~ЧГЄFЉѕGc/yеPZфНŽvі!тCкoЎB­v?с‘% gЪХхЉО§ГХчЯњ\ќ> fЯћпП8y|p&†+3ŒIИшьqњOѕIŒ+ЙRЧцўьlсЬMВŽЏ€a шKѓ@oЪрZ†‰“[жіPT( .А%1–ЎŸ&$ŽB]\M3/ip9žGЯДѕkŸYПЂ€vŸ-’12ЎФШ„’-щзzыјНПf :$ Є‘4“=фВŸ ЊнЏў=зЈyA­№kЮG-^K•'HДьгOIтИВф;:?снх„д-‰Ј, [ж=„fй@|П_ЧН‰:;а\qюыwб;Ч—WѕЄюqЉ'uЋАMTGVЄАС`Fmк`(#‹p=kЌяєХI\›3тГqv>™ЗЯУYЩ+@ъH=Љы+РЛ§ЄŽ Ÿ1oгyЖ~š$”\iLПОŠВІ“z"Рћ* ЯkНDZДС’зЩ!r„МE:дПЮдјЭoаzuPхq|š/NІ<;$Ыжъш|мЇ#Ъq?сpЮХЭ%рzкХЙ^nЬЛјсFq<К`№нАk}блРЩs†вмЪ12›–1тЭпЮЫœ‹K @жё™^ч‚WАI#bYаШŽiчЧVo/ХьœЦŠŸтйГ[Œ“xƒ?XSчœ5ш7Т#@TРЧžэЪА|ћSdYmљk(oФЈБышšхMXKЖiУМHšШnвЊЇнkкho’cф]rJэ1ѕ’8oеќ&­ЧКњMаХЋ@е]e;ђю€тнЎЇ-РIЌLЎ€W50ž3ˆцxеžw0N;uИ3уxfјЇ. {ˆ.цу"ёUXКu0uЧp\7M!sў?КžА ПњЏ^а+uйG^%mžS№(y‡|ЊіЈч4lгј}šп(ѕЊ ЯI?Egљ=Pi*мROы* Јёи.Gшт_@†яtp˜]+„RЩ;.Rwy^˜DrеЕsГ п`ўš)ЦKОд‘z5PO‚’ИАiXШ ГБ–.œ^/кѓ§RУyњ ТФjœ‹,ѓU@PыЊК U@‡ч4œ$N•—‘Ѓё1ЭяzoCСч:n"/kCа{ƒжІ;ЉіАњл$Nуw“ЦG]Ч~ПŠЫЏcaŒФ*\ЩЙ WqLѓЃхзБŸ€№ъп@ю>АРЦЛ•5XкяD—шЃЭnёгW|ўБ'.>Žacц7\›?šqЦGK~gu* аEE ГРќ:“7‘"ФріZЦ]Х%NgKМФIЉGheМђрЩџ˜DџѕлPRY(K[яѓKЈњ?&žSБžlї4d3i!{ЕбZеюUГЦ5h^НпQЏ€jDѕ<пЁ ьдХvЉнЉўЌfqс†уэˆoМIENDЎB`‚classified-ads-0.09/images/mac/textitalic.png000066400000000000000000000022141260620453500212040ustar00rootroot00000000000000‰PNG  IHDR szzєSIDATx^Х–]hUЧЯЬьЮdf?’˜цc?fЭжEГV$bIЊ5H„Dl­QŒ…"ъ›BпJћ >4р‹ОхEA‚в>и”J}Ј(E!Z›T“Э&ЛkC[ВЛГГ3{w<—9Аƒ„M›vт—Ль=ї?чуо+8ŽџЇр>lќФG1І‘,Дl Йю™'Єg>ї§W^z`ФєЛo=­ыŸ№р†ЩrkCмНћК•žž.ШЮ~<Ы‡‡$€ˆЧ{CAI‘L баѕL7ˆ"Ааcщ@ љ[DJ ˆЙ/О<ШЯ %ЇІ^IЩJTБP@0ˆэ:;щ‡ќwЎlRjц эЊЉо;vьЅГЃ‡Ц5@’4c}q~ѕТќ•Ьћчp&Тю-Ћ'cзЯ@рц›­Э§0’JщQ›0 ЁЇ|>Я;тg|@сЯf2ЉРBфљoЂ=ŠEƒђюЫ9р%›N'5‹КРмX]нh №9CБD,TЗlFŽ$€……%џS@Œ&ѕTФфЎ—JeЋ^Љ9,Р-пR@љOєьл/ЋQЅ|‡чп .—+РOОоDv0­kѕ:€eёЉлљB'‹{" ‘Œk<ќs]ЙvэF+>зРH\4jжlл]РX•Š›З0џыО  ќGCaэЉpWЏVГмH №№ЏЕЊпч ІSЁZЭЭПCјOБ@§яП€l"зjд~м€ЅыэYFуz:Тo?‹њ?(Ќ,ч ЬџžD`ЄЋ7Щ уэЧУO_oBcгЇŸмџxF3Lо‚ мзЯњЭПЫN“]ХПyЃщ р эZmL€ˆгC=‘‰r–EOЏ @~uНf™ЦŸ€гжц.ИІЙ“БЭц ”9Ињ@gЯ€лќЄ hёЗ?Њ?~ћщя8U‘BЁuAђ#pл^@ћЭD}vђ§—Cс№dЈ;1jюЬЯЉЦ˜НќH,3Qz€†‘Ђ‘™ќэ,€TŠH`єе&^xѓдgco974|pцшёƒuK‘˜уОџИЉс~ulbђ№УЧчž{эф ŽаIDHˆB‘Щл8OПјŽžLg>92=ЅїХње&(RЕ РПО х5™ћ  лсчЧћЦŒїх–WЯ}§ЭСЭѕХ“Ѕ•… А<ўв@Ј&кЁхЮM 8рЅBбфkLУlђыu*3PTUъЧ•-ќЅ|л]hT Јо-5(є"вєяЙ ~™ŸНс8pfyiёulБ 8MЉбАMГzg G@Ђ5EЄ(wno^Ўм-z8ћѕтьeЏ"Њ7ˆDЃ№Ÿ5M Ф"ьVјwю‡`H1 RFЖюƒ2­Ћ"5oўлFРAЃУЃ-ВщєхШі№FЖ‡цv‡бПйЈЭ@Й… IENDЎB`‚classified-ads-0.09/images/mac/textjustify.png000066400000000000000000000023511260620453500214360ustar00rootroot00000000000000‰PNG  IHDR szzєАIDATx^Е—A‹]5Ч'Щ}яMыF№“LП€~л…эBŠв…Š Ј yОКБ jw КpcжЯP]XAЋPДjЇ:cлЉщLл™wяMŽ!YТѕNЉјsroЮ#Й9ПwN"ЊЪAэЉ  иA)d{с‹ЙrpCT5Or|ёpŒс&#яut1У:смќ]GiЧЮ|0?ВsBяХїУ‡о+ЮDЂЕBл*t]`21Д}€bпa qŒdUГŒQf3xыЕгi†в’ГÈныphfуф–Kk‚ˆАlпќЌiђ”oзВoуLєр}ZьзW:z№!$ŸЖыX™ТХ_•‰•ё ФYŠЪѓpќбЊЏеx‚Т@ ›ЩТб“lq€) €ш€6[њ"BRsТšіВЈЁнўъPэ@Бc~xv~dkWщzЯc+Žeч“ ыМ"фи7Žшb$Х}:qЈТўВg6uЩЧ‡ќ[kЂј& б^}e1a‚Ь‰2\Мъ™6–•™py+єНчЧ Ёыk„яЎy…ўg ГiьЏ s<УO‘џ>њXЃдци+5„ЕLe‡ •­ У!Юя6Љ@7Эb–-“ЄjШЂЭb ьgU єDUlP^Џv`№Ы+Q8Оe€BŽ~tvОКПHЮ„McPаАНгсЌMя!gСЩD’С5вр…eл1Zњ>gIин]ђФуS^zyBБЈвЖWnРо^‹—ЏіЏ4ќqз >ЇшЋ›Bш•‰“шЏtЫ€ ќВЉ Hп+kлgСјэŽ*Ÿ<ўЖ М  кrѓ!е3evОD8“’–A§ lГ Т(Р–D„КћХf8ыЌ˜2b aйKПnс`Ы BјйЧѓећ€Ццђк8ƒ>(Цо+"$(wяuЬf Д>`ERЬйвb-BŒ•ЉpђдB‡ ЄэгЦ`€ы[phjP ќ~›ј^”kЗ‘(`cЧсНЧXп2X#qЫz \лTfСeэoJiе|uъХwфџЫЅ eТїѓ;ь „Y“ло0„О*ЭŒAH нHIfєыKŸƒ |њѓOцЋ!РrщqЮTжnюф‰7vURY_пжTЪQИuЌ№йе)шП‡`ЄUGВ HUŽ›R‚Йїu9ŽY0TаgТГи+*щЗЊ§Ѓ“ќ"Мэ,w)ж^IENDЎB`‚classified-ads-0.09/images/mac/textleft.png000066400000000000000000000023231260620453500206720ustar00rootroot00000000000000‰PNG  IHDR szzєšIDATx^­—MoE†пъюЏ Žј„П—ќ ШЩœ@т­6A с2'рР…\€м‡H(HK‚B@A `G‰НŽcяЬtН5-Едš™UJzнэžšюк­gЋfHDАШNŸ™€ 5BП тxхЫБ`БAˆ‡|С3}~ы2LОКriќ>8${ют‡уещР xЯ`|УxjХС{sDaД„ЊD€КfНЙ, Њ†ѕцВt0f~ :ŠД2F0gп9€A2uvз7€•‘ ‡[\џ‹@D˜UŒЋˆЮ,aНѕ-œб9{ЇCА?мЎб4 ЯŒ_ТzUз-зў–І Я3%Ѕџ{ђ/й\Выƒ)И ТЙИЙ‰rI(‚Ъ8:ѕI pPTUql’РЊ Ю<€ јЙƒvŠ2]пFЯЇц4Чeц›"ьHAd~Д>^Н(hšЫe‡Yэѕ\ч(ЌIЛ# д ` С{Ѕв)d'Г&фк)žчщ рдz€№јDнД…ЈЛh>kXkuhЋ`Y’њ\рЌ­MРЧ]СAHFуTUпw€ууJяМЙСaЮXY.№їјЖDпй#p#(сіŽ žБњ}cy0Nlэжк[“эш€lѓ˜)ј.ѓЩ›—‚?бЭџФ ~сНTљPF2ƒP›6TТыb"s%ыњ<СЕ…?П4Я;*ЁŽ™ОсBg%ќќ“ёГг#ж…Тj{еNЇЛГФЪ' –JТсУЫЃдзв.Ш"(œ…Е ™aˆА2"Мњц.tAˆЊц@БбХРЪ’ую=hU#H˜ ˆ‚lMяЕoю `ydБyЫwїЃb~M‚џpИѕЦкy…№ЩыРp :Ш ДнЊЪЋ U‚БŠђЉ5Gы‡PЭ,Ў†бњo@Б#ЄрдŸŽW™йЬУ9Ћ0Ђ "­ЮЭGшКЕдŽs‚Жr"RxЯ•/П>си’‘aђ*с}KћжОЎўЛ[и3юˆfVА}€Йўя=|gJiлѓю‘$N0 сo!вЌ§_)ИЌc_ b5ьhЧ*mСOаŽ› :Џ‚‹лqоTТ4WKущ—&OХЇ.}6^­РР+X„Њb}щЈAсH‹•ЕБ:2+/c%R0^щЕіфШ‡>ю ЮМжѓbЂю"њњрщжRLзіOŒn)Ьи;TPИнi{Ан ƒvўH?P ѓ€Ь@%|ё•Щvž‚х&}ъz1ЩоŒВЗрќх$AщЂlўb’*ЊЮ*_і0šЬdtц0qк4uœ”Ъoєk†OіЊzЏКˆ#1IENDЎB`‚classified-ads-0.09/images/mac/textright.png000066400000000000000000000024371260620453500210630ustar00rootroot00000000000000‰PNG  IHDR szzєцIDATxк­—лO\EЧEnэЖ"‚)TвF|hi_ЌЦSoњ/шЂiаД1111ѕM‰>MKˆ\ZJ)аъВАьЛЫВvЙIЙTёЁь™љњ=s~'=сьž-Ф‡OfЮя2ѓл™яЮœѓ €ЊМѓqO yVЈ РЉ‘мЊ<™фЃžOHИ“ˆјТ•`ƒх ц5zњ,мˆясж"№х0а7Ї№{Bсъp3^b_уГ>…>к€+НскПюцarЏ (“;”vЦщГЬѓx`Ыe Щ)єЇ8щМТ[&чЙwЖ„ўЄЦэŒkЗcЕБ3жp“…gЯЩюdБ=Л5q#9'fL оџ2O‘i!JfЪѕФLљЖ'p ќbЋ# $DšH i#ЇШ+ф щ"чЄ=#іSз"y!ЇЮ+NЖнў гЃђzVzeпЏŸ!1'ГТœЇџŒwМ+АО_пh'ў8ЭНЫУеWЗ5њчKJ)|3J[šиB,a0iбЎН?Q2ОЏG(ЦДb_rNю+Ђ€ъЩЛ€Щ5{" cy0™“$KЭRщФ~ОГЈiГЃq/ЏЭј3кЖ™8З`Eј (Зќ R@ЗWtžЅŸ' ?ДЫVxDщЄlAЕŽŠˆ^$"Аѓф5ђЙHо&яJ{бЖ‹џМФwH~“Œзр9-{ЪРъ.K•~ё‰ш<+є + Ђ1|№[ИПЄ№ч2№§ИЦ§<0šБ№нT„yўaєгОh™˜Ш*0žSјvL1W#МтФLаfї ї2N~xYUд@­]@ќЁ=‰ЦDVсС'*Вˆ…”оу –ёgM†‘…ЧˆЎ;9ŒcМгЇЯєнXŽg˜пм'B™м-р2‰|є-ЪХЗ ћ„ш;ИЄЦЗЄ^ѓi%'IЇœvDho‘KфђЁД—lЛј/H|ЇфЗЪxGeќZПЋpŽ•_їЌ@Ъ‡bџŠ\У0ЗАLQDПF5ц6€iщGŠŠ}Э+ˆ­91?G,ЬЌRЙ=ќ2EфїLLR4pЈЗФ†3Щь:‹јK#КЌи‡щG %ЄЖŒŸ€1ДЏ(ФзL}‡/рzџя-8.Wj;y™œ%ЏzNСїШћ"@Ж|–гPтЮJ^ЛŒsќiEXGŽИАкkО{ њ ЬVћнnЧШ і…€єC`xШэIюћHкБ%з†Ršv…с”FbЭ2ОЛ‹@–šЩlЗ’ЪфбN›іiРї.@BЄйЎ>џHcaC1Yлƒ™‰2›ˆ§ћДгЏi3-Ÿш—ОBnћIьЪюг]Ч!ђ< ј\–1Vі4$`РQйыИ•М$‚ъНNоє\ЩlљLЛјЛ$ў$iЉpw—{+ўдћ&,L‘hХ+™\Хбrя…&kЛр‰ЅБќ7лR˜,љ-ЅYхкyђ6ЧЧу/ь8Йob l‹;уMўњП&ЋЛ`‚3X‘иЩ“Hи_кVDK_cž™Ы8MЬФДiф6•SаЖ;ІP§УФџQВo+тeˆМ јУФ=Щ1 лH9-Bы”іДил$ЎIђнгЏвWГtЊ’ћЁY&8!“ЕK{BьЭЊ:Й№П”@Œ)7Т’IENDЎB`‚classified-ads-0.09/images/mac/textunder.png000066400000000000000000000021341260620453500210550ustar00rootroot00000000000000‰PNG  IHDR szzє#IDATxкХ—LдeЧ Эi.šЭеђ2u)ЫЬщиRWqPбVІIˆ ыf:g€ќиr‹SР•š3gVDЈNС,PЗ@œpwќИ8юќ8~мA‡MNwmlŸоzЎ]lwЧ}Пxлkї}>Яѓyžзѓyžлн…б#хиG‚Я€AP g``Фѓ[3ђ#Jє_ѓЭmƒшє'ђ]Ѕvxр!гdsyъЬw­ЩсО nYno?ѓФ3ђUЗ­умoВЛ'yŒnsœћy\Р ьЪ.Аž(ЉдtК<эN"ЃƒШ}­БИY.ЎHЬ,АжєMNсЙ^Њ@сйz‡ЛЈUh&Ъ/е#–2KИ,—5‹п RŽ”i‡‹Бћ5$д.bхГP}}н:Ž|!-M bѓž“цŸŒ“SпуJєDл3ІПлЗЩлЦуjэџWH“ЅцЁєLИ -D?  В(“'„……Эё!œ‰IЮ‹Ÿ–жЛ<Ч*лFљЯВ^№ЈwіFФ$ч:zYяМјб3бљц1OњЉъЛ1Щљ&eRоY ХюЬ7@МЌuЬУ№qEя8Д„ч I@,>Ь ж*?z1:1'?эЋЊrѓФпWmDU§DзPѕаƒ"Е}n3Ÿ_в;п§јd;rХ<сў$->< žЯ€ч^нœžЈЊлu№\oNqУш™лDaУаC†Ÿ9ŸіMзkёЎŠzo ržO€ЧY"Ј€X|/.’Ÿ/€•р%№2XЛќ•7?\џіюМяg”nњ ћЪІ­Y•ЗdўЗGЅXЕ!c"С А,syў`сbрТзу?§BЙуАgxЛюD9˘7ЖчtћУ;†ЧƒЮW&хЖу~˜љёќADЙ"8бћ'ЄwB:о9јТ†, s1‘Z Бs[`g|њјн§К1ЦWрбќKжѕ>Ќё5`u K(ыc`)X–ћАLˆ>Я‹ ёХГљўУMЄ7Е,IENDЎB`‚classified-ads-0.09/images/mac/zoomin.png000066400000000000000000000032141260620453500203460ustar00rootroot00000000000000‰PNG  IHDR szzєSIDATxкХV L•e>ўs№V„Xjb€ЂR*7Cф"†Š7Р`Ј$Е„Ў@гB!n)‰rQуШEЋ@jф…M‚‚ˆCQG9ЖVѓ‚NЇчэ}жЧrsЋs*жйžНч}пч}Оїџ.џџЩˆшХ_&љ'gLeИ0|3vРТG\фхџibр)Œ•ЋWЏЮHOO?ЯПоюююћ§§§jXјˆ#žрЫџuќгaи8;;Gfffжwuu=`аЩ“')22’BCC >тШƒ>ъPџƒЯёєєLЉЊЊъщььЄЌЌ,њ `У ›ekj'Лm*уu >тШƒ>ъPЏM/­ЗƒƒCtEEEO[[EEЧ 8Ў +yмігnKлV}Г(ю\9,|Ф‘|дЁ:агИёєцGVWWгкАиdхmЏ‹]˜w')Л§ўЉї7ЇRPT!СТGy№РGъЁ=шjк€.cY\\\]kk+эOMЛ1is–ъѕЈ†›œ=ЊЎЇ'Ў§ІОаLЉЗ >тШƒ>ъPшAWг”Œ}–~гЛ$П?9ІщInчЏд9№ˆюКu“мСТGy№РGъЁ=шjкРHЦЮššš.\ ЛВ g%Ж$эЎЛ—'3ЄщюёфДЉŒцэю'Л=DА№G<№Q‡zш@Кš60ŠwіьYu}}=M ?~Ф6­;)щвуb™k))}кЩ0АŒТiЪDА№G<№Q‡zш@Кš60šСSї ЅЅ…|“ПЫГJя§:ІљiЎЬћ2Щ‚˜Д‘ёсŸ€8ђр:дCzаеfЖ$&&оЦ&J)>ѓ§јНёn•іХ_ЂœŒ+д”пC§ВЕI@ qфСuЈ‡є ЋЭ№ љ‘еж7^ŸБЗ)ibЦ/‘vхъшE%TГ­Ž:e+{IцK qфСuЈ‡є ЋЭ)xзжжЖ@ЅR ЖЗЗSJE}Ѕ,юF„ь№уmfйЄZ\BѕВЅМ>DА№G<№Q‡zш@КкМ^cљљљЕђ{Z.]ОVx1S–№гчUcl дЙ'шќŠrК qфСuОООmаž6яЙX;SSгTžТОккZjПвљГъ\GйЌŒ› ˜fлуb+žЦУТGљЫWю‚тШ3ЏљЭœ}кКtЦ“\OНчЋfJеhBлћ€žhТ™jll\faaбlooЧХХхЁЋЋЋ>тШƒЧф'/к0њ“„ J_ЎЄ|/Нчў–вЗhBл‘R,‡cБxЏG0і11ЛФf[Тx‹a6aЄтШƒ'јВнџLNžžžё999кЎЎЎ]Иpтуу)**Š`с#ŽтШƒ>ъPЏ?Ц6 gјЋеъЦііvЪвxрW*mШЫ’ЖœџTŠН’$%tФKI7іРТGy№РGъЁ=ƒГЗѓёё9оиијАВВ’ойБї’є^A†ДГaя”ЌОФu?jтЏ 8мў[),|Ф‘|дЁ:аƒЎЁ ˜2–%''7ДДДPКц№э)‘ЧˆЇмћ(Єњ‘FгЁ+Юъ B=р#ŽтШƒ>ъPшAз˜3рy…Џеi›nй|r5]Ъј!VЪŽ–R)oi”Ћ‡>†тШƒ>ъPшAз˜чРsŒ-ќ\ЇцoЎппQќuЮШ=з ХIК žq>\ qфСu­аž1Я™иkkk /сКК:jышќ>ЗЖНЬірЗћGЖC3АS:є(>тШ_oяИ~DDФ ••еUж aМ]cпцŒvvvЇ‚‚‚ю”””Pww7Еvнь9­э9UvуˆУс[)А№G<цњљљQpp№ЯцццEіSMNтƒХиЗЁ’1‰БвТТт‡‡G+ЏЦ _+Т‹ІЗЗ—њњњ>тШ3Џљз08ћДѕЭYOјЉžЌž#ЏDЦ~ЈDžŒ(KKЫ2{{ћkЎЎЎпyyy=єііжСТGy№с<ѓгЁ‹lЇМІ #Ы•TРM9Ш б„Б_DJБŒЅŒ0ё`IedЄ1v‹Уіу%ЦЬЉceQsхК= ”њК‚Žr…oЋ†CцЩБ‹2cО х8˜т4Oƒи0^˜!|^pЦ3–лO]мf/з%И((нKA9+”TьЏž'?%&c}РаЏbSБ"fŒgФMv"b€јяы4QVК›јxЁ‚2+(wЅ’ЮЌV op”ˆзД\пШŸ§›Уx‰™П Ўлt†%УJ ›(‹vы]”ЙDIy>J*]ЋzТлQ„•b(а„Ёƒ›ŠСЭŸкŽ™тЋчЦ\†cоSиш8QVу(зэuSzЉ’ђЙ‰ГkUК`GyБhBnH&bіуФЌ­Х ŽŒŒ… wЦ"†ЇТпъ8Ivq7БЯ]AМ•єљ*•­Sщ\,LдœŸjh БџгГФїПЋШ‹Б„сЁ|qшЂЙ‰ЊX'nТCAЙ‰ЭЮŠzœЌъЈ7 Ўпvnт‹иљrнњYІ8#тэ-pК0"Ї“х‹їФL1!хhBјˆЯaЬfиŠ•›&ЎЌ&6Zз€F-0Јh|˜„™ўўЃПk\їeCшIENDЎB`‚classified-ads-0.09/images/win/000077500000000000000000000000001260620453500163625ustar00rootroot00000000000000classified-ads-0.09/images/win/editcopy.png000066400000000000000000000024551260620453500207160ustar00rootroot00000000000000‰PNG  IHDRрw=јєIDATx^Ѕ–Kl\WЦчмЧxfќšФЏGj"юћђУ(LfBl*h€всЃхCќђћŸ=ћƒgч/ "ќъ,зЌMф?'V66ЗФŠHucU^љё Йvё[В6ћ’дVпъвk27§ЂД[лRН§‘ЌнxUо{щŒМёдŸ4€8ŒK;€€D 0йuмЊВЖВH% хЁя\Ђ2ќ џxчwДлqцb{ЛСжжCЃ'‘о<№и(фI фF ƒРХ`šрЂlAЇНGuc8ђ™SŒнџMV?z›­ZƒдДж\ПРЯ~rŽйџBœFXk”RM`Л\Ѓ;БОA+УПЮеЋoђоЛЂ^п ŠЭЙ‹ГŽў2_9§9Оіе“ŒŽ "bАN >9H Ј<G†3žatИL­z‹Эѕ:о‘ЃŽо‡ГBХ$i‚ж02<9 {Š”њгWє5рэА`[`wA—@pm|рии•ОSЄVQ(єЂ} ЌuXk3Ю9@UШюpP@YИ]Јˆ!№-} ш^ ˜Ш"ж’$1ЦЌБXk<п`] Јƒ/ZЖиЦ€ЮER H„ Ь">ЂШ ŽЃ˜4MЛЫ=Д&оЋгьXаф }аи-pЛ@pнША]QГ(Ф9ФHЖ8Š"€,Ђ$IH“q ШАћ:0`ЖЛБ(Ь:и6ўЁЌL‚ЄAP LU’9ш)Б"ˆ"WР"Š8Nё§ќаŠbЙŸЪаzћ№ДVy.9€ЙЮ?^?`ЩH—Лтс)…і4…b™оСŠwІчHдРжYš_frІy r;ВЩ,рч.zК‘Фs Ър•КQ‰AЋ ьatф8e•аМљ!е’ЖыL~И6SлЕ3ЦW~4}PЗсД&A…y7K Д6Hмdх§пт6М~mљђЅіЛЗ6Ђщ…ѕxh-iяы вЪOŠЄр}`J wЁ8„Їьд;Эч/]ІеБПЏяй tфр‡ˆƒf‚1ˆ!ЕХ~ <vu'Y›КвйЋ­№Сo-W“qЙСС'ес0Є (п…aћщT7гЙ‰+ЕЕ™ЉVccЮќq"™nЇЌO2ЌќOЅ|ЯAxкНь5уxљњлйwЎю4n/›Ы“L.lђЗЕm>оjq3ЃtюJ@{ЌЧ­=СqцЇЎдчџњ‡ЦюэYsўЂ{nЉЦАдѓт,wM.†ќцзчЯі ŸX`aъ_Lммф§fТPЯŠћ”јmQJU€айтџ“OТ0ь$ѕr•%IENDЎB`‚classified-ads-0.09/images/win/editcut.png000066400000000000000000000035311260620453500205330ustar00rootroot00000000000000‰PNG  IHDR szzє IDATxке— T”UЧ?D!h@`@6Y†–\@#а‰ Y&ˆЬЌмr -ЫŠ"+#„S)ЬЈa‰u€ F` б!`А’U†mцЛ]ІЯNЛ`q:Нs~g8яоїнћЖџ}№Ÿ2+'OOOІ‡‡Ч1wwwž››лЋЫ—/$BбМлим0АOxxјЕв’тсцІFХймм‘]Лvv3™Ь|GGЧtбGhФ|5Lр]qeЖ:hѕјn/Рp 46ˆ'}}}oшъъЁ›бМ%€Ып э!аР# f=OE :M`2k!9ёх1KKЫ tsEЬKl6ћ3)Ÿ~2Sinn.Бbш•nтOB5л•vvvWаƒм7Г(6f“lьђJВœ­ДЖЖ–`їsю,ЧЦЮBH„ЋI{{ћvь‹EЬцcџгZ.%CН>є5юяеЗ1р<€UЅ’WЎфВeЫ:бѕiФђ_OРХХ%ъ•&ХЩмyAЯѕrВИрУ‰сiEџзЛ 'бZХ`0.Ѓыc @оeБXЏиккВАkснЦшялjЋwуѕ] ЩўК­pГ)QM_эЈЭсЈ№CRє{1§›РGFFV6]Љ“OOMCЗћ”ЃЩёn а $„уgzЙ8‰€Љ*:LT™ƒЊRф5ЋWЉэ;ЦŸŽˆˆЈljЌ›˜˜5уrh“|ЁФ­k@—PbM ЙпФФd=7xЩhPAQЅїpхhћ}œš———ўL`ЏЊЫѕcУУУ№3#pЋ_F>џlДТo•щMCCУ<єчshК+&Хb1Ьазћ|q1c/‹NЇ{ќэ*рlЙў^’єЄ•ђj& хK ѕ?a;ŒxаpЬЧ“о†ЯА›]EžЄ2ONя' `Её њ>uВУ]шIXЈъо~-vМЊт”——ƒT*…Žжz&!Р$7 ŸЂё‡’ря)щ,rš„‹‹Aє{ЂЈИСFƒV—ахДMХ™7YЃCысЃ `ЯfН!ьOGЖ#ˆb…јamШZЗrА8яUQQˆD"шў^Jn ьЦ-9‚>&ˆжoKnŽн8œз„3‡Ш№ Ѓ^TЕR4Фпc3KјFГOQыеЉl8Ѓ;‚Жф ТќUEЃQТт€№Ў†јибHEўљ ШЯЯ‡юЎvx,6jћSеЅћN9ьVШ_™^Аv…Х Н€н/р’Нˆ/`р=ћлуеlhЫ †Н›NЁН э/" ‹ўЂv˜#kgV#аџСмOЉ233Az­ ^о1ŠвO9БЮ—-уа_Ъ…Т“–S›BnЃІћ№CЬЮцs EО9O†i‘,g# uЗю"Ѓšд~ляG]ЈŒл4–Х;ЂВєщО‚ЖuъoИККЦкВpКƒЧ‚СЯCA!rеW† Њ7‚ЁтuПїёМЏЄ"\j†ГЌЄІШj|ЮСГ6А=zoХчиїbŒtІEЪгмEŠЃбšР?JaCMZœŽеTQС?@Ђ›9*š%ПЖ:::\TЭDќ;ёEєяdi…„­bщ}њX˜ОtяНnЄg[˜žЬŒNœEллTЦЖїZDЈ8tФ qЁfOћН‘‰pЈ7оd?ЅхоˆщПєіЇQё4ўЪЈOэБ %ЃKjРџЎЭъПуџ”Ÿ/ysp3afšIENDЎB`‚classified-ads-0.09/images/win/editpaste.png000066400000000000000000000027121260620453500210540ustar00rootroot00000000000000‰PNG  IHDRрw=ј‘IDATx^• lTЧ†П™ћиѕšѕкѓ0ŽHѓАма„є!JдšHъЄiт„ (ˆGS iR)Љ*HHЋJTQХ+…аЗ)ИQ\+4Э‹PJ•Ех&ЦP‚эЎЗ6ѕѓНЛsКŠVИZш/§stfЄѓЯ?GЃЃD„ иЗN-§C˜ymfŽЧё#(@P ђr)МЉ”јзnf'šцUЛЄ›ЋAD>хюе<вRwлаІ''ф ц‰<§эBљлѕЏ#Oнњe"Т•h“ёXYqћММт“эtuu`;ыVBхпђЭОccЈњБннћdУІeЯŸ­]Л?Qssек;–Љяўз'њљ#4ЩщoЪsђт‹/Шъеп‘к‡—Щ=е5ВpбНђT’Фи\ŽИ$’c—В†Ÿ-Šюx”™КŒBЅŒaNe%ЧŽеѓQЫ1"'шm!рoУч ‚$AРєƒщ%>6@џ…NМ”Рт3\‹хJ)˜ш2(цUф1šаŒŒииЖ…BQ^тТёI` RA”"f Џt€МќЉ8ŽPёuEpnЙ$ ,[1ЅШЧн‹K‰]L№Rh­ШЩБ9бьdьІ€h ФC)Cв‹гмє^:ZN.!кq. фe;PŽЦяjДэ№k@А-…пgЅs Ыб€лIби–ЄЯ@RуФc)Џˆи8АВ@+l[a”вyу Џmel,FWыП Џ@iCaAћkюdСТЏ`ыљЁхЅ“‰{>‚Ёщ\<Р|жhѕ)•Ѓ‰Дp№ш8oў Ї:ƒЬЦ2.Ўц–^резР‚E_Фv…р$Ÿ[€QA|9г№Л ™%`[жФЯШ 8xёQњG‡iш*фЃжЩ$њР‡MK‚tvžFA<\;…cJ/ИЙщ˜Ќцк€#`\ф‰u3x§™[И-ч:аWрyCssРL€ШrАЕžЪўЂ0мWЬДВЂб!ЮЖѕ0Лb=nтr@– "™ЪiŠd"d  ”zpынж”йŸуЙ§?aИч8E%Г(Л}-бћVђц№\Ш› ірhŒСЄ ֘ЬЭ Й\шюmџ;зWзRВН‘žž$эžCc/DЛСч‡Л>7ќѓOxОYЬ)/ЃѕbŒ`Ф i™˜ "яЦо|ОѓwЫ+ й…R1†ђ|№еТ8ŸсІw–ѓёogрэ'ˆE™џхJФKaR)D$уHіЅVd5љK7аwxЯxыРq_кLЭ‰эЌkпGеЧЯвsh%GываpˆmO­рЕ_=Увъљ$“ ЪEйA,w р`i4 ВšїPі” GїFјѓПрƒЁ%ЧAƒЗцNHсиЅх%дЅ/PPˆƒхLBлyXnˆфhмtЗНѓ›9Ппћ}Ÿѓ}žї§Ѓр?хЋ€џ—cлK#+џpC+џDУ™ОЩњгEqЃ,М}t&ЬЋЂЂђ-iёЙ |в0Ж[лЎќU˜~з_rЅR,)SˆW—)‚ЂЏW‰"N,пБйnpпŸ[›єКЮ*€ўв[—РЦ`гОѓoњ˜|ЃуO§в{jg ыX,p y*?YZГПў<’й-)А#hВЦRfCšP^#pИЯ9Б\Ђћ?E№Ќбф—f:[яэveЙdНdЫЅ—оX, №LфX‰sеI+хтЪƒncbбS ѓvђ3 хСb9'ъЮ†4.Яіяі_bQŸ˜ЊN=Є(sJК’Io2Жџˆ);Чл­x”|ДшMj1Ац ”Г6“™KксЦkTkЎ”Wъš{œlтфЮ“uЕt[бГмгРшЉKюБ– Qi3|ЂћЦ№јг/ЃаC ‘гџР˜TEOЭ1‡• ’ЖD9Z’vЄ/Л!вуpЪwЭžYХŠњЭч(>ƒю`Ђmq g˜™•и?ошYx_ѓ,|О&ШЄ`=зжYJTTћщLaц\–tьI] “ŸЬb‰™E5š†6—y_@:МЕw]=hєŒнvоы*2‹žд%ВsAЬЦМ]Д“–ZD3(d™)zQ?еXФg#žЯ8_ќwСжм>ЖТшGћЮ(ъї0ЇnЪаuљE3Pщa#[ЊљŽєЅ™ЉНјaњХђZ9- ?ЬЇ•і[ўъЦDZbИ0X@k}G> J:ГЅ›|${Ÿх\rK€эiЊ5є­ryoдлФ6>дH#-УЭьХт8'…"ТrhZъ”@R`\а_g‡;šzМAР…”ЉIф•Зтћ€­pЭГОУ&ЪоuA­ нКїгugž хчЪkт.єzQs‘L+h‰%їŽвO5hЌ:їяnQ”МВјЭЖ3›ѓлїzLчНіDЕ 5 ЌWPФ%щ‰ђšШГР ~[/†sN рМ ЫЌ‹ ­HOЅ[сКŠ П+ъWя8њj€Ў…\ЙoЩ7ЄбЁ?нЇ—ўДekу>——›‹€ш| "XЩpњЇ19@оЕ&4ˆа2šЕеbvшуЃчЫk}зЪ+Й["•6‘–{Ея<”_qЅ8QІoвsцI^L cз+wšа B}€Ў@ТŸdWЃЖeWйyE?юж{ш~о‰ЈОїZрц#Л ье‘ќ›е‡Ю—жdœ+ЉЭ8[R›~ІЄі IЫу•Єц–дjк–qšˆ49дHї:§<•)OщаЕ—2ŒіЄg#]h9xЌ“3и\х{CЫиЎDЫШЎєctы3,ƒs\Gѓ"кПѓ њ‘0Њ’ŽФ€8їfА#УЩ' еwсkлф{ОсЈюFz4ŸсГџђјњЯшЋ€fљЮ•N= ПљŽIENDЎB`‚classified-ads-0.09/images/win/editundo.png000066400000000000000000000032331260620453500207040ustar00rootroot00000000000000‰PNG  IHDR szzєbIDATxкэ— PЬyЧuюХцКыp^Nођž\)Ё"D„D[Š$Џe[ŠшХъEЕ^в+y;*ве:ЏЅЩ!NV:ГMt^Ю99/Б‹ђНяжюLЃщЬ™1scg>Гѓп§џžяѓ|Ÿчїлџ6№^љРџ3+'ЉЉ•г БЅ((ов10Хв1 u˜ƒпz3;яЭš5kMš“wћ>-И?…eУWz,лu= ъд§ашkевЕ7двЈъРШKOФвƒї†ићцлЬsЩ—фуw Мr,EwL_œЄ’%(†'hj%сРt?`Ђ'0f0Ъ чИ/ТЂяМАq ЙйNпа‰ЫѕўГ№œхЩђЄЪЇб€[ …Ф€ХlРd`шєu ьШ`РxРi!р^ ю3dŠ‚aŒпZ˜ЂњD:н'IЕn;…7ЎA€ЦŠЭ‰“ьM(fфєvКNєm€Ё" R§ЪЬN|‡сDo%>bZАdМGЄ2<ОИ*< ˜ТŠ}ЋХd)э–‘РŒh~ЧФј>iёњЯzиІЮРbЖШZ№!}оЊjqآژTM­7E&АЗщŒ—Q”‚KSЈCРж|`gp№пCлзв&кЯ тјЌarоёе -§тR‘ЖъˆФт*й …БjŠŽЄp‡-=н ФžВ”РžUMplІкУ/юiФ–Ѓš}ХД<N№^s1зIi,л3AђˆсCўо>мцќр ЂѓКхS=cЪbSюj–ВзЂ``Ќ” ШXU fХђу@F А7OU3С#єIЫi•ћ +дыиѓ­hsFБ&1—-Il‚ъcЌOQП2чyПЮ­xbВђO“Бѓwvh3Y8(t˜иŠЙўЩБЛ5Е^rі– mWё}=рБƒU(€E@іХЕтаmЯДТпv5Ъхк(тE&1žПODъщчEЩLZNћуˆMч^є4p•їјj(Щ?ЭЌЖ\|fdэ–ehх"с ЖзWІИ%пЬfПэiЛп]6’t`]Y ЄSОщьџИs_‹bлH<‰5щFО8внЦ+xЧ­ŒŸй†}tŒ-ŒЯЂƒnЁOtлv9Ш{\ДІ<’Ч ќвKzAm>ЩЇ,|г-?{ыЖ˜(cекЉўA8`›ЯGKеЏ–Ыws/;T|гЉзam/‰=щёњQk1uљь5лŽ§ž^ „QXў#ОщдѓЦЖкъУˆЙЖW2Ž C9й‹ЧхеЕ.J&­ЁmДlўn ”НNf%G”jЇIфе]Œ,a€2 %э­t2>-чZu*“Ž;AЧrдZ‹ќЗдm—ЮЏ]I‡Кc_C /Рв—НЋЏzњVР“ж­ц„ЇгrХ…л5‚хчЙXNІ UЗ$5ќmp’Ф”^ч€rœQПrє’W kWвЂ.L ,зящQЁfВџ‹hYD>FёЭYч^ŒЂxGГг\A&’N§ h‡;ѕЈђaО Ш-–DьV ЎЩ‰iCtъP>I€НœжЧГпЉ€7{œ$]bEЗk8 wtлъ+„УУ–ДзŠ7vvxј'ЉJ.V~Ћї<њОLy=ёКŽ^Єщ€ћv`nА˜УЖ‚ЎDѓъХ;ѕœЯл—KвІбЪEAzLрРЩ’Лšв;мѓT!NDџŸЕBД(.R+9lk €шbкЎdяЫ„ЌѓЯћrFЏƒЇ}ЃŒЗ0.­р^q…ІжYМі‘ЩИRa‹:“.ф“† Ў\ўШљ…b%„§ЮTйРaк—wИ\l9X юgсДŸKњ‘Яy(БMЎпыыУ?Ѓ 4Щ_Цm_чыQ&IENDЎB`‚classified-ads-0.09/images/win/exportpdf.png000066400000000000000000000020431260620453500211020ustar00rootroot00000000000000‰PNG  IHDRрw=јsBIT|dˆtEXtSoftwarewww.inkscape.org›ю<ЕIDATHЧЕ–ML\UЧoО‡Іƒ Д` %ND VЃMД5RЦ`§Xƒ,HŒ1vсЎnMw.КkʣԘ6ГnXи&e#ІИ€Јi-ЅЊ|кѓС›їюНЧХ†@‰мХ{їо—{~їœџ9ї>KDиЫцc[`­ѓтЇчћіЇі}]D˜}№tВ”н™ёK‰ЪWп8_,к…І?<3^8а8ѓЭчoЗп™Ю’Л:ХЫwпеNiџ„КW;ŸЊ ћўу{рx „џœ^сюЬ ЫПоЄyєкЎПY/аиЦhM<J§џ­бк [iАЙХZZxwlŒть,.PзйIУБchлцчюn^Яd№GЃф''Йбгƒˆ ЕAkН&Ь“sCCŒ>Эk—/S˜šbЄЗ—x[‡ћћщыЃДДTv@0F{йaš6uuёЦр ї.^ЌЬЇЇ ззаyі,‡NЊ„H)Rzы4нЮƒ==ьфIщ4ѕGђшж-ъŽaЄЏcлž}‘ @‚;‘›Ы1§zeМ8гJ.WD‹)МoЦD Z{BƒФX‚r J)„а€ ;К}sœкцЃуёY‚ƒ1Ѕ4Fk”ж(W1џh•лsЕЉzќ=C$Цuеж•,хbбкЅ&Ѕ9)М”Ўу‡Йњг5DрЫЏОрљŽvЧС))š~Ц ‡53ѓяЎЋp]UUhЭ™`ŒxчŠ1иv‰ЙЙyюMмрсђC љ<ŽуP*•АэZG+сѕюі…&Ц`ДёЪ^lл.Ї]9[ьUђљ<Ж]ТЖmlлЦшpy­T<иxKжЛV4ьCЏдЕб ЗЕђVз›cˆХbdГ+уЋЋ6кЄж+йuQЎЊіРВ, А:>јЎtєЏС§MЉD! 4,,‹Ф™}ЬЖ“ Š`ˆв ј€b7вьGп~@ؘЫr‚є€n–?Б2w))‹Еb„р­ ]Щб.а ‹eРмˆ8s С’`-рpВŒ”‘и Z„ ^‹Р Pњй š|)‹ФЕ`XжЁАщ@ў…љЈо`^‘„х]ж kїетьИ,Wг,„`K›R„BЛШJdАƒ{€ЙъдJE`б*_б–”Z‘З@Љ(v~аzљђƒ"иbg,А5HўOФUQомОТбўымjлЭ…ЦUSыцSяМЊEљf0gЦ‚ђ “HЬs_ё˜Ї–^кЪљщ‘SЋчRЪ,р8иYЊўO —z™=м\fфУЉaыЃЉ›ˆЬ l @(Œ*СZ=e$ъЈ ЗUEDA2аƒРBЭ‚”xRF"AX`‰СЋ…бКiЫ)IENDЎB`‚classified-ads-0.09/images/win/fileopen.png000066400000000000000000000031761260620453500207000ustar00rootroot00000000000000‰PNG  IHDRрw=јEIDATH‰•{l•wЧ?Пsоsыхœ^р@iЛВ^(хEcƒЩЧ`[48cf"ScD75&ЦfH4&j6]0dqШ(ФЎ`iYЁс:*дѕТЕаг;Нžы{љНяћѓ4Ј˜Ь=ЩѓячѓфћЧѓJ)>ЩМ§CQ\Qк>ЛlЩї•ыш#БЮWЖЛm_нФвДХрІWе8€іџ‚џ№#*)`ыВњЕпЉЈ{n]Qq-Ў'HvђйŸoyВИ/S№ф Сdу~!Фз”Rђc „тјжеVE_™ПbЧ3бyk|"yЬнУЈМХŒћПИ<ПўХх•ЕŸцЦсѓ@†€‡ :оŠРъ]*ајšЈ<ѓFё7ЫnњVй‚ѓНй>ьс&FЦЇщŸ #‹ЪYѕь.Т‘rъw†­.Рћ_§ф+ТїФ"žˆЮ_ОSѓ‡ š~&іљ|bVЭЊ­Џ”еlЉЪѕљБюЕŸ™фЦЄsж2oХчЈ^А\‰тwй­—œ ”R!ФБзX8+:{wХВ/ЭžЗ:(Ќт‰aнˆh‘H‰OM_efЂС)A_КŠъ•/PZЕ„pЎ]зQЪ‹+МtПЛf|јяW§ТаЂђЂѕ—bЅЧ^[Qїєž’л#Ak•К‰Gг Eй:њЬwFR fJ ”mfy§BЙ!\лBJ‰ыzI&'щкб{P.\ПCЫVˆ яьŠi‘Ђ’зЃnЎdСЖ oE9:o)%Жcb2ЩЕб ž9лЈ{l3%%QЄe`YЄэ`w{šщю8FmХжяиыѓуЄЇS("Г4зWхїy‚щЁvBžТ›‹aZ$в:зв9QНўЪЪ+ё #›ЦQЫДшЂуєя@љјЬг[ЉЎŠ “эLмМ№Н7iЪu=Bй8.XЪƒ--юŒєЇЪЉXёVж,!рї"-CJlW#>еЯегћщaщŠЧйАОзš"k$ž=‘УЕЫ-ƒя_с= РU`I…aY Œ&Йы>ХЦчv’вЖФаM,лС4,ЎwМУZ)-ЋсЅ—ПM$4ФЬаqFFоС№bЎДLяkЫќъђ-К5Wm;R’ŒghЛ<Ъ†/Š‚pl&ƒу€aZ ѕ]ръйј}A>Лy еЕХшcчшПУДl^ќy•LuШпznД]ОХI`RГmKк$“&}§SdФ\ђ Ђ˜ІФВ=L uбyБјј]V?О™5ѕ•йЧHw™ЌФД$Ž# †ЫHоKа№—ЖžН-ќtM: УД‰ЇLzoпC›Г„pd‰јчџHьњ9Љx„Я}7Сa‡‰Чduл–d2)ќЁB„˜Ыа•ЗѕН'ѕп˜’Л@R)Ѕ4i) COФю,]TPяј1Ÿ`лі—)-ЯAnb,6B:c‘H&@ЙhО ОмrrrKщ?w‚3WcG“:эР”RЪаLщ’б%“гo 9Ѕ5œjкЧО^vї”фѕ0дйM6›A л–X†7'J~ўЃˆ‰1šпћ}цPћєЩ‹Зљ5p0џљ~4нR]25caЦ6ІщИє›žZХш­#dУљHлС4M\WЧЃх]ŽЯвгжшь?жлћзeMZ€~ Ѕ(Э0\TV’в]$~Ўœo`Au1Г‚#DТa’Щ8Ўђ —уŒv~Јкк/ОйlЩв мЦюУЈfX з8ЪO*™ Жj. +yAЧБqE0RŽ…˜ЃœiiH§Ж9uъжzяƒgC=Є5GЋЪLSVhБЌЎ€ˆс’6 ЏЈst”СЎFїУЗ:NпЄС’\†€)@џЯЋџM№{ЩЩб( ,]Y›ю!/ZŽэ™G "vЖ…#ЭWœuŽІLŽ1`H+ЅфџџKŸœь–йю•uЋŸ/4ЌыDŠJцд’ˆѕвrтдєЛчГ­нЎн#˜‹уЁ‚Зšм?W‹‹эs+7Nвбtаz§ШРЙЮšLЩY`˜О‡ћqРЮќЙE<џжїђЎ7ўt‘њвК`WЎŸ=РF (4ЅŸdџ8Єn_UI‚љIENDЎB`‚classified-ads-0.09/images/win/fileprint.png000066400000000000000000000026601260620453500210700ustar00rootroot00000000000000‰PNG  IHDRрw=јwIDATHЧ•U{LSwў -}№”gy­a !ё1м&с$NФ-‹бG2—˜-fЮ—‘hиіЧўqLЗИd™dfYŒЩŒџ LїР)у§ЈДДНmo{wЮ :us'=љн{{яїѓяwЏJQ”–э…_іiВs >ŽzB‘Ÿ›|Wђј‹dй'[Ь‰Џь[Ё бъНnеджЊ— &gњ†№ИС6ьGYйЛиRЕџЄђёе‰…K§_€šRХЇЊњc—ƒrкЕ”Vї<—вdZљЭутЭ/L | _Qwkpг‰MZЪЛN`LšПsSеы•ДЄ?6ArТS0%d#оИ}зZПџ§з9И|€Ы 8ЁЊT?wД_ЖЮбЁƒдsx—rŽH&ќ@VA!=Ѕ}NЏ‹^‹ЪЪJ>|В,/HОм1žYЛQќс'™ШšЯ~лБё­’]2 ћуan:Ÿ$Њ?<ќЩ‚0§8вЬ№Rq юїћ „ъЁVѕcы‹HЏЄ4нјtЇj'эР№pk ј™/ы§кž–$iЗЧуy$јb|няW’eљЎšѕ_ЊF%X‡uˆ0цDР@Uы‚œT‘ jКё…З_…,§ёщ‰†“1DђЩ;Х•(p­Ѕх"‘x“NŸf†Р5gCЯЕ.H#^иe7‚x&’„  -nнŽ€Х’уЧзNOOзЖЕЕн$ЂеєрЬC0ц;Tймќ"УCA ГГ’л cl<"ТТ бj`0hрqћБjѕjсœёёqddddFDDL:tЈ€ ЏнG@РEййй_экѕF–Ых„Ус€фёЂЛї:,™Y($зАЮЁЁЁˆ‰‰ЁцЗЭfUOУWaddлЖmcВЮњњњИ@'‚Р`0|X]]•‘aС№№04 t:rrrаппјјxqcrrVЋUt7;; ЇгIŽ ‡йlFZZЪЫЫƒ›šš>Ÿ˜˜иКH@0И>fо™™™hmm…бhvTЋеТ1TЫ"ŽN$Їз{ЎуЮэ;ќ|>AЙ A066ІаА@] 55QQQ эыѕz’6AL:ƒ­9::Šоо^иэv:У№аІЌ3ˆ‹‰C0дДƒ уzќ•——WФrœ9sFfee!%%E0wУ:Г4еœfAюЪ\\Œ<{З>ЗƒЗЈ_ИнюЩЩЩ())3 Л‡5-..FWWФ№Y&­V‹0rTnn.–/_ŽшШh8=ЈœЏС™ЌB“rю~›GВБББЈЉЉСрр КЛЛбаа *‹‹i2™РХ0ыЯ]єєќ‚S Ї№RIт’АK6џBŠ &ЮŸ?5kж,2ЇЇЇ ОжммB2i)ц0==‰ЋWЏ ЙмМGШUЏT"11QИoй2‹‘ц"LУ›Œ}Mы:вМБЎЎ.‘‡и€lЧ .itК9ђ м%†’’Š„„DфччЃЂЂ‚•€_ё#/7Яоззї‘IENDЎB`‚classified-ads-0.09/images/win/filesave.png000066400000000000000000000022651260620453500206730ustar00rootroot00000000000000‰PNG  IHDRрw=ј|IDATx^Е”нkеЦ?чefg_ђnвДiС7ъ тMєЮKЁˆ‚HAш•z!НєЧя№FєR№вK[-ŠŠBЌ(Сhmк›”&mšЖI7Mšюnvgwgwfgц8=„АЁ€рЯЮ~™™чѓ=п93ТУ)ЭŽІЇOПц 0GAђя$IVтИћЫ•+g"ЭЎЬ›я}єП“zј‘ќХЙYЙ№зŒшvšB"„§)Dп‰v]Іžx–'_<Сјфaцgч^šћь‹уР%р^€уЮ№˜їkYщЏП<ЧяОЪуG'‘Rb#R$ТжЄRик)pцв&п.kє?hр04v֘fЅъЇ76ѓдЗ}=EСєт‰DkYйєziš Rч*ЂХŸё^c Œ“$щE@Pš>I EGк€вр…b‘8ŽЩюАЁJйpыюё<Ri€щ—Or§Z) @?Р†hGЂЄ`( †!Н^oВ#[gІнn…!ХсIђљˆhїš‡h!Шi‰V’zНЮ`СђmчЎык)лЙ]Ѕ­ЬљBžлЋ ЯЉг†~э‘ИŽDУФфGІїzvL;Вс€]UЇг!0†z}›8Ѓр(кBьзЧs ;:A`;єМŽутh…в!ьRaWчhZЗ#ђ+„м Ѕ$Ї‡ŸцЉgžуиФ0iJjШlHRш%†NaQ"AРvзw%іp”сбN0sK№X`ВZв‰(Ѕ&ˆzЋ‹пlSo6i6|Œrа‡Шхs(yРˆr &ŽLёщїѓфЕщvЂN@wQ&ЦsCХ#%Б‘‡ЈЙc$К€ћЌ@ A!чвИ5ЯѓNcSУ”М|6B1',2’ЙT,рх\””DqLаjrйwЙh„мoDJs5~љЇџџ:ПЭќФжZ…ЛqТЉSЇ0ЦЫ9(%1@bРЄ†AЩSНџ3__џћ<Аtїю"­*‘e7чк]bпdЅЎЋГ0;g‚ 4ѕzР§ћ jЕыы•іЪвТЙjuщ"pиТ~€t]!ЗЪЫ$ўZMѓі;oбjvMЛнуъеMЎЉV[aЅRѓkЕкІязж}џоjЕZ^]\М|טДмЪ@Ыdъ˜жќ…+ЭЙѓ3ХђъІљА|6*ђa‡еVЋБсћ•rЅВОV.__ЋVяж€.а‚>З€&˜L{ЖiwОњф§7!tУоveљъьЦііъ]cвшє9АЕаыsLfМЋ>РТТ™я€?@6xчq˜ЩШ,ўбOˆ–xџQIENDЎB`‚classified-ads-0.09/images/win/textbold.png000066400000000000000000000021431260620453500207150ustar00rootroot00000000000000‰PNG  IHDRрw=ј*IDATxкЕ•mPTuЦЉІЦЩ)fr,гeƒ˜X” hсє‚еЂXYЭ”JŠ(jЂ‚ю€МD 2,б Ќ`Ъ&/Џ{aQ`rq‰KЋ4ЛFACГ5;ГœyzўГ9ЭŽВЛ~№У3wюœsЯя<чм{џ>юЈ\nVmиŸBnCjъCjЖG“BvвШWџ„FЇгp™љџЎќ-bМRПи€ю‘Iћз'$kФњН5ывb<МГЋиXЄ‘ЌтСKП}ПчЎ§МџDLЈОwlZР‡&‘'1џЭЭЪСрзЗњјјм5уˆBЂЖ?•А;ьэOђЊ$k‹wўЬNy-950КіьтХБ Wу5iEZГСє2fИTЗЇ^xcgГfКHXЖњуW’jфоq ƒ€3_-Y‡МUЦx 5oEьuЭ'э]2Œб ŠН0Ж`&€Ы>@OР&@'5’5 ,Ж9+у2вUMЦЉіQ •M\ј иTlœя)ѕи™Ѓ‘uДпxBЖ.<Џ'м/BО“цwsТ›.”†p/;mХТэЌ№Њси>Zp'‡Цb§ЪЕўgGпйЌ~Ж ”У”\Ры–cЗoMцГ*ZTП­ЙжT\д агоІуХч/эA З‡а\gšРъWЌд~OўжлdЎ‚З=(v„‡{iœo&l–ЁдГмтB[иi,xPt†—њАUsЖї+NP‚Ѓ<аa]Ч^_уЁL /Ж_3ЌаZXў~ф9 Ъ5ЕЏhЅЖžK>ˆ„§)|Okp8ƒъXxЄq0q<ЊˆжuЯŠ{ уlyМŸP 5Ў:j‘Џ й6П.Й}ІрXЬ#ЈŽФ7ZМ?IICчѓŸuУ+УD‡/Дц{œb6ЧjЭјПМdрO~лЬ2A7v4ПјCƒуЁCЎсЈЯ„СEКчЅІsЈG ?ќдбљъhЉ`/†бe*№OWДіМьo›ЙŽ@0›УфвŒЮЁ*T‡Ю{Ыƒ bЧєŠc˜чxюЕЂЙS’ѓ"цЭЮУX/ <їb~l5A9&Аі§€m<ъФч.IENDЎB`‚classified-ads-0.09/images/win/textitalic.png000066400000000000000000000013751260620453500212500ustar00rootroot00000000000000‰PNG  IHDRрw=јФIDATxкЕ•{HSa‡g(‘І†™!]f†išVj(™bbY”HW+*T4ЅыˆЄ2qšДВфи$tLЧёžЋЁУ­œгА…рjQ!ьсзћБDКœmx8œѓ}ќžsоѓ}яјЏќuBь‘ЂB§фА№ј‚ Ю8ѕ˜ќМ§ Œ™mш?у_6Ц`‘Hф!TАљlLWоЬ›†&ПZ5)Џ?иD\ПСТЦЗХЌ&ПрэHЬ йОямх])9JЙzvNejp4ЛB›о)KЌ^Жм'™~‚t,!мcвЎЉњ&ЌѓЊq€ŸЋ Nc)Фb%с&PАXЊ3љ2на4 |єJnx&(ъP…n$\цк+Ш(iтM<wŒН“@^9g\Мч…ЏasHšЈ$ =аЎ%С{рРiЉЦнkU М!ЈчшЫGDЗС:П;5wТЃ7G7š{кn#№ќ а6дu,Ёq'фО…pqTЕ”3Жы€цW$ЄМIžTEсЮhЪž ЯДh€Ц*бyЛyм_™ЫжН3’ЊNƒЅqxдДы*™‡З[џžЮtЕŽXчЋy ІhшŸ O8ЏЂ№Те!л`y2н p_i”sZspєБ $\dмЈуMВ> Ќ`gv‘ќ`ЁБй- №Е„Є„ЃnЉюЪJHЯ•щV„\"Џ‚ХLъХ эІс™šA ј% !С= }Њ5я?%еPwН}8_l@­˜­z N <ь*{€к!vЯ6VкІ5яto>…‡йеьX#V~Р—№$\œЯ17ђЙvуЄbIENDЎB`‚classified-ads-0.09/images/win/textjustify.png000066400000000000000000000011621260620453500214720ustar00rootroot00000000000000‰PNG  IHDRрw=ј9IDATxкэTлnQэЇљ~JŸŒ‰>шЋQЃ Ц&HМPдJ[(єBЙf`†[ в4&ТœГ\gŸ Ођ@Ÿxий‹Ез^‡ь•ЬжЛїЗYљ5еі–йјRтe…X9ТЧ“ MNaЇ $] Ч9[ёЊЂvNlfvїл9№ЕўkЄ:Ц[8шлсУЯŠ ЦDсqв у…фif~ џщlЇм‹ЭШ)бLŸУ>–!њЦLсЩй6А/wL‹зчxъ№!94|žЖк\/­_›Яѕ*!~оЅB›wѓ'кіБщтжXЁ3е‹9б{фЛSЃUЫjLЏє2фоЕбaG ХИа#с,‹7ИeєmЋяВ І2уЎFяњ–Bў ћ'ъ`Ю!ДIENDЎB`‚classified-ads-0.09/images/win/textleft.png000066400000000000000000000011311260620453500207230ustar00rootroot00000000000000‰PNG  IHDRрw=ј IDATxке‘KoRQ…ћгќўFЦЦ‘1:№уL“њЈЅЈ`[ЗиVЪЛ..Џ–‚iР=чsŸs"Nкt"’vіКkЏГьНqчю§„”ЗЂJlАпƒ­М/+6Ы1oч$›Z8ХЮ)Є|M:@8иnˆЎЊDЛo3CtŽџTџƒ5™PcМm@~р†?*y`ŒSNјЁЂx М3з€ш—bŠ­•вB v[)Jџбюі[JAтEwЯљ9sšдPуХ^рХdfОoцћВчœ]Кw9%QI(RKZl–хtЬ›§ŽрIвuУЛ†сaжі#Љ-в†Д`ял№8Х7џ(kм|ЎѓsїуTл|CЖы‡nYuбѕo"2MЫFWq Еb:#пSБ˜MЩk_f.g„SвТ щ#€К&њJЌж,ХЛА’—3mDlД ЯЖЁауЯKkЦЎКљŽqѕЪІuu%еКе`їDEbvњКГбŠ(Pђ]/цVГУЖЅ.Yсtgž? њƒднЛduJє™j“nCedЈ…№вГxCиёcV=УчcхрUvCС{1/ЪF0Km<ЧНaOъз5d^ч ЊЛ0hN„…ЪРHFŒ,еЁБˆr;Юы‹Hˆ†r2ƒткkНрUЃ}С/ЉџцOОѕй&њ:ш_B}lШ6, žђh~уы1ЭSиEdъFxKwКИƒПєЏ ;–vЮФфмв“zуOЁ­и‚#FжЭљџ`К{—ЌЮ‰>S%ЧзаŸ‚Рё7№'o0ЧzчFpЋйѕе!ŒЎ`x хžbк[TчЗсЕЅaL-УЉЭN$˜сЌЙPёѕщwœAтGє+…5~’СыШIENDЎB`‚classified-ads-0.09/images/win/textunder.png000066400000000000000000000016131260620453500211130ustar00rootroot00000000000000‰PNG  IHDRрw=јRIDATxкЕ•kH“QЧ-LЛаE4QS*%!Ы[™™зBЉД щœ]ЌLM‚‘QTД9M‰Р0ъKЂ}iXПDvQ”šгPSSчЅUгMsšZPЎо/œўn–ГщЛ ?xwЮџœп{žу{ŽcьП2ѓАћX;‚ЗVPЩ_y ЕYЩJЛЅ [ёЌ}l№'cDџ$cкяŒщLџж|сј˜ЃзUvvvЫMy%Е™ѓцAѓ„Й"Eжaж ЂФђ“+FKUУ?ЊPВЇ&шљFyлјўŒЂnџшtF'Ыѓъ_“;‚U`-XЗкХk;&(мБ_R-Юэ!%ЗЧ?&Е§гфРСъFf`)’ ўнЈwЪєh"“Ў}иyш‚6dпЙ Иt}Pь™)‚у2uјЯљ)’ѕсˆWЧЭяВљдуV"Д“Т1Ё gAA ŽщfP?<ЪD§&6‚ѕРИ'Аи[nђon8ќЎТ 2IENDЎB`‚classified-ads-0.09/images/win/zoomin.png000066400000000000000000000021731260620453500204060ustar00rootroot00000000000000‰PNG  IHDRрw=јBIDATxкХVL[e}6С0 ФЁŒdщЦJ 8+t*Z7\Ё„06ƒŽ­ЫЦШК5 Х‚Ж"ћЅ˜щj+&RЄ ЭpЅвu­vmi„˜-*‹2fџАлЎїš—ˆбЩт—œОМзwяљОsЯy-џ*ў?<R…BЁ“JЅЧx<оЫx}ЁBШIо=рБE,зЦFFFЎzНолсpјЎлэОaЕZ§ƒС–––Іg‰ю_‰шяšЫkkkпБлэP(.— КЛЛСd2Aoo/LOOƒЯчГй.//яУч‹kИHўВrj>сt~чёxР№JѓЏЅѕ7ЫZODеoY`‡ёЭШо6гO}–ЃИАX­з•JЅыђИHўЄ9ЩB+ЇцеG›n<}фѕ`VG_˜IШ&q0ыђ ГУ<їТЉўйžс K333авв2ЧчѓX/"ЙV"’ц$ ­œšKŽПя*<;ь}vg=<_л Я”щ яќимЃнЃ_д}pСяpOG ИИx ыKqA™Эfѓ‘цJэс„­я9U}і/ѕ§Оƒ]К.Ј6œCsW$ƒO3,žбГнп“T•••aЌo@$"bИіЃ4‹4P™Ўe–IС–ќ:xЎЂЖWНљ/ЕAQ]фVЕ“\Ьњ8:ъёљ§~аjЕ7Бў ЫE`@+о!ЗHšO{˜Ф\X“Ў‚„ЌНАЉ@Т"lмЎ‡8щ~`вw“Z;†ОК ‰ржŸDp˜ššZ$+*^5Эв@™” `6з 4р1„˜Ю5а4О@­VгŽ#RrЈ(Dфsm{зBњ‰СqСЛ_O Ќ?N2B\qZ B"[Ф!ќy№Љё…O,оoЎ‘“0э4ƒЦеv Ѓ„RˆШчЊ3–+ЩЇІІ6œЛ6УЌGЭ$‹„GœY‹6§фМЧ E;;;!33sыwЏ6ƒ$Š?%”œб3<ЖЄщџ,кsљs&Љ˜MU@ЛША/иЉљЧџ‹Ус€ТТТЅјјјѓXПm5ё2Š?%”ЖN>'+’[h Є9Щт „Ђд\ГgЯ]Й\~ ы†F„„3іХUDёЇ„Rˆh7dEr ”ˆI|fI&“EВГГЁ4Gpы№ЮЭзБіBД}ЇфQќ)Ё"ђ9Y‘мB%ЭQ–sБББЎќЧ“o7•ЄТлћВ Й*ѓ*Йq9 }p‘ˆиј7А!:ЩZБ‘hю} умКamЄ~ыFhЏCoCДэ~b~9 5х"!ЙтиСёY ІАg>{_‚$— „Dє0Uf@џ9Дkžќd9СJD1d=ђ7…ˆЮьu ћНIF‚Еп6 ЁЋZћ”"?оWџcПЩ,Щ€Rє№|IЦ:j^‡xˆƒроIXэедќ?ћWёIWжЗ”:ћщIENDЎB`‚classified-ads-0.09/images/win/zoomout.png000066400000000000000000000022161260620453500206050ustar00rootroot00000000000000‰PNG  IHDRрw=јUIDATxкХV L[­M0LqѓГЫXiСЭJ;”ЪкИ s@ЩY@ЈЉ3[`8Œclc ‚qЄрч,юЋ˜щFEJ+dRR†FлAKпh]зB3иdQY„%ЦШЦѕ^ѓgцƒdёѓ’г—їк{ЯЛчžг–џ*ў?<–!фЉЉЉ{хrљ;|>џ Мо‰ШC(ЫќЛ"РcD")жщt­учf0œw:7ЬfГЏЌЌЬЇe‰ю]ˆшяš+ѓѓѓ?ВZ­ўссa€њњzаыѕ`0`ppМ^/Ц`NNN#~>Б„‹фŽ'Їцv‡у{†a ьЭЪп2wjgВЋЬЉ?0A–ю§а+є“ІЯчp0™ЭзU*•ы’ЙHўЂ9ЩBONЭЗюЋИёLщ[ФCСЭ ж_ЗДк@гjŸ—2ŽОpЌiЄЁуьДлэ†ЊЊЊQ@ Уz1ЩЕœ4'YшЩЉЙьрЇi';Я;aК}ЬхŠ:uЭ-јlzHа<Ы .ˆО9эSmџу ЯеееT*эХњm‹э`9ХŸJЮhшшž.hњЦл0t.к0юŒjœt‹ZЇёж +5og|Пиl6HKK›ŽŒŒ<ѕыsŸІ јSBitђ9Y‘мB %ЭIxŽšlп>ЏT*gБЎЁCШ8s@`ПИв)ў”P MCV$ЗаB‰˜dСЯL+ŠPRRdЎЮюоМњ:жюBˆ"рГп)ЩJ(…ˆ|NV$ЗаBIs”хTxxј@Ъ“б7+6ХТ‡;Ёђ%щ8Йёvzс"Гё/aCt”Еb9Лаѕї№xŽuQKCХЯЎ€к\ JжТm cЗ“PS.’+‚]œ€Е` {АїeHвЗ!цЁvƒогФCSЉj žњƒфЂ0Вљ›BDgі:Œ}_Œ$ЉТЅWЫгDpxЋ vЈФ>МЏўЧ~“Y’•јСБMёPѓBФwOТjЏІцџйПŠп&Mю(Ь`IENDЎB`‚classified-ads-0.09/log.h000066400000000000000000000026001260620453500152500ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CLASSIFIED_ADS_LOG_H #define CLASSIFIED_ADS_LOG_H #include #include #ifdef DEBUG #include #define LOG_STR(a) qDebug() << QDateTime::currentDateTime().toString("hh:mm:ss") << a #define LOG_STR2(a,b) { QString str ; qDebug() << QDateTime::currentDateTime().toString("hh:mm:ss") << str.sprintf(a,b) ; } #define QLOG_STR(a) qDebug() << QDateTime::currentDateTime().toString("hh:mm:ss") << a #else #define LOG_STR(a) #define LOG_STR2(a,b) #define QLOG_STR(a) #endif #endif classified-ads-0.09/main.cpp000066400000000000000000000107651260620453500157610ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifdef WIN32 #include #endif #include "controller.h" #include #include "log.h" #include // for Q_IPV6ADDR #include #include "util/catranslator.h" QApplication* app ; /**< The qt application, we need to have 1 instance */ Controller* c ; /** Application controller, here as static for signal handlers */ /** ipv6 addr with all bits zero, to denote an invalid addr */ Q_IPV6ADDR KNullIpv6Addr ( QHostAddress("::0").toIPv6Address () ) ; /** * Hash with all bits zero, to denote an invalid or non-used hash. * Some lucky dudette will have this generated for her profile fingerprint :) */ Hash KNullHash ; #ifndef WIN32 /** * SIGINT handler is trapped into this function ; * this will try to semi-gracefully terminate the * application */ void sigINThandler(int) { LOG_STR("SIGINT trapped..") ; if ( app != NULL ) { QApplication::quit() ; } } /** * SIGUSR1 handler is trapped into this function ; * lets have that for hiding the UI */ void sigUSR1handler(int) { LOG_STR("SIGUSR1 trapped..") ; if ( c != NULL ) { c->hideUI() ; } } /** * SIGUSR2 handler is trapped into this function ; * lets have that for showing the hidden UI */ void sigUSR2handler(int) { LOG_STR("SIGUSR2 trapped..") ; if ( c != NULL ) { c->showUI() ; } } #endif /** * FZ - in the night of the iron sausage */ int main(int argc, char *argv[]) { KNullHash = Hash() ; #ifdef WIN32 WSADATA wsaData; int nResult = WSAStartup(MAKEWORD(2,2), &wsaData); if(nResult != NO_ERROR) { QLOG_STR( "WSAStartup() failed."); } else { QLOG_STR( "WSAStartup() success"); } #endif app = new QApplication (argc, argv); CATranslator caTranslator; if ( caTranslator.load( "qt_" + QLocale::system().name()) == false ) { QLOG_STR("Trying translations from " + QLibraryInfo::location(QLibraryInfo::TranslationsPath)) ; if ( caTranslator.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath)) == true ) { QLOG_STR("Qt translation loaded from " + QLibraryInfo::location(QLibraryInfo::TranslationsPath)) ; } else { #ifndef WIN32 if ( caTranslator.load(QLibraryInfo::location(QLibraryInfo::TranslationsPath) + "/qt_" + QLocale::system().name()) ) { QLOG_STR("Qt translation found from "+QLibraryInfo::location(QLibraryInfo::TranslationsPath) + " using direct file naming") ; } else { QLOG_STR("Qt translation not found") ; } #else QLOG_STR("Qt translation not found") ; #endif } } else { QLOG_STR("Qt translation found from current directory") ; } app->installTranslator(&caTranslator); // controller will actually start launching the application c = new Controller(*app) ; #if QT_VERSION < 0x050000 // without this qt4+qjson does not handle utf-8 well ; every // byte in multi-byte unicode-sequences appears as separate // character after the string is parsed back in windows environment. // linux does some magick tricks to not fail due to broken utf-8. QTextCodec *codec = QTextCodec::codecForName("UTF-8"); QTextCodec::setCodecForCStrings(codec); QTextCodec::setCodecForTr(codec); #endif #ifndef WIN32 signal(SIGINT,sigINThandler); // if user presses CTRL-C signal(SIGHUP,sigINThandler); // if user closed the terminal.. signal(SIGUSR1,sigUSR1handler); signal(SIGUSR2,sigUSR2handler); #endif int retval = app->exec() ; delete c ; delete app ; return retval ; } classified-ads-0.09/mcontroller.h000066400000000000000000000156301260620453500170360ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef M_CONTROLLER_H #define M_CONTROLLER_H #include #include "util/hash.h" // Hash #include "datamodel/netrequestexecutor.h" class Node ; class Model ; class NetworkListener ; class NetworkConnectorEngine ; class NetworkRequestExecutor; class BinaryFile ; /** * @brief Pure-virtual interface class for controller. * This is spammed * across parties needing access to application controller. * Reason for this interface is that for testing purposes we can * replace real controller with a dummy mock-up */ class MController : public QObject { Q_OBJECT public: /** * Enumeration for different errors that may occur within this * app. Class controller is supposed to handle these and may * be signaled an error */ enum CAErrorSituation { OwnCertNotFound, /**< Does not have own cert and can't generate */ DataBaseNotMountable, /**< corrupt database or permission? */ BadPassword, /**< Could not open encryption keys with given pwd */ DbTransactionError, /**< something went foul with db */ ContentEncryptionError, /**< something went foul with content encryption interface */ FileOperationError /**< Error related to binary files */ } ; /** * Enumeration for different user-interface actions that * controller tries to route */ enum CAUserInterfaceRequest { ViewProfileDetails, /**< User wants to view details of profile */ ViewCa, /**< User wants to view classified ad */ ViewProfileComment, /**< User wants to view profile comment */ DisplayProgressDialog /**< puts wait dialog on screen */ } ; /** * method that starts actions regarding content fetch from * network * @param aReq specifies the content,at least iRequestType and * iRequestedItem need to be there * @param aIsBackgroundDl is true if the retrieval may be * queued into background as a low-priority item */ virtual void startRetrievingContent(NetworkRequestExecutor::NetworkRequestQueueItem aReq, bool aIsBackgroundDl, ProtocolItemType aTypeOfExpectedObject ) = 0 ; /** * Method for requesting different things to take place in UI. * controller mostly routes these to FrontWidget but other actions * may be in order too.. * @param aRequest users orders * @param aHashConcerned possible hash parameter ; can be * null hash if action is not about specific hash * @param aFetchFromNode possible node hash parameter ; if * concerning item is not found from local storage, * try to fetch it from given node ; is KNullHash, * then just do fetch using normal algorithm. * @return none */ virtual void userInterfaceAction ( CAUserInterfaceRequest aRequest, const Hash& aHashConcerned = KNullHash, const Hash& aFetchFromNode = KNullHash) = 0 ; virtual void hideUI() = 0 ; /** * method for showing UI */ virtual void showUI() = 0 ; /** * method selecting user profile in use. */ virtual void setProfileInUse(const Hash& aProfileHash) = 0 ; /** * method getting user profile in use. */ virtual const Hash& profileInUse() = 0 ; /** * method for setting passwd used to open private content encryption * rsa key. this password is stored in controller * and is then used by content-open/sign-operations when crypto lib * asks for password. */ virtual void setContentKeyPasswd(QString aPasswd) = 0 ; /** * method for getting passwd of private content keys previously set, see method * @ref Controller::setContentKeyPasswd */ virtual QString contentKeyPasswd() const = 0; public slots: virtual void exitApp() = 0 ; /**< quitting */ virtual void displayAboutBox() = 0 ; /**< bragging */ virtual void displayFront() = 0 ; /**< this initializes the "normal" display */ /** * Method for handling errors inside application. * @param aError Reason for error call, from error enum above * @param aExplanation NULL or human-readable description about what went * wrong. */ virtual void handleError(MController::CAErrorSituation aError, const QString& aExplanation) = 0 ; /** * Method for node ; this may be changed during startup-phase * but not after that */ virtual Node& getNode() const = 0 ; /** * method for network listener ; it is parent of all connections, * also the outgoing */ virtual NetworkListener *networkListener() const = 0 ; /** * method for getting datamodel */ virtual Model &model() const = 0 ; /** * method for storing private data of profile currently in use * * @param aPublishTrustListToo if set to true, has selected profiles * trust list to be updated profile data and profile published * with the new trust list. */ virtual void storePrivateDataOfSelectedProfile(bool aPublishTrustListToo = false ) = 0 ; /** * method for restoring private data of profile currently in use. * shall be called after new profile is selected in frontwidget. */ virtual void reStorePrivateDataOfSelectedProfile() = 0 ; /** * method for checking if contact is in contact list */ virtual bool isContactInContactList(const Hash& aFingerPrint) const = 0; virtual QString displayableNameForProfile(const Hash& aProfileFingerPrint) const = 0 ; virtual void offerDisplayNameForProfile(const Hash& aProfileFingerPrint, const QString& aDisplayName, const bool iUpdatePersistenStorage=false) = 0 ; /** * method that puts dialog or similar on display, about a published file */ virtual void displayFileInfoOnUi(const BinaryFile& aFileMetadata) = 0 ; } ; #endif classified-ads-0.09/net/000077500000000000000000000000001260620453500151065ustar00rootroot00000000000000classified-ads-0.09/net/connection.cpp000066400000000000000000000664261260620453500177670ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifdef WIN32 #define NOMINMAX #include #endif #include "connection.h" #include "../log.h" #include #include "../datamodel/model.h" #ifndef WIN32 #include "arpa/inet.h" #endif #include #include #include #include "../datamodel/profilemodel.h" #include "../datamodel/camodel.h" #include "../datamodel/binaryfilemodel.h" #include "../datamodel/privmsgmodel.h" #include "../datamodel/profilecommentmodel.h" /** nat subnet. see similar variable in node.cpp */ static const QPair normalNats1 ( QHostAddress::parseSubnet("10.0.0.0/8") ); static const QPair normalNats2 ( QHostAddress::parseSubnet("172.16.0.0/20")); static const QPair normalNats3 ( QHostAddress::parseSubnet("192.168.0.0/16") ); /** non-routable address space that some ISP's seem to offer */ static const QPair rfc6598 ( QHostAddress::parseSubnet("100.64.0.0/10") ); Connection::Connection (const QHostAddress& aAddr, const int aPort, ConnectionObserver& aObserver, Model& aModel, MController& aController, const Hash& aFpOfNodeToTry) : iNeedsToRun(true), iTimeOfLastActivity(QDateTime::currentDateTimeUtc().toTime_t()), iNumberOfPacketsReceived(0), iConnectionState(Initial), iObserver(aObserver) , iModel(aModel), iBytesExpectedInPacketBeingRead (0), iBytesRead(NULL), iInvocationsSinceLastByteReceived(0), iNodeOfConnectedPeer(NULL), iAddrToConnect(aAddr), iPortToConnect(aPort), iSocketDescriptor(-1) , iSocketIsIncoming(false), iController(aController), iFpOfNodeWeTrying( aFpOfNodeToTry), iStageOfBucketFill( OwnNodeGreeting ), iTimeOfBucketFill(QDateTime::currentDateTimeUtc().toTime_t()), iSocketOpenTime(QDateTime::currentDateTimeUtc().toTime_t()), iBytesIn(0), iBytesOut(0), iPeerAddress(aAddr) { LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Connection::Connection outgoing") ; } Connection::Connection(int aSocketDescriptor, ConnectionObserver& aObserver, Model &aModel, MController& aController) : iNeedsToRun(true), iTimeOfLastActivity(QDateTime::currentDateTimeUtc().toTime_t()), iNumberOfPacketsReceived(0), iConnectionState(Initial), iObserver(aObserver) , iModel(aModel), iBytesExpectedInPacketBeingRead (0), iBytesRead(NULL), iInvocationsSinceLastByteReceived(0), iNodeOfConnectedPeer(NULL), iPortToConnect(-1), iSocketDescriptor(aSocketDescriptor), iSocketIsIncoming(true), iController(aController), iStageOfBucketFill( OwnNodeGreeting ), iTimeOfBucketFill(QDateTime::currentDateTimeUtc().toTime_t() ), iSocketOpenTime(QDateTime::currentDateTimeUtc().toTime_t()), iBytesIn(0), iBytesOut(0) { LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Connection::Connection incoming") ; } Connection::~Connection () { iModel.lock() ; LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Connection::~Connection") ; // here note that we have member variable iSocket that is a pointer. // iSocket is a automatic variable of the run() method and // iSocket just points to that ; iSocket naturally will be // deleted when context of run() goes out of scope. if ( iNextProtocolItemToSend.size() ) { for ( int i = iNextProtocolItemToSend.size()-1 ; i >= 0 ; i-- ) { QByteArray* item = iNextProtocolItemToSend.value(i) ; delete item ; iNextProtocolItemToSend.removeAt(i) ; } } if ( iNodeOfConnectedPeer ) { delete iNodeOfConnectedPeer ; iNodeOfConnectedPeer = NULL ; } if ( iBytesRead ) { delete iBytesRead ; iBytesRead = NULL ; } iSocket = NULL ; iModel.unlock() ; } void Connection::run() { LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Connection::run") ; iBytesRead = new QByteArray() ; iBytesRead->clear() ; if ( iSocketIsIncoming ) { runForIncomingConnections() ; } else { runForOutgoingConnections() ; } iObserver.connectionClosed(this) ; // will call datamodel.lock() inside LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Connection::run out") ; emit finished() ; delete iNodeOfConnectedPeer ; iNodeOfConnectedPeer = NULL ; delete iBytesRead ; iBytesRead = NULL ; iSocket = NULL ; // iSocket was automatic variable inside scope // of runForIncomingConnections/runForOutgoingConnections // and it is no more -> set to NULL to prevent accidental access } void Connection::runForIncomingConnections() { QSslSocket sock ; iSocket = &sock ; // when this method goes out of // scope, iSocket must be set to NULL if (iSocket->setSocketDescriptor(iSocketDescriptor)) { connect(iSocket, SIGNAL(encrypted()), this, SLOT(socketReady())); // the idea here with model.lock is that // this class instance here is owned by datamodel // and datamodel may frobnicate our internals so // if we touch any part of this class that is somehow // visible to outside, we must first lock(), then // release(). Frobnication of private parts that // are guaranteed to not have a get()ter method // or anything should be ok, and of course the // automatic variables. if ( iModel.lock() == false ) { iSocket->close() ; return ; } iSocket->setLocalCertificate(iModel.nodeModel().nodeCert()); iSocket->setPrivateKey(iModel.nodeModel().nodeKey()); iModel.unlock() ; iSocket->startServerEncryption(); } else { LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"iSocket->setSocketDescriptor failed?????") ; iSocket->close() ; return ; } iSocket->setSocketOption(QAbstractSocket::LowDelayOption,1) ; // immediate send if ( iSocket->waitForEncrypted(10*1000) == false ) { LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"socket was not encrypted in 10 seconds -> out") ; iSocket->abort() ; return ; } iPeerAddress = iSocket->peerAddress() ; if ( iPeerAddress == iSocket->localAddress() ) { QLOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) + "Connected to self, addr = " + iSocket->peerAddress().toString()) ; // oh great, broadcast? // connected to self iNeedsToRun = false ; iSocket->close() ; return ; } // ok, obviously we can receive, mark that down for future // advertisement: iModel.lock() ; iController.getNode().setIpAddrWithChecks(iSocket->localAddress()) ; iModel.unlock() ; // ok, we came here, we have SSL handshake done ; lets // instantiate some data structures.. Hash fingerPrintOfPeer (iSocket->peerCertificate()) ; // it also may be so that connection was attempted to a particular // node - is it possible that we managed to connect other node // than that? if ( iFpOfNodeWeTrying != KNullHash ) { // if other than null hash if ( iFpOfNodeWeTrying != fingerPrintOfPeer) { iSocket->disconnectFromHost() ; iNeedsToRun = false ; // this causes readloop to return immediately } } if ( iController.getNode().nodeFingerPrint() == fingerPrintOfPeer ) { // damn, connected to self.. emit blackListNetworkAddr(iSocket->peerAddress()) ; if ( iSocketIsIncoming == false ) { emit blackListNetworkAddr(iAddrToConnect) ; } iSocket->disconnectFromHost() ; iNeedsToRun = false ; // this causes readloop to return immediately LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Connection::run incoming connected to self") ; } iNodeOfConnectedPeer= new Node(fingerPrintOfPeer, -1) ; // lets here do so that lets not frobnicate any instance // variables ; let the iSocket be only one and that in // turn will be frobnicated only from here. // if we need to send something, we ask datamodel for // stuff to send, take it into local variable here // and do our sending. this way we can manage with // single mutex in model and things will be in sync. readLoop() ; iModel.lock() ; iConnectionState = Connection::Closing ; iModel.connectionStateChanged(Connection::Closing, this) ; iModel.unlock() ; if ( iNeedsToRun == false && iSocket && iSocket->state() == QAbstractSocket::ConnectedState ) { iSocket->close() ; } iSocket->waitForDisconnected(10*1000) ; LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Connection::run(incoming) out") ; } void Connection::socketReady() { LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Connection::socketReady") ; iModel.lock() ; iConnectionState = Open ; iModel.connectionStateChanged(iConnectionState, this) ; iModel.unlock() ; } void Connection::runForOutgoingConnections () { LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Connection::runForOutgoingConnections in") ; iModel.lock() ; iModel.connectionStateChanged(Connection::Initial , this) ; iModel.unlock() ; QSslSocket sock ; iSocket = &sock ; connect(iSocket, SIGNAL(encrypted()), this, SLOT(socketReady())); // the idea here with model.lock is that // this class instance here is owned by datamodel // and datamodel may frobnicate our internals so // if we touch any part of this class that is somehow // visible to outside, we must first lock(), then // release(). Frobnication of private parts that // are guaranteed to not have a get()ter method // or anything should be ok, and of course the // automatic variables. if ( iModel.lock() == false ) { return ; } iSocket->setSocketOption(QAbstractSocket::LowDelayOption,1) ; // immediate send iSocket->setLocalCertificate(iModel.nodeModel().nodeCert()); iSocket->setPrivateKey(iModel.nodeModel().nodeKey()); iModel.unlock() ; iSocket->setPeerVerifyMode(QSslSocket::QueryPeer) ; QLOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Connecting to " + iAddrToConnect.toString() + " port " + QString::number(iPortToConnect) ) ; iSocket->connectToHostEncrypted(iAddrToConnect.toString(), iPortToConnect); if(!iSocket->waitForEncrypted(10*1000)) { LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"connectToHostEncrypted failed") ; iSocket->abort() ; return ; } if ( iSocket->peerAddress() == iSocket->localAddress() ) { QLOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Connected to self, addr = " + iSocket->peerAddress().toString()) ; // oh great, broadcast? // connected to self iNeedsToRun = false ; iSocket->close() ; return ; } Hash fingerPrintOfPeer (iSocket->peerCertificate()) ; // it also may be so that connection was attempted to a particular // node - is it possible that we managed to connect other node // than that? if ( iFpOfNodeWeTrying != KNullHash ) { // if other than null hash if ( iFpOfNodeWeTrying != fingerPrintOfPeer ) { iSocket->abort() ; iNeedsToRun = false ; // this causes readloop to return immediately } } if ( iController.getNode().nodeFingerPrint() == fingerPrintOfPeer ) { // damn, connected to self.. emit blackListNetworkAddr(iSocket->peerAddress()) ; if ( iSocketIsIncoming == false ) { emit blackListNetworkAddr(iAddrToConnect) ; } iSocket->disconnectFromHost() ; iNeedsToRun = false ; // this causes readloop to return immediately LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Connection::run outgoing connected to self") ; } iNodeOfConnectedPeer= new Node(fingerPrintOfPeer, -1) ; // ok, we came here, we have SSL handshake done ; lets // instantiate some data structures.. iNodeOfConnectedPeer= new Node(Hash(fingerPrintOfPeer), -1) ; // we just managed to connect, mark that thing down for // future advertisement iModel.lock() ; iNodeOfConnectedPeer->setCanReceiveIncoming(true) ; iController.getNode().setIpAddrWithChecks(iSocket->localAddress()) ; iModel.unlock() ; readLoop() ; if ( iNeedsToRun == false && iSocket && iSocket->state() == QAbstractSocket::ConnectedState ) { iSocket->close() ; } if ( iNeedsToRun && iSocket ) { iSocket->waitForDisconnected(30*1000) ; } iSocket = NULL ; LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Connection::run (outgoing )out") ; } // this is called from run() method when there is data available void Connection::performRead() { if ( iBytesExpectedInPacketBeingRead == 0 ) { // we're not reading a packet yet, read packet quint32 bytesExpectedNetworkByteOrder = 0 ; if ( iSocket->read((char *)&bytesExpectedNetworkByteOrder, sizeof(quint32)) != sizeof(quint32)) { iNeedsToRun = false ; iModel.lock() ; iModel.connectionStateChanged(Connection::Closing, this) ; iModel.unlock() ; iSocket->abort() ; return ; } else { iBytesIn += sizeof(quint32) ; } iBytesExpectedInPacketBeingRead = ntohl ( bytesExpectedNetworkByteOrder); QLOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Connection::performRead expecting bytes= "+ QString::number( iBytesExpectedInPacketBeingRead)) ; } quint64 bytesAvail = 0 ; while ( iBytesExpectedInPacketBeingRead > 0 && iBytesExpectedInPacketBeingRead > (quint64)(iBytesRead->size()) && (bytesAvail = iSocket->bytesAvailable()) > 0 ) { if ( bytesAvail > iBytesExpectedInPacketBeingRead ) { bytesAvail = iBytesExpectedInPacketBeingRead; } QByteArray bytesReadThisTime ( iSocket->read(bytesAvail) ) ; if ( bytesReadThisTime.size() > 0 ) { iBytesRead->append(bytesReadThisTime) ; iBytesIn += bytesReadThisTime.size() ; iInvocationsSinceLastByteReceived = 0 ; // seems like we received something: iTimeOfLastActivity = QDateTime::currentDateTimeUtc().toTime_t() ; } } if ( iBytesExpectedInPacketBeingRead == (quint64)(iBytesRead->size()) ) { // if we came here, we have one total packet.. if ( iObserver.dataReceived(*iBytesRead, *this) == false ) { QLOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"### Closing due to unparseable data, peer = " + peerAddress().toString()) ; iSocket->disconnectFromHost() ; iNeedsToRun = false ; } iBytesExpectedInPacketBeingRead = 0 ; iBytesRead->clear() ; iInvocationsSinceLastByteReceived = 0 ; iNumberOfPacketsReceived++ ; } } bool Connection::Ipv6AddressesEqual(const Q_IPV6ADDR& aAddr1, const Q_IPV6ADDR& aAddr2) { for ( int i = 0 ; i < 16 ; i++ ) { if ( aAddr1.c[i] != aAddr2.c[i]) return false ; } return true ; } void Connection::readLoop() { iObserver.connectionReady(this) ; // before starting to read, inform the observer QByteArray *itemToSend = NULL ; while ( iNeedsToRun && iSocket->state() == QAbstractSocket::ConnectedState ) { if ( iSocket->waitForReadyRead(500) == true ) { if ( iNeedsToRun ) { performRead() ; } } else { QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents) ; iModel.lock() ; checkForBucketFill() ; iModel.unlock() ; // we came here because we have no bytes to read from // sock. first check if we do have read operation pending if ( iBytesExpectedInPacketBeingRead > 0 && iBytesExpectedInPacketBeingRead > (quint64)(iBytesRead->size())) { iInvocationsSinceLastByteReceived++ ; // gets incremented every 500ms } if ( iInvocationsSinceLastByteReceived > 1000 ) { // we have had read operation pending for 500 seconds and // not a single byte has got through -> give up if ( iNeedsToRun ) { iModel.lock() ; LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Read operation was pending too long, closing") ; iConnectionState = Connection::Closing ; iModel.connectionStateChanged(Connection::Closing, this) ; iModel.unlock() ; iSocket->abort() ; iNeedsToRun = false ; LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Giving up pending read operation after 500 seconds"); } break ; } // ok, then try write operation, if applicable if ( iNeedsToRun ) { iModel.lock() ; itemToSend = iModel.nodeModel().getNextItemToSend(*this) ; iModel.unlock() ; } // now we own itemToSend if ( itemToSend != NULL && iSocket != NULL && iSocket->state() == QAbstractSocket::ConnectedState ) { quint32 bytesInPayload = itemToSend->size() ; quint32 bytesInPayloadNetworkOrder = htonl(bytesInPayload) ; QByteArray messageSizeBytes ; messageSizeBytes.append((const char *)&bytesInPayloadNetworkOrder, sizeof(quint32)) ; if ( iSocket->write(messageSizeBytes) != sizeof(quint32) ) { LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Write operation did not succeed, closing..") ; if ( iNeedsToRun ) { iModel.lock() ; iConnectionState = Connection::Closing ; iModel.connectionStateChanged(Connection::Closing, this) ; iModel.unlock() ; } iSocket->abort() ; iNeedsToRun = false ; } else { iBytesOut += sizeof(quint32) ; } if ( iSocket->write(*itemToSend) != itemToSend->size() ) { LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Write operation did not succeed, closing..") ; if ( iNeedsToRun ) { iModel.lock() ; iConnectionState = Connection::Closing ; iModel.connectionStateChanged(Connection::Closing, this) ; iModel.unlock() ; } iSocket->abort() ; iNeedsToRun = false ; } else { iBytesOut += itemToSend->size() ; } // ok ; how long to wait for write. // very slow network here. have 100 connected clients. // say, upload rate is 20kb/s, divided by 100 clients // we get 204 bytes per sec. .. but at least 30 seconds. if ( iSocket->waitForBytesWritten(((itemToSend->size() / 204) * 1000) + (30 * 1000)) == false ) { LOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Write wait operation did not succeed, closing..") ; if ( iNeedsToRun ) { iModel.lock() ; iConnectionState = Connection::Closing ; iModel.connectionStateChanged(Connection::Closing, this) ; iModel.unlock() ; } iSocket->abort() ; iNeedsToRun = false ; } delete itemToSend ; itemToSend = NULL ; // seems like we sent something: iTimeOfLastActivity = QDateTime::currentDateTimeUtc().toTime_t() ; } } } if ( iNeedsToRun && iSocket ) { QLOG_STR(QString("0x%1 ").arg((qulonglong)this, 8) +"Readloop out, addr = " + peerAddress().toString()) ; } } // reason for this implementation here is that when connection // is about to get deleted, there has been SIGSEGV's in calls // iSocket->peerAddress() ; indication of a locking problem // or similar, the socket is already partly torn down. // have the peer address here as normal variable and avoid the // dangerous call: QHostAddress Connection::peerAddress() const { return iPeerAddress ; } const Hash& Connection::fingerPrintOfNodeAttempted() { return iFpOfNodeWeTrying ; } bool Connection::isInPrivateAddrSpace() const { bool retval = false ; if ( iSocket ) { QHostAddress peer ( iSocket->peerAddress() ) ; if ( peer.protocol() == QAbstractSocket::IPv4Protocol ) { if ( peer.isInSubnet(normalNats1) || peer.isInSubnet(normalNats2) || peer.isInSubnet(normalNats3) || peer.isInSubnet(rfc6598)) retval = true ; } } return retval ; } void Connection::checkForBucketFill() { if ( iTimeOfBucketFill+15 < QDateTime::currentDateTimeUtc().toTime_t() && iNextProtocolItemToSend.size() == 0 && iSendQueue.size() == 0 && iSocket && iNumberOfPacketsReceived > 1 && iNodeOfConnectedPeer ) { // we've been connected for 15 seconds now and there is nothing in queue. switch ( iStageOfBucketFill ) { case OwnNodeGreeting: // initial stage. first queue possible private messages iEndOfBucket = iModel.nodeModel().bucketEndHash(iNodeOfConnectedPeer->nodeFingerPrint()) ; // here put private messages into queue iModel.privateMessageModel().fillBucket(iSendQueue, iNodeOfConnectedPeer->nodeFingerPrint(), iEndOfBucket, iNodeOfConnectedPeer->lastMutualConnectTime(), iNodeOfConnectedPeer->nodeFingerPrint() ) ; iStageOfBucketFill = PrivateMessage ; // and set next stage break ; case PrivateMessage: // Next stage after private messages iModel.profileModel().fillBucket(iSendQueue, iNodeOfConnectedPeer->nodeFingerPrint(), iEndOfBucket, iNodeOfConnectedPeer->lastMutualConnectTime(), iNodeOfConnectedPeer->nodeFingerPrint() ) ; iStageOfBucketFill = UserProfile; // and set next stage break ; case UserProfile: // Next stage after user profile changes. Note that // last mutual connect time is set in protocol parser // as a side-effect of parsing the initial node greeting iModel.classifiedAdsModel().fillBucket(iSendQueue, iNodeOfConnectedPeer->nodeFingerPrint(), iEndOfBucket, iNodeOfConnectedPeer->lastMutualConnectTime(), iNodeOfConnectedPeer->nodeFingerPrint() ) ; iStageOfBucketFill = ClassifiedAd; // and set next stage break ; case ClassifiedAd: // Next stage after classified ads iModel.binaryFileModel().fillBucket(iSendQueue, iNodeOfConnectedPeer->nodeFingerPrint(), iEndOfBucket, iNodeOfConnectedPeer->lastMutualConnectTime(), iNodeOfConnectedPeer->nodeFingerPrint()) ; iStageOfBucketFill = BinaryBlob; // and set next stage break ; case BinaryBlob: // Next stage after binary blob iModel.profileCommentModel().fillBucket(iSendQueue, iNodeOfConnectedPeer->nodeFingerPrint(), iEndOfBucket, iNodeOfConnectedPeer->lastMutualConnectTime(), iNodeOfConnectedPeer->nodeFingerPrint()) ; iStageOfBucketFill = UserProfileComment; // and set next stage break ; case UserProfileComment: // we came here, we've sent profiles, ads and binary files profile comments and // the queue is empty: set mutual connect time of the node // so we won't send the same stuff again next time: iNodeOfConnectedPeer->setLastMutualConnectTime(QDateTime::currentDateTimeUtc().toTime_t()) ; iModel.nodeModel().updateNodeLastMutualConnectTimeInDb(iNodeOfConnectedPeer->nodeFingerPrint(), iNodeOfConnectedPeer->lastMutualConnectTime()) ; iStageOfBucketFill = ClassifiedAd2NdAddr; // and set final stage break ; case ClassifiedAd2NdAddr: // this is our final stage if ( ( iTimeOfBucketFill + (60*iMinutesBetweenBucketFill )) < QDateTime::currentDateTimeUtc().toTime_t() ) { // iMinutesBetweenBucketFill minutes passed since last bucket fill: re-do iTimeOfBucketFill = QDateTime::currentDateTimeUtc().toTime_t() ; iStageOfBucketFill = OwnNodeGreeting; } break ; default: // finally do no thing break ; } } } Hash Connection::getPeerHash() const { if ( iConnectionState == Connection::Open && iSocket ) { return Hash( iSocket->peerCertificate() ) ; } else { // this may be KNullHash but for some outgoing connections // this is anyway known already when socket is not // yet in connected state. return iFpOfNodeWeTrying ; } } bool Connection::forciblyCloseSocket() { iNeedsToRun = false ; iFpOfNodeWeTrying = KNullHash ; return true ; } classified-ads-0.09/net/connection.h000066400000000000000000000306711260620453500174250ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CONNECTION_H #define CONNECTION_H #include // for SocketError #include // for ipv6 addr type #include "protocol.h" #include "node.h" class QSslSocket ; class QByteArray ; class MController ; class Model ; /** * @brief Class that represents a network connection. * * At runtime * we'll have 1-n of these. This is a base-class that allows us * to do some operations like "send", "receive" without needing * to know if we're having a socket conn or some other kind. */ class Connection : public QObject { Q_OBJECT public: /** Enumeration of the connection states */ enum ConnectionState { Initial, /**< SYN packet sent */ Open, /**< SSL handshake was success, peerCert is avail */ Closing, /**< Disconnection has been asked */ Error /**< Connection itself reports an error */ }; /** * @brief Interface for receiving network traffic. * * class that must be implemented by animals that wish to receive * data from connection */ class ConnectionObserver { public: /** method for sending data received */ virtual bool dataReceived(const QByteArray& aData, Connection& aConnection ) = 0 ; /** method for communicating fact that connection ends */ virtual void connectionClosed(Connection *aDeletee) = 0 ; /** method for communicating fact that connection is open for * business */ virtual void connectionReady(Connection *aBusinessEntity) = 0 ; } ; /** * Constructor to use when incoming connection */ Connection(int aSocketDescriptor, ConnectionObserver& aObserver, Model& aModel, MController& aController); /** * Constructor. Class will initiate connetion to * given addr. * @param aAddr network address to try * @param aPort port in said addr * @param aObserver class wishing to receive status updates about this * connection * @param aModel datamodel reference * @param aController application controller reference * @param aFpOfNodeToTry sometimes we need to connect some particular * node ; hash of the attempted host may be given here. It is * not used by connection itself but the observers may query it * in case of failed connection of the connection was * attempted to some particular node. In particular this logic * is used by publishing engine that needs to know not only * successful connections but also failed ones and for failed * ones we don't get node FP via normal mechanism (node greeting) */ Connection(const QHostAddress& aAddr, const int aPort, ConnectionObserver &aObserver, Model& aModel, MController& aController, const Hash& aFpOfNodeToTry ) ; /** * Method for tearing down a connection */ ~Connection() ; /** * helper method for comparing ipv6 addresses */ static bool Ipv6AddressesEqual(const Q_IPV6ADDR& aAddr1, const Q_IPV6ADDR& aAddr2) ; /** * getter method for node of this connection. value * may be null if connection is still in early stage * so non-nulliness must be tested * @param none * @return node of connection or NULL if handshake still pending. * ownership is NOT transferred, it is not ok to delete * the returned pointer. */ Node* node() const { return iNodeOfConnectedPeer ; } /** * for testing purposes only: this should never be called * in production setup. this does get called from test-code */ void setNode(Node* aNode) { iNodeOfConnectedPeer = aNode ; } /** * method for getting peer addr */ QHostAddress peerAddress() const ; /** * method for getting the hash this connection was * trying to attempt .. if connection was originally * asked to be to some particular node, this will * return hash of the node ; if connection was to * no particular node, a zero hash will be returned */ const Hash& fingerPrintOfNodeAttempted() ; /** * getter method for connection state */ ConnectionState connectionState() const { return iConnectionState; } /** * Method for getting the bucket fill stage. See explanation * at documentation of the variable @ref Connection::iStageOfBucketFill * for idea how this should be used */ ProtocolItemType stageOfBucketFill() const { return iStageOfBucketFill ; } /** * Method for setting bucket fill stage. See also @ref stageOfBucketFill. */ void setStageOfBucketFill(ProtocolItemType aStage) { iStageOfBucketFill = aStage ; } /** * method for getting information if connection is inbound */ bool isInbound() const { return iSocketIsIncoming ; } ; /** * method for getting open time of connection */ time_t getOpenTime() const { return iSocketOpenTime ; } ; /** * method for getting peering node fingerprint. * if connection is not yet open, returns KNullHash */ Hash getPeerHash() const ; /** * returs data transfer amount */ unsigned long bytesIn() const { return iBytesIn ; } /** * returns data transfer amount */ unsigned long bytesOut() const { return iBytesOut ; } /** * Forcibly closes socket. * @return true if socket was still allocated and its "abort" method * got called. */ bool forciblyCloseSocket() ; public slots: void socketReady() ; /** * this class is a kind of a thread, we need to have run ; note * that right now QThread is not inherited but * our worker-method is still named run, called * by thread when it is started ( from networklistener or * networkconnectorengine) */ void run() ; /** * method for checking if connection is in private (non-routable) ipv4-addr * space like 192.168.. network */ bool isInPrivateAddrSpace() const ; signals: void error(QTcpSocket::SocketError socketError); void finished() ; void blackListNetworkAddr(QHostAddress aAddr) ; protected: void performRead() ; void readLoop() ; /**< called from run() */ /** * 2 versions of run, called from run(),first for incoming connections */ void runForIncomingConnections() ; /** * 2 versions of run, called from run(),then for outgoing connections */ void runForOutgoingConnections() ; /** * method for keeping buckets filled. this checks if we have * content that according to its network addr should belong * to that peer ; and then adds it to send queue */ void checkForBucketFill() ; public:// these are public because datamodel access these, via lock() /** * many things going on inside classified ads are about * the connected node ; when node is disconnected, we may * forget about many things that may have been in progress. * therefore it may make sense to store also the queue * of things to send in here ; when connection goes away, * so goes the queue and no further processing needed. * * The order of things in this list is significant, * the first item to be append()ed should be sent first. */ QList iSendQueue ; /** * This is the next item to send. This does not include the length. * .. as protocol items over socket are sent so that length goes * first, as uint32, followed by that many bytes. This QByteArray * contains the bytes, not the uint32 that goes first. Reason is * that this is wanted this way is that the class doing the * sending to be aware of the length, forcing this way it to * calculate it itself. */ QList iNextProtocolItemToSend ; public: bool iNeedsToRun ; /**< if set to false, connection closes itself */ time_t iTimeOfLastActivity ; /**< last time there was any traffic with peer */ unsigned iNumberOfPacketsReceived ; /**< nr of received complete protocol packets*/ /** * how often peers are queried for new content to send/receive ; this is also * max permitted lenght for data transmission inactivity ; nodes that have been * idle longer than this are considered "dead" */ static const unsigned iMinutesBetweenBucketFill = 30 ; protected: // these are not public ConnectionState iConnectionState /**< closed/open etc. */ ; /** received data is sent to @ref ConnectionObserver */ ConnectionObserver &iObserver ; /** socket for data transfer: the actual socket is owned by * stack frame of the thread so even tough we have * this pointer here, it may not be deleted */ QSslSocket *iSocket ; Model& iModel ; /**< datamodel reference */ /** when starting to receive packet from peer, length is stored here */ quint32 iBytesExpectedInPacketBeingRead ; /** when reading packet from peer, this contains bytes being read */ QByteArray *iBytesRead ; /** * this variable here is used as counter during pending read * of data packet, zeroed every time bytes are received ; * if it reaches high number (a sign of stalled download) do * drop connection to that peer */ int iInvocationsSinceLastByteReceived; /** * node-data-structure of the connected node */ Node *iNodeOfConnectedPeer ; /** network address to connect, if connection is outgoing connection */ QHostAddress iAddrToConnect ; /** port to connect, if connection is outgoing connection */ const int iPortToConnect ; /** descriptor of already-connected socket if connection is incoming-connection */ const int iSocketDescriptor ; /** true if incoming socket */ const bool iSocketIsIncoming ; /** application controller reference */ MController& iController ; /** It may be that connection is asked to specific node, in addition * to being into some known network address. If the node is known, * store the target node fingerprintin here. This is used at least * in wishlist-connections where the connection itself will * signal its open-for-business state when connection to asked * node is ready */ Hash iFpOfNodeWeTrying ; /** * method of handling around network churn is implemented in * several places. .. churn requires us to copy stuff * beloging to NodesAroundHash ( see nodemodel ) to nodes * that are in the same bucket with us. Our concept of bucket * is a bit stretched but there is kind of bucket and we will * send of over new data to nodes that we think belongs * to the bucket of connecting node. * * sending the data happens in several stages, connection itself * stores the stage here. filling the bucket according to * stage then happens in @ref NodeModel::getNextItemToSend method */ ProtocolItemType iStageOfBucketFill ; /** * time of last bucket fill */ quint32 iTimeOfBucketFill ; /** * Where our bucket ends. Our own node fp is the start of the bucket, * here is the end */ Hash iEndOfBucket ; /** time of socket open */ const time_t iSocketOpenTime ; /** transferred data amount */ unsigned long iBytesIn ; /** transferred data amount */ unsigned long iBytesOut ; /** storage for peeraddress */ QHostAddress iPeerAddress ; } ; #endif classified-ads-0.09/net/networkconnectorengine.cpp000066400000000000000000000660021260620453500224100ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifdef WIN32 #define NOMINMAX #include #endif #include "networkconnectorengine.h" #include "../log.h" #include "../controller.h" #include "../datamodel/model.h" #include "node.h" #include "connection.h" #include "networklistener.h" #include #include #ifdef WIN32 #else #include "arpa/inet.h" #endif #include "../datamodel/profilemodel.h" #include "../net/protocol_message_formatter.h" #include // DNS lookups NetworkConnectorEngine::NetworkConnectorEngine(Controller *aController, Model *aModel, Connection::ConnectionObserver& aObserver) : QThread(aController), iNeedsToRun(true), iController(aController), iModel(aModel), iConnectionObserver(aObserver), iBroadCastSocket(NULL), iTimeOfLastBroadCast(0), iTimeOfLastMsgPoll(0), iTimeOfLastMsgPollForProfile (0) { } NetworkConnectorEngine::~NetworkConnectorEngine() { QLOG_STR("NetworkConnectorEngine::~NetworkConnectorEngine in/out") ; } void NetworkConnectorEngine::run() { LOG_STR("NetworkConnectorEngine::run in") ; time_t timeOfLastNodeListUpdate (0) ; int connectedCount = 0 ; // initially must be, later ask datamodel if ( iBroadCastSocket == NULL ) { iBroadCastSocket = new QUdpSocket() ; } while (iNeedsToRun ) { sendBroadCast() ; createConnectionsToNodesStoringPrivateMessages() ; if ( tryServeWishListItem() == false ) { // if there is nothing in wishlist, do "normal procedure" // every 350 seconds if ( timeOfLastNodeListUpdate+50 < QDateTime::currentDateTimeUtc().toTime_t() ) { updateListOfNodesToConnect() ; timeOfLastNodeListUpdate = QDateTime::currentDateTimeUtc().toTime_t() ; } if ( connectedCount < KMaxOpenConnections ) { // so, lets start with list above .. if ( iAddressesInOrderToConnect.size() > 0 ) { MNodeModelProtocolInterface::HostConnectQueueItem connectionItem = iAddressesInOrderToConnect.at(0) ; QHostAddress a = connectionItem.iAddress ; int p = connectionItem.iPort ; spawnNewConnection(a,p,connectionItem.iNodeHash) ; iAddressesInOrderToConnect.removeAt(0) ; } } else { // take a break, we have connections.. } // in the end, query open open connections iModel->lock() ; QList currentConnections = iModel->getConnections() ; connectedCount = currentConnections.size() ; iModel->unlock() ; } // looks like we don't get "deleteLater()" signals processed // without this QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents) ; msleep(800) ; } delete iBroadCastSocket ; iBroadCastSocket = NULL ; LOG_STR("NetworkConnectorEngine::run out") ; } bool NetworkConnectorEngine::tryServeWishListItem() { const bool hasIpv6 = !Connection::Ipv6AddressesEqual(iController->getNode().ipv6Addr(), KNullIpv6Addr) ; iModel->lock() ; Node* n = iModel->nodeModel().nextConnectionWishListItem() ; iModel->unlock() ; if ( n ) { QHostAddress addrOfNode ; if (n->DNSAddr().length() > 0 && performDNSLookup(&addrOfNode, n->DNSAddr(), hasIpv6 )) { addrOfNode.setAddress(n->DNSAddr()) ; } else { if (!Connection::Ipv6AddressesEqual( n->ipv6Addr(), KNullIpv6Addr ) && // try connect only if we ourselves have ipv6: hasIpv6 ) { addrOfNode.setAddress( n->ipv6Addr() ) ; } else if ( n->ipv4Addr() ) { addrOfNode.setAddress( n->ipv4Addr() ) ; } else { // tor addresses? delete n ; LOG_STR("Connection wishlist-item had no ipv4/ipv6/dns addr") ; return false ; } } iModel->lock() ; for ( int i = 0 ; i < iAddressesInOrderToConnect.size() ; i++ ) { MNodeModelProtocolInterface::HostConnectQueueItem addrFromList = iAddressesInOrderToConnect.at(0) ; if (addrFromList.iAddress == addrOfNode ) { // item is already on our list -> discard delete n ; LOG_STR("Connection wishlist-item was already on list..") ; iModel->unlock() ; return false ; } } iModel->unlock() ; spawnNewConnection(addrOfNode, n->port(), n->nodeFingerPrint()) ; delete n ; return true ; } else { return false ; // nothing on wishlist } } void NetworkConnectorEngine::spawnNewConnection(const QHostAddress& aAddr,const int aPort, const Hash& aHashOfNodeToConnect) { NetworkListener *networkListener = iController->networkListener() ; QThread* t = new QThread(); Connection *c = new Connection(aAddr,aPort, *networkListener, // connection observer *iModel, *iController, aHashOfNodeToConnect); // as "NULL" was passed as parent to new connection, someone // (now datamodel destructor) needs to clean away the open // outgoing connections // datamodel is responsible for deleting outgoing connections, // with special connection state that incoming connections in turn // do not need use iModel->lock() ; // here we have a bug .. if IP addr changes, we'll advertise // our old address for the first peer to connect .. would // need to delay construction of node greeting to the moment // when we're already in connected state and can check // for local address of the socket. iModel->addOpenNetworkConnection(c) ; iModel->unlock() ; connect(t, SIGNAL(started()), c, SLOT(run())); connect(c, SIGNAL(finished()), t, SLOT(quit())) ; connect(t, SIGNAL(finished()), t, SLOT(deleteLater())); // after thread is gone, remove the connection too connect(t, SIGNAL(finished()), c, SLOT(deleteLater())); connect(c, SIGNAL(blackListNetworkAddr(QHostAddress ) ), this, SLOT(blackListNetworkAddr(QHostAddress ) ), Qt::QueuedConnection ) ; c->moveToThread(t) ; t->start(); LOG_STR("NetworkConnectorEngine::spawnNewConnection out") ; } void NetworkConnectorEngine::threadIsDeleted() { LOG_STR("NetworkConnectorEngine::threadIsDeleted") ; } // // this method decides which nodes we actually connect. // void NetworkConnectorEngine::updateListOfNodesToConnect() { iModel->lock() ; const bool hasIpv6 = !Connection::Ipv6AddressesEqual(iController->getNode().ipv6Addr(), KNullIpv6Addr) ; QList* nodeListFromModel = NULL ; iAddressesInOrderToConnect.clear() ; // first check that nodes around us in hash-ring are connected // on both sides. nodeListFromModel = iModel->nodeModel().getNodesBeforeHash (iController->getNode().nodeFingerPrint(), 5) ; // from above list prune away self and those nodes already connected if ( pruneConnectionProspectList(nodeListFromModel) == false && iModel->getConnections().size() > ( KMaxOpenConnections/2 ) ) { // we did not have connection to neighbor but we had plenty // of connections -> kick one out iModel->nodeModel().closeOldestInactiveConnection() ; } // add remaining addresses to list.. for ( int i = nodeListFromModel->size()-1 ; i>= 0 ; i-- ) { // prefer DNS name over other options, as this is something // that the node operator has manually set ; lets trust the operator if ( nodeListFromModel->value(i)->DNSAddr().length() > 0 ) { QHostAddress a ; if ( performDNSLookup(&a, nodeListFromModel->value(i)->DNSAddr(), hasIpv6 ) ) { MNodeModelProtocolInterface::HostConnectQueueItem p ; p.iAddress = a ; p.iPort = nodeListFromModel->value(i)->port() ; p.iNodeHash = nodeListFromModel->value(i)->nodeFingerPrint() ; if ( !iAddressesInOrderToConnect.contains(p) ) { iAddressesInOrderToConnect.append(p) ; QLOG_STR("Appending addr to connect #3 " + a.toString()) ; } } } else { if ( !Connection::Ipv6AddressesEqual(nodeListFromModel->value(i)->ipv6Addr(), KNullIpv6Addr) && hasIpv6 ) { // both we and the node have ipv6 -> use that QHostAddress a(nodeListFromModel->value(i)->ipv6Addr()) ; MNodeModelProtocolInterface::HostConnectQueueItem p ; p.iAddress = a ; p.iPort = nodeListFromModel->value(i)->port() ; p.iNodeHash = nodeListFromModel->value(i)->nodeFingerPrint() ; if ( !iAddressesInOrderToConnect.contains(p) ) { iAddressesInOrderToConnect.append(p) ; QLOG_STR("Appending addr to connect #1 " + a.toString()) ; } } else { // suppose ipv4 always.. if ( nodeListFromModel->value(i)->ipv4Addr() ) { QHostAddress a(nodeListFromModel->value(i)->ipv4Addr()) ; MNodeModelProtocolInterface::HostConnectQueueItem p ; p.iAddress = a ; p.iPort = nodeListFromModel->value(i)->port() ; p.iNodeHash = nodeListFromModel->value(i)->nodeFingerPrint() ; if ( !iAddressesInOrderToConnect.contains(p) ) { iAddressesInOrderToConnect.append(p) ; QLOG_STR("Appending addr to connect #2 " + a.toString()) ; } } } } // end of "had no DNS name" } for ( int i = nodeListFromModel->size()-1 ; i>= 0 ; i-- ) { delete nodeListFromModel->value(i) ; nodeListFromModel->removeAt(i) ; } delete nodeListFromModel ; nodeListFromModel = NULL ; // then do the same for ring-forward-connections nodeListFromModel = iModel->nodeModel().getNodesAfterHash (iController->getNode().nodeFingerPrint(), 5) ; // from above list prune away self and those nodes already connected if ( pruneConnectionProspectList(nodeListFromModel) == false && iModel->getConnections().size() > ( KMaxOpenConnections/2 ) ) { // we did not have connection to neighbor but we had plenty // of connections -> kick one out iModel->nodeModel().closeOldestInactiveConnection() ; } // add remaining addresses to list.. for ( int i = nodeListFromModel->size()-1 ; i>= 0 ; i-- ) { if ( !Connection::Ipv6AddressesEqual(nodeListFromModel->value(i)->ipv6Addr(), KNullIpv6Addr) && hasIpv6 ) { // both we and the node have ipv6 -> use that QHostAddress a(nodeListFromModel->value(i)->ipv6Addr()) ; MNodeModelProtocolInterface::HostConnectQueueItem p ; p.iAddress = a ; p.iPort = nodeListFromModel->value(i)->port() ; p.iNodeHash = nodeListFromModel->value(i)->nodeFingerPrint() ; if ( !iAddressesInOrderToConnect.contains(p) ) { iAddressesInOrderToConnect.append(p) ; QLOG_STR("Appending addr to connect #3 " + a.toString()) ; } } else { // suppose ipv4 always.. if ( nodeListFromModel->value(i)->ipv4Addr() ) { QHostAddress a(nodeListFromModel->value(i)->ipv4Addr()) ; MNodeModelProtocolInterface::HostConnectQueueItem p ; p.iAddress = a ; p.iPort = nodeListFromModel->value(i)->port() ; p.iNodeHash = nodeListFromModel->value(i)->nodeFingerPrint() ; if ( !iAddressesInOrderToConnect.contains(p) ) { iAddressesInOrderToConnect.append(p) ; QLOG_STR("Appending addr to connect #4 " + a.toString()) ; } } } } for ( int i = nodeListFromModel->size()-1 ; i>= 0 ; i-- ) { delete nodeListFromModel->value(i) ; nodeListFromModel->removeAt(i) ; } delete nodeListFromModel ; nodeListFromModel = NULL ; QList ipAddrList = QNetworkInterface::allAddresses() ; // then get hot addresses .. QList hotaddresses = iModel->nodeModel().getHotAddresses() ; for ( int i = hotaddresses.size()-1 ; i >= 0 ; i-- ) { if ( iAddressesInOrderToConnect.contains(hotaddresses[i]) ) { // was already } else { // check that node is not already connected bool found = false ; Connection* c = NULL ; for ( int j = iModel->getConnections().size()-1 ; j >= 0 ; j-- ) { // and don't connect to already-connected nodes c = iModel->getConnections().value(j) ; if ( c->peerAddress() == hotaddresses.value(i).iAddress ) { found = true ; LOG_STR2("Pruning already connected hot addr index %d", i) ; break ; } else { QLOG_STR("Was not: " + hotaddresses.value(i).iAddress.toString() + " equal to " + c->peerAddress().toString() ) ; } } // check again that our own addr is not among hot addresses: for ( int k = 0 ; k < ipAddrList.size() ; k++ ) { QHostAddress a = ipAddrList[k] ; if ( hotaddresses.value(i).iAddress == a ) { found = true ; QLOG_STR("Pruned from hotlist own network addr " + a.toString()) ; break; } } if ( !found ) { iAddressesInOrderToConnect.append(hotaddresses.value(i)) ; QLOG_STR("Appending addr to connect #5 " + hotaddresses.value(i).iAddress.toString()) ; } } } iModel->unlock() ; } bool NetworkConnectorEngine::pruneConnectionProspectList(QList* aListToPrune ) const { bool retval = false ; const Node* nodeOfConnection = NULL ; QList ipAddrList = QNetworkInterface::allAddresses() ; for ( int i = aListToPrune->size()-1 ; i >= 0 ; i-- ) { // if our own node got included, remove that from list bool prunedAlready = false ; if ( iController->getNode().nodeFingerPrint() == aListToPrune->value(i)->nodeFingerPrint() ) { delete aListToPrune->value(i) ; aListToPrune->removeAt(i) ; } else { // and remove all nodes already connected for ( int j = iModel->getConnections().size()-1 ; j >= 0 ; j-- ) { // and don't connect to already-connected nodes nodeOfConnection = iModel->getConnections().value(j)->node() ; if ( nodeOfConnection && ( nodeOfConnection->nodeFingerPrint() == aListToPrune->value(i)->nodeFingerPrint() ) ) { delete aListToPrune->value(i) ; aListToPrune->removeAt(i) ; retval = true ; prunedAlready= true ; break; // out from j-loop because i to compare against // is not any more } } // and check that no our own addresses are at list: for ( int k = 0 ; !prunedAlready && k < ipAddrList.size() ; k++ ) { QHostAddress a = ipAddrList[k] ; if ( ( a.protocol() == QAbstractSocket::IPv4Protocol && aListToPrune->value(i)->ipv4Addr() > 0 && QHostAddress(aListToPrune->value(i)->ipv4Addr()) == a ) || ( ! Connection::Ipv6AddressesEqual(KNullIpv6Addr, aListToPrune->value(i)->ipv6Addr()) && a.protocol() == QAbstractSocket::IPv6Protocol && QHostAddress(aListToPrune->value(i)->ipv6Addr()) == a ) ) { delete aListToPrune->value(i) ; aListToPrune->removeAt(i) ; retval = true ; QLOG_STR("Pruned own network addr " + a.toString()) ; break; } } } } // check blacklist too: bool prunedAlready = false ; for ( int i = aListToPrune->size()-1 ; i >= 0 ; i-- ) { prunedAlready = false ; if ( aListToPrune->value(i)->ipv4Addr() ) { QHostAddress ip4(aListToPrune->value(i)->ipv4Addr()) ; if ( iAddressBlacklist.contains(ip4) ) { delete aListToPrune->value(i) ; aListToPrune->removeAt(i) ; prunedAlready = true ; QLOG_STR("Pruned due to blacklist " + ip4.toString()) ; } } if ( prunedAlready == false && ( ! Connection::Ipv6AddressesEqual(KNullIpv6Addr, aListToPrune->value(i)->ipv6Addr()) ) ) { QHostAddress ip6(aListToPrune->value(i)->ipv6Addr()) ; if ( iAddressBlacklist.contains(ip6) ) { delete aListToPrune->value(i) ; aListToPrune->removeAt(i) ; prunedAlready = true ; QLOG_STR("Pruned due to blacklist " + ip6.toString()) ; } } } return retval ; } void NetworkConnectorEngine::sendBroadCast() { if ( iTimeOfLastBroadCast + 60 < QDateTime::currentDateTimeUtc().toTime_t()) { QByteArray dataToSend ; dataToSend.append('c') ; dataToSend.append('a') ; bool hasIpv6 = !Connection::Ipv6AddressesEqual(iController->getNode().ipv6Addr(), KNullIpv6Addr) ; if ( hasIpv6 ) { dataToSend.append('6') ; } else { dataToSend.append('4') ; } quint32 nodeHash1NetworkBO ( htonl ( iController->getNode().nodeFingerPrint().iHash160bits[0]) ) ; quint32 nodeHash2NetworkBO ( htonl ( iController->getNode().nodeFingerPrint().iHash160bits[1]) ) ; quint32 nodeHash3NetworkBO ( htonl ( iController->getNode().nodeFingerPrint().iHash160bits[2]) ) ; quint32 nodeHash4NetworkBO ( htonl ( iController->getNode().nodeFingerPrint().iHash160bits[3]) ) ; quint32 nodeHash5NetworkBO ( htonl ( iController->getNode().nodeFingerPrint().iHash160bits[4]) ) ; dataToSend.append((const char *)(&nodeHash1NetworkBO), sizeof(quint32) ) ; dataToSend.append((const char *)(&nodeHash2NetworkBO), sizeof(quint32) ) ; dataToSend.append((const char *)(&nodeHash3NetworkBO), sizeof(quint32) ) ; dataToSend.append((const char *)(&nodeHash4NetworkBO), sizeof(quint32) ) ; dataToSend.append((const char *)(&nodeHash5NetworkBO), sizeof(quint32) ) ; quint32 portNumber ( iController->getNode().port() ) ; if ( portNumber > 0 ) { quint32 portNumberNetworkBO ( htonl ( portNumber ) ) ; dataToSend.append((const char *)(&portNumberNetworkBO), sizeof(quint32) ) ; if ( hasIpv6 ) { // include also our ipv6-addr in broadcase as in ipv6 // case the sender of the UDP packet at the receiving // end is our link-local addr FE:80:.. and it may be // difficult to connect as network interface must be // specified too .. so , include our advertised addr: for ( int i = 0 ; i < 16 ; i++ ) { dataToSend.append(iController->getNode().ipv6Addr().c[i]) ; } } iTimeOfLastBroadCast = QDateTime::currentDateTimeUtc().toTime_t() ; // hmm, send broadcast only over ipv4. there seems to be // some trouble in binding qudpsocket into ipv6 interface // in the receiving end.. iBroadCastSocket->writeDatagram(dataToSend.data(), dataToSend.size(), QHostAddress::Broadcast, KBroadCastAdvertismentPort); } } } void NetworkConnectorEngine::blackListNetworkAddr(QHostAddress aAddr) { iModel->lock() ; if ( iAddressBlacklist.contains(aAddr) == false ) { iAddressBlacklist.append(aAddr) ; } iModel->unlock() ; } void NetworkConnectorEngine::createConnectionsToNodesStoringPrivateMessages() { if ( iPrivateMessagePollWishList.size() == 0 ) { iProfileToPollPrivateMessages = KNullHash ; // no poll in progress } if ( ( iProfileToPollPrivateMessages == KNullHash && (iTimeOfLastMsgPoll + 60) < QDateTime::currentDateTimeUtc().toTime_t()) || ( iProfileToPollPrivateMessages != KNullHash && (iTimeOfLastMsgPoll + 600) < QDateTime::currentDateTimeUtc().toTime_t() ) ) { LOG_STR2("Checking private msg poll, seconds since last = %u " ,(unsigned)( ( QDateTime::currentDateTimeUtc().toTime_t() - iTimeOfLastMsgPoll))) ; iTimeOfLastMsgPoll = QDateTime::currentDateTimeUtc().toTime_t() ; // in here find a profile that we have private keys for and // that has not had its private messages polled for given // time (say, 15 minutes). when such a profile is found, // initiate connections to nodes supposed to contain private // messages destined to profile. iModel->lock() ; iProfileToPollPrivateMessages = iModel->profileModel().profileWithOldestTimeSinceMsgPoll(&iTimeOfLastMsgPollForProfile) ; if ( iProfileToPollPrivateMessages != KNullHash ) { iPrivateMessagePollWishList.clear() ; QLOG_STR("Polling private messages for " + iProfileToPollPrivateMessages.toString()) ; QList* nodeListFromModel = NULL ; // so try get 5 nodes no older than 60 minutes nodeListFromModel = iModel->nodeModel().getNodesAfterHash (iProfileToPollPrivateMessages, 5, 60) ; // then from that list check nodes that are already connected // and send a query to those nodes if ( nodeListFromModel ) { iPrivateMessagePollWishList.clear() ; for ( int i = nodeListFromModel->size()-1 ; i >= 0 ; i -- ) { if ( iModel->nodeModel().isNodeAlreadyConnected(nodeListFromModel->value(i)->nodeFingerPrint() ) ) { sendPrivateMessagesPoll(nodeListFromModel->value(i)->nodeFingerPrint()) ; } else { // put node into wishlist iPrivateMessagePollWishList << nodeListFromModel->value(i)->nodeFingerPrint() ; iModel->nodeModel().addNodeToConnectionWishList(nodeListFromModel->value(i)->nodeFingerPrint()) ; } delete nodeListFromModel->takeAt(i) ; } delete nodeListFromModel ; nodeListFromModel = NULL ; } } iModel->unlock() ; } } void NetworkConnectorEngine::sendPrivateMessagesPoll(const Hash& aNodeFingerPrint) { if ( iProfileToPollPrivateMessages != KNullHash ) { QByteArray* resultBytes = new QByteArray() ; resultBytes->append(ProtocolMessageFormatter::requestForPrivateMessagesForProfile(iProfileToPollPrivateMessages, iTimeOfLastMsgPollForProfile)) ; iModel->addItemToSend(aNodeFingerPrint, resultBytes) ; QByteArray* resultBytes2 = new QByteArray() ; resultBytes2->append(ProtocolMessageFormatter::requestForProfileComments(iProfileToPollPrivateMessages, iTimeOfLastMsgPollForProfile)) ; iModel->addItemToSend(aNodeFingerPrint, resultBytes2) ; iModel->profileModel().setPrivateMessagePollTimeForProfile(QDateTime::currentDateTimeUtc().toTime_t(),iProfileToPollPrivateMessages) ; } return ; } void NetworkConnectorEngine::nodeConnectionAttemptStatus(Connection::ConnectionState aStatus, const Hash aHashOfAttemptedNode ) { iModel->lock() ; if ( iPrivateMessagePollWishList.contains(aHashOfAttemptedNode) ) { if ( aStatus == Connection::Open ) { sendPrivateMessagesPoll(aHashOfAttemptedNode) ; } iPrivateMessagePollWishList.removeAll(aHashOfAttemptedNode) ; } if ( iPrivateMessagePollWishList.size() == 0 ) { iProfileToPollPrivateMessages = KNullHash ; // this profile now done } iModel->unlock() ; } bool NetworkConnectorEngine::performDNSLookup(QHostAddress* aAddressToBeSet, const QString& aFromDnsName, bool aDoWeHaveIpv6 ) { bool isAddressSet = false ; QHostInfo info = QHostInfo::fromName(aFromDnsName) ; if ( info.error() == QHostInfo::NoError ) { bool isAddressSet ( false ) ; // check for ipv6 addr if we have one if ( aDoWeHaveIpv6 ) { foreach ( const QHostAddress& result, info.addresses() ) { if ( result.protocol() == QAbstractSocket::IPv6Protocol ) { isAddressSet = true ; aAddressToBeSet->setAddress(result.toIPv6Address()) ; break ; } } } if ( isAddressSet == false ) { foreach ( const QHostAddress& result, info.addresses() ) { if ( result.protocol() == QAbstractSocket::IPv4Protocol ) { isAddressSet = true ; aAddressToBeSet->setAddress(result.toIPv4Address()) ; break ; } } } } else { QLOG_STR("DNS lookup failure for " + aFromDnsName ) ; } return isAddressSet ; } classified-ads-0.09/net/networkconnectorengine.h000066400000000000000000000133371260620453500220600ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef NETWORK_CONNECTOR_ENG_H #define NETWORK_CONNECTOR_ENG_H #include #include #include #include #include "connection.h" // for ConnectionObserver #include "../controller.h" #include "../datamodel/model.h" class ProtocolMessageParser ; /** * @brief Class that will initiate 1 or more network connections. * * This may be notified about situation where network connection * might be in order. * * This will also initiate first connection to seed node, * notifying controller if failed. */ class NetworkConnectorEngine : public QThread { Q_OBJECT public: /** * Constructor */ NetworkConnectorEngine(Controller *aController, Model *aModel, Connection::ConnectionObserver &aObserver) ; /** * Destructor */ ~NetworkConnectorEngine() ; /** * this class is a thread, thus run. * * this method has its own execution context so it won't * hurt the UI or the incoming connections. * * this will ask datamodel for nodes to connect and try to * arrange connections to given nodes, some will succeed * and some then will be less successful. */ void run(); public slots: void threadIsDeleted() ; void blackListNetworkAddr(QHostAddress aAddr) ; void nodeConnectionAttemptStatus(Connection::ConnectionState aStatus, const Hash aHashOfAttemptedNode ); signals: void error(QTcpSocket::SocketError socketError); private: /** internal method for starting a new connection */ void spawnNewConnection(const QHostAddress& aAddr, const int aPort, const Hash& aHashOfNodeToConnect) ; /** method for updating list of nodes to connect */ void updateListOfNodesToConnect() ; /** * prune from list self and nodes already connected. * @param aListToPrune is list of nodes that check * @return this will return true if there were at least one node * that was already connected */ bool pruneConnectionProspectList(QList* aListToPrune) const ; /** * method for sending advertisement about node in ip protocl * broadcast packet */ void sendBroadCast() ; /** * Method for checking if there is anything in datamodels * connection wishlist */ bool tryServeWishListItem() ; /** * method for creating connections to nodes that are supposed to * store private messages destined to profiles whose private * keys we have in this node. This is supposed to work in * conjunction with @PrivMessageModel::fillBucket() that * it will then, in turn, send requests to said nodes about * private messages that we're supposed to receive. */ void createConnectionsToNodesStoringPrivateMessages() ; /** * Sends query (poll) about private messages to given node. * Node must be connected. * This method polls not only private messages but also * profile comments - reason for this is simple: they * have the same bucket so as we're already making * commections to nodes storing private messaeges we'll * find the comments from same bucket. * * Naturally this only helps the profile operator as he'll * this way find his own comments ; for the rest of the * comment-reading crowd a separate mechanism needs to be in * place. */ void sendPrivateMessagesPoll(const Hash& aNodeFingerPrint) ; private: // methods: bool performDNSLookup(QHostAddress* aAddressToBeSet, const QString& aFromDnsName, bool aDoWeHaveIpv6) ; public: bool iNeedsToRun ; private: // data Controller *iController ; Model *iModel ; Connection::ConnectionObserver &iConnectionObserver ; QList iAddressesInOrderToConnect ; QUdpSocket* iBroadCastSocket ; time_t iTimeOfLastBroadCast ; /** * this is time when private messages were last polled for any * profile ; this is used for sequencing the polls so that * each profile gets decent and fair polling periods */ time_t iTimeOfLastMsgPoll ; /** * this is timestamp of last message poll for individual * profile ; this is sent to remote nodes and the nodes are * asked to send messages that they've received after * the timestamp presented here */ quint32 iTimeOfLastMsgPollForProfile ; /** * Addresses that we're supposed to not connect. This easily * gets at least addresses of self in a box that has * multiple network addresses (or multiple temporary * ipv6 addresses) */ QList iAddressBlacklist ; Hash iProfileToPollPrivateMessages ; QList iPrivateMessagePollWishList ; } ; #endif classified-ads-0.09/net/networklistener.cpp000066400000000000000000000662201260620453500210570ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifdef WIN32 #define NOMINMAX #include #else #include "arpa/inet.h" #endif #include "networklistener.h" #include "connection.h" #include "../log.h" #include "../mcontroller.h" #include "../datamodel/model.h" #include "protocol_message_parser.h" #include "node.h" #include #include #include #include #include "miniupnpc.h" #include "upnpcommands.h" #ifndef WIN32 // Difficult issue here. Miniupnp and natpmp share some codebase // and a common header "declspec.h" that contains common definitions. // Different linux distributions package these 2 packages sometimes // from same original version, sometimes from different, // sometimes declspec.h is inclduded twice, etc. #if defined(MINIUPNP_LIBSPEC) && !defined(LIBSPEC) #define LIBSPEC MINIUPNP_LIBSPEC #endif // hopefully LIBSPEC is now ok, continue to include natpmp // header. #include "natpmp.h" #endif #include NetworkListener::NetworkListener(MController *aController, Model *aModel) : QTcpServer(aController), iController(aController), iModel(aModel), iBroadCastListener(this), iCanAccept(true), iNetworkSession(NULL) { iParser = new ProtocolMessageParser(*iController,*iModel) ; setMaxPendingConnections(50) ; qRegisterMetaType("Connection::ConnectionState"); // Set Internet Access Point QNetworkConfigurationManager manager; const bool canStartIAP = (manager.capabilities() & QNetworkConfigurationManager::CanStartAndStopInterfaces); // Is there default access point, use it iConnectionConfig = manager.defaultConfiguration(); if (!iConnectionConfig.isValid() || (!canStartIAP && iConnectionConfig.state() != QNetworkConfiguration::Active)) { QLOG_STR("Can't open network access point??") ; } iNetworkSession = new QNetworkSession(iConnectionConfig, this); iNetworkSession->open(); iNetworkSession->waitForOpened(-1); figureOutLocalAddresses() ; connect ( iNetworkSession, SIGNAL(stateChanged ( QNetworkSession::State ) ), this, SLOT(networkStateChanged( QNetworkSession::State ))) ; } NetworkListener::~NetworkListener() { if ( iParser ) { delete iParser ; iParser = NULL ; } } bool NetworkListener::startListen(bool aIpv6) { if ( aIpv6 ) { #if QT_VERSION >= 0x050000 // in qt5.x ::Any means both v4+v6. if (!listen ( QHostAddress::Any, iModel->nodeModel().listenPortOfThisNode() )) { QLOG_STR("Socket listen v6+v4: " + errorString()) ; return false ; } #else // at least in linux qt4 binding to AnyIpv6 gives you also Ipv4. if(!listen ( QHostAddress::AnyIPv6, iModel->nodeModel().listenPortOfThisNode() )) { QLOG_STR("Socket listen v4+v6: " + errorString()) ; return false ; } #endif } else { if(!listen ( QHostAddress::Any, iModel->nodeModel().listenPortOfThisNode() )) { QLOG_STR("Socket listen v4: " + errorString()) ; return false ; } } iBroadCastListener.bind(KBroadCastAdvertismentPort); connect(&iBroadCastListener, SIGNAL(readyRead()), this, SLOT(broadCastReceived())); return true ; } #if QT_VERSION >= 0x050000 void NetworkListener::incomingConnection ( qintptr handle ) { const int aSocketDescriptor ( handle ) ; #else void NetworkListener::incomingConnection ( int aSocketDescriptor ) { #endif LOG_STR2("NetworkListener::incomingConnection desc = %d", aSocketDescriptor); if ( iCanAccept ) { QThread* t = new QThread(); Connection *c = new Connection(aSocketDescriptor, *this, // connection observer, is this *iModel, *iController); iModel->lock() ; // here we have a bug .. if IP addr changes, we'll advertise // our old address for the first peer to connect .. would // need to delay construction of node greeting to the moment // when we're already in connected state and can check // for local address of the socket. iModel->addOpenNetworkConnection(c) ; iModel->unlock() ; connect(t, SIGNAL(started()), c, SLOT(run())); connect(c, SIGNAL(finished()), t, SLOT(quit())) ; connect(t, SIGNAL(finished()), t, SLOT(deleteLater())); // after thread is gone, remove the connection too connect(t, SIGNAL(finished()), c, SLOT(deleteLater())); LOG_STR(QString("0x%1 ").arg((qulonglong)c, 8) +"Signals set for connection (in)") ; c->moveToThread(t) ; t->start(); // as "this" was passed as parent to new connection, note that // libQtCore will delete connections when parent is deleted, e.g. // ~NetworkListener() is hit. Threads seem to be usually running // at that stage but haven't seen SIGSEGV:s at closing, not yet.. // if we managed to get this far, we obviously can receive // connections: iController->getNode().setCanReceiveIncoming(true) ; } else { LOG_STR("Un-handled incoming connection at application close") ; } // looks like we don't get "deleteLater()" signals processed // without this QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents) ; } void NetworkListener::threadIsDeleted() { QLOG_STR("Thread deleted from networklistener (Was connection close)") ; } bool NetworkListener::dataReceived(const QByteArray& aData, Connection& aConnection ) { return iParser->parseMessage(aData,aConnection) ; } void NetworkListener::connectionClosed(Connection *aDeletee) { LOG_STR("NetworkListener::connectionClosed, obtaining lock..") ; iModel->lock() ; Hash hashOfClosedConnection ( aDeletee->fingerPrintOfNodeAttempted() ) ; Node* nodeOfConnection = NULL ; if ( hashOfClosedConnection == KNullHash ) { // connection was made to no particular node. check if node // connection has node in place if ((nodeOfConnection = aDeletee->node())!=NULL) { // note that pointer returned by ->node() is not to be deleted. hashOfClosedConnection = nodeOfConnection->nodeFingerPrint() ; } } iModel->removeOpenNetworkConnection(aDeletee) ; // if we got meaningful hash, emit that: if ( hashOfClosedConnection != KNullHash ) { emit nodeConnectionAttemptStatus(aDeletee->connectionState(), hashOfClosedConnection ) ; } if ( ( aDeletee->connectionState() == Connection::Initial || aDeletee->connectionState() == Connection::Error ) && aDeletee->fingerPrintOfNodeAttempted() != KNullHash ) { iModel->nodeModel().offerNodeToRecentlyFailedList(aDeletee->fingerPrintOfNodeAttempted()) ; } iModel->unlock() ; LOG_STR("NetworkListener::connectionClosed out, releasing lock..") ; } void NetworkListener::connectionReady(Connection *aBusinessEntity) { iModel->lock() ; emit nodeConnectionAttemptStatus(aBusinessEntity->connectionState(), aBusinessEntity->node()->nodeFingerPrint() ) ; LOG_STR("NetworkListener::connectionReady did emit") ; iModel->unlock() ; } void NetworkListener::figureOutLocalAddresses() { bool natAddrSeen = false ; bool globalIpv4AddrSeen = false ; bool globalIpv6AddrSeen = false ; QList ipAddrList = QNetworkInterface::allAddresses() ; for ( int i = 0 ; i < ipAddrList.size() ; i++ ) { if (! ( ipAddrList.at(i) == QHostAddress::LocalHost || ipAddrList.at(i) == QHostAddress::LocalHostIPv6 ) ) { switch ( ipAddrList.at(i).protocol() ) { case QAbstractSocket::IPv4Protocol: { if (iController->getNode().setIpAddrWithChecks(ipAddrList.at(i))) { // was ok addr globalIpv4AddrSeen = true ; } else { // was nat addr natAddrSeen = true ; } } break ; case QAbstractSocket::IPv6Protocol: if ( iController->getNode().setIpAddrWithChecks(ipAddrList.at(i)) ) { globalIpv6AddrSeen = true ; } break ; default: // QAbstractSocket::LU6.2, anyone? break ; } } } // if we did not see ipv6 addr, set it to zero so we don't // accidentally advertise old address if ( !globalIpv6AddrSeen ) { iController->getNode().setIpv6Addr(KNullIpv6Addr) ; } if ( natAddrSeen && !globalIpv4AddrSeen ) { // ok, looks bad. we're behind nat-box. no incoming connections. // suxxors. LOG_STR("Ipv4 nat. Do something") ; { int error = 0; // following preprocessor directive tries to detect // miniupnpc at least version v1.23 (found in ubuntu 14.04) // that has ipv6+error arguments in upnpDiscover #if defined(MINIUPNPC_API_VERSION) || defined(UPNPDISCOVER_MEMORY_ERROR) struct UPNPDev *upnp_dev = upnpDiscover( 2000 , // time to wait (milliseconds) NULL , // multicast interface (or null defaults to 239.255.255.250) NULL , // path to minissdpd socket (or null defaults to /var/run/minissdpd.sock) 0 , // source port to use (or zero defaults to port 1900) 0 , // 0==IPv4, 1==IPv6 &error ); // error condition #else // ancient upnpc in wheezy has no API_VERSION defined // and the api, indeed, is different struct UPNPDev *upnp_dev = upnpDiscover( 2000 , // time to wait (milliseconds) NULL , // multicast interface (or null defaults to 239.255.255.250) NULL , // path to minissdpd socket (or null defaults to /var/run/minissdpd.sock) 0 ); // source port (0=default 1900) #endif if ( error == 0 && upnp_dev != NULL ) { char lan_address[64]; struct UPNPUrls upnp_urls; struct IGDdatas upnp_data; int status = UPNP_GetValidIGD(upnp_dev, &upnp_urls, &upnp_data, lan_address, sizeof(lan_address)); // look up possible "status" values, the number "1" indicates a valid IGD was found QLOG_STR("UPNP_GetValidIGD = " + QString::number(status)) ; if ( status > 0 ) { // get the external (WAN) IP address char wan_address[64] = { 0 } ; int getExternalError = UPNP_GetExternalIPAddress(upnp_urls.controlURL, upnp_data.first.servicetype, wan_address); QLOG_STR("Wan addr: " + QString(wan_address) + " error = " + QString::number(getExternalError)) ; if ( getExternalError == 0 ) { QString externalIpString(wan_address) ; QHostAddress remoteAddr(externalIpString) ; QLOG_STR("Maybe setting wan addr to node: " + remoteAddr.toString() ) ; if ( iController->getNode().setIpAddrWithChecks(remoteAddr) ) { char port_number_str[30] = { 0 } ; sprintf(port_number_str, "%d", iModel->nodeModel().listenPortOfThisNode()) ; QLOG_STR("Calling UPNP_AddPortMapping with port = " + QString(port_number_str)); error = UPNP_AddPortMapping( upnp_urls.controlURL, upnp_data.first.servicetype, port_number_str , // external (WAN) port requested port_number_str , // internal (LAN) port to which packets will be redirected lan_address , // internal (LAN) address to which packets will be redirected "Classified ads", // text description to indicate why or who is responsible for the port mapping "TCP" , // protocol must be either TCP or UDP NULL // remote (peer) host address or nullptr for no restriction #if defined(MINIUPNPC_API_VERSION) || defined(UPNPDISCOVER_MEMORY_ERROR) ,"0" // port map lease duration (in seconds) or zero for "as long as possible" #endif ); // list all port mappings int index = 0; // how many port mappings can you have in large installation? for ( int portmappingcounter = 0 ; portmappingcounter < 1024 ; portmappingcounter++ ) { char map_wan_port [200] = ""; char map_lan_address [200] = ""; char map_lan_port [200] = ""; char map_protocol [200] = ""; char map_description [200] = ""; char map_mapping_enabled [200] = ""; char map_remote_host [200] = ""; char map_lease_duration [200] = ""; // original time, not remaining time :( char index_str[200] = { 0 } ; sprintf(index_str, "%d", index) ; QLOG_STR("Calling UPNP_GetGenericPortMappingEntry with index = " + QString::number(index)) ; error = UPNP_GetGenericPortMappingEntry( upnp_urls.controlURL , upnp_data.first.servicetype , index_str , map_wan_port , map_lan_address , map_lan_port , map_protocol , map_description , map_mapping_enabled , map_remote_host , map_lease_duration ); index++ ; QLOG_STR("UPNP_GetGenericPortMappingEntry error " + QString::number(error)) ; QLOG_STR("map_remote_host = " + QString(map_remote_host)) ; QLOG_STR("map_wan_port = " + QString(map_wan_port)) ; QLOG_STR("map_protocol = " + QString(map_protocol)) ; if ( strncmp(map_wan_port, port_number_str , 5 ) == 0 ) { iController->getNode().setCanReceiveIncoming(true) ; QLOG_STR("Our port forwarding found, getting out..") ; globalIpv4AddrSeen = true ; break ; } if (error) { break; // no more port mappings available } } } else { QLOG_STR("Did not use IP-addr from UPnP, maybe it too was behind nat?") ; } } } freeUPNPDevlist(upnp_dev) ; upnp_dev = NULL ; } } if ( !globalIpv4AddrSeen ) { // following code did not work in WIN32 #ifndef WIN32 // kudos to http://miniupnp.free.fr/libnatpmp.html int r = -1; natpmp_t natpmp; natpmpresp_t response; in_addr_t gateway = 0; int forcegw = 0; int loopCount = 0 ; initnatpmp(&natpmp,forcegw,gateway); sendnewportmappingrequest(&natpmp, NATPMP_PROTOCOL_TCP, iModel->nodeModel().listenPortOfThisNode(), iModel->nodeModel().listenPortOfThisNode(),INT_MAX-1); do { fd_set fds; struct timeval timeout; FD_ZERO(&fds); FD_SET(natpmp.s, &fds); getnatpmprequesttimeout(&natpmp, &timeout); select(FD_SETSIZE, &fds, NULL, NULL, &timeout); r = readnatpmpresponseorretry(&natpmp, &response); } while(r==NATPMP_TRYAGAIN && ++loopCount < 100 ); if(r>=0) { printf("Mapped public port %hu protocol %s to local port %hu " "lifetime %u resp = %d\n", response.pnu.newportmapping.mappedpublicport, response.type == NATPMP_RESPTYPE_UDPPORTMAPPING ? "UDP" : (response.type == NATPMP_RESPTYPE_TCPPORTMAPPING ? "TCP" : "UNKNOWN"), response.pnu.newportmapping.privateport, response.pnu.newportmapping.lifetime, r); // port done, obtain our public ip addr int addrQueryRespCode = 0 ; if(( addrQueryRespCode = sendpublicaddressrequest(&natpmp)) > 0 ) { LOG_STR2("sendpublicaddressrequest ret = %d", addrQueryRespCode); loopCount = 0 ; do { fd_set fds; struct timeval timeout; FD_ZERO(&fds); FD_SET(natpmp.s, &fds); getnatpmprequesttimeout(&natpmp, &timeout); select(FD_SETSIZE, &fds, NULL, NULL, &timeout); r = readnatpmpresponseorretry(&natpmp, &response); } while(r==NATPMP_TRYAGAIN && ++loopCount < 100 ); if ( r>= 0 ) { LOG_STR("Managed to obtain public ip addr via NATPMP") ; LOG_STR2("Response type = %d", response.type) ; if ( response.type == NATPMP_RESPTYPE_PUBLICADDRESS ) { in_addr publicaddress = response.pnu.publicaddress.addr; iController->getNode().setIpv4Addr(ntohl(publicaddress.s_addr)) ; // if we got port forwarded and ip addr from upnp-box // we can fairly safely say that we can receive // incoming connections too: iController->getNode().setCanReceiveIncoming(true) ; } } else { LOG_STR2("NATPMP addr retrieval not success, r = %d", r ); } } else { LOG_STR2("sendpublicaddressrequest ret = %d", addrQueryRespCode); } } else { LOG_STR2("NATPMP Mapping did not succeed, r = %d", r ); switch (r) { case NATPMP_ERR_INVALIDARGS: LOG_STR("NATPMP ERR_INVALIDARGS") ; break ; case NATPMP_ERR_SOCKETERROR: LOG_STR("NATPMP_ERR_SOCKETERROR : socket() failed. check errno for details") ; break ; case NATPMP_ERR_CANNOTGETGATEWAY: LOG_STR("NATPMP_ERR_CANNOTGETGATEWAY : can't get default gateway IP"); break ; case NATPMP_ERR_CLOSEERR: LOG_STR2("NATPMP_ERR_CLOSEERR : close() failed. error = %s", strerror(errno)); break ; case NATPMP_ERR_RECVFROM: LOG_STR2("NATPMP_ERR_RECVFROM : recvfrom() failed. error = %s", strerror(errno)); break ; case NATPMP_ERR_NOPENDINGREQ: LOG_STR("readnatpmpresponseorretry() called while no NAT-PMP request was pending") ; break ; case NATPMP_ERR_NOGATEWAYSUPPORT: LOG_STR("NATPMP_ERR_NOGATEWAYSUPPORT : the gateway does not support NAT-PMP") ; break ; case NATPMP_ERR_CONNECTERR: LOG_STR2("NATPMP_ERR_RECVFROM : connect() failed. error %s", strerror(errno)) ; break ; case NATPMP_ERR_WRONGPACKETSOURCE : LOG_STR("NATPMP_ERR_WRONGPACKETSOURCE : packet not received from the network gateway") ; break ; case NATPMP_ERR_SENDERR: LOG_STR2("NATPMP_ERR_RECVFROM : send() failed. error %s", strerror(errno)) ; break ; case NATPMP_ERR_FCNTLERROR: LOG_STR2("NATPMP_ERR_RECVFROM : fcntl() failed. error %s", strerror(errno)) ; break ; case NATPMP_ERR_GETTIMEOFDAYERR : LOG_STR2("NATPMP_ERR_RECVFROM : gettimeofday() failed. error %s", strerror(errno)) ; break ; case NATPMP_ERR_UNSUPPORTEDVERSION: LOG_STR("NATPMP_ERR_WRONGPACKETSOURCE : packet not received from the network gateway") ; break ; case NATPMP_ERR_UNSUPPORTEDOPCODE: LOG_STR("NATPMP_ERR_WRONGPACKETSOURCE : packet not received from the network gateway") ; break ; case NATPMP_ERR_UNDEFINEDERROR : LOG_STR("NATPMPErrors from the server : undefined") ; break ; case NATPMP_ERR_NOTAUTHORIZED : LOG_STR("NATPMPErrors from the server : not authorized") ; break ; case NATPMP_ERR_NETWORKFAILURE : LOG_STR("NATPMPErrors from the server : network failure") ; break ; case NATPMP_ERR_OUTOFRESOURCES : LOG_STR("NATPMPErrors from the server : out of resources") ; break ; } } closenatpmp(&natpmp); #endif // else-part of WIN32 } } // lets greet self to have our own record in db updated // as it may later appear in query results.. iModel->nodeModel().nodeGreetingReceived(iController->getNode(),true) ; } void NetworkListener::broadCastReceived() { QByteArray buffer; int bytesToExpect ( iBroadCastListener.pendingDatagramSize() ) ; buffer.resize(bytesToExpect); quint16 senderPort ; QHostAddress sender; if ( bytesToExpect == iBroadCastListener.readDatagram(buffer.data(), buffer.size(), &sender, &senderPort) ) { if ( buffer.size() > 3 && buffer[0] == 'c' && buffer[1] == 'a' && ( ( buffer[2] == '4' && buffer.size() == 27 ) || ( buffer[2] == '6' && buffer.size() == 43 ) ) ) { const char* ptr ( buffer.constData() ) ; ptr ++ ; // skip c ptr ++ ; // skip a ptr ++ ; // skip 4 or 6 quint32* hash1ptr ( (quint32*)ptr ) ; ptr += sizeof(quint32) ; // skip hash1 quint32* hash2ptr ( (quint32*)ptr ) ; ptr += sizeof(quint32) ; // skip hash1 quint32* hash3ptr ( (quint32*)ptr ) ; ptr += sizeof(quint32) ; // skip hash1 quint32* hash4ptr ( (quint32*)ptr ) ; ptr += sizeof(quint32) ; // skip hash1 quint32* hash5ptr ( (quint32*)ptr ) ; ptr += sizeof(quint32) ; // skip hash1 Hash hashOfNodeAdvertising ( ntohl (*hash1ptr), ntohl (*hash2ptr), ntohl (*hash3ptr), ntohl (*hash4ptr), ntohl (*hash5ptr) ) ; quint32* portPtr ( (quint32*)ptr ) ; ptr += sizeof(quint32) ; // skip port quint32 portHostByteOrder ( ntohl (*portPtr ) ) ; LOG_STR2("Port %u", portHostByteOrder) ; LOG_STR2("Hash %s", qPrintable(hashOfNodeAdvertising.toString())) ; // if ipv6, then dig also the addr const bool hasIpv6 = !Connection::Ipv6AddressesEqual(iController->getNode().ipv6Addr(), KNullIpv6Addr) ; if ( buffer[2] == '6' && hasIpv6 ) { Q_IPV6ADDR addr ; for ( int i=0 ; i < 16; i++ ) { addr.c[i] = *ptr ; ptr++ ; } sender.setAddress(addr) ; } if ( iCanAccept ) { QLOG_STR( "Message from: " + sender.toString() ); if ( hashOfNodeAdvertising == iController->getNode().nodeFingerPrint()) { // was my own ad return ; } else { iModel->lock() ; iModel->nodeModel().addNodeFromBroadcast(hashOfNodeAdvertising, sender, portHostByteOrder) ; iModel->unlock() ; } } } } } void NetworkListener::stopAccepting() { iCanAccept = false ; close() ; } void NetworkListener::networkStateChanged( QNetworkSession::State aState ) { QLOG_STR("NetworkListener::networkStateChanged " + QString::number(aState)); if ( aState == QNetworkSession::Connected ) { iModel->lock() ; this->figureOutLocalAddresses() ; iModel->unlock() ; } } classified-ads-0.09/net/networklistener.h000066400000000000000000000103421260620453500205160ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef NETWORK_LISTENER_H #define NETWORK_LISTENER_H #include #include #include "connection.h" // for ConnectionObserver #include #include class MController ; class Model ; class ProtocolMessageParser ; /** * @brief class for listening to incoming network connections. * * This class will spawn a @ref Connection for each received * network connection. */ class NetworkListener : public QTcpServer, public Connection::ConnectionObserver { Q_OBJECT public: /** * Constructor * @param aController application controller for app state frobnication * @param aModel data model reference for data storage * @param aIpv6 if set to true, this class will listen in Ipv6 instead * of v4 and will not enumerate local network interfaces. */ NetworkListener(MController *aController, Model *aModel) ; /** * Destructor */ ~NetworkListener() ; /** * separate method for starting the listen. this now works with qt4.8 * but it seems like semantics of listen may change in qt5, where * listening in QHostAddress::Any automatically means both v4 and v6. * @param aIpv6 if true, tries to listen on both IPv6 * and ipv4. * @return true if listening started. */ bool startListen(bool aIpv6) ; /** * from ConnectionObserver */ virtual bool dataReceived(const QByteArray& aData, Connection& aConnection) ; /** * From ConnectionObserver * this is called by peer connection at close */ virtual void connectionClosed(Connection *aDeletee) ; /** * From ConnectionObserver * this is called by peer connection at successful open */ virtual void connectionReady(Connection *aBusinessEntity) ; /** * used in closing of app: stops accepting connections */ void stopAccepting() ; /** * Method that loops network interfaces and tries to find a valid * local address to advertise */ void figureOutLocalAddresses() ; protected: #if QT_VERSION >= 0x050000 virtual void incomingConnection(qintptr handle); #else void incomingConnection (int aSocketDescriptor ) ; #endif signals: void error(QTcpSocket::SocketError socketError); /** * this signal is used to communicate (at least to publishing engine) * status of connection attempt to particular node. network connection * engine will spawn connections to more-or-less random nodes but * publishing logic may ask for connections to specific nodes. * this signal will communicate outcome of such requests */ void nodeConnectionAttemptStatus(Connection::ConnectionState aStatus, const Hash aHashOfAttemptedNode ); private slots: void broadCastReceived() ; void threadIsDeleted() ; void networkStateChanged( QNetworkSession::State aState ) ; private: // data MController *iController ; Model *iModel ; /** This animal here knows all incoming bytearrays */ ProtocolMessageParser *iParser ; QUdpSocket iBroadCastListener ; /** * used in closing of application: flag for not accepting * connections any more */ bool iCanAccept ; QNetworkConfiguration iConnectionConfig ; QNetworkSession* iNetworkSession ; } ; #endif classified-ads-0.09/net/node.cpp000066400000000000000000000302041260620453500165360ustar00rootroot00000000000000/* -*-C++-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "node.h" #include "../log.h" #include "connection.h" // for ipv6-addr comparison #include #include "protocol.h" #include "../mcontroller.h" // for KNullHash const static char *KNodeJSonCanReceiveElement = "a" ; const static char *KNodeJSonTorElement = "t" ; const static char *KNodeJSonListenPortElement = "p" ; const static char *KNodeJSonIPv6Element = "v6" ; const static char *KNodeJSonIPv4Element = "v4" ; const static char *KNodeJSonDnsElement= "d" ; const static char *KNodeJSonLastContactTimeElement= "l" ; const static char *KNodeJSonFPElement= "f" ; /** nat subnets. see similar variable in connection.cpp */ const static QPair nodeNormalNats1 = QHostAddress::parseSubnet("10.0.0.0/8"); const static QPair nodeNormalNats2 = QHostAddress::parseSubnet("172.16.0.0/20"); const static QPair nodeNormalNats3 = QHostAddress::parseSubnet("192.168.0.0/16"); /** non-routable address space that some ISP's seem to offer */ static const QPair nodeRfc6598 ( QHostAddress::parseSubnet("100.64.0.0/10") ); Node::Node(const Hash &aNodeFingerPrint, const int aListenPort) : iNodeFingerPrint(aNodeFingerPrint), iListenPort(aListenPort), iTimeOfLastContact(0) , iIPv4Addr(0), iDnsName(NULL) , iTorAddr(NULL) , iCanReceiveIncoming(false), iTimeOfGoodNodeList(0), iLastConnectTime(0), iLastMutualConnectTime(0) { iIPv6Addr = KNullIpv6Addr ; // QHostAddress("::0").toIPv6Address () ; // null addr initially } Node::~Node() { if ( iDnsName ) { delete iDnsName ; } if ( iTorAddr ) { delete iTorAddr ; } } void Node::setIpv4Addr(const quint32 aAddr) { iIPv4Addr = aAddr ; QLOG_STR("Ipv4 addr: " + QHostAddress(aAddr).toString()) ; } void Node::setIpv6Addr(const Q_IPV6ADDR &aAddr) { iIPv6Addr = aAddr ; QLOG_STR("Ipv6 addr of node = "+ QHostAddress(aAddr).toString()) ; } quint32 Node::ipv4Addr(void) const { return iIPv4Addr ; } Q_IPV6ADDR Node::ipv6Addr(void) const { return iIPv6Addr ; } QString Node::DNSAddr(void) const { QString retval ; if ( iDnsName && iDnsName->length() > 0 ) { retval = *iDnsName ; } return retval ; } void Node::setDNSAddr(const QString& aAddr) { if ( iDnsName ) { delete iDnsName ; iDnsName = NULL ; } if ( aAddr.length() > 0 ) { iDnsName = new QString(aAddr) ; } } QString Node::TORAddr(void) const { QString retval ; if ( iTorAddr && iTorAddr->length() > 0 ) { retval = *iTorAddr ; } return retval ; } void Node::setTORAddr(const QString& aAddr) { if ( iTorAddr ) { delete iTorAddr ; iTorAddr = NULL ; } if ( aAddr.length() > 0 ) { iTorAddr = new QString(aAddr) ; } } void Node::setPort(const int aPort) { iListenPort = aPort ; } int Node::port(void) const { return iListenPort ; } void Node::setGoodNodeListTime(const time_t aTime) { time_t wallClockTime = QDateTime::currentDateTimeUtc().toTime_t() ; if ( aTime > ( wallClockTime + 60 ) ) { // da phuck. clock skew? iTimeOfGoodNodeList = wallClockTime ; LOG_STR2("Clock skew? %u", (unsigned)aTime) ; } else { iTimeOfGoodNodeList= aTime ; } } time_t Node::goodNodeListTime(void) const { return iTimeOfGoodNodeList ; } const Hash& Node::nodeFingerPrint(void) const { return iNodeFingerPrint ; } void Node::setLastConnectTime(const time_t aTime) { time_t wallClockTime = QDateTime::currentDateTimeUtc().toTime_t() ; if ( aTime > ( wallClockTime + 60 ) ) { // da phuck. clock skew? iLastConnectTime = wallClockTime ; LOG_STR2("Clock skew? %u", (unsigned) aTime) ; } else { iLastConnectTime = aTime ; } } time_t Node::lastConnectTime(void) const { return iLastConnectTime ; } void Node::setLastMutualConnectTime(const time_t aTime) { time_t wallClockTime = QDateTime::currentDateTimeUtc().toTime_t() ; if ( aTime > ( wallClockTime + 60 ) ) { // da phuck. clock skew? iLastMutualConnectTime = wallClockTime ; LOG_STR2("Clock skew? %u", (unsigned) aTime) ; } else { iLastMutualConnectTime = aTime ; } } time_t Node::lastMutualConnectTime(void) const { return iLastMutualConnectTime ; } void Node::setCanReceiveIncoming(const bool aYesItCan) { iCanReceiveIncoming= aYesItCan ; } bool Node::canReceiveIncoming(void) const { return iCanReceiveIncoming; } // // this one conditionally sets ipv6 or ipv4 addr. this is called // from connection and from networklistener. // bool Node::setIpAddrWithChecks(const QHostAddress& aAddress) { bool retval = false ; if (! ( aAddress == QHostAddress::LocalHost || aAddress == QHostAddress::LocalHostIPv6 ) ) { if ( QAbstractSocket::IPv6Protocol == aAddress.protocol() ) { if ( aAddress.scopeId().toLower() == "global" ) { // this should be good addr for us ; if there // is multiple, still use only one, it is // here advertised as "Global" so supposedly // it will get routed.. setIpv6Addr(aAddress.toIPv6Address() ) ; retval = true ; } else { QString ipv6String ( aAddress.toString() ); if ( ipv6String.toLower().startsWith("fe80") ) { // is link-local } else if ( ipv6String.toLower().startsWith("fec0") ) { // is site-local, is it useful, no? } else if ( ipv6String.toLower().startsWith("::") ) { // address starting with all-zeroes, must // not be globally routing, no? } else if ( ipv6String.toLower().startsWith("2001:0:") ) { // this is a teredo address and it seems to me that // there is more non-functional teredo addresses // than functional .. and host having teredo needs // to have ipv4 anyway so we don't lose much here. QLOG_STR("Not using teredo-ipv6 addr") ; } else { #ifdef WIN32 // it seems to me that win32 reports permanent address first // so if we already have one, do not change that: if ( Connection::Ipv6AddressesEqual(iIPv6Addr, KNullIpv6Addr) == true ) { setIpv6Addr(aAddress.toIPv6Address() ) ; } else { // we already managed to get one addr so lets not change that } #else // seems to me that there is no consistent behaviour in linux // so lets just pick up the latest addr.. setIpv6Addr(aAddress.toIPv6Address() ) ; #endif retval = true ; } } } else if ( QAbstractSocket::IPv4Protocol == aAddress.protocol() ) { // hmm .. if ( aAddress.isInSubnet(nodeNormalNats1) || aAddress.isInSubnet(nodeNormalNats2) || aAddress.isInSubnet(nodeNormalNats3) || aAddress.isInSubnet(nodeRfc6598) ) { // is nat addr, no-no } else { if ( aAddress.toString().startsWith("169.254") ) { QLOG_STR("Got link-local ipv4-addr (zeroconf?) -> not using "+ aAddress.toString()) ; } else { setIpv4Addr(aAddress.toIPv4Address ()) ; retval = true ; } } } } return retval ; } QVariant Node::asQVariant() const { QMap m ; m.insert(KNodeJSonFPElement, iNodeFingerPrint.toString()) ; if ( iListenPort > 0 ) { m.insert(KNodeJSonListenPortElement, iListenPort) ; } m.insert(KNodeJSonLastContactTimeElement, (unsigned)iTimeOfLastContact ) ; if ( iIPv4Addr ) { m.insert(KNodeJSonIPv4Element, iIPv4Addr) ; } if (!Connection::Ipv6AddressesEqual(iIPv6Addr, KNullIpv6Addr)) { m.insert(KNodeJSonIPv6Element, QHostAddress(iIPv6Addr).toString()) ; } if ( iDnsName && iDnsName->length() > 0 ) { m.insert(KNodeJSonDnsElement, *iDnsName) ; } if ( iTorAddr && iTorAddr->length() > 0 ) { m.insert(KNodeJSonTorElement, *iTorAddr ) ; } m.insert(KNodeJSonCanReceiveElement, iCanReceiveIncoming ) ; QVariant j (m) ; return j ; } Node* Node::fromQVariant(const QVariantMap& aJSonAsQVariant, const bool aIsInitialGreeting) { Node* n = NULL ; quint32 nodePort(0) ; if ( aJSonAsQVariant.contains(KNodeJSonFPElement) ) { const unsigned char *fpStr ( (const unsigned char *) qPrintable(aJSonAsQVariant[KNodeJSonFPElement].toString())) ; Hash nodeFp ; nodeFp.fromString(fpStr) ; if ( aJSonAsQVariant.contains(KNodeJSonListenPortElement) ) { nodePort = aJSonAsQVariant[KNodeJSonListenPortElement].toUInt() ; } if ( ( nodeFp != KNullHash ) && nodePort > 0 ) { n = new Node ( nodeFp,nodePort) ; if ( aJSonAsQVariant.contains(KNodeJSonLastContactTimeElement) ) { unsigned contactTime (aJSonAsQVariant[KNodeJSonLastContactTimeElement].toUInt()); if ( contactTime ) { n->setLastConnectTime(contactTime) ; } } if ( aJSonAsQVariant.contains(KNodeJSonIPv4Element) ) { quint32 ipv4 (aJSonAsQVariant[KNodeJSonIPv4Element].toUInt()); if ( ipv4 ) { n->setIpv4Addr(ipv4) ; } } if ( aJSonAsQVariant.contains(KNodeJSonIPv6Element) ) { QString ipv6 (aJSonAsQVariant[KNodeJSonIPv6Element].toString()); if ( ipv6.length() > 0 ) { QHostAddress a ( ipv6 ) ; if (!Connection::Ipv6AddressesEqual(a.toIPv6Address(), KNullIpv6Addr)) { n->setIpv6Addr(a.toIPv6Address()) ; } } } if ( aJSonAsQVariant.contains(KNodeJSonDnsElement) ) { n->setDNSAddr(aJSonAsQVariant[KNodeJSonDnsElement].toString()) ; } if ( aJSonAsQVariant.contains(KNodeJSonTorElement) ) { n->setTORAddr(aJSonAsQVariant[KNodeJSonTorElement].toString()) ; } if ( aIsInitialGreeting ) { n->setLastConnectTime ( QDateTime::currentDateTimeUtc().toTime_t() ) ; } if ( aJSonAsQVariant.contains(KNodeJSonCanReceiveElement) ) { bool canReceive (aJSonAsQVariant[KNodeJSonCanReceiveElement].toBool()); n->setCanReceiveIncoming(canReceive) ; } if ( aJSonAsQVariant.contains(KNodeJSonTorElement) ) { n->iTorAddr = new QString(aJSonAsQVariant[KNodeJSonTorElement].toString()) ; } if ( aJSonAsQVariant.contains(KNodeJSonDnsElement) ) { n->iDnsName = new QString(aJSonAsQVariant[KNodeJSonDnsElement].toString()) ; } } } return n ; } classified-ads-0.09/net/node.h000066400000000000000000000120111260620453500161770ustar00rootroot00000000000000/* -*-C++-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef NODE_H #define NODE_H #include #include "../util/hash.h" #include #include // for Q_IPV6ADDR class Hash ; extern Q_IPV6ADDR KNullIpv6Addr ; /** * @brief Node is a peer in network. * * Class that represents a node in network ; typically * a physical computer. Nothing prevents having multiuser * computer, each user running separate nodes ; but usually * only one node per physical computer. */ class Node { public: /** * constructor * @param aNodeFingerPrint is certificate fingerprint of the * node that this class re-presents * @param aListenPort is the network port where the * node is supposed to listen */ Node(const Hash &aNodeFingerPrint, const int aListenPort) ; /** * Destructor */ ~Node() ; /** * sets ipv4 addr of node */ void setIpv4Addr(const quint32 aAddr) ; /** * sets ipv6 addr of node */ void setIpv6Addr(const Q_IPV6ADDR &aAddr) ; /** * gets ipv4 addr of node */ quint32 ipv4Addr(void) const ; /** * gets ipv6 addr of node */ Q_IPV6ADDR ipv6Addr(void) const ; /** * gets dns-name of node */ QString DNSAddr(void) const ; /** * sets dns-name of node */ void setDNSAddr(const QString& aAddr) ; /** * gets tor-name of node */ QString TORAddr(void) const ; /** * sets tor-name of node */ void setTORAddr(const QString& aAddr) ; /** * sets listen port of node */ void setPort(const int aPort) ; /** * gets listen port of node */ int port(void) const ; /** * sets time of good node list */ void setGoodNodeListTime(const time_t aTime) ; /** * gets time of good node list */ time_t goodNodeListTime(void) const ; /** * gets hash of node */ const Hash& nodeFingerPrint(void) const ; /** * sets last time of connect */ void setLastConnectTime(const time_t aTime) ; /** * gets last time of connect */ time_t lastConnectTime(void) const ; /** * sets last time of connect to this particular node here running this code */ void setLastMutualConnectTime(const time_t aTime) ; /** * gets last time of connect to this node. */ time_t lastMutualConnectTime(void) const ; /** * sets bool if can receive incoming connections */ void setCanReceiveIncoming(const bool aYesItCan) ; /** * gets bool if can receive incoming connections */ bool canReceiveIncoming(void) const ; /** * method intended for setting local address ; this will either * set or not set an addr, based on checks inside * @param aAddress is the address to try * @return true if aAddress was decided to be valid for future * advertisement */ bool setIpAddrWithChecks(const QHostAddress& aAddress) ; /** * Method for getting node reference as JSon / QVariant */ QVariant asQVariant() const ; /** * reverse of @ref asQVariant() * @return node or NULL if */ static Node* fromQVariant(const QVariantMap& aJSonAsQVariant, const bool aIsInitialGreeting ) ; private: /** SHA1 fingerprint of node certificate */ const Hash iNodeFingerPrint ; /** TCP port number where node is supposed to listen */ int iListenPort ; /** time when node was last successfully contacted */ time_t iTimeOfLastContact ; /** 32 bits of IPv4 addr, 0 if no IPv4 addr present */ quint32 iIPv4Addr ; /** ipv6-addr */ Q_IPV6ADDR iIPv6Addr ; /** dns-name as text */ QString* iDnsName ; /** address within tor-network as text */ QString* iTorAddr ; /** true if node has been successfully contacted from outside */ bool iCanReceiveIncoming ; /** time when node says has last received good node listing */ time_t iTimeOfGoodNodeList ; /** time when node was last seen connecting */ time_t iLastConnectTime ; /** time when node was last connected to this node */ time_t iLastMutualConnectTime ; } ; #endif classified-ads-0.09/net/protocol.h000066400000000000000000000236021260620453500171230ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CA_PROTOCOL_H #define CA_PROTOCOL_H #include "../util/hash.h" // for Hash /** * @file protocol.h * this file protocol.h defines constants that are passed * between peers as protocol entries. * * Possible messages are * - Node greeting in the beginning. There node may advertise * other available addresses and date when last in contact * with this node or peers in the vicinity. This should * be sent first by both parties. * - Node listing. Basically this is just up-to-date list of * known peers, in immediate vicinity and then around * the ring ; each node should try to produce list * of high-quality nodes for this list. */ // node greeting has following fields, each is unsigned // 8-bit if not otherwise stated, 32-bit integers are // in network byte order: // 1. protocol version for this node. Note that identifies // both this message and the protocol version. Later we // may invent protocol version xyz that will then // identify node and its protocol with some other // number. static const unsigned char KProtocolVersion (1) ; /**< node greeting msg identifier */ // 2. number of bytes that follows for the whole message // 3. node greeting as qCompress()ed JSon // // ok, next thing to define is our easiest message type, random numbers. // idea for this is this: upon connect node sends node greeting. // node greeting contains hash and outside ip addr. suppose someone // is eavesdropping the tsl tcp connection she already has some known // plaintext in there, in the very first real datapacket transmitted, // in known offset so .. say, the original tsl key was done using bad // random number and in addition the listener knows some plaintext // inside it might be possible to brute-force the key. // // lets make her job a bit more interesting by first transmitting // short random sequence of random length in the beginning. static const unsigned char KRandomNumbersPacket (100) ; /**< rnd number msg identifier */ // rest of the packet is msg len and then the bytes that are supposed // to be discarded (or written into your weekly lottery ticket // if you consider yourself a lucky jerk :) // then have packet for requesting nodes that might be held liable // for keeping alive content with given hash // the packet consists of the identifier and a 160 bit hash. nothing else. // following items are for requesting various things from peer: static const unsigned char KNodesAroundHash (101) ; /**< Message id for requesting nodes around hash */ static const unsigned char KProfileAtHash (103) ; /**< Message id for a profile request */ static const unsigned char KBinaryFileAtHash (104) ; /**< Message id for a binary file request */ static const unsigned char KClassifiedAdAtHash (109) ; /**< Message id for CA request */ static const unsigned char KProfilePublish (102) ; /**< Profile is published with this number */ static const unsigned char KBinaryFilePublish (105) ; /**< Binary blob is published with this number */ static const unsigned char KBinaryFileSend (106) ; /**< Binary blob is sent (compare to publish) with this number */ static const unsigned char KClassifiedAdPublish (107) ; /**< Classified ad is published with this number */ static const unsigned char KProfileSend (108) ; /**< Operator profile is sent (compare to publish) with this number */ static const unsigned char KClassifiedAdSend (110) ; /**< CA is sent (compare to publish) with this number */ static const unsigned char KAdsClassifiedAtHash (111) ; /**< Query about CAs whose classification matches the hash */ static const unsigned char KListOfAdsClassifiedAtHash (112) ; /**< Reply to Query about CAs whose classification matches the hash */ static const unsigned char KPrivMessagePublish (113) ; /**< user is publishing a new private message */ static const unsigned char KPrivMessageSend (114) ; /**< node is sending a private message */ static const unsigned char KPrivMessagesAtHash (115) ; /**< Request for private message having given hash */ static const unsigned char KPrivMessagesForProfile (116) ; /**< Request for private message destined so given profile */ static const unsigned char KProfileCommentPublish (117) ; /**< user is publishing a new comment to profile */ static const unsigned char KProfileCommentSend (118) ; /**< node is sending a profile comment */ /** * sent as a request to send profile comments. This is not about * sending individual comment but instead comments of a profile * there is separate request for single comment */ static const unsigned char KProfileCommentAtHash (119) ; /** * sent as a request to send single profile comment. */ static const unsigned char KSingleProfileCommentAtHash (120) ; /** * sent as a request to perform search */ static const unsigned char KSearchRequest (121) ; /** * sent as a response to KSearchRequest (if there were any results) */ static const unsigned char KSearchResults (122) ; /** * Protocol constants for future use */ static const unsigned char KFutureUse1 (123) ; static const unsigned char KFutureUse2 (124) ; static const unsigned char KFutureUse3 (125) ; static const unsigned char KFutureUse4 (126) ; static const unsigned char KFutureUse5 (127) ; static const unsigned char KFutureUse6 (128) ; /** * this enum lists possible items that we send over socket * from one node to another. These get serialized into bitstream * whose values are #defined above. */ enum ProtocolItemType { OwnNodeGreeting=1, /**< normal node greeting but inside program special handling */ NodeGreeting=2, /**< node connectivity details */ ClassifiedAd=3, /**< normal public posting */ PrivateMessage=4, /**< a message destined to owner of specific profile */ BinaryBlob=5, /**< just data, relates to something, has SHA1 */ UserProfile=6, /**< user RSA key and possible other related data */ RequestForClassifiedAd=7,/**< query for other nodes if there is anything about classified ads */ RequestForPrivateMessage=8,/**< query for other nodes if there is any private msgs */ RequestForBinaryBlob=9,/**< query for other nodes if there is specific binary avail */ RequestForUserProfile=10,/**< query for other nodes if user has been in da hood */ RandomNumbers=11, /**< explained later. this really contains 1 or more random numbers */ RequestForNodesAroundHash=12, /**< request that other nodes use to retrieve node-refs around given hash */ UserProfilePublish=13, /**< publish message is different from normal UserProfile */ BinaryFilePublish=14, /**< publish binary blob is different from normal BinaryBlob */ ClassifiedAdPublish=15, /**< publish CA is different from normal ad */ ClassifiedAd2NdAddr=16, /**< publish of CA to group controller */ RequestAdsClassified=17,/**< query for articles whose classification is known */ PrivateMessagePublish=18,/**< local user is sending a privmsg */ PrivateMessagesForProfile=19, /**< specifies a request to send messages destined to profile */ UserProfileComment=20, /**< invididual profile comment to be sent */ ProfileCommentPublish=21, /**< profile comment publish item type */ UserProfileCommentsForProfile=22, /**< request to queue profile comments commenting given profile */ RequestForProfilePoll=23, /**< UI request regarding profile update poll */ RequestForProfileComment=24, /**< UI request regarding individual comment */ RequestForSearchSend=25 /**< UI request about network search */ }; /** * @brief send-queue item. * * For each connected node, there is list of items to send, * entry in that list looks like this */ struct SendQueueItem { ProtocolItemType iItemType ; /**< what kind data sits in queue */ Hash iHash ; /**< and its id, if applicable */ } ; /** * @brief Carrier for keeping state of item about to be published. * * This struct carries data needed to publish-operation. This * is just collection of identifier of the actual object * and brief list of nodes where it has been already pushed to */ struct PublishItem { ProtocolItemType iObjectType ; /**< profile,classified ad,priv-msg etc*/ Hash iObjectHash ; /**< Identifier of the data itself */ /** low order hash bits of nodes that already have the content */ QList iAlreadyPushedHosts ; Hash i2NdAddr ; /**< CAs and comments get published twice, here is the 2nd addr */ } ; /** * How many open connections we wish to have open at same time */ static const int KMaxOpenConnections( 100 ); /** * how many noderefs to send automatically after peer has * connected. Noderef with ipv4+ipv6 as compressed json is ~100bytes so 300 * mean some 30 kilobytes -> can handle. */ static const int KNumberOfNodesToSendToEachPeer ( 300 ) ; /** * how many classified ads to send to remote peer without * the peer asking. */ static const int KNumberOfClassifiedAdsToSendToEachPeer ( 300 ) ; /** * max size of single published item */ static const quint32 KMaxProtocolItemSize ( 1024*1024*2 ) ; /** *Т node may advertise itself in local ethernet segment with broadcast. * the port where ads are sent is this */ static const quint16 KBroadCastAdvertismentPort ( 23432 ) ; #endif /* CA_PROTOCOL_H */ classified-ads-0.09/net/protocol_message_formatter.cpp000066400000000000000000000655271260620453500232610ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifdef WIN32 #define NOMINMAX #include #endif #include "protocol_message_formatter.h" #include #ifndef WIN32 #include "arpa/inet.h" #endif #include "../util/jsonwrapper.h" #include "node.h" #include "connection.h" #include "../log.h" #include "../datamodel/const.h" #include "../datamodel/searchmodel.h" QByteArray ProtocolMessageFormatter::nodeGreeting(const Node& aNode) { QByteArray retval ; unsigned char ch ; ch = KProtocolVersion ;// (unsigned char) PROTOCOL_VERSION ; retval.append((const char *)&ch, 1) ; QVariant v ( aNode.asQVariant()) ; QByteArray nodeRefAsJson ( JSonWrapper::serialize(v) ) ; QLOG_STR(nodeRefAsJson) ; QByteArray nodeRefAsCompressedJson (qCompress( nodeRefAsJson )) ; nodeRefAsJson.clear() ; quint32 nodeRefSize = nodeRefAsCompressedJson.size() ; quint32 nodeRefSizeNetworkByteorder = htonl(nodeRefSize + 1 + sizeof(quint32)); retval.append((const char *)(&nodeRefSizeNetworkByteorder), sizeof(nodeRefSize)) ; retval.append(nodeRefAsCompressedJson) ; return retval ; } QByteArray ProtocolMessageFormatter::randomNumbers(void) { QByteArray retval ; unsigned char ch ; ch = KRandomNumbersPacket ; retval.append((const char *)&ch, 1) ; ch = 0 ; retval.append((const char *)&ch, 1) ; // placeholder for message length unsigned char numberOfBytesInMessage = 2 + ( rand() % 15 ) ; for ( unsigned char i = 0 ; i < numberOfBytesInMessage ; i++ ) { ch = ( rand() % 255 ) ; retval.append((const char *)&ch, 1) ; } // then count message len unsigned char messagelen = (unsigned char)(retval.length()) ; retval.replace(1,1, (const char *) &messagelen, 1) ; return retval ; } QByteArray ProtocolMessageFormatter::requestForBinaryBlob(const Hash& aHash) { QByteArray retval ; unsigned char ch ( KBinaryFileAtHash ) ; retval.append((const char *)&ch, 1) ; for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashNumberNetworkByteOrder (htonl(aHash.iHash160bits[i])) ; retval.append((const char *)(&hashNumberNetworkByteOrder), sizeof(quint32)) ; } return retval ; } QByteArray ProtocolMessageFormatter::requestForPrivateMessages(const Hash& aHash) { QByteArray retval ; unsigned char ch ( KPrivMessagesAtHash ) ; retval.append((const char *)&ch, 1) ; for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashNumberNetworkByteOrder (htonl(aHash.iHash160bits[i])) ; retval.append((const char *)(&hashNumberNetworkByteOrder), sizeof(quint32)) ; } return retval ; } QByteArray ProtocolMessageFormatter::requestForPrivateMessagesForProfile(const Hash& aHash,const quint32 aTimeOfOldestMsgToSend) { QByteArray retval ; unsigned char ch ( KPrivMessagesForProfile ) ; retval.append((const char *)&ch, 1) ; for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashNumberNetworkByteOrder (htonl(aHash.iHash160bits[i])) ; retval.append((const char *)(&hashNumberNetworkByteOrder), sizeof(quint32)) ; } quint32 tsInNetworkBO = htonl(aTimeOfOldestMsgToSend) ; retval.append((const char *)(&tsInNetworkBO), sizeof(quint32)) ; return retval ; } QByteArray ProtocolMessageFormatter::requestForProfileComments(const Hash& aCommentedProfileHash, const quint32 aTimeOfOldestMsgToSend) { QByteArray retval ; unsigned char ch ( KProfileCommentAtHash ) ; retval.append((const char *)&ch, 1) ; for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashNumberNetworkByteOrder (htonl(aCommentedProfileHash.iHash160bits[i])) ; retval.append((const char *)(&hashNumberNetworkByteOrder), sizeof(quint32)) ; } quint32 tsInNetworkBO = htonl(aTimeOfOldestMsgToSend) ; retval.append((const char *)(&tsInNetworkBO), sizeof(quint32)) ; return retval ; } QByteArray ProtocolMessageFormatter::requestForUserProfileComment(const Hash& aIndividualCommentHash) { QByteArray retval ; unsigned char ch ( KSingleProfileCommentAtHash ) ; retval.append((const char *)&ch, 1) ; for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashNumberNetworkByteOrder (htonl(aIndividualCommentHash.iHash160bits[i])) ; retval.append((const char *)(&hashNumberNetworkByteOrder), sizeof(quint32)) ; } return retval ; } QByteArray ProtocolMessageFormatter::requestForNodesAroundHash(const Hash& aHash) { QByteArray retval ; unsigned char ch ( KNodesAroundHash ) ; retval.append((const char *)&ch, 1) ; for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashNumberNetworkByteOrder (htonl(aHash.iHash160bits[i])) ; retval.append((const char *)(&hashNumberNetworkByteOrder), sizeof(quint32)) ; } return retval ; } QByteArray ProtocolMessageFormatter::requestForUserProfile(const Hash& aHash) { QByteArray retval ; unsigned char ch ( KProfileAtHash ) ; retval.append((const char *)&ch, 1) ; for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashNumberNetworkByteOrder (htonl(aHash.iHash160bits[i])) ; retval.append((const char *)(&hashNumberNetworkByteOrder), sizeof(quint32)) ; } return retval ; } QByteArray ProtocolMessageFormatter::requestForClassifiedAd(const Hash& aHash) { QByteArray retval ; unsigned char ch ( KClassifiedAdAtHash ) ; retval.append((const char *)&ch, 1) ; for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashNumberNetworkByteOrder (htonl(aHash.iHash160bits[i])) ; retval.append((const char *)(&hashNumberNetworkByteOrder), sizeof(quint32)) ; } return retval ; } QByteArray ProtocolMessageFormatter::requestForAdsClassified(const Hash& aHashOfClassification, const quint32 /* aStartingTimestamp */, const quint32 /* aEndingTimestamp */) { QByteArray retval ; unsigned char ch ( KAdsClassifiedAtHash ) ; retval.append((const char *)&ch, 1) ; for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashNumberNetworkByteOrder (htonl(aHashOfClassification.iHash160bits[i])) ; retval.append((const char *)(&hashNumberNetworkByteOrder), sizeof(quint32)) ; } return retval ; } QByteArray ProtocolMessageFormatter::contentPublish(const unsigned char aContentMagicNumber, const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aSigningKey, bool aIsContentEncrypted, bool aIsContentCompressed, quint32 aTimeStamp) { QByteArray retval ; return doContentSendOrPublish(retval, aContentMagicNumber, aContentHash, aContent, aSignature, aBangPath, aSigningKey, aIsContentEncrypted, aIsContentCompressed, aTimeStamp, true) ; } QByteArray ProtocolMessageFormatter::contentSend(const unsigned char aContentMagicNumber, const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const QByteArray& aSigningKey, bool aIsContentEncrypted, bool aIsContentCompressed, quint32 aTimeStamp) { QList aDummyBangPath ; QByteArray retval ; return doContentSendOrPublish(retval, aContentMagicNumber, aContentHash, aContent, aSignature, aDummyBangPath, aSigningKey, aIsContentEncrypted, aIsContentCompressed, aTimeStamp, false) ; } QByteArray ProtocolMessageFormatter::doContentSendOrPublish(QByteArray& retval, const unsigned char aContentMagicNumber, const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aSigningKey, bool aIsContentEncrypted, bool aIsContentCompressed, quint32 aTimeStamp, bool aIsPublish) { // ok, lets decide here the layout of publish.. // first magick number telling what it is. // then bangpath 5 items and if not all 5 are filled, // the remaining ones are filled with zeroes. // then content hash, 5*32 bytes // then length of the actual data, followed by the actual data // then length of the signature, followeds by the signature. // then length of the signingkey, followed by the key // then flags, one unsigned char. // * if bit 1 is up, it means that content is encrypted. // * if bit 2 is up, it means that content is compressed. // then time when content was published. For most of the content // the time of publish may be deduced from content itself but in some // case like the private profile the date of publish is hidden from // us -> this time practically acts as a version-number for the // content. LOG_STR2("content len = %d", (int)aContent.length()) ; LOG_STR2("signature len = %d", (int)aSignature.length()) ; if ( aIsPublish ) { for ( int i = 0 ; i < aBangPath.size() ; i++ ) { LOG_STR2("Bangpath contains %u", aBangPath[i]) ; } } unsigned char ch ; ch = aContentMagicNumber ; retval.append((const char *)&ch, 1) ; quint32 bPathNumberNetworkByteorder ; if ( aIsPublish ) { if ( aBangPath.size() >= 1 ) { bPathNumberNetworkByteorder = htonl(aBangPath[0]); } else { bPathNumberNetworkByteorder = 0 ; } retval.append((const char *)(&bPathNumberNetworkByteorder), sizeof(quint32)) ; if ( aBangPath.size() >= 2 ) { bPathNumberNetworkByteorder = htonl(aBangPath[1]); } else { bPathNumberNetworkByteorder = 0 ; } retval.append((const char *)(&bPathNumberNetworkByteorder), sizeof(quint32)) ; if ( aBangPath.size() >= 3 ) { bPathNumberNetworkByteorder = htonl(aBangPath[2]); } else { bPathNumberNetworkByteorder = 0 ; } retval.append((const char *)(&bPathNumberNetworkByteorder), sizeof(quint32)) ; if ( aBangPath.size() >= 4 ) { bPathNumberNetworkByteorder = htonl(aBangPath[3]); } else { bPathNumberNetworkByteorder = 0 ; } retval.append((const char *)(&bPathNumberNetworkByteorder), sizeof(quint32)) ; if ( aBangPath.size() >= 5 ) { bPathNumberNetworkByteorder = htonl(aBangPath[4]); } else { bPathNumberNetworkByteorder = 0 ; } retval.append((const char *)(&bPathNumberNetworkByteorder), sizeof(quint32)) ; } // now has 5 numbers as bangpath, then put hash for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashBitsNetworkBO ( htonl( aContentHash.iHash160bits[i] ) ) ; retval.append((const char *)(&hashBitsNetworkBO), sizeof(quint32)) ; } // after hash, the size of content: quint32 lengthNetworkByteorder ( htonl( (quint32)(aContent.size()) ) ) ; retval.append((const char *)(&lengthNetworkByteorder), sizeof(quint32)) ; // followed by content: retval.append(aContent) ; lengthNetworkByteorder = htonl( (quint32)(aSignature.size()) ) ; retval.append((const char *)(&lengthNetworkByteorder), sizeof(quint32)) ; retval.append(aSignature) ; // followed by signing key lengthNetworkByteorder = htonl( (quint32)(aSigningKey.size()) ) ; retval.append((const char *)(&lengthNetworkByteorder), sizeof(quint32)) ; retval.append(aSigningKey) ; unsigned char flags ( 0 ) ; if ( aIsContentEncrypted ) { flags = flags | 1 ; } if ( aIsContentCompressed ) { flags = flags | 2 ; } retval.append((const char *)&flags, sizeof(unsigned char)) ; quint32 timestampNetworkBO ( htonl( aTimeStamp ) ) ; #ifndef WIN32 #ifdef DEBUG time_t contentTime_T ( aTimeStamp ) ; char timeBuf[40] ; LOG_STR2("Content time of publish at send: %s", ctime_r(&contentTime_T,timeBuf)) ; #endif #endif retval.append((const char *)×tampNetworkBO, sizeof(quint32)) ; // and that's all folks return retval ; } QByteArray ProtocolMessageFormatter::privMsgPublish(const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const Hash& aDestination, const Hash& aRecipient, quint32 aTimeStamp ) { for ( int i = 0 ; i < aBangPath.size() ; i++ ) { LOG_STR2("Bangpath if privmsg contains %u", aBangPath[i]) ; } unsigned char ch ( KPrivMessagePublish ) ; QByteArray retval ; retval.append((const char *)&ch, 1) ; quint32 bPathNumberNetworkByteorder ; if ( aBangPath.size() >= 1 ) { bPathNumberNetworkByteorder = htonl(aBangPath[0]); } else { bPathNumberNetworkByteorder = 0 ; } retval.append((const char *)(&bPathNumberNetworkByteorder), sizeof(quint32)) ; if ( aBangPath.size() >= 2 ) { bPathNumberNetworkByteorder = htonl(aBangPath[1]); } else { bPathNumberNetworkByteorder = 0 ; } retval.append((const char *)(&bPathNumberNetworkByteorder), sizeof(quint32)) ; if ( aBangPath.size() >= 3 ) { bPathNumberNetworkByteorder = htonl(aBangPath[2]); } else { bPathNumberNetworkByteorder = 0 ; } retval.append((const char *)(&bPathNumberNetworkByteorder), sizeof(quint32)) ; if ( aBangPath.size() >= 4 ) { bPathNumberNetworkByteorder = htonl(aBangPath[3]); } else { bPathNumberNetworkByteorder = 0 ; } retval.append((const char *)(&bPathNumberNetworkByteorder), sizeof(quint32)) ; if ( aBangPath.size() >= 5 ) { bPathNumberNetworkByteorder = htonl(aBangPath[4]); } else { bPathNumberNetworkByteorder = 0 ; } retval.append((const char *)(&bPathNumberNetworkByteorder), sizeof(quint32)) ; // now has 5 numbers as bangpath, then put hash for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashBitsNetworkBO ( htonl( aContentHash.iHash160bits[i] ) ) ; retval.append((const char *)(&hashBitsNetworkBO), sizeof(quint32)) ; } // after hash, the size of content: quint32 lengthNetworkByteorder ( htonl( (quint32)(aContent.size()) ) ) ; retval.append((const char *)(&lengthNetworkByteorder), sizeof(quint32)) ; // followed by content: retval.append(aContent) ; lengthNetworkByteorder = htonl( (quint32)(aSignature.size()) ) ; retval.append((const char *)(&lengthNetworkByteorder), sizeof(quint32)) ; retval.append(aSignature) ; quint32 timestampNetworkBO ( htonl( aTimeStamp ) ) ; #ifndef WIN32 #ifdef DEBUG time_t contentTime_T ( aTimeStamp ) ; char timebuf[40] ; LOG_STR2("Private message time of publish at send: %s", ctime_r(&contentTime_T,timebuf)) ; #endif #endif retval.append((const char *)×tampNetworkBO, sizeof(quint32)) ; // then destination node: for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashBitsNetworkBO ( htonl( aDestination.iHash160bits[i] ) ) ; retval.append((const char *)(&hashBitsNetworkBO), sizeof(quint32)) ; } // then recipient: for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashBitsNetworkBO ( htonl( aRecipient.iHash160bits[i] ) ) ; retval.append((const char *)(&hashBitsNetworkBO), sizeof(quint32)) ; } return retval ; } QByteArray ProtocolMessageFormatter::privMsgSend(const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const Hash& aDestination, const Hash& aRecipient, quint32 aTimeStamp ) { unsigned char ch ( KPrivMessageSend ) ; QByteArray retval ; retval.append((const char *)&ch, 1) ; //first thing in send is hash of the message for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashBitsNetworkBO ( htonl( aContentHash.iHash160bits[i] ) ) ; retval.append((const char *)(&hashBitsNetworkBO), sizeof(quint32)) ; } // after hash, the size of content: quint32 lengthNetworkByteorder ( htonl( (quint32)(aContent.size()) ) ) ; retval.append((const char *)(&lengthNetworkByteorder), sizeof(quint32)) ; // followed by content: retval.append(aContent) ; lengthNetworkByteorder = htonl( (quint32)(aSignature.size()) ) ; retval.append((const char *)(&lengthNetworkByteorder), sizeof(quint32)) ; retval.append(aSignature) ; quint32 timestampNetworkBO ( htonl( aTimeStamp ) ) ; #ifndef WIN32 #ifdef DEBUG time_t contentTime_T ( aTimeStamp ) ; char timebuf[40] ; LOG_STR2("Private message time of publish at send: %s", ctime_r(&contentTime_T,timebuf)) ; #endif #endif retval.append((const char *)×tampNetworkBO, sizeof(quint32)) ; // then destination node: for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashBitsNetworkBO ( htonl( aDestination.iHash160bits[i] ) ) ; retval.append((const char *)(&hashBitsNetworkBO), sizeof(quint32)) ; } // then recipient: for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashBitsNetworkBO ( htonl( aRecipient.iHash160bits[i] ) ) ; retval.append((const char *)(&hashBitsNetworkBO), sizeof(quint32)) ; } return retval ; } QByteArray ProtocolMessageFormatter::replyToAdsClassified(const Hash& aClassificationHash, const QList >& aListOfAds ) { QByteArray retval ; retval.append((const char *)&KListOfAdsClassifiedAtHash, sizeof(unsigned char)) ; for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashBitsNetworkBO ( htonl( aClassificationHash.iHash160bits[i] ) ) ; retval.append((const char *)(&hashBitsNetworkBO), sizeof(quint32)) ; } quint32 numberArticles ( htonl( aListOfAds.size() ) ) ; retval.append((const char *)(&numberArticles), sizeof(quint32)) ; for ( int k = 0 ; k < aListOfAds.size() ; k++ ) { for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashBitsNetworkBO ( htonl( aListOfAds[k].first.iHash160bits[i] ) ) ; retval.append((const char *)(&hashBitsNetworkBO), sizeof(quint32)) ; } quint32 ts ( htonl( aListOfAds[k].second ) ) ; retval.append((const char *)(&ts), sizeof(quint32)) ; } return retval ; } QByteArray ProtocolMessageFormatter::searchSend(const QString& aSearch, bool aSearchAds, bool aSearchProfiles, bool aSearchComments, const Hash& aSearchIdentifier) { QByteArray retval ; retval.append((const char *)&KSearchRequest, sizeof(unsigned char)) ; quint32 searchflags ( 0x0 ) ; if ( aSearchAds ) { searchflags = searchflags | 0x01 ; } if ( aSearchProfiles ) { searchflags = searchflags | 0x01 << 1 ; } if ( aSearchComments ) { searchflags = searchflags | 0x01 << 2 ; } quint32 flagBitsNetworkBO ( htonl( searchflags ) ) ; retval.append((const char *)(&flagBitsNetworkBO), sizeof(quint32)) ; quint32 searchIdNetworkBO ( htonl( aSearchIdentifier.iHash160bits[0] ) ); retval.append((const char *)(&searchIdNetworkBO), sizeof(quint32)) ; QByteArray searchStringUtf8 ; searchStringUtf8.append(reinterpret_cast(aSearch.toUtf8().constData())) ; if ( searchStringUtf8.size() > 20*1024 ) { // this is ridiculous searchStringUtf8 = QString("bananas").toUtf8() ; } quint32 sizeNetworkBO ( htonl(searchStringUtf8.size()) ) ; retval.append((const char *)(&sizeNetworkBO), sizeof(quint32)) ; retval.append(searchStringUtf8) ; return retval ; } QByteArray ProtocolMessageFormatter::searchResultsSend(const QList& aResults, quint32 aSearchId) { // search results are actually plain json text. // there is magic, length of the json and then // the actual json. QByteArray retval ; retval.append((const char *)&KSearchResults, sizeof(unsigned char)) ; const QVariant toplevel ( SearchModel::serializeSearchResults(aResults, aSearchId) ) ; const QByteArray resultBytes ( JSonWrapper::serialize(toplevel) ) ; if ( resultBytes.size() > 0 ) { quint32 sizeNetworkBO ( htonl(resultBytes.size()) ) ; retval.append((const char *)(&sizeNetworkBO), sizeof(quint32)) ; retval.append(resultBytes) ; } else { retval.clear() ; } return retval ; } QByteArray ProtocolMessageFormatter::profileCommentPublish(const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const Hash& aProfileCommented, quint32 aTimeStamp, quint32 aFlags ) { return doCommentSendOrPublish(aContentHash, aContent, aSignature, aBangPath, aProfileCommented, aTimeStamp, aFlags, true ); } QByteArray ProtocolMessageFormatter::profileCommentSend(const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const Hash& aProfileCommented, quint32 aTimeStamp, quint32 aFlags ) { QList dummyBangPath; return doCommentSendOrPublish(aContentHash, aContent, aSignature, dummyBangPath, aProfileCommented, aTimeStamp, aFlags, false ); } QByteArray ProtocolMessageFormatter::doCommentSendOrPublish(const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const Hash& aProfileCommented, quint32 aTimeStamp, quint32 aFlags, bool aIsPublish) { // ok, lets decide here the layout of comment publish.. // first magick number telling what it is. // then bangpath 5 items and if not all 5 are filled, // the remaining ones are filled with zeroes. // then content hash, 5*32 bytes // then commented profile hash, 5*32 bytes // then length of the actual data, followed by the actual data // then length of the signature, followeds by the signature. // then flags, one unsigned 32-bit. // * if bit 1 is up, it means that content is encrypted. // then time when content was published. unsigned char ch ( aIsPublish ? KProfileCommentPublish : KProfileCommentSend ) ; QByteArray retval ; retval.append((const char *)&ch, 1) ; if ( aIsPublish ) { // if in send-mode, just omit bangpath quint32 bPathNumberNetworkByteorder ; if ( aBangPath.size() >= 1 ) { bPathNumberNetworkByteorder = htonl(aBangPath[0]); } else { bPathNumberNetworkByteorder = 0 ; } retval.append((const char *)(&bPathNumberNetworkByteorder), sizeof(quint32)) ; if ( aBangPath.size() >= 2 ) { bPathNumberNetworkByteorder = htonl(aBangPath[1]); } else { bPathNumberNetworkByteorder = 0 ; } retval.append((const char *)(&bPathNumberNetworkByteorder), sizeof(quint32)) ; if ( aBangPath.size() >= 3 ) { bPathNumberNetworkByteorder = htonl(aBangPath[2]); } else { bPathNumberNetworkByteorder = 0 ; } retval.append((const char *)(&bPathNumberNetworkByteorder), sizeof(quint32)) ; if ( aBangPath.size() >= 4 ) { bPathNumberNetworkByteorder = htonl(aBangPath[3]); } else { bPathNumberNetworkByteorder = 0 ; } retval.append((const char *)(&bPathNumberNetworkByteorder), sizeof(quint32)) ; if ( aBangPath.size() >= 5 ) { bPathNumberNetworkByteorder = htonl(aBangPath[4]); } else { bPathNumberNetworkByteorder = 0 ; } retval.append((const char *)(&bPathNumberNetworkByteorder), sizeof(quint32)) ; } // now has 5 numbers as bangpath, then put hash of content for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashBitsNetworkBO ( htonl( aContentHash.iHash160bits[i] ) ) ; retval.append((const char *)(&hashBitsNetworkBO), sizeof(quint32)) ; } // now has 5 numbers as bangpath+content hash, then fingerprint of commented profile for ( int i = 0 ; i < Hash::KNumberOfIntsInHash ; i++ ) { quint32 hashBitsNetworkBO ( htonl( aProfileCommented.iHash160bits[i] ) ) ; retval.append((const char *)(&hashBitsNetworkBO), sizeof(quint32)) ; } // now has bangpath+content hash+profile hash, follow the content+signature: // after hash, the size of content: quint32 lengthNetworkByteorder ( htonl( (quint32)(aContent.size()) ) ) ; retval.append((const char *)(&lengthNetworkByteorder), sizeof(quint32)) ; // followed by content: retval.append(aContent) ; lengthNetworkByteorder = htonl( (quint32)(aSignature.size()) ) ; retval.append((const char *)(&lengthNetworkByteorder), sizeof(quint32)) ; retval.append(aSignature) ; // then flags: quint32 flagsNetworkByteOrder ( htonl(aFlags) ) ; retval.append((const char *)(&flagsNetworkByteOrder), sizeof(quint32)) ; // and finally timestamp of publish quint32 timestampNetworkBO ( htonl( aTimeStamp ) ) ; retval.append((const char *)×tampNetworkBO, sizeof(quint32)) ; return retval ; } classified-ads-0.09/net/protocol_message_formatter.h000066400000000000000000000335131260620453500227140ustar00rootroot00000000000000/* -*-C++-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef PROTOCOL_MESSAGE_FORMATTER_H #define PROTOCOL_MESSAGE_FORMATTER_H #include "protocol.h" #include #include #include "../datamodel/searchmodel.h" class Connection ; class Node ; /** * @brief This class produces items sent to peers over network. * * Class that contains (static) methods for producing * byte-streams of various messages. */ class ProtocolMessageFormatter { public: /** * method for producing node greeting message * @param aNode is greeting about the node * concerned, usually "this" node * @return bytearray that is ready to be sent * over socket so that other end will * understand. */ static QByteArray nodeGreeting(const Node& aNode) ; /** * method for producing random number message * @return bytearray that is ready to be sent * over socket so that other end will * understand. */ static QByteArray randomNumbers(void) ; /** * method for producing nodegreeting request message * @return bytearray that is ready to be sent * over socket so that other end will * understand. */ static QByteArray requestForNodesAroundHash (const Hash& aHash) ; /** * method for producing binary blob request message * @return bytearray that is ready to be sent * over socket so that other end will * understand. */ static QByteArray requestForBinaryBlob(const Hash& aHash) ; /** * method for producing operator profile request message * @return bytearray that is ready to be sent * over socket so that other end will * understand. */ static QByteArray requestForUserProfile(const Hash& aHash) ; /** * method for producing message to other node that asks * it to send an individual profile comment * @return bytearray that is ready to be sent * over socket so that other end will * understand. */ static QByteArray requestForUserProfileComment(const Hash& aIndividualCommentHash) ; /** * method for producing operator classified ad request message * @return bytearray that is ready to be sent * over socket so that other end will * understand. */ static QByteArray requestForClassifiedAd(const Hash& aHash) ; /** * method for sending request to other nodes regarding private * messages having given hash * @param aProfileHash hash of message that is to be found * @return bytearray that is ready to be sent * over socket so that other end will * understand. */ static QByteArray requestForPrivateMessages(const Hash& aMessageHash) ; /** * method for sending request to other nodes regarding private * messages destined to given profile * @param aProfileHash hash of profile whose messages are searched * @param aTimeOfOldesMsgToSend since when to send msgs from * @return bytearray that is ready to be sent * over socket so that other end will * understand. */ static QByteArray requestForPrivateMessagesForProfile(const Hash& aProfileHash, const quint32 aTimeOfOldestMsgToSend) ; /** * method for sending request to other nodes regarding comments * about specified profile. in practice parser (upon receipt) will * make calls that check not only for new comments, but also * if there has been an update at the profile itself. Call to this * method is result of RequestForProfilePoll being put into network * request queue. * * @param aCommentedProfileHash hash of profile whose comments are searched * @param aTimeOfOldesMsgToSend since when to send comments from * @return bytearray that is ready to be sent * over socket so that other end will * understand. */ static QByteArray requestForProfileComments(const Hash& aCommentedProfileHash, const quint32 aTimeOfOldestMsgToSend) ; /** * Classified ads have classification, the "intent-object-location" * triplet shown in UI and it also has a hash. When user chooses * this triplet, it might be nice to query surrounding nodes * about classified ads regarding that triplet. This method is for * sending such a request. Its response will contain hashes of * the ads in that classification, possibly followed by the articles * too. * @param aHashOfClassification hash calculated over * "intent-object-location" string * @param aStartingTimestamp possible starting timestamp for the articles. * Currently not implemented in protocol, sender * will limit the number of ads it sends * @param aEndingTimestamp possible ending timestamp for the articles * Currently not implemented in protocol, sender * will limit the number of ads it sends * @return bytearray that is ready to be sent * over socket so that other end will * understand. */ static QByteArray requestForAdsClassified(const Hash& aHashOfClassification, const quint32 aStartingTimestamp, const quint32 aEndingTimestamp) ; /** * method for producing byte-array containing (some) published content * * @param aContentMagicNumber tells what kind of item this is. For * example KProfilePublish (from protocol.h) if we're publishing * a profile here * @param aContentHash hash of the content to be published. Reason this * Hash here is given explicitly is that different * object types have different hashing methods - for * binary blob it is the content itself that makes the * hash but for profile it is the fingerprint of the * signing key etc. * @param aContent actual content * @param aSignature signature verifying aContent * @param aBangPath list of low-order bits of hosts where this content has * already been seen, 5 at max * @param aSigningKey contains public encryption key used to sign the * content ; while it over time will be mostly overhead * it anyway allows reader to reach the poster that * is great advantage over some overhead.. * @param aIsContentEncrypted is true of aContent is protected with * encryption * @param aIsContentCompressed is true of aContent is inside qCompress. * if both compress+encryption, naturally * the content is first compressed, only * after that encrypted * @param aTimeStamp may be given for content where actual timestamp * is inside encryption * * @return bytearray that is ready to be sent * over socket so that other end will * understand. */ static QByteArray contentPublish(const unsigned char aContentMagicNumber, const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aSigningKey, bool aIsContentEncrypted, bool aIsContentCompressed, quint32 aTimeStamp ) ; /** * separate publish-formatter for private messages as they're * quite different from rest of the content */ static QByteArray privMsgPublish(const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const Hash& aDestination, const Hash& aRecipient, quint32 aTimeStamp ) ; /** * separate send-formatter for private messages as they're * quite different from rest of the content. Similar to publish * but no bangpath */ static QByteArray privMsgSend(const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const Hash& aDestination, const Hash& aRecipient, quint32 aTimeStamp ) ; /** * separate publish-formatter for profile comments as they're * quite different from rest of the content. in case of comments * for public profiles they behave a bit like classified ads * but comments commenting private profiles need to behave * more-or-less like private messages as that's what they are ; * private messages with more than 1 recipient .. or it is * possible to have private profile with 0 readers and then * comment it self. monologue ensues. */ static QByteArray profileCommentPublish(const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const Hash& aProfileCommented, quint32 aTimeStamp, quint32 aFlags ) ; /** * separate send-formatter for profile comment as they're * quite different from rest of the content. */ static QByteArray profileCommentSend(const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const Hash& aProfileCommented, quint32 aTimeStamp, quint32 aFlags ) ; /** * this is almost same as @ProtocolMessageFormatter.contentPublish * but is reply to another node regarding request of content, * not users own publishing so this has no bangpath but otherwise * this behaves in about same way. */ static QByteArray contentSend(const unsigned char aContentMagicNumber, const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const QByteArray& aSigningKey, bool aIsContentEncrypted, bool aIsContentCompressed, quint32 aTimeStamp ) ; static QByteArray replyToAdsClassified(const Hash& aClassificationHash, const QList >& aListOfAds ) ; /** * method for formatting a network search query */ static QByteArray searchSend(const QString& aSearch, bool aSearchAds, bool aSearchProfiles, bool aSearchComments, const Hash& aSearchIdentifier) ; /** * method for formatting a network search results */ static QByteArray searchResultsSend(const QList& aResults, quint32 aSearchId) ; private: /** * workhorse of @ProtocolMessageFormatter.contentPublish and * @ProtocolMessageFormatter.contentSend has parameter * telling which action to take */ static QByteArray doContentSendOrPublish(QByteArray& retval, const unsigned char aContentMagicNumber, const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const QByteArray& aSigningKey, bool aIsContentEncrypted, bool aIsContentCompressed, quint32 aTimeStamp, bool aIsPublish) ; /** * workhorse of @ProtocolMessageFormatter.profileCommentPublish and * @ProtocolMessageFormatter.profileCommentSend has parameter * telling which action to take */ static QByteArray doCommentSendOrPublish(const Hash& aContentHash, const QByteArray& aContent, const QByteArray& aSignature, const QList& aBangPath, const Hash& aProfileCommented, quint32 aTimeStamp, quint32 aFlags, bool aIsPublish) ; } ; #endif classified-ads-0.09/net/protocol_message_parser.cpp000066400000000000000000001343531260620453500225440ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifdef WIN32 #define NOMINMAX #include #else #include "arpa/inet.h" #endif #include "protocol_message_parser.h" #include "../log.h" #include "../datamodel/mmodelprotocolinterface.h" #include "../datamodel/mnodemodelprotocolinterface.h" #include "../mcontroller.h" #include #include "../util/jsonwrapper.h" #include "../util/hash.h" #include "../datamodel/profilemodel.h" #include "../datamodel/binaryfilemodel.h" #include "../datamodel/camodel.h" #include "../datamodel/privmsgmodel.h" #include "../datamodel/profilecommentmodel.h" #include "../datamodel/searchmodel.h" #include "protocol_message_formatter.h" ProtocolMessageParser::ProtocolMessageParser(MController &aController, MModelProtocolInterface &aModel) : iController(aController), iModel(aModel) { } bool ProtocolMessageParser::parseMessage(const QByteArray& aGoodFood, Connection& aConnection) { LOG_STR2("::parseMessage bytes %d", aGoodFood.size()) ; if ( aGoodFood.size() < 4 ) { return false ; // stupid check but but packet is obviously a bit short. } const unsigned char protocol_item_type = aGoodFood.at(0) ; switch ( protocol_item_type ) { case KProtocolVersion: // node greeting with protocol version 1 return parseMultipleNodeGreetingsV1(aGoodFood,aConnection ) ; break ; case KRandomNumbersPacket: LOG_STR2("Received random bytes %d", (int) aGoodFood.size()) ; // no need to parse further break ; case KNodesAroundHash: case KProfileAtHash: case KBinaryFileAtHash: case KClassifiedAdAtHash: case KPrivMessagesAtHash: case KPrivMessagesForProfile: case KProfileCommentAtHash: case KSingleProfileCommentAtHash: // peer wants node-refs around hash return parseRequestForObjectsAroundHash(aGoodFood,aConnection ) ; break ; case KProfilePublish: case KProfileSend: case KBinaryFilePublish: case KBinaryFileSend: case KClassifiedAdPublish: case KClassifiedAdSend: // peer just published a profile/blob/ca return parseContentPublishedOrSent(protocol_item_type,aGoodFood,aConnection ) ; break ; case KPrivMessagePublish: case KPrivMessageSend: return parsePrivMsgPublishedOrSent(protocol_item_type,aGoodFood,aConnection ) ; break ; case KProfileCommentPublish: case KProfileCommentSend: return parseProfileCommentPublishedOrSent(protocol_item_type,aGoodFood,aConnection ) ; break ; case KAdsClassifiedAtHash: return parseAdsClassifiedAtHash(aGoodFood,aConnection ) ; break ; case KListOfAdsClassifiedAtHash: return parseListOfAdsClassifiedAtHash(aGoodFood,aConnection ) ; break ; case KSearchRequest: return parseSearchRequest(aGoodFood,aConnection ) ; break ; case KSearchResults: return parseSearchResults(aGoodFood,aConnection ) ; break ; case KFutureUse1: case KFutureUse2: case KFutureUse3: case KFutureUse4: case KFutureUse5: case KFutureUse6: LOG_STR2("Unhandled future-use item id %d", (int) protocol_item_type) ; break ; default: // unknown message type LOG_STR2("Unhandled protocol item id %d", (int) protocol_item_type) ; break ; } return true ; } bool ProtocolMessageParser::parseContentPublishedOrSent(const unsigned char aProtocolItemType, const QByteArray& aPublishedContent, const Connection &aConnection ) { LOG_STR2("ProtocolMessageParser::parseContentPublished type %d", (int) aProtocolItemType) ; bool retval = false ; // in publish there is // 1. magick // 2. bangpath of low-order bits of hosts // 3. content hash // 4. len of data (32bit) // 5. data // 6. len of signature (32bit) // 7. signature // 8. length if siging key used (32bit) // 9. signing key // 10. one unsigned char of flags, if bit 1 is on, 5. data is encrypted // if bit 2 is on, 5. data is compressed with qCompress // 11. quint32 for timestamp (time_t) of the content if ( (unsigned)(aPublishedContent.size()) > ( sizeof (char) + // magick ( sizeof (quint32) * 5 ) + // bangpath ( sizeof (quint32) * 5 ) + // hash sizeof (quint32) + // content len 1 + // at least 1 byte of content sizeof (quint32) + // sig len 1 )) { // lets try int pos ( 0 ) ; pos += sizeof(char) ; // skip magick quint32 bangpath1(0) ; quint32 bangpath2(0) ; quint32 bangpath3(0) ; quint32 bangpath4(0) ; quint32 bangpath5(0) ; // "send" items have no bangpath switch ( aProtocolItemType ) { case KBinaryFileSend: case KProfileSend: case KClassifiedAdSend: break ; default: // and "Publish" items do have bangpath uintFromPosition(aPublishedContent, // because "send" has no bangpath pos, &bangpath1) ; pos += sizeof(quint32) ; // skip first bangpath ; uintFromPosition(aPublishedContent, pos, &bangpath2) ; pos += sizeof(quint32) ; // skip 2nd bangpath ; uintFromPosition(aPublishedContent, pos, &bangpath3) ; pos += sizeof(quint32) ; // skip 3rd bangpath ; uintFromPosition(aPublishedContent, pos, &bangpath4) ; pos += sizeof(quint32) ; // skip 4th bangpath ; uintFromPosition(aPublishedContent, pos, &bangpath5) ; pos += sizeof(quint32) ; // skip last bangpath ; break ; } Hash* hashObtained = new Hash(); if ( hashFromPosition(aPublishedContent, pos, hashObtained) == false ) { delete hashObtained ; return false ; } pos += (sizeof(quint32) * 5) ; // skip hash quint32 contentlen(0) ; uintFromPosition(aPublishedContent, pos, &contentlen) ; pos += sizeof(quint32) ; // skip content len // content can't be longer than 2 megabytes if ( ( contentlen > KMaxProtocolItemSize ) || ( (unsigned)(aPublishedContent.size()) < pos+contentlen ) ) { delete hashObtained ; return false ; } QByteArray content ( aPublishedContent.mid(pos,contentlen) ) ; pos += contentlen ; if ( aPublishedContent.size() < pos+2 ) { delete hashObtained ; return false ; } quint32 signaturelen (0) ; uintFromPosition(aPublishedContent, pos, &signaturelen) ; pos += sizeof(quint32) ; // skip signature len if ( (unsigned)(aPublishedContent.size()) < pos+signaturelen+sizeof(quint32) ) { delete hashObtained ; return false ; } QByteArray signature ( aPublishedContent.mid(pos,signaturelen) ) ; pos += signaturelen ; // then extract signing key quint32 signingKeyLen (0) ; uintFromPosition(aPublishedContent, pos, &signingKeyLen) ; pos += sizeof(quint32) ; // skip signature len if ( (unsigned)(aPublishedContent.size()) < pos+signingKeyLen+sizeof(unsigned char) ) { delete hashObtained ; return false ; } QByteArray signingKey ( aPublishedContent.mid(pos,signingKeyLen) ) ; pos += signingKeyLen ; // pos should now point to flags. const unsigned char flags = aPublishedContent.at(pos) ; pos += sizeof(unsigned char) ; // pos should now point to timestamp quint32 timestampOfContent (0) ; uintFromPosition(aPublishedContent, pos, ×tampOfContent) ; #ifndef WIN32 #ifdef DEBUG time_t contentTime_T ( timestampOfContent ) ; char timebuf[40] ; LOG_STR2("Content time of publish at receive: %s", ctime_r(&contentTime_T,timebuf)) ; #endif #endif QList bangPath ; switch ( aProtocolItemType ) {// skip bangpath for "send" case KBinaryFileSend: case KProfileSend: case KClassifiedAdSend: break ; default: { // and "Publish" items do have bangpath // here penalize hosts with hash last 32 bits all zero? // they will still receive content via content-copy instead // of publish, and surely by asking.. if ( bangpath1 > 0 ) { bangPath.append(bangpath1) ; } if ( bangpath2 > 0 ) { bangPath.append(bangpath2) ; } if ( bangpath3 > 0 ) { bangPath.append(bangpath3) ; } if ( bangpath4 > 0 ) { bangPath.append(bangpath4) ; } if ( bangpath5 > 0 ) { bangPath.append(bangpath5) ; } // if bangpath is not yet full, if ( bangPath.size() < 5 ) { // then append the host where we got this content: iModel.lock() ; bangPath.append(aConnection.node()->nodeFingerPrint().iHash160bits[4] ) ; LOG_STR2("Appending to bangpath low-order bits %u", aConnection.node()->nodeFingerPrint().iHash160bits[4]) ; iModel.unlock() ; } } break ; } // all right dudes. switch ( aProtocolItemType ) { case KProfilePublish: iModel.lock() ; retval = iModel.profileModel().publishedProfileReceived(*hashObtained, content, signature, bangPath, signingKey, flags, timestampOfContent, aConnection.node()->nodeFingerPrint()) ; iModel.unlock() ; break ; case KProfileSend: iModel.lock() ; retval = iModel.profileModel().sentProfileReceived(*hashObtained, content, signature, signingKey, flags, timestampOfContent, aConnection.node()->nodeFingerPrint()) ; LOG_STR2("Retval of profileModel().sentProfileReceived = %d", (int)retval) ; iModel.unlock() ; break ; case KBinaryFileSend: iModel.lock() ; retval = iModel.binaryFileModel().sentBinaryFileReceived(*hashObtained, content, signature, signingKey, flags, timestampOfContent, aConnection.node()->nodeFingerPrint()) ; iModel.unlock() ; break ; case KClassifiedAdSend: iModel.lock() ; retval = iModel.classifiedAdsModel().sentCAReceived(*hashObtained, content, signature, signingKey, flags, timestampOfContent, aConnection.node()->nodeFingerPrint()) ; iModel.unlock() ; break ; case KBinaryFilePublish: iModel.lock() ; retval = iModel.binaryFileModel().publishedBinaryFileReceived(*hashObtained, content, signature, bangPath, signingKey, flags, timestampOfContent, aConnection.node()->nodeFingerPrint() ) ; iModel.unlock() ; break ; case KClassifiedAdPublish: iModel.lock() ; retval = iModel.classifiedAdsModel().publishedCAReceived(*hashObtained, content, signature, bangPath, signingKey, flags, timestampOfContent, aConnection.node()->nodeFingerPrint()) ; iModel.unlock() ; break ; default: LOG_STR2("Unhandled publish item type %d", aProtocolItemType) ; break ; } delete hashObtained ; } return retval ; } bool ProtocolMessageParser::parsePrivMsgPublishedOrSent(const unsigned char aItemType, const QByteArray& aPublishedContent, const Connection &aConnection ) { LOG_STR2("ProtocolMessageParser::parsePrivMsgPublishedOrSent type %d", (int)aItemType); bool retval = false ; // in publish of priv msg there is // 1. magick numbah KPrivMessagePublish // 2. bangpath of low-order bits of hosts // 3. content hash // 4. len of data (32bit) // 5. data // 6. len of signature (32bit) // 7. signature // 8. quint32 for timestamp (time_t) of the content // 9. destination node hash (may be all zeroes and that's all right) // 10. recipient profile hash // if it is question of private message send, the structure is same, but // bangpath is missing from between if ( (unsigned)(aPublishedContent.size()) > ( sizeof (char) + // magick ( sizeof (quint32) * 5 ) + // bangpath ( sizeof (quint32) * 5 ) + // hash sizeof (quint32) + // content len 1 + // at least 1 byte of content sizeof (quint32) + // sig len 1 )) { // lets try int pos ( 0 ) ; pos += sizeof(char) ; // skip magick quint32 bangpath1(0) ;//these variables un-used in case of msg send quint32 bangpath2(0) ; quint32 bangpath3(0) ; quint32 bangpath4(0) ; quint32 bangpath5(0) ; if ( aItemType == KPrivMessagePublish ) { // publish has bangpath, send has not // read bangpath values from content uintFromPosition(aPublishedContent, pos, &bangpath1) ; pos += sizeof(quint32) ; // skip first bangpath ; uintFromPosition(aPublishedContent, pos, &bangpath2) ; pos += sizeof(quint32) ; // skip 2nd bangpath ; uintFromPosition(aPublishedContent, pos, &bangpath3) ; pos += sizeof(quint32) ; // skip 3rd bangpath ; uintFromPosition(aPublishedContent, pos, &bangpath4) ; pos += sizeof(quint32) ; // skip 4th bangpath ; uintFromPosition(aPublishedContent, pos, &bangpath5) ; pos += sizeof(quint32) ; // skip last bangpath ; } // then try find content hash Hash* hashObtained = new Hash() ; if ( hashFromPosition(aPublishedContent, pos, hashObtained) == false ) { delete hashObtained ; return false ; } pos += (sizeof(quint32) * 5) ; // skip hash // then read content len and content quint32 contentlen (0); uintFromPosition(aPublishedContent, pos, &contentlen) ; pos += sizeof(quint32) ; // skip content len // content can't be longer than 2 megabytes if ( ( contentlen > KMaxProtocolItemSize ) || ( (unsigned)(aPublishedContent.size()) < pos+contentlen ) ) { delete hashObtained ; return false ; } QByteArray content ( aPublishedContent.mid(pos,contentlen) ) ; pos += contentlen ; if ( aPublishedContent.size() < pos+2 ) { delete hashObtained ; return false ; } // then read signature len and signature quint32 signaturelen (0); uintFromPosition(aPublishedContent, pos, &signaturelen) ; pos += sizeof(quint32) ; // skip signature len if ( (unsigned)(aPublishedContent.size()) < pos+signaturelen+sizeof(quint32) ) { delete hashObtained ; return false ; } QByteArray signature ( aPublishedContent.mid(pos,signaturelen) ) ; pos += signaturelen ; // pos should now point to timestamp quint32 timestampOfContent (0) ; uintFromPosition(aPublishedContent, pos, ×tampOfContent) ; #ifndef WIN32 #ifdef DEBUG time_t contentTime_T ( timestampOfContent ) ; char timebuf[40] ; LOG_STR2("Priv msg time of publish at receive: %s", ctime_r(&contentTime_T,timebuf)) ; #endif #endif pos += sizeof(quint32) ; // skip over timestamp Hash destinationNodeHash ; if ( hashFromPosition(aPublishedContent, pos, &destinationNodeHash) == false ) { delete hashObtained ; return false ; } pos += sizeof(quint32)*Hash::KNumberOfIntsInHash ; // skip over dest hash Hash recipientHash ; if ( hashFromPosition(aPublishedContent, pos, &recipientHash) == false ) { delete hashObtained ; return false ; } pos += sizeof(quint32)*Hash::KNumberOfIntsInHash ; // skip over recipient // post data into datamodel differently, depending on publish/send if ( aItemType == KPrivMessagePublish ) { QList bangPath ; // here penalize hosts with hash last 32 bits all zero? // they will still receive content via content-copy instead // of publish, and surely by asking.. if ( bangpath1 > 0 ) { bangPath.append(bangpath1) ; } if ( bangpath2 > 0 ) { bangPath.append(bangpath2) ; } if ( bangpath3 > 0 ) { bangPath.append(bangpath3) ; } if ( bangpath4 > 0 ) { bangPath.append(bangpath4) ; } if ( bangpath5 > 0 ) { bangPath.append(bangpath5) ; } // if bangpath is not yet full, if ( bangPath.size() < 5 ) { // then append the host where we got this content: iModel.lock() ; bangPath.append(aConnection.node()->nodeFingerPrint().iHash160bits[4] ) ; LOG_STR2("Appending to bangpath low-order bits %u", aConnection.node()->nodeFingerPrint().iHash160bits[4]) ; iModel.unlock() ; } // all right dudes. iModel.lock() ; retval = iModel.privateMessageModel().publishedPrivMessageReceived(*hashObtained, content, signature, bangPath, destinationNodeHash, recipientHash, timestampOfContent, aConnection.node()->nodeFingerPrint()) ; iModel.unlock() ; } else { // was send iModel.lock() ; retval = iModel.privateMessageModel().sentPrivMessageReceived(*hashObtained, content, signature, destinationNodeHash, recipientHash, timestampOfContent, aConnection.node()->nodeFingerPrint()) ; iModel.unlock() ; } delete hashObtained ; } return retval ; } bool ProtocolMessageParser::parseProfileCommentPublishedOrSent(const unsigned char aProtocolItemType, const QByteArray& aPublishedContent, const Connection &aConnection ) { bool retval ( false ) ; // first magick number KProfileCommentPublish/KProfileCommentSend // if ( aPublish ) { // then bangpath 5 items and if not all 5 are filled, // the remaining ones are filled with zeroes. // } // then content hash, 5*32 bytes // then commented profile hash, 5*32 bytes // then length of the actual data, followed by the actual data // then length of the signature, followeds by the signature. // then flags, one unsigned 32-bit. // * if bit 1 is up, it means that content is encrypted. // then time when content was published. int pos ( sizeof(unsigned char) ) ; // skip magick number, we have it in // aProtocolItemType quint32 bangpath1(0) ;//these variables un-used in case of comment send quint32 bangpath2(0) ; quint32 bangpath3(0) ; quint32 bangpath4(0) ; quint32 bangpath5(0) ; if ( aProtocolItemType == KProfileCommentPublish ) { // publish has bangpath, send has not // read bangpath values from content if (!uintFromPosition(aPublishedContent, pos, &bangpath1) ) return false ; pos += sizeof(quint32) ; // skip first bangpath ; if (!uintFromPosition(aPublishedContent, pos, &bangpath2) ) return false ; pos += sizeof(quint32) ; // skip 2nd bangpath ; if (!uintFromPosition(aPublishedContent, pos, &bangpath3) ) return false ; pos += sizeof(quint32) ; // skip 3rd bangpath ; if (!uintFromPosition(aPublishedContent, pos, &bangpath4) ) return false ; pos += sizeof(quint32) ; // skip 4th bangpath ; if (!uintFromPosition(aPublishedContent, pos, &bangpath5) ) return false ; pos += sizeof(quint32) ; // skip last bangpath ; } // then comment hash Hash hashOfContent ; if ( hashFromPosition(aPublishedContent, pos, &hashOfContent) == false ) { return false ; } else { pos += sizeof(quint32)*Hash::KNumberOfIntsInHash ; // skip hash } Hash hashOfProfileCommented ; if ( hashFromPosition(aPublishedContent, pos, &hashOfProfileCommented) == false ) { return false ; } else { pos += sizeof(quint32)*Hash::KNumberOfIntsInHash ; // skip hash } quint32 contentlen (0); uintFromPosition(aPublishedContent, pos, &contentlen) ; pos += sizeof(quint32) ; // skip content len // content can't be longer than 2 megabytes if ( ( contentlen > KMaxProtocolItemSize ) || ( (unsigned)(aPublishedContent.size()) < pos+contentlen ) ) { return false ; } const QByteArray content ( aPublishedContent.mid(pos,contentlen) ) ; pos += contentlen ; quint32 signaturelen (0); uintFromPosition(aPublishedContent, pos, &signaturelen) ; if ( signaturelen > 5000 || ( (unsigned)(aPublishedContent.size()) < pos+signaturelen+sizeof(quint32) ) ) { return false ; } else { pos += sizeof(quint32) ; // skip signature len } const QByteArray signature ( aPublishedContent.mid(pos,signaturelen) ) ; pos += signaturelen ; // ok, now we have content hash,profile hash, // content, signature, next item is flags: quint32 flags ; if ( uintFromPosition(aPublishedContent, pos, &flags) == false ) { return false ; } else { pos += sizeof(quint32) ; // skip signature len } // and finally timestamp of publish: quint32 timeOfPublish ; if ( uintFromPosition(aPublishedContent, pos, &timeOfPublish) == false ) { return false ; } else { if ( timeOfPublish > ( QDateTime::currentDateTimeUtc().toTime_t() + 600 ) ) { QLOG_STR("Clock skew detected, skipping content..") ; } else { if ( aProtocolItemType == KProfileCommentPublish ) { iModel.lock() ; QList bangPath ; // here penalize hosts with hash last 32 bits all zero? // they will still receive content via content-copy instead // of publish, and surely by asking.. if ( bangpath1 > 0 ) { bangPath.append(bangpath1) ; } if ( bangpath2 > 0 ) { bangPath.append(bangpath2) ; } if ( bangpath3 > 0 ) { bangPath.append(bangpath3) ; } if ( bangpath4 > 0 ) { bangPath.append(bangpath4) ; } if ( bangpath5 > 0 ) { bangPath.append(bangpath5) ; } // if bangpath is not yet full, if ( bangPath.size() < 5 ) { // then append the host where we got this content: bangPath.append(aConnection.node()->nodeFingerPrint().iHash160bits[4] ) ; LOG_STR2("Appending to bangpath low-order bits %u", aConnection.node()->nodeFingerPrint().iHash160bits[4]) ; } retval = iModel.profileCommentModel().publishedProfileCommentReceived(hashOfContent, hashOfProfileCommented, content, signature, bangPath, flags, timeOfPublish, aConnection.node()->nodeFingerPrint()) ; iModel.unlock() ; } else { iModel.lock() ; retval = iModel.profileCommentModel().sentProfileCommentReceived(hashOfContent, hashOfProfileCommented, content, signature, flags, timeOfPublish, aConnection.node()->nodeFingerPrint()) ; iModel.unlock() ; } } // post the data into datamodel } return retval ; } bool ProtocolMessageParser::parseMultipleNodeGreetingsV1(const QByteArray& aGoodFood, const Connection &aConnection ) { int pos = 0 ; quint32 messageLen (0); bool retval = false ; LOG_STR2("parseMultipleNodeGreetingsV1 size = %d", aGoodFood.size()) ; while ( pos < aGoodFood.size() ) { LOG_STR2("parsemultiple pos = %d",(int)pos) ; LOG_STR2("parsemultiple total = %d",(int)aGoodFood.size()) ; if ( uintFromPosition( aGoodFood, pos+1, &messageLen) == true && messageLen > 0 ) { LOG_STR2("size of single msg = %d",(int)messageLen) ; if ( messageLen > (unsigned)(aGoodFood.size()) ) { return false ; // can not be } retval = parseNodeGreetingV1(aGoodFood.mid(pos,messageLen),aConnection) ; if ( !retval ) { break ; } pos = pos + messageLen ; } } return retval ; } bool ProtocolMessageParser::parseNodeGreetingV1(const QByteArray& aSingleNodeGreeting, const Connection& aConnection ) { bool retval = false ; // byte 0 message identifier // byte 1-5 message length, quint32 in network byteorder // followed by JSON const unsigned char msgId = aSingleNodeGreeting[0] ; if (msgId == KProtocolVersion ) { quint32 JSONlen ; if ( uintFromPosition( aSingleNodeGreeting, 1, &JSONlen) == true ) { if ( (int)(JSONlen ) == aSingleNodeGreeting.size() ) { bool ok; QByteArray unCompressedNodeGreeting ( qUncompress(aSingleNodeGreeting.mid(5))) ; if ( unCompressedNodeGreeting.size() > 0 ) { QVariantMap result ( JSonWrapper::parse (unCompressedNodeGreeting, &ok)); QLOG_STR("Size of uncompressed = " + QString::number(unCompressedNodeGreeting.length()) + " ok = " + QString::number((int)ok)) ; if (!ok) { return false ; } else { Node* n ( Node::fromQVariant(result, aConnection.iNumberOfPacketsReceived == 1) ) ; if ( n ) { if ( (aConnection.iNumberOfPacketsReceived == 1) && (!(aConnection.node()->nodeFingerPrint() == n->nodeFingerPrint())) ) { LOG_STR("Node is sending different FP in greeting and SSL") ; delete n ; return false ; } iModel.lock() ; if ( n->nodeFingerPrint() == iController.getNode().nodeFingerPrint() ) { QLOG_STR("Received my own node ref, not saving..") ; retval = true ; } else { bool wasInitialConnection ( aConnection.iNumberOfPacketsReceived == 1 ) ; if (!iModel.nodeModel().nodeGreetingReceived(*n, wasInitialConnection ) ) { LOG_STR("Update was not suksee") ; retval = false ; } else { LOG_STR2("Update was success, retval = %d", (int)retval) ; if ( aConnection.iNumberOfPacketsReceived == 1 ) { // node was updated/inserted ; datamodel has // set possible last mutual connect time of // that node into inserted node .. because connection // holds different instance, copy the value there aConnection.node()->setLastMutualConnectTime(n->lastMutualConnectTime()) ; LOG_STR2("Setting last mutual of node to %u", (unsigned)(aConnection.node()->lastMutualConnectTime())) ; } retval = true ; } } iModel.unlock() ; delete n ; } } } } } } return retval ; } bool ProtocolMessageParser::uintFromPosition(const QByteArray& aGoodFood, const int aPos, quint32* aResult) const { if ( aGoodFood.size() < (aPos + (int)(sizeof(quint32)))) { // sizeof returns unsigned, size() signed .. return false ; } const char *byteArrayContent = aGoodFood.constData() ; quint32* uintNetworkByteOrder = (quint32*)(&byteArrayContent[aPos]) ; *aResult = ntohl(*uintNetworkByteOrder) ; // LOG_STR2("uint from pos %d ", aPos) ; // LOG_STR2("is %x ", *aResult) ; return true; } bool ProtocolMessageParser::hashFromPosition(const QByteArray& aGoodFood, const int aPos, Hash* aResultHash) const { if ( aGoodFood.size() < (aPos + (int)(sizeof(quint32)*5))) { // sizeof returns unsigned, size() signed .. return false ; } quint32 hashBytes1 ; quint32 hashBytes2 ; quint32 hashBytes3 ; quint32 hashBytes4 ; quint32 hashBytes5 ; if ( uintFromPosition( aGoodFood, aPos, &hashBytes1) == false ) { LOG_STR2("hash bytes 1 not found at pos %d", aPos); return false ; } if ( uintFromPosition( aGoodFood, aPos+sizeof(quint32), &hashBytes2) == false ) { LOG_STR2("hash bytes 2 not found at pos %d", aPos); return false ; } if ( uintFromPosition( aGoodFood, aPos+(sizeof(quint32)*2), &hashBytes3) == false ) { LOG_STR2("hash bytes 3 not found at pos %d", aPos); return false ; } if ( uintFromPosition( aGoodFood, aPos+(sizeof(quint32)*3), &hashBytes4) == false ) { LOG_STR2("hash bytes 4 not found at pos %d", aPos); return false ; } if ( uintFromPosition( aGoodFood, aPos+(sizeof(quint32)*4), &hashBytes5) == false ) { LOG_STR2("hash bytes 5 not found at pos %d", aPos); return false ; } aResultHash->iHash160bits[0] = hashBytes1; aResultHash->iHash160bits[1] = hashBytes2; aResultHash->iHash160bits[2] = hashBytes3; aResultHash->iHash160bits[3] = hashBytes4; aResultHash->iHash160bits[4] = hashBytes5; return true; } bool ProtocolMessageParser::parseRequestForObjectsAroundHash(const QByteArray& aNodeRefRequest, const Connection &aConnection ) { if ((unsigned)(aNodeRefRequest.size()) < sizeof(unsigned char) + ( 5 * sizeof (quint32) ) ) { return false ; } Hash* hashObtained = new Hash() ; if ( hashFromPosition(aNodeRefRequest, 1, hashObtained) == false ) { delete hashObtained ; return false ; } quint32 timeStampOfMessages ( 0 ) ; if ( aNodeRefRequest[0] == KPrivMessagesForProfile || aNodeRefRequest[0] == KProfileCommentAtHash ) { // private messages + comment req contain an extra uint having the // timestamp of the messages if ( uintFromPosition( aNodeRefRequest, 1+(sizeof(quint32)*Hash::KNumberOfIntsInHash), &timeStampOfMessages) == false ) { delete hashObtained ; return false ; } } // ok, fine, now we have the hash and we know who requested it ; // who's gonna deliver? struct NetworkRequestExecutor::NetworkRequestQueueItem nodeRequest ; nodeRequest.iTimeStampOfItem = 0 ; switch ( aNodeRefRequest[0] ) { case KNodesAroundHash: // reply type for this query is series of nodegreetings nodeRequest.iRequestType = NodeGreeting ; nodeRequest.iMaxNumberOfItems = 10 ; break ; case KProfileAtHash: // type of reply for "profile at hash" is surprisingly, profile. // for profilecomments there is separate call that has timestamp // along.. nodeRequest.iRequestType = UserProfile ; nodeRequest.iMaxNumberOfItems = 1 ; break ; case KBinaryFileAtHash: // type of reply for "profile at hash" is binary file nodeRequest.iRequestType = BinaryBlob ; nodeRequest.iMaxNumberOfItems = 1 ; break ; case KClassifiedAdAtHash: // type of reply for "ca at hash" is classified a nodeRequest.iRequestType = ClassifiedAd ; nodeRequest.iMaxNumberOfItems = 1 ; break ; case KPrivMessagesAtHash: nodeRequest.iRequestType = PrivateMessage ; nodeRequest.iMaxNumberOfItems = 1 ; break ; case KPrivMessagesForProfile: nodeRequest.iTimeStampOfItem = timeStampOfMessages ; nodeRequest.iRequestType = PrivateMessagesForProfile ; nodeRequest.iMaxNumberOfItems = 1 ; break ; case KProfileCommentAtHash: nodeRequest.iTimeStampOfItem = timeStampOfMessages ; // when network request executor sees this, it will queue profile comments // that comment given profile. those comments will then be sent individually. // if there has been update to the profile itself, // it should be sent too nodeRequest.iRequestType = UserProfileCommentsForProfile ; nodeRequest.iMaxNumberOfItems = 1000 ; { #ifndef WIN32 #ifdef DEBUG time_t commentTime_T ( timeStampOfMessages ) ; char timebuf[40] ; LOG_STR2("KProfileCommentAtHash for timestamp: %s", ctime_r(&commentTime_T,timebuf)) ; #endif #endif } break ; case KSingleProfileCommentAtHash: // other nodes wants individual comment nodeRequest.iRequestType = UserProfileComment ; nodeRequest.iMaxNumberOfItems = 1 ; break ; default: LOG_STR2("Unhandled protocol request type %d", (int) (aNodeRefRequest[0])); delete hashObtained ; return false ; // not handled } nodeRequest.iDestinationNode = aConnection.node()->nodeFingerPrint() ; nodeRequest.iRequestedItem = *hashObtained ; nodeRequest.iState = NetworkRequestExecutor::NewRequest ; iModel.lock() ; iModel.addNetworkRequest(nodeRequest) ; iModel.unlock() ; delete hashObtained ; return true ; } bool ProtocolMessageParser::parseAdsClassifiedAtHash( const QByteArray& aQueryBytes, const Connection &aConnection) { if (aQueryBytes.size() != sizeof(unsigned char) + ( 7 * sizeof (quint32) ) ) { // message contains identifier and a hash and 2 timestamps. so the size is fixed. return false ; } else { Hash* hashObtained = new Hash() ; if ( hashFromPosition(aQueryBytes, sizeof(unsigned char), hashObtained) == false ) { delete hashObtained ; return false ; } quint32 startTsHostBo ; quint32 endTsHostBo ; if ( uintFromPosition( aQueryBytes, sizeof(unsigned char)+(sizeof(quint32)*5), &startTsHostBo) == false ) { delete hashObtained ; return false ; } if ( uintFromPosition( aQueryBytes, sizeof(unsigned char)+(sizeof(quint32)*6), &endTsHostBo) == false ) { delete hashObtained ; return false ; } struct NetworkRequestExecutor::NetworkRequestQueueItem classifiedRequest ; classifiedRequest.iDestinationNode = aConnection.node()->nodeFingerPrint() ; classifiedRequest.iRequestedItem = *hashObtained ; classifiedRequest.iTimeStampOfItem = startTsHostBo ; classifiedRequest.iTimeStampOfLastActivity = endTsHostBo ; classifiedRequest.iState = NetworkRequestExecutor::NewRequest ; classifiedRequest.iRequestType = RequestAdsClassified ; iModel.lock() ; iModel.addNetworkRequest(classifiedRequest) ; iModel.unlock() ; delete hashObtained ; return true ; } } bool ProtocolMessageParser::parseListOfAdsClassifiedAtHash( const QByteArray& aQueryBytes, const Connection &aConnection) { QList > listOfAds ; int pos ( 1 ) ; // set to 1 to immediately skip the protocol identifier as it // has been checked already Hash hashOfClassification ; if ( hashFromPosition(aQueryBytes, pos, &hashOfClassification ) == false ) { return false ; } pos += sizeof(quint32)*Hash::KNumberOfIntsInHash ; // skip over hashOfClassication quint32 numberOfAdsInMessage ( 0 ) ; if ( uintFromPosition( aQueryBytes, pos, &numberOfAdsInMessage ) == false ) { return false ; } pos += sizeof(quint32) ; // skip over numberOfAdsInMessage for ( quint32 i = 0 ; i < numberOfAdsInMessage ; i++ ) { Hash hashOfArticle ; quint32 timeStampOfArticle ; if ( hashFromPosition(aQueryBytes, pos, &hashOfArticle ) == false ) { return false ; } pos += sizeof(quint32)*Hash::KNumberOfIntsInHash ; // skip over hash if ( uintFromPosition( aQueryBytes, pos, &timeStampOfArticle ) == false ) { return false ; } pos += sizeof(quint32) ; // skip over timestamp of article QPair p ( hashOfArticle, timeStampOfArticle ) ; listOfAds.append(p) ; #ifndef WIN32 #ifdef DEBUG time_t articleTime_T ( timeStampOfArticle ) ; char timebuf[40] ; LOG_STR2("List of ads: Article timestamp: %s", ctime_r(&articleTime_T,timebuf)) ; #endif #endif QLOG_STR("List of ads " + hashOfArticle.toString() + " ts " + QString::number(timeStampOfArticle)) ; } return iModel.classifiedAdsModel().caListingByClassificationReceived(listOfAds, aConnection.node()->nodeFingerPrint(), hashOfClassification) ; } bool ProtocolMessageParser::parseSearchRequest( const QByteArray& aQueryBytes, Connection& aConnection) { bool retval = false ; // ok, search request is // 8 bit magic // 32 bit flags // 32 bit search id to pass back in results // 32 bit length of search phrase // search phrase in utf-8 int pos ( 1 ) ; // set to 1 to immediately skip the protocol identifier as it // has been checked already unsigned len = (unsigned)(aQueryBytes.size()) ; if ( len > sizeof(unsigned char) + ( sizeof(quint32) * 3 ) ) { quint32 flags ( 0 ) ; if ( uintFromPosition ( aQueryBytes, pos, &flags ) == false ) { return false ; } pos += sizeof(quint32) ; quint32 searchId ( 0 ) ; if ( uintFromPosition ( aQueryBytes, pos, &searchId ) == false ) { return false ; } pos += sizeof(quint32) ; quint32 strLen ( 0 ) ; if ( uintFromPosition ( aQueryBytes, pos, &strLen ) == false ) { return false ; } pos += sizeof(quint32) ; if ( len != ( strLen + ( sizeof(unsigned char) + ( sizeof(quint32) * 3 ) ) ) ) { return false ; } QString queryStr ; queryStr = QString::fromUtf8(aQueryBytes.mid(pos,strLen).constData(), strLen) ; if ( queryStr.length() > 0 ) { retval = true ; bool searchAds = flags & 0x01 ; bool searchProfiles = flags & ( 0x01 << 1 ) ; bool searchComments = flags & ( 0x01 << 2 ) ; iModel.lock() ; QList results = iModel.searchModel()->performSearch(queryStr, searchAds, searchProfiles, searchComments) ; if ( results.size() > 0 ) { // immediately queue for send QByteArray* serializedResults = new QByteArray() ; serializedResults->append( ProtocolMessageFormatter::searchResultsSend(results, searchId)) ; if ( serializedResults->size() > 0 ) { aConnection.iNextProtocolItemToSend.append(serializedResults) ; } else { delete serializedResults ; } } iModel.unlock() ; } } return retval ; } bool ProtocolMessageParser::parseSearchResults( const QByteArray& aQueryBytes, const Connection& aConnection) { bool retval = false ; int pos ( 1 ) ; // set to 1 to immediately skip the protocol identifier as it // has been checked already unsigned len = (unsigned)(aQueryBytes.size()) ; quint32 jsonLen ( 0 ) ; if ( uintFromPosition ( aQueryBytes, pos, &jsonLen ) == false ) { return false ; } pos += sizeof(quint32) ; if ( len == (jsonLen + sizeof(unsigned char) + sizeof(quint32)) ) { QVariantMap result (JSonWrapper::parse ( aQueryBytes.mid(pos, jsonLen), &retval) ) ; if ( retval == true ) { QList results; quint32 searchId ; if ( SearchModel::deSerializeSearchResults(result,&results,&searchId) ) { iModel.lock() ; iModel.searchModel()->appendNetworkSearchResults(results, searchId, aConnection.getPeerHash()) ; iModel.unlock() ; } else { return false ; } } } else { QLOG_STR("Search result protocol item size does not match!!") ; } return retval ; } classified-ads-0.09/net/protocol_message_parser.h000066400000000000000000000156561260620453500222150ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef PROTOCOL_MESSAGE_PARSER_H #define PROTOCOL_MESSAGE_PARSER_H #include "protocol.h" #include #include // Q_IPV6ADDR #include "node.h" // KNullIpv6Addr #include "connection.h" class MController ; class MModelProtocolInterface ; class MNodeModelProtocolInterface ; class Connection ; /** * @brief Class containing routines for parsing protocol messages. * Methods are mainly called from network connection instances * and this class will forward the parsed protocol entities * to datamodel */ class ProtocolMessageParser : public QObject { Q_OBJECT public: ProtocolMessageParser (MController &aController, MModelProtocolInterface &aModel) ; /** * the open mouth * @param aGoodFood is the message * @return false if such a fatal error that peer needs to be disconnected */ bool parseMessage(const QByteArray& aGoodFood, Connection& aConnection ) ; private: // private methods for doing the actual work /** Peer hello message */ bool parseNodeGreetingV1(const QByteArray& aSingleNodeGreeting, const Connection &aConnection ) ; /** * Peer number of hello messages * @param aGoodFood at least one node greeting * @param aConnection the orignating connection */ bool parseMultipleNodeGreetingsV1(const QByteArray& aGoodFood, const Connection& aConnection ) ; /** * utility method: extract integer from bytearray. integer * will be returned in host byte order e.g. * @param aGoodFood is the bytearray from which to extract * @param aPos is the position where integer is expected to * be found * @param aResult is the quint32 where result will be written * e.g. this is the output variable * @return true if reading succeeded */ bool uintFromPosition(const QByteArray& aGoodFood, const int aPos, quint32* aResult) const ; /** * utility method: extract hash from bytearray. * @param aGoodFood is the bytearray from which to extract * @param aPos is the position where integer is expected to * be found * @param aResultHash is the hash that will have its * value set from contents of aGoodFood * @return true if success */ bool hashFromPosition(const QByteArray& aGoodFood, const int aPos, Hash* aResultHash) const ; /** * Method for parsing request to send one or more objects * specified by a hash. */ bool parseRequestForObjectsAroundHash(const QByteArray& aNodeRefRequest, const Connection &aConnection ) ; /** * Method for parsing published content. Content-type is given * as parameter ; single method as the structure is anyway same, * handling is different.. * * This method is also used to parse content sent ; it differs from * published content so, that it has no bangpath but otherwise * the format is the same. */ bool parseContentPublishedOrSent(const unsigned char aProtocolItemType, const QByteArray& aPublishedContent, const Connection &aConnection ) ; /** * Method for parsing published private message. Does about same * work as @ref parseContentPublishedOrSent but structure of * private messages is somewhat different. */ bool parsePrivMsgPublishedOrSent(const unsigned char aProtocolItemType, const QByteArray& aPublishedContent, const Connection &aConnection ) ; /** * Method for parsing published profile comments. Does about same * work as @ref parseContentPublishedOrSent but structure of * profile commentss is somewhat different. */ bool parseProfileCommentPublishedOrSent(const unsigned char aProtocolItemType, const QByteArray& aPublishedContent, const Connection &aConnection ) ; /** * method for parsing request that requests for classified * ads whose classification matches given hash * @param aQueryBytes contains the query * @param aConnection is the requester */ bool parseAdsClassifiedAtHash( const QByteArray& aQueryBytes, const Connection &aConnection) ; /** * Method for parsing list of headers of classified ads. * In practice this parses the protocol message sent with * id KListOfAdsClassifiedAtHash. */ bool parseListOfAdsClassifiedAtHash( const QByteArray& aQueryBytes, const Connection &aConnection) ; /** * Method for parsing a search request from remote node. * If parse is successful, this method will also ask searchmodel * to perform the search and place possible results immediately * into send-queue of aConnection so search works slightly differently * compared to rest of the network requests * @param aQueryBytes serialized query-description * @param aConnection is connection of the node who sent the request * @return true if things went all right. */ bool parseSearchRequest( const QByteArray& aQueryBytes, Connection& aConnection) ; /** * Method for parsing a search result from remote node. * In this case this node made a search request and this * is reply (containing list of objects matching * the query). * @param aQueryBytes serialized query-description * @param aConnection is connection of the node who sent the request * @return true if things went all right. */ bool parseSearchResults( const QByteArray& aQueryBytes, const Connection& aConnection) ; private: MController &iController ; MModelProtocolInterface &iModel ; } ; #endif classified-ads-0.09/net/publishingengine.cpp000066400000000000000000000445501260620453500211540ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "publishingengine.h" #include "../log.h" #include "../controller.h" #include "../datamodel/model.h" #include "node.h" #include "connection.h" PublishingEngine::PublishingEngine(Controller* aController, Model& aModel) : QTimer(aController), iNeedsToRun(true), iController(aController), iModel(aModel), iNowRunning(false) { iNodeCandidatesToTryPush.clear() ; iWorkItem.iObjectHash = KNullHash ; // NULL hash in the beginning, connect(this, SIGNAL(timeout()), this, SLOT(run())); } PublishingEngine::~PublishingEngine() { LOG_STR("PublishingEngine::~PublishingEngine") ; emptyNodeCandidateList() ; LOG_STR("PublishingEngine::~PublishingEngine out") ; } // lets have the logic work like this: // quite often poll the table of published works. // when there is an item in the table, ask for nodes // that are destination addresses for the published items. // match that list with list of already-connected nodes ; // if we already have connections to nodes that are on // our list, do the following loop: // 1. put published item into send queue // 2. ask for notification that item has been sent ; // upon receiving, update the bangpath in publish-tables // 3. select next already-connected host // when already-connected hosts run out and we still have // nodes in our list where content should be sent, run following loop // 1. ask network-connection engine to obtain connection to host // 2. if unsuccessful, move to next host // 3. if success, put published item into send queue // 4. ask for notificatoin that item has been sent ; // upon receiving, update the bangpath in publish-tables // 5. select next non-connected host // with these steps this method should push the published content // into 5 hosts. each of these will do the same with publish-count=4, // each of those 4 will do the same with publish-count=3, each of // those 3 will do the same with publish-count=2 void PublishingEngine::run() { if ( iNowRunning == false ) { iNowRunning = true ; if (iNeedsToRun ) { if ( iWorkItem.iObjectHash == KNullHash ) { // we have nothing particular to do, sleep for 10s and // query iModel.lock() ; bool found = false ; iNodesSuccessfullyConnected.clear(); iNodesFailurefullyConnected.clear(); iWorkItem = iModel.nextItemToPublish(&found) ; if ( !found ) { iWorkItem.iObjectHash = KNullHash ; } else { LOG_STR2("PublishingEngine::run got item to pub %d ", iWorkItem.iObjectType) ; QList* nodesToTry = NULL ; switch ( iWorkItem.iObjectType ) { case ClassifiedAd2NdAddr: nodesToTry = iModel.nodeModel().getNodesAfterHash(iWorkItem.i2NdAddr, 20, // 20 nodes 300 ) ;// at most 5 hours old break ; case UserProfileComment: // user profile commments get published to profile address, // not content address nodesToTry = iModel.nodeModel().getNodesAfterHash(iWorkItem.i2NdAddr, 20, // 20 nodes 300 ) ;// at most 5 hours old break ; default: nodesToTry = iModel.nodeModel().getNodesAfterHash(iWorkItem.iObjectHash, 20, // 20 nodes 300 ) ;// at most 5 hours old break ; } if ( nodesToTry == NULL || nodesToTry->size() == 0 ) { // uh, oh. do not try then. iWorkItem.iObjectHash = KNullHash ; LOG_STR("But got no nodes to try? ") ; } else { emptyNodeCandidateList() ; while ( ! nodesToTry->isEmpty() ) { Node* connectCandidate ( nodesToTry->takeFirst() ) ; if ( iModel.nodeModel().isNodeAlreadyConnected(*connectCandidate) ) { publishToNode(connectCandidate->nodeFingerPrint()) ; delete connectCandidate ; } else { iNodeCandidatesToTryPush.append(connectCandidate) ; } } iStageOfPublish = InitialStage; } delete nodesToTry ; } iModel.unlock() ; } // ok, we've got something..? if ( iWorkItem.iObjectHash != KNullHash ) { switch ( iStageOfPublish ) { case InitialStage: // ok, we just started. first look how many our desired nodes // are already connected and do those: sendPublishItemToAlreadyConnectedNodes() ; iStageOfPublish = AwaitingConnection; askConnectionsForNodesOnPublishList() ; break ; case AwaitingConnection: checkForSuccessfullyConnectedNodes() ; checkForUnSuccessfullyConnectedNodes() ; // check if we managed to run out of nodes: if ( iNodeCandidatesToTryPush.isEmpty() ) { // then pick up next publish-item and leave this behind iWorkItem.iObjectHash = KNullHash ; LOG_STR("PubEng: No more nodes to try ; picking up next item..") ; } break ; } } iNowRunning = false ; } } } void PublishingEngine::emptyNodeCandidateList() { while ( ! iNodeCandidatesToTryPush.isEmpty() ) { LOG_STR2("in emptyNodeCandidateList len of list is %d", (int)(iNodeCandidatesToTryPush.size())) ; Node* n = iNodeCandidatesToTryPush.takeFirst() ; delete n ; } } void PublishingEngine::askConnectionsForNodesOnPublishList() { // this is run at publish begin: we have item, we have // connected nodes. publish happens automatically to // nodes that are connected but some nodes then remain.. // here add the remaining nodes to network engines wishlist // so that it will attempt to connect: iModel.lock() ; for ( int i = 0 ; i < iNodeCandidatesToTryPush.size() ; i++ ) { Node* n = iNodeCandidatesToTryPush.at(i) ; // make copy of the node, because datamodel takes ownership: Node* wishListItem = Node::fromQVariant(n->asQVariant().toMap(), false) ; if ( wishListItem ) { iModel.nodeModel().addNodeToConnectionWishList(wishListItem) ; } } iModel.unlock() ; } void PublishingEngine::nodeConnectionAttemptStatus(Connection::ConnectionState aStatus, const Hash aHashOfAttemptedNode ) { LOG_STR2("PublishingEngine::nodeConnectionAttemptStatus %d in", aStatus) ; LOG_STR2("PublishingEngine::nodeConnectionAttemptStatus %s ", qPrintable(aHashOfAttemptedNode.toString())) ; // use model to lock our own resources too.. iModel.lock() ; for ( int i = 0 ; i < iNodeCandidatesToTryPush.size() ; i++ ) { if ( iNodeCandidatesToTryPush[i]->nodeFingerPrint() == aHashOfAttemptedNode ) { if ( aStatus == Connection::Open ) { if ( ! iNodesSuccessfullyConnected.contains(aHashOfAttemptedNode) ) { iNodesSuccessfullyConnected.append(aHashOfAttemptedNode) ; } } else { if ( ! iNodesFailurefullyConnected.contains(aHashOfAttemptedNode) ) { iNodesFailurefullyConnected.append(aHashOfAttemptedNode) ; } } break ; } } iModel.unlock() ; // so just add the hash into 1 of our internal arrays, run() will pick up // the items from list and try to do something clever } void PublishingEngine::sendPublishItemToAlreadyConnectedNodes() { iModel.lock() ; const QList & currentlyOpenConnections ( iModel.getConnections() ) ; for ( int i = iNodeCandidatesToTryPush.size()-1 ; ( i >=0 ) && ( iWorkItem.iObjectHash != KNullHash ) ; i-- ) { for ( int j = currentlyOpenConnections.size()-1 ; ( j >= 0 ) && ( iWorkItem.iObjectHash != KNullHash ) ; j-- ) { const Node* conn_n = currentlyOpenConnections[j]->node() ; if ( ( conn_n!= NULL ) && ( conn_n->nodeFingerPrint() == iNodeCandidatesToTryPush[i]->nodeFingerPrint() ) ) { // yes, a match. Node* n = iNodeCandidatesToTryPush[i] ; // here check if that node already got it: for ( int k = 0 ; k < iWorkItem.iAlreadyPushedHosts.size() ; k++ ) { LOG_STR2("iWorkItem.iAlreadyPushedHosts contains %u", iWorkItem.iAlreadyPushedHosts[k]) ; } if ( iWorkItem.iAlreadyPushedHosts.size() == 0) { LOG_STR("iWorkItem.iAlreadyPushedHosts is empty") ; } if ( iWorkItem.iAlreadyPushedHosts.contains(n->nodeFingerPrint().iHash160bits[4])) { LOG_STR("Node already had this content ; skipping in publish") ; // and also remove from list: iNodeCandidatesToTryPush.takeAt(i) ; delete n ; n = NULL ; } else { // note that publishtonode takes node from iAlreadyPushedHosts // and deletes it ; after the line above, do not try // to reference it again .. publishToNode(n->nodeFingerPrint()) ; n = NULL ; // and now gone } break ; // out from loop of j (so that i won't get tried again because it was just deleted } } } iModel.unlock() ; } void PublishingEngine::publishToNode(const Hash& aNode) { if ( iWorkItem.iObjectHash != KNullHash ) { if ( iWorkItem.iAlreadyPushedHosts.contains(aNode.iHash160bits[4])) { LOG_STR("Node already had this content ; skipping in publish") ; } else { struct NetworkRequestExecutor::NetworkRequestQueueItem sendReq ; sendReq.iDestinationNode = aNode ; sendReq.iRequestedItem = iWorkItem.iObjectHash; sendReq.iMaxNumberOfItems = 1 ; sendReq.iBangPath = iWorkItem.iAlreadyPushedHosts ; sendReq.iState = NetworkRequestExecutor::NewRequest ; switch ( iWorkItem.iObjectType ) { case UserProfile: sendReq.iRequestType = UserProfilePublish ; iModel.addNetworkRequest(sendReq) ; iWorkItem = iModel.addNodeToPublishedItem(iWorkItem.iObjectHash, aNode) ; LOG_STR2("Published profile to node %s", qPrintable(aNode.toString())) ; LOG_STR2("Published profile to node low-order bits %u", aNode.iHash160bits[4]) ; LOG_STR2("Now work-item type is %d",(int) iWorkItem.iObjectType) ; for ( int i = 0 ; i = 0 ; i-- ) { if ( aNode == iNodeCandidatesToTryPush[i]->nodeFingerPrint() ) { Node* n = iNodeCandidatesToTryPush.takeAt(i) ; delete n ; break ; } } if ( iNodesFailurefullyConnected.contains ( aNode ) ) { iNodesFailurefullyConnected.removeOne(aNode) ; } if ( iNodesSuccessfullyConnected.contains ( aNode ) ) { iNodesSuccessfullyConnected.removeOne(aNode) ; } } } // // this method is for periodically checking if any nodes we've // asked to be connected to, has actually been connected. // if such miracle has taken place, send the stuff and remove // node from list-of-nodes-to-ask (iNodeCandidatesToTryPush) // void PublishingEngine::checkForSuccessfullyConnectedNodes() { iModel.lock() ; for ( int i = iNodeCandidatesToTryPush.size()-1 ; ( i >=0 ) && ( iWorkItem.iObjectHash != KNullHash ) ; i-- ) { if ( iNodesSuccessfullyConnected.contains(iNodeCandidatesToTryPush[i]->nodeFingerPrint()) ) { // if we came here it means that we've asked for connection to // particular node and it happened LOG_STR2("PubEng: After asking, node has been connected: %s", qPrintable(iNodeCandidatesToTryPush[i]->nodeFingerPrint().toString())) ; publishToNode(iNodeCandidatesToTryPush[i]->nodeFingerPrint()) ; } } // can be emptied every time ; if there were anything important, it // has been processed above iNodesSuccessfullyConnected.clear() ; iModel.unlock() ; } // // this is for pruning from ask-list those nodes that we've tried // to connect with no success // void PublishingEngine::checkForUnSuccessfullyConnectedNodes() { iModel.lock() ; for ( int i = iNodeCandidatesToTryPush.size()-1 ; ( i >=0 ) && ( iWorkItem.iObjectHash != KNullHash ) ; i-- ) { if ( iNodesFailurefullyConnected.contains(iNodeCandidatesToTryPush[i]->nodeFingerPrint()) ) { // if we came here it means that we've asked for connection to // particular node and it did not happen LOG_STR2("PubEng: After asking, node has not been connected: %s", qPrintable(iNodeCandidatesToTryPush[i]->nodeFingerPrint().toString())) ; Node* n = iNodeCandidatesToTryPush.takeAt(i) ; delete n ; } } // can be emptied every time ; if there were anything important, it // has been processed above iNodesFailurefullyConnected.clear() ; iModel.unlock() ; } classified-ads-0.09/net/publishingengine.h000066400000000000000000000062001260620453500206070ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef PUBLISHING_ENG_H #define PUBLISHING_ENG_H #include #include #include "connection.h" // for ConnectionObserver #include "../controller.h" #include "../datamodel/model.h" /** * @brief Network-connection logic relating content publish demands * * Class that will ask for connections to nodes destined to * be holders of stuff published in this node. Once * connection is established, stuff to be published * is copied into send-queue of the newly-connected * node. */ class PublishingEngine : public QTimer { Q_OBJECT public: /** * Constructor * @param aController application controller. not owned * @param aModel persistent storage. */ PublishingEngine(Controller* aController, Model& aModel ) ; /** * Destructor */ ~PublishingEngine() ; signals: void error(QTcpSocket::SocketError socketError); public slots: /** when connection is attempted, @ref NetworkListener will * emit the status (failed or success) of the connection, * emitted signal is connected here */ void nodeConnectionAttemptStatus(Connection::ConnectionState aStatus, const Hash aHashOfAttemptedNode ); /** * this class is a not a thread, but QTimer, thus run. */ void run(); private: void emptyNodeCandidateList() ; void askConnectionsForNodesOnPublishList() ; enum StageOfPublish { InitialStage, AwaitingConnection } ; void sendPublishItemToAlreadyConnectedNodes() ; void publishToNode(const Hash& aNode) ; void checkForSuccessfullyConnectedNodes() ; void checkForUnSuccessfullyConnectedNodes() ; public: /** when this is set to false, thread will terminate and run() return */ bool iNeedsToRun ; private: // data Controller* iController ; /**< application controller */ Model &iModel ; /**< persistent storage */ PublishItem iWorkItem ; /**< what we're trying to publish */ /** list of nodes where iWorkItem might be pushed to */ QList iNodeCandidatesToTryPush ; QList iNodesSuccessfullyConnected ; QList iNodesFailurefullyConnected ; StageOfPublish iStageOfPublish ; bool iNowRunning ; } ; #endif classified-ads-0.09/net/retrievalengine.cpp000066400000000000000000000401471260620453500210030ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "retrievalengine.h" #include "../log.h" #include "../controller.h" #include "../datamodel/model.h" #include "node.h" #include "connection.h" RetrievalEngine::RetrievalEngine(Controller* aController, Model& aModel) : QTimer(aController), iNeedsToRun(true), iController(aController), iModel(aModel), iNowRunning(false) { iNodeCandidatesToTryQuery.clear() ; connect(this, SIGNAL(timeout()), this, SLOT(run())); } RetrievalEngine::~RetrievalEngine() { LOG_STR("RetrievalEngine::~RetrievalEngine") ; emptyNodeCandidateList() ; LOG_STR("RetrievalEngine::~RetrievalEngine out") ; } void RetrievalEngine::run() { if ( iNowRunning == false ) { iNowRunning = true ; if (iNeedsToRun ) { if ( iObjectBeingRetrieved.iRequestedItem == KNullHash ) { // we had nothing to retrieve, go on and start iModel.lock() ; if ( iDownloadQueue.size() > 0 ) { iObjectBeingRetrieved = iDownloadQueue.takeAt(0) ; iObjectBeingRetrieved.iState = NetworkRequestExecutor::NewRequest ; } iModel.unlock() ; iObjectBeingRetrieved.iTimeStampOfLastActivity= QDateTime::currentDateTimeUtc().toTime_t(); } if ( iObjectBeingRetrieved.iRequestedItem != KNullHash ) { iModel.lock() ; switch ( iObjectBeingRetrieved.iState ) { case NetworkRequestExecutor::NewRequest: { // do internal initialization: iNodesSuccessfullyConnected.clear(); iNodesFailurefullyConnected.clear(); emptyNodeCandidateList() ; // initial stage, check if we have named node: if( iObjectBeingRetrieved.iDestinationNode != KNullHash ) { // we have candidate, check if it is connected, or should // we have it on wishlist: if(iModel.nodeModel().isNodeAlreadyConnected(iObjectBeingRetrieved.iDestinationNode)) { sendQueryToNode(iObjectBeingRetrieved.iDestinationNode) ; } else { iNodeCandidatesToTryQuery.append(iObjectBeingRetrieved.iDestinationNode) ; iModel.nodeModel().addNodeToConnectionWishList(iObjectBeingRetrieved.iDestinationNode); } } // additionally, to our connected nodes send a query // about nodes around that hash we want: NetworkRequestExecutor::NetworkRequestQueueItem hashReq ; hashReq.iRequestType = RequestForNodesAroundHash ; hashReq.iRequestedItem = iObjectBeingRetrieved.iRequestedItem ; hashReq.iState = NetworkRequestExecutor::NewRequest ; hashReq.iMaxNumberOfItems = 10 ; // ask from 10 nodes currently connected iModel.addNetworkRequest(hashReq) ; // datamodel will add to queue // and netreq-executor will send to 10 nodes iObjectBeingRetrieved.iState = NetworkRequestExecutor::Processing ; iObjectBeingRetrieved.iTimeStampOfLastActivity= QDateTime::currentDateTimeUtc().toTime_t(); } break ; case NetworkRequestExecutor::Processing: { if ( iObjectBeingRetrieved.iTimeStampOfLastActivity + 10 < QDateTime::currentDateTimeUtc().toTime_t() ) { // 10 seconds passed since we asked for node references // around hash: proceed to ask for connections to // given node QList* nodesToTry = iModel.nodeModel().getNodesAfterHash(iObjectBeingRetrieved.iRequestedItem, 20, // 20 nodes 300 ) ;// at most 5 hours old while ( ! nodesToTry->isEmpty() ) { Node* connectCandidate ( nodesToTry->takeFirst() ) ; if ( connectCandidate->nodeFingerPrint() != iController->getNode().nodeFingerPrint() ) { if ( iModel.nodeModel().isNodeAlreadyConnected(connectCandidate->nodeFingerPrint()) ) { sendQueryToNode(connectCandidate->nodeFingerPrint()) ; QLOG_STR("In retrieve::processing node " + connectCandidate->nodeFingerPrint().toString() + " was already connected") ; delete connectCandidate ; } else { iNodeCandidatesToTryQuery.append(connectCandidate->nodeFingerPrint()) ; iModel.nodeModel().addNodeToConnectionWishList(connectCandidate) ; QLOG_STR("In retrieve::processing node " + connectCandidate->nodeFingerPrint().toString() + " was added to wishlist") ; } } } if ( iNodeCandidatesToTryQuery.size() > 0 ) { iObjectBeingRetrieved.iState = NetworkRequestExecutor::NodeIsInWishList ; iObjectBeingRetrieved.iTimeStampOfLastActivity= QDateTime::currentDateTimeUtc().toTime_t(); } else { // did not add anything to wishlist ; set timestamp back // to past so this state-machine will spam the query to // every connected node ; better than nothing iObjectBeingRetrieved.iState = NetworkRequestExecutor::NodeIsInWishList ; iObjectBeingRetrieved.iTimeStampOfLastActivity= QDateTime::currentDateTimeUtc().toTime_t() - 120; } } } break ; case NetworkRequestExecutor::NodeIsInWishList: { if ( iObjectBeingRetrieved.iTimeStampOfLastActivity + 60 < QDateTime::currentDateTimeUtc().toTime_t() ) { // after one minute decide that we're not gonna get // it from nodes where we requested connection to .. // spam the request to our connected nodes const QList & currentlyOpenConnections ( iModel.getConnections() ) ; Node* n ( NULL ) ; Connection* c (NULL) ; for ( int i = 0 ; i < 10 && i< currentlyOpenConnections.size() ; i++ ) { c = currentlyOpenConnections.at(i) ; if ( c && ( ( n = c->node() ) != NULL ) ) { sendQueryToNode(n->nodeFingerPrint()) ; } } iObjectBeingRetrieved.iState=NetworkRequestExecutor::RequestBeingSentAround; iObjectBeingRetrieved.iTimeStampOfLastActivity= QDateTime::currentDateTimeUtc().toTime_t(); } else { checkForSuccessfullyConnectedNodes() ; checkForUnSuccessfullyConnectedNodes() ; } } break ; case NetworkRequestExecutor::RequestBeingSentAround: { if ( iObjectBeingRetrieved.iTimeStampOfLastActivity + 60 < QDateTime::currentDateTimeUtc().toTime_t() ) { // after one minute+one minute give up emit notifyOfContentNotReceived(iObjectBeingRetrieved.iRequestedItem , iObjectBeingRetrieved.iRequestType ) ; iObjectBeingRetrieved.iRequestedItem= KNullHash ; iObjectBeingRetrieved.iState=NetworkRequestExecutor::ReadyToSend; } else { checkForSuccessfullyConnectedNodes() ; checkForUnSuccessfullyConnectedNodes() ; } } break; case NetworkRequestExecutor::ReadyToSend: // final stage, do nothing here break ; } iModel.unlock() ; } // if iRequestedItem was not nullhash } iNowRunning = false ; } } void RetrievalEngine::emptyNodeCandidateList() { iNodeCandidatesToTryQuery.clear() ; } void RetrievalEngine::nodeConnectionAttemptStatus(Connection::ConnectionState aStatus, const Hash aHashOfAttemptedNode ) { LOG_STR2("RetrievalEngine::nodeConnectionAttemptStatus %d in", aStatus) ; LOG_STR2("RetrievalEngine::nodeConnectionAttemptStatus %s ", qPrintable(aHashOfAttemptedNode.toString())) ; // use model to lock our own resources too.. iModel.lock() ; for ( int i = 0 ; i < iNodeCandidatesToTryQuery.size() ; i++ ) { if ( iNodeCandidatesToTryQuery[i] == aHashOfAttemptedNode ) { if ( aStatus == Connection::Open ) { if ( ! iNodesSuccessfullyConnected.contains(aHashOfAttemptedNode) ) { iNodesSuccessfullyConnected.append(aHashOfAttemptedNode) ; } } else { if ( ! iNodesFailurefullyConnected.contains(aHashOfAttemptedNode) ) { iNodesFailurefullyConnected.append(aHashOfAttemptedNode) ; } } break ; } } iModel.unlock() ; // so just add the hash into 1 of our internal arrays, run() will pick up // the items from list and try to do something clever } void RetrievalEngine::sendQueryToNode(const Hash& aNode) { if ( iObjectBeingRetrieved.iRequestedItem != KNullHash ) { if ( iNodesFailurefullyConnected.contains ( aNode ) ) { iNodesFailurefullyConnected.removeOne(aNode) ; } if ( iNodesSuccessfullyConnected.contains ( aNode ) ) { iNodesSuccessfullyConnected.removeOne(aNode) ; } } struct NetworkRequestExecutor::NetworkRequestQueueItem queryReq = iObjectBeingRetrieved ; queryReq.iDestinationNode = aNode ; queryReq.iState = NetworkRequestExecutor::NewRequest ; iModel.addNetworkRequest(queryReq) ; } // // this method is for periodically checking if any nodes we've // asked to be connected to, has actually been connected. // if such miracle has taken place, send the stuff and remove // node from list-of-nodes-to-ask (iNodeCandidatesToTryQuery) // void RetrievalEngine::checkForSuccessfullyConnectedNodes() { for ( int i = iNodeCandidatesToTryQuery.size()-1 ; ( i >=0 ) && ( iObjectBeingRetrieved.iRequestedItem != KNullHash ) ; i-- ) { if ( iNodesSuccessfullyConnected.contains(iNodeCandidatesToTryQuery[i] ) ) { // if we came here it means that we've asked for connection to // particular node and it happened LOG_STR2("RetEng: After asking, node has been connected: %s", qPrintable(iNodeCandidatesToTryQuery[i].toString())) ; sendQueryToNode(iNodeCandidatesToTryQuery[i]) ; } } // can be emptied every time ; if there were anything important, it // has been processed above iNodesSuccessfullyConnected.clear() ; } // // this is for pruning from ask-list those nodes that we've tried // to connect with no success // void RetrievalEngine::checkForUnSuccessfullyConnectedNodes() { for ( int i = iNodeCandidatesToTryQuery.size()-1 ; ( i >=0 ) && ( iObjectBeingRetrieved.iRequestedItem != KNullHash ) ; i-- ) { if ( iNodesFailurefullyConnected.contains(iNodeCandidatesToTryQuery[i]) ) { // if we came here it means that we've asked for connection to // particular node and it did not happen LOG_STR2("RetEng: After asking, node has not been connected: %s", qPrintable(iNodeCandidatesToTryQuery[i].toString())) ; iNodeCandidatesToTryQuery.removeAt(i) ; } } // can be emptied every time ; if there were anything important, it // has been processed above iNodesFailurefullyConnected.clear() ; } void RetrievalEngine::startRetrieving( NetworkRequestExecutor::NetworkRequestQueueItem aObject, bool aIsPriorityWork) { bool isAlreadyInQueue ( false ) ; for ( int i = 0 ; i < iDownloadQueue.size() ; i++ ) { if (iDownloadQueue.at(i).iRequestedItem == aObject.iRequestedItem && iDownloadQueue.at(i).iRequestType == aObject.iRequestType ) { isAlreadyInQueue = true ; break ; } } if ( isAlreadyInQueue == false && aIsPriorityWork == false ) { iDownloadQueue.append(aObject) ; } else if (aIsPriorityWork == true && iObjectBeingRetrieved.iRequestedItem != aObject.iRequestedItem) { // so we got another priority work: queue the current item and // start fetching this new one: // insert previously active item in front iDownloadQueue.insert(0, iObjectBeingRetrieved) ; iObjectBeingRetrieved.iRequestedItem = KNullHash ; emptyNodeCandidateList() ; iNodesSuccessfullyConnected.clear(); iNodesFailurefullyConnected.clear() ; iDownloadQueue.insert(0, aObject) ; // insert in front } else { // were obviously already downloading said item, either via queue // or in iObjectBeingRetrieved -> do no thing } } void RetrievalEngine::notifyOfContentReceived(const Hash& aHashOfContent, const ProtocolItemType aTypeOfReceivdContent ) { ProtocolItemType typeToCheckFromQueue ; bool doCheck ( false ) ; switch ( aTypeOfReceivdContent ) { case BinaryBlob: typeToCheckFromQueue = RequestForBinaryBlob ; doCheck = true ; break ; case UserProfile: typeToCheckFromQueue = RequestForUserProfile ; doCheck = true ; break ; case ClassifiedAd: typeToCheckFromQueue = RequestForClassifiedAd ; doCheck = true ; break ; default: doCheck = false ; break ; } if ( doCheck ) { iModel.lock() ; if ( iObjectBeingRetrieved.iRequestedItem == aHashOfContent && iObjectBeingRetrieved.iRequestType == typeToCheckFromQueue ) { // hurray, we got what we were waiting for iObjectBeingRetrieved.iRequestedItem = KNullHash ; iObjectBeingRetrieved.iState=NetworkRequestExecutor::ReadyToSend; iNodesSuccessfullyConnected.clear(); iNodesFailurefullyConnected.clear() ; emptyNodeCandidateList() ; } // also check queue: for ( int i = iDownloadQueue.size()-1 ; i >= 0 ; i-- ) { if (iDownloadQueue.at(i).iRequestedItem == aHashOfContent && iDownloadQueue.at(i).iRequestType == typeToCheckFromQueue ) { iDownloadQueue.removeAt(i) ; } } iModel.unlock() ; } } classified-ads-0.09/net/retrievalengine.h000066400000000000000000000103071260620453500204430ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef RETRIEVAL_ENG_H #define RETRIEVAL_ENG_H #include #include #include "connection.h" // for ConnectionObserver #include "../controller.h" #include "../datamodel/model.h" /** * @brief Network-connection logic relating fetching items from DHT * * This class has some similarity to @ref PublishingEngine but this * does somewhat the reverse. This is given a hash of object to * find from network ; in order to so, it will initiate connections * nearby nodes and ask for the content in-demand. */ class RetrievalEngine : public QTimer { Q_OBJECT public: /** * Constructor * @param aController application controller. not owned * @param aModel persistent storage. */ RetrievalEngine(Controller* aController, Model& aModel ) ; /** * Destructor */ ~RetrievalEngine() ; /** * command-interface for this class: start to do work * @param aObject specifies the object to dl. * @param aIsPriorityWork is set to true if download should * start right away, bypassing all other * stuff that might be in the queue */ void startRetrieving( NetworkRequestExecutor::NetworkRequestQueueItem aObject, bool aIsPriorityWork) ; /** * when content is received, we may want to check if it * was the content we were waiting for. this method * is for performing that check */ void notifyOfContentReceived(const Hash& aHashOfContent, const ProtocolItemType aTypeOfReceivdContent ); signals: void error(QTcpSocket::SocketError socketError); void notifyOfContentNotReceived(const Hash& aHashOfContent, const ProtocolItemType aTypeOfNotReceivdContent ); public slots: /** * when connection is attempted, @ref NetworkListener will * emit the status (failed or success) of the connection, * emitted signal is connected here */ void nodeConnectionAttemptStatus(Connection::ConnectionState aStatus, const Hash aHashOfAttemptedNode ); /** * this class is a not a thread, but QTimer, thus run. */ void run(); private: void emptyNodeCandidateList() ; void askConnectionsForNodesOnConnectList() ; void sendQueryItemToAlreadyConnectedNodes() ; void sendQueryToNode(const Hash& aNode) ; void checkForSuccessfullyConnectedNodes() ; void checkForUnSuccessfullyConnectedNodes() ; public: /** when this is set to false, thread will terminate and run() return */ bool iNeedsToRun ; private: // data Controller* iController ; /**< application controller */ Model &iModel ; /**< persistent storage */ /** * what kind of stuff we try. ..this class waits for * exactly one item at time. item currently being fetched * is stored in this variable */ NetworkRequestExecutor::NetworkRequestQueueItem iObjectBeingRetrieved ; /** list of nodes where iWorkItem might be pushed to */ QList iNodeCandidatesToTryQuery ; QList iNodesSuccessfullyConnected ; QList iNodesFailurefullyConnected ; bool iNowRunning ; /** queue of items that we should get */ QList iDownloadQueue ; } ; #endif classified-ads-0.09/nokia_licenses/000077500000000000000000000000001260620453500173065ustar00rootroot00000000000000classified-ads-0.09/nokia_licenses/LGPL_EXCEPTION.txt000066400000000000000000000022431260620453500222240ustar00rootroot00000000000000Nokia Qt LGPL Exception version 1.1 As an additional permission to the GNU Lesser General Public License version 2.1, the object code form of a "work that uses the Library" may incorporate material from a header file that is part of the Library. You may distribute such object code under terms of your choice, provided that: (i) the header files of the Library have not been modified; and (ii) the incorporated material is limited to numerical parameters, data structure layouts, accessors, macros, inline functions and templates; and (iii) you comply with the terms of Section 6 of the GNU Lesser General Public License version 2.1. Moreover, you may apply this exception to a modified version of the Library, provided that such modification does not involve copying material from the Library into the modified Library's header files unless such material is limited to (i) numerical parameters; (ii) data structure layouts; (iii) accessors; and (iv) small macros, templates and inline functions of five lines or less in length. Furthermore, you are not required to apply this additional permission to a modified version of the Library. classified-ads-0.09/patch/000077500000000000000000000000001260620453500154175ustar00rootroot00000000000000classified-ads-0.09/patch/qjson.patch000066400000000000000000000033431260620453500175750ustar00rootroot00000000000000diff -u -r q1/qjson-master/src/json_scanner.cc q2/qjson-master/src/json_scanner.cc --- q1/qjson-master/src/json_scanner.cc 2014-12-12 17:46:47.000000000 +0200 +++ q2/qjson-master/src/json_scanner.cc 2014-12-21 18:39:44.000000000 +0200 @@ -3393,8 +3393,10 @@ #line 82 "json_scanner.yy" { m_yylloc->columns(yyleng); - *m_yylval = QVariant(strtoull(yytext, NULL, 10)); - if (errno == ERANGE) { + unsigned long long converted = strtoull(yytext, NULL, 10); + fprintf(stderr, "Converted number %lu errno = %d\n", converted, errno) ; + *m_yylval = QVariant(converted); + if (errno == ERANGE && converted == ULONG_LONG_MAX) { qCritical() << "Number is out of range: " << yytext; return yy::json_parser::token::INVALID; } diff -u -r q1/qjson-master/src/json_scanner.yy q2/qjson-master/src/json_scanner.yy --- q1/qjson-master/src/json_scanner.yy 2014-12-12 17:46:47.000000000 +0200 +++ q2/qjson-master/src/json_scanner.yy 2014-12-21 18:39:18.000000000 +0200 @@ -81,8 +81,10 @@ [0-9] | [1-9][0-9]+ { m_yylloc->columns(yyleng); - *m_yylval = QVariant(strtoull(yytext, NULL, 10)); - if (errno == ERANGE) { + unsigned long long converted = strtoull(yytext, NULL, 10); + fprintf(stderr, "Converted number %lu errno = %d\n", converted, errno) ; + *m_yylval = QVariant(converted); + if (errno == ERANGE && converted == ULONG_LONG_MAX) { qCritical() << "Number is out of range: " << yytext; return yy::json_parser::token::INVALID; } classified-ads-0.09/po/000077500000000000000000000000001260620453500147365ustar00rootroot00000000000000classified-ads-0.09/po/Makefile000066400000000000000000000025601260620453500164010ustar00rootroot00000000000000# # Classified Ads is Copyright (c) Antti JУЄrvinen 2013. # # This file is part of Classified Ads. # # Classified Ads is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # Classified Ads is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with Classified Ads; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # If adding a new translation, list it here. Also see the list # in "install" target. translations = fi.mo sv.mo da.mo .SUFFIXES: .mo .po CLEAN_CMD ?= rm -f all: $(translations) .po.mo: $(MSGFMT_PATH)msgfmt $*.po -o $*.mo clean: $(CLEAN_CMD) $(translations) install: all install -m 644 -D -T fi.mo \ $(DESTDIR)/usr/share/locale/fi/LC_MESSAGES/classified-ads.mo install -m 644 -D -T sv.mo \ $(DESTDIR)/usr/share/locale/sv/LC_MESSAGES/classified-ads.mo install -m 644 -D -T da.mo \ $(DESTDIR)/usr/share/locale/da/LC_MESSAGES/classified-ads.mo classified-ads-0.09/po/classified-ads.pot000066400000000000000000003127141260620453500203450ustar00rootroot00000000000000# Translation file for classified ads. # # This is auto-generated from .ts file. msgid "" msgstr "" "Project-Id-Version: classified-ads 0.08\n" "Report-Msgid-Bugs-To: antti.jarvinen@katiska.org\n" "POT-Creation-Date: 2015-08-31 23:30+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Language: fi_FI\n" "X-Qt-Contexts: true\n" # Context menu item text for menu, that appears when right-mouse is clicked on top of a file in a list. #: ui/attachmentlistdialog.cpp:60 msgctxt "AttachmentListDialog|" msgid "Save file to disk.." msgstr "" # In file open dialog this is text specifying what kind of files to include in listing, filtered by file name suffix. For example, user wants only PNG files, then text appearing in dialog filter field would say "PNG files (*.png)" and this work "files" here is the word after the word PNG. #: ui/attachmentlistdialog.cpp:151 ui/attachmentlistdialog.cpp:153 msgctxt "AttachmentListDialog|" msgid "files" msgstr "" # Dialog title text for dialog asking user to give a name to file for purpose of saving it to filesystem. #: ui/attachmentlistdialog.cpp:155 msgctxt "AttachmentListDialog|" msgid "Choose file name for saving" msgstr "" # Dialog title text for error dialog. #: ui/attachmentlistdialog.cpp:166 msgctxt "AttachmentListDialog|" msgid "Error" msgstr "" # This gives (no) explanation about reason for "file open failure"? #: ui/attachmentlistdialog.cpp:167 msgctxt "AttachmentListDialog|" msgid "File open error" msgstr "" # Title text in a listing view where list of shared files are listed. This particular text gives text for column, where "name or fingerprint of file" is listed. Fingerprint in practice means SHA1 digest. #: datamodel/binaryfilelistingmodel.cpp:173 msgctxt "BinaryFileListingModel|" msgid "Name or fingerprint of file" msgstr "" # Header text for a column-list. The column that gets its header text from this string, is the date-column of an classified ad. #: datamodel/calistingmodel.cpp:50 datamodel/calistingmodel.cpp:143 msgctxt "CAListingModel|" msgid "Date" msgstr "" # Header text for a column-list. The column that gets its header text from this string, is the subject-column of an classified ad. #: datamodel/calistingmodel.cpp:51 datamodel/calistingmodel.cpp:142 msgctxt "CAListingModel|" msgid "Subject" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Cars in Estonia" and this combobox text here is the first word of that phrase. #: datamodel/camodel.cpp:127 msgctxt "ClassifiedAdsModel|" msgid "Buying" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Cars in Estonia" and this combobox text here is the first word of that phrase. #: datamodel/camodel.cpp:129 msgctxt "ClassifiedAdsModel|" msgid "Selling" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Giving away of Cars in Estonia" and this combobox text here is the first+2nd word of that phrase. #: datamodel/camodel.cpp:131 msgctxt "ClassifiedAdsModel|" msgid "Giving away" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Wanting of Cars in Estonia" and this combobox text here is the first word of that phrase. #: datamodel/camodel.cpp:133 msgctxt "ClassifiedAdsModel|" msgid "Wanting" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Renting of Cars in Estonia" and this combobox text here is the first word of that phrase. #: datamodel/camodel.cpp:135 msgctxt "ClassifiedAdsModel|" msgid "Renting" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Cars in Estonia" and this combobox text here is the first word of that phrase. #: datamodel/camodel.cpp:137 msgctxt "ClassifiedAdsModel|" msgid "Announcement" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Cars in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:210 msgctxt "ClassifiedAdsModel|" msgid "Cars" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Boats in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:212 msgctxt "ClassifiedAdsModel|" msgid "Boats" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Bikes in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:214 msgctxt "ClassifiedAdsModel|" msgid "Bikes" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Other vehicles in Estonia" and this combobox text here is the 3rd+4th word of that phrase. #: datamodel/camodel.cpp:216 msgctxt "ClassifiedAdsModel|" msgid "Other vehicles" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of vehicle parts in Estonia" and this combobox text here is the 3rd+4th word of that phrase. #: datamodel/camodel.cpp:218 msgctxt "ClassifiedAdsModel|" msgid "Vehicle parts" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Habitation in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:220 msgctxt "ClassifiedAdsModel|" msgid "Habitation" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Household appliances in Estonia" and this combobox text here is the 3rd+4th word of that phrase. #: datamodel/camodel.cpp:222 msgctxt "ClassifiedAdsModel|" msgid "Household appliances" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Furniture in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:224 msgctxt "ClassifiedAdsModel|" msgid "Furniture" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Clothing in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:226 msgctxt "ClassifiedAdsModel|" msgid "Clothing" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Tools in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:228 msgctxt "ClassifiedAdsModel|" msgid "Tools" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Tools in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:230 msgctxt "ClassifiedAdsModel|" msgid "Sports" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Music in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:232 msgctxt "ClassifiedAdsModel|" msgid "Music" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Books in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:234 msgctxt "ClassifiedAdsModel|" msgid "Books" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Movies in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:236 msgctxt "ClassifiedAdsModel|" msgid "Movies" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Animals in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:238 msgctxt "ClassifiedAdsModel|" msgid "Animals" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Electronics in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:240 msgctxt "ClassifiedAdsModel|" msgid "Electronics" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Jobs in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:242 msgctxt "ClassifiedAdsModel|" msgid "Jobs" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Wanting of Transportation in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:244 msgctxt "ClassifiedAdsModel|" msgid "Transportation" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Services in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:246 msgctxt "ClassifiedAdsModel|" msgid "Services" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Healthcare in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:248 msgctxt "ClassifiedAdsModel|" msgid "Healthcare" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Foodstuff in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:250 msgctxt "ClassifiedAdsModel|" msgid "Foodstuff" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Software in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:252 msgctxt "ClassifiedAdsModel|" msgid "Software" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Events in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:254 msgctxt "ClassifiedAdsModel|" msgid "Events" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Giving away of Education in Estonia" and this combobox text here is the 4th word of that phrase. #: datamodel/camodel.cpp:256 msgctxt "ClassifiedAdsModel|" msgid "Education" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Finance in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:258 msgctxt "ClassifiedAdsModel|" msgid "Finance" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Jewelry in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:260 msgctxt "ClassifiedAdsModel|" msgid "Jewelry" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of religious rituals in Estonia" and this combobox text here is the 3rd+4th word of that phrase. #: datamodel/camodel.cpp:262 msgctxt "ClassifiedAdsModel|" msgid "Religious rituals" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Philosophy in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:264 msgctxt "ClassifiedAdsModel|" msgid "Philosophy" msgstr "" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Philosophy in Any country" and this combobox text here is end part "Any country" specifying the location where announcement. #: datamodel/camodel.cpp:908 msgctxt "ClassifiedAdsModel|" msgid "Any country" msgstr "" # Tool tip text. When user hovers mouse cursor on top of network address field in a dialog, this text will appear. #: datamodel/connectionlistingmodel.cpp:142 msgctxt "ConnectionListingModel|" msgid "Peer network address" msgstr "" # Tool tip text. When user hovers mouse cursor on top of field specifying if connection is inbound/outbound this text will appear. #: datamodel/connectionlistingmodel.cpp:145 msgctxt "ConnectionListingModel|" msgid "Inbound connections are those where peer initiated connection" msgstr "" # Tool tip text. When user hovers mouse cursor on top of traffic-counter field in a dialog, this text will appear. #: datamodel/connectionlistingmodel.cpp:148 msgctxt "ConnectionListingModel|" msgid "Data transferred from peer to your node" msgstr "" # Tool tip text. When user hovers mouse cursor on top of traffic-counter field in a dialog, this text will appear. #: datamodel/connectionlistingmodel.cpp:151 msgctxt "ConnectionListingModel|" msgid "Data transferred to peer from your node" msgstr "" # Tool tip text. When user hovers mouse cursor on top of time-field in a dialog, this text will appear. #: datamodel/connectionlistingmodel.cpp:154 msgctxt "ConnectionListingModel|" msgid "Time when connection was opened" msgstr "" # Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows network address (like IP-address) #: datamodel/connectionlistingmodel.cpp:164 msgctxt "ConnectionListingModel|" msgid "Address" msgstr "" # Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows direction (inbound/outbound) of the connection #: datamodel/connectionlistingmodel.cpp:167 msgctxt "ConnectionListingModel|" msgid "Inbound" msgstr "" # Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows number of bytes transferred inside #: datamodel/connectionlistingmodel.cpp:170 msgctxt "ConnectionListingModel|" msgid "Bytes in" msgstr "" # Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows number of bytes transferred outside #: datamodel/connectionlistingmodel.cpp:173 msgctxt "ConnectionListingModel|" msgid "Bytes out" msgstr "" # Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows time when connection was opened. #: datamodel/connectionlistingmodel.cpp:176 msgctxt "ConnectionListingModel|" msgid "Open time" msgstr "" # Text in contact listing column view. This text appears in column telling if user is to be trusted or not and this value here denotes the positive case "user is trusted". #: datamodel/contactlistingmodel.cpp:73 msgctxt "ContactListingModel|" msgid "Yes" msgstr "" # Text in contact listing column view. This text appears in column telling if user is to be trusted or not and this value here denotes the negative case "user trust is unknown". #: datamodel/contactlistingmodel.cpp:75 msgctxt "ContactListingModel|" msgid "Unknown" msgstr "" # Tool tip text. When user hovers mouse cursor on top of field where operators SHA1 digest is shown, this text appears. The field is part of contact listing view, where users frequent contacts are shown. #: datamodel/contactlistingmodel.cpp:98 msgctxt "ContactListingModel|" msgid "Actual network address (SHA1) of the contact" msgstr "" # Tool tip text. When user hovers mouse cursor on top of field where operators locally given nickname is shown, this text appears. The field is part of contact listing view, where users frequent contacts are shown. #: datamodel/contactlistingmodel.cpp:101 msgctxt "ContactListingModel|" msgid "Locally given nickname ; user may set her own nickname himself" msgstr "" # Tool tip text. When user hovers mouse cursor on top of field where operators trustworthiness (boolean value) in users opinion is shown, this text appears. The field is part of contact listing view, where users frequent contacts are shown. #: datamodel/contactlistingmodel.cpp:104 msgctxt "ContactListingModel|" msgid "Public statement if this operator to be trusted in transactions" msgstr "" # Column header text. Used in column view where operators frequent contacts are shown. This text gives title to column that shows operators network address (the SHA digest of operator) #: datamodel/contactlistingmodel.cpp:114 msgctxt "ContactListingModel|" msgid "Address" msgstr "" # Column header text. Used in column view where operators frequent contacts are shown. This text gives title to column that shows operators nickname #: datamodel/contactlistingmodel.cpp:117 msgctxt "ContactListingModel|" msgid "Nickname" msgstr "" # Column header text. Used in column view where operators frequent contacts are shown. This text gives title to column that shows operators trustworthiness. #: datamodel/contactlistingmodel.cpp:120 msgctxt "ContactListingModel|" msgid "Publicly trusted" msgstr "" # Error message that is displayed when SSL key generation failed. Text is displayed in a dialog, after user dismisses the dialog, whole application will exit. #: datamodel/contentencryptionmodel.cpp:86 msgctxt "ContentEncryptionModel|" msgid "SSL key generation went wrong, calling exit.." msgstr "" # Error message that is displayed when x509 certificate generation failed. Text is displayed in a dialog, after user dismisses the dialog, whole application will exit. #: datamodel/contentencryptionmodel.cpp:94 msgctxt "ContentEncryptionModel|" msgid "x509 cert generation went wrong, calling exit.." msgstr "" # Error message that is displayed when RSA private key could not be saved to database. This is rather fatal error, the operator profile that user tried to create will be un-usable. #: datamodel/contentencryptionmodel.cpp:192 #: datamodel/contentencryptionmodel.cpp:290 msgctxt "ContentEncryptionModel|" msgid "RSA Private key key saving went wrong" msgstr "" # Error message text. This is displayed in situation where user tried to access content that he does not have encryption key for. This may appear frequently during normal operation and is no fatal error, only telling user that he is not going to see the content he was trying to access. #: datamodel/contentencryptionmodel.cpp:637 msgctxt "ContentEncryptionModel|" msgid "No suitable de-cryption key found" msgstr "" # Window title text for whole application. #: controller.cpp:103 msgctxt "Controller|" msgid "Classified ads" msgstr "" # Prompt text for password dialog #: controller.cpp:135 msgctxt "Controller|" msgid "Enter password for protection of your messages:" msgstr "" # Dialog text for a wait dialog (a progress-bar like thing will be shown next to this text and user is supposed to sit down and wait a moment..) #: controller.cpp:405 msgctxt "Controller|" msgid "Fetching item from network.." msgstr "" # Menu item text used in "File" menu item and when this particular item is selected, application will close #: controller.cpp:430 msgctxt "Controller|" msgid "E&xit" msgstr "" # Menu item tooltip-text used in "File" menu entry and when this particular item is selected, application will close #: controller.cpp:432 msgctxt "Controller|" msgid "Exit the application" msgstr "" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog telling why this application is and how to use it #: controller.cpp:434 msgctxt "Controller|" msgid "&About" msgstr "" # Tooltip-text of menu item text used in "File" menu and when this particular item is selected, application will show a dialog telling why this application is and how to use it #: controller.cpp:435 msgctxt "Controller|" msgid "Show the application's About box" msgstr "" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to change her password #: controller.cpp:437 msgctxt "Controller|" msgid "&Change password" msgstr "" # Tooltip-item for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to change her password #: controller.cpp:438 msgctxt "Controller|" msgid "Change password of current profile" msgstr "" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password for a newly-created user profile #: controller.cpp:440 msgctxt "Controller|" msgid "Create &new profile" msgstr "" # Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password for a newly-created user profile #: controller.cpp:441 msgctxt "Controller|" msgid "Makes a brand new user profile" msgstr "" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to confirm deletion of currently open operator profile #: controller.cpp:443 msgctxt "Controller|" msgid "&Delete current profile" msgstr "" # Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to confirm deletion of currently open profile #: controller.cpp:444 msgctxt "Controller|" msgid "Deletes currently open profile" msgstr "" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password of another profile that user will use next #: controller.cpp:446 msgctxt "Controller|" msgid "&Select another profile" msgstr "" # Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password of another profile that user will use next #: controller.cpp:447 msgctxt "Controller|" msgid "If you have multitude of profiles" msgstr "" # Menu item text used in "File" menu and when this particular item is selected, application will show a settings-dialog #: controller.cpp:449 msgctxt "Controller|" msgid "Settings.." msgstr "" # Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password of another profile that user will use next #: controller.cpp:450 msgctxt "Controller|" msgid "Node-wide settings.." msgstr "" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog detailing network connectivity of the node #: controller.cpp:452 msgctxt "Controller|" msgid "Network status.." msgstr "" # Menu item text used in "File" menu and when this particular item is selected, application will show a search-dialog #: controller.cpp:454 msgctxt "Controller|" msgid "Search.." msgstr "" # Menu bar title text for "File" menu. #: controller.cpp:471 msgctxt "Controller|" msgid "&File" msgstr "" # Password dialog prompt. #: controller.cpp:516 msgctxt "Controller|" msgid "Enter new password:" msgstr "" # Password dialog prompt. In this case the password dialog is not used for giving initial password or change password but instead password is typed for the reason of selection of another operator profile to be used. #: controller.cpp:544 controller.cpp:653 msgctxt "Controller|" msgid "Activate another profile with password" msgstr "" # Error message shown in dialog in situation where user tried to delete the last (one and only) operator profile in machine. There needs to be at least one profile and this error message is shown if user tries to get around that limitation. #: controller.cpp:638 msgctxt "Controller|" msgid "Can't delete only profile." msgstr "" # Text shown in title of confirmation dialog. #: controller.cpp:642 msgctxt "Controller|" msgid "Permanently discard profile?" msgstr "" # Text shown inside a confirmation dialog. Dialog will have buttons OK and Cancel and this is the question. #: controller.cpp:643 msgctxt "Controller|" msgid "There will be NO way to access content of this profile later" msgstr "" # Error message that is shown in a dialog in situation where previously stored encryption keys of the node could not be accessed. Rather fatal error, will render node un-usable. #: controller.cpp:706 msgctxt "Controller|" msgid "Cant load node cert or key cert" msgstr "" # Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during a filesystem file operation. Actual explanation of the error is shown inside the dialog whose title text this is. #: controller.cpp:711 msgctxt "Controller|" msgid "File error" msgstr "" # Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during database operation. Actual explanation of the error is shown inside the dialog whose title text this is. #: controller.cpp:716 msgctxt "Controller|" msgid "Database error" msgstr "" # Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during a operation inside crypto-module. Actual explanation of the error is shown inside the dialog whose title text this is. #: controller.cpp:722 controller.cpp:732 msgctxt "Controller|" msgid "Cryptographic module" msgstr "" # Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during operation inside database module. Actual explanation of the error is shown inside the dialog whose title text this is. #: controller.cpp:727 msgctxt "Controller|" msgid "Database module" msgstr "" # Error message dialog title text for a dialog that is shown in a dialog in situation when password supplied by user was not good for any purpose. Actual explanation of the error is shown inside the dialog whose title text this is. #: controller.cpp:733 msgctxt "Controller|" msgid "Bad password" msgstr "" # Error message text inside a dialog when user had requested for an item to be opened but program could not find the requested item. #: controller.cpp:949 msgctxt "Controller|" msgid "Could not find item from network.." msgstr "" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies SHA1 digest of the file. #: controller.cpp:1062 msgctxt "Controller|" msgid "SHA1: " msgstr "" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies mime-type of the file #: controller.cpp:1067 msgctxt "Controller|" msgid "Mime-Type: " msgstr "" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that gives longer explanation of the file #: controller.cpp:1073 msgctxt "Controller|" msgid "Description: " msgstr "" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies name of publisher of the file (in practice, who uploaded the file into classified ads) #: controller.cpp:1079 msgctxt "Controller|" msgid "Publisher: " msgstr "" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies name of the person (or organization) that owns (in copyright sense) the file or its contents. #: controller.cpp:1085 msgctxt "Controller|" msgid "Content owner: " msgstr "" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies the license of the file #: controller.cpp:1091 msgctxt "Controller|" msgid "License: " msgstr "" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies file name #: controller.cpp:1097 msgctxt "Controller|" msgid "Name: " msgstr "" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies file date #: controller.cpp:1104 msgctxt "Controller|" msgid "Date: " msgstr "" # Error message text shown inside dialog when user tries to select for operation a file that is much much too big. (there is currently 2MB size limit for shared files) #: ui/dialogbase.cpp:47 ui/dialogbase.cpp:101 msgctxt "DialogBase|" msgid "File way too big" msgstr "" # Error message text shown inside dialog when user tries to select for operation a file that is just-and-just too big. (there is currently 2MB size limit for shared files) #: ui/dialogbase.cpp:55 ui/dialogbase.cpp:109 msgctxt "DialogBase|" msgid "File too big" msgstr "" # Error message text shown inside dialog when user tries to select for operation a file that can not be opened (for example due to file permission reasons) #: ui/dialogbase.cpp:85 ui/dialogbase.cpp:131 msgctxt "DialogBase|" msgid "File open error" msgstr "" # Dialog title text. Dialog prompts user to select the filesystem file that will be published inside classified ads. #: ui/dialogbase.cpp:94 msgctxt "DialogBase|" msgid "Select file to be published" msgstr "" # Text for file type filter field in file-selection-dialog #: ui/dialogbase.cpp:96 msgctxt "DialogBase|" msgid "Files (*.*)" msgstr "" # Title text of error dialog. #: ui/editcontact.cpp:72 msgctxt "EditContactDialog|" msgid "Error" msgstr "" # Contet text of error dialog. Shown after user has tried to enter operator address with intent of adding it to contact-list and the operator address fails format validation. #: ui/editcontact.cpp:73 msgctxt "EditContactDialog|" msgid "Operator addr is not valid" msgstr "" # Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the first tab. #: FrontWidget.cpp:93 msgctxt "FrontWidget|" msgid "Classified ads" msgstr "" # Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the 2nd tab. #: FrontWidget.cpp:94 msgctxt "FrontWidget|" msgid "My profile" msgstr "" # Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the 3rd tab. #: FrontWidget.cpp:95 msgctxt "FrontWidget|" msgid "Contacts" msgstr "" # Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the 4th tab. #: FrontWidget.cpp:96 msgctxt "FrontWidget|" msgid "Private messages" msgstr "" # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, a dialog will appear asking which file to share #: FrontWidget.cpp:155 msgctxt "FrontWidget|" msgid "Add shared file.." msgstr "" # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, the selected file in the listing view will no longer be shared #: FrontWidget.cpp:156 msgctxt "FrontWidget|" msgid "Stop advertising selected shared file" msgstr "" # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, the selected file in the listing view will be saved to filesystem #: FrontWidget.cpp:157 msgctxt "FrontWidget|" msgid "Save file to disk.." msgstr "" # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, information dialog about selected file will be shown #: FrontWidget.cpp:158 msgctxt "FrontWidget|" msgid "View file information.." msgstr "" # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, SHA digest of the selected file will be copied to clipboard. #: FrontWidget.cpp:159 msgctxt "FrontWidget|" msgid "Copy file address (SHA1) to clipboard.." msgstr "" # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, an editor will be displayed prompting user to enter text that will then be published for other users to see. #: FrontWidget.cpp:160 msgctxt "FrontWidget|" msgid "Edit+publish new text document.." msgstr "" # Dialog title text for "file open" dialog #: FrontWidget.cpp:348 msgctxt "FrontWidget|" msgid "Open File" msgstr "" # Text for filter field of file selection dialog #: FrontWidget.cpp:350 FrontWidget.cpp:880 msgctxt "FrontWidget|" msgid "Files (*.*)" msgstr "" # Error dialog title text. Actual error message will be shown inside dialog whose title is this text. #: FrontWidget.cpp:354 FrontWidget.cpp:1180 FrontWidget.cpp:1322 msgctxt "FrontWidget|" msgid "Error" msgstr "" # Error dialog content text. Shown when image file that user selected could not be opened (maybe because file permission problem or maybe image format issue or ..) #: FrontWidget.cpp:355 msgctxt "FrontWidget|" msgid "Can't load image" msgstr "" # Error dialog title text. This dialog is shown when user tries to comment another operator but required operator data is missing from local storage. #: FrontWidget.cpp:621 FrontWidget.cpp:761 msgctxt "FrontWidget|" msgid "Profile not in database" msgstr "" # Error dialog content text. This dialog is shown when user tries to comment another operator but required operator data is missing from local storage. #: FrontWidget.cpp:622 FrontWidget.cpp:762 msgctxt "FrontWidget|" msgid "Try viewing profile first to obtain data" msgstr "" # File selection title text. Prompts user to select a file for publish purpose. #: FrontWidget.cpp:878 msgctxt "FrontWidget|" msgid "Select file to be published" msgstr "" # Error text shown in dialog. Shown in situation where user selected a file that really exceeds size limit (of 2MB) #: FrontWidget.cpp:885 msgctxt "FrontWidget|" msgid "File way too big" msgstr "" # Error text shown in dialog. Shown in situation where user selected a file that slightly exceeds size limit (of 2MB) #: FrontWidget.cpp:893 msgctxt "FrontWidget|" msgid "File too big" msgstr "" # Error text shown in dialog. Shown in situation where user selected a file that could for some reason not be opened #: FrontWidget.cpp:937 FrontWidget.cpp:1181 msgctxt "FrontWidget|" msgid "File open error" msgstr "" # Part of filter text field in file selection dialog. If for instance user tries to open PNG files, then the text in filter field will be "PNG files (*.png)" and this word is the 2nd word in the phrase. #: FrontWidget.cpp:1162 FrontWidget.cpp:1168 msgctxt "FrontWidget|" msgid "files" msgstr "" # File selection dialog title text. Dialog prompts user to select location+name for an file to be exported into filesystem. #: FrontWidget.cpp:1171 msgctxt "FrontWidget|" msgid "Choose file name for saving" msgstr "" # Text shown in placeholder for operators image in situation where user has not yet selected any image. In practice it prompts user to insert image by clicking at the text. #: FrontWidget.cpp:1231 msgctxt "FrontWidget|" msgid "" "\n" "\n" "\n" "Click\n" "To\n" "Add\n" "Image\n" msgstr "" # Error message dialog content text shown when user tried to access article, that was not stored in local database #: FrontWidget.cpp:1323 msgctxt "FrontWidget|" msgid "Article not found from local storage" msgstr "" # Tool-tip text. Shown on top of operators address when user hovers mouse on top of the address field. The %1 will be replaced by nickname of an operator who trusts this particular operator. The %2 will be replaced by SHA1 digest of the operator who trusts the operator whose SHA1 is under mouse cursor. #: FrontWidget.cpp:1349 FrontWidget.cpp:1897 #, qt-format msgctxt "FrontWidget|" msgid "" "Trusted by %1\n" "SHA1 %2" msgstr "" # Tool tip text. Shown when user howers mouse on top of operators nickname field. In code a date-string will be concatenated to this string, so in practice in the UI it will read "Time of last update 31 aug 2015" or similar. #: FrontWidget.cpp:1386 msgctxt "FrontWidget|" msgid "Time of last update " msgstr "" # Text for image placeholder, shown in situation where another operator has not selected any image for her.This text is shown place of the missing image. #: FrontWidget.cpp:1394 msgctxt "FrontWidget|" msgid "" "\n" "\n" "\n" "(No\n" "Image\n" "Selected)\n" msgstr "" # Context menu item text. Context-menu is related to frequent-contacts column-view. #: FrontWidget.cpp:1488 msgctxt "FrontWidget|" msgid "Edit contact.." msgstr "" # Push button text. Pushing the button will open an editor prompting user to edit+send a private message to operator who sent the classified ad currently on display #: FrontWidget.cpp:1528 msgctxt "FrontWidget|" msgid "&Reply to sender" msgstr "" # Push button text. Pushing the button will open an editor prompting user to edit+send a reply to classified ad currently on display #: FrontWidget.cpp:1529 msgctxt "FrontWidget|" msgid "Reply to &forum" msgstr "" # Push button text. Pushing the button will open an editor prompting user to edit+send a new classified ad. #: FrontWidget.cpp:1530 msgctxt "FrontWidget|" msgid "&Post new ad" msgstr "" # Push button text. Pushing the button will open an editor prompting user to edit+send a public comment about operator who sent the classified ad currently on display #: FrontWidget.cpp:1531 msgctxt "FrontWidget|" msgid "&Public comment" msgstr "" # Push button text. Pushing the button will switch to view detailing operator who sent the classified ad currently on display #: FrontWidget.cpp:1532 msgctxt "FrontWidget|" msgid "&View profile" msgstr "" # Push button text. Pushing the button will open a a listing of files that are attached to classified ad currently on display #: FrontWidget.cpp:1533 FrontWidget.cpp:1671 msgctxt "FrontWidget|" msgid "Attachments.." msgstr "" # Push button text. Pushing the button will open an editor prompting user to add to her contact-list the operator who sent the classified ad currently on display #: FrontWidget.cpp:1593 msgctxt "FrontWidget|" msgid "Add selected operator to contacts.." msgstr "" # Push button text. Pushing the button will open an editor prompting user to edit+send a private message to operator who sent the private message currently on display #: FrontWidget.cpp:1667 msgctxt "FrontWidget|" msgid "&Reply" msgstr "" # Push button text. Pushing the button will open an editor prompting user to edit+send a private message to some operator. #: FrontWidget.cpp:1668 msgctxt "FrontWidget|" msgid "&New message" msgstr "" # Push button text. Pushing the button will open an editor prompting user to edit+send a public comment about operator who sent the private message currently on display #: FrontWidget.cpp:1669 msgctxt "FrontWidget|" msgid "&Send public comment to sender" msgstr "" # Push button text. Pushing the button will open view that will show details of operator, who sent the private message currently on display. #: FrontWidget.cpp:1670 msgctxt "FrontWidget|" msgid "&View profile of peer" msgstr "" # Context menu item text. Appears in "message listing view" when user right-clicks on messages view. When selected, the operator who sent the message that is selected is added to contacts. #: FrontWidget.cpp:1705 msgctxt "FrontWidget|" msgid "Add selected to contacts.." msgstr "" # Text field label. Label tells who sent particular classified ad. #: FrontWidget.cpp:1907 FrontWidget.cpp:1909 FrontWidget.cpp:1973 #: FrontWidget.cpp:1975 msgctxt "FrontWidget|" msgid "From:" msgstr "" # Text field label. Label tells subject of classified ads. #: FrontWidget.cpp:1911 FrontWidget.cpp:1978 msgctxt "FrontWidget|" msgid "Subject:" msgstr "" # Text field label. Label tells whom a private message was sent to. #: FrontWidget.cpp:1970 msgctxt "FrontWidget|" msgid "To:" msgstr "" # Error dialog content text. Shown in situation when user clicked on a link that contained SHA1 digest that was not valid. #: FrontWidget.cpp:2282 msgctxt "FrontWidget|" msgid "Invalid SHA1 in URL" msgstr "" # Error dialog content text. Shown in situation when user clicked on a link that was not correctly formatted. #: FrontWidget.cpp:2309 msgctxt "FrontWidget|" msgid "Invalid URL" msgstr "" # Error dialog content text. Shown in situation when user entered a link that could not be parsed. #: ui/insertlinkdialog.cpp:69 msgctxt "InsertLinkDialog|" msgid "Invalid URL" msgstr "" # Error dialog content text. Shown in situation when user tried to add connection to node whose name was not found via nameserver. #: ui/manualconnection.cpp:53 msgctxt "ManualConnectionDialog|" msgid "DNS lookup failure" msgstr "" # Error dialog title text. Actual error message will be shown inside the dialog. #: ui/newprivmsgdialog.cpp:88 ui/newprivmsgdialog.cpp:133 msgctxt "NewPrivMessageDialog|" msgid "Error" msgstr "" # Error dialog content text. Dialog is shown when user tries to send a message to operator, whose SHA1 digest (as entered by user) does not parse as SHA1 digest. #: ui/newprivmsgdialog.cpp:89 msgctxt "NewPrivMessageDialog|" msgid "Recipient addr is not valid" msgstr "" # Error dialog content text. Dialog is shown when user tries to send a message to operator, whose encryption keys are present in local storage. #: ui/newprivmsgdialog.cpp:134 msgctxt "NewPrivMessageDialog|" msgid "Recipient encryption key not found from storage" msgstr "" # Error dialog title text. Actual error message will be shown inside the dialog. #: ui/newprofilecommentdialog.cpp:89 ui/newprofilecommentdialog.cpp:126 msgctxt "NewProfileCommentDialog|" msgid "Error" msgstr "" # Error dialog content text. Dialog is shown when user tries to comment an operator, whose SHA1 digest (as entered by user) does not parse as SHA1 digest. #: ui/newprofilecommentdialog.cpp:90 msgctxt "NewProfileCommentDialog|" msgid "Commented profile addr is not valid" msgstr "" # Error dialog content text. Dialog is shown when user tries to send a message to operator, whose encryption keys are present in local storage. #: ui/newprofilecommentdialog.cpp:127 msgctxt "NewProfileCommentDialog|" msgid "Recipient encryption key not found from storage" msgstr "" # Error message text. Will be shown in error message dialog in case when initial SSL key generation of node did not succeed. After user dismisses the dialog, the application will close. #: datamodel/nodemodel.cpp:115 msgctxt "NodeModel|" msgid "SSL key generation went wrong, calling exit.." msgstr "" # Error message text. Will be shown in error message dialog in case when initial encryption key generation of user did not succeed. After user dismisses the dialog, the application will close. #: datamodel/nodemodel.cpp:123 msgctxt "NodeModel|" msgid "x509 cert generation went wrong, calling exit.." msgstr "" # Error message text. Will be shown in error message dialog in case when SSL certificate of the node could not be loaded from storage. After user dismisses the dialog, the application will close. #: datamodel/nodemodel.cpp:1594 msgctxt "NodeModel|" msgid "Cant load SSL cert" msgstr "" # Error message text. Will be shown in error message dialog in case when SSL key of the node could not be retrieved from local storage. After user dismisses the dialog, the application will close. #: datamodel/nodemodel.cpp:1624 msgctxt "NodeModel|" msgid "Cant load SSL key" msgstr "" # Error message text. Shown in dialog when user tries to enter a password that is too short. #: ui/passwd_dialog.cpp:104 msgctxt "PasswdDialog|" msgid "Min length 5 (use 10+)" msgstr "" # Password dialog title text. #: ui/passwordDialog.ui:14 msgctxt "PasswordDialog|" msgid "Password required" msgstr "" # Tooltip text for password dialog. Shown when user hovers on top of password dialog. #: ui/passwordDialog.ui:17 msgctxt "PasswordDialog|" msgid "" "Should you forget this word, there is no easy way to recover any of your " "content" msgstr "" # Prompt text for password dialog. #: ui/passwordDialog.ui:29 msgctxt "PasswordDialog|" msgid "Enter password for protection of your messages" msgstr "" # Tooltip text for password dialog. Shown when user hovers on top of password field #: ui/passwordDialog.ui:42 msgctxt "PasswordDialog|" msgid "" "If you forget this word, there is no simple way to recover your contents" msgstr "" # Password dialog button text #: ui/passwordDialog.ui:55 msgctxt "PasswordDialog|" msgid "OK" msgstr "" # Tooltip text. Shown when user hovers mouse cursor on top of message sender name. First %1 will be replaced with nickname of the operator whose message is hovered, %2 will be replaced by nickname of operator who has expressed positive trust towards the operator who sent the message. #: datamodel/privmsgsearchmodel.cpp:110 #, qt-format msgctxt "PrivateMessageSearchModel|" msgid "" "%1\n" "Trusted by %2" msgstr "" # Tooltip text. Used in column view that lists private messages of operator. Explains the field that gives title to column that specifies direction (sent or received) of the message. #: datamodel/privmsgsearchmodel.cpp:237 msgctxt "PrivateMessageSearchModel|" msgid "Direction of message, sent/received" msgstr "" # Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies direction (sent/received) of the message. #: datamodel/privmsgsearchmodel.cpp:247 msgctxt "PrivateMessageSearchModel|" msgid "Dir" msgstr "" # Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies messaging peer (another operator) of the message. #: datamodel/privmsgsearchmodel.cpp:250 msgctxt "PrivateMessageSearchModel|" msgid "Peer" msgstr "" # Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies time of the message. #: datamodel/privmsgsearchmodel.cpp:253 msgctxt "PrivateMessageSearchModel|" msgid "Time" msgstr "" # Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies subject of the message. #: datamodel/privmsgsearchmodel.cpp:256 msgctxt "PrivateMessageSearchModel|" msgid "Subject" msgstr "" # Push button text. Clicking the button will open a dialog prompting user to add a new comment #: ui/profilecommentdisplay.cpp:54 msgctxt "ProfileCommentDisplay|" msgid "&Add comment..." msgstr "" # Context menu item text. Context menu is shown when user right-clicks on file listing view. When this item is selected, a file selection dialog is opened. #: ui/profilecommentdisplay.cpp:65 msgctxt "ProfileCommentDisplay|" msgid "Save attachment to disk.." msgstr "" # Error dialog title text #: ui/profilecommentdisplay.cpp:90 msgctxt "ProfileCommentDisplay|" msgid "Error" msgstr "" # Error dialog content text. Shown after user tried to access a profile comment and the comment could not be found #: ui/profilecommentdisplay.cpp:91 msgctxt "ProfileCommentDisplay|" msgid "Article not found from local storage" msgstr "" # Text field label text. The text field whose label this is will show number how many attachements there are in the comment. #: ui/profilecommentitemdelegate.cpp:91 msgctxt "ProfileCommentItemDelegate|" msgid "Attachments: " msgstr "" # Column view column title text. The column view in question lists profile comments. This text gives title to column that tells who sent the comment. #: datamodel/profilecommentlistingmodel.cpp:219 msgctxt "ProfileCommentListingModel|" msgid "Sender" msgstr "" # Column view column title text. The column view in question lists profile comments. This text gives title to column that tells when comment was sent. #: datamodel/profilecommentlistingmodel.cpp:222 msgctxt "ProfileCommentListingModel|" msgid "Time" msgstr "" # Column view column title text. The column view in question lists profile comments. This text gives title to column that tells subject of the comment. #: datamodel/profilecommentlistingmodel.cpp:225 msgctxt "ProfileCommentListingModel|" msgid "Subject" msgstr "" # Error message text. Shown inside a dialog after user tried to send a comment to operator who had sent a comment and it turns out that necessary encryption keys of the commenting operator are not found and the replying comment can't be sent. #: datamodel/profilecommentmodel.cpp:67 msgctxt "ProfileCommentModel|" msgid "Profile related to comment not found from database" msgstr "" # Context menu item text. This context-menu is shown when user right-clicks list of operators that is shown in dialog that is made for listing operators (who are readers of another profile) #: ui/profilereadersdialog.cpp:73 msgctxt "ProfileReadersDialog|" msgid "View profile" msgstr "" # Column view column title text. The column view lists readers (operators) of another profile. #: datamodel/profilereaderslistingmodel.cpp:174 msgctxt "ProfileReadersListingModel|" msgid "Name or fingerprint of reader" msgstr "" # Context menu item text. This context menu is shown when user right-clicks on top of search-results. This menu-item opens the currently-selected item from search results. #: ui/searchdisplay.cpp:62 msgctxt "SearchDisplay|" msgid "Open.." msgstr "" # Menu title text. This is the help menu. #: textedit/textedit.cpp:127 msgctxt "TextEdit|" msgid "Help" msgstr "" # Menu-item text used in "help" menu. Selecting this item opens "about" dialog about Qt library. #: textedit/textedit.cpp:129 msgctxt "TextEdit|" msgid "About &Qt" msgstr "" # Window title text for container-window containing actions. It seems to me that this text actually does not appear anywhere in the UI due to way, how container-windows are used. #: textedit/textedit.cpp:186 msgctxt "TextEdit|" msgid "Edit Actions" msgstr "" # Menu text. This gives text to "file" menu of a text editor. #: textedit/textedit.cpp:188 msgctxt "TextEdit|" msgid "&File" msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "open a filesystem file" #: textedit/textedit.cpp:194 msgctxt "TextEdit|" msgid "&Open..." msgstr "" # Menu item text inside menu in text editor. When selected, the text being edited will be saved into local filesystem file. #: textedit/textedit.cpp:203 msgctxt "TextEdit|" msgid "&Save locally before send" msgstr "" # Menu item text inside menu in text editor. When selected, the text being edited will be saved into local filesystem file and user will be queried for file name. #: textedit/textedit.cpp:210 msgctxt "TextEdit|" msgid "Save locally &As..." msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "print" #: textedit/textedit.cpp:218 msgctxt "TextEdit|" msgid "&Print..." msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "open print preview" #: textedit/textedit.cpp:226 msgctxt "TextEdit|" msgid "Print Preview..." msgstr "" # Menu-item text. Used in file-menu for triggering "export as pdf" operation #: textedit/textedit.cpp:231 msgctxt "TextEdit|" msgid "&Export PDF..." msgstr "" # Menu text for "edit" menu of text editor. #: textedit/textedit.cpp:244 msgctxt "TextEdit|" msgid "&Edit" msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "undo" #: textedit/textedit.cpp:249 msgctxt "TextEdit|" msgid "&Undo" msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "re-do" #: textedit/textedit.cpp:254 msgctxt "TextEdit|" msgid "&Redo" msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "cut" (to clipboard) #: textedit/textedit.cpp:261 msgctxt "TextEdit|" msgid "Cu&t" msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "copy to clipboard" #: textedit/textedit.cpp:267 msgctxt "TextEdit|" msgid "&Copy" msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "paste from clipboard" #: textedit/textedit.cpp:273 msgctxt "TextEdit|" msgid "&Paste" msgstr "" # Menu item text inside text editor "edit" menu. After this menu-item is selected, a dialog is opened, prompting user to enter a link (URL) to be included in the text. #: textedit/textedit.cpp:283 msgctxt "TextEdit|" msgid "Insert link" msgstr "" # Menu-item text for embedding an image #: textedit/textedit.cpp:287 msgctxt "TextEdit|" msgid "Embed image" msgstr "" # Menu text. Gives name for a "format" menu inside a text editor. #: textedit/textedit.cpp:294 msgctxt "TextEdit|" msgid "F&ormat" msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle bold text style" #: textedit/textedit.cpp:298 msgctxt "TextEdit|" msgid "&Bold" msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle italic text" #: textedit/textedit.cpp:310 msgctxt "TextEdit|" msgid "&Italic" msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle underline" #: textedit/textedit.cpp:322 msgctxt "TextEdit|" msgid "&Underline" msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "left-justify" #: textedit/textedit.cpp:341 textedit/textedit.cpp:347 msgctxt "TextEdit|" msgid "&Left" msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle centered text" #: textedit/textedit.cpp:342 textedit/textedit.cpp:346 msgctxt "TextEdit|" msgid "C&enter" msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "right-justify" #: textedit/textedit.cpp:343 textedit/textedit.cpp:345 msgctxt "TextEdit|" msgid "&Right" msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "justify both right+left" #: textedit/textedit.cpp:349 msgctxt "TextEdit|" msgid "&Justify" msgstr "" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "color selection" #: textedit/textedit.cpp:376 msgctxt "TextEdit|" msgid "&Color..." msgstr "" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "standard" #: textedit/textedit.cpp:383 msgctxt "TextEdit|" msgid "Standard" msgstr "" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "bullet list (disc)" #: textedit/textedit.cpp:384 msgctxt "TextEdit|" msgid "Bullet List (Disc)" msgstr "" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "bullet list (circle)" #: textedit/textedit.cpp:385 msgctxt "TextEdit|" msgid "Bullet List (Circle)" msgstr "" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "bullet list (square)" #: textedit/textedit.cpp:386 msgctxt "TextEdit|" msgid "Bullet List (Square)" msgstr "" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (decimal)" #: textedit/textedit.cpp:387 msgctxt "TextEdit|" msgid "Ordered List (Decimal)" msgstr "" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (alpha lower)" #: textedit/textedit.cpp:388 msgctxt "TextEdit|" msgid "Ordered List (Alpha lower)" msgstr "" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (alpha upper)" #: textedit/textedit.cpp:389 msgctxt "TextEdit|" msgid "Ordered List (Alpha upper)" msgstr "" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (roman lower)" #: textedit/textedit.cpp:390 msgctxt "TextEdit|" msgid "Ordered List (Roman lower)" msgstr "" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (roman upper)" #: textedit/textedit.cpp:391 msgctxt "TextEdit|" msgid "Ordered List (Roman upper)" msgstr "" # Warning dialog title text. This dialog is shown if user tries to exit without saving her text. #: textedit/textedit.cpp:442 msgctxt "TextEdit|" msgid "Application" msgstr "" # Warning dialog title content text. Text asks what to do with modifications. The dialog has buttons Save,Discard and Cancel and this text is the question. #: textedit/textedit.cpp:443 msgctxt "TextEdit|" msgid "" "The document has been modified.\n" "Do you want to save your changes?" msgstr "" # File selection dialog title text. Dialog will prompt user to select a document for opening. #: textedit/textedit.cpp:467 msgctxt "TextEdit|" msgid "Open File..." msgstr "" # Text for file selection filter field to be used inside file selection dialog. There are 2 parts, separated by ";;" and those semicolons must be left in place. Also the filter parts like (*.htm) must not be edited. The explanations like "HTML-Files" may be edited. #: textedit/textedit.cpp:468 msgctxt "TextEdit|" msgid "HTML-Files (*.htm *.html);;All Files (*)" msgstr "" # File selection dialog title text. Dialog in question prompts user to select name for file to be persisted. #: textedit/textedit.cpp:485 msgctxt "TextEdit|" msgid "Save as..." msgstr "" # Text for file selection filter field to be used inside file selection dialog. There are 3 parts, separated by ";;" and those semicolons must be left in place. Also the filter parts like (*.odt) must not be edited. The explanations like "ODF-files" may be edited. #: textedit/textedit.cpp:486 msgctxt "TextEdit|" msgid "ODF files (*.odt);;HTML-Files (*.htm *.html);;All Files (*)" msgstr "" # Dialog title text. The dialog is printer dialog asking user how to print the text currently in editor. #: textedit/textedit.cpp:501 msgctxt "TextEdit|" msgid "Print Document" msgstr "" # File selection dialog title text. Dialog will prompt user to select a document for opening. #: textedit/textedit.cpp:559 msgctxt "TextEdit|" msgid "Open File" msgstr "" # Text for file selection filter field to be used inside file selection dialog. The filter parts like (*.odt) must not be edited. The explanations like "Files" may be edited. #: textedit/textedit.cpp:561 msgctxt "TextEdit|" msgid "Files (*.*)" msgstr "" # Error dialog title text. #: textedit/textedit.cpp:566 msgctxt "TextEdit|" msgid "Error" msgstr "" # Error dialog content text. #: textedit/textedit.cpp:567 msgctxt "TextEdit|" msgid "Can't load image" msgstr "" # Error message displayed inside error dialog after user tried to select for operation a file whose size greatly exceeds file size limit. #: textedit/textedit.cpp:621 textedit/textedit.cpp:631 msgctxt "TextEdit|" msgid "File way too big" msgstr "" # Dialog title text for "about" dialog. #: ui/aboutDialog.ui:26 msgctxt "aboutDialog|" msgid "About classified ads" msgstr "" # 1st line of text inside "about" dialog, placed next to the turle logo. This text is then followed by longer explanation detail why this program is and how. This is kind of title for the longer explanation. #: ui/aboutDialog.ui:100 msgctxt "aboutDialog|" msgid " Classified ads is a program for online communications" msgstr "" # The long explanation of classified ads inside about-dialog. Note that this text must be valid html. Needs to start with and end with etc. This is easiest to edit like this: copy-paste the content in to a file, say /tmp/about.html. Then either open your favourite html-editor or open classified ads. In classified ads you can start constructing an ad, select from file-menu "open.." and select this file ;do editing and save from file-menu. The saved file is immediately in correct format to be be copy-pasted into contents of this field. #: ui/aboutDialog.ui:160 #| msgid "" #| "

Classified ads is free software. You may use, copy " #| "and modify it if you follow the conditions given in GNU lesser general " #| "public license version 2.1.

Classified ads is copyright ТЉ Antti " #| "JУЄrvinen 2013.

Main feature of the the program is an " #| ""advertisement" - a piece of text belonging to selected " #| "classification. There are several pre-programmed classifications and " #| "operators are encouraged to invent new classifications for new purposes ; " #| "the selection boxes in classification-selection tab are editable. Other " #| "operators may then view the ads, publicly comment the ads, the operators " #| "and also send private messages to each others.

Another important " #| "feature of classified ads is that it is designed to be operated without " #| "any centralized server infrastucture - it is you and other operators " #| "whose computers store and transmit all the content visible inside " #| "classified ads. To get connected you need to know address of at least one " #| "existing computer (a node) so " #| "if your network connection dialog shows no connections, you may need to " #| "contact someone you know is using the software and ask for address of her " #| "node to make initial contact with the network. Once connected the " #| "software should maintain list of addresses of other nodes.

Due to " #| "its server-less design the whole system works best if you leave the " #| "program running always when you have your computer powered on ; while " #| "processing other operators requests it will hog some computing resources " #| "and generate network traffic also when you are not actively using the " #| "program youself - others are.

Operators concerned about privacy of " #| "the content should be aware of following items:

- Data storage " #| "implementation is variant of distributed hash table, practically meaning " #| "that content posted by you gets copied some more-or-less random nodes in " #| "the network.

- Any data item (ad, comment, binary file, private " #| "message etc.) is digitally signed. This makes it more difficult to try to " #| "pose as another operator.

- Operators are reliably identified only " #| "by the SHA1 hash of their generated encryption keys. SHA1 hash is " #| "displayed when viewing details of operator profiles. Other identifying " #| "information like nickname or city name are entered by operator himself " #| "and can be anything. The operator profile, as it is published to the " #| "network, is also signed with the encryption keys of the operator - if you " #| "identify an operator by her SHA1 hash, you have a mechanism for " #| "identifying if any content inside classified ads is posted by this " #| "operator or not. Classified ads internally checks for digital signatures, " #| "throwing away content that fails signature check and tries to provide " #| "SHA1 hash of the operator who posted the content.

- All classified " #| "ads are posted as plain text, no encryption is used. All public profiles " #| "are posted as plain text, no encryption is used. If profile is made " #| "private, it is encrypted to be readable only by selected other profiles. " #| "This applies also to binary files shared by operators private profiles " #| "and comments about private profiles after the profile was made private " #| "(previously plain-text comments or files don't get magically encrypted " #| "afterwards). Private messages are encrypted always to be readable only by " #| "recipient and sender. Attachments follow the privary rules of the " #| "document, they're attachted to.

- As is the case with all " #| "internet-communications, this small fact is true for classified ads too : " #| "once something gets posted online, " #| "there is no way to remove it from network.

- Data " #| "encryption implementation for content is OpenSSL, relying mostly on " #| "algorithms RSA-2048 and AES-256.

- While connections between nodes " #| "are implemented using SSL, other nodes inside network do get to know what " #| "content is being transmitted in neighboring nodes. While there is no " #| "central point for easily collecting this information about particular " #| "classification or operator, operators still should expect no privacy " #| "regarding their doings online, altough some effort has been been put into " #| "hiding contents of private " #| "messages and private profiles.

Programming was (mostly) done by " #| "Antti JУЄrvinen, artwork by Meeri JУЄrvinen.

This product includes " #| "software developed by the OpenSSL Project for use in the OpenSSL Toolkit " #| "(http://www.openssl.org/).

Happy " #| "advertising!


" msgctxt "aboutDialog|" msgid "" "

Classified ads is free software. You may use, copy and " "modify it if you follow the conditions given in GNU lesser general public " "license version 2.1.

Classified ads is copyright ТЉ Antti JУЄrvinen " "2013.

Main feature of the the program is an "advertisement" " "- a piece of text belonging to selected classification. There are several " "pre-programmed classifications and operators are encouraged to invent new " "classifications for new purposes ; the selection boxes in " "classification-selection tab are editable. Other operators may then view the " "ads, publicly comment the ads, the operators and also send private messages " "to each others.

Another important feature of classified ads is that " "it is designed to be operated without any centralized server infrastucture - " "it is you and other operators whose computers store and transmit all the " "content visible inside classified ads. To get connected you need to know " "address of at least one existing computer (a node) so if your network connection dialog shows " "no connections, you may need to contact someone you know is using the " "software and ask for address of her node to make initial contact with the " "network. Once connected the software should maintain list of addresses of " "other nodes.

Due to its server-less design the whole system works " "best if you leave the program running always when you have your computer " "powered on ; while processing other operators requests it will hog some " "computing resources and generate network traffic also when you are not " "actively using the program youself - others are.

Operators concerned " "about privacy of the content should be aware of following items:

- " "Data storage implementation is variant of distributed hash table, practically meaning that " "content posted by you gets copied some more-or-less random nodes in the " "network.

- Any data item (ad, comment, binary file, private message " "etc.) is digitally signed. This makes it more difficult to try to pose as " "another operator.

- Operators are reliably identified only by the " "SHA1 hash of their generated encryption keys. SHA1 hash is displayed when " "viewing details of operator profiles. Other identifying information like " "nickname or city name are entered by operator himself and can be anything. " "The operator profile, as it is published to the network, is also signed with " "the encryption keys of the operator - if you identify an operator by her " "SHA1 hash, you have a mechanism for identifying if any content inside " "classified ads is posted by this operator or not. Classified ads internally " "checks for digital signatures, throwing away content that fails signature " "check and tries to provide SHA1 hash of the operator who posted the " "content.

- All classified ads are posted as plain text, no encryption " "is used. All public profiles are posted as plain text, no encryption is " "used. If profile is made private, it is encrypted to be readable only by " "selected other profiles. This applies also to binary files shared by " "operators private profiles and comments about private profiles after the " "profile was made private (previously plain-text comments or files don't get " "magically encrypted afterwards). Private messages are encrypted always to be " "readable only by recipient and sender. Attachments follow the privary rules " "of the document, they're attachted to.

- As is the case with all " "internet-communications, this small fact is true for classified ads too : " "once something gets posted online, there " "is no way to remove it from network.

- Data encryption " "implementation for content is OpenSSL, relying mostly on algorithms RSA-2048 " "and AES-256.

- While connections between nodes are implemented using " "SSL, other nodes inside network do get to know what content is being " "transmitted in neighboring nodes. While there is no central point for easily " "collecting this information about particular classification or operator, " "operators still should expect no privacy regarding their doings online, " "although some effort has been been put into hiding contents of private messages and private " "profiles.

Programming was (mostly) done by Antti JУЄrvinen, artwork by " "Meeri JУЄrvinen.

This product includes software developed by the " "OpenSSL Project for use in the OpenSSL Toolkit " "(http://www.openssl.org/).

Happy " "advertising!


" msgstr "" # Dialog title text. Dialog in question produces list of file attachments. #: ui/attachmentListDialog.ui:26 msgctxt "attachmentListDialog|" msgid "List of attached files" msgstr "" # Dialog title text. Purpose of the dialog is to let user change properties of a frequent contact in contact-list. #: ui/editContact.ui:26 msgctxt "editContactDialog|" msgid "Edit a contact" msgstr "" # Text field label in contact-editing dialog. This gives label for field that shows SHA1 fingerprint of the operator whose data is being edited #: ui/editContact.ui:39 msgctxt "editContactDialog|" msgid "Address (SHA1) of contact" msgstr "" # Text field label in contact-editing dialog. This gives label for field that shows nickname of the operator whose data is being edited #: ui/editContact.ui:53 msgctxt "editContactDialog|" msgid "Local nickname" msgstr "" # Tooltip text of a checkbox label in contact-editing dialog. The checkbox is one that controls statement of trustworthniness of the operator whose data is being edited. Note html format. #: ui/editContact.ui:65 msgctxt "editContactDialog|" msgid "" "

Settings some trusted is public information to readers " "of your profile

" msgstr "" # Label of a checkbox in contact-editing dialog. The checkbox is one that controls statement of trustworthniness of the operator whose data is being edited. #: ui/editContact.ui:68 msgctxt "editContactDialog|" msgid "This contact is to be publicly trusted in transactions" msgstr "" # Name of front widget. Wild guess is that this text actually does not appear anywhere in the UI. #: frontWidget.ui:14 msgctxt "frontWidget|" msgid "Form" msgstr "" # Tab title text in front widget. When user clicks in this tab, the view is switched to one, that lists classified ads. #: frontWidget.ui:39 msgctxt "frontWidget|" msgid "Classified ads" msgstr "" # Prompt text next "search" button. User is supposed to enter search criteria for classified ads and then click "search" ; this is prompt text for this behaviour. #: frontWidget.ui:67 msgctxt "frontWidget|" msgid "Search for classified ads about" msgstr "" # Prompt text very next to "search" button. After user has clicked the button, he is supposed to be viewing list of classified ads matching the search criteria. #: frontWidget.ui:74 msgctxt "frontWidget|" msgid "Perform" msgstr "" # This part of search-criteria phrase. Normally the phrase reads something like "Buying of cars in finland" and this word is the 2nd word in that phrase. #: frontWidget.ui:97 msgctxt "frontWidget|" msgid "of" msgstr "" # This part of search-criteria phrase. Normally the phrase reads something like "Buying of cars in finland" and this word is the 4th word in that phrase. #: frontWidget.ui:113 msgctxt "frontWidget|" msgid "in" msgstr "" # Button text for button used to search for classified ads. This button has text "perform" just next to it so user sees actually 2 words "perform search" where the "perform" is in separate label above the button, and then is the text of this button. #: frontWidget.ui:123 msgctxt "frontWidget|" msgid "Search" msgstr "" # Tab title text in front widget for tab that shows details of operators own profile (==personal details) #: frontWidget.ui:161 msgctxt "frontWidget|" msgid "My profile" msgstr "" # Text field label in "operators profile" tab. The field in questions shows SHA1-digest e.g. the real address of the operator. #: frontWidget.ui:177 frontWidget.ui:932 msgctxt "frontWidget|" msgid "Profile address" msgstr "" # Text field label in "operators profile" tab. The field in questions shows nickname of the operator #: frontWidget.ui:208 frontWidget.ui:643 msgctxt "frontWidget|" msgid "Nickname" msgstr "" # Text field label in "operators profile" tab. The field in questions shows "hello world" text of the operator. #: frontWidget.ui:225 frontWidget.ui:669 msgctxt "frontWidget|" msgid "Greeting text" msgstr "" # Tooltip-text of a text field in "operators profile" tab. The field in questions shows greeting text of the operator. #: frontWidget.ui:232 msgctxt "frontWidget|" msgid "For the rest of the world. " msgstr "" # Text field label in "operators profile" tab. The field in questions shows given name (first name) of the operator. #: frontWidget.ui:239 frontWidget.ui:695 msgctxt "frontWidget|" msgid "First name" msgstr "" # Text field label in "operators profile" tab. The field in questions shows family name of the operator #: frontWidget.ui:253 frontWidget.ui:715 msgctxt "frontWidget|" msgid "Family name" msgstr "" # Text field label in "operators profile" tab. The field in questions shows place of residence of the operator #: frontWidget.ui:263 msgctxt "frontWidget|" msgid "City/country" msgstr "" # Text field label in "operators profile" tab. The field in questions shows address of bitcoin wallet of the operator. #: frontWidget.ui:273 msgctxt "frontWidget|" msgid "BTC address" msgstr "" # Tooltip-text for a text field "operators profile" tab. The field in questions shows address of bitcoin wallet of the operator. #: frontWidget.ui:280 msgctxt "frontWidget|" msgid "If you wish to receive payments via BTC, include your BTC address too." msgstr "" # Text field label in "operators profile" tab. The field in questions shows what the user has to say about state of the world. #: frontWidget.ui:287 frontWidget.ui:799 msgctxt "frontWidget|" msgid "State of the world" msgstr "" # Tool-tip text of a field in "operators profile" tab. The field in questions shows what operator has to say about state of the world. #: frontWidget.ui:294 msgctxt "frontWidget|" msgid "Longer explanation about state of the world" msgstr "" # Checkbox text in "my profile" tab. The checkbox is question is a toggle for public/private status of the profile. When checkbox is checked, the profile will be made private. #: frontWidget.ui:301 msgctxt "frontWidget|" msgid "Profile is private" msgstr "" # Button text inside "My profile" tab. Clicking the button opens a dialog that prompts user to select list of operators that can read his profile that he has previously marked as private (e.g. accessible only to listed readers) #: frontWidget.ui:308 msgctxt "frontWidget|" msgid "Readers of profile" msgstr "" # Explanation text inside "my profile" tab. #: frontWidget.ui:315 msgctxt "frontWidget|" msgid "None of the fields is mandatory" msgstr "" # Text field label inside "my profile" tab. The field whose label this is shows the time when profile was last updated. #: frontWidget.ui:322 msgctxt "frontWidget|" msgid "Time of last update" msgstr "" # Button text for button inside "my profile" tab. By clicking this button user makes her edits known to rest of the world. #: frontWidget.ui:342 msgctxt "frontWidget|" msgid "Publish" msgstr "" # Button text for button inside "my profile" tab. By clicking this button user discards her edits. #: frontWidget.ui:355 msgctxt "frontWidget|" msgid "Revert changes" msgstr "" # Text label on top of "my profile" tab. Below this label is a list of text fields and other stuff that user may edit regarding herself. #: frontWidget.ui:369 msgctxt "frontWidget|" msgid "Details of operator profile:" msgstr "" # Text in image-placeholder inside "my profile" tab. When user has not selected any image for her profile details, this text is shown in place of the image. Clicking on text gives user option to select the image file for profile. #: frontWidget.ui:401 msgctxt "frontWidget|" msgid "" "\n" "\n" "Click \n" "to \n" "Add\n" "Image" msgstr "" # Title text inside "my profile" tab. Title text is for a list of files that user is currently sharing with other users. #: frontWidget.ui:425 frontWidget.ui:845 msgctxt "frontWidget|" msgid "Shared files" msgstr "" # Title text inside "my profile" tab. Title text is for a list of comments made by other users regarding operators profile. #: frontWidget.ui:461 frontWidget.ui:892 msgctxt "frontWidget|" msgid "Latest comments" msgstr "" # Tab title text. When this tab is opened, user is shown a view of his frequent contacts. #: frontWidget.ui:504 msgctxt "frontWidget|" msgid "Contacts" msgstr "" # Button text inside "contacts" tab. Clicking this button opens a dialog prompting user to enter details of operator to be added into contact list #: frontWidget.ui:536 msgctxt "frontWidget|" msgid "Add contact" msgstr "" # Button text inside "contacts" tab. Clicking this button removes a contact from list. #: frontWidget.ui:543 msgctxt "frontWidget|" msgid "Remove contact" msgstr "" # Button text inside "contacts" tab. Clicking this button displays details of the selected contact. #: frontWidget.ui:550 msgctxt "frontWidget|" msgid "View profile" msgstr "" # Button text inside "contacts" tab. Clicking this button opens a dialog prompting user to send a message selected contact. #: frontWidget.ui:557 msgctxt "frontWidget|" msgid "Send message" msgstr "" # Tab text in front widget. When user selects this tab, he is presented with list of his private correspondence. #: frontWidget.ui:569 msgctxt "frontWidget|" msgid "Private messages" msgstr "" # Tab text in front widget. This tab shows details of some other operator of classified ads. Normally this text is replaced with nickname of the operator but if nothing like this is available, this text may be shown, this is the "default text". #: frontWidget.ui:624 msgctxt "frontWidget|" msgid "Profile details" msgstr "" # Label text of a text-field. The text-field in question shows place of residence of operator whose details are on display. #: frontWidget.ui:741 msgctxt "frontWidget|" msgid "City/Country" msgstr "" # Label text of a text-field. The text-field in question shows bitcoin wallet address of operator whose details are on display. #: frontWidget.ui:767 msgctxt "frontWidget|" msgid "BTC Addr" msgstr "" # Text for image-placeholder inside "profile details" tab. When some particular operator has not selected any image for her profile, this text is shown in place of the image. Note html format. #: frontWidget.ui:829 msgctxt "frontWidget|" msgid "" "




No

Image

Inserted

" msgstr "" # Button text inside "defails of operator profile" tab. When the button is clicked, a new-message editor is opened. #: frontWidget.ui:874 msgctxt "frontWidget|" msgid "Send message to operator" msgstr "" # Button text inside "defails of operator profile" tab. When the button is clicked, dialog listing readers of the (private) profile. #: frontWidget.ui:879 msgctxt "frontWidget|" msgid "View readers" msgstr "" # Button text inside "defails of operator profile" tab. When the button is clicked, a dialog is opened, dialog prompts user to enter a comment about the operator. #: frontWidget.ui:927 msgctxt "frontWidget|" msgid "Comment" msgstr "" # Button text inside "defails of operator profile" tab. When the button is clicked, the operator whose data is on display is added into contact-list. #: frontWidget.ui:959 msgctxt "frontWidget|" msgid "Add to contacts" msgstr "" # Dialog title text. Dialog is for adding a link to text being edited. #: ui/insertLink.ui:26 msgctxt "insertLinkDialog|" msgid "Insert link" msgstr "" # Label for a combobox-field inside "insert link" dialog. Next to this label is set of fields that together make up a valid URL to be inserted. #: ui/insertLink.ui:39 msgctxt "insertLinkDialog|" msgid "URL" msgstr "" # Label for a text-field inside "insert link" dialog. Next to this label is field where user is supposed the text that will be shown as the link. Consider
the text then "the text" is text that user is prompted to enter with this label. #: ui/insertLink.ui:112 msgctxt "insertLinkDialog|" msgid "Link label in text" msgstr "" # Dialog title text. Dialog prompts user to manually add a network-connection to another node in the network. #: ui/manualConnectionDialog.ui:26 msgctxt "manualConnectionDialog|" msgid "Manually add node to connection queue" msgstr "" # Label text of numeric field. The numeric (input) field is TCP port of the remote node that will be connected. #: ui/manualConnectionDialog.ui:48 msgctxt "manualConnectionDialog|" msgid "Remote node listen port" msgstr "" # Label for text field inside "manually add connection" dialog. Text field whose label this is requires user to type in network address (ip addr or dns name) of the remote node. #: ui/manualConnectionDialog.ui:78 msgctxt "manualConnectionDialog|" msgid "Remote node network address" msgstr "" # Tooltip text for a text field inside "manually add connection" dialog. The text field whose tooltip this is the remote network address input field. #: ui/manualConnectionDialog.ui:91 msgctxt "manualConnectionDialog|" msgid "IPv4, IPv6 or DNS name" msgstr "" # Dialog title text for dialog that requires user to enter information about file to be shared with others. Metadata query dialog in practice. #: ui/metadataQuery.ui:26 msgctxt "metadataQuery|" msgid "File information" msgstr "" # Label text for a input field. The input field whose label this is asks for file name (filesystem file name) #: ui/metadataQuery.ui:60 msgctxt "metadataQuery|" msgid "Name of the file:" msgstr "" # Label text for a input field. The input field whose label this is asks for owner of the file contents. This may be copyright holder, depending on contracts and legislation followed. #: ui/metadataQuery.ui:81 msgctxt "metadataQuery|" msgid "Owner of file (name or SHA1 if CA operator):" msgstr "" # Label text for a input field. The input field whose label this is asks for license under which the file may be used. Combobox lists some pre-filled options like GPL,BSD,CC-BY etc. but user may also enter any text into field. #: ui/metadataQuery.ui:111 msgctxt "metadataQuery|" msgid "License of use:" msgstr "" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:122 msgctxt "metadataQuery|" msgid "Public domain" msgstr "" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:127 msgctxt "metadataQuery|" msgid "GPL" msgstr "" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:132 msgctxt "metadataQuery|" msgid "LGPL" msgstr "" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:137 msgctxt "metadataQuery|" msgid "BSD" msgstr "" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:142 msgctxt "metadataQuery|" msgid "CC-BY" msgstr "" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:147 msgctxt "metadataQuery|" msgid "CC-BY-SA" msgstr "" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:152 msgctxt "metadataQuery|" msgid "CC-BY-ND" msgstr "" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:157 msgctxt "metadataQuery|" msgid "CC-BY-NC" msgstr "" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:162 msgctxt "metadataQuery|" msgid "CC-BY-NC-SA" msgstr "" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:167 msgctxt "metadataQuery|" msgid "CC-BY-NC-ND" msgstr "" # Label text for a input field. The input field whose label this is asks for mime-type of the field about to be published. #: ui/metadataQuery.ui:182 msgctxt "metadataQuery|" msgid "Mime-type:" msgstr "" # Label text for a input field. The input field whose label this is asks for descriptive text about file about to be published. #: ui/metadataQuery.ui:199 msgctxt "metadataQuery|" msgid "Description of file:" msgstr "" # Prompt text on top of "metadata query" dialog. Below this label is set of input-fields that make up the meta-data of a file to be published. #: ui/metadataQuery.ui:218 msgctxt "metadataQuery|" msgid "Enter information regarding file before publish:" msgstr "" # Dialog title text for a dialog that offers possibility to post a new classified ad for others to read. #: ui/newClassifiedAd.ui:26 msgctxt "newCaDialog|" msgid "Post a new classified ad" msgstr "" # This label text is part of sentence, whole sentence goes for example "About buying of cars in sweden" where the words "bying", "cars", and "sweden" are combo-boxes that user may choose from ; this word here is the first word in that sentece. #: ui/newClassifiedAd.ui:47 msgctxt "newCaDialog|" msgid "About" msgstr "" # This label text is part of sentence, whole sentence goes for example "About buying of cars in sweden" where the words "bying", "cars", and "sweden" are combo-boxes that user may choose from ; this word here is the 3rd word in that sentece. #: ui/newClassifiedAd.ui:65 msgctxt "newCaDialog|" msgid "of" msgstr "" # This label text is part of sentence, whole sentence goes for example "About buying of cars in sweden" where the words "bying", "cars", and "sweden" are combo-boxes that user may choose from ; this word here is the 5th word in that sentece. #: ui/newClassifiedAd.ui:81 msgctxt "newCaDialog|" msgid "in" msgstr "" # Label text of a text field inside "post a new classified ad" dialog. The input field whose label this is, requires user to enter a subject (topic) for her posting. #: ui/newClassifiedAd.ui:95 msgctxt "newCaDialog|" msgid "Subject" msgstr "" # Label text of a text field inside "post a new classified ad" dialog. The input field whose label this is, will show name file that is attached to the post. #: ui/newClassifiedAd.ui:129 msgctxt "newCaDialog|" msgid "Attachment: " msgstr "" # Push-button text inside "post a new classified ad" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. #: ui/newClassifiedAd.ui:149 msgctxt "newCaDialog|" msgid "Add" msgstr "" # Dialog title text for dialog that prompts user to edit+send a private message to another operator #: ui/newPrivMsg.ui:26 msgctxt "newPrivMsgDialog|" msgid "Send a private message" msgstr "" # Text field label for input field inside "compose a new private message dialog". The text field in question is "subject" or "topic" field of the message. #: ui/newPrivMsg.ui:39 msgctxt "newPrivMsgDialog|" msgid "Subject" msgstr "" # Text field label for input field inside "compose a new private message dialog". The text field in question is SHA1 address of the recipient. #: ui/newPrivMsg.ui:53 msgctxt "newPrivMsgDialog|" msgid "Recipient" msgstr "" # Label text of a text field inside "compose a new private message" dialog. The input field whose label this is, will show name file that is attached to the post. #: ui/newPrivMsg.ui:83 msgctxt "newPrivMsgDialog|" msgid "Attachments: " msgstr "" # Push-button text inside "compose a new private message" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. #: ui/newPrivMsg.ui:103 msgctxt "newPrivMsgDialog|" msgid "Attach" msgstr "" # Dialog title text for dialog that prompts user to edit+send a comment regarding another operator. #: ui/newProfileComment.ui:26 msgctxt "newProfileCommentDialog|" msgid "Comment a operators profile" msgstr "" # Text field label for input field inside "compose a comment about operator dialog". The text field in question is "subject" or "topic" field of the comment. #: ui/newProfileComment.ui:39 msgctxt "newProfileCommentDialog|" msgid "Subject" msgstr "" # Text field label for input field inside "compose a comment about operator dialog". The text field in question is SHA1 digest (address) of the operator being commented. #: ui/newProfileComment.ui:53 msgctxt "newProfileCommentDialog|" msgid "Commented profile" msgstr "" # Label text of a text field inside "compose a comment about operator dialog" dialog. The input field whose label this is, will show name file that is attached to the post. #: ui/newProfileComment.ui:89 msgctxt "newProfileCommentDialog|" msgid "Attachments:" msgstr "" # Push-button text inside "compose a comment about operator dialog" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. #: ui/newProfileComment.ui:109 msgctxt "newProfileCommentDialog|" msgid "Attach" msgstr "" # Dialog title text for a dialog that prompts user to edit+publish a text document. #: ui/newTextDocument.ui:26 msgctxt "newTextDocumentDialog|" msgid "Edit and publish a new text document" msgstr "" # Text field label for input field inside "compose a new text document" dialog. The text field in question is "subject" or "topic" field of the text document. #: ui/newTextDocument.ui:39 msgctxt "newTextDocumentDialog|" msgid "Document title" msgstr "" # Label text of a text field inside "edit+publish a new text document dialog" dialog. The input field whose label this is, will show name file that is attached to the document. #: ui/newTextDocument.ui:75 msgctxt "newTextDocumentDialog|" msgid "Attachments:" msgstr "" # Push-button text inside "edit+publish a new text document dialog" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. #: ui/newTextDocument.ui:95 msgctxt "newTextDocumentDialog|" msgid "Attach" msgstr "" # Dialog title text for dialog that will show a listing of previous comments regarding operator (user himself or some other operator, it is the same dialog in both cases) #: ui/profileCommentDisplay.ui:26 msgctxt "profileCommentDisplay|" msgid "Comments regarding operator" msgstr "" # Dialog title text for a dialog that prompts user to choose operators who will be able to read details, comments and shared files of his profile. #: ui/profileReadersDialog.ui:26 msgctxt "profileReadersDialog|" msgid "Profile readers list" msgstr "" # Text field label inside "add profiles to list of readers" dialog. The text field whose prompt this is asks for search-words to be used to filter operator names/addresses from database. #: ui/profileReadersDialog.ui:37 msgctxt "profileReadersDialog|" msgid "Search for profiles to add" msgstr "" # Text field label inside "add profiles to list of readers" dialog. The text listing-field whose explanation this is will list operators whose nickname,name or other search-term matches conditions entered by user. #: ui/profileReadersDialog.ui:44 msgctxt "profileReadersDialog|" msgid "First 100 matching profiles:" msgstr "" # Push-button label inside "add profiles to list of readers" dialog. When user hits this button, operators that are selected from neighboring list will be added to list of readers of operators profile. #: ui/profileReadersDialog.ui:66 msgctxt "profileReadersDialog|" msgid "Add seleted to list of readers" msgstr "" # Text field label inside "add profiles to list of readers" dialog. The text listing-field whose explanation this is shows current list operators profiles readers. #: ui/profileReadersDialog.ui:73 msgctxt "profileReadersDialog|" msgid "Current list of readers" msgstr "" # Push button label inside dialog that asks for list of operators who are readers of operators own profile. When user this this button, the dialog is dismissed. #: ui/profileReadersDialog.ui:90 msgctxt "profileReadersDialog|" msgid "Close" msgstr "" # Push button label inside dialog that asks for list of operators who are readers of operators own profile. When user this this button, selected operators are removed from the list. #: ui/profileReadersDialog.ui:109 msgctxt "profileReadersDialog|" msgid "Remove selected" msgstr "" # Dialog title-text for a search dialog. #: ui/searchDisplay.ui:26 msgctxt "searchDisplay|" msgid "Search data storage" msgstr "" # Label text of a text field inside "search" dialog. The text field in question requires user to enter one or more words that are then searched from all available (public) documents. #: ui/searchDisplay.ui:60 msgctxt "searchDisplay|" msgid "Words:" msgstr "" # Push button label inside "search" dialog. When button is hit, search using given words is performed. #: ui/searchDisplay.ui:70 msgctxt "searchDisplay|" msgid "Search" msgstr "" # Check-box label inside "search" dialog. When box is checked, the search is done also in neighboring nodes in the network, not only in local storage. #: ui/searchDisplay.ui:87 msgctxt "searchDisplay|" msgid "Network search" msgstr "" # Check-box label inside "search" dialog. When box is checked, the search may include classified ads in its resultset. #: ui/searchDisplay.ui:101 msgctxt "searchDisplay|" msgid "Search ads" msgstr "" # Check-box label inside "search" dialog. When box is checked, the search may include operator profiles in its resultset. #: ui/searchDisplay.ui:111 msgctxt "searchDisplay|" msgid "Search profiles" msgstr "" # Check-box label inside "search" dialog. When box is checked, the search may include profile commetns in its resultset. #: ui/searchDisplay.ui:121 msgctxt "searchDisplay|" msgid "Search comments" msgstr "" # Dialog title text for "settings" dialog. #: ui/settingsDialog.ui:26 msgctxt "settingsDialog|" msgid "Node settings" msgstr "" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has TCP port number of the node. #: ui/settingsDialog.ui:39 msgctxt "settingsDialog|" msgid "TCP listen port" msgstr "" # Tooltip-text for input field inside "settings" dialog. The numerical input field whose label this is has TCP port number of the node. #: ui/settingsDialog.ui:58 msgctxt "settingsDialog|" msgid "Incoming TCP listen port. Change requires node restart. " msgstr "" # Text field label for input field inside "settings" dialog. The textual input field whose label this is requires user to enter DNS-name of the node (or leave it empty, if no name is assigned) #: ui/settingsDialog.ui:84 msgctxt "settingsDialog|" msgid "DNS name of node" msgstr "" # Tooltip-text for input field inside "settings" dialog. The textual input field whose label this is requires user to enter DNS-name of the node (or leave it empty, if no name is assigned) #: ui/settingsDialog.ui:91 msgctxt "settingsDialog|" msgid "" "If you have permanent DNS name for your machine, you may type it here to be " "used to reference your node" msgstr "" # Text label inside "settings" dialog. Under this label is set of numerical input fields that user may use to adjust the amount of items he wishes to keep in his local storage. #: ui/settingsDialog.ui:103 msgctxt "settingsDialog|" msgid "Data store limits:" msgstr "" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of operator profiles to keep in storage. #: ui/settingsDialog.ui:115 msgctxt "settingsDialog|" msgid "Nr of profiles to keep" msgstr "" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of private messages to keep in storage. #: ui/settingsDialog.ui:154 msgctxt "settingsDialog|" msgid "Nr of private messages to keep" msgstr "" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of binary files to keep in storage. #: ui/settingsDialog.ui:193 msgctxt "settingsDialog|" msgid "Nr of binary blobs to keep" msgstr "" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of classified ads to keep in storage. #: ui/settingsDialog.ui:232 msgctxt "settingsDialog|" msgid "Nr of CAs to keep" msgstr "" # Tooltip-text for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of classified ads to keep in storage. #: ui/settingsDialog.ui:251 msgctxt "settingsDialog|" msgid "" "Number of classified ads to keep in storage, total, including all " "classifications. Oldest referenced will be deleted first." msgstr "" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of comments regarding operators to keep in storage. #: ui/settingsDialog.ui:274 msgctxt "settingsDialog|" msgid "Nr of profile comments to keep" msgstr "" # Dialog title text for a dialog that shows network connectivity details. #: ui/statusDialog.ui:26 msgctxt "statusDialog|" msgid "Network and connection status" msgstr "" # Text field label for display-item inside "network status" dialog. The display-item shows ipv4-network address of the node. Usually it is (public) IP addr of the very machine that user is using at the moment. #: ui/statusDialog.ui:48 msgctxt "statusDialog|" msgid "Detected own IPv4" msgstr "" # Tooltip-text for display-item inside "network status" dialog. The display-item shows ipv4-network address of the node. Usually it is (public) IP addr of the very machine that user is using at the moment. #: ui/statusDialog.ui:61 ui/statusDialog.ui:93 msgctxt "statusDialog|" msgid "" "Should your friend have trouble connecting, give her this address with port " "number" msgstr "" # Text field label for display-item inside "network status" dialog. The display-item shows IPV6-address of the node. Usually it is (public) IPv6 addr of the very machine that user is using at the moment. #: ui/statusDialog.ui:74 msgctxt "statusDialog|" msgid "IPv6" msgstr "" # Text field label for display-item inside "network status" dialog. The display-item shows listen port of the node. #: ui/statusDialog.ui:113 msgctxt "statusDialog|" msgid "TCP port currently used" msgstr "" # Text field label for a list-item inside "network status" dialog. The list-item shows list of currently connected other nodes in the network. #: ui/statusDialog.ui:151 msgctxt "statusDialog|" msgid "Currently open connections" msgstr "" # Push-button label for button inside "network status" dialog. When button is hit, another dialog is opened, asking user for details about the remote node to connect. #: ui/statusDialog.ui:195 msgctxt "statusDialog|" msgid "Manually add connection" msgstr "" # Push-button label for button inside "network status" dialog. When button is hit, dialog is dismissed. #: ui/statusDialog.ui:202 msgctxt "statusDialog|" msgid "Close" msgstr "" classified-ads-0.09/po/da.po000066400000000000000000003445461260620453500157020ustar00rootroot00000000000000# Translation file for classified ads. # # This is auto-generated from .ts file. # # classified ads -> rubrikannoncer (eller hvad, mУЅske bare rubrikker, annoncer, beskeder eller noget andet). # msgid "" msgstr "" "Project-Id-Version: classified-ads 0.08\n" "Report-Msgid-Bugs-To: antti.jarvinen@katiska.org\n" "POT-Creation-Date: 2015-08-31 23:30+0300\n" "PO-Revision-Date: 2015-10-06 19:20+0100\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Qt-Contexts: true\n" # Context menu item text for menu, that appears when right-mouse is clicked on top of a file in a list. #: ui/attachmentlistdialog.cpp:60 msgctxt "AttachmentListDialog|" msgid "Save file to disk.." msgstr "Gem fil til disk ..." # In file open dialog this is text specifying what kind of files to include in listing, filtered by file name suffix. For example, user wants only PNG files, then text appearing in dialog filter field would say "PNG files (*.png)" and this work "files" here is the word after the word PNG. #: ui/attachmentlistdialog.cpp:151 ui/attachmentlistdialog.cpp:153 msgctxt "AttachmentListDialog|" msgid "files" msgstr "filer" # Dialog title text for dialog asking user to give a name to file for purpose of saving it to filesystem. #: ui/attachmentlistdialog.cpp:155 msgctxt "AttachmentListDialog|" msgid "Choose file name for saving" msgstr "VУІlg filnavn" # Dialog title text for error dialog. #: ui/attachmentlistdialog.cpp:166 msgctxt "AttachmentListDialog|" msgid "Error" msgstr "Fejl" # This gives (no) explanation about reason for "file open failure"? #: ui/attachmentlistdialog.cpp:167 msgctxt "AttachmentListDialog|" msgid "File open error" msgstr "Der opstod en fejl under УЅbning af filen" # Title text in a listing view where list of shared files are listed. This particular text gives text for column, where "name or fingerprint of file" is listed. Fingerprint in practice means SHA1 digest. #: datamodel/binaryfilelistingmodel.cpp:173 msgctxt "BinaryFileListingModel|" msgid "Name or fingerprint of file" msgstr "Navn eller fingeraftryk for fil" # Header text for a column-list. The column that gets its header text from this string, is the date-column of an classified ad. #: datamodel/calistingmodel.cpp:50 datamodel/calistingmodel.cpp:143 msgctxt "CAListingModel|" msgid "Date" msgstr "Dato" # Header text for a column-list. The column that gets its header text from this string, is the subject-column of an classified ad. #: datamodel/calistingmodel.cpp:51 datamodel/calistingmodel.cpp:142 msgctxt "CAListingModel|" msgid "Subject" msgstr "Emne" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Cars in Estonia" and this combobox text here is the first word of that phrase. #: datamodel/camodel.cpp:127 msgctxt "ClassifiedAdsModel|" msgid "Buying" msgstr "KУИb" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Cars in Estonia" and this combobox text here is the first word of that phrase. #: datamodel/camodel.cpp:129 msgctxt "ClassifiedAdsModel|" msgid "Selling" msgstr "Salg" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Giving away of Cars in Estonia" and this combobox text here is the first+2nd word of that phrase. #: datamodel/camodel.cpp:131 msgctxt "ClassifiedAdsModel|" msgid "Giving away" msgstr "ForУІring af" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Wanting of Cars in Estonia" and this combobox text here is the first word of that phrase. #: datamodel/camodel.cpp:133 msgctxt "ClassifiedAdsModel|" msgid "Wanting" msgstr "EfterspУИrgsel" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Renting of Cars in Estonia" and this combobox text here is the first word of that phrase. #: datamodel/camodel.cpp:135 msgctxt "ClassifiedAdsModel|" msgid "Renting" msgstr "Leje" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Cars in Estonia" and this combobox text here is the first word of that phrase. #: datamodel/camodel.cpp:137 msgctxt "ClassifiedAdsModel|" msgid "Announcement" msgstr "Annoncering" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Cars in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:210 msgctxt "ClassifiedAdsModel|" msgid "Cars" msgstr "biler" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Boats in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:212 msgctxt "ClassifiedAdsModel|" msgid "Boats" msgstr "bУЅde" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Bikes in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:214 msgctxt "ClassifiedAdsModel|" msgid "Bikes" msgstr "motorcykler" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Other vehicles in Estonia" and this combobox text here is the 3rd+4th word of that phrase. #: datamodel/camodel.cpp:216 msgctxt "ClassifiedAdsModel|" msgid "Other vehicles" msgstr "andre kУИretУИjer" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of vehicle parts in Estonia" and this combobox text here is the 3rd+4th word of that phrase. #: datamodel/camodel.cpp:218 msgctxt "ClassifiedAdsModel|" msgid "Vehicle parts" msgstr "dele af kУИretУИjer" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Habitation in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:220 msgctxt "ClassifiedAdsModel|" msgid "Habitation" msgstr "ejendom" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Household appliances in Estonia" and this combobox text here is the 3rd+4th word of that phrase. #: datamodel/camodel.cpp:222 msgctxt "ClassifiedAdsModel|" msgid "Household appliances" msgstr "husholdningsapparater" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Furniture in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:224 msgctxt "ClassifiedAdsModel|" msgid "Furniture" msgstr "mУИbler" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Clothing in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:226 msgctxt "ClassifiedAdsModel|" msgid "Clothing" msgstr "tУИj" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Tools in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:228 msgctxt "ClassifiedAdsModel|" msgid "Tools" msgstr "vУІrktУИj" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Tools in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:230 msgctxt "ClassifiedAdsModel|" msgid "Sports" msgstr "sportsartikler" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Music in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:232 msgctxt "ClassifiedAdsModel|" msgid "Music" msgstr "musik" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Books in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:234 msgctxt "ClassifiedAdsModel|" msgid "Books" msgstr "bУИger" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Movies in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:236 msgctxt "ClassifiedAdsModel|" msgid "Movies" msgstr "film" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Animals in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:238 msgctxt "ClassifiedAdsModel|" msgid "Animals" msgstr "dyr" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Electronics in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:240 msgctxt "ClassifiedAdsModel|" msgid "Electronics" msgstr "elektronik" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Jobs in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:242 msgctxt "ClassifiedAdsModel|" msgid "Jobs" msgstr "job" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Wanting of Transportation in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:244 msgctxt "ClassifiedAdsModel|" msgid "Transportation" msgstr "transport" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Services in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:246 msgctxt "ClassifiedAdsModel|" msgid "Services" msgstr "tjenester" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Healthcare in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:248 msgctxt "ClassifiedAdsModel|" msgid "Healthcare" msgstr "sundhedspleje" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Foodstuff in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:250 msgctxt "ClassifiedAdsModel|" msgid "Foodstuff" msgstr "madvarer" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Software in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:252 msgctxt "ClassifiedAdsModel|" msgid "Software" msgstr "programmer" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Events in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:254 msgctxt "ClassifiedAdsModel|" msgid "Events" msgstr "hУІndelser" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Giving away of Education in Estonia" and this combobox text here is the 4th word of that phrase. #: datamodel/camodel.cpp:256 msgctxt "ClassifiedAdsModel|" msgid "Education" msgstr "undervisning" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Finance in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:258 msgctxt "ClassifiedAdsModel|" msgid "Finance" msgstr "finans" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Jewelry in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:260 msgctxt "ClassifiedAdsModel|" msgid "Jewelry" msgstr "smykker" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of religious rituals in Estonia" and this combobox text here is the 3rd+4th word of that phrase. #: datamodel/camodel.cpp:262 msgctxt "ClassifiedAdsModel|" msgid "Religious rituals" msgstr "religiУИse ritualer" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Philosophy in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:264 msgctxt "ClassifiedAdsModel|" msgid "Philosophy" msgstr "filosofi" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Philosophy in Any country" and this combobox text here is end part "Any country" specifying the location where announcement. #: datamodel/camodel.cpp:908 msgctxt "ClassifiedAdsModel|" msgid "Any country" msgstr "alle lande" # Tool tip text. When user hovers mouse cursor on top of network address field in a dialog, this text will appear. #: datamodel/connectionlistingmodel.cpp:142 msgctxt "ConnectionListingModel|" msgid "Peer network address" msgstr "Modparts netvУІrksadresse" # Tool tip text. When user hovers mouse cursor on top of field specifying if connection is inbound/outbound this text will appear. #: datamodel/connectionlistingmodel.cpp:145 msgctxt "ConnectionListingModel|" msgid "Inbound connections are those where peer initiated connection" msgstr "IndgУЅende forbindelser er dem hvor modpart startede forbindelse" # Tool tip text. When user hovers mouse cursor on top of traffic-counter field in a dialog, this text will appear. #: datamodel/connectionlistingmodel.cpp:148 msgctxt "ConnectionListingModel|" msgid "Data transferred from peer to your node" msgstr "Data overfУИrt fra modpart til din knude" # Tool tip text. When user hovers mouse cursor on top of traffic-counter field in a dialog, this text will appear. #: datamodel/connectionlistingmodel.cpp:151 msgctxt "ConnectionListingModel|" msgid "Data transferred to peer from your node" msgstr "Data overfУИrt til modpart fra din knude" # Tool tip text. When user hovers mouse cursor on top of time-field in a dialog, this text will appear. #: datamodel/connectionlistingmodel.cpp:154 msgctxt "ConnectionListingModel|" msgid "Time when connection was opened" msgstr "Tidspunkt da forbindelsen blev УЅbnet" # Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows network address (like IP-address) #: datamodel/connectionlistingmodel.cpp:164 msgctxt "ConnectionListingModel|" msgid "Address" msgstr "Adresse" # Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows direction (inbound/outbound) of the connection #: datamodel/connectionlistingmodel.cpp:167 msgctxt "ConnectionListingModel|" msgid "Inbound" msgstr "IndgУЅende" # Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows number of bytes transferred inside #: datamodel/connectionlistingmodel.cpp:170 msgctxt "ConnectionListingModel|" msgid "Bytes in" msgstr "Byte ind" # Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows number of bytes transferred outside #: datamodel/connectionlistingmodel.cpp:173 msgctxt "ConnectionListingModel|" msgid "Bytes out" msgstr "Byte ud" # Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows time when connection was opened. #: datamodel/connectionlistingmodel.cpp:176 msgctxt "ConnectionListingModel|" msgid "Open time" msgstr "У…bningstidspunkt" # Text in contact listing column view. This text appears in column telling if user is to be trusted or not and this value here denotes the positive case "user is trusted". #: datamodel/contactlistingmodel.cpp:73 msgctxt "ContactListingModel|" msgid "Yes" msgstr "Ja" # Text in contact listing column view. This text appears in column telling if user is to be trusted or not and this value here denotes the negative case "user trust is unknown". #: datamodel/contactlistingmodel.cpp:75 msgctxt "ContactListingModel|" msgid "Unknown" msgstr "Ukendt" # Tool tip text. When user hovers mouse cursor on top of field where operators SHA1 digest is shown, this text appears. The field is part of contact listing view, where users frequent contacts are shown. #: datamodel/contactlistingmodel.cpp:98 msgctxt "ContactListingModel|" msgid "Actual network address (SHA1) of the contact" msgstr "Faktisk netvУІrksadresse (SHA1) for kontakten" # Tool tip text. When user hovers mouse cursor on top of field where operators locally given nickname is shown, this text appears. The field is part of contact listing view, where users frequent contacts are shown. #: datamodel/contactlistingmodel.cpp:101 msgctxt "ContactListingModel|" msgid "Locally given nickname ; user may set her own nickname himself" msgstr "Lokalt angivet УИgenavn ; bruger kan lave sit eget УИgenavn" # Tool tip text. When user hovers mouse cursor on top of field where operators trustworthiness (boolean value) in users opinion is shown, this text appears. The field is part of contact listing view, where users frequent contacts are shown. #: datamodel/contactlistingmodel.cpp:104 msgctxt "ContactListingModel|" msgid "Public statement if this operator to be trusted in transactions" msgstr "Offentlig erklУІring hvis denne operatУИr er trovУІrdig i transaktioner" # Column header text. Used in column view where operators frequent contacts are shown. This text gives title to column that shows operators network address (the SHA digest of operator) #: datamodel/contactlistingmodel.cpp:114 msgctxt "ContactListingModel|" msgid "Address" msgstr "Adresse" # Column header text. Used in column view where operators frequent contacts are shown. This text gives title to column that shows operators nickname #: datamodel/contactlistingmodel.cpp:117 msgctxt "ContactListingModel|" msgid "Nickname" msgstr "Әgenavn" # Column header text. Used in column view where operators frequent contacts are shown. This text gives title to column that shows operators trustworthiness. #: datamodel/contactlistingmodel.cpp:120 msgctxt "ContactListingModel|" msgid "Publicly trusted" msgstr "Offentlig trovУІrdighed" # Error message that is displayed when SSL key generation failed. Text is displayed in a dialog, after user dismisses the dialog, whole application will exit. #: datamodel/contentencryptionmodel.cpp:86 msgctxt "ContentEncryptionModel|" msgid "SSL key generation went wrong, calling exit.." msgstr "SSL-nУИgleoprettelse gik galt, kalder afslut ..." # Error message that is displayed when x509 certificate generation failed. Text is displayed in a dialog, after user dismisses the dialog, whole application will exit. #: datamodel/contentencryptionmodel.cpp:94 msgctxt "ContentEncryptionModel|" msgid "x509 cert generation went wrong, calling exit.." msgstr "x509-certifikatoprettelse gik galt, kalder afslut ..." # Error message that is displayed when RSA private key could not be saved to database. This is rather fatal error, the operator profile that user tried to create will be un-usable. #: datamodel/contentencryptionmodel.cpp:192 #: datamodel/contentencryptionmodel.cpp:290 msgctxt "ContentEncryptionModel|" msgid "RSA Private key key saving went wrong" msgstr "Lagring af RSA Private-nУИgle gik galt" # Error message text. This is displayed in situation where user tried to access content that he does not have encryption key for. This may appear frequently during normal operation and is no fatal error, only telling user that he is not going to see the content he was trying to access. #: datamodel/contentencryptionmodel.cpp:637 msgctxt "ContentEncryptionModel|" msgid "No suitable de-cryption key found" msgstr "Der blev ikke fundet en egnet dekrypteringsnУИgle" # Window title text for whole application. #: controller.cpp:103 msgctxt "Controller|" msgid "Classified ads" msgstr "Classified ads" # Prompt text for password dialog #: controller.cpp:135 msgctxt "Controller|" msgid "Enter password for protection of your messages:" msgstr "Indtast adgangskode for beskyttelse af dine beskeder:" # Dialog text for a wait dialog (a progress-bar like thing will be shown next to this text and user is supposed to sit down and wait a moment..) #: controller.cpp:405 msgctxt "Controller|" msgid "Fetching item from network.." msgstr "Henter post fra netvУІrket ..." # Menu item text used in "File" menu item and when this particular item is selected, application will close #: controller.cpp:430 msgctxt "Controller|" msgid "E&xit" msgstr "&Afslut" # Menu item tooltip-text used in "File" menu entry and when this particular item is selected, application will close #: controller.cpp:432 msgctxt "Controller|" msgid "Exit the application" msgstr "Afslut programmet" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog telling why this application is and how to use it #: controller.cpp:434 msgctxt "Controller|" msgid "&About" msgstr "&Om" # Tooltip-text of menu item text used in "File" menu and when this particular item is selected, application will show a dialog telling why this application is and how to use it #: controller.cpp:435 msgctxt "Controller|" msgid "Show the application's About box" msgstr "Vis information om programmet" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to change her password #: controller.cpp:437 msgctxt "Controller|" msgid "&Change password" msgstr "&У†ndr adgangskode" # Tooltip-item for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to change her password #: controller.cpp:438 msgctxt "Controller|" msgid "Change password of current profile" msgstr "У†ndr adgangskode for nuvУІrende profil" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password for a newly-created user profile #: controller.cpp:440 msgctxt "Controller|" msgid "Create &new profile" msgstr "Opret &ny profil" # Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password for a newly-created user profile #: controller.cpp:441 msgctxt "Controller|" msgid "Makes a brand new user profile" msgstr "Laver en helt ny brugerprofil" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to confirm deletion of currently open operator profile #: controller.cpp:443 msgctxt "Controller|" msgid "&Delete current profile" msgstr "&Slet nuvУІrende profil" # Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to confirm deletion of currently open profile #: controller.cpp:444 msgctxt "Controller|" msgid "Deletes currently open profile" msgstr "Sletter den УЅbne profil" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password of another profile that user will use next #: controller.cpp:446 msgctxt "Controller|" msgid "&Select another profile" msgstr "&VУІlg en anden profil" # Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password of another profile that user will use next #: controller.cpp:447 msgctxt "Controller|" msgid "If you have multitude of profiles" msgstr "Hvis du har flere profiler" # Menu item text used in "File" menu and when this particular item is selected, application will show a settings-dialog #: controller.cpp:449 msgctxt "Controller|" msgid "Settings.." msgstr "Indstillinger ..." # Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password of another profile that user will use next #: controller.cpp:450 msgctxt "Controller|" msgid "Node-wide settings.." msgstr "Indstillinger for alle knuder ..." # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog detailing network connectivity of the node #: controller.cpp:452 msgctxt "Controller|" msgid "Network status.." msgstr "NetvУІrksstatus ..." # Menu item text used in "File" menu and when this particular item is selected, application will show a search-dialog #: controller.cpp:454 msgctxt "Controller|" msgid "Search.." msgstr "SУИg ..." # Menu bar title text for "File" menu. #: controller.cpp:471 msgctxt "Controller|" msgid "&File" msgstr "&Fil" # Password dialog prompt. #: controller.cpp:516 msgctxt "Controller|" msgid "Enter new password:" msgstr "Indtast ny adgangskode:" # Password dialog prompt. In this case the password dialog is not used for giving initial password or change password but instead password is typed for the reason of selection of another operator profile to be used. #: controller.cpp:544 controller.cpp:653 msgctxt "Controller|" msgid "Activate another profile with password" msgstr "Aktiver en anden profil med adgangskode" # Error message shown in dialog in situation where user tried to delete the last (one and only) operator profile in machine. There needs to be at least one profile and this error message is shown if user tries to get around that limitation. #: controller.cpp:638 msgctxt "Controller|" msgid "Can't delete only profile." msgstr "Kan ikke slette den sidste profil." # Text shown in title of confirmation dialog. #: controller.cpp:642 msgctxt "Controller|" msgid "Permanently discard profile?" msgstr "Fjern profilen permanent?" # Text shown inside a confirmation dialog. Dialog will have buttons OK and Cancel and this is the question. #: controller.cpp:643 msgctxt "Controller|" msgid "There will be NO way to access content of this profile later" msgstr "Der vil INGEN mУЅde vУІre til at tilgУЅ indholdet i denne profil senere" # Error message that is shown in a dialog in situation where previously stored encryption keys of the node could not be accessed. Rather fatal error, will render node un-usable. #: controller.cpp:706 msgctxt "Controller|" msgid "Cant load node cert or key cert" msgstr "Kan ikke indlsУІe knudecertifikat eller nУИglecertifikat" # Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during a filesystem file operation. Actual explanation of the error is shown inside the dialog whose title text this is. #: controller.cpp:711 msgctxt "Controller|" msgid "File error" msgstr "Filfejl" # Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during database operation. Actual explanation of the error is shown inside the dialog whose title text this is. #: controller.cpp:716 msgctxt "Controller|" msgid "Database error" msgstr "Databasefejl" # Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during a operation inside crypto-module. Actual explanation of the error is shown inside the dialog whose title text this is. #: controller.cpp:722 controller.cpp:732 msgctxt "Controller|" msgid "Cryptographic module" msgstr "Kryptografisk modul" # Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during operation inside database module. Actual explanation of the error is shown inside the dialog whose title text this is. #: controller.cpp:727 msgctxt "Controller|" msgid "Database module" msgstr "Databasemodul" # Error message dialog title text for a dialog that is shown in a dialog in situation when password supplied by user was not good for any purpose. Actual explanation of the error is shown inside the dialog whose title text this is. #: controller.cpp:733 msgctxt "Controller|" msgid "Bad password" msgstr "Ugyldig adgangskode" # Error message text inside a dialog when user had requested for an item to be opened but program could not find the requested item. #: controller.cpp:949 msgctxt "Controller|" msgid "Could not find item from network.." msgstr "Kunne ikke finde post fra netvУІrket ..." # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies SHA1 digest of the file. #: controller.cpp:1062 msgctxt "Controller|" msgid "SHA1: " msgstr "SHA1:" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies mime-type of the file #: controller.cpp:1067 msgctxt "Controller|" msgid "Mime-Type: " msgstr "Mime-type: " # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that gives longer explanation of the file #: controller.cpp:1073 msgctxt "Controller|" msgid "Description: " msgstr "Beskrivelse: " # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies name of publisher of the file (in practice, who uploaded the file into classified ads) #: controller.cpp:1079 msgctxt "Controller|" msgid "Publisher: " msgstr "Udgiver: " # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies name of the person (or organization) that owns (in copyright sense) the file or its contents. #: controller.cpp:1085 msgctxt "Controller|" msgid "Content owner: " msgstr "Indholdsejer: " # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies the license of the file #: controller.cpp:1091 msgctxt "Controller|" msgid "License: " msgstr "Licens: " # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies file name #: controller.cpp:1097 msgctxt "Controller|" msgid "Name: " msgstr "Navn: " # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies file date #: controller.cpp:1104 msgctxt "Controller|" msgid "Date: " msgstr "Dato: " # Error message text shown inside dialog when user tries to select for operation a file that is much much too big. (there is currently 2MB size limit for shared files) #: ui/dialogbase.cpp:47 ui/dialogbase.cpp:101 msgctxt "DialogBase|" msgid "File way too big" msgstr "Filen er alt for stor" # Error message text shown inside dialog when user tries to select for operation a file that is just-and-just too big. (there is currently 2MB size limit for shared files) #: ui/dialogbase.cpp:55 ui/dialogbase.cpp:109 msgctxt "DialogBase|" msgid "File too big" msgstr "Filen er for stor" # Error message text shown inside dialog when user tries to select for operation a file that can not be opened (for example due to file permission reasons) #: ui/dialogbase.cpp:85 ui/dialogbase.cpp:131 msgctxt "DialogBase|" msgid "File open error" msgstr "Der opstod en fejl under УЅbning af fil" # Dialog title text. Dialog prompts user to select the filesystem file that will be published inside classified ads. #: ui/dialogbase.cpp:94 msgctxt "DialogBase|" msgid "Select file to be published" msgstr "VУІlg fil til udgivelse" # Text for file type filter field in file-selection-dialog #: ui/dialogbase.cpp:96 msgctxt "DialogBase|" msgid "Files (*.*)" msgstr "Filer (*.*)" # Title text of error dialog. #: ui/editcontact.cpp:72 msgctxt "EditContactDialog|" msgid "Error" msgstr "Fejl" # Contet text of error dialog. Shown after user has tried to enter operator address with intent of adding it to contact-list and the operator address fails format validation. #: ui/editcontact.cpp:73 msgctxt "EditContactDialog|" msgid "Operator addr is not valid" msgstr "OperatУИradresse er ikke gyldig" # Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the first tab. #: FrontWidget.cpp:93 msgctxt "FrontWidget|" msgid "Classified ads" msgstr "Rubrikannoncer" # Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the 2nd tab. #: FrontWidget.cpp:94 msgctxt "FrontWidget|" msgid "My profile" msgstr "Min profil" # Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the 3rd tab. #: FrontWidget.cpp:95 msgctxt "FrontWidget|" msgid "Contacts" msgstr "Kontakter" # Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the 4th tab. #: FrontWidget.cpp:96 msgctxt "FrontWidget|" msgid "Private messages" msgstr "Private beskeder" # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, a dialog will appear asking which file to share #: FrontWidget.cpp:155 msgctxt "FrontWidget|" msgid "Add shared file.." msgstr "TilfУИj delt fil ..." # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, the selected file in the listing view will no longer be shared #: FrontWidget.cpp:156 msgctxt "FrontWidget|" msgid "Stop advertising selected shared file" msgstr "Stop annoncering af valgt delt fil" # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, the selected file in the listing view will be saved to filesystem #: FrontWidget.cpp:157 msgctxt "FrontWidget|" msgid "Save file to disk.." msgstr "Gem fil til disk ..." # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, information dialog about selected file will be shown #: FrontWidget.cpp:158 msgctxt "FrontWidget|" msgid "View file information.." msgstr "Vis filinformation ..." # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, SHA digest of the selected file will be copied to clipboard. #: FrontWidget.cpp:159 msgctxt "FrontWidget|" msgid "Copy file address (SHA1) to clipboard.." msgstr "Kopier filadresse (SHA1) til udklipsholderen ..." # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, an editor will be displayed prompting user to enter text that will then be published for other users to see. #: FrontWidget.cpp:160 msgctxt "FrontWidget|" msgid "Edit+publish new text document.." msgstr "Rediger+udgiv nyt tekstdokument ..." # Dialog title text for "file open" dialog #: FrontWidget.cpp:348 msgctxt "FrontWidget|" msgid "Open File" msgstr "У…bn fil" # Text for filter field of file selection dialog #: FrontWidget.cpp:350 FrontWidget.cpp:880 msgctxt "FrontWidget|" msgid "Files (*.*)" msgstr "Filer (*.*)" # Error dialog title text. Actual error message will be shown inside dialog whose title is this text. #: FrontWidget.cpp:354 FrontWidget.cpp:1180 FrontWidget.cpp:1322 msgctxt "FrontWidget|" msgid "Error" msgstr "Fejl" # Error dialog content text. Shown when image file that user selected could not be opened (maybe because file permission problem or maybe image format issue or ..) #: FrontWidget.cpp:355 msgctxt "FrontWidget|" msgid "Can't load image" msgstr "Kan ikke indlУІse billede" # Error dialog title text. This dialog is shown when user tries to comment another operator but required operator data is missing from local storage. #: FrontWidget.cpp:621 FrontWidget.cpp:761 msgctxt "FrontWidget|" msgid "Profile not in database" msgstr "Profilen er ikke i databasen" # Error dialog content text. This dialog is shown when user tries to comment another operator but required operator data is missing from local storage. #: FrontWidget.cpp:622 FrontWidget.cpp:762 msgctxt "FrontWidget|" msgid "Try viewing profile first to obtain data" msgstr "PrУИv fУИrst at se profilen fУИr indhentelse af data" # File selection title text. Prompts user to select a file for publish purpose. #: FrontWidget.cpp:878 msgctxt "FrontWidget|" msgid "Select file to be published" msgstr "VУІlg fil for udgivelse" # Error text shown in dialog. Shown in situation where user selected a file that really exceeds size limit (of 2MB) #: FrontWidget.cpp:885 msgctxt "FrontWidget|" msgid "File way too big" msgstr "Filen er alt for stor" # Error text shown in dialog. Shown in situation where user selected a file that slightly exceeds size limit (of 2MB) #: FrontWidget.cpp:893 msgctxt "FrontWidget|" msgid "File too big" msgstr "Filen er for stor" # Error text shown in dialog. Shown in situation where user selected a file that could for some reason not be opened #: FrontWidget.cpp:937 FrontWidget.cpp:1181 msgctxt "FrontWidget|" msgid "File open error" msgstr "Der opstod en fejl under УЅbning af filen" # Part of filter text field in file selection dialog. If for instance user tries to open PNG files, then the text in filter field will be "PNG files (*.png)" and this word is the 2nd word in the phrase. #: FrontWidget.cpp:1162 FrontWidget.cpp:1168 msgctxt "FrontWidget|" msgid "files" msgstr "filer" # File selection dialog title text. Dialog prompts user to select location+name for an file to be exported into filesystem. #: FrontWidget.cpp:1171 msgctxt "FrontWidget|" msgid "Choose file name for saving" msgstr "VУІlg filnavn" # Text shown in placeholder for operators image in situation where user has not yet selected any image. In practice it prompts user to insert image by clicking at the text. #: FrontWidget.cpp:1231 msgctxt "FrontWidget|" msgid "" "\n" "\n" "\n" "Click\n" "To\n" "Add\n" "Image\n" msgstr "" "\n" "\n" "\n" "Klik\n" "for\n" "at\n" "tilfУИje\n" "billede\n" # Error message dialog content text shown when user tried to access article, that was not stored in local database #: FrontWidget.cpp:1323 msgctxt "FrontWidget|" msgid "Article not found from local storage" msgstr "Annoncen blev ikke fundet i det lokale lager" # Tool-tip text. Shown on top of operators address when user hovers mouse on top of the address field. The %1 will be replaced by nickname of an operator who trusts this particular operator. The %2 will be replaced by SHA1 digest of the operator who trusts the operator whose SHA1 is under mouse cursor. #: FrontWidget.cpp:1349 FrontWidget.cpp:1897 #, qt-format msgctxt "FrontWidget|" msgid "" "Trusted by %1\n" "SHA1 %2" msgstr "" "Tillid til %1\n" "SHA1 %2" # Tool tip text. Shown when user howers mouse on top of operators nickname field. In code a date-string will be concatenated to this string, so in practice in the UI it will read "Time of last update 31 aug 2015" or similar. #: FrontWidget.cpp:1386 msgctxt "FrontWidget|" msgid "Time of last update " msgstr "Tid for sidste opdatering " # Text for image placeholder, shown in situation where another operator has not selected any image for her.This text is shown place of the missing image. #: FrontWidget.cpp:1394 msgctxt "FrontWidget|" msgid "" "\n" "\n" "\n" "(No\n" "Image\n" "Selected)\n" msgstr "" "\n" "\n" "\n" "(Intet\n" "billede\n" "valgt)\n" # Context menu item text. Context-menu is related to frequent-contacts column-view. #: FrontWidget.cpp:1488 msgctxt "FrontWidget|" msgid "Edit contact.." msgstr "Rediger kontakt ..." # Push button text. Pushing the button will open an editor prompting user to edit+send a private message to operator who sent the classified ad currently on display #: FrontWidget.cpp:1528 msgctxt "FrontWidget|" msgid "&Reply to sender" msgstr "&Svar til afsender" # Push button text. Pushing the button will open an editor prompting user to edit+send a reply to classified ad currently on display #: FrontWidget.cpp:1529 msgctxt "FrontWidget|" msgid "Reply to &forum" msgstr "Svar til &forum" # Push button text. Pushing the button will open an editor prompting user to edit+send a new classified ad. #: FrontWidget.cpp:1530 msgctxt "FrontWidget|" msgid "&Post new ad" msgstr "&Indsend ny annonce" # Push button text. Pushing the button will open an editor prompting user to edit+send a public comment about operator who sent the classified ad currently on display #: FrontWidget.cpp:1531 msgctxt "FrontWidget|" msgid "&Public comment" msgstr "&Offentlig kommentar" # Push button text. Pushing the button will switch to view detailing operator who sent the classified ad currently on display #: FrontWidget.cpp:1532 msgctxt "FrontWidget|" msgid "&View profile" msgstr "&Vis profil" # Push button text. Pushing the button will open a a listing of files that are attached to classified ad currently on display #: FrontWidget.cpp:1533 FrontWidget.cpp:1671 msgctxt "FrontWidget|" msgid "Attachments.." msgstr "VedhУІftninger ..." # Push button text. Pushing the button will open an editor prompting user to add to her contact-list the operator who sent the classified ad currently on display #: FrontWidget.cpp:1593 msgctxt "FrontWidget|" msgid "Add selected operator to contacts.." msgstr "TilfУИj valgt operatУИr til kontakter ..." # Push button text. Pushing the button will open an editor prompting user to edit+send a private message to operator who sent the private message currently on display #: FrontWidget.cpp:1667 msgctxt "FrontWidget|" msgid "&Reply" msgstr "&Svar" # Push button text. Pushing the button will open an editor prompting user to edit+send a private message to some operator. #: FrontWidget.cpp:1668 msgctxt "FrontWidget|" msgid "&New message" msgstr "&Ny besked" # Push button text. Pushing the button will open an editor prompting user to edit+send a public comment about operator who sent the private message currently on display #: FrontWidget.cpp:1669 msgctxt "FrontWidget|" msgid "&Send public comment to sender" msgstr "&Send offentlig kommentar til afsender" # Push button text. Pushing the button will open view that will show details of operator, who sent the private message currently on display. #: FrontWidget.cpp:1670 msgctxt "FrontWidget|" msgid "&View profile of peer" msgstr "&Vis profil for modpart" # Context menu item text. Appears in "message listing view" when user right-clicks on messages view. When selected, the operator who sent the message that is selected is added to contacts. #: FrontWidget.cpp:1705 msgctxt "FrontWidget|" msgid "Add selected to contacts.." msgstr "TilfУИj valgte til kontakter ..." # Text field label. Label tells who sent particular classified ad. #: FrontWidget.cpp:1907 FrontWidget.cpp:1909 FrontWidget.cpp:1973 #: FrontWidget.cpp:1975 msgctxt "FrontWidget|" msgid "From:" msgstr "Fra:" # Text field label. Label tells subject of classified ads. #: FrontWidget.cpp:1911 FrontWidget.cpp:1978 msgctxt "FrontWidget|" msgid "Subject:" msgstr "Emne:" # Text field label. Label tells whom a private message was sent to. #: FrontWidget.cpp:1970 msgctxt "FrontWidget|" msgid "To:" msgstr "Til:" # Error dialog content text. Shown in situation when user clicked on a link that contained SHA1 digest that was not valid. #: FrontWidget.cpp:2282 msgctxt "FrontWidget|" msgid "Invalid SHA1 in URL" msgstr "Ugyldig SHA1 i adresse" # Error dialog content text. Shown in situation when user clicked on a link that was not correctly formatted. #: FrontWidget.cpp:2309 msgctxt "FrontWidget|" msgid "Invalid URL" msgstr "Ugyldig adresse" # Error dialog content text. Shown in situation when user entered a link that could not be parsed. #: ui/insertlinkdialog.cpp:69 msgctxt "InsertLinkDialog|" msgid "Invalid URL" msgstr "Ugyldig adresse" # Error dialog content text. Shown in situation when user tried to add connection to node whose name was not found via nameserver. #: ui/manualconnection.cpp:53 msgctxt "ManualConnectionDialog|" msgid "DNS lookup failure" msgstr "DNS-opslagsfejl" # Error dialog title text. Actual error message will be shown inside the dialog. #: ui/newprivmsgdialog.cpp:88 ui/newprivmsgdialog.cpp:133 msgctxt "NewPrivMessageDialog|" msgid "Error" msgstr "Fejl" # Error dialog content text. Dialog is shown when user tries to send a message to operator, whose SHA1 digest (as entered by user) does not parse as SHA1 digest. #: ui/newprivmsgdialog.cpp:89 msgctxt "NewPrivMessageDialog|" msgid "Recipient addr is not valid" msgstr "Modtageradresse er ikke gyldig" # Error dialog content text. Dialog is shown when user tries to send a message to operator, whose encryption keys are present in local storage. #: ui/newprivmsgdialog.cpp:134 msgctxt "NewPrivMessageDialog|" msgid "Recipient encryption key not found from storage" msgstr "KrypteringsnУИgle for modtager blev ikke fundet i lageret" # Error dialog title text. Actual error message will be shown inside the dialog. #: ui/newprofilecommentdialog.cpp:89 ui/newprofilecommentdialog.cpp:126 msgctxt "NewProfileCommentDialog|" msgid "Error" msgstr "Fejl" # Error dialog content text. Dialog is shown when user tries to comment an operator, whose SHA1 digest (as entered by user) does not parse as SHA1 digest. #: ui/newprofilecommentdialog.cpp:90 msgctxt "NewProfileCommentDialog|" msgid "Commented profile addr is not valid" msgstr "Kommenteret profiladresse er ikke gyldig" # Error dialog content text. Dialog is shown when user tries to send a message to operator, whose encryption keys are present in local storage. #: ui/newprofilecommentdialog.cpp:127 msgctxt "NewProfileCommentDialog|" msgid "Recipient encryption key not found from storage" msgstr "KrypteringsnУИgle for modtager blev ikke fundet i lageret" # Error message text. Will be shown in error message dialog in case when initial SSL key generation of node did not succeed. After user dismisses the dialog, the application will close. #: datamodel/nodemodel.cpp:115 msgctxt "NodeModel|" msgid "SSL key generation went wrong, calling exit.." msgstr "SLL-nУИgleoprettelse gik galt, kalder afslut ..." # Error message text. Will be shown in error message dialog in case when initial encryption key generation of user did not succeed. After user dismisses the dialog, the application will close. #: datamodel/nodemodel.cpp:123 msgctxt "NodeModel|" msgid "x509 cert generation went wrong, calling exit.." msgstr "x509-certifikatopretttelse gik galt, kalder afslut ..." # Error message text. Will be shown in error message dialog in case when SSL certificate of the node could not be loaded from storage. After user dismisses the dialog, the application will close. #: datamodel/nodemodel.cpp:1594 msgctxt "NodeModel|" msgid "Cant load SSL cert" msgstr "Kan ikke indlУІse SSL-certifikat" # Error message text. Will be shown in error message dialog in case when SSL key of the node could not be retrieved from local storage. After user dismisses the dialog, the application will close. #: datamodel/nodemodel.cpp:1624 msgctxt "NodeModel|" msgid "Cant load SSL key" msgstr "Kan ikke indlУІse SSL-nУИgle" # Error message text. Shown in dialog when user tries to enter a password that is too short. #: ui/passwd_dialog.cpp:104 msgctxt "PasswdDialog|" msgid "Min length 5 (use 10+)" msgstr "Min. lУІngde 5 (brug 10+)" # Password dialog title text. #: ui/passwordDialog.ui:14 msgctxt "PasswordDialog|" msgid "Password required" msgstr "Adgangskode krУІvet" # Tooltip text for password dialog. Shown when user hovers on top of password dialog. #: ui/passwordDialog.ui:17 msgctxt "PasswordDialog|" msgid "" "Should you forget this word, there is no easy way to recover any of your " "content" msgstr "" "Skulle du glemme dette ord, sУЅ er der ingen nem mУЅde at gendanne dit indhold" # Prompt text for password dialog. #: ui/passwordDialog.ui:29 msgctxt "PasswordDialog|" msgid "Enter password for protection of your messages" msgstr "Indtast adgangskode til beskyttelse af dine beskeder" # Tooltip text for password dialog. Shown when user hovers on top of password field #: ui/passwordDialog.ui:42 msgctxt "PasswordDialog|" msgid "" "If you forget this word, there is no simple way to recover your contents" msgstr "" "Hvis du glemmer dette ord, sУЅ er der ingen simpel mУЅde at gendanne dit indhold" # Password dialog button text #: ui/passwordDialog.ui:55 msgctxt "PasswordDialog|" msgid "OK" msgstr "O.k." # Tooltip text. Shown when user hovers mouse cursor on top of message sender name. First %1 will be replaced with nickname of the operator whose message is hovered, %2 will be replaced by nickname of operator who has expressed positive trust towards the operator who sent the message. #: datamodel/privmsgsearchmodel.cpp:110 #, qt-format msgctxt "PrivateMessageSearchModel|" msgid "" "%1\n" "Trusted by %2" msgstr "" "%1\n" "Meldt trovУІrdig af %2" # Tooltip text. Used in column view that lists private messages of operator. Explains the field that gives title to column that specifies direction (sent or received) of the message. #: datamodel/privmsgsearchmodel.cpp:237 msgctxt "PrivateMessageSearchModel|" msgid "Direction of message, sent/received" msgstr "Retning for besked, sendt/modtaget" # Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies direction (sent/received) of the message. #: datamodel/privmsgsearchmodel.cpp:247 msgctxt "PrivateMessageSearchModel|" msgid "Dir" msgstr "Mappe" # Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies messaging peer (another operator) of the message. #: datamodel/privmsgsearchmodel.cpp:250 msgctxt "PrivateMessageSearchModel|" msgid "Peer" msgstr "Modpart" # Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies time of the message. #: datamodel/privmsgsearchmodel.cpp:253 msgctxt "PrivateMessageSearchModel|" msgid "Time" msgstr "Tid" # Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies subject of the message. #: datamodel/privmsgsearchmodel.cpp:256 msgctxt "PrivateMessageSearchModel|" msgid "Subject" msgstr "Emne" # Push button text. Clicking the button will open a dialog prompting user to add a new comment #: ui/profilecommentdisplay.cpp:54 msgctxt "ProfileCommentDisplay|" msgid "&Add comment..." msgstr "&TilfУИj kommentar ..." # Context menu item text. Context menu is shown when user right-clicks on file listing view. When this item is selected, a file selection dialog is opened. #: ui/profilecommentdisplay.cpp:65 msgctxt "ProfileCommentDisplay|" msgid "Save attachment to disk.." msgstr "Gem vedhУІftning til disk ..." # Error dialog title text #: ui/profilecommentdisplay.cpp:90 msgctxt "ProfileCommentDisplay|" msgid "Error" msgstr "Fejl" # Error dialog content text. Shown after user tried to access a profile comment and the comment could not be found #: ui/profilecommentdisplay.cpp:91 msgctxt "ProfileCommentDisplay|" msgid "Article not found from local storage" msgstr "Annonce blev ikke fundet i det lokale lager" # Text field label text. The text field whose label this is will show number how many attachements there are in the comment. #: ui/profilecommentitemdelegate.cpp:91 msgctxt "ProfileCommentItemDelegate|" msgid "Attachments: " msgstr "VedhУІftninger: " # Column view column title text. The column view in question lists profile comments. This text gives title to column that tells who sent the comment. #: datamodel/profilecommentlistingmodel.cpp:219 msgctxt "ProfileCommentListingModel|" msgid "Sender" msgstr "Afsender" # Column view column title text. The column view in question lists profile comments. This text gives title to column that tells when comment was sent. #: datamodel/profilecommentlistingmodel.cpp:222 msgctxt "ProfileCommentListingModel|" msgid "Time" msgstr "Tidspunkt" # Column view column title text. The column view in question lists profile comments. This text gives title to column that tells subject of the comment. #: datamodel/profilecommentlistingmodel.cpp:225 msgctxt "ProfileCommentListingModel|" msgid "Subject" msgstr "Emne" # Error message text. Shown inside a dialog after user tried to send a comment to operator who had sent a comment and it turns out that necessary encryption keys of the commenting operator are not found and the replying comment can't be sent. #: datamodel/profilecommentmodel.cpp:67 msgctxt "ProfileCommentModel|" msgid "Profile related to comment not found from database" msgstr "Profil relateret til kommentar blev ikke fundet i databasen" # Context menu item text. This context-menu is shown when user right-clicks list of operators that is shown in dialog that is made for listing operators (who are readers of another profile) #: ui/profilereadersdialog.cpp:73 msgctxt "ProfileReadersDialog|" msgid "View profile" msgstr "Vis profil" # Column view column title text. The column view lists readers (operators) of another profile. #: datamodel/profilereaderslistingmodel.cpp:174 msgctxt "ProfileReadersListingModel|" msgid "Name or fingerprint of reader" msgstr "Navn eller fingeraftryk for lУІser" # Context menu item text. This context menu is shown when user right-clicks on top of search-results. This menu-item opens the currently-selected item from search results. #: ui/searchdisplay.cpp:62 msgctxt "SearchDisplay|" msgid "Open.." msgstr "У…bn ..." # Menu title text. This is the help menu. #: textedit/textedit.cpp:127 msgctxt "TextEdit|" msgid "Help" msgstr "HjУІlp" # Menu-item text used in "help" menu. Selecting this item opens "about" dialog about Qt library. #: textedit/textedit.cpp:129 msgctxt "TextEdit|" msgid "About &Qt" msgstr "Om &Qt" # Window title text for container-window containing actions. It seems to me that this text actually does not appear anywhere in the UI due to way, how container-windows are used. #: textedit/textedit.cpp:186 msgctxt "TextEdit|" msgid "Edit Actions" msgstr "Rediger handlinger" # Menu text. This gives text to "file" menu of a text editor. #: textedit/textedit.cpp:188 msgctxt "TextEdit|" msgid "&File" msgstr "&Fil" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "open a filesystem file" #: textedit/textedit.cpp:194 msgctxt "TextEdit|" msgid "&Open..." msgstr "&У…bn ..." # Menu item text inside menu in text editor. When selected, the text being edited will be saved into local filesystem file. #: textedit/textedit.cpp:203 msgctxt "TextEdit|" msgid "&Save locally before send" msgstr "&Gem lokalt fУИr der sendes" # Menu item text inside menu in text editor. When selected, the text being edited will be saved into local filesystem file and user will be queried for file name. #: textedit/textedit.cpp:210 msgctxt "TextEdit|" msgid "Save locally &As..." msgstr "Gem lokalt &som ..." # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "print" #: textedit/textedit.cpp:218 msgctxt "TextEdit|" msgid "&Print..." msgstr "&Udskriv ..." # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "open print preview" #: textedit/textedit.cpp:226 msgctxt "TextEdit|" msgid "Print Preview..." msgstr "Vis forhУЅndsvisning ..." # Menu-item text. Used in file-menu for triggering "export as pdf" operation #: textedit/textedit.cpp:231 msgctxt "TextEdit|" msgid "&Export PDF..." msgstr "&Eksporter PDF ..." # Menu text for "edit" menu of text editor. #: textedit/textedit.cpp:244 msgctxt "TextEdit|" msgid "&Edit" msgstr "&Rediger" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "undo" #: textedit/textedit.cpp:249 msgctxt "TextEdit|" msgid "&Undo" msgstr "&Genskab" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "re-do" #: textedit/textedit.cpp:254 msgctxt "TextEdit|" msgid "&Redo" msgstr "&OmgУИr" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "cut" (to clipboard) #: textedit/textedit.cpp:261 msgctxt "TextEdit|" msgid "Cu&t" msgstr "K&lip" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "copy to clipboard" #: textedit/textedit.cpp:267 msgctxt "TextEdit|" msgid "&Copy" msgstr "&Kopier" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "paste from clipboard" #: textedit/textedit.cpp:273 msgctxt "TextEdit|" msgid "&Paste" msgstr "&IndsУІt" # Menu item text inside text editor "edit" menu. After this menu-item is selected, a dialog is opened, prompting user to enter a link (URL) to be included in the text. #: textedit/textedit.cpp:283 msgctxt "TextEdit|" msgid "Insert link" msgstr "IndsУІt henvisning" # Menu-item text for embedding an image #: textedit/textedit.cpp:287 msgctxt "TextEdit|" msgid "Embed image" msgstr "Indlejr billede" # Menu text. Gives name for a "format" menu inside a text editor. #: textedit/textedit.cpp:294 msgctxt "TextEdit|" msgid "F&ormat" msgstr "&Format" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle bold text style" #: textedit/textedit.cpp:298 msgctxt "TextEdit|" msgid "&Bold" msgstr "F&ed" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle italic text" #: textedit/textedit.cpp:310 msgctxt "TextEdit|" msgid "&Italic" msgstr "&Kursiv" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle underline" #: textedit/textedit.cpp:322 msgctxt "TextEdit|" msgid "&Underline" msgstr "&Understreg" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "left-justify" #: textedit/textedit.cpp:341 textedit/textedit.cpp:347 msgctxt "TextEdit|" msgid "&Left" msgstr "&Venstre" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle centered text" #: textedit/textedit.cpp:342 textedit/textedit.cpp:346 msgctxt "TextEdit|" msgid "C&enter" msgstr "&Centrer" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "right-justify" #: textedit/textedit.cpp:343 textedit/textedit.cpp:345 msgctxt "TextEdit|" msgid "&Right" msgstr "&HУИjre" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "justify both right+left" #: textedit/textedit.cpp:349 msgctxt "TextEdit|" msgid "&Justify" msgstr "&Juster" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "color selection" #: textedit/textedit.cpp:376 msgctxt "TextEdit|" msgid "&Color..." msgstr "&Farve ..." # Combobox item text. The combobox is used to select text style. The text style selected with this text is "standard" #: textedit/textedit.cpp:383 msgctxt "TextEdit|" msgid "Standard" msgstr "Standard" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "bullet list (disc)" #: textedit/textedit.cpp:384 msgctxt "TextEdit|" msgid "Bullet List (Disc)" msgstr "Punktopstilling (disk)" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "bullet list (circle)" #: textedit/textedit.cpp:385 msgctxt "TextEdit|" msgid "Bullet List (Circle)" msgstr "Punktopstilling (cirkel)" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "bullet list (square)" #: textedit/textedit.cpp:386 msgctxt "TextEdit|" msgid "Bullet List (Square)" msgstr "Punktopstilling (firkant)" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (decimal)" #: textedit/textedit.cpp:387 msgctxt "TextEdit|" msgid "Ordered List (Decimal)" msgstr "Nummereringstype (decimal)" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (alpha lower)" #: textedit/textedit.cpp:388 msgctxt "TextEdit|" msgid "Ordered List (Alpha lower)" msgstr "Nummereringstype (alfa nedre)" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (alpha upper)" #: textedit/textedit.cpp:389 msgctxt "TextEdit|" msgid "Ordered List (Alpha upper)" msgstr "Nummereringstype (alfa УИvre)" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (roman lower)" #: textedit/textedit.cpp:390 msgctxt "TextEdit|" msgid "Ordered List (Roman lower)" msgstr "Nummereringstype (roman nedre)" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (roman upper)" #: textedit/textedit.cpp:391 msgctxt "TextEdit|" msgid "Ordered List (Roman upper)" msgstr "Nummereringstype (roman УИvre)" # Warning dialog title text. This dialog is shown if user tries to exit without saving her text. #: textedit/textedit.cpp:442 msgctxt "TextEdit|" msgid "Application" msgstr "Program" # Warning dialog title content text. Text asks what to do with modifications. The dialog has buttons Save,Discard and Cancel and this text is the question. #: textedit/textedit.cpp:443 msgctxt "TextEdit|" msgid "" "The document has been modified.\n" "Do you want to save your changes?" msgstr "" "Dokumentet er blevet УІndret.\n" "Әnsker du at gemme dine УІndringer?" # File selection dialog title text. Dialog will prompt user to select a document for opening. #: textedit/textedit.cpp:467 msgctxt "TextEdit|" msgid "Open File..." msgstr "У…bn fil ..." # Text for file selection filter field to be used inside file selection dialog. There are 2 parts, separated by ";;" and those semicolons must be left in place. Also the filter parts like (*.htm) must not be edited. The explanations like "HTML-Files" may be edited. #: textedit/textedit.cpp:468 msgctxt "TextEdit|" msgid "HTML-Files (*.htm *.html);;All Files (*)" msgstr "HTML-filer (*.htm *.html);;Alle filer (*)" # File selection dialog title text. Dialog in question prompts user to select name for file to be persisted. #: textedit/textedit.cpp:485 msgctxt "TextEdit|" msgid "Save as..." msgstr "Gem som ..." # Text for file selection filter field to be used inside file selection dialog. There are 3 parts, separated by ";;" and those semicolons must be left in place. Also the filter parts like (*.odt) must not be edited. The explanations like "ODF-files" may be edited. #: textedit/textedit.cpp:486 msgctxt "TextEdit|" msgid "ODF files (*.odt);;HTML-Files (*.htm *.html);;All Files (*)" msgstr "ODF-filer (*.odt);;HTML-Files (*.htm *.html);;Alle filer (*)" # Dialog title text. The dialog is printer dialog asking user how to print the text currently in editor. #: textedit/textedit.cpp:501 msgctxt "TextEdit|" msgid "Print Document" msgstr "Udskriv dokument" # File selection dialog title text. Dialog will prompt user to select a document for opening. #: textedit/textedit.cpp:559 msgctxt "TextEdit|" msgid "Open File" msgstr "У…bn fil" # Text for file selection filter field to be used inside file selection dialog. The filter parts like (*.odt) must not be edited. The explanations like "Files" may be edited. #: textedit/textedit.cpp:561 msgctxt "TextEdit|" msgid "Files (*.*)" msgstr "Filer (*.*)" # Error dialog title text. #: textedit/textedit.cpp:566 msgctxt "TextEdit|" msgid "Error" msgstr "Fejl" # Error dialog content text. #: textedit/textedit.cpp:567 msgctxt "TextEdit|" msgid "Can't load image" msgstr "Kan ikke indlУІse billede" # Error message displayed inside error dialog after user tried to select for operation a file whose size greatly exceeds file size limit. #: textedit/textedit.cpp:621 textedit/textedit.cpp:631 msgctxt "TextEdit|" msgid "File way too big" msgstr "Filen er alt for stor" # Dialog title text for "about" dialog. #: ui/aboutDialog.ui:26 msgctxt "aboutDialog|" msgid "About classified ads" msgstr "Om classified ads" # 1st line of text inside "about" dialog, placed next to the turle logo. This text is then followed by longer explanation detail why this program is and how. This is kind of title for the longer explanation. #: ui/aboutDialog.ui:100 msgctxt "aboutDialog|" msgid " Classified ads is a program for online communications" msgstr " Classified ads (rubrikannoncer) er et program til kommunikation pУЅ nettet" # The long explanation of classified ads inside about-dialog. Note that this text must be valid html. Needs to start with and end with etc. This is easiest to edit like this: copy-paste the content in to a file, say /tmp/about.html. Then either open your favourite html-editor or open classified ads. In classified ads you can start constructing an ad, select from file-menu "open.." and select this file ;do editing and save from file-menu. The saved file is immediately in correct format to be be copy-pasted into contents of this field. #: ui/aboutDialog.ui:160 #| msgid "" #| "

Classified ads is free software. You may use, copy " #| "and modify it if you follow the conditions given in GNU lesser general " #| "public license version 2.1.

Classified ads is copyright ТЉ Antti " #| "JУЄrvinen 2013.

Main feature of the the program is an " #| ""advertisement" - a piece of text belonging to selected " #| "classification. There are several pre-programmed classifications and " #| "operators are encouraged to invent new classifications for new purposes ; " #| "the selection boxes in classification-selection tab are editable. Other " #| "operators may then view the ads, publicly comment the ads, the operators " #| "and also send private messages to each others.

Another important " #| "feature of classified ads is that it is designed to be operated without " #| "any centralized server infrastucture - it is you and other operators " #| "whose computers store and transmit all the content visible inside " #| "classified ads. To get connected you need to know address of at least one " #| "existing computer (a node) so " #| "if your network connection dialog shows no connections, you may need to " #| "contact someone you know is using the software and ask for address of her " #| "node to make initial contact with the network. Once connected the " #| "software should maintain list of addresses of other nodes.

Due to " #| "its server-less design the whole system works best if you leave the " #| "program running always when you have your computer powered on ; while " #| "processing other operators requests it will hog some computing resources " #| "and generate network traffic also when you are not actively using the " #| "program youself - others are.

Operators concerned about privacy of " #| "the content should be aware of following items:

- Data storage " #| "implementation is variant of distributed hash table, practically meaning " #| "that content posted by you gets copied some more-or-less random nodes in " #| "the network.

- Any data item (ad, comment, binary file, private " #| "message etc.) is digitally signed. This makes it more difficult to try to " #| "pose as another operator.

- Operators are reliably identified only " #| "by the SHA1 hash of their generated encryption keys. SHA1 hash is " #| "displayed when viewing details of operator profiles. Other identifying " #| "information like nickname or city name are entered by operator himself " #| "and can be anything. The operator profile, as it is published to the " #| "network, is also signed with the encryption keys of the operator - if you " #| "identify an operator by her SHA1 hash, you have a mechanism for " #| "identifying if any content inside classified ads is posted by this " #| "operator or not. Classified ads internally checks for digital signatures, " #| "throwing away content that fails signature check and tries to provide " #| "SHA1 hash of the operator who posted the content.

- All classified " #| "ads are posted as plain text, no encryption is used. All public profiles " #| "are posted as plain text, no encryption is used. If profile is made " #| "private, it is encrypted to be readable only by selected other profiles. " #| "This applies also to binary files shared by operators private profiles " #| "and comments about private profiles after the profile was made private " #| "(previously plain-text comments or files don't get magically encrypted " #| "afterwards). Private messages are encrypted always to be readable only by " #| "recipient and sender. Attachments follow the privary rules of the " #| "document, they're attachted to.

- As is the case with all " #| "internet-communications, this small fact is true for classified ads too : " #| "once something gets posted online, " #| "there is no way to remove it from network.

- Data " #| "encryption implementation for content is OpenSSL, relying mostly on " #| "algorithms RSA-2048 and AES-256.

- While connections between nodes " #| "are implemented using SSL, other nodes inside network do get to know what " #| "content is being transmitted in neighboring nodes. While there is no " #| "central point for easily collecting this information about particular " #| "classification or operator, operators still should expect no privacy " #| "regarding their doings online, altough some effort has been been put into " #| "hiding contents of private " #| "messages and private profiles.

Programming was (mostly) done by " #| "Antti JУЄrvinen, artwork by Meeri JУЄrvinen.

This product includes " #| "software developed by the OpenSSL Project for use in the OpenSSL Toolkit " #| "(http://www.openssl.org/).

Happy " #| "advertising!


" msgctxt "aboutDialog|" msgid "" "

Classified ads is free software. You may use, copy and " "modify it if you follow the conditions given in GNU lesser general public " "license version 2.1.

Classified ads is copyright ТЉ Antti JУЄrvinen " "2013.

Main feature of the the program is an "advertisement" " "- a piece of text belonging to selected classification. There are several " "pre-programmed classifications and operators are encouraged to invent new " "classifications for new purposes ; the selection boxes in " "classification-selection tab are editable. Other operators may then view the " "ads, publicly comment the ads, the operators and also send private messages " "to each others.

Another important feature of classified ads is that " "it is designed to be operated without any centralized server infrastucture - " "it is you and other operators whose computers store and transmit all the " "content visible inside classified ads. To get connected you need to know " "address of at least one existing computer (a node) so if your network connection dialog shows " "no connections, you may need to contact someone you know is using the " "software and ask for address of her node to make initial contact with the " "network. Once connected the software should maintain list of addresses of " "other nodes.

Due to its server-less design the whole system works " "best if you leave the program running always when you have your computer " "powered on ; while processing other operators requests it will hog some " "computing resources and generate network traffic also when you are not " "actively using the program youself - others are.

Operators concerned " "about privacy of the content should be aware of following items:

- " "Data storage implementation is variant of distributed hash table, practically meaning that " "content posted by you gets copied some more-or-less random nodes in the " "network.

- Any data item (ad, comment, binary file, private message " "etc.) is digitally signed. This makes it more difficult to try to pose as " "another operator.

- Operators are reliably identified only by the " "SHA1 hash of their generated encryption keys. SHA1 hash is displayed when " "viewing details of operator profiles. Other identifying information like " "nickname or city name are entered by operator himself and can be anything. " "The operator profile, as it is published to the network, is also signed with " "the encryption keys of the operator - if you identify an operator by her " "SHA1 hash, you have a mechanism for identifying if any content inside " "classified ads is posted by this operator or not. Classified ads internally " "checks for digital signatures, throwing away content that fails signature " "check and tries to provide SHA1 hash of the operator who posted the " "content.

- All classified ads are posted as plain text, no encryption " "is used. All public profiles are posted as plain text, no encryption is " "used. If profile is made private, it is encrypted to be readable only by " "selected other profiles. This applies also to binary files shared by " "operators private profiles and comments about private profiles after the " "profile was made private (previously plain-text comments or files don't get " "magically encrypted afterwards). Private messages are encrypted always to be " "readable only by recipient and sender. Attachments follow the privary rules " "of the document, they're attachted to.

- As is the case with all " "internet-communications, this small fact is true for classified ads too : " "once something gets posted online, there " "is no way to remove it from network.

- Data encryption " "implementation for content is OpenSSL, relying mostly on algorithms RSA-2048 " "and AES-256.

- While connections between nodes are implemented using " "SSL, other nodes inside network do get to know what content is being " "transmitted in neighboring nodes. While there is no central point for easily " "collecting this information about particular classification or operator, " "operators still should expect no privacy regarding their doings online, " "although some effort has been been put into hiding contents of private messages and private " "profiles.

Programming was (mostly) done by Antti JУЄrvinen, artwork by " "Meeri JУЄrvinen.

This product includes software developed by the " "OpenSSL Project for use in the OpenSSL Toolkit " "(http://www.openssl.org/).

Happy " "advertising!


" msgstr "" "

Classified ads er et frit program. Du mУЅ bruge, kopiere " "og УІndre programmet, hvis du fУИlger betingelser i GNU lesser general public " "license version 2.1.

Classified ads har ophavsret Antti JУЄrvinen " "2013.

Hovedfunktionen i programmet er en "rubrikannonce" " "- et stykke tekst tilhУИrende udvalgte klassifikationer. Der er flere " "forprogrammerede klassifikationer og operatУИrer opfordres til at finde pУЅ " "nye klassifikationer for nye formУЅl ; boksene med valgmuligheder i " "klassifikation-valg-fanebladene kan redigeres. Andre operatУИrer kan sУЅ se " "annoncerne, offentligt kommentere annoncerne, operatУИrerne og ogsУЅ sende " "private beskeder til hinanden.

En anden vigtig funktion i classified " "ads er, at det er designet til at fungere uden en centraliseret " "serverinfrastruktur - det er dig og andre operatУИrer hvis computere lagrer og " "sender alt indhold synligt inden i rubrikannoncerne. For at blive tilsluttet " "skal du kende adressen pУЅ mindst en eksisterende computer (en knude), sУЅ hvis din netvУІrksforbindelsesdialog " "ikke viser nogen forbindelser, sУЅ skal du kontakte nogen som du ved bruger " "programmet og anmode om adressen for at foretage opstartskontakten med " "netvУІrket. NУЅr fУИrst forbundet vedligeholder programmet en adresseliste over " "andre knuder.

PУЅ grund af sit design fungerer hele systemet bedst hvis " "du lader programmer kУИre hele tiden, mens din computer er tУІndt ; under " "behandling af andre operatУИrforespУИrgsler vil programmet bruge nogle " "beregningsressoucer og oprette netvУІrkstrafik, ogsУЅ nУЅr du ikke aktivt " "bruger selve programmet - andre gУИr.

OperatУИrer som tУІnker pУЅ " "privatliv for indholdt skal vУІre opmУІrksom pУЅ fУИlgende:

- " "Datalagerimplementationen er en variant af en distribueret hash-tabel, hvilket i praksis " "betyder, at indhold indsendt af dig bliver kopieret via mere eller mindre " "vilkУЅrlige knuder i netvУІrket.

- Alle dataposter (annonce, kommentar, " "binУІr fil, privat besked etc.) er digitalt underskrevet. Dette gУИr det " "svУІrt at udgive sig for at vУІre en anden operatУИr

- OperatУИrer " "kan kun identificeres trovУІrdigt med SHA1-hash for deres oprettede " "krypteringsnУИgler. SHA1-hash vises, nУЅr der kigges pУЅ detaljer for " "operatУИrprofiler. Anden identifikationsinformation sУЅsom УИgenavn eller " "bynavn indtastes selv af operatУИren og kan vУІre alt. OperatУИrprofilen, " "som den udgives pУЅ netvУІrket, er ogsУЅ underskrevet med krypteringsnУИglerne " "for operatУИren - hvis du identificerer en operatУИr via dennes SHA1-hash, " "sУЅ har du en mekanisme til at identificere om indhold i rubrikannoncer " "er indsendt af denne operatУИr eller ej. Classified ads kontrollerer internt " "for digitale underskrifter, og smider indhold vУІk som mangler kontrol af " "underskrift og forsУИger at tilbyde SHA1-hash for operatУИren som indsendte " "indholdet.

- Alle rubrikannoncer indsendes som ren tekst, ingen " "kryptering anvendes. Alle offentlige profiler indsendes som ren tekst, ingen " "kryptering anvendes. Hvis profilen gУИres privat, sУЅ krypteres den, sУЅ den kun " "kan lУІses af profiler valgt af dig. Dette gУІlder ogsУЅ for binУІre filer delt " "af operatУИrers private profiler og kommentarer om private profiler efter " "profilen blev gjort privat (tidligere kommentarer eller filer i ren tekst " "bliver ikke krypteret efterfУИlgende). Private beskeder krypteres altid for " "kun at kunne lУІses af modtager og afsender. VedhУІftninger fУИlger " "privatlivsreglerne for dokumentet, de er vedhУІftet.

- Som med al anden " "internetkommunikation, sУЅ gУІlder det ogsУЅ for classified ads, at : " "nУЅr fУИrst udgivet pУЅ nettet, sУЅ er der " "ingen mУЅde at fjerne det igen fra netvУІrket.

- " "Datakrypteringsimplementering for indhold er OpenSSL, afhУІngig hovedsagelig " "af algoritmerne RSA-2048 og AES-256.

- Mens forbindelser mellem " "knuder er implementeret via SSL, sУЅ fУЅr andre knuder inden i netvУІrk ikke " "at vide hvilket indhold, der sendes i nУІrliggende knuder. Selv om der ikke " "er et centralt sted for nem indsamling af denne information om bestemt " "klassifikation eller operatУИr, sУЅ skal operatУИrer stadig ikke forvente " "privatliv vedrУИrende deres virke pУЅ nettet, selvom der er gjort en indsats " "for at skjule indhold i " "private beskeder og private profiler.

Programmeringen blev " "(hovedsagelig) udfУИrt af Antti JУЄrvinen, grafik af Meeri JУЄrvinen.

" "

Dette prdukt inkluderer et program udviklet af OpenSSL-projektet for " "brug i OpenSSL-vУІrktУИjssУІttet (http://www.openssl.org/).

Happy " "advertising!


" # Dialog title text. Dialog in question produces list of file attachments. #: ui/attachmentListDialog.ui:26 msgctxt "attachmentListDialog|" msgid "List of attached files" msgstr "Liste over vedhУІftede filer" # Dialog title text. Purpose of the dialog is to let user change properties of a frequent contact in contact-list. #: ui/editContact.ui:26 msgctxt "editContactDialog|" msgid "Edit a contact" msgstr "Rediger en kontakt" # Text field label in contact-editing dialog. This gives label for field that shows SHA1 fingerprint of the operator whose data is being edited #: ui/editContact.ui:39 msgctxt "editContactDialog|" msgid "Address (SHA1) of contact" msgstr "Adresse (SHA1) for kontakt" # Text field label in contact-editing dialog. This gives label for field that shows nickname of the operator whose data is being edited #: ui/editContact.ui:53 msgctxt "editContactDialog|" msgid "Local nickname" msgstr "Lokalt УИgenavn" # Tooltip text of a checkbox label in contact-editing dialog. The checkbox is one that controls statement of trustworthniness of the operator whose data is being edited. Note html format. #: ui/editContact.ui:65 msgctxt "editContactDialog|" msgid "" "

Settings some trusted is public information to readers " "of your profile

" msgstr "" "

Angivelse af nogle som trovУІrdige er offentlig information " "for lУІsere af din profil

" # Label of a checkbox in contact-editing dialog. The checkbox is one that controls statement of trustworthniness of the operator whose data is being edited. #: ui/editContact.ui:68 msgctxt "editContactDialog|" msgid "This contact is to be publicly trusted in transactions" msgstr "Denne kontakt er trovУІrdig i transaktioner" # Name of front widget. Wild guess is that this text actually does not appear anywhere in the UI. #: frontWidget.ui:14 msgctxt "frontWidget|" msgid "Form" msgstr "Formular" # Tab title text in front widget. When user clicks in this tab, the view is switched to one, that lists classified ads. #: frontWidget.ui:39 msgctxt "frontWidget|" msgid "Classified ads" msgstr "Rubrikannoncer" # Prompt text next "search" button. User is supposed to enter search criteria for classified ads and then click "search" ; this is prompt text for this behaviour. #: frontWidget.ui:67 msgctxt "frontWidget|" msgid "Search for classified ads about" msgstr "SУИg efter rubrikannoncer om" # Prompt text very next to "search" button. After user has clicked the button, he is supposed to be viewing list of classified ads matching the search criteria. #: frontWidget.ui:74 msgctxt "frontWidget|" msgid "Perform" msgstr "UdfУИr" # This part of search-criteria phrase. Normally the phrase reads something like "Buying of cars in finland" and this word is the 2nd word in that phrase. #: frontWidget.ui:97 msgctxt "frontWidget|" msgid "of" msgstr "af" # This part of search-criteria phrase. Normally the phrase reads something like "Buying of cars in finland" and this word is the 4th word in that phrase. #: frontWidget.ui:113 msgctxt "frontWidget|" msgid "in" msgstr "i" # Button text for button used to search for classified ads. This button has text "perform" just next to it so user sees actually 2 words "perform search" where the "perform" is in separate label above the button, and then is the text of this button. #: frontWidget.ui:123 msgctxt "frontWidget|" msgid "Search" msgstr "SУИg" # Tab title text in front widget for tab that shows details of operators own profile (==personal details) #: frontWidget.ui:161 msgctxt "frontWidget|" msgid "My profile" msgstr "Min profil" # Text field label in "operators profile" tab. The field in questions shows SHA1-digest e.g. the real address of the operator. #: frontWidget.ui:177 frontWidget.ui:932 msgctxt "frontWidget|" msgid "Profile address" msgstr "Profiladresse" # Text field label in "operators profile" tab. The field in questions shows nickname of the operator #: frontWidget.ui:208 frontWidget.ui:643 msgctxt "frontWidget|" msgid "Nickname" msgstr "Әgenavn" # Text field label in "operators profile" tab. The field in questions shows "hello world" text of the operator. #: frontWidget.ui:225 frontWidget.ui:669 msgctxt "frontWidget|" msgid "Greeting text" msgstr "Velkomsttekst" # Tooltip-text of a text field in "operators profile" tab. The field in questions shows greeting text of the operator. #: frontWidget.ui:232 msgctxt "frontWidget|" msgid "For the rest of the world. " msgstr "For resten af verdenen. " # Text field label in "operators profile" tab. The field in questions shows given name (first name) of the operator. #: frontWidget.ui:239 frontWidget.ui:695 msgctxt "frontWidget|" msgid "First name" msgstr "Fornavn" # Text field label in "operators profile" tab. The field in questions shows family name of the operator #: frontWidget.ui:253 frontWidget.ui:715 msgctxt "frontWidget|" msgid "Family name" msgstr "Familienavn" # Text field label in "operators profile" tab. The field in questions shows place of residence of the operator #: frontWidget.ui:263 msgctxt "frontWidget|" msgid "City/country" msgstr "By/land" # Text field label in "operators profile" tab. The field in questions shows address of bitcoin wallet of the operator. #: frontWidget.ui:273 msgctxt "frontWidget|" msgid "BTC address" msgstr "BTC-adresse" # Tooltip-text for a text field "operators profile" tab. The field in questions shows address of bitcoin wallet of the operator. #: frontWidget.ui:280 msgctxt "frontWidget|" msgid "If you wish to receive payments via BTC, include your BTC address too." msgstr "Hvis du УИnsker at modtage betalinger via BTC, sУЅ inkluder ogsУЅ din BTC-adresse." # Text field label in "operators profile" tab. The field in questions shows what the user has to say about state of the world. #: frontWidget.ui:287 frontWidget.ui:799 msgctxt "frontWidget|" msgid "State of the world" msgstr "Verdens tilstand" # Tool-tip text of a field in "operators profile" tab. The field in questions shows what operator has to say about state of the world. #: frontWidget.ui:294 msgctxt "frontWidget|" msgid "Longer explanation about state of the world" msgstr "LУІngere forklaring om verdens tilstand" # Checkbox text in "my profile" tab. The checkbox is question is a toggle for public/private status of the profile. When checkbox is checked, the profile will be made private. #: frontWidget.ui:301 msgctxt "frontWidget|" msgid "Profile is private" msgstr "Profil er privat" # Button text inside "My profile" tab. Clicking the button opens a dialog that prompts user to select list of operators that can read his profile that he has previously marked as private (e.g. accessible only to listed readers) #: frontWidget.ui:308 msgctxt "frontWidget|" msgid "Readers of profile" msgstr "LУІsere af profil" # Explanation text inside "my profile" tab. #: frontWidget.ui:315 msgctxt "frontWidget|" msgid "None of the fields is mandatory" msgstr "Ingen af felterne er krУІvet" # Text field label inside "my profile" tab. The field whose label this is shows the time when profile was last updated. #: frontWidget.ui:322 msgctxt "frontWidget|" msgid "Time of last update" msgstr "Tidspunkt for sidste opdatering" # Button text for button inside "my profile" tab. By clicking this button user makes her edits known to rest of the world. #: frontWidget.ui:342 msgctxt "frontWidget|" msgid "Publish" msgstr "OffentliggУИr" # Button text for button inside "my profile" tab. By clicking this button user discards her edits. #: frontWidget.ui:355 msgctxt "frontWidget|" msgid "Revert changes" msgstr "Fortryd УІndringer" # Text label on top of "my profile" tab. Below this label is a list of text fields and other stuff that user may edit regarding herself. #: frontWidget.ui:369 msgctxt "frontWidget|" msgid "Details of operator profile:" msgstr "Detaljer for operatУИrprofil:" # Text in image-placeholder inside "my profile" tab. When user has not selected any image for her profile details, this text is shown in place of the image. Clicking on text gives user option to select the image file for profile. #: frontWidget.ui:401 msgctxt "frontWidget|" msgid "" "\n" "\n" "Click \n" "to \n" "Add\n" "Image" msgstr "" "\n" "\n" "Klik \n" "for \n" "at\n" "tilfУИje\n" "billede" # Title text inside "my profile" tab. Title text is for a list of files that user is currently sharing with other users. #: frontWidget.ui:425 frontWidget.ui:845 msgctxt "frontWidget|" msgid "Shared files" msgstr "Delte filer" # Title text inside "my profile" tab. Title text is for a list of comments made by other users regarding operators profile. #: frontWidget.ui:461 frontWidget.ui:892 msgctxt "frontWidget|" msgid "Latest comments" msgstr "Seneste kommentarer" # Tab title text. When this tab is opened, user is shown a view of his frequent contacts. #: frontWidget.ui:504 msgctxt "frontWidget|" msgid "Contacts" msgstr "Kontakter" # Button text inside "contacts" tab. Clicking this button opens a dialog prompting user to enter details of operator to be added into contact list #: frontWidget.ui:536 msgctxt "frontWidget|" msgid "Add contact" msgstr "TilfУИj kontakt" # Button text inside "contacts" tab. Clicking this button removes a contact from list. #: frontWidget.ui:543 msgctxt "frontWidget|" msgid "Remove contact" msgstr "Fjern kontakt" # Button text inside "contacts" tab. Clicking this button displays details of the selected contact. #: frontWidget.ui:550 msgctxt "frontWidget|" msgid "View profile" msgstr "Vis profil" # Button text inside "contacts" tab. Clicking this button opens a dialog prompting user to send a message selected contact. #: frontWidget.ui:557 msgctxt "frontWidget|" msgid "Send message" msgstr "Send besked" # Tab text in front widget. When user selects this tab, he is presented with list of his private correspondence. #: frontWidget.ui:569 msgctxt "frontWidget|" msgid "Private messages" msgstr "Private beskeder" # Tab text in front widget. This tab shows details of some other operator of classified ads. Normally this text is replaced with nickname of the operator but if nothing like this is available, this text may be shown, this is the "default text". #: frontWidget.ui:624 msgctxt "frontWidget|" msgid "Profile details" msgstr "Profildetaljer" # Label text of a text-field. The text-field in question shows place of residence of operator whose details are on display. #: frontWidget.ui:741 msgctxt "frontWidget|" msgid "City/Country" msgstr "By/land" # Label text of a text-field. The text-field in question shows bitcoin wallet address of operator whose details are on display. #: frontWidget.ui:767 msgctxt "frontWidget|" msgid "BTC Addr" msgstr "BTC-adresse" # Text for image-placeholder inside "profile details" tab. When some particular operator has not selected any image for her profile, this text is shown in place of the image. Note html format. #: frontWidget.ui:829 msgctxt "frontWidget|" msgid "" "




No

Image

Inserted

" msgstr "" "




Intet

billede

indsat

" # Button text inside "defails of operator profile" tab. When the button is clicked, a new-message editor is opened. #: frontWidget.ui:874 msgctxt "frontWidget|" msgid "Send message to operator" msgstr "Send besked til operatУИr" # Button text inside "defails of operator profile" tab. When the button is clicked, dialog listing readers of the (private) profile. #: frontWidget.ui:879 msgctxt "frontWidget|" msgid "View readers" msgstr "Vis lУІsere" # Button text inside "defails of operator profile" tab. When the button is clicked, a dialog is opened, dialog prompts user to enter a comment about the operator. #: frontWidget.ui:927 msgctxt "frontWidget|" msgid "Comment" msgstr "Kommentar" # Button text inside "defails of operator profile" tab. When the button is clicked, the operator whose data is on display is added into contact-list. #: frontWidget.ui:959 msgctxt "frontWidget|" msgid "Add to contacts" msgstr "TilfУИj til kontakter" # Dialog title text. Dialog is for adding a link to text being edited. #: ui/insertLink.ui:26 msgctxt "insertLinkDialog|" msgid "Insert link" msgstr "IndsУІt henvisning" # Label for a combobox-field inside "insert link" dialog. Next to this label is set of fields that together make up a valid URL to be inserted. #: ui/insertLink.ui:39 msgctxt "insertLinkDialog|" msgid "URL" msgstr "Adresse" # Label for a text-field inside "insert link" dialog. Next to this label is field where user is supposed the text that will be shown as the link. Consider
the text then "the text" is text that user is prompted to enter with this label. #: ui/insertLink.ui:112 msgctxt "insertLinkDialog|" msgid "Link label in text" msgstr "LУІnk etiket i tekst" # Dialog title text. Dialog prompts user to manually add a network-connection to another node in the network. #: ui/manualConnectionDialog.ui:26 msgctxt "manualConnectionDialog|" msgid "Manually add node to connection queue" msgstr "TilfУИj manuelt knude til forbindelseskУИ" # Label text of numeric field. The numeric (input) field is TCP port of the remote node that will be connected. #: ui/manualConnectionDialog.ui:48 msgctxt "manualConnectionDialog|" msgid "Remote node listen port" msgstr "Ekstern knudes lytteport" # Label for text field inside "manually add connection" dialog. Text field whose label this is requires user to type in network address (ip addr or dns name) of the remote node. #: ui/manualConnectionDialog.ui:78 msgctxt "manualConnectionDialog|" msgid "Remote node network address" msgstr "Ekstern knudes netvУІrksadresse" # Tooltip text for a text field inside "manually add connection" dialog. The text field whose tooltip this is the remote network address input field. #: ui/manualConnectionDialog.ui:91 msgctxt "manualConnectionDialog|" msgid "IPv4, IPv6 or DNS name" msgstr "IPv4-, IPv6- eller DNS-navn" # Dialog title text for dialog that requires user to enter information about file to be shared with others. Metadata query dialog in practice. #: ui/metadataQuery.ui:26 msgctxt "metadataQuery|" msgid "File information" msgstr "Filinformation" # Label text for a input field. The input field whose label this is asks for file name (filesystem file name) #: ui/metadataQuery.ui:60 msgctxt "metadataQuery|" msgid "Name of the file:" msgstr "Filens navn:" # Label text for a input field. The input field whose label this is asks for owner of the file contents. This may be copyright holder, depending on contracts and legislation followed. #: ui/metadataQuery.ui:81 msgctxt "metadataQuery|" msgid "Owner of file (name or SHA1 if CA operator):" msgstr "Filens ejer (navn eller SHA1 hvis CA-operatУИr):" # Label text for a input field. The input field whose label this is asks for license under which the file may be used. Combobox lists some pre-filled options like GPL,BSD,CC-BY etc. but user may also enter any text into field. #: ui/metadataQuery.ui:111 msgctxt "metadataQuery|" msgid "License of use:" msgstr "Licens:" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:122 msgctxt "metadataQuery|" msgid "Public domain" msgstr "Offentlig domУІne" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:127 msgctxt "metadataQuery|" msgid "GPL" msgstr "GPL" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:132 msgctxt "metadataQuery|" msgid "LGPL" msgstr "LGPL" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:137 msgctxt "metadataQuery|" msgid "BSD" msgstr "BSD" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:142 msgctxt "metadataQuery|" msgid "CC-BY" msgstr "CC-BY" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:147 msgctxt "metadataQuery|" msgid "CC-BY-SA" msgstr "CC-BY-SA" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:152 msgctxt "metadataQuery|" msgid "CC-BY-ND" msgstr "CC-BY-ND" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:157 msgctxt "metadataQuery|" msgid "CC-BY-NC" msgstr "CC-BY-NC" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:162 msgctxt "metadataQuery|" msgid "CC-BY-NC-SA" msgstr "CC-BY-NC-SA" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:167 msgctxt "metadataQuery|" msgid "CC-BY-NC-ND" msgstr "CC-BY-NC-ND" # Label text for a input field. The input field whose label this is asks for mime-type of the field about to be published. #: ui/metadataQuery.ui:182 msgctxt "metadataQuery|" msgid "Mime-type:" msgstr "Mime-type:" # Label text for a input field. The input field whose label this is asks for descriptive text about file about to be published. #: ui/metadataQuery.ui:199 msgctxt "metadataQuery|" msgid "Description of file:" msgstr "Filens beskrivelse:" # Prompt text on top of "metadata query" dialog. Below this label is set of input-fields that make up the meta-data of a file to be published. #: ui/metadataQuery.ui:218 msgctxt "metadataQuery|" msgid "Enter information regarding file before publish:" msgstr "Indtast information om filen fУИr udgivelse:" # Dialog title text for a dialog that offers possibility to post a new classified ad for others to read. #: ui/newClassifiedAd.ui:26 msgctxt "newCaDialog|" msgid "Post a new classified ad" msgstr "Indsend en ny rubrikannonce" # This label text is part of sentence, whole sentence goes for example "About buying of cars in sweden" where the words "bying", "cars", and "sweden" are combo-boxes that user may choose from ; this word here is the first word in that sentece. #: ui/newClassifiedAd.ui:47 msgctxt "newCaDialog|" msgid "About" msgstr "Om" # This label text is part of sentence, whole sentence goes for example "About buying of cars in sweden" where the words "bying", "cars", and "sweden" are combo-boxes that user may choose from ; this word here is the 3rd word in that sentece. #: ui/newClassifiedAd.ui:65 msgctxt "newCaDialog|" msgid "of" msgstr "af" # This label text is part of sentence, whole sentence goes for example "About buying of cars in sweden" where the words "bying", "cars", and "sweden" are combo-boxes that user may choose from ; this word here is the 5th word in that sentece. #: ui/newClassifiedAd.ui:81 msgctxt "newCaDialog|" msgid "in" msgstr "i" # Label text of a text field inside "post a new classified ad" dialog. The input field whose label this is, requires user to enter a subject (topic) for her posting. #: ui/newClassifiedAd.ui:95 msgctxt "newCaDialog|" msgid "Subject" msgstr "Emne" # Label text of a text field inside "post a new classified ad" dialog. The input field whose label this is, will show name file that is attached to the post. #: ui/newClassifiedAd.ui:129 msgctxt "newCaDialog|" msgid "Attachment: " msgstr "VedhУІftelse: " # Push-button text inside "post a new classified ad" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. #: ui/newClassifiedAd.ui:149 msgctxt "newCaDialog|" msgid "Add" msgstr "TilfУИj" # Dialog title text for dialog that prompts user to edit+send a private message to another operator #: ui/newPrivMsg.ui:26 msgctxt "newPrivMsgDialog|" msgid "Send a private message" msgstr "Send en privat besked" # Text field label for input field inside "compose a new private message dialog". The text field in question is "subject" or "topic" field of the message. #: ui/newPrivMsg.ui:39 msgctxt "newPrivMsgDialog|" msgid "Subject" msgstr "Emne" # Text field label for input field inside "compose a new private message dialog". The text field in question is SHA1 address of the recipient. #: ui/newPrivMsg.ui:53 msgctxt "newPrivMsgDialog|" msgid "Recipient" msgstr "Modtager" # Label text of a text field inside "compose a new private message" dialog. The input field whose label this is, will show name file that is attached to the post. #: ui/newPrivMsg.ui:83 msgctxt "newPrivMsgDialog|" msgid "Attachments: " msgstr "VedhУІftninger: " # Push-button text inside "compose a new private message" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. #: ui/newPrivMsg.ui:103 msgctxt "newPrivMsgDialog|" msgid "Attach" msgstr "VedhУІft" # Dialog title text for dialog that prompts user to edit+send a comment regarding another operator. #: ui/newProfileComment.ui:26 msgctxt "newProfileCommentDialog|" msgid "Comment a operators profile" msgstr "Lav en kommentar til en operatУИrs profil" # Text field label for input field inside "compose a comment about operator dialog". The text field in question is "subject" or "topic" field of the comment. #: ui/newProfileComment.ui:39 msgctxt "newProfileCommentDialog|" msgid "Subject" msgstr "Emne" # Text field label for input field inside "compose a comment about operator dialog". The text field in question is SHA1 digest (address) of the operator being commented. #: ui/newProfileComment.ui:53 msgctxt "newProfileCommentDialog|" msgid "Commented profile" msgstr "Kommenteret profil" # Label text of a text field inside "compose a comment about operator dialog" dialog. The input field whose label this is, will show name file that is attached to the post. #: ui/newProfileComment.ui:89 msgctxt "newProfileCommentDialog|" msgid "Attachments:" msgstr "VedhУІftninger:" # Push-button text inside "compose a comment about operator dialog" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. #: ui/newProfileComment.ui:109 msgctxt "newProfileCommentDialog|" msgid "Attach" msgstr "VedhУІft" # Dialog title text for a dialog that prompts user to edit+publish a text document. #: ui/newTextDocument.ui:26 msgctxt "newTextDocumentDialog|" msgid "Edit and publish a new text document" msgstr "Rediger og udgiv et nyt tekstdokument" # Text field label for input field inside "compose a new text document" dialog. The text field in question is "subject" or "topic" field of the text document. #: ui/newTextDocument.ui:39 msgctxt "newTextDocumentDialog|" msgid "Document title" msgstr "Dokumenttitel" # Label text of a text field inside "edit+publish a new text document dialog" dialog. The input field whose label this is, will show name file that is attached to the document. #: ui/newTextDocument.ui:75 msgctxt "newTextDocumentDialog|" msgid "Attachments:" msgstr "VedhУІftninger:" # Push-button text inside "edit+publish a new text document dialog" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. #: ui/newTextDocument.ui:95 msgctxt "newTextDocumentDialog|" msgid "Attach" msgstr "VedhУІft" # Dialog title text for dialog that will show a listing of previous comments regarding operator (user himself or some other operator, it is the same dialog in both cases) #: ui/profileCommentDisplay.ui:26 msgctxt "profileCommentDisplay|" msgid "Comments regarding operator" msgstr "Kommentarer om operatУИr" # Dialog title text for a dialog that prompts user to choose operators who will be able to read details, comments and shared files of his profile. #: ui/profileReadersDialog.ui:26 msgctxt "profileReadersDialog|" msgid "Profile readers list" msgstr "Liste med profillУІsere" # Text field label inside "add profiles to list of readers" dialog. The text field whose prompt this is asks for search-words to be used to filter operator names/addresses from database. #: ui/profileReadersDialog.ui:37 msgctxt "profileReadersDialog|" msgid "Search for profiles to add" msgstr "SУИg efter profiler at tilfУИje" # Text field label inside "add profiles to list of readers" dialog. The text listing-field whose explanation this is will list operators whose nickname,name or other search-term matches conditions entered by user. #: ui/profileReadersDialog.ui:44 msgctxt "profileReadersDialog|" msgid "First 100 matching profiles:" msgstr "FУИrste 100 matchende profiler:" # Push-button label inside "add profiles to list of readers" dialog. When user hits this button, operators that are selected from neighboring list will be added to list of readers of operators profile. #: ui/profileReadersDialog.ui:66 msgctxt "profileReadersDialog|" msgid "Add seleted to list of readers" msgstr "TilfУИj valgte til listen med lУІsere" # Text field label inside "add profiles to list of readers" dialog. The text listing-field whose explanation this is shows current list operators profiles readers. #: ui/profileReadersDialog.ui:73 msgctxt "profileReadersDialog|" msgid "Current list of readers" msgstr "NuvУІrende liste med lУІsere" # Push button label inside dialog that asks for list of operators who are readers of operators own profile. When user this this button, the dialog is dismissed. #: ui/profileReadersDialog.ui:90 msgctxt "profileReadersDialog|" msgid "Close" msgstr "Luk" # Push button label inside dialog that asks for list of operators who are readers of operators own profile. When user this this button, selected operators are removed from the list. #: ui/profileReadersDialog.ui:109 msgctxt "profileReadersDialog|" msgid "Remove selected" msgstr "Fjern valgte" # Dialog title-text for a search dialog. #: ui/searchDisplay.ui:26 msgctxt "searchDisplay|" msgid "Search data storage" msgstr "SУИg datalager" # Label text of a text field inside "search" dialog. The text field in question requires user to enter one or more words that are then searched from all available (public) documents. #: ui/searchDisplay.ui:60 msgctxt "searchDisplay|" msgid "Words:" msgstr "Ord:" # Push button label inside "search" dialog. When button is hit, search using given words is performed. #: ui/searchDisplay.ui:70 msgctxt "searchDisplay|" msgid "Search" msgstr "SУИg" # Check-box label inside "search" dialog. When box is checked, the search is done also in neighboring nodes in the network, not only in local storage. #: ui/searchDisplay.ui:87 msgctxt "searchDisplay|" msgid "Network search" msgstr "NetvУІrkssУИgning" # Check-box label inside "search" dialog. When box is checked, the search may include classified ads in its resultset. #: ui/searchDisplay.ui:101 msgctxt "searchDisplay|" msgid "Search ads" msgstr "SУИg i annoncer" # Check-box label inside "search" dialog. When box is checked, the search may include operator profiles in its resultset. #: ui/searchDisplay.ui:111 msgctxt "searchDisplay|" msgid "Search profiles" msgstr "SУИg i profiler" # Check-box label inside "search" dialog. When box is checked, the search may include profile commetns in its resultset. #: ui/searchDisplay.ui:121 msgctxt "searchDisplay|" msgid "Search comments" msgstr "SУИg i kommentarer" # Dialog title text for "settings" dialog. #: ui/settingsDialog.ui:26 msgctxt "settingsDialog|" msgid "Node settings" msgstr "Knudeindstillinger" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has TCP port number of the node. #: ui/settingsDialog.ui:39 msgctxt "settingsDialog|" msgid "TCP listen port" msgstr "TCP-lytteport" # Tooltip-text for input field inside "settings" dialog. The numerical input field whose label this is has TCP port number of the node. #: ui/settingsDialog.ui:58 msgctxt "settingsDialog|" msgid "Incoming TCP listen port. Change requires node restart. " msgstr "IndgУЅende TCP-lytteport. У†ndring krУІver knudegenstart. " # Text field label for input field inside "settings" dialog. The textual input field whose label this is requires user to enter DNS-name of the node (or leave it empty, if no name is assigned) #: ui/settingsDialog.ui:84 msgctxt "settingsDialog|" msgid "DNS name of node" msgstr "DNS-navn pУЅ knuden" # Tooltip-text for input field inside "settings" dialog. The textual input field whose label this is requires user to enter DNS-name of the node (or leave it empty, if no name is assigned) #: ui/settingsDialog.ui:91 msgctxt "settingsDialog|" msgid "" "If you have permanent DNS name for your machine, you may type it here to be " "used to reference your node" msgstr "" "Hvis du har et permanent DNS-navn for din maskine, sУЅ kan du indtaste det " "her for brug som reference for din knude" # Text label inside "settings" dialog. Under this label is set of numerical input fields that user may use to adjust the amount of items he wishes to keep in his local storage. #: ui/settingsDialog.ui:103 msgctxt "settingsDialog|" msgid "Data store limits:" msgstr "DatalagerbegrУІnsning:" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of operator profiles to keep in storage. #: ui/settingsDialog.ui:115 msgctxt "settingsDialog|" msgid "Nr of profiles to keep" msgstr "Antal profiler at bevare" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of private messages to keep in storage. #: ui/settingsDialog.ui:154 msgctxt "settingsDialog|" msgid "Nr of private messages to keep" msgstr "Antal private beskeder at bevare" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of binary files to keep in storage. #: ui/settingsDialog.ui:193 msgctxt "settingsDialog|" msgid "Nr of binary blobs to keep" msgstr "Antal af binУІre blob'er at bevare" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of classified ads to keep in storage. #: ui/settingsDialog.ui:232 msgctxt "settingsDialog|" msgid "Nr of CAs to keep" msgstr "Antallet af CA'er at bevare" # Tooltip-text for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of classified ads to keep in storage. #: ui/settingsDialog.ui:251 msgctxt "settingsDialog|" msgid "" "Number of classified ads to keep in storage, total, including all " "classifications. Oldest referenced will be deleted first." msgstr "" "Antallet af rubrikannoncer i lageret, i alt, inklusive alle " "klassifikationer. Dem med УІldest reference slettes fУИrst." # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of comments regarding operators to keep in storage. #: ui/settingsDialog.ui:274 msgctxt "settingsDialog|" msgid "Nr of profile comments to keep" msgstr "Antallet af profilkommentarer at bevare" # Dialog title text for a dialog that shows network connectivity details. #: ui/statusDialog.ui:26 msgctxt "statusDialog|" msgid "Network and connection status" msgstr "NetvУІrk- og forbindelsesstatus" # Text field label for display-item inside "network status" dialog. The display-item shows ipv4-network address of the node. Usually it is (public) IP addr of the very machine that user is using at the moment. #: ui/statusDialog.ui:48 msgctxt "statusDialog|" msgid "Detected own IPv4" msgstr "Detekterede egen IPv4" # Tooltip-text for display-item inside "network status" dialog. The display-item shows ipv4-network address of the node. Usually it is (public) IP addr of the very machine that user is using at the moment. #: ui/statusDialog.ui:61 ui/statusDialog.ui:93 msgctxt "statusDialog|" msgid "" "Should your friend have trouble connecting, give her this address with port " "number" msgstr "" "Har din ven problemer med at forbinde, sУЅ giv vennen denne adresse med portnummer" # Text field label for display-item inside "network status" dialog. The display-item shows IPV6-address of the node. Usually it is (public) IPv6 addr of the very machine that user is using at the moment. #: ui/statusDialog.ui:74 msgctxt "statusDialog|" msgid "IPv6" msgstr "IPv6" # Text field label for display-item inside "network status" dialog. The display-item shows listen port of the node. #: ui/statusDialog.ui:113 msgctxt "statusDialog|" msgid "TCP port currently used" msgstr "TCP-port i brug" # Text field label for a list-item inside "network status" dialog. The list-item shows list of currently connected other nodes in the network. #: ui/statusDialog.ui:151 msgctxt "statusDialog|" msgid "Currently open connections" msgstr "У…bne forbindelser" # Push-button label for button inside "network status" dialog. When button is hit, another dialog is opened, asking user for details about the remote node to connect. #: ui/statusDialog.ui:195 msgctxt "statusDialog|" msgid "Manually add connection" msgstr "TilfУИj manuelt en forbindelse" # Push-button label for button inside "network status" dialog. When button is hit, dialog is dismissed. #: ui/statusDialog.ui:202 msgctxt "statusDialog|" msgid "Close" msgstr "Luk" classified-ads-0.09/po/fi.po000066400000000000000000003562671260620453500157170ustar00rootroot00000000000000msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Language: fi_FI\n" "X-Qt-Contexts: true\n" # Context menu item text for menu, that appears when right-mouse is clicked on top of a file in a list. #: ui/attachmentlistdialog.cpp:60 msgctxt "AttachmentListDialog|" msgid "Save file to disk.." msgstr "Tallenna tiedostojУЄrjestelmУЄlle.." # In file open dialog this is text specifying what kind of files to include in listing, filtered by file name suffix. For example, user wants only PNG files, then text appearing in dialog filter field would say "PNG files (*.png)" and this work "files" here is the word after the word PNG. #: ui/attachmentlistdialog.cpp:151 ui/attachmentlistdialog.cpp:153 msgctxt "AttachmentListDialog|" msgid "files" msgstr "tiedostot" # Dialog title text for dialog asking user to give a name to file for purpose of saving it to filesystem. #: ui/attachmentlistdialog.cpp:155 msgctxt "AttachmentListDialog|" msgid "Choose file name for saving" msgstr "Valitse nimi tiedostolle" # Dialog title text for error dialog. #: ui/attachmentlistdialog.cpp:166 msgctxt "AttachmentListDialog|" msgid "Error" msgstr "Vikaa" # This gives (no) explanation about reason for "file open failure"? #: ui/attachmentlistdialog.cpp:167 msgctxt "AttachmentListDialog|" msgid "File open error" msgstr "Vika tiedoston avaamisessa" # Title text in a listing view where list of shared files are listed. This particular text gives text for column, where "name or fingerprint of file" is listed. Fingerprint in practice means SHA1 digest. #: datamodel/binaryfilelistingmodel.cpp:173 msgctxt "BinaryFileListingModel|" msgid "Name or fingerprint of file" msgstr "Tiedoston nimi tai SHA1 tiiviste" # Header text for a column-list. The column that gets its header text from this string, is the date-column of an classified ad. #: datamodel/calistingmodel.cpp:50 datamodel/calistingmodel.cpp:143 msgctxt "CAListingModel|" msgid "Date" msgstr "Aika" # Header text for a column-list. The column that gets its header text from this string, is the subject-column of an classified ad. #: datamodel/calistingmodel.cpp:51 datamodel/calistingmodel.cpp:142 msgctxt "CAListingModel|" msgid "Subject" msgstr "Aihe" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Cars in Estonia" and this combobox text here is the first word of that phrase. #: datamodel/camodel.cpp:127 msgctxt "ClassifiedAdsModel|" msgid "Buying" msgstr "Ostetaan" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Cars in Estonia" and this combobox text here is the first word of that phrase. #: datamodel/camodel.cpp:129 msgctxt "ClassifiedAdsModel|" msgid "Selling" msgstr "MyydУЄУЄn" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Giving away of Cars in Estonia" and this combobox text here is the first+2nd word of that phrase. #: datamodel/camodel.cpp:131 msgctxt "ClassifiedAdsModel|" msgid "Giving away" msgstr "Annetaan" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Wanting of Cars in Estonia" and this combobox text here is the first word of that phrase. #: datamodel/camodel.cpp:133 msgctxt "ClassifiedAdsModel|" msgid "Wanting" msgstr "Halutaan" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Renting of Cars in Estonia" and this combobox text here is the first word of that phrase. #: datamodel/camodel.cpp:135 msgctxt "ClassifiedAdsModel|" msgid "Renting" msgstr "Vuokrataan" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Cars in Estonia" and this combobox text here is the first word of that phrase. #: datamodel/camodel.cpp:137 msgctxt "ClassifiedAdsModel|" msgid "Announcement" msgstr "Ilmoitetaan" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Cars in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:210 msgctxt "ClassifiedAdsModel|" msgid "Cars" msgstr "Autoja" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Boats in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:212 msgctxt "ClassifiedAdsModel|" msgid "Boats" msgstr "VeneitУЄ" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Bikes in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:214 msgctxt "ClassifiedAdsModel|" msgid "Bikes" msgstr "PyУЖriУЄ" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Other vehicles in Estonia" and this combobox text here is the 3rd+4th word of that phrase. #: datamodel/camodel.cpp:216 msgctxt "ClassifiedAdsModel|" msgid "Other vehicles" msgstr "Muita ajoneuvoja" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of vehicle parts in Estonia" and this combobox text here is the 3rd+4th word of that phrase. #: datamodel/camodel.cpp:218 msgctxt "ClassifiedAdsModel|" msgid "Vehicle parts" msgstr "Ajoneuvon osia" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Habitation in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:220 msgctxt "ClassifiedAdsModel|" msgid "Habitation" msgstr "Asumuksia" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Household appliances in Estonia" and this combobox text here is the 3rd+4th word of that phrase. #: datamodel/camodel.cpp:222 msgctxt "ClassifiedAdsModel|" msgid "Household appliances" msgstr "Kodin tavaroita" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Furniture in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:224 msgctxt "ClassifiedAdsModel|" msgid "Furniture" msgstr "Huonekaluja" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Clothing in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:226 msgctxt "ClassifiedAdsModel|" msgid "Clothing" msgstr "Vaatteita" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Tools in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:228 msgctxt "ClassifiedAdsModel|" msgid "Tools" msgstr "TyУЖkaluja" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Tools in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:230 msgctxt "ClassifiedAdsModel|" msgid "Sports" msgstr "UrheiluvУЄlineitУЄ" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Music in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:232 msgctxt "ClassifiedAdsModel|" msgid "Music" msgstr "MusiikkivУЄlineitУЄ" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Books in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:234 msgctxt "ClassifiedAdsModel|" msgid "Books" msgstr "Kirjoja" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Movies in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:236 msgctxt "ClassifiedAdsModel|" msgid "Movies" msgstr "Elokuvia" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Animals in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:238 msgctxt "ClassifiedAdsModel|" msgid "Animals" msgstr "ElУЄimiУЄ" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Electronics in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:240 msgctxt "ClassifiedAdsModel|" msgid "Electronics" msgstr "SУЄhkУЖlaitteita" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Jobs in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:242 msgctxt "ClassifiedAdsModel|" msgid "Jobs" msgstr "TyУЖpaikkoja" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Wanting of Transportation in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:244 msgctxt "ClassifiedAdsModel|" msgid "Transportation" msgstr "Kuljetuksia" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Buying of Services in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:246 msgctxt "ClassifiedAdsModel|" msgid "Services" msgstr "Palveluita" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Healthcare in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:248 msgctxt "ClassifiedAdsModel|" msgid "Healthcare" msgstr "Terveydenhoitoa" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Foodstuff in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:250 msgctxt "ClassifiedAdsModel|" msgid "Foodstuff" msgstr "Ruokatarvikkeita" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Software in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:252 msgctxt "ClassifiedAdsModel|" msgid "Software" msgstr "Ohjelmistoja" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Events in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:254 msgctxt "ClassifiedAdsModel|" msgid "Events" msgstr "Tapahtumia" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Giving away of Education in Estonia" and this combobox text here is the 4th word of that phrase. #: datamodel/camodel.cpp:256 msgctxt "ClassifiedAdsModel|" msgid "Education" msgstr "Koulutusta" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Finance in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:258 msgctxt "ClassifiedAdsModel|" msgid "Finance" msgstr "Raha-asioita" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Selling of Jewelry in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:260 msgctxt "ClassifiedAdsModel|" msgid "Jewelry" msgstr "Koruja" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of religious rituals in Estonia" and this combobox text here is the 3rd+4th word of that phrase. #: datamodel/camodel.cpp:262 msgctxt "ClassifiedAdsModel|" msgid "Religious rituals" msgstr "Uskonnollisia toimituksia" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Philosophy in Estonia" and this combobox text here is the 3rd word of that phrase. #: datamodel/camodel.cpp:264 msgctxt "ClassifiedAdsModel|" msgid "Philosophy" msgstr "Filosofiaa" # Drop-down combobox-item text. This appears in context where the classification is selected. In UI there will be text like "Announcement of Philosophy in Any country" and this combobox text here is end part "Any country" specifying the location where announcement. #: datamodel/camodel.cpp:908 msgctxt "ClassifiedAdsModel|" msgid "Any country" msgstr "MissУЄ maassa vain" # Tool tip text. When user hovers mouse cursor on top of network address field in a dialog, this text will appear. #: datamodel/connectionlistingmodel.cpp:142 msgctxt "ConnectionListingModel|" msgid "Peer network address" msgstr "Solmun verkko-osoite" # Tool tip text. When user hovers mouse cursor on top of field specifying if connection is inbound/outbound this text will appear. #: datamodel/connectionlistingmodel.cpp:145 msgctxt "ConnectionListingModel|" msgid "Inbound connections are those where peer initiated connection" msgstr "" "SisУЄУЄntulevat yhteydet ovat sellaisia, missУЄ etУЄjУЄrjestelmУЄ aloitti yhteyden" # Tool tip text. When user hovers mouse cursor on top of traffic-counter field in a dialog, this text will appear. #: datamodel/connectionlistingmodel.cpp:148 msgctxt "ConnectionListingModel|" msgid "Data transferred from peer to your node" msgstr "Sinun tietokoneeseesi tУЄstУЄ solmusta siirretty tietomУЄУЄrУЄ" # Tool tip text. When user hovers mouse cursor on top of traffic-counter field in a dialog, this text will appear. #: datamodel/connectionlistingmodel.cpp:151 msgctxt "ConnectionListingModel|" msgid "Data transferred to peer from your node" msgstr "Sinun tietokoneestasi tУЄhУЄn verkon solmuun siirretty tietomУЄУЄrУЄ" # Tool tip text. When user hovers mouse cursor on top of time-field in a dialog, this text will appear. #: datamodel/connectionlistingmodel.cpp:154 msgctxt "ConnectionListingModel|" msgid "Time when connection was opened" msgstr "Yhteyden avaamisaika" # Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows network address (like IP-address) #: datamodel/connectionlistingmodel.cpp:164 msgctxt "ConnectionListingModel|" msgid "Address" msgstr "Verkko-osoite" # Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows direction (inbound/outbound) of the connection #: datamodel/connectionlistingmodel.cpp:167 msgctxt "ConnectionListingModel|" msgid "Inbound" msgstr "SisУЄУЄntuleva" # Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows number of bytes transferred inside #: datamodel/connectionlistingmodel.cpp:170 msgctxt "ConnectionListingModel|" msgid "Bytes in" msgstr "Oktettia sisУЄУЄn" # Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows number of bytes transferred outside #: datamodel/connectionlistingmodel.cpp:173 msgctxt "ConnectionListingModel|" msgid "Bytes out" msgstr "Oktettia ulos" # Column header text. Column view is used for listing network connections currently open, this text here gives title for column that shows time when connection was opened. #: datamodel/connectionlistingmodel.cpp:176 msgctxt "ConnectionListingModel|" msgid "Open time" msgstr "Avaamisaika" # Text in contact listing column view. This text appears in column telling if user is to be trusted or not and this value here denotes the positive case "user is trusted". #: datamodel/contactlistingmodel.cpp:73 msgctxt "ContactListingModel|" msgid "Yes" msgstr "Tosi on" # Text in contact listing column view. This text appears in column telling if user is to be trusted or not and this value here denotes the negative case "user trust is unknown". #: datamodel/contactlistingmodel.cpp:75 msgctxt "ContactListingModel|" msgid "Unknown" msgstr "Tuntematon" # Tool tip text. When user hovers mouse cursor on top of field where operators SHA1 digest is shown, this text appears. The field is part of contact listing view, where users frequent contacts are shown. #: datamodel/contactlistingmodel.cpp:98 msgctxt "ContactListingModel|" msgid "Actual network address (SHA1) of the contact" msgstr "Operaattorin varsinainen verkko-osoite (SHA1)" # Tool tip text. When user hovers mouse cursor on top of field where operators locally given nickname is shown, this text appears. The field is part of contact listing view, where users frequent contacts are shown. #: datamodel/contactlistingmodel.cpp:101 msgctxt "ContactListingModel|" msgid "Locally given nickname ; user may set her own nickname himself" msgstr "Antamasi liikanimi; operaattori voi antaa itselleen eri liikanimen" # Tool tip text. When user hovers mouse cursor on top of field where operators trustworthiness (boolean value) in users opinion is shown, this text appears. The field is part of contact listing view, where users frequent contacts are shown. #: datamodel/contactlistingmodel.cpp:104 msgctxt "ContactListingModel|" msgid "Public statement if this operator to be trusted in transactions" msgstr "Julkinen lausunto operaattorin luotettavuudesta asioiden hoitamisessa" # Column header text. Used in column view where operators frequent contacts are shown. This text gives title to column that shows operators network address (the SHA digest of operator) #: datamodel/contactlistingmodel.cpp:114 msgctxt "ContactListingModel|" msgid "Address" msgstr "Osoite" # Column header text. Used in column view where operators frequent contacts are shown. This text gives title to column that shows operators nickname #: datamodel/contactlistingmodel.cpp:117 msgctxt "ContactListingModel|" msgid "Nickname" msgstr "Liikanimi" # Column header text. Used in column view where operators frequent contacts are shown. This text gives title to column that shows operators trustworthiness. #: datamodel/contactlistingmodel.cpp:120 msgctxt "ContactListingModel|" msgid "Publicly trusted" msgstr "Julkisesti luotettu" # Error message that is displayed when SSL key generation failed. Text is displayed in a dialog, after user dismisses the dialog, whole application will exit. #: datamodel/contentencryptionmodel.cpp:86 msgctxt "ContentEncryptionModel|" msgid "SSL key generation went wrong, calling exit.." msgstr "SSL-avaimen rakentaminen epУЄonnistui, pakko poistua.." # Error message that is displayed when x509 certificate generation failed. Text is displayed in a dialog, after user dismisses the dialog, whole application will exit. #: datamodel/contentencryptionmodel.cpp:94 msgctxt "ContentEncryptionModel|" msgid "x509 cert generation went wrong, calling exit.." msgstr "x509-sertifikaatin rakentaminen epУЄonnistui, pakko poistua.." # Error message that is displayed when RSA private key could not be saved to database. This is rather fatal error, the operator profile that user tried to create will be un-usable. #: datamodel/contentencryptionmodel.cpp:192 #: datamodel/contentencryptionmodel.cpp:290 msgctxt "ContentEncryptionModel|" msgid "RSA Private key key saving went wrong" msgstr "Salaisen RSA-avaimen tallettaminen epУЄonnistui" # Error message text. This is displayed in situation where user tried to access content that he does not have encryption key for. This may appear frequently during normal operation and is no fatal error, only telling user that he is not going to see the content he was trying to access. #: datamodel/contentencryptionmodel.cpp:637 msgctxt "ContentEncryptionModel|" msgid "No suitable de-cryption key found" msgstr "Avaamiseen sopivaa salausavainta ei ole kУЄytettУЄvissУЄ" # Window title text for whole application. #: controller.cpp:103 msgctxt "Controller|" msgid "Classified ads" msgstr "Luokitellut ilmoitukset" # Prompt text for password dialog #: controller.cpp:135 msgctxt "Controller|" msgid "Enter password for protection of your messages:" msgstr "Anna salasana viestiesi sisУЄllУЖn turvaamiseksi" # Dialog text for a wait dialog (a progress-bar like thing will be shown next to this text and user is supposed to sit down and wait a moment..) #: controller.cpp:405 msgctxt "Controller|" msgid "Fetching item from network.." msgstr "Kaivellaan kohdetta verkon syУЖvereistУЄ.." # Menu item text used in "File" menu item and when this particular item is selected, application will close #: controller.cpp:430 msgctxt "Controller|" msgid "E&xit" msgstr "&Sulje" # Menu item tooltip-text used in "File" menu entry and when this particular item is selected, application will close #: controller.cpp:432 msgctxt "Controller|" msgid "Exit the application" msgstr "Sulje sovellus" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog telling why this application is and how to use it #: controller.cpp:434 msgctxt "Controller|" msgid "&About" msgstr "&Tietoja" # Tooltip-text of menu item text used in "File" menu and when this particular item is selected, application will show a dialog telling why this application is and how to use it #: controller.cpp:435 msgctxt "Controller|" msgid "Show the application's About box" msgstr "EsitУЄ selvitys sovelluksen tarkoituksesta" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to change her password #: controller.cpp:437 msgctxt "Controller|" msgid "&Change password" msgstr "Vaihda salasana" # Tooltip-item for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to change her password #: controller.cpp:438 msgctxt "Controller|" msgid "Change password of current profile" msgstr "Valitse valitulle operaattori-profiilille uusi salasana" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password for a newly-created user profile #: controller.cpp:440 msgctxt "Controller|" msgid "Create &new profile" msgstr "Luo uusi profiili" # Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password for a newly-created user profile #: controller.cpp:441 msgctxt "Controller|" msgid "Makes a brand new user profile" msgstr "Luo operaattorille uuden profiilin" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to confirm deletion of currently open operator profile #: controller.cpp:443 msgctxt "Controller|" msgid "&Delete current profile" msgstr "Poista valittu profiili" # Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to confirm deletion of currently open profile #: controller.cpp:444 msgctxt "Controller|" msgid "Deletes currently open profile" msgstr "PysyvУЄsti poistaa tУЄmУЄnhetkisen valitun profiilin" # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password of another profile that user will use next #: controller.cpp:446 msgctxt "Controller|" msgid "&Select another profile" msgstr "&Valitse kУЄyttУЖУЖn toinen profiilii" # Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password of another profile that user will use next #: controller.cpp:447 msgctxt "Controller|" msgid "If you have multitude of profiles" msgstr "Jos olet luonnut useamman profiilin, voit tУЄstУЄ valita toisen" # Menu item text used in "File" menu and when this particular item is selected, application will show a settings-dialog #: controller.cpp:449 msgctxt "Controller|" msgid "Settings.." msgstr "Asetukset.." # Tooltip-text for a menu item text used in "File" menu and when this particular item is selected, application will show a dialog prompting user to enter password of another profile that user will use next #: controller.cpp:450 msgctxt "Controller|" msgid "Node-wide settings.." msgstr "Solmun asetukset.." # Menu item text used in "File" menu and when this particular item is selected, application will show a dialog detailing network connectivity of the node #: controller.cpp:452 msgctxt "Controller|" msgid "Network status.." msgstr "Verkko-yhteydet.." # Menu item text used in "File" menu and when this particular item is selected, application will show a search-dialog #: controller.cpp:454 msgctxt "Controller|" msgid "Search.." msgstr "&Etsi.." # Menu bar title text for "File" menu. #: controller.cpp:471 msgctxt "Controller|" msgid "&File" msgstr "&Tiedosto" # Password dialog prompt. #: controller.cpp:516 msgctxt "Controller|" msgid "Enter new password:" msgstr "Anna uusi salasana:" # Password dialog prompt. In this case the password dialog is not used for giving initial password or change password but instead password is typed for the reason of selection of another operator profile to be used. #: controller.cpp:544 controller.cpp:653 msgctxt "Controller|" msgid "Activate another profile with password" msgstr "Valitse uusi profiili antamalla haluamasi profiilin salasana" # Error message shown in dialog in situation where user tried to delete the last (one and only) operator profile in machine. There needs to be at least one profile and this error message is shown if user tries to get around that limitation. #: controller.cpp:638 msgctxt "Controller|" msgid "Can't delete only profile." msgstr "ViimeistУЄ jУЄljellУЄ olevaa profiilia ei voi poistaa." # Text shown in title of confirmation dialog. #: controller.cpp:642 msgctxt "Controller|" msgid "Permanently discard profile?" msgstr "Poistetaanko profiili lopullisesti?" # Text shown inside a confirmation dialog. Dialog will have buttons OK and Cancel and this is the question. #: controller.cpp:643 msgctxt "Controller|" msgid "There will be NO way to access content of this profile later" msgstr "" "TУЄmУЄn profiilin viestejУЄ tai muuta sisУЄltУЖУЄ ei ole mahdollista nУЄhdУЄ enУЄУЄ" # Error message that is shown in a dialog in situation where previously stored encryption keys of the node could not be accessed. Rather fatal error, will render node un-usable. #: controller.cpp:706 msgctxt "Controller|" msgid "Cant load node cert or key cert" msgstr "Solmun salausavaimen tai sertifikaatin lataaminen ei onnistunut" # Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during a filesystem file operation. Actual explanation of the error is shown inside the dialog whose title text this is. #: controller.cpp:711 msgctxt "Controller|" msgid "File error" msgstr "TiedostokУЄsittelyyn liittyvУЄ virhe" # Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during database operation. Actual explanation of the error is shown inside the dialog whose title text this is. #: controller.cpp:716 msgctxt "Controller|" msgid "Database error" msgstr "Tietokantavirhe" # Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during a operation inside crypto-module. Actual explanation of the error is shown inside the dialog whose title text this is. #: controller.cpp:722 controller.cpp:732 msgctxt "Controller|" msgid "Cryptographic module" msgstr "SalausjУЄrjestelmУЄn virhe" # Error message dialog title text for a dialog that is shown in a dialog in situation where something bad happened during operation inside database module. Actual explanation of the error is shown inside the dialog whose title text this is. #: controller.cpp:727 msgctxt "Controller|" msgid "Database module" msgstr "Tietokannan vikatila" # Error message dialog title text for a dialog that is shown in a dialog in situation when password supplied by user was not good for any purpose. Actual explanation of the error is shown inside the dialog whose title text this is. #: controller.cpp:733 msgctxt "Controller|" msgid "Bad password" msgstr "Kelpaamaton salasana" # Error message text inside a dialog when user had requested for an item to be opened but program could not find the requested item. #: controller.cpp:949 msgctxt "Controller|" msgid "Could not find item from network.." msgstr "Haluttua kohdetta ei verkosta lУЖytynyt.." # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies SHA1 digest of the file. #: controller.cpp:1062 msgctxt "Controller|" msgid "SHA1: " msgstr "SHA1:" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies mime-type of the file #: controller.cpp:1067 msgctxt "Controller|" msgid "Mime-Type: " msgstr "Mime-Tyyppi:" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that gives longer explanation of the file #: controller.cpp:1073 msgctxt "Controller|" msgid "Description: " msgstr "Kuvaus:" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies name of publisher of the file (in practice, who uploaded the file into classified ads) #: controller.cpp:1079 msgctxt "Controller|" msgid "Publisher: " msgstr "Julkaisija:" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies name of the person (or organization) that owns (in copyright sense) the file or its contents. #: controller.cpp:1085 msgctxt "Controller|" msgid "Content owner: " msgstr "SisУЄllУЖn omistaja:" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies the license of the file #: controller.cpp:1091 msgctxt "Controller|" msgid "License: " msgstr "Lisenssi:" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies file name #: controller.cpp:1097 msgctxt "Controller|" msgid "Name: " msgstr "Nimi:" # Text field explanation text. Part of "file details" dialog. This text gives explanation of field that specifies file date #: controller.cpp:1104 msgctxt "Controller|" msgid "Date: " msgstr "PУЄivУЄmУЄУЄrУЄ:" # Error message text shown inside dialog when user tries to select for operation a file that is much much too big. (there is currently 2MB size limit for shared files) #: ui/dialogbase.cpp:47 ui/dialogbase.cpp:101 msgctxt "DialogBase|" msgid "File way too big" msgstr "Tiedosto on ihan liian iso" # Error message text shown inside dialog when user tries to select for operation a file that is just-and-just too big. (there is currently 2MB size limit for shared files) #: ui/dialogbase.cpp:55 ui/dialogbase.cpp:109 msgctxt "DialogBase|" msgid "File too big" msgstr "Tiedosto on liian iso" # Error message text shown inside dialog when user tries to select for operation a file that can not be opened (for example due to file permission reasons) #: ui/dialogbase.cpp:85 ui/dialogbase.cpp:131 msgctxt "DialogBase|" msgid "File open error" msgstr "Ongelma tiedoston avaamisessa" # Dialog title text. Dialog prompts user to select the filesystem file that will be published inside classified ads. #: ui/dialogbase.cpp:94 msgctxt "DialogBase|" msgid "Select file to be published" msgstr "Valitse julkaistava tiedosto" # Text for file type filter field in file-selection-dialog #: ui/dialogbase.cpp:96 msgctxt "DialogBase|" msgid "Files (*.*)" msgstr "Kaikki tiedostot (*.*)" # Title text of error dialog. #: ui/editcontact.cpp:72 msgctxt "EditContactDialog|" msgid "Error" msgstr "Vikaa" # Contet text of error dialog. Shown after user has tried to enter operator address with intent of adding it to contact-list and the operator address fails format validation. #: ui/editcontact.cpp:73 msgctxt "EditContactDialog|" msgid "Operator addr is not valid" msgstr "Operaattorin osoite ei ole sopivaa muotoa" # Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the first tab. #: FrontWidget.cpp:93 msgctxt "FrontWidget|" msgid "Classified ads" msgstr "Luokitellut ilmoitukset" # Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the 2nd tab. #: FrontWidget.cpp:94 msgctxt "FrontWidget|" msgid "My profile" msgstr "Oma profiili" # Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the 3rd tab. #: FrontWidget.cpp:95 msgctxt "FrontWidget|" msgid "Contacts" msgstr "Osoitekirja" # Tab text. In "main window" of classified ads UI there a are 4 or 5 tabs, normally "Classified ads"; "My profile", "Contacts", "Private messages" and maybe something else. This is the text of the 4th tab. #: FrontWidget.cpp:96 msgctxt "FrontWidget|" msgid "Private messages" msgstr "Yksityiset viestit" # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, a dialog will appear asking which file to share #: FrontWidget.cpp:155 msgctxt "FrontWidget|" msgid "Add shared file.." msgstr "LisУЄУЄ tiedosto jakoon" # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, the selected file in the listing view will no longer be shared #: FrontWidget.cpp:156 msgctxt "FrontWidget|" msgid "Stop advertising selected shared file" msgstr "Lakkaa mainostamasta valittua jaettua tiedostoa" # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, the selected file in the listing view will be saved to filesystem #: FrontWidget.cpp:157 msgctxt "FrontWidget|" msgid "Save file to disk.." msgstr "Tallenna tiedosto tiedostojУЄrjestelmУЄlle" # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, information dialog about selected file will be shown #: FrontWidget.cpp:158 msgctxt "FrontWidget|" msgid "View file information.." msgstr "Tarkastele tiedoston ominaisuuksia.." # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, SHA digest of the selected file will be copied to clipboard. #: FrontWidget.cpp:159 msgctxt "FrontWidget|" msgid "Copy file address (SHA1) to clipboard.." msgstr "Kopioi tiedoston osoite (SHA1) leikepУЖydУЄlle.." # Context-menu item text. Menu appears when user right-clicks on top of file listing view. When item whose text is specified here is selected from the menu, an editor will be displayed prompting user to enter text that will then be published for other users to see. #: FrontWidget.cpp:160 msgctxt "FrontWidget|" msgid "Edit+publish new text document.." msgstr "Muokkaa ja julkaise uusi tekstidokumentti.." # Dialog title text for "file open" dialog #: FrontWidget.cpp:348 msgctxt "FrontWidget|" msgid "Open File" msgstr "Avaa tiedosto" # Text for filter field of file selection dialog #: FrontWidget.cpp:350 FrontWidget.cpp:880 msgctxt "FrontWidget|" msgid "Files (*.*)" msgstr "Kaikki tiedostot (*.*)" # Error dialog title text. Actual error message will be shown inside dialog whose title is this text. #: FrontWidget.cpp:354 FrontWidget.cpp:1180 FrontWidget.cpp:1322 msgctxt "FrontWidget|" msgid "Error" msgstr "Vikaa.." # Error dialog content text. Shown when image file that user selected could not be opened (maybe because file permission problem or maybe image format issue or ..) #: FrontWidget.cpp:355 msgctxt "FrontWidget|" msgid "Can't load image" msgstr "Kuvan avaaminen ei onnistu" # Error dialog title text. This dialog is shown when user tries to comment another operator but required operator data is missing from local storage. #: FrontWidget.cpp:621 FrontWidget.cpp:761 msgctxt "FrontWidget|" msgid "Profile not in database" msgstr "Profiilia ei tietovarastosta lУЖydy" # Error dialog content text. This dialog is shown when user tries to comment another operator but required operator data is missing from local storage. #: FrontWidget.cpp:622 FrontWidget.cpp:762 msgctxt "FrontWidget|" msgid "Try viewing profile first to obtain data" msgstr "YritУЄ valita profiili katseltavaksi ensin, yritУЄ sitten uudelleen" # File selection title text. Prompts user to select a file for publish purpose. #: FrontWidget.cpp:878 msgctxt "FrontWidget|" msgid "Select file to be published" msgstr "Valitse julkaistava tiedosto" # Error text shown in dialog. Shown in situation where user selected a file that really exceeds size limit (of 2MB) #: FrontWidget.cpp:885 msgctxt "FrontWidget|" msgid "File way too big" msgstr "Tiedosto on aivan liian suuri" # Error text shown in dialog. Shown in situation where user selected a file that slightly exceeds size limit (of 2MB) #: FrontWidget.cpp:893 msgctxt "FrontWidget|" msgid "File too big" msgstr "Tiedosto on liian suuri" # Error text shown in dialog. Shown in situation where user selected a file that could for some reason not be opened #: FrontWidget.cpp:937 FrontWidget.cpp:1181 msgctxt "FrontWidget|" msgid "File open error" msgstr "Ongelma tiedoston avaamisessa" # Part of filter text field in file selection dialog. If for instance user tries to open PNG files, then the text in filter field will be "PNG files (*.png)" and this word is the 2nd word in the phrase. #: FrontWidget.cpp:1162 FrontWidget.cpp:1168 msgctxt "FrontWidget|" msgid "files" msgstr "kaikki tiedostot" # File selection dialog title text. Dialog prompts user to select location+name for an file to be exported into filesystem. #: FrontWidget.cpp:1171 msgctxt "FrontWidget|" msgid "Choose file name for saving" msgstr "Valitse nimi tallennettavalle tiedostolle" # Text shown in placeholder for operators image in situation where user has not yet selected any image. In practice it prompts user to insert image by clicking at the text. #: FrontWidget.cpp:1231 msgctxt "FrontWidget|" msgid "" "\n" "\n" "\n" "Click\n" "To\n" "Add\n" "Image\n" msgstr "" "\n" "\n" "\n" "Klikkaa\n" "LisУЄtУЄksesi\n" "Kuva\n" # Error message dialog content text shown when user tried to access article, that was not stored in local database #: FrontWidget.cpp:1323 msgctxt "FrontWidget|" msgid "Article not found from local storage" msgstr "Artikkelia ei paikallisesta tietokannasta lУЖydy" # Tool-tip text. Shown on top of operators address when user hovers mouse on top of the address field. The %1 will be replaced by nickname of an operator who trusts this particular operator. The %2 will be replaced by SHA1 digest of the operator who trusts the operator whose SHA1 is under mouse cursor. #: FrontWidget.cpp:1349 FrontWidget.cpp:1897 #, qt-format msgctxt "FrontWidget|" msgid "" "Trusted by %1\n" "SHA1 %2" msgstr "" "Johon luottaa %1\n" "SHA1 %2" # Tool tip text. Shown when user howers mouse on top of operators nickname field. In code a date-string will be concatenated to this string, so in practice in the UI it will read "Time of last update 31 aug 2015" or similar. #: FrontWidget.cpp:1386 msgctxt "FrontWidget|" msgid "Time of last update " msgstr "Viimeinen pУЄivitysajankohta" # Text for image placeholder, shown in situation where another operator has not selected any image for her.This text is shown place of the missing image. #: FrontWidget.cpp:1394 msgctxt "FrontWidget|" msgid "" "\n" "\n" "\n" "(No\n" "Image\n" "Selected)\n" msgstr "" "\n" "\n" "\n" "(Ei\n" "Kuvaa\n" "Valittuna)\n" # Context menu item text. Context-menu is related to frequent-contacts column-view. #: FrontWidget.cpp:1488 msgctxt "FrontWidget|" msgid "Edit contact.." msgstr "Muokkaa profiilin tietoja " # Push button text. Pushing the button will open an editor prompting user to edit+send a private message to operator who sent the classified ad currently on display #: FrontWidget.cpp:1528 msgctxt "FrontWidget|" msgid "&Reply to sender" msgstr "Vastaa lУЄhettУЄjУЄlle" # Push button text. Pushing the button will open an editor prompting user to edit+send a reply to classified ad currently on display #: FrontWidget.cpp:1529 msgctxt "FrontWidget|" msgid "Reply to &forum" msgstr "Vastaa foorumille" # Push button text. Pushing the button will open an editor prompting user to edit+send a new classified ad. #: FrontWidget.cpp:1530 msgctxt "FrontWidget|" msgid "&Post new ad" msgstr "Uusi ilmoitus" # Push button text. Pushing the button will open an editor prompting user to edit+send a public comment about operator who sent the classified ad currently on display #: FrontWidget.cpp:1531 msgctxt "FrontWidget|" msgid "&Public comment" msgstr "Uusi kommentti" # Push button text. Pushing the button will switch to view detailing operator who sent the classified ad currently on display #: FrontWidget.cpp:1532 msgctxt "FrontWidget|" msgid "&View profile" msgstr "Katsele profiilia" # Push button text. Pushing the button will open a a listing of files that are attached to classified ad currently on display #: FrontWidget.cpp:1533 FrontWidget.cpp:1671 msgctxt "FrontWidget|" msgid "Attachments.." msgstr "Liitetiedostot.." # Push button text. Pushing the button will open an editor prompting user to add to her contact-list the operator who sent the classified ad currently on display #: FrontWidget.cpp:1593 msgctxt "FrontWidget|" msgid "Add selected operator to contacts.." msgstr "LisУЄУЄ valittu operaattori osoitekirjaan.." # Push button text. Pushing the button will open an editor prompting user to edit+send a private message to operator who sent the private message currently on display #: FrontWidget.cpp:1667 msgctxt "FrontWidget|" msgid "&Reply" msgstr "Vastaa" # Push button text. Pushing the button will open an editor prompting user to edit+send a private message to some operator. #: FrontWidget.cpp:1668 msgctxt "FrontWidget|" msgid "&New message" msgstr "Uusi viesti" # Push button text. Pushing the button will open an editor prompting user to edit+send a public comment about operator who sent the private message currently on display #: FrontWidget.cpp:1669 msgctxt "FrontWidget|" msgid "&Send public comment to sender" msgstr "EsitУЄ julkinen kommentti lУЄhettУЄjУЄstУЄ" # Push button text. Pushing the button will open view that will show details of operator, who sent the private message currently on display. #: FrontWidget.cpp:1670 msgctxt "FrontWidget|" msgid "&View profile of peer" msgstr "NУЄytУЄ viesti-osapuolen profiili" # Context menu item text. Appears in "message listing view" when user right-clicks on messages view. When selected, the operator who sent the message that is selected is added to contacts. #: FrontWidget.cpp:1705 msgctxt "FrontWidget|" msgid "Add selected to contacts.." msgstr "LisУЄУЄ valittu osoitekirjaan" # Text field label. Label tells who sent particular classified ad. #: FrontWidget.cpp:1907 FrontWidget.cpp:1909 FrontWidget.cpp:1973 #: FrontWidget.cpp:1975 msgctxt "FrontWidget|" msgid "From:" msgstr "KeneltУЄ:" # Text field label. Label tells subject of classified ads. #: FrontWidget.cpp:1911 FrontWidget.cpp:1978 msgctxt "FrontWidget|" msgid "Subject:" msgstr "Aihe:" # Text field label. Label tells whom a private message was sent to. #: FrontWidget.cpp:1970 msgctxt "FrontWidget|" msgid "To:" msgstr "Kenelle:" # Error dialog content text. Shown in situation when user clicked on a link that contained SHA1 digest that was not valid. #: FrontWidget.cpp:2282 msgctxt "FrontWidget|" msgid "Invalid SHA1 in URL" msgstr "Viallinen SHA1-tiiviste URLissa" # Error dialog content text. Shown in situation when user clicked on a link that was not correctly formatted. #: FrontWidget.cpp:2309 msgctxt "FrontWidget|" msgid "Invalid URL" msgstr "Viallinen URL" # Error dialog content text. Shown in situation when user entered a link that could not be parsed. #: ui/insertlinkdialog.cpp:69 msgctxt "InsertLinkDialog|" msgid "Invalid URL" msgstr "VУЄУЄrУЄn mallinen URL" # Error dialog content text. Shown in situation when user tried to add connection to node whose name was not found via nameserver. #: ui/manualconnection.cpp:53 msgctxt "ManualConnectionDialog|" msgid "DNS lookup failure" msgstr "NimeУЄ ei lУЖydy nimipalvelusta (DNS)" # Error dialog title text. Actual error message will be shown inside the dialog. #: ui/newprivmsgdialog.cpp:88 ui/newprivmsgdialog.cpp:133 msgctxt "NewPrivMessageDialog|" msgid "Error" msgstr "Vikaa" # Error dialog content text. Dialog is shown when user tries to send a message to operator, whose SHA1 digest (as entered by user) does not parse as SHA1 digest. #: ui/newprivmsgdialog.cpp:89 msgctxt "NewPrivMessageDialog|" msgid "Recipient addr is not valid" msgstr "Vastaanottajan osoite ei ole kelvollinen" # Error dialog content text. Dialog is shown when user tries to send a message to operator, whose encryption keys are present in local storage. #: ui/newprivmsgdialog.cpp:134 msgctxt "NewPrivMessageDialog|" msgid "Recipient encryption key not found from storage" msgstr "Vastaanottajan salausavainta ei paikallisesta tietokannasta lУЖydy" # Error dialog title text. Actual error message will be shown inside the dialog. #: ui/newprofilecommentdialog.cpp:89 ui/newprofilecommentdialog.cpp:126 msgctxt "NewProfileCommentDialog|" msgid "Error" msgstr "Vikaa" # Error dialog content text. Dialog is shown when user tries to comment an operator, whose SHA1 digest (as entered by user) does not parse as SHA1 digest. #: ui/newprofilecommentdialog.cpp:90 msgctxt "NewProfileCommentDialog|" msgid "Commented profile addr is not valid" msgstr "Kommentoidun profiilin osoite ei ole kelvollinen" # Error dialog content text. Dialog is shown when user tries to send a message to operator, whose encryption keys are present in local storage. #: ui/newprofilecommentdialog.cpp:127 msgctxt "NewProfileCommentDialog|" msgid "Recipient encryption key not found from storage" msgstr "Valitun profiilin salausavainta ei paikallisesta tietokannasta lУЖydy" # Error message text. Will be shown in error message dialog in case when initial SSL key generation of node did not succeed. After user dismisses the dialog, the application will close. #: datamodel/nodemodel.cpp:115 msgctxt "NodeModel|" msgid "SSL key generation went wrong, calling exit.." msgstr "SSL-avaimen luonti epУЄonnistui, poistutaan.." # Error message text. Will be shown in error message dialog in case when initial encryption key generation of user did not succeed. After user dismisses the dialog, the application will close. #: datamodel/nodemodel.cpp:123 msgctxt "NodeModel|" msgid "x509 cert generation went wrong, calling exit.." msgstr "x509-sertifikaatin luonti epУЄonnistui, poistutaan.." # Error message text. Will be shown in error message dialog in case when SSL certificate of the node could not be loaded from storage. After user dismisses the dialog, the application will close. #: datamodel/nodemodel.cpp:1594 msgctxt "NodeModel|" msgid "Cant load SSL cert" msgstr "SSL-sertifikaatin lataaminen ei onnistu" # Error message text. Will be shown in error message dialog in case when SSL key of the node could not be retrieved from local storage. After user dismisses the dialog, the application will close. #: datamodel/nodemodel.cpp:1624 msgctxt "NodeModel|" msgid "Cant load SSL key" msgstr "SSL-avaimen lataaminen ei onnistu" # Error message text. Shown in dialog when user tries to enter a password that is too short. #: ui/passwd_dialog.cpp:104 msgctxt "PasswdDialog|" msgid "Min length 5 (use 10+)" msgstr "VУЄhimmУЄispituus on 5 (kУЄytУЄ silti ainakin 10)" # Password dialog title text. #: ui/passwordDialog.ui:14 msgctxt "PasswordDialog|" msgid "Password required" msgstr "Salasana on pakollinen" # Tooltip text for password dialog. Shown when user hovers on top of password dialog. #: ui/passwordDialog.ui:17 msgctxt "PasswordDialog|" msgid "" "Should you forget this word, there is no easy way to recover any of your " "content" msgstr "" "Unohdapa tУЄmУЄ salasana ja viestiesi lukemiseen vain ei ole olemassa mitУЄУЄn " "helppoa menetelmУЄУЄ" # Prompt text for password dialog. #: ui/passwordDialog.ui:29 msgctxt "PasswordDialog|" msgid "Enter password for protection of your messages" msgstr "Valitse salasana viestiesi turvaamiseksi" # Tooltip text for password dialog. Shown when user hovers on top of password field #: ui/passwordDialog.ui:42 msgctxt "PasswordDialog|" msgid "" "If you forget this word, there is no simple way to recover your contents" msgstr "" "Jos unohdat tУЄmУЄn sanan, viestiesi lukemiseksi ei ole olemassa mitУЄУЄn " "helppoa menetelmУЄУЄ" # Password dialog button text #: ui/passwordDialog.ui:55 msgctxt "PasswordDialog|" msgid "OK" msgstr "OK" # Tooltip text. Shown when user hovers mouse cursor on top of message sender name. First %1 will be replaced with nickname of the operator whose message is hovered, %2 will be replaced by nickname of operator who has expressed positive trust towards the operator who sent the message. #: datamodel/privmsgsearchmodel.cpp:110 #, qt-format msgctxt "PrivateMessageSearchModel|" msgid "" "%1\n" "Trusted by %2" msgstr "" "%1\n" "johon luottaa %2" # Tooltip text. Used in column view that lists private messages of operator. Explains the field that gives title to column that specifies direction (sent or received) of the message. #: datamodel/privmsgsearchmodel.cpp:237 msgctxt "PrivateMessageSearchModel|" msgid "Direction of message, sent/received" msgstr "Viestin suunta, lУЄhetetty/vastaanotettu" # Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies direction (sent/received) of the message. #: datamodel/privmsgsearchmodel.cpp:247 msgctxt "PrivateMessageSearchModel|" msgid "Dir" msgstr "Suunta" # Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies messaging peer (another operator) of the message. #: datamodel/privmsgsearchmodel.cpp:250 msgctxt "PrivateMessageSearchModel|" msgid "Peer" msgstr "Osapuoli" # Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies time of the message. #: datamodel/privmsgsearchmodel.cpp:253 msgctxt "PrivateMessageSearchModel|" msgid "Time" msgstr "Aika" # Column title text. Used in column view that lists private messages of operator. This field gives title to column that specifies subject of the message. #: datamodel/privmsgsearchmodel.cpp:256 msgctxt "PrivateMessageSearchModel|" msgid "Subject" msgstr "Aihe" # Push button text. Clicking the button will open a dialog prompting user to add a new comment #: ui/profilecommentdisplay.cpp:54 msgctxt "ProfileCommentDisplay|" msgid "&Add comment..." msgstr "LisУЄУЄ kommentti" # Context menu item text. Context menu is shown when user right-clicks on file listing view. When this item is selected, a file selection dialog is opened. #: ui/profilecommentdisplay.cpp:65 msgctxt "ProfileCommentDisplay|" msgid "Save attachment to disk.." msgstr "Tallenna liite tiedostojУЄrjestelmУЄlle.." # Error dialog title text #: ui/profilecommentdisplay.cpp:90 msgctxt "ProfileCommentDisplay|" msgid "Error" msgstr "Vikaa" # Error dialog content text. Shown after user tried to access a profile comment and the comment could not be found #: ui/profilecommentdisplay.cpp:91 msgctxt "ProfileCommentDisplay|" msgid "Article not found from local storage" msgstr "Kommenttia ei paikallisesta tietokannasta lУЖydy" # Text field label text. The text field whose label this is will show number how many attachements there are in the comment. #: ui/profilecommentitemdelegate.cpp:91 msgctxt "ProfileCommentItemDelegate|" msgid "Attachments: " msgstr "Liitteet: " # Column view column title text. The column view in question lists profile comments. This text gives title to column that tells who sent the comment. #: datamodel/profilecommentlistingmodel.cpp:219 msgctxt "ProfileCommentListingModel|" msgid "Sender" msgstr "LУЄhettУЄjУЄ" # Column view column title text. The column view in question lists profile comments. This text gives title to column that tells when comment was sent. #: datamodel/profilecommentlistingmodel.cpp:222 msgctxt "ProfileCommentListingModel|" msgid "Time" msgstr "Aika" # Column view column title text. The column view in question lists profile comments. This text gives title to column that tells subject of the comment. #: datamodel/profilecommentlistingmodel.cpp:225 msgctxt "ProfileCommentListingModel|" msgid "Subject" msgstr "Aihe" # Error message text. Shown inside a dialog after user tried to send a comment to operator who had sent a comment and it turns out that necessary encryption keys of the commenting operator are not found and the replying comment can't be sent. #: datamodel/profilecommentmodel.cpp:67 msgctxt "ProfileCommentModel|" msgid "Profile related to comment not found from database" msgstr "" "Kommenttiin liittyvУЄn profiilin tietoja ei paikallisesta tietokannasta lУЖydy" # Context menu item text. This context-menu is shown when user right-clicks list of operators that is shown in dialog that is made for listing operators (who are readers of another profile) #: ui/profilereadersdialog.cpp:73 msgctxt "ProfileReadersDialog|" msgid "View profile" msgstr "Tarkastele profiilia" # Column view column title text. The column view lists readers (operators) of another profile. #: datamodel/profilereaderslistingmodel.cpp:174 msgctxt "ProfileReadersListingModel|" msgid "Name or fingerprint of reader" msgstr "Lukijan nimi tai SHA1-tiiviste" # Context menu item text. This context menu is shown when user right-clicks on top of search-results. This menu-item opens the currently-selected item from search results. #: ui/searchdisplay.cpp:62 msgctxt "SearchDisplay|" msgid "Open.." msgstr "Avaa.." # Menu title text. This is the help menu. #: textedit/textedit.cpp:127 msgctxt "TextEdit|" msgid "Help" msgstr "Apua" # Menu-item text used in "help" menu. Selecting this item opens "about" dialog about Qt library. #: textedit/textedit.cpp:129 msgctxt "TextEdit|" msgid "About &Qt" msgstr "Tietoja Qt:stУЄ" # Window title text for container-window containing actions. It seems to me that this text actually does not appear anywhere in the UI due to way, how container-windows are used. #: textedit/textedit.cpp:186 msgctxt "TextEdit|" msgid "Edit Actions" msgstr "Muokkaa toimintoja" # Menu text. This gives text to "file" menu of a text editor. #: textedit/textedit.cpp:188 msgctxt "TextEdit|" msgid "&File" msgstr "Tiedosto" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "open a filesystem file" #: textedit/textedit.cpp:194 msgctxt "TextEdit|" msgid "&Open..." msgstr "Avaa.." # Menu item text inside menu in text editor. When selected, the text being edited will be saved into local filesystem file. #: textedit/textedit.cpp:203 msgctxt "TextEdit|" msgid "&Save locally before send" msgstr "Tallenna paikallisesti ennen lУЄhettУЄmistУЄ" # Menu item text inside menu in text editor. When selected, the text being edited will be saved into local filesystem file and user will be queried for file name. #: textedit/textedit.cpp:210 msgctxt "TextEdit|" msgid "Save locally &As..." msgstr "Tallenna paikallisesti nimellУЄ.." # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "print" #: textedit/textedit.cpp:218 msgctxt "TextEdit|" msgid "&Print..." msgstr "Tulosta.." # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "open print preview" #: textedit/textedit.cpp:226 msgctxt "TextEdit|" msgid "Print Preview..." msgstr "Tulostuksen esikatselu.." # Menu-item text. Used in file-menu for triggering "export as pdf" operation #: textedit/textedit.cpp:231 msgctxt "TextEdit|" msgid "&Export PDF..." msgstr "Vie PDF-muodossa.." # Menu text for "edit" menu of text editor. #: textedit/textedit.cpp:244 msgctxt "TextEdit|" msgid "&Edit" msgstr "Muokkaa" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "undo" #: textedit/textedit.cpp:249 msgctxt "TextEdit|" msgid "&Undo" msgstr "Peru" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "re-do" #: textedit/textedit.cpp:254 msgctxt "TextEdit|" msgid "&Redo" msgstr "Tee uudelleen" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "cut" (to clipboard) #: textedit/textedit.cpp:261 msgctxt "TextEdit|" msgid "Cu&t" msgstr "Leikkaa" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "copy to clipboard" #: textedit/textedit.cpp:267 msgctxt "TextEdit|" msgid "&Copy" msgstr "Kopioi" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "paste from clipboard" #: textedit/textedit.cpp:273 msgctxt "TextEdit|" msgid "&Paste" msgstr "LiitУЄ" # Menu item text inside text editor "edit" menu. After this menu-item is selected, a dialog is opened, prompting user to enter a link (URL) to be included in the text. #: textedit/textedit.cpp:283 msgctxt "TextEdit|" msgid "Insert link" msgstr "LisУЄУЄ viite" # Menu-item text for embedding an image #: textedit/textedit.cpp:287 msgctxt "TextEdit|" msgid "Embed image" msgstr "SisУЄllytУЄ kuva" # Menu text. Gives name for a "format" menu inside a text editor. #: textedit/textedit.cpp:294 msgctxt "TextEdit|" msgid "F&ormat" msgstr "Muotoile" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle bold text style" #: textedit/textedit.cpp:298 msgctxt "TextEdit|" msgid "&Bold" msgstr "Lihavoitu" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle italic text" #: textedit/textedit.cpp:310 msgctxt "TextEdit|" msgid "&Italic" msgstr "Kursivoitu" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle underline" #: textedit/textedit.cpp:322 msgctxt "TextEdit|" msgid "&Underline" msgstr "Alleviivattu" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "left-justify" #: textedit/textedit.cpp:341 textedit/textedit.cpp:347 msgctxt "TextEdit|" msgid "&Left" msgstr "Tasattu vasemmalle" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "toggle centered text" #: textedit/textedit.cpp:342 textedit/textedit.cpp:346 msgctxt "TextEdit|" msgid "C&enter" msgstr "Keskitetty" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "right-justify" #: textedit/textedit.cpp:343 textedit/textedit.cpp:345 msgctxt "TextEdit|" msgid "&Right" msgstr "Tasattu oikealle" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "justify both right+left" #: textedit/textedit.cpp:349 msgctxt "TextEdit|" msgid "&Justify" msgstr "Tasattu molempiin laitoihin" # Text editor action text. This text will appear both as menu-item text and as tool-tip text of a button that has icon. The action performed under this title is "color selection" #: textedit/textedit.cpp:376 msgctxt "TextEdit|" msgid "&Color..." msgstr "VУЄri.." # Combobox item text. The combobox is used to select text style. The text style selected with this text is "standard" #: textedit/textedit.cpp:383 msgctxt "TextEdit|" msgid "Standard" msgstr "Normaalimuoto" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "bullet list (disc)" #: textedit/textedit.cpp:384 msgctxt "TextEdit|" msgid "Bullet List (Disc)" msgstr "Pisteellinen lista (palloilla)" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "bullet list (circle)" #: textedit/textedit.cpp:385 msgctxt "TextEdit|" msgid "Bullet List (Circle)" msgstr "Pisteellinen lista (ympyrУЖillУЄ)" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "bullet list (square)" #: textedit/textedit.cpp:386 msgctxt "TextEdit|" msgid "Bullet List (Square)" msgstr "Pisteellinen lista (laatikoilla)" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (decimal)" #: textedit/textedit.cpp:387 msgctxt "TextEdit|" msgid "Ordered List (Decimal)" msgstr "Numeroitu lista (desimaaliluvuin)" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (alpha lower)" #: textedit/textedit.cpp:388 msgctxt "TextEdit|" msgid "Ordered List (Alpha lower)" msgstr "Numeroitu lista (pienin kirjaimin)" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (alpha upper)" #: textedit/textedit.cpp:389 msgctxt "TextEdit|" msgid "Ordered List (Alpha upper)" msgstr "Numeroitu lista (suurin kirjaimin)" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (roman lower)" #: textedit/textedit.cpp:390 msgctxt "TextEdit|" msgid "Ordered List (Roman lower)" msgstr "Numeroitu lista (pienin roomalaisin)" # Combobox item text. The combobox is used to select text style. The text style selected with this text is "ordered list (roman upper)" #: textedit/textedit.cpp:391 msgctxt "TextEdit|" msgid "Ordered List (Roman upper)" msgstr "Numeroitu lista (suurilla roomalaisilla)" # Warning dialog title text. This dialog is shown if user tries to exit without saving her text. #: textedit/textedit.cpp:442 msgctxt "TextEdit|" msgid "Application" msgstr "Tekstimuokkain" # Warning dialog title content text. Text asks what to do with modifications. The dialog has buttons Save,Discard and Cancel and this text is the question. #: textedit/textedit.cpp:443 msgctxt "TextEdit|" msgid "" "The document has been modified.\n" "Do you want to save your changes?" msgstr "Tiedostoa on muutettu, haluatko tallettaa muutokset?" # File selection dialog title text. Dialog will prompt user to select a document for opening. #: textedit/textedit.cpp:467 msgctxt "TextEdit|" msgid "Open File..." msgstr "Avaa tiedosto.." # Text for file selection filter field to be used inside file selection dialog. There are 2 parts, separated by ";;" and those semicolons must be left in place. Also the filter parts like (*.htm) must not be edited. The explanations like "HTML-Files" may be edited. #: textedit/textedit.cpp:468 msgctxt "TextEdit|" msgid "HTML-Files (*.htm *.html);;All Files (*)" msgstr "HTML-Tiedostot (*.htm *.html);;Kaikki tiedostot (*)" # File selection dialog title text. Dialog in question prompts user to select name for file to be persisted. #: textedit/textedit.cpp:485 msgctxt "TextEdit|" msgid "Save as..." msgstr "Tallenna nimellУЄ.." # Text for file selection filter field to be used inside file selection dialog. There are 3 parts, separated by ";;" and those semicolons must be left in place. Also the filter parts like (*.odt) must not be edited. The explanations like "ODF-files" may be edited. #: textedit/textedit.cpp:486 msgctxt "TextEdit|" msgid "ODF files (*.odt);;HTML-Files (*.htm *.html);;All Files (*)" msgstr "" "ODF Tiedostot (*.odt);;HTML-Tiedostot (*.htm *.html);;Kaikki tiedostot (*)" # Dialog title text. The dialog is printer dialog asking user how to print the text currently in editor. #: textedit/textedit.cpp:501 msgctxt "TextEdit|" msgid "Print Document" msgstr "Tulosta dokumentti" # File selection dialog title text. Dialog will prompt user to select a document for opening. #: textedit/textedit.cpp:559 msgctxt "TextEdit|" msgid "Open File" msgstr "Avaa tiedosto" # Text for file selection filter field to be used inside file selection dialog. The filter parts like (*.odt) must not be edited. The explanations like "Files" may be edited. #: textedit/textedit.cpp:561 msgctxt "TextEdit|" msgid "Files (*.*)" msgstr "Kaikki tiedostot (*.*)" # Error dialog title text. #: textedit/textedit.cpp:566 msgctxt "TextEdit|" msgid "Error" msgstr "Tapahtui virhe" # Error dialog content text. #: textedit/textedit.cpp:567 msgctxt "TextEdit|" msgid "Can't load image" msgstr "Kuvan avaaminen ei onnistu" # Error message displayed inside error dialog after user tried to select for operation a file whose size greatly exceeds file size limit. #: textedit/textedit.cpp:621 textedit/textedit.cpp:631 msgctxt "TextEdit|" msgid "File way too big" msgstr "Tiedosto on aivan liian suuri" # Dialog title text for "about" dialog. #: ui/aboutDialog.ui:26 msgctxt "aboutDialog|" msgid "About classified ads" msgstr "Tietoja luokitelluista ilmoituksista" # 1st line of text inside "about" dialog, placed next to the turle logo. This text is then followed by longer explanation detail why this program is and how. This is kind of title for the longer explanation. #: ui/aboutDialog.ui:100 msgctxt "aboutDialog|" msgid " Classified ads is a program for online communications" msgstr "Luokitellut ilmoitukset on viestintУЄУЄn tarkoitettu tietokoneohjelma" # The long explanation of classified ads inside about-dialog. Note that this text must be valid html. Needs to start with and end with etc. This is easiest to edit like this: copy-paste the content in to a file, say /tmp/about.html. Then either open your favourite html-editor or open classified ads. In classified ads you can start constructing an ad, select from file-menu "open.." and select this file ;do editing and save from file-menu. The saved file is immediately in correct format to be be copy-pasted into contents of this field. #: ui/aboutDialog.ui:160 #| msgid "" #| "

Classified ads is free software. You may use, copy " #| "and modify it if you follow the conditions given in GNU lesser general " #| "public license version 2.1.

Classified ads is copyright ТЉ Antti " #| "JУЄrvinen 2013.

Main feature of the the program is an " #| ""advertisement" - a piece of text belonging to selected " #| "classification. There are several pre-programmed classifications and " #| "operators are encouraged to invent new classifications for new purposes ; " #| "the selection boxes in classification-selection tab are editable. Other " #| "operators may then view the ads, publicly comment the ads, the operators " #| "and also send private messages to each others.

Another important " #| "feature of classified ads is that it is designed to be operated without " #| "any centralized server infrastucture - it is you and other operators " #| "whose computers store and transmit all the content visible inside " #| "classified ads. To get connected you need to know address of at least one " #| "existing computer (a node) so " #| "if your network connection dialog shows no connections, you may need to " #| "contact someone you know is using the software and ask for address of her " #| "node to make initial contact with the network. Once connected the " #| "software should maintain list of addresses of other nodes.

Due to " #| "its server-less design the whole system works best if you leave the " #| "program running always when you have your computer powered on ; while " #| "processing other operators requests it will hog some computing resources " #| "and generate network traffic also when you are not actively using the " #| "program youself - others are.

Operators concerned about privacy of " #| "the content should be aware of following items:

- Data storage " #| "implementation is variant of distributed hash table, practically meaning " #| "that content posted by you gets copied some more-or-less random nodes in " #| "the network.

- Any data item (ad, comment, binary file, private " #| "message etc.) is digitally signed. This makes it more difficult to try to " #| "pose as another operator.

- Operators are reliably identified only " #| "by the SHA1 hash of their generated encryption keys. SHA1 hash is " #| "displayed when viewing details of operator profiles. Other identifying " #| "information like nickname or city name are entered by operator himself " #| "and can be anything. The operator profile, as it is published to the " #| "network, is also signed with the encryption keys of the operator - if you " #| "identify an operator by her SHA1 hash, you have a mechanism for " #| "identifying if any content inside classified ads is posted by this " #| "operator or not. Classified ads internally checks for digital signatures, " #| "throwing away content that fails signature check and tries to provide " #| "SHA1 hash of the operator who posted the content.

- All classified " #| "ads are posted as plain text, no encryption is used. All public profiles " #| "are posted as plain text, no encryption is used. If profile is made " #| "private, it is encrypted to be readable only by selected other profiles. " #| "This applies also to binary files shared by operators private profiles " #| "and comments about private profiles after the profile was made private " #| "(previously plain-text comments or files don't get magically encrypted " #| "afterwards). Private messages are encrypted always to be readable only by " #| "recipient and sender. Attachments follow the privary rules of the " #| "document, they're attachted to.

- As is the case with all " #| "internet-communications, this small fact is true for classified ads too : " #| "once something gets posted online, " #| "there is no way to remove it from network.

- Data " #| "encryption implementation for content is OpenSSL, relying mostly on " #| "algorithms RSA-2048 and AES-256.

- While connections between nodes " #| "are implemented using SSL, other nodes inside network do get to know what " #| "content is being transmitted in neighboring nodes. While there is no " #| "central point for easily collecting this information about particular " #| "classification or operator, operators still should expect no privacy " #| "regarding their doings online, altough some effort has been been put into " #| "hiding contents of private " #| "messages and private profiles.

Programming was (mostly) done by " #| "Antti JУЄrvinen, artwork by Meeri JУЄrvinen.

This product includes " #| "software developed by the OpenSSL Project for use in the OpenSSL Toolkit " #| "(http://www.openssl.org/).

Happy " #| "advertising!


" msgctxt "aboutDialog|" msgid "" "

Classified ads is free software. You may use, copy and " "modify it if you follow the conditions given in GNU lesser general public " "license version 2.1.

Classified ads is copyright ТЉ Antti JУЄrvinen " "2013.

Main feature of the the program is an "advertisement" " "- a piece of text belonging to selected classification. There are several " "pre-programmed classifications and operators are encouraged to invent new " "classifications for new purposes ; the selection boxes in " "classification-selection tab are editable. Other operators may then view the " "ads, publicly comment the ads, the operators and also send private messages " "to each others.

Another important feature of classified ads is that " "it is designed to be operated without any centralized server infrastucture - " "it is you and other operators whose computers store and transmit all the " "content visible inside classified ads. To get connected you need to know " "address of at least one existing computer (a node) so if your network connection dialog shows " "no connections, you may need to contact someone you know is using the " "software and ask for address of her node to make initial contact with the " "network. Once connected the software should maintain list of addresses of " "other nodes.

Due to its server-less design the whole system works " "best if you leave the program running always when you have your computer " "powered on ; while processing other operators requests it will hog some " "computing resources and generate network traffic also when you are not " "actively using the program youself - others are.

Operators concerned " "about privacy of the content should be aware of following items:

- " "Data storage implementation is variant of distributed hash table, practically meaning that " "content posted by you gets copied some more-or-less random nodes in the " "network.

- Any data item (ad, comment, binary file, private message " "etc.) is digitally signed. This makes it more difficult to try to pose as " "another operator.

- Operators are reliably identified only by the " "SHA1 hash of their generated encryption keys. SHA1 hash is displayed when " "viewing details of operator profiles. Other identifying information like " "nickname or city name are entered by operator himself and can be anything. " "The operator profile, as it is published to the network, is also signed with " "the encryption keys of the operator - if you identify an operator by her " "SHA1 hash, you have a mechanism for identifying if any content inside " "classified ads is posted by this operator or not. Classified ads internally " "checks for digital signatures, throwing away content that fails signature " "check and tries to provide SHA1 hash of the operator who posted the " "content.

- All classified ads are posted as plain text, no encryption " "is used. All public profiles are posted as plain text, no encryption is " "used. If profile is made private, it is encrypted to be readable only by " "selected other profiles. This applies also to binary files shared by " "operators private profiles and comments about private profiles after the " "profile was made private (previously plain-text comments or files don't get " "magically encrypted afterwards). Private messages are encrypted always to be " "readable only by recipient and sender. Attachments follow the privary rules " "of the document, they're attachted to.

- As is the case with all " "internet-communications, this small fact is true for classified ads too : " "once something gets posted online, there " "is no way to remove it from network.

- Data encryption " "implementation for content is OpenSSL, relying mostly on algorithms RSA-2048 " "and AES-256.

- While connections between nodes are implemented using " "SSL, other nodes inside network do get to know what content is being " "transmitted in neighboring nodes. While there is no central point for easily " "collecting this information about particular classification or operator, " "operators still should expect no privacy regarding their doings online, " "although some effort has been been put into hiding contents of private messages and private " "profiles.

Programming was (mostly) done by Antti JУЄrvinen, artwork by " "Meeri JУЄrvinen.

This product includes software developed by the " "OpenSSL Project for use in the OpenSSL Toolkit " "(http://www.openssl.org/).

Happy " "advertising!


" msgstr "" "\n" "

Luokitellut " "ilmoitukset on vapaasti kУЄytettУЄvУЄ ohjelmisto. Voi kУЄyttУЄУЄ, kopioida ja " "muokata sitУЄ noudattaen LGPL-lisenssin (GNU Lesser General Public License " "2.1) ehtoja.

\n" "


\n" "

TУЄmУЄn ohjelman " "kopiointioikeudet omistaa Antti JУЄrvinen, vuodesta 2013.

\n" "


\n" "

Ohjelman keskeinen " "ominaisuus on "ilmoitus" - teksti, joka kuuluu johonkin " "luokitteluun. Ohjelma sisУЄltУЄУЄ joukon valmiita luokitteluita ja kУЄyttУЄjiУЄ " "rohkaistaan keksimУЄУЄn uusia ; luokittelu-valintoihin " ""ilmoitukset"-vУЄlilehdellУЄ voi kirjoittaa mitУЄ hyvУЄnsУЄ. Muut " "kУЄyttУЄjУЄt voivat katsella ilmoituksia, julkisesti kommentoida ilmoituksia ja " "lУЄhettУЄУЄ viestejУЄ toisilleen.

\n" "


\n" "

Ohjelman toinen " "keskeinen ominaisuus on, ettei se kУЄytУЄ keskitettyУЄ tietovarastoa millУЄУЄn " "verkkopalvelimella - yksittУЄisten kУЄyttУЄjien tietokoneet, joilta ohjelmistoa " "kУЄytetУЄУЄn tallettavat ja vУЄlittУЄvУЄt kaiken ohjelman sisУЄllУЄ esitettУЄvУЄn " "sisУЄllУЖn. LiittyУЄksesi tУЄhУЄn verkkoon sinun on tiedettУЄvУЄ ainakin yhden " "sellaisen tietokoneen (solmun) verkko-osoite, jossa jo valmiiksi kУЄytetУЄУЄn " "luokiteltuja ilmoituksia. MikУЄli tilanne on sellainen, ettУЄ "verkon " "tila" -dialogi nУЄyttУЄУЄ 0 avointa yhteyttУЄ, sinun on kysyttУЄvУЄ joltain " "ystУЄvУЄltУЄsi hУЄnen solmunsa verkko-osoite ja syУЖtettУЄvУЄ se ohjelmaan " "saadaksesi yhteyden luokiteltujen ilmoitusten verkkoon. Kun ohjelma on " "kerran liitetty verkkoon, se pyrkii itse yllУЄpitУЄmУЄУЄn listan verkon muista " "koneista.

\n" "


\n" "

Johtuen " "suunnitelusta, johon verkkopalvelimet eivУЄt kuulu tУЄmУЄ jУЄrjestelmУЄ toimii " "parhaiten, jos jУЄtУЄt tУЄmУЄn ohjelman pУЄУЄlle myУЖs silloin, kun et itse " "aktiivisesti kУЄytУЄ jУЄrjestelmУЄУЄ. Ohjelma vie jonkin verran " "tietojenkУЄsittelykapasiteettia koneeltasi ja aiheuttaa verkkoliikennettУЄ " "myУЖs silloin kun et itse ohjelmaa kУЄytУЄ - mutta muut kУЄyttУЄjУЄt kУЄyttУЄvУЄt. " "

\n" "


\n" "

YksityisyydestУЄУЄn " "huolestuneet kУЄyttУЄjУЄt huomatkoot seuraavat seikat:

\n" "

- Tietovarasto on " "toteutettu hajautettuna tiivistetaulukkona (distributed hash table DHT), " "mikУЄ kУЄytУЄnnУЖssУЄ tarkoittaa ettУЄ verkkoon postitetut ilmoitukset ja muu " "sisУЄltУЖ pУЄУЄtyvУЄt enemmУЄn tai vУЄhemmУЄn satunnaisille verkon solmuille " "sУЄilytettУЄvУЄksi, DHT-algoritmin mukaisesti.

\n" "

- Kaikki verkon " "tallettamat tietoalkiot (ilmoitukset, kommentit, tiedostot, yksityiset " "viestit jne.) ovat digitaalisesti allekirjoitettuja. TУЄstУЄ syystУЄ on " "hankalaa pyrkiУЄ esiintymУЄУЄn eri operaattorina kuin oikeasti on.

\n" "

- Operaattorin " "ainoa luotettava tunniste on hУЄnen salausavaimensa SHA1-tiiviste. " "SHA1-tiiviste on nУЄhtУЄvillУЄ operaattorin tiedot esittУЄvУЄllУЄ vУЄlilehdellУЄ. " "Muut tiedot kuten liikanimi tai kaupungin nimi ovat operaattorin " "syУЖtettУЄvissУЄ ja luonnollisesti voivat olla ihan mitУЄ tahansa. Operaattorin " "profiilin tiedot verkkoon julkaistuna ovat myУЖs allekirjoitetut, kУЄyttУЄen " "operaattorin salausavainta - mikУЄli haluat kohtuullisella luotettavuudella " "tietУЄУЄ onko joku verkon sisУЄltУЖ tietyn operaattorin julkaisemaa vai ei, tУЄmУЄ " "tapahtuu tarkastamalla lУЄhettУЄjУЄn SHA1-tiiviste. Luokitellut ilmoitukset " "tarkastaa saapuvien tietoalkioiden allekirjoitukset ja jУЄttУЄУЄ tallettamatta " "sisУЄllУЖt, joiden allekirjoitus ei vastaa sisУЄltУЖУЄ.

\n" "

- Kaikki " "luokitellut ilmoitukset julkaistaan ilman salausta ja ovat kaikkien " "luettavissa. Kaikki julkiset profiilit julkaistaan ilman salausta, ja ovat " "kaikkien luettavissa. MikУЄli profiili merkitУЄУЄn yksityiseksi, se salataan " "siten, ettУЄ lueteltujen operaattoreiden salausavainta kУЄyttУЄen profiilin " "tiedot ovat luettavissa. TУЄmУЄ pУЄtee myУЖs profiiliin liittyviin kommentteihin " "ja jaettuihin tiedostoihin. Muutos ei ole takautuva, eli jos profiili on " "aiemmin ollut julkinen, sen kommentit ja tiedostot eivУЄt automaattisesti " "muutu salatuiksi kun profiili muutetaan yksityiseksi. Yksityiset viestit " "kuljetetaan aina salattuna. Liitetiedostot noudattavat sen dokumentin " "yksityisyyssУЄУЄntУЖjУЄ, mihin ne on liitetty.

\n" "

- Kuten kaiken " "internet-viestinnУЄn kanssa tosi on, myУЖs tУЄmУЄ pУЄtee: jos jotain sisУЄltУЖУЄ " "verkkoon lУЄhetetУЄУЄn, ei ole olemassa " "keinoa pysyvУЄsti sitУЄ poistaa.

\n" "

- Salaustoteutus on " "OpenSSL, useimmin kУЄytetyt algoritmit ovat RSA-2048 ja AES-256.

\n" "

- Solmujen vУЄlinen " "liikenne kulkee SSL-socketissa eli tietoliikenteen seuraaminen verkon " "ulkopuolelta on haastavaa. VierekkУЄiset solmut kuitenkin nУЄkevУЄt toistensa " "tietoliikenteenteen sisУЄllУЖn. Vaikka tietoliikenteen sisУЄltУЖjen kerУЄУЄmiseen " "ei ole helppoa yksittУЄistУЄ paikkaa, operaattorien on silti turha odottaa " "yksityisyyttУЄ koskien tekemisiУЄУЄn verkossa vaikka jonkin verran vaivaa " "yksityisten viestien sisУЄltУЖjen " "suojaamiseksi onkin nУЄhty.

\n" "


\n" "

OhjelmointityУЖn on " "enimmУЄkseen tehnyt Antti JУЄrvinen, taideteokset Meeri JУЄrvinen.

\n" "


\n" "

TУЄmУЄ tuote sisУЄltУЄУЄ " "OpenSSL-projektin kehittУЄmУЄn ohjelmiston, joka on alunperin tarkoitettu " "OpenSSL Toolkit-ohjelmistoa varten (http://www.openssl.org).

\n" "


\n" "

Riemullista " "ilmoittelua!

\n" "


" # Dialog title text. Dialog in question produces list of file attachments. #: ui/attachmentListDialog.ui:26 msgctxt "attachmentListDialog|" msgid "List of attached files" msgstr "Liitetiedostoluettelo" # Dialog title text. Purpose of the dialog is to let user change properties of a frequent contact in contact-list. #: ui/editContact.ui:26 msgctxt "editContactDialog|" msgid "Edit a contact" msgstr "Muokkaa profiilin tietoja" # Text field label in contact-editing dialog. This gives label for field that shows SHA1 fingerprint of the operator whose data is being edited #: ui/editContact.ui:39 msgctxt "editContactDialog|" msgid "Address (SHA1) of contact" msgstr "Profiilin osoitteen SHA1 tiiviste" # Text field label in contact-editing dialog. This gives label for field that shows nickname of the operator whose data is being edited #: ui/editContact.ui:53 msgctxt "editContactDialog|" msgid "Local nickname" msgstr "Paikallinen liikanimi" # Tooltip text of a checkbox label in contact-editing dialog. The checkbox is one that controls statement of trustworthniness of the operator whose data is being edited. Note html format. #: ui/editContact.ui:65 msgctxt "editContactDialog|" msgid "" "

Settings some trusted is public information to readers " "of your profile

" msgstr "" "

Luottamuksen osoitus on profiilisi mukana julkaistava " "tieto, jonka profiilisi lukijat nУЄkevУЄt

" # Label of a checkbox in contact-editing dialog. The checkbox is one that controls statement of trustworthniness of the operator whose data is being edited. #: ui/editContact.ui:68 msgctxt "editContactDialog|" msgid "This contact is to be publicly trusted in transactions" msgstr "TУЄmУЄn profiilin operaattoriin kelpaa julkisesti luottaa" # Name of front widget. Wild guess is that this text actually does not appear anywhere in the UI. #: frontWidget.ui:14 msgctxt "frontWidget|" msgid "Form" msgstr "Etusivun lomake" # Tab title text in front widget. When user clicks in this tab, the view is switched to one, that lists classified ads. #: frontWidget.ui:39 msgctxt "frontWidget|" msgid "Classified ads" msgstr "Luokitellut ilmoitukset" # Prompt text next "search" button. User is supposed to enter search criteria for classified ads and then click "search" ; this is prompt text for this behaviour. #: frontWidget.ui:67 msgctxt "frontWidget|" msgid "Search for classified ads about" msgstr "Etsi luokiteltuja ilmoituksia aiheesta" # Prompt text very next to "search" button. After user has clicked the button, he is supposed to be viewing list of classified ads matching the search criteria. #: frontWidget.ui:74 msgctxt "frontWidget|" msgid "Perform" msgstr "Suorita" # This part of search-criteria phrase. Normally the phrase reads something like "Buying of cars in finland" and this word is the 2nd word in that phrase. #: frontWidget.ui:97 msgctxt "frontWidget|" msgid "of" msgstr "koskien" # This part of search-criteria phrase. Normally the phrase reads something like "Buying of cars in finland" and this word is the 4th word in that phrase. #: frontWidget.ui:113 msgctxt "frontWidget|" msgid "in" msgstr "paikassa" # Button text for button used to search for classified ads. This button has text "perform" just next to it so user sees actually 2 words "perform search" where the "perform" is in separate label above the button, and then is the text of this button. #: frontWidget.ui:123 msgctxt "frontWidget|" msgid "Search" msgstr "Haku" # Tab title text in front widget for tab that shows details of operators own profile (==personal details) #: frontWidget.ui:161 msgctxt "frontWidget|" msgid "My profile" msgstr "Oma profiili" # Text field label in "operators profile" tab. The field in questions shows SHA1-digest e.g. the real address of the operator. #: frontWidget.ui:177 frontWidget.ui:932 msgctxt "frontWidget|" msgid "Profile address" msgstr "Profiilin osoite" # Text field label in "operators profile" tab. The field in questions shows nickname of the operator #: frontWidget.ui:208 frontWidget.ui:643 msgctxt "frontWidget|" msgid "Nickname" msgstr "Liikanimi" # Text field label in "operators profile" tab. The field in questions shows "hello world" text of the operator. #: frontWidget.ui:225 frontWidget.ui:669 msgctxt "frontWidget|" msgid "Greeting text" msgstr "Tervehdysteksti" # Tooltip-text of a text field in "operators profile" tab. The field in questions shows greeting text of the operator. #: frontWidget.ui:232 msgctxt "frontWidget|" msgid "For the rest of the world. " msgstr "Koko maailmalle." # Text field label in "operators profile" tab. The field in questions shows given name (first name) of the operator. #: frontWidget.ui:239 frontWidget.ui:695 msgctxt "frontWidget|" msgid "First name" msgstr "Etunimi" # Text field label in "operators profile" tab. The field in questions shows family name of the operator #: frontWidget.ui:253 frontWidget.ui:715 msgctxt "frontWidget|" msgid "Family name" msgstr "Sukunimi" # Text field label in "operators profile" tab. The field in questions shows place of residence of the operator #: frontWidget.ui:263 msgctxt "frontWidget|" msgid "City/country" msgstr "Kaupunki/maa" # Text field label in "operators profile" tab. The field in questions shows address of bitcoin wallet of the operator. #: frontWidget.ui:273 msgctxt "frontWidget|" msgid "BTC address" msgstr "BTC-lompakon osoite" # Tooltip-text for a text field "operators profile" tab. The field in questions shows address of bitcoin wallet of the operator. #: frontWidget.ui:280 msgctxt "frontWidget|" msgid "If you wish to receive payments via BTC, include your BTC address too." msgstr "" "Jos meinaat saada maksuja bitcoinin kautta, julkaise myУЖs lompakkosi osoite" # Text field label in "operators profile" tab. The field in questions shows what the user has to say about state of the world. #: frontWidget.ui:287 frontWidget.ui:799 msgctxt "frontWidget|" msgid "State of the world" msgstr "Maailman tila" # Tool-tip text of a field in "operators profile" tab. The field in questions shows what operator has to say about state of the world. #: frontWidget.ui:294 msgctxt "frontWidget|" msgid "Longer explanation about state of the world" msgstr "VУЄhУЄn pidempi selitys maailman tilasta" # Checkbox text in "my profile" tab. The checkbox is question is a toggle for public/private status of the profile. When checkbox is checked, the profile will be made private. #: frontWidget.ui:301 msgctxt "frontWidget|" msgid "Profile is private" msgstr "Profiili on yksityinen" # Button text inside "My profile" tab. Clicking the button opens a dialog that prompts user to select list of operators that can read his profile that he has previously marked as private (e.g. accessible only to listed readers) #: frontWidget.ui:308 msgctxt "frontWidget|" msgid "Readers of profile" msgstr "Profiilin lukijat" # Explanation text inside "my profile" tab. #: frontWidget.ui:315 msgctxt "frontWidget|" msgid "None of the fields is mandatory" msgstr "YksikУЄУЄn kentistУЄ ei ole pakollinen" # Text field label inside "my profile" tab. The field whose label this is shows the time when profile was last updated. #: frontWidget.ui:322 msgctxt "frontWidget|" msgid "Time of last update" msgstr "Edellisen pУЄivityksen ajankohta" # Button text for button inside "my profile" tab. By clicking this button user makes her edits known to rest of the world. #: frontWidget.ui:342 msgctxt "frontWidget|" msgid "Publish" msgstr "Julkaise" # Button text for button inside "my profile" tab. By clicking this button user discards her edits. #: frontWidget.ui:355 msgctxt "frontWidget|" msgid "Revert changes" msgstr "Peruuta muutokset" # Text label on top of "my profile" tab. Below this label is a list of text fields and other stuff that user may edit regarding herself. #: frontWidget.ui:369 msgctxt "frontWidget|" msgid "Details of operator profile:" msgstr "Operaattorin profiili" # Text in image-placeholder inside "my profile" tab. When user has not selected any image for her profile details, this text is shown in place of the image. Clicking on text gives user option to select the image file for profile. #: frontWidget.ui:401 msgctxt "frontWidget|" msgid "" "\n" "\n" "Click \n" "to \n" "Add\n" "Image" msgstr "" "\n" "\n" "Klikkaa \n" "LisУЄtУЄksesi\n" "Kuva" # Title text inside "my profile" tab. Title text is for a list of files that user is currently sharing with other users. #: frontWidget.ui:425 frontWidget.ui:845 msgctxt "frontWidget|" msgid "Shared files" msgstr "Jaetut tiedostot" # Title text inside "my profile" tab. Title text is for a list of comments made by other users regarding operators profile. #: frontWidget.ui:461 frontWidget.ui:892 msgctxt "frontWidget|" msgid "Latest comments" msgstr "ViimeisimmУЄt kommentit" # Tab title text. When this tab is opened, user is shown a view of his frequent contacts. #: frontWidget.ui:504 msgctxt "frontWidget|" msgid "Contacts" msgstr "Osoitekirja" # Button text inside "contacts" tab. Clicking this button opens a dialog prompting user to enter details of operator to be added into contact list #: frontWidget.ui:536 msgctxt "frontWidget|" msgid "Add contact" msgstr "LisУЄУЄ profiili" # Button text inside "contacts" tab. Clicking this button removes a contact from list. #: frontWidget.ui:543 msgctxt "frontWidget|" msgid "Remove contact" msgstr "Poista profiili" # Button text inside "contacts" tab. Clicking this button displays details of the selected contact. #: frontWidget.ui:550 msgctxt "frontWidget|" msgid "View profile" msgstr "Katsele profiilia" # Button text inside "contacts" tab. Clicking this button opens a dialog prompting user to send a message selected contact. #: frontWidget.ui:557 msgctxt "frontWidget|" msgid "Send message" msgstr "LУЄhetУЄ viesti" # Tab text in front widget. When user selects this tab, he is presented with list of his private correspondence. #: frontWidget.ui:569 msgctxt "frontWidget|" msgid "Private messages" msgstr "Yksityiset viestit" # Tab text in front widget. This tab shows details of some other operator of classified ads. Normally this text is replaced with nickname of the operator but if nothing like this is available, this text may be shown, this is the "default text". #: frontWidget.ui:624 msgctxt "frontWidget|" msgid "Profile details" msgstr "Profiilin yksityiskohdat" # Label text of a text-field. The text-field in question shows place of residence of operator whose details are on display. #: frontWidget.ui:741 msgctxt "frontWidget|" msgid "City/Country" msgstr "Kaupunki/maa" # Label text of a text-field. The text-field in question shows bitcoin wallet address of operator whose details are on display. #: frontWidget.ui:767 msgctxt "frontWidget|" msgid "BTC Addr" msgstr "BTC-osoite" # Text for image-placeholder inside "profile details" tab. When some particular operator has not selected any image for her profile, this text is shown in place of the image. Note html format. #: frontWidget.ui:829 msgctxt "frontWidget|" msgid "" "




No

Image

Inserted

" msgstr "" "




Ei

Kuvaa

Valittuna

" # Button text inside "defails of operator profile" tab. When the button is clicked, a new-message editor is opened. #: frontWidget.ui:874 msgctxt "frontWidget|" msgid "Send message to operator" msgstr "LУЄhetУЄ operaattorille viesti" # Button text inside "defails of operator profile" tab. When the button is clicked, dialog listing readers of the (private) profile. #: frontWidget.ui:879 msgctxt "frontWidget|" msgid "View readers" msgstr "Lukijat" # Button text inside "defails of operator profile" tab. When the button is clicked, a dialog is opened, dialog prompts user to enter a comment about the operator. #: frontWidget.ui:927 msgctxt "frontWidget|" msgid "Comment" msgstr "Kommentti" # Button text inside "defails of operator profile" tab. When the button is clicked, the operator whose data is on display is added into contact-list. #: frontWidget.ui:959 msgctxt "frontWidget|" msgid "Add to contacts" msgstr "LisУЄУЄ osoitekirjaan" # Dialog title text. Dialog is for adding a link to text being edited. #: ui/insertLink.ui:26 msgctxt "insertLinkDialog|" msgid "Insert link" msgstr "LisУЄУЄ linkki" # Label for a combobox-field inside "insert link" dialog. Next to this label is set of fields that together make up a valid URL to be inserted. #: ui/insertLink.ui:39 msgctxt "insertLinkDialog|" msgid "URL" msgstr "URL" # Label for a text-field inside "insert link" dialog. Next to this label is field where user is supposed the text that will be shown as the link. Consider
the text then "the text" is text that user is prompted to enter with this label. #: ui/insertLink.ui:112 msgctxt "insertLinkDialog|" msgid "Link label in text" msgstr "Linkin pУЄУЄllepУЄin nУЄkyvУЄ teksti" # Dialog title text. Dialog prompts user to manually add a network-connection to another node in the network. #: ui/manualConnectionDialog.ui:26 msgctxt "manualConnectionDialog|" msgid "Manually add node to connection queue" msgstr "LisУЄУЄ solmu yhteydenottolistalle" # Label text of numeric field. The numeric (input) field is TCP port of the remote node that will be connected. #: ui/manualConnectionDialog.ui:48 msgctxt "manualConnectionDialog|" msgid "Remote node listen port" msgstr "Solmun vastaanotto-portti (TCP-port)" # Label for text field inside "manually add connection" dialog. Text field whose label this is requires user to type in network address (ip addr or dns name) of the remote node. #: ui/manualConnectionDialog.ui:78 msgctxt "manualConnectionDialog|" msgid "Remote node network address" msgstr "Solmun verkko-osoite" # Tooltip text for a text field inside "manually add connection" dialog. The text field whose tooltip this is the remote network address input field. #: ui/manualConnectionDialog.ui:91 msgctxt "manualConnectionDialog|" msgid "IPv4, IPv6 or DNS name" msgstr "IPv4, IPV6 tai DNS-nimi" # Dialog title text for dialog that requires user to enter information about file to be shared with others. Metadata query dialog in practice. #: ui/metadataQuery.ui:26 msgctxt "metadataQuery|" msgid "File information" msgstr "Tiedoston ominaisuudet" # Label text for a input field. The input field whose label this is asks for file name (filesystem file name) #: ui/metadataQuery.ui:60 msgctxt "metadataQuery|" msgid "Name of the file:" msgstr "Tiedoston nimi:" # Label text for a input field. The input field whose label this is asks for owner of the file contents. This may be copyright holder, depending on contracts and legislation followed. #: ui/metadataQuery.ui:81 msgctxt "metadataQuery|" msgid "Owner of file (name or SHA1 if CA operator):" msgstr "Tiedoston omistaja:" # Label text for a input field. The input field whose label this is asks for license under which the file may be used. Combobox lists some pre-filled options like GPL,BSD,CC-BY etc. but user may also enter any text into field. #: ui/metadataQuery.ui:111 msgctxt "metadataQuery|" msgid "License of use:" msgstr "KУЄyttУЖУЄ koskeva lisenssi:" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:122 msgctxt "metadataQuery|" msgid "Public domain" msgstr "Public domain" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:127 msgctxt "metadataQuery|" msgid "GPL" msgstr "GPL" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:132 msgctxt "metadataQuery|" msgid "LGPL" msgstr "LGPL" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:137 msgctxt "metadataQuery|" msgid "BSD" msgstr "BSD" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:142 msgctxt "metadataQuery|" msgid "CC-BY" msgstr "CC-BY" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:147 msgctxt "metadataQuery|" msgid "CC-BY-SA" msgstr "CC-BY-SA" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:152 msgctxt "metadataQuery|" msgid "CC-BY-ND" msgstr "CC-BY-ND" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:157 msgctxt "metadataQuery|" msgid "CC-BY-NC" msgstr "CC-BY-NC" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:162 msgctxt "metadataQuery|" msgid "CC-BY-NC-SA" msgstr "CC-BY-NC-SA" # Combobox content text for license selection combobox. License texts might be wise leave as they are - untranslated #: ui/metadataQuery.ui:167 msgctxt "metadataQuery|" msgid "CC-BY-NC-ND" msgstr "CC-BY-NC-ND" # Label text for a input field. The input field whose label this is asks for mime-type of the field about to be published. #: ui/metadataQuery.ui:182 msgctxt "metadataQuery|" msgid "Mime-type:" msgstr "Mime-tyyppi:" # Label text for a input field. The input field whose label this is asks for descriptive text about file about to be published. #: ui/metadataQuery.ui:199 msgctxt "metadataQuery|" msgid "Description of file:" msgstr "Kuvaus:" # Prompt text on top of "metadata query" dialog. Below this label is set of input-fields that make up the meta-data of a file to be published. #: ui/metadataQuery.ui:218 msgctxt "metadataQuery|" msgid "Enter information regarding file before publish:" msgstr "SyУЖtУЄ tiedoston ominaisuudet ennen julkaisua:" # Dialog title text for a dialog that offers possibility to post a new classified ad for others to read. #: ui/newClassifiedAd.ui:26 msgctxt "newCaDialog|" msgid "Post a new classified ad" msgstr "LУЄhetУЄ uusi luokiteltu ilmoitus" # This label text is part of sentence, whole sentence goes for example "About buying of cars in sweden" where the words "bying", "cars", and "sweden" are combo-boxes that user may choose from ; this word here is the first word in that sentece. #: ui/newClassifiedAd.ui:47 msgctxt "newCaDialog|" msgid "About" msgstr "Aiheesta" # This label text is part of sentence, whole sentence goes for example "About buying of cars in sweden" where the words "bying", "cars", and "sweden" are combo-boxes that user may choose from ; this word here is the 3rd word in that sentece. #: ui/newClassifiedAd.ui:65 msgctxt "newCaDialog|" msgid "of" msgstr "koskien" # This label text is part of sentence, whole sentence goes for example "About buying of cars in sweden" where the words "bying", "cars", and "sweden" are combo-boxes that user may choose from ; this word here is the 5th word in that sentece. #: ui/newClassifiedAd.ui:81 msgctxt "newCaDialog|" msgid "in" msgstr "paikassa" # Label text of a text field inside "post a new classified ad" dialog. The input field whose label this is, requires user to enter a subject (topic) for her posting. #: ui/newClassifiedAd.ui:95 msgctxt "newCaDialog|" msgid "Subject" msgstr "Aihe" # Label text of a text field inside "post a new classified ad" dialog. The input field whose label this is, will show name file that is attached to the post. #: ui/newClassifiedAd.ui:129 msgctxt "newCaDialog|" msgid "Attachment: " msgstr "Liite:" # Push-button text inside "post a new classified ad" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. #: ui/newClassifiedAd.ui:149 msgctxt "newCaDialog|" msgid "Add" msgstr "LisУЄУЄ" # Dialog title text for dialog that prompts user to edit+send a private message to another operator #: ui/newPrivMsg.ui:26 msgctxt "newPrivMsgDialog|" msgid "Send a private message" msgstr "LУЄhetУЄ yksityinen viesti" # Text field label for input field inside "compose a new private message dialog". The text field in question is "subject" or "topic" field of the message. #: ui/newPrivMsg.ui:39 msgctxt "newPrivMsgDialog|" msgid "Subject" msgstr "Aihe" # Text field label for input field inside "compose a new private message dialog". The text field in question is SHA1 address of the recipient. #: ui/newPrivMsg.ui:53 msgctxt "newPrivMsgDialog|" msgid "Recipient" msgstr "Vastaanottaja" # Label text of a text field inside "compose a new private message" dialog. The input field whose label this is, will show name file that is attached to the post. #: ui/newPrivMsg.ui:83 msgctxt "newPrivMsgDialog|" msgid "Attachments: " msgstr "Liitteet:" # Push-button text inside "compose a new private message" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. #: ui/newPrivMsg.ui:103 msgctxt "newPrivMsgDialog|" msgid "Attach" msgstr "LiitУЄ" # Dialog title text for dialog that prompts user to edit+send a comment regarding another operator. #: ui/newProfileComment.ui:26 msgctxt "newProfileCommentDialog|" msgid "Comment a operators profile" msgstr "Kommentoi operaattorin profiilia" # Text field label for input field inside "compose a comment about operator dialog". The text field in question is "subject" or "topic" field of the comment. #: ui/newProfileComment.ui:39 msgctxt "newProfileCommentDialog|" msgid "Subject" msgstr "Aihe" # Text field label for input field inside "compose a comment about operator dialog". The text field in question is SHA1 digest (address) of the operator being commented. #: ui/newProfileComment.ui:53 msgctxt "newProfileCommentDialog|" msgid "Commented profile" msgstr "Kommentoitu profiili" # Label text of a text field inside "compose a comment about operator dialog" dialog. The input field whose label this is, will show name file that is attached to the post. #: ui/newProfileComment.ui:89 msgctxt "newProfileCommentDialog|" msgid "Attachments:" msgstr "Liitteet:" # Push-button text inside "compose a comment about operator dialog" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. #: ui/newProfileComment.ui:109 msgctxt "newProfileCommentDialog|" msgid "Attach" msgstr "LiitУЄ" # Dialog title text for a dialog that prompts user to edit+publish a text document. #: ui/newTextDocument.ui:26 msgctxt "newTextDocumentDialog|" msgid "Edit and publish a new text document" msgstr "Muokkaa ja julkaise uusi tekstidokumentti" # Text field label for input field inside "compose a new text document" dialog. The text field in question is "subject" or "topic" field of the text document. #: ui/newTextDocument.ui:39 msgctxt "newTextDocumentDialog|" msgid "Document title" msgstr "Dokumentin aihe" # Label text of a text field inside "edit+publish a new text document dialog" dialog. The input field whose label this is, will show name file that is attached to the document. #: ui/newTextDocument.ui:75 msgctxt "newTextDocumentDialog|" msgid "Attachments:" msgstr "Liitteet:" # Push-button text inside "edit+publish a new text document dialog" dialog. When user hits the button, another dialog is opened and user is required to select a file to be attached. #: ui/newTextDocument.ui:95 msgctxt "newTextDocumentDialog|" msgid "Attach" msgstr "LiitУЄ" # Dialog title text for dialog that will show a listing of previous comments regarding operator (user himself or some other operator, it is the same dialog in both cases) #: ui/profileCommentDisplay.ui:26 msgctxt "profileCommentDisplay|" msgid "Comments regarding operator" msgstr "Kommentit koskien operaattoria" # Dialog title text for a dialog that prompts user to choose operators who will be able to read details, comments and shared files of his profile. #: ui/profileReadersDialog.ui:26 msgctxt "profileReadersDialog|" msgid "Profile readers list" msgstr "Profiilin lukijalista" # Text field label inside "add profiles to list of readers" dialog. The text field whose prompt this is asks for search-words to be used to filter operator names/addresses from database. #: ui/profileReadersDialog.ui:37 msgctxt "profileReadersDialog|" msgid "Search for profiles to add" msgstr "Etsi lisУЄttУЄviУЄ profiileja" # Text field label inside "add profiles to list of readers" dialog. The text listing-field whose explanation this is will list operators whose nickname,name or other search-term matches conditions entered by user. #: ui/profileReadersDialog.ui:44 msgctxt "profileReadersDialog|" msgid "First 100 matching profiles:" msgstr "EnsimmУЄiset 100 osumaa:" # Push-button label inside "add profiles to list of readers" dialog. When user hits this button, operators that are selected from neighboring list will be added to list of readers of operators profile. #: ui/profileReadersDialog.ui:66 msgctxt "profileReadersDialog|" msgid "Add seleted to list of readers" msgstr "LisУЄУЄ valitut profiilin lukijoiksi" # Text field label inside "add profiles to list of readers" dialog. The text listing-field whose explanation this is shows current list operators profiles readers. #: ui/profileReadersDialog.ui:73 msgctxt "profileReadersDialog|" msgid "Current list of readers" msgstr "Lukijoiden nykyinen lista" # Push button label inside dialog that asks for list of operators who are readers of operators own profile. When user this this button, the dialog is dismissed. #: ui/profileReadersDialog.ui:90 msgctxt "profileReadersDialog|" msgid "Close" msgstr "Sulje" # Push button label inside dialog that asks for list of operators who are readers of operators own profile. When user this this button, selected operators are removed from the list. #: ui/profileReadersDialog.ui:109 msgctxt "profileReadersDialog|" msgid "Remove selected" msgstr "Poista valitut" # Dialog title-text for a search dialog. #: ui/searchDisplay.ui:26 msgctxt "searchDisplay|" msgid "Search data storage" msgstr "Etsi tietovarastosta" # Label text of a text field inside "search" dialog. The text field in question requires user to enter one or more words that are then searched from all available (public) documents. #: ui/searchDisplay.ui:60 msgctxt "searchDisplay|" msgid "Words:" msgstr "Sanoja" # Push button label inside "search" dialog. When button is hit, search using given words is performed. #: ui/searchDisplay.ui:70 msgctxt "searchDisplay|" msgid "Search" msgstr "Hae" # Check-box label inside "search" dialog. When box is checked, the search is done also in neighboring nodes in the network, not only in local storage. #: ui/searchDisplay.ui:87 msgctxt "searchDisplay|" msgid "Network search" msgstr "Verkkohaku" # Check-box label inside "search" dialog. When box is checked, the search may include classified ads in its resultset. #: ui/searchDisplay.ui:101 msgctxt "searchDisplay|" msgid "Search ads" msgstr "Etsi ilmoituksista" # Check-box label inside "search" dialog. When box is checked, the search may include operator profiles in its resultset. #: ui/searchDisplay.ui:111 msgctxt "searchDisplay|" msgid "Search profiles" msgstr "Etsi profiileista" # Check-box label inside "search" dialog. When box is checked, the search may include profile commetns in its resultset. #: ui/searchDisplay.ui:121 msgctxt "searchDisplay|" msgid "Search comments" msgstr "Etsi kommenteista" # Dialog title text for "settings" dialog. #: ui/settingsDialog.ui:26 msgctxt "settingsDialog|" msgid "Node settings" msgstr "Solmun asetukset" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has TCP port number of the node. #: ui/settingsDialog.ui:39 msgctxt "settingsDialog|" msgid "TCP listen port" msgstr "TCP-kuunteluportti" # Tooltip-text for input field inside "settings" dialog. The numerical input field whose label this is has TCP port number of the node. #: ui/settingsDialog.ui:58 msgctxt "settingsDialog|" msgid "Incoming TCP listen port. Change requires node restart. " msgstr "" "Kuunteluportti. TУЄmУЄn vaihtaminen edellyttУЄУЄ ohjelman uudelleenkУЄynnistystУЄ." # Text field label for input field inside "settings" dialog. The textual input field whose label this is requires user to enter DNS-name of the node (or leave it empty, if no name is assigned) #: ui/settingsDialog.ui:84 msgctxt "settingsDialog|" msgid "DNS name of node" msgstr "Solmun nimipalvelunimi" # Tooltip-text for input field inside "settings" dialog. The textual input field whose label this is requires user to enter DNS-name of the node (or leave it empty, if no name is assigned) #: ui/settingsDialog.ui:91 msgctxt "settingsDialog|" msgid "" "If you have permanent DNS name for your machine, you may type it here to be " "used to reference your node" msgstr "" "Jos solmullasi on pysyvУЄ nimi nimipalvelussa, voit syУЖttУЄУЄ sen tУЄhУЄn jotta " "muut solmut voivat siihen viitata" # Text label inside "settings" dialog. Under this label is set of numerical input fields that user may use to adjust the amount of items he wishes to keep in his local storage. #: ui/settingsDialog.ui:103 msgctxt "settingsDialog|" msgid "Data store limits:" msgstr "Tietokannan sisУЄllУЖn enimmУЄismУЄУЄrУЄt:" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of operator profiles to keep in storage. #: ui/settingsDialog.ui:115 msgctxt "settingsDialog|" msgid "Nr of profiles to keep" msgstr "Talletettavien profiilien mУЄУЄrУЄ" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of private messages to keep in storage. #: ui/settingsDialog.ui:154 msgctxt "settingsDialog|" msgid "Nr of private messages to keep" msgstr "Yksityistien viestien mУЄУЄrУЄ" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of binary files to keep in storage. #: ui/settingsDialog.ui:193 msgctxt "settingsDialog|" msgid "Nr of binary blobs to keep" msgstr "BinУЄУЄritiedostojen mУЄУЄrУЄ" # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of classified ads to keep in storage. #: ui/settingsDialog.ui:232 msgctxt "settingsDialog|" msgid "Nr of CAs to keep" msgstr "Ilmoitusten mУЄУЄrУЄ" # Tooltip-text for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of classified ads to keep in storage. #: ui/settingsDialog.ui:251 msgctxt "settingsDialog|" msgid "" "Number of classified ads to keep in storage, total, including all " "classifications. Oldest referenced will be deleted first." msgstr "" "Paikallisessa tietokannassa talletettavien ilmoitusten mУЄУЄrУЄ, koskien " "kaikkia luokitteluja. ViimeisimmУЄksi viitatut tullaan poistamaan " "ensimmУЄisenУЄ." # Text field label for input field inside "settings" dialog. The numerical input field whose label this is has maximum number of comments regarding operators to keep in storage. #: ui/settingsDialog.ui:274 msgctxt "settingsDialog|" msgid "Nr of profile comments to keep" msgstr "Kommenttien mУЄУЄrУЄ" # Dialog title text for a dialog that shows network connectivity details. #: ui/statusDialog.ui:26 msgctxt "statusDialog|" msgid "Network and connection status" msgstr "Verkon ja yhteyksien tila" # Text field label for display-item inside "network status" dialog. The display-item shows ipv4-network address of the node. Usually it is (public) IP addr of the very machine that user is using at the moment. #: ui/statusDialog.ui:48 msgctxt "statusDialog|" msgid "Detected own IPv4" msgstr "Oma havaittu IPv4" # Tooltip-text for display-item inside "network status" dialog. The display-item shows ipv4-network address of the node. Usually it is (public) IP addr of the very machine that user is using at the moment. #: ui/statusDialog.ui:61 ui/statusDialog.ui:93 msgctxt "statusDialog|" msgid "" "Should your friend have trouble connecting, give her this address with port " "number" msgstr "" "Jos ystУЄvУЄsi ei pУЄУЄse verkon jУЄseneksi, yritУЄ antaa hУЄnelle tУЄmУЄ osoite " "porttinumeron kera" # Text field label for display-item inside "network status" dialog. The display-item shows IPV6-address of the node. Usually it is (public) IPv6 addr of the very machine that user is using at the moment. #: ui/statusDialog.ui:74 msgctxt "statusDialog|" msgid "IPv6" msgstr "IPv6" # Text field label for display-item inside "network status" dialog. The display-item shows listen port of the node. #: ui/statusDialog.ui:113 msgctxt "statusDialog|" msgid "TCP port currently used" msgstr "KУЄytУЖssУЄ oleva TCP-portti" # Text field label for a list-item inside "network status" dialog. The list-item shows list of currently connected other nodes in the network. #: ui/statusDialog.ui:151 msgctxt "statusDialog|" msgid "Currently open connections" msgstr "Avoimet yhteydet" # Push-button label for button inside "network status" dialog. When button is hit, another dialog is opened, asking user for details about the remote node to connect. #: ui/statusDialog.ui:195 msgctxt "statusDialog|" msgid "Manually add connection" msgstr "LisУЄУЄ yhteys kУЄsipelillУЄ" # Push-button label for button inside "network status" dialog. When button is hit, dialog is dismissed. #: ui/statusDialog.ui:202 msgctxt "statusDialog|" msgid "Close" msgstr "Sulje" classified-ads-0.09/po/sv.po000066400000000000000000001642041260620453500157350ustar00rootroot00000000000000msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Language: sv_SE\n" "X-Qt-Contexts: true\n" # Man kan spara pengar ocksУЅ? #: ui/attachmentlistdialog.cpp:60 msgctxt "AttachmentListDialog|" msgid "Save file to disk.." msgstr "Spara till filsystem.." #: ui/attachmentlistdialog.cpp:151 ui/attachmentlistdialog.cpp:153 msgctxt "AttachmentListDialog|" msgid "files" msgstr "filer" #: ui/attachmentlistdialog.cpp:155 msgctxt "AttachmentListDialog|" msgid "Choose file name for saving" msgstr "VУЄlj ett namn for din fil" #: ui/attachmentlistdialog.cpp:166 msgctxt "AttachmentListDialog|" msgid "Error" msgstr "Fel" #: ui/attachmentlistdialog.cpp:167 msgctxt "AttachmentListDialog|" msgid "File open error" msgstr "Fel i att УЖppna en fil" #: datamodel/binaryfilelistingmodel.cpp:173 msgctxt "BinaryFileListingModel|" msgid "Name or fingerprint of file" msgstr "Namn eller SHA1 kontrollsumm av filen" #: datamodel/calistingmodel.cpp:50 datamodel/calistingmodel.cpp:143 msgctxt "CAListingModel|" msgid "Date" msgstr "Datum" #: datamodel/calistingmodel.cpp:51 datamodel/calistingmodel.cpp:142 msgctxt "CAListingModel|" msgid "Subject" msgstr "Rubrik" #: datamodel/camodel.cpp:127 msgctxt "ClassifiedAdsModel|" msgid "Buying" msgstr "InkУЖpning" #: datamodel/camodel.cpp:129 msgctxt "ClassifiedAdsModel|" msgid "Selling" msgstr "FУЖrsУЄljing" #: datamodel/camodel.cpp:131 msgctxt "ClassifiedAdsModel|" msgid "Giving away" msgstr "Donering" #: datamodel/camodel.cpp:133 msgctxt "ClassifiedAdsModel|" msgid "Wanting" msgstr "У–nskande sig" #: datamodel/camodel.cpp:135 msgctxt "ClassifiedAdsModel|" msgid "Renting" msgstr "Att hyra" #: datamodel/camodel.cpp:137 msgctxt "ClassifiedAdsModel|" msgid "Announcement" msgstr "Meddelande" #: datamodel/camodel.cpp:210 msgctxt "ClassifiedAdsModel|" msgid "Cars" msgstr "Bilar" #: datamodel/camodel.cpp:212 msgctxt "ClassifiedAdsModel|" msgid "Boats" msgstr "BУЅtar" #: datamodel/camodel.cpp:214 msgctxt "ClassifiedAdsModel|" msgid "Bikes" msgstr "Cyklar" #: datamodel/camodel.cpp:216 msgctxt "ClassifiedAdsModel|" msgid "Other vehicles" msgstr "Andra fordon" #: datamodel/camodel.cpp:218 msgctxt "ClassifiedAdsModel|" msgid "Vehicle parts" msgstr "Fordondelar" #: datamodel/camodel.cpp:220 msgctxt "ClassifiedAdsModel|" msgid "Habitation" msgstr "Bostad" #: datamodel/camodel.cpp:222 msgctxt "ClassifiedAdsModel|" msgid "Household appliances" msgstr "HushУЅllsapparater" #: datamodel/camodel.cpp:224 msgctxt "ClassifiedAdsModel|" msgid "Furniture" msgstr "MУЖbler" #: datamodel/camodel.cpp:226 msgctxt "ClassifiedAdsModel|" msgid "Clothing" msgstr "KlУЄder" #: datamodel/camodel.cpp:228 msgctxt "ClassifiedAdsModel|" msgid "Tools" msgstr "Verktyg" #: datamodel/camodel.cpp:230 msgctxt "ClassifiedAdsModel|" msgid "Sports" msgstr "Sports" #: datamodel/camodel.cpp:232 msgctxt "ClassifiedAdsModel|" msgid "Music" msgstr "Musik" #: datamodel/camodel.cpp:234 msgctxt "ClassifiedAdsModel|" msgid "Books" msgstr "BУЖcker" #: datamodel/camodel.cpp:236 msgctxt "ClassifiedAdsModel|" msgid "Movies" msgstr "Bio" #: datamodel/camodel.cpp:238 msgctxt "ClassifiedAdsModel|" msgid "Animals" msgstr "Djur" #: datamodel/camodel.cpp:240 msgctxt "ClassifiedAdsModel|" msgid "Electronics" msgstr "Elektroniska aparater" #: datamodel/camodel.cpp:242 msgctxt "ClassifiedAdsModel|" msgid "Jobs" msgstr "Arbete" #: datamodel/camodel.cpp:244 msgctxt "ClassifiedAdsModel|" msgid "Transportation" msgstr "Transport" #: datamodel/camodel.cpp:246 msgctxt "ClassifiedAdsModel|" msgid "Services" msgstr "TjУЄnster" #: datamodel/camodel.cpp:248 msgctxt "ClassifiedAdsModel|" msgid "Healthcare" msgstr "SjukvУЅrd" #: datamodel/camodel.cpp:250 msgctxt "ClassifiedAdsModel|" msgid "Foodstuff" msgstr "Livsmedel" #: datamodel/camodel.cpp:252 msgctxt "ClassifiedAdsModel|" msgid "Software" msgstr "Programvara" #: datamodel/camodel.cpp:254 msgctxt "ClassifiedAdsModel|" msgid "Events" msgstr "HУЄndelser" #: datamodel/camodel.cpp:256 msgctxt "ClassifiedAdsModel|" msgid "Education" msgstr "Utbildning" #: datamodel/camodel.cpp:258 msgctxt "ClassifiedAdsModel|" msgid "Finance" msgstr "Finans" #: datamodel/camodel.cpp:260 msgctxt "ClassifiedAdsModel|" msgid "Jewelry" msgstr "Smycken" #: datamodel/camodel.cpp:262 msgctxt "ClassifiedAdsModel|" msgid "Religious rituals" msgstr "ReligiУЖsa ritualer" #: datamodel/camodel.cpp:264 msgctxt "ClassifiedAdsModel|" msgid "Philosophy" msgstr "Filosofi" #: datamodel/camodel.cpp:908 msgctxt "ClassifiedAdsModel|" msgid "Any country" msgstr "Alla lУЄnder" #: datamodel/connectionlistingmodel.cpp:142 msgctxt "ConnectionListingModel|" msgid "Peer network address" msgstr "GrУЄnsande datorns adress" #: datamodel/connectionlistingmodel.cpp:145 msgctxt "ConnectionListingModel|" msgid "Inbound connections are those where peer initiated connection" msgstr "" "Inkommande fУЖrbindelse УЄr sУЅdan nУЄr en annan dator УЖppnade datastrУЖmmen " #: datamodel/connectionlistingmodel.cpp:148 msgctxt "ConnectionListingModel|" msgid "Data transferred from peer to your node" msgstr "Data frУЅn din dator" #: datamodel/connectionlistingmodel.cpp:151 msgctxt "ConnectionListingModel|" msgid "Data transferred to peer from your node" msgstr "Data till din dator" #: datamodel/connectionlistingmodel.cpp:154 msgctxt "ConnectionListingModel|" msgid "Time when connection was opened" msgstr "Tid nУЄr datastrУЖm УЖppnades" #: datamodel/connectionlistingmodel.cpp:164 msgctxt "ConnectionListingModel|" msgid "Address" msgstr "Adress" #: datamodel/connectionlistingmodel.cpp:167 msgctxt "ConnectionListingModel|" msgid "Inbound" msgstr "Inkommande" #: datamodel/connectionlistingmodel.cpp:170 msgctxt "ConnectionListingModel|" msgid "Bytes in" msgstr "Oktett in" #: datamodel/connectionlistingmodel.cpp:173 msgctxt "ConnectionListingModel|" msgid "Bytes out" msgstr "Oktett ut" #: datamodel/connectionlistingmodel.cpp:176 msgctxt "ConnectionListingModel|" msgid "Open time" msgstr "У–ppningstid" #: datamodel/contactlistingmodel.cpp:73 msgctxt "ContactListingModel|" msgid "Yes" msgstr "Ja" #: datamodel/contactlistingmodel.cpp:75 msgctxt "ContactListingModel|" msgid "Unknown" msgstr "OkУЄnt" #: datamodel/contactlistingmodel.cpp:98 msgctxt "ContactListingModel|" msgid "Actual network address (SHA1) of the contact" msgstr "SHA1 av din contact" #: datamodel/contactlistingmodel.cpp:101 msgctxt "ContactListingModel|" msgid "Locally given nickname ; user may set her own nickname himself" msgstr "Smeknamn" #: datamodel/contactlistingmodel.cpp:104 msgctxt "ContactListingModel|" msgid "Public statement if this operator to be trusted in transactions" msgstr "Om den hУЄr kontakt ska bli fУЖrtrУЖstad?" #: datamodel/contactlistingmodel.cpp:114 msgctxt "ContactListingModel|" msgid "Address" msgstr "Adress" #: datamodel/contactlistingmodel.cpp:117 msgctxt "ContactListingModel|" msgid "Nickname" msgstr "Smeknamn" #: datamodel/contactlistingmodel.cpp:120 msgctxt "ContactListingModel|" msgid "Publicly trusted" msgstr "Offentlig fУЖrtroende" #: datamodel/contentencryptionmodel.cpp:86 msgctxt "ContentEncryptionModel|" msgid "SSL key generation went wrong, calling exit.." msgstr "Kunde inte generera SSL-nyckel, utgУЅende.." #: datamodel/contentencryptionmodel.cpp:94 msgctxt "ContentEncryptionModel|" msgid "x509 cert generation went wrong, calling exit.." msgstr "Kunde inte generera x509-cert, utgУЅende.." #: datamodel/contentencryptionmodel.cpp:192 #: datamodel/contentencryptionmodel.cpp:290 msgctxt "ContentEncryptionModel|" msgid "RSA Private key key saving went wrong" msgstr "Kunde inte persist RSA-nyckel" #: datamodel/contentencryptionmodel.cpp:637 msgctxt "ContentEncryptionModel|" msgid "No suitable de-cryption key found" msgstr "Hemlig nyckel fУЖr kryptering finns inte" #: controller.cpp:103 msgctxt "Controller|" msgid "Classified ads" msgstr "Annonser" #: controller.cpp:135 msgctxt "Controller|" msgid "Enter password for protection of your messages:" msgstr "Ge ett lУЖsenord: " #: controller.cpp:405 msgctxt "Controller|" msgid "Fetching item from network.." msgstr "HУЄmtning objektet.." #: controller.cpp:430 msgctxt "Controller|" msgid "E&xit" msgstr "StУЄnga" #: controller.cpp:432 msgctxt "Controller|" msgid "Exit the application" msgstr "StУЄnga av program" #: controller.cpp:434 msgctxt "Controller|" msgid "&About" msgstr "Om &annonser" #: controller.cpp:435 msgctxt "Controller|" msgid "Show the application's About box" msgstr "Visa information av den hУЄr program" #: controller.cpp:437 msgctxt "Controller|" msgid "&Change password" msgstr "FУЖrУЄndra din lУЖsenord" #: controller.cpp:438 msgctxt "Controller|" msgid "Change password of current profile" msgstr "FУЖrУЄndra lУЖsenorden av vald profil" #: controller.cpp:440 msgctxt "Controller|" msgid "Create &new profile" msgstr "Skapa en &ny profil" #: controller.cpp:441 msgctxt "Controller|" msgid "Makes a brand new user profile" msgstr "Skapar en ny profil fУЖr operator" #: controller.cpp:443 msgctxt "Controller|" msgid "&Delete current profile" msgstr "Radera vald profil" #: controller.cpp:444 msgctxt "Controller|" msgid "Deletes currently open profile" msgstr "Ska glУЖmma allt om vald profil" #: controller.cpp:446 msgctxt "Controller|" msgid "&Select another profile" msgstr "VУЄlja en annan profil" #: controller.cpp:447 msgctxt "Controller|" msgid "If you have multitude of profiles" msgstr "Om du har flera profiler" #: controller.cpp:449 msgctxt "Controller|" msgid "Settings.." msgstr "InstУЄllningar.." #: controller.cpp:450 msgctxt "Controller|" msgid "Node-wide settings.." msgstr "InstУЄllningar av nod" #: controller.cpp:452 msgctxt "Controller|" msgid "Network status.." msgstr "Status av nУЄtverket.." #: controller.cpp:454 msgctxt "Controller|" msgid "Search.." msgstr "SУЖk.." #: controller.cpp:471 msgctxt "Controller|" msgid "&File" msgstr "&Filer" #: controller.cpp:516 msgctxt "Controller|" msgid "Enter new password:" msgstr "Ge ett lУЖsenord:" #: controller.cpp:544 controller.cpp:653 msgctxt "Controller|" msgid "Activate another profile with password" msgstr "VУЄlja en annan profil med en lУЖsenord" #: controller.cpp:638 msgctxt "Controller|" msgid "Can't delete only profile." msgstr "Man kan inte radera den sista profil" #: controller.cpp:642 msgctxt "Controller|" msgid "Permanently discard profile?" msgstr "Radera profil?" #: controller.cpp:643 msgctxt "Controller|" msgid "There will be NO way to access content of this profile later" msgstr "Det finns INTE en metod fУЖr att visa den hУЄr profil senare" #: controller.cpp:706 msgctxt "Controller|" msgid "Cant load node cert or key cert" msgstr "Kan inte ladda smycken fУЖr din nod" #: controller.cpp:711 msgctxt "Controller|" msgid "File error" msgstr "Fel med filen" #: controller.cpp:716 msgctxt "Controller|" msgid "Database error" msgstr "Fel med databas" #: controller.cpp:722 controller.cpp:732 msgctxt "Controller|" msgid "Cryptographic module" msgstr "Fel med kryptering" #: controller.cpp:727 msgctxt "Controller|" msgid "Database module" msgstr "Fel med databas" #: controller.cpp:733 msgctxt "Controller|" msgid "Bad password" msgstr "Fel lУЖsenord" #: controller.cpp:949 msgctxt "Controller|" msgid "Could not find item from network.." msgstr "Kunde inte hitta objektet frУЅn nУЄtverket" #: controller.cpp:1062 msgctxt "Controller|" msgid "SHA1: " msgstr "SHA1:" #: controller.cpp:1067 msgctxt "Controller|" msgid "Mime-Type: " msgstr "Mime-Type:" #: controller.cpp:1073 msgctxt "Controller|" msgid "Description: " msgstr "Beskrivning: " #: controller.cpp:1079 msgctxt "Controller|" msgid "Publisher: " msgstr "FУЖrlУЄggare: " #: controller.cpp:1085 msgctxt "Controller|" msgid "Content owner: " msgstr "InnehУЅllsУЄgare: " #: controller.cpp:1091 msgctxt "Controller|" msgid "License: " msgstr "Licens: " #: controller.cpp:1097 msgctxt "Controller|" msgid "Name: " msgstr "Namn: " #: controller.cpp:1104 msgctxt "Controller|" msgid "Date: " msgstr "Datum: " #: ui/dialogbase.cpp:47 ui/dialogbase.cpp:101 msgctxt "DialogBase|" msgid "File way too big" msgstr "Filen УЄr alldeles fУЖr stor" #: ui/dialogbase.cpp:55 ui/dialogbase.cpp:109 msgctxt "DialogBase|" msgid "File too big" msgstr "Filen УЄr fУЖr stor" #: ui/dialogbase.cpp:85 ui/dialogbase.cpp:131 msgctxt "DialogBase|" msgid "File open error" msgstr "Fel med УЖppningen av filen" #: ui/dialogbase.cpp:94 msgctxt "DialogBase|" msgid "Select file to be published" msgstr "VУЄlja filen som du will ha publicerad" #: ui/dialogbase.cpp:96 msgctxt "DialogBase|" msgid "Files (*.*)" msgstr "Alla filer (*.*)" #: ui/editcontact.cpp:72 msgctxt "EditContactDialog|" msgid "Error" msgstr "Fel" #: ui/editcontact.cpp:73 msgctxt "EditContactDialog|" msgid "Operator addr is not valid" msgstr "Adress av operator УЄr inte giltig" #: FrontWidget.cpp:93 msgctxt "FrontWidget|" msgid "Classified ads" msgstr "Annonser" #: FrontWidget.cpp:94 msgctxt "FrontWidget|" msgid "My profile" msgstr "Egen profil" #: FrontWidget.cpp:95 msgctxt "FrontWidget|" msgid "Contacts" msgstr "Kontakter" #: FrontWidget.cpp:96 msgctxt "FrontWidget|" msgid "Private messages" msgstr "Privat korrespondens" #: FrontWidget.cpp:155 msgctxt "FrontWidget|" msgid "Add shared file.." msgstr "Addera en fil til nУЄtverk.." #: FrontWidget.cpp:156 msgctxt "FrontWidget|" msgid "Stop advertising selected shared file" msgstr "Sluta annonsera den markerade filen" #: FrontWidget.cpp:157 msgctxt "FrontWidget|" msgid "Save file to disk.." msgstr "Spara filen till disk.." #: FrontWidget.cpp:158 msgctxt "FrontWidget|" msgid "View file information.." msgstr "Visa beskrivning av filen.." #: FrontWidget.cpp:159 msgctxt "FrontWidget|" msgid "Copy file address (SHA1) to clipboard.." msgstr "Kopiera SHA1 till urklipp.." #: FrontWidget.cpp:160 msgctxt "FrontWidget|" msgid "Edit+publish new text document.." msgstr "Skapa+publicera en ny dokument.." #: FrontWidget.cpp:348 msgctxt "FrontWidget|" msgid "Open File" msgstr "У–ppna filen" #: FrontWidget.cpp:350 FrontWidget.cpp:880 msgctxt "FrontWidget|" msgid "Files (*.*)" msgstr "Alla typer (*.*)" #: FrontWidget.cpp:354 FrontWidget.cpp:1180 FrontWidget.cpp:1322 msgctxt "FrontWidget|" msgid "Error" msgstr "Fel" #: FrontWidget.cpp:355 msgctxt "FrontWidget|" msgid "Can't load image" msgstr "Kan inte ladda en bild" #: FrontWidget.cpp:621 FrontWidget.cpp:761 msgctxt "FrontWidget|" msgid "Profile not in database" msgstr "Profil finns inte i lokal databas" #: FrontWidget.cpp:622 FrontWidget.cpp:762 msgctxt "FrontWidget|" msgid "Try viewing profile first to obtain data" msgstr "Du kan fУЖrsУЖka att se profil fУЖrst fУЖr att hУЄmta data" #: FrontWidget.cpp:878 msgctxt "FrontWidget|" msgid "Select file to be published" msgstr "VУЄlja filen du vill ha publicerad" #: FrontWidget.cpp:885 msgctxt "FrontWidget|" msgid "File way too big" msgstr "Filen УЄr alldeles fУЖr stor" #: FrontWidget.cpp:893 msgctxt "FrontWidget|" msgid "File too big" msgstr "Filen УЄr fУЖr stor" #: FrontWidget.cpp:937 FrontWidget.cpp:1181 msgctxt "FrontWidget|" msgid "File open error" msgstr "Fel med УЖppningen av filen" #: FrontWidget.cpp:1162 FrontWidget.cpp:1168 msgctxt "FrontWidget|" msgid "files" msgstr "filer" #: FrontWidget.cpp:1171 msgctxt "FrontWidget|" msgid "Choose file name for saving" msgstr "VУЄlj ett namn for din fil" #: FrontWidget.cpp:1231 msgctxt "FrontWidget|" msgid "" "\n" "\n" "\n" "Click\n" "To\n" "Add\n" "Image\n" msgstr "" "\n" "\n" "\n" "Klicka fУЖr att\n" "lУЄgga till\n" "en bild\n" #: FrontWidget.cpp:1323 msgctxt "FrontWidget|" msgid "Article not found from local storage" msgstr "Annons kunde inte hittas i local databas" #: FrontWidget.cpp:1349 FrontWidget.cpp:1897 #, qt-format msgctxt "FrontWidget|" msgid "" "Trusted by %1\n" "SHA1 %2" msgstr "" "Betrodd av %1\n" "SHA1 %2" #: FrontWidget.cpp:1386 msgctxt "FrontWidget|" msgid "Time of last update " msgstr "Tid av senaste УЄndring" #: FrontWidget.cpp:1394 msgctxt "FrontWidget|" msgid "" "\n" "\n" "\n" "(No\n" "Image\n" "Selected)\n" msgstr "" "\n" "\n" "\n" "(Ingen\n" "Bild\n" "Valts)\n" #: FrontWidget.cpp:1488 msgctxt "FrontWidget|" msgid "Edit contact.." msgstr "Redigera kontakt" #: FrontWidget.cpp:1528 msgctxt "FrontWidget|" msgid "&Reply to sender" msgstr "Svara avsУЄndaren" #: FrontWidget.cpp:1529 msgctxt "FrontWidget|" msgid "Reply to &forum" msgstr "Svara pУЅ &forumet" #: FrontWidget.cpp:1530 msgctxt "FrontWidget|" msgid "&Post new ad" msgstr "Ska&pa en ny annons" #: FrontWidget.cpp:1531 msgctxt "FrontWidget|" msgid "&Public comment" msgstr "&Publik kommentar" #: FrontWidget.cpp:1532 msgctxt "FrontWidget|" msgid "&View profile" msgstr "&Visa profilen" #: FrontWidget.cpp:1533 FrontWidget.cpp:1671 msgctxt "FrontWidget|" msgid "Attachments.." msgstr "Bilagor.." #: FrontWidget.cpp:1593 msgctxt "FrontWidget|" msgid "Add selected operator to contacts.." msgstr "LУЄgga operator till din kontakter" #: FrontWidget.cpp:1667 msgctxt "FrontWidget|" msgid "&Reply" msgstr "Svara" #: FrontWidget.cpp:1668 msgctxt "FrontWidget|" msgid "&New message" msgstr "Skapa en ny brev" #: FrontWidget.cpp:1669 msgctxt "FrontWidget|" msgid "&Send public comment to sender" msgstr "Skicka en publik kommentar om profilen " #: FrontWidget.cpp:1670 msgctxt "FrontWidget|" msgid "&View profile of peer" msgstr "&Visa profilen" #: FrontWidget.cpp:1705 msgctxt "FrontWidget|" msgid "Add selected to contacts.." msgstr "LУЄgga till din kontakter.." #: FrontWidget.cpp:1907 FrontWidget.cpp:1909 FrontWidget.cpp:1973 #: FrontWidget.cpp:1975 msgctxt "FrontWidget|" msgid "From:" msgstr "FrУЅn:" #: FrontWidget.cpp:1911 FrontWidget.cpp:1978 msgctxt "FrontWidget|" msgid "Subject:" msgstr "Rubrik:" #: FrontWidget.cpp:1970 msgctxt "FrontWidget|" msgid "To:" msgstr "Mottagare:" #: FrontWidget.cpp:2282 msgctxt "FrontWidget|" msgid "Invalid SHA1 in URL" msgstr "SHA1 i URL УЄr inte giltig" #: FrontWidget.cpp:2309 msgctxt "FrontWidget|" msgid "Invalid URL" msgstr "URL УЄr inte giltig" #: ui/insertlinkdialog.cpp:69 msgctxt "InsertLinkDialog|" msgid "Invalid URL" msgstr "URL УЄr inte giltig" #: ui/manualconnection.cpp:53 msgctxt "ManualConnectionDialog|" msgid "DNS lookup failure" msgstr "Namnet kunde inte hittas frУЅn DNS" #: ui/newprivmsgdialog.cpp:88 ui/newprivmsgdialog.cpp:133 msgctxt "NewPrivMessageDialog|" msgid "Error" msgstr "Fel" #: ui/newprivmsgdialog.cpp:89 msgctxt "NewPrivMessageDialog|" msgid "Recipient addr is not valid" msgstr "Adressen av mottagaren УЄr inte giltig" #: ui/newprivmsgdialog.cpp:134 msgctxt "NewPrivMessageDialog|" msgid "Recipient encryption key not found from storage" msgstr "Kryptering-nyckel fУЖr mottagaren kunde inte hittas i lokal databas" #: ui/newprofilecommentdialog.cpp:89 ui/newprofilecommentdialog.cpp:126 msgctxt "NewProfileCommentDialog|" msgid "Error" msgstr "Fel" #: ui/newprofilecommentdialog.cpp:90 msgctxt "NewProfileCommentDialog|" msgid "Commented profile addr is not valid" msgstr "Adressen av profil УЄr inte giltig" #: ui/newprofilecommentdialog.cpp:127 msgctxt "NewProfileCommentDialog|" msgid "Recipient encryption key not found from storage" msgstr "Kunde inte hittas kryptering-nyckel frУЅn lokal databas" #: datamodel/nodemodel.cpp:115 msgctxt "NodeModel|" msgid "SSL key generation went wrong, calling exit.." msgstr "Kunde inte skapa SSL-nyckel, utgУЅende.." #: datamodel/nodemodel.cpp:123 msgctxt "NodeModel|" msgid "x509 cert generation went wrong, calling exit.." msgstr "Kunde inte skapa x509-nyckel, utgУЅende.." #: datamodel/nodemodel.cpp:1594 msgctxt "NodeModel|" msgid "Cant load SSL cert" msgstr "Kunde inte ladda SSL-nyckkel" #: datamodel/nodemodel.cpp:1624 msgctxt "NodeModel|" msgid "Cant load SSL key" msgstr "Kunde inte ladda SSL-nyckel " #: ui/passwd_dialog.cpp:104 msgctxt "PasswdDialog|" msgid "Min length 5 (use 10+)" msgstr "MinimilУЄngd УЄr 5 (du skulle anvУЄnda minst 10+)" #: ui/passwordDialog.ui:14 msgctxt "PasswordDialog|" msgid "Password required" msgstr "LУЖsenord krУЄvs" #: ui/passwordDialog.ui:17 msgctxt "PasswordDialog|" msgid "" "Should you forget this word, there is no easy way to recover any of your " "content" msgstr "" "Om du glУЖmmer det hУЄr ordet, det finns inte en praktiskt metod fУЖr att visa " "dina filer senare" #: ui/passwordDialog.ui:29 msgctxt "PasswordDialog|" msgid "Enter password for protection of your messages" msgstr "Ge ett lУЖsenord" #: ui/passwordDialog.ui:42 msgctxt "PasswordDialog|" msgid "" "If you forget this word, there is no simple way to recover your contents" msgstr "" "Om du glУЖmmer det hУЄr ordet, det finns inte en praktiskt metod fУЖr att visa " "dina filer senare" #: ui/passwordDialog.ui:55 msgctxt "PasswordDialog|" msgid "OK" msgstr "OK" #: datamodel/privmsgsearchmodel.cpp:110 #, qt-format msgctxt "PrivateMessageSearchModel|" msgid "" "%1\n" "Trusted by %2" msgstr "" "%1\n" "Betrodd av %2" #: datamodel/privmsgsearchmodel.cpp:237 msgctxt "PrivateMessageSearchModel|" msgid "Direction of message, sent/received" msgstr "Riktning" #: datamodel/privmsgsearchmodel.cpp:247 msgctxt "PrivateMessageSearchModel|" msgid "Dir" msgstr "Riktning" #: datamodel/privmsgsearchmodel.cpp:250 msgctxt "PrivateMessageSearchModel|" msgid "Peer" msgstr "Peer" #: datamodel/privmsgsearchmodel.cpp:253 msgctxt "PrivateMessageSearchModel|" msgid "Time" msgstr "Datum" #: datamodel/privmsgsearchmodel.cpp:256 msgctxt "PrivateMessageSearchModel|" msgid "Subject" msgstr "Rubrik" #: ui/profilecommentdisplay.cpp:54 msgctxt "ProfileCommentDisplay|" msgid "&Add comment..." msgstr "Skapa en ny komment.." #: ui/profilecommentdisplay.cpp:65 msgctxt "ProfileCommentDisplay|" msgid "Save attachment to disk.." msgstr "Spara filen till disk.." #: ui/profilecommentdisplay.cpp:90 msgctxt "ProfileCommentDisplay|" msgid "Error" msgstr "Fel" #: ui/profilecommentdisplay.cpp:91 msgctxt "ProfileCommentDisplay|" msgid "Article not found from local storage" msgstr "Annons kunde inte hittas i lokal databas" #: ui/profilecommentitemdelegate.cpp:91 msgctxt "ProfileCommentItemDelegate|" msgid "Attachments: " msgstr "TillУЄggade filer:" #: datamodel/profilecommentlistingmodel.cpp:219 msgctxt "ProfileCommentListingModel|" msgid "Sender" msgstr "AvsУЄndare" #: datamodel/profilecommentlistingmodel.cpp:222 msgctxt "ProfileCommentListingModel|" msgid "Time" msgstr "Datum" #: datamodel/profilecommentlistingmodel.cpp:225 msgctxt "ProfileCommentListingModel|" msgid "Subject" msgstr "Rubrik" #: datamodel/profilecommentmodel.cpp:67 msgctxt "ProfileCommentModel|" msgid "Profile related to comment not found from database" msgstr "Profilen frУЅn komment kunde inte hittas i lokal databas" #: ui/profilereadersdialog.cpp:73 msgctxt "ProfileReadersDialog|" msgid "View profile" msgstr "Visa profilen" #: datamodel/profilereaderslistingmodel.cpp:174 msgctxt "ProfileReadersListingModel|" msgid "Name or fingerprint of reader" msgstr "Namn eller SHA1 kontrollsumm av lУЄsaren " #: ui/searchdisplay.cpp:62 msgctxt "SearchDisplay|" msgid "Open.." msgstr "У–ppna.." #: textedit/textedit.cpp:127 msgctxt "TextEdit|" msgid "Help" msgstr "HjУЄlp" #: textedit/textedit.cpp:129 msgctxt "TextEdit|" msgid "About &Qt" msgstr "Information om &Qt" #: textedit/textedit.cpp:186 msgctxt "TextEdit|" msgid "Edit Actions" msgstr "Aktions fУЖr redigering" #: textedit/textedit.cpp:188 msgctxt "TextEdit|" msgid "&File" msgstr "Arkiv" #: textedit/textedit.cpp:194 msgctxt "TextEdit|" msgid "&Open..." msgstr "У–ppna.." #: textedit/textedit.cpp:203 msgctxt "TextEdit|" msgid "&Save locally before send" msgstr "&Spara fУЖre skickning" #: textedit/textedit.cpp:210 msgctxt "TextEdit|" msgid "Save locally &As..." msgstr "Spara i lokal disk med namn.." #: textedit/textedit.cpp:218 msgctxt "TextEdit|" msgid "&Print..." msgstr "Skriv ut.." #: textedit/textedit.cpp:226 msgctxt "TextEdit|" msgid "Print Preview..." msgstr "FУЖrhandsgranskning" #: textedit/textedit.cpp:231 msgctxt "TextEdit|" msgid "&Export PDF..." msgstr "&Exportera som PDF" #: textedit/textedit.cpp:244 msgctxt "TextEdit|" msgid "&Edit" msgstr "R&edigera" #: textedit/textedit.cpp:249 msgctxt "TextEdit|" msgid "&Undo" msgstr "У…ngra" #: textedit/textedit.cpp:254 msgctxt "TextEdit|" msgid "&Redo" msgstr "У…terstУЄll" #: textedit/textedit.cpp:261 msgctxt "TextEdit|" msgid "Cu&t" msgstr "Klipp ut" #: textedit/textedit.cpp:267 msgctxt "TextEdit|" msgid "&Copy" msgstr "Kopiera" #: textedit/textedit.cpp:273 msgctxt "TextEdit|" msgid "&Paste" msgstr "Klistra in" #: textedit/textedit.cpp:283 msgctxt "TextEdit|" msgid "Insert link" msgstr "Infoga en lУЄnk" #: textedit/textedit.cpp:287 msgctxt "TextEdit|" msgid "Embed image" msgstr "BУЄdda in en bild" #: textedit/textedit.cpp:294 msgctxt "TextEdit|" msgid "F&ormat" msgstr "F&ormat" #: textedit/textedit.cpp:298 msgctxt "TextEdit|" msgid "&Bold" msgstr "Fet" #: textedit/textedit.cpp:310 msgctxt "TextEdit|" msgid "&Italic" msgstr "Kursiv" #: textedit/textedit.cpp:322 msgctxt "TextEdit|" msgid "&Underline" msgstr "Understruken" #: textedit/textedit.cpp:341 textedit/textedit.cpp:347 msgctxt "TextEdit|" msgid "&Left" msgstr "VУЄnsterjustera" #: textedit/textedit.cpp:342 textedit/textedit.cpp:346 msgctxt "TextEdit|" msgid "C&enter" msgstr "Centrerat" #: textedit/textedit.cpp:343 textedit/textedit.cpp:345 msgctxt "TextEdit|" msgid "&Right" msgstr "HУЖgerjustera" #: textedit/textedit.cpp:349 msgctxt "TextEdit|" msgid "&Justify" msgstr "Marginaljustering" #: textedit/textedit.cpp:376 msgctxt "TextEdit|" msgid "&Color..." msgstr "FУЄrg.." #: textedit/textedit.cpp:383 msgctxt "TextEdit|" msgid "Standard" msgstr "Standardformat" #: textedit/textedit.cpp:384 msgctxt "TextEdit|" msgid "Bullet List (Disc)" msgstr "PunktuppstУЄllning (bollar)" #: textedit/textedit.cpp:385 msgctxt "TextEdit|" msgid "Bullet List (Circle)" msgstr "PunktuppstУЄllning (cirklar)" #: textedit/textedit.cpp:386 msgctxt "TextEdit|" msgid "Bullet List (Square)" msgstr "PunktuppstУЄllning (kvadrater)" #: textedit/textedit.cpp:387 msgctxt "TextEdit|" msgid "Ordered List (Decimal)" msgstr "Numrering (decimal)" #: textedit/textedit.cpp:388 msgctxt "TextEdit|" msgid "Ordered List (Alpha lower)" msgstr "Numrering (smУЅ bokstУЄver)" #: textedit/textedit.cpp:389 msgctxt "TextEdit|" msgid "Ordered List (Alpha upper)" msgstr "Numrering (stora bokstУЄver)" #: textedit/textedit.cpp:390 msgctxt "TextEdit|" msgid "Ordered List (Roman lower)" msgstr "Numrering (smУЅ roman)" #: textedit/textedit.cpp:391 msgctxt "TextEdit|" msgid "Ordered List (Roman upper)" msgstr "Numrering (stora roman)" #: textedit/textedit.cpp:442 msgctxt "TextEdit|" msgid "Application" msgstr "Annonser" #: textedit/textedit.cpp:443 msgctxt "TextEdit|" msgid "" "The document has been modified.\n" "Do you want to save your changes?" msgstr "Dokument har УЄndrats, spara?" #: textedit/textedit.cpp:467 msgctxt "TextEdit|" msgid "Open File..." msgstr "У–ppna filen.." #: textedit/textedit.cpp:468 msgctxt "TextEdit|" msgid "HTML-Files (*.htm *.html);;All Files (*)" msgstr "HTML-Filer (*.htm *.html);;Alla typer (*)" #: textedit/textedit.cpp:485 msgctxt "TextEdit|" msgid "Save as..." msgstr "Spara som.." #: textedit/textedit.cpp:486 msgctxt "TextEdit|" msgid "ODF files (*.odt);;HTML-Files (*.htm *.html);;All Files (*)" msgstr "ODF filer (*.odt);;HTML-Filer (*.htm *.html);;Alla typer (*)" #: textedit/textedit.cpp:501 msgctxt "TextEdit|" msgid "Print Document" msgstr "Skriv ut dokument" #: textedit/textedit.cpp:559 msgctxt "TextEdit|" msgid "Open File" msgstr "У–ppna filen" #: textedit/textedit.cpp:561 msgctxt "TextEdit|" msgid "Files (*.*)" msgstr "Alla filer (*.*)" #: textedit/textedit.cpp:566 msgctxt "TextEdit|" msgid "Error" msgstr "Fel" #: textedit/textedit.cpp:567 msgctxt "TextEdit|" msgid "Can't load image" msgstr "Kan inte ladda en bild" #: textedit/textedit.cpp:621 textedit/textedit.cpp:631 msgctxt "TextEdit|" msgid "File way too big" msgstr "Filen УЄr alldeles fУЖr stor" #: ui/aboutDialog.ui:26 msgctxt "aboutDialog|" msgid "About classified ads" msgstr "Information om Annonser" #: ui/aboutDialog.ui:100 msgctxt "aboutDialog|" msgid " Classified ads is a program for online communications" msgstr "Annonser УЄr en programvara fУЖr kommunikation УЖver internet" #: ui/aboutDialog.ui:160 #| msgid "" #| "

Classified ads is free software. You may use, copy " #| "and modify it if you follow the conditions given in GNU lesser general " #| "public license version 2.1.

Classified ads is copyright ТЉ Antti " #| "JУЄrvinen 2013.

Main feature of the the program is an " #| ""advertisement" - a piece of text belonging to selected " #| "classification. There are several pre-programmed classifications and " #| "operators are encouraged to invent new classifications for new purposes ; " #| "the selection boxes in classification-selection tab are editable. Other " #| "operators may then view the ads, publicly comment the ads, the operators " #| "and also send private messages to each others.

Another important " #| "feature of classified ads is that it is designed to be operated without " #| "any centralized server infrastucture - it is you and other operators " #| "whose computers store and transmit all the content visible inside " #| "classified ads. To get connected you need to know address of at least one " #| "existing computer (a node) so " #| "if your network connection dialog shows no connections, you may need to " #| "contact someone you know is using the software and ask for address of her " #| "node to make initial contact with the network. Once connected the " #| "software should maintain list of addresses of other nodes.

Due to " #| "its server-less design the whole system works best if you leave the " #| "program running always when you have your computer powered on ; while " #| "processing other operators requests it will hog some computing resources " #| "and generate network traffic also when you are not actively using the " #| "program youself - others are.

Operators concerned about privacy of " #| "the content should be aware of following items:

- Data storage " #| "implementation is variant of distributed hash table, practically meaning " #| "that content posted by you gets copied some more-or-less random nodes in " #| "the network.

- Any data item (ad, comment, binary file, private " #| "message etc.) is digitally signed. This makes it more difficult to try to " #| "pose as another operator.

- Operators are reliably identified only " #| "by the SHA1 hash of their generated encryption keys. SHA1 hash is " #| "displayed when viewing details of operator profiles. Other identifying " #| "information like nickname or city name are entered by operator himself " #| "and can be anything. The operator profile, as it is published to the " #| "network, is also signed with the encryption keys of the operator - if you " #| "identify an operator by her SHA1 hash, you have a mechanism for " #| "identifying if any content inside classified ads is posted by this " #| "operator or not. Classified ads internally checks for digital signatures, " #| "throwing away content that fails signature check and tries to provide " #| "SHA1 hash of the operator who posted the content.

- All classified " #| "ads are posted as plain text, no encryption is used. All public profiles " #| "are posted as plain text, no encryption is used. If profile is made " #| "private, it is encrypted to be readable only by selected other profiles. " #| "This applies also to binary files shared by operators private profiles " #| "and comments about private profiles after the profile was made private " #| "(previously plain-text comments or files don't get magically encrypted " #| "afterwards). Private messages are encrypted always to be readable only by " #| "recipient and sender. Attachments follow the privary rules of the " #| "document, they're attachted to.

- As is the case with all " #| "internet-communications, this small fact is true for classified ads too : " #| "once something gets posted online, " #| "there is no way to remove it from network.

- Data " #| "encryption implementation for content is OpenSSL, relying mostly on " #| "algorithms RSA-2048 and AES-256.

- While connections between nodes " #| "are implemented using SSL, other nodes inside network do get to know what " #| "content is being transmitted in neighboring nodes. While there is no " #| "central point for easily collecting this information about particular " #| "classification or operator, operators still should expect no privacy " #| "regarding their doings online, altough some effort has been been put into " #| "hiding contents of private " #| "messages and private profiles.

Programming was (mostly) done by " #| "Antti JУЄrvinen, artwork by Meeri JУЄrvinen.

This product includes " #| "software developed by the OpenSSL Project for use in the OpenSSL Toolkit " #| "(http://www.openssl.org/).

Happy " #| "advertising!


" msgctxt "aboutDialog|" msgid "" "

Classified ads is free software. You may use, copy and " "modify it if you follow the conditions given in GNU lesser general public " "license version 2.1.

Classified ads is copyright ТЉ Antti JУЄrvinen " "2013.

Main feature of the the program is an "advertisement" " "- a piece of text belonging to selected classification. There are several " "pre-programmed classifications and operators are encouraged to invent new " "classifications for new purposes ; the selection boxes in " "classification-selection tab are editable. Other operators may then view the " "ads, publicly comment the ads, the operators and also send private messages " "to each others.

Another important feature of classified ads is that " "it is designed to be operated without any centralized server infrastucture - " "it is you and other operators whose computers store and transmit all the " "content visible inside classified ads. To get connected you need to know " "address of at least one existing computer (a node) so if your network connection dialog shows " "no connections, you may need to contact someone you know is using the " "software and ask for address of her node to make initial contact with the " "network. Once connected the software should maintain list of addresses of " "other nodes.

Due to its server-less design the whole system works " "best if you leave the program running always when you have your computer " "powered on ; while processing other operators requests it will hog some " "computing resources and generate network traffic also when you are not " "actively using the program youself - others are.

Operators concerned " "about privacy of the content should be aware of following items:

- " "Data storage implementation is variant of distributed hash table, practically meaning that " "content posted by you gets copied some more-or-less random nodes in the " "network.

- Any data item (ad, comment, binary file, private message " "etc.) is digitally signed. This makes it more difficult to try to pose as " "another operator.

- Operators are reliably identified only by the " "SHA1 hash of their generated encryption keys. SHA1 hash is displayed when " "viewing details of operator profiles. Other identifying information like " "nickname or city name are entered by operator himself and can be anything. " "The operator profile, as it is published to the network, is also signed with " "the encryption keys of the operator - if you identify an operator by her " "SHA1 hash, you have a mechanism for identifying if any content inside " "classified ads is posted by this operator or not. Classified ads internally " "checks for digital signatures, throwing away content that fails signature " "check and tries to provide SHA1 hash of the operator who posted the " "content.

- All classified ads are posted as plain text, no encryption " "is used. All public profiles are posted as plain text, no encryption is " "used. If profile is made private, it is encrypted to be readable only by " "selected other profiles. This applies also to binary files shared by " "operators private profiles and comments about private profiles after the " "profile was made private (previously plain-text comments or files don't get " "magically encrypted afterwards). Private messages are encrypted always to be " "readable only by recipient and sender. Attachments follow the privary rules " "of the document, they're attachted to.

- As is the case with all " "internet-communications, this small fact is true for classified ads too : " "once something gets posted online, there " "is no way to remove it from network.

- Data encryption " "implementation for content is OpenSSL, relying mostly on algorithms RSA-2048 " "and AES-256.

- While connections between nodes are implemented using " "SSL, other nodes inside network do get to know what content is being " "transmitted in neighboring nodes. While there is no central point for easily " "collecting this information about particular classification or operator, " "operators still should expect no privacy regarding their doings online, " "although some effort has been been put into hiding contents of private messages and private " "profiles.

Programming was (mostly) done by Antti JУЄrvinen, artwork by " "Meeri JУЄrvinen.

This product includes software developed by the " "OpenSSL Project for use in the OpenSSL Toolkit " "(http://www.openssl.org/).

Happy " "advertising!


" msgstr "" "\n" "

Annonser УЄr fri " "programvara. Du kan anvУЄnda, kopiera och modifiera det om du fУЖljer " "konditioner av GNU LGPL licens v2.1 (GNU Lesser General Public License). " "

\n" "


\n" "

Copyright ТЉ Antti " "JУЄrvinen 2013.

\n" "


\n" "

Den viktig " "funktionen av Annonser УЄr "annons" - dokument som har en " "klassificering. Program har flera klassificrings och anvУЄndarna kan skapa " "mera. AnvУЄndarna kan lУЄsa annonser, skapa kommentarer om dom och ha " "korrespondens.

\n" "


\n" "

En annan viktig " "egenskap УЄr att Annonser УЄr inte serverbaserad, det anvУЄnder inte en databas " "i server УЖver nУЄtverket. Alla filer sparas i datorer av anvУЄndarna av " "Annonser. FУЖr at kunna ansluta sig med nУЄtverket av Annonser man har at veta " "minst en adress av en dator som УЄr i nУЄtverket. NУЄr program har anslutat sig " "med nУЄtverket det ska underhУЅlla sin egen listan om andra datorer i " "nУЄtverket.

\n" "


\n" "

PУЅ grund av " "partnerbaserad-konstruktion hela system fungerar bУЄst om du lУЄmnar program " "pУЅ ocksУЅ nУЄr du inte anvУЄnder program sjУЄlv. Program ska ta datorkraft och " "generera traffic УЖver nУЄtverket nУЄr du inte anvУЄnder program, men andra " "anvУЄndare ska bli betjУЄnad.

\n" "


\n" "

AnvУЄndarna " "intresserad av sina informationssУЄkerhet skulle veta att:

\n" "

- Databas УЄr en " "variant av distribuerad hashtabell (DHT). Det betyder att filer skickad i " "nУЄtverket sparas i flera datorer i andra anvУЄndarnas УЄgo.

\n" "

- Alla " "dataobjekter i Annonser har en digital signatur.
- Den enda vУЄrdig " "identifiering fУЖr operatУЖr ar SHA1 kontrollsumm av hennes RSA-nyckel. Alla " "andra punkter om operatУЖr kan vara vad som helst.

\n" "

- Alla annonser " "ska sparas i nУЄtverket utan kryptering - alla kan lУЄsa dom. Alla publik " "profiler sparas i nУЄtverket utan kryptering. OperatУЖrprofiler som УЄr privat " "ska bli krypterad bara fУЖr listade anvУЄndare. Samma gУЄller ocksУЅ fУЖr " "kommentarer och filer av profil. Om en profil blir privat, gammal " "kommentarer och filer av profil УЄr inte krypterad. Korrespondens (brev) " "mellan anvУЄndarna ska vara krypterad alltid. Bilagor fУЖljer kryptering av " "sina УЄgande dokument.

\n" "

- Som УЄr fallet " "med alla kommunikation УЖver internet, det hУЄr gУЄller ocksУЅ: om nУЅgonting УЄr " "publicerad i Annonser, det finns inte en " "metod fУЖr att ta det bort senare.
- Programvara fУЖr kryptering " "УЄr OpenSSL, algoritmen mest avУЄnda УЄr RSA-2048 och AES-256.

\n" "

- Kommunikationen " "mellan datorer i nУЄtverket УЄr krypterad med SSL. Din partners i nУЄtverket " "kan se alla trafik till din nod. AnvУЄndarna skulle inte ponera anonymitet " "eller hemlighet УЖver saker dom gУЖr i nУЄtverket.

\n" "


\n" "

Programmering " "gjorts av Antti JУЄrvinen, konst av Meeri JУЄrvinen.

\n" "


\n" "

Denna produkt " "innehУЅller programvara som har utvecklats av OpenSSL project fУЖr anvУЄndning " "i OpenSSL toolkit (http://www.openssl.org).

\n" "


" #: ui/attachmentListDialog.ui:26 msgctxt "attachmentListDialog|" msgid "List of attached files" msgstr "Listan av bilagor" #: ui/editContact.ui:26 msgctxt "editContactDialog|" msgid "Edit a contact" msgstr "Redigera en kontakt" #: ui/editContact.ui:39 msgctxt "editContactDialog|" msgid "Address (SHA1) of contact" msgstr "Adress (SHA1 kontrollsumm) av kontakt " #: ui/editContact.ui:53 msgctxt "editContactDialog|" msgid "Local nickname" msgstr "Lokal smeknamn" #: ui/editContact.ui:65 msgctxt "editContactDialog|" msgid "" "

Settings some trusted is public information to readers " "of your profile

" msgstr "" "

Om du trУЖst pУЅ en profil, det УЄr publik " "information

" #: ui/editContact.ui:68 msgctxt "editContactDialog|" msgid "This contact is to be publicly trusted in transactions" msgstr "Den hУЄr kontakt УЄr tillfУЖrlitlig " #: frontWidget.ui:14 msgctxt "frontWidget|" msgid "Form" msgstr "Form" #: frontWidget.ui:39 msgctxt "frontWidget|" msgid "Classified ads" msgstr "Annonseravdelning" #: frontWidget.ui:67 msgctxt "frontWidget|" msgid "Search for classified ads about" msgstr "SУЖk annonser efter" #: frontWidget.ui:74 msgctxt "frontWidget|" msgid "Perform" msgstr "UtfУЖra" #: frontWidget.ui:97 msgctxt "frontWidget|" msgid "of" msgstr "av" #: frontWidget.ui:113 msgctxt "frontWidget|" msgid "in" msgstr "i" #: frontWidget.ui:123 msgctxt "frontWidget|" msgid "Search" msgstr "SУЖk" #: frontWidget.ui:161 msgctxt "frontWidget|" msgid "My profile" msgstr "Egen profil" #: frontWidget.ui:177 frontWidget.ui:932 msgctxt "frontWidget|" msgid "Profile address" msgstr "Adress av profil" #: frontWidget.ui:208 frontWidget.ui:643 msgctxt "frontWidget|" msgid "Nickname" msgstr "Smeknamn" #: frontWidget.ui:225 frontWidget.ui:669 msgctxt "frontWidget|" msgid "Greeting text" msgstr "HУЄlsningar" #: frontWidget.ui:232 msgctxt "frontWidget|" msgid "For the rest of the world. " msgstr "FУЖr hela vУЄrlden" #: frontWidget.ui:239 frontWidget.ui:695 msgctxt "frontWidget|" msgid "First name" msgstr "FУЖrnamn" #: frontWidget.ui:253 frontWidget.ui:715 msgctxt "frontWidget|" msgid "Family name" msgstr "Efternamn" #: frontWidget.ui:263 msgctxt "frontWidget|" msgid "City/country" msgstr "Stad/rike" #: frontWidget.ui:273 msgctxt "frontWidget|" msgid "BTC address" msgstr "BTC-adress" #: frontWidget.ui:280 msgctxt "frontWidget|" msgid "If you wish to receive payments via BTC, include your BTC address too." msgstr "Om du will ta mot betalningar, ge din BTC-adress " #: frontWidget.ui:287 frontWidget.ui:799 msgctxt "frontWidget|" msgid "State of the world" msgstr "TillstУЅndet i vУЄrlden" #: frontWidget.ui:294 msgctxt "frontWidget|" msgid "Longer explanation about state of the world" msgstr "TillstУЅndet i vУЄrlden" #: frontWidget.ui:301 msgctxt "frontWidget|" msgid "Profile is private" msgstr "Profilen УЄr privat" #: frontWidget.ui:308 msgctxt "frontWidget|" msgid "Readers of profile" msgstr "LУЄsarna av profilen" #: frontWidget.ui:315 msgctxt "frontWidget|" msgid "None of the fields is mandatory" msgstr "Ingent pukt УЄr obligatoriskt " #: frontWidget.ui:322 msgctxt "frontWidget|" msgid "Time of last update" msgstr "Tid av senaste УЄndring" #: frontWidget.ui:342 msgctxt "frontWidget|" msgid "Publish" msgstr "Publicera" #: frontWidget.ui:355 msgctxt "frontWidget|" msgid "Revert changes" msgstr "У…tergУЅ" #: frontWidget.ui:369 msgctxt "frontWidget|" msgid "Details of operator profile:" msgstr "Detaljer om operatУЖrsprofil" #: frontWidget.ui:401 msgctxt "frontWidget|" msgid "" "\n" "\n" "Click \n" "to \n" "Add\n" "Image" msgstr "" "\n" "\n" "Klicka fУЖr at \n" "lУЄgga till\n" "en bild" #: frontWidget.ui:425 frontWidget.ui:845 msgctxt "frontWidget|" msgid "Shared files" msgstr "Filer i fildelning " #: frontWidget.ui:461 frontWidget.ui:892 msgctxt "frontWidget|" msgid "Latest comments" msgstr "Senaste kommentarer" #: frontWidget.ui:504 msgctxt "frontWidget|" msgid "Contacts" msgstr "Kontakter" #: frontWidget.ui:536 msgctxt "frontWidget|" msgid "Add contact" msgstr "LУЄgg kontakt" #: frontWidget.ui:543 msgctxt "frontWidget|" msgid "Remove contact" msgstr "Ta bort kontakt" #: frontWidget.ui:550 msgctxt "frontWidget|" msgid "View profile" msgstr "Visa profilen" #: frontWidget.ui:557 msgctxt "frontWidget|" msgid "Send message" msgstr "Skicka en elektronisk post" #: frontWidget.ui:569 msgctxt "frontWidget|" msgid "Private messages" msgstr "Korrespondens" #: frontWidget.ui:624 msgctxt "frontWidget|" msgid "Profile details" msgstr "Detaljer av profil" #: frontWidget.ui:741 msgctxt "frontWidget|" msgid "City/Country" msgstr "Stad/rike" #: frontWidget.ui:767 msgctxt "frontWidget|" msgid "BTC Addr" msgstr "BTC-adress" #: frontWidget.ui:829 msgctxt "frontWidget|" msgid "" "




No

Image

Inserted

" msgstr "" "




Ingen

Bild

Valts

" #: frontWidget.ui:874 msgctxt "frontWidget|" msgid "Send message to operator" msgstr "Skicka en brev" #: frontWidget.ui:879 msgctxt "frontWidget|" msgid "View readers" msgstr "LУЄsarna av profilen" #: frontWidget.ui:927 msgctxt "frontWidget|" msgid "Comment" msgstr "Skicka en kommentar" #: frontWidget.ui:959 msgctxt "frontWidget|" msgid "Add to contacts" msgstr "LУЄgga till din kontakter" #: ui/insertLink.ui:26 msgctxt "insertLinkDialog|" msgid "Insert link" msgstr "Infoga en lУЄnk" #: ui/insertLink.ui:39 msgctxt "insertLinkDialog|" msgid "URL" msgstr "URL" #: ui/insertLink.ui:112 msgctxt "insertLinkDialog|" msgid "Link label in text" msgstr "LУЄnktext" #: ui/manualConnectionDialog.ui:26 msgctxt "manualConnectionDialog|" msgid "Manually add node to connection queue" msgstr "LУЄgga till en nod (anslutningen)" #: ui/manualConnectionDialog.ui:48 msgctxt "manualConnectionDialog|" msgid "Remote node listen port" msgstr "TCP-port av peer" #: ui/manualConnectionDialog.ui:78 msgctxt "manualConnectionDialog|" msgid "Remote node network address" msgstr "NУЄtverk adress" #: ui/manualConnectionDialog.ui:91 msgctxt "manualConnectionDialog|" msgid "IPv4, IPv6 or DNS name" msgstr "IPv4, IPv6 eller DNS-namn" #: ui/metadataQuery.ui:26 msgctxt "metadataQuery|" msgid "File information" msgstr "Information av filen" #: ui/metadataQuery.ui:60 msgctxt "metadataQuery|" msgid "Name of the file:" msgstr "Namn: " #: ui/metadataQuery.ui:81 msgctxt "metadataQuery|" msgid "Owner of file (name or SHA1 if CA operator):" msgstr "InnehУЅllsУЄgare: " #: ui/metadataQuery.ui:111 msgctxt "metadataQuery|" msgid "License of use:" msgstr "Licens: " # Lets not translate license names.. #: ui/metadataQuery.ui:122 msgctxt "metadataQuery|" msgid "Public domain" msgstr "Public domain" #: ui/metadataQuery.ui:127 msgctxt "metadataQuery|" msgid "GPL" msgstr "GPL" #: ui/metadataQuery.ui:132 msgctxt "metadataQuery|" msgid "LGPL" msgstr "LGPL" #: ui/metadataQuery.ui:137 msgctxt "metadataQuery|" msgid "BSD" msgstr "BSD" #: ui/metadataQuery.ui:142 msgctxt "metadataQuery|" msgid "CC-BY" msgstr "CC-BY" #: ui/metadataQuery.ui:147 msgctxt "metadataQuery|" msgid "CC-BY-SA" msgstr "CC-BY-SA" #: ui/metadataQuery.ui:152 msgctxt "metadataQuery|" msgid "CC-BY-ND" msgstr "CC-BY-ND" #: ui/metadataQuery.ui:157 msgctxt "metadataQuery|" msgid "CC-BY-NC" msgstr "CC-BY-NC" #: ui/metadataQuery.ui:162 msgctxt "metadataQuery|" msgid "CC-BY-NC-SA" msgstr "CC-BY-NC-SA" #: ui/metadataQuery.ui:167 msgctxt "metadataQuery|" msgid "CC-BY-NC-ND" msgstr "CC-BY-NC-ND" #: ui/metadataQuery.ui:182 msgctxt "metadataQuery|" msgid "Mime-type:" msgstr "Mime-typ:" #: ui/metadataQuery.ui:199 msgctxt "metadataQuery|" msgid "Description of file:" msgstr "Beskrivning:" #: ui/metadataQuery.ui:218 msgctxt "metadataQuery|" msgid "Enter information regarding file before publish:" msgstr "Ange information fУЖre publicera:" #: ui/newClassifiedAd.ui:26 msgctxt "newCaDialog|" msgid "Post a new classified ad" msgstr "Skicka en ny annons" #: ui/newClassifiedAd.ui:47 msgctxt "newCaDialog|" msgid "About" msgstr "I frУЅga om" #: ui/newClassifiedAd.ui:65 msgctxt "newCaDialog|" msgid "of" msgstr "av" #: ui/newClassifiedAd.ui:81 msgctxt "newCaDialog|" msgid "in" msgstr "i" #: ui/newClassifiedAd.ui:95 msgctxt "newCaDialog|" msgid "Subject" msgstr "Rubrik" #: ui/newClassifiedAd.ui:129 msgctxt "newCaDialog|" msgid "Attachment: " msgstr "Bilagor: " #: ui/newClassifiedAd.ui:149 msgctxt "newCaDialog|" msgid "Add" msgstr "Inkludera" #: ui/newPrivMsg.ui:26 msgctxt "newPrivMsgDialog|" msgid "Send a private message" msgstr "Skicka en ny brev" #: ui/newPrivMsg.ui:39 msgctxt "newPrivMsgDialog|" msgid "Subject" msgstr "Rubrik" #: ui/newPrivMsg.ui:53 msgctxt "newPrivMsgDialog|" msgid "Recipient" msgstr "Mottagare" #: ui/newPrivMsg.ui:83 msgctxt "newPrivMsgDialog|" msgid "Attachments: " msgstr "Bilagor: " #: ui/newPrivMsg.ui:103 msgctxt "newPrivMsgDialog|" msgid "Attach" msgstr "Inkludera" #: ui/newProfileComment.ui:26 msgctxt "newProfileCommentDialog|" msgid "Comment a operators profile" msgstr "Skicka en kommentar av en profil" #: ui/newProfileComment.ui:39 msgctxt "newProfileCommentDialog|" msgid "Subject" msgstr "Rubrik" #: ui/newProfileComment.ui:53 msgctxt "newProfileCommentDialog|" msgid "Commented profile" msgstr "OperatУЖrsprofil" #: ui/newProfileComment.ui:89 msgctxt "newProfileCommentDialog|" msgid "Attachments:" msgstr "Bilagor:" #: ui/newProfileComment.ui:109 msgctxt "newProfileCommentDialog|" msgid "Attach" msgstr "Inkludera" #: ui/newTextDocument.ui:26 msgctxt "newTextDocumentDialog|" msgid "Edit and publish a new text document" msgstr "Skapa och publicera en ny dokument" #: ui/newTextDocument.ui:39 msgctxt "newTextDocumentDialog|" msgid "Document title" msgstr "Rubrik" #: ui/newTextDocument.ui:75 msgctxt "newTextDocumentDialog|" msgid "Attachments:" msgstr "Bilagor:" #: ui/newTextDocument.ui:95 msgctxt "newTextDocumentDialog|" msgid "Attach" msgstr "Inkludera" #: ui/profileCommentDisplay.ui:26 msgctxt "profileCommentDisplay|" msgid "Comments regarding operator" msgstr "Kommentarer av en operatУЖr" #: ui/profileReadersDialog.ui:26 msgctxt "profileReadersDialog|" msgid "Profile readers list" msgstr "LУЄsarna av en profil" #: ui/profileReadersDialog.ui:37 msgctxt "profileReadersDialog|" msgid "Search for profiles to add" msgstr "SУЖk fУЖr profiler som ska bli lУЄggad till" #: ui/profileReadersDialog.ui:44 msgctxt "profileReadersDialog|" msgid "First 100 matching profiles:" msgstr "FУЖrst 100 motsvarande profiler:" #: ui/profileReadersDialog.ui:66 msgctxt "profileReadersDialog|" msgid "Add seleted to list of readers" msgstr "Inkludera vald profiler" #: ui/profileReadersDialog.ui:73 msgctxt "profileReadersDialog|" msgid "Current list of readers" msgstr "Aktuell listan" #: ui/profileReadersDialog.ui:90 msgctxt "profileReadersDialog|" msgid "Close" msgstr "StУЄng" #: ui/profileReadersDialog.ui:109 msgctxt "profileReadersDialog|" msgid "Remove selected" msgstr "Ta bort vald profiler" #: ui/searchDisplay.ui:26 msgctxt "searchDisplay|" msgid "Search data storage" msgstr "SУЖk lokal databas" #: ui/searchDisplay.ui:60 msgctxt "searchDisplay|" msgid "Words:" msgstr "Alla ord:" #: ui/searchDisplay.ui:70 msgctxt "searchDisplay|" msgid "Search" msgstr "SУЖk" #: ui/searchDisplay.ui:87 msgctxt "searchDisplay|" msgid "Network search" msgstr "SУЖk i nУЄtverket" #: ui/searchDisplay.ui:101 msgctxt "searchDisplay|" msgid "Search ads" msgstr "SУЖk annonser" #: ui/searchDisplay.ui:111 msgctxt "searchDisplay|" msgid "Search profiles" msgstr "SУЖk profiler" #: ui/searchDisplay.ui:121 msgctxt "searchDisplay|" msgid "Search comments" msgstr "SУЖk kommentarer" #: ui/settingsDialog.ui:26 msgctxt "settingsDialog|" msgid "Node settings" msgstr "InstУЄllningar av dator" #: ui/settingsDialog.ui:39 msgctxt "settingsDialog|" msgid "TCP listen port" msgstr "TCP-port" #: ui/settingsDialog.ui:58 msgctxt "settingsDialog|" msgid "Incoming TCP listen port. Change requires node restart. " msgstr "TCP-port fУЖr inkommande trafik. MУЅste omstarta programmen om УЄndrats.." #: ui/settingsDialog.ui:84 msgctxt "settingsDialog|" msgid "DNS name of node" msgstr "DNS-namn" #: ui/settingsDialog.ui:91 msgctxt "settingsDialog|" msgid "" "If you have permanent DNS name for your machine, you may type it here to be " "used to reference your node" msgstr "Om du har DNS-namnet for din dator" #: ui/settingsDialog.ui:103 msgctxt "settingsDialog|" msgid "Data store limits:" msgstr "BegrУЄnsningar fУЖr databas" #: ui/settingsDialog.ui:115 msgctxt "settingsDialog|" msgid "Nr of profiles to keep" msgstr "Antal profiler" #: ui/settingsDialog.ui:154 msgctxt "settingsDialog|" msgid "Nr of private messages to keep" msgstr "Antal E-brev" #: ui/settingsDialog.ui:193 msgctxt "settingsDialog|" msgid "Nr of binary blobs to keep" msgstr "Antal filer" #: ui/settingsDialog.ui:232 msgctxt "settingsDialog|" msgid "Nr of CAs to keep" msgstr "Antal annons" #: ui/settingsDialog.ui:251 msgctxt "settingsDialog|" msgid "" "Number of classified ads to keep in storage, total, including all " "classifications. Oldest referenced will be deleted first." msgstr "" #: ui/settingsDialog.ui:274 msgctxt "settingsDialog|" msgid "Nr of profile comments to keep" msgstr "Antal kommentarer" #: ui/statusDialog.ui:26 msgctxt "statusDialog|" msgid "Network and connection status" msgstr "У–versikt av nУЄtverket" #: ui/statusDialog.ui:48 msgctxt "statusDialog|" msgid "Detected own IPv4" msgstr "Upphittade egen IPv4 adress" #: ui/statusDialog.ui:61 ui/statusDialog.ui:93 msgctxt "statusDialog|" msgid "" "Should your friend have trouble connecting, give her this address with port " "number" msgstr "" "Om din vУЄn kan inte ta kontakt med nУЄtverket, ge honom den hУЄr adress med " "port " #: ui/statusDialog.ui:74 msgctxt "statusDialog|" msgid "IPv6" msgstr "IPv6" #: ui/statusDialog.ui:113 msgctxt "statusDialog|" msgid "TCP port currently used" msgstr "TCP port" #: ui/statusDialog.ui:151 msgctxt "statusDialog|" msgid "Currently open connections" msgstr "У–ppna datastrУЖmmar" #: ui/statusDialog.ui:195 msgctxt "statusDialog|" msgid "Manually add connection" msgstr "LУЄgga till en peer" #: ui/statusDialog.ui:202 msgctxt "statusDialog|" msgid "Close" msgstr "StУЄng" classified-ads-0.09/test/000077500000000000000000000000001260620453500152775ustar00rootroot00000000000000classified-ads-0.09/test/Makefile000066400000000000000000001111531260620453500167410ustar00rootroot00000000000000############################################################################# # Makefile for building: testca # Generated by qmake (2.01a) (Qt 4.8.6) on: la joulukuuta 13 21:30:56 2014 # Project: testca.pro # Template: app # Command: /usr/bin/qmake-qt4 -o Makefile testca.pro ############################################################################# ####### Compiler, tools and options CC = gcc CXX = g++ DEFINES = -DQT_WEBKIT -DQT_SQL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED CFLAGS = -m64 -pipe -g -Wall -W -D_REENTRANT $(DEFINES) CXXFLAGS = -m64 -pipe -fprofile-arcs -ftest-coverage -g -Wall -W -D_REENTRANT $(DEFINES) INCPATH = -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtSql -I/usr/include/qt4 -I/usr/include/qt4/QtTest -I. LINK = g++ LFLAGS = -m64 LIBS = $(SUBLIBS) -L/usr/lib/x86_64-linux-gnu -lssl -lcrypto -lgcrypt -lnatpmp -lqjson -lgcov -lQtTest -lQtSql -lQtGui -lQtNetwork -lQtCore -lpthread AR = ar cqs RANLIB = QMAKE = /usr/bin/qmake-qt4 TAR = tar -cf COMPRESS = gzip -9f COPY = cp -f SED = sed COPY_FILE = $(COPY) COPY_DIR = $(COPY) -r STRIP = strip INSTALL_FILE = install -m 644 -p INSTALL_DIR = $(COPY_DIR) INSTALL_PROGRAM = install -m 755 -p DEL_FILE = rm -f SYMLINK = ln -f -s DEL_DIR = rmdir MOVE = mv -f CHK_DIR_EXISTS= test -d MKDIR = mkdir -p ####### Output directory OBJECTS_DIR = ./ ####### Files SOURCES = testca.cpp \ ../util/hash.cpp \ mockup_controller.cpp \ ../datamodel/model.cpp \ ../datamodel/nodemodel.cpp \ ../datamodel/contentencryptionmodel.cpp \ ../net/networklistener.cpp \ ../net/protocol_message_formatter.cpp \ ../net/protocol_message_parser.cpp \ ../net/node.cpp \ ../net/connection.cpp \ ../datamodel/netrequestexecutor.cpp \ ../datamodel/profile.cpp \ ../datamodel/ca.cpp \ ../datamodel/binaryfile.cpp \ ../datamodel/profilemodel.cpp \ mockup_model.cpp \ mockup_nodemodel.cpp \ ../datamodel/camodel.cpp \ ../datamodel/binaryfilemodel.cpp \ ../datamodel/privmsgmodel.cpp \ ../datamodel/privmsg.cpp \ ../datamodel/profilecommentmodel.cpp \ ../datamodel/searchmodel.cpp \ ../datamodel/datamodelbase.cpp \ ../datamodel/profilecomment.cpp moc_mcontroller.cpp \ moc_mockup_controller.cpp \ moc_model.cpp \ moc_nodemodel.cpp \ moc_contentencryptionmodel.cpp \ moc_networklistener.cpp \ moc_protocol_message_parser.cpp \ moc_node.cpp \ moc_connection.cpp \ moc_netrequestexecutor.cpp \ moc_profile.cpp \ moc_camodel.cpp \ moc_binaryfilemodel.cpp \ moc_profilemodel.cpp \ moc_mockup_model.cpp \ moc_mmodelprotocolinterface.cpp \ moc_mockup_nodemodel.cpp \ moc_privmsgmodel.cpp \ moc_profilecommentmodel.cpp \ moc_searchmodel.cpp \ moc_datamodelbase.cpp OBJECTS = testca.o \ hash.o \ mockup_controller.o \ model.o \ nodemodel.o \ contentencryptionmodel.o \ networklistener.o \ protocol_message_formatter.o \ protocol_message_parser.o \ node.o \ connection.o \ netrequestexecutor.o \ profile.o \ ca.o \ binaryfile.o \ profilemodel.o \ mockup_model.o \ mockup_nodemodel.o \ camodel.o \ binaryfilemodel.o \ privmsgmodel.o \ privmsg.o \ profilecommentmodel.o \ searchmodel.o \ datamodelbase.o \ profilecomment.o \ moc_mcontroller.o \ moc_mockup_controller.o \ moc_model.o \ moc_nodemodel.o \ moc_contentencryptionmodel.o \ moc_networklistener.o \ moc_protocol_message_parser.o \ moc_node.o \ moc_connection.o \ moc_netrequestexecutor.o \ moc_profile.o \ moc_camodel.o \ moc_binaryfilemodel.o \ moc_profilemodel.o \ moc_mockup_model.o \ moc_mmodelprotocolinterface.o \ moc_mockup_nodemodel.o \ moc_privmsgmodel.o \ moc_profilecommentmodel.o \ moc_searchmodel.o \ moc_datamodelbase.o DIST = /usr/share/qt4/mkspecs/common/unix.conf \ /usr/share/qt4/mkspecs/common/linux.conf \ /usr/share/qt4/mkspecs/common/gcc-base.conf \ /usr/share/qt4/mkspecs/common/gcc-base-unix.conf \ /usr/share/qt4/mkspecs/common/g++-base.conf \ /usr/share/qt4/mkspecs/common/g++-unix.conf \ /usr/share/qt4/mkspecs/qconfig.pri \ /usr/share/qt4/mkspecs/modules/qt_webkit.pri \ /usr/share/qt4/mkspecs/features/qt_functions.prf \ /usr/share/qt4/mkspecs/features/qt_config.prf \ /usr/share/qt4/mkspecs/features/exclusive_builds.prf \ /usr/share/qt4/mkspecs/features/default_pre.prf \ /usr/share/qt4/mkspecs/features/debug.prf \ /usr/share/qt4/mkspecs/features/default_post.prf \ /usr/share/qt4/mkspecs/features/qtestlib.prf \ /usr/share/qt4/mkspecs/features/shared.prf \ /usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \ /usr/share/qt4/mkspecs/features/warn_on.prf \ /usr/share/qt4/mkspecs/features/qt.prf \ /usr/share/qt4/mkspecs/features/unix/thread.prf \ /usr/share/qt4/mkspecs/features/moc.prf \ /usr/share/qt4/mkspecs/features/resources.prf \ /usr/share/qt4/mkspecs/features/uic.prf \ /usr/share/qt4/mkspecs/features/yacc.prf \ /usr/share/qt4/mkspecs/features/lex.prf \ /usr/share/qt4/mkspecs/features/include_source_dir.prf \ testca.pro QMAKE_TARGET = testca DESTDIR = TARGET = testca first: all ####### Implicit rules .SUFFIXES: .o .c .cpp .cc .cxx .C .cpp.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" .cc.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" .cxx.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" .C.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" .c.o: $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<" ####### Build rules all: Makefile $(TARGET) $(TARGET): $(OBJECTS) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) { test -n "$(DESTDIR)" && DESTDIR="$(DESTDIR)" || DESTDIR=.; } && test $$(gdb --version | sed -e 's,[^0-9][^0-9]*\([0-9]\)\.\([0-9]\).*,\1\2,;q') -gt 72 && gdb --nx --batch --quiet -ex 'set confirm off' -ex "save gdb-index $$DESTDIR" -ex quit '$(TARGET)' && test -f $(TARGET).gdb-index && objcopy --add-section '.gdb_index=$(TARGET).gdb-index' --set-section-flags '.gdb_index=readonly' '$(TARGET)' '$(TARGET)' && rm -f $(TARGET).gdb-index || true Makefile: testca.pro /usr/share/qt4/mkspecs/linux-g++-64/qmake.conf /usr/share/qt4/mkspecs/common/unix.conf \ /usr/share/qt4/mkspecs/common/linux.conf \ /usr/share/qt4/mkspecs/common/gcc-base.conf \ /usr/share/qt4/mkspecs/common/gcc-base-unix.conf \ /usr/share/qt4/mkspecs/common/g++-base.conf \ /usr/share/qt4/mkspecs/common/g++-unix.conf \ /usr/share/qt4/mkspecs/qconfig.pri \ /usr/share/qt4/mkspecs/modules/qt_webkit.pri \ /usr/share/qt4/mkspecs/features/qt_functions.prf \ /usr/share/qt4/mkspecs/features/qt_config.prf \ /usr/share/qt4/mkspecs/features/exclusive_builds.prf \ /usr/share/qt4/mkspecs/features/default_pre.prf \ /usr/share/qt4/mkspecs/features/debug.prf \ /usr/share/qt4/mkspecs/features/default_post.prf \ /usr/share/qt4/mkspecs/features/qtestlib.prf \ /usr/share/qt4/mkspecs/features/shared.prf \ /usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \ /usr/share/qt4/mkspecs/features/warn_on.prf \ /usr/share/qt4/mkspecs/features/qt.prf \ /usr/share/qt4/mkspecs/features/unix/thread.prf \ /usr/share/qt4/mkspecs/features/moc.prf \ /usr/share/qt4/mkspecs/features/resources.prf \ /usr/share/qt4/mkspecs/features/uic.prf \ /usr/share/qt4/mkspecs/features/yacc.prf \ /usr/share/qt4/mkspecs/features/lex.prf \ /usr/share/qt4/mkspecs/features/include_source_dir.prf \ /usr/lib/x86_64-linux-gnu/libQtTest.prl \ /usr/lib/x86_64-linux-gnu/libQtSql.prl \ /usr/lib/x86_64-linux-gnu/libQtGui.prl \ /usr/lib/x86_64-linux-gnu/libQtNetwork.prl \ /usr/lib/x86_64-linux-gnu/libQtCore.prl $(QMAKE) -o Makefile testca.pro /usr/share/qt4/mkspecs/common/unix.conf: /usr/share/qt4/mkspecs/common/linux.conf: /usr/share/qt4/mkspecs/common/gcc-base.conf: /usr/share/qt4/mkspecs/common/gcc-base-unix.conf: /usr/share/qt4/mkspecs/common/g++-base.conf: /usr/share/qt4/mkspecs/common/g++-unix.conf: /usr/share/qt4/mkspecs/qconfig.pri: /usr/share/qt4/mkspecs/modules/qt_webkit.pri: /usr/share/qt4/mkspecs/features/qt_functions.prf: /usr/share/qt4/mkspecs/features/qt_config.prf: /usr/share/qt4/mkspecs/features/exclusive_builds.prf: /usr/share/qt4/mkspecs/features/default_pre.prf: /usr/share/qt4/mkspecs/features/debug.prf: /usr/share/qt4/mkspecs/features/default_post.prf: /usr/share/qt4/mkspecs/features/qtestlib.prf: /usr/share/qt4/mkspecs/features/shared.prf: /usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf: /usr/share/qt4/mkspecs/features/warn_on.prf: /usr/share/qt4/mkspecs/features/qt.prf: /usr/share/qt4/mkspecs/features/unix/thread.prf: /usr/share/qt4/mkspecs/features/moc.prf: /usr/share/qt4/mkspecs/features/resources.prf: /usr/share/qt4/mkspecs/features/uic.prf: /usr/share/qt4/mkspecs/features/yacc.prf: /usr/share/qt4/mkspecs/features/lex.prf: /usr/share/qt4/mkspecs/features/include_source_dir.prf: /usr/lib/x86_64-linux-gnu/libQtTest.prl: /usr/lib/x86_64-linux-gnu/libQtSql.prl: /usr/lib/x86_64-linux-gnu/libQtGui.prl: /usr/lib/x86_64-linux-gnu/libQtNetwork.prl: /usr/lib/x86_64-linux-gnu/libQtCore.prl: qmake: FORCE @$(QMAKE) -o Makefile testca.pro dist: @$(CHK_DIR_EXISTS) .tmp/testca1.0.0 || $(MKDIR) .tmp/testca1.0.0 $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/testca1.0.0/ && $(COPY_FILE) --parents ../util/hash.h ../mcontroller.h mockup_controller.h ../datamodel/model.h ../datamodel/nodemodel.h ../datamodel/contentencryptionmodel.h ../net/networklistener.h ../net/protocol_message_formatter.h ../net/protocol_message_parser.h ../net/node.h ../net/connection.h ../datamodel/netrequestexecutor.h ../datamodel/profile.h ../datamodel/camodel.h ../datamodel/ca.h ../datamodel/binaryfile.h ../datamodel/binaryfilemodel.h ../datamodel/profilemodel.h mockup_model.h ../datamodel/mmodelprotocolinterface.h ../datamodel/mnodemodelprotocolinterface.h mockup_nodemodel.h ../datamodel/privmsgmodel.h ../datamodel/privmsg.h ../datamodel/profilecommentmodel.h ../datamodel/searchmodel.h ../datamodel/datamodelbase.h ../datamodel/profilecomment.h .tmp/testca1.0.0/ && $(COPY_FILE) --parents testca.cpp ../util/hash.cpp mockup_controller.cpp ../datamodel/model.cpp ../datamodel/nodemodel.cpp ../datamodel/contentencryptionmodel.cpp ../net/networklistener.cpp ../net/protocol_message_formatter.cpp ../net/protocol_message_parser.cpp ../net/node.cpp ../net/connection.cpp ../datamodel/netrequestexecutor.cpp ../datamodel/profile.cpp ../datamodel/ca.cpp ../datamodel/binaryfile.cpp ../datamodel/profilemodel.cpp mockup_model.cpp mockup_nodemodel.cpp ../datamodel/camodel.cpp ../datamodel/binaryfilemodel.cpp ../datamodel/privmsgmodel.cpp ../datamodel/privmsg.cpp ../datamodel/profilecommentmodel.cpp ../datamodel/searchmodel.cpp ../datamodel/datamodelbase.cpp ../datamodel/profilecomment.cpp .tmp/testca1.0.0/ && (cd `dirname .tmp/testca1.0.0` && $(TAR) testca1.0.0.tar testca1.0.0 && $(COMPRESS) testca1.0.0.tar) && $(MOVE) `dirname .tmp/testca1.0.0`/testca1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/testca1.0.0 clean:compiler_clean -$(DEL_FILE) $(OBJECTS) -$(DEL_FILE) *~ core *.core ####### Sub-libraries distclean: clean -$(DEL_FILE) $(TARGET) -$(DEL_FILE) Makefile check: first mocclean: compiler_moc_header_clean compiler_moc_source_clean mocables: compiler_moc_header_make_all compiler_moc_source_make_all compiler_moc_header_make_all: moc_mcontroller.cpp moc_mockup_controller.cpp moc_model.cpp moc_nodemodel.cpp moc_contentencryptionmodel.cpp moc_networklistener.cpp moc_protocol_message_parser.cpp moc_node.cpp moc_connection.cpp moc_netrequestexecutor.cpp moc_profile.cpp moc_camodel.cpp moc_binaryfilemodel.cpp moc_profilemodel.cpp moc_mockup_model.cpp moc_mmodelprotocolinterface.cpp moc_mockup_nodemodel.cpp moc_privmsgmodel.cpp moc_profilecommentmodel.cpp moc_searchmodel.cpp moc_datamodelbase.cpp compiler_moc_header_clean: -$(DEL_FILE) moc_mcontroller.cpp moc_mockup_controller.cpp moc_model.cpp moc_nodemodel.cpp moc_contentencryptionmodel.cpp moc_networklistener.cpp moc_protocol_message_parser.cpp moc_node.cpp moc_connection.cpp moc_netrequestexecutor.cpp moc_profile.cpp moc_camodel.cpp moc_binaryfilemodel.cpp moc_profilemodel.cpp moc_mockup_model.cpp moc_mmodelprotocolinterface.cpp moc_mockup_nodemodel.cpp moc_privmsgmodel.cpp moc_profilecommentmodel.cpp moc_searchmodel.cpp moc_datamodelbase.cpp moc_mcontroller.cpp: ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../mcontroller.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../mcontroller.h -o moc_mcontroller.cpp moc_mockup_controller.cpp: ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ mockup_model.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/mnodemodelprotocolinterface.h \ mockup_controller.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) mockup_controller.h -o moc_mockup_controller.cpp moc_model.cpp: ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/datamodelbase.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/model.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../datamodel/model.h -o moc_model.cpp moc_nodemodel.cpp: ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/datamodelbase.h \ ../datamodel/nodemodel.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../datamodel/nodemodel.h -o moc_nodemodel.cpp moc_contentencryptionmodel.cpp: ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/contentencryptionmodel.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../datamodel/contentencryptionmodel.h -o moc_contentencryptionmodel.cpp moc_networklistener.cpp: ../net/connection.h \ ../net/protocol.h \ ../util/hash.h \ ../net/node.h \ ../net/networklistener.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../net/networklistener.h -o moc_networklistener.cpp moc_protocol_message_parser.cpp: ../net/protocol.h \ ../util/hash.h \ ../net/node.h \ ../net/connection.h \ ../net/protocol_message_parser.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../net/protocol_message_parser.h -o moc_protocol_message_parser.cpp moc_node.cpp: ../util/hash.h \ ../net/node.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../net/node.h -o moc_node.cpp moc_connection.cpp: ../net/protocol.h \ ../util/hash.h \ ../net/node.h \ ../net/connection.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../net/connection.h -o moc_connection.cpp moc_netrequestexecutor.cpp: ../net/protocol.h \ ../util/hash.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/netrequestexecutor.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../datamodel/netrequestexecutor.h -o moc_netrequestexecutor.cpp moc_profile.cpp: ../util/hash.h \ ../datamodel/profile.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../datamodel/profile.h -o moc_profile.cpp moc_camodel.cpp: ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/datamodelbase.h \ ../datamodel/camodel.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../datamodel/camodel.h -o moc_camodel.cpp moc_binaryfilemodel.cpp: ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/datamodelbase.h \ ../datamodel/binaryfilemodel.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../datamodel/binaryfilemodel.h -o moc_binaryfilemodel.cpp moc_profilemodel.cpp: ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/datamodelbase.h \ ../datamodel/profilemodel.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../datamodel/profilemodel.h -o moc_profilemodel.cpp moc_mockup_model.cpp: ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/mnodemodelprotocolinterface.h \ mockup_model.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) mockup_model.h -o moc_mockup_model.cpp moc_mmodelprotocolinterface.cpp: ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/mmodelprotocolinterface.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../datamodel/mmodelprotocolinterface.h -o moc_mmodelprotocolinterface.cpp moc_mockup_nodemodel.cpp: ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/mnodemodelprotocolinterface.h \ mockup_nodemodel.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) mockup_nodemodel.h -o moc_mockup_nodemodel.cpp moc_privmsgmodel.cpp: ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/datamodelbase.h \ ../datamodel/privmsgmodel.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../datamodel/privmsgmodel.h -o moc_privmsgmodel.cpp moc_profilecommentmodel.cpp: ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/datamodelbase.h \ ../datamodel/profilecommentmodel.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../datamodel/profilecommentmodel.h -o moc_profilecommentmodel.cpp moc_searchmodel.cpp: ../util/hash.h \ ../net/protocol.h \ ../mcontroller.h \ ../datamodel/netrequestexecutor.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/searchmodel.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../datamodel/searchmodel.h -o moc_searchmodel.cpp moc_datamodelbase.cpp: ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/datamodelbase.h /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) ../datamodel/datamodelbase.h -o moc_datamodelbase.cpp compiler_rcc_make_all: compiler_rcc_clean: compiler_image_collection_make_all: qmake_image_collection.cpp compiler_image_collection_clean: -$(DEL_FILE) qmake_image_collection.cpp compiler_moc_source_make_all: testca.moc compiler_moc_source_clean: -$(DEL_FILE) testca.moc testca.moc: ../util/hash.h \ mockup_controller.h \ ../mcontroller.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ mockup_model.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/mnodemodelprotocolinterface.h \ mockup_nodemodel.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/datamodelbase.h \ ../datamodel/contentencryptionmodel.h \ ../log.h \ ../net/protocol_message_formatter.h \ ../datamodel/searchmodel.h \ ../net/protocol_message_parser.h \ ../datamodel/camodel.h \ ../datamodel/ca.h \ ../datamodel/profilemodel.h \ ../datamodel/profile.h \ testca.cpp /usr/lib/x86_64-linux-gnu/qt4/bin/moc $(DEFINES) $(INCPATH) testca.cpp -o testca.moc compiler_uic_make_all: compiler_uic_clean: compiler_yacc_decl_make_all: compiler_yacc_decl_clean: compiler_yacc_impl_make_all: compiler_yacc_impl_clean: compiler_lex_make_all: compiler_lex_clean: compiler_clean: compiler_moc_header_clean compiler_moc_source_clean ####### Compile testca.o: testca.cpp ../util/hash.h \ mockup_controller.h \ ../mcontroller.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ mockup_model.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/mnodemodelprotocolinterface.h \ mockup_nodemodel.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/datamodelbase.h \ ../datamodel/contentencryptionmodel.h \ ../log.h \ ../net/protocol_message_formatter.h \ ../datamodel/searchmodel.h \ ../net/protocol_message_parser.h \ ../datamodel/camodel.h \ ../datamodel/ca.h \ ../datamodel/profilemodel.h \ ../datamodel/profile.h \ testca.moc $(CXX) -c $(CXXFLAGS) $(INCPATH) -o testca.o testca.cpp hash.o: ../util/hash.cpp ../util/hash.h \ ../log.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o hash.o ../util/hash.cpp mockup_controller.o: mockup_controller.cpp mockup_controller.h \ ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ mockup_model.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../log.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/datamodelbase.h \ ../net/networklistener.h \ ../net/networkconnectorengine.h \ ../controller.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mockup_controller.o mockup_controller.cpp model.o: ../datamodel/model.cpp ../datamodel/model.h \ ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/datamodelbase.h \ ../datamodel/mmodelprotocolinterface.h \ ../log.h \ ../net/protocol_message_formatter.h \ ../datamodel/searchmodel.h \ ../datamodel/contentencryptionmodel.h \ ../datamodel/profilemodel.h \ ../datamodel/binaryfilemodel.h \ ../datamodel/camodel.h \ ../datamodel/privmsgmodel.h \ ../datamodel/profilecommentmodel.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o model.o ../datamodel/model.cpp nodemodel.o: ../datamodel/nodemodel.cpp ../datamodel/nodemodel.h \ ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/datamodelbase.h \ ../log.h \ ../net/protocol_message_formatter.h \ ../datamodel/searchmodel.h \ ../datamodel/model.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/camodel.h \ ../datamodel/binaryfilemodel.h \ ../datamodel/profilemodel.h \ ../datamodel/privmsgmodel.h \ ../datamodel/profilecommentmodel.h \ ../datamodel/const.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o nodemodel.o ../datamodel/nodemodel.cpp contentencryptionmodel.o: ../datamodel/contentencryptionmodel.cpp ../datamodel/contentencryptionmodel.h \ ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../log.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/datamodelbase.h \ ../datamodel/mmodelprotocolinterface.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o contentencryptionmodel.o ../datamodel/contentencryptionmodel.cpp networklistener.o: ../net/networklistener.cpp ../net/networklistener.h \ ../net/connection.h \ ../net/protocol.h \ ../util/hash.h \ ../net/node.h \ ../log.h \ ../mcontroller.h \ ../datamodel/netrequestexecutor.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/datamodelbase.h \ ../datamodel/mmodelprotocolinterface.h \ ../net/protocol_message_parser.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o networklistener.o ../net/networklistener.cpp protocol_message_formatter.o: ../net/protocol_message_formatter.cpp ../net/protocol_message_formatter.h \ ../net/protocol.h \ ../util/hash.h \ ../datamodel/searchmodel.h \ ../mcontroller.h \ ../datamodel/netrequestexecutor.h \ ../net/connection.h \ ../net/node.h \ ../log.h \ ../datamodel/const.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o protocol_message_formatter.o ../net/protocol_message_formatter.cpp protocol_message_parser.o: ../net/protocol_message_parser.cpp ../net/protocol_message_parser.h \ ../net/protocol.h \ ../util/hash.h \ ../net/node.h \ ../net/connection.h \ ../log.h \ ../datamodel/mmodelprotocolinterface.h \ ../mcontroller.h \ ../datamodel/netrequestexecutor.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/profilemodel.h \ ../datamodel/datamodelbase.h \ ../datamodel/binaryfilemodel.h \ ../datamodel/camodel.h \ ../datamodel/privmsgmodel.h \ ../datamodel/profilecommentmodel.h \ ../datamodel/searchmodel.h \ ../net/protocol_message_formatter.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o protocol_message_parser.o ../net/protocol_message_parser.cpp node.o: ../net/node.cpp ../net/node.h \ ../util/hash.h \ ../log.h \ ../net/connection.h \ ../net/protocol.h \ ../mcontroller.h \ ../datamodel/netrequestexecutor.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o node.o ../net/node.cpp connection.o: ../net/connection.cpp ../net/connection.h \ ../net/protocol.h \ ../util/hash.h \ ../net/node.h \ ../log.h \ ../datamodel/model.h \ ../mcontroller.h \ ../datamodel/netrequestexecutor.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/datamodelbase.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/profilemodel.h \ ../datamodel/camodel.h \ ../datamodel/binaryfilemodel.h \ ../datamodel/privmsgmodel.h \ ../datamodel/profilecommentmodel.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o connection.o ../net/connection.cpp netrequestexecutor.o: ../datamodel/netrequestexecutor.cpp ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../log.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/datamodelbase.h \ ../datamodel/mmodelprotocolinterface.h \ ../net/protocol_message_formatter.h \ ../datamodel/searchmodel.h \ ../datamodel/profilemodel.h \ ../datamodel/profile.h \ ../datamodel/contentencryptionmodel.h \ ../datamodel/binaryfilemodel.h \ ../datamodel/camodel.h \ ../datamodel/privmsgmodel.h \ ../datamodel/profilecommentmodel.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o netrequestexecutor.o ../datamodel/netrequestexecutor.cpp profile.o: ../datamodel/profile.cpp ../datamodel/profile.h \ ../util/hash.h \ ../log.h \ ../mcontroller.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/datamodelbase.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/contentencryptionmodel.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o profile.o ../datamodel/profile.cpp ca.o: ../datamodel/ca.cpp ../datamodel/ca.h \ ../util/hash.h \ ../log.h \ ../mcontroller.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/datamodelbase.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/contentencryptionmodel.h \ ../datamodel/profile.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ca.o ../datamodel/ca.cpp binaryfile.o: ../datamodel/binaryfile.cpp ../datamodel/binaryfile.h \ ../util/hash.h \ ../log.h \ ../mcontroller.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/datamodelbase.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/contentencryptionmodel.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o binaryfile.o ../datamodel/binaryfile.cpp profilemodel.o: ../datamodel/profilemodel.cpp ../datamodel/profilemodel.h \ ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/datamodelbase.h \ ../log.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/profile.h \ ../datamodel/contentencryptionmodel.h \ ../datamodel/const.h \ ../datamodel/searchmodel.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o profilemodel.o ../datamodel/profilemodel.cpp mockup_model.o: mockup_model.cpp mockup_model.h \ ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/mnodemodelprotocolinterface.h \ mockup_nodemodel.h \ ../log.h \ ../datamodel/profilemodel.h \ ../datamodel/datamodelbase.h \ ../datamodel/binaryfilemodel.h \ ../datamodel/camodel.h \ ../datamodel/privmsgmodel.h \ ../datamodel/profilecommentmodel.h \ ../datamodel/searchmodel.h \ ../datamodel/contentencryptionmodel.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mockup_model.o mockup_model.cpp mockup_nodemodel.o: mockup_nodemodel.cpp mockup_nodemodel.h \ ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../log.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mockup_nodemodel.o mockup_nodemodel.cpp camodel.o: ../datamodel/camodel.cpp ../datamodel/camodel.h \ ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/datamodelbase.h \ ../log.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/contentencryptionmodel.h \ ../datamodel/ca.h \ ../datamodel/profile.h \ ../datamodel/const.h \ ../datamodel/searchmodel.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o camodel.o ../datamodel/camodel.cpp binaryfilemodel.o: ../datamodel/binaryfilemodel.cpp ../datamodel/binaryfilemodel.h \ ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/datamodelbase.h \ ../log.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/binaryfile.h \ ../datamodel/profile.h \ ../datamodel/contentencryptionmodel.h \ ../datamodel/profilemodel.h \ ../datamodel/const.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o binaryfilemodel.o ../datamodel/binaryfilemodel.cpp privmsgmodel.o: ../datamodel/privmsgmodel.cpp ../datamodel/privmsgmodel.h \ ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/datamodelbase.h \ ../log.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/privmsg.h \ ../datamodel/contentencryptionmodel.h \ ../datamodel/const.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o privmsgmodel.o ../datamodel/privmsgmodel.cpp privmsg.o: ../datamodel/privmsg.cpp ../datamodel/ca.h \ ../util/hash.h \ ../log.h \ ../mcontroller.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/datamodelbase.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/contentencryptionmodel.h \ ../datamodel/privmsg.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o privmsg.o ../datamodel/privmsg.cpp profilecommentmodel.o: ../datamodel/profilecommentmodel.cpp ../datamodel/profilecommentmodel.h \ ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../datamodel/datamodelbase.h \ ../datamodel/profilemodel.h \ ../datamodel/profile.h \ ../log.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/profilecomment.h \ ../datamodel/contentencryptionmodel.h \ ../datamodel/const.h \ ../datamodel/searchmodel.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o profilecommentmodel.o ../datamodel/profilecommentmodel.cpp searchmodel.o: ../datamodel/searchmodel.cpp ../datamodel/searchmodel.h \ ../util/hash.h \ ../net/protocol.h \ ../mcontroller.h \ ../datamodel/netrequestexecutor.h \ ../net/connection.h \ ../net/node.h \ ../log.h \ ../datamodel/ca.h \ ../datamodel/profile.h \ ../datamodel/profilecomment.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/datamodelbase.h \ ../datamodel/mmodelprotocolinterface.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o searchmodel.o ../datamodel/searchmodel.cpp datamodelbase.o: ../datamodel/datamodelbase.cpp ../datamodel/datamodelbase.h \ ../mcontroller.h \ ../util/hash.h \ ../datamodel/netrequestexecutor.h \ ../net/protocol.h \ ../net/connection.h \ ../net/node.h \ ../log.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o datamodelbase.o ../datamodel/datamodelbase.cpp profilecomment.o: ../datamodel/profilecomment.cpp ../datamodel/profilecomment.h \ ../util/hash.h \ ../net/protocol.h \ ../mcontroller.h \ ../datamodel/netrequestexecutor.h \ ../net/connection.h \ ../net/node.h \ ../log.h \ ../datamodel/model.h \ ../datamodel/nodemodel.h \ ../datamodel/mnodemodelprotocolinterface.h \ ../datamodel/datamodelbase.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/contentencryptionmodel.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o profilecomment.o ../datamodel/profilecomment.cpp moc_mcontroller.o: moc_mcontroller.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mcontroller.o moc_mcontroller.cpp moc_mockup_controller.o: moc_mockup_controller.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mockup_controller.o moc_mockup_controller.cpp moc_model.o: moc_model.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_model.o moc_model.cpp moc_nodemodel.o: moc_nodemodel.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_nodemodel.o moc_nodemodel.cpp moc_contentencryptionmodel.o: moc_contentencryptionmodel.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_contentencryptionmodel.o moc_contentencryptionmodel.cpp moc_networklistener.o: moc_networklistener.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_networklistener.o moc_networklistener.cpp moc_protocol_message_parser.o: moc_protocol_message_parser.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_protocol_message_parser.o moc_protocol_message_parser.cpp moc_node.o: moc_node.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_node.o moc_node.cpp moc_connection.o: moc_connection.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_connection.o moc_connection.cpp moc_netrequestexecutor.o: moc_netrequestexecutor.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_netrequestexecutor.o moc_netrequestexecutor.cpp moc_profile.o: moc_profile.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_profile.o moc_profile.cpp moc_camodel.o: moc_camodel.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_camodel.o moc_camodel.cpp moc_binaryfilemodel.o: moc_binaryfilemodel.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_binaryfilemodel.o moc_binaryfilemodel.cpp moc_profilemodel.o: moc_profilemodel.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_profilemodel.o moc_profilemodel.cpp moc_mockup_model.o: moc_mockup_model.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mockup_model.o moc_mockup_model.cpp moc_mmodelprotocolinterface.o: moc_mmodelprotocolinterface.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mmodelprotocolinterface.o moc_mmodelprotocolinterface.cpp moc_mockup_nodemodel.o: moc_mockup_nodemodel.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mockup_nodemodel.o moc_mockup_nodemodel.cpp moc_privmsgmodel.o: moc_privmsgmodel.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_privmsgmodel.o moc_privmsgmodel.cpp moc_profilecommentmodel.o: moc_profilecommentmodel.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_profilecommentmodel.o moc_profilecommentmodel.cpp moc_searchmodel.o: moc_searchmodel.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_searchmodel.o moc_searchmodel.cpp moc_datamodelbase.o: moc_datamodelbase.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_datamodelbase.o moc_datamodelbase.cpp ####### Install install: FORCE uninstall: FORCE FORCE: classified-ads-0.09/test/README000066400000000000000000000014141260620453500161570ustar00rootroot00000000000000In order to successfully run the tests, first backup file $HOME/.classified_ads/sqlite_db then remove the file, then run the tests. They're not destructive but make certain assumptions and they do manipulate trust list of profile that they manage to open, if they can. If you have profile with password 'salasana' it will be used in tests. If the database is removed prior to running tests, you'll exercise also database creation code so code coverage gets slightly better .. but is still bad. After tests have been run, the database file may be safely thrown away and original moved back. If you run the test program twice, you should still get 100% pass rate but on second run it do the run using slightly different code paths because the database is already there. classified-ads-0.09/test/mockup_controller.cpp000066400000000000000000000107731260620453500215540ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include "mockup_controller.h" #include "../log.h" #include "../net/node.h" #include "../datamodel/model.h" #include "../net/networklistener.h" #include "../net/networkconnectorengine.h" #include // for getpid() #include #include "../datamodel/binaryfile.h" MockUpController::MockUpController() : iNode(NULL), iModel(NULL), iListener(NULL) { LOG_STR("MockUpController::Controller in\n") ; qRegisterMetaType("MController::CAErrorSituation"); iModel = new Model(this); iNode = new Node(iModel->nodeModel().nodeFingerPrint(), iModel->nodeModel().listenPortOfThisNode()) ; iListener = new NetworkListener (this, iModel) ; // network listener enumerates network interfaces and sets // possible ipv6 addr into iNode() -> LOG_STR("MockUpController::Controller out\n") ; } MockUpController::~MockUpController() { LOG_STR("MockUpController::~Controller\n") ; // .. connections reference iListener. // so in order to prevent random crash at closing, lets first get rid // of connections, only after that delete iListener ; iModel->closeAllConnections(true) ; // now safe to delete listener (and net engine) delete iListener ; // will delete also connections received by listener delete iModel ; delete iNode ; } void MockUpController::userInterfaceAction ( CAUserInterfaceRequest aRequest, const Hash& aHashConcerned, const Hash& aFetchFromNode ) { LOG_STR2("MockUpController::userInterfaceAction %d\n", (int) aRequest) ; } void MockUpController::hideUI() { } void MockUpController::showUI() { } void MockUpController::exitApp() { } void MockUpController::displayAboutBox() { } void MockUpController::displayFront() { LOG_STR("displayFront\n") ; } void MockUpController::handleError(MController::CAErrorSituation aError, const QString& aExplanation) { LOG_STR2("Error enum value %d\n", aError) ; QLOG_STR(aExplanation) ; switch ( aError ) { case DataBaseNotMountable: LOG_STR("Can't open DB\n") ; break ; } return ; } Node& MockUpController::getNode() const { return *iNode ; } NetworkListener *MockUpController::networkListener() const { return iListener ; } Model& MockUpController::model() const { return *iModel ; } void MockUpController::setContentKeyPasswd(QString aPasswd) { iContentPasswd = aPasswd ; } QString MockUpController::contentKeyPasswd() const { return iContentPasswd ; } void MockUpController::setProfileInUse(const Hash& aProfileHash) { iProfileHash = aProfileHash ; } const Hash& MockUpController::profileInUse() { return iProfileHash; } void MockUpController::startRetrievingContent(NetworkRequestExecutor::NetworkRequestQueueItem aReq,bool aIsBackgroundDl, ProtocolItemType aTypeOfExpectedObject) { return ; } void MockUpController::storePrivateDataOfSelectedProfile(bool /*aPublishTrustListToo*/) { return ; } void MockUpController::reStorePrivateDataOfSelectedProfile() { return ; } bool MockUpController::isContactInContactList(const Hash& aFingerPrint) const { return true ; } QString MockUpController::displayableNameForProfile(const Hash& aProfileFingerPrint) const { return "eino leino reino" ; } void MockUpController::offerDisplayNameForProfile(const Hash& aProfileFingerPrint, const QString& aDisplayName, const bool iUpdatePersistenStorage) { return ; } void MockUpController::displayFileInfoOnUi(const BinaryFile& aFileMetadata) { QLOG_STR("displayFileInfoOnUi file = " + aFileMetadata.iFileName) ; } classified-ads-0.09/test/mockup_controller.h000066400000000000000000000104671260620453500212210ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef MOCKUP_CONTROLLER_H #define MOCKUP_CONTROLLER_H #include #include #include "../mcontroller.h" #include "mockup_model.h" /** * @brief Controller for testing purposes only. Not included in real binary. */ class MockUpController : public MController { Q_OBJECT public: /** * constructor */ MockUpController() ; /** * Destructor */ ~MockUpController() ; /** * Method for requesting different things to take place in UI. * controller mostly routes these to FrontWidget but other actions * may be in order too.. * @param aRequest users orders * @param aHashConcerned possible hash parameter ; can be * null hash if action is not about specific hash * @return none */ virtual void userInterfaceAction ( CAUserInterfaceRequest aRequest, const Hash& aHashConcerned = KNullHash, const Hash& aFetchFromNode = KNullHash ) ; /** * method for hiding UI */ virtual void hideUI() ; /** * method for showing UI */ virtual void showUI() ; public slots: virtual void exitApp() ; /**< quitting */ virtual void displayAboutBox() ; /**< bragging */ virtual void displayFront() ; /**< this initializes the "normal" display */ /** * Method for handling errors inside application. * @param aError Reason for error call, from error enum above * @param aExplanation NULL or human-readable description about what went * wrong. */ virtual void handleError(MController::CAErrorSituation aError, const QString& aExplanation) ; /** * Method for node ; this may be changed during startup-phase * but not after that */ virtual Node& getNode() const ; /** * method for network listener ; it is parent of all connections, * also the outgoing */ virtual NetworkListener *networkListener() const ; virtual Model& model() const ; virtual void setProfileInUse(const Hash& aProfileHash) ; const Hash& profileInUse() ; virtual void setContentKeyPasswd(QString aPasswd) ; /** * method for getting gpg passwd previously set */ virtual QString contentKeyPasswd() const ; virtual void startRetrievingContent(NetworkRequestExecutor::NetworkRequestQueueItem aReq,bool aIsBackgroundDl, ProtocolItemType aTypeOfExpectedObject) ; virtual void storePrivateDataOfSelectedProfile(bool aPublishTrustListToo = false) ; virtual void reStorePrivateDataOfSelectedProfile() ; virtual bool isContactInContactList(const Hash& aFingerPrint) const; virtual QString displayableNameForProfile(const Hash& aProfileFingerPrint) const ; virtual void offerDisplayNameForProfile(const Hash& aProfileFingerPrint, const QString& aDisplayName, const bool iUpdatePersistenStorage=false) ; /** * method that puts dialog or similar on display, about a published file */ virtual void displayFileInfoOnUi(const BinaryFile& aFileMetadata) ; private: Node *iNode ; /**< our network presence object, there is single instance */ Model *iModel ; /**< data storage animal */ NetworkListener *iListener ; /**< Incoming connections handler, for ipv4 */ QString iContentPasswd ; Hash iProfileHash ; } ; #endif classified-ads-0.09/test/mockup_model.cpp000066400000000000000000000100061260620453500204560ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "mockup_model.h" #include "mockup_nodemodel.h" #include "../log.h" #include "../net/node.h" #include "../datamodel/profilemodel.h" #include // library init #include // random seed things #include "../datamodel/binaryfilemodel.h" #include "../datamodel/camodel.h" #include "../datamodel/privmsgmodel.h" #include "../datamodel/profilecommentmodel.h" #include "../datamodel/searchmodel.h" #include "../datamodel/contentencryptionmodel.h" #include MockUpModel::MockUpModel( MController *aController ) : iNetworkRequests(NULL), iController(aController), iProfileModel(NULL), iBinaryFileModel(NULL), iCAModel(NULL), iPrivMsgModel(NULL), iContentEncryptionModel(NULL), iProfileCommentModel(NULL), iSearchModel(NULL) { LOG_STR("MockUpModel::MockUpModel in\n") ; SSL_load_error_strings() ; SSL_library_init() ; QFile randomFile("/dev/urandom") ; QByteArray randomBytes = randomFile.read(1024) ; char *randomBytesPointer = randomBytes.data() ; RAND_seed(randomBytesPointer, 1024); iNodeModel = new MockUpNodeModel(iController) ; iProfileModel = new ProfileModel(aController, *this) ; iBinaryFileModel = new BinaryFileModel(aController, *this) ; iCAModel = new ClassifiedAdsModel(aController, *this) ; iPrivMsgModel = new PrivMessageModel(aController, *this) ; iProfileCommentModel = new ProfileCommentModel(aController, *this) ; iContentEncryptionModel = new ContentEncryptionModel(aController, *this) ; iSearchModel = new SearchModel(*this,*iController) ; iSearchModel->setObjectName("CA SearchModel test") ; LOG_STR("MockUpModel::MockUpModel out\n") ; } MockUpModel::~MockUpModel() { delete iNetworkRequests ; delete iNodeModel ; delete iProfileModel ; delete iBinaryFileModel ; delete iCAModel ; delete iPrivMsgModel ; delete iProfileCommentModel ; delete iContentEncryptionModel ; delete iSearchModel; LOG_STR("MockUpModel::~MockUpModel\n") ; } void MockUpModel::addNetworkRequest(NetworkRequestExecutor::NetworkRequestQueueItem& aRequest) const { LOG_STR2(" MockUpModel::addNetworkRequest type %d\n", aRequest.iRequestType) ; if ( iNetworkRequests!= NULL ) { iNetworkRequests->append(aRequest) ; } } bool MockUpModel::lock() { return iMutex.tryLock(100*1000); } void MockUpModel::unlock() { iMutex.unlock() ; } MNodeModelProtocolInterface& MockUpModel::nodeModel() const { return *iNodeModel ; } ProfileModel& MockUpModel::profileModel() const { return *iProfileModel ; } BinaryFileModel& MockUpModel::binaryFileModel() const { return *iBinaryFileModel ; } ClassifiedAdsModel& MockUpModel::classifiedAdsModel() const { return *iCAModel ; } PrivMessageModel& MockUpModel::privateMessageModel() const { return *iPrivMsgModel ; } ContentEncryptionModel& MockUpModel::contentEncryptionModel() const { return *iContentEncryptionModel ; } ProfileCommentModel& MockUpModel::profileCommentModel() const { return *iProfileCommentModel ; } SearchModel* MockUpModel::searchModel() const { return iSearchModel ; } classified-ads-0.09/test/mockup_model.h000066400000000000000000000064351260620453500201360ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef MOCKUP_MODEL_H #define MOCKUP_MODEL_H #include "../mcontroller.h" #include "../datamodel/mmodelprotocolinterface.h" #include "../datamodel/mnodemodelprotocolinterface.h" #include class MockUpNodeModel ; class ProfileModel ; class BinaryFileModel ; class ClassifiedAdsModel ; class PrivMessageModel ; class ContentEncryptionModel ; class ProfileCommentModel ; class SearchModel; /** * @brief not a real datamodel. debugging aid. */ class MockUpModel : public MModelProtocolInterface { Q_OBJECT public: /** * constructor */ MockUpModel(MController *aMController) ; /** * Destructor */ ~MockUpModel() ; /** * method for adding a network request * @param aRequest is the request to add * @return none */ virtual void addNetworkRequest(NetworkRequestExecutor::NetworkRequestQueueItem& aRequest) const ; /** * thread sync: this claims access to datamodel */ virtual bool lock() ; /** * thread sync: releases data model to other threads */ virtual void unlock() ; /** * method for getting node-specific datamodel */ virtual MNodeModelProtocolInterface& nodeModel() const ; virtual ProfileModel& profileModel() const ; /** * method for getting blob-specific datamodel */ virtual BinaryFileModel& binaryFileModel() const ; /** method for getting the ads datamodel */ virtual ClassifiedAdsModel& classifiedAdsModel() const ; virtual PrivMessageModel& privateMessageModel() const ; /**< method for getting the priv msg datamodel */ virtual ContentEncryptionModel& contentEncryptionModel() const ; virtual ProfileCommentModel& profileCommentModel() const ; /**< method for getting the comment datamodel */ virtual SearchModel* searchModel() const ; /**< method for getting the full text search datamodel */ public: MockUpNodeModel* iNodeModel ; QList* iNetworkRequests ; private: // member data MController *iController ; QMutex iMutex ; ProfileModel* iProfileModel ; BinaryFileModel* iBinaryFileModel ; ClassifiedAdsModel* iCAModel ; PrivMessageModel* iPrivMsgModel ; ContentEncryptionModel* iContentEncryptionModel ; ProfileCommentModel* iProfileCommentModel ; SearchModel* iSearchModel ; } ; #endif /* #define MOCKUP_CONTROLLER_H */ classified-ads-0.09/test/mockup_nodemodel.cpp000066400000000000000000000123211260620453500213260ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "mockup_nodemodel.h" #include "../log.h" #include "../net/node.h" #include MockUpNodeModel::MockUpNodeModel( MController *aController ) : iLastNodeReceived(NULL), iController(aController) { iFingerPrintOfThisNode = new Hash(1,2,3,4,5) ; LOG_STR("MockUpNodeModel::MockUpNodeModel in\n") ; LOG_STR("MockUpNodeModel::MockUpNodeModel out\n") ; } MockUpNodeModel::~MockUpNodeModel() { LOG_STR("MockUpNodeModel::~MockUpNodeModel\n") ; iController = NULL ; if ( iLastNodeReceived ) { delete iLastNodeReceived ; } delete iFingerPrintOfThisNode ; } bool MockUpNodeModel::nodeGreetingReceived(Node& aNode , bool aWasInitialGreeting ) { QLOG_STR("MockUpNodeModel::nodeGreetingReceived " + aNode.nodeFingerPrint().toString()) ; if ( iLastNodeReceived) { delete iLastNodeReceived ; } iLastNodeReceived = new Node(aNode.nodeFingerPrint(), aNode.port()) ; iLastNodeReceived->setIpv4Addr(aNode.ipv4Addr()) ; iLastNodeReceived->setIpv6Addr(aNode.ipv6Addr()) ; iLastNodeReceived->setGoodNodeListTime(aNode.goodNodeListTime()) ; iLastNodeReceived->setLastConnectTime(aNode.lastConnectTime()) ; iLastNodeReceived->setLastMutualConnectTime(aNode.lastMutualConnectTime()) ; iLastNodeReceived->setCanReceiveIncoming(aNode.canReceiveIncoming()) ; return true ; } Hash& MockUpNodeModel::nodeFingerPrint() { /**< returns fingerprint of this node */ return *iFingerPrintOfThisNode ; } int MockUpNodeModel::listenPortOfThisNode() { /**< TCP listen port number method */ return 3 ; } const QSslCertificate& MockUpNodeModel::nodeCert() const { static QSslCertificate retval ; return retval ; } /** getter for ssl certificate of SSL sock */ const QSslKey& MockUpNodeModel::nodeKey() const { static QSslKey retval ; return retval ; } QByteArray* MockUpNodeModel::getNextItemToSend(Connection& aConnection) { return NULL ; } Node* MockUpNodeModel::nodeByHash(const Hash& aHash) { return NULL ; } QList* MockUpNodeModel::getNodesBeforeHash(const Hash& aHash, int aMaxNodes) { return NULL ; } void MockUpNodeModel::closeOldestInactiveConnection() { } QList* MockUpNodeModel::getNodesAfterHash(const Hash& aHash, int aMaxNodes, int aMaxInactivityMinutes ) { return NULL ; } QList MockUpNodeModel::getHotAddresses() { static QList retval ; return retval ; } bool MockUpNodeModel::updateNodeLastConnectTimeInDb(Node& aNode) { return false ; } QList* MockUpNodeModel::getHotNodes(int aMaxNodes) { return NULL ; } void MockUpNodeModel::addNodeFromBroadcast(const Hash& /*aNodeFingerPrint*/, const QHostAddress& /*aAddr*/, int aPort ) { LOG_STR2("addNodeFromBroadcast %d\n", aPort) ; } bool MockUpNodeModel::addNodeToConnectionWishList(Node* aNode) { LOG_STR("addNodeToConnectionWishList \n") ; delete aNode ; return true ; } bool MockUpNodeModel::addNodeToConnectionWishList(const Hash& aNode) { LOG_STR("addNodeToConnectionWishList hash-reference version \n") ; return true ; } Node* MockUpNodeModel::nextConnectionWishListItem() { return NULL; // means that no more connections in list } bool MockUpNodeModel::isNodeAlreadyConnected(const Node& aNode) const { return true ; } bool MockUpNodeModel::isNodeAlreadyConnected(const Hash& aHash) const { return false ; } Hash MockUpNodeModel::bucketEndHash(const Hash& aFingerPrintOfNodeAsking) { return aFingerPrintOfNodeAsking ; } bool MockUpNodeModel::updateNodeLastMutualConnectTimeInDb(const Hash& aNodeFp, quint32 aTime ) { return true ; } void MockUpNodeModel::setListenPortOfThisNode(int port) { // yes return ; } QList* MockUpNodeModel::getNodesBeforeHash(const Hash& h, unsigned int i) { QList* r = new QList() ; return r ; } QList* MockUpNodeModel::getNodesAfterHash(const Hash& h, unsigned int u, int i) { QList* r = new QList() ; return r ; } void MockUpNodeModel::setDnsName(QString s) { iDnsName = s ; } QString MockUpNodeModel::getDnsName() { return iDnsName ; } void MockUpNodeModel::offerNodeToRecentlyFailedList(const Hash& /*aFailedNodeHash*/) { // have very thin implementation here } classified-ads-0.09/test/mockup_nodemodel.h000066400000000000000000000121441260620453500207760ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef MOCKUP_NODEMODEL_H #define MOCKUP_NODEMODEL_H #include "../mcontroller.h" #include "../net/node.h" #include "../datamodel/mmodelprotocolinterface.h" #include "../datamodel/mnodemodelprotocolinterface.h" #include /** * @brief not a real part datamodel. debugging aid. */ class MockUpNodeModel : public QObject, public MNodeModelProtocolInterface { Q_OBJECT public: /** * constructor */ MockUpNodeModel(MController *aMController) ; /** * Destructor */ ~MockUpNodeModel() ; virtual bool nodeGreetingReceived(Node& aNode , bool aWasInitialGreeting = false ) ; virtual Hash& nodeFingerPrint() ; /**< returns fingerprint of this node */ virtual int listenPortOfThisNode() ; /**< TCP listen port number method */ virtual const QSslCertificate& nodeCert() const ; /** getter for ssl certificate of SSL sock */ virtual const QSslKey& nodeKey() const ; virtual QByteArray* getNextItemToSend(Connection& aConnection) ; virtual Node* nodeByHash(const Hash& aHash) ; virtual QList* getNodesBeforeHash(const Hash& aHash, int aMaxNodes) ; virtual void closeOldestInactiveConnection() ; virtual QList* getNodesAfterHash(const Hash& aHash, int aMaxNodes, int aMaxInactivityMinutes = -1 ) ; virtual QList getHotAddresses() ; virtual bool updateNodeLastConnectTimeInDb(Node& aNode) ; virtual QList* getHotNodes(int aMaxNodes) ; /** * method for adding node reference from broadcast. * this needs difference in handling because in IPv4 * network this typically contains private addr space * addresses that we don't want to permanently store nor * give to others as node-references. * * For making connections inside LANs of organisations * having NATs and firewalls and whatnot this might * still be a handy feature. */ virtual void addNodeFromBroadcast(const Hash& aNodeFingerPrint, const QHostAddress& aAddr, int aPort ) ; /** * method for adding a node to connection-wishlist. * network connector engine will then later pick them up. * nodemodel will take ownership of the node and delete * the object later. */ virtual bool addNodeToConnectionWishList(Node* aNode) ; /** * method for adding a node to connection-wishlist. * network connector engine will then later pick them up. */ virtual bool addNodeToConnectionWishList(const Hash& aNode) ; /** * method for getting one node from wishlist. * caller is obliged to delete the node returned. * @return node or null if there is nothing in wishlist */ virtual Node* nextConnectionWishListItem() ; /** * method for checking if a node is already connected */ virtual bool isNodeAlreadyConnected(const Node& aNode) const ; /** * Method for checking if a node is already connected. * This version checks only hash, not addresses. */ virtual bool isNodeAlreadyConnected(const Hash& aHash) const ; virtual Hash bucketEndHash(const Hash& aFingerPrintOfNodeAsking) ; /** * updates last mutual connect time, used for deciding what content * to send automatically upon node connect */ virtual bool updateNodeLastMutualConnectTimeInDb(const Hash& aNodeFp, quint32 aTime ) ; virtual void setListenPortOfThisNode(int port) ; virtual QList* getNodesBeforeHash(const Hash& h, unsigned int i); virtual QList* getNodesAfterHash(const Hash& h, unsigned int u, int i) ; virtual void setDnsName(QString aName) ; virtual QString getDnsName() ; /** used to offer node to list of recently failed connections. * this model maintains a list of such nodes and tries to * not immediately re-connect a recently failed node */ virtual void offerNodeToRecentlyFailedList(const Hash& aFailedNodeHash) ; public: Node* iLastNodeReceived ; private: MController *iController ; Hash* iFingerPrintOfThisNode ; /**< set by method openOrCreateSSLCertificate */ QString iDnsName ; } ; #endif classified-ads-0.09/test/testca.cpp000066400000000000000000000764041260620453500173010ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include "../util/hash.h" #include #include "mockup_controller.h" #include "mockup_model.h" #include "mockup_nodemodel.h" #include "../datamodel/model.h" #include "../datamodel/contentencryptionmodel.h" #include "../log.h" #include "../net/protocol_message_formatter.h" #include "../net/protocol_message_parser.h" #include // for Q_IPV6ADDR #include #include #include #include "../datamodel/camodel.h" #include "../datamodel/ca.h" #include "../datamodel/profilemodel.h" #include "../datamodel/profile.h" #include "../datamodel/trusttreemodel.h" #include "../util/jsonwrapper.h" Q_IPV6ADDR KNullIpv6Addr ( QHostAddress("::0").toIPv6Address () ) ; Hash KNullHash ; /** * This class includes test cases for those functionalities * that can be automatically tested */ class TestClassifiedAds: public QObject, public Connection::ConnectionObserver { Q_OBJECT // from ConnectionObserver: /** method for sending data received */ virtual bool dataReceived(const QByteArray& aData, Connection& aConnection ) ; /** method for communicating fact that connection ends */ virtual void connectionClosed(Connection *aDeletee) ; /** method for communicating fact that connection is open for * business */ virtual void connectionReady(Connection *aBusinessEntity) ; private slots: void tryHash1(); void tryHash2(); void tryHash3(); void trySHA1(); void tryHashAddition() ; void tryHashSubstraction() ; void tryCreatingController() ; void tryContentEncryptionModel() ; void tryContentEncryptionModelPwdChange() ; void tryContentEncryptionModelPwdChangeFailure() ; void trySign() ; void tryVerify() ; void tryVerifyFailure() ; void tryNodeGreetingParse() ; void tryCompression() ; void tryEncrypt() ; void tryDecrypt() ; void tryDecryptFailure() ; void tryHashQVariant() ; void tryHashQVariantComparison() ; void try3NodeGreetingParsing() ; void tryListOfAdsParsing() ; void trySearchRequest() ; void tryTrustTreeModel() ; void tryJSonParse() ; void tryJSonParseWithCompress() ; void tryJSonParseFailure() ; void tryJSonSerialize() ; void tryDeletingController() ; private: Hash iHashOfPrivateKey ; MockUpController* iController ; QByteArray iResultSignature ; QByteArray iPlaintextSigned ; QByteArray iCipherText ; }; void TestClassifiedAds::tryHash1() { // highest significant bit first, so Hash h1(0,0,0,0,0) ; // this is zero-hash Hash h2(0,1,0,0,0) ; // this is big Hash h3(0,0,1,0,0) ; // this is less big Hash h4(0,0,0,1,0) ; // this is even smaller Hash h5(0,0,0,0,1) ; // this has the least-significant bit set QVERIFY(h2 > h1 && h3 < h2 && h4 < h3 ); } void TestClassifiedAds::tryHash2() { Hash h1(0,0,0,0,0) ; Hash h2(0,1,0,0,0) ; QVERIFY(h1 < h2); } void TestClassifiedAds::tryHash3() { Hash moroccan(0,0,0,0,0) ; Hash lebanese(1,1,1,1,1) ; moroccan = lebanese ; QVERIFY(moroccan == lebanese); } void TestClassifiedAds::tryHashQVariant() { Hash h1(0,30,40,50,0xFFFFFFFF) ; QVariant q ( h1.toQVariant() ) ; Hash h2 ; h2.fromQVariant ( q ) ; QVERIFY(h1 == h2 ) ; } void TestClassifiedAds::tryHashQVariantComparison() { Hash h1(0,31,40,50,0xFFFFFFFF) ; Hash h2(0,31,40,50,0xFFFFFFFF) ; QVariant q1 ( h1.toQVariant() ) ; QVariant q2 ( h2.toQVariant() ) ; QVERIFY(q1 == q2 ) ; } void TestClassifiedAds::trySHA1() { QByteArray plainText ( "quick brown fox and some diipadaapa\n") ; Hash h ; h.calculate(plainText) ; QLOG_STR("Calculated: " + h.toString()) ; // so, this next string is calculated using "openssl sha1" // command so we trust it might be right .. or usable to our // situation. QLOG_STR("Given: 2af8d4e46fc6fa45e84bb6f007d75e90f259630c") ; QVERIFY(h.toString() == QString("2af8d4e46fc6fa45e84bb6f007d75e90f259630c").toUpper()); } // idea here is that we try the same operation // using libgcrypt (that we trust) and our own // hash-class and we are supposed to yield same // results here. void TestClassifiedAds::tryHashAddition() { const char* val = "Some-Sample-Input" ; const char* val2 = "jurgeli burgeli ja toinen strink" ; int msg_length = strlen( val ); int msg_length2 = strlen( val2 ); int hash_length = gcry_md_get_algo_dlen( GCRY_MD_SHA1 ); unsigned char hash[ hash_length ]; unsigned char hash2[ hash_length ]; char *out = (char *) malloc( sizeof(char) * ((hash_length*2)+1) ); char *p = out; gcry_md_hash_buffer( GCRY_MD_SHA1, hash, val, msg_length ); gcry_md_hash_buffer( GCRY_MD_SHA1, hash2, val2, msg_length2 ); gcry_mpi_t hash_mpi; gcry_mpi_t hash_mpi2; gcry_mpi_t summa = gcry_mpi_new (160) ; gcry_mpi_scan( &hash_mpi, GCRYMPI_FMT_USG, hash, hash_length, NULL ); gcry_mpi_scan( &hash_mpi2, GCRYMPI_FMT_USG, hash2, hash_length, NULL ); gcry_mpi_add (summa, hash_mpi, hash_mpi2) ; unsigned char tuloste[100] = { 0 } ; size_t printed ; gcry_mpi_print (GCRYMPI_FMT_HEX, tuloste, 99, &printed, hash_mpi) ; printf("first hash (%lu): %s\n",printed, tuloste) ; gcry_mpi_print (GCRYMPI_FMT_HEX, tuloste, 99, &printed, hash_mpi2) ; printf("second hash (%lu): %s\n",printed, tuloste) ; gcry_mpi_print (GCRYMPI_FMT_HEX, tuloste, 99, &printed, summa) ; printf("sum (%lu): %s\n",printed, tuloste) ; // then same using Hash class Hash val1_hash ( hash ) ; Hash val2_hash ( hash2 ) ; printf("\n") ; qDebug() << val1_hash.toString() ; qDebug() << val2_hash.toString() ; Hash summa_hash = val1_hash + val2_hash; qDebug() << summa_hash.toString() ; printf("\n") ; gcry_mpi_release( hash_mpi ); gcry_mpi_release( hash_mpi2 ); gcry_mpi_release( summa ); int i; for ( i = 0; i < hash_length; i++, p += 2 ) { snprintf ( p, 3, "%02x", hash[i] ); } QVERIFY(strcmp((const char *)summa_hash.toString().toUtf8().constData(), (const char *)tuloste) == 0); } void TestClassifiedAds::tryHashSubstraction() { const char* val = "Some-Sample-Input" ; const char* val2 = "jurgeli burgeli ja toinen strink" ; int msg_length = strlen( val ); int msg_length2 = strlen( val2 ); int hash_length = gcry_md_get_algo_dlen( GCRY_MD_SHA1 ); unsigned char hash[ hash_length ]; unsigned char hash2[ hash_length ]; char *out = (char *) malloc( sizeof(char) * ((hash_length*2)+1) ); char *p = out; gcry_md_hash_buffer( GCRY_MD_SHA1, hash, val, msg_length ); gcry_md_hash_buffer( GCRY_MD_SHA1, hash2, val2, msg_length2 ); gcry_mpi_t hash_mpi; gcry_mpi_t hash_mpi2; gcry_mpi_t summa = gcry_mpi_new (160) ; gcry_mpi_scan( &hash_mpi, GCRYMPI_FMT_USG, hash, hash_length, NULL ); gcry_mpi_scan( &hash_mpi2, GCRYMPI_FMT_USG, hash2, hash_length, NULL ); gcry_mpi_sub (summa, hash_mpi, hash_mpi2) ; unsigned char tuloste[100] = { 0 } ; size_t printed ; gcry_mpi_print (GCRYMPI_FMT_HEX, tuloste, 99, &printed, hash_mpi) ; printf("first hash (%lu): %s\n",printed, tuloste) ; gcry_mpi_print (GCRYMPI_FMT_HEX, tuloste, 99, &printed, hash_mpi2) ; printf("second hash (%lu): %s\n",printed, tuloste) ; gcry_mpi_print (GCRYMPI_FMT_HEX, tuloste, 99, &printed, summa) ; printf("subs (%lu): %s\n",printed, tuloste) ; // then same using Hash class Hash val1_hash ( hash ) ; Hash val2_hash ( hash2 ) ; printf("\n") ; qDebug() << val1_hash.toString() ; qDebug() << val2_hash.toString() ; Hash subs_hash = val1_hash - val2_hash; qDebug() << subs_hash.toString() ; printf("\n") ; gcry_mpi_release( hash_mpi ); gcry_mpi_release( hash_mpi2 ); gcry_mpi_release( summa ); int i; for ( i = 0; i < hash_length; i++, p += 2 ) { snprintf ( p, 3, "%02x", hash[i] ); } QVERIFY(strcmp((const char *)subs_hash.toString().toUtf8().constData(), (const char *)tuloste) == 0); } void TestClassifiedAds::tryContentEncryptionModel() { Hash nullHash ( 0,0,0,0,0) ; QList privateKeys = iController->model().contentEncryptionModel().listKeys(true,NULL) ; if ( privateKeys.size() == 0 ) { iHashOfPrivateKey = iController->model().contentEncryptionModel().generateKeyPair() ; QVERIFY(!(iHashOfPrivateKey == nullHash) ) ; if ( iHashOfPrivateKey != nullHash ) { // put some profile data in there too Profile p(iHashOfPrivateKey) ; p.iNickName = "test profile" ; p.iGreetingText = "zap" ; p.iIsPrivate = false ; p.iTimeOfPublish = QDateTime::currentDateTimeUtc().toTime_t() ; iController->model().profileModel().publishProfile(p) ; QSqlQuery query; query.prepare("delete from publish where hash1 = " + QString::number(iHashOfPrivateKey.iHash160bits[0])) ; query.exec() ; } } else { for ( int i = privateKeys.size()-1 ; i >= 0 ; i-- ) { QLOG_STR("\nHash found " + privateKeys[i].toString()) ; iHashOfPrivateKey = privateKeys[0] ; } QVERIFY(privateKeys.size() > 0 ) ; } } void TestClassifiedAds::tryContentEncryptionModelPwdChange() { if ( iController->model().contentEncryptionModel().changeKeyPassword(iHashOfPrivateKey, QString("el password nuevo")) == 0 ) { QVERIFY( iController->model().contentEncryptionModel().changeKeyPassword(iHashOfPrivateKey,QString("das password nuevo")) == 0 ); } else { QVERIFY ( 1 == 2 ) ; } // last } void TestClassifiedAds::tryContentEncryptionModelPwdChangeFailure() { iController->setContentKeyPasswd("salasana") ; // changeKeyPassword must return non-zero when failing. QVERIFY( iController->model().contentEncryptionModel().changeKeyPassword(iHashOfPrivateKey,QString("das password nuevo")) != 0 ); iController->setContentKeyPasswd("das password nuevo") ; iController->model().contentEncryptionModel().changeKeyPassword(iHashOfPrivateKey,QString("salasana")); iController->setContentKeyPasswd("salasana") ; // last } void TestClassifiedAds::trySign() { QByteArray plaintext("foobar and brown fox did some tricks involving jumping") ; iPlaintextSigned = plaintext ; QVERIFY( iController->model().contentEncryptionModel().sign(iHashOfPrivateKey, iPlaintextSigned, iResultSignature) == 0 ); LOG_STR2("resultSignature len: %d\n" , iResultSignature.length()) ; } void TestClassifiedAds::tryVerify() { QVERIFY( iController->model().contentEncryptionModel().verify(iHashOfPrivateKey, iPlaintextSigned, iResultSignature) == true ); } void TestClassifiedAds::tryVerifyFailure() { QByteArray plaintext("something completely different") ; iPlaintextSigned = plaintext ; QVERIFY( iController->model().contentEncryptionModel().verify(iHashOfPrivateKey, iPlaintextSigned, iResultSignature) == false ); } #define EXAMPLE_TEXT "Quick brown and rest of the diipadaapa. This goes via.." void TestClassifiedAds::tryEncrypt() { QList listOfRecipients ; QByteArray plainText ( QString(EXAMPLE_TEXT).toUtf8()) ; QByteArray result ; listOfRecipients.append(iHashOfPrivateKey) ; QVERIFY( iController->model().contentEncryptionModel().encrypt(listOfRecipients, plainText, result) == true ); iCipherText.append(result) ; } void TestClassifiedAds::tryDecrypt() { QByteArray result ; iController->setProfileInUse(iHashOfPrivateKey) ; QVERIFY( iController->model().contentEncryptionModel().decrypt(iCipherText, result) == true ); LOG_STR2("After de-crypt %s\n", qPrintable(QString(result))) ; QCOMPARE( result, QString(EXAMPLE_TEXT).toUtf8()) ; } void TestClassifiedAds::tryDecryptFailure() { QByteArray result ; // cause a failure here: iCipherText[100] = 'A' ; // then check that we're not ok any more.. QVERIFY( iController->model().contentEncryptionModel().decrypt(iCipherText, result) == false ); } void TestClassifiedAds::tryNodeGreetingParse() { MockUpModel* m = new MockUpModel(iController) ; ProtocolMessageParser* p = new ProtocolMessageParser(*iController,*m) ; Node* n = new Node(Hash(1,2,3,4,5),12345) ; n->setIpv4Addr(345435324) ; QHostAddress ip6("3::aa:dd") ; LOG_STR2("ip6: %s\n", qPrintable(ip6.toString())) ; n->setIpv6Addr(ip6.toIPv6Address()) ; n->setLastConnectTime(2342343) ; n->setLastMutualConnectTime(43223112) ; QByteArray serializedNode = ProtocolMessageFormatter::nodeGreeting(*n) ; // need to have connection&thread for parsing. QThread t; Connection* c = new Connection(1, *this, iController->model(), *iController) ; QString jiison ( serializedNode.mid(5) ) ; int len = jiison.length() ; QLOG_STR("Jii before parse: " + jiison) ; LOG_STR2("len = %d\n", len) ; p->parseMessage(serializedNode,*c) ; // after successful parse our mock-up of datamodel should // contain the parsed node in its member variable -> verify // that data fields got parsed correctly QVERIFY( m->iNodeModel->iLastNodeReceived != NULL && m->iNodeModel->iLastNodeReceived->nodeFingerPrint() == n->nodeFingerPrint()&& m->iNodeModel->iLastNodeReceived->port() == n->port()&& m->iNodeModel->iLastNodeReceived->ipv4Addr() == n->ipv4Addr()&& Connection::Ipv6AddressesEqual(m->iNodeModel->iLastNodeReceived->ipv6Addr(), n->ipv6Addr())==true) ; delete n ; delete p ; delete m ; } // like tryNodeGreetingParse but tries with list of 3 nodes void TestClassifiedAds::try3NodeGreetingParsing() { MockUpModel* m = new MockUpModel(iController) ; ProtocolMessageParser* p = new ProtocolMessageParser(*iController,*m) ; Node* n = new Node(Hash(1,2,3,4,5),12345) ; n->setIpv4Addr(345435324) ; QHostAddress ip6("3::aa:dd") ; LOG_STR2("ip6: %s\n", qPrintable(ip6.toString())) ; n->setIpv6Addr(ip6.toIPv6Address()) ; n->setLastConnectTime(2342343) ; n->setLastMutualConnectTime(43223112) ; QByteArray serializedNode = ProtocolMessageFormatter::nodeGreeting(*n) ; LOG_STR2("Len of first greeting bytes = %d\n", serializedNode.size()) ; Node* n2 = new Node(Hash(11,22,33,44,55),12345) ; n2->setIpv4Addr(345435326) ; QHostAddress ip6_2("3::aa:df") ; LOG_STR2("ip6_2: %s\n", qPrintable(ip6_2.toString())) ; n2->setIpv6Addr(ip6_2.toIPv6Address()) ; n2->setLastConnectTime(1342343) ; n2->setLastMutualConnectTime(33223112) ; QByteArray serializedNode2 = ProtocolMessageFormatter::nodeGreeting(*n2) ; serializedNode.append(serializedNode2) ; LOG_STR2("Len of 2nd greeting bytes = %d\n", serializedNode2.size()) ; Node* n3 = new Node(Hash(12,23,34,45,57),12345) ; n3->setIpv4Addr(345435226) ; QHostAddress ip6_3("3::aa:de") ; LOG_STR2("ip6_3: %s\n", qPrintable(ip6_3.toString())) ; n3->setIpv6Addr(ip6_3.toIPv6Address()) ; n3->setLastConnectTime(1342341) ; n3->setLastMutualConnectTime(33223122) ; QByteArray serializedNode3 = ProtocolMessageFormatter::nodeGreeting(*n3) ; serializedNode.append(serializedNode3) ; LOG_STR2("Len of 3rd greeting bytes = %d\n", serializedNode3.size()) ; // need to have connection&thread for parsing. Connection* c = new Connection(1, *this, iController->model(), *iController) ; QString jiison ( serializedNode.mid(5) ) ; int len = jiison.length() ; QLOG_STR("Jii before parse: " + jiison) ; LOG_STR2("len = %d\n", len) ; p->parseMessage(serializedNode,*c) ; // after successful parse our mock-up of datamodel should // contain the parsed node in its member variable -> verify // that data fields got parsed correctly QVERIFY( m->iNodeModel->iLastNodeReceived != NULL && m->iNodeModel->iLastNodeReceived->nodeFingerPrint() == n3->nodeFingerPrint()&& m->iNodeModel->iLastNodeReceived->port() == n3->port()&& m->iNodeModel->iLastNodeReceived->ipv4Addr() == n3->ipv4Addr()&& Connection::Ipv6AddressesEqual(m->iNodeModel->iLastNodeReceived->ipv6Addr(), n3->ipv6Addr())==true) ; delete n ; delete n2 ; delete n3 ; delete c ; delete p ; delete m ; } void TestClassifiedAds::tryListOfAdsParsing() { MockUpModel* m = new MockUpModel(iController) ; QList* list = new QList ; m->iNetworkRequests = list ; ProtocolMessageParser* p = new ProtocolMessageParser(*iController,*m) ; Connection* c = new Connection(1, *this, iController->model(), *iController) ; Hash classificationHash ( 0x5,0x6,0x7,0x8,0x9 ) ; QList > listOfAds ; Hash articleHash1 (0x100,51,61,71,81 ) ; Hash articleHash2 (0x101,52,62,72,82 ) ; Hash articleHash3 (0x102,53,63,73,83 ) ; Hash articleHash4 (0x103,54,64,74,84 ) ; Hash articleHash5 (0x104,55,65,75,85 ) ; quint32 articleTimeStamp = QDateTime::currentDateTimeUtc().toTime_t() ; QPair p1 ( articleHash1, articleTimeStamp) ; QPair p2 ( articleHash2, articleTimeStamp-1) ; QPair p3 ( articleHash3, articleTimeStamp-2) ; QPair p4 ( articleHash4, articleTimeStamp-3) ; QPair p5 ( articleHash5, articleTimeStamp-4) ; listOfAds.append(p1) ; listOfAds.append(p2) ; listOfAds.append(p3) ; listOfAds.append(p4) ; listOfAds.append(p5) ; Node* n = new Node(Hash(1,2,3,4,5),12345) ; n->setIpv4Addr(345435324) ; QHostAddress ip6("3::aa:dd") ; n->setIpv6Addr(ip6.toIPv6Address()) ; n->setLastConnectTime(2342343) ; n->setLastMutualConnectTime(43223112) ; c->setNode(n) ; // ownership transferred QByteArray serializedAds = ProtocolMessageFormatter::replyToAdsClassified(classificationHash, listOfAds) ; p->parseMessage(serializedAds,*c) ; QSqlQuery query; query.prepare("delete from classified_ad where group_hash1 = 5 and group_hash2 = 6 and group_hash3 = 7 and group_hash4 = 8 and group_hash5 = 9") ; query.exec() ; QCOMPARE( m->iNetworkRequests->size() , 5 ) ; QVERIFY( query.numRowsAffected () == 5 ) ; delete c; delete p ; delete m ; } // a bit more complex test case. it does publish of a ca, // then a search against the ca. void TestClassifiedAds::trySearchRequest() { MockUpModel* m = new MockUpModel(iController) ; QList* list = new QList ; bool testCaseSuccess ( false ) ; m->iNetworkRequests = list ; ProtocolMessageParser* p = new ProtocolMessageParser(*iController,iController->model()) ; Connection* c = new Connection(1, *this, iController->model(), *iController) ; CA ca ; ca.iSenderName = "person, test person" ; ca.iSubject = "1234" ; ca.iGroup = "a.b.c" ; quint32 dummy ; ca.iMessageText = "tottamooses,tassoisfraasikunneiesiinnymissaan,eihelepollaainakkaan" ; QLOG_STR("Trying to get profile with key " + iHashOfPrivateKey.toString() + " " + QString::number(iHashOfPrivateKey.iHash160bits[0])) ; Profile *prof = iController->model().profileModel().profileByFingerPrint(iHashOfPrivateKey) ; if ( prof ) { QLOG_STR("Got profile") ; if ( iController->model().contentEncryptionModel().PublicKey(iHashOfPrivateKey, ca.iProfileKey, &dummy )) { QLOG_STR("Got public key ") ; ca.iFingerPrint = iController->model().classifiedAdsModel().publishClassifiedAd(*prof, ca) ; if(ca.iFingerPrint != KNullHash ) { // ok, the CA is in, lets try to perform a search on it.. first in "network search" manner: QByteArray serializedSearchString( ProtocolMessageFormatter::searchSend("tottamooses,tassoisfraasikunneiesiinnymissaan,eihelepollaainakkaan", true, true, true, Hash(3,4,5,6,7)) ) ; p->parseMessage(serializedSearchString,*c) ; // at this point our connection "c" will have on protocol item to send // in its queue ( the results ) and there is test for that later // then test the search function of the model in manner how // UI will do the trick: iController->model().searchModel()->setSearchString("tottamooses,tassoisfraasikunneiesiinnymissaan,eihelepollaainakkaan", true, true, true, true) ; QString searchPhrase ; bool searchAds(false) ; bool searchProfiles(false) ; bool searchComments(false) ; Hash searchId ; iController->model().searchModel()->getSearchCriteria(&searchPhrase, &searchAds, &searchProfiles, &searchComments, &searchId) ; if ( searchAds&&searchProfiles&&searchComments ) { QList items ( iController->model().searchModel()->performSearch("tottamooses,tassoisfraasikunneiesiinnymissaan,eihelepollaainakkaan", true, true, true)) ; if(items.count() == 1 ) { QByteArray resultsSerialized ( ProtocolMessageFormatter::searchResultsSend(items,searchId.iHash160bits[0]) ) ; if(p->parseMessage(resultsSerialized,*c)) { testCaseSuccess = true ; QLOG_STR("p->parseMessage(resultsSerialized,*c) returned true") ; } else { QLOG_STR("p->parseMessage(resultsSerialized,*c) returned false") ; } } } } else { QLOG_STR("CA got null fingerprint? ") ; } } delete prof ; } else { QLOG_STR("Profile was null??") ; } // interestingly numRowsAffected() with delete returns always 0 // if used under qt5.2.1 but under qt4 it returns the number // of rows deleted. in order to assess the number of rows under // qt5 we need a separate query: QSqlQuery query0; query0.prepare("select count(hash1) from classified_ad where hash1 = :h1 and hash2 = :h2 and hash3 = :h3 ") ; query0.bindValue(":hash1", ca.iFingerPrint.iHash160bits[0]); query0.bindValue(":hash2", ca.iFingerPrint.iHash160bits[1]); query0.bindValue(":hash3", ca.iFingerPrint.iHash160bits[2]); bool querySuccess = query0.exec() ; if ( querySuccess && query0.next() && !query0.isNull(0) ) { if ( testCaseSuccess == true && query0.value(0).toInt() == 1 ) { testCaseSuccess = true ; } } else { testCaseSuccess = false ; QLOG_STR("failure: " + query0.lastError().text() + " querySuccess = " + QString::number(querySuccess) + " isnull = " + QString::number(query0.isNull(0))) ; } // after count is checked, the row may go: QSqlQuery query; query.prepare("delete from classified_ad where hash1 = :h1 and hash2 = :h2 and hash3 = :h3 ") ; query.bindValue(":hash1", ca.iFingerPrint.iHash160bits[0]); query.bindValue(":hash2", ca.iFingerPrint.iHash160bits[1]); query.bindValue(":hash3", ca.iFingerPrint.iHash160bits[2]); query.exec() ; QSqlQuery query2; query2.prepare("delete from publish where hash1 = :h1 and hash2 = :h2 and hash3 = :h3 ") ; query2.bindValue(":hash1", ca.iFingerPrint.iHash160bits[0]); query2.bindValue(":hash2", ca.iFingerPrint.iHash160bits[1]); query2.bindValue(":hash3", ca.iFingerPrint.iHash160bits[2]); query.exec() ; delete c; delete p ; delete m ; QVERIFY(testCaseSuccess) ; } void TestClassifiedAds::tryTrustTreeModel() { MockUpModel* m = new MockUpModel(iController) ; TrustTreeModel* tl = new TrustTreeModel(iController,*m) ; tl->initModel(QVariant()) ; Profile unTrustedProfile1 ( Hash(1,1,1,1,3) ) ; unTrustedProfile1.iNickName = "Einari E. Epaluotettava" ; QString displayName ; Hash trustingHash ; Profile *self = iController->model().profileModel().profileByFingerPrint(iHashOfPrivateKey) ; if ( self ) { Profile trustedProfile1 ( Hash(1,1,1,1,1) ) ; trustedProfile1.iNickName = "Taisto T. Trusted" ; if ( !self->iTrustList.contains(trustedProfile1.iFingerPrint) ) { self->iTrustList << trustedProfile1.iFingerPrint ; QLOG_STR("Setting trust on " + trustedProfile1.iNickName) ; } Profile trustedProfile2 ( Hash(1,1,1,1,2) ) ; trustedProfile2.iNickName = "Tenho T. Trusted" ; if ( !self->iTrustList.contains(trustedProfile2.iFingerPrint) ) { self->iTrustList << trustedProfile2.iFingerPrint ; QLOG_STR("Setting trust on " + trustedProfile2.iNickName) ; } iController->model().profileModel().publishProfile(*self) ; QSqlQuery query; query.prepare("delete from publish where hash1 = " + QString::number(iHashOfPrivateKey.iHash160bits[0])); query.exec() ; tl->offerTrustList(self->iFingerPrint, self->iNickName, self->iTrustList ) ; // then, cause calculation of the trust tree: tl->offerTrustList(trustedProfile1.iFingerPrint, trustedProfile1.iNickName, trustedProfile1.iTrustList ) ; tl->offerTrustList(trustedProfile2.iFingerPrint, trustedProfile2.iNickName, trustedProfile2.iTrustList ) ; // now, self is trusted and it has 2 trusted profiles. QCOMPARE(tl->isProfileTrusted(self->iFingerPrint,&displayName,&trustingHash), true) ; QCOMPARE(tl->isProfileTrusted(trustedProfile1.iFingerPrint,&displayName,&trustingHash), true) ; QCOMPARE(tl->isProfileTrusted(trustedProfile2.iFingerPrint,&displayName,&trustingHash), true) ; QVariant modelState ( tl->trustTreeSettings() ) ; tl->clear() ; tl->initModel(modelState) ; // and now, Taneli should again be trusted? QCOMPARE(tl->isProfileTrusted(trustedProfile2.iFingerPrint,&displayName,&trustingHash), true) ; // then add 2nd level trusted profile: Profile trustedProfile4 ( Hash(1,1,1,1,4) ) ; if ( !trustedProfile2.iTrustList.contains(trustedProfile4.iFingerPrint) ) { trustedProfile2.iTrustList << trustedProfile4.iFingerPrint ; } trustedProfile4.iNickName = "Sigvard S. Semitrusted" ; // update model as Tenho now expresses trust regarding Sigvard tl->offerTrustList(trustedProfile2.iFingerPrint, trustedProfile2.iNickName, trustedProfile2.iTrustList ) ; QCOMPARE(tl->isProfileTrusted(trustedProfile4.iFingerPrint,&displayName,&trustingHash), true) ; QLOG_STR("Sigvard is trusted by " + displayName) ; // then drop trust on Tenho and that should revoke trust // from Sigvard too: self->iTrustList.removeAll(trustedProfile2.iFingerPrint) ; iController->model().profileModel().publishProfile(*self) ; query.exec() ; tl->offerTrustList(self->iFingerPrint, self->iNickName, self->iTrustList ) ; QCOMPARE(tl->isProfileTrusted(trustedProfile4.iFingerPrint,&displayName,&trustingHash), false) ; } QVERIFY(tl->isProfileTrusted(unTrustedProfile1.iFingerPrint,&displayName,&trustingHash) == false) ; delete self ; delete tl ; delete m ; } /** * "ok" case of json text parsing */ void TestClassifiedAds::tryJSonParse() { QByteArray json("{ \"dataItem\": { \"description\": \"is descriptive\" }}"); bool ok (false); QVariantMap result = JSonWrapper::parse(json, &ok) ; QCOMPARE(ok, true) ; QVERIFY(result.contains("dataItem") == true) ; } void TestClassifiedAds::tryJSonParseWithCompress() { QByteArray json("{ \"dataItem\": { \"description\": \"is descriptive\" }}"); bool ok (false); QVariantMap result = JSonWrapper::parse(qCompress(json), &ok,true) ; QCOMPARE(ok, true) ; QVERIFY(result.contains("dataItem") == true) ; } /** * tests that if parser is given text that is not json, * it will correctly reject the result */ void TestClassifiedAds::tryJSonParseFailure() { QByteArray json("{\"is just text, no json text,trolloloo"); bool ok (false); QVariantMap result = JSonWrapper::parse(json, &ok) ; QVERIFY(ok == false) ; } /** * tests that qvariant does get converted into json text */ void TestClassifiedAds::tryJSonSerialize() { QMap m ; m.insert("stringKey", "stringValue") ; QByteArray serialized ( JSonWrapper::serialize(QVariant(m).toMap())) ; QVERIFY(serialized.indexOf("stringValue") > 1) ; } void TestClassifiedAds::tryCompression() { QByteArray tdata = QString("Here is a string with unique content").toUtf8(); QByteArray cdata (qCompress(tdata)) ; QByteArray tdata2 (qUncompress(cdata)) ; QVERIFY(tdata2 == tdata) ; } void TestClassifiedAds::tryDeletingController() { delete iController ; iController = NULL ; QVERIFY(iController == NULL ) ; } void TestClassifiedAds::tryCreatingController() { iController = new MockUpController() ; iController->setContentKeyPasswd("salasana") ; QVERIFY(iController != NULL ) ; } bool TestClassifiedAds::dataReceived(const QByteArray& aData, Connection& aConnection ) { LOG_STR2("TestClassifiedAds::dataReceived len = %d\n", aData.size()) ; return true ; } void TestClassifiedAds::connectionClosed(Connection *aDeletee) { LOG_STR("TestClassifiedAds::connectionClosed\n") ; } void TestClassifiedAds::connectionReady(Connection *aBusinessEntity) { LOG_STR("TestClassifiedAds::connectionReady\n") ; } QTEST_MAIN(TestClassifiedAds) #include "testca.moc" classified-ads-0.09/test/testca.pro000066400000000000000000000046031260620453500173070ustar00rootroot00000000000000SOURCES = testca.cpp ../util/hash.cpp mockup_controller.cpp \ ../datamodel/model.cpp ../datamodel/nodemodel.cpp \ ../datamodel/contentencryptionmodel.cpp ../net/networklistener.cpp \ ../net/protocol_message_formatter.cpp \ ../net/protocol_message_parser.cpp \ ../net/node.cpp ../net/connection.cpp \ ../datamodel/netrequestexecutor.cpp \ ../datamodel/profile.cpp \ ../datamodel/ca.cpp \ ../datamodel/binaryfile.cpp \ ../datamodel/profilemodel.cpp \ mockup_model.cpp mockup_nodemodel.cpp \ ../datamodel/camodel.cpp \ ../datamodel/binaryfilemodel.cpp \ ../datamodel/privmsgmodel.cpp \ ../datamodel/privmsg.cpp \ ../datamodel/profilecommentmodel.cpp \ ../datamodel/searchmodel.cpp \ ../datamodel/datamodelbase.cpp \ ../datamodel/profilecomment.cpp ../datamodel/trusttreemodel.cpp \ ../util/jsonwrapper.cpp HEADERS = ../util/hash.h ../mcontroller.h mockup_controller.h \ ../datamodel/model.h ../datamodel/nodemodel.h \ ../datamodel/contentencryptionmodel.h ../net/networklistener.h \ ../net/protocol_message_formatter.h \ ../net/protocol_message_parser.h \ ../net/node.h ../net/connection.h \ ../datamodel/netrequestexecutor.h \ ../datamodel/profile.h \ ../datamodel/camodel.h \ ../datamodel/ca.h \ ../datamodel/binaryfile.h \ ../datamodel/binaryfilemodel.h \ ../datamodel/profilemodel.h mockup_model.h \ ../datamodel/mmodelprotocolinterface.h \ ../datamodel/mnodemodelprotocolinterface.h mockup_nodemodel.h \ ../datamodel/privmsgmodel.h \ ../datamodel/privmsg.h \ ../datamodel/profilecommentmodel.h \ ../datamodel/searchmodel.h \ ../datamodel/datamodelbase.h \ ../datamodel/profilecomment.h ../datamodel/trusttreemodel.h \ ../util/jsonwrapper.h CONFIG += debug greaterThan(QT_MAJOR_VERSION, 4) { QT += widgets CONFIG += qtestlib } else { CONFIG += qtestlib } QT += core network sql LIBS = -lssl -lcrypto -lgcrypt -lnatpmp -lgcov -lminiupnpc lessThan(QT_MAJOR_VERSION, 5) { LIBS += -lqjson } unix:INCLUDEPATH += /usr/include/miniupnpc QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage -DDEBUG classified-ads-0.09/textedit/000077500000000000000000000000001260620453500161525ustar00rootroot00000000000000classified-ads-0.09/textedit/readme.txt000066400000000000000000000001111260620453500201410ustar00rootroot00000000000000Files in this directory are from Qt examples, so thanks Qt contributors. classified-ads-0.09/textedit/textedit.cpp000066400000000000000000000714151260620453500205200ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the demonstration applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** GNU Lesser General Public License Usage ** This file may be used under the terms of the GNU Lesser General Public ** License version 2.1 as published by the Free Software Foundation and ** appearing in the file LICENSE.LGPL included in the packaging of this ** file. Please review the following information to ensure the GNU Lesser ** General Public License version 2.1 requirements will be met: ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU General ** Public License version 3.0 as published by the Free Software Foundation ** and appearing in the file LICENSE.GPL included in the packaging of this ** file. Please review the following information to ensure the GNU General ** Public License version 3.0 requirements will be met: ** http://www.gnu.org/copyleft/gpl.html. ** ** Other Usage ** Alternatively, this file may be used in accordance with the terms and ** conditions contained in a signed written agreement between you and Nokia. ** ** ** ** ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "textedit.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../log.h" #include "../ui/insertlinkdialog.h" #include #if QT_VERSION >= 0x050000 // qt5 has its own mime-type-handling so lets depend on that, easier.. #include #else // with qt4 use libmagic that does the same job #include // from libmagic #endif #ifdef Q_WS_MAC const QString rsrcPath = ":/images/mac"; #else const QString rsrcPath = ":/images/win"; #endif TextEdit::TextEdit(QWidget* aParent, MController* aController, Profile& aSelectedProfile) : DialogBase(aParent,aController,aSelectedProfile), textEdit(NULL), iWidgetForActionsUpper(NULL), iWidgetForActionsLower(NULL), iDialogMenuBar(NULL) { } TextEdit::~TextEdit() { delete iDialogMenuBar ; } void TextEdit::addAction(QWidget* aAction,bool aLower) { if ( aLower ) { iWidgetForActionsLower->addWidget(aAction) ; } else { iWidgetForActionsUpper->addWidget(aAction) ; } } void TextEdit::addAction(QAction* aAction) { tb->addAction(aAction) ; } void TextEdit::initializeTextEditor(QTextEdit *aTextEdit, QLayout *aLayOutForMenu, QLayout* aWidgetForActionsUpper, QLayout* aWidgetForActionsLower) { // setToolButtonStyle(Qt::ToolButtonFollowStyle); iDialogMenuBar = new QMenuBar() ; aLayOutForMenu->setMenuBar(iDialogMenuBar) ; iWidgetForActionsUpper = aWidgetForActionsUpper ; iWidgetForActionsLower = aWidgetForActionsLower ; setupFileActions(); setupEditActions(); setupTextActions(); { QMenu *helpMenu = new QMenu(tr("Help"), this); menuBar()->addMenu(helpMenu); helpMenu->addAction(tr("About &Qt"), qApp, SLOT(aboutQt())); } textEdit = aTextEdit ; connect(textEdit, SIGNAL(currentCharFormatChanged(QTextCharFormat)), this, SLOT(currentCharFormatChanged(QTextCharFormat))); connect(textEdit, SIGNAL(cursorPositionChanged()), this, SLOT(cursorPositionChanged())); // setCentralWidget(textEdit); textEdit->setFocus(); setCurrentFileName(QString()); fontChanged(textEdit->font()); colorChanged(textEdit->textColor()); alignmentChanged(textEdit->alignment()); connect(textEdit->document(), SIGNAL(modificationChanged(bool)), actionSave, SLOT(setEnabled(bool))); connect(textEdit->document(), SIGNAL(modificationChanged(bool)), this, SLOT(setWindowModified(bool))); connect(textEdit->document(), SIGNAL(undoAvailable(bool)), actionUndo, SLOT(setEnabled(bool))); connect(textEdit->document(), SIGNAL(redoAvailable(bool)), actionRedo, SLOT(setEnabled(bool))); setWindowModified(textEdit->document()->isModified()); actionSave->setEnabled(textEdit->document()->isModified()); actionUndo->setEnabled(textEdit->document()->isUndoAvailable()); actionRedo->setEnabled(textEdit->document()->isRedoAvailable()); connect(actionUndo, SIGNAL(triggered()), textEdit, SLOT(undo())); connect(actionRedo, SIGNAL(triggered()), textEdit, SLOT(redo())); actionCut->setEnabled(false); actionCopy->setEnabled(false); connect(actionCut, SIGNAL(triggered()), textEdit, SLOT(cut())); connect(actionCopy, SIGNAL(triggered()), textEdit, SLOT(copy())); connect(actionPaste, SIGNAL(triggered()), textEdit, SLOT(paste())); connect(textEdit, SIGNAL(copyAvailable(bool)), actionCut, SLOT(setEnabled(bool))); connect(textEdit, SIGNAL(copyAvailable(bool)), actionCopy, SLOT(setEnabled(bool))); #ifndef QT_NO_CLIPBOARD connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(clipboardDataChanged())); #endif fileNew(); } void TextEdit::closeEvent(QCloseEvent *e) { e->accept(); } void TextEdit::setupFileActions() { tb = new QToolBar(this); tb->setWindowTitle(tr("Edit Actions")); iWidgetForActionsUpper->addWidget(tb) ; QMenu *menu = new QMenu(tr("&File"), this); menuBar()->addMenu(menu); QAction *a; a = new QAction(QIcon::fromTheme("document-open", QIcon(rsrcPath + "/fileopen.png")), tr("&Open..."), this); a->setShortcut(QKeySequence::Open); connect(a, SIGNAL(triggered()), this, SLOT(fileOpen())); addAction(a); menu->addAction(a); menu->addSeparator(); actionSave = a = new QAction(QIcon::fromTheme("document-save", QIcon(rsrcPath + "/filesave.png")), tr("&Save locally before send"), this); a->setShortcut(QKeySequence::Save); connect(a, SIGNAL(triggered()), this, SLOT(fileSave())); a->setEnabled(false); addAction(a); menu->addAction(a); a = new QAction(tr("Save locally &As..."), this); a->setPriority(QAction::LowPriority); connect(a, SIGNAL(triggered()), this, SLOT(fileSaveAs())); menu->addAction(a); menu->addSeparator(); #ifndef QT_NO_PRINTER a = new QAction(QIcon::fromTheme("document-print", QIcon(rsrcPath + "/fileprint.png")), tr("&Print..."), this); a->setPriority(QAction::LowPriority); a->setShortcut(QKeySequence::Print); connect(a, SIGNAL(triggered()), this, SLOT(filePrint())); addAction(a); menu->addAction(a); a = new QAction(QIcon::fromTheme("fileprint", QIcon(rsrcPath + "/fileprint.png")), tr("Print Preview..."), this); connect(a, SIGNAL(triggered()), this, SLOT(filePrintPreview())); menu->addAction(a); a = new QAction(QIcon::fromTheme("exportpdf", QIcon(rsrcPath + "/exportpdf.png")), tr("&Export PDF..."), this); a->setPriority(QAction::LowPriority); a->setShortcut(Qt::CTRL + Qt::Key_D); connect(a, SIGNAL(triggered()), this, SLOT(filePrintPdf())); addAction(a); menu->addAction(a); menu->addSeparator(); #endif } void TextEdit::setupEditActions() { QMenu *menu = new QMenu(tr("&Edit"), this); menuBar()->addMenu(menu); QAction *a; a = actionUndo = new QAction(QIcon::fromTheme("edit-undo", QIcon(rsrcPath + "/editundo.png")), tr("&Undo"), this); a->setShortcut(QKeySequence::Undo); addAction(a); menu->addAction(a); a = actionRedo = new QAction(QIcon::fromTheme("edit-redo", QIcon(rsrcPath + "/editredo.png")), tr("&Redo"), this); a->setPriority(QAction::LowPriority); a->setShortcut(QKeySequence::Redo); addAction(a); menu->addAction(a); menu->addSeparator(); a = actionCut = new QAction(QIcon::fromTheme("edit-cut", QIcon(rsrcPath + "/editcut.png")), tr("Cu&t"), this); a->setPriority(QAction::LowPriority); a->setShortcut(QKeySequence::Cut); addAction(a); menu->addAction(a); a = actionCopy = new QAction(QIcon::fromTheme("edit-copy", QIcon(rsrcPath + "/editcopy.png")), tr("&Copy"), this); a->setPriority(QAction::LowPriority); a->setShortcut(QKeySequence::Copy); addAction(a); menu->addAction(a); a = actionPaste = new QAction(QIcon::fromTheme("edit-paste", QIcon(rsrcPath + "/editpaste.png")), tr("&Paste"), this); a->setPriority(QAction::LowPriority); a->setShortcut(QKeySequence::Paste); addAction(a); menu->addAction(a); #ifndef QT_NO_CLIPBOARD if (const QMimeData *md = QApplication::clipboard()->mimeData()) actionPaste->setEnabled(md->hasText()); #endif menu->addSeparator(); actionInsertLink = new QAction(tr("Insert link"), this) ; connect(actionInsertLink, SIGNAL(triggered()), this, SLOT(insertLinkSelected())) ; menu->addAction(actionInsertLink) ; actionInsertImage = new QAction(tr("Embed image"), this) ; connect(actionInsertImage, SIGNAL(triggered()), this, SLOT(insertImageSelected())) ; menu->addAction(actionInsertImage) ; } void TextEdit::setupTextActions() { QMenu *menu = new QMenu(tr("F&ormat"), this); menuBar()->addMenu(menu); actionTextBold = new QAction(QIcon::fromTheme("format-text-bold", QIcon(rsrcPath + "/textbold.png")), tr("&Bold"), this); actionTextBold->setShortcut(Qt::CTRL + Qt::Key_B); actionTextBold->setPriority(QAction::LowPriority); QFont bold; bold.setBold(true); actionTextBold->setFont(bold); connect(actionTextBold, SIGNAL(triggered()), this, SLOT(textBold())); addAction(actionTextBold); menu->addAction(actionTextBold); actionTextBold->setCheckable(true); actionTextItalic = new QAction(QIcon::fromTheme("format-text-italic", QIcon(rsrcPath + "/textitalic.png")), tr("&Italic"), this); actionTextItalic->setPriority(QAction::LowPriority); actionTextItalic->setShortcut(Qt::CTRL + Qt::Key_I); QFont italic; italic.setItalic(true); actionTextItalic->setFont(italic); connect(actionTextItalic, SIGNAL(triggered()), this, SLOT(textItalic())); addAction(actionTextItalic); menu->addAction(actionTextItalic); actionTextItalic->setCheckable(true); actionTextUnderline = new QAction(QIcon::fromTheme("format-text-underline", QIcon(rsrcPath + "/textunder.png")), tr("&Underline"), this); actionTextUnderline->setShortcut(Qt::CTRL + Qt::Key_U); actionTextUnderline->setPriority(QAction::LowPriority); QFont underline; underline.setUnderline(true); actionTextUnderline->setFont(underline); connect(actionTextUnderline, SIGNAL(triggered()), this, SLOT(textUnderline())); addAction(actionTextUnderline); menu->addAction(actionTextUnderline); actionTextUnderline->setCheckable(true); menu->addSeparator(); QActionGroup *grp = new QActionGroup(this); connect(grp, SIGNAL(triggered(QAction*)), this, SLOT(textAlign(QAction*))); // Make sure the alignLeft is always left of the alignRight if (QApplication::isLeftToRight()) { actionAlignLeft = new QAction(QIcon::fromTheme("format-justify-left", QIcon(rsrcPath + "/textleft.png")), tr("&Left"), grp); actionAlignCenter = new QAction(QIcon::fromTheme("format-justify-center", QIcon(rsrcPath + "/textcenter.png")), tr("C&enter"), grp); actionAlignRight = new QAction(QIcon::fromTheme("format-justify-right", QIcon(rsrcPath + "/textright.png")), tr("&Right"), grp); } else { actionAlignRight = new QAction(QIcon::fromTheme("format-justify-right", QIcon(rsrcPath + "/textright.png")), tr("&Right"), grp); actionAlignCenter = new QAction(QIcon::fromTheme("format-justify-center", QIcon(rsrcPath + "/textcenter.png")), tr("C&enter"), grp); actionAlignLeft = new QAction(QIcon::fromTheme("format-justify-left", QIcon(rsrcPath + "/textleft.png")), tr("&Left"), grp); } actionAlignJustify = new QAction(QIcon::fromTheme("format-justify-fill", QIcon(rsrcPath + "/textjustify.png")), tr("&Justify"), grp); actionAlignLeft->setShortcut(Qt::CTRL + Qt::Key_L); actionAlignLeft->setCheckable(true); actionAlignLeft->setPriority(QAction::LowPriority); actionAlignCenter->setShortcut(Qt::CTRL + Qt::Key_E); actionAlignCenter->setCheckable(true); actionAlignCenter->setPriority(QAction::LowPriority); actionAlignRight->setShortcut(Qt::CTRL + Qt::Key_R); actionAlignRight->setCheckable(true); actionAlignRight->setPriority(QAction::LowPriority); actionAlignJustify->setShortcut(Qt::CTRL + Qt::Key_J); actionAlignJustify->setCheckable(true); actionAlignJustify->setPriority(QAction::LowPriority); addAction(actionAlignLeft) ; addAction(actionAlignCenter) ; addAction(actionAlignRight); addAction(actionAlignJustify) ; menu->addActions(grp->actions()); menu->addSeparator(); QPixmap pix(16, 16); pix.fill(Qt::black); actionTextColor = new QAction(pix, tr("&Color..."), this); connect(actionTextColor, SIGNAL(triggered()), this, SLOT(textColor())); addAction(actionTextColor); menu->addAction(actionTextColor); comboStyle = new QComboBox(tb); addAction(comboStyle,true); comboStyle->addItem(tr("Standard")); comboStyle->addItem(tr("Bullet List (Disc)")); comboStyle->addItem(tr("Bullet List (Circle)")); comboStyle->addItem(tr("Bullet List (Square)")); comboStyle->addItem(tr("Ordered List (Decimal)")); comboStyle->addItem(tr("Ordered List (Alpha lower)")); comboStyle->addItem(tr("Ordered List (Alpha upper)")); comboStyle->addItem(tr("Ordered List (Roman lower)")); comboStyle->addItem(tr("Ordered List (Roman upper)")); connect(comboStyle, SIGNAL(activated(int)), this, SLOT(textStyle(int))); comboFont = new QFontComboBox(tb); addAction(comboFont,true); connect(comboFont, SIGNAL(activated(QString)), this, SLOT(textFamily(QString))); comboSize = new QComboBox(tb); comboSize->setObjectName("comboSize"); addAction(comboSize,true); comboSize->setEditable(true); QFontDatabase db; foreach(int size, db.standardSizes()) comboSize->addItem(QString::number(size)); connect(comboSize, SIGNAL(activated(QString)), this, SLOT(textSize(QString))); comboSize->setCurrentIndex(comboSize->findText(QString::number(QApplication::font() .pointSize()))); } bool TextEdit::load(const QString &f) { if (!QFile::exists(f)) return false; QFile file(f); if (!file.open(QFile::ReadOnly)) return false; QByteArray data = file.readAll(); QTextCodec *codec = Qt::codecForHtml(data); QString str = codec->toUnicode(data); if (Qt::mightBeRichText(str)) { textEdit->setHtml(str); } else { str = QString::fromLocal8Bit(data); textEdit->setPlainText(str); } setCurrentFileName(f); return true; } bool TextEdit::maybeSave() { if (!textEdit->document()->isModified()) return true; if (fileName.startsWith(QLatin1String(":/"))) return true; QMessageBox::StandardButton ret; ret = QMessageBox::warning(this, tr("Application"), tr("The document has been modified.\n" "Do you want to save your changes?"), QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel); if (ret == QMessageBox::Save) return fileSave(); else if (ret == QMessageBox::Cancel) return false; return true; } void TextEdit::setCurrentFileName(const QString &fileName) { this->fileName = fileName; textEdit->document()->setModified(false); } void TextEdit::fileNew() { if (maybeSave()) { textEdit->clear(); setCurrentFileName(QString()); } } void TextEdit::fileOpen() { QString fn = QFileDialog::getOpenFileName(this, tr("Open File..."), QString(), tr("HTML-Files (*.htm *.html);;All Files (*)")); if (!fn.isEmpty()) load(fn); } bool TextEdit::fileSave() { if (fileName.isEmpty()) return fileSaveAs(); QTextDocumentWriter writer(fileName); bool success = writer.write(textEdit->document()); if (success) textEdit->document()->setModified(false); return success; } bool TextEdit::fileSaveAs() { QString fn = QFileDialog::getSaveFileName(this, tr("Save as..."), QString(), tr("ODF files (*.odt);;HTML-Files (*.htm *.html);;All Files (*)")); if (fn.isEmpty()) return false; if (! (fn.endsWith(".odt", Qt::CaseInsensitive) || fn.endsWith(".htm", Qt::CaseInsensitive) || fn.endsWith(".html", Qt::CaseInsensitive)) ) fn += ".odt"; // default setCurrentFileName(fn); return fileSave(); } void TextEdit::filePrint() { #ifndef QT_NO_PRINTER QPrinter printer(QPrinter::HighResolution); QPrintDialog *dlg = new QPrintDialog(&printer, this); if (textEdit->textCursor().hasSelection()) dlg->addEnabledOption(QAbstractPrintDialog::PrintSelection); dlg->setWindowTitle(tr("Print Document")); if (dlg->exec() == QDialog::Accepted) { textEdit->print(&printer); } delete dlg; #endif } void TextEdit::filePrintPreview() { #ifndef QT_NO_PRINTER QPrinter printer(QPrinter::HighResolution); QPrintPreviewDialog preview(&printer, this); connect(&preview, SIGNAL(paintRequested(QPrinter*)), SLOT(printPreview(QPrinter*))); preview.exec(); #endif } void TextEdit::insertLinkSelected() { QLOG_STR("TextEdit::insertLinkSelected") ; InsertLinkDialog *link_dialog = new InsertLinkDialog(this, iController) ; connect(link_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; connect(this, SIGNAL( accepted() ), link_dialog, SLOT(deleteLater()), Qt::QueuedConnection ) ; connect(this, SIGNAL( rejected() ), link_dialog, SLOT(deleteLater()), Qt::QueuedConnection ) ; // don't connect as queued, it transfers pointers assert( connect ( link_dialog, SIGNAL( linkReady(const QString& , const QString& ) ), this, SLOT( linkReady(const QString& , const QString& ) ) ) ); link_dialog->show() ; // the dialog will delete self } // // motivation here: we want to insert html snippet that // looks like this: // Embedded Image // void TextEdit::insertImageSelected() { QLOG_STR("TextEdit::insertImageSelected") ; QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "", tr("Files (*.*)")); bool imageIsOk (false) ; if ( fileName.length() > 0 ) { QPixmap pic ; if ( ! pic.load(fileName) ) { QMessageBox::about(this,tr("Error"), tr("Can't load image")); return ; } else { imageIsOk = true ; } } if ( imageIsOk ) { QString mimeType ; #if QT_VERSION >= 0x050000 QMimeDatabase db ; QMimeType detectedType ( db.mimeTypeForFile(fileName) ) ; if ( detectedType.isValid() ) { mimeType = detectedType.name() ; } #else const char *fileNameCStyleHeap (fileName.toUtf8().constData()) ; char fileNameCStyle[1024] ; if ( strlen(fileNameCStyleHeap) < 1024 ) { strncpy(fileNameCStyle, fileNameCStyleHeap, 1023) ; // code stolen from http://vivithemage.co.uk/blog/?p=105 so thanks Vivi. magic_t magic_cookie; /*MAGIC_MIME tells magic to return a mime of the file, but you can specify different things*/ magic_cookie = magic_open(MAGIC_MIME); if (magic_cookie == NULL) { QLOG_STR("unable to initialize magic library"); return ; } if (magic_load(magic_cookie, NULL) != 0) { LOG_STR2("cannot load magic database - %s", magic_error(magic_cookie)); magic_close(magic_cookie); return ; } LOG_STR2("Filename for magic = >%s<", fileNameCStyle); const char *magic_full( magic_file(magic_cookie, fileNameCStyle) ) ; if ( magic_full == NULL ) { LOG_STR2("Magic_file error - %s", magic_error(magic_cookie)); } else { mimeType = QString::fromUtf8(magic_full) ; } magic_close(magic_cookie); } #endif if ( mimeType.length() > 0 ) { int indexOfSemicolon = mimeType.indexOf(';') ; if ( indexOfSemicolon > 1 ) { QLOG_STR("Pruning semicolon from mime type " + mimeType) ; mimeType = mimeType.left(indexOfSemicolon) ; } QLOG_STR("mime type " + mimeType) ; QFile f ( fileName ) ; if ( f.open(QIODevice::ReadOnly) ) { if ( f.size() > KMaxProtocolItemSize ) { emit error ( MController::FileOperationError, tr("File way too big")) ; } else { QByteArray content ( f.read(f.size() ) ) ; QString snippet = "\""+QFileInfo(f).fileName()+"\"" ; content.clear() ; if ( ( (quint32)(snippet.length()) + (quint32)(textEdit->toHtml().length()) + 10240 ) > KMaxProtocolItemSize ) { emit error ( MController::FileOperationError, tr("File way too big")) ; } else { textEdit->insertHtml(snippet) ; } } } } } } void TextEdit::printPreview(QPrinter *printer) { #ifdef QT_NO_PRINTER Q_UNUSED(printer); #else textEdit->print(printer); #endif } void TextEdit::filePrintPdf() { #ifndef QT_NO_PRINTER //! [0] QString fileName = QFileDialog::getSaveFileName(this, "Export PDF", QString(), "*.pdf"); if (!fileName.isEmpty()) { if (QFileInfo(fileName).suffix().isEmpty()) fileName.append(".pdf"); QPrinter printer(QPrinter::HighResolution); printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName(fileName); textEdit->document()->print(&printer); } //! [0] #endif } void TextEdit::textBold() { QTextCharFormat fmt; fmt.setFontWeight(actionTextBold->isChecked() ? QFont::Bold : QFont::Normal); mergeFormatOnWordOrSelection(fmt); } void TextEdit::textUnderline() { QTextCharFormat fmt; fmt.setFontUnderline(actionTextUnderline->isChecked()); mergeFormatOnWordOrSelection(fmt); } void TextEdit::textItalic() { QTextCharFormat fmt; fmt.setFontItalic(actionTextItalic->isChecked()); mergeFormatOnWordOrSelection(fmt); } void TextEdit::textFamily(const QString &f) { QTextCharFormat fmt; fmt.setFontFamily(f); mergeFormatOnWordOrSelection(fmt); } void TextEdit::textSize(const QString &p) { qreal pointSize = p.toFloat(); if (p.toFloat() > 0) { QTextCharFormat fmt; fmt.setFontPointSize(pointSize); mergeFormatOnWordOrSelection(fmt); } } void TextEdit::textStyle(int styleIndex) { QTextCursor cursor = textEdit->textCursor(); if (styleIndex != 0) { QTextListFormat::Style style = QTextListFormat::ListDisc; switch (styleIndex) { default: case 1: style = QTextListFormat::ListDisc; break; case 2: style = QTextListFormat::ListCircle; break; case 3: style = QTextListFormat::ListSquare; break; case 4: style = QTextListFormat::ListDecimal; break; case 5: style = QTextListFormat::ListLowerAlpha; break; case 6: style = QTextListFormat::ListUpperAlpha; break; case 7: style = QTextListFormat::ListLowerRoman; break; case 8: style = QTextListFormat::ListUpperRoman; break; } cursor.beginEditBlock(); QTextBlockFormat blockFmt = cursor.blockFormat(); QTextListFormat listFmt; if (cursor.currentList()) { listFmt = cursor.currentList()->format(); } else { listFmt.setIndent(blockFmt.indent() + 1); blockFmt.setIndent(0); cursor.setBlockFormat(blockFmt); } listFmt.setStyle(style); cursor.createList(listFmt); cursor.endEditBlock(); } else { QTextBlockFormat bfmt; bfmt.setObjectIndex(-1); cursor.mergeBlockFormat(bfmt); } textEdit->setFocus() ; } void TextEdit::textColor() { QColor col = QColorDialog::getColor(textEdit->textColor(), this); if (!col.isValid()) return; QTextCharFormat fmt; fmt.setForeground(col); mergeFormatOnWordOrSelection(fmt); colorChanged(col); textEdit->setFocus() ; } void TextEdit::textAlign(QAction *a) { if (a == actionAlignLeft) textEdit->setAlignment(Qt::AlignLeft | Qt::AlignAbsolute); else if (a == actionAlignCenter) textEdit->setAlignment(Qt::AlignHCenter); else if (a == actionAlignRight) textEdit->setAlignment(Qt::AlignRight | Qt::AlignAbsolute); else if (a == actionAlignJustify) textEdit->setAlignment(Qt::AlignJustify); textEdit->setFocus() ; } void TextEdit::currentCharFormatChanged(const QTextCharFormat &format) { fontChanged(format.font()); colorChanged(format.foreground().color()); textEdit->setFocus(); } void TextEdit::cursorPositionChanged() { alignmentChanged(textEdit->alignment()); } void TextEdit::clipboardDataChanged() { #ifndef QT_NO_CLIPBOARD if (const QMimeData *md = QApplication::clipboard()->mimeData()) actionPaste->setEnabled(md->hasText()); #endif } void TextEdit::mergeFormatOnWordOrSelection(const QTextCharFormat &format) { QTextCursor cursor = textEdit->textCursor(); if (!cursor.hasSelection()) cursor.select(QTextCursor::WordUnderCursor); cursor.mergeCharFormat(format); textEdit->mergeCurrentCharFormat(format); } void TextEdit::fontChanged(const QFont &f) { comboFont->setCurrentIndex(comboFont->findText(QFontInfo(f).family())); comboSize->setCurrentIndex(comboSize->findText(QString::number(f.pointSize()))); actionTextBold->setChecked(f.bold()); actionTextItalic->setChecked(f.italic()); actionTextUnderline->setChecked(f.underline()); } void TextEdit::colorChanged(const QColor &c) { QPixmap pix(16, 16); pix.fill(c); actionTextColor->setIcon(pix); } void TextEdit::alignmentChanged(Qt::Alignment a) { if (a & Qt::AlignLeft) { actionAlignLeft->setChecked(true); } else if (a & Qt::AlignHCenter) { actionAlignCenter->setChecked(true); } else if (a & Qt::AlignRight) { actionAlignRight->setChecked(true); } else if (a & Qt::AlignJustify) { actionAlignJustify->setChecked(true); } } void TextEdit::linkReady(const QString& aLinkAddress, const QString& aLinkLabel) { QLOG_STR("link ready " + aLinkAddress) ; QLOG_STR("link label " + aLinkLabel) ; textEdit->insertHtml("
"+aLinkLabel+" ") ; } classified-ads-0.09/textedit/textedit.h000066400000000000000000000131521260620453500201570ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the demonstration applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** GNU Lesser General Public License Usage ** This file may be used under the terms of the GNU Lesser General Public ** License version 2.1 as published by the Free Software Foundation and ** appearing in the file LICENSE.LGPL included in the packaging of this ** file. Please review the following information to ensure the GNU Lesser ** General Public License version 2.1 requirements will be met: ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU General ** Public License version 3.0 as published by the Free Software Foundation ** and appearing in the file LICENSE.GPL included in the packaging of this ** file. Please review the following information to ensure the GNU General ** Public License version 3.0 requirements will be met: ** http://www.gnu.org/copyleft/gpl.html. ** ** Other Usage ** Alternatively, this file may be used in accordance with the terms and ** conditions contained in a signed written agreement between you and Nokia. ** ** ** ** ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef TEXTEDIT_H #define TEXTEDIT_H #include #include #include #include "../ui/dialogbase.h" QT_FORWARD_DECLARE_CLASS(QAction) QT_FORWARD_DECLARE_CLASS(QComboBox) QT_FORWARD_DECLARE_CLASS(QFontComboBox) QT_FORWARD_DECLARE_CLASS(QTextEdit) QT_FORWARD_DECLARE_CLASS(QTextCharFormat) QT_FORWARD_DECLARE_CLASS(QMenu) class QLayout ; class QWidget ; class QMenuBar ; class QPrinter ; class QToolBar ; /** * @brief text editor class. * * This is inteneded for inheritance for dialogs that allow editing * of content. Implements a very nice rich text editor. */ class TextEdit : public DialogBase { Q_OBJECT public: /** * Constructor. Does very basic init only, method * @ref TextEdit::initializeTextEditor must be called * before this class is functional */ TextEdit(QWidget* aParent, MController* aController, Profile& aSelectedProfile); /** destructor */ ~TextEdit() ; /** * Actual initialization of the editor. * * @param aTextEdit pointer to actual editing area, allocated * by inheriting class that has UI-layout. Inheriting class * remains responsible to delete the editor after use. */ void initializeTextEditor(QTextEdit *aTextEdit, QLayout *aLayOutForMenu, QLayout* aWidgetForActionsUpper, QLayout* aWidgetForActionsLower) ; public slots: /** * this slot is called when user has finished entering a link * and it is ready to be included in the document */ virtual void linkReady(const QString& aLinkAddress, const QString& aLinkLabel) ; protected: virtual void closeEvent(QCloseEvent *e); private: void setupFileActions(); void setupEditActions(); void setupTextActions(); bool load(const QString &f); bool maybeSave(); void setCurrentFileName(const QString &fileName); private slots: void fileNew(); void fileOpen(); bool fileSave(); bool fileSaveAs(); void filePrint(); void filePrintPreview(); void filePrintPdf(); void textBold(); void textUnderline(); void textItalic(); void textFamily(const QString &f); void textSize(const QString &p); void textStyle(int styleIndex); void textColor(); void textAlign(QAction *a); void currentCharFormatChanged(const QTextCharFormat &format); void cursorPositionChanged(); void clipboardDataChanged(); void printPreview(QPrinter *); void insertLinkSelected() ; /**< user says he wants insert a link */ void insertImageSelected() ; /**< user says he wants embed an image */ private: void mergeFormatOnWordOrSelection(const QTextCharFormat &format); void fontChanged(const QFont &f); void colorChanged(const QColor &c); void alignmentChanged(Qt::Alignment a); /** method for adding editing action to designated area */ void addAction(QAction* aAction) ; void addAction(QWidget* aAction,bool aLower=true) ; /** returns dialog menu bar */ QMenuBar* menuBar() { return iDialogMenuBar ; } ; protected: // variables QTextEdit *textEdit; /**< holds the text being edited */ private: // variables QAction *actionSave, *actionTextBold, *actionTextUnderline, *actionTextItalic, *actionTextColor, *actionAlignLeft, *actionAlignCenter, *actionAlignRight, *actionAlignJustify, *actionUndo, *actionRedo, *actionCut, *actionCopy, *actionPaste, *actionInsertLink, *actionInsertImage; QComboBox *comboStyle; QFontComboBox *comboFont; QComboBox *comboSize; QToolBar *tb; QString fileName; QLayout* iWidgetForActionsUpper ; QLayout* iWidgetForActionsLower ; QMenuBar* iDialogMenuBar ; }; #endif classified-ads-0.09/ui/000077500000000000000000000000001260620453500147355ustar00rootroot00000000000000classified-ads-0.09/ui/aboutDialog.ui000066400000000000000000000262431260620453500175350ustar00rootroot00000000000000 aboutDialog 0 0 601 653 0 0 0 0 About classified ads true QLayout::SetDefaultConstraint 0 0 QFrame::Plain Qt::ScrollBarAlwaysOn Qt::ScrollBarAlwaysOff false 0 0 566 2500 0 0 true 2 -2 811 2671 2 12 75 true Classified ads is a program for online communications Qt::RichText Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter true 558 443 558 443 :/ui/ui/turt558.png:/ui/ui/turt558.png 558 443 true 550 2200 550 2200 <html><head/><body><p>Classified ads is free software. You may use, copy and modify it if you follow the conditions given in GNU lesser general public license version 2.1.</p><p>Classified ads is copyright ТЉ Antti JУЄrvinen 2013. </p><p>Main feature of the the program is an &quot;advertisement&quot; - a piece of text belonging to selected classification. There are several pre-programmed classifications and operators are encouraged to invent new classifications for new purposes ; the selection boxes in classification-selection tab are editable. Other operators may then view the ads, publicly comment the ads, the operators and also send private messages to each others. </p><p>Another important feature of classified ads is that it is designed to be operated without any centralized server infrastucture - it is you and other operators whose computers store and transmit all the content visible inside classified ads. To get connected you need to know address of at least one existing computer (a <span style=" font-style:italic;">node</span>) so if your network connection dialog shows no connections, you may need to contact someone you know is using the software and ask for address of her node to make initial contact with the network. Once connected the software should maintain list of addresses of other nodes. </p><p>Due to its server-less design the whole system works best if you leave the program running always when you have your computer powered on ; while processing other operators requests it will hog some computing resources and generate network traffic also when you are not actively using the program youself - others are. </p><p>Operators concerned about privacy of the content should be aware of following items:</p><p>- Data storage implementation is variant of <span style=" font-style:italic;">distributed hash table</span>, practically meaning that content posted by you gets copied some more-or-less random nodes in the network. </p><p>- Any data item (ad, comment, binary file, private message etc.) is digitally signed. This makes it more difficult to try to pose as another operator. </p><p>- Operators are reliably identified only by the SHA1 hash of their generated encryption keys. SHA1 hash is displayed when viewing details of operator profiles. Other identifying information like nickname or city name are entered by operator himself and can be anything. The operator profile, as it is published to the network, is also signed with the encryption keys of the operator - if you identify an operator by her SHA1 hash, you have a mechanism for identifying if any content inside classified ads is posted by this operator or not. Classified ads internally checks for digital signatures, throwing away content that fails signature check and tries to provide SHA1 hash of the operator who posted the content.</p><p>- All classified ads are posted as plain text, no encryption is used. All public profiles are posted as plain text, no encryption is used. If profile is made private, it is encrypted to be readable only by selected other profiles. This applies also to binary files shared by operators private profiles and comments about private profiles after the profile was made private (previously plain-text comments or files don't get magically encrypted afterwards). Private messages are encrypted always to be readable only by recipient and sender. Attachments follow the privary rules of the document, they're attachted to. </p><p>- As is the case with all internet-communications, this small fact is true for classified ads too : <span style=" font-style:italic;">once something gets posted online, there is no way to remove it from network</span>. </p><p>- Data encryption implementation for content is OpenSSL, relying mostly on algorithms RSA-2048 and AES-256. </p><p>- While connections between nodes are implemented using SSL, other nodes inside network do get to know what content is being transmitted in neighboring nodes. While there is no central point for easily collecting this information about particular classification or operator, operators still should expect no privacy regarding their doings online, although some effort has been been put into hiding <span style=" font-style:italic;">contents</span> of private messages and private profiles. </p><p>Programming was (mostly) done by Antti JУЄrvinen, artwork by Meeri JУЄrvinen.</p><p>This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/).</p><p>Happy advertising!</p><p><br/></p></body></html> Qt::RichText Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop true true QDialogButtonBox::Close closeButtonBox rejected() aboutDialog deleteLater() 260 138 260 81 classified-ads-0.09/ui/aboutdialog.cpp000066400000000000000000000024601260620453500177350ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include "../mcontroller.h" #include "../log.h" #include "aboutdialog.h" AboutDialog::AboutDialog(QWidget *aParent, MController& aController) : QDialog(aParent), iController(aController) { ui.setupUi(this) ; connect (this, SIGNAL(rejected()), this, SLOT(deleteLater())) ; } AboutDialog::~AboutDialog() { LOG_STR("AboutDialog::~AboutDialog\n") ; } classified-ads-0.09/ui/aboutdialog.h000066400000000000000000000026131260620453500174020ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CA_ABOUT_DIALOG_H #define CA_ABOUT_DIALOG_H #include #include "../mcontroller.h" #include "../ui_aboutDialog.h" /** * @brief class for displaying brief information about this sw */ class AboutDialog : public QDialog { Q_OBJECT public: /** * Constructor. */ AboutDialog(QWidget *aParent, MController& aController ); /** destructor */ ~AboutDialog(); private slots: private: Ui_aboutDialog ui ; MController& iController ; }; #endif classified-ads-0.09/ui/attachmentListDialog.ui000066400000000000000000000034611260620453500214040ustar00rootroot00000000000000 attachmentListDialog 0 0 300 300 0 0 0 0 List of attached files true 0 0 QDialogButtonBox::Cancel|QDialogButtonBox::Ok bottomButtonsBox rejected() attachmentListDialog reject() 149 275 149 149 classified-ads-0.09/ui/attachmentlistdialog.cpp000066400000000000000000000226131260620453500216510ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include #include "attachmentlistdialog.h" #include "../mcontroller.h" #include "../log.h" #include "../datamodel/model.h" #include "../FrontWidget.h" #include "../datamodel/binaryfilelistingmodel.h" #include "editcontact.h" #include "../datamodel/binaryfilemodel.h" #include "../datamodel/binaryfile.h" #include "../datamodel/profile.h" #include "../datamodel/profilemodel.h" AttachmentListDialog::AttachmentListDialog(QWidget *aParent, MController* aController, Profile& aSelectedProfile, QList& aFilesToDisplay, const Hash& aNodeToTryForRetrieval) : DialogBase(aParent, aController, aSelectedProfile), iListingModel(NULL), iExportSharedFileAction(NULL), iNodeToTryForRetrieval(aNodeToTryForRetrieval) { ui.setupUi(this) ; iListingModel = new BinaryFileListingModel(aFilesToDisplay) ; ui.fileListView->setModel(iListingModel) ; QAbstractButton* infoButton = new QPushButton("Info..", this) ; ui.bottomButtonsBox->addButton(infoButton, QDialogButtonBox::ActionRole); connect(ui.bottomButtonsBox, SIGNAL(accepted()), this, SLOT(okButtonClicked())); connect(ui.bottomButtonsBox, SIGNAL(rejected()), this, SLOT(cancelButtonClicked())); connect(infoButton, SIGNAL(clicked()), this, SLOT(infoButtonClicked())) ; connect(ui.fileListView, SIGNAL(doubleClicked(const QModelIndex&)), this, SLOT(fileListDoubleClicked(const QModelIndex&))) ; iExportSharedFileAction = new QAction(tr("Save file to disk.."),this) ; ui.fileListView->setContextMenuPolicy(Qt::ActionsContextMenu); ui.fileListView->addAction(iExportSharedFileAction) ; connect(iExportSharedFileAction, SIGNAL(triggered()), this, SLOT(exportSharedFile())) ; connect(this, SIGNAL(rejected()), this, SLOT(deleteLater())) ; } AttachmentListDialog::~AttachmentListDialog() { LOG_STR("AttachmentListDialog::~AttachmentListDialog\n") ; ui.fileListView->setModel(NULL) ; delete iListingModel; delete iExportSharedFileAction ; } void AttachmentListDialog::okButtonClicked() { LOG_STR("AttachmentListDialog::okButtonClicked\n") ; // display or otherwise perform some file action here.. exportSharedFile() ; } void AttachmentListDialog::cancelButtonClicked() { LOG_STR("AttachmentListDialog::cancelButtonClicked\n") ; close() ; this->deleteLater() ; } void AttachmentListDialog::fileListDoubleClicked(const QModelIndex& /*aIndex*/) { LOG_STR("fileListDoubleClicked\n") ; exportSharedFile() ; } void AttachmentListDialog::exportSharedFile() { LOG_STR("exportSharedFile") ; // ok, see what user had selected ; one file only: bool netRequestStarted(false) ; QByteArray fileData ; BinaryFile* metadata (NULL); iController->model().lock() ; if ( iListingModel ) { Hash fingerPrint ; foreach(const QModelIndex &index, ui.fileListView->selectionModel()->selectedIndexes()) { fingerPrint.fromString((const unsigned char *)(qPrintable(iListingModel->data(index,Qt::ToolTipRole).toString()))); break ; } if ( fingerPrint != KNullHash ) { // aye, found a selected fingerprint; first check if we have // the file or just know the fingerprint. both are possible. if ( ( metadata = iController->model().binaryFileModel().binaryFileByFingerPrint(fingerPrint) ) == NULL ) { // got no file, ask it to be retrieved: NetworkRequestExecutor::NetworkRequestQueueItem req ; req.iRequestType = RequestForBinaryBlob ; req.iRequestedItem = fingerPrint ; req.iState = NetworkRequestExecutor::NewRequest ; req.iMaxNumberOfItems = 1 ; // if the file was shared by some other operator, // ask node of that operator first .. who was the operator? if (iNodeToTryForRetrieval != KNullHash ) { req.iDestinationNode = iNodeToTryForRetrieval; } iController->startRetrievingContent(req,true,BinaryBlob) ; netRequestStarted = true ; } else { QByteArray fileSignature ; Hash fileOwnerFingerPrint ; fileOwnerFingerPrint.fromString((const unsigned char *)(metadata->iOwner.toLatin1().constData())) ; bool dummy ; iController->model().binaryFileModel().setTimeLastReference(fingerPrint, QDateTime::currentDateTimeUtc().toTime_t()) ; if ( !iController->model().binaryFileModel().binaryFileDataByFingerPrint(fingerPrint, fileOwnerFingerPrint, fileData, fileSignature, &dummy) ) { LOG_STR("Got no file?") ; } } } } iController->model().unlock() ; if ( fileData.size() > 0 && metadata ) { int periodPosition = metadata->iFileName.lastIndexOf(".") ; QString suffix ; if ( periodPosition > 0 ) { QString filenameSuffix = metadata->iFileName.mid(periodPosition+1) ; suffix = filenameSuffix + " "+tr("files")+" (*."+filenameSuffix+")" ; } else { suffix = tr("files")+" (*.*)" ; } QString fileName = QFileDialog::getSaveFileName(this, tr("Choose file name for saving"), metadata->iFileName, suffix); if ( fileName.length() > 0 ) { QFile f ( fileName ) ; if ( f.open(QIODevice::WriteOnly) ) { f.write(fileData) ; f.close() ; close() ; // close this dialog after successful save this->deleteLater() ; } else { QMessageBox::about(this,tr("Error"), tr("File open error")); } } } delete metadata ; if ( netRequestStarted ) { iController-> userInterfaceAction ( MController::DisplayProgressDialog, KNullHash , KNullHash ) ; } } Hash AttachmentListDialog::tryFindNodeByProfile(const Hash& aProfileFingerPrint, MController& aController) { Hash retval ; Profile *recipientProfile (NULL) ; if ( ( recipientProfile = aController.model().profileModel().profileByFingerPrint(aProfileFingerPrint, false/* do not emit encryption errors*/, true /* omit image */) ) != NULL ) { if ( recipientProfile->iNodeOfProfile ) { retval = recipientProfile->iNodeOfProfile->nodeFingerPrint() ; } delete recipientProfile ; } return retval ; } void AttachmentListDialog::infoButtonClicked() { QLOG_STR("AttachmentListDialog::infoButtonClicked") ; BinaryFile* metadata (NULL); iController->model().lock() ; if ( iListingModel ) { Hash fingerPrint ; foreach(const QModelIndex &index, ui.fileListView->selectionModel()->selectedIndexes()) { fingerPrint.fromString((const unsigned char *)(qPrintable(iListingModel->data(index,Qt::ToolTipRole).toString()))); break ; } if ( fingerPrint != KNullHash ) { // aye, found a selected fingerprint; first check if we have // the file or just know the fingerprint. both are possible. if ( ( metadata = iController->model().binaryFileModel().binaryFileByFingerPrint(fingerPrint) ) == NULL ) { // got no file, ask it to be retrieved: NetworkRequestExecutor::NetworkRequestQueueItem req ; req.iRequestType = RequestForBinaryBlob ; req.iRequestedItem = fingerPrint ; req.iState = NetworkRequestExecutor::NewRequest ; req.iMaxNumberOfItems = 1 ; // if the file was shared by some other operator, // ask node of that operator first .. who was the operator? if (iNodeToTryForRetrieval != KNullHash ) { req.iDestinationNode = iNodeToTryForRetrieval; } iController->startRetrievingContent(req,true,BinaryBlob) ; } } } iController->model().unlock() ; if ( metadata ) { iController->displayFileInfoOnUi(*metadata) ; delete metadata ; } } classified-ads-0.09/ui/attachmentlistdialog.h000066400000000000000000000073031260620453500213150ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef LIST_ATTACHMENTS_DIALOG_H #define LIST_ATTACHMENTS_DIALOG_H #include "dialogbase.h" #include "../mcontroller.h" #include "../ui_attachmentListDialog.h" class BinaryFileListingModel ; class Hash ; class Profile ; class QAction ; /** * @brief class for dialog for listing (attached) files */ class AttachmentListDialog : public DialogBase { Q_OBJECT public: /** * Constructor. * @param aParent parent widget * @param aController application controller * @param aSelectedProfile operator profile currently open on application * @param aFilesToDisplay list of hashes that are supposed to be found * from table of binary blobs * @param aNodeToTryForRetrieval In case the selected file is not * found from local db table, this is * the node where query for missing file * could be first sent, in addition to nodes * determined by the binary blob hash. * Use-case for this is CA attachment where * the posting-node is known from CA metadata. * If we don't have the binary blob, we * could first send query about attachment * to the originating node. */ AttachmentListDialog(QWidget *aParent, MController* aController, Profile& aSelectedProfile, QList& aFilesToDisplay, const Hash& aNodeToTryForRetrieval = KNullHash ); /** destructor */ ~AttachmentListDialog(); /** * Method that tries to find node fingerprint by profile. This is * used to find original posting node of binary attachments * that are associated with many objects (ca, privmsg etc.) * @param aProfileFingerPrint fingerprint of profile whose node is sought for * @param aController application controller. * @return node hash or KNullHash if nothing found */ static Hash tryFindNodeByProfile(const Hash& aProfileFingerPrint, MController& aController); private slots: void okButtonClicked() ; void cancelButtonClicked() ; void infoButtonClicked() ; /**< file information button clicked */ void fileListDoubleClicked(const QModelIndex& aIndex); void exportSharedFile() ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: // members Ui_attachmentListDialog ui ; BinaryFileListingModel* iListingModel ; QAction* iExportSharedFileAction ; /**< context-menu action for saving to filesystem a shared file */ const Hash iNodeToTryForRetrieval ; }; #endif classified-ads-0.09/ui/classified-ads.appdata.xml000066400000000000000000000057551260620453500217570ustar00rootroot00000000000000 classified_ads.desktop CC0-1.0 LGPLv2 Classified ads Internet messaging system ViestinvУЄlitysjУЄrjestelmУЄ InternettiУЄ varten

Classified ads is an attempt to re-produce parts of the functionality that went away when Usenet news ceased to exist. This attempt tries to fix the problem of disappearing news-servers so that there is no servers required and no service-providers needed for any operation ; data storage is implemented inside client applications that users are running. Features of the program currently include:

  • Posting of ads online. Ads have a category ; there are some pre-defined categories but more can be invented just by typing over the suggested categories.
  • Replying to ads either in public or privately to operator.
  • (Small-sized) binary attachments to posts.
  • Providing basic data of operators - data that operator may enter himself, or leave blank.
  • Basic searching of content based on words.

Luokitellut ilmoitukset on jУЄrjestelmУЄ julkisten ja yksityisten viestin vУЄlittУЄmiseen internetin ylitse. JУЄrjestelmУЄ toistaa joitain toimintoja, jotka lУЖytyvУЄt myУЖs usenet-news -jУЄrjestelmУЄstУЄ ja smtp-sУЄhkУЖpostista. TУЄmУЄ ohjelma on suunniteltu toimimaan ilman palvelinjУЄrjestelmУЄУЄ ja tУЄstУЄ syystУЄ mitУЄУЄn sopimuksia minkУЄУЄn palveluntarjoajankaan kanssa ei tarvitse tehdУЄ. Ohjelma ominaisuuksiin kuuluu mm. seuraavaa:

  • Ilmoitusten jУЄttУЖ kaikkien luettavaksi. Ilmoituksilla on kategoria, ohjelma toteuttaa muutamia kategorioita esivalintana, mutta kУЄyttУЄjiУЄ rohkaistaan keksimУЄУЄn uusia kategorioita.
  • Ilmoituksiin vastaaminen joko julkisesti tai yksityisesti
  • (Pienikokoiset) binУЄУЄriliitteet viesteissУЄ.
  • KУЄyttУЄjУЄn perutietojen vУЄlitys ; kУЄyttУЄjУЄ voi myУЖs jУЄttУЄУЄ itseУЄУЄn koskevat tiedot antamatta.
  • Sanahakutoiminto julkisesta materiaalista.

https://github.com/operatornormal/classified-ads/blob/master/doc/ads-search.png?raw=true Search of classified ads by category https://github.com/operatornormal/classified-ads/blob/master/doc/profilecomment.png?raw=true Replying to operator in public comment http://katiska.org/classified_ads/ classified-ads.questions@katiska.org
classified-ads-0.09/ui/classified-ads.desktop000066400000000000000000000012771260620453500212120ustar00rootroot00000000000000# If you want classfied ads to appear in a linux app launcher ("start menu"), install this by doing: # sudo desktop-file-install classified_ads.desktop [Desktop Entry] Comment=Classified ads the advertisment posting program Exec=classified-ads %u Keywords=messaging;communications; GenericName[en_US]=Classified ads GenericName[fi_FI]=Luokitellut ilmoitukset GenericName[sv_SE]=Annonser GenericName[sv_FI]=Annonser GenericName=Classified ads Icon=/usr/share/app-install/icons/turt-transparent-128x128.png Name[en_US]=Classified ads Name[fi_FI]=Luokitellut ilmoitukset Name[sv_SE]=Annonser Name[sv_FI]=Annonser Name=Classified ads Categories=Network; StartupNotify=false Terminal=false Type=Application classified-ads-0.09/ui/dialogbase.cpp000066400000000000000000000140511260620453500175340ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include "dialogbase.h" #include "../mcontroller.h" #include "../log.h" #include "../datamodel/model.h" #include "../datamodel/profile.h" #include "../datamodel/binaryfilemodel.h" DialogBase::DialogBase (QWidget* aParent, MController* aController, Profile& aSelectedProfile) : QDialog(aParent), iController(aController), iSelectedProfile(aSelectedProfile) { } Hash DialogBase::publishBinaryAttachment(const MetadataQueryDialog::MetadataResultSet& aFileMetadata, bool aForceNoEncryption, const QList* aBinaryRecipientList) { Hash retval ( KNullHash ) ; bool isCompressed (false ) ; QFile f ( aFileMetadata.iFileName ) ; if ( f.open(QIODevice::ReadOnly) ) { if ( f.size() > ( KMaxProtocolItemSize * 10 ) ) { emit error ( MController::FileOperationError, tr("File way too big")) ; } else { QByteArray content ( f.read(f.size() ) ) ; QByteArray compressedContent ( qCompress(content) ) ; LOG_STR2("Size of content = %d", (int) (content.size())) ; LOG_STR2("Size of compressed = %d", (int) (compressedContent.size())) ; if (content.size() > (qint64)(( KMaxProtocolItemSize - ( 50*1024 ) )) && compressedContent.size() > (qint64)(( KMaxProtocolItemSize - ( 50*1024 ) )) ) { emit error ( MController::FileOperationError, tr("File too big")) ; } else { if ( compressedContent.size() < content.size () ) { content.clear() ; content.append(compressedContent) ; compressedContent.clear() ; isCompressed = true ; } else { compressedContent.clear() ; } // ok, here we have content in content and it is // either compressed or not. size is checked. iController->model().lock() ; retval= iController->model(). binaryFileModel().publishBinaryFile(iSelectedProfile, QFileInfo(f).fileName(), aFileMetadata.iDescription, aFileMetadata.iMimeType, aFileMetadata.iOwner, aFileMetadata.iLicense, content, isCompressed, aForceNoEncryption, aBinaryRecipientList) ; iController->model().unlock() ; } } } else { emit error ( MController::FileOperationError, tr("File open error")) ; } return retval ; } void DialogBase::attachButtonClicked() { LOG_STR("DialogBase::attachButtonClicked\n") ; QString fileName = QFileDialog::getOpenFileName(this, tr("Select file to be published"), "", tr("Files (*.*)")); if ( fileName.length() > 0 ) { QFile f ( fileName ) ; if ( f.open(QIODevice::ReadOnly) ) { if ( f.size() > ( KMaxProtocolItemSize * 10 ) ) { emit error ( MController::FileOperationError, tr("File way too big")) ; } else { QByteArray content ( f.read(f.size() ) ) ; QByteArray compressedContent ( qCompress(content) ) ; LOG_STR2("Size of content = %d", (int) (content.size())) ; LOG_STR2("Size of compressed = %d", (int) (compressedContent.size())) ; if (content.size() > (qint64)(( KMaxProtocolItemSize - ( 50*1024 ) )) && compressedContent.size() > (qint64)(( KMaxProtocolItemSize - ( 50*1024 ) )) ) { emit error ( MController::FileOperationError, tr("File too big")) ; } else { // file was not too big. here now just mark the filename // for later use. if ( iFilesAboutToBeAttached.count() != 0 ) { iFilesAboutToBeAttached.clear() ; } MetadataQueryDialog::MetadataResultSet metadata ; metadata.iFileName = fileName ; MetadataQueryDialog metadataDialog(this, *iController, metadata ) ; if ( metadataDialog.exec() == QDialog::Accepted ) { iFilesAboutToBeAttached.append(metadata) ; iAttachmentListLabel->setText(metadata.iFileName) ; } else { iAttachmentListLabel->setText(QString()) ; } } } } else { emit error ( MController::FileOperationError, tr("File open error")) ; } } } classified-ads-0.09/ui/dialogbase.h000066400000000000000000000053251260620453500172050ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CA_DIALOG_BASE_H #define CA_DIALOG_BASE_H #include #include #include "../mcontroller.h" #include "metadataQuery.h" // for metadata data structure class Profile ; class QLabel ; /** * @brief base-class for content-posting dialogs of classified ads */ class DialogBase : public QDialog { Q_OBJECT protected: // methods /** constructor */ DialogBase(QWidget* aParent, MController* aController, Profile& aSelectedProfile) ; /** * method for publishing an (attachment) file * @param aFileMetadata describes the file. The iFileName member of * the structure must contain valid filesystem filename * @param aForceNoEncryption if set to true, always produce * plain-text binary, with no encryption * @param aBinaryRecipientList if non-NULL, contains list of operator * key fingerprints that are the operators that will be able to * read the binary. * @return fingerprint of the published file or KNullHash */ Hash publishBinaryAttachment(const MetadataQueryDialog::MetadataResultSet& aFileMetadata, bool aForceNoEncryption = false, const QList* aBinaryRecipientList = NULL) ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; protected slots: void attachButtonClicked() ; protected: // variables MController* iController ; Profile& iSelectedProfile ; /** list of files used in posting-dialogs */ QList iFilesAboutToBeAttached ; /** label used to show list of attached files. pointer must be set by inheriting class prior to call to slot attachButtonClicked() */ QLabel* iAttachmentListLabel ; } ; #endif classified-ads-0.09/ui/editContact.ui000066400000000000000000000050551260620453500175420ustar00rootroot00000000000000 editContactDialog 0 0 800 165 0 0 0 0 Edit a contact true Address (SHA1) of contact Local nickname <html><head/><body><p>Settings some trusted is public information to readers of your profile</p></body></html> This contact is to be publicly trusted in transactions 0 0 QDialogButtonBox::Cancel|QDialogButtonBox::Ok classified-ads-0.09/ui/editcontact.cpp000066400000000000000000000076541260620453500177560ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include "newclassifiedaddialog.h" #include "../mcontroller.h" #include "../log.h" #include "../datamodel/model.h" #include "../FrontWidget.h" #include "../datamodel/contactlistingmodel.h" #include "../datamodel/trusttreemodel.h" #include "editcontact.h" EditContactDialog::EditContactDialog(QWidget *aParent, MController* aController, const Hash& aProfileFingerPrint, const QString& aNickName, bool aIsTrusted, ContactListingModel& aContactsModel) : QDialog(aParent), iController(aController), iContactsModel(aContactsModel) { ui.setupUi(this) ; connect(ui.bottomButtonsBox, SIGNAL(accepted()), this, SLOT(okButtonClicked())); connect(ui.bottomButtonsBox, SIGNAL(rejected()), this, SLOT(cancelButtonClicked())); // if we have the contact already, setup the UI from that: Contact c ; if ( aContactsModel.contactByFingerPrint(aProfileFingerPrint, &c) ) { ui.hashEdit->setText(aProfileFingerPrint.toString()) ; ui.nickNameEdit->setText(c.iNickName) ; ui.trustedCheckBox->setChecked(c.iIsTrusted) ; } else { if (aProfileFingerPrint != KNullHash ) { ui.hashEdit->setText(aProfileFingerPrint.toString()) ; } ui.nickNameEdit->setText(aNickName) ; ui.trustedCheckBox->setChecked(aIsTrusted) ; } } EditContactDialog::~EditContactDialog() { LOG_STR("EditContactDialog::~EditContactDialog\n") ; } void EditContactDialog::okButtonClicked() { LOG_STR("EditContactDialog::okButtonClicked\n") ; Contact c ; c.iFingerPrint.fromString(reinterpret_cast(ui.hashEdit->text().toLatin1().constData())) ; if ( c.iFingerPrint == KNullHash ) { QMessageBox::about(this, tr("Error"), tr("Operator addr is not valid")) ; } else { c.iNickName = ui.nickNameEdit->text() ; c.iIsTrusted = ui.trustedCheckBox->isChecked() ; iController->model().lock() ; iContactsModel.newContactAdded(c) ; iController->offerDisplayNameForProfile(c.iFingerPrint, c.iNickName, true) ; iController->storePrivateDataOfSelectedProfile(true) ; // true == publish trust list too // trust tree model will obtain the "self" profile from // profilemodel so this notify here must be given after // the profile has been persisted into permanent storage iController->model().trustTreeModel()->offerTrustList(iController->profileInUse(), QString(), iContactsModel.trustList()) ; iController->model().unlock() ; close() ; this->deleteLater() ; } } void EditContactDialog::cancelButtonClicked() { LOG_STR("EditContactDialog::cancelButtonClicked\n") ; close() ; this->deleteLater() ; } classified-ads-0.09/ui/editcontact.h000066400000000000000000000035561260620453500174200ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef EDIT_CONTACT_DIALOG_H #define EDIT_CONTACT_DIALOG_H #include #include "../mcontroller.h" #include "../ui_editContact.h" class ContactListingModel ; class Contact ; /** * @brief class for editing a contact-list item * */ class EditContactDialog : public QDialog { Q_OBJECT public: /** * Constructor. */ EditContactDialog(QWidget *aParent, MController* aController, const Hash& aProfileFingerPrint, const QString& aNickName, bool aIsTrusted, ContactListingModel& aContactsModel ); /** destructor */ ~EditContactDialog(); private slots: void okButtonClicked() ; void cancelButtonClicked() ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: Ui_editContactDialog ui ; MController* iController ; ContactListingModel& iContactsModel ; }; #endif classified-ads-0.09/ui/insertLink.ui000066400000000000000000000104561260620453500174240ustar00rootroot00000000000000 insertLinkDialog 0 0 800 165 0 0 0 0 Insert link true URL true caprofile caad cacomment cablob http ftp :// Link label in text 0 0 QDialogButtonBox::Cancel|QDialogButtonBox::Ok bottomButtonsBox rejected() insertLinkDialog reject() 399 139 399 82 classified-ads-0.09/ui/insertlinkdialog.cpp000066400000000000000000000076631260620453500210170ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include #include #include "insertlinkdialog.h" #include "../mcontroller.h" #include "../log.h" #include "../datamodel/model.h" InsertLinkDialog::InsertLinkDialog(QWidget *aParent, MController* aController) : QDialog(aParent), iController(aController) { ui.setupUi(this) ; connect(ui.urlEdit, SIGNAL(textEdited(const QString&)), this, SLOT(urlTextEdited(const QString&)), Qt::QueuedConnection) ; ui.bottomButtonsBox->button( QDialogButtonBox::Ok )->setEnabled( false ); connect(ui.bottomButtonsBox, SIGNAL(accepted()), this, SLOT(okButtonClicked())); connect(ui.bottomButtonsBox, SIGNAL(rejected()), this, SLOT(deleteLater())); ui.urlEdit->setFocus(Qt::PopupFocusReason) ; } InsertLinkDialog::~InsertLinkDialog() { LOG_STR("InsertLinkDialog::~InsertLinkDialog\n") ; } void InsertLinkDialog::okButtonClicked() { LOG_STR("InsertLinkDialog::okButtonClicked\n") ; QString url ; // first try parse the text in editor without scheme // from listbox. if ( ui.urlEdit->text().indexOf("://") > -1 ) { // user did give scheme url = ui.urlEdit->text() ; } else { // take scheme from combobox url = ui.schemeComboxBox->currentText() + "://" + ui.urlEdit->text() ; } QUrl parsedUrl = QUrl::fromUserInput(url) ; url = QString(parsedUrl.toEncoded()) ; if ( !parsedUrl.isValid() ) { QMessageBox errorMessage ; errorMessage.setText(tr("Invalid URL")); errorMessage.setStandardButtons( QMessageBox::Ok ); errorMessage.exec(); return ; } QString label ( ui.linkLabelEdit->text() ); if ( label.length() == 0 ) { label = url ; } // then check that if it was classified ads URL, that the // hash must parse. Hash parsedHash ; parsedHash.fromString(reinterpret_cast(parsedUrl.host().toLatin1().constData())) ; if ( parsedHash == KNullHash && ( parsedUrl.scheme() == "caprofile" || parsedUrl.scheme() == "caad" || parsedUrl.scheme() == "cacomment" || parsedUrl.scheme() == "cablob" ) ) { QLOG_STR("Hash was not valid") ; QMessageBox errorMessage ; errorMessage.setText("Invalid SHA1 with scheme " + parsedUrl.scheme()); errorMessage.setStandardButtons( QMessageBox::Ok ); errorMessage.exec(); return ; } else { QLOG_STR("Hash is " + parsedHash.toString()) ; QLOG_STR("Url " + url ) ; QLOG_STR("Label " + label ) ; emit linkReady(url, label ) ; close() ; deleteLater(); } } void InsertLinkDialog::urlTextEdited(const QString &aText) { if ( aText.length() == 0 ) { ui.bottomButtonsBox->button( QDialogButtonBox::Ok )->setEnabled( false ); } else { ui.bottomButtonsBox->button( QDialogButtonBox::Ok )->setEnabled( true ); } } classified-ads-0.09/ui/insertlinkdialog.h000066400000000000000000000035701260620453500204550ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef INSERT_LINK_DIALOG_H #define INSERT_LINK_DIALOG_H #include #include "../mcontroller.h" #include "../ui_insertLink.h" /** * @brief class for editing link to be inserted into edited text */ class InsertLinkDialog : public QDialog { Q_OBJECT public: /** * Constructor. */ InsertLinkDialog(QWidget *aParent, MController* aController ); /** destructor */ ~InsertLinkDialog(); signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; /** * signal that is emitted when user is finished with * addition ; this should be connected to suitable * text editor */ void linkReady(const QString& aLinkAddress, const QString& aLinkLabel) ; private slots: void okButtonClicked() ; void urlTextEdited(const QString &aText) ; /**< when user changes URL text */ private: Ui_insertLinkDialog ui ; MController* iController ; }; #endif classified-ads-0.09/ui/leftarrow.png000066400000000000000000000003671260620453500174560ustar00rootroot00000000000000‰PNG  IHDRыŠZ pHYs  šœtIMEо 0­#tEXtCommentCreated with GIMPWqIDAT8Ыcќџџ?Й€—„ц6у:Ы/\j˜№ы$Эf"ЕсГ™ݘжтё0ŠГбtтз†b3I^%!ЊиLžЕT mR#$m“I(6c*%& ‘sV Фf bœŠ/РHвЯ„еDСHIIBQ</Ђ+Lт…ЇIENDЎB`‚classified-ads-0.09/ui/manualConnectionDialog.ui000066400000000000000000000066171260620453500217230ustar00rootroot00000000000000 manualConnectionDialog 0 0 507 164 0 0 0 0 Manually add node to connection queue true QLayout::SetDefaultConstraint 0 0 Remote node listen port 100 16777215 1 65535 0 Remote node network address 250 0 IPv4, IPv6 or DNS name QDialogButtonBox::Cancel|QDialogButtonBox::Ok portEdit addressEdit connectionDlgButtonBox connectionDlgButtonBox rejected() manualConnectionDialog reject() 253 139 253 81 classified-ads-0.09/ui/manualconnection.cpp000066400000000000000000000100441260620453500207750ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include "../mcontroller.h" #include "../log.h" #include "../datamodel/model.h" #include "../datamodel/mnodemodelprotocolinterface.h" #include "manualconnection.h" #include ManualConnectionDialog::ManualConnectionDialog(QWidget *aParent, MController& aController) : QDialog(aParent), iController(aController) { ui.setupUi(this) ; connect(ui.connectionDlgButtonBox, SIGNAL(accepted()), this, SLOT(addButtonClicked())); connect(this, SIGNAL(rejected()), this, SLOT(deleteLater())) ; adjustSize() ; } ManualConnectionDialog::~ManualConnectionDialog() { LOG_STR("ManualConnectionDialog::~ManualConnectionDialog\n") ; } void ManualConnectionDialog::addButtonClicked() { LOG_STR("ManualConnectionDialog::addButtonClicked()\n") ; const bool hasIpv6 = !Connection::Ipv6AddressesEqual(iController.getNode().ipv6Addr(), KNullIpv6Addr) ; QMessageBox msgBox; msgBox.setText(tr("DNS lookup failure")) ; msgBox.setStandardButtons( QMessageBox::Ok ); bool isAddressSet (false) ; if ( ui.addressEdit->text().length() > 0 ) { QLOG_STR("Entered network addr " + ui.addressEdit->text()) ; QHostAddress addrToConnect ; QHostInfo info = QHostInfo::fromName(ui.addressEdit->text()) ; if ( info.error() == QHostInfo::NoError ) { // check for ipv6 addr if we have one if ( hasIpv6 ) { foreach ( const QHostAddress& result, info.addresses() ) { if ( result.protocol() == QAbstractSocket::IPv6Protocol ) { isAddressSet = true ; addrToConnect.setAddress(result.toIPv6Address()) ; QLOG_STR("Found valid IPv6 addr " + addrToConnect.toString()) ; break ; } } } if ( isAddressSet == false ) { foreach ( const QHostAddress& result, info.addresses() ) { if ( result.protocol() == QAbstractSocket::IPv4Protocol ) { isAddressSet = true ; addrToConnect.setAddress(result.toIPv4Address()) ; QLOG_STR("Found valid IPv4 addr " + addrToConnect.toString()) ; break ; } } } if ( isAddressSet ) { Node* n = new Node(KNullHash, ui.portEdit->value()) ; if ( addrToConnect.protocol() == QAbstractSocket::IPv4Protocol ) { n->setIpv4Addr(addrToConnect.toIPv4Address()) ; } else { n->setIpv6Addr(addrToConnect.toIPv6Address()) ; } iController.model().nodeModel().addNodeToConnectionWishList(n) ; // nodemodel will delete n close() ; deleteLater() ; } else { msgBox.exec(); } } else { msgBox.exec(); } } } classified-ads-0.09/ui/manualconnection.h000066400000000000000000000031611260620453500204440ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CA_MANUAL_CONNECTION_DIALOG_H #define CA_MANUAL_CONNECTION_DIALOG_H #include #include "../mcontroller.h" #include "../ui_manualConnectionDialog.h" /** * @brief class for manually adding node connection wishlist-item */ class ManualConnectionDialog : public QDialog { Q_OBJECT public: /** * Constructor. */ ManualConnectionDialog(QWidget *aParent, MController& aController ); /** destructor */ ~ManualConnectionDialog(); private slots: void addButtonClicked() ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: Ui_manualConnectionDialog ui ; MController& iController ; }; #endif classified-ads-0.09/ui/metadataQuery.cpp000066400000000000000000000104241260620453500202500ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #if QT_VERSION >= 0x050000 // qt5 has its own mime-type-handling so lets depend on that, easier.. #include #else // with qt4 use libmagic that does the same job #include // from libmagic #endif #include #include "../mcontroller.h" #include "../log.h" #include "../datamodel/model.h" #include "metadataQuery.h" MetadataQueryDialog::MetadataQueryDialog(QWidget *aParent, MController& aController, MetadataResultSet& aResultsSet) : QDialog(aParent), iController(aController), iResultsSet ( aResultsSet ) { ui.setupUi(this) ; ui.fileNameEdit->setText(aResultsSet.iFileName) ; if ( aResultsSet.iMimeType.length() == 0 ) { ui.mimetypeEdit->setText(findMimeTypeForFile(aResultsSet.iFileName) ) ; } connect (ui.bottomButtonsBox, SIGNAL(rejected()), this, SLOT(deleteLater())) ; connect (ui.bottomButtonsBox, SIGNAL(accepted()), this, SLOT(okButtonClicked())) ; } MetadataQueryDialog::~MetadataQueryDialog() { LOG_STR("MetadataQueryDialog::~MetadataQueryDialog\n") ; } void MetadataQueryDialog::okButtonClicked() { LOG_STR("MetadataQueryDialog::okButtonClicked\n") ; iResultsSet.iMimeType = ui.mimetypeEdit->text() ; iResultsSet.iDescription = ui.descriptionEdit->text() ; iResultsSet.iOwner = ui.ownerEdit->text() ; iResultsSet.iLicense = ui.licenseComboBox->currentText() ; done(QDialog::Accepted) ; close() ; deleteLater() ; } QString MetadataQueryDialog::findMimeTypeForFile(const QString& aFileName) { QString retval ; #if QT_VERSION >= 0x050000 if ( QFile(aFileName).exists() ) { QMimeDatabase db ; QMimeType detectedType ( db.mimeTypeForFile(aFileName) ) ; if ( detectedType.isValid() ) { retval = detectedType.name() ; } } #else if ( QFile(aFileName).exists() ) { // what is going to happen if the filesystem is not UTF-8 fs ??? const char *fileNameCStyleHeap (aFileName.toUtf8().constData()) ; // serious magick here. if we offer to libmagick the heap buffer // from aFileName.toUtf8().constData() then it will not open the // file .. so lets allocate a stack buffer, as it seems to work. char fileNameCStyle[1024] ; if ( strlen(fileNameCStyleHeap) < 1024 ) { strncpy(fileNameCStyle, fileNameCStyleHeap, 1023) ; // code stolen from http://vivithemage.co.uk/blog/?p=105 so thanks Vivi. magic_t magic_cookie; /*MAGIC_MIME tells magic to return a mime of the file, but you can specify different things*/ magic_cookie = magic_open(MAGIC_MIME); if (magic_cookie == NULL) { QLOG_STR("unable to initialize magic library"); return retval ; } if (magic_load(magic_cookie, NULL) != 0) { LOG_STR2("cannot load magic database - %s", magic_error(magic_cookie)); magic_close(magic_cookie); return retval ; } LOG_STR2("Filename for magic = >%s<", fileNameCStyle); const char *magic_full( magic_file(magic_cookie, fileNameCStyle) ) ; if ( magic_full == NULL ) { LOG_STR2("Magic_file error - %s", magic_error(magic_cookie)); } else { retval = QString::fromUtf8(magic_full) ; } magic_close(magic_cookie); } } #endif return retval ; } classified-ads-0.09/ui/metadataQuery.h000066400000000000000000000045071260620453500177220ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CA_METADATA_DIALOG_H #define CA_METADATA_DIALOG_H #include #include "../mcontroller.h" #include "../ui_metadataQuery.h" /** * @brief class for querying metadata of file about to get published */ class MetadataQueryDialog : public QDialog { Q_OBJECT public: /** * This structure contains results of @ref MetadataQueryDialog * e.g the dialog queries this dataset from user */ typedef struct MetadataResultSetStruct { QString iFileName; /**< name of file in filesystem */ QString iDescription; QString iMimeType; QString iOwner; QString iLicense; } MetadataResultSet ; /** * Constructor. * @param aParent is the parent widget * @param aController is application controller instance * @param aResultsSet is reference to structure where this dialog * will store its results. */ MetadataQueryDialog(QWidget *aParent, MController& aController, MetadataResultSet& aResultsSet ); /** destructor */ ~MetadataQueryDialog(); public slots: void okButtonClicked() ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: // methods QString findMimeTypeForFile(const QString& aFileName) ; private: Ui_metadataQuery ui ; MController& iController ; MetadataResultSet& iResultsSet ; }; #endif classified-ads-0.09/ui/metadataQuery.ui000066400000000000000000000141211260620453500201010ustar00rootroot00000000000000 metadataQuery 0 0 751 309 0 0 0 0 File information true 0 0 QDialogButtonBox::Cancel|QDialogButtonBox::Ok false 0 Name of the file: false 0 Owner of file (name or SHA1 if CA operator): Qt::Vertical 20 40 0 License of use: true Public domain GPL LGPL BSD CC-BY CC-BY-SA CC-BY-ND CC-BY-NC CC-BY-NC-SA CC-BY-NC-ND 0 Mime-type: 0 Description of file: 13 75 true Enter information regarding file before publish: fileNameEdit bottomButtonsBox bottomButtonsBox rejected() metadataQuery reject() 411 653 411 335 classified-ads-0.09/ui/newClassifiedAd.ui000066400000000000000000000132711260620453500203250ustar00rootroot00000000000000 newCaDialog 0 0 804 687 0 0 0 0 Post a new classified ad false QLayout::SetMinAndMaxSize 14 75 true About 0 0 of 0 0 in Subject QLayout::SetDefaultConstraint 0 0 Attachment: 0 0 Add Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok bottomButtonsBox accepted() newCaDialog accept() 248 254 157 274 bottomButtonsBox rejected() newCaDialog reject() 316 260 286 274 10 10 true true true classified-ads-0.09/ui/newPrivMsg.ui000066400000000000000000000066141260620453500174040ustar00rootroot00000000000000 newPrivMsgDialog 0 0 800 600 0 0 0 0 Send a private message true Subject Recipient 0 0 Attachments: 0 0 Attach 0 0 QDialogButtonBox::Cancel|QDialogButtonBox::Ok classified-ads-0.09/ui/newProfileComment.ui000066400000000000000000000072261260620453500207400ustar00rootroot00000000000000 newProfileCommentDialog 0 0 823 705 0 0 0 0 Comment a operators profile true Subject Commented profile 0 0 0 0 Attachments: 0 0 Attach 0 0 QDialogButtonBox::Cancel|QDialogButtonBox::Ok classified-ads-0.09/ui/newTextDocument.ui000066400000000000000000000072021260620453500204320ustar00rootroot00000000000000 newTextDocumentDialog 0 0 823 705 0 0 0 0 Edit and publish a new text document true Document title 0 0 0 0 Attachments: 0 0 Attach 0 0 QDialogButtonBox::Cancel|QDialogButtonBox::Ok bottomButtonsBox rejected() newTextDocumentDialog reject() 411 687 411 352 classified-ads-0.09/ui/newclassifiedaddialog.cpp000066400000000000000000000176511260620453500217600ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include "newclassifiedaddialog.h" #include "../mcontroller.h" #include "../log.h" #include "../datamodel/model.h" #include "../datamodel/profile.h" #include "../FrontWidget.h" #include "../datamodel/camodel.h" #include "../datamodel/ca.h" #include "../datamodel/contentencryptionmodel.h" #include "../datamodel/calistingmodel.h" NewClassifiedAdDialog::NewClassifiedAdDialog(QWidget *aParent, MController* aController, int aAboutComboxIndex , int aRegardingComboxIndex , int aWhereComboxIndex , const QString& aAboutComboText, const QString& aRegardingComboText, const QString& aWhereComboxText, Profile& aSelectedProfile, CAListingModel& aCaListingModel, const Hash* aReferences, const QString* aSubject ) : TextEdit(aParent, aController, aSelectedProfile), iCAListingModel(aCaListingModel) { ui.setupUi(this) ; initializeTextEditor(ui.adEdit, ui.gridLayout, ui.toolBoxForActionsUpper, ui.toolBoxForActionsLower) ; iAttachmentListLabel = ui.attachmentListLabel ; FrontWidget::fillCaSelectionCombobox(*ui.caAboutComboBox,true,*aController) ; FrontWidget::fillCaSelectionCombobox(*ui.caRegardingCombobox,false,*aController) ; if ( aReferences ) { iReferences = *aReferences ; } ui.caWhereComboBox->addItems(aController->model().classifiedAdsModel().whereComboBoxTexts()) ; if ( aSubject ) { ui.subjectEdit->setText(*aSubject) ; } ui.caAboutComboBox->setEditable(true) ; ui.caAboutComboBox->setInsertPolicy(QComboBox::InsertAtBottom) ; ui.caRegardingCombobox->setEditable(true) ; ui.caRegardingCombobox->setInsertPolicy(QComboBox::InsertAtBottom) ; ui.caWhereComboBox->setEditable(true) ; ui.caWhereComboBox->setInsertPolicy(QComboBox::InsertAtBottom) ; LOG_STR2("aAboutComboxIndex = %d\n", aAboutComboxIndex) ; LOG_STR2("ClassifiedAdsModel::ToBeAnnounced = %d\n", (int)(ClassifiedAdsModel::ToBeAnnounced)) ; if ( aAboutComboxIndex == -1 ) { // custom text LOG_STR2("aAboutComboText = %s\n", qPrintable(aAboutComboText) ); QLOG_STR("aAboutComboIndex = %s\n" + QString::number(aAboutComboxIndex) ); ui.caAboutComboBox->addItem(aAboutComboText) ; ui.caAboutComboBox->setCurrentIndex(ui.caAboutComboBox->count()-1) ; } else { QLOG_STR("aAboutComboIndex = %s\n" + QString::number(aAboutComboxIndex) ); ui.caAboutComboBox->setCurrentIndex(aAboutComboxIndex) ; } if ( aRegardingComboxIndex == -1 ) { // custom text LOG_STR2( "aRegardingComboText= %s\n", qPrintable(aRegardingComboText) ); ui.caRegardingCombobox->addItem(aRegardingComboText) ; ui.caRegardingCombobox->setCurrentIndex(ui.caRegardingCombobox->count()-1) ; } else { ui.caRegardingCombobox->setCurrentIndex(aRegardingComboxIndex) ; } if ( aWhereComboxIndex == -1 ) { // custom text LOG_STR2( "aWhereComboxText= %s\n", qPrintable(aWhereComboxText) ); ui.caWhereComboBox->addItem(aWhereComboxText) ; ui.caWhereComboBox->setCurrentIndex(ui.caWhereComboBox->count()-1) ; } else { ui.caWhereComboBox->setCurrentIndex(aWhereComboxIndex) ; } connect(ui.bottomButtonsBox, SIGNAL(accepted()), this, SLOT(okButtonClicked())); connect(ui.bottomButtonsBox, SIGNAL(rejected()), this, SLOT(cancelButtonClicked())); connect(ui.addAttachmentBtn, SIGNAL(clicked()), this, SLOT(attachButtonClicked())); } NewClassifiedAdDialog::~NewClassifiedAdDialog() { LOG_STR("NewClassifiedAdDialog::~NewClassifiedAdDialog\n") ; } void NewClassifiedAdDialog::okButtonClicked() { LOG_STR("NewClassifiedAdDialog::okButtonClicked\n") ; Hash selectedUserProfileHash ( iController->profileInUse() ) ; CA ad ; if ( selectedUserProfileHash != KNullHash && ui.subjectEdit->text().length() > 0 && ui.adEdit->toHtml().length() > 0 ) { if ( iSelectedProfile.iIsPrivate == false ) { ad.iSenderName = iSelectedProfile.displayName() ; } foreach (const MetadataQueryDialog::MetadataResultSet& attachmentFile , iFilesAboutToBeAttached ) { Hash attachmentHash = publishBinaryAttachment(attachmentFile, true) ; if ( attachmentHash != KNullHash ) { ad.iAttachedFiles.append(attachmentHash) ; } } ad.iSubject = ui.subjectEdit->text() ; ad.iMessageText = ui.adEdit->toHtml() ; ad.iGroup = FrontWidget::selectedClassification(*ui.caAboutComboBox, *ui.caRegardingCombobox, *ui.caWhereComboBox, *iController) ; ad.iSenderHash = iSelectedProfile.iFingerPrint ; ad.iTimeOfPublish = QDateTime::currentDateTimeUtc().toTime_t() ; ad.iReplyTo = iReferences ; int indexOfAboutCombo ( iController->model().classifiedAdsModel().aboutComboBoxTexts().indexOf(ui.caAboutComboBox->currentText()) ) ; int indexOfRegardingCombo ( iController->model().classifiedAdsModel().regardingComboBoxTexts().indexOf(ui.caRegardingCombobox->currentText()) ) ; int indexOfWhereCombo ( iController->model().classifiedAdsModel().whereComboBoxTexts().indexOf(ui.caWhereComboBox->currentText()) ) ; if ( indexOfAboutCombo != -1 ) { ad.iAboutComboBoxIndex = indexOfAboutCombo ; } else { ad.iAboutComboBoxText = ui.caAboutComboBox->currentText() ; } if ( indexOfRegardingCombo != -1 ) { ad.iConcernsComboBoxIndex = indexOfRegardingCombo ; } else { ad.iConcernsComboBoxText = ui.caRegardingCombobox->currentText() ; } // hopefully the indexing of countries won't change inside Qt?? // if it does, we'll need to start incorporating the old list // inside classified ads or groupings will just .. not work if ( indexOfWhereCombo != -1 ) { ad.iInComboBoxIndex = indexOfWhereCombo ; } else { ad.iInComboBoxText = ui.caWhereComboBox->currentText() ; } iController->model().lock() ; quint32 dummy ; if ( iController->model().contentEncryptionModel().PublicKey(iSelectedProfile.iFingerPrint, ad.iProfileKey, &dummy )) { ad.iFingerPrint = iController->model().classifiedAdsModel().publishClassifiedAd(iSelectedProfile, ad) ; } iController->model().unlock() ; } Hash hashOfClassification ; hashOfClassification.fromString(reinterpret_cast(ad.iGroup.toLatin1().constData())) ; iController->model().lock() ; iCAListingModel.newCaReceived(ad) ; iController->model().unlock() ; close() ; this->deleteLater() ; } void NewClassifiedAdDialog::cancelButtonClicked() { LOG_STR("NewClassifiedAdDialog::cancelButtonClicked\n") ; close() ; this->deleteLater() ; } classified-ads-0.09/ui/newclassifiedaddialog.h000066400000000000000000000070661260620453500214240ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef NEW_CLASSIFIED_AD_DIALOG_H #define NEW_CLASSIFIED_AD_DIALOG_H #include #include "../mcontroller.h" #include "../ui_newClassifiedAd.h" #include "../textedit/textedit.h" class ProfileSearchModel ; class ProfileReadersListingModel ; class Profile ; class CAListingModel ; /** * @brief class for allowing posting of new classified ad * * Inherits @ref DialogBase via @ref TextEdit where most editing * functionality comes from. */ class NewClassifiedAdDialog : public TextEdit { Q_OBJECT public: /** * Constructor. * * @param aParent is owner-window of this dialog * @param aController application controller reference * @param aAboutComboxIndex index of combobox of "about" in classification-selection * @param aRegardingComboxIndex index of combobox of "regarding" in classification-selection * @param aWhereComboxIndex index of combobox of "in" in classification-selection * @param aAboutComboText text of combobox in of "about" in classification-selection ; this may be text * typed by user, in which case the index (aAboutComboxIndex) is ignored * @param aRegardingComboText text of combobox in of "regarding" in classification-selection * @param aWhereComboxText text of combobox in of "where" in classification-selection * @param aSelectedProfile profile doing the sending * @param aReferences if CA is reply to another CA, this is article referenced. NULL * if article is start of a new thread. * @param aSubject if CA is reply to another CA, this is subject of * the original posting */ NewClassifiedAdDialog(QWidget *aParent, MController* aController, int aAboutComboxIndex , int aRegardingComboxIndex , int aWhereComboxIndex , const QString& aAboutComboText, const QString& aRegardingComboText, const QString& aWhereComboxText, Profile& aSelectedProfile, CAListingModel& aCaListingModel, const Hash* aReferences = NULL, const QString* aSubject = NULL ); /** destructor */ ~NewClassifiedAdDialog(); private slots: void okButtonClicked() ; void cancelButtonClicked() ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: Ui_newCaDialog ui ; Hash iReferences ; /**< if we're referencing another CA, this is the FP */ CAListingModel& iCAListingModel ; }; #endif classified-ads-0.09/ui/newprivmsgdialog.cpp000066400000000000000000000145661260620453500210360ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include "newprivmsgdialog.h" #include "../mcontroller.h" #include "../log.h" #include "../datamodel/model.h" #include "../datamodel/profile.h" #include "../FrontWidget.h" #include "../datamodel/privmsgmodel.h" #include "../datamodel/privmsg.h" #include "../datamodel/contentencryptionmodel.h" #include "../datamodel/profilemodel.h" NewPrivMessageDialog::NewPrivMessageDialog(QWidget *aParent, MController* aController, const QString& aRecipient, const QString& aSubject, Profile& aSelectedProfile, PrivateMessageSearchModel& aSearchModel, const Hash& aReferencesMsg, const Hash& aReferencesCa, const Hash& aRecipientsNode ) : TextEdit(aParent,aController,aSelectedProfile), iSearchModel(aSearchModel), iRecipientsNode(aRecipientsNode) { ui.setupUi(this) ; initializeTextEditor(ui.messageEdit, ui.gridLayout, ui.toolBoxLayoutUpper, ui.toolBoxLayoutLower) ; iReferencesMsg = aReferencesMsg ; iReferencesCa = aReferencesCa ; ui.subjectEdit->setText(aSubject) ; ui.recipientEdit->setText(aRecipient) ; iAttachmentListLabel = ui.attachmentsListLabel ; connect(ui.attachButton, SIGNAL(clicked()), this, SLOT(attachButtonClicked())); connect(ui.bottomButtonsBox, SIGNAL(accepted()), this, SLOT(okButtonClicked())); connect(ui.bottomButtonsBox, SIGNAL(rejected()), this, SLOT(cancelButtonClicked())); ui.messageEdit->setFocus(Qt::PopupFocusReason) ; } NewPrivMessageDialog::~NewPrivMessageDialog() { LOG_STR("NewPrivMessageDialog::~NewPrivMessageDialog") ; } void NewPrivMessageDialog::okButtonClicked() { LOG_STR("NewPrivMessageDialog::okButtonClicked") ; Hash selectedUserProfileHash ( iController->profileInUse() ) ; PrivMessage msg ; msg.iSenderName = iSelectedProfile.displayName() ; msg.iSubject = ui.subjectEdit->text() ; msg.iMessageText = ui.messageEdit->toHtml() ; msg.iSenderHash = iSelectedProfile.iFingerPrint ; if ( msg.iSenderName == msg.iSenderHash.toString() ) { msg.iSenderName.clear() ; } QLOG_STR("Privmsg msg.iSenderHash = " + msg.iSenderHash.toString() ) ; msg.iTimeOfPublish = QDateTime::currentDateTimeUtc().toTime_t() ; msg.iRecipient.fromString(reinterpret_cast(ui.recipientEdit->text().toLatin1().constData())) ; if ( msg.iRecipient == KNullHash ) { QMessageBox::about(this, tr("Error"), tr("Recipient addr is not valid")) ; } else { QLOG_STR("Privmsg msg.iRecipient = " + msg.iRecipient.toString() ) ; quint32 dummy ; QByteArray dummyRecipientKey ; if ( iController->model().contentEncryptionModel().PublicKey(msg.iRecipient, dummyRecipientKey, &dummy )) { if ( iReferencesMsg != KNullHash ) { msg.iReplyToMsg = iReferencesMsg ; } else { msg.iReplyToMsg = KNullHash ; } if ( iReferencesCa != KNullHash ) { msg.iReplyToCa = iReferencesCa ; } else { msg.iReplyToCa = KNullHash ; } QList* attachmentRecipients = new QList() ; attachmentRecipients->append(iSelectedProfile.iFingerPrint) ; // self attachmentRecipients->append(msg.iRecipient) ; // recipient foreach (const MetadataQueryDialog::MetadataResultSet& attachmentFile , iFilesAboutToBeAttached ) { Hash attachmentHash = publishBinaryAttachment(attachmentFile, false, attachmentRecipients ) ; if ( attachmentHash != KNullHash ) { msg.iAttachedFiles.append(attachmentHash) ; } } delete attachmentRecipients ; attachmentRecipients = NULL ; iController->model().lock() ; if ( iRecipientsNode == KNullHash ) { iRecipientsNode = tryFindRecipientNode(msg.iRecipient) ; } iController->model().contentEncryptionModel().PublicKey(iSelectedProfile.iFingerPrint, msg.iProfileKey, &dummy ) ; iController->model().privateMessageModel().publishPrivMessage(msg, iRecipientsNode) ; iSearchModel.newMsgReceived(msg) ; } else { QMessageBox::about(this, tr("Error"), tr("Recipient encryption key not found from storage")) ; } iController->model().unlock() ; close() ; this->deleteLater() ; } } void NewPrivMessageDialog::cancelButtonClicked() { LOG_STR("NewPrivMessageDialog::cancelButtonClicked") ; close() ; this->deleteLater() ; } Hash NewPrivMessageDialog::tryFindRecipientNode(const Hash& aRecipientFingerPrint) { Hash retval ; Profile *recipientProfile (NULL) ; if ( ( recipientProfile = iController->model().profileModel().profileByFingerPrint(aRecipientFingerPrint, false/* do not emit encryption errors*/, true /* omit image */) ) != NULL ) { if ( recipientProfile->iNodeOfProfile ) { retval = recipientProfile->iNodeOfProfile->nodeFingerPrint() ; } delete recipientProfile ; } return retval ; } classified-ads-0.09/ui/newprivmsgdialog.h000066400000000000000000000057701260620453500205000ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef NEW_PRIVATE_MESSAGE_DIALOG_H #define NEW_PRIVATE_MESSAGE_DIALOG_H #include "../textedit/textedit.h" #include "../mcontroller.h" #include "../ui_newPrivMsg.h" #include "../datamodel/profile.h" class PrivMessage ; class PrivMessageModel ; class PrivateMessageSearchModel ; /** * @brief class for allowing posting of a message to named recipient * */ class NewPrivMessageDialog : public TextEdit { Q_OBJECT public: /** * Constructor. * * @param aParent is owner-window of this dialog * @param aController application controller reference * @param aRecipient profile that will receive the message * @param aSubject if msg is reply to another msg, this is subject of * the original posting * @param aSelectedProfile profile doing the sending * @param aReferences if msg is reply to another msg, this is article referenced. NULL * if article is start of a new thread. */ NewPrivMessageDialog(QWidget *aParent, MController* aController, const QString& aRecipient, const QString& aSubject, Profile& aSelectedProfile, PrivateMessageSearchModel& aSearchModel, const Hash& aReferencesMsg = KNullHash, const Hash& aReferencesCa = KNullHash, const Hash& aRecipientsNode = KNullHash); /** destructor */ ~NewPrivMessageDialog(); private slots: void okButtonClicked() ; void cancelButtonClicked() ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: // methods // if recipients node is not known, here try finding out one Hash tryFindRecipientNode(const Hash& aRecipientFingerPrint) ; private: Ui_newPrivMsgDialog ui ; Hash iReferencesMsg ; /**< if we're referencing another msg, this is the FP */ Hash iReferencesCa ; /**< if we're referencing ca, this is the FP */ PrivateMessageSearchModel& iSearchModel ; Hash iRecipientsNode ; }; #endif classified-ads-0.09/ui/newprofilecommentdialog.cpp000066400000000000000000000132311260620453500223560ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include "newprofilecommentdialog.h" #include "../log.h" #include "../datamodel/model.h" #include "../datamodel/profilecomment.h" #include "../datamodel/profile.h" #include "../datamodel/profilecommentmodel.h" #include "../datamodel/profilecommentlistingmodel.h" #include "../datamodel/profilemodel.h" #include "../FrontWidget.h" #include "../datamodel/contentencryptionmodel.h" #include "attachmentlistdialog.h" // for tryFindNodeByProfile() NewProfileCommentDialog::NewProfileCommentDialog(QWidget *aParent, MController* aController, const QString& aCommentedProfile, const QString& aSubject, Profile& aSelectedProfile, ProfileCommentListingModel& aCommentListingModel, const Hash& aReferencesMsg, const Hash& aReferencesCa, const Hash& aRecipientsNode) : TextEdit(aParent, aController, aSelectedProfile), iRecipientsNode(aRecipientsNode), iCommentListingModel(aCommentListingModel) { ui.setupUi(this) ; initializeTextEditor(ui.messageEdit, ui.gridLayout, ui.toolBoxLayoutUpper, ui.toolBoxLayoutLower) ; iReferencesMsg = aReferencesMsg ; iReferencesCa = aReferencesCa ; ui.subjectEdit->setText(aSubject) ; ui.commentedProfileEdit->setText(aCommentedProfile) ; iAttachmentListLabel = ui.attahcmentsListLabel ; connect(ui.attachButton, SIGNAL(clicked()), this, SLOT(attachButtonClicked())); connect(ui.bottomButtonsBox, SIGNAL(accepted()), this, SLOT(okButtonClicked())); connect(ui.bottomButtonsBox, SIGNAL(rejected()), this, SLOT(cancelButtonClicked())); ui.messageEdit->setFocus(Qt::PopupFocusReason) ; } NewProfileCommentDialog::~NewProfileCommentDialog() { LOG_STR("NewProfileCommentDialog::~NewProfileCommentDialog") ; } void NewProfileCommentDialog::okButtonClicked() { LOG_STR("NewProfileCommentDialog::okButtonClicked") ; Hash selectedUserProfileHash ( iController->profileInUse() ) ; ProfileComment comment ; if ( iSelectedProfile.iIsPrivate == false ) { comment.iCommentorNickName = iSelectedProfile.displayName() ; } comment.iSubject = ui.subjectEdit->text() ; comment.iCommentText = ui.messageEdit->toHtml() ; comment.iCommentorHash = iSelectedProfile.iFingerPrint ; QLOG_STR("New profile comment comment.iCommentorHash = " + comment.iCommentorHash.toString() ) ; comment.iTimeOfPublish = QDateTime::currentDateTimeUtc().toTime_t() ; comment.iProfileFingerPrint.fromString(reinterpret_cast(ui.commentedProfileEdit->text().toLatin1().constData())) ; if ( comment.iProfileFingerPrint == KNullHash ) { QMessageBox::about(this, tr("Error"), tr("Commented profile addr is not valid")) ; } else { QLOG_STR("Profilecomment comment.iProfileFingerPrint = " + comment.iProfileFingerPrint.toString() ) ; if ( iReferencesMsg != KNullHash ) { comment.iReferences = iReferencesMsg ; comment.iTypeOfObjectReferenced = PrivateMessage ; } else if ( iReferencesCa != KNullHash ) { comment.iReferences = iReferencesCa ; comment.iTypeOfObjectReferenced = ClassifiedAd ; } else { comment.iReferences = KNullHash ; } foreach (const MetadataQueryDialog::MetadataResultSet& attachmentFile , iFilesAboutToBeAttached ) { Hash attachmentHash = publishBinaryAttachment(attachmentFile, false) ; if ( attachmentHash != KNullHash ) { comment.iAttachedFiles.append(attachmentHash) ; } } // TODO: // set iReferences to some meaningful value iController->model().lock() ; if ( iRecipientsNode == KNullHash ) { iRecipientsNode = AttachmentListDialog::tryFindNodeByProfile(comment.iProfileFingerPrint, *iController) ; } quint32 dummy ; if ( iController->model().contentEncryptionModel().PublicKey(iSelectedProfile.iFingerPrint, comment.iKeyOfCommentor, &dummy )) { if ( iController->model().profileCommentModel().publishProfileComment(comment) ) { iCommentListingModel.newCommentReceived(comment) ; } } else { QMessageBox::about(this, tr("Error"), tr("Recipient encryption key not found from storage")) ; } iController->model().unlock() ; close() ; this->deleteLater() ; } } void NewProfileCommentDialog::cancelButtonClicked() { LOG_STR("NewProfileCommentDialog::cancelButtonClicked") ; close() ; this->deleteLater() ; } classified-ads-0.09/ui/newprofilecommentdialog.h000066400000000000000000000062571260620453500220350ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef NEW_PROFILE_COMMENT_DIALOG_H #define NEW_PROFILE_COMMENT_DIALOG_H #include #include "../mcontroller.h" #include "../ui_newProfileComment.h" #include "../datamodel/profile.h" #include "../textedit/textedit.h" class ProfileCommentListingModel ; /** * @brief class for allowing posting of a comment about user profile * */ class NewProfileCommentDialog : public TextEdit { Q_OBJECT public: /** * Constructor. * * @param aParent is owner-window of this dialog * @param aController application controller reference * @param aCommentedProfile is fingerprint of the profile * that is about to be commented. If KNullHash, then * dialog will open with empty recipient * @param aSubject if comment is reply to another comment, this is subject of * the original posting * @param aSelectedProfile profile doing the sending * @param aReferencesMsg if msg is reply to another msg, this is article referenced. NULL * if article is start of a new thread. */ NewProfileCommentDialog (QWidget *aParent, MController* aController, const QString& aCommentedProfile, const QString& aSubject, Profile& aSelectedProfile, ProfileCommentListingModel& aCommentListingModel, const Hash& aReferencesMsg = KNullHash, const Hash& aReferencesCa = KNullHash, const Hash& aRecipientsNode = KNullHash); /** destructor */ ~NewProfileCommentDialog (); private slots: void okButtonClicked() ; void cancelButtonClicked() ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: // methods // if recipients node is not known, here try finding out one Hash tryFindRecipientNode(const Hash& aRecipientFingerPrint) ; private: Ui_newProfileCommentDialog ui ; Hash iReferencesMsg ; /**< if we're referencing another msg, this is the FP */ Hash iReferencesCa ; /**< if we're referencing ca, this is the FP */ Hash iRecipientsNode ; ProfileCommentListingModel& iCommentListingModel ; }; #endif classified-ads-0.09/ui/newtextdocument.cpp000066400000000000000000000071611260620453500207030ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include "newtextdocument.h" #include "../log.h" #include "../datamodel/model.h" #include "../FrontWidget.h" #include "../datamodel/binaryfilemodel.h" #include "../datamodel/binaryfilelistingmodel.h" #include "../datamodel/profilemodel.h" #include "../datamodel/profile.h" NewTextDocument::NewTextDocument(QWidget *aParent, MController* aController, Profile& aSelectedProfile, BinaryFileListingModel& aProfileFileListingModel) : TextEdit(aParent, aController, aSelectedProfile) , iProfileFileListingModel(aProfileFileListingModel) { ui.setupUi(this) ; initializeTextEditor(ui.documentEdit, ui.gridLayout, ui.toolBoxLayoutUpper, ui.toolBoxLayoutLower) ; iAttachmentListLabel = ui.attahcmentsListLabel ; // lets not have attachments in here, this thing itself // is more or less an attachment ; user can create links and // that is ok ui.attahcmentsListLabel->hide() ; ui.attachButton->hide() ; ui.attachmentsLabel->hide() ; connect(ui.bottomButtonsBox, SIGNAL(accepted()), this, SLOT(okButtonClicked())); connect(ui.bottomButtonsBox, SIGNAL(rejected()), this, SLOT(cancelButtonClicked())); ui.titleEdit->setFocus(Qt::PopupFocusReason) ; } NewTextDocument::~NewTextDocument() { LOG_STR("NewTextDocument::~NewTextDocument") ; } void NewTextDocument::okButtonClicked() { LOG_STR("NewTextDocument::okButtonClicked") ; QString fileName ; if ( ui.titleEdit->text().remove(QChar(' ')).length() < 1 ) { fileName = "doc.html" ; } else { fileName = ui.titleEdit->text().remove(QChar(' '))+".html" ; } QByteArray content ( qCompress( ui.documentEdit->toHtml().toUtf8() ) ) ; iController->model().lock() ; Hash publishedFileHash = iController->model().binaryFileModel().publishBinaryFile(iSelectedProfile, fileName, ui.titleEdit->text(), "application/classified_ads_text", QString(), QString(), content, true) ; iController->model().unlock() ; if ( publishedFileHash != KNullHash ) { iProfileFileListingModel.addFile(publishedFileHash) ; iSelectedProfile.iTimeOfPublish = QDateTime::currentDateTimeUtc().toTime_t() ; iController->model().profileModel().publishProfile(iSelectedProfile) ; close() ; this->deleteLater() ; } } void NewTextDocument::cancelButtonClicked() { LOG_STR("NewTextDocument::cancelButtonClicked") ; close() ; this->deleteLater() ; } classified-ads-0.09/ui/newtextdocument.h000066400000000000000000000037011260620453500203440ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef NEW_TEXT_DOCUMENT_DIALOG_H #define NEW_TEXT_DOCUMENT_DIALOG_H #include #include "../mcontroller.h" #include "../ui_newTextDocument.h" #include "../textedit/textedit.h" class Profile ; class BinaryFileListingModel ; /** * @brief class for editing and publishing a new text document */ class NewTextDocument : public TextEdit { Q_OBJECT public: /** * Constructor. * * @param aParent is owner-window of this dialog * @param aController application controller reference */ NewTextDocument (QWidget *aParent, MController* aController, Profile& aSelectedProfile, BinaryFileListingModel& aProfileFileListingModel ); /** destructor */ ~NewTextDocument (); private slots: void okButtonClicked() ; void cancelButtonClicked() ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: Ui_newTextDocumentDialog ui ; BinaryFileListingModel& iProfileFileListingModel ; }; #endif classified-ads-0.09/ui/passwd_dialog.cpp000066400000000000000000000110671260620453500202660ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include "passwd_dialog.h" #include "../mcontroller.h" #include "../log.h" #include "../datamodel/model.h" #include "../datamodel/contentencryptionmodel.h" PasswdDialog::PasswdDialog(QWidget *aParent, MController& aController, const QString& aPrompt, bool aIsPwdQueryDialog) : QDialog(aParent), iController(aController), iPrompt(aPrompt), iIsPwdQueryDialog(aIsPwdQueryDialog) { ui.setupUi(this) ; connect(ui.okButton, SIGNAL(clicked()), this, SLOT(okClicked())); ui.passwordPromptLabel->setText( aPrompt ); ui.passwordEdit->setFocus() ; LOG_STR("### PasswdDialog constructor out") ; } PasswdDialog::~PasswdDialog() { LOG_STR("PasswdDialog::~PasswdDialog") ; } void PasswdDialog::okClicked() { QString text = ui.passwordEdit->text(); bool goodPasswordFound = false ; // 5 characters is damn lousy passwd. // this implementation does not restrict user to // any particular passwd max len, informed users are // still free to use long passphrases. if ( text.size() > 4 ) { if ( iIsPwdQueryDialog ) { iController.model().lock() ; iController.setContentKeyPasswd(text) ; QList privateKeys = iController.model().contentEncryptionModel().listKeys(true,NULL) ; if ( privateKeys.size() == 0 ) { // because we had no secret key of any kind lets generate one iController.setProfileInUse(iController.model().contentEncryptionModel().generateKeyPair()) ; close() ; this->deleteLater() ; } else { // try each private key we have, if we have one // where the password matches then use that for ( int i = 0 ; i < privateKeys.size() ; i++ ) { Hash keyFingerPrint = privateKeys[i] ; QLOG_STR("Trying key fp " + keyFingerPrint.toString()) ; QByteArray PEMBytes ; if ( iController.model().contentEncryptionModel().PrivateKey(keyFingerPrint,PEMBytes) == true ) { EVP_PKEY* privateKey = iController.model().contentEncryptionModel().PrivateKeyFromPem(PEMBytes,false) ; if ( privateKey != NULL ) { // if we came here e.g. got the key, it is a sign // that we also had the correct password to open the key iController.setProfileInUse(keyFingerPrint) ; EVP_PKEY_free(privateKey) ; close() ; QLOG_STR("Using profile " + keyFingerPrint.toString()) ; this->deleteLater() ; goodPasswordFound = true ; } } } if ( !goodPasswordFound ) { QString errmsg("Bad password") ; emit error(MController::BadPassword, errmsg) ; } } iController.model().unlock() ; } else { // this is password change dialog iController.model().lock() ; if ( iController.model().contentEncryptionModel().changeKeyPassword(iController.profileInUse(),text) == 0 ) { iController.setContentKeyPasswd(text) ; } iController.model().unlock() ; close() ; this->deleteLater() ; } } else { QString errmsg(tr("Min length 5 (use 10+)")) ; emit error(MController::ContentEncryptionError, errmsg) ; } } classified-ads-0.09/ui/passwd_dialog.h000066400000000000000000000041541260620453500177320ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef PASSWD_DIALOG_H #define PASSWD_DIALOG_H #include #include "../mcontroller.h" #include "../ui_passwordDialog.h" class MController ; /** * @brief class for querying a password from user. * * thanks to Jasmin Blanchette and Mark Summerfield * who wrote the article at * http://www.informit.com/articles/article.aspx?p=1405224 * where this code here is more-or-less stolen from. */ class PasswdDialog : public QDialog { Q_OBJECT public: /** * Constructor. * * @param aParent is owner-window of this dialog * @param aController application controller reference * @param aPrompt text presented to user * @param aIsPwdQueryDialog if set to true, queries. If * false this dialog will change the password */ PasswdDialog(QWidget *aParent, MController& aController, const QString &aPrompt, bool aIsPwdQueryDialog = true ); ~PasswdDialog(); private slots: void okClicked(); signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: Ui_PasswordDialog ui ; MController& iController ; QString iPrompt ; bool iIsPwdQueryDialog ; }; #endif classified-ads-0.09/ui/passwordDialog.ui000066400000000000000000000027211260620453500202600ustar00rootroot00000000000000 PasswordDialog 0 0 385 178 Password required Should you forget this word, there is no easy way to recover any of your content 10 30 381 20 Enter password for protection of your messages 10 70 361 27 If you forget this word, there is no simple way to recover your contents 260 120 109 28 OK classified-ads-0.09/ui/profileCommentDisplay.ui000066400000000000000000000030401260620453500216020ustar00rootroot00000000000000 profileCommentDisplay 0 0 823 705 0 0 0 0 Comments regarding operator true 0 0 QDialogButtonBox::Close false classified-ads-0.09/ui/profileReadersDialog.ui000066400000000000000000000102441260620453500213630ustar00rootroot00000000000000 profileReadersDialog 0 0 635 577 0 0 0 0 Profile readers list Qt::RightToLeft Search for profiles to add First 100 matching profiles: 0 0 200 0 Add seleted to list of readers Current list of readers 0 0 Close 0 0 150 0 Remove selected 0 0 462 0 Qt::LeftToRight searchEdit listView addSelectedButton currentListOfReadersView removeSelectedItemsButton closeButton classified-ads-0.09/ui/profilecommentdisplay.cpp000066400000000000000000000176551260620453500220700ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include "profilecommentdisplay.h" #include "../mcontroller.h" #include "../log.h" #include "../datamodel/model.h" #include "../datamodel/profilecomment.h" #include "../datamodel/profilecommentmodel.h" #include "../datamodel/profilecommentlistingmodel.h" #include "../datamodel/profile.h" #include "profilecommentitemdelegate.h" #include "newprofilecommentdialog.h" #include "attachmentlistdialog.h" ProfileCommentDisplay::ProfileCommentDisplay(QWidget *aParent, MController* aController, ProfileCommentListingModel* aListingModel, ProfileCommentModel& aCommentModel, const Hash& aFirstCommentToDisplay, const Hash& aViewedProfile , Profile& aSelectedProfile ) : DialogBase(aParent, aController, aSelectedProfile), iListingModel(aListingModel), iCommentModel(aCommentModel), iCommentToDisplay ( aFirstCommentToDisplay ), iItemDelegate(NULL), iViewedProfile ( aViewedProfile ), iExportSharedFileAction(NULL) { ui.setupUi(this) ; // button "close" emits "rejected" signal? connect(ui.bottomButtonsBox, SIGNAL(rejected()), this, SLOT(closeButtonClicked())); QPushButton* newCommentButton = new QPushButton(tr("&Add comment...")); connect(newCommentButton, SIGNAL(clicked()), this, SLOT(newCommentButtonClicked())) ; // here buttonbox takes ownership of the newCommentButton so it // may not be deleted from this class any more ui.bottomButtonsBox->addButton(newCommentButton, QDialogButtonBox::ActionRole); ui.commentListView->setModel(aListingModel) ; ui.commentListView->setModelColumn(0) ; iExportSharedFileAction = new QAction(tr("Save attachment to disk.."),this) ; ui.commentListView->setContextMenuPolicy(Qt::ActionsContextMenu); ui.commentListView->addAction(iExportSharedFileAction) ; connect(iExportSharedFileAction, SIGNAL(triggered()), this, SLOT(exportSharedFile())) ; ProfileCommentItemDelegate* iItemDelegate = new ProfileCommentItemDelegate(*iListingModel, *(ui.commentListView)); ui.commentListView->setItemDelegate(iItemDelegate) ; connect(ui.commentListView->selectionModel(), SIGNAL(currentChanged ( const QModelIndex & , const QModelIndex & ) ), this, SLOT(currentItemChanged(const QModelIndex & , const QModelIndex & ))) ; iExportSharedFileAction->setEnabled(false) ; // try to set focus on selected comment, if any if (aFirstCommentToDisplay != KNullHash ) { QModelIndexList matchingArticles = aListingModel->match (aListingModel->index(0,0) , Qt::UserRole, aFirstCommentToDisplay.toQVariant(), 1, Qt::MatchExactly ) ; if ( matchingArticles.size() > 0 ) { ui.commentListView->selectionModel()->select(matchingArticles[0],QItemSelectionModel::Select) ; ui.commentListView->scrollTo(matchingArticles[0]) ; } else { QMessageBox::about(this,tr("Error"), tr("Article not found from local storage")); } } } ProfileCommentDisplay::~ProfileCommentDisplay() { LOG_STR("ProfileCommentDisplay::~ProfileCommentDisplay") ; ui.commentListView->setItemDelegate(NULL) ; delete iItemDelegate ; delete iExportSharedFileAction ; } void ProfileCommentDisplay::exportSharedFile() { LOG_STR("ProfileCommentDisplay::exportSharedFile " + iFingerPrintOfCommentOnFocus.toString() ) ; ProfileComment* p ( NULL ); if ( iFingerPrintOfCommentOnFocus != KNullHash && ( p = iCommentModel.profileCommentByFingerPrint(iFingerPrintOfCommentOnFocus) ) != NULL ) { QLOG_STR("Nr of attachments = " + QString::number(p->iAttachedFiles.count())) ; iController->model().lock() ; AttachmentListDialog *listing_dialog = new AttachmentListDialog(this, iController, iSelectedProfile, p->iAttachedFiles, AttachmentListDialog::tryFindNodeByProfile(p->iCommentorHash, *iController)) ; iController->model().unlock() ; connect(listing_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; connect (this, SIGNAL(finished(int)), listing_dialog, SLOT(reject()), Qt::QueuedConnection) ; listing_dialog->show() ; // the dialog will delete self delete p ; } } void ProfileCommentDisplay::closeButtonClicked() { LOG_STR("ProfileCommentDisplay::closeButtonClicked") ; close() ; this->deleteLater() ; } void ProfileCommentDisplay::currentItemChanged(const QModelIndex & aCurrent, const QModelIndex & /*aPrevious*/ ) { LOG_STR("ProfileCommentDisplay::currentItemChanged") ; unsigned numberOfAttachments = 0 ; numberOfAttachments = iListingModel->data(aCurrent,Qt::UserRole+3).toUInt(); iFingerPrintOfCommentOnFocus.fromString((const unsigned char *)(qPrintable(iListingModel->data(aCurrent,Qt::ToolTipRole).toString()))) ; if ( numberOfAttachments == 0 ) { iExportSharedFileAction->setEnabled(false) ; } else { iExportSharedFileAction->setEnabled(true) ; } } void ProfileCommentDisplay::newCommentButtonClicked() { LOG_STR("ProfileCommentDisplay::newCommentButtonClicked ") ; QString subject = "" ; ProfileComment* p ( NULL ); if ( iFingerPrintOfCommentOnFocus != KNullHash ) { iController->model().lock() ; p = iCommentModel.profileCommentByFingerPrint(iFingerPrintOfCommentOnFocus) ; iController->model().unlock(); if ( p ) { subject = p->iSubject ; delete p ; } } NewProfileCommentDialog *posting_dialog = new NewProfileCommentDialog(this, iController, iViewedProfile.toString(), subject, iSelectedProfile, *iListingModel ) ; connect(posting_dialog, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection ) ; posting_dialog->show() ; // the dialog will delete self. // if this dialog is closed, cascade to possible posting dialog too connect ( this, SIGNAL(rejected()), posting_dialog, SLOT(cancelButtonClicked()), Qt::QueuedConnection ) ; } classified-ads-0.09/ui/profilecommentdisplay.h000066400000000000000000000055371260620453500215310ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef PROFILECOMMENTDISPLAY_DIALOG_H #define PROFILECOMMENTDISPLAY_DIALOG_H #include #include "../mcontroller.h" #include "../ui_profileCommentDisplay.h" #include "dialogbase.h" class ProfileCommentListingModel ; class ProfileCommentModel ; class ProfileComment ; class QPushButton ; class ProfileCommentItemDelegate ; class Profile ; /** * @brief class for display of single classified ad */ class ProfileCommentDisplay : public DialogBase { Q_OBJECT public: /** * Constructor. * * @param aParent is owner-window of this dialog * @param aController application controller reference * @param aListingModel where the content comes from * @param aCommentModel needed when posting new comments * @param aFirstCommentToDisplay where dialog should scroll initialy * @param aViewedProfile profile whose comments are displayed */ ProfileCommentDisplay(QWidget *aParent, MController* aController, ProfileCommentListingModel* aListingModel, ProfileCommentModel& aCommentModel, const Hash& aFirstCommentToDisplay, const Hash& aViewedProfile , Profile& aSelectedProfile); /** destructor */ ~ProfileCommentDisplay(); private slots: void closeButtonClicked() ; /** * method for handling "add comment"-button */ void newCommentButtonClicked() ; void exportSharedFile() ; void currentItemChanged(const QModelIndex & current, const QModelIndex & previous ) ; private: Ui_profileCommentDisplay ui ; ProfileCommentListingModel* iListingModel; ProfileCommentModel& iCommentModel; Hash iCommentToDisplay; ProfileCommentItemDelegate* iItemDelegate ; Hash iViewedProfile ; QAction* iExportSharedFileAction ; /**< context-menu action for saving to filesystem a shared file */ Hash iFingerPrintOfCommentOnFocus ; }; #endif classified-ads-0.09/ui/profilecommentitemdelegate.cpp000066400000000000000000000122721260620453500230420ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "profilecommentitemdelegate.h" #include #include // for styles #include #include #include "../datamodel/profilecommentlistingmodel.h" #include "../log.h" // ideas mostly stolen from // http://stackoverflow.com/questions/1956542/how-to-make-item-view-render-rich-html-text-in-qt // so thanks Serge :) ProfileCommentItemDelegate::ProfileCommentItemDelegate(ProfileCommentListingModel& aListingModel, const QWidget& aDrawableWidget) : iListingModel(aListingModel) , iDrawableWidget(aDrawableWidget) { // empty, just initialize the listing model } ProfileCommentItemDelegate::~ProfileCommentItemDelegate() { } void ProfileCommentItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { QStyleOptionViewItemV4 optionV4 = option; initStyleOption(&optionV4, index); QStyle *style = optionV4.widget? optionV4.widget->style() : QApplication::style(); QTextDocument doc; doc.setHtml(iListingModel.data(index, Qt::UserRole+1).toString()); QString textToDisplayOnTop (iListingModel.data(index, Qt::UserRole+2).toString()) ; // Painting item without text optionV4.text = QString(); style->drawControl(QStyle::CE_ItemViewItem, &optionV4, painter); QAbstractTextDocumentLayout::PaintContext ctx; QPalette::ColorGroup cg = option.state & QStyle::State_Enabled ? QPalette::Normal : QPalette::Disabled; if (cg == QPalette::Normal && !(option.state & QStyle::State_Active)) { cg = QPalette::Inactive; } // Highlighting text if item is selected if (optionV4.state & QStyle::State_Selected) { ctx.palette.setColor(QPalette::Text, optionV4.palette.color(QPalette::Active, QPalette::HighlightedText)); } // textRect is whole item rect QRect textRect = option.rect ; doc.setTextWidth(iDrawableWidget.width()-10); painter->save(); // paint "title text" on top of the rect painter->drawText(QRect(textRect.left(), textRect.top(), iDrawableWidget.width()-10, QFontMetrics(painter->font()).height()), option.displayAlignment, textToDisplayOnTop); const unsigned numberOfAttachments = iListingModel.data(index, Qt::UserRole+3).toUInt() ; if ( numberOfAttachments == 0 ) { // then figure out where the html should begin: after the "title text" QPoint drawingOffsetForHtml ( 0 , QFontMetrics(painter->font()).height()+textRect.top() ) ; painter->translate(drawingOffsetForHtml) ; } else { // print also number of attachments painter->drawText(QRect(textRect.left(), textRect.top()+QFontMetrics(painter->font()).height(), iDrawableWidget.width()-10, QFontMetrics(painter->font()).height()), option.displayAlignment, tr("Attachments: ") + QString::number(numberOfAttachments)); // then set offset to be top+2 lines of text QPoint drawingOffsetForHtml ( 0 , (2*QFontMetrics(painter->font()).height())+textRect.top() ) ; painter->translate(drawingOffsetForHtml) ; } // and draw the actual comment text: doc.documentLayout()->draw(painter, ctx); painter->restore(); } QSize ProfileCommentItemDelegate::sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const { QStyleOptionViewItemV4 options = option; initStyleOption(&options, index); QTextDocument doc; doc.setHtml(iListingModel.data(index, Qt::UserRole+1).toString()); doc.setTextWidth(iDrawableWidget.width()-10); const QFont font = QApplication::font(); // why making this a member variable results in crash at dialog close?? const QFontMetrics fm(font); // so, now automatics and works const unsigned numberOfAttachments = iListingModel.data(index, Qt::UserRole+3).toUInt() ; if ( numberOfAttachments == 0 ) { QSize retval( iDrawableWidget.width()-10, doc.size().height()+fm.height()); return retval ; } else { QSize retval( iDrawableWidget.width()-10, doc.size().height()+(fm.height()*2)); return retval ; } } classified-ads-0.09/ui/profilecommentitemdelegate.h000066400000000000000000000042151260620453500225050ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef PROFILECOMMENTITEM_DELEGATE_H #define PROFILECOMMENTITEM_DELEGATE_H #include class ProfileCommentListingModel ; /** * @brief class for displaying single profile comment in a list view */ class ProfileCommentItemDelegate : public QStyledItemDelegate { Q_OBJECT public: /** * Constructor * @param aListingModel is the datamodel part where content comes from * @param aDrawableWidget is the container where these items will * be drawn. It is passed here because we want to query * its dimensions at runtime. */ ProfileCommentItemDelegate(ProfileCommentListingModel& aListingModel, const QWidget& aDrawableWidget) ; /** destructor */ ~ProfileCommentItemDelegate() ; protected: /** * implemented from class QStyledItemDelegate */ void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const; /** * implemented from class QStyledItemDelegate */ QSize sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const; private: ProfileCommentListingModel& iListingModel ; const QWidget& iDrawableWidget ; }; #endif /* PROFILECOMMENTITEM_DELEGATE_H */ classified-ads-0.09/ui/profilereadersdialog.cpp000066400000000000000000000135121260620453500216310ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include "profilereadersdialog.h" #include "../mcontroller.h" #include "../log.h" #include "../datamodel/model.h" #include "../datamodel/profilesearchmodel.h" #include "../datamodel/profilereaderslistingmodel.h" #include "../datamodel/profile.h" ProfileReadersDialog::ProfileReadersDialog(QWidget *aParent, MController* aController, Profile &aProfile) : QDialog(aParent), iController(aController), iSearchModel(NULL), iProfile(aProfile), iListingModel(NULL), iViewProfileAction(NULL) { ui.setupUi(this) ; connect(ui.closeButton, SIGNAL(clicked()), this, SLOT(closeButtonClicked())); connect(ui.addSelectedButton, SIGNAL(clicked()), this, SLOT(addButtonClicked())); connect(ui.removeSelectedItemsButton, SIGNAL(clicked()), this, SLOT(removeButtonClicked())); iSearchModel = new ProfileSearchModel(iController->model()) ; connect(iSearchModel, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection) ; ui.listView->setModel(iSearchModel) ; iTimerId = startTimer(1000); // 1-second timer iPreviousSearchFieldContent = ui.searchEdit->text() ; iListingModel = new ProfileReadersListingModel(iProfile) ; connect(iListingModel, SIGNAL( error(MController::CAErrorSituation, const QString&) ), iController, SLOT(handleError(MController::CAErrorSituation, const QString&)), Qt::QueuedConnection) ; ui.currentListOfReadersView->setModel(iListingModel) ; #if QT_VERSION >= 0x050000 // qt5 ui.currentListOfReadersView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); #else ui.currentListOfReadersView->horizontalHeader()->setResizeMode(QHeaderView::Stretch); #endif ui.searchEdit->setFocus() ; iViewProfileAction = new QAction(tr("View profile"), this) ; ui.currentListOfReadersView->setContextMenuPolicy(Qt::ActionsContextMenu); ui.currentListOfReadersView->addAction(iViewProfileAction) ; connect(iViewProfileAction, SIGNAL(triggered()), this, SLOT(viewProfileSelected())) ; } ProfileReadersDialog::~ProfileReadersDialog() { LOG_STR("ProfileReadersDialog::~ProfileReadersDialog") ; killTimer(iTimerId) ; ui.listView->setModel(NULL) ; ui.currentListOfReadersView->setModel(NULL) ; delete iListingModel ; delete iSearchModel ; delete iViewProfileAction ; } void ProfileReadersDialog::closeButtonClicked() { LOG_STR("ProfileReadersDialog::closeButtonClicked") ; close() ; this->deleteLater() ; } void ProfileReadersDialog::viewProfileSelected() { LOG_STR("ProfileReadersDialog::viewProfileSelected") ; iController->model().lock() ; Hash fingerPrint (KNullHash); foreach(const QModelIndex &index, ui.currentListOfReadersView->selectionModel()->selectedIndexes()) { fingerPrint.fromString((const unsigned char *)(qPrintable(iListingModel->data(index,Qt::ToolTipRole).toString()))); break ; } iController->model().unlock() ; if ( fingerPrint != KNullHash ) { iController->userInterfaceAction(MController::ViewProfileDetails, fingerPrint) ; close() ; this->deleteLater() ; } } void ProfileReadersDialog::removeButtonClicked() { LOG_STR("ProfileReadersDialog::removeButtonClicked") ; iController->model().lock() ; foreach(const QModelIndex &index, ui.currentListOfReadersView->selectionModel()->selectedIndexes()) { Hash fingerPrint ; fingerPrint.fromString((const unsigned char *)(qPrintable(iListingModel->data(index,Qt::ToolTipRole).toString()))); if ( fingerPrint != iProfile.iFingerPrint ) { // can't remove self from // list of readers iListingModel->removeReader(fingerPrint); } } iController->model().unlock() ; } void ProfileReadersDialog::addButtonClicked() { LOG_STR("addButtonClicked") ; iController->model().lock() ; foreach(const QModelIndex &index, ui.listView->selectionModel()->selectedIndexes()) { Hash fingerPrint ; fingerPrint.fromString((const unsigned char *)(qPrintable(iSearchModel->data(index,Qt::ToolTipRole).toString()))); iListingModel->addReader(fingerPrint); } iController->model().unlock() ; } void ProfileReadersDialog::timerEvent(QTimerEvent * /*event*/) { if ( iPreviousSearchFieldContent != ui.searchEdit->text() ) { LOG_STR("Change in string..") ; iController->model().lock() ; iSearchModel->setSearchString(ui.searchEdit->text() ) ; iController->model().unlock() ; } iPreviousSearchFieldContent = ui.searchEdit->text() ; } classified-ads-0.09/ui/profilereadersdialog.h000066400000000000000000000050131260620453500212730ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef PROFILE_READERs_DIALOG_H #define PROFILE_READERs_DIALOG_H #include #include "../mcontroller.h" #include "../ui_profileReadersDialog.h" class ProfileSearchModel ; class QTimerEvent ; class ProfileReadersListingModel ; class Profile ; /** * @brief class for allowing edit of profile readers list * */ class ProfileReadersDialog : public QDialog { Q_OBJECT public: /** * Constructor. * * @param aParent is owner-window of this dialog * @param aController application controller reference * @param aProfile is profile whose readers are listed */ ProfileReadersDialog(QWidget *aParent, MController* aController, Profile& aProfile ); /** destructor */ ~ProfileReadersDialog(); protected: /** * method used to check for changes in users search-field ; this way * user can keep on typing and we can perform the search when * field content changes .. */ void timerEvent(QTimerEvent *event); private slots: void closeButtonClicked() ; void addButtonClicked() ; void removeButtonClicked() ; void viewProfileSelected() ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: Ui_profileReadersDialog ui ; MController* iController ; ProfileSearchModel* iSearchModel ; /**< datamodel that does search */ int iTimerId ; QString iPreviousSearchFieldContent ; Profile& iProfile ; ProfileReadersListingModel* iListingModel ; /**< datamodel that lists names in nifty manner */ QAction *iViewProfileAction ; }; #endif classified-ads-0.09/ui/rightarrow.png000066400000000000000000000005321260620453500176330ustar00rootroot00000000000000‰PNG  IHDR?˜—ЧsBIT|dˆ pHYs з зB(›xtEXtSoftwarewww.inkscape.org›ю<зIDAT8Ег=‚@р7+ бXЊ‡Pl $OУАр8кcЂвЩ-АЄАRh€ЕbКVєU›§љ’ЩчœЃ!["БŽ2sЅїH+2Š˜їэЪk‚ъrЌpMNъз5ЄК ИЏ†M’3юБ‡\џМ2K€­jV$р>BfIЯЦљДZcMљКХR§‡исiC‹2OщбАЗ–юdЊuOУ.Ес0ZЄ dЖЋYД,tlР”аў›хьR™˜Qu”БrоѓѓIБ Ѕn5IENDЎB`‚classified-ads-0.09/ui/searchDisplay.ui000066400000000000000000000102131260620453500200640ustar00rootroot00000000000000 searchDisplay 0 0 823 671 0 0 0 0 Search data storage true 0 0 QDialogButtonBox::Close|QDialogButtonBox::Open false 0 Words: Search 0 Network search Qt::Vertical Search ads true Search profiles true Search comments true wordsEdit searchButton networkSearchCheckBox searchCAsCheckBox searchProfilesCheckBox searchCommentsCheckBox resultsView bottomButtonsBox bottomButtonsBox rejected() searchDisplay reject() 411 653 411 335 classified-ads-0.09/ui/searchdisplay.cpp000066400000000000000000000145311260620453500203000ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include "searchdisplay.h" #include "../log.h" #include "../datamodel/model.h" #include "../datamodel/searchmodel.h" #include "../datamodel/profile.h" #include "../mcontroller.h" #include SearchDisplay::SearchDisplay(QWidget *aParent, MController* aController, SearchModel* aSearchModel, Profile& aSelectedProfile ) : DialogBase(aParent, aController, aSelectedProfile), iSearchModel(aSearchModel), iOpenAction(NULL), iSearchDisplayKeyboardGrabber(NULL) { ui.setupUi(this) ; ui.resultsView->setModel(aSearchModel) ; ui.resultsView->setModelColumn(0) ; connect (this, SIGNAL(rejected()), this, SLOT(deleteLater())) ; connect (ui.searchButton, SIGNAL(clicked()), this, SLOT(searchButtonClicked())) ; connect (ui.bottomButtonsBox, SIGNAL(accepted()), this, SLOT(openButtonClicked())) ; ui.wordsEdit->setFocus() ; connect(ui.resultsView->selectionModel(), SIGNAL(currentChanged ( const QModelIndex & , const QModelIndex & ) ), this, SLOT(currentItemChanged(const QModelIndex & , const QModelIndex & ))) ; connect(ui.resultsView, SIGNAL(doubleClicked(const QModelIndex&)), this, SLOT(resultListDoubleClicked(const QModelIndex&))) ; iOpenAction = new QAction(tr("Open.."),this) ; ui.resultsView->setContextMenuPolicy(Qt::ActionsContextMenu); ui.resultsView->addAction(iOpenAction) ; connect(iOpenAction, SIGNAL(triggered()), this, SLOT(openSelectedContent())) ; // grab enter key iSearchDisplayKeyboardGrabber = new QShortcut(QKeySequence(QKeySequence::InsertParagraphSeparator),this) ; // and make entery key perform search in this dialog connect(iSearchDisplayKeyboardGrabber, SIGNAL(activated()), this, SLOT(keyEnterClicked())) ; if ( iSearchModel->isFTSSupported() == false ) { // if we can't do search ourselves, have only network search // available ui.networkSearchCheckBox->setCheckState(Qt::Checked) ; ui.networkSearchCheckBox->setEnabled(false) ; } } SearchDisplay::~SearchDisplay() { LOG_STR("SearchDisplay::~SearchDisplay") ; delete iOpenAction ; delete iSearchDisplayKeyboardGrabber ; } void SearchDisplay::closeButtonClicked() { LOG_STR("SearchDisplay::closeButtonClicked") ; close() ; this->deleteLater() ; } void SearchDisplay::searchButtonClicked() { LOG_STR("SearchDisplay::searchButtonClicked") ; iController->model().lock() ; iSearchModel->setSearchString(ui.wordsEdit->text(), ui.searchCAsCheckBox->isChecked(), ui.searchProfilesCheckBox->isChecked(), ui.searchCommentsCheckBox->isChecked(), ui.networkSearchCheckBox->isChecked()) ; iController->model().unlock() ; } void SearchDisplay::keyEnterClicked() { LOG_STR("SearchDisplay::keyEnterClicked") ; if ( ui.wordsEdit->hasFocus() ) { searchButtonClicked() ; } } void SearchDisplay::openButtonClicked() { LOG_STR("SearchDisplay::okButtonClicked") ; if ( iHashOfFocusedResult != KNullHash ) { openSelectedContent() ; } } void SearchDisplay::currentItemChanged(const QModelIndex & aCurrent, const QModelIndex & /*aPrevious*/ ) { iHashOfFocusedResult.fromQVariant(iSearchModel->data(aCurrent,Qt::UserRole)) ; iNodeOfFocusedResult.fromQVariant(iSearchModel->data(aCurrent,Qt::UserRole+2)) ; iTypeOfFocusedResult = (ProtocolItemType)(iSearchModel->data(aCurrent,Qt::UserRole+1).toInt()) ; QLOG_STR("SearchDisplay::currentItemChanged "+ QString::number(iTypeOfFocusedResult) + " " + iHashOfFocusedResult.toString() ) ; } void SearchDisplay::resultListDoubleClicked(const QModelIndex& aIndex) { LOG_STR("resultListDoubleClicked\n") ; iHashOfFocusedResult.fromQVariant(iSearchModel->data(aIndex,Qt::UserRole)) ; iNodeOfFocusedResult.fromQVariant(iSearchModel->data(aIndex,Qt::UserRole+2)) ; iTypeOfFocusedResult = (ProtocolItemType)(iSearchModel->data(aIndex,Qt::UserRole+1).toInt()) ; openSelectedContent() ; } void SearchDisplay::openSelectedContent() { LOG_STR("openSelectedContent\n") ; if ( iHashOfFocusedResult != KNullHash ) { switch ( iTypeOfFocusedResult ) { case ClassifiedAd: iController->userInterfaceAction(MController::ViewCa, iHashOfFocusedResult, iNodeOfFocusedResult) ; close() ; break ; case UserProfile: iController->userInterfaceAction(MController::ViewProfileDetails, iHashOfFocusedResult, iNodeOfFocusedResult) ; close() ; break ; case UserProfileComment: iController->userInterfaceAction(MController::ViewProfileComment, iHashOfFocusedResult, iNodeOfFocusedResult) ; close() ; break ; default: QLOG_STR("Unhandled UI item type " + QString::number(iTypeOfFocusedResult) + " in open") ; break ; } } } classified-ads-0.09/ui/searchdisplay.h000066400000000000000000000051351260620453500177450ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef SEARCH_DISPLAY_DIALOG_H #define SEARCH_DISPLAY_DIALOG_H #include "../mcontroller.h" #include "../ui_searchDisplay.h" #include "dialogbase.h" class SearchModel ; class Profile ; class QAction ; class QShortcut ; /** * @brief class for search dialog */ class SearchDisplay : public DialogBase { Q_OBJECT public: /** * Constructor. * * @param aParent is owner-window of this dialog * @param aController application controller reference * @param aSearchModel where the content comes from. ownership is not * claimed e.g. this dialog does not delete the model. * @param aSelectedProfile profile of operator currently searching */ SearchDisplay(QWidget *aParent, MController* aController, SearchModel* aSearchModel , Profile& aSelectedProfile); /** destructor */ ~SearchDisplay(); signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private slots: void closeButtonClicked() ; void searchButtonClicked() ;/**< performs search */ void keyEnterClicked() ;/**< conditionally performs search */ void openButtonClicked() ; /**< opens selected item from results-list */ void resultListDoubleClicked(const QModelIndex& aIndex); void currentItemChanged(const QModelIndex & current, const QModelIndex & previous ) ; void openSelectedContent() ; private: Ui_searchDisplay ui ; SearchModel* iSearchModel; Hash iHashOfFocusedResult ; ProtocolItemType iTypeOfFocusedResult ; Hash iNodeOfFocusedResult ; QAction* iOpenAction ; /**< context-menu action for open */ QShortcut* iSearchDisplayKeyboardGrabber ; }; #endif classified-ads-0.09/ui/settings.cpp000066400000000000000000000064541260620453500173120ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include "../mcontroller.h" #include "../log.h" #include "../datamodel/model.h" #include "../datamodel/profilemodel.h" #include "../datamodel/binaryfilemodel.h" #include "../datamodel/camodel.h" #include "../datamodel/privmsgmodel.h" #include "../datamodel/profilecommentmodel.h" #include "settings.h" SettingsDialog::SettingsDialog(QWidget *aParent, MController& aController) : QDialog(aParent), iController(aController) { ui.setupUi(this) ; connect(ui.bottomButtonsBox, SIGNAL(accepted()), this, SLOT(okButtonClicked())); connect(ui.bottomButtonsBox, SIGNAL(rejected()), this, SLOT(cancelButtonClicked())); ui.portEdit->setValue ( iController.model().nodeModel().listenPortOfThisNode() ); ui.dnsNameEdit->setText ( iController.model().nodeModel().getDnsName() ); ui.nrProfilesEdit->setValue ( iController.model().profileModel().getMaxRowsToKeep() ); ui.nrMessagesEdit->setValue ( iController.model().privateMessageModel().getMaxRowsToKeep() ); ui.nrBinaryFilesEdit->setValue ( iController.model().binaryFileModel().getMaxRowsToKeep() ); ui.nrAdsEdit->setValue ( iController.model().classifiedAdsModel().getMaxRowsToKeep() ); ui.nrCommenstEdit->setValue ( iController.model().profileCommentModel().getMaxRowsToKeep() ); ui.dnsNameEdit->setText( iController.getNode().DNSAddr()) ; adjustSize() ; } SettingsDialog::~SettingsDialog() { LOG_STR("SettingsDialog::~SettingsDialog\n") ; } void SettingsDialog::okButtonClicked() { LOG_STR("SettingsDialog::okButtonClicked\n") ; iController.model().nodeModel().setListenPortOfThisNode(ui.portEdit->value()); iController.model().nodeModel().setDnsName(ui.dnsNameEdit->text()) ; iController.model().profileModel().setMaxRowsToKeep(ui.nrProfilesEdit->value()) ; iController.model().privateMessageModel().setMaxRowsToKeep(ui.nrMessagesEdit->value ( ) ) ; iController.model().binaryFileModel().setMaxRowsToKeep(ui.nrBinaryFilesEdit->value ( )); iController.model().classifiedAdsModel().setMaxRowsToKeep(ui.nrAdsEdit->value ( )); iController.model().profileCommentModel().setMaxRowsToKeep(ui.nrCommenstEdit->value ( )) ; iController.getNode().setDNSAddr(ui.dnsNameEdit->text( ) ) ; close() ; this->deleteLater() ; } void SettingsDialog::cancelButtonClicked() { LOG_STR("SettingsDialog::cancelButtonClicked\n") ; close() ; this->deleteLater() ; } classified-ads-0.09/ui/settings.h000066400000000000000000000030711260620453500167470ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef SETTINGS_DIALOG_H #define SETTINGS_DIALOG_H #include #include "../mcontroller.h" #include "../ui_settingsDialog.h" /** * @brief class for editing node-wide settings * */ class SettingsDialog : public QDialog { Q_OBJECT public: /** * Constructor. */ SettingsDialog(QWidget *aParent, MController& aController ); /** destructor */ ~SettingsDialog(); private slots: void okButtonClicked() ; void cancelButtonClicked() ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: Ui_settingsDialog ui ; MController& iController ; }; #endif classified-ads-0.09/ui/settingsDialog.ui000066400000000000000000000224271260620453500202630ustar00rootroot00000000000000 settingsDialog 0 0 400 658 0 0 0 0 Node settings true TCP listen port 100 0 100 16777215 Incoming TCP listen port. Change requires node restart. Qt::LeftToRight Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter 1 65535 30000 DNS name of node If you have permanent DNS name for your machine, you may type it here to be used to reference your node 255 Data store limits: 0 Nr of profiles to keep 100 0 100 16777215 Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter 1000 1000000 1000 Nr of private messages to keep 100 0 100 16777215 Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter 1000 1000000 1000 Nr of binary blobs to keep 100 0 100 16777215 Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter 1000 100000 1000 Nr of CAs to keep 100 0 100 16777215 Number of classified ads to keep in storage, total, including all classifications. Oldest referenced will be deleted first. Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter 1000 100000 1000 Nr of profile comments to keep 100 0 100 16777215 Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter 1000 100000 1000 0 0 QDialogButtonBox::Cancel|QDialogButtonBox::Ok classified-ads-0.09/ui/status.cpp000066400000000000000000000055271260620453500167750ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include "../mcontroller.h" #include "../log.h" #include "../datamodel/model.h" #include "../datamodel/connectionlistingmodel.h" #include "status.h" #include "manualconnection.h" StatusDialog::StatusDialog(QWidget *aParent, MController& aController) : QDialog(aParent), iController(aController), iListingModel(NULL) { ui.setupUi(this) ; connect(ui.addConnectionButton, SIGNAL(clicked()), this, SLOT(addButtonClicked())); ui.portDisplay->setText ( QString::number(iController.model().nodeModel().listenPortOfThisNode()) ); if ( iController.getNode().ipv4Addr() ) { QHostAddress ipv4 ( iController.getNode().ipv4Addr() ) ; ui.ipv4display->setText ( ipv4.toString()) ; } if ( Connection::Ipv6AddressesEqual(iController.getNode().ipv6Addr(), KNullIpv6Addr ) == false ) { QHostAddress ipv6 ( iController.getNode().ipv6Addr() ) ; ui.ipv6display->setText ( ipv6.toString()) ; } adjustSize() ; connect (this, SIGNAL(rejected()), this, SLOT(deleteLater())) ; iListingModel = new ConnectionListingModel(iController.model(), iController) ; ui.connectionsView->setModel(iListingModel) ; } StatusDialog::~StatusDialog() { LOG_STR("StatusDialog::~StatusDialog\n") ; ui.connectionsView->setModel(NULL) ; delete iListingModel ; } void StatusDialog::addButtonClicked() { LOG_STR("StatusDialog::addButtonClicked()\n") ; const QString dlgName ("classified_ads_manual_connection_dialog") ; ManualConnectionDialog *dialog = this->findChild(dlgName) ; if ( dialog == NULL ) { dialog = new ManualConnectionDialog(this, iController) ; dialog->setObjectName(dlgName) ; dialog->show() ; connect(this, SIGNAL(destroyed()), dialog, SLOT(reject())); } else { dialog->setFocus(Qt::MenuBarFocusReason) ; } } classified-ads-0.09/ui/status.h000066400000000000000000000031361260620453500164340ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti JУЄrvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef CA_STATUS_DIALOG_H #define CA_STATUS_DIALOG_H #include #include "../mcontroller.h" #include "../ui_statusDialog.h" class ConnectionListingModel ; /** * @brief class for displaying connections status * */ class StatusDialog : public QDialog { Q_OBJECT public: /** * Constructor. */ StatusDialog(QWidget *aParent, MController& aController ); /** destructor */ ~StatusDialog(); private slots: void addButtonClicked() ; signals: void error(MController::CAErrorSituation aError, const QString& aExplanation) ; private: Ui_statusDialog ui ; MController& iController ; ConnectionListingModel* iListingModel ; }; #endif classified-ads-0.09/ui/statusDialog.ui000066400000000000000000000146571260620453500177540ustar00rootroot00000000000000 statusDialog 0 0 820 704 0 0 0 0 Network and connection status true QLayout::SetDefaultConstraint 0 QLayout::SetDefaultConstraint Detected own IPv4 160 22 Should your friend have trouble connecting, give her this address with port number Qt::ScrollBarAlwaysOff Qt::ScrollBarAlwaysOff IPv6 300 0 16777215 22 Should your friend have trouble connecting, give her this address with port number Qt::ScrollBarAlwaysOff Qt::ScrollBarAlwaysOff 0 TCP port currently used 100 22 Qt::ScrollBarAlwaysOff Qt::ScrollBarAlwaysOff Qt::Horizontal 40 20 Currently open connections 0 0 QAbstractItemView::SingleSelection QAbstractItemView::SelectRows true 0 Qt::Horizontal 40 20 Manually add connection Close closeButton clicked() statusDialog reject() 741 678 396 351 classified-ads-0.09/ui_resources.qrc000066400000000000000000000032701260620453500175400ustar00rootroot00000000000000 ui/rightarrow.png ui/leftarrow.png ui/turt558.png images/logo32.png images/mac/editcopy.png images/mac/editcut.png images/mac/editpaste.png images/mac/editredo.png images/mac/editundo.png images/mac/exportpdf.png images/mac/filenew.png images/mac/fileopen.png images/mac/fileprint.png images/mac/filesave.png images/mac/textbold.png images/mac/textcenter.png images/mac/textitalic.png images/mac/textjustify.png images/mac/textleft.png images/mac/textright.png images/mac/textunder.png images/mac/zoomin.png images/mac/zoomout.png images/win/editcopy.png images/win/editcut.png images/win/editpaste.png images/win/editredo.png images/win/editundo.png images/win/exportpdf.png images/win/filenew.png images/win/fileopen.png images/win/fileprint.png images/win/filesave.png images/win/textbold.png images/win/textcenter.png images/win/textitalic.png images/win/textjustify.png images/win/textleft.png images/win/textright.png images/win/textunder.png images/win/zoomin.png images/win/zoomout.png classified-ads-0.09/util/000077500000000000000000000000001260620453500152755ustar00rootroot00000000000000classified-ads-0.09/util/catranslator.cpp000066400000000000000000000104231260620453500204760ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "catranslator.h" #include "../log.h" #include #include #ifdef WIN32 #include #endif /** * Translation domain for gnu gettext library */ static const char* KProgramName ( "classified-ads" ) ; /** * This is magick text between gnu gettext context and the string. * The | is actuallu Qt magick, for some reason Qt wants to have | * at the end of context strings after they come out from lconvert * utility but | is missing when QApplication calls ::translate * method of this class -> thus add the | here. \004 in turn * is gnu gettext magick. */ static const char* KGetTextContextGlue ( "|\004" ) ; CATranslator::CATranslator(QObject* aParent) : QTranslator(aParent) { #ifdef WIN32 // in win32 user typically has no locale set in environment variables // in way that gnu gettext would recognice. offer a bit help: QString langVariableName ( "LANGUAGE=" ) ; QLocale systemLocale ( QLocale::system() ) ; const QString languageName ( systemLocale.name() ) ; putenv((langVariableName + languageName).toUtf8().constData()) ; setlocale(LC_MESSAGES,languageName.toUtf8().constData()); // in win32, assume the translation files reside under // same directory as the binary bindtextdomain(KProgramName,"./"); #else setlocale(LC_ALL,""); // in unix-like systems the installer puts files here: bindtextdomain(KProgramName,"/usr/share/locale"); #endif textdomain(KProgramName); bind_textdomain_codeset(KProgramName, "utf-8") ; } CATranslator::~CATranslator() { } QString CATranslator::translate ( const char * aContext, const char * aSourceText, const char * aDisambiguation #if QT_VERSION >= 0x050000 ,int aPluralForm #endif ) const { char *contextAndSourceText ((char *)malloc(strlen(aContext) + strlen(aSourceText) + 5)) ; if ( contextAndSourceText == NULL ) { // uh, oh, malloc failure return QString::fromUtf8(aSourceText) ; } strcpy(contextAndSourceText, aContext) ; strcat(contextAndSourceText, KGetTextContextGlue) ; strcat(contextAndSourceText, aSourceText) ; char *proposed_string( dgettext(KProgramName, contextAndSourceText) ); if ( strcmp(proposed_string, contextAndSourceText) == 0 ) { // no match, maybe qt platform string free( contextAndSourceText ); if ( QTranslator::isEmpty() ) { // we have no strings in parent class, e.g. native qt // format translation strings: just return the source // text return QString::fromUtf8(aSourceText) ; } else { // we have qt native format translations available, so try there: return QTranslator::translate(aContext, aSourceText, aDisambiguation #if QT_VERSION >= 0x050000 ,aPluralForm #endif ) ; } } else { // yes, a match QString retval( QString::fromUtf8(proposed_string) ) ; free(contextAndSourceText) ; return retval ; } } bool CATranslator::isEmpty() const { return false ; } classified-ads-0.09/util/catranslator.h000066400000000000000000000060301260620453500201420ustar00rootroot00000000000000/* -*-C++-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #ifndef CATRANSLATOR_H #define CATRANSLATOR_H /** * @brief Class for translating strings * * Class for providing translations. In practice this wraps gnu gettext * but may have also other sources of translations. Note that Qt allows * multiple translators to be in cascade. */ class CATranslator : public QTranslator { Q_OBJECT public: /** * Constructor. * * Has side-effect of initializing gnu gettext library inside. * This same class may contain gnu gettext .po-file that is * loaded here at constructor. It is still possible to use * the @ref QTranslator::load method to load Qt-format * translation and when @ref CATranslator::translate is called, * this class will first search for .po file contents and if * no match is made, then it will return the translation from * possibly loaded Qt translation file. */ CATranslator(QObject* aParent = NULL) ; /** * Destructor */ ~CATranslator() ; /** * Actual translator method. This is used to return actual strings * * @param aContext string that tells in which context the aSourceText * appears in. * @param aSourceText the actual string to be translated. * @param aDisambiguation if sourceText appears multiple times * in same context, this may be used to * further refine the translation. * @param aPluralForm Maybe used to select for singular/plural form * of the translation e.g. "message received" or * "messages received" * @return Translation. If translation was not available, then * returns aSourceText as it is. */ virtual QString translate(const char *aContext, const char *aSourceText, const char *aDisambiguation = 0 #if QT_VERSION >= 0x050000 , int aPluralForm = -1 ) const Q_DECL_OVERRIDE; #else ) const ; #endif virtual bool isEmpty() const; } ; #endif /* JSONWRAPPER_H */ classified-ads-0.09/util/hash.cpp000066400000000000000000000304721260620453500167320ustar00rootroot00000000000000/* -*-C++-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "hash.h" #include #include #include "../log.h" #include #include Hash::Hash() { iHash160bits[0] = iHash160bits[1] = iHash160bits[2] = iHash160bits[3] = iHash160bits[4] = 0 ; } Hash::Hash(const quint32 aHash160bits[KNumberOfIntsInHash]) { iHash160bits[0] = aHash160bits[0] ; iHash160bits[1] = aHash160bits[1] ; iHash160bits[2] = aHash160bits[2] ; iHash160bits[3] = aHash160bits[3] ; iHash160bits[4] = aHash160bits[4] ; } Hash::Hash(const quint32 aBits1, const quint32 aBits2, const quint32 aBits3, const quint32 aBits4, const quint32 aBits5) { iHash160bits[0] = aBits1 ; iHash160bits[1] = aBits2 ; iHash160bits[2] = aBits3 ; iHash160bits[3] = aBits4 ; iHash160bits[4] = aBits5 ; } Hash::Hash(const unsigned char aDigest[KNumberOfIntsInHash*4]) { setFromCharArray(aDigest) ; } // // constructor that takes the hash in ascii string similar that // printf("%X... produces. // Hash::Hash(const char* aHexString, int aHexStringLen) { char single_number[9] ; if ( aHexStringLen != 40 ) { return ; } quint32 h1 ; strncpy(single_number, &(aHexString[0]), 8 ) ; sscanf(single_number, "%X", &h1) ; quint32 h2 ; strncpy(single_number, &(aHexString[8]), 8 ) ; sscanf(single_number, "%X", &h2) ; quint32 h3 ; strncpy(single_number, &(aHexString[16]), 8 ) ; sscanf(single_number, "%X", &h3) ; quint32 h4 ; strncpy(single_number, &(aHexString[24]), 8 ) ; sscanf(single_number, "%X", &h4) ; quint32 h5 ; strncpy(single_number, &(aHexString[32]), 8 ) ; sscanf(single_number, "%X", &h5) ; iHash160bits[0] = h1; iHash160bits[1] = h2 ; iHash160bits[2] = h3 ; iHash160bits[3] = h4 ; iHash160bits[4] = h5 ; } Hash::Hash(const QSslCertificate& aSslCert) { QByteArray d = aSslCert.digest(QCryptographicHash::Sha1) ; setFromCharArray((unsigned char *)(d.data())) ; } void Hash::fromString(const unsigned char* aBuf) { if ( strlen((const char*)aBuf) == 8*5) { unsigned int b1,b2,b3,b4,b5 ; // to make compiler happy char str1[9] = {0} ; strncpy(str1,(const char*)&(aBuf[8*0]), 8) ; char str2[9] = {0} ; strncpy(str2,(const char*)&(aBuf[8*1]), 8) ; char str3[9] = {0} ; strncpy(str3,(const char*)&(aBuf[8*2]), 8) ; char str4[9] = {0} ; strncpy(str4,(const char*)&(aBuf[8*3]), 8) ; char str5[9] = {0} ; strncpy(str5,(const char*)&(aBuf[8*4]), 8) ; if ( sscanf(str1, "%X", &b1) == 1 && sscanf(str2, "%X", &b2) == 1 && sscanf(str3, "%X", &b3) == 1 && sscanf(str4, "%X", &b4) == 1 && sscanf(str5, "%X", &b5) == 1 ) { iHash160bits[0] = b1 ; iHash160bits[1] = b2 ; iHash160bits[2] = b3 ; iHash160bits[3] = b4 ; iHash160bits[4] = b5 ; } else { iHash160bits[0] = iHash160bits[1] = iHash160bits[2] = iHash160bits[3] = iHash160bits[4] = 0 ; } } } QString Hash::toString() const { char cStyle [KNumberOfIntsInHash*8+1] ; sprintf(cStyle, "%.8X%.8X%.8X%.8X%.8X", iHash160bits[0], iHash160bits[1], iHash160bits[2], iHash160bits[3], iHash160bits[4]) ; return QString(cStyle); } void Hash::fromQVariant(const QVariant& aQVariantHashValue) { int j = 0 ; QListIterator i(aQVariantHashValue.toList()); while (i.hasNext() && j < 5) { iHash160bits[j++] = i.next().toUInt() ; } } QVariant Hash::toQVariant() const { QVariantList l ; l.append(iHash160bits[0]) ; l.append(iHash160bits[1]) ; l.append(iHash160bits[2]) ; l.append(iHash160bits[3]) ; l.append(iHash160bits[4]) ; return l ; } void Hash::calculate(const QByteArray& aBuf) { if ( aBuf.size() == 0 ) { iHash160bits[0] = 0 ; iHash160bits[1] = 0 ; iHash160bits[2] = 0 ; iHash160bits[3] = 0 ; iHash160bits[4] = 0 ; } else { unsigned char hashbytearray[KNumberOfIntsInHash*4] ; SHA1((const unsigned char *)(aBuf.constData()), aBuf.size(), hashbytearray) ; setFromCharArray(hashbytearray) ; } } void Hash::setFromCharArray(const unsigned char aDigest[KNumberOfIntsInHash*4]) { iHash160bits[0] = aDigest[3] | aDigest[2] << 8 | aDigest[1] << 16 | aDigest[0] << 24 ; iHash160bits[1] = aDigest[7] | aDigest[6] << 8 | aDigest[5] << 16 | aDigest[4] << 24 ; iHash160bits[2] = aDigest[11] | aDigest[10] << 8 | aDigest[9] << 16 | aDigest[8] << 24 ; iHash160bits[3] = aDigest[15] | aDigest[14] << 8 | aDigest[13] << 16 | aDigest[12] << 24 ; iHash160bits[4] = aDigest[19] | aDigest[18] << 8 | aDigest[17] << 16 | aDigest[16] << 24 ; } bool Hash::operator== (const Hash& aHashToCompare) const { if ( iHash160bits[4] == aHashToCompare.iHash160bits[4] && iHash160bits[3] == aHashToCompare.iHash160bits[3] && iHash160bits[2] == aHashToCompare.iHash160bits[2] && iHash160bits[1] == aHashToCompare.iHash160bits[1] && iHash160bits[0] == aHashToCompare.iHash160bits[0] ) { return true ; } else { return false ; } } bool Hash::operator!= (const Hash& aHashToCompare) const { if ( iHash160bits[4] != aHashToCompare.iHash160bits[4] || iHash160bits[3] != aHashToCompare.iHash160bits[3] || iHash160bits[2] != aHashToCompare.iHash160bits[2] || iHash160bits[1] != aHashToCompare.iHash160bits[1] || iHash160bits[0] != aHashToCompare.iHash160bits[0] ) { return true ; } else { return false ; } } bool Hash::operator< (const Hash& aHashToCompare) const { if( iHash160bits[0] < aHashToCompare.iHash160bits[0] ) { return true ; } else if ( iHash160bits[0] > aHashToCompare.iHash160bits[0] ) { return false ; } else if( iHash160bits[1] < aHashToCompare.iHash160bits[1] ) { return true ; } else if ( iHash160bits[1] > aHashToCompare.iHash160bits[1] ) { return false ; } else if( iHash160bits[2] < aHashToCompare.iHash160bits[2] ) { return true ; } else if ( iHash160bits[2] > aHashToCompare.iHash160bits[2] ) { return false ; } else if( iHash160bits[3] < aHashToCompare.iHash160bits[3] ) { return true ; } else if ( iHash160bits[3] > aHashToCompare.iHash160bits[3] ) { return false ; } else if( iHash160bits[4] < aHashToCompare.iHash160bits[4] ) { return true ; } else { return false ; } } bool Hash::operator> (const Hash& aHashToCompare) const { return ( ! ( *this < aHashToCompare ) ) ; } Hash& Hash::operator= (const Hash& aHashToSubstitute) { for ( int i = 0 ; i < KNumberOfIntsInHash ; i++ ) { iHash160bits[i] = aHashToSubstitute.iHash160bits[i] ; } return *this ; } Hash Hash::distanceFrom (const Hash& aHash) { // we actually here need to calculate distance // twice and then return the smaller value Hash retvalCandidateBySubstraction ; Hash retvalCandidateByRollingOver ; // so first, without rolling over, subtract the bigger from // the smaller and that is one distance ; must compare here // because our subtraction operator will mis-behave if // subtracting bigger from smaller if ( *this > aHash ) { retvalCandidateBySubstraction = *this - aHash ; } else { retvalCandidateBySubstraction = aHash - *this ; } // then roll-over part // roll-over point ; this is the biggest possible hashcode Hash maxHash = Hash(UINT_MAX, UINT_MAX, UINT_MAX, UINT_MAX, UINT_MAX) ; // then calculate how far away we're from maxhash: if ( *this > aHash ) { // so "this" is bigger so it is closer to maxhash than aHash Hash distanceFromMaxHash = maxHash - *this ; // then add distance from zero-hash to hHash retvalCandidateByRollingOver = distanceFromMaxHash + aHash ; } else { // so hHash is bigger so it is closer to maxhash Hash distanceFromMaxHash = maxHash - aHash ; // then add distance from zero-hash to hHash retvalCandidateByRollingOver = distanceFromMaxHash + *this ; } // then return smaller if ( retvalCandidateByRollingOver < retvalCandidateBySubstraction ) { return retvalCandidateByRollingOver ; } else { return retvalCandidateBySubstraction ; } } Hash Hash::operator-(const Hash& aToBeSubstracted) const { Hash retval ; // need to have temporary copy because borrowing operation // needs to modify upper-significance bits Hash temporary_copy = *this ; // so here we play a trick that seems to work. // subtract digit by digit. our digits in hash are // unsigned ints e.g. we're doing subtraction in "normal" // pen-and-paper manner but our base is 2^32 instead of 10. // this way we'll subtract the 160-bit hash by looping 5 times. for(int i=(KNumberOfIntsInHash-1) ; i>=0 ; i-- ) { if ( temporary_copy.iHash160bits[i] >= aToBeSubstracted.iHash160bits[i] ) { retval.iHash160bits[i] = temporary_copy.iHash160bits[i] - aToBeSubstracted.iHash160bits[i] ; } else { // needs to borrow ; find next non-zero digit for ( signed char borrow_digit = i-1 ; borrow_digit >= 0 ; borrow_digit-- ) { if ( temporary_copy.iHash160bits[borrow_digit] > 0 ) { temporary_copy.iHash160bits[borrow_digit]-- ; break ; } else { // while borrowing, the digits that are zero // while borrowing must be set 0xFFFFFFFF temporary_copy.iHash160bits[borrow_digit] = UINT_MAX ; } } // borrow done, now subtract ; now we'll need to subtract // ( 0xFF + temporary_copy.bits[i] ) - aToBeSubstracted.bits[i] // obviously the 0xFF + temporary_copy.bits[i] will not fit our bits // but here it is ok to roll over, looks like we obtain correct result. retval.iHash160bits[i] = temporary_copy.iHash160bits[i]- aToBeSubstracted.iHash160bits[i] ; } } return retval ; } Hash Hash::operator+(const Hash& aToBeAdded) const { Hash retval ; int carry_digit ; Hash temporary_copy = *this ; for(int i=(KNumberOfIntsInHash-1) ; i>=0 ; i-- ) { if ( aToBeAdded.iHash160bits[i] > UINT_MAX - temporary_copy.iHash160bits[i] ) { // need to overflow to next digit: carry_digit = i-1 ; while ( carry_digit > 0 && temporary_copy.iHash160bits[carry_digit] == UINT_MAX ) { temporary_copy.iHash160bits[carry_digit] ++ ; carry_digit-- ; } temporary_copy.iHash160bits[carry_digit] ++ ; // ok, we stopped in place, where temporary_copy.iHash160bits[i] // is not max value, increment at that position } retval.iHash160bits[i] = aToBeAdded.iHash160bits[i] + temporary_copy.iHash160bits[i] ; } return retval ; } classified-ads-0.09/util/hash.h000066400000000000000000000163721260620453500164020ustar00rootroot00000000000000/* -*-C++-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef HASH_H #define HASH_H #include /** * @brief Hash is class that carries 160-bit digest. * * Hash number class. This is usually an encryption * key fingerprint or something returned by SHA1 * function. The number that this class carries * identifies an object inside classified ads, such * objects as "classified ad", "user", "node", * "attachment file" or anything that is present in * the network. Here the hash is number between 0-2^160. */ class Hash { public: /** * This constant KNumberOfIntsInHash defines size of * our hash ; we take this many unsigned ints each * 32bits in size so with value 5 w get 5*32=160. */ const static int KNumberOfIntsInHash = 5 ; /** * constructor. produces zero-value hash. */ Hash() ; /** * constructor. * @param aHash160bits is array of KNumberOfIntsInHash * containing 32 bits each. The most-significant * bits come in first, least-significant come in * last. .. e.g. for constructing a hash * that has value (decimal) 1 you say * Hash(0,0,0,0,1). */ Hash(const quint32 aHash160bits[KNumberOfIntsInHash]) ; /** * constructor. * @param aBits1 most significant bits * @param aBits2 quite significant bits * @param aBits3 somewhat significant bits * @param aBits4 less significant bits * @param aBits5 least significant bits */ Hash(const quint32 aBits1, const quint32 aBits2, const quint32 aBits3, const quint32 aBits4, const quint32 aBits5) ; /** * constructor. * @param aDigest 160 bits in array of unsigned 8-bit octets. * Most significant bits first. If you take SHA1 function * of openssl library, this is the format the method returns. */ Hash(const unsigned char aDigest[KNumberOfIntsInHash * 4]) ; /** * constructor that takes the hash in ascii string similar that * printf("%X... produces. * @param aHexString is the string containing hash value * @param aHexStringLen is length of said string. * if this param does not have value of 40 * then a null hash will be instantiated. * Purpose of this parameter is mainly to * clearly distinguis this constuctor from the * one that has single "unsigned char *" param * but expects different length for the string */ Hash(const char* aHexString, int aHexStringLen) ; /** * constructor * @param aSslCert is ssl certificate. Its SHA1 digest is used * to initialize value of this hash */ Hash(const QSslCertificate& aSslCert) ; /** * Sets hash value from string produced by @ref toString() method * of this same class. */ void fromString(const unsigned char *aBuf) ; /** * Returns the hash value as a string. */ QString toString() const ; /** * Sets hash value from QVariant produced by @ref toQVariant() method * of this same class. */ void fromQVariant(const QVariant& aQVariantHashValue) ; /** * Returns the hash value as a QVariant */ QVariant toQVariant() const ; /** * calculates SHA1 hash of data and sets value of this * class instance to be the result */ void calculate(const QByteArray& aBuf) ; /** * Comparison operator enabling us to use sort operations */ bool operator== (const Hash& aHashToCompare) const ; bool operator!= (const Hash& aHashToCompare) const ; bool operator< (const Hash& aHashToCompare) const ; bool operator> (const Hash& aHashToCompare) const ; /** * substitution too, it might make code more readable */ Hash& operator= (const Hash& aHashToSubstitute) ; /** * Method for calculating distance between 2 hashes. * * Obligatory J.R.R. Tolkien quote belongs here. * * In this program distance is defined in "number of rings * to rule them all" meaning that * 1) hash values roll over e.g. distance between * Hash(0) and Hash(max value) is 1. Distance between * Hash(1) and Hash(max value) is 2. Distance between * Hash(1) and Hash(5) is 4. As is to be expected. * 2) We may invent many rings to address same objects * because from articles (for instance) we can record * the article content hash, pgp-key fingerprint of * the sender, node used to send, hash of the forum * containing the article etc. and in different situations * it may be useful to search through different ring. * This method distanceFrom tells how far away the * number we're seeking for is and notable thing here * is that number may roll over when going via path of * shortest distance. * @param aHash is the number from which we calculate distance * @return return value is also a hash, that is, a number */ Hash distanceFrom (const Hash& aHash) ; /** * Man-kinds greatest invention ever follows: bignum operations for * small bignums. * * Subtraction operator. As our hash if you think of it as * a number, is unsigned, this operator will definitely return * undefined-kind-of-crap if you try to subtract bigger number * from a smaller one. Something you'll get but it can be anything. * * Other way around it seems to do something. */ Hash operator-(const Hash& aToBeSubstracted) const ; /** * addition operation for integers of 160 bits */ Hash operator+(const Hash& aToBeAdded) const ; private: void setFromCharArray(const unsigned char aDigest[KNumberOfIntsInHash * 4]) ; public: /** * this public array carries the calculated * (SHA1) hash. there is 5*32 bits and in db * too we're supposed to use 5 columns for * storing a hash ; we can still compare and do * ordering if we decide that low-order bits go * into iHash160bits[0] and the highest into * iHash160bits[4]. * * In 64-bit boxen we could fit the bits into * 64-bit integers and have this thing working * a bit faster - hopefully this thing will still * work fast enough to work also in less-powerful * 32-bit architectures for which we don't here * want to invent a separate implementation. */ quint32 iHash160bits[KNumberOfIntsInHash] ; } ; #endif classified-ads-0.09/util/jsonwrapper.cpp000066400000000000000000000074531260620453500203640ustar00rootroot00000000000000/* -*-C++-*- -*-coding: utf-8-unix;-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "jsonwrapper.h" #if QT_VERSION >= 0x050000 #include #else #ifdef WIN32 #include #include #else #include #include #endif // WIN32 #endif // QT_VERSION #include "../log.h" // // this parser method is static // QVariantMap JSonWrapper::parse(const QByteArray& aJSonText, bool* aIsParseOk , bool aUncompressFirst ) { if ( aIsParseOk != NULL ) { *aIsParseOk = false ; // by default declare a failure } #if QT_VERSION >= 0x050000 QJsonParseError errorHandler ; if ( aUncompressFirst ) { QByteArray unCompressed ( qUncompress(aJSonText)) ; QJsonDocument d = QJsonDocument::fromJson(unCompressed,&errorHandler); if ( errorHandler.error == QJsonParseError::NoError ) { if ( aIsParseOk ) { *aIsParseOk= true; } return d.toVariant().toMap() ; } else { QLOG_STR("Unparseable JSON:" + QString(unCompressed) + ":" + errorHandler.errorString()) ; return QVariant().toMap() ; } } else { QJsonDocument d = QJsonDocument::fromJson(aJSonText,&errorHandler); if ( errorHandler.error == QJsonParseError::NoError ) { if ( aIsParseOk ) { *aIsParseOk= true; } return d.toVariant().toMap() ; } else { QLOG_STR("Unparseable JSON:" + QString(aJSonText) + ": " + errorHandler.errorString()) ; return QVariant().toMap() ; } } #else // with qt4 use qjson, it is ok QJson::Parser parser; bool ok; if ( aUncompressFirst ) { QByteArray unCompressed ( qUncompress(aJSonText)) ; if ( unCompressed.size() > 0 ) { QVariantMap result = parser.parse (unCompressed, &ok).toMap(); if ( aIsParseOk != NULL ) { *aIsParseOk = ok ; // actual parse result } return result ; } else { return QVariant().toMap() ; // failure, return empty } } else { QVariantMap result = parser.parse (aJSonText, &ok).toMap(); if ( aIsParseOk != NULL ) { *aIsParseOk = ok ; // actual parse result } return result ; } #endif } QByteArray JSonWrapper::serialize(const QVariant& aObjectToSerialize, bool aFinallyCompress ) { #if QT_VERSION >= 0x050000 if ( aFinallyCompress ) { return qCompress(QJsonDocument::fromVariant(aObjectToSerialize).toJson(QJsonDocument::Compact)) ; } else { return QJsonDocument::fromVariant(aObjectToSerialize).toJson(QJsonDocument::Compact) ; } #else QJson::Serializer serializer; if ( aFinallyCompress ) { return qCompress(serializer.serialize(aObjectToSerialize)) ; } else { return serializer.serialize(aObjectToSerialize) ; } #endif } classified-ads-0.09/util/jsonwrapper.h000066400000000000000000000050071260620453500200220ustar00rootroot00000000000000/* -*-C++-*- Classified Ads is Copyright (c) Antti Jarvinen 2013. This file is part of Classified Ads. Classified Ads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Classified Ads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Classified Ads; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include // Actually for QVariantMap #ifndef JSONWRAPPER_H #define JSONWRAPPER_H /** * @brief Class for wrapping engine to (de)serialize json * * Qt5 has included json routines so if using Qt5 it makes sense to * that because it is one dependency less ; with earlier QT versions a 3rd * party library is required. This class provides programmer with single API * to use json routines regardless of underlying implementation. */ class JSonWrapper { public: /** * Method that returns aJSonText parsed into a QVariantMap. * * @param aJSonText is text to parse. Must be valid json. * @param aIsParseOk is set to true/false depending on parse success * @param aUncompressFirst indication if aJSonText is compressed or not. * if compressed, then qUncompress is applied before parser. * @return Content of AJSonText as QVariant. Is empty if parse failed * so user should check value of aIsParseOk before assuming * anything about the content. */ static QVariantMap parse(const QByteArray& aJSonText, bool* aIsParseOk = NULL, bool aUncompressFirst = false ) ; /** * method that returns QVariant as JSon text. * * @param aObjectToSerialize is the object, usually QVariantMap but * basically any QVariant should do. * @param aFinallyCompress if set to true, the returned byte-array * is compressed using qCompress() * @return serialized stream e.g. json text. */ static QByteArray serialize(const QVariant& aObjectToSerialize, bool aFinallyCompress = false ) ; } ; #endif /* JSONWRAPPER_H */ classified-ads-0.09/windows/000077500000000000000000000000001260620453500160125ustar00rootroot00000000000000classified-ads-0.09/windows/README.TXT000066400000000000000000000074341260620453500173600ustar00rootroot00000000000000Here are briefly the steps for setting up dev env for windows: 1. download qt (v5.5) from http://download.qt.io/official_releases/qt/5.5/5.5.0/qt-opensource-windows-x86-mingw492-5.5.0.exe 2. install, also select tools/MinGW4.9.2 from "components" section 3. get openssl, instructions are in http://wiki.qt.io/Compiling_OpenSSL_with_MinGW 3.1 e.g. -> install msys, the 32-bit version from https://msys2.github.io/ 3.2 get https://www.openssl.org/source/openssl-1.0.2d.tar.gz 3.3 get necessary goodies into msys, in msys-shell say $ pacmac -Sy $ pacman --needed -S bash pacman pacman-mirrors msys2-runtime restart the msys shell $ pacman --needed -S tar perl make add gcc from qt into path: $ export PATH=$PATH:/c/qt/Qt5.5.0/Tools/mingw492_32/bin in directory where openssl is extracted into, configure: $ ./Configure --prefix=$PWD -I$PWD/include no-idea no-mdc2 no-rc5 shared mingw and do not try using mingw32-make, it will resort to g++ and fail due to missing CFLAGS $ make 4. get miniupnpc from http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.9.tar.gz compile by saying $ export PATH=$PATH:/c/qt/Qt5.5.0/Tools/mingw492_32/bin $ export PATH=.:$PATH $ make -f Makefile.mingw 5. get libiconv+gnu gettext, e.g. get http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz http://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.6.tar.xz and compile like this: $ tar xfvz libiconv-1.14.tar.gz $ cd libiconv-1.14 $ ./configure --host=i586-pc-mingw32 --build=i586-pc-mingw32 $ make $ make install again, make sure to use make, not mingw32-make $ xz -d < gettext-0.19.6.tar.xz | tar xfvo - $ cd gettext-0.19.6 $ ./configure --host=i586-pc-mingw32 --build=i586-pc-mingw32 $ make $ make install after this the libraries needed at runtime libiconv-2.dll and libintl-8.dll are at \msys32\usr\local\bin\ 6. Get classified ads, preferably from https://github.com/operatornormal/classified-ads/archive/master.zip unzip, possibly adjust directories in file classified-ads.pro so that all libraries listed above are found from their paths. All library compilation was done inside msys shell but classified ads gets compiled inside Qt shell, so open qt-shell, navigate to directory and say qmake mingw32-make the resulting binary goes either to sub-directory debug or release depending on your settings in .pro file. Before running you must copy following .dll files into same directory with classified-ads.exe: libeay32.dll and ssleay32.dll from openssl directory libiconv-2.dll and libintl-8.dll from \msys32\usr\local\bin\ miniupnpc.dll from miniupnpc directory Currently the classified-ads.pro is set up so that all libraries that classified ads depends on are unpacked at same directory with classified ads, like this: C:\foobar>dir Kansio C:\foobar 24.09.2015 18:24 . 24.09.2015 18:24 .. 24.09.2015 16:07 classified_ads 21.09.2015 23:31 debugview 21.09.2015 21:31 deps 21.09.2015 22:24 gettext-0.19.6 21.09.2015 22:10 libiconv-1.14 15.09.2015 20:33 miniupnpc-1.9 15.09.2015 20:24 openssl-1.0.2d 22.09.2015 00:00 2 750 windows-setup.txt and programs are compiled in place, gettext and libiconv are also installed using the "make install" command so they're found from \msys32 path also. For producing the installation package, you'll need the nsis installer program. Before running the installer generation script, run batch file "deps.bat" in windows sub-directory, it will copy some Qt dll's in place, they're needed at run-time. Happy hacking. classified-ads-0.09/windows/deps.bat000066400000000000000000000002141260620453500174320ustar00rootroot00000000000000echo this needs to be run from qt command prompt rd /q /s deps mkdir deps windeployqt --release --libdir=deps ..\release\classified-ads.exe classified-ads-0.09/windows/nsis-installer.nsi000066400000000000000000000165251260620453500215050ustar00rootroot00000000000000# # inteneded to be used with nullsoft NSIS tool. # # this file mostly stolen from # http://sourceforge.net/p/qtpfsgui/extra/ci/master/tree/NSIS/nsis-installer.nsi # so thanks to all great guys doing Luminance HDR :) # # define name of installer outFile "Classified-ads-Win32.exe" !define MUI_ICON "turt-transparent-128x128.ico" !define VERSION "0.09" # ask to be admin in order to create start menu shortcuts to all users RequestExecutionLevel admin Name "Classified ads ${VERSION}" # define installation directory installDir $PROGRAMFILES\Classified-ads # start default section section SetShellVarContext all # set the installation directory as the destination for the following actions setOutPath $INSTDIR # create the uninstaller writeUninstaller "$INSTDIR\uninstall.exe" # create a shortcut named "new shortcut" in the start menu programs directory # point the new shortcut at the program uninstaller CreateDirectory "$SMPROGRAMS\Classified-ads" CreateShortCut "$SMPROGRAMS\Classified-ads\uninstall.lnk" "$INSTDIR\uninstall.exe" file /oname=classified-ads.exe ..\release\classified-ads.exe CreateDirectory "$INSTDIR\fi\LC_MESSAGES" file /oname=$INSTDIR\fi\LC_MESSAGES\classified-ads.mo ..\po\fi.mo CreateDirectory "$INSTDIR\sv\LC_MESSAGES" file /oname=$INSTDIR\sv\LC_MESSAGES\classified-ads.mo ..\po\sv.mo CreateDirectory "$INSTDIR\da\LC_MESSAGES" file /oname=$INSTDIR\da\LC_MESSAGES\classified-ads.mo ..\po\da.mo file /oname=qt_ca.qm ..\release\translations\qt_ca.qm file /oname=qt_cs.qm ..\release\translations\qt_cs.qm file /oname=qt_de.qm ..\release\translations\qt_de.qm file /oname=qt_fi.qm ..\release\translations\qt_fi.qm file /oname=qt_hu.qm ..\release\translations\qt_hu.qm file /oname=qt_it.qm ..\release\translations\qt_it.qm file /oname=qt_ja.qm ..\release\translations\qt_ja.qm file /oname=qt_lv.qm ..\release\translations\qt_lv.qm file /oname=qt_ru.qm ..\release\translations\qt_ru.qm file /oname=qt_sk.qm ..\release\translations\qt_sk.qm file /oname=qt_uk.qm ..\release\translations\qt_uk.qm CreateDirectory "$INSTDIR\bearer" CreateDirectory "$INSTDIR\iconengines" CreateDirectory "$INSTDIR\imageformats" CreateDirectory "$INSTDIR\printsupport" CreateDirectory "$INSTDIR\platforms" CreateDirectory "$INSTDIR\sqldrivers" file /oname=miniupnpc.dll ..\..\miniupnpc-1.9\miniupnpc.dll CreateShortCut "$SMPROGRAMS\Classified-ads\Classified-ads.lnk" "$INSTDIR\Classified-ads.exe" file /oname=D3Dcompiler_41.dll deps\D3Dcompiler_41.dll file /oname=libEGL.dll deps\libEGL.dll file /oname=libGLESV2.dll deps\libGLESV2.dll file /oname=libgcc_s_dw2-1.dll deps\libgcc_s_dw2-1.dll file /oname=libstdc++-6.dll deps\libstdc++-6.dll file /oname=libwinpthread-1.dll deps\libwinpthread-1.dll file /oname=Qt5Core.dll deps\Qt5Core.dll file /oname=Qt5Gui.dll deps\Qt5Gui.dll file /oname=Qt5Network.dll deps\Qt5Network.dll file /oname=Qt5PrintSupport.dll deps\Qt5PrintSupport.dll file /oname=Qt5Sql.dll deps\Qt5Sql.dll file /oname=Qt5Svg.dll deps\Qt5Svg.dll file /oname=Qt5Widgets.dll deps\Qt5Widgets.dll file /oname=bearer\qgenericbearer.dll ..\release\bearer\qgenericbearer.dll file /oname=bearer\qnativewifibearer.dll ..\release\bearer\qnativewifibearer.dll file /oname=iconengines\qsvgicon.dll ..\release\iconengines\qsvgicon.dll file /oname=imageformats\qdds.dll ..\release\imageformats\qdds.dll file /oname=imageformats\qgif.dll ..\release\imageformats\qgif.dll file /oname=imageformats\qicns.dll ..\release\imageformats\qicns.dll file /oname=imageformats\qico.dll ..\release\imageformats\qico.dll file /oname=imageformats\qjp2.dll ..\release\imageformats\qjp2.dll file /oname=imageformats\qjpeg.dll ..\release\imageformats\qjpeg.dll file /oname=imageformats\qmng.dll ..\release\imageformats\qmng.dll file /oname=imageformats\qsvg.dll ..\release\imageformats\qsvg.dll file /oname=imageformats\qtga.dll ..\release\imageformats\qtga.dll file /oname=imageformats\qtiff.dll ..\release\imageformats\qtiff.dll file /oname=imageformats\qwbmp.dll ..\release\imageformats\qwbmp.dll file /oname=imageformats\qwebp.dll ..\release\imageformats\qwebp.dll file /oname=platforms\qwindows.dll ..\release\platforms\qwindows.dll file /oname=printsupport\windowsprintersupport.dll ..\release\printsupport\windowsprintersupport.dll file /oname=sqldrivers\qsqlite.dll ..\release\sqldrivers\qsqlite.dll file /oname=libeay32.dll ..\release\libeay32.dll file /oname=ssleay32.dll ..\release\ssleay32.dll file /oname=libiconv-2.dll ..\release\libiconv-2.dll file /oname=libintl-8.dll ..\release\libintl-8.dll file /oname=LICENSE ..\LICENSE WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Classified-ads" "DisplayName" "Classified-ads (remove only)" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Classified-ads" "UninstallString" "$INSTDIR\Uninstall.exe" sectionEnd # uninstaller section start section "uninstall" SetShellVarContext all # first, delete the uninstaller delete "$INSTDIR\uninstall.exe" # second, remove the link from the start menu delete "$SMPROGRAMS\Classified-ads\uninstall.lnk" delete "$SMPROGRAMS\Classified-ads\Classified-ads.lnk" RMDIR "$SMPROGRAMS\Classified-ads" delete "$INSTDIR\classified-ads.exe" delete "$INSTDIR\qt_ca.qm" delete "$INSTDIR\qt_cs.qm" delete "$INSTDIR\qt_de.qm" delete "$INSTDIR\qt_fi.qm" delete "$INSTDIR\qt_hu.qm" delete "$INSTDIR\qt_it.qm" delete "$INSTDIR\qt_ja.qm" delete "$INSTDIR\qt_lv.qm" delete "$INSTDIR\qt_ru.qm" delete "$INSTDIR\qt_sk.qm" delete "$INSTDIR\qt_uk.qm" delete "$INSTDIR\D3Dcompiler_41.dll" delete "$INSTDIR\libEGL.dll" delete "$INSTDIR\libGLESV2.dll" delete "$INSTDIR\libgcc_s_dw2-1.dll" delete "$INSTDIR\libstdc++-6.dll" delete "$INSTDIR\libwinpthread-1.dll" delete "$INSTDIR\Qt5Core.dll" delete "$INSTDIR\Qt5Gui.dll" delete "$INSTDIR\Qt5Network.dll" delete "$INSTDIR\Qt5PrintSupport.dll" delete "$INSTDIR\Qt5Sql.dll" delete "$INSTDIR\Qt5Svg.dll" delete "$INSTDIR\Qt5Widgets.dll" delete "$INSTDIR\LICENSE" delete "$INSTDIR\bearer\qgenericbearer.dll" delete "$INSTDIR\bearer\qnativewifibearer.dll" delete "$INSTDIR\iconengines\qsvgicon.dll" delete "$INSTDIR\imageformats\qdds.dll" delete "$INSTDIR\imageformats\qgif.dll" delete "$INSTDIR\imageformats\qicns.dll" delete "$INSTDIR\imageformats\qico.dll" delete "$INSTDIR\imageformats\qjp2.dll" delete "$INSTDIR\imageformats\qjpeg.dll" delete "$INSTDIR\imageformats\qmng.dll" delete "$INSTDIR\imageformats\qsvg.dll" delete "$INSTDIR\imageformats\qtga.dll" delete "$INSTDIR\imageformats\qtiff.dll" delete "$INSTDIR\imageformats\qwbmp.dll" delete "$INSTDIR\imageformats\qwebp.dll" delete "$INSTDIR\platforms\qwindows.dll" delete "$INSTDIR\printsupport\windowsprintersupport.dll" delete "$INSTDIR\sqldrivers\qsqlite.dll" delete "$INSTDIR\libeay32.dll" delete "$INSTDIR\ssleay32.dll" delete "$INSTDIR\miniupnpc.dll" delete "$INSTDIR\libiconv-2.dll" delete "$INSTDIR\libintl-8.dll" delete "$INSTDIR\fi\LC_MESSAGES\classified-ads.mo" delete "$INSTDIR\sv\LC_MESSAGES\classified-ads.mo" delete "$INSTDIR\da\LC_MESSAGES\classified-ads.mo" RMDIR "$INSTDIR\sv\LC_MESSAGES" RMDIR "$INSTDIR\sv" RMDIR "$INSTDIR\fi\LC_MESSAGES" RMDIR "$INSTDIR\fi" RMDIR "$INSTDIR\da\LC_MESSAGES" RMDIR "$INSTDIR\da" RMDIR "$INSTDIR\bearer" RMDIR "$INSTDIR\iconengines" RMDIR "$INSTDIR\imageformats" RMDIR "$INSTDIR\printsupport" RMDIR "$INSTDIR\platforms" RMDIR "$INSTDIR\sqldrivers" RMDIR "$INSTDIR" DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Classified-ads" DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Classified-ads" # uninstaller section end sectionEnd classified-ads-0.09/windows/turt-transparent-128x128.ico000066400000000000000000002040761260620453500230070ustar00rootroot00000000000000€€ ((€ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџпппЦИИНДДЁ™ЁЅ™ЅџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџnkfhXVgY[€\OO:H6?D33666333џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЙЂЂ |ng%fUU–Q95U?;ZR99]Q;8pWB@{WEG€UBE\U88 џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџS=;_^JHГWDDуP=<ѓUB>ѕS?<ќU?=џXC?џW@=џU?<џU?<џS=:ьM98сL99нL;;лK99КJ79nG=3џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџB&%?&"џ^LGџjWQџYF>џS@7џI5-џH3+џK4-џK6.џK4/џR:6ћN63ћJ2/ћM62џQ95џK54џM98їH53Ђ[EE_кккџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ?,3(H55ŠH5/№H6/џM;3џVG<џdXJџi\PџkaRџpeWџj]Qџ_QFџ[IAџVD=џM;3џR@9џQ>8џF3.џF54ўD44ОE00js\\ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџN99kA'$њZE?џШФЖџтхЯџЯдКџПЦЈџЗКЁџДЏžџ›”ƒџƒykџƒslџˆvrџlhџ|kcџ}pdџqfџnjџjYXџI76џS=;§pZXkџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ“††K95ЃG4-ў`QFџi`SџЃЂџЦЬАџвлНџЕК џжуСџЗПЁџЦвАџЧвВџЕОžџВКœџ­Д™џГЛџБДœџˆ~rџcTMџB20џF32ќQ?;pџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџШЖЖbLIЛJ1,џ†zoџь№йџэђкџч№вџуяЮџыђиџёєрџюѓлџы№иџъюзџъьйџэьнџыэйџщэдџхьбџяясџиеЫџvjiџS=<џnXV­ПŸŸџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџqdd|H50ќI60џЈЃ•џundџžŸ‹џншЧџЖИЁџ`WKџОФЊџqk]џЇЋ’џръЬџ“’}џ™™„џуэаџтёЭџбйМџ|rhџ‘‰~џ]QLџC1/џT?:”џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџАœœbNKйO82џЅ›џяѓпџюђнџэёнџђѓтџ№єрџяѓоџэѓйџяємџђѕсџѓіуџёєрџыѓиџыёзџыѓиџёєпџэђлџŽ†€џU?>џcMMРs\\ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџdUU‰G3/ўXD@џгЯХџ‰xџvlbџš—…џ”~џ[NDџЪЯЗџФЩВџмсЪџОСЊџdWNџ[NEџЫЯЖџйсЦџКМІџXJAџŽˆzџJ@:џ>,*џU@<ŠџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЊ——XEAкJ4.џЇœ•џђѓфџѓєхџђѓфџэёпџюђоџёѓтџѓѓхџѓѓхџ№ђтџы№лџц№аџцёЯџъђжџэєйџэѓкџ№ѓнџˆџVB@џdOMР‹ss џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџSDDhG3/ўT@<џФРГџ ŽџI:0џF7-џsl[џXK?џНРЉџх№вџчђдџлцЧџКОІџkdVџœˆџsj^џ|sfџPA6џ^PDџ2# џD1.џSB>†џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџУНЗ+gTPщN62џ›’†џюѓмџёѕрџђѕтџђѕхџєічџѓѕфџёєсџюѓкџыђзџчюдџуыбџтъЯџуёЫџхёЮџшђбџьђйџˆzџVBAџiURЇЊЊЊџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџm^^TQ=9јJ61џБЌŸџХУЗџN>7џC3)џj`SџZMBџЎВ™џмьШџряЭџпэЪџЖМЁџvqaџТШЎџЉЊ•џtm]џP@5џG6,џ+џC1,џUD>ƒџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЖЊ]IFЭQ:5џž’‹џїїэџїїьџѕічџєїцџђісџэєкџъђзџъѓеџшѓбџыѓзџч№гџущЯџтъЯџц№аџьєиџыязџ|slџVC@џnYUџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ‹}}MYGAјN;4џЄ›‘џцчиџ|qhџdUMџŠ€uџN?6џЎЏ›џцёгџчѓдџшёеџЌЌ›џ˜”†џэѓкџщ№зџ‘~џ„oџ‘Š~џF83џO:5ќZGBhџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ™™™dPNЌW?;џ”„џѓєчџѓіхџёѕрџ№ѕпџыєжџъѓзџяѕнџ№іоџъѓжџщђжџчёбџыѓдџщ№еџяёпџяясџыькџymfџWC?џp\ZŠџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЏЈЅMaRLјSA9џ‘Š}џчяжџЭгЙџСЦ­џинЦџ‹ˆxџРСАџ№ѕтџ№ѕрџяєпџь№лџфщвџъёиџьёлџфьбџч№дџОПЏџO><џU@=я]KKDџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџeQOŠV@<џpeџчыгџ№ѕпџёѕрџѓіуџ№іоџяѕнџьєзџыєеџшђбџшђвџьѓиџѓіуџѕїцџєїцџшълџпраџqd_џV@>џr\ZŠџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџгЭЪMk]YјJ8.џ}wgџрыЬџхябџтяЮџмэХџехРџкыХџльЧџтяЭџу№Юџшђгџчђвџт№ЭџпыЬџнъЫџх№вџœ‹џN;7џZEAѕq^ZAџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџiWU~T>;џwe_џъщпџїїэџѕїцџѓіуџёірџъєзџхђЮџщѓвџяѕйџѓїтџѕїчџѕїцџѓіуџђісџђітџмоЫџaUNџR=9џxc^ŠџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџнзгMsdaјK80џwiџсьЮџхявџщ№иџыёйџщђйџьѓлџщђжџфёЯџпяЩџцёвџхёаџфёвџчёеџхьжџъёйџƒ€uџI72џ[FCъ‡wr1џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџzgejVA>џnYUџомЮџёєсџьѓлџщѓжџцђвџфёЭџыєзџ№інџєјхџєїцџђїтџёїпџєјфџѕјхџєјфџпрЯџ_QKџQ>8џ}ncŠџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЭЦУMn^ZјL:3џ†pџкыХџйыУџлъЧџишФџньЫџпэЫџуяЯџпюЪџлюУџс№ЫџтёЮџояЩџс№ЭџтэаџнхЬџkc\џJ71џcOL㓉‰џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџgUU6R=:ь^HDџЖЗЂџмьШџмюЦџпяЩџхёЯџьєйџѓїсџєјфџєјфџєїхџѓїтџёїоџђїпџђјрџѓјсџйкЧџ`QKџT@=џzg`yџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџСЛЗKgYWјM;5џ…nџкъЦџдщПџгщОџбчМџвчМџбчЛџжъРџлэЦџкэХџояШџуёЯџкьФџйьУџзыТџЧгЕџYOGџK61џdOMžЊЊЊџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџf[[]KFиZHAџš™„џряЪџтёЬџхђЯџэѕзџёіпџђїрџѓјтџ№їмџэѕйџьѕзџьіжџяїлџяїлџяїлџавНџ[KDџP:8љ_KHXџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџТОЙ;dURяK:4џ~wiџйшЦџрюЮџоюЪџпэЬџсюЮџпэЫџрюЬџряЫџлэЦџмяЧџу№Яџф№бџцђгџцёвџШЫКџWJDџT>:ћkURrџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЊ\NH­[IBџ•џэђлџэєлџцђбџшѓгџшѓвџщєвџчєаџшєаџъѕвџыѕеџщєбџэіиџяїйџэізџУЦЏџXIBџXA?єUAABџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЛЖВ5fWRяN?6џykџкцЧџжъТџкьФџйыФџещРџгщНџйыФџмэЧџлэЦџлюФџлэФџмэХџряЬџъёкџСПЕџZIFџZEAџlYVjџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџSB>†UB>џˆzqџьякџэєкџоъЩџуяЮџшєвџъѕгџчєЯџшѕЯџщѕвџщѕвџэізџ№јлџэіеџыѕдџВВџWE?џYDAпRCC"џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЌ"dQNнQ@9џ~zgџзхФџкъЧџпэЫџмьЧџоэЪџльЦџзъСџйьФџнэЧџпяЩџоюЧџрэЬџъђйџьёлџЃž•џTA>џYEAћueb]џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџZIIyUC@ў‚tjџъязџюілџчёвџьєзџюѕиџщѕбџыідџюїиџяїкџэізџ№їлџыігџьіжџэѕзџœ˜ŠџSA>џ_JFуt^W#џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ‘…\KFвN=6џ€yiџехРџлэЦџоэЪџйшЦџвцНџдшПџбшМџеъСџбчМџдщОџеъПџйъУџуябџхьдџƒ{uџN97џXBAв,џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџfURr[HGў‡wqџёёшџіљьџ№їнџьїжџяїйџ№їлџёјнџђљпџяїйџьїеџюїзџэїзџђјрџ№ѓоџ†}wџTA?џkVRеœ“‰џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ‘‘yUH?ЭK;4џwraџдхРџоюЩџкэФџтюЯџпъЭџх№гџуяЯџфябџсэЮџоьЫџкыФџмэЦџльЦџЯрКџhbVџN;5џQ:7“џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџxfbh_KJћmiџьщцџ§ќљџјћэџѕњхџѓљрџѓјрџ№їмџэїеџяїйџ№јлџђјпџѓљсџѕјхџцшдџod]џUB;џmXSЏ™™™џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ—„VI?бL=5џ}wiџкщЧџкьЦџжъРџйыФџкшЩџнэЪџмэШџнэЩџпюЫџуяЯџсюЬџнэЩџрэЫџЫзИџ[QGџN:5џYGC‹џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџŠywmePNўzfbџшфрџћќєџјћыџѕњфџ№јнџэїиџыѕдџьіеџѓјрџёјнџёїнџюізџьѕеџбжЛџ\PIџS@9џjVQ„џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЛВ­5eVPяK<3џ„nџтюаџсюЮџкьХџвщНџасПџзчФџещРџеъРџиъТџльЦџмьШџмьШџпэЫџЭдМџZKFџQ;7ў`MG‡џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџzxlaLJўq\Yџрмгџјњъџђљоџюјзџыївџьіеџяілџяімџ№інџъєгџыєжџыєеџэѕзџХХАџTEBџWB<§p]X_џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЎЁ›)]KGуH8.џxzaџФоБџЭуКџешСџжъТџЯуНџЭхКџЬцЗџбшЛџещСџльЦџмьШџмыЩџрюЭџбжРџ`PKџT?;ўZF?tџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ‚Z`LJљlYTџжгФџѓјсџ№їлџ№јлџ№їкџюіиџшєбџщєгџщєвџьѕеџђїрџёісџюємџЈЄ•џL<9џ[G@ѕ†tmFџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЅ™•?ZIDёE4-џŒŠvџЩтДџОмЈџЗкЁџНнЈџХсБџФрАџПпЉџЧуБџЫхЖџЬцЖџбчНџжшХџныЭџелХџbUNџS>8ўYEA}џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ™ŒŒPdPNљcPJџУТЎџыѕдџшєбџчєЮџчєЬџцєЬџъєгџэѕиџыєжџшѓвџхђаџпяШџпьЧџyhџI82џ`MGс‰|u%џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ–ЇDYIDјG5/џŸ˜џщ№иџмьШџдщПџбшМџгщПџдщРџашМџЭцИџЬцЖџЯчКџЩфДџЦсГџЩсЖџОаЋџ[SGџUC:џfSO„џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџВЅЅPfQPљVA>џАЋšџэізџьѕзџщѕвџчєЮџцѓЬџцѓЯџхђЮџцђЮџцђЮџцђЯџф№ЮџжоРџ\RDџG5.џgSMД џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџmmk]X4p[XT]JG]P;;IJ//0Q==2VGL2PAA#?** ???џџџџџџџџџџџџџџџџџџџџџfQQM;8жA1*џŠ†wџхэеџрэЯџньЪџгщПџЮцКџЮцЙџЯцЛџгшРџашМџнэЪџпэЬџлыЩџмьЩџУвАџXPDџQ?7ў\HDtџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЕЌЌPgSPљS>;џЊ –џєїуџяілџэѕиџэѕиџяійџюѕкџ№ѕнџёѕпџ№єнџъѓжџрэЪџКХЄџE9,џ?-$§iZSџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ‘‘‘]UURFF(L==2M;;RP=<ˆR@@дO;;ыR>;ќK86ќJ64їI53ыJ64ыK96эJ:9сF56РE47ЅC56@11‹C36qA59>?55?** џџџukkI85еB1,џ‚‚mџвцСџньЬџпюЮџпюЫџльШџещСџащЛџбщНџЫчДџЫцЕџЩхДџачМџжъТџРЮЎџWLEџR@8ў[HCmџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџТМИPp^[љ]HEџЏЂџјјьџѓїуџѓїфџђіпџёіоџъёжџщёжџщђеџпюШџйыТџгшНџЎЖ™џE6/џB/&§f[MmџџџџџџџџџџџџџџџкЖЖm[[f[[2aRUiWHH”ZIIРVDDнS?<цO:8шR;8ћQ:7џR=8џVB?џbOHџkYRџjWOџbNHџVA;џR=6џT@:џR=9џO:8џK86џE20џI65§K98ђD33дA11РC46šL::h[NF{I<5љB3+џžŸŠџеъУџгъРџащМџгщОџмыЪџуявџх№гџтяЯџнюЫџйьЦџеыРџЯщЛџбщНџКЬЈџSJ?џL=0џ[LB†џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџпиеPwecљ`IFџЏЁџїїьџєіцџёѕсџыѓжџчёаџсяЪџрюЩџуяЮџуюЯџьёлџэёнџГЏЁџC0,џL70іgVRJm[[UJJ`YVJN@B{M<>ЌF43ЦJ74уI71ќN94џS=7џS>8џXD>џ_NFџqbWџ„ylџЁœ‹џЗЙЃџТЩ­џЧаВџФЮЎџЙФЃџ­Е•џЈЌ‘џЁЂ‹џЂœ‹џЂ—џ˜Š…џ„upџp]Yџ]HDџM84џJ41џK64џJ65ў<*(ѕ0!џD8-џЇЊ”џрэЯџуюбџльШџвщОџЩтЖџЭхКџйыШџмэЩџф№гџщђиџшђиџфёдџтяаџХаВџND:џF5+џfWMПППџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЬТТPlYVљT>:џЊ˜џѕішџёѕпџюєкџчёвџхяЯџш№гџы№йџяђпџъ№иџуэаџпъЪџŒ‰xџ/џ;)$ћJ;8Г=00Ї=,+У<)&гA/+ѕB/)ўG2-џG5,џTB8џhYLџ…zlџ”‡џЊІ“џМКЈџЬЬЙџйнЦџтщЯџуьбџнъЩџишТџауКџЧпАџШрВџТнЋџЭфИџдшОџйыУџхявџъёлџыямџпрбџЫЧМџДЌЄџЃ—џ‘ƒ~џm[WџG40џ<-&џ=-%џf\NџГЗ џсюбџсюаџх№дџфэдџрэЯџйъШџачНџашМџеъТџкыЩџуябџц№еџЪаЛџQDBџN96џp[W‘џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЬХТPm[XљV@<џ­Ђџїїыџ№єпџьѓйџщёдџцябџуюЮџпыЫџкъФџбхЙџЬсДџТд­џ\VHџ# џ.џ8%џ@-&џJ5.џG3*џR?5џn`Tџ‡~mџž™‡џДЗžџЮжЙџошЪџсьЭџтэЭџфэбџуэаџтэЭџоьЩџищУџйъУџгчЛџбфЛџЪсГџЫтЕџФпЎџЧтБџЧтВџХуЏџгщОџряЭџтяЭџрюЭџсюЮџчязџъ№мџэёрџноЮџВЏ џujџA2(џK=0џ’{џкшЩџпюЮџряЭџфядџщёйџыђмџшђиџряЭџоюЪџльЧџещСџвчОџИШІџOF=џP>7џkYVŽџџџџџџџџџџџџџџџџџџАœœ |gn%VGL2dUUBN>>1(џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџПЕВPfUOљR>7џЋЄ—џщёзџц№гџшёдџц№аџрэЪџйъУџзчУџЬуЕџЧрБџбхКџмщЦџ“~џF5.џ]PDџsgZџŠ‚sџš•…џ›‡џЗЙ џжнСџдхОџафЛџЮхЖџжчСџрыЭџпьЫџсэЭџтюЭџпьЪџкыФџньЧџйъУџмьЦџвхМџдчОџгшНџЯхЙџШтБџСоЊџРоЊџТпЌџгщОџпюЬџсяЭџлэХџмыШџньЪџмэЩџйыХџоэЫџпэЭџдоТџ‹ŒvџngXџЎД›џйъЧџешФџвчРџгцУџоэЬџх№еџчёиџщђмџъђкџчёжџрюЮџйыЦџУвВџ[SIџK<2џ[IDŽџџџџџџџџџџџџygg;cOM€[LLКP@?сI88ъI8:ѕ;,.ъ;*-Х<,.rџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџІš—Y`LHљR>7џГЌŸџяѓпџяѓнџшёдџряЪџйыУџжшРџкщФџпьЩџсьЭџуяЮџцягџчыдџЬЬИџимХџнхЩџпъЫџкшЧџжчСџдцОџЮхИџХрЎџЩсВџищСџуюЯџсюЭџньЦџсэЭџоьЩџуюЯџуюЮџуюЮџфяаџш№еџуэЯџпэЪџньЧџкщХџдшПџвчМџЭцЙџФсЏџЧтВџзыТџлэЦџвщЛџбчМџбчМџачМџвщОџжъТџдшРџжщУџечТџЯнМџлъЪџльЩџрюаџишЧџгцТџоэЬџнюЬџиьХџиьЧџпяЯџтявџыђнџъёлџйрЩџ_WNџK:3џfUNЊ‘‘mџџџџџџM52LG54Ь@.,џH70џM92џL92џM94џ>+%џ;%%џB00Ыџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ~{i^HDўXD>џУНАџёєсџьђйџц№вџфюаџтэЮџцэгџтэЮџпьЩџньЧџльФџжщРџйъУџйчФџгуПџЬоИџЫмИџЬоЙџауЛџжчСџзчФџкшЧџкчЧџкчШџтыаџуэбџцядџъ№иџсьЮџзшУџЩрДџШрГџЬсЗџЫтЗџШсГџСнЋџЛлЄџКйЅџДиџГиœџЏи™џВйџФрАџйьЦџояЪџнэЫџльШџжыСџашМџашЛџачЛџбшНџдъТџжщТџЫхЗџЬцИџбшНџЮфМџШрЖџЫхИџжъФџтябџх№гџх№дџу№вџпюЫџмэЪџльЪџЬзЛџVKEџB0-џ_NHЖ33?(#e?-*дC20џfWPџ…xџЅЂŽџВД›џЙКЅџpeYџC00џUBBзџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџqYY^YB>ўbNHџдЯСџюѓнџэђлџыђиџшёгџрюЪџишФџвчЛџдщМџЮцЖџЬхДџбчКџвшЛџзъРџлыЦџоыЩџрыЭџпщЫџмщШџзчУџзчУџбцМџахКџдчПџкъХџкъЦџжцСџЮуКџЧпВџФнЏџКзІџЖеЁџЙиЄџКйЄџШрГџЩпДџШрВџХпЏџТпЌџРпЉџФуЎџЫхЖџгшРџгшПџзщФџгчРџдщСџвщОџЯцЛџзыФџзъУџжъУџкъЩџйщШџЦоЕџТнЏџЩуЗџУоАџЧтДџЯчЛџЯчМџЮчНџдщТџкыЩџц№жџьѓнџчёжџфябџанНџ^WKџ7("џE2/т?**„@,%Ђ;)'јH94џˆxџЫаЗџхявџоюЪџсяЭџръЭџvk_џI66џkVUШџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџR>7fN92ћrcYџтфЯџьђйџщёдџтяЬџйыТџкъУџвчМџачИџбчЗџачИџеъОџрюЪџтюЭџцягџхяаџт№Ыџу№ЭџпюШџмьЦџЯчЗџШтАџШхАџЧфЏџЮчЖџШфЏџЦтЏџЪуВџШтВџЮуЙџбхНџбхОџЬтЗџОлЉџВеšџИиЁџОлЉџПнЉџЕжŸџКкЄџСоЌџкъШџпьЮџишЦџещСџйьХџзыУџбшМџбщНџЮчКџЫцЗџдшСџзъФџкыШџиъЧџвчПџЩфГџСрЌџКнЄџУуЎџУтЎџУрАџЩфЖџашОџдшТџиъФџиыЧџтягџъђлџъёлџŸ›ŽџB40џ8%!џ7$ќB2.џbYPџЈЉ•џчюеџшёеџт№ЮџпяЪџлэЦџКХІџWKEџI86џuc_‹џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ33N62ЃK6.џ…vџшяеџшёгџу№ЭџмэФџгчЛџахЙџгчМџкыТџмьУџоюЧџсюЫџфяаџц№вџч№вџнэЧџиьПџжыНџбшИџШуАџТрЊџХс­џзыРџиъСџдъМџЮцЕџНмІџЄЬ‹џЖйŸџХрАџХрЏџУп­џРнЊџМмЄџПоЇџРпЈџЛоЄџЙмЁџГж›џ­г–џЗл џЦтБџЯхЛџлэЧџнюЩџп№ЫџлюЦџлэЦџйьХџеыСџащЛџйьФџиьФџзыУџнюЬџлэЧџиьФџгщПџЩфГџФуАџШфДџЩуЖџРсЌџПрЋџСрЎџУрЏџХтБџШхДџвщПџвчРџФиВџ„‹qџ_[Qџlh^џ—š†џЛШІџгшНџиыТџмэЦџмюЦџлэХџЩзЕџ|oџM;9џZGDХ–‡ƒBџџџџџџџџџџџџџџџqaHHP55Q?6R?9(I44I@-)CV??8]GC93UџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџN:7NH2+юH5-џ­Њ—џх№бџрюЫџпюШџсюЫџмыЧџрэЩџрэЫџоэЩџоьШџньЧџсюЭџуяЯџтяЬџф№Юџс№ЪџмюФџеъМџбчЗџЪфБџЧт­џбщИџашЗџХрЌџИж џЧтЏџІЮŽџ„ЕkџЂЩŠџИзЁџЇЬ‘џЅЪџНкІџРнЉџМлЄџЛкЃџКкЃџ­г–џЋа“џЋб”џБе™џНнЇџУсЎџСсЌџХуЏџЭцИџЭчИџгъНџдъРџгшРџашМџвщОџдыСџзьФџлэШџжыТџжыУџйьЧџоюЫџиьЦџЭчКџЫцЙџЯшЛџиьХџбшНџЪхЖџЭцИџЬцЗџбщМџбъМџХуЏџПоЉџИ‟ФлЏџЯшИџЭцЗџШуБџЪфДџачКџЯчИџУй­џ}~lџE52џR<8ЬV==>џџџџџџџџџџџџ­ž™5|libOMЪM:6вH4/аI4.кJ5/у@-)љB-*єH1-№G2/єC/,МE11›H2/fK77%џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ5" <'!џi[QџйлХџхюгџуюЯџтюЬџоэЧџйыСџрэЩџпэЪџоэЧџпэЪџтяЬџф№ЮџтяЬџф№Эџт№ЭџряЪџгъЛџШфЏџОпЃџГйšџЕкœџТсЉџХт­џЊЩ’џ|žbџ‡›mџkOџRh6џamGџnvVџ[kAџ`oGџ€†hџŠsџ•zџ—œџЁІ‹џЅЌџЁЏŒџА‡џ˜Џƒџ—Бƒџ ИџЅРџЈУ”џЏЩ›џЉЦ•џЕЮ џЙвЅџЕбЂџОкЊџЬфЗџвщНџгъОџвщМџЭшИџвъОџеъРџзьТџиэУџйэХџйьХџгыПџзьТџеьРџзыТџмэШџпюЭџлюШџкюХџлэЦџзыРџдъНџбъЛџЩцВџЬчЕџШхБџСрЉџЖйžџЋЫ”џoz]џH;3џQ@7зP;8VџџџџџџџџџџџџˆvtpfRPеP;8џL96џM>6џQE:џYMAџaWHџ]RGџfYOџbTJџ^MEџUA<џM96џH42ќJ65РB1.XWEAFyibAЁ““џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџP?9YE2+јG3*џ›˜„џуэЯџтэЯџпьЫџлъЦџйъТџиъТџжшПџоэШџньЧџлэЧџиьТџлэФџйыУџжыПџжыОџЮчЖџЦуЎџЩфАџТнЊџКеЃџВЩџІЙџ‡“rџ\_Eџ<;"џ<7"џ;5џ2/џ92џ>5#џ40џ=6$џF9/џE9-џN@:џN@:џL=5џRD=џXJFџVK@џPI;џWNEџRLAџTMCџYRIџ`XOџ[VKџ^XKџ]YIџ\]LџgiUџx}gџ‰‘vџ˜Ѕ„џЏРšџРдЊџПлЊџУс­џФфЎџЧцБџЭщИџгыОџаыЛџбыЛџЫщЕџХцЏџЪцЕџвъМџйэХџнюЩџхёвџояЩџиьТџйьУџеъПџзьРџиьУџдщОџЪлЕџz€iџF81џP=6пYI@Sџџџџџџџџџџџџ€~{_MLћ3џ8$ џ^LHџЄœ‘џЧЮЕџУвЎџЪкЕџУеЎџЯмКџЮйЙџЛШЃџЊБ’џ•”}џl_TџN=6џE2-ѓ@,)ѕK93ёVB@ЗO?<]K<<џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџQ=3L91ЎO<1џ}seџзоУџсэЮџмъШџлщЧџйшХџиъТџдшНџЮхИџвшЛџЭчЕџЯшИџЬцДџЫцГџЧуЎџКлЁџЙзЁџВаџЌЦ—џЈК“џ—Ё‚џŠ‡vџneZџSI9џA8&џ<4џ?9 џD@%џFH(џ>C џIM+џHL(џ@EџHI+џHG,џDB&џSI9џQG7џNA2џRC6џXF<џOC0џC<$џN@3џTD9џTF:џQC8џQB9џQA;џO?7џM@5џKA4џL>5џNA9џLA9џLD:џTMBџb\NџloWџŒ˜wџАТšџЗжЂџЏзšџРсЊџЮъИџЫщЖџЫщЕџЫшЖџЭшЗџЪшГџЩчВџЦцАџЧхАџШхБџЮцЙџоюЩџу№ЯџнэШџиыУџЭмИџŽˆџJ85џO:5уYDBlџџџџџџџџџџџџЋЃž=sa`мD/-џ7&!џ/џ0 џVK@џІЃ”џлъШџдыПџеыПџеьНџлюУџзыРџзьРџеыОџРеЈџ•Ђ|џnjUџM=2џD1)џH50џE3,їL92КYC=ŒZFCWXBBџџџџџџџџџџџџџџџџџџUUUC((7%J+‡1ГA-$џh\MџЗМЂџлыЦџбчЛџЮцИџЫфЕџЧсАџЪуДџЫфЕџШуВџацЛџЯфЙџасЛџУзЏџЖЫЅџЏНŸџ›Ѓ‰џ‡‹qџ…nџti[џ^SBџTG6џVF:џMB0џJ@,џPM4џ[d@џi€Pџu–\џu]џd”Lџg—Oџf—Nџb”Iџi˜Sџk™Tџ_ŽFџdNџj’Rџk‘Tџp’YџpŽXџf„Mџ]}Cџl…Tџj€Rџj|Rџp}WџhtQџst\џRE9џMB6џeeMџoiWџk_UџXNAџQJ9џTJ=џSI<џMG8џRL>џ^VJџgkSџr‚]џЉzџОкЉџУф­џИоЁџЛпІџЕкžџЖлžџКоЂџНрІџОсЇџНрІџРпЋџачМџоэЫџдшСџСвЌџ€‚nџK<:џS>9ЭO85ZџџџџџџџџџџџџџџџzfcЇP97џM:7џŒ}џrr\џ5-џ-#џ?3*џ’ŽџЯрНџЯшЙџбъМџЬшЖџйэУџлюЦџиыУџжьРџЫщГџФоЌџЏР–џ’šyџwq^џ[LCџR@:џR=6џS=8єP;6ЫI3+B,$E`LFW`LHjP;8VG.+GF.*‰F0+Э0 э  џ8)џzwbџГПœџдщМџеъНџдщМџвщМџбчКџдшОџвшНџжшРџвфОџЫлЙџШзЗџЪеИџАЙœџŒvџpjZџVK<џF='џM>2џT@;џRE7џNI2џUY9џeuIџ|”dџˆЌqџ™Т€џ–Цџ“Т|џ‘ПyџvЏ`џpЊZџpЊZџoЉYџ‚ЖmџŠНtџpЉXџrЋ[џƒИlџ”Х}џЉб‘џЄаџ•Х}џ‰ПsџšЬ„џЮ†џœЫ†џЇдџЭ‡џŠЂtџHD.џLI5џ‘Ў{џЙзЃџЗЭЂџ‘ЎyџŽЄxџŒ–vџtz^џ^^HџXRCџSK<џOK6џMI6џUQBџxxfџŒšyџЇТ‘џМмЅџЃЬŒџЏз—џИм џИнЁџНсІџИм џМмІџЧуБџЭфИџИЦЅџyxiџH;8џR?<ЪXB;Eџџџџџџџџџџџџџџџџџџ\EBпL65џœ”џђѕцџлшШџ™ЃƒџSR;џ2'џC4*џŒ{џЬтИџЧфБџЧцВџЮщИџгыОџлюХџояШџкяХџкюУџзэРџЮъЕџЮфЗџХгЎџЏВ˜џŽ‡tџkXQџQ<6џH3+ўC,&ђJ4,љH3+ўC/&љB,%№C.&ўH4+џI?/џ_^Hџ›Ѓ„џауЛџиыТџвшЛџЯчИџгшМџзъСџдшНџечРџдцПџвфМџСйЋџЏХ™џ˜Ё€џ{fџ^SCџB9!џL=-џM>0џKH-џ]_DџŽˆyџ…•mџzœcџЎgџОvџПtџ’УzџЈбџ™Ш‚џ”Ф|џžЬ†џ…Кmџ‚Йkџ~Еgџ}ГgџЏд˜џМнЄџƒИlџ†КoџЃЮŠџЉдџНрЃџ­й“џ б‡џ“ЪzџšаƒџЂд‹џЅдџЊи“џИоЁџ…ˆoџNK5џhxQџЈб’џКпЄџЃаџšЬƒџЛсЄџОтЇџЎи–џ“Й|џŽЃxџguQџPX8џMM5џSL=џUO@џXTFџgaUџƒ‹rџ–ВƒџЬцЗџгыНџдыОџжьРџХсЏџТпЌџШуВџЋК–џml\џF71џH62ЗSA=FџџџџџџџџџџџџџџџџџџџџџR;8пdTPџвкРџрюЮџояЫџкьЧџЖТЂџqrZџI?1џ}lџЭзМџЫуЖџШхВџСуЊџПтЉџдыОџняЧџляФџйюТџр№ЫџкюФџкяФџйэУџжьРџйыСџШЮАџ ž‡џ‚tkџhVOџ]M@џ_QDџh^Mџ{sbџ“zџЁЇˆџКЪЁџЫтДџеыОџбщКџеъНџЭцЖџЭхЗџЮцИџбчЛџбфКџафЛџХнАџЎН—џ}…bџVT9џJ<-џH9+џH<)џLM.џt{Yџ›tџ‚žjџГwџИеЃџ•Тџ…Жnџ|ГdџУxџ‹Рrџ•Ч|џЊе’џŸЭ†џ•Ш}џ ЮŠџŠМsџ€Зiџ‡НpџЖiџЌг•џЗлŸџ†ЛoџТzџИпžџНтЃџЬъВџЏн•џЌм‘џ˜Я~џЅзŒџЎн•џЄжџЎн•џЕЯџibSџWT>џ†ІoџВнšџЗн џ•Ч~џŸЯ‰џХхАџЖп џІзџžа‡џ­й•џ‡Йqџ{Јeџžkџq€[џ\`EџZTDџRF9џMC6џ^^MџžЂџХзДџЫфЗџгчРџзъФџйъЧџСФЎџrhaџJ:8џJ90ВI514џџџџџџџџџџџџџџџџџџџџџџџџN64пykfџуьгџжьТџШчВџгыОџнюЪџапНџЎЗ˜џЧеВџвфСџгсТџЬхЗџПрЉџТуЊџУфЌџЯщИџояЧџхђбџуђЯџмюЦџфђЯџфђЯџр№ЫџтёЫџфёЭџмэУџнъЧџжнТџЫеДџУгЌџШлЏџЬпЖџЬоЕџньЧџкыХџнэЩџряЫџкэФџоюШџмьЧџньШџлыЦџкъХџгцРџАР™џ}…cџPL1џ@6џC9"џUK9џmmRџp†Uџ‡Ћnџ“Сzџ‰ЅoџRZ6џ]wEџ•П~џ‹Лuџ|ЏeџsЊ\џРwџŽУvџ–ЪџЄдŒџЮƒџ“Чzџ‘ФyџƒЛjџxВ`џ…Оmџ…НnџЮ‡џœЮƒџКkџ‰ПtџЏм•џЙуžџСчІџЈкŽџІи‹џ™аџІйŒџБп™џŸе‰џЕсџЁЌŠџVN=џW_=џ˜ХџЖсŸџЉи’џЧxџ˜Ь€џЇв’џЄбџЂвŠџЁбŠџ›Ю…џ†Оpџ‘ХzџЉж’џšЫƒџЃТџ‘ž|џeeLџLF2џTG<џZNGџ€zrџЈЏ˜џФмБџЗеЂџБЦžџ~ulџO>;џO;7ЄUBB*џџџџџџџџџџџџџџџџџџџџџџџџџџџQ:8пƒwrџэ№сџэєсџвъНџУфЌџЪчЕџояЬџр№ЭџйюУџеьПџвцОџлэЦџШфГџСуЊџЬшЕџШчАџЫъДџкюФџчђдџс№Юџфђбџхѓбџъєиџшѓдџцѓбџцђаџу№ЭџоюШџмэФџлэУџеыОџгъМџЩуБџдыМџеыОџжъРџкьХџльЦџнэШџньЩџлыЧџиъУџУаЎџœš‡џ_TEџF9'џE<%џSP5џo|UџŒЄuџ­Ш–џ–С~џ—ФџРxџy˜aџ?>"џEG'џv“\џŽЛwџvЉ_џtЌ]џ˜Щ€џ’Цyџ—Ы€џ а‰џ—ЪџŒФsџЧwџŠТqџ|Жdџ„Мmџ…Пmџ”Ы|џ“Щ{џ€КjџˆРqџЇйŒџВр—џЙфŸџЃз‰џЂзˆџ˜ЯџšвƒџЊл“џ’Ы{џДпџ„‰mџVP<џbuJџ˜ЩƒџЂвŒџžб‡џ’Ч{џ”Щ}џ—Ш‚џАз›џЮ†џšЭƒџ‡ОrџИiџšЭƒџ™Ъƒџ•Х€џЛоІџ­ж—џ—Йџ{ƒdџK=3џ;,#џD60џ[QIџ†Œsџ˜Е…џwƒeџP>:џP<8ПE44,џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџR<9п†zuџэђнџэєоџщѓйџгъПџСуЊџШцГџт№Яџо№ЫџвыМџбыКџгьМџйюФџЬчИџХфЏџЪцГџЩчБџЦцАџеыПџйьФџцђдџшєеџцѓвџъєеџъєжџьєзџчђвџхёЯџсяЪџс№ЫџмяЦџкэУџлэФџмэХџиыТџеыПџеъПџньШџцюеџь№мџосЮџЋЈ–џoeWџRC7џJ=/џZS=џsXџ–Д~џˆЖrџxЈbџЁХŠџ™Ц‚џ“У|џРxџ“С}џesJџ=;џPb2џ{ЉeџlЅWџkЄTџСuџФwџ‘Хyџ˜ЩџУyџУtџ‘Шyџ‡ПoџЛiџƒМlџƒНlџŒЦtџŽЧuџ~Йfџ‰ТrџЃзŠџЅжŒџАн–џЃз‰џ—Ю~џ’Ъzџœг„џžв†џŒУtџЕиŸџkhRџMJ2џmŒUџ›Ы†џ˜Щƒџ—ЩџФ|џ™Ь‚џ”ЧџЖкЂџ“Ч|џУvџ{Дeџ†Оpџ–ЩџˆОrџ­г˜џЎж™џЄвџЉЮ’џŒŒuџXFAџI82џI<3џKC5џID5џuwbџviaџR>;љT?+џL=0џVN;џ}…dџ”Џ|џŠЙsџ†ЙnџpІXџoЂVџ“П|џŸЧˆџНxџ‰Лtџ‘Пzџ‹ЅsџDD%џ:@џf‡LџiЁRџežLџŽОwџ‹Оtџ‹РtџˆОrџ„Йnџ‰ОqџФtџ€ИgџМiџƒНjџЙhџ‡ТnџŒХtџzД`џ†Оnџ—Ю}џ—Э~џЅжŠџšЮ€џ’ЧxџФtџ”Ь|џЧwџ‘Цzџ›КƒџTP9џHJ+џЅgџЈе’џ–Ш‚џ’Ц{џŒУvџ’Ч|џ—Щ‚џЌд˜џˆСrџ{ЖeџyГbџ‡Оpџ„Мmџ–Ц€џИйЂџ˜ШƒџЃаџ…‘mџaMHџ`MGџ“‘}џ˜Ђ‚џ]`EџD?-џE:6џK86џS?=сRD>%џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ\FDнTA?џГЕ џр№ЬџвыМџгъОџМРЉџЅІ’џ›Ќ†џАд›џЮшЙџвыМџЯъЗџдюНџгэМџйюФџбщМџащЛџиэТџжъСџдьОџмяЦџияСџлёХџшєжџюѕмџцѓЯџрёЧџрёЩџр№ЪџояЧџзэПџжьОџиыРџдчОџзыСџпяЬџйшЧџОЩЋџˆˆpџQG5џ=7џ;<џfrKџ…ЂnџАг™џЇЮџˆКrџ€ИjџЖgџ„ЙkџŠМsџ˜ТƒџМyџ•Т€џˆЙsџ•Оџ^iDџ69џMa0џhSџ`™Gџ“П~џ}Вhџ„ЙnџЗlџ€Жkџ~ГiџŒСvџЗiџ{Гdџ|ГeџxАcџzГeџКkџrЌZџЖhџ‘ЧxџФwџšЮџ’ЧzџТtџˆРpџ’Щ|џ†Мoџ—Щџ…žmџFC(џIP+џ‹ЕtџžЫˆџ‘Ф~џ’Ч}џˆПsџŒТwџЌж˜џ ЫŒџyБdџpЉ[џ‚ЙlџzГdџyБdџЊб–џЂЪџ“Ц~џ—gџ]QEџ\ICџˆŒqџМжЇџЛлЅџ‘­{џ[aDџ6*&џ6%&џ_MOЮМЊЊџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџkVSУWA>џ‡zџхягџс№ЮџДХŸџKD4џ6(џM@5џƒnџЖлЁџУтЏџЮъИџбъЛџбыКџЫцЖџеъСџзьУџзьТџешТџиьФџл№ФџхѓаџнёШџжэОџсёЬџшѓдџчѓбџкюТџвыЛџеыОџиьУџхёбџщђжџхюбџч№еџчэжџВА џj`Qџ?1"џG:*џ`eDџj‰Rџ–РџЈа’џВе›џЂЬŒџ„Иoџ}ЕhџЖkџПyџŽРzџŒМwџ’С}џ•С€џ€ВjџКyџ”hџ>>џ7@џf‹OџW‘?џ„Дpџy­eџ~ВjџЕnџ€ЕmџДlџ‰Оuџ}ДiџwЎcџ|ВgџmЅYџjЃUџzВdџjЄUџuЌ_џŠРtџТvџ’УzџŠКtџ†Зnџ…Йoџ‹РwџˆЛtџ•Шџt†Zџ=>џJX-џŒЛwџ‘С}џ•Ф‚џ‘У|џƒИoџŽС{џ­е™џ‰НuџoЈ[џv­dџ|ВjџsЌ^џŠНvџ Ы‹џ‘Т{џ}›eџTP:џSB9џpqYџ–ИџЅЬ‘џЄЬџ‘Р}џˆЅsџOH9џ6'%џVGHЩ ——џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ~lj\EC§eTOџФЦЏџхёвџЭйКџcdNџ4'џI:-џwpcџФжБџВк›џЛпІџвъНџЭшЗџвъМџеыПџйюУџеьРџйэХџцђеџо№ЩџсђЬџщєжџр№ШџляТџмяУџфёЬџпяЩџеыОџЬцЕџЫцЖџжъРџоьЩџхявџсшаџЂžџXK>џ*џ! џC<)џ˜jџ‘О|џ‘О|џЃЭџЇЮ‘џРzџ}Аfџ~ВhџŠЛtџ‘Р|џ’Р|џyЌdџ‚Еnџ‘Н~џ‹КvџŠЖuџšК…џY[=џ/4џUl;џSŠ:џ~Аkџ~Бjџ{Аhџ†ЗsџzЎhџ€Гlџ‡КsџЖlџyАeџ{БgџkЂTџg PџpЇZџbšKџd’Lџi‰QџauEџS^3џNX2џLX,џO_1џ[o@џsˆ\џs’\џP[8џ21џHZ.џЛ{џП~џ™Х†џˆКtџ}ВjџŽП{џ ЫŒџ|БgџlЄVџ~ЕlџuЋbџuЌ`џ†КsџƒЖqџЅmџW[;џN>0џedKџЋxџŽМzџ“РџŠЙwџЛzџЅЫџ‡’qџJ;4џJ<;ўh^XПППџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЖЋЋ.ta_йN:7џˆrџжфТџлюЧџСб­џˆ’sџŠŒvџБЛŸџнюЬџиэЦџЕнžџФфЎџЯщЙџдыОџкэЦџдыПџдэПџЯъКџкэЧџшѓзџо№Щџо№Щџцђаџп№ЦџмяТџзюОџжэОџмюХџпяЪџйэТџгщМџЯхЙџЭрЙџ’’~џG9+џ5)џA;%џ/!џ3)џJO.џr[џ‹ЗvџšЦ…џ˜Хƒџ‹Нuџ…Иpџ–Фџ—Ф€џ…Еqџ’Р}џ‚Гnџ†Зsџ„ДpџŠЙuџ}Њhџ˜Оƒџr~Yџ14џFS*џU‰<џtЈaџ€Бnџ}ЏjџАjџsЇ_џАkџ…Жrџ}Аiџ€ГlџvЋbџkЁXџd›Qџ\ˆEџDc+џ6Bџ45џ54џ53џ43џ23џ25џ56џA=#џ89џ џџ&)џXb?џkVџ kџyЇeџy­fџŽМ{џП~џlЄYџuЋaџДnџlЂZџ|Бhџ‡Иsџ†Дsџ_nEџE<'џ`WEџ‹ЃuџŠЙwџ€Бlџ…Еqџ‚ГnџО}џ­Я˜џЛЯЈџrlZџD6.џXNIк””7џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџŒ}{xdROўYEAџЂЂŒџжэСџйэУџйэХџХрЏџвшОџйэХџр№Яџп№ЭџМпЅџМпІџЫчДџлюЧџп№ЫџзьСџжэРџиюСџтёЯџъѓйџйюУџняЦџхђЯџряЩџмэФџнюЧџмюХџзыРџмъЧџкхЦџгсРџˆqџ>5!џ2)џ_dCџŸЖ‰џ}‰dџE@(џ;4џ=; џZnCџŒЖwџ‡Зqџ„ЗoџВlџП{џОyџ€ЏlџŽНzџ…Еqџ—У‚џ€Бkџ€Бkџ}­jџ’Л}џŒŸvџ;9џ>FџUƒ>џc–Nџ}­kџuЊbџwЊcџkŸWџvЈdџ|­iџvЉdџ|­kџqЄ`џ_‰JџCc,џ,;џ&џ',џ:>џJU+џM`2џMa1џL]/џLX-џGO)џCF%џ04џџџ"џ54џ?<"џCC'џFQ,џVn>џzšeџ{Јiџf›SџzЎhџuЉcџoЄ]џzЎgџ~Ўlџi‡TџA>"џF;)џw‡`џ”Оџ‚Бpџ€ЏnџzЋgџ†ЕrџŸЧŠџГгžџНзЊџ‘Ÿ{џLA2џH95џi[]–ЬЬЬџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ yheІR<9џl^RџЪдЖџжэСџкюЧџеыРџУфЌџЭчИџдъРџнэЫџоюЫџПсЉџДиџЬчЖџйэФџкэФџдэПџвьЛџеэНџхђвџшѓзџо№Шџх№бџђѕуџыѓиџчёвџыёиџРУЌџŒ†wџrc]џn`Xџ@4#џ/*џZd?џ“Г|џЁЪŒџЇЭ‘џ|’eџYW=џ=5џ84џd{Jџ~­iџ{Аfџ{Аgџ‚Дmџ‰Йtџ„Дoџ‹Мwџ†Еsџ•С€џ‰Кtџ}Бiџ~Џkџ~ЌlџЉ{џC?%џ4;џU}=џTˆ?џxІfџpЃ^џxЉfџlŸZџrЅ`џwЇeџp ]џfŠSџNe7џ1;џ(џ%+џ.=џFc-џq“[џƒЌpџwЇdџpЁ^џxЈhџ|ЈhџyЅgџrš_џWz@џ6:џ##џ2<џGS*џBD$џ22џ+. џ01џ8;џ>T&џVyDџpŸ`џa—OџsЇcџ~Џmџ‚ЌqџJV.џ?6џhhOџБzџ€ЎnџƒАqџ~­lџwЉdџ’Н~џЊЮ–џВгŸџ›Т‡џІШ’џƒlџSB=џbRTћˆ{{iџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџŸ•’PaOK№N93џ›—…џсёЭџгьМџЮъИџЩшВџНрІџШуГџгъРџмюЫџо№ЫџРрЊџОпЈџащЛџкэХџн№ЧџеэПџЯьИџвьЛџняЫџфёбџйэУџф№дџіїъџдзТџ—’‚џZHBџ<'!џ,џ. џ0'џS]6џЇkџŽНyџЧ‡џ™Х„џ’Р}џŽІyџ_\DџA:#џAD$џu•_џ†ЖqџДlџ€ГkџˆЙtџАkџŒМxџЛyџ‡ЗtџˆЙuџzЏgџВmџyЊgџЂnџLH/џ24џVw?џN€9џpš_џkš[џxЅgџfTџY{DџOe7џ9Jџ-4џ#&џ&)џ(8 џFa,џV@џc˜Oџ†ВsџК}џ~ЏlџsІbџЏnџЏnџ}ЏmџpЄ_џh˜XџDK(џ-0 џLh6џzЄjџЁnџb|Nџ>P&џ49џ20џ'. џ06џBT*џSv?џn™`џxЅiџg„Sџ75џF;'џ€‘kџ†Бuџ|Ћkџ}ЌkџxЊeџ…ЕsџЦŠџЋЯ˜џЃЩџŠИvџЏЯ›џИРЇџP@<џ5!"џB.+ДYKK%џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџaOM€T?;§aMHџЌЋ˜џсяЭџШшВџОуЇџПтЈџЙс џХцЏџЫшЕџо№Ъџт№ЯџУсЎџЕлžџУуЎџйэХџняЧџгьНџЭшЕџЬщЕџоюЬџъѓкџЬйЗџЃžџn\XџP;5џN83ћQ=7њ8)џ;1џTb8џƒЊlџŠКuџ‹МuџЄЭŽџœЧ†џ‘П|џ—П‚џ‘hџHB,џA<"џdtIџ‘Н|џŠЛvџЕlџˆЙtџ~АjџˆЙuџН{џ~Џjџ‚Гnџ}АiџВmџzЊgџ„ЈrџUQ:џ3/џMg7џJy7џTyEџHc5џFU,џ1:џ)/џ,/ џ*.џ+1 џ4?џE\+џOz;џa“Oџ]’Iџa–Nџ{ЊjџКџ|ЌjџxЇfџК~џАoџzЌiџoЃ^џh—Vџ@H$џ)0 џRn;џ‚­sџŽЗ~џЋoџh™XџiŒVџTh?џ/<џ&* џ"'џ*3 џ>J#џO`9џ9@"џ+!џF>,џoYџl‹Wџtaџ}ЊjџАlџ”Пџ™У…џœФˆџ™Х…џ•ТџЩрЖџЌЊŸџ;-,џ)џ8%$НVDD8џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџИЊЊjXUžYD@џbPJџ šŠџЯнЛџЫшЖџНсІџЕпœџВн™џЏм—џРтЉџйюЦџпяЭџУу­џБм›џХхБџлюЧџр№ЮџЭшЙџЫчЕџИЫЁџš–…џodWџI8,џK50єQ:5Ђ|mi{yidнH:,џYc=џ{ЄdџНwџ”Фџ™Шƒџ—Ц‚џ˜ХƒџЧ‰џ”Р€џ“НџhrPџE<&џJH,џŸhџ–У€џ†ЗrџŽН{џ†ЕsџАoџŒЛzџБnџ~ЏmџwЈdџ­mџzЅjџxŸiџVY?џ3+џ:F&џ4Mџ'3џ%(џ+. џ*/ џ-7џ6DџDX)џYxBџi’VџnŸ]џ`•Oџb—Oџ[‘GџiœWџwЉfџŠЖyџ~ЎlџvЈeџ‹ЗyџyЋhџ}ЏmџqЅ`џe“Qџ;Bџ%/ џWtBџ‡ВxџŠД{џyЈiџhšXџЌoџtЁeџd‹TџRj<џ0=џ(0 џ+. џ() џџџ) џ20џ66џDJ'џSf9џjˆUџ†Љqџ†Гsџ‰ЗvџŽНzџЋа—џКОЉџk]]џ@00џ@..м9&&5џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџœ‹‹_KHžP<8џP<8џvkџЗЗЂџвнНџЪхДџКпЁџЇзџЁг‰џЋи•џНнЉџЧфВџЕмžџЋж”џЗнЁџЬцЙџЧнВџ Ћ‹џeaLџG5)џRA7ѓZE>ЗUA5 џYaAџs“_џx˜eџqŒ]џ_pHџQX7џMK2џ;:џB@"џhzOџЂЧŽџ”|џO>>џT@@џxigЇяяч џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџтЦЦ roNvfcЄ^KHщP<;ѓU@>џZEBџbPKџeVNџlbTџqnXџmkTџedNџ_^FџUQ:џB7&џ;.њF3+гO=5Q66џџџџџџџџџЊЊЊXGD‡3" џ;-%џR\7џzœcџДjџ‡Лsџ—Цџ–Ф€џ›Щ…џ–Цџ–Ц~џ•ХџŠКuџjŠVџEC(џ>:џlwRџ‘К}џ}ЏjџˆЕvџyЉgџ}Њlџ„Ўtџq‘_џPc6џ:=џ75џ:7џ0.џ  џ**џKn3џR†:џ_”MџnЂ]џvЇdџmЁZџa˜QџgVџnЂ\џqЂ_џqЄ`џešSџg™TџP†8џf™RџyЋgџzЌhџБoџМ}џМzџН}џƒДqџk Zџn˜]џ>D"џ-4 џ^yIџ‡ДwџƒВsџgWџoЃ_џvЉfџtЈdџe™Sџ_•Mџk [џ{Ћlџo˜_џCF'џE?&џm„Xџ‡ГvџƒБsџƒАrџ…ВuџŸОџІ|џZiAџA>!џKH.џt{^џg]TџO=;џn][аОДА7џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџччч |ll/aPPLaPN{iVUБgURы[JEјYEBќUA>џQ>:џYEBџ_LGџgTM§fULоP@7oM66!џџџџџџџџџџџџџџџЯУУ+yhež\KFџF;+џb^Iџr”]џyАdџЖjџŽСxџ•Хџ›Щ†џ•Цџ”Х~џ’У|џ‚БoџWh>џF>&џHF*џ…pџ}­jџˆГwџyЁhџk‹YџZlDџCH'џ64џ76џGM+џbrJџh|RџF?(џD>&џRt<џQ‡9џa—Oџf›SџwЈgџwЉeџjžYџhœVџpЅ^џoЂ^џtІaџpЄ^џkŸWџXAџiUџvЊcџvЉdџŠЙxџ”Р€џŽН{џО}џ|АkџmЃ[џvŸdџHM,џ48џ]xIџ…Гuџ{Ќkџb™RџsІcџvЉfџwЋhџgWџcšSџtІcџƒЕsџd‡Qџ<;џIF-џ|œkџИ}џ†Дwџ‡Жvџ‘Н€џЗеІџ Фџ‘И~џr‡[џVT=џL?6џN=<џ\JGеnnZџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЙЂЂ “z4wf_K|ieoŠytЂ…srЎ…uq~zyšŠ…eŸ8џџџџџџџџџџџџџџџџџџџџџџџџџџџѕѕѕ„up–cTJўVA<џ[YCџjTџxАaџŒРvџ‡Мrџ’С}џ˜Ч‚џ™ЩƒџТ{џ…ЗrџkVџGC*џ>8џovVџw‘aџ^pHџNX7џ>A"џ87џ;:џSV6џZrCџq˜]џŒИyџˆАuџTW8џB;#џLc4џU‹=џgTџ`–MџuІdџ|ЎkџjžXџjžWџsЉbџrЇbџ†Еtџ‡ЕtџmЃYџ]•Eџi UџrЇ_џ{Аhџ•У‚џŽН{џ…Зqџ‰Кvџ|БkџsЈ`џ|Єjџ@G%џ27џ`{Jџ†ЕxџrЇaџdœSџxЌgџvЊeџnЅ^џh YџhŸXџwЉgџАoџ[uEџ@;!џQT8џ†ЋuџŠЗzџˆИwџˆЙvџЅЬ”џЎбџ•Рƒџ—У…џ–Р„џy†eџ:,'џH42ћaNLkџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ№„qm…gQNљVB>џXW?џiQџzБdџ†МpџŒОwџС{џ•Ц€џ—Шџ—Цџ|ЅgџKL1џ2(џ3*џGA*џ:8џAA$џ<@џIS.џ`wIџŠЌtџ~ЎlџuЈbџ‡ЗtџˆЗsџ\oDџB;$џHS.џ[ŒGџmЂ\џhŸVџuЇcџ{ЋjџqЄ`џk ZџqЇ`џrЈaџН~џМ|џnЄ\џd›OџqЈ^џw­cџ†ИqџšЦ…џ•УџПyџОyџ‚ЖpџuЉbџy eџ8Aџ2;џh‡QџƒЕrџlЃZџdžTџrЉaџkЁZџfUџpІaџrІbџwЋgџxЊhџSc<џ@:"џXaBџ‰ЕxџŠЙyџ‰ЛxџŒМzџЊб˜џšХˆџ“Рџ‘Рџ ЦŽџˆuџC1.џE1/УY??џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџgRP{_JHќZFBџcdJџq›[џ{Вeџ“Х|џ‹ПvџœЪ†џЂЫ‹џ‹Ѓsџ\hCџ90џ) џ+#џJJ0џT_<џ[rDџa…LџvЁbџyЊfџ”С€џŒЛyџxЌdџВlџ‡Зsџs]џI@.џCE(џR|<џb–PџoЅ^џxЋgџВoџuЉcџkЁXџvЋcџnЃ[џ“ПџšХ‡џtЈ`џhžSџv­cџ‚Еnџ’С|џЪ‡џ Ъ‹џœШ‡џ‘С~џ‡Лtџ{Бiџx eџ6@џ5?џjŒTџ~ВlџkЃYџiЂYџtЊbџh Vџh VџuЋeџrЇbџ~БlџyЉhџPX8џE=)џapKџ‹ЛyџŠЛxџ…Иsџ˜Ф…џІЯ’џП|џО|џ•УџЋЩ›џumbџWC?џiXU™ЊЊЊџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ …utžeROџ`MGџnuUџ€АhџЫ…џ•Рџ…œmџipQџSI;џQG;џJA1џ;0 џGB-џw`џ“Л~џyЌeџrЈ_џ€ГlџДnџОyџС{џ{Џhџx­eџВlџІkџOK4џB>&џQs9џjЁWџuЌdџtЊcџБlџvЋdџkЂYџrЉ`џoЄ\џ•С‚џЁЬџyЌfџeœPџuЋaџˆКuџ“Ф~џЫ‡џЂЭŽџЬˆџТ}џ‘Т~џ‚ЖqџxŸfџ:C!џ'џi€Tџ‹Нyџ„ЗrџˆЛuџЇа”џŸЫ‹џ™Ш„џ•Хџ—Х…џЄД•џdUQџdQNњ‰zwbџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџржб2…spХePMџdPKџ‚iџ…›mџejKџME4џUK<џf`Nџ†iџ€‹jџUK<џPI7џy™dџ™Ч†џŠМvџzЏfџ‡Лtџ…КrџƒЗoџ•Х€џ‡Иtџ{ЏgџГmџ„ВqџY^AџG?+џLa3џl Zџw­fџuЋcџГmџxЌeџmЃZџsЈ`џrЇ`џЛyџ˜Хƒџ}АjџlЃWџyЎeџŒМxџ“У~џ™Ш„џšЧ†џšЪƒџ—Ч‚џТ}џ„Иrџu˜aџџ\GEŒџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€nl™]KGџOB3џi„NџŠНrџ’Ф{џЁЯ‰џžЮ…џŸа‡џu‹[џID*џME/џ}–eџТzџСxџrЉ\џ}Дhџ|ГhџzГgџŒТyџ‹Сvџ€Зlџ†КpџŒНwџerNџJE2џ^`GџzЃfџ{Њfџz gџd„Oџ^{Hџ^xJџVm?џWjAџboLџXdBџU`?џ^fGџ_bGџddJџaaFџ]`Cџ\^CџMP3џLH4џ32џ++џ13џDF)џEG-џEI0џFH0џIH1џNM5џRU:џ`oIџpŽ[џr‡\џIG0џGI.џn•ZџУzџŸЯ‹џ›Э†џœЭ†џ•Ш~џ˜Ц„џ’Ѕ€џcTOџ^IDу`LH5џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ–„UfSQљS@9џ[f@џ…Жnџ›Ы„џ˜Ъџ™Ъ‚џ›ЪƒџЖyџU\7џE=$џ\bBџ…ЏpџŒОxџwЋaџqЉ\џ|Дhџ~ЖjџƒИoџŽУwџzАeџ~ДhџСwџƒœmџRF<џI>2џOU9џKT5џHJ1џ=>#џ<@"џCF,џ@C(џBC(џJG0џED*џAC(џGF-џLG2џKG-џHE+џMJ/џSS8џLR6џTT<џ12џ&) џ17џKW1џKY3џN^8џSb=џY`CџMQ6џEI,џEI+џNN5џHD.џA9(џOS8џ}ЌiџЮ‡џŸЯŠџœЭ…џ™Ы‚џ•Ч€џœУ‰џzygџYECџp\ZЮІ››џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџвУУxheМUA<џOF3џm”Wџ”Т~џ“Ф}џ–ЧџСwџ”Т}џw\џA;џKA-џp…XџС{џ‹НuџlЃVџpЈ[џv­dџw­dџ‡Лrџs ]џhŽOџf€Nџ`jHџ;/%џ/$џ4,џ=?#џEJ.џHO/џDP*џN\6џK]3џHZ.џ\iDџ_pGџTh=џ^pGџy‡`џpƒVџsŠ[џrXџt™]џzЃeџˆЉqџGS-џ19џQi8џ{ЋfџtІaџuЇcџ~ЏkџИ{џs™_џ_KџYjCџJN0џ/*џ,#џ@C'џp•Zџ’Х}џ—Щ‚џŸЭ‰џ•Шџ”Ф€џ‚•oџYJEџ\HFяq_\nџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџˆvttXFBўR>6џdtKџ‰ЗtџОzџŠМuџŠМsџŽПxџ‘К{џQ[3џB9!џPO3џЅiџ‘С|џqІ[џh SџtЉbџdŽNџXoBџGO-џ;?џ>>!џEA)џ;4!џ,"џ;5!џQa:џfSџt `џoZџqЁ[џg™Rџf˜QџyЊfџВmџzЎgџ…ЖqџЉг”џ™Ц‚џŒНvџРuџ‰Оsџ†Лqџ…ГpџEP(џ4=џ_}IџЕlџrЈ^џ€Еkџ‘Т}џ—ХƒџuЊ_џv­cџˆЖuџ`vKџ73џ)%џ56џHP.џpŠXџœЧ…џЫ†џŒСwџ‰ЎvџedPџVCAў_IFƒџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџИ­Ј/yheп^JFџTK8џlUџ”РџŒКvџ‰Лsџ“Т}џ‹Кvџj‡Qџ;8џ?5џYk?џ‡Жsџ|­fџS€=џIc2џ0;џ(- џ34џ8@џ>M!џXk>џdyKџPO8џHA+џZh?џvЇbџ|АgџuЋbџnЄ[џhUџhTџx­eџ}БiџuЉcџЏlџЃЭŽџРxџ„ЖoџСzџ‰ОtџˆНsџ€Їkџ:Cџ/;џc…NџzЎfџrЉ]џ~ДjџŒОyџyЏeџbKџtЋ_џРzџUh<џ>;#џ=@%џLX4џFG,џAA$џcrJџ†Ўpџ†ЖsџgtSџSD=џ[GEЗ\EE!џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ‰yu„]IGўS?8џXe?џŠИwџМzџƒЕnџО{џЏmџl—WџN_4џ8/џBB#џk†Tџ_tFџ*7џ'џ)3џ=P%џSo<џ`‰Lџf—PџyЌcџ}Џhџi|Sџ=8џDF$џl’VџhŸQџnЅXџgSџ`•Mџ[‘GџoЃ[џzЏeџy­eџsЅ_џ–Фџ„Жnџ…Еoџ–У€џ‰МvџŽПyџt[џ07џ0?џi“TџiЁVџoІZџyАdџv­`џg Qџ^—GџxЏbџtœ]џ5>џ55џYoCџrœ`џdvMџ@C#џ==џl„Tџi‚TџA7,џN;9бWC?LџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЭРК)ufcЪR?;џF<(џmŠWџ“ПџŒЛvџ‹ЙuџŽЛyџsœ]џWuAџ1*џ! џ# џ-)џ%, џ1KџLq7џ`KџUˆ@џc–Pџ^“Iџd™Mџl Yџo•[џBE&џ==џb{IџfPџlЃXџfQџgRџ`—LџrЅ_џwЊdџwЌbџmЁXџНzџБiџ†ИqџНxџ‹МwџЂЫŽџdrKџ+6 џ8NџiœUџcšNџqЅ[џoІYџjЄTџdOџbšLџ…КoџWr=џ,0 џAD#џr˜]џ‡ИsџЕzџ^xHџ@G$џMT5џA?-џ=0)ОK95Gџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџzp]LI§J:/џ^fDџ’Ж~џ›Ф…џ‘Лzџ’Ж|џƒlџQ^:џџ џ џ6@џKm2џI|1џR„=џ]IџL~6џ^’Jџg›Sџg›RџlŸXџp \џOZ6џ:4џQ_5џlŸXџešRџižUџoЅZџYCџhžRџpЅ]џmЁXџa–Lџ}ЎjџvЋaџƒЕmџРzџŠКuџ›О†џNT2џ+4 џD`)џjŸWџ^“FџfNџdžMџf Pџ]•Gџa—IџršYџ9Cџ-.џRc8џБmџДmџ{Ўfџ{Њhџl‡Xџ?B*џ-!ф8)%Dџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџщпп{kk­O>9џ3(џBE+џU_9џKS.џLL.џA;"џ31џ??"џ2,џ(& џDT)џnZџS‡=џN7џSˆ=џK€4џXŒBџsЄ_џ|­hџuЇ_џsЅ^џdyMџ?7џLP,џoœ\џb—Nџa–LџhTџ`—Lџj SџrЇ_џfšQџf›SџvЌbџpІ[џzЏeџПxџ„Дoџ‰Ѕtџ:?џ.7 џCj(џV?џR‹7џ[–AџdŸLџf PџW@џpЄYџWo<џ(0 џ8>џgŠPџ„ЕoџwЌaџvЋ`џuЅ_џO`7џ,#џ3&#џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџŽŠD`RQх%џ$џ62џB?$џIG)џUW:џl~Rџ{ eџ]qBџ32џ53џ\sCџ`“IџJ-џP†5џT‹>џN…7џlЂYџ€БlџpЃZџešOџ`Jџ85џA@ џcˆMџ]”GџYBџ[FџR‰<џXŽAџjŸYџa—Kџd˜OџiЁTџpЇ[џyЏeџˆИrџАkџm„Yџ+2џ0;џHx.џNˆ2џR‹4џ^˜CџjЃTџbœMџ\•GџiŽSџ8=џ%+џG_/џ~ЎlџyЌdџlЄWџsЇ^џRl8џ3-џ4'&м=-32џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџvtŒN><џG61џLL0џ{“cџБyџŠГuџ›У†џ•Р€џyЃcџKV.џI<*џQK5џe‹NџT‹;џS‰;џ^”JџUŠ=џ_–Iџ~АiџvЈbџhžSџf“PџEG)џ?: џZvAџd›NџUŠ@џXCџT‹>џ\‘GџiVџ[“DџdœMџ_˜JџkЂVџy­eџˆЗsџ|ЋgџN^6џ'0џ?O#џL€3џG€)џV‘;џlЃTџkЂUџV‘>џe•QџQ_3џ(*џ0;џgŽRџxЋdџjЁRџƒЕmџc€Jџ<;џ4*"ќ>/1wџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџжаЪ,poКYGEџM@1џgyLџ“Р{џ‹НuџŒМvџ“П~џ‘О{џjŠPџWO:џRA7џ^fEџd”Nџ\“GџfSџZ‘AџXŽ?џzЌeџ„Гqџl Wџ\‘EџLX0џC9$џ^jBџoЂ[џXŽAџK„0џM‚4џb•Nџl [џ`˜JџhŸQџkЁWџuЊ`џxЋdџ†Жqџm’Wџ:Bџ(0џHe.џG+џB{#џZ”@џrЇ_џZ“BџS:џNj6џ,. џ+/ џQn9џvЊcџiŸRџ{Ўeџ{œdџCF%џA5*џRHHоtmm#џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџФМИAyiiЯRA<џRE7џ{‡bџ‰Гrџ…Йpџ„Зnџ˜ФџЄЫџuƒ\џL@0џTC:џ_rIџ\FџižRџdœLџZ‘CџlЂVџ~АjџsЈ^џZ‘AџNh2џK<-џ]ZBџl›XџZ‘CџI‚/џG-џ^”IџižVџlЂXџrЈ^џkЂWџkЁVџwЉcџ‚АmџPd6џ'. џ(8 џM{6џE}*џI-џkЁUџpЃ\џY‘CџX„Cџ\$џX‘@џ?y$џW>џvЉcџhŸTџ[“FџI`0џ.,џ#*џLo1џrЅ^џmЂYџ’К}џn}Wџ71!џM><џ~nnƒџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ Q€pnОbNKџ^ICџeaKџl‡Tџ…Дoџ›Ш„џЋа•џ~œgџTY9џRE6џSN;џj‡TџsЈ_џpЇ[џiЂRџpЈYџuЋ`џrЈ_џ^GџBI#џN=0џhyRџm Zџ]“IџP…;џ`•LџoЃ\џ}ЎiџˆЙsџ{ЏgџrІ^џn ZџN`2џ)/ џ*>џR9џV<џBy'џgœRџvЉcџd›PџIk0џ15џ))џ@U$џb—KџkЁVџsЇ_џz’aџ32џ<2,џmc_Ўѓччџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџпйг)‚qn‹p\Zю_KHџ\OBџlxSџŠЌsџЅЮŽџšФƒџ{˜eџNP2џPB5џd\Kџl‰Vџw­aџpЈ\џvЋbџxЎdџ|Бiџk SџNf2џF9(џ^^EџmšYџ_”JџO‡9џ]•HџkЁXџwЊcџ…Зpџ~ВjџyЎdџ^Gџ7:џ+3 џ@c(џ]–EџU;џI/џc™OџkЁYџNp5џ,6џ,-џBO'џdŽNџkЃWџiŸTџm—Zџ?G&џ5-џg_UлЊЊ”Hџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ‹~{]vcaТhROўaSGџkhQџ›Ѓ‚џЖгџЄЯŽџw“_џRS8џXH=џ_XFџkŠUџy­cџuЊaџzЏeџЕlџtЊ^џ]†Fџ>:!џRH6џmXџhœUџRˆ>џZ‘Bџi Tџ|Ўiџ‡ИsџˆКtџЎkџJZ/џ30џ7GџW‰@џdžNџ\•GџXBџgžTџWx?џ.5џ$(џ>L$џb‰MџkЁTџk Uџ^HџN^8џ3,љNB8Ц„wq^џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџХПИ(}lh†sa\я`OGџhTMџ„{jџ›wџ›М„џ}—eџWW=џWH>џ\VEџz“dџ}БiџxЎdџv­aџrЈ]џmžWџ>F#џE;)џbxLџvЉeџY‘EџV=џj Tџ‚ВmџŽМzџŽНyџi„Qџ:8џ64џGk*џ`™IџjЃWџkЅXџi TџFm.џ-:џ'*џ=H"џk‘UџlЄXџoЄZџm˜WџL\9џ>5+ўB6.ƒG=3џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ”‡„b~jgТoYSќhQMџbMHџtnZџŠžsџ|–dџVY=џUH=џgYOџnXџwІcџz­eџrІ_џsЈ_џYn@џD<)џYa?џuІaџ]”FџW>џb›MџНzџœШ‡џ€ЅlџRW5џ<9џN\1џ^‘GџrЇ_џtЉbџcOџPk8џ(5 џ%,џџYIDџbkMџp‘Zџ€БkџwЏbџr”\џGB,џHK-џk–Tџb™Mџ\•DџmЃVџЄЭџ•Л€џXk@џ87џ=D!џcˆIџeœMџp˜[џRk;џ6Bџ+2џ(1 џAX(џj”TџxЏcџi•Tџ\oGџKE7џPB=џUC?и]HFbџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЬПИ(‹wq€u`]еfPMџ_LHџa]MџgjRџdaMџ`NIџWG?џQL8џirPџqXџ{ІdџRU9џ>9"џZsAџjЁVџdNџxЎ`џ“Й~џ\pAџ11џ22џYt@џk“RџQj6џGI+џ+/џ-3џCR*џY}BџnЁXџl“VџYmEџSTCџNA>џVDAї_KFЃaKGDџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЄ˜”>olЌhVTјaLHџ]JCџ`QFџiTOџgROџ`MHџ[JAџXN=џ_kEџTZ9џ<6џBJ&џ]‰Fџa“Jџh‹OџZc>џ75џ1.џIL-џWh=џ:?џ50џ73џ?N%џ\yDџ~ЁiџgŠOџQg9џJK3џJ@5џRB?§XDCСbNHb???џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџссвŒzz`vcbГhTQѕ_IFџcLIџ_IHџfPMџaLHџWE?џOB4џakGџFG-џ3)џJW/џ9Hџ10џ.%џ71џ=4!џ;/ џ/"џ' џ1(џ97џT`>џWd@џX\AџFF.џMF7џVJAё]LGЗbOLjdQHџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџШЖЖŠwtSzgeЈo[ZѕYGIџ[JKџWGGџK::џO=<џedPџMK6џ8+џIA/џ/(џ, џ:) џK>1џE5/џ1!џ4'џ5,џ) џ/%џK@8џLG8џWQCџg[Pіp`YМhVOSUDDџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџдПП ”…‚V€mjЁvc`зiTQп[HFпYFFп]LKпXJCпI=5пI>5пC40пF65пL:;пRA@пN=>пQ@=пYKEпRK9м6.кC6.мj\Vм|vhЦ‹†x’Ћ›•RПЗЗ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЯџџџџџџўџџџџџџџ€џџџџРџџџџџџџџџџџџџџџџџџџўџџџџџўџџџўџџџџџўџџџќџџџџџўџџџўџџџџџўџџџўџџџџџўџџџўџџџџџўџџџўџџџџџўџџџўџџџџџџџџџўџџџџџџџџџўџџџџџџџџџўџџџџџџџџџўџџџџџџџџџўџџџџџџџџџўџџџџџџ€џџџўџџџџџџ€џџџўџџџџџџ€џџџўџџџџџџ€џџџўџџџџџџ€џџџў?џџџџџџ€џџџў?џџџџџџ€џџџўџџџџџџ€џџџў?џџџџџџ€џРў?џџџџџџ€?№џџџџџџ€?џџџџџџ€џџџџџџ€џџџџџџ€џџџџџ€џџџџџ€џџџџџ€џџџџџ€џџџџџџџџџџ№џџўр?џўРџќ€№?€џџџџџџџџџ€џРџРџрџрџ№џјџќ>џџ|џџ№ўџџџџ?џџџџџ€?џџџџџр?џџџџџрџџџџџ№џџџџџјџџџџџјџџџџџџќџџџџџџќџџџџџџўџџџџџџўџџџџџџџџџџџџџџџџџџџџџ€џџџџџџџ€џџџџџџџ€џџџџџџџР?џџџџџџџрџџџџџџџрџџџџџџџ№џџџџџџџџ№џџџџџџџџјџџџџџџџџќџџџџџџџџўџџџџџџџџџџџџџџџџџџ€џџџџџџџџџрџџџџџџџџџ№?џџџџџџџџџќџџџџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџрџџџџџџџџџџџјџџџџџџџџџџџўџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ