From 3968e1acfebbbccfd8ba19c787e87ae74c200f60 Mon Sep 17 00:00:00 2001 From: bedirkaraabali <69633060+bdrtr@users.noreply.github.com> Date: Sun, 19 May 2024 14:26:11 +0300 Subject: [PATCH] Add files via upload --- main.py | 85 +++++++++++++++---------- window.py | 184 +++++++++++++++++++++++++++++++++++++++++++++++++++++ yolov8s.pt | Bin 0 -> 22573363 bytes 3 files changed, 234 insertions(+), 35 deletions(-) create mode 100644 window.py create mode 100644 yolov8s.pt diff --git a/main.py b/main.py index 5874112..2550bf3 100644 --- a/main.py +++ b/main.py @@ -1,19 +1,11 @@ from ultralytics import YOLO from window import Ui_Dialog -from PyQt5.QtWidgets import * -from PyQt5.QtGui import * -from PyQt5.QtCore import * -from PyQt5.QtTest import * -from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QPushButton, QFileDialog -from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent -from PyQt5.QtMultimediaWidgets import QVideoWidget -from PyQt5.QtCore import QUrl -from PyQt5 import QtCore, QtGui, QtWidgets -import os, cv2 +from PyQt5.QtWidgets import QApplication, QMainWindow,QFileDialog +from PyQt5.QtMultimedia import QMediaContent +from PyQt5.QtCore import QUrl, QTimer +import cv2 import threading -#os.environ["QT_QPA_PLATFORM"] = "xcb" - class Program(QMainWindow): @@ -22,6 +14,7 @@ class Program(QMainWindow): self.userInterface = Ui_Dialog() self.userInterface.setupUi(self) self.setWindowTitle("KUŞ YUVASI BUL") + self.setFixedSize(1184,601) self.setWindowFlag(False) #self.setWindowIcon() @@ -29,18 +22,22 @@ class Program(QMainWindow): self.path = None self.filename = None + self.model_path = "best.pt" self.total_frames=1 self.frame_counter=1 self.local_flag = False self.url_flag = False + self.conf_val = 50 + self.timer= None self.progress_rate=0 self.Texts = [] self.buttons = [ - self.userInterface.pushButton + self.userInterface.pushButton, + self.userInterface.pushButton_2 ] self.graphics = [ @@ -48,16 +45,13 @@ class Program(QMainWindow): self.userInterface.video_widget ] - self.plainTexts = [ - self.userInterface.plainTextEdit - ] - self.labels = [ - self.userInterface.label + self.userInterface.label, + self.userInterface.label_2 ] self.radio_buttons = [ - self.userInterface.radioButton, + self.userInterface.radioButton_1, self.userInterface.radioButton_2 ] @@ -65,19 +59,38 @@ class Program(QMainWindow): self.userInterface.progess_bar ] + self.sliders = [ + self.userInterface.horizontalSlider + ] + self.moves() - def readText(self): - text = self.plainTexts[0].toPlainText() - self.Texts.append(text) - self.open_media() + def model_yukle(self): + + self.model_path, _ = QFileDialog.getOpenFileName(self, "modl Dosyası Seç", "", "model dosyaları(v8) (*.pt)") + + def slider(self): + self.labels[0].setText("dogruluk esigi") + self.sliders[0].setValue(self.conf_val) + self.labels[1].setText(str(self.conf_val)) + self.sliders[0].setMaximum(100) + self.sliders[0].setMinimum(0) + self.sliders[0].actionTriggered.connect(self.slider_update) + + + def slider_update(self): + + self.conf_val = self.sliders[0].value() + self.labels[1].setText(str(self.conf_val)) def moves(self): + self.slider() self.radio_button_select() - self.buttons[0].clicked.connect(self.readText) + self.buttons[0].clicked.connect(self.open_media) + self.buttons[1].clicked.connect(self.model_yukle) @@ -87,26 +100,21 @@ class Program(QMainWindow): if self.radio_buttons[0].isChecked(): self.local_flag = True self.url_flag = False - self.plainTexts[0].setEnabled(True) elif self.radio_buttons[1].isChecked(): self.local_flag = True self.url_flag = False - self.plainTexts[0].setEnabled(False) + else: self.labels[0].setText("bir işaretleme yapın..") self.local_flag = False self.url_flag = False - def model_youtube(self): - model = YOLO('best.pt') - results = model(self.path, stream=True, save=True, conf=0.5) - def model(self): - model = YOLO('best.pt') + model = YOLO(self.model_path) #fourcc = cv2.VideoWriter_fourcc(*'mp4v') #output_path = os.path.join(os.getcwd(), 'videos', 'output.mp4') @@ -117,10 +125,10 @@ class Program(QMainWindow): self.frame_counter=1 cap.release() - results = model(self.path, stream=True, save=True, conf=0.5) + results = model(self.path, stream=True, save=True, conf=(self.conf_val/100)) for res in results: self.frame_counter+=1 - self.progress_rate = (int(self.frame_counter)/int(self.total_frames))*100 + self.progress_rate = ((int(self.frame_counter)/int(self.total_frames))*100) """ @@ -152,10 +160,16 @@ class Program(QMainWindow): """ + def image_control(self): + + model = YOLO(self.model_path) + + model.predict(self.path, save=True, show=True, conf=(self.conf_val/100)) + + def showVideo(self): if self.path != '': - self.plainTexts[0].setPlainText(self.path) self.graphics[0].setMedia(QMediaContent(QUrl.fromLocalFile(self.path))) self.graphics[0].play() @@ -163,7 +177,8 @@ class Program(QMainWindow): if self.radio_buttons[0].isChecked(): self.radio_button_select() - self.model_youtube() + self.path, self.filename = QFileDialog.getOpenFileName(self, "resim Dosyası Seç", "", "resim Dosyaları (*.png *.jpeg *.jpg)") + self.image_control() elif self.radio_buttons[1].isChecked(): self.radio_button_select() diff --git a/window.py b/window.py new file mode 100644 index 0000000..1b71513 --- /dev/null +++ b/window.py @@ -0,0 +1,184 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'window2.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets +from PyQt5.QtMultimediaWidgets import QVideoWidget +from PyQt5.QtMultimedia import QMediaPlayer + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(1184, 601) + Dialog.setStyleSheet("QDialog {\n" +"background-color:#54784E;\n" +"}") + + + self.video_widget = QVideoWidget(Dialog) + self.video_widget.setGeometry(QtCore.QRect(80, 30, 480, 270)) + self.video_widget.setObjectName("video_widget") + + self.video_widget.setGeometry(QtCore.QRect(10, 10, 960, 540)) + self.video_widget.setStyleSheet("QGraphicsView {\n" +" background-color:#D7B8F3;\n" +"}") + + + self.media_player = QMediaPlayer(Dialog, QMediaPlayer.VideoSurface) + self.media_player.setObjectName("media_player") + self.media_player.setVideoOutput(self.video_widget) + + + self.tabWidget = QtWidgets.QTabWidget(Dialog) + self.tabWidget.setGeometry(QtCore.QRect(980, 20, 191, 531)) + self.tabWidget.setStyleSheet("QTabWidget {\n" +" background-color: #0d1b2a;\n" +" border-radius: 12px;\n" +" padding: 5px;\n" +"}\n" +"\n" +"/* Sekme başlıklarının stilini belirleme */\n" +"QTabBar::tab {\n" +" background: #1b263b;\n" +" color: white;\n" +" padding: 10px;\n" +" border-top-left-radius: 10px;\n" +" border-top-right-radius: 10px;\n" +" margin: 5px;\n" +"}\n" +"\n" +"\n" +"QTabBar::tab:hover {\n" +" background: #324a67;\n" +" color: #ffffff;\n" +"}\n" +"\n" +"") + + self.progess_bar = QtWidgets.QProgressBar(Dialog) + self.progess_bar.setGeometry(1010,415, 111,25) + self.progess_bar.setValue(0) + + + self.tabWidget.setObjectName("tabWidget") + self.tab = QtWidgets.QWidget() + self.tab.setObjectName("tab") + self.horizontalSlider = QtWidgets.QSlider(self.tab) + self.horizontalSlider.setGeometry(QtCore.QRect(10, 130, 160, 16)) + self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) + self.horizontalSlider.setObjectName("horizontalSlider") + self.label = QtWidgets.QLabel(self.tab) + self.label.setGeometry(QtCore.QRect(30, 80, 121, 19)) + self.label.setStyleSheet("QLabel {\n" +"\n" +" color:white;\n" +"}") + self.label.setObjectName("label") + self.radioButton_1 = QtWidgets.QRadioButton(self.tab) + self.radioButton_1.setGeometry(QtCore.QRect(20, 170, 92, 25)) + self.radioButton_1.setStyleSheet("QCRadioButton {\n" +"\n" +" color:white;\n" +"}") + self.radioButton_1.setObjectName("radioButton_1") + self.radioButton_2 = QtWidgets.QRadioButton(self.tab) + self.radioButton_2.setGeometry(QtCore.QRect(20, 210, 92, 25)) + self.radioButton_2.setStyleSheet("QRadioButton {\n" +"\n" +" color:white;\n" +"}") + self.radioButton_2.setObjectName("radioButton_2") + self.textBrowser = QtWidgets.QTextBrowser(self.tab) + self.textBrowser.setGeometry(QtCore.QRect(20, 270, 141, 71)) + self.textBrowser.setStyleSheet("QTextBrowser {\n" +"\n" +" color:white;\n" +" background-color:#6a040f;\n" +"}") + self.textBrowser.setObjectName("textBrowser") + self.pushButton = QtWidgets.QPushButton(self.tab) + self.pushButton.setGeometry(QtCore.QRect(20, 390, 141, 31)) + self.pushButton.setStyleSheet("QPushButton {\n" +" color:white;\n" +" background-color:#232E21;\n" +" border-radius:12px;\n" +"}") + self.pushButton.setObjectName("pushButton") + self.label_2 = QtWidgets.QLabel(self.tab) + self.label_2.setGeometry(QtCore.QRect(70, 110, 66, 19)) + self.label_2.setStyleSheet("QLabel {\n" +"\n" +" color:white;\n" +"}") + self.label_2.setObjectName("label_2") + self.frame = QtWidgets.QFrame(self.tab) + self.frame.setGeometry(QtCore.QRect(10, 380, 161, 51)) + self.frame.setStyleSheet("QFrame {\n" +" background-color:white;\n" +" border-radius:12px;\n" +"}") + self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.frame.setFrameShadow(QtWidgets.QFrame.Raised) + self.frame.setObjectName("frame") + self.frame.raise_() + self.horizontalSlider.raise_() + self.label.raise_() + self.radioButton_1.raise_() + self.radioButton_2.raise_() + self.textBrowser.raise_() + self.pushButton.raise_() + self.label_2.raise_() + self.tabWidget.addTab(self.tab, "") + self.tab_2 = QtWidgets.QWidget() + self.tab_2.setObjectName("tab_2") + self.pushButton_2 = QtWidgets.QPushButton(self.tab_2) + self.pushButton_2.setGeometry(QtCore.QRect(20, 430, 151, 41)) + self.pushButton_2.setStyleSheet("QPushButton {\n" +" font: 75 14pt \"Ubuntu Sans\";\n" +" color:black;\n" +" background-color:white;\n" +" border-radius:12px;\n" +"}") + self.pushButton_2.setObjectName("pushButton_2") + self.textBrowser_2 = QtWidgets.QTextBrowser(self.tab_2) + self.textBrowser_2.setGeometry(QtCore.QRect(10, 10, 161, 391)) + self.textBrowser_2.setStyleSheet("QTextBrowser {\n" +"\n" +" color:white;\n" +" background-color:#6a040f;\n" +"}") + self.textBrowser_2.setObjectName("textBrowser_2") + self.tabWidget.addTab(self.tab_2, "") + + self.retranslateUi(Dialog) + self.tabWidget.setCurrentIndex(0) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.label.setText(_translate("Dialog", "Doğruluk eşiği")) + self.radioButton_1.setText(_translate("Dialog", "resim")) + self.radioButton_2.setText(_translate("Dialog", "video")) + self.textBrowser.setHtml(_translate("Dialog", "\n" +"
\n" +"ÇIKTILAR İÇİN RUNS KLASÖRÜNÜ KONTROL EDİN
")) + self.pushButton.setText(_translate("Dialog", "DOSYA SEC")) + self.label_2.setText(_translate("Dialog", "0")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("Dialog", "Tab 1")) + self.pushButton_2.setText(_translate("Dialog", "yukle")) + self.textBrowser_2.setHtml(_translate("Dialog", "\n" +"\n" +"Burda kendi modelinizi yükeleyebilir ve bu çıktıları görebilirsiniz modelinizin YOLOv8 ile uyumlu olması gerekir detaylı bilgi için buraya bakabilirsiniz.
")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("Dialog", "Tab 2")) diff --git a/yolov8s.pt b/yolov8s.pt new file mode 100644 index 0000000000000000000000000000000000000000..5f7efb1ee991ebccb1ee9a360066829e6435a168 GIT binary patch literal 22573363 zcmbT91%TVu60Sp~l<}6Ea?07j?xvVBY*SDv#dMQwy5V?MNzrWzj?2u<%*@Qp%*@^( z3=^S>mBNEeQ7=P>FfT(Y&&x1L=w+BJ^fK%z^fK%v^fK%%Y^5iM@&Do4hN-rXV)1j} zzT$W~Z$EKV#kkl;S~Tj)vj{$AFsPSe8D)aZqZ _5OxCG2yZ2F1Bf2Q}9jEPbvsq14X8CU!Qqvobc?If{m) z&xPVZ=YbmNe3m}Y1yE`iViUUv+gTZ#>|#ZOGF}2PP^OHR;-+>PHnGdGQ5mlQD|TfF zUxkfbc(pL^!fWJt7hWs$F1$|YU3k6FyYL2~cj1k~=~Kqy=fInITG?*K7W(NHjpa&m zt1#?Bw?Q10V-veWQQw8`6z0j_CC`(;Tj y6p%>y+p%>ycp%>zHVJjII#pDeI zqnNxYj$-nbIEu;J;+mMeBX?S2@-8cKF?kQCZ0} !L-Z?botO;hV_z#C_RDXeIKj7|Cisq}Pw+j&xpFM$ z%Jb+?P}Tk$qCaCZG5H1VEG7dQ>{r4**Kbgq>vvFd{lU`b`V&g+FKl9eV>^k-fWFp+ ztB-u3u23AP8>oSF)wK`Q14?ZMY+^HFJBi7Fem0Y$K}=?b7$_5yS#VS9iA`))Y!s8( zz>3Wt!gF9_8_p@r+i)&<-iC7vy$$CPdK=Cw^fsJN=xsQ^aJt1r-wKTG!e JJ*u)l9)OVxBgn9mp%k%t~5PJT-gr5JBLeGCGq36Fe z*t@;Y=s7*9WpK;3YzXF(vYa07Ni8o7N%e**wgNV>6&3ZQRubk(tt`)zT1Dtdtt#}S zRug(seT1G=16VkQ>x)~qehSu(;ri?0p40$gNU9O4SQ9p}W<@=zfx MnhDctf^@7`34hHnM^;se1JvOxsKpNIB@(3SqH`KEV zA8$9p_Z?wlD78(niEWxkH-oCy5~7=93&J~CZm7c+5T~)jgSJxC>#(&juR|iw>#&W` z>#(iR>#&{B>#)7h>#&0`zslnuXW(?XbN0!0M{$(goy0ZC-C1rya>HAY-gI_hMJ~C! z;*@PSY~fWO8r-@X53t=?fhG*%qD@HRGN@w1K#9w6mR{2lP-<=1#75@PJ)o+!hv+D5 zz2r99XvM<>W1u*}SWpv;W9bu&hf O>ANwEkRYY5beNblAFSHlG|jH2>V=pduIPSp^lj7~fyp zOQ6&)#U^%H9=#l@+7%&sCAOd
dU;-l8-!km8--qn zn}lA6n}uG7TZGeAkz2JYo*%nS9986YaZN?;kUK3Exsw&Sirj@$w!5)~SN)#g*44Pd z?q!AVFZV%lf4Lvj{_+4zujzwOY7b!(dpM6i0#)tN5Pb|=ry`Ag?QzA!4*3KWCwLOn z1W&Q_37&>hdj^}>vw8G6sA|uL=nL3PMP7tEt4L!%dx@~m^)eLadIi*6ud?*HUV~D5 z9h=x2*iI_a*x%k%G$j2N6bE`6)IjgB^nu=mQhN`Z*!$Q{D$+Q>K2S8M$cGREWh(L! zZfYN66Z-@kRpe8!VxNWZ=h)bQUkLLC{8FAb;8#L#z^{egfZqtc0lyV`1AZr*UKN=% zI-b98e>6K%`kv>P?FVe3v3}H`E+;<;!*29nsA4~36Z=I`-;I71=3DWbJl~4ng}xPk z2z@L56#7>DCG@TM8!Q|tb>Z(0%hnZJNU9rdOscyuB-I1rs%|Vt*@}8nGYRvgW|rqk z%_8)qdI~+MS%sd|Y(h_Jb}-YpIpDI*86vsH%@y3b{jbsHW<}Jvc|ba(pmFo+Sp|)o z58pd)ekipCu!;RAk1hyRZJ`id7+cV|MdXG$EDBX@vGAb974 d!bZaJ-r8n?VSYFuw|P2*OOJ1vb{krlbdt%Osym9d3aeU;$W z)ws!4Wrgp}t3h#Z?gMIXZeZy(?F(_X8_U`5JURfXT4RVdVe2)n*_ss(axoB!6RZwu zf;CwB1ZzU6t%Xf&?L4{;RJB1Nx-K@;xb@&VjT>m|6ZW|_fZ|*mf|_e1mOj_U5QoxO z4yCc3G_I+SZKh~Qx&?{@Z4PRn!7P2CEuhr4#3r^Cwv)y+HQ3gQ28~M~2Ff&U8{E{k z#U{2LHfr4VV8wO_Vf_JIY``6bc?0ew&l_-Op*P?zLT|ubh2DU>3B3V_3a3}&YDY@D z^R%+HVhjB=Ok=sU4Ht&JX9UERC0Gup74^Mm4`H5syF5>Rl+cqOE%fBa2tE0+LQj4i zn5oEkxNH+bBv+A%!R_4PO?|Dzil`z6@){IWq(jdts7Q+Muk9o#waM7T_ROPuK~>v3 zMEAiKRAgVdp$_{&6)T4a?XRfU;Q(P?hbi*B4hIUo4hIRn4hIXp4u=T64i(|FRb;AG zMHQ)vqlz3VuBpgja;K#thqEGAkt1-*b|kj&svi~Hx*GShqgmnm%P~;gUycQ}zZ}QX zYkEAC+6maiPRyexK~+0BL{GuisYp|QJ5}+pL!Ji32~Gz!!5J)lf-@n`VPiRmok!1s zs&;OOo`=m; yq@4FzkvCLlt`j%VjBw`mXqxFt5bp^1KpH z2)z yFoNk}u z7dgD7Ck~#{qa|MC@G`#l$}3Q6uVNE>EswqqRqc%seG^+yrMKjUQoIdufF2(7uA*Lw z_k?*V-k0a4_(15T_)zGj_( mPcEls%;*kgRupn+(K@s#g-6Pdxr;Yt*F-`5$3hnMxNJVTcOut zJE7NNd!g522cg$OHx`KBQ>s1VRS!EV8o#LANgThZ+*urzau;z;DR-4yP|EzOhuv6_ zE9Fp}vh9v7G(c-`>&iXAhOr{5!Ei8BgAuUQppB&$cO=9m<5(^k&!eNDs*MiOG1z*g zY_ze8yWorivnj^InqmS=pJF1ES_zw&< vd!A7M#9IV(8A$%k@_Ty2)ydRI2=lyt$(EIUNq4(o)Lhr}ph2D=R z2&Ypii Kmh<7VT@WI >YExTY+3%bk|8+{21o zS? XX!(I0HyXJHnESe zos?zZ0Q*?cpe&z2jFc(Mr?^~Og5}y0Y*dynK>iRjgulYZe*9XP_v1J6ydS?6dOv7PE(EIU6;q)s@@mh$Vcxu`Hi!Jol&l=Cg JMSQ z0e{N#4fspw8}PT#H=qmm0gD^ZRp=Yg4J=#>(H*yJJwh ^Q0CQdQyuBJ*h>7p44JOPik>6li?-cvh@m)yi7|5w@w!t zZ7Ehrh6hQ8m&T!IdxtAp!_^SW=y`?D!OP EHbime(Rw3?z`i9W)-5)Jaa5`BeUiGD(_M1P@IVt~*q(J0I>Y5m955KUSYKLIz3 zqxudM*VK1)xdrv*FxTIZ)?h`hzH8!eqZ4f5bzeKUbyaS%by$HcOi67JM2U5s|GJ>` zWj&T&)Ab>)Nx>$zVIJKGs@ldOx(T*kdz)=j#lr-fL2-f>P!nv<(kB=U@t2j@#J0?% zTR~OZIz$s}ro7w0b;>)?wk7OyZ3o4 ?SBqb~C8SZei(@-3q048#b}qv2|+FXm=9>nEB6D${+V56Em0#@wN5Pl3ByYO*g z-i1%d^DcZ+=w0}f(7W(yp?BdkLhr(7h107h`Pu&3brH|;{IWfdEp*ol8q{UwMPb;N zUV`{5O>APXDC+yttHOLMUX$lr@w(8r;tip1#hXIkinoNm6>o!uqo#Lo%l58 J!L8p3o9$cH x-{TZs-FCqFXwxD&t z$ql9W9pVb_@Sr~x^-}yL%uDgNJTFBTZb}_X(N*ZB=qB`1bQgLldI+bjbu(yH)VdkP zQR`+B*R)Qz=$@w5&BBUY>w4mpZB}gIg`X|B^=0P1gskyhdJZV=(sP2^rRQSlMV%Ys z+&GqV<9T#GsA}_v=mOY!t>cD;|Ivyd8Vf>khJ`@QurN!XVG)R15n>ZtERQY@Rc(n7 z?S;*>Zb`UK>$s`mQpA0-rJ*?4GN2|~mZeX&9K@kDmP2c7XRT}KYbz)m(q0jYBdr8# zq?K9vNUK1pt%^--HEd_CYv^Zv6b@R~05MXgb$xNU-~`JBC)lWU1Hg(khHw)$c44zH z@4|udybD(s`VP5<(7SL=p?Be0Lhr)0h108bwd*6+;b~ R5jgMH?bYD1vS}8ZYaghP{no$ z5872xFU4-cyc9#_c`0@mdMR3kUW#EtFU4@7mtur)+G^6KRZ&ewildtBA+D)OyWD9V zIgMgPt|p^#$~FdDc;Uwex4z5+Y#eKRrx_2$on`{4on|6SFKP)&&9I4e G}@k85q8VHpg6 (!*m4kGT8 z9Sp_E4gob;g{4n672@a`%h5HqPEDHaFoi?fheL6sBS4LGBugLZC@8g~v56gnty7bM zcC5ldO^$;YDN~c bk{&=Y{uf%2Yyb_lSy%JXly%JXny%JXmy%JZ0nKWGkm+jgR z$))MK;MVOk-1Y8y)<~N8v5nMjz~MF3S$Tcs7tRpfsHYC@GD}OmQsO3jZ oq>f@ynk0=^1m3UMfHR>^O)TqbBHH~^g?zA-ONmk?<^%PFop2ikB;F;jo z*So= ssM+ zya8r&ya{WLw^;fdZ$qiQgH7z+Jo+9~wf95x18k;KAHsDy#jOKBA|9vv7|f>o1lDw) zvh?XbgHrn(o7flF&Pv67*uGTQQ~wIg#`+r8Sl_VpvA%^;`wpAf_t?%_)pvmXpm5Nt zA0dXywCX2ZE^%C6}IqFigb;rrBm*@ePZ3b+iF=xb$(lnDW?2R)+T-Ab2 ztf!*BH_j@|H+(jEzTvYAeZ%Jv`i9Rb^bMa&=o>yaSomN#4{q7!Rj~HKa6UcU^>Th; zNNNFyTZ&`3s6|mvY9V2s)WY&SsYQgI)S^O9YB8ZFwYboeS^~`UvKL&oB|{|F%cX)_ zzyCJc(yR%3sSC@N!J)5QFXPvm%j&7T&^o8AuQiv$_m*8AO073Gu@&;@icr;73elCZ z1-)EFZYaj8P{mdY59*_+7o$O#7o)E{FGfG17o)$>i!ngx#b^|IF`9(g*P7Bx(w=I~ zipH-s2a4m@nyZVWUaldo>E)Vo3woJfFtHXZa=ly|r)=wB3mq^hxb^jJvUOP#1z|lf z6NL3)3Bm>}y}BDhT&{vmY~wt-2~@RBLv%CjH1x9BTC~DNXLB%{V=$~awqWUVYzc8+ zaBN~*=g|bJ+BPA&EjH83?cjR79BA7UkJIe{X44IUHQkOZeY%~X)ON-uwhOkiUUIX! zT^07!cLTGrhQb gcW$6#YqjuqxjIZmE8<#?et iN9XzjWDYnpElQfv? z%Vc5LrS^pQ<4$a1dn@X@)IP#I`+enk_WKDv`?Aop-(Tq2A0YJXr+}Hh90-@~pb*LR z<>27f^*cA7JA^esUuLA_6&zj%*B5^KNP03=PaWJPc=D_G{t_PwrFIxLvBUG|5m42R z4AG;o1${YMZYahv5O+lh4?0d!FUIl0ycj3Q^J1JR^kSSO^kSSW^kSSM^kSSUL|?k= zvWZ+@PE$1M%jx2%FK39OzMLtp>C0Jir=>4vvm)1*b8yObF1FAC=LNUE-u>)+*2Ep? z0x;WwE`+rMUBuF>doh&SCD_C+&7+q=Rl7VyufW#p3-{%_QY(BXy$a0cxEj_R*Rb?C zu7y&&4x8BZdGrRTYBz@HP1sCdZieghg}e9NLOf1)E0|4p8?5PWXX(@30de<2EO#%& z*6B;5-L0^veh-+9buX;3?qlg=-4CVq05-7)v32^=WDhAE^yOiQp)!4W1eZ%vuw0UY zjr#I9Sg|KU_(^PR%BO^RQ$8)voAMc N$NT%yar&p6B$1&~y4y=sA5Q^qjsH zdQRVfg=4*Mam)6dg0*A4@AYs`>IY#+>PM(zKVdm(uBa#VvoKHU7kQr4uR>4iH=!r> zyU>&RL+DBU31(XS7hJZ#LnPPYF8r$6KY!*Ye09~Y*}AeOXz?txXEz*r7U}Jpe>U!} zrxrdN_rUkvVFoC*8L`|kJde%{Rc)3K?TIaD@vL$~F=m6fdrElF9Ey4|<`m||m`k1) zV{V}rV;-RwV_u;bV?Lo5V}4=w*_exC|8f1q0$LeA7XL>aWq3hxO@ FT(?Ean?v@ctcwP3_63p^n#@`OS1IBE(LKR3zpl5=h0=M zsx23y%VX nS7P1nfMr)z?^Ss|7y!?B%Zn7h)guCS-R2AGYtCakg6V(DY84W+gY zHnBn2&NAG;pRKEKkm2 TO+7_zVc394!E9!gG z4#GTp{jg%pen+8azmw3j-&yF{?;`Z 1zrdVuZEnz-*A0A~Bn6j=Mtfh@hS2SHp{j^(=YJX(ROHZ?@6*l9>hqaCUh zzJDGDW^)`4YmOsW`W#0>sU3w)?C3mt3{ >Suu2SZBf->nxT&*4a>M=U@{%7h5MS1MNJ8gS4Cv zF;pfk7vOTS3YLpiuu)nr1}k<+2w#eg{dk!$@5jsKc|Tqu^nScj=>2$=(EIUfq4(o8 z!s(Wl{ObYTFnYB9jFR^vz8{#mb|UUyz8|=j`QmxFfp#6v|N5=BZMNEKqn>s>kKp@* z8(5U>Mr@&%Z^Dg2cC#?-ySG3UyA_+*ZHoH7d%G~N)gAJ@R(A@$R(A=#R(A`%R`&?K zR`-I11GoEd%XYtlwF9>Y^l(?#2ZbT2hafI4$0qiOqMp>F!aS+R 3K_H2mc>iS%8>vnl=*Y`YYg1YLW*B5YTMOW8&lI}%4wQ!Q| zC4BGlm!Z^N!6x=<9(@g}+Up_u2DYHCZ^{kDcnhl7+u=d)DC)&{SC|*$J$YV?_k~`J z4}@Nf4~1TgkAz-~kA B44fZW-qK142W*YK6EDiaArC0Yyh^u3;9O&oKpCPV}3DIA%^%Be7 z41d!K*QwvZY>q!*&G9EopW`nmwZE~6b>Vl~J=ztjS~qNB-LaX(_JHdomU|w~Ks-)2 zBbZG$6RhcGX6XaZ0&x#SEcZafc9vM~M>m_op8D)yHr5=l#+s9*k2M#R+T7U0=D~KB z*Z~7 mMdix^<8QOVV?bp z@;v*Mgr5D%LeG8`p=ZCU(6e6+%=D!XT(*V~$@QggaO?ZM(fY9_=*!HMygv@FgXCmz zmmdC6Xn>v?J)NX$#P^rD3F2TM%fWsgT^*|08X>wSwxBO-$qmI=8>-kk;X#8G^ @@VH*>=_npJNv=n`2j4bL_^_=NJlcwK|ro)$`~usA|JQbObijmo~Uw zUk2Jp;&Hk?z-+p9SksMS>C=sdQX7L!Y%I33zHq0yaSD6t `*1fg@`4M_Mm~lDwI)p{pD%e63 zPSu<)Lsene^A3f$yCRk|>x%lGcZ4wC$Rp+XMjj>fjXYZD8+nY-H}Y7aZ{%^p;Vm<0 zKV$#uru}Nj9Q*-=weh>^7lK2$8(Ww0 zt>fD4B6)oC-X+V{F3#3>jM}HoF2UO({APW}@Yb A75J+hu%PD?e?|-=ZooJAu}*qxKj-boc}t-)0?lMHqDf;?_2N!nlc((zc=h82?H= zfLEty?bTU^M>F;C_EpD^Up4y$_*%JF%{SmGo}0Z)4R$r&|N2D1@5c{s<#!FQ;W4~E z*Rm+vb=bn|b3JZ+eQpqj*XKs4VmDzEyIE0xeQpuvug|UW{Pnp_=T1LVtbk5c=zL zr_f)YyTBpbe!0sCyBnmrA8eVm{h?j$9=zV0{mp+ZGq&*~+Kcg+|NZ+HY?$54GqOtb zwfpe0YaH%}xlN5mtbI~>5I1h>L&C7B4@2Ch2Fq<~6!lGgOqg%# >B~AW7wCsbt}p8b zx4z$-Z9UdVU#94$Gwb8 0($zmcZJ?(Pc26IlHpKUrcq53L&|nkWB#&+iRc*5n zZNV1wWplZq7=s}$<_QnlQc*9)R>Hg(Tg&reBtkF7HbO7Pwn8t)c0w=4_QF;&{>QB$ zc2G3xi;g`qec4eQ^<^h 6XK3-|LJtrfnLjsded#=@Fo97~^LJj4y# zvD~mdkCq^A*dC%C*i2tixK3ZV>*plmak|N1Hr<}ErrV39Pq#P3J=?L|vmM)6U$}kc zehPc)WiT6Se^_H3z|zN>0&&}REVpgPcGj0Be%46gpf86&43+6i1(%C=u-vyD8};Q- zkWUsNd^k2X jR zkGr>H3pt&yhj>mG2t!U6LR`9oP3&StJ*P{Ac}|zg^PDaddQO)MJ*O*#p3{{=&*>_# zaIAMVZrQF;uy(9>tsd@4T_+4lT@O|425e$CD(XqyB+Qe#S)M0#i_nw0Rp?3GCiJ9k z7kW~6fSDHG3774z5XrUp?%>vG1GoLWhc(jTaDRw8?pC;X>Cl>xR>3)3Q86JRA zdk~x0LwWRJsA`Xd=%d(z5 bIJ@suzx#nbY<6we5~6weC16we90 z6weF26fX#;{ijJUYE}Fa@+EPU;FrZU34TRxL4w13lHP@0WkoK*ui=#Kb!_2 _?V9 z*-sD`+GDxU9$P2A&Gw7JA?;tGIMQ#RM*5wlkMswW+Mn3O{=(Kt??C%o;UK+T_@vHA zne=wW<@y~gr~a`~dV7G}kv)WG#Ktb1Ntk!x%<{YoXAycA_7r*-&MNdSoK5ImIJ 4n3~P*9U4^~8djEQRl{@6r(0 z(_<4`Hjgd`Rc-kY?Tsy{$qI5qDOQBIdM7++WktOds|fQ_tSZk-v6|3J(MRZ|Xb^fS z`U<@i{e;t2lm1#2)ntG;s!5}`rY22tr==#%tjN`5AWqp<#};1rHG*4T<_24nHNMlV z1;w3aZBRSSIxM}YgP_#b#U{319$g=*+6E!IA+}ykxNYf1S`l{3jiEThCZJ~6l%>zG z8I)QJmLC?)ql2NUZ4shdVly?_3a(QVZfv?Wai1)K;$+)^nrvH^KG}8 N9z>t=x}Ct^gmAIj;=d@yT6_j&eo33 zPRY(*E68-8l0AT7veNXoDH=4Mb3G8|Dt~ODGza6x(i|cTrKv#t!YP&y0*ZQR4i)C5 zIZU3H=5V2x<_Mve=18HJ<|v_;=4fzqeztWEoozjaP(0h(WBSgv9?LVbjT~UdX~_74 z!^gvXD$t0vgWVHx<3^q&3>$ee#HRu*p9&Q9jXX`5Z{+Fnd?U{g`bM59^o=}A=o@*q z&^PiNuy6!^E-oJn6s#q6z8)Sw76?O97eah2!1A#`QBUd;VV=~b@;s@_gr3ypLQm=n zp(k~v(383f%-%DvhWShoBKdpfwZW|y^G3UlHTw8@Z)(?rNDc3p@#F`8lB?$xPKDfv z?;>^+l-kYM#BRx>w?b9BEktj}7Tz-NkQ*v-CseV!!h`Ns)GKk1Ft5bD^1KrF3B3~c z3%wE#2)z;y3cV5!3H?+^?MH_nRxq9kc|;t~v_2}1Z=8>bYj2#7%PqWda%NWl_+?a9 z z5sFCcx+-X< x82ya8&4H(B}&Z$YWOjZN&GJo+wFwf92weQfr|`2k%2#>wxV z68FhIg5qQ!gPQCUmOk015cj6Ua&Jm(=QmF7*7}9QA?+`rIMP?3M*5nikMs?c+PB!m zzQcBY;~dyv-zyy6IDdc`DSPAm5tnO!uw46tjc=SkgBANFgnz}xUi?j%_u}vJychov zdN2Md^j`c+=)L&2(0j29-=j|V8)xk>yem&DTQ_W>sk&<{my{mDup`X?RcuBqm-#E| zJJQU;Jo#DVdGbAlp8TvrPkuI`CqKK;lb-|3BxO#xY;%Q3E-7;dx30~(Q|mmek)-UN z+Pokyf)2v(^^>df>1pohQ| _`Ac)D;D*nw>av_3gW0I zD~fA+vXb0s>B-8h$n|6uoU*NoExh!r1-HJ?++2q>zS}fFakuFUYPadf(kt5^N^Jl( zvBo^w1XZm$L 4>CM LT0>WQwM;E!lScqeRZ#hrzDEAArC zTX9#Rx8iO>Z^fZPZ^hk(-iocl={*o1T|A*WjAxc@IJVGNBQ%^#N}Dk3N+Y3)?SbWw zZ58!hX_PR}f3!T$e~i%cA1n0y#|b_E@j}mkf-pa!IuVb &s?KnNH@MBoV u<9HAHDT%i}@JfRoje4!WO0%2>*AjEf2r#~0F zP^;nzkc-4ocP|##boUau1>NnccOkv;T*``EcQ3;!+vV88%YH?0>x(?lu4E0OFetUF zAj!+1id_v#Uan#3MZFf{?`g68J#8Mn0pjmzL-ZzWo$mJK*0nclMVR3hD9&&zs2Of! z=`-98rFI84u{-nVT~O8T4$*tCneN^Tch=p$eH!dO;y&5^P@L=mP?J5#(kFWeO6_4R zSKDJd>2BXXeeF?&L)wo)aiqsVjr0UdAL&UbwWqL&J&o<8yM6ogvu6|zy8A4|NSW?F zhs)jFvE1Dq8+G?ZkZV~&_+@PD!dHZO7rrXbyYMxkcj4 $^gdLv53q@SsHpEk9|`m1KbGgoe Xo{ zl-iHj#D2=7|AngdbBO+eEojNFazi10gE;RV9`uKzUWh-1c_IFi=Y{xN=!NJqC+LOf zD)d5h6M7-K3#Y9mJ+vxn$qeGCB{Pa^S~8Q|X=%yKtjM)w7M!y6#1>xmS%X_& G6=A3R4-{uu5Y!9{ zvGf@hhEiJuo7kdxbTO!Ei-+hE*i1`$!S!0wWJ?nF$(DlRWJ`mZY#Ek5*|HEfr@ x)gS zA2w=9f3RW$LbwqdyRb=^cVV+U@4|sX@50rE-i2!jy$jbAdKa!GoL()N#>rIuy55|% zbBF(OGIecc%TA^>+B%wBw~ZSFlx 0IJxA*u*wc)OW~@g?TA9 zk>{n@ROqGHOz5R(5qc>$7kViMgPAgI0dqxuh~&z&RdDNe8m=1Nnl#NJBXupEJy8mbO^*1`XRa#wxCTr%MGR21*+Jt;X%78>ZKSe%uBJm zJTFD7&`U8)=%pAg^iqrvdMVn3t(>qL7EW4mur}33Di&`Uw}&_iRJ%9|)F^RHphnA` zmOzbRMJ`ZdamqFhTX^-y2e-b~4K{%_>^)Obn+Rz?oKmq8sQu7bdSyGH)KY9>lk(_f zsA_wL=w8@*f#Pnnduv6QVIL^YurH_?_G9TYl%dr2$0l|_9-RVJ?Z6N{2%8Di!El{G zaYNcei2Gy}C{8vN)MQnbKG~rVceBBA%{{iWKyh2uBNPs49|^^gjsi8((JXzWV;~O3 zv56gr?JQ6Y1MGN(gFu}CF;XT_C*r1d5;n1uu~DE-0V{TD2%m !mDY+e?Qnkisq_G(f{STf36UpZ09j>rbSJ5K3?|i#RYKL zF2oiZ@*> d^EyA#ow?Z7` zW4RZ-qP~%L2=k4+Q=V_+T|(c;yM?}y_XvF>?-lw+-Uk*w?%t2f1?&pel6p`N_cwxv zgdwSiAueFYasj)dp44N)JgLX!c~VaZJ*g*!p43x9PwHu*C-n@Ny%9VMbM< @hSFA_7LHyWii1xr{ZwNEM^=}9RZARj8x|zUix|v~3Hw#N2xF^J~ ztz!ALRcz H^eRFvD{J~+xbnQZ-dRJaClRgA7ZHN zO<@6CPLyLgQI3so3JZbUQ$B ?QQ3TvF&wxs>o~ z_2a+4D-=HhFU|AHwhXq=UCU}P*O%plVV7DS;!1Zccc)a;cc~SHdG;&G^Xyj^diJXb zJ^NLKp8aY<&%O_s=}QC5)$1XW>r21j*7ZC0vhB~BTwey@@H+fMUmEq)g1$82`%Bym zr8W?o*y?$74XA2shUi+@g1)RRHxy$XsA7Y{gVt5li?N -1$)MWeoKCXV{jB98j9xwxh;gXK<3U$$UHt}k2Slx-_)p#!!KZhgJ` zS;CsQ18oClJJ7bUcA)K8dUdylQriKW*pNKBBUH7WLUd wSv z%`udv^m{S}QiOVR>{oRJ9Qy+J?>aWh7juFWd)s58`pUb}*Z66s+k+v-Ii4K&g$z zCN>URr!S2*USUst0+@|85!P5GmOhq2sdZozOR;tO(qxkq4*D_~VyH}C_QXwXFD$pF z#72GD2dvn>A-o?pHf33uH|75FyeSV5dQ(mjdQ%=K^rk#W=uLUBaQgM7_|?WCJe5DA z#TFWDs>XAPsS3khbtuHe?pO}#74^O92w}bfN6PaJI7;XnaJ0}j;25EAz_CK#fa8Su zR~yIUait2jkkg5Ji05>YFywSH#FZ*ou2fOfb2?3!=XAO}&*==I=X9pfb2>}tIh`%^ zoX!CY$9m`Da;1ubwPU^W^>9z>0%1t%LWnC>uw1F4s3&!aFi+}Id7ji|LQm>)p(k~P z(384S=t*4#W?FnT%#|u3l56p`!L8SZX1k6x`G@}Nap>9JwGaI_=!u07{Ws$K&TtdN zr7Bo1Rmr2bLR_j6qPJrUN_>ahP>MStE>#H+x?52%#XZ8j6!*&WQrsu>Qrs`}Qam8^ zQamX1QamJV%|7)1<6d|VYgPQb|A;tB@T20I1V1LXAi-Vr)rP*@c$^iv1V4dOwkNTL z7yhZ>)|YvpJ Hz6)q$MVandGsBqYVU^Vd)Q2V--qkum)i<|K-?$$5Q>w1 z1ZuL6S^8w3K&gF-P3$vlXYu9UxSuN=(*6R9BYg>Kq_0@|NMA##eS=NxTWn|P?bpw~ zQ#eTP_Yfmx()$B0r_QmQI>$!o{V!OtpF{W;Z0y2cg?ShLCeOR@ccFLTA42cKKZV|f ze+j({{}xW)=l$Z5U6;AlR9&%!rs{?p)ug*H>_R;tE_BBxHlw1x3(X|Vlb>0hCqIkO zlkX|?i}z|xD_7vk5Tu>2ZS9vuKxtuaKKu+vbJMr+oJuv-p<;tZ>U znqdu=KEs+&YHMK=TRV@g166HMh^~vx)MP!lUQL>8ed0dZ22h-ALr{}##L_3*7)osu zY+{>Y>(r##Hd8pH-2%mtHU~A*V3t187Eo$iViVg6Tc;)iZEJ;tnj{b-WoohwZfe_N z6Wb0O)nt2+Us4U>A=uc3I|}nI+)18y;m$(u!d-;kg}Vy93wING7Y-FpubNEb>kVBi zK2PnO;=g>ou{*P6XWIr^tLE0%8^ZvucEJ`}bcELWkxrX1?2scNu6Dt4wTq&@Lyi*W zr5G*GOEE_1r5G#pQj8ONDaH%E6cfNqn k=ZlHd%1%b{cLK+rb)XQy1O&H^t#a z4WBx*U&WcErxtF{IT_#kWlxBMcPt0*d2}DBYWs%he%OLKmF0$F><{txrr|+T6!l^p zD9np-kUTHO!9p*_Awn-kMd-ztD)eGhg{?Y)Fid8+u1A?_hbkJs;y6qkMe1;I6saS` zHIX_}?zBYeC|2Ymbu>=dj=>f>;Mm~S*So=vV@>>6bv#J5!&$8pVC{`3vh?bn1f_N| zHnCIk=&4ZEP7Be~vGp>=J#^2|3jgSKCYa4}7OXkWX6bXB1EqE@HnH>a==o69E(p;J zv6)a^1lI`_x7odzc%1GMFq`gDSkqm`(x }4Vpn22OBHvEy-HzE{c129>l#>N zUCYwPx(?zpa%^HZU^|Ode}0cu;UHEwK@63N)y=s4oD-IxbHYZkx((!}@gaN%Ha6v* z!n`T(lIKl%x6qsN9-%koy+Uuw`-I+<_Y0@ h*g|JMf*ZBzQDN8}AA>6PI5x2-6!qQlNnyU_Ps#Hwe_H5U{*2JK{8^!I`Ex?w z^5? 8Zv&@@iJVtS2SYnqvor)aU)+7hK+n3 z;+P+s*qe&_M!qG?H}Y+HzLD<;eIwr$`bNGd^o@L9=o|R~Sor+=A#T||Qm~fP$9lNG zD|{jhNqq|ON2^#aSXb1O`a+l|^`$&d>MNlq^|jEG`bOwUeJk{&z5}y&h410A{SYGg zyTXsbtyif=`-wH-T|vLi@n0PF9^M4H#XI4o_OqT^xG&Bx_`YNQ3Z?cNHnHFH=pRtk z{tVH-u!VPpzvYHv@XKrzqboMCZrE6i?!vqnJ>+>YW)ONYW)ylcW)gZaW)^xeW)bqP z@Xz1o=&5Kt7dfjqo{OAK9N!gY7uVhu=8#)>SIEEXn3EOxyTV*JWt$sY=zw{GTVL-c zo0m0`J#PCq9~fkh+y2cDOZFCE>DB!Yl-h#W#1_h<3qw^~Bt#d*PUBsn*%s3ZpJQ<_ zn_~%BbM#{Ab1Vs^wiGt8rSs@AP}P rFgPw*r_=w<4_RR$}SX ztqgHh4VJ5Fu$|u(xXbNo3VZ5(z-+7rSY!2N>0|YSxKAZEu>si5?+ODNtWn|cuFwQA zRQ9gWjLS)MEGN;i@m*mJuwrY5@LJf|lxqv~rd&s!H{~FqH|4rQZ_4$A-jwSLy(u>k z@~$vFzm-<}M7$x-E89lcLU(Pf!CYT95r$oAQ>bE_VYz@^QP-Evg?aXa<$3m72tE5P zg`WLZLeG9{p=Y0fnZ9fTmu=e+$@OKs;MVm!x47M&HMzd*fWzzX4}BS;rxx^OM|^*Y zcY^q-C@en}l}C4ls $n~X!Q#QjEI-n!C_4V#& zDQn^mGzrXhpvkaypgmc7b@zf&+Z&tMK6!LssA~I#Xc=3tFWmcgf35JH^Z+oMV+yP} z4rJ+b90YOqc`TQ+=g|tp-RDEJip})pP`FNCxIOS;#N%{_gV}UPz?$wzmOkB45Wn?` z<+on3b^6k1$13cp9|vY*9S>`)6Il9KCqi5#gXJO_Y@NO|*(nMKeK{3ks7zl@!%gjU zY+`3%qrRL8a`X8RJ{udG@*H8_l;_IxraVvRO?kf1oALsoH|2#wZ_0~=)2}bZ?>a8# zsb#waTWGLLHJ(e%Wx}vmT@F?33M@zUiuzu4)&C*wJpiLBy1##_^qz#2?b-A~8ohTU zG@}Tj7}6ktki^M`9>o$um6niX>)n Bs`*eDiwzh`E%S&6^* z@BjDmJf8bGXXf6Sd*<9Tlg-U6q5B4QktS|nH=($JIzn*+^@QRE_7I92*h}dCT}J~n zyw?Kh(Wm`XMfB+aA@9>c5Z-Hn#Ct7d6@5BF= %>iI_&ZWP(s0Yh-* nA-RoN72Sz5O$A;Okyp1HCkJOuzNftwvd5r zOv7!!&C)P-QEm&ntGNe&jm@ >dw!e;USaoSn%my50rYc&)Br zx>h$F#kIPF@P;}h-cX0UKMnVbXT8YG)36r^mugJI-ca$GIwU?*hjgW3Um#vl=VpIM zS3Cv~y5mtsnutd^p@>HXp@>H%p@>Hnp@>H{;eY($-*cI#!Fkv{9?~Pav~)3%T7n4q z(-aKC?(vY=J)W%MX$m8B_dc97(fbHO(fde3(fcSu(fepZ(fdBY#?%r6#_sXl;!Z7b zTx}Nb*oreACGOOc00ralkJQqaPW4DF{h*5>?hnH5@sQX(-fbNO!tU|hIt0=qwG1Vd zJ7X9Ko5S!*BgiV8F_O^jj8UWsXN)Ek&KN@|oH3SAIAa{4aK?DT|0%Uhph8z_d63wZ zS|$=VrItie|1GslLV-KAOomd(ra*cO{#33ucXeMj4JEE;=OJL@vy%j-XXjxYg<~H9 z>DY8gd`* nO*B1gC zuayI)Yvtl7u9XMUv8N!D7=vt 1 zkmt}|;|FnZ?0IPa(^lPMGISYf*sA*l)WI)Gif|}os~|)9?&WydDJuuN)w5!l*388I zHZ79#QW$nP*U^6Ct6|OT5SGN&0Qd>XsReWAQqkJRqIFb6ACD&I qtenbO8e+o%#g{%Vn& zuS>y>>e&BY=c-fISf`xo(5NJ5=cc54R&2UpMPp?>Rpu^fRyjAn@zRFI+D58PTglTN z`vuw9df(JoWCn!teIn+!!1nnVKnpDRwpp?_t#hqZUra_eLY{x^pd#jg#8+UERpj4F zLU+7ZktX83noz`h4WWql?SvxUcMytr-w6!OjLB4^N44NWwu@WblhJOfD|%E%$a_=| zDq?#e@yi0TiXJr(x_h*bG|{8|grY|W2t|($5{e!jA{0G345S{>Zv&5j3)xHD;_lJQ zR9E!q6++&lqo5-8Dr6FSjjW-(T$cAi^5fb^KIKO~jA;v-NI` C}*Ad}c1ZtI_*V)hre{tekUTi*pYo2{`Q z@IBZ?V=cVgjkN?)W36x$jkN}0V|Pew><)SVT#b!dA0RXDb~})(+wFmLr4BfXD|H0n z9eGH+BM*81Ox?dP>q2HeQ+Ea7N{ushH>f(+9WsgafOO5&J%QM3lAFCCU7_er=nh36 z(nKisCKRFQODICok5Gi7KcNW40K)(J*O-|ncs`Ng9PCL6=@C&1x{$~xN<#h+sX+Mh zSjZ%%A** 1G&%=&U`KS+;k(w|iB zhykD?Hjq~uL{{O5!Gvx{3?WT8Vkn_-#4tkPh~b375hDnNBSsRs|EybNlTl=IWs}jw zu52=f*p*Gj5;tX&aisoRHW`lscQ%;-rI0-c=`r>bx!T;*{aGSP#6vR)ie zf}`;4RFIBMgG^!%xvfc{V)ih%J_7kK*<=8lP6hn2d=%trVFr*|n2Dok;W3bo&4Nr~ zkGri;fQs2{ZhaE6F`FcVn`e`OY!2+Au@sQ2u~Z;6mWHEfEFFYx+##`zJLLV@1RJ%^ zBQx)ICdhTAEFfKJK91r_3qW`y9ujZFL*AcF2E?))GV^Sb3&NEevq>IQ{LBD}pBW%s z*(4uW#B|(T0O< #U+Fy6qgc;P+UeRLUB2v2*nkI|23P;kHELnWRAoF zr4XkTvZo +ESu3!IHiCxLTM% n%=`oa5bhelq zstI{YtN|6V?T|@q2U*2k?<92JbuDS)u6GfNyWUMG?z)ap+;u&nxa&Q@#?|j$FuviH zTikQQKB_Bvw4ado=l}@c@Cu1 1{Jf@+ E4@or;fwbO-M)CAG~tW$gu)je5DH&>NGN>q z5uxzK$Ase3D%#XY%vcx5=nBeDh+Q+*MPgS_ULtM^%1=r42ucLEc<3*qz&&Gq2BnaF z4(Sn*SGd~T+kM#=C=t*4mmt@({uPj(^{;UhuDuG >IcBTTn5(&aK};{!2FL z$G)cmo=tuLxmx%UNG<$?qiEp<2p`BpCb3`K)?Y!z>^E-x9kMZ-+ypn9u?F;Kw_q2I z-3GZDy91=g{=iW*_9sZk{(?+me?vB#u?DcaWaizz2XbAhg}1m;OB}_OT7h(|HDnTN z1KDiG8pzs`na@}cfN-V88LJ&s9cvGn#5zE_W~`1td{YuPcZPJuVi!VpEOsSL#9}u> z5sTdkMJ)Cp6tUQoP{d*{!v8vBxz@j4IH!<#LwZD%4_!!Pl-`8=De?v3<9kSaxe{5$ zQxrhx?zxOK(Q`SW=(&PW^jt|OdafcAJy!!8Gl~X`kL0< (u5=W5(-E3BNUG4PbeHQfKWJMAYs!K$KR_RL^fA88BFZTCPRo_*<>hjQ#Kh! z>c3@^;V5utlMzs`aSWu#*pK3Bb5F;z(I^oQ%@~mDp&1LL$8Q{t!n5N+cv~J4Z_B%_ z6G6o+ky|H0HqR#5YIHIc@W*lr$koDBAhj?JN72GVAbfc%WD
ur2y$l zsW^%&rGa!T9Wse!K;EBCuxI96GV^RQ4}>c pIBB7+Vh($zcNsAA<858_6n?!zM!ah-@ZJ zjK~&3F(O+D#fX#;iV-O#6eF^YuqioUfv}2|k P(Iy#|@Yj=8O`gNoT3+ ^jXjIOwR zkJvS7y-)0l%k#udarptM9&w5I7E9m{QQ)4mK7vxnK8Ey&$O~L;?(Ko>6O@R@{UXTq zxL*R& z;TsV4O^3v5=x*zGpknqtxBdXxm{5KM-#=-^V{^}+U>A+u0J$3b8Ay%&f}?2cR}lX4 z6cT@V3VGk86_3q5Z<3jJ`xeM`rQ1Nd(j6SdmHq(f*q@L|>@UdsCarjE?)f*F`J{Ch zgex^pTKAypSPT4;4?DU*x+bkwz#`U~o7+ITVzDiuI~E@xO~hh5LJ^DY2}LY+AQZ9K zkx;~9C&K?aX}OlbopDYf>jLQ!QC;amBBOL8 })^d&*JbS^_J87y*wZu#!&m zSOTk{i=kD6@De&CUP5 lDbwY%&$xJe%}q(_j~k zJp^(!mIS269>!5L_6P{?vq0i~7RYAVWB{8%X5MZ3oxbZzj{)gQvv3qwdK{! ywU)P{aYYi*(42E#L~Gr1JV_Wa|zv{IFB?DikXBW z6tf6LD9$Gop}2rhgkm<~f6XRh(L^5sFT`nuEC #)r9U5Swor_k+p pevbmDOCSunTcr&ppIcy o1=<$xmo6yB0^AV}{Lg9)J2!$&?Bowarh|s;8gjk?|Og7h3bAi}3 zrG7%}dTK5bH$63%NcDJX@buCDu&WCS+*9ghDA*_+(&GvFoU6@!9nY?y1j%Tnj(q{5 zWV8~SrvoV&eTAd&?AIV2y9$}auDPw>fQs3-+ e*qP&1mO!wA@Mdj Y=72<%zR313&NEe zr_=|a>R3C-B-S3%HKld{7O{@p+zHYZik%7Fq1c5q5sF<2MJRS76rtFiP=sO+LJ^8R z3IFSs60QY$FPu}zydXUy%9}1E@`(>2e~5a6ikL4X{&thB;vw=UboV@fG|_Vzq3F4s zQ1o0uD0;3W6g^h~8}o@8T*x%s;?5_5Tx}lX1DF;i?tBsi1!Lf`J54a1=#fuCpo=gG z1?gBAWD*N^TO&ZlERtKJAU*O)G^yMbeLzJlhF6Lut8hgeq1zSlqzP9f5DHiHB^0jc zM<`s;pHR4B0O5W4WFXmG`D75WE1wJ|cIA^H#7+5RD5?LJPllnuolk~CDP$ucJw|^d zSDX8KARC1e@z{(8xgMJ_KzeM(;wU^j4y0q_A(PkyxAj3#F`LM(iIC0n2{r(jL OFb#ySBZ5p~Np9=Ipknq2w@!y_%qNe6o8=Si8#)7a(b!CotFgy` z)YvQ>MPrYHu&{>2!W#1ae1gp{pCmKyb~4Cyr8z*lQVNdZN~s_nOM^^e>5%v5lel=6 zL1vy$=7Mmg#(Xjls*YtsCb29?S3a2!EMg0|IUCXyiVF$dp_oIO2*q4N5sG<)A{3t@ z6rsonMJVPI{?~lcv_#k8v_e(@=@C?mxY{hJu*u|NY6VO5P;ABm#4U#=PQ!A5&wfkk zG@;OBxD2Xr<#LdYt$<8og>LK9pknq6x2}Zzml*5Io~44s#A$d31Vn>14PQ?Lq``Ut zN6|tNNXJ$|;`=|{*43b5wuW2RLN> p^(igV%VGtRgvVBy^9+Cep-+Y$g;V zvV~BL$W}rzA|-@kL`n%oa+sExMlM>#wvo-19Lk7YOZ0MLS8}KzZb}Y%QazG`dx>s9 zf#+KqM(Bmi1nDu9W;$EU4i-Y55+zU(vqB~@8(GC&+X>xw?I2CuwUbcXbtR#=>ncKV z*VTmLu4{me>)-9*Lbiij+_S?@sw;X_OUQe)3xw|&f=ps{WEDNCCv^8{4{4%DdkIC4 z8VE&?_7RF6?I#pHIsj~(uMUC>*&%Lm_vkQJn}>Tpb_6BvkEmaQ!UKM#`z?)^=}eEe zG+u!&0`e$G$6kfROV@7eF;Fpkom=04^q8=YlgfSZCJ2AK$t#^8tMJ81LboqYktTfc zHlgsvX+q(PGlaqy?+^-KoF#O jx%CUkf5|2T*q2nmQ~y^WR|{VQsfDXJiWaVcuxlbDc1?6!uY-!&cij3t zWMek@0o;7X8pwWxT{QL+$ko^lAT{ { z0qIJ&aTHg&1HyJFkk}3d^8OhM+eZFHW Ix)@v)NXOKWc M$|rqE{kMG54+ZXg(jQ788vyAs`UAPz+}H7J5K6>jGZ^H0Y=!{o zu^Eb^@a!-UzU31#iH&euM}qJzpWHecvUxtiZkuDMfIpaHL9Q0Y0jY)YIEoe~fOPCZ z$Rsw=ZA}Cfvq{`K8L}~-OaV8`C-HsRRM nw!%hU7?sk=nloXq=`_RM<_xulTd_W7NH2m`Gg`A7ZCo}eA2W6&c jD_{myxH2DvJr5!AH9~IdA`reth+CIH z{!5GvWJ{@luYi| _J#rHA9#w*hSQTUv zt0t@HQ4OKHN83pgJ=#GidbE>J^r)6l^k^5M=+SOq gP zB{XI6Z95yF@R-LU*!7;qK04FmJ&pa)MNA$5>DWO?ynF4o9tIV&Bi#BDq{p1~GO64b zuYii!QC{g)vI<|kM(Fm%G17!DUMCd3c!N;*;y9u3#hZk}7jF@|-qUa|f=`gq6_+Q8 zU6a-+Vpm+gP23chr%CmQOTGlApM1}tz&&Zb1Er9ih4hHXb6joi?O66MNb<%Pzf?MO9Le>V-Bcj^Ug+xYqfRH~$?LgQV1rqOGlT|!L9SPk%??jsDd1pe= z^Dcy<=UoX!&$|(do_7Z}W|SV_Le`U8+!>`8SDVLpKjwuJ_afLE3dX==5$r=JdMtu_ zLl=YV3(_$^NW6OOwg!NTnT%WIkRAy|K`M8J5>&)gypo!%!W9}qw<`ik6Ryw_3ReUX z3ReUZ3Ri>>3Ri>@-nR%2BbzIqgcG~+Nd&PgpF|Qj<&!8<|1F kpa42Dq&QLB(tkw+@E =DTO^9i rJ37NzmgLLJSSwOs5&CO3hx P|f9Pv!KGBiu0%yu?Wrt;+8!Y!C7=#(;|32 zRN=}6ApG4UB>wKvZOs7{vs`Y?gKQpSedF0vRKOR(3`B#4MQ}cl21|#dXrTavT~Q#h zD~j8?1XRqHa_ch4#u!@;7Rg}+2ycAw8c&l|B!_1R-6OJ+G%+I25{eOdj!=xq^MqnV zULX`BQbc&)B6t DWn%Y4ti*K8 zN@od$R2x(gC3cXGIUuoVh}&8TDrQyOS`Fzji`0 _ToOScre@0@^jrW{&9Hr|BGUaHGV z%a6{ 9bVkfB@-9c7PUUo`a20I1AYHmr%Nz2T|4nJ?ha$leOvD0KsoGgvR zQXWX1ZZ-LwY88728iK3UDs~nmdVUUs?MNW89SJ1Ayzodqdmo1TF5jP>Cu1TmsAC@h z>GCc4 <4pYHdjiqcNU6Cw8SEO0X0vY~Lua#Z=`isg{w22Lec|7?d!1MLj>`Dv4y`gW zX0z}AwdxPN>W{qYO8lyWSN*A}YHJ>(qvPhX8@%SvqULJ4;xA3rJR1L%*ZYmi#P5Lk zC4X 6(A>s(-tx@@w90s^@Xd zd%R)`Y~_T0wrRX(OVWiyn{K@ojI&v5S5 (#;Hg!zSD=8omMbt56 zQ!S5CRPkzRD)Wdo4e7I4VACm`@9Tq>pBDrv`VibywW$vwyizEn%Q<09wLJO|&Z|XG znfSnmM`tAIvsqNrDIM jFN4`6-Js*g$^9Ajr_fHi-`;c1Y~pIGs=?&A~2k z`D`$X3)v7}sRfTS+TtxYhYf`ZJ)k)xH7jjt8UlD2nOcc=VpA9!PHO9!9Z_RpE+u1L zX#`o@@Z^?~#W49G$VZZ`Ek7}}AfJsQ^#PvF`37}tG#T2t3 `sEx^8bD!vgOdyopc@b*(PFg>z~Waui|&tmB;k@Rk^JI7B~q;}_OdhR?n znbaQqbedT+*c3AK zDtzxv+@hFbZIHLi^s?&=V#4jS^23M8Eh7r6e7eHWaYERNmmLt z=j1NNSixCOkWt06OnzQ2)8(sDQ?j$!Y%;6)xeKze{os?NYxvNmqB*LAirCPS?16mx zblc})g3e%bs6@*HE`I@b@)OOakTpp3p@7X5##Ax}i-5_<$;rxBF*pZ16{b-^2oLns zT%8V4olcfee$~ZUIT@;X*(v$?EQ73JV#Esa*j!S>dFQbe;Q}^~^awsW3v#kB6q#g* z6hoeui{~ec3{he{a~Ef``J_jShEsCzKem7@efTLUc{D*}lOaY70)}aE79w#W*<$%= zxrpp}87zk^abnO}ZdzJyb{5MeTRg9ohS -fvwl)?|2fiY&u;PSY)7%Sju~%d=DR z@F24lWEsJGurRj(QCdibk-Q4aKpx6qPm^U7chG{2r6L}lA=_v^$Z2>aRC$>+`K~1E z7#=zcv(i}ZVoICOl5s3|0)j4wJxBUD?nzy43iiHa?0GVc=T-8vau%=`NT0xOk7eLl z!6>C5A+jQ}Kj?~q+y!hE=@W(fvUBmU7Ly^7S6D=k+-lM%i3mu`%Fm~D`WmuL=3R$> z)0e7JDLt$u>lALKkx`{HJjHAsS*MD+xw*Q`R929m$=1VKkoo%R%nY$0cdeYqVfRYi z!{}$qJglHMpb{Ui_`U2H ZD;c_TL)OB1`OBD%PFvZE_l-}ib{JNRQA|n8%wP`ayfi%v_vIu_+}ENkG*AiM zHIXhx>Y&Y4tH{)zhg2TRosS({S#{%Ck4>F4b `eOx6MrRC-)XEU~+8|X)|v}|+&8>Qx_pp64CV{)g8EF-@FemLl^ zNb> uugza8PH)4eZB!O!{pEOHKwYVv$q z^}Nh$(8`_LGMA>}=X>@Fw~|xRa&zXgqfo~WpO!lLy`O9T;;zifEnu&5>(#mZA8!_) z93;bQ>@}23jucDF%#`f8>=+EI`HAT{IqY?4Yj`;2W#__MZ*ZONIv JU1nC=f}9LYrSDKlYyNC5 z%E~WD$)+$o%dbI^mr^iqA@&ny=eUJ}AZ1<-_R-BsOU_xC&)#*L5!P8bDSX89*?Zhf zPQrY=5X*-5Vc=^H{;@!Q8q3PlvGZi4M;nh_N l|d#8v86 z`cgc32*Quu=j3PM$GEJyOW6f(qRZyy(eB5eK*#!zTue`RKGtFQh=Po5_#o45T;k_Y z=w-7Q_9?XS!(Ui-W&AF$<-ATdo69c$!%E#;m`koHSjax(ML+y`EqmSQZG55;&lch< zEoCYDoEJAnBt3xGEqP% g#&*5CZ21~s3Pn$Nz4)wLSP%wLq8$*%J@UZhW86bJdplRck($L);| zCk-9h7qRcT{etVR__$}xV;T6t=m#oscZtRpNi`=w8|zN?BR{Lr7j(7!v=l67e&Y7e z#aX;{EdMcC-}uM1=n Flh$f^_!FzZM{0{`!x0=nPlJ{EZjf z@aVw8tR+~!{{D|E(UY5&o3|8Ofzxv4=06I_wP|zbv0JcC;Zw|_zO>CXW{%r1t#16Q z$P5hI9bSjLR*;8D7+(8>TgY4PCyf2cZPX~AmXi6B;4c{G(~3Y$oaEKNNyC3F;$q_B zqGIEs;$t3(889fe@1WS2=z#+U4#2Lpcc~6F2*2fLAz|Mm16_MSbPWENp0Ox~wZPuo z1<}(I+qEBC{>R^^hPP}%|4mD5jmNyb>mk4y?tfid3~HQM`_NjVPt3Sc{aVcWU;Wz< zcq?Rl-Oi|=qMoqT?h4)=9 -IG7G z-M=5AOYO&l|zlBi;&sCA?#w>ga-q^yq8Rk=0Lc)0aC! zpYJmyx?|*kn4kKzjj0PhQCHlze`Lk}Vewl-U)`G>J3eG*eOkXG5vLAJOc);YLBnLN zk36%wU95NbCwrXH>q8y8XU3Iiz4tuR_ns8G?{Zv2&9*(-JwvMXah3+7RGUz~=S%g= zaWfRzj>DFOU4_AyBWG7G2;U^>BhN%mi9TF?d{=hZjv7;aaHKhSSm=>pAKwRS{53B+ zH|_q_=)HYe<@TK|O!cbS+y9h$)QsA($ yh1iwS4rRz-Ow{1#JH6IQo-$J@KI z_MWZlzcaJGecekTk8F#x%nJHy`xD!bR?glrcjx4qSi8L@rp9CssOr5#UDIjDTaHwH zr^?qPne55ZYs#v?5NpczRSt`7`1Vh1OI1FVEmf_xGa|o #v6-2Udjr z7$+YwY^E;|)LUNeX*3d~Vbq+NBW>2Ptdbu4T1lA@SjVhO)2;jz!w6+L86KyWb4& z6e~qHXn(03 pt6cAo}Hauh`Sx5kZ%`MenZOJGlO7 z^=j2@b$-xs=L>Zcf~?zy@93i`F-1w|LWWlw>H@;d70#XGv@e_IR?G?OV6yK@iTpdUp=ns?o#4@}cZAFe`Kj!h z=1@gv`xdRQdTr%3z0+jbQNMF BaXVw`V(SwcVkbvmk4=pn zvh!TsfL-0|viAN}w_w-O`odiuY6sU(s&i~_T|cg_b=V^1fU2RPIgvGy38DUd{G!I2 ztHS%+HwAZ!ERCuNOo@Ir>gyU+(09(@$cnmwAp_!$H@p`4UCfyJb5RvBxpi}c0upBL zI~in+{j~n4pq$|P>es_wh =<6R{o|VV!{WkB5r2i%N6Ew1?K%~8bI;=NcXzJ{ z*&nk%Hac=;U3ko64RiH>?mlj67aJAvVc1hUUx>U=|3%2fUHagjF)!(Vt6jY_F7koC z_3 UDd9b$YFg4BpllwvggaX+m$oxw(Q=dIur9mpSEFRtF9Rzt@|}( zY|PEQGnE|@mey@|7WX;1<2mES@EbdZ$@WE>YTK)BMLZh+NX?Bs6@A}#&fgao-zsGE zp8U9w{=524tUl(vT>W7Ek^N^HhR5#c7v6V9&BB^5s&ndA?w2?G6z&&yAf}@F+3E?^ zt?jq#SJkSdQ?+-ZesYX%(8s?J)T{n>Y;lmjPKtTdId (AX zclU_7?D(|yP*h38Z!xNv(Y5LI+ji?i$||>O{tSCNwjk!M+TyyAyF17o_U9`MDz9im z_?()pyO!6^4t+!&5cEl%eqZUHmz)=5)!O>l@qK@a`=fr~{&RZ<*KD*M*X)Wr-?v?Y zW|y>g_wN2RUpRHn!!e)4ABg!X^lZ>F5Zg_Riar6Iu{|C3b93x0;)db+suC>3fXf zMF|(;HG#|gk4h8uCwE`1ofdi_dQIfe`j SlHl*hHG_Ya%Z=jU!^hK*I<*%P<7sVb_>-aTu3Rp?Wp z3qxgc&5psc-lk=BhN_5=@u7c&9@6?$?GAZQdu3O4`Ni5dW8bTNs(yOk%KBG#{@KS` zJ*n~n?k&3ZV&A-mI90no{p+UgoDg-P{O8?wV{TLz?8pe}5q!6L^4@I;ANIKwd410- zwG(4zZntSxHcXGNjV*|p*P!3kE%uV>fZ}Rhi`agV`y#)uySD4;sH|X`H9HUbsNhws zD(Jue+pO8 ?^h;w`k5Y}I_H$b8*N(vKO#l7Q?RRT2 z`o8utZ4dunPTTIezI0^Oh`S>*#@L2*86Glt{-AFL9v)paWW 7S$(7cgThtv)) zAM?eq`Gfu*9XC`ORx>nxsNaazLstyzFr@wPX(RH-#*J(@bm7=bL&}G$h8af4$I<;C z%lh>DmAH5M?|;7k?kz^$fB$g6u>VH~oC^Itynoo32xH`osK~Hm!P`TIM)nWag)fZ^ ziX0VoJ^V=6x$wCWZ$>&o{UauYp9{$g%ZS(=niSqKbaLpy@J> u24O 0PGqi2EF7!&c zGO93qU+6EP?}aQ6>k_^zBsrokqC?oUuzjH~hFKzB)AkNEg~vn=3DE`Dhu#a_89Y4f zeE7+*>A@Lc8^dRZsUz|upNZ%jaVunI*p=`Zp^L-63!M;pI=nLMm(U^5lER*gObgi& z(k8rr ZFBSt!A ziBLbF{mqbUxT2kFT`tS@o2}|s($23}X$RT-&^>{zeBX6Uu?`FR)4RYiSGzeVTQ$}) z!7*?{FRLjc(s!4oL9x-~ZG2Wa#5|*PlOsWTRenWkkVe?DP1^D|*C#7_1 k z%=o# R$noz{c^vLy{=WHDXuCiS0|T;`rft%O20_M{8wng z UoMTP6EcH;iAa!qv}feFJ;>);cFCTWY?tE>KLAtu!av zd)Xe8_NjVVI+t{_UNQHRwyLVif3a2g*O )^W=||rYlI`Pw3@O2u*X@9@ zqxYV&HFkr(Q?Ot6W$MpV3(H5SMpmqm>D66)5^WnzZ)gt4$D93)C+xTFrww1~FI0># z9jzE@TxR)M^|-V~6{XCQ<_7(!Ne$|`xkq4&^)Cf9_-C6ISvtzE>kk{=)OIR;%kgl{ zvZ@l}Lf^xFgKcZuT8y!_uccD|VSZ~ZtZbw@Sfe&on(oRTbBvTal|5^i(4(;IhIG$X zUwYDZ(Hw1UDFv3ylMk_!D4ps}Yl>fdL=z@Us2mu$+n!)~vwEn*%ObZPwuc%e`5?nk z)mimuNh3Yt7-W9iV5zk9DDv%Q-Dp{0`A9X(@>Xa=*zGX8V^grznyGx%^oMG^bwcF= zuTe^;^xpcGLDAY_j+dmTm16?a%;{d)UKgGZROYF@WN85>WZ}IVG>431D{GvqrCqi& z Y9EZ&t1%XgV>E7q5^uxTAZtp>^0b?dEK@8uWtwJN_fRCZ3)#-{JFSuIm- zR~2Zs1V3b6yY)5OD2KoNmUP`5;xqQym+h-8z5SD yO4s{-4R#YQEK+2#|-}3Cx!z zIc`;aZ?G6=nU^Zwem=x7)%RfeW0s4C-Nwa!$-V9=@7aIZ)S|ML?dFCf#w4r5`HbUD zd!Q-0drjvo^JIJ1fH~%HXF$j>^F>9S{6p1`ArEgm=Ui(nt{QBA#%^{zY?x5>cDE(6 zYf?MSdTqMqcf})$D)pU?M=HwX-)#-{>bfOIpRAWmpZX>RZrHe6=?oZPoLF&Ac1OOz z_Y1>K{|C42v96TO)!RznH*VXY)Vx-<+IqtJhu^Q7DANViB+VI1AKSY=Pn*A#mTRJ4 z$Wvv=+f?|NK9_5yJCaY2j+Sa;m-3&igB-)88dY)kT)(6C<9>77cQohAA2X$ted)E> zUs+zKA7lK@dRQG1w8I`0)Yj;b;{3*1e9UTx%vxpoHt@Dt8@f8IM{t-kuBOsCtW#{& z0`p)+Wzb6Pb@hZul|0`TR5Q!AM>a0-c< LoX=%MB_x9Uc9 sg>Vi>plNr(rW$7iV>=>%oXa`s`o74spHKCS%Peb zX0oC}wMN~;pzwcG5gm}?J69G~)>XS}?K{46{AL8+)pk%NNV&l+tk-;$@^YiovVTp4 z@=4RUpjTDt8`oEiGGCS!TGkpb+pp?JZz(j6krg;>j!_PU^|s?g(HZ$R+3>)*+OJgK z+VVBsRk8jnyt8}WP;a&57gs2|83vn%C>^S^0R`JW_B|&rw`lFNERUNu+ujb8{JvGD z>4(@a_WZ20mGxI^O~oPKowiqeS6hE9onZ{K7594C$7wsP4Gn$YK19DoV^??bJz@Sp zn&sSQo9}$Zez$r-Jyb4 (s)ctAZ;W|Pe_ zWNn^jU7??68KOLAHOaQCS6G7d%jD6%7t1a3(aKo;R8y#NiRxT=pz#~!QA>8k0iOg% zD_K$beDi3_Nyjb6IF(W}RT-q-sA^Ct)K64&@-vlw;k#Dyw`{jmIdz(amNy*JrBjtJ zR=w*yY XvNHRW1amMu &WVaO; z{M5MqgN7*mdhHGWqwV&1wUT_a {w9xYAM-qf~M>`~-~CCKL4(@M@d-wm2s^0B#d?@Oyxfgc%;`P8Y; zC`QQtwstUoDqpH!slQ^FDXZ}vuTb`U*-&Cnl!EksY8L7Dnn#-kIqbHC>P?R5E#2*N z^>V`=KY#hBwtD*=d9CjOSx3_<^$y?b>JOCVhGW6y>gNN;sZ$+O9KTv$?K)Z&WT`Wz zl-SJ+Of3V-tv%%vE00zWSNfG7kwPoNkioC|-YL(OlGJ@{QI^XAmzA?rgVYYoa>a4Q zlXfrF4!>T$QTmG-ZSc+V)rwz&Ykm4i0n&NP301CXx#~^LTys&-Uy3)3>484IhFdS| zN2t#FCi~2`1e-qc-)5 ) zQKsJw(>||Mbr)%$#cG--y s&g$@mVYDf z96ZMOzS1HE`sMosmw%ytR=GjlHsletEudEZnmo3*%{NefAz+qq^0qEYv$Dberlqa@ z*^;bEU-MrEljCFmo{Fp{)jc(pNo6(Y^d*RXfdVJ+B642VGQevUQZMm>=}>3Y;&~ zD}&|zq_1TiWmA2BldV&)SNW<&*^kN_(BeYhcdX%o2P~sE&3D$zoc@z)b~?W-``GcL z^;WN3`Brb6(P{RTO_8s0B$_5}zGb^+^Y=O_WlGO!{ rd}+Etq4+rIR7ON5W2Qu5u }qiu#|GTnYVrF@ z#VUN1hgSA=oYKsf3N2Puu=JZrZQQf%y!9Q&4FAE}-_18wUiKgSR_hP@sZ=R)t@W+) z2P(3x{TwYjeH!$OWpK!h@=XTEvnLF3LBZy^ori~iSUSxz%VzMgdjBldNTa*lsyu1` zxgyCn&$-8vQaVwB|k6uQtPkfLDjGCSnr%5IjhDQpHX%)zoL(^E957vO8xl?zinqs6U(zT zr=62)HUvKC@OMrPEb{tR`o>4ngxeOX|FVsAcG{TaH{1MVX)njy0iVf|{hl^F6I5XS zvRAQumhI@a%pQA99V}B?l$iRKr$|pI3$43KKJ)#-+8~=B_?dLuI;tdc=k)4P3NPmo z`x5Cj%hR& fwZ^Ya>#SGXzG(Tl<%?^ltN*m; z27hFI-_%-FzP`vf&OAA2Ztz*{@y+Fm?-YBiYh?4Svz;lbe8(91JHczbek kd3U^V@;^oYs)wG zwkay-RKHX?RX=>&;fgMPy;Swe8S0S%2LcBNT+_5y-P3%f?xlascHZ~A`~&@8#t_+J zX_~*EtvXN&Ee#wbJyo7&47SdarP`MV9uM5AC{Qh{xN7*d{2@&%!z&dZs-ChayR1>= zm9J4Lg0{;SmbVW+x$=x-i}sHFpk;$ O*YZtt~4jTfeT@=C8H9ZL-MPIvxwj*2YUE)`Jh2v~vHh<*`9= zUM6FTX6ClHES1LTCD*hinl6@>s%zyY?N&t}!#h%*)YmrKs&Mo%%?w=bH&)$EQCU7p z@r(JL@^gM4Y(5j9P}G+Pyx2i&HZ50#Nh2*=d*lUlR-JOlOKJ>@^=q`#w`9wE$}@VU zOPjQd6(9GQsfkuC_Io(Uu1c3Z7P3L}wWF`9(E5e^nxW1%*%In}wc@ S}$)(qLX< zW74dOv>v{y{@n)H-}SwxUQzj_Iv{wed|q%$uqO1Wa*gae^JM8+Sy}Jf(pgFCchqmZ zU!|Xq;?MO30sE>mcAU3duDE2+F(<3m_IyeCiuP&y+kP(?iz>$WjdJdFCY$5!AJtxR zgp?1ges1k#^K|=dtIBqv`f}wEeRj!)7rle_`36{j((ko5*k3Z;vwqz((|l9@w| b}--cH5=WTw9 z4W=SPscoEPr((tCgo Usm7+Rr%nj~baYVYSTGXSn z`NxWQ+xe<5Y6d8VTBlmyt61eVK=Gl}t9PYWfmP}F#@bCf(d#|)aocB>7{^-6O-)DB zM9cT(X aW-g4$y7s@J;PF9`(XQ)Z9f>o9P_=Fnp;Un s|eevKH0^jb1U# zaz}9>P}=&4a+vHBl|!-2s&MAp5BgRZPjoMF47M44_f>sRc}%|7nr_){m1|?2IjUpM zIlJwZzx$4=eo!ixzodC0@CVffX_2>8QxP;!@s4G`s=ww?c}CE?r4xH^tN46dn^s2c zNvUkh=UpFA<*QFCuLU~odxN%U {`u
A(1 z`6T%)%Qse&V}J0(9$!kyD}R@@mLD^(vM8~R?P2e3T5pN9D6Mm3<-W1D=VYgQtx(IQ zTFW2mHkzlTXKg3F{nYZ3!HOH2nP#JO-H;n_-Y8qUQr+2-8nD^ (OckVZRpn z9jVfK(NG~9BprUSwS1Spz3p40)wEIdxOSgpF57QBwfWE{t17~BO=7;E`6e3QfM0%* zWX{=D@g=7%Q*2{pSG*^9|5P^1I?Ae$t~>TwwSmtl9+5p-ddXT=+AeVS=3I4*6z5oL zIA{oQmU{ngUe`6>zoGKWpumb0=Oy($#Xb2l ld%j^q!%?SI@`dRl=zB)rs z=SKT@l>@(NRBEeK4;a=sGaV&?CixfoAJ#55JYcli{hjYw>()P2;;{9zRQjrI$)$@` zQ?%1UmX cx{>J{HziAFyHJSy=1O6MOAevf%Xvd z%krTHYnO6ackO5P9~FtF!S)%3SM(o9>CzIp(l_2$s}0(8%(2|sv6tRwj@-xgfpx4t zt!l2lLH4K3Y}6QLR;*SOsua#d>spP{)=gS#9wqk)dZ_2)e# a)fm>$uOBUVgL7L0g2y z8SssLo$1LSgFeD=#gXJ#E+te?m+k90%={&Ox<6(KRc(}iV#?LNty*5z&8$&P2 M${tuA|9JD}3b7U1Yq{j`0r!{KNtjkoI@ z1Fgs8qpWizoo#;5$7_!o-?hxMj8(m?ouKeB^(*;VzRbpChZR1CJBI6}D{RxsCi|Z9 z)2lU#HTHJ0MA^57!WKjPelnH$JzX)|f1PTTX|1xV_iS4y>sJ5QtZ|hwnsq_ $ItLS4}uc=VP%YWL~)#segbB^pSh2{x951RIv56iC_ zl5HPbH~7s9zUMqF{T&if+0#+cbC-39wM;&;%ujJao2A~QU1Tn{d1+d09=q*~GE=cs z(it9+zhL@Y+UW?dIAH!i6rF`*6It8EkpeCCHZn;@?nu(&URd1Sio3hJ?ZOMip`{j? zOh)b 2LHgV>4qzFBM3 zEXP{>Ash%cNIQuuj$E`DybBC4#KgKRkSp42a+9RL^h9?ZDGj;MQ|!29l6uft&URMp z?@RPHw)JLI@G2O~HQ-80L1Qn`f*uX;xspI2T*(y*&2y}S&qJN%m6m;4aXn0Kx3sjD z#3#Gs$o<|??pv1W;^>@vtewhb gg!0 ziV_F6px-c3? _`J;D0IC;+ u z)8bcM!Z=~PSWUYiCgbCUvRYT_5dTEJ4kAFI(*?D8i$Hs8YbJ*&50>F=VGJtAJy5Rc znb>jIQ%f^u>z&05!UW}NemD6XC}1D)`D9;r1+okmYx=)$fJ{Vt3qTickL!rJ@AiOO z=|@C@{1tANddQmmT3Ji|!AMG5;&}=~?65qe>d+dz9&EziBJQ&B^aK2iC)s@r4zX1s zi#U#0MiGO9cjy;xgMCAMrStGw=8cTYoAH|1TPYV-5@VxFnM#B+sEGT)e#c_0IqW0% zhxMMf>31iOM#L{oj2rIxxze-dgQ zo(BI7Mgf)i3HC~Zk%jnM8YHoRr58(ofmVTA)DpUQTvPtFr7(XFnMpr}WuQ%3sI^yj zqUw4tcsq1I@l@`41y>09xbhcs)H;Odq7m-CSgdj~rk2L!mX_v-Q)S8Wf?uT`je90{ z(AzL`$pcb!U^W-!=>ob~^NHaoNgT>Lshu#LnZO;9kC7O?7#2bO1Gmr*ejHgrEglk_ z!{kz)qN?37H8lxlQ{{=juyRZp&XMvg|8dfXl E$j0>m3BQR02N zoA49s3P-v6&|BPN*ci@3=b`12i+UEl7Zq5Rrd*~4RFxi+L^;@;k||MQSE5Yn@R+|% z)nf&~v5ao(kMJ)DQs1>F>i&bKIuqf}BusDuuo7+9JP_4oOaVKDrO~c*=(!8z0oK zTuSNY`nAMXk(V?={R~#I{ag*i8(L%au)|@$3%A2_sFZXSJx0^i9pYEGL?26wWLIuR z2`jvoIZDdO-v+zO2Z@PdqLQf`kSZiF?(Y_h8qiA6E$QrdTv@|qu&iE$eZ{2*7IC#w zXYhSN3Y?2A@U?T@i&!N7mV3j!z@IW0uM(K1^@Y#j0eFZzU@a#7K~|GCqR)%V)1N^f zWdQ7om69i;TWYHHf@aYg`WG|ZxW73}c}e=EpgWo=51X@X^R^K6)iLS}bNbjT$Lb@{ zU3y3m$8Ui_DPIz+EA{9&S1CB$c{~)WKho!DH^aI7Ev-ypC;hw} L^Y9y%1FDSEmaR_<~I;4RrKbLT&0`*OfBo$Dt|(cqGEi1 zh>JuG9_0S<4B?7N9aA1MoV|-1cQ3cfw3Cal{Nm2pyJVM;YIw_2j5It*v44bQWgoC< z R jb%EZsP>4;&@^&Eya(2KYsb_E?Ge`%wn5_}~%lCDsO zCC14k>Bs6%l2CklLw$wROK+!tQ#WRN)yx=?Y-P~=UTH$$gg8jknUN%m+}!`%+hA$J zoBIjIa !xUO8`ysVg>Mea{w{pw!z6uMmwfJ-X7pkPyksf9C4RsS6Ndy7$e#!~_ zEAfo^M%Sgwd7Hs*`V{S=(X4PnctK$|ZHIc0@}S#!oykLiXYO-!bZB*M$kmc6&)znQ z6Q|XedLQK E8&*(U{thF)wYw SPVqc&!UvI>il7;~CsUmUVn{ zf9IBl+Ji%wpwE$8F_YEqbYssKsVb^Lk5qS~)6$`or`nuweEeHgHuZo@!u7-k&VUw% zwXG-gJMzlNr_4TAT|(lVyyzY49D)we=}cZ?8Z#Boj7+B1(53LUbg$4TFptS_JD4J% zIOsrxa*GoKwFtVH<0-M;zc2I}mkHYQKXO-cJ3O84X-<~? nkvtk_W3>ah6UrbX9Z16 zjs809rCbNiO`qv9)1DrTuQYcspL$OUF_oo 8b;~ajq+PsSeaTAy%KN zHxb_`XOm8HopmH!q+Ld#E~8xacX+APTIyoo5-QFWb-kodx@xFExEQF;K9Y)}>=>Op zZt?}EY068GE{aDSdZ IX>T>94FqIsDRQ#6%*&_0qvZz(Ksa6Gpg`MT~`txvvJf|c4mA! zS(X}0DoQnD5=t{Cn@e~Aeo)GZqvQ@rPw2m3Id^%^0c~y(pJMOtZk5|3d>1LkN3k|P zTHh4Hh|TsJpo3_Q(TL~fCK$;Kq)O0_61tRL=^x_Vl${>x2-^B0sBKbftr9xqXq1;L z5MVQroA)oi8s7qbITp&Pj;YEs=`vXqG B7N9%%ezPs)$*H@*za7i1&yb0da$J&Ml z55P{|9`0iFg@8x %2{e2Y>h>!og5^2 z43=hxQM}L2Y|-lL{kfL9S6l`<`Ch}fxF$Ao?j=sZrrL7+c |* zw@76cZWsJwP2vze+nX(a4;>3$byYw=#hu!5?GU~|5Y%J{QHJXzXpsns+1z59B9?%n zj<9xJrCggrRrq>_&-@)fs-;i>wUfqx1iD4=GwiA@(@raKz>o$o*Hbe*9`>R;jpL-N zc>$Dx#TWzm^;$D^j#7e{U`qwDXguz=KhnMlK)w{?;Fx&MQJ(H0E=JqfJS9@C7i>&U zcddr~g(PVdpx{U nk9G^9+Remo}8O5qV7RO)xO#%Uls7m zJ&GJaR!LdOca7`8_X(9Ewh85VgXM$YiBeiI+M4gCpV+sHeYA 9Sm> zl2e$$AS3h~R3*NcoJ}EqP}U^7^tV4B78aB@rg-;+S!ay4n;%3s#ue_W`kT2(cLDvy zH=vMC2PIM$P~E%_;d3 zNy8NX!U=dSWrcA|{Xkq$yZNp12Im2nTV;)T+<;I6trv`f3yB;zqt|s@bob&%fGfmI z4JeIBud}+;)pZg7ORk2B(Z%w)q*2@^b`tE&)Yme!C*U2LXnh>2%)PUgS7%9w)TL-K zUNcGKdb)|!7b*4Vi_|E4JTY4v55Boaf)JO?7BX8US-fS-q*mjFa(CvI5}~D-6MkLu z9Gyn?2JVzN&QS94iPT5eD9<>yM|hiVw;?$LeHXW(D1Da|_bp)RxE{Mh;CilGc}RYB z7IWC?BIFkLBvs-csP%pQ3ohtmAy+s~Sw@|ryGw)dj7&nO>5HLb&Kgqh`L6=Af+vE% zZCv3)X$h*vwpu~TW9^fP-%JavI(W%lg*AAKwp=);lu@QynyJ4+L&!ga4txeVAN8l- zQdl^Z`L3L|jwi~9b% }GW2DkA) z@L M>Q3tst2GqXn_E; Rem$tuM`i(!UOUg1rHnuBB~T>7G{}7Vr%tr X>1Jp5XJ>-!dWObIL`PJOor8^wJ5+9 zX0HNci3;4GtPMAEbtlF&p`RyrvUMR+Ew944WV~G9udd7v4a4hYX2_{|{nYAWbqA(- z!hPTzB@>mShoDNzcVm$;5Gz!lipBj`?RU9$=1I}PJ(zn=_f#wUp1@HGAQE!_p}Sjp z$z?Ocpb|LF9l$%=Z+kA_vx8S*Lh0+yc7W%8NFi>Yrvtb_?4 GR08Ela@xZi8n z;!C?WX6oFz;6AD<*NbV#?UkQ_9rkecJ6Cz{nEWfW=<0#9 +N&1`;-_Wm+l~}B@e S{GnV>s4xp33z7md5#^^;TRdEm6OsX7DX@>tR2&55C)6 zJ2*jeGTp!hxYX52m?=)SoeB(by=NfI6u+T2culP{Gs@jKu|2zxdJtQW=m1V?cRhOp z!|86+ow-#l1Ho{%H5iHs!9?{5ew 7hXQ2$1hv#--f$Yrq~xD19lufzFH z)pkKkA b)&e0uL5xXO$2b82U_RGoPea&SLpp zV`eLRU1ZV@?iyAAKgb`X6~b=gu?qFI`J@^sD4E;bq&BXorE-VC_eRMC-n~ =Ie@8;bFa_vD{dtAGh`O z=kxPGSw|w8Oiyw3CrcTV^?q_cFkdePtKuH @NYuEY18tw|HNE6l3b<_BjRaK zVb?-ctCQ3Xm6Manva~^#lhZZDQOnmX+|;@e6V% }um`3C}Y?U;}K0MGo z?wB=)K;RE@s-3s|DL^zq->zw(Ji^pcTwm@Z`O H3