From 39dab8c3c0758008eacc65f4dffd2492799da249 Mon Sep 17 00:00:00 2001 From: feiyangqingyun Date: Thu, 24 Dec 2020 18:00:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- battery/battery.cpp | 69 ++++++++----- battery/battery.h | 105 ++++++++++---------- buttondefence/buttondefence.cpp | 2 +- buttondefence/buttondefence.h | 14 +-- buttondefence/frmbuttondefence.cpp | 19 +--- buttondefence/frmbuttondefence.h | 2 - buttondefence/frmbuttondefence.ui | 36 ------- buttondefence/main.qrc | 5 - colorwidget/colorwidget.cpp | 19 ++-- colorwidget/colorwidget.h | 8 +- countcode/frmcountcode.cpp | 9 +- countcode/snap.png | Bin 0 -> 112587 bytes devicesizetable/devicesizetable.h | 16 +-- flatui/flatui.h | 24 ++--- framelesswidget/framelesswidget.h | 18 ++-- gifwidget/gifwidget.h | 18 ++-- imageswitch/imageswitch.h | 12 +-- ipaddress/ipaddress.cpp | 12 ++- ipaddress/ipaddress.h | 20 ++-- lightbutton/lightbutton.h | 28 ++---- lunarcalendarwidget/lunarcalendarinfo.h | 18 ++-- lunarcalendarwidget/lunarcalendaritem.h | 8 +- lunarcalendarwidget/lunarcalendarwidget.cpp | 6 +- lunarcalendarwidget/lunarcalendarwidget.h | 26 ++--- maskwidget/maskwidget.cpp | 4 +- maskwidget/maskwidget.h | 18 ++-- navbutton/iconhelper.h | 6 +- navbutton/navbutton.cpp | 1 + navbutton/navbutton.h | 24 ++--- ntpclient/frmntpclient.ui | 2 +- ntpclient/ntpclient.h | 14 +-- savelog/savelog.h | 8 +- saveruntime/saveruntime.cpp | 9 +- saveruntime/saveruntime.h | 8 +- screenwidget/screenwidget.h | 14 +-- videopanel/videopanel.cpp | 2 +- videopanel/videopanel.h | 8 +- videowidget/videowidget.cpp | 6 +- videowidget/videowidget.h | 13 ++- zhtopy/zhtopy.h | 14 +-- 40 files changed, 243 insertions(+), 402 deletions(-) create mode 100644 countcode/snap.png diff --git a/battery/battery.cpp b/battery/battery.cpp index 8a5a909..9ef0ab1 100644 --- a/battery/battery.cpp +++ b/battery/battery.cpp @@ -13,6 +13,7 @@ Battery::Battery(QWidget *parent) : QWidget(parent) alarmValue = 30; step = 0.5; + borderWidth = 5; borderRadius = 8; bgRadius = 5; headRadius = 3; @@ -57,15 +58,15 @@ void Battery::drawBorder(QPainter *painter) { painter->save(); - qreal headWidth = width() / 10; - qreal batteryWidth = width() - headWidth; + double headWidth = width() / 15; + double batteryWidth = width() - headWidth; //绘制电池边框 - QPointF topLeft(5, 5); - QPointF bottomRight(batteryWidth, height() - 5); + QPointF topLeft(borderWidth, borderWidth); + QPointF bottomRight(batteryWidth, height() - borderWidth); batteryRect = QRectF(topLeft, bottomRight); - painter->setPen(QPen(borderColorStart, 5)); + painter->setPen(QPen(borderColorStart, borderWidth)); painter->setBrush(Qt::NoBrush); painter->drawRoundedRect(batteryRect, borderRadius, borderRadius); @@ -74,6 +75,10 @@ void Battery::drawBorder(QPainter *painter) void Battery::drawBg(QPainter *painter) { + if (value == minValue) { + return; + } + painter->save(); QLinearGradient batteryGradient(QPointF(0, 0), QPointF(0, height())); @@ -86,10 +91,10 @@ void Battery::drawBg(QPainter *painter) } int margin = qMin(width(), height()) / 20; - qreal unit = (batteryRect.width() - (margin * 2)) / 100; - qreal width = currentValue * unit; + double unit = (batteryRect.width() - (margin * 2)) / 100; + double width = currentValue * unit; QPointF topLeft(batteryRect.topLeft().x() + margin, batteryRect.topLeft().y() + margin); - QPointF bottomRight(width + margin + 5, batteryRect.bottomRight().y() - margin); + QPointF bottomRight(width + margin + borderWidth, batteryRect.bottomRight().y() - margin); QRectF rect(topLeft, bottomRight); painter->setPen(Qt::NoPen); @@ -122,13 +127,11 @@ void Battery::updateValue() { if (isForward) { currentValue -= step; - if (currentValue <= value) { timer->stop(); } } else { currentValue += step; - if (currentValue >= value) { timer->stop(); } @@ -137,31 +140,36 @@ void Battery::updateValue() this->update(); } -qreal Battery::getMinValue() const +double Battery::getMinValue() const { return this->minValue; } -qreal Battery::getMaxValue() const +double Battery::getMaxValue() const { return this->maxValue; } -qreal Battery::getValue() const +double Battery::getValue() const { return this->value; } -qreal Battery::getAlarmValue() const +double Battery::getAlarmValue() const { return this->alarmValue; } -qreal Battery::getStep() const +double Battery::getStep() const { return this->step; } +int Battery::getBorderWidth() const +{ + return this->borderWidth; +} + int Battery::getBorderRadius() const { return this->borderRadius; @@ -217,7 +225,7 @@ QSize Battery::minimumSizeHint() const return QSize(30, 10); } -void Battery::setRange(qreal minValue, qreal maxValue) +void Battery::setRange(double minValue, double maxValue) { //如果最小值大于或者等于最大值则不设置 if (minValue >= maxValue) { @@ -240,20 +248,20 @@ void Battery::setRange(qreal minValue, qreal maxValue) void Battery::setRange(int minValue, int maxValue) { - setRange((qreal)minValue, (qreal)maxValue); + setRange((double)minValue, (double)maxValue); } -void Battery::setMinValue(qreal minValue) +void Battery::setMinValue(double minValue) { setRange(minValue, maxValue); } -void Battery::setMaxValue(qreal maxValue) +void Battery::setMaxValue(double maxValue) { setRange(minValue, maxValue); } -void Battery::setValue(qreal value) +void Battery::setValue(double value) { //值和当前值一致则无需处理 if (value == this->value) { @@ -272,21 +280,24 @@ void Battery::setValue(qreal value) } else if (value < currentValue) { isForward = true; } else { + this->value = value; + this->update(); return; } this->value = value; this->update(); emit valueChanged(value); + timer->stop(); timer->start(); } void Battery::setValue(int value) { - setValue((qreal)value); + setValue((double)value); } -void Battery::setAlarmValue(qreal alarmValue) +void Battery::setAlarmValue(double alarmValue) { if (this->alarmValue != alarmValue) { this->alarmValue = alarmValue; @@ -296,10 +307,10 @@ void Battery::setAlarmValue(qreal alarmValue) void Battery::setAlarmValue(int alarmValue) { - setAlarmValue((qreal)alarmValue); + setAlarmValue((double)alarmValue); } -void Battery::setStep(qreal step) +void Battery::setStep(double step) { if (this->step != step) { this->step = step; @@ -309,7 +320,15 @@ void Battery::setStep(qreal step) void Battery::setStep(int step) { - setStep((qreal)step); + setStep((double)step); +} + +void Battery::setBorderWidth(int borderWidth) +{ + if (this->borderWidth != borderWidth) { + this->borderWidth = borderWidth; + this->update(); + } } void Battery::setBorderRadius(int borderRadius) diff --git a/battery/battery.h b/battery/battery.h index 5f92fe5..7df5486 100644 --- a/battery/battery.h +++ b/battery/battery.h @@ -14,25 +14,20 @@ #include #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT Battery : public QWidget +class Q_DECL_EXPORT Battery : public QWidget #else class Battery : public QWidget #endif { Q_OBJECT - Q_PROPERTY(qreal minValue READ getMinValue WRITE setMinValue) - Q_PROPERTY(qreal maxValue READ getMaxValue WRITE setMaxValue) - Q_PROPERTY(qreal value READ getValue WRITE setValue) - Q_PROPERTY(qreal alarmValue READ getAlarmValue WRITE setAlarmValue) + Q_PROPERTY(double minValue READ getMinValue WRITE setMinValue) + Q_PROPERTY(double maxValue READ getMaxValue WRITE setMaxValue) + Q_PROPERTY(double value READ getValue WRITE setValue) + Q_PROPERTY(double alarmValue READ getAlarmValue WRITE setAlarmValue) - Q_PROPERTY(qreal step READ getStep WRITE setStep) + Q_PROPERTY(double step READ getStep WRITE setStep) + Q_PROPERTY(int borderWidth READ getBorderWidth WRITE setBorderWidth) Q_PROPERTY(int borderRadius READ getBorderRadius WRITE setBorderRadius) Q_PROPERTY(int bgRadius READ getBgRadius WRITE setBgRadius) Q_PROPERTY(int headRadius READ getHeadRadius WRITE setHeadRadius) @@ -60,74 +55,78 @@ private slots: void updateValue(); private: - qreal minValue; //最小值 - qreal maxValue; //最大值 - qreal value; //目标电量 - qreal alarmValue; //电池电量警戒值 + double minValue; //最小值 + double maxValue; //最大值 + double value; //目标电量 + double alarmValue; //电池电量警戒值 - qreal step; //每次移动的步长 - int borderRadius; //边框圆角角度 - int bgRadius; //背景进度圆角角度 - int headRadius; //头部圆角角度 + double step; //每次移动的步长 + int borderWidth; //边框粗细 + int borderRadius; //边框圆角角度 + int bgRadius; //背景进度圆角角度 + int headRadius; //头部圆角角度 - QColor borderColorStart; //边框渐变开始颜色 - QColor borderColorEnd; //边框渐变结束颜色 + QColor borderColorStart; //边框渐变开始颜色 + QColor borderColorEnd; //边框渐变结束颜色 - QColor alarmColorStart; //电池低电量时的渐变开始颜色 - QColor alarmColorEnd; //电池低电量时的渐变结束颜色 + QColor alarmColorStart; //电池低电量时的渐变开始颜色 + QColor alarmColorEnd; //电池低电量时的渐变结束颜色 - QColor normalColorStart; //电池正常电量时的渐变开始颜色 - QColor normalColorEnd; //电池正常电量时的渐变结束颜色 + QColor normalColorStart; //电池正常电量时的渐变开始颜色 + QColor normalColorEnd; //电池正常电量时的渐变结束颜色 - bool isForward; //是否往前移 - qreal currentValue; //当前电量 - QRectF batteryRect; //电池主体区域 - QTimer *timer; //绘制定时器 + bool isForward; //是否往前移 + double currentValue; //当前电量 + QRectF batteryRect; //电池主体区域 + QTimer *timer; //绘制定时器 public: - qreal getMinValue() const; - qreal getMaxValue() const; - qreal getValue() const; - qreal getAlarmValue() const; + double getMinValue() const; + double getMaxValue() const; + double getValue() const; + double getAlarmValue() const; - qreal getStep() const; - int getBorderRadius() const; - int getBgRadius() const; - int getHeadRadius() const; + double getStep() const; + int getBorderWidth() const; + int getBorderRadius() const; + int getBgRadius() const; + int getHeadRadius() const; - QColor getBorderColorStart()const; - QColor getBorderColorEnd() const; + QColor getBorderColorStart() const; + QColor getBorderColorEnd() const; - QColor getAlarmColorStart() const; - QColor getAlarmColorEnd() const; + QColor getAlarmColorStart() const; + QColor getAlarmColorEnd() const; - QColor getNormalColorStart()const; - QColor getNormalColorEnd() const; + QColor getNormalColorStart() const; + QColor getNormalColorEnd() const; - QSize sizeHint() const; - QSize minimumSizeHint() const; + QSize sizeHint() const; + QSize minimumSizeHint() const; public Q_SLOTS: //设置范围值 - void setRange(qreal minValue, qreal maxValue); + void setRange(double minValue, double maxValue); void setRange(int minValue, int maxValue); //设置最大最小值 - void setMinValue(qreal minValue); - void setMaxValue(qreal maxValue); + void setMinValue(double minValue); + void setMaxValue(double maxValue); //设置电池电量值 - void setValue(qreal value); + void setValue(double value); void setValue(int value); //设置电池电量警戒值 - void setAlarmValue(qreal alarmValue); + void setAlarmValue(double alarmValue); void setAlarmValue(int alarmValue); //设置步长 - void setStep(qreal step); + void setStep(double step); void setStep(int step); + //设置边框粗细 + void setBorderWidth(int borderWidth); //设置边框圆角角度 void setBorderRadius(int borderRadius); //设置背景圆角角度 @@ -148,7 +147,7 @@ public Q_SLOTS: void setNormalColorEnd(const QColor &normalColorEnd); Q_SIGNALS: - void valueChanged(qreal value); + void valueChanged(double value); }; #endif // BATTERY_H diff --git a/buttondefence/buttondefence.cpp b/buttondefence/buttondefence.cpp index 3d424e8..2abc2eb 100644 --- a/buttondefence/buttondefence.cpp +++ b/buttondefence/buttondefence.cpp @@ -180,7 +180,7 @@ void ButtonDefence::setButtonStyle(const ButtonDefence::ButtonStyle &buttonStyle } else if (buttonStyle == ButtonStyle_Msg2) { type = "msg2"; } else { - type = "custom"; + type = "circle"; } setButtonStatus(buttonStatus); diff --git a/buttondefence/buttondefence.h b/buttondefence/buttondefence.h index c52f103..8c300bc 100644 --- a/buttondefence/buttondefence.h +++ b/buttondefence/buttondefence.h @@ -14,13 +14,7 @@ #include #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT ButtonDefence : public QWidget +class Q_DECL_EXPORT ButtonDefence : public QWidget #else class ButtonDefence : public QWidget #endif @@ -37,16 +31,14 @@ class ButtonDefence : public QWidget Q_PROPERTY(ButtonStatus buttonStatus READ getButtonStatus WRITE setButtonStatus) public: - //防区样式 圆形、警察、气泡、气泡2、消息、消息2、自定义 - //如果设置的自定义的,则图片拓展名 btn_defence_alarm_custom + //防区样式 圆形、警察、气泡、气泡2、消息、消息2 enum ButtonStyle { ButtonStyle_Circle = 0, ButtonStyle_Police = 1, ButtonStyle_Bubble = 2, ButtonStyle_Bubble2 = 3, ButtonStyle_Msg = 4, - ButtonStyle_Msg2 = 5, - ButtonStyle_Custom = 6 + ButtonStyle_Msg2 = 5 }; //防区状态 布防、撤防、报警、旁路、故障 diff --git a/buttondefence/frmbuttondefence.cpp b/buttondefence/frmbuttondefence.cpp index 8b505b9..03cce01 100644 --- a/buttondefence/frmbuttondefence.cpp +++ b/buttondefence/frmbuttondefence.cpp @@ -31,7 +31,7 @@ void frmButtonDefence::initForm() btn3->setText("#3"); btn3->setGeometry(85, 5, 35, 35); - btnStyle << ui->btnCircle << ui->btnPolice << ui->btnBubble << ui->btnBubble2 << ui->btnMsg << ui->btnMsg2 << ui->btnCustom; + btnStyle << ui->btnCircle << ui->btnPolice << ui->btnBubble << ui->btnBubble2 << ui->btnMsg << ui->btnMsg2; foreach (QPushButton *btn, btnStyle) { connect(btn, SIGNAL(clicked(bool)), this, SLOT(changeStyle())); } @@ -50,16 +50,6 @@ void frmButtonDefence::changeStyle() btn1->setButtonStyle(style); btn2->setButtonStyle(style); btn3->setButtonStyle(style); - - if (index == 6) { - btn1->setText(""); - btn2->setText(""); - btn3->setText(""); - } else { - btn1->setText("#1"); - btn2->setText("#2"); - btn3->setText("#3"); - } } void frmButtonDefence::changeStatus() @@ -79,10 +69,3 @@ void frmButtonDefence::on_ckCanMove_stateChanged(int arg1) btn2->setCanMove(canMove); btn3->setCanMove(canMove); } - -void frmButtonDefence::on_btnPoint_clicked() -{ - qDebug() << "btn1" << "x" << btn1->geometry().x() << "y" << btn1->geometry().y(); - qDebug() << "btn2" << "x" << btn2->geometry().x() << "y" << btn2->geometry().y(); - qDebug() << "btn3" << "x" << btn3->geometry().x() << "y" << btn3->geometry().y(); -} diff --git a/buttondefence/frmbuttondefence.h b/buttondefence/frmbuttondefence.h index 0d27758..808eb22 100644 --- a/buttondefence/frmbuttondefence.h +++ b/buttondefence/frmbuttondefence.h @@ -25,8 +25,6 @@ private slots: void changeStatus(); void on_ckCanMove_stateChanged(int arg1); - void on_btnPoint_clicked(); - private: Ui::frmButtonDefence *ui; ButtonDefence *btn1; diff --git a/buttondefence/frmbuttondefence.ui b/buttondefence/frmbuttondefence.ui index 3d0af0d..5e914fc 100644 --- a/buttondefence/frmbuttondefence.ui +++ b/buttondefence/frmbuttondefence.ui @@ -87,13 +87,6 @@ - - - - 自定义 - - - @@ -136,13 +129,6 @@ - - - - Qt::Horizontal - - - @@ -150,13 +136,6 @@ - - - - 坐标 - - - @@ -176,21 +155,6 @@ - - btnCircle - btnPolice - btnBubble - btnBubble2 - btnMsg - btnMsg2 - btnCustom - btnArming - btnDisarming - btnAlarm - btnBypass - btnError - ckCanMove - diff --git a/buttondefence/main.qrc b/buttondefence/main.qrc index 2c02e87..562ef7e 100644 --- a/buttondefence/main.qrc +++ b/buttondefence/main.qrc @@ -31,10 +31,5 @@ image/btn_defence_error_msg2.png image/btn_defence_error_police.png image/bg_call.jpg - image/btn_defence_alarm_custom.png - image/btn_defence_arming_custom.png - image/btn_defence_bypass_custom.png - image/btn_defence_disarming_custom.png - image/btn_defence_error_custom.png diff --git a/colorwidget/colorwidget.cpp b/colorwidget/colorwidget.cpp index 192cadd..557f80e 100644 --- a/colorwidget/colorwidget.cpp +++ b/colorwidget/colorwidget.cpp @@ -105,7 +105,7 @@ ColorWidget::ColorWidget(QWidget *parent) : QWidget(parent) } ColorWidget::~ColorWidget() -{ +{ } void ColorWidget::mousePressEvent(QMouseEvent *e) @@ -128,10 +128,7 @@ void ColorWidget::showColorValue() int x = QCursor::pos().x(); int y = QCursor::pos().y(); - txtPoint->setText(tr("x:%1 y:%2").arg(x).arg(y)); - QString strDecimalValue, strHex, strTextColor; - int red, green, blue; #if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) QPixmap pixmap = QPixmap::grabWindow(QApplication::desktop()->winId(), x, y, 2, 2); @@ -140,9 +137,10 @@ void ColorWidget::showColorValue() QPixmap pixmap = screen->grabWindow(QApplication::desktop()->winId(), x, y, 2, 2); #endif + int red, green, blue; + QString strDecimalValue, strHex; if (!pixmap.isNull()) { QImage image = pixmap.toImage(); - if (!image.isNull()) { if (image.valid(0, 0)) { QColor color = image.pixel(0, 0); @@ -159,13 +157,12 @@ void ColorWidget::showColorValue() } } - if (red > 200 && green > 200 && blue > 200) { - strTextColor = "10, 10, 10"; - } else { - strTextColor = "255, 255, 255"; - } + //根据背景色自动计算合适的前景色 + QColor color(red, green, blue); + double gray = (0.299 * color.red() + 0.587 * color.green() + 0.114 * color.blue()) / 255; + QColor textColor = gray > 0.5 ? Qt::black : Qt::white; - QString str = tr("background-color: rgb(%1);color: rgb(%2)").arg(strDecimalValue).arg(strTextColor); + QString str = tr("background:rgb(%1);color:%2").arg(strDecimalValue).arg(textColor.name()); labColor->setStyleSheet(str); txtRgb->setText(strDecimalValue); txtWeb->setText(strHex); diff --git a/colorwidget/colorwidget.h b/colorwidget/colorwidget.h index faa2934..bc6f927 100644 --- a/colorwidget/colorwidget.h +++ b/colorwidget/colorwidget.h @@ -9,13 +9,7 @@ class QLabel; class QLineEdit; #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT ColorWidget : public QWidget +class Q_DECL_EXPORT ColorWidget : public QWidget #else class ColorWidget : public QWidget #endif diff --git a/countcode/frmcountcode.cpp b/countcode/frmcountcode.cpp index c55a301..197eab8 100644 --- a/countcode/frmcountcode.cpp +++ b/countcode/frmcountcode.cpp @@ -88,14 +88,15 @@ bool frmCountCode::checkFile(const QString &fileName) void frmCountCode::countCode(const QString &filePath) { QDir dir(filePath); - foreach (QFileInfo fileInfo , dir.entryInfoList()) { + QFileInfoList fileInfos = dir.entryInfoList(); + foreach (QFileInfo fileInfo, fileInfos) { + QString fileName = fileInfo.fileName(); if (fileInfo.isFile()) { - QString strFileName = fileInfo.fileName(); - if (checkFile(strFileName)) { + if (checkFile(fileName)) { listFile << fileInfo.filePath(); } } else { - if(fileInfo.fileName() == "." || fileInfo.fileName() == "..") { + if (fileName == "." || fileName == "..") { continue; } diff --git a/countcode/snap.png b/countcode/snap.png new file mode 100644 index 0000000000000000000000000000000000000000..cc8c1e75726ac5cc7dbbca1c71d25bad2cd01beb GIT binary patch literal 112587 zcmV)3K+C_0P)|&2yNn)j1*wrXqO;MVtAne}rKfTS&-Me@1vb%6TxH~gvPW_$s`%atal~-ON>(;Hq z+O=!>??3v7v}{(#oIl;WDJuEhE0ox9y4Rt!2xVmHaQTB4enf1HW7 z9Ct(X>nI;TN&d2`OLr%+2$A^vL`S|+qG8=(Bc+T*=1t^1C%RDv^(aIwvApGtlrj<{ zbEMcck0f1+fQGe1VO(ryhCM)OZIm5~;k5ZKF`a6@x1r&@Z@wQ=z3W`aKMOr(h`dRncJQ43jvVB`; zA~Ew+J6=apr+Hmrd(XC8AGWz)hx}irB!djQ&&Vt7&)KYr>g$uLTNJx-S@9e=I5MMOMlSrOg0`5ZJcvNBFwpOInsNl^;9yJJ4akCG_y~NxV^M%-9Kwxicv_{J_rm=sz3qpLLtCVbd2$(nv;u?Zxi9 zw#8?kZ^p*Yx8Rd?8|&GC)i1=|+qFUM)@}ID(s%IrKdQM|No3MrqJ1PNg_N5#XUaO) zPl+FDj&=j?n1<5Zg)W_Op4qily2xrfqPQ{+(Qe-^$kx{2-)lcZuS36s=UzM$e|h3j zj2}0Sr-`BTlTSY3Gn11iPr?5j_dUF`?BjY1NyV0xHJzohyqkh;cc#LeEAA@Ek@6@Z z>;!pfP>)*LRh-W^jO*XFZT1%UqUN zcA(2(ei4+-t5@EL6?RsJN$jigmuI!>M_p+vR3#>|ldr$)!ow`SFFPolcDNWYZF0oR zqflCHJ&%D$yId7{Xjpw9pKdD@IB2pQpv{Qc3<PStPIwzheI#)p-6K<8Tw95q%{mBTN)oMKT##%+fwo7&5|`&1ShJ{yqavF0;~pR+fo~sCJDQnOJdGBI)7>Q%jXN0?!N?4J~ ztTfBY=ZrFgUtQ|1JN7l}rB9Jb<)vUKIjm3*1&X=e1gn|yOV5#TGdKRM|(oMuFM<(uhnyma$ zE~vsBnKposWanw-$zJEMmu%5*+>^}x2GKTln_HsOW53WT$i{uqvqB}da&Ng+#11m8 zB}&OBR!?7%)<^(x|43itZ61D6EhDY~yFk8~NeNTVW?kc868d;VA6 z$Gg*n(1@`w%B1j95mwg8vG$qY>)BD4Sc;A*u2dBr_38lwwkuLeWlSwgg(^=#M{CyOu^SSD1FFQho-rRJn4PW95K8XKWLB_f?vT9nN$f3{mm020j;I*c^F=TxVZ zu<}hyBH^{;NhA$Z?870t5hr+BVWxdRNr|-riYGvlBroiku9h?UMi5TAwc=w9fH>(f zHOiRSHB|M9Y6epJA-ii%0U8S$R_8Knx+0U@*U+a>ElZTul zt3W8l+mJ}9phxD}CzfIsJ)_;_kP*^e`wgVwFqYEl`IqE;-M3`>lGR-Wa1ewQ^$zpa!rWQi3I0@-L2CytI2Z>manoQlQlNSe!YO~U&Sgzm z(o0|MxWvj@dPFrDl^vlXjM=QZ((W%K6p7kMgcaF@Q+2|+gLcbWTwl$_90%2Y{58nTHXV#Nip+Buaa zM3R3KcP$szx=RT z5$Jz-Ukp6sw8VEjJvCb?sia|T-D2j=BeUGqUK-4ny{cKsT8R8mGnGtW4^)4IzpgRd z?U+t`;;gc7N%QqFb44nJ4lS3q%Hpgfot5viRygd+{%PNR^1_unoveuQ0f`hvzg75MXes~j7`jJ!er^K4y`eE_H^i`p}3%BLcnd@lx6GicnTBe@_o z_TV$y&`05__quRfdS2FLqay5{~7cnt@~;fVeWVNL(Y)X=i0e%?hHL;m)dV z-yg}%k-9=vV%<^J-zADiDg)||{OP1=)`?dBl#(Py<0EG;RYORn-G$U0tKyN$`h?sN zCv|#RaD8f-NL~8MNr6YyETzFGL5a_4q%tQZRDmOA(WI|{t#K(ukh9Jr&xA{H5AMp>7l+It)wZ@F80FQp}RJ=18(R?il?jinP8 zhm3es*^{w91Ln$z_|}vCuY+FI70P;!}}9b#?7$)@U>vdHQdJF7bK zM$Z$eNfe|3OS$ATa}`h+(zVpWVJTU}>O&i6&tyHKC9j2q>~;H1h@G@fIMY(bC>Jra zhD!Ba($ZJehxxOf#@wwSs;f+DJ7dIChGht>8%7#(&Wb7>Kn~K_B|+(d_CTS%8b$5@ z6I-lo_qj{BQ+Kq!6N!C{De)$es~_`wLfpNoM7fh~1~F+cx}6SL^kpQ{hXX|_eHI~& z6k&upxJT6+B^Sq@B!GNbB%7t=dnT#dObL%~mPC9*5+QP#tj^>}r&;T9b{=bzX@nLZ zAd#iiZYyn_P=b-kFE?*7;pKoC?9XK<*|1&fRy?e&+gNy;9h-%=IGbg>eY9=U3fs1P z$(Ors`RsE}64fHO+DPOzE2d2LYR1yP^1ZIozoYkV!^xr|kL+qcGq7i7ujcbjk{bx^ zNRh=_h@4U+vsMyLd-*FfZ$k-i?bfeiX=3@hTie$BzSMo?i!Z&xty}*Yy6%<5+e_ZU zUl*>!=nKj%GAW!z7J1BM%+;Q?w8^F4P}CQOaM%kZZ3bqw3+iv4iiKMl62iLkI*l3CxSID_dF67+SPhwS=Mg{s#5d^rVR*|Jl}Xl?zndP1cqYs~ zI@S~7;)FzECSF_;y^RfO>17;>1E^U_i%{AFC)&N!F~!mBW+WRaK2BXDZvLv7MOb9g zEw6q)#v^I(nG~cl!%3qclp?R#Xl7)0YMMT>a+?(+uy%oPln-lcA(pa2TO_p{tH3s` zAwfHypl*-yw6-(BYpQd@?;BLPiqz7s_{^kzU)-gy=}vPxD@u8bdx;`?Tlk?@Efc9_ z&|{H_vw?{Y6Fe{+3#nv|`<17;7pzM*0eea{X&G-`V?C0f>BDLuo}Ggjb)RE=<||j2 z+LM8`$Ig$f_hgC0Jd0Qwf~U>_iS#qkor-iztiDfXkXf-qEF!ML5*1Q~ZO>Q|oxi4r z5$%Ur`l^T}A9d)o2FTlI2Qx$6&N_o^gj5%iMdj29b~^Mk+Hj!y>qq|%P-Q5{=h@Hg6uy_?c4`_)R1 zYUEYTOx7qnY|tLYoXz4UEqS%!9etHll}YT?y?0ljLxb*+$y4Nsi%xl!l%#Mj!UTG&IDm4r5s5#3dIfu7&SRE<@BmWJrVQQcK@YqT>%^B%d zrzH~pn?V2-zRIhN$R`yKKcAJ|5|!6pSQ(gnkJxd^k@#tuW-R;0tb~6&RoE-h?=!Ld zDA8rhlr!zt{$(t`lngUQ79~1wjVyGy8S`ACFz0HeNfjfK^4Td7VHjSBFyu?k?b8>QR+ zh^)VHv-n&8-VBl^`Kulx*IYgO=C=JPDQ3pN1RFWd@~UgT6=H^_&ETc_$@-SfnrE2$ zm-XtVwsGoh#5<@lcm$6NS7j~#2P49hw8X~sKHCq z#)xNihJcBK)dmqYKnq81&;z%%f@o!lMYyu!%K=0k@|e|!-)TQ#$y>+Eym#71n7G1D zr*y-}3nOOR_})hAS6jpPB5tb{do0<$NAVMTAZxaX-?kd@tMPxe?oSY2JcaNZ9F3t|&n+G$%~9XM>SgqSLx^H&u@KiEzLzCsA=ed) z#^TzGR${N{Q!Kc)A6EZx70TNyBB++DTPI@KQH_)gVH$C3bVrN~i3W*K8Bad00s~)o z8f#9t5=)-{1^RT54WC-h!2d79qley!PS4zo-W^1AS5=nbyc;apUHdp*Ebs0txgl7K zCD(rkKY!9#JMp)F#nt^f8vm_MW7We4;YT;w`7s`Ue0do5RgKR21^C737XZJ00ax_x zC_-5`AGeas**Ggzn?c0oh+HJd8{uk{>2z+4rf4q z!;p#e*mV896Elh(m#h_|8@xZdcFki3_Gpz}XTZ>7dzB=I3hu!KPI+cnnpSLbEJry*p59vsLkJat z1wY1Yf<%&<*DuEI|~+K!`gK*^Caxqu_F#S z>`>QG`nhfEH}S7e)?)4Yjd=Him9}^tY}sO#vA+BMikPLk-ZKLh*2Z_=!KO89u=LssCpJ6|?o~kq>&NnHg<+fDn`K9`O(g$#Wui8<~tJQxwap30v{s`++!vgJw{;Qd9PyyC6wKwz0v=oX}ItYui}K8kHVhI=40x_ z!?B1LMoKOZI381^hkX}4fV=vhjUP?08>PN@Lf)M=eGw*8a!I21v3TMQ=v&1ku>ory zy%BwPPY1ncYoeD&xc|!->C{hpQOjw1(LTBWTxu7gs%X9WK2p!aKUG z(03gV!xb;Tg)6LDvHH>8c<125uqX3yATBch|89E4eaox;-uT~7G}zpi;?5SD)L3?XxFg_3AWCZ9U}?|6P9 zCB2l4-SoX{(CMk0I2m8R@OeZ(eV4wYmRCH86GuFRgWni|&K(cOH4m=Di4QNwbA!9b zGnU((V0CF__?2hn*}sVE&mMdi1G{=JrTY`ForIHQ`7n(S&6hiX3*UGbS4+Dm(Rdxi z;>899{$}2-o?C_=JkmcojuuwWrG&co6L_wFcMN=R6;7J;1|FhyqrH|d4fCkeal1^= zfVcjPn-0DJSKn;ckK^&8y1V@a{Jak%m&;Lo>sTB#kHvo@{`u@!9C$68!G~@`^dL?~ z5l144qav8JF=T^UL=0-FB~l5xnMV53*9L&7y>(5glJ9Ixv3SUzb6U2nfj!lTbAO!W zu1e{4%Vge5Ukk{}yqq-xdn~q>JLA&Ve9EBD7wu6iM^3s-I$auV$ey+2mAKwHzOz4k6#0?T#1iHrWRn%7jw$tmSSqrd6>-ao6=B&DMJ}2B zto}%1tt6*v39^@1nI@Z9x}O=*<;y91L@s&tPF=M!iIK_r9F)UmG!rP}Yi>zM5@YIRVq^47Wib&Ojo3@vHh|i~jy3+`MCW zcK5DWOv&W0ZXNH$fjwXL^T{;4EKb_AT$?NR&T`hQODNeh-%A-8Ldj-T)eL1CtUZ+8 zxQf*aoHOJ&F6iNdzLV248{4+kVC6qI*^<(TD50ttcn!urxd#0^n1G@l=i;5GBlNoS zWt?#9(b!A9@%@-P49CpP75Y&8`5KWC-Ov6I-HGx9PHRWB=lf&md;1&nz4pVPGlyf* zvQg;9h-{CMSbU3kw|wEX7~6lfEZ6&C=(}q$WZ5kAoqre>Q36W!bc}ssjhxLiVXb}r zXShuUxBm6tVd@#f@SM6Q6_h(%tL;9are7yMhiAL~9w(h&k(kQ1 z%7aeAwDHg4^>=z$0|fiw%q7dPVonbnefLZ}K9v$f_HNzln6>0y{O=Ia=B!(AGcLsp zJTjyQj6&2AeJ8z)+bF4gc_k$?T_~Y=_;md8n#b`%KSk|X7~OIDYmWg(+=Vxfy%C4( zX*Iw~+)<=Uni-hd3%##<2Txx|u=9qsA6C;m2+3VJ?n{lzLtQdPbz$7`4M#+`rdj}FqUDQl9PteTA< z;bA;D@NPV}MiR~S%klJ+6LAhDlRPCI4#zoTM&rH}S5ZRV5giU4A^oH1b|`)p{Sh11 zk3bh@*zH8zdhgA6^Sgq4I_Ne6&(9yhZ&y)L_g3#}oUTYC&7*0z0~bj$p9tli*}ZY4 zSrNcN^JS7n5M{hJt{Z_&2b#Bo&G1Z@-V+f`{}dZ3p-c;l#qS58d9O%k*AbX~#?=@) zF~aOgl<4!2d(g5_je)dMoV>Uno*vwdl2G8M_q~GwU5M=1#C5}>vG@}a3d6?5_uw}t zpMhD_i;au_jNg*Sf#as?uwPPBte4!6nWuDi2dd;KlHr{0V3r;QN3sHAcie7c=ooB2 zG*BCF1b(m+!B*LF!|KJXXEP&V@2BLpq(Z87%cPDsS6FpgOD?m8l1i1HdY2~Yr06wh zXDirABVkfuw@arfu`uR(fZDa^kRope(IHDt&=&M#T@Ib$j4 zt|F4eiYhUWPQK{fnIexP0`>h%#Ss}}WGf8WSp^xH21X_`{O}$zd&v(t%8GaLlmfm& zPkctiFN2XKFZr1fOD<`r8bjuhDq2aTa{c=CF*msoYc@0ySFN{FNR1VBtH|0d)2>PM z+a`0lSD=VIQ)|t%)ksE&U*(Lj)?<7hMAV<%tqT^n{yLA73jfM$rs+7cD|==hob>sM zm>;@WD7MN?MYtKO;m#7XYSM-;PfaM@$I8Lp001BWNkl(IJufs-0oiZX;Hs8x42d0S{u(E5Aaw4=%$A=K+7D_ft9wKVBM5 z3E~;U`ApaH$_h$AS7Qj%%c;BZHxpcT(@}>T=@ZxSvv<9bPWwt%=CP=`VpKm=xXd~ zby&Q@MSG#+ArXGIcsV6Hdtm*W1ec%RLo{9xc14+Nk4~pPiodM95`8*sz+*@J5&Jwj z4Tp3P+5g;+kHK@?!Rfe#nsZ{Mk2*6mh^8Mj4HCoZzx@#8ju+5b8v32jhILCo4(^Bc znvg=5KS4BPMOnERzqz6x{_t2IoGNF{PWbhUxRMfN!Aq9miE{}4^eQcNi;Q~}OZ}-4 ziaqunglAW8#F+lxdhHbpaoedwP|;D@+zVY!k8tOTb)0;r!H^+k5U(rgj`Og)ZY|y+ zeQ|KdxSdsRPQ;04yo?Tsjp8yqcGv*?@|q|4@@KZ}b;-n=Kz@2N`W$*QUhMcFjz6pt zw?0h?^PaN$OLoU*3Of&e2m7++wMSLrlWSu>_~=OFON#^KsknvpDbSe%Otj?wS>&W@-dk=ZzlmGKi0S^ASSh!PC8q0$Kjl_vxJP)F~_0%w*)43%A9a(Jo$TZYZfNZftf!cnnRo zZ8=tf=H-v^D}5QNY8+DPrhI-%&cUTNG?^HV{TK3rTb9~ zJC)E5?D%VLpj=wtoYWo})k%6roH(dZ%%HlIsp{jsrLdODrqiHS#j18Gl9q_Q6jsJE ztK_0)A=w*t@+&*^E|cN2XBnOjF?-3*s!(~zKiehA2oJ|1&L(!yx}I8s>k~^Ou#GG zOZ>k3DY)woy)lQ{8!DIEE`RWNEWUR!hC-4_8`m9=-jr;PyM7F&EPMbjy!R_HyVLPk zSp43nSa5YGj4NM6)BIbifZvFLi>Uig|A9yF04}p8jeD?w79`ptddFyO+h4hEz?a;G%1GRGTBRHt{Ez*OvSigkO z=VY?;wa$Ym<6!nS;KL^eVV|E`a)?x$xEJ<3MC69~K9Xoy_N9d4xidvb8x~%RVFMn* z-LIOxcTRb+8%Z6=a=df%c%1d}UQT(?i#^uQ$De4NZhE|%Y&hKxSo=@^Y*1_7Z-CyRr1j>u|zb5uXWu27kf@ zU4%lQ1_ShLq&mq}FVBw>^aE?ROeB`SW@WFg_NHtP_$S@f(={5Rh8x#A6H_b}q+*P^ z)mlTiq`N5Ty-^CCcL`>7hE-s($je!ZrDBlE;-G=2D7P@EH0IM<*^`C7yO=+I!A>EG zHZgSKltB7o6QVhYXI=Fwo!G`dC1TH3y6H4~DtUP!YJgl>O0Ik9GnU#0>_Tm)#ZIlS z&uEP;G6PQbgn>?XqF^GYFL6b${IbFzYPqa5ab}Wjf=BqrD2%3NWXzU>GQ!1Ag=KP7 zEW?s@CRPq2`CrY1!Y&Y!_*%1-fXP4UjW}4Z)RnR|NwDW$9dYU9DKjP>I_$j{<;A5j zb3rCcc*^;zUunlDgWu}1FDGUB;9FffQ{EL1i=l*uMM`!-L;X|xG*oX9+_m{94*Oe3dsqg z8f1t{+fZ30r%R#KMA80hW_@hI{_V{+_|73)aPxh84Ycbea!Ch8v1@P${eJl-+2l{B>UAS<{3Cvx%JIjm_QJ+z55?#c zyJ0#blpT-6^*6<1ZyFMhEHbQpmAbtjv!~C-J+GgPN!AHQ#Jh{Rg=tG{yQUG0^t-p$ zt;HGLI#_;)yN#!ChMT4kFxIjnrp7=OEI{auH$Bic8mv^3tllksJ z@xITb_wdpr@V$!19Xf!MG`)N^5f%y6_%?3!Y(1k6KN@f^=3bv;`D+fWsyrG$JLE~c zXcO8FhvV7>@8Meh{s0^|Y$B#FI7`d|Yjnry^KZ^01ZM9&Dy|Rk_+h8vmrO?2K91)H zcL!M>;r3~xG5jySo6~XAPdehWzxKh1W4hp>w`lI~*&kPolPA`thLuAdA$7dYK_-(G z_9i4`4OGZo=SA1m38M)(~`=7W`l&~rt*cnk_3Ae*|Erg zc}^(l7J*2r4RP{k*-U3hu^1<%BFUxWr9~!_!qVx{#ER(I7?u7s;us^APJ~EoW>r~% zln3$5^^76Z>9BTUqz)Dl*<=viHW&gZ(N}W5+l!=`h~F-)TZ4Jts#R-o zAdpVGvJLb;{C`aB{k*g6nP+wDTIM8@5eRSCK)MXv%s8KLQD#>62=bcA(2f!sTzpQI2D_%fEjkAlL z;23fIYWCOo&&Ru`i0O(wKK=^dc>4=4FgeX{FWc&V7{*2?V9^KX@;!>Sz}J3oKOPx8 zLL9)N*oEJk44&;Rd9|&GC9igwCLg?xNs|x9+m_k&-}@Gvv5mW&OyN|>R zGcLn%`?K}PLvYutzj6sF_QMdlhqBLn85VW3=)IBre#L|PV&S3ebXbc_jTp&EA-m5~ zcl}PgHkQ1{H5t7Dv#Ulz@eo2j#ll<8!ofdWi7wsu!Xdq;V!=zl)a2Wi!NM{9@xT6B z--E`Q`+>9g9?JHJj6>c)bwrob&&1P@ypN0f$vu`zD3l<)c_Sr?4|e4C4!SnN_ZKh2 zz%JdCbAffs@YIuM;Cq)4Hy_krV(tm-X4U*PyAn*Q2-aa0C0sZCxGU6g*c$8S;}@sT z#fgu-$;qVCRuUboW8Qwx-iV%9iw$RVL;J`Ijcml5GiVul3OL2#Pmkinx9-90iHD;D zEeWT+UX6jWo~)ibkrL>e;vHYt5x8f}1k75y76ZGwqa?0fN>V8aeQ}cSL2l&gqT^L( zEtXKy`sC@a7&4jQLFd6w;PM;)fOTsrq4Z}W^9)Sf_Q1e5-o?P>58{L+vX*xphG$+M z#xr8o!@cnKA#YiSp|UsQW2aW!swVi3Mgtdf+F9@F=W zBhk~+o#ZaL^Jof{TC~p%C6x?$d$BVy2T%7d3RJnYW>4G$L|~S{#r6?NWxS4AOVz%5 zU3HSJTo$$ujK18|F=@GoP5)Wsr9NfXbCh!?&Z^=nK8ph!V(EyASl1|>;78`0vvI;s^kjzPw`}&!`6g0NS4p&GXU$kDc}K*K zuZo{fEUmc91}UrJ0&&P4lUGLh&z6RAA}PLInGvVRh;}V2%`$c#s(won%P7*{tK|Nx zdl??P?z-!4oKWsYNz9h7w#od7VE!iOTUvXW)IO@MGP{)SLitiDO6avUBeF^^IgmH0 zBi5>3kCayGqjUE|wsi?Q{pnpzCK)z< zvo$vTcPsRL?W>rtnn>^qC1Q_HL*D_HqBA9FVv>!9`N2#abIu%0c>34qKuntTH*$3R zls`G3l}t)7@4O0R?oC+6PHmNbUiX)eFsz56Eh=s**6Q#2mFhs8L(!pwCk|cdg)do8 zR{Sw5Mt0nYNm+C~2lK1WF@r^vXim5VxOCc)V&;hmyUO{B*@xo)^?nv_bYo$4$C)n; z$E0KL!=7)SgDwv7>WDs5m*dqbQeKn@KGJ(W4q0+GI$KLC*r`_Ry8FI^@YdQ-DKV4- z1O2YTZI2#>Gb^4D`{Z~$)?)F*)9}mhO-DtSEFYQLchIBw*%1SA!#;n-HT~o#KCm25 z3>b}PuYMF)wP)=ReLm`s*yr&ZaYzSxKbK&@nPLg(hDE=?m4CSoca0||KUF>ubA+}| z*~;f}b#@T$Yfqd8my^je9>z(JPQ}6PWN9R8H$us46dE^qD+6DZupNDQf zjr!9Sy~ZxVlVfGYqK)ImMPqT+njhjBb_h*YoG7X~%JmDc!RW>JpyEs#LY9)Yhd-dC zOwJyzdmZ=PKuP#R9dswMe(ge>*y)6vGi2)*UX3A-mZL%*!ov>1`966ZFO=s#dDSFX z)*Efe_BtMozYKgC*Y@k+hE3!6_;O1A=NnhOK6Z7Q2to-udSkciVs@6NZ z&Z+t;^PKtH+8;~bPJt%+*Bnk!-hRk;+`}iC zzB}`5O0-k9Q}$UV&HgE6Kei+`#(h)5$^+@dHoo*V($3w0Q?r#qBm|#*u?72oyA01f`!r5H ztsMVeyAfY)t>H^3a0;-Ou&blaIBB(mHThe=i5l9!iEaKRm#_ zU-KX5eU{Sb`A4>P0#%!aRfXWHefM*)_?2!Le`F{8P+J~?dtU#T6HF18z0hswP<;Os zb|}wHcyt*%lm~gA^2$cg*1k3wKOnR5(o@TET#uQU`@u*P2UracvBmx==3m_hKYAGa zz?{YJGBfsxkWLsv%JIjSe}&lgH%mEI28s?@ZJV|W_;G;FgDkO@LU1nk8YUilHgNZR zyheqiiR+$+WBkL*anwOwaTUD|>P9^OZGVaM*MuXKaDw(-%Rz2?AM5%aj`rN|4mf1u zySS&a496X6Mf{q__@_YlQPJFoZW!?DU-8XJ$Kb>t8*A*dAW!%0C>wyRi~?)$yW+@B zV{pn*k4c;3@rRd(VjoWO*5R$m-^JDXH0I;@cPEc$-=pN;GNJEhOvaB#Ey34pQpn7I zE51?r{2AtprtBM)GubyPS5@Hjb0=$Ayl@O-+3Gu$-Ehj>yYS01d*e6!?P<8-;VI~~ z2gFhixm+a5nvWsZW(lv@s~$esd{6V#>HKpUd$4##9dPh5z)k%R(BFIHpZMsa@_8** zJ_>yAryY~Y8atu&d*|cXYoEaL6T9njx$l|Pm_teC@%v#c!aO+byQKEl1js*4lFf}zk33pRBoses(sX^Aex-jM6CXdoc zxRY#9*AqnsRXrs{-wXG0U_jfGc2td$@0B_G?w0*wc{}X7AO~!Vs{|LURTonmPar&v z9b`*EqPCl)f+r)VWMzSJzf`AOZGS=68ETHiG$h75W3g&^a( z-7!y|Z%AU2CVDB86mdTgt7NJ5&VHfUUh>{VMSSf;deprlt@)HodjLF&EV-zcvLiE} z9Epr&OZG8Q=w-Xm*`-M(5k3-~k0LC6XrUtl;%0M1-26--mgXQa3t4geYs9B51@&P5 zGP1)7XGXG3PCywc$%<27otap#6si4_I^BkBeE6UBIP>&Vaou$juyxxuoH1}9I_}*G zwY3SKtgt#~p9m)BV=}31+ol!v?yx%!`gZ!)xAP;KF0o81uWehm!q@icjD3#$j{FWK z(N#tt$RkHUO8G3XG0)|%M&e5nd*WO}JrnjVO0k5Qnb#^yrLFMkmaTYm`6@g-<8Dlx z^$3=K_=)S0C5z}AoqLd~x8KBz3*OU(UyZ&fdq?%|ilHNZf{!mcFfsmLc%-tH#%lhE zYq8?vjl8glb=Z;kD0>uXGj5&{$I~ultoRfQuIY=5 z9%0{=T!_&t55=&F1Ow>(^&Ou<|I_13ST#<+A5Tp?5*^mQiiy7d5PH$*i~dzC>Sk#4|{b zVv@ZS+X==b**MuSsRLFGl->43k-5tINFD2Jzf&&K8XPL4lb7@pGo2n*&+Ul|*nu?@ zbM1{>i#I3z4?aAv8mA?Z%0iJZ!%B?L%^;T~dlWblJF^&dWnb);72m0|))M+$ z>%L>1To#&KD#DpB(g&^!Q;QomqmrY1)z25??a|Jr{nuGE{JDg5xNQU6wgj>)#M%(k z4+Hs^m;9_nIiB)%CXEU#7|D8F!Pr@5C>38mk{?c4uJlL0+dlIhg&RnfUuSm)V zO*JeT`lR3EvsOKf+-@aOpWza-kzyZZgpv|*6*_$hG9}_0l~E?L%;jgh?DkE2YwJ-7 zVMpS5k6l}#^Vj!8<)csH-KB41?I-`T(g>&Fh`hV}h@ab5mS##4?HAa)=Y0EL)qlr& ziyNz@%Na?&l83mEpjH4>5%Dh57G7e+EItS?<|6ni9$*p8p*$ENQSwr6QEe zKia@ghl(r`8Ce8VlS(DPWwX%x)T@O&CclU`*`7wfzSM;rq``k>&w3bZwq4?K8_$De z(vm`di05-IexwV8&8qwkAU%%iXyI5xZcQN(%bmDihR2WiBfj;7_;zGm7L+(#f2^EA z9EfR;-5~76(zYB=9WxkraD(yq{a=UhnJ!;Mxs`ch$-qrR4j1(zMLENdyrwC#8$H!v zss_<&Jgth(|N7;1{TsMtKqXFoLVQA{xqzfT6gwO{UnQX<#@x(Q5+@#PrkiA;m%i3Y zGRdA5X=GPU9BZ?VnYw30l9Ng`+gWEBbWv_Eq&VXuu9rI-u}o>h;>0ZfXNS<(_i1)g2x7Xq?~nByi&s2- zzMZ&Tdl{rvr=q0E4Mij~k~l@4``mD&Vo08utV~L$yF8dA$R$Yz+$AxxjD6$Mk!$=@ zBesA3q){TVRHQN^>~UGq`w~emGbNS`6*2dJ(r=qsn(vDvl~^)6d$r$O*ClAzNyJ5B`A47Pll7Yt2N81T8)163dLbh>hi? zYmnf-?~7??q=KCg1hM1oMT&UwBT{j3-`fG(BWTcT)Ab0Xr))cWLt~?fCN+-SQqtfH zAW52fXKV7yT#q?TRUGqy+vwN>Eo$UWjV76WmZlN5n(CIO-{jA+3i4L%i`8bt9Vt_z zyM|PXJ;;Jo64Y>VC<$WLBaeEfl8Bi~%O0QM%*sWvB&j~tjpUB1p&1<2(LvVjwgDlh zKIP$H$4AcMLF%?5VbmwlF#7{h+McC|*=F`NudoW#fC?p*4Iz{Ty3FlqBM{Z*j@V3| zFwAM@kUZm2s=b(b0_lvK8{hMpnamYOCoOpp%@~34XDMw$=@BB^U0sN!(|dMxPdlCQ z^!Vh`p0RZDD`mzq@@3}+4FA9*hj@#Nqq}H*$C`l@6GJ6ZpU?1FN-I80 zdl1bDGcs+78S?G98B=N1 z%%l3)3Aanc2U*41YPP92;``CWhFmLSbM?|`c~nQwPW-Z&pQ+aJSj{RJ|TXIYx zKWPnc%x+Q~VVOCNhZRqeaoTUkR@RNN@<-XpYIaJr+jvKy{ty$#*gG$-iDq_slLSjF zkMmL9Qsf9v#&vsSMi`+QF}G7<^37PIp00xEk8n0*CTja353w}BZ{h@?XUJu~WaZ+0 zcjgkjpqLp-wxm_eG&*Fl*34Q8aw(Q=YZ6J^J(m7a?)j%7xiJ?gG>4OY-5#iS%$qK% z%@9hdsC%YT^`kD+k*3z{f%AC*%S`W~%0t0bO>J(g$vK}__7<}YNWY3(tYpKnlg(7- z17EdDQ?-=hA0uemoTS)KGPnDBl_%*n#`i1D?|hK-eM%12CuD^0`j9kl5}`hIj?2*! zrY%>M3N>38*+S9EdOQq4B&~FN*4)F0AP2GG?2~kqENSi^mSY~34lHA@5xILn_UAmHS@`XLifZ*N3*bx``E;8w}^U6(+ zXzqRYCYBU$$vCBNaqtKPwAlq{;!S%yI;Sk;+IZ z>ABQyFI72bF;m=G`YdtGl;CUu`UF#&(trX_c24CI^Ju}IPWtQkAuUTTxO3DL! zvSN9x-hZjetLnUptj0DCtj={i2HE1pmM`kofAfYdHmyVEP*{Bhr#VCQa;mMYx8oL) z&X$C9B9>gJjcOTZMmAA#+-UtUL9w^YjeXPh$NY@3GRtzpbJC|b6bZ|z1SzkE6_TT|yP3CFx8M%D>LUO9?n!{KU`E+Jo{W4V#-2G3 zRIBDBL*e!$NsNg4f&n{;l=aCG|CS@u8->D8tb9Y9D8^(*B>5A3LVaRH^9+k{ssnxW z44PGzlnfO~w(W8`*s}#P&6-qNnWl7QXSuL?Z8gxw%y#Qjz})?`7EvsqR0GE(ks2mc z1G}0TkwrpQmRh8IeFJc0-4^a-CZ5<%Cbn&7V%tt8wr$(CZCf4Nwr#!q_kaJrw_e?P ztGcRBRd=0z`mDA4eCzwxUVHx@$HeuYT7c{u?gGR+(Sm35;DpCQgkt&9_#OPs72i1Y zA|p(60YY?Hw5M%pxfwx|Q)q#Bu}Z{sjE|jIg0dZiWMe9oiW_pU z!9}!|JBngkAuMsaM_>rh7}lN{$c292qvD=lK~n5z)w^HSSoY+~59M%9J@M8YJ^w*jhQu@Mh0p-|*A+ zec!^J7(s;jwQjG$X*vN z#ocShimJmhh4&;W1-gFs_bIA<<+~3`gn4{&G;SMU*idn|7WQ2QnqK#kp^C zmabew&9)(eNJeznaU&QuL!CV3zmBo&Pn@8JW4pi|H8H-hCw^{{3J@rVk&Xl>FW2O#QE=_bqf1XsF3YMZD5rscpM0hpM#r+z3sfaA`gR=7NDd(mV;Wr{HhRrVzm)Vq%dXb=AX-{E##SC8Ee?RCBDw#?J>6uhGe7 zo7=!41=tJlxiW6L{`V9PbI?< z{4g$DHe#1K_ja*53B?bKkq0}M*Llv5mTRK?f)#$LtPms*yoq8-8bSnFbu;1TF?*{E zXz)b_u`%L~FJ)+RiiC`#lPcRk{pJYcB=7WIi4;>6TjD}wMb^YPdVi-15UGd`QU}rM zIs+>_>5pH-M=6w=@E#$?q^R26cH<|!FomqviB`**g$a?LJF_X-+tBCFRA_`6ywHn^gpTj2i-;=O zM3FVg07`0##}!;dm@tdqC6g2G-h-|e>k&r`ro%OULagk~{_=+SU=OXwZbX%K_9Pp~ z91=Y*m^*$n664Y(o?!1y$HV+#W2Nx?yJpY7U|&Y$IJk@2x^RXp?gY4Yn2VSr&xj19 zWeo2)I+H(%$BlSi7WDf+O;fwXX0p*ucl+K4UBGJs>_9>3r0NJCM#l|e zT17oV@i6*t&AJ47+&K?`t?K+E`@^q1;}|i^`Lv3;e7O;gv=jq!hJljYWH4%T2%^?Wr$C-YzBD;Xj>En0Ab=M3=w{R8tAH6{mU6$0DwqrDCFOYqAkY$~t4 zV=KX|6auJa{`y_*gp7Mi(d$xob*j+yFayFke&s5JgHqtjLLw=%_X#XJ(S1X}LstM^ z6`mXwGEPrMiHZemK1^q9zq)C38z%{sjl*3^^5!)t`zGxyXt~{rXsy{}PfRDnyS+i9 z-u_A7sUXlXA=v>P)$}j@%Fa}*1own&B%?h3I)5EOL{rt3!<_CmVvn6Zi`Q7N)$>Mb zTW#Ly9{;e;+jj{wj@cWQ8|XMI#OP!+RKm={UR{m}X&R-Lj8@mF+M;R)b*fV3HwGrC zLm3=QF#BirOqUlL=bdBJ(?|{8|FUkFARrRlpg3u^gjhfn;wH&Oj=@qvy?@+@e&o@n zNz701rH!ZKfxI+!$iLbg{cTjB0+XL~pfFg$^$z(PIAVmA^Eh7P1rexy-rnc_BeRxP zC#1mtw))@AMSU3YFAFmZgE$Uj-h&~kyu8@X*UK$WdvVe-YHFcM6>7iYYm6gIssehlpJ2K$62P`2%7OW^oyvQo-sMZfPaHJH@ zonV5e1TL_D-w|LW_;6m~Sdvhl7sZp3_aI4rRJsgfv>L-lPCrZV$GX^rI|ja}3bFTo3&~ zkZq_xTPV5Y@wlGGjsZOw85^lbFkGMuej_d%El%&N5evVEAcO0EKd=0k+lz6u|8o2F zybCkF=!<(tCRg2NB9*%J;rb&oQsYg`(rf~F(9KzXaP{iNIT_HZ#cPnnPg~IuYLnH- zcgLZF@vPljNlYD7fO|L0W(v25>&dHL^vHj__ATW1TL`Hx(E<)Ym?*wrlM`*|@$8%V z+qc^Tuiz@k>-BgZXV7x-THGIzlk7BPtPY)Xl)N%3>^s z6+K6%+KzqLuoAWJjW%bB$s5l=;hjzm`plP0NjBx@(scs<4{jF`nvSOHbMV_b`HAE4 zmMWhRCj#W?ISM4L2N)p`;QuxgR`42TS+zfIc?bY063yV6Lx)@^8vRoUmfZq=u2iQw zVpGk@wjX)7ja@Xtn;u}T8)e|d-x<2-n{X*`yYCdEbb4K?n)79M+J+o^#b@5y7T0~K zALVRQwg03dnH$x%M2mu;WUV`yMM-8=S)CLE1NZYfM!$dK5MvLGz)K4JHB5ufM?C^= zEBfUY-ccW&SkDj(HgT=}@GZj4_R;0!kGJI=&;55auH|+;!OK_8qj86*?kiDd2A8mQ zRR6fuoaD#1QD@VQ>3GVO?F}E7!!UI&hLwHF@QXKk;tGR8kzH2TNn>^n7RH!}pUj9$ z(T0^GS}&MySWfy!=V1}s@TfWy1s+f5sciDsb)jA;droPNZMwIKlRr1)(f^5BIJhZi zov=^vn9UqU~49qm#xD`?QiXk zOH3Qa-z?jZn(xoDwiGQ7!O%Wl6gcm6eXjEi9&aUe6Y25(v23>9UkNki!~QpT8d_{1 zeh*jUQG@x1xG|3n&gTcR%`e9^VVL!POunSG>cS|dU-}r4HsmPyMrR52GUc8)XQ#35 z07#O~2Az}6%d;8nw!b(jIOjQNVKtNC&0J(f@BJ6=LhxWnkC57W9834Bs z5)2b%C+leQ>yUKS{ve-sAsFy~(+RFSV~W#j;&q31>mSaKLU4aSbz`E%;*&Y#@5PqBpmJM)M?cokT zr7h7(y|QVlp9~7U+70su{VoybZTeG3t;RV22bdLC(O6dRkK2&MNUU zJ#mR)IR&n@bRaai$pR}J;)V-2T4vhQc&286t^h33qr*}HwSh=G5+Wi}YCFe=Q7C8x z7OWfir35f>;l8Q715|Zs71K|GZFgMS?3lm1$Kqq0{SX!p*QS{{1F< zn25XToSIrL^Y01rG_x02tlQW)gB*yk`SX1F?>RvTd((AAyUOyT)f=|k_gM+>ZR3(w zb;cBOIPHX%PSyT5QF4(@Q9~Mqj64W(5jatdS4QuT6(s}z^uquq> zB)k$il2M40u;E+JN*!YkHiJV{TJ3Yu7;8d0T%{p)ePE@s&j&d|o|(+~ZC)l5zyJMY z4fjfV@BK+b$zBq!^B}3F4IM(`Vxf}r0aYd01zj~#RC)LbD&k-!a=9Tg5YdF}2%sRb zIP=C9JDKS6qY=oczBzi@<_uA>NbIDyUtUa0sehCaBaosTpjwr7S>uc<-+1+2D}taa zb6KC(N;ZNuH1{$_BuJ~+-t?v&_($Y-FcC8w|ug{gt+IxSH# zd8LV^P=Tl`Lo#Gja5ekTnNouhhpUWucA^!F!PUGkv5NfaTLl>T21j!!KphPLTu&R@kPW~Fr zJvkfZmB{j`sJin>^pV%h-9(-3=FGQFTLTISs=P_#IVu*#Pj4;T2jDl)Vb4cD)AfXf zqngUy0a0X;?VGZ02SnKJWU5k&YJfu&ol12v$~!TqcbRdCZ~-K2yJnU7arhIoVl$is+rquU!>;)L;;Of+RBpH#5ocR(hm-nPWnTBjmf+rFoL(tU{#AfOS#@%{G?adi+YGlUoJt}cBvTOQ`on|b{G+CHBL zkJfY4N2^F&DIu}Zr(7bmQUBqU8Gvp2#CfoLB}N-^o$J%Hl244q#9-U*&FE}maDLPd z8U1pZG7XmVme0|88w$J*Jl(sEu!Rq2xaaXupXwUv4V zNIJ8zWv=%cm;|Tt1cB=4R$RGdO!;$|^yLQR&I~vSQP~^0t{7y+B$*WB`Q3}nXf_VBxm zaB{T=hnC{(V=~O0LG1>4q=ba|BUR!H^-?HRuIXb3z)xuPp+0hkF_;KgaYw~v=k>rx zEGOJSpT<>%Ks1)j!8XIufCBkN_zm0|=2*V^xY7t6k8~U_9UHL{D@U)P4)YS*W%!&s z=*%I-;$q6YXI31=(#iA{#Gi)5%93m%(Idagt7HtnE1~DON8s0Cc_jwton1jU64Bxi4^ap|ElaV^ai|f}q5`U};T3n?T06 zhGCIkq@<5URA6LaU5qo0oQ-|TiauC=ookmhFih0pOUCgLZzwLLYe7JAUAL5hPKB+$ zu1?CkaMV1=N^a(MFp$XBWtD2b_cKoG2e+AwC50=uN(x2a5|!uBCZfJ^WRV!1B2?g7 zRl?37-!1y@eFi!iu?r70js$X9)BMz=9C|jfE`N$jfkCD1H8NzXB`jPnZ5=H|(R{1Siu4&&^3?P`?a;{n=boZ7z@~dY zln6ZdQ+U+=xGewbxk(zSb8Tk`rd8~yioFRKW?5LL)l*gV#2pu4VxR&DwO}Mmo|rkw zRQEX*N@r!hbZ*zhfx3Ir;|G`PnI*P|GU$Y%p!KDyCT%aNI;@U@JW!2XPP75%&DY8c zgCEk-k30x$lqXHoyJ^M~Na4wI&RvoM1*j|lU{-aro_=fex|ZKVi%SWsUu23tL=26m z@z89k$KS*+0+*L0hvo<+3oY@F7+6@`s-ukj5xmW4nM5?)N7LX!kYBn{WS|Tqn-`$1 z3qSg!&E-H}O7={t{|cL^l)d9^qhP~u`RkFG(C&nm2+K(T>+Yb}M`6hgD#+7865Gn3a zpsvD>;Y+TdC_m7o2O}wO8#FPx)~t$lRusgQ6w#M_vw-F@fkmA**y|Yc6BBNDS}HN3 z?gXVGEe~yELnE*!+rhN3MwzPtR#=wlPfqzT^5Gp&$~CglgF${+VU9Z%XjFOsmg=MK z)fbCLMTGWdiOfPnkv+EO_X3b^Vo+e<)H&00XIqe31+wuXCy^(rAsM9B2(P)!^z)p@ z$4;k|tT~h2uQ6ZK`;}&d*T)Y~M2{00i)erB#o>%ADEppQ3k)SuA)>kExdolMZe}A}v-sdkZI77#$cLbz}_92jT8G zoFDOvBF&X~^OSlnn#hgcxzIAxWPbM5xEq7Dg8#&HtlY45#XixGZTDGI=eqsZ?h(^u1W zn8(W#RiqcXDG(`cVK}AM+Thd{F z_l+3b$~%*wTdI5@NO9~r>?+N)n3D@#{xEG(A(ZC}wy#aT-Z;PO+NP^5)ESOOHv*lL z2Tn0(s}=UR&O6q&>+hX#v+*(o&_D}zEfg0Xlcuc)W$?OINY z)s?w8G(k6tR0QI01bKqApM`3VR5H{YILTUa5jFJ|#hEi;=j21T`xOZUB&W7x)AGr; zt@z69)jr87iuLYOuCz=CG!&Q|C@JQ0CNN}1Bq0N23+BB--aG zWdy0Gq7g;ckbA8{ zC3o>wvVvZ`vX@FKMVY@$njh59FUcL5@xt8fyIGY3hilf7fGLmNs$y|D+eYIK*4HtK!Ns#K-RA;Y58nt>2M;U7m{(C$3t6`c~y=>Ei-s@H> zx_zGn5W4QEsap8xZ}&iAEm1RCH>uSE43MSoFtEN~?84BC!{?5;&a&L>`FwJXwaOQ8 zMd1z;sk0P8jDoc);YlEEJR}{6RI&d-?~Ky1kFMQ%i4sn>dqFPjDj0|RXP0d9tULBRF_Pa?uLQw}x)-g{ zpw*nxC|;7UEyfPZ&2Rpd9WV-{k8*wE$Xf^4boUacYoL+mo=->!OX)6NKvU$i&wNa) zor?)EagBYm+htFVV^GXQ(WRWP1Pqa?Dqf>s3yOIKq4wrBj?$y?<~oKpBgU4ng>0s)%B7BH#V))6scK`5mJ%y-)=i8@u)F#uYeF) zR`J?ClnMmIC@dhGFCqU#nb;Z4nXnMK^`{`JOOLs>6`MIXCSJq@py&#Vt6q@J0%mlF zQWEOW%f}kZ!V6qPg!hX(iz$m7!pSpOOlC9D>a4@uH$m-2OUg@4-;b50Mn$-cvs6=F zlqqZOcqg+C!r;Uoa z_<*_Bo3t=`jTO|E7j|hD&3we18yb3uwZ#m6Usc~UsQFo~)IO*KULZ~UqX`P!q$h2! z%=*Xqv}Lx~!WMekb<3RGS2JVPd+2u)ea!*P#9%>*e`*1apMMVKhBrSjf{QW-MawQP z1tjwj`y|gyWPi4e>j+lJMEAn(%ibK;zU$S=P%a(eD*|5@Og_qi2vQIkqHgoQ0eML% zgs%1{0-e15xwGGkYB_8iXqhLkAY3T8qGvH8f2m`XH@vVLXDz{U#13h>2}vO0UfCqA zxtkic)iq5-d}56wZt5Zw!l1+jL&TzW{*?fI=R+VE(QYT+=uV2RDO0!$Fw`0uD>hfu z-OA654WVHUgLgl81R|(W?;^XWV0g}!c~(6SKMkFaP-X0}sHRAMGZOPs#X!}QXjsgg zs=sioEXS5hJW-4TRDWwxP*%FJ<^3HXkBdaUs!9Sk@-lfM+7PS1!^VB>IybYovsdHi z+%|l&8g4s1IPs*HnBF1D%VZH`X}vqOvsdeg?I(Bbs}QxxY7>Xc^{$)y^~{gsva?Ey{d(%wE1cu98Tyj)b%~Cr zantk2W$M?TKzjc4b7tsQ=znvyUkATI3I4_Nu-hMHkIzA|r2W>-${-{h9bY;WY_wbt zg~nvoTdsX%%b^5Mr^fL7Jr*ct1zXVg#bb8!Ic^Y<0znzYd5uzo{crm9y+`SSjGpYb zK8mU^ULCNuXN!<~Qfw_?B~{IQqZU2OqY>i#@d@MO{?dzy)B2-A)RAs)=2v_U8W?ah zo=MN^=XVUKhN6OkB)|X7|H%~J^ge8@bXBM~eGv|U2mm!cQWh(|Lv977WyDB?GN3K?K{DEvu z?>{`h$%RRYtF(AT6SQx?ofBhD_#O|pm+7SL-xrXt^KccMB~|R@X*|L%^X|!Ngu1&P z`JG$Ez<^~*vR5XV6j3Joz3N4ufgtt+_9Z2Q{>*l6l>2h?9OV5#mt{Oos~=73 zwH3m27m%af=}NL0CTJiVSp>F3EAqHlKxpGzyeVUNF2)$`OH5ZLPv-XcrR6oOnTdm* zh}Gw={ifbN9zHahM01;i9Uks$AOYS_~He3>Ouxi zgLeEvPxc6sL?CB0+*MD}AC$vfSzD3iH3JE^LxsA9GFLPdIe+lS6cv4rkbTkt36{{Qo0E!b{w&UL2$lP&C#(9V2k%-aQ+Z?E?R^-vP{xD3HL}0H= z8YvJ1=)qlF4OMKRE+cxX}LU*%T*bm7d7f|Dmxz3oQF6n z^&d51FI^8Kt|%@yfRm^-eIpjF&IsmVK548&7>Km3%|}Ar!T8{CLa6`Lszbkmw4S_O zFy$f$JMm3+4BkC*vv)rHdJNgKf7@m%Gzal`c%KZryHUhQF1ex zK?cs*J5ke>EXaZX>-jm22;<}G^{E`PHtf%tr`>V)2WzR>P*>Uv$gdh>dwZnwU3QTa$i-6G+6 zzP!3{>f*4&h`CCM`ISdEv7Znw>I?42wH+IlTIB>o5y0-fmpKzpp`-L`{8SO;%xR>Q z98wu*y*F$v`fWGfuNs%@y-RDsK!>V|c7nlF5O7bj$yI%w+D{(`Cg` zmKHx(V_5oOtH>S;_*plBjAGQBVGpY8DlYPSgbH1?GYMjZU=CA3(z1(c3cDkqiGUJU z#qH9A0@O?yX)1ZZBt^XP7g{7qC^;#l<5d4C?1%HtO8=F^_C}g)SLnRi&J7V&XFryd zVFD`^Wm_JIAB;^J81rYui;1tS9a1sPN8GtO*4` zsv?$;Oq;lCk)D>T1C-f(37n<#me_f*aJ>3>T^;nJ&z_b`0(BObMx|hN?pu0{u$Kk$ z$-r(U(?y=5()~(DKrDaWSV{I)9cL(WF*I~(yIfPUZi)Xo@yrZFKv-ZeY9w?x$FlYv zIlHhqrDJ;p+JK^knBCe`#n>_5I2w0MJnbaXLUd{3o*ZeCkdXcmO0twrl`bMUxr>8| z5ew9F`=1>DVxx2szK~!Fno9Ld%}sR3qf*~_n~?6vDayef;JBBLaCMwzL)PZb?+oeC zMwF$cpIVF9=~1NQ8>Ezr;^r)FP0%o!$uG3?wwBcSgTYIxJ2CL<1Xep zFqAAWI7gB7C|%h{+?5}z2s7X#@ClaN#odFL%snsnn8H-xVEeo-gT2Lqi{vH7p~^T? zD#bI%T$$AEhmf$=KHu!2Z4RzUX@~yc+GQ$kDKZkD+qJX($rMpz*9;P9rzqg$A-GE) z*-0=m6caE`q?^P*_u5TI`3eC1$v2Ado7%nR2wh_cd5;6=mZT*dhf5~&T)5jrsDk+n zx{ysnO=`?R!RC{D3Do@pil!Zi9wfvc;`bBW^zJnJaU!f$HPlqR`)LBEJ+Y>SxTaye z@BlEYy7rcQa>i#;FP+N5j4Ezv3|#n|{)Ui;dzVcO!4c~V@v0Gg5j^h5I$pKZ%ES6o zuKYOCCND|o3&ZVF%-ZAJt1=8oW33qJ=+`*$w^WEzo|8WuGvs)5ln`kSM4o zZ8*l4XyaL0TxxI?BGx2VwNzO1y)`nS4!hh$WICd3cdB1~_!wPaUt1+?z zftY}VXiybai9kgnlg5~f$;#tI$(d(3rrS7%kG;p_b}$9E;j%GtmLRNL@`)Qen>#(3 zKqg(wTq_AlBBs+vxQgbq9%R(}$W<-zi@qy#8eaOdd*Wl}o0~<>PfUz7Cacb@_phG9 z3G)Kb1t_GLyE~8_ZO#ekbQbH{n>X`@&>M-z8{_4bv8VghA8?5zm68fiUH73Hr~t1b%X=Kr zs*tfHdyk49d)h+}fmW?K4i(|YW5N@Cp@Q8stmD_mgNi1{a@=>8Cz{WD+-BL44&CKX z&v)gfZjy^n%Ci+44$ilh*X;?-NBfMk#@9@Lq1EiU7e-Q4Ew*nfwqww&YR&h-v~Si1 zHk)KB&Pd(Po+RzvGXWx*egTNRTWeIVbdd69(P*5eiUBQ zhIxI$v%+xnu-1d1T%(DQ8Y|bLmlJ$Dq|8k-ty;7BjJr~01-6UoBGl|aKhbsvKS{fO zDw=ZNx}9=wXnLA_dt>Ufl8Q#{yp?42cwvn5!uZOPMw3Jm`B>EK5y4x}*~^S7Dl2;n zCDXQQXgFcAUY_`kTsm*&g^InN1gbq=A2K(JXj$Frg{WILY4~;P>YGK+O}7UQ_mi|I zTA;#-CvUu>M!atdct}5UbKFA$Z-`PoZ$Y4??;MYs`Uu52oAo>*Xz0;4M^chF-(yuH zx$pCJyDkU9P+u3qx*U%%HIMu49zDKyKI|p+ycA`%62v`ywsBiiys4eP&wvwkt&yDp zi!lQ4o{8=~&5HDUygK$y_klITx85Jq*y_)C`_Y<35$DPVFDBx$4MTSgyg&Bln)z2= z*>}@n5jD%6VqLC4tZMP;$I^{LO`$)yc~)V!A|_@z8L-2#wX%^fRJ1h?ky!ana@XN* zEs5tub6j|VU$8#7B)dHny+aJCGlLluC<>YU9IC0?OenxONy(9s0JPRWF+8$v1k=Nt4X={^bql+%2TvMG=dF@&d zs3PZTzz+*7Yo^5o9+(eK(3H1n^kYr+X-B8fx@8OrQTyzV_08VbW;djOSD2tk3lXL7 z1kt_O^^ZtBc*e=~EE_zwCQ#g72$9sgZ@+bUaRyFFV7kwAb>TJ#!p8?H+;mQFLeVnPTM!+)Y=Kdvptcl2 zyXWTYUnJM7pN+irc>-P-qS3TdQ84NYv|;6U^<8EZY;0 zT78jPL0zAgm|DBa%G*Js>zHw>np!rVdCYa+e+FFxL-!;nXtrFt02`&V#gF!aD23Al z2uf$(CA=$MmAZ9o%wD}|*8J?4M#mCc(sEiJ?nC|W0JOJ*_yi$zV7Q^FIl|a zjY=%1-^DXFlv3%Es>e3kz1rP112lbfuTZG_@Syuq+si!fwv%Buc*`1E1Ai)4jd+`z zb7PzzJ9b`jz`o&d;AzMkuCc{Guz3k%<-)ry+TyMEi8N22BxQ+{10~+)x(WR6nT!EI#iw9k zU?31vZLWumQu-^7&F1i{fgQ7{x!%o>2hY^&0rK>Ev9l!0#NE7cZ1_1@H~SX z?=>ycDJbxa0KNZn8oC*9YI4=cS_15@RRn|;wG?@JzH+=*H~zLi`Vc&e+2zgh5>8P! zO0g4(Rp}kL8Z?HbE1YRv$L0C-t-V{>QxfeuT}DZH(*Shefs2z&$)%%@TWbaAYG*gg zp9b3vqVw(vOy@X-WWZtwrf03j-$btYYV@{)N8(?e;e+e%wnlN@XVxF8L;0~9xL3ba zHeOQo2{h)(mDOBZc>_3}sLogHIphRzw;gYBi zd2#K$-Rq*#0acswi5<4K zonpP6)P%7q^(`=xXYwi>3ZGl>QE7cLR1ev4H=7%B`lk;yhL0vz@Ya6P!ZsHd4>#IzJtN)J${ z=uB`aOvmhJvJtSNXh+x;0Gr6*`C;t&f#KvMq&&Ovh;vSFmQDLt*cnOpqQNa)PG0Dhf>FY9Kmr8P!tAcoVy1Uue!8;pg;>Pv{0;+SWUAti} z8FS{`tcMQ37IYmvraNFT`@x^=^N`+CL1nvlCGeffJS)qh*ac!Yp+N^G4b7 zm>jKXW5p8jhHy7`fWQCY14GYe03sznbba6fp&iCV5lRSxgdrDnwPnbEF$9!(D7Kn> zN!_U|P}`Rt_FoM#E)YkK{WUtnvnM-0U1BC$ z{1K<>NbJ$1cuU9qS?*Zrivnc?e5@1I&z@%voztBY9N`}ikd0qOzSYKOE-!^eO>+S|@K28YN4Zs6Hg{1v zU|CR~3)KX)d|p>0yTeF|Ng#KrGH%lm8;G(Zg~QuvvG8*(a`v=dodx-`6>CBSy6Ph( zQ=0O~7+HkDzpITkY-expCv*#Bz@pdWQ*A-U$n#w~0KV_kYKlU-q4gDHb)m)M6WIGh z28W^Ss7H#Dq9jNg-@G0<12MCkD=DaC#xcwc6dr#6v>$M+2{{{YQ1Q!Yt>l9=%MaCh zM9vxk$iLyN#Fj;!RnE_>%0wL(UvUkUiw(@AAnXBSXvn76BUJ#gzg7(*GnmFhM-V3B zCZ4qH(?L6zkBVv&?gh8Sbi zZm1g$?#8O~1nq|8LWcTgcwE2u@!;fS)fbq;QDts!pZ0dJPDwM%DhfHJ01DxIKSkQ(>aBN3ScC)cggdrg_Rn5E6Z{YHI&KQ!Z9eL z6h^2l@OxT)q{$nQxj>*=Dx^5cVGAK1<7R`@y`&E8HRdaj}x?ULseGk zpzF};%PPJcb5*F^b+~q%gK-W0eVweX8RYUP>UAl@R~7XFy(4 zu5l(N|I%^4!mx|Lg+D29X%xy7 zrH7bCaHJgft4onbB_TiJM>L3|@5#*C&&746b=1t+I zk`-f7_kV$-yLsj{T}8I@pi`KY9#iSeFXZfxRfxJzbbVrAWC&fWZfN9Yb1l4yd#!``$x;XKj6ruWj<+h0NS8j&G}aBcjt~} zkH1|d)3L~2QZ=ag|4L84LN%9LNrHUhQ@J}~8M@8ov?Ajn>I0MVbF1s8`Ybc^rqik0 z)-D+L&o;+37+9|h&!_J5y1eKNysd$*ceB3|K?!N;zxFoQ{qqNa8VQ224!q}kt}(QE zazbvtQV)Ui+PiyI5=CPm^+=(u>HiYM1H9T~HMz?q98_nlu8Lg7?ee^zG}Hyvz1J?X zA=7yWwy(_?PxBXko3-l9o{kkcR8Mra9(cjfHlW>j8WGR*9HA7+a-FH(eB2ob^Ee&Q z=D3TfwBKoYMCe?Gko&@Su1EzA&4k8DSZ(hhbwtr|}!<%7%n z?xqi2+?XD!)r?Kfjvn_Hgr;-JF01_hr)x00qd0s)B2r{pZK`B}OJ4|j!f#SEv-69^ z7joIu-Chp50UkLHwzdu;gYZRTnA#WLwrq(^>d1}iOp5+W5%7Zfys7iv*~D%@W+ZCP zMGBLjdQJV}NO1oK8Q`p|fvgi%$d9=OGAns;?!JZr2hs@rOT9@5i^5bO|H51P-!^${ z=lH`B7^B7Y5Fet9B|?#%1V^qPa_lRlvf;)4N*Dk2>J`#zZ1~C!C}zM5^bK#qurYE7 z!O_zxrQ_2?$$tDVG#rzVl9Dn_bdem2O~-z$65hK%j}x7)2d4Zjd+*04@V1{)J_So$ zE%|o-|LYBbXMX!1l{f6<&2$iY11c`>*xNTJTE$Cw35@*z;7?#a*1&wbscY3RAGY{L zI@MosvHx7E@730;Dk!DUV)mY6p}vCS@NvSwKe8@vmM78|AzhagGxd+f)2r?-R(xvm zbz_D`u7gQP?IAou{12WK_!riVVc9J$3NKqja8H99`W=sAa}OovHG5TC zVw~3xwl4Xtwv$p$X#Pwsw10(*51wRLd4F@eE&Bu(U^_%O+!xZk`2w_gdoWGsooTU0 zQMuw;xCktRUi@!V8LyuXsj*tiD_fd}lE;Gtt(Jje0?0;0fYxh4Zne!Zq1ss9`A}mg z&GsGqi79Vs#;%a2rP6kxEQX}%+F8)k9cH4df>NNL+$$P2A+TmSsYmOVns8 z(|K8We0t#i53qz(UVV=v_(5H@MZFyt6w33S`Pg^)wz_`B(PR}^_8NMOqQZIyOgSb9 zJbvagAmFB>K6fwTXcX1wWX0bOQwQ7o#p&`dCi-0?MM9dl>mrtGcj?agTFb!18>feV z1$M0ubXh^ETwkg8DsCUlV7nQyh=K_Kw4NTUbSALTj8U%Bg>YX{jXM$C3_@b`cucn# z<0uru=$J~(=n3r$v+6JD7BDl|$0q9>oh`JqZ%p{J{|k^JVsI4x1xU}UN7OU5{+`P{ zvNfMP&6JZ0XV7d%kLsSU`d3r99vC<;y_Y@MT!S?hn~2qKZ(nR$iuzVwP^SKn&t^_X zwS^H4Wv%{l_iBd~O?z$o_cmM?nDAvB1a2E(6z%1oYEvfmJ6Y@BMLrMmSv?5{WvK8l zD_6nI7VeBU4xs^d>wyt@C*cMC2-gF|p9K+xds!6gt1cXxNVlVq>8*FN7q_q4`epla5v zs?kU9{dq;}KWOzyU-uSozw*EvO#Xh7s}kZCDb7*Ww3QMs-`IQZ!2mzHBhy`!9|jOj zm@K>VN7~fPdCpp7#_Ao(w>7wp(UEF$12cH1>6-Oq_usxkv>C=E@1pc2SjnJp?H8Hy zgkk7VS4X*$*YtVwowv=~{^B)J7Sh`(dwga?ka7I@(*1_RyYRt#KO!`1h^7fOvZq2? z$D2YONSAz!jDajW+FfUQH`G{YLh*ZLK5lio&XZWDhZFFW)_X7kmo*B3+Ghh-f}2BM zsOT(rC@j!vm$C86>dso%FAF1w*-sLYig!_}9IsBBY!cRX*3OXwPQxt9a!H#G+o-*_ z4Ibz#y!$Zy7#|fW zn=)5gWLA^58-JvLytbVtYDBm{)YC5o_O~&rx#(B2jDJ67M;H(snwbwxlqVE%bUPiH zeTTWwVqn(!F*&0om*sVd4ZOKnS_VH{(7-6B3)47#TAU(H3-}Y0Ey9Z}XZ+iiv;6wU zma9g0G{gXGIqd$VeA4EZm*~T4Z#Kelib%0>ui_!p&Otk#mQel#`bo2E?FHA=5Lc+` ztLI-f17>uz%Y%w671bdMe45RI)~MmIcymdkk%!S!RAWk!@Vs^Bz?@#MbAcK>O-sj4 zl)S*lO`wFKp^TA~b$D~NM69HjhSSEh;KjZtUgasR*OuR#oYFmT=&7}vKcvq?caeEsoW0 zP?tpaI($FWkiLM(g=*nd!2Btf35Ka*reuS4K`?dzTZ<_JNC!<_y0YaA*0zo<&kwbx zGO#OCjS)SG>dnAD)DbMWf{e^Srkxpiy4Gyhpr0yZy{R*qV_Ko*0qB)e86E!oYoP|B z05iYNNC}P0puxHZwMxXF8w5J9 z_qK7i?{Q?nZ0uaa5zR0c+0FKbM@`kj?UI#fW{f&BEg}=CO?YZYJ9zBpgO-Q5NU0ML zuxP~(dN25kKFQc`x2GFXAp=*IwVI+K;hGvb&ZsQJHfl!vE}0x(uz=n6F5ZSlGhf1k zz)QsukRqjL&e>YPQrIxdbxgzlr^4|b>Cp%B1YHY7|Bw)Ux}udH*xiH}1|jf1a!Zk; zAnYS7$zuCPeg9?xY>?0IEij9T#Zk~=1;N0Fvgj{gzwY|?`t(a3`D?X5tKLPyBB-{B z1(b8EDq&YdrdKLcGD&*txhvri(PY<-PeU#$_S_PbjtqPJB2k}6`95~K^||?dh;tKC zsQZk(N1N0RZ+tKP$Y4Uq+Knb7_&Nn+3rfN&p(#u6hKz4_czC+ql*)w={A(?Shm{Z` zTvezka8>CZ0xEH<;Hc~#Z+dcAk3<|zHv1sx{JT(mGFGS6K}gr8YVVZfIySapnBxqx zfOEY4$pEo7-h_YaABGb)@-ZJfN3B^uEy%(V?EO!=q}*bFeLT_jxAYIM2ijG6Mgq84Q=27UAQwJ=KFZPb^$ZxK)h=b*>IGPZT9~BzTTY2zq z`5qqK=1=h2o8W}?j?6ZYq-e+`@f3|w5}~%z0y;= zU*b(%jBzk!)+7I1e#}eY&|AcCKfDotCJLwKqeLBw9SFSlA)^DZ4$REV>N*EWw?b_V z9k(dYuhsUK?oB*sf7X$<6lFcWpYA9}^7DPq=xiZ3SdSK$pmmt@lxo??d0OvU3X_RAMNrD*jx)* zHMg>v9vlVQf8WQU2xNx0q&O0O)$bq|^G&K@h_?L9bB3*{%0$nE$t+)`=@^3@>5)8b zsfP8M`B)xU^2bu=-2`p{Lvzoy-$5$jz430Ka8P6aBYA8C&zQxEa92^*q0bY=+10#V z=a}!++nqc3p&;jpd8m@UtKl z#9;DM_Co~V1OnfgmUkoA90CsS+6>(W7*1E<&NhpKEgfROzlt7RbbwX>}i6^TafjL#SsopVr6U{yFOnvDv2_D zsoBX~el>5d*ma7&_F;aQ@t|SGBmBiF4enhI?d;!{lil`qc9Mv6#`-LWt!4bk=~0pI zi9fY%5V*DU6e+VYSrEbdLwo}sj~hx|SFxK^4;?eZvk6$d!kAoS<9i2bN!NoS1}#T6 z+%dkr&ahr&*PL4M-b~-vO*0-)Nw_A2I?MkNeoXwF&uOcqdG|$v*6H@l%;BVuc_pgN zB-~y>!c`D#DAe9R9mh?Z*fO2yMA5YZ@|zNF;FrnaXM=Ylc>D z`acaNF9*P5k6u?|7ie#C#+im19ceG;cG9s^O>8F8ka%028N0NuJS62Kefxgm0E|o0 zfbxrk|J#703FDy9nv)F@9k5a4pwh3OG3mGtl5eG7!5czof4z-^J=%CL{gBso1Hn}0 z(8Jgl2xS3sWW?AW%Lv}x<*YPUaH!jH-~Se2fAlb`67iSO@rIxd6*oPL_YgUGOL>b! zRt6&qDP7PBuYA4|^_Tw7Lus?8l^+|o++&e%Bj4Cp3#iyq6(GnDdTk(X%K0ikN&GgQ zGKYZ!7@!}m~rR(9e zH}Vf7yKWIx^WcNQ#366+%xU=TMts|e9L(Lpk^C}Q9@^tr?gZvX(OYcbU;SB;pe*{8 zwnRhPQiH^!msBero(p&r)D9*w=Zgud{d%NDOphKKO=6J#atT>I7k1+8_CJRuf$d({<_8cqY)Ezm3NU zK%z#xmi*SmZ)87KnDg8ANrCh+!BsAu>IjRVsc=SP&B>$?r_C04`SUNXPbS-M*N4EX z4Ae*QT))=X>KHhgYO?!5o0n4~2V6EFtb=V!w1Vq)O-x~~CX9qkM10m(iOvP)ve_u` z3&tqF0G%>@T7gY_eLS~gD5fo+L2Or_4(R}5GeI!l71~*q_m5>V7X#8Hm2+RYs|xqa zs2Pt8Z9_?+@MV!cFZPJ_=kg{xrGL9UB0Q1>JXevuw8v2Gy)vc=kf?<=I@vVSDiIUJ z|FCwd7U1+}JK7szt&2?EnplE=+2M-zDr?`OuVyHsPpzDvA3XUdkK}fqSrKKgZpg_2 zsnUwiG@e7F>8BFMgrlOu4L6!(?VNqjYrTx>(6`urxq8^gDCDnPZ^F#`!aG^k+6x9wP z2ior|mk9p3P}-474lVwtK?2~!sd1(P(gdiaDvG?f;PqoMgbC#|yxMX`Z{u?Et+VN= zQq1aUAhOTwsywY35`1fMXJow#A{0eyad(3HqIap->Cnw^g9KXt^~fM> zdT2dRCfkH47uW8(;#g%+jK>cVyp|bS&6_iM1Rd*iQQgFAwtG`E0mML6{KA8GIp?P% zo$6*ZzzlkNDCf^rmBMYkQSh}ZTyG|J?3Y%g-rzEW+y=YJ!rqPW9%r1_XC9TX`0SoY!jdd3d$u!} z579opMNl~_q+R5z$+}k|aj&N7u8x(NgF}^{Tx=MIWx$U=RP#gS{t`C=FU$oTq3S(y zvE`!1+ zpM$_n%PN1;cn&F2xND=iQ!o&*lDDU(CT%!-E5(g878qstGo7*@ggc-`&v zEs?YMrmYX0=Ad?`$r#yPsZnna9iv*e3IRbCs;zDAQNNc?LGL11RoqvI?B)plSf{`` z8~DJ%dO)Ev8jh6|(8#0qrePRV)y_8JY$<=(B=WjU&Zkxd@{Xq6Y7k@8sNIOlZx0?Z znOh7F?PpJbfnzJJ+Pj*=unh;4XF#`U_v+lQJ#-Y`{K5R~=rR$eUZJ}>=V}w>Q5v)< zl2_Zrw8pma&EDY+NDln!F0V9~e{%ky;TxMPg)y&H;@lx8kYDk$trjTRA(8wzlq#p$ zd|;>o^p~9V{?e*=%qSbv5_N#`du}l55rs=#_yMS2M ziY=&3KBi$bYKbp`J5VSgKeYJNv8NwUu&l@9a(ugv*oezP(r%4}r_Ymhq{ERLjGEMr z366_*@1dD#MI%YA*?ExVPZ#bEhy;3fm)4oI3vJeEv#Z_)#c=E?RwU@&pBi)~VX(Rp zbBKgXVYdb_j$ulqs)bqE5$0RVH%)=7H8wGQLwfv;%X#c3)~jjO=SxXo)w|AxxK@ycDE@?T7bcRW zBprQNu2pt5vi&EYsX<8EuG zel6duJhM$17O}lM9?6d}(q8PFNw0n)*wg=qEu_ZN9y@TOfT;d3vm@u_TkfHC%>+? zj$T)_j)uwLwUYMjcW+zm^7pqvjbKHqc<~a4nM{15ZtP1|ofvfmac?z`9?W{W)QUB~ z+HQfIid=B5lskm4LDZj!{MsQ_^|ct zr8kYM^MOfrjTmYcXA)y~2P_?^k0rQQ=4+)x;WlC|uRru~kuB9@S{{>c!tTNI6d9n- z@T<QA>q?q?{oqU1ZoJ^pv4i@uj0`lZXU6l%PF$Nl|`0i^0-!c((onga?w{$4RcySLKNMBVLM0U=PkQ35cY&>2 zb41uT7RT5kyFY#sPtbt`zFVRehb=#$$2m$h4Qzl&J#BFFCZEAQPrc1lYxM7k7|9OX zTvlFw%@~)hN&+oa+vSgyje*cV;zM9`VSpyzM*QGYB4HI6gF+q!OaQvxm-OG0+b7Yb z{knwW?=~7#2ZW-pl6f*kcO#`Wf6V{ezClqxc#fz>Zxr1n?qcv@ek}^wF>v;#F*SjW z<-g6WI)DR(t21|&@FU#RIDlVl_k-fBgI&~lEG1Rw%V2K1SX&8X41wcX1QXhM%lTY@ zyjg>@111o`3Ia3(p8JjCATO{O zONaVrr|h40{v(upe61;u#oQvo<28aEvmL-fUpK^Crx-ueyQJzB#en=UzrudvX%pf zp3_=yv#wLaRg9_PYB#}&>?#MN{i|$&QN$S!dBj@%$%TyV0`GRseOBy(s#4e5M_Pux zk533q)pOTt=a!$Bd{7L)V3yzauU6X3D1xpAX=Aq-*hMU^y2#kolZj_(7Yt5Q93@xccCKprZ-okQE!VrSTfDwdgXAh+3Fy{S|+ z5?l0n<_j_)#*9_nl7qA|>m4lxwJ;z$rk41h<0cW-5EbWHLt!w#2eN0KO&q2=Tgy_T zn?ffeE*hCoq)N;Pa?!ah$0RVIi0W@NhvKw5c3AWO$n~Cuta}KTR`x$**Ij zWW45i(srg9t9{da+X-U?mq5zH;FV)!MwQ}P&Q{=xL+G!$&ly`Vk#( zO$sBIejFc1?*5w3uGfA%c!&FZL}%1k9p*VW*;T#Cq!jb#Dpfil%37cjxn;~`LeVV$ zBOVNIPf^GUzyLd9H#U9O@!c6E(UP zm5+dr`Gs*;J=HX%4%Q}9hapD0Z8xeKKi-d+I3;OtFggSMfPX3xFNG?pVj^7fB5W>5 zk$&7Ct?NZ*)t%kFl3!{JmMj~4>We-t>_r%%&;f3oia(dc=!CHby%POU!h_Dlv4A~c zcfPI~|0Cq`(|O*>%ra*C@guSY#+l2_{W0InGdqFK(MU?qME|B#hra#xjnMoE2V6fQ z=bA->6NLj3WwWa#^M`e&iUvmpK6^NbNv|zY5F-6a7n@?d9(cFT>}3z?^I&BGV2CYx z!K{3=658wuJQC+*ksrGZYV|)tudQl{qK(E8su6HQoAR>6UHO?>A2Qs=VmMpG;X#l+w(Q01QgI z;26uAyOjQ-KrA!Xv$JV)35EPT-8%lN1F?hn{#e?*`wK(lXZ=^J#=_Sr?ll9ePCiIY zWg&Xn=##Q?MY@gfp%+Xmj}h`R_3qD?0zPNh_8(4%PHu%U{ivHm{>lQh3*XOY&Cd8D zj6HpIdMrITL|^Rpo&j#MwF5YY2Kw*ew=sAEFn#4=(Du5Yo4cJzPq(Awf!bDv+(PBW z(fO8IxN{6qlB8h4ZQKy56HPMmp});y`(8(b8 zpNExGxnh~7OTBMXjO~bIW@luPP%;4D_HIH4Lvy)g*j>-@ob->)cr{Y1Vd?rdo8EOv z7Jl?*9q_)oXZRIXX5@EyKR?-itbYsGp;o-BKzi{@1v-~(^vw;L6HlZ5F3Am4yJ&!VQ(2_3d7C zU;htOd_y#uL(lr%`~iKDae;KW$OArUC^LJ`uTSW0-m^pwp6l2rlFt(^QiZ64j#W)} z=FhP$cZ@enTcIz(bK~8J`pyVsf&lFMm_(=5Qu8@WP zp#v)p>mk^_-VjTN^V(`i;V41@jt+s_Im}%=vSJjsGj{sr7v&wgc={LBX;6A zT}3Pqb5Gv^Lhk-7Yfs4)opQYWQ7dbFUA4~4>?96Hd4kkv+X97=%4Zh9J%2|&c@B=P zc`YNW`oMprgBk-FpZI$Hdu-CI&Rj<=Y;wAP+@9m20UoV^vr-MTut;qn1o5 zu;j1etKl_OM|vEw?Ht3%AyGq#e0nx7OcB_%(^i?i#+AvvPNi>?4%43U8t+UFA+inN-ap(wZ)*&TTP5&R zbnoctho8iVWpIRCTjyCa2Y+O&(?2E!a)-SOvPH#?T4u+P;bFcy3NytAcIThHJ3XSI z$;EFT`Z_q%(HlV;4^kbvy2y(f>;hfb>z^8;kIG*YKLT-d26?3lf6n*eH4^>0cKSh1 z+hfshBfUHO7K*C|4YrHIORi>}qUrJXyia!uD#LtrHxCDcQ@=!P!cZe zwrEZ}4S>{Si0#?K_@Ug=*|m%@CD^&-*Vj)=(an{uHeq=aQ@|IB#?y}z71XPW-ZMEj zCc5l%M)Mx)M$KM$_-~3jc-jUW0heR$wuPC@48&7S*WXrQRQ$P9x%VfHkcmgabvjd+ zr3=LKviQIS#Y=|6toEPm`t|&cD8TFdTfNdSQJm;CMxp73IH`#yUVdQ@)uMyN9&*-zs31GPVlTR%O+%;}W5gKI8&;PT~r$R_4`yBYbzO`6>4sJgDSGAUL)G{17_TNo1 z(bsDXy;jSDgtt&^^wfmuY93Dusejub7m&a0pf2o2w%{SN!jy4DE?1UpUyn26KRvWJ zlxO4YH1w)4h&ZS{4Sr4`ac!XQ_9i#u%m2}m8W&-TRRGb;7?hQZ@@kwWt)ntkLL^80 z;uuFe$-d!oqAG(M7L$X-qXQ!y`~;Q-!xYp?D%hS#CK+Z z!$Prp=AxX^N}~_nU*R&>XnZ+owhQhz)CLWc+cF;R4E(YtWqQK(5B&eI5@`&>Y&$dz zq&nyA42`dHeaCL-2?w%U>`xhQCX}9L-MT9bFDpVQi2iMYsDHfb^RRr3Up9D1bZZNI z9zq<9NM`Cj^?kzTMyUsRAA2qFzCr!lO$j4Ai#RVGHh4(&ioRN-obR62PuLE(8+`{| zp5WC={kQ4zs^`N%cI!^Mg46=>z+N!76J|IG6;TZmrntYRTwq&Wb1g#gw7jw|W7vWn zPlfXzg&IEEuqU`q=LS`{kS9BNLYHhIQ`}@RoSiEnnh+dR#qK1Y@k$r(;@fski^No z3|yMB$^Mu8<06{nq}P&++OF(Ri#OMw&zE^lqFfTW|81lEXn>+T6qG@EEddZXKH+8z zV@~*aL@~eD-Ui3ZKr)1F`Z<}S&umC316hSh2y|HzWF+2yswPXseXTz3z8d8ly?(LK zG{)W8KE~noF*C7EX75*&&vw2Y@_7}K&En|3Ip)P%owlK3wvMxsLh)MK?L=kQ_@VWD z|IIGQ>5nsogJ-?phU2@aV)L7*cJFDI>I=9E&gLO)4+F*Cn z%ENA69_MoM3~XNYb&xB5*;J(rMNYZQ-N*1Jo3A4X0B!mYjzbZB;x?NLB4Z9TvG`8X z%$nM1>F?G|R;6g_+MO&)0aXn?-XD^NRxTRXe)WCg?y=8CYXFq?ZW3R5JoA0Jq8;=vKcqVU}ZBsIrRI$UQ-lbuD`QqmZ7NZpU zV=QDF)76=B2N^hCJ2iK&#m^vqr#hqX`pr}Ut>Z}+xtsE~>_q3oZBm?Ky<-e2X<(e5 zAuJgZfy(EFaqm_qZQ3btitB_zJ@7oXd@Y^I<=Ss0H1aARBD}OErp&h$*D)7&it^Fn z?EKojFaeW8Zzd6|*gT4pjm|6ob(2Xm=*`8!T5}!wBF~#I<_?YJ-h#yq`Q>to zSUgWRsN%0r&M9~hXyqd*sa?)+e=?>d+r3W>vV*^bn!e7^&gS=ox0BMwH9Bn7+Quo< zR{?S7v8_7{a6)#UzEOECVSK60Z{T~<52QmvD&Vh|BJVWH4A7IAtxhSo>>ZnzGytz7 z27Tj97A4g<(H0nKCGj3>HHxugnlT$=a`BS@bSrJ-U^*O}&`_Rb;M{ojAiYZjZjvm> zhKw;oxxtdgdll5t5dSDqVe%H4flJKAQj(t3^@~HEl(pIycmPqBfF)Fyz-L%_P8lIa zMw+bqn{gqB<>oY1I>Lnaz)H52VHU8QshWY4wLDCb3|^*n8>FTyquBw&h%+hfK_GSG z?G=k$f{Q~d3rCMCvpja=ty>r2X7BTQ2rLjcqGYdq#-((dJUpCRcI*;uK9Q)K0sYNo zppC-6nl!)@m()+5Z(;CMiZehbm-^r>Ls7fGSokwfNK+jRK^Cu&0*2TX`B;D>|20u{ zE|8l?^z*O^=5VvcDAk?=c^Q~FRLd@69N9zcDp+8q*TYCRgffQZjk{8*=21fh2x8N| z$B$}DpP)RUKG3c7W_k;XG2N|&naN=#zse9aX%}36;6Cs+nUJ{8RRYs=#D$3#ki^|u zOzMaAbCYg_61%EY{e1C=@i@JkcRZx_v@sOxs`cwItv<4nL#yPTD7h%mOne+l3y|2bOAs64g1j~GeJv9Bb z{sha4d6}$soe7a(%M(ltf^)ui!F>~OBgZHjm`pJLAlq&2ollw#DhQ5Yq#VUolh+(t zsx;|`Q;XlqcvxMAj~-v9$C}x>(GS58%$1MEuR4x2^y#V(6}%=%q%Sw>8+P~tld!?& z7t%P!gO-O^jXLfEynvO8T%oijsp25meG-t$-iliy)qJ<*jc3B!V}we7%VU zS?JJER7-Q6Y?6m+mcNASsRn zF(ZEll~8R*?kezXpG!XiUgpgW+t=H*gBU8tE)r(E4fe=tA!^N>GCs2?I|$auZ;p~O zUHsG^y$%{f)XVL|M0wn$WZr25&{Qw6u(YGgD4L*hHa9KHj8GO@_C7WK+Tqq@Xq*FQN)o zzVz0kkR=wAJOc>1h_sVTECU3CkGGrYLmif9l+V{G2>;W`7`GIS3Hi84S<@3p|EtIa zh{h?kze~zf60`yxd!4TJwq34O5Z*~@@trRCWcdj{3JW2RJueQm?O#70A>DM?JwVA{ zKXCPc*a1in07Jm~WzZUp*|)3Qi4UpWQK8p}kjzwG{pyiQukGPi$4>@q%Saq$8yWok z83pAFnWHGGm!L>>fb9}o@gpAle_#-tB{_M<`2WTrNWtSK6y(2p$<^=A*x`H}EPK_o zSHfBOg!iBijm?xEdcHkc{dsiUELDEoOzL+%M{txA&xM)v_dFK}rZ0K#WU&hGmufN} zBhQ+Hid$ND$*d&wXQO6`TP(`^KUV%-y_u$Suzfjs7Dj0Nx4>(I`-R@F_A{oxo(qsSrdks^o}~5)`^8VXzhK`WaurI9A?KMxgXB zX3ZB)t(dncNO-k8s-9QFRwQ|B)HkYYz(y9#f;DQXn;LTv8<-Sxc}^b5r5Jl?L?Kc? zbhVuz$PzR~AKUJHVr+k8b+=r`5?MctGi|vXIPHcux?&+(1jqtc9iJX2PKf~Y$9U4Z zi80jPIe$Dl-%CZo1L?cZ@;QDKSF=TZhsyokkyNH1F4c_5Ry__O51S5#>Eu7LE~I}Z zPMBPHy+Aa*7AO|Sl0m&sMQ-13oSFEmYSFT@-3;Z?;^P&4S1jL7bA6EPGz8ggrGtI1TDVbM2@ zN5~asi^%uuG0lvA4LDO-Ci6zR?El$kQi(vxJ#nI$2upL(GeBmCK(SZ$#+xK+x zBjXV4$Hc)ksMsmc6beiS2~ zP~fCa)z_aj`}_Y`?(dk~rTaW^5%AyKpM?5e4jtuY&ca93KpS7F5NLRR#&saUb@(CU zZv70-s+s~fniZM39Tu{q!gNf;GrFd`6nxIARCWJ{(lI)=0Yx2ewv3f@)JnD(FqYFZ zt#`jQZP!^u?56k;uE?Mj_h=z<=03*raL%N0?XO5!to$f>!m;1Jc;CCvr7MMLORvFj zrH+p0>vuyn0fp8-Kd!N(7P8F%GUTJU{%kOCRV~ zTuE1Wfo@FdEi^&bF;#?345acKU(-t&t-h(#!sP^Z>1_*8Zb$C0ZP)I189F}Dk*-)DhiQ74RXI+ter2h`+|aO<&G9c z)>E%G#uOXgUr}Vugpo&Ea*Q7NhTyvFtPPg)+LjO7A9!^V*m^JRKiUVWwP})=qBS}@ zaE5C4hzanpr53S%(rZ$0k?AXdj+&JXc4J#b<`$v~Ljg%QZRR7{vdS*U{2WjH7t9z02OnXZvQ|-nc(Xy9Y@BrGu7k^V#@w4G$ewNSq%)32icL9HLJfqeLiLYn9f<23c{6WKxOcwjBX5KKI$e;H z{cpOn&&8wHMc>QCIcj}s<{8YqeaVnuR49RGk|yS=mvOKr4L3mwdA__#x4xt9{=kRg zFjm~6R|lep6OqVyJ;vEMBT>)d-&~N}HlWFKd9ZDKG)oX%tz*`=F>i-$hdk&A90y35 zLFXi&%AOMybqH{%-XOD3b^$`xvJV6HbwY`gc5ul(2rUIm?LhZRtput`6(YX2+uG{w zYS1w}jqd{u12bP)D^{OBCfxfb3p#TY`goOT3_8ywzOUg1VnPXbUUKxrtS;)PDrv)? zyJ=ZmSQew3NnT`aZK4)ABZ5802cJh4K-PZGR#l4o2MmJPEr`v|l#TgDC}9{SVNorH zSO^6KtcA708O7g;qaU9)<~b6~XgQ2v`;G^5-Z-tTM4Z0CNisFEe<77Dd6sII7toCT zW|T;Bu{9T08D^J`9)G0t44rTpacXCKY>jEr8V94_5QLj5rPDuyu8c$u=!1oO&wN zjICF}=;ZswMvo}LN#GXw$xc-hhvCAM8z@fW*~E2GCp1pF5CRAcY>@{@fNi?3AMBI#{fIz{?vrM+ zR!G#yRHO_{6a&g@N>+oIETx~fF6rQ}nqO;T2GhpcI3SmX%^fUQZRBC*B{++%BBC(H z5Jbaw^1L`T|Kv>A=XAT-^fx(Zm$9k{*0cTci*jh?dDADbtgKS&Tv+DGWGc_^v@AM- zmtFI0tv7q3hxpBvpY`qRNNGWRjzIu#z{@-7C#9+s0H`pbA0&gJ^+cDJ7s^j8`b3@M z-7~GS4)-6diArx4jjwH7DVo`p*P5xP4I976SKV`q19B_5vI#4MZ`M)oWON;8uze%` zAGBn&N2tN1OtM!xNnmw?^UA_4yZzR7g#)&>GiUFA01?Gy`Jn%U6scxrNOmM^dW|Lf zC5x?yjl2sZFVP%-Dg;Wy;HxfBEE7Sr7XIBV6JG_IWqlb3%$}G(Jxi)kOT^jVs?_{+ z@Ott}y~j?4bmLSqElH2iAr#-OIXUiOxXL7}o2+m-zdq|FdbVnP7sWAAaR8hZ zkBvqS;r|C}^H|k&w3!|n^1VY`Q{BtC8k~js+vmP0m{m5Dx~l7z!L@gZO|*Kj(35GS zbUb$8iT234C{nYB?~c332gNi#JwpYMiwT*cS57A+d^`{_p6I<(Q(~%G#@vlN%7Y>}K#8H#hR58OaDMOaz3SJo7JFFi6fgZgebkpuSMT#D?pFrKXcPU@o z8y6dcr7UxsPGtI+=xxk{SqDb?6r0dmArQC5;REsLO*kXOSJ1BnoNs`T4>K?!6ah%t3BZYg-Odf|yPotT^)|I?cuV1O1YPUnu zcplbBk-Jc{ji<`nL*lj+HJE(mhTUepkKPE&LGjTrLHJ|3;B9`eFo7BTP^yW0#M>1; z7hd5F#b_BSR^qt9pF!~n%%5D;Sx*jmhw3fDXT>6!KmW3z29F-s9I14}Fx1!lfWF3P zL|%t_dPbKm{ALh+N?5-5ELjwp=_}!~&9wvx|A^)ONG&s!&LL|kJfZ#`|Na+Klt|$GQMZy#R$7T1NL}Rdr&#G4>-Oug$Ug4Wa)d9tI||UgfkI{(Y{LJNf15>;%-A`RA%j zF-rQrWVjf|6GW*g@ZKnWH60ug5b55XwcZ^sS28cqH2^I)0Je$Mb5xqf_;$t;D4#{w zgAHuTKY55O;Mgv}+819TaWnCL74j^~m)ndBDekP~U{f0EJQvBPb<@X=v&0Vb+a|HG z@pAktI?F&i6fZFw*=jC-H&A#zc9+oY!q&75L4^^a4N#xl*M+53%d*tDkWQln+Z7=)&S+uM&MD5_77Q zpQg=2qP5WxG8XxgXRt~5K1`Ws|IL2D82y|5AUXlt&=U9Z8k+u+I8G~=`7ncCBsJY-;W{0t@B1$)Ll#R(wngl6G;ABrG8~0El?k`KokLPTPZZcG*B> z`$JwB?rT0!UgK!7nkfts)VjZL1x#`sCQAZFvF5~8A&~%b&cptkc1rxKCDiwB2yecH zcJLql&0r8(?3ut0AoOQz@is297xOxPi8T#Q^JIqx=}9&N1O~knwT)tRipD@b)$q}c zvHAq(ro?7Ho{$Yp;0q*|d;Ah|TY+vN_{Tme_kP`d;yk^rzb&XdqXjxf1EX-SY36sv z2qzA{xS}4JJ{91SAFZX;4A3>aFv~LRNtHBIQew^D?*Qkc)i_D{hiSIFbW6B9mV2XC zp=iqK<>A$9`tTSN1t(wWSLwTwNg|x+&&S%5k}1q+L_EHYyE@o%qZz9XMvjs3h+!(G z%hu*oGdgf8{IR1M!qPR<_^#xsI@c0$eAbt<{5$51pq(Yf1}16c+>~0ptn@9hZ)JuS zXJhL~ZVXMCqRPvhh!^l@PBbbq^7cB80hX}{hS*1~xR*KFf)q@KlWTIrs~fJZrOuO^ zOn8L5(9xn+_=(?bq(7x*8bIv-(uW61^3ZB(KU*A#I9jxT16BSJIUc-Ncwf;91&Cg_ zhXV^?_~4ucZ`^gi2YhbZAYHpwOn_yc9&z9R%s3r1sv>qE%<#p)BA!LB1^p2W+st9m z&oALPR?eL7?}eJRDk&v~^_vksuT4l)7!5f|sBEd5pHy4064fBm#dm+Phzbf3{0UdO zbJ9o2Joz0M&2v{LHth+LziFg!s3PTG1e{M8Sc*~0qB>7Ts-XGYjx07EPnViSrwIR)<)BQq=wTz{Kfa9%J+MFC9Rmz+8%qr z@#G4NFjO;KhHJKYAB%?!7RE8ZH_ zeG`_Qw{{%@rCM7_2rN1RE!JBh<^av$tvg1HSE_mru3A12lB$ZDW(Yh4;2T80`D$nz zOcaFAVghWvZXQ5ZI$}&19G-pj)Txr-)(gdTKIX&x^_yYAiR@A{hw2qi2X(BJ_@0cwBHjtNBq?F|vCBrbB%-oJ>r{6Y=&|klj z+^!eQz3h!Xn&FGSGBzvF7czi&z*5#@ zb}iD(Jso@ktq%ii8GlM`l|PP2cFz%KfWMM4t5cKf{Yg*MXg1zsTI z!6Z$i7+*j;0!q-cz2#z(r~NE-IN2522V^#gdzv|^Llco0o?UK_ZQRS<7c@XREikC( zMI{sQG1OW4Eo1^Wxmw`ZPGLaoN=%;B!?9(L7y!N5d67r|Asr;)fbXM9(7?A0yPwNy zSOTbnFvjc~6G2gA#_NzuAXb;_*Cjc9Z(kuPJc4>lX|wDdi5*7d_Dm7_{A5X(<0=`_t)Xe zPZldTXQIasM-V4du)F41btfDhQp8Aj!IttuFuGYnuZAY47h`Use)itm8uuM7RaV{q z7zH!7FEk;%`x6@d~5P@;@e@;mm6Yi zI}}Ic=5(r?cB^hy1#YBL<$w8Lq;^8JyWq6dl_f6asrhd>3N3vJaXaIRQjH9;8`}1}jb?Ecd>4`7`*P&Uvd1?$le5IG4{tfO4>2 zgcr?sj+|S#Z$sSS{z&M{q{U&~(y4iqwQ5L|J_AgI4u^G}&}D^-48dVcR@Zw~hAD6D zUJz7<2dksLp1+fHU!NC^ud`FtV2Y4sA_gpm#UTjWw@4GQvtDO{)zQ^PMPC!sb^jg z?{nmLc`{1vxBvt7pbFpA&G_M<7e^H1S(Jah8ck%{moR%MJ9_@}ASn#l9WEM7)YJss zuGZ>|=r_^s#=u5k!0yHrj69%tLj-<@Mugl_UHYH<>+M zbjL!0a@*P08{4hKrxBjk7fWudnL%3)sJZ3bF^)HK{B%z)SfcS6UQhYI7VkP;1+TWF z-B!yulaHk(w{)M-+Hh||)C6ECF9b7l1TWtBVGZSH&7fi~7QIJt6W?g-Zo7Zbf7yCJ zvzD=P9eJ`43G;M`^Y~gXYUZA;rtOrVqE#TvOX!~5?ZR_~NKxFBHOkQ_3orFgv7q{m|ZO#IF$GzL?MRXh>d}#C}w4Mol)+RdNXd@ zhwv#|zjtIM7C2<%byK$-ME!Vh_j;XN>_qvxTcDLyqAi;2hQyEV63({?F-uSRa3O>~t(#84S)rqZ>(3IFV3mt<7A8~ZNj{Jl_JgASm%fDA?$8-d} zZId!l>N}fE@o)D1+y;m`rT?D&0Su9~n+>;nT7kisvGcuqYA0BE7bg>DdZ|_GB_k!O z8#{vJ_&#nEnVYGZmR?#AH_#wS?0q^3j}@sY0-*0=9HBS+m^KzUcRG&$t1rUS9UG3r z*>Z_h*@o2!mg40&O|3A1Xj}9sET!24(F)Rdclnp^8P0m7T?~1Kv(#nVewuKhml@6S zgYV-TziT?vQ}FN80zEUzRFu$TiewUcSh#jM(A!Zzduoeq_~Qgbo&FvAJrqkrJ`LsH{$Ty@^lK_PoxnPLl37sr@^yDEYO`<&8QJ zDbu8Gc2a(EdA0`RW2ob3W(Q8Un_|lhxCYfdiCyjETne zI!Olan98A0nI(1x;XPtH|Hz4~+X0hc@Nkp&>%))WmA#9nS8X(yt-a#1L6{Tzw+#2; zW?EL_GU~pkW4>SS((kzHujhn*HVGDsD?DI<_h+6y(8Re$+UM_YUK}p35ZJ-!xt;2- zuK3)@J6LY0pDeUJ9h<;ETz24|KCIrAM>udn&;9S$MBXXl=A&y1f|)tiNlMw*#D-tj zi*}jhm`&d@9!iaKZ6h5ggLKAJWb}6Lnx^h_s0H9LKQ?a3pR}!M3tJGHq3#@fXCwCg z<)?nq2_4EJ%e(IGva8y@*900johK$ujB))7bsJ_1tbe`^Nm-Y+TtV-C7Othu>orqk zMr2B%&l&2k+1^E=-2&A3HYs~BMxJ@&dZRwA{al#)g(s8I-6cr}>VpC>V#n?92f_7n zG1G_^QlJ6!CWXENjTcH@f69|3Ve-97)>ERiZE*BiMSi=X$bq ztP@RDVQe`sFO*rk7$?RXN1Xd{H0&+}@q?Qv+u_N3eX34K5SZXo~r!Od~^)t6~v9+nA>OhLGCR?HjbNM{bjb__*U~~Q8IE%aY70T-(;J_ z-5mm$jcg(&oAxG+vjlqe*(jYgiX1abgFooY)9hBqg@8C~z;^rlI|XN~!?4y8c$2$C zxXH*(oY^bQt|B7Lk(7@~XMj?cep))@G~00sapb}WK2;?Ad%i|N5PWG-` zI+KM-(NzK;yH*W&Ou7alXE1Mlj8$ZoPwn z*Y=t@kMA4wmgBAb1@zCa2Q2zyCv`YyE-;K)?5-y;A`P+4NolZrZ@yF-5*Eed^<$k7 z4br%AaiPFw$|wp^o7u@ELSpQjoO)l4QT|4*oXh(Ioy_^tDDOUV*OQjxsG9Csvu4y% z#3YVSKH^(~`w^kZk^M~0+CDc?44Y8KxZd#hXkopvq8Q0r!Ho&aD?u9$y%+)}A4Sz` zO-@#H&z8S#WKKFrYBfN*6E!;k?zog`UJb>tg|Ru;RPBhAonaxin$hiHutrN(3J|1p z&ZHOdTb7~j2~#ib<9qD)aZ<1*ft%mLsE;UBw9yL3T3ADgok=B>UC<*G=zrAXiRdDB3?BVwwnTk&%8d67o5wKFoZ!TOHJgy?fk8xcf^s3h%5GSUKs;_O%FKnQv zEo&1&^o?2~fg*j($SQii(dB+g?M1ggYk2RzM9Ma zh`8aXjeKxag>*mkIt(JtZ)6QR_xJRne&bj_vbOx3ijXbThwvJd95okm=Pg!adResd zHaSPe1FG(l8mzuJ2ck&yPP@hT>Rr}fsRL7X$|Cd%E_VBO!K5tIpp1Li>sjSIP88JC!$2N+GZH zTJ;zMty1jGv3RHoF3# z2wQp*n+&ZK(nI{MJFue=(RpWPCdVW1v#@3ysFC_^Gc9^cK{>9PS4mM{UAq{>D%g&nL{=u9z>6miQV5hsd9elC~@?bt03#UNDrP{db|&!+@itWj^JjSLyT7E&iYBKwA2 z*4zaj%1n+T+g_&3v*?leLCWTad|M9=+g8alGU?3*HtujOz?g_d9+@yorC0u$r!ei8 znj4cTI@HPou%rVG_Tc}q5#Dyy=|JP(V&`4#*a;HlgH!G9Y@{$tH2PddD*q<)Zx1vF z6|bGlbCNTVG|i9g&)RPARn)e`uvW09Fe2-|f53OK{?;pfEEn+K!VjqvvYy-+cx849 z{ZGjI|4}-JDMe%m?RGwI{F8WhZz#)+QYX$U4moka&HjcGYDND@?Lp?K#2L*|_{Rlx z?=#6+Nc_Ka8g5{}xMq$@B<1sj{71S$-|AWt#N+Zd`S-UdEvTWE0Ex|p5TjK5O&*)o zhd*0yAvJ}I4|FXeXK$$(fJ(T4m@+OzU9HeWlVFm!J2pwsg>PJ3)$#N3PiwJ- z@vlJ5RuamYyFNZH74Kw!{_HrdVaX6%kk*+Rxkr$pmM$~Lq+D!t%7GsO6En4`Xs?V^bG_U-|@#{M~rT)3M zIJjx2do4Pu7>CO0HVeR623733H0hX9XLoU9Ek_l~HVhF(vMCNQfF`cImte&MH`4c4 zbWFVT>i8VWbowvBe8zR@H9p+{XWZ^z;D8A?Q{{Wl<%dM*CF~F6Rg;)mikPZ3u!80F zVJde06ufpAI7!3d+&D!%D~k<&dVew|2Fjc{i#u#gl*J@U(88V%RjBdY>F+@I)2fCu zN*j=F_NpNAWraJs%bPpLXFUtG?WR^RoMlFK*p=3_`^?vns~s(6pNw1QuLJ@NP(bkF zE&3JX@8wWj4IBgI+>aVvpG4!N13|>bf|Fk@P-TQ5)~SYiQ%W}P#|Nu~x8CZdno1K^ zo@bl-KbCyrrWdqI!XB1M;1y!4GveUYJgY%TU9N$ENUTo|IJ^VmvxMQh7c8=*0>q>- z3pY)_HUO92;=3?|$j3&l$N9x%2gtt~)daGUmm)g8>`uXzJnel)ee_$av3y(D_Fu;G zE!TG@QxKbGN*;8WU?Chy)!-mS>E9TLJNF6njTB0hbXy!2pj-GFHFt0Gl#AFx}!cD{xG3DQaFu6ms^>KYdHSf*g&FG);9!aOXZ1uag5Kb<0Zlsy@9(%_&;htehY8Id)Jv} z^)xp-7_d{dFd}0>%IM43MMmc)tYm-L7;=HuLG#)BR5o)W<(AGJO>WH1~Kv-YzNptL|~N!gPJcq@u_JO zuyo8?%IxK>yYc4VOHo$&0R7galiX@CS5ofP{`&wwnI)w;CPLo7vjCR}lu4YM0c;rG zr$@r5RLEdreu{!q!a2lRaN>2FIgv=O)S6)4ER_{yM_GOV79!J?coi1|vSj!gVLY>a zC<{4mx@o^s&C@KM$R2OME?)|}HL{mU64so&`1K>8haM9<4(5Vm%+1kQii}oXDFG)$T){AO;1c_FuDq-Os#-8Zpp>mc9~;-W>zg#F5psuceWyJoz4cqoUXBiI((+(#ezP)r4Ld)B+`wTwrzLT&JG$<|fJ`7LZk>Fxq; zygzOM#r-@!K>(`Ru%tqBo)$1M!FE3%XOCsnK@^gBiyqh+XKIYDE9E9MLF$za?o(_b z7i0G4!GUxs0-PZxfxY{K4+4tCa!!LFr&DXm12 z2$r{lN^mD@PE(SkxPx7{2BAhl4bGzMWLj|h$#_1??SeVU&>u*<fG@i*azCthZH zKA0pEYMv;1TEAl!LylZgI%SsT)pQ(r5gx3Zei$o%%2}r0CU9e%Wv$oM0MlFHvW|9h z0nW>&2`qcr;L_FA3Nx}!ahRQB^dUipkaAmKS=CuI*iQQ6wnC$vcUPM_pO>>FL#DVq z)AbVYVnr%c{K!-Co8QsChwlV1t8*|B*6Rz>;)g=E24DdqrrUA+wpAT+bh)i43$f{7mS_sZKucM+Mv4~M!Kd%I2EOy1w$-_1iN4p!{i5!#+plRp3;t8%s4(R;_}@Rwu#hJP7PK5Pcjy%Zv3KH%3<4fWZ$CPj?1 zz`umlAc~`2_6HJIz_JtVL}k@RG+3=#fcu+5F_*S&~}4wh3L0CT~!6`D7Ci^k;q}QMF5*cvgZsI@L*IouJ*$kud0-TZlp$3+5F@ zbQAz~teK0po%?ymO$Y@2m!bkWxVG6irwdxSP}!KebI3|ezFW8(sA2RJ39%6%#9jelF!Ap} z$psU7ZYv$@X*_AF`PChcU|Z6Dx?)ZbaaV;AEgzy1r>1CCMj%-WiaAlab=>7g3m<_HV;fWJ`d%7D4B)Co)@B<$@lN6mPg5rH6& zlu;K@+_PZ*hC#883}c!-#0DXkRXIVbkB#;Z{(IXhPpkzBOKPnW?q}|dva}S>6Jua` zYuh_yD!hfd47_|tj2Dznl%=zoFB50nQ zFuoGAA@r@BQSH`8sj6$X27pN_fu4y+79-+o>K{zN)$<*FmQjw?QjJ?W!2Z$a0N4)p z9Jb<9q+)ULxvA)M48@mFAQ!l_Kh->J-+&ZS43C=zE{bJz93Orbb7}9WPyc|oK&Y6T z*L)UphQGz!dl}qV3NTd0P1c%)Bcpe0cv4i|JrMFhdK3A8smkw4o1dB6S9X3er3a>G z(1aPNCWm>}I(v{xj;|uXoQ6i;ipj?AkVX;-UH^rm)+2+5c}7}BK4|K=W0c=1X?Bo~ zLm{+K`4g?Oj#`Q-h4L9lRE6q|esDi`tIkc=#LlpFP8!2UJv`JWBvaJ>*)v&hf3-rM zK-|IWFL{La*XC(J+;v|Dp0|o>O6KqAkDSgQaW6hqN-;Fyub+EVV`s)d4_8VCElJ)w z8nq=m0wFYvi+wC`N7#K49<$wzUy41`f?X;}kP4wUcA9!C9C^{6W~)t2vOU)xL+ew_ zLV#_ZaBPK?V@@v=tIa*!D(pfAbbdOui*>W-e$whgXEUy8u}5 z@IsJP|4atfY2sshilUA>9Eim!-&zy+ajse|p-=_EF+8rPq%WGXJdFAji3%QBWxfJ7 z&FT~S=1^<$`rKY?Ar&yk@hq3CV(e29+u>eVeQ&&wsSwADLIn^XJyqDvtB3g z3zgkB8U@vMD~aq@3_^@N1#F;zmrdpgYyi(=!mB;2tP@CIjHpU_jUbDiHIzRU6?Z6d z1BSm~kh}h1*9e!7Cg*6Sue!Z3nCOpf>ZmV{vxbhM>@`qEnIZHE(?asQChYfYxkZjF zVkhzaKF-OBm-nya2$SutM+i9^@xRlC*HrNwA`N0_ny9OL2y`R2iRh2X)HRi%>M(Zy zx=g{I0+=Fddc1R|1U3tNF9QhtApb{uS)j*L8hz`$_EZYOC4ld?S?ywIcH}N?sU**h zC3WS%qlq4y_)T%Mq5$cvY?K6%w0YaWzluo-rqAVQ5VSQBouCR!jcdpH0c(dm(wO62Nj-!1O(U8rM@e)9o5BSZUhy;@-~@Ra=O+*2RZ3ydiL=M zF`G8N)sOh*s^zMs;pqpCewXj{22+r&+m)Z^2_4CeD*t^g+{qZKP()n~aZ*-265HxN zlMjN~aB6#Yq#*6k3)_`eawss{9wxfE8Ypl6s$IU+QL2635T3$ix84&@P`{ntbaMYj zACo8`B8|@#x+bz4I?3%%qkxGANPdR+T}x1<>+y2GNkkz(l$|j)pp5>N|2jW5?-e8< zQvBvd1F2r8$8Uh?Pq8uvuTDqO0zr0OmYKNMdQ;9Z;Wt3*6uNWkl1jALPVA|lDbwwQ z<}oUvX))^sY&{YRvB;i*qK@q+xs3gp@(nh5Z=V8|6YyQ++KkX6%l+J&BXn{7$Nb2r zU0*L;RQ~JL)G`Ie!`}H2C`DnneAQ&X6}R z1r5Ur&IN1euRjV**|YDU#a~rzq);Y(#=LamqPZfEBtS9r?|1+p+VHf|`xMajBC_Q1 z6{B7A=e8zYr8sRIhtrUBg?SmmCC3Uoo=s9)Ee*bun$CUNVcmKv%;tw#eju7Uy4`d| zGi3E%4YEy{d2W-pl-=bEc8Ld9L;a`}P3#pPjAqX1jie5sn zph*l?Jfe|QFcm#_XoFG0uNMCtdF)ti8LC5!#O zwqZM>&i3N`lfgW68M?1mbiUMOD3%(0Cz3mfAIu-tA4&k;v2^Z>#+=A-B8!su7+M~;E?h% zvM_)TK^^Tv9X-1qF<;@`!(IR41*H;t`5I)-ij>lR1pzJ6cVoI5Y`M-zh&f{u4YDda zKLT5Na4U0|SMw{|VdtVivk>6G0TcfE`w~t< zb4^{;D7`uzZKTooJt-g7oSXJaR1ZtK1Sfr)nWk4NGR0I$Yp}*3()q$vu^FB5KkSJq zZr{LuNyuLO|Bet+uM;|`@)8-j*YA9+5d%)V*RRgxjZ^9x5trl&Y0AXnI9U^yyzN)t z^)B6+hj_XetT@i{UyRR9%<_Im5IfbR4{_$I)K4xJztTc?G*Q+Z8)WUIM6D+0t2Fr= z+yc;iSB%d!Vs>fbOz2`oCl~gn#k_3KaHk_g$_|h(xlKvX9BCST6=}WlD_vfcjeC5S z(Q6S1OCcJe!2WWUdX}Q@U@{RiLwpW-7sOXXa^_uuajAf!5I@Zg38{5+_{TuVq(BG9 z%IAm5r?CAQeL9Y5?<=cWkAD37cbJV=?&+$iM5FeM_QtVQW)3`#aS}fn3ysSFh%}`N zdOUUp%8S*_?)cQ@Mv16XePeXG zI|*QOz^j*80v8dYHW0XcNVeU)ikP$Z)B4A%^KHe}ctCBqOQ%0)e-&f6d(3YhPWyF9 zymNB&(1lrjX}cL*`tCw9Q-$;PVYTnA;R2EgewqpL9Vd|vS-|lt9`NobSr+Pe6wmZ} znm8f0t?NMkmURBLM<0{@`L`i@STjx1`}2inFEWu}%~X|AA#oC2t|krP9GM5{^!Af* zr3z(=UI-bZ4wOip^$JFd_NbpsX+`IqGDA>!uV?QH)|{hUL=dcMWVprFb&Q+&n=&}R zmIQ$-U&qSFIG%uWbFn4G(~1cijy2NyEak_Sn?S;`P0`!xDx5bcajB7go*XKC>($TpAtlMl(nDYnFv$E_AGGv|*FgNOV0O9kFzg zgyXO@hjy|Ew9`v>t1r#U?$nI8c$FfYmx@B-dD7Py;S}Z7Z2aGlwhd2(LtIPbAT`v5 z$GRM&47pF|m@A`p2++tv3-h#Max_}*!cqH9=oOfW;>MO^RpaKtd-pV~uLe>e?L#e0 zE*0+#8hJM1mVtp0JA=1BNJQ1co42z*oXP8>`?6z{<8cm)i6ZsLuzb>%@2j@yoJMlK z9}8JV^D`nK_@Qg*=rE`{d&|pPDa|3BW`vzsa!Ik#QcTuJd1~-|W?1W?$^d_TJiZE= zKwhd98;_R4OYXu>&QAMx&iz7(aeEnBL@^aB;=wu$vI-ft_{58mWDqb&(!780fu9wH zZ>@Fme32Wem(7BVEiWnLwQj5_Z7iu3_~C#KkOF z+Xs3Z+((!&pL?pmsKMGvmOYcvdm>;Fh{sUi)$z{TaqHwLN8U^;%k<&n&CJc(&pP+m z;XyEp5q0+h#en&&tfSr%@6%1JGf+wNQSkqlZHi(4`c$<43<+cm%sDYMj;}Uv_#XaP zrzPZleD)%#Iiq)FXB*KD!GT?B$80U!6XO%V!Sf6umEf5)GA43P)Az}r2lqNdlLUb;)~KGvHlw&kuP+d4w@^!5TN7=1`Szy!@2sn;WREG9?!`~{pR3u z{m}9~)J2IwvW&m((m@G~GVa)p7ST`Z+(C8==6ef%o^MIS@}CUJ&8{c!`b58(-iPKS ze&x!>O>UuP%f_(5~bQK|q;E0tS#+}y%*up3=2T083I*YWlCgSR7lI-zDvFgTVSR`O1lh=AgMr`v}Yuxf@-kJyta zru8gy<&O|!Yhq)d;|CCG=F=E@(H=UkldC@U!CZCIu!qd@mW|8r2j2VQD9yDRS8ztd zG3VN>Y-4U9HmY+s zOA@KVj`b#_fL_i+n?0Ss>#Y$?W?h}>eP09nSZO|#iN;(;GgnI_TNcrg9a%e7?}E4i zbVuVkS_IX^gKRat$eT-1Y)e{MMsT#n>0_EQs9zi0P}FV>Fj!BGrMJB1fMvG7_!0)* z9_v#6YAL;?i^yypNwWqt|FKMhpg0Mm)z?S~HBrImm2tJs(?+>9VhE>QamoZ#V#!>b z!AlYgUk<|DGOZ^7WD*pDQebXs2Gs1FSU_D<-MDW+ZUA`ojcGuUu(+%~6o(~cNgjua zS2TD}S;)D#u(1gs(=}qR{B^txUu>6&$8GdI5WXVtS2E!LZK7uG!x}83PISnCxod}% z4zgHcx}$Kwk|nk{zx4g<5-CNcWn}mB06Q?YVC3-Ro)3~JEC_m>#w|ubvSNXLkK>{b zJM@a~%~GLWwZcow&6vd#3g1t z-3JLhI?}8zp&oUYdqLDsek~ApNeJC@FOPeClK#pnlT_YzO_|E$1RE)MTaX&v>U|e+ zz1Rb_L68-uwo^pg7MC}5wqx6zw#&^S&|aa{bkC!nGbS&z+tB|Huk?S<8Gw_lY0)E% zYCAB7FyhQ~5C_&WBzV_z2LA6M1Mx2Ri1K>9HXou4_q{Wb@DTN7U!=Ahg0_e^zBkC{ zyKq(LXixXmPisWiAUNXH=b7k_aFOq;X?mrs`|NnkjQ>x^vzuL}YMYV!?r#|#h6oCa zFr$&8v(CX8e@-CBM08M5%k%t+7|#2v3qi?r2JYa$WY=I8**^||chA3bT;b8;or)PO zRr!xHslPvyS%$Y?&i%Q*@A!S_RHj8U?msi*tOIE7cAAW)9&93$2?>x6MCkk<(*qwO zj2<4U!&imIoM`SoL2>WjvNHt3JO*Y$U69lNpSSQrR03jfX#du92Dl^*oOmY#u_X#s zoc+w3YyUG^P7BOZ8LsRv4$P*GSQ}MZwqv}DNaAiJeDc2fVieNWbVbqiqlUz)_sYoi ze0`I18s$LAXEs2jH`c@e*Ys7+_~QG{yNYpbEbAJ-?Q!v)O8<0C;|_8<8Sw>_bRhk* zSjT`_jo`$G4dmR`AXrkMH;xjxNWtB0riO~QT3vB3)zy%3KZvh^z!E03){m8mvJMo@ zDq~%p5BNI+idgV1PMMn%@|-@Pws+rneZO>gYPjV6N$3(G7r9rKFs6;0+ttSm!quJ^ z@FS63-9m>mAci}51ML1LWuU3TPU^;cUo-XD&iXqx{&uqzYm{hDQ~}!+P!AbfM6d2} zG-;9gt*4h>@R@YyLnI5UE!ua_4R&Ltp|IO~@7Tsfadc-8 zj9-#(ti;y1JTQABHx&H2Lf#jQe_E&}Ocn+jENQgVs1iW-VIuJt>FHXVd z3}BVIDt9kVxRc{2dunlh)TAf!>e2>H+Mj+W@Yy}EuqOJYPS$<=F^(}fC-PE}l!PjG<^ zp~w<6;VogzvPd$bggv)pbg{4EbxDZi0ZgroO1-Y6#U-Z$ooK*;>6tMHE#`bGCyoNA zWnJt7pB?PmrDg<*XY_uUFoiqo7!wsYJGzK1Yp5Nez~PxGli}$ z+H!Yt4M)-*xx(S2bB6-oeSE+{Px4s-lZZZp+2J(U&Fy34r$c|Ud1>jz5Y9^j>VyQz zLd==eV6TYxJ=M;}LMTKQFlNxc1toMoZuiHcd)GsRtFys?Z^D|n_HZNonfI;ks&MEnfQ`jpdxmd79Nv^7}Ta3A#Cy+$i&b@GAS!9q;qge!bbvwc^-Ts2s3S77jC4!wAjpLD_L~vQn^x) z&OJ>e=@2mL5h?z^p$Pl#^zQ_~Hhj@#tajUYL%$Y*!{jFo6+Y{ztTf zs9#Z&fi4WQn(`%X@czA@US`4Mev=i%k?_&V7NLEAE}Kn+xC=Cr-JpwJ;U2AhAM3#p9;LI<9bU(;7 zbD?yU!a9a<_rxT@-la`Yh4;pB1VfqGUA6v!$m^nkQ4f!gEVF`WrUDSx6AKq1B_|0A3bCW6xt~gnEDf=k1Grc`3M&*?-W5<)Q zc&c&|D)s1_S!wQEH$Qb_y63$R`-DDa&vo>zius(_xH=hY+NlkWZGC+{f-!Cc8IGv* z

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

DLhA)c3nY71agMIwD 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 literal 0 HcmV?d00001 diff --git a/devicesizetable/devicesizetable.h b/devicesizetable/devicesizetable.h index 9c60881..4fb6057 100644 --- a/devicesizetable/devicesizetable.h +++ b/devicesizetable/devicesizetable.h @@ -3,10 +3,10 @@ /** * 本地存储空间大小控件 作者:feiyangqingyun(QQ:517216493) 2016-11-30 - * 1:可自动加载本地存储设备的总容量/已用容量 - * 2:进度条显示已用容量 - * 3:支持所有操作系统 - * 4:增加U盘或者SD卡到达信号 + * 1. 可自动加载本地存储设备的总容量/已用容量 + * 2. 进度条显示已用容量 + * 3. 支持所有操作系统 + * 4. 增加U盘或者SD卡到达信号 */ #include @@ -14,13 +14,7 @@ class QProcess; #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT DeviceSizeTable : public QTableWidget +class Q_DECL_EXPORT DeviceSizeTable : public QTableWidget #else class DeviceSizeTable : public QTableWidget #endif diff --git a/flatui/flatui.h b/flatui/flatui.h index 4009b2c..efeaece 100644 --- a/flatui/flatui.h +++ b/flatui/flatui.h @@ -3,14 +3,14 @@ /** * FlatUI辅助类 作者:feiyangqingyun(QQ:517216493) 2016-12-16 - * 1:按钮样式设置 - * 2:文本框样式设置 - * 3:进度条样式 - * 4:滑块条样式 - * 5:单选框样式 - * 6:滚动条样式 - * 7:可自由设置对象的高度宽度大小等 - * 8:自带默认参数值 + * 1. 按钮样式设置 + * 2. 文本框样式设置 + * 3. 进度条样式 + * 4. 滑块条样式 + * 5. 单选框样式 + * 6. 滚动条样式 + * 7. 可自由设置对象的高度宽度大小等 + * 8. 自带默认参数值 */ #include @@ -24,13 +24,7 @@ class QCheckBox; class QScrollBar; #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT FlatUI : public QObject +class Q_DECL_EXPORT FlatUI : public QObject #else class FlatUI : public QObject #endif diff --git a/framelesswidget/framelesswidget.h b/framelesswidget/framelesswidget.h index bdc59ee..59fea16 100644 --- a/framelesswidget/framelesswidget.h +++ b/framelesswidget/framelesswidget.h @@ -3,23 +3,17 @@ /** * 无边框窗体类 作者:feiyangqingyun(QQ:517216493) 2019-10-03 - * 1:可以指定需要无边框的widget - * 2:边框四周八个方位都可以自由拉伸 - * 3:可设置对应位置的边距,以便识别更大区域 - * 4:可设置是否允许拖动 - * 5:可设置是否允许拉伸 + * 1. 可以指定需要无边框的widget + * 2. 边框四周八个方位都可以自由拉伸 + * 3. 可设置对应位置的边距,以便识别更大区域 + * 4. 可设置是否允许拖动 + * 5. 可设置是否允许拉伸 */ #include #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT FramelessWidget : public QObject +class Q_DECL_EXPORT FramelessWidget : public QObject #else class FramelessWidget : public QObject #endif diff --git a/gifwidget/gifwidget.h b/gifwidget/gifwidget.h index 4378aa4..b99ce25 100644 --- a/gifwidget/gifwidget.h +++ b/gifwidget/gifwidget.h @@ -3,11 +3,11 @@ /** * GIF录屏控件 作者:feiyangqingyun(QQ:517216493) 2019-4-3 - * 1:可设置要录制屏幕的宽高,支持右下角直接拉动改变. - * 2:可设置变宽的宽度 - * 3:可设置录屏控件的背景颜色 - * 4:可设置录制的帧数 - * 5:录制区域可自由拖动选择 + * 1. 可设置要录制屏幕的宽高,支持右下角直接拉动改变. + * 2. 可设置变宽的宽度 + * 3. 可设置录屏控件的背景颜色 + * 4. 可设置录制的帧数 + * 5. 录制区域可自由拖动选择 */ #include @@ -17,13 +17,7 @@ class QLineEdit; class QLabel; #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT GifWidget : public QDialog +class Q_DECL_EXPORT GifWidget : public QDialog #else class GifWidget : public QDialog #endif diff --git a/imageswitch/imageswitch.h b/imageswitch/imageswitch.h index 8a3de52..a07e81d 100644 --- a/imageswitch/imageswitch.h +++ b/imageswitch/imageswitch.h @@ -3,20 +3,14 @@ /** * 图片开关控件 作者:feiyangqingyun(QQ:517216493) 2016-11-25 - * 1:自带三种开关按钮样式 - * 2:可自定义开关图片 + * 1. 自带三种开关按钮样式 + * 2. 可自定义开关图片 */ #include #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT ImageSwitch : public QWidget +class Q_DECL_EXPORT ImageSwitch : public QWidget #else class ImageSwitch : public QWidget #endif diff --git a/ipaddress/ipaddress.cpp b/ipaddress/ipaddress.cpp index 0ed053e..2338ea6 100644 --- a/ipaddress/ipaddress.cpp +++ b/ipaddress/ipaddress.cpp @@ -4,10 +4,12 @@ #include "qlabel.h" #include "qlineedit.h" #include "qboxlayout.h" -#include "qregexp.h" #include "qvalidator.h" #include "qevent.h" #include "qdebug.h" +#if (QT_VERSION < QT_VERSION_CHECK(6,0,0)) +#include "qregexp.h" +#endif IPAddress::IPAddress(QWidget *parent) : QWidget(parent) { @@ -53,6 +55,7 @@ IPAddress::IPAddress(QWidget *parent) : QWidget(parent) txtIP4->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); connect(txtIP4, SIGNAL(textChanged(QString)), this, SLOT(textChanged(QString))); +#if (QT_VERSION < QT_VERSION_CHECK(6,0,0)) //设置IP地址校验过滤 QRegExp regExp("(2[0-5]{2}|2[0-4][0-9]|1?[0-9]{1,2})"); QRegExpValidator *validator = new QRegExpValidator(regExp, this); @@ -60,6 +63,7 @@ IPAddress::IPAddress(QWidget *parent) : QWidget(parent) txtIP2->setValidator(validator); txtIP3->setValidator(validator); txtIP4->setValidator(validator); +#endif //绑定事件过滤器,识别键盘按下 txtIP1->installEventFilter(this); @@ -79,13 +83,13 @@ IPAddress::IPAddress(QWidget *parent) : QWidget(parent) frame->setStyleSheet(qss.join("")); QVBoxLayout *verticalLayout = new QVBoxLayout(this); - verticalLayout->setMargin(0); + verticalLayout->setContentsMargins(0, 0, 0, 0); verticalLayout->setSpacing(0); verticalLayout->addWidget(frame); //将控件按照横向布局排列 QHBoxLayout *layout = new QHBoxLayout(frame); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); layout->addWidget(txtIP1); layout->addWidget(labDot1); @@ -153,11 +157,13 @@ QSize IPAddress::minimumSizeHint() const void IPAddress::setIP(const QString &ip) { +#if (QT_VERSION < QT_VERSION_CHECK(6,0,0)) //先检测IP地址是否合法 QRegExp regExp("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)"); if (!regExp.exactMatch(ip)) { return; } +#endif if (this->ip != ip) { this->ip = ip; diff --git a/ipaddress/ipaddress.h b/ipaddress/ipaddress.h index 0a48b85..cc95f4e 100644 --- a/ipaddress/ipaddress.h +++ b/ipaddress/ipaddress.h @@ -3,12 +3,12 @@ /** * IP地址输入框控件 作者:feiyangqingyun(QQ:517216493) 2017-8-11 - * 1:可设置IP地址,自动填入框 - * 2:可清空IP地址 - * 3:支持按下小圆点自动切换 - * 4:支持退格键自动切换 - * 5:支持IP地址过滤 - * 6:可设置背景色/边框颜色/边框圆角角度 + * 1. 可设置IP地址,自动填入框 + * 2. 可清空IP地址 + * 3. 支持按下小圆点自动切换 + * 4. 支持退格键自动切换 + * 5. 支持IP地址过滤 + * 6. 可设置背景色/边框颜色/边框圆角角度 */ #include @@ -17,13 +17,7 @@ class QLabel; class QLineEdit; #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT IPAddress : public QWidget +class Q_DECL_EXPORT IPAddress : public QWidget #else class IPAddress : public QWidget #endif diff --git a/lightbutton/lightbutton.h b/lightbutton/lightbutton.h index 09b1822..7fa9fa6 100644 --- a/lightbutton/lightbutton.h +++ b/lightbutton/lightbutton.h @@ -3,28 +3,22 @@ /** * 高亮发光按钮控件 作者:feiyangqingyun(QQ:517216493) 2016-10-16 - * 1:可设置文本,居中显示 - * 2:可设置文本颜色 - * 3:可设置外边框渐变颜色 - * 4:可设置里边框渐变颜色 - * 5:可设置背景色 - * 6:可直接调用内置的设置 绿色/红色/黄色/黑色/蓝色 等公有槽函数 - * 7:可设置是否在容器中可移动,当成一个对象使用 - * 8:可设置是否显示矩形 - * 9:可设置报警颜色+非报警颜色 - * 10:可控制启动报警和停止报警,报警时闪烁 + * 1. 可设置文本,居中显示 + * 2. 可设置文本颜色 + * 3. 可设置外边框渐变颜色 + * 4. 可设置里边框渐变颜色 + * 5. 可设置背景色 + * 6. 可直接调用内置的设置 绿色/红色/黄色/黑色/蓝色 等公有槽函数 + * 7. 可设置是否在容器中可移动,当成一个对象使用 + * 8. 可设置是否显示矩形 + * 9. 可设置报警颜色+非报警颜色 + * 10. 可控制启动报警和停止报警,报警时闪烁 */ #include #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT LightButton : public QWidget +class Q_DECL_EXPORT LightButton : public QWidget #else class LightButton : public QWidget #endif diff --git a/lunarcalendarwidget/lunarcalendarinfo.h b/lunarcalendarwidget/lunarcalendarinfo.h index 845ce03..da108b3 100644 --- a/lunarcalendarwidget/lunarcalendarinfo.h +++ b/lunarcalendarwidget/lunarcalendarinfo.h @@ -3,23 +3,17 @@ /** * 农历信息类 作者:倪大侠 整理:feiyangqingyun(QQ:517216493) 2016-12-10 - * 1:计算是否闰年 - * 2:计算国际节日 - * 3:计算二十四节气 - * 4:计算农历年 天干+地支+生肖 - * 5:计算指定年月日农历信息,包括公历节日和农历节日及二十四节气 + * 1. 计算是否闰年 + * 2. 计算国际节日 + * 3. 计算二十四节气 + * 4. 计算农历年 天干+地支+生肖 + * 5. 计算指定年月日农历信息,包括公历节日和农历节日及二十四节气 */ #include #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT LunarCalendarInfo : public QObject +class Q_DECL_EXPORT LunarCalendarInfo : public QObject #else class LunarCalendarInfo : public QObject #endif diff --git a/lunarcalendarwidget/lunarcalendaritem.h b/lunarcalendarwidget/lunarcalendaritem.h index 4060bee..de3e56e 100644 --- a/lunarcalendarwidget/lunarcalendaritem.h +++ b/lunarcalendarwidget/lunarcalendaritem.h @@ -5,13 +5,7 @@ #include #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT LunarCalendarItem : public QWidget +class Q_DECL_EXPORT LunarCalendarItem : public QWidget #else class LunarCalendarItem : public QWidget #endif diff --git a/lunarcalendarwidget/lunarcalendarwidget.cpp b/lunarcalendarwidget/lunarcalendarwidget.cpp index 7d1c7ae..147b7cd 100644 --- a/lunarcalendarwidget/lunarcalendarwidget.cpp +++ b/lunarcalendarwidget/lunarcalendarwidget.cpp @@ -159,7 +159,7 @@ void LunarCalendarWidget::initWidget() //星期布局 QHBoxLayout *layoutWeek = new QHBoxLayout(widgetWeek); - layoutWeek->setMargin(0); + layoutWeek->setContentsMargins(0, 0, 0, 0); layoutWeek->setSpacing(0); for (int i = 0; i < 7; i++) { @@ -177,7 +177,7 @@ void LunarCalendarWidget::initWidget() //日期标签布局 QGridLayout *layoutBody = new QGridLayout(widgetBody); - layoutBody->setMargin(1); + layoutBody->setContentsMargins(1, 1, 1, 1); layoutBody->setHorizontalSpacing(0); layoutBody->setVerticalSpacing(0); @@ -191,7 +191,7 @@ void LunarCalendarWidget::initWidget() //主布局 QVBoxLayout *verLayoutCalendar = new QVBoxLayout(this); - verLayoutCalendar->setMargin(0); + verLayoutCalendar->setContentsMargins(0, 0, 0, 0); verLayoutCalendar->setSpacing(0); verLayoutCalendar->addWidget(widgetTop); verLayoutCalendar->addWidget(widgetWeek); diff --git a/lunarcalendarwidget/lunarcalendarwidget.h b/lunarcalendarwidget/lunarcalendarwidget.h index b6e55ef..3043a2a 100644 --- a/lunarcalendarwidget/lunarcalendarwidget.h +++ b/lunarcalendarwidget/lunarcalendarwidget.h @@ -3,15 +3,15 @@ /** * 自定义农历控件 作者:倪大侠 整理:feiyangqingyun(QQ:517216493) 2017-11-17 - * 1:可设置边框颜色/周末颜色/角标颜色/农历节日颜色 - * 2:可设置当前月文字颜色/其他月文字颜色/选中日期文字颜色/悬停日期文字颜色 - * 3:可设置当前月农历文字颜色/其他月农历文字颜色/选中日期农历文字颜色/悬停日期农历文字颜色 - * 4:可设置当前月背景颜色/其他月背景颜色/选中日期背景颜色/悬停日期背景颜色 - * 5:可设置三种选中背景模式,矩形背景+圆形背景+图片背景 - * 6:可直接切换到上一年/下一年/上一月/下一月/转到今天 - * 7:可设置是否显示农历信息,不显示则当做正常的日历使用 - * 8:支持1901年-2099年范围 - * 9:很方便改成多选日期 + * 1. 可设置边框颜色/周末颜色/角标颜色/农历节日颜色 + * 2. 可设置当前月文字颜色/其他月文字颜色/选中日期文字颜色/悬停日期文字颜色 + * 3. 可设置当前月农历文字颜色/其他月农历文字颜色/选中日期农历文字颜色/悬停日期农历文字颜色 + * 4. 可设置当前月背景颜色/其他月背景颜色/选中日期背景颜色/悬停日期背景颜色 + * 5. 可设置三种选中背景模式,矩形背景+圆形背景+图片背景 + * 6. 可直接切换到上一年/下一年/上一月/下一月/转到今天 + * 7. 可设置是否显示农历信息,不显示则当做正常的日历使用 + * 8. 支持1901年-2099年范围 + * 9. 很方便改成多选日期 */ #include @@ -25,13 +25,7 @@ class QComboBox; class LunarCalendarItem; #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT LunarCalendarWidget : public QWidget +class Q_DECL_EXPORT LunarCalendarWidget : public QWidget #else class LunarCalendarWidget : public QWidget #endif diff --git a/maskwidget/maskwidget.cpp b/maskwidget/maskwidget.cpp index ca1a68c..0cf5ede 100644 --- a/maskwidget/maskwidget.cpp +++ b/maskwidget/maskwidget.cpp @@ -2,8 +2,8 @@ #include "maskwidget.h" #include "qmutex.h" -#include "qapplication.h" #include "qdesktopwidget.h" +#include "qapplication.h" #include "qdebug.h" QScopedPointer MaskWidget::self; @@ -56,7 +56,7 @@ void MaskWidget::setOpacity(double opacity) void MaskWidget::setBgColor(const QColor &bgColor) { QPalette palette = this->palette(); - palette.setBrush(QPalette::Background, bgColor); + palette.setBrush(QPalette::Window, bgColor); this->setPalette(palette); } diff --git a/maskwidget/maskwidget.h b/maskwidget/maskwidget.h index f3cc0ec..6e28ba4 100644 --- a/maskwidget/maskwidget.h +++ b/maskwidget/maskwidget.h @@ -3,23 +3,17 @@ /** * 弹窗遮罩层控件 作者:feiyangqingyun(QQ:517216493) 2016-12-26 - * 1:可设置需要遮罩的主窗体,自动跟随主窗体位置显示遮罩面积 - * 2:只需要将弹窗窗体的名称一开始传入队列即可,足够简单 - * 3:可设置透明度 - * 4:可设置遮罩层颜色 - * 5:不阻塞消息循坏 + * 1. 可设置需要遮罩的主窗体,自动跟随主窗体位置显示遮罩面积 + * 2. 只需要将弹窗窗体的名称一开始传入队列即可,足够简单 + * 3. 可设置透明度 + * 4. 可设置遮罩层颜色 + * 5. 不阻塞消息循坏 */ #include #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT MaskWidget : public QWidget +class Q_DECL_EXPORT MaskWidget : public QWidget #else class MaskWidget : public QWidget #endif diff --git a/navbutton/iconhelper.h b/navbutton/iconhelper.h index fb24137..992bc8d 100644 --- a/navbutton/iconhelper.h +++ b/navbutton/iconhelper.h @@ -7,8 +7,12 @@ #include #endif -//图形字体处理类 +#ifdef quc +class Q_DECL_EXPORT IconHelper : public QObject +#else class IconHelper : public QObject +#endif + { Q_OBJECT diff --git a/navbutton/navbutton.cpp b/navbutton/navbutton.cpp index 54b0910..d1000fb 100644 --- a/navbutton/navbutton.cpp +++ b/navbutton/navbutton.cpp @@ -43,6 +43,7 @@ NavButton::NavButton(QWidget *parent) : QPushButton(parent) hover = false; setCheckable(true); + setText("导航按钮"); } void NavButton::enterEvent(QEvent *) diff --git a/navbutton/navbutton.h b/navbutton/navbutton.h index fb8a671..69fc6f1 100644 --- a/navbutton/navbutton.h +++ b/navbutton/navbutton.h @@ -3,26 +3,20 @@ /** * 导航按钮控件 作者:feiyangqingyun(QQ:517216493) 2017-12-19 - * 1:可设置文字的左侧+右侧+顶部+底部间隔 - * 2:可设置文字对齐方式 - * 3:可设置显示倒三角/倒三角边长/倒三角位置/倒三角颜色 - * 4:可设置显示图标/图标间隔/图标尺寸/正常状态图标/悬停状态图标/选中状态图标 - * 5:可设置显示边框线条/线条宽度/线条间隔/线条位置/线条颜色 - * 6:可设置正常背景颜色/悬停背景颜色/选中背景颜色 - * 7:可设置正常文字颜色/悬停文字颜色/选中文字颜色 - * 8:可设置背景颜色为画刷颜色 + * 1. 可设置文字的左侧+右侧+顶部+底部间隔 + * 2. 可设置文字对齐方式 + * 3. 可设置显示倒三角/倒三角边长/倒三角位置/倒三角颜色 + * 4. 可设置显示图标/图标间隔/图标尺寸/正常状态图标/悬停状态图标/选中状态图标 + * 5. 可设置显示边框线条/线条宽度/线条间隔/线条位置/线条颜色 + * 6. 可设置正常背景颜色/悬停背景颜色/选中背景颜色 + * 7. 可设置正常文字颜色/悬停文字颜色/选中文字颜色 + * 8. 可设置背景颜色为画刷颜色 */ #include #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT NavButton : public QPushButton +class Q_DECL_EXPORT NavButton : public QPushButton #else class NavButton : public QPushButton #endif diff --git a/ntpclient/frmntpclient.ui b/ntpclient/frmntpclient.ui index 9d069ce..ac6e8db 100644 --- a/ntpclient/frmntpclient.ui +++ b/ntpclient/frmntpclient.ui @@ -33,7 +33,7 @@ - ntp1.aliyun.com + 133.100.11.8 diff --git a/ntpclient/ntpclient.h b/ntpclient/ntpclient.h index 7f1e475..f270b03 100644 --- a/ntpclient/ntpclient.h +++ b/ntpclient/ntpclient.h @@ -3,8 +3,8 @@ /** * Ntp校时类 作者:feiyangqingyun(QQ:517216493) 2017-2-16 - * 1:可设置Ntp服务器IP地址 - * 2:收到时间信号发出 + * 1. 可设置Ntp服务器IP地址 + * 2. 收到时间信号发出 */ #include @@ -12,13 +12,7 @@ class QUdpSocket; #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT NtpClient : public QObject +class Q_DECL_EXPORT NtpClient : public QObject #else class NtpClient : public QObject #endif @@ -45,10 +39,8 @@ signals: public slots: //设置NTP服务器IP void setNtpIP(const QString &ntpIP); - //获取日期时间 void getDateTime(); - }; #endif // NTPCLIENT_H diff --git a/savelog/savelog.h b/savelog/savelog.h index 1b91931..b9d3190 100644 --- a/savelog/savelog.h +++ b/savelog/savelog.h @@ -8,13 +8,7 @@ class QTcpSocket; class QTcpServer; #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT SaveLog : public QObject +class Q_DECL_EXPORT SaveLog : public QObject #else class SaveLog : public QObject #endif diff --git a/saveruntime/saveruntime.cpp b/saveruntime/saveruntime.cpp index d8ef753..5bfe6d2 100644 --- a/saveruntime/saveruntime.cpp +++ b/saveruntime/saveruntime.cpp @@ -5,7 +5,6 @@ #include "qfile.h" #include "qtextstream.h" #include "qstringlist.h" -#include "qdebug.h" #ifdef Q_OS_WIN #define NEWLINE "\r\n" @@ -37,6 +36,7 @@ SaveRunTime::SaveRunTime(QObject *parent) : QObject(parent) saveInterval = 1 * 60 * 1000; startTime = QDateTime::currentDateTime(); + //存储运行时间定时器 timerSave = new QTimer(this); timerSave->setInterval(saveInterval); connect(timerSave, SIGNAL(timeout()), this, SLOT(saveLog())); @@ -44,6 +44,9 @@ SaveRunTime::SaveRunTime(QObject *parent) : QObject(parent) void SaveRunTime::start() { + //开始时间变量必须在这,在部分嵌入式系统上开机后的时间不准确比如是1970,而后会变成1999或者其他时间 + //会在getDiffValue函数执行很久很久 + startTime = QDateTime::currentDateTime(); timerSave->start(); initLog(); @@ -104,19 +107,16 @@ void SaveRunTime::initLog() QTextStream stream(&file); stream << line << NEWLINE; file.close(); - lastID = 0; } } else { if (file.open(QFile::ReadOnly)) { QString lastLine; - while (!file.atEnd()) { lastLine = file.readLine(); } file.close(); - QStringList list = lastLine.split("\t"); lastID = list.at(0).toInt(); } @@ -169,7 +169,6 @@ void SaveRunTime::saveLog() //重新清空文件 file.resize(0); - //如果行数小于2则返回 if (content.count() < 2) { file.close(); diff --git a/saveruntime/saveruntime.h b/saveruntime/saveruntime.h index 060539d..61394fc 100644 --- a/saveruntime/saveruntime.h +++ b/saveruntime/saveruntime.h @@ -6,13 +6,7 @@ class QTimer; #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT SaveRunTime : public QObject +class Q_DECL_EXPORT SaveRunTime : public QObject #else class SaveRunTime : public QObject #endif diff --git a/screenwidget/screenwidget.h b/screenwidget/screenwidget.h index 2f2744e..8dbc0fa 100644 --- a/screenwidget/screenwidget.h +++ b/screenwidget/screenwidget.h @@ -3,9 +3,9 @@ /** * 全局截屏控件 作者:feiyangqingyun(QQ:517216493) 2016-11-11 - * 1:支持鼠标右键选择菜单 - * 2:支持全局截屏和局部截屏 - * 3:支持图片另存为 + * 1. 支持鼠标右键选择菜单 + * 2. 支持全局截屏和局部截屏 + * 3. 支持图片另存为 */ #include @@ -46,13 +46,7 @@ private: }; #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT ScreenWidget : public QWidget +class Q_DECL_EXPORT ScreenWidget : public QWidget #else class ScreenWidget : public QWidget #endif diff --git a/videopanel/videopanel.cpp b/videopanel/videopanel.cpp index b1fffae..f07c459 100644 --- a/videopanel/videopanel.cpp +++ b/videopanel/videopanel.cpp @@ -56,7 +56,7 @@ void VideoPanel::initControl() { gridLayout = new QGridLayout; gridLayout->setSpacing(1); - gridLayout->setMargin(0); + gridLayout->setContentsMargins(0, 0, 0, 0); gridLayout->setObjectName("gridLayout"); this->setLayout(gridLayout); } diff --git a/videopanel/videopanel.h b/videopanel/videopanel.h index 80a39c4..5064d90 100644 --- a/videopanel/videopanel.h +++ b/videopanel/videopanel.h @@ -13,13 +13,7 @@ class QLabel; class QGridLayout; #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT VideoPanel : public QWidget +class Q_DECL_EXPORT VideoPanel : public QWidget #else class VideoPanel : public QWidget #endif diff --git a/videowidget/videowidget.cpp b/videowidget/videowidget.cpp index 3ae38a8..bbce61f 100644 --- a/videowidget/videowidget.cpp +++ b/videowidget/videowidget.cpp @@ -81,7 +81,7 @@ void VideoWidget::initFlowPanel() //用布局顶住,左侧弹簧 QHBoxLayout *layout = new QHBoxLayout; layout->setSpacing(2); - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); layout->addStretch(); flowPanel->setLayout(layout); @@ -100,7 +100,7 @@ void VideoWidget::initFlowPanel() icons << QApplication::style()->standardIcon(QStyle::SP_DialogCancelButton); #else QList chars; - chars << 0xe68d << 0xe672 << 0xe674 << 0xea36 << 0xe74c; + chars << QChar(0xe68d) << QChar(0xe672) << QChar(0xe674) << QChar(0xea36) << QChar(0xe74c); //判断图形字体是否存在,不存在则加入 QFont iconFont; @@ -277,7 +277,7 @@ void VideoWidget::drawBg(QPainter *painter) //背景图片为空则绘制文字,否则绘制背景图片 if (bgImage.isNull()) { painter->setFont(this->font()); - painter->setPen(palette().foreground().color()); + painter->setPen(palette().windowText().color()); painter->drawText(rect(), Qt::AlignCenter, bgText); } else { //居中绘制 diff --git a/videowidget/videowidget.h b/videowidget/videowidget.h index bf2d164..d42832a 100644 --- a/videowidget/videowidget.h +++ b/videowidget/videowidget.h @@ -23,13 +23,7 @@ class QTimer; #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT VideoWidget : public QWidget +class Q_DECL_EXPORT VideoWidget : public QWidget #else class VideoWidget : public QWidget #endif @@ -223,6 +217,11 @@ signals: //播放结束 void receivePlayFinsh(); + //总时长 + void fileLengthReceive(qint64 length); + //当前播放时长 + void filePositionReceive(qint64 position); + //收到图片信号 void receiveImage(const QImage &image); diff --git a/zhtopy/zhtopy.h b/zhtopy/zhtopy.h index 0625a79..45a138a 100644 --- a/zhtopy/zhtopy.h +++ b/zhtopy/zhtopy.h @@ -3,22 +3,16 @@ /** * 汉字转拼音类 作者:feiyangqingyun(QQ:517216493) 2019-2-16 - * 1:汉字转拼音 - * 2:汉字转拼音简拼 - * 3:汉字转拼音首字母 + * 1. 汉字转拼音 + * 2. 汉字转拼音简拼 + * 3. 汉字转拼音首字母 */ #include #include #ifdef quc -#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) -#include -#else -#include -#endif - -class QDESIGNER_WIDGET_EXPORT ZhToPY : public QObject +class Q_DECL_EXPORT ZhToPY : public QObject #else class ZhToPY : public QObject #endif