From 894fad062935f110e03962e5ebc0fdec4211df99 Mon Sep 17 00:00:00 2001 From: JF Date: Mon, 8 Apr 2019 13:45:23 -0400 Subject: [PATCH] First Commit --- .gitignore | 5 + CableTestBench.pro | 44 ++ CableTestBench.pro.user | 239 ++++++ Makefile | 149 ++++ Makefile.Debug | 216 ++++++ Makefile.Release | 216 ++++++ Sources/CMainPage.cpp | 14 + Sources/CMainPage.ui | 58 ++ Sources/CableTestBench.cpp | 53 ++ Sources/CableTestBench.h | 36 + Sources/GlobalDefine.h | 9 + Sources/MainPage.cpp | 39 + Sources/MainPage.h | 33 + Sources/MainWindow.cpp | 27 + Sources/MainWindow.h | 30 + Sources/ModbusBackend.cpp | 706 ++++++++++++++++++ Sources/ModbusMaster.cpp | 113 +++ Sources/ModbusRepository.cpp | 211 ++++++ Sources/ModbusSlave.cpp | 44 ++ Sources/SeaMaxWin/Dll/SeaMAX Dot Net.XML | 221 ++++++ Sources/SeaMaxWin/Dll/SeaMAX Dot Net.dll | Bin 0 -> 26264 bytes Sources/SeaMaxWin/Dll/SeaMAX.dll | Bin 0 -> 163976 bytes Sources/SeaMaxWin/Dll/ftd2xx.dll | Bin 0 -> 203144 bytes Sources/SeaMaxWin/Include/SeaMAX.h | 284 +++++++ Sources/SeaMaxWin/Lib/SeaMAX.lib | Bin 0 -> 31532 bytes Sources/VisualInspectionPage.cpp | 16 + Sources/VisualInspectionPage.h | 27 + Sources/VisualInspectionPage.ui | 63 ++ Sources/Widgets/CConnectorSelectWidget.cpp | 6 + Sources/Widgets/CConnectorSelectWidget.h | 18 + .../Widgets/CConnectorSelectWidget.h.autosave | 19 + Sources/ZTInfo.cpp | 6 + Sources/main.cpp | 13 + images/connecteurs.png | Bin 0 -> 32972 bytes images/green-led-off-md.png | Bin 0 -> 26020 bytes images/green-led-on-md.png | Bin 0 -> 24094 bytes object_script.CableTestBench.Debug | 13 + object_script.CableTestBench.Release | 13 + ui_CMainPage.h | 69 ++ ui_VisualInspectionPage.h | 69 ++ 40 files changed, 3079 insertions(+) create mode 100644 .gitignore create mode 100644 CableTestBench.pro create mode 100644 CableTestBench.pro.user create mode 100644 Makefile create mode 100644 Makefile.Debug create mode 100644 Makefile.Release create mode 100644 Sources/CMainPage.cpp create mode 100644 Sources/CMainPage.ui create mode 100644 Sources/CableTestBench.cpp create mode 100644 Sources/CableTestBench.h create mode 100644 Sources/GlobalDefine.h create mode 100644 Sources/MainPage.cpp create mode 100644 Sources/MainPage.h create mode 100644 Sources/MainWindow.cpp create mode 100644 Sources/MainWindow.h create mode 100644 Sources/ModbusBackend.cpp create mode 100644 Sources/ModbusMaster.cpp create mode 100644 Sources/ModbusRepository.cpp create mode 100644 Sources/ModbusSlave.cpp create mode 100644 Sources/SeaMaxWin/Dll/SeaMAX Dot Net.XML create mode 100644 Sources/SeaMaxWin/Dll/SeaMAX Dot Net.dll create mode 100644 Sources/SeaMaxWin/Dll/SeaMAX.dll create mode 100644 Sources/SeaMaxWin/Dll/ftd2xx.dll create mode 100644 Sources/SeaMaxWin/Include/SeaMAX.h create mode 100644 Sources/SeaMaxWin/Lib/SeaMAX.lib create mode 100644 Sources/VisualInspectionPage.cpp create mode 100644 Sources/VisualInspectionPage.h create mode 100644 Sources/VisualInspectionPage.ui create mode 100644 Sources/Widgets/CConnectorSelectWidget.cpp create mode 100644 Sources/Widgets/CConnectorSelectWidget.h create mode 100644 Sources/Widgets/CConnectorSelectWidget.h.autosave create mode 100644 Sources/ZTInfo.cpp create mode 100644 Sources/main.cpp create mode 100644 images/connecteurs.png create mode 100644 images/green-led-off-md.png create mode 100644 images/green-led-on-md.png create mode 100644 object_script.CableTestBench.Debug create mode 100644 object_script.CableTestBench.Release create mode 100644 ui_CMainPage.h create mode 100644 ui_VisualInspectionPage.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..465cfcc --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +debug +release +/OutilModbus.pro.user +/object_script.OutilModbus.Debug +/object_script.OutilModbus.Release diff --git a/CableTestBench.pro b/CableTestBench.pro new file mode 100644 index 0000000..575ed69 --- /dev/null +++ b/CableTestBench.pro @@ -0,0 +1,44 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2017-03-01T13:52:35 +# +#------------------------------------------------- + +QT += core gui network + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = CableTestBench +TEMPLATE = app + +INCLUDEPATH += Sources/ \ + Sources/SeaMaxWin/Include + +SOURCES += \ + Sources/MainWindow.cpp \ + Sources/main.cpp \ + Sources/MainPage.cpp \ + Sources/CableTestBench.cpp \ + Sources/VisualInspectionPage.cpp \ + Sources/Widgets/CConnectorSelectWidget.cpp + +HEADERS += \ + Sources/MainWindow.h \ + Sources/GlobalDefine.h \ + Sources/MainPage.h \ + Sources/CableTestBench.h \ + Sources/VisualInspectionPage.h \ + ui_VisualInspectionPage.h \ + ui_CMainPage.h \ + Sources/Widgets/CConnectorSelectWidget.h + +FORMS += \ + Sources/CMainPage.ui \ + Sources/VisualInspectionPage.ui + +win32:CONFIG(release, debug|release): LIBS += -L$$PWD/Sources/SeaMaxWin/Lib/ -lSeaMAX +else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/Sources/SeaMaxWin/Lib/ -lSeaMAX + +INCLUDEPATH += $$PWD/Sources/SeaMaxWin/Lib + +DEPENDPATH += $$PWD/Sources/SeaMaxWin/Lib diff --git a/CableTestBench.pro.user b/CableTestBench.pro.user new file mode 100644 index 0000000..18edbff --- /dev/null +++ b/CableTestBench.pro.user @@ -0,0 +1,239 @@ + + + + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + true + 1 + true + 0 + true + 0 + 8 + true + 1 + true + true + true + false + + + + ProjectExplorer.Project.PluginSettings + + + + ProjectExplorer.Project.Target.0 + + Qt 4.8.3 + Qt 4.8.3 + {962e6995-bc73-45ee-a3d6-d72a1ed3b9df} + 0 + 0 + 0 + + + + true + qmake + + QtProjectManager.QMakeBuildStep + false + true + + false + + + true + Make + + Qt4ProjectManager.MakeStep + false + + + + 2 + Build + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + true + clean + + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + true + + Debug + + Qt4ProjectManager.Qt4BuildConfiguration + 2 + C:/ZoneTest/CableTestBench + true + + + + + true + qmake + + QtProjectManager.QMakeBuildStep + false + true + + false + + + true + Make + + Qt4ProjectManager.MakeStep + false + + + + 2 + Build + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + true + clean + + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + true + + Release + + Qt4ProjectManager.Qt4BuildConfiguration + 0 + C:/ZoneTest/CableTestBench + true + + 2 + + + 0 + Deploy + + ProjectExplorer.BuildSteps.Deploy + + 1 + Deploy locally + + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + + false + false + false + false + true + 0.01 + 10 + true + 25 + + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + CableTestBench + + Qt4ProjectManager.Qt4RunConfiguration:C:/ZoneTest/CableTestBench/CableTestBench.pro + 2 + + CableTestBench.pro + false + false + + + 3768 + true + false + false + true + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.EnvironmentId + {e7f062a5-06e1-4f66-ab2c-67d14d6f866a} + + + ProjectExplorer.Project.Updater.FileVersion + 12 + + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..9c45357 --- /dev/null +++ b/Makefile @@ -0,0 +1,149 @@ +############################################################################# +# Makefile for building: CableTestBench +# Generated by qmake (2.01a) (Qt 4.8.1) on: Fri Mar 29 07:33:12 2019 +# Project: CableTestBench.pro +# Template: app +# Command: c:\Qt\4.8.1\bin\qmake.exe -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=declarative_debug -o Makefile CableTestBench.pro +############################################################################# + +first: debug +install: debug-install +uninstall: debug-uninstall +MAKEFILE = Makefile +QMAKE = c:\Qt\4.8.1\bin\qmake.exe +DEL_FILE = del +CHK_DIR_EXISTS= if not exist +MKDIR = mkdir +COPY = copy /y +COPY_FILE = $(COPY) +COPY_DIR = xcopy /s /q /y /i +INSTALL_FILE = $(COPY_FILE) +INSTALL_PROGRAM = $(COPY_FILE) +INSTALL_DIR = $(COPY_DIR) +DEL_FILE = del +SYMLINK = +DEL_DIR = rmdir +MOVE = move +CHK_DIR_EXISTS= if not exist +MKDIR = mkdir +SUBTARGETS = \ + debug \ + release + +debug: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug +debug-make_default: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug +debug-make_first: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug first +debug-all: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug all +debug-clean: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug clean +debug-distclean: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug distclean +debug-install: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug install +debug-uninstall: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug uninstall +release: $(MAKEFILE).Release FORCE + $(MAKE) -f $(MAKEFILE).Release +release-make_default: $(MAKEFILE).Release FORCE + $(MAKE) -f $(MAKEFILE).Release +release-make_first: $(MAKEFILE).Release FORCE + $(MAKE) -f $(MAKEFILE).Release first +release-all: $(MAKEFILE).Release FORCE + $(MAKE) -f $(MAKEFILE).Release all +release-clean: $(MAKEFILE).Release FORCE + $(MAKE) -f $(MAKEFILE).Release clean +release-distclean: $(MAKEFILE).Release FORCE + $(MAKE) -f $(MAKEFILE).Release distclean +release-install: $(MAKEFILE).Release FORCE + $(MAKE) -f $(MAKEFILE).Release install +release-uninstall: $(MAKEFILE).Release FORCE + $(MAKE) -f $(MAKEFILE).Release uninstall + +Makefile: CableTestBench.pro ../../Qt/4.8.1/mkspecs/win32-g++/qmake.conf ../../Qt/4.8.1/mkspecs/qconfig.pri \ + ../../Qt/4.8.1/mkspecs/modules/qt_webkit_version.pri \ + ../../Qt/4.8.1/mkspecs/features/qt_functions.prf \ + ../../Qt/4.8.1/mkspecs/features/qt_config.prf \ + ../../Qt/4.8.1/mkspecs/features/exclusive_builds.prf \ + ../../Qt/4.8.1/mkspecs/features/default_pre.prf \ + ../../Qt/4.8.1/mkspecs/features/win32/default_pre.prf \ + ../../Qt/4.8.1/mkspecs/features/debug.prf \ + ../../Qt/4.8.1/mkspecs/features/debug_and_release.prf \ + ../../Qt/4.8.1/mkspecs/features/default_post.prf \ + ../../Qt/4.8.1/mkspecs/features/win32/default_post.prf \ + ../../Qt/4.8.1/mkspecs/features/declarative_debug.prf \ + ../../Qt/4.8.1/mkspecs/features/win32/rtti.prf \ + ../../Qt/4.8.1/mkspecs/features/win32/exceptions.prf \ + ../../Qt/4.8.1/mkspecs/features/win32/stl.prf \ + ../../Qt/4.8.1/mkspecs/features/shared.prf \ + ../../Qt/4.8.1/mkspecs/features/warn_on.prf \ + ../../Qt/4.8.1/mkspecs/features/qt.prf \ + ../../Qt/4.8.1/mkspecs/features/win32/thread.prf \ + ../../Qt/4.8.1/mkspecs/features/moc.prf \ + ../../Qt/4.8.1/mkspecs/features/win32/windows.prf \ + ../../Qt/4.8.1/mkspecs/features/resources.prf \ + ../../Qt/4.8.1/mkspecs/features/uic.prf \ + ../../Qt/4.8.1/mkspecs/features/yacc.prf \ + ../../Qt/4.8.1/mkspecs/features/lex.prf \ + ../../Qt/4.8.1/mkspecs/features/include_source_dir.prf \ + c:/Qt/4.8.1/lib/qtmaind.prl + $(QMAKE) -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=declarative_debug -o Makefile CableTestBench.pro +..\..\Qt\4.8.1\mkspecs\qconfig.pri: +..\..\Qt\4.8.1\mkspecs\modules\qt_webkit_version.pri: +..\..\Qt\4.8.1\mkspecs\features\qt_functions.prf: +..\..\Qt\4.8.1\mkspecs\features\qt_config.prf: +..\..\Qt\4.8.1\mkspecs\features\exclusive_builds.prf: +..\..\Qt\4.8.1\mkspecs\features\default_pre.prf: +..\..\Qt\4.8.1\mkspecs\features\win32\default_pre.prf: +..\..\Qt\4.8.1\mkspecs\features\debug.prf: +..\..\Qt\4.8.1\mkspecs\features\debug_and_release.prf: +..\..\Qt\4.8.1\mkspecs\features\default_post.prf: +..\..\Qt\4.8.1\mkspecs\features\win32\default_post.prf: +..\..\Qt\4.8.1\mkspecs\features\declarative_debug.prf: +..\..\Qt\4.8.1\mkspecs\features\win32\rtti.prf: +..\..\Qt\4.8.1\mkspecs\features\win32\exceptions.prf: +..\..\Qt\4.8.1\mkspecs\features\win32\stl.prf: +..\..\Qt\4.8.1\mkspecs\features\shared.prf: +..\..\Qt\4.8.1\mkspecs\features\warn_on.prf: +..\..\Qt\4.8.1\mkspecs\features\qt.prf: +..\..\Qt\4.8.1\mkspecs\features\win32\thread.prf: +..\..\Qt\4.8.1\mkspecs\features\moc.prf: +..\..\Qt\4.8.1\mkspecs\features\win32\windows.prf: +..\..\Qt\4.8.1\mkspecs\features\resources.prf: +..\..\Qt\4.8.1\mkspecs\features\uic.prf: +..\..\Qt\4.8.1\mkspecs\features\yacc.prf: +..\..\Qt\4.8.1\mkspecs\features\lex.prf: +..\..\Qt\4.8.1\mkspecs\features\include_source_dir.prf: +c:\Qt\4.8.1\lib\qtmaind.prl: +qmake: qmake_all FORCE + @$(QMAKE) -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=declarative_debug -o Makefile CableTestBench.pro + +qmake_all: FORCE + +make_default: debug-make_default release-make_default FORCE +make_first: debug-make_first release-make_first FORCE +all: debug-all release-all FORCE +clean: debug-clean release-clean FORCE +distclean: debug-distclean release-distclean FORCE + -$(DEL_FILE) Makefile + +check: first + +debug-mocclean: $(MAKEFILE).Debug + $(MAKE) -f $(MAKEFILE).Debug mocclean +release-mocclean: $(MAKEFILE).Release + $(MAKE) -f $(MAKEFILE).Release mocclean +mocclean: debug-mocclean release-mocclean + +debug-mocables: $(MAKEFILE).Debug + $(MAKE) -f $(MAKEFILE).Debug mocables +release-mocables: $(MAKEFILE).Release + $(MAKE) -f $(MAKEFILE).Release mocables +mocables: debug-mocables release-mocables +FORCE: + +$(MAKEFILE).Debug: Makefile +$(MAKEFILE).Release: Makefile diff --git a/Makefile.Debug b/Makefile.Debug new file mode 100644 index 0000000..8c2290e --- /dev/null +++ b/Makefile.Debug @@ -0,0 +1,216 @@ +############################################################################# +# Makefile for building: CableTestBench +# Generated by qmake (2.01a) (Qt 4.8.1) on: Fri Mar 29 07:33:12 2019 +# Project: CableTestBench.pro +# Template: app +############################################################################# + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN +CFLAGS = -g -Wall $(DEFINES) +CXXFLAGS = -g -frtti -fexceptions -mthreads -Wall $(DEFINES) +INCPATH = -I"..\..\Qt\4.8.1\include\QtCore" -I"..\..\Qt\4.8.1\include\QtNetwork" -I"..\..\Qt\4.8.1\include\QtGui" -I"..\..\Qt\4.8.1\include" -I"Sources" -I"Sources\SeaMaxWin\Include" -I"Sources\SeaMaxWin\Lib" -I"..\..\Qt\4.8.1\include\ActiveQt" -I"debug" -I"." -I"..\..\Qt\4.8.1\mkspecs\win32-g++" +LINK = g++ +LFLAGS = -mthreads -Wl,-subsystem,windows +LIBS = -L"c:\Qt\4.8.1\lib" -lmingw32 -lqtmaind -LC:/ZoneTest/CableTestBench/Sources/SeaMaxWin/Lib/ -lSeaMAX -lQtGuid4 -lQtNetworkd4 -lQtCored4 +QMAKE = c:\Qt\4.8.1\bin\qmake.exe +IDC = c:\Qt\4.8.1\bin\idc.exe +IDL = midl +ZIP = zip -r -9 +DEF_FILE = +RES_FILE = +COPY = copy /y +SED = +COPY_FILE = $(COPY) +COPY_DIR = xcopy /s /q /y /i +DEL_FILE = del +DEL_DIR = rmdir +MOVE = move +CHK_DIR_EXISTS= if not exist +MKDIR = mkdir +INSTALL_FILE = $(COPY_FILE) +INSTALL_PROGRAM = $(COPY_FILE) +INSTALL_DIR = $(COPY_DIR) + +####### Output directory + +OBJECTS_DIR = debug + +####### Files + +SOURCES = Sources\MainWindow.cpp \ + Sources\main.cpp \ + Sources\MainPage.cpp \ + Sources\CableTestBench.cpp \ + Sources\VisualInspectionPage.cpp \ + Sources\Widgets\CConnectorSelectWidget.cpp debug\moc_MainWindow.cpp \ + debug\moc_MainPage.cpp \ + debug\moc_CableTestBench.cpp \ + debug\moc_VisualInspectionPage.cpp \ + debug\moc_CConnectorSelectWidget.cpp +OBJECTS = debug/MainWindow.o \ + debug/main.o \ + debug/MainPage.o \ + debug/CableTestBench.o \ + debug/VisualInspectionPage.o \ + debug/CConnectorSelectWidget.o \ + debug/moc_MainWindow.o \ + debug/moc_MainPage.o \ + debug/moc_CableTestBench.o \ + debug/moc_VisualInspectionPage.o \ + debug/moc_CConnectorSelectWidget.o +DIST = +QMAKE_TARGET = CableTestBench +DESTDIR = debug\ #avoid trailing-slash linebreak +TARGET = CableTestBench.exe +DESTDIR_TARGET = debug\CableTestBench.exe + +####### Implicit rules + +.SUFFIXES: .cpp .cc .cxx .c + +.cpp.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< + +.cc.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< + +.cxx.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $< + +####### Build rules + +first: all +all: Makefile.Debug $(DESTDIR_TARGET) + +$(DESTDIR_TARGET): ui_CMainPage.h ui_VisualInspectionPage.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(DESTDIR_TARGET) object_script.CableTestBench.Debug $(LIBS) + +qmake: FORCE + @$(QMAKE) -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=declarative_debug -o Makefile.Debug CableTestBench.pro + +dist: + $(ZIP) CableTestBench.zip $(SOURCES) $(DIST) CableTestBench.pro ..\..\Qt\4.8.1\mkspecs\qconfig.pri ..\..\Qt\4.8.1\mkspecs\modules\qt_webkit_version.pri ..\..\Qt\4.8.1\mkspecs\features\qt_functions.prf ..\..\Qt\4.8.1\mkspecs\features\qt_config.prf ..\..\Qt\4.8.1\mkspecs\features\exclusive_builds.prf ..\..\Qt\4.8.1\mkspecs\features\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\debug.prf ..\..\Qt\4.8.1\mkspecs\features\debug_and_release.prf ..\..\Qt\4.8.1\mkspecs\features\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\build_pass.prf ..\..\Qt\4.8.1\mkspecs\features\declarative_debug.prf ..\..\Qt\4.8.1\mkspecs\features\win32\rtti.prf ..\..\Qt\4.8.1\mkspecs\features\win32\exceptions.prf ..\..\Qt\4.8.1\mkspecs\features\win32\stl.prf ..\..\Qt\4.8.1\mkspecs\features\shared.prf ..\..\Qt\4.8.1\mkspecs\features\warn_on.prf ..\..\Qt\4.8.1\mkspecs\features\qt.prf ..\..\Qt\4.8.1\mkspecs\features\win32\thread.prf ..\..\Qt\4.8.1\mkspecs\features\moc.prf ..\..\Qt\4.8.1\mkspecs\features\win32\windows.prf ..\..\Qt\4.8.1\mkspecs\features\resources.prf ..\..\Qt\4.8.1\mkspecs\features\uic.prf ..\..\Qt\4.8.1\mkspecs\features\yacc.prf ..\..\Qt\4.8.1\mkspecs\features\lex.prf ..\..\Qt\4.8.1\mkspecs\features\include_source_dir.prf c:\Qt\4.8.1\lib\qtmaind.prl HEADERS RESOURCES IMAGES SOURCES OBJECTIVE_SOURCES FORMS YACCSOURCES YACCSOURCES LEXSOURCES + +clean: compiler_clean + -$(DEL_FILE) debug\MainWindow.o debug\main.o debug\MainPage.o debug\CableTestBench.o debug\VisualInspectionPage.o debug\CConnectorSelectWidget.o debug\moc_MainWindow.o debug\moc_MainPage.o debug\moc_CableTestBench.o debug\moc_VisualInspectionPage.o debug\moc_CConnectorSelectWidget.o + +distclean: clean + -$(DEL_FILE) $(DESTDIR_TARGET) + -$(DEL_FILE) Makefile.Debug + +check: first + +mocclean: compiler_moc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_source_make_all + +compiler_moc_header_make_all: debug/moc_MainWindow.cpp debug/moc_MainPage.cpp debug/moc_CableTestBench.cpp debug/moc_VisualInspectionPage.cpp debug/moc_CConnectorSelectWidget.cpp +compiler_moc_header_clean: + -$(DEL_FILE) debug\moc_MainWindow.cpp debug\moc_MainPage.cpp debug\moc_CableTestBench.cpp debug\moc_VisualInspectionPage.cpp debug\moc_CConnectorSelectWidget.cpp +debug/moc_MainWindow.cpp: Sources/MainPage.h \ + Sources/VisualInspectionPage.h \ + Sources/MainWindow.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\MainWindow.h -o debug\moc_MainWindow.cpp + +debug/moc_MainPage.cpp: Sources/MainPage.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\MainPage.h -o debug\moc_MainPage.cpp + +debug/moc_CableTestBench.cpp: Sources/MainWindow.h \ + Sources/MainPage.h \ + Sources/VisualInspectionPage.h \ + Sources/CableTestBench.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\CableTestBench.h -o debug\moc_CableTestBench.cpp + +debug/moc_VisualInspectionPage.cpp: Sources/VisualInspectionPage.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\VisualInspectionPage.h -o debug\moc_VisualInspectionPage.cpp + +debug/moc_CConnectorSelectWidget.cpp: Sources/Widgets/CConnectorSelectWidget.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\Widgets\CConnectorSelectWidget.h -o debug\moc_CConnectorSelectWidget.cpp + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_image_collection_make_all: qmake_image_collection.cpp +compiler_image_collection_clean: + -$(DEL_FILE) qmake_image_collection.cpp +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_CMainPage.h ui_VisualInspectionPage.h +compiler_uic_clean: + -$(DEL_FILE) ui_CMainPage.h ui_VisualInspectionPage.h +ui_CMainPage.h: Sources/CMainPage.ui + c:\Qt\4.8.1\bin\uic.exe Sources\CMainPage.ui -o ui_CMainPage.h + +ui_VisualInspectionPage.h: Sources/VisualInspectionPage.ui + c:\Qt\4.8.1\bin\uic.exe Sources\VisualInspectionPage.ui -o ui_VisualInspectionPage.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_header_clean compiler_uic_clean + + + +####### Compile + +debug/MainWindow.o: Sources/MainWindow.cpp Sources/MainWindow.h \ + Sources/MainPage.h \ + Sources/VisualInspectionPage.h \ + Sources/CableTestBench.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\MainWindow.o Sources\MainWindow.cpp + +debug/main.o: Sources/main.cpp Sources/CableTestBench.h \ + Sources/MainWindow.h \ + Sources/MainPage.h \ + Sources/VisualInspectionPage.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\main.o Sources\main.cpp + +debug/MainPage.o: Sources/MainPage.cpp Sources/MainPage.h \ + ui_CMainPage.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\MainPage.o Sources\MainPage.cpp + +debug/CableTestBench.o: Sources/CableTestBench.cpp Sources/CableTestBench.h \ + Sources/MainWindow.h \ + Sources/MainPage.h \ + Sources/VisualInspectionPage.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\CableTestBench.o Sources\CableTestBench.cpp + +debug/VisualInspectionPage.o: Sources/VisualInspectionPage.cpp Sources/VisualInspectionPage.h \ + ui_VisualInspectionPage.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\VisualInspectionPage.o Sources\VisualInspectionPage.cpp + +debug/CConnectorSelectWidget.o: Sources/Widgets/CConnectorSelectWidget.cpp Sources/Widgets/CConnectorSelectWidget.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\CConnectorSelectWidget.o Sources\Widgets\CConnectorSelectWidget.cpp + +debug/moc_MainWindow.o: debug/moc_MainWindow.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\moc_MainWindow.o debug\moc_MainWindow.cpp + +debug/moc_MainPage.o: debug/moc_MainPage.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\moc_MainPage.o debug\moc_MainPage.cpp + +debug/moc_CableTestBench.o: debug/moc_CableTestBench.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\moc_CableTestBench.o debug\moc_CableTestBench.cpp + +debug/moc_VisualInspectionPage.o: debug/moc_VisualInspectionPage.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\moc_VisualInspectionPage.o debug\moc_VisualInspectionPage.cpp + +debug/moc_CConnectorSelectWidget.o: debug/moc_CConnectorSelectWidget.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\moc_CConnectorSelectWidget.o debug\moc_CConnectorSelectWidget.cpp + +####### Install + +install: FORCE + +uninstall: FORCE + +FORCE: + diff --git a/Makefile.Release b/Makefile.Release new file mode 100644 index 0000000..4fb147f --- /dev/null +++ b/Makefile.Release @@ -0,0 +1,216 @@ +############################################################################# +# Makefile for building: CableTestBench +# Generated by qmake (2.01a) (Qt 4.8.1) on: Fri Mar 29 07:33:12 2019 +# Project: CableTestBench.pro +# Template: app +############################################################################# + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN +CFLAGS = -O2 -Wall $(DEFINES) +CXXFLAGS = -O2 -frtti -fexceptions -mthreads -Wall $(DEFINES) +INCPATH = -I"..\..\Qt\4.8.1\include\QtCore" -I"..\..\Qt\4.8.1\include\QtNetwork" -I"..\..\Qt\4.8.1\include\QtGui" -I"..\..\Qt\4.8.1\include" -I"Sources" -I"Sources\SeaMaxWin\Include" -I"Sources\SeaMaxWin\Lib" -I"..\..\Qt\4.8.1\include\ActiveQt" -I"release" -I"." -I"..\..\Qt\4.8.1\mkspecs\win32-g++" +LINK = g++ +LFLAGS = -Wl,-s -mthreads -Wl,-subsystem,windows +LIBS = -L"c:\Qt\4.8.1\lib" -lmingw32 -lqtmain -LC:/ZoneTest/CableTestBench/Sources/SeaMaxWin/Lib/ -lSeaMAX -lQtGui4 -lQtNetwork4 -lQtCore4 +QMAKE = c:\Qt\4.8.1\bin\qmake.exe +IDC = c:\Qt\4.8.1\bin\idc.exe +IDL = midl +ZIP = zip -r -9 +DEF_FILE = +RES_FILE = +COPY = copy /y +SED = +COPY_FILE = $(COPY) +COPY_DIR = xcopy /s /q /y /i +DEL_FILE = del +DEL_DIR = rmdir +MOVE = move +CHK_DIR_EXISTS= if not exist +MKDIR = mkdir +INSTALL_FILE = $(COPY_FILE) +INSTALL_PROGRAM = $(COPY_FILE) +INSTALL_DIR = $(COPY_DIR) + +####### Output directory + +OBJECTS_DIR = release + +####### Files + +SOURCES = Sources\MainWindow.cpp \ + Sources\main.cpp \ + Sources\MainPage.cpp \ + Sources\CableTestBench.cpp \ + Sources\VisualInspectionPage.cpp \ + Sources\Widgets\CConnectorSelectWidget.cpp release\moc_MainWindow.cpp \ + release\moc_MainPage.cpp \ + release\moc_CableTestBench.cpp \ + release\moc_VisualInspectionPage.cpp \ + release\moc_CConnectorSelectWidget.cpp +OBJECTS = release/MainWindow.o \ + release/main.o \ + release/MainPage.o \ + release/CableTestBench.o \ + release/VisualInspectionPage.o \ + release/CConnectorSelectWidget.o \ + release/moc_MainWindow.o \ + release/moc_MainPage.o \ + release/moc_CableTestBench.o \ + release/moc_VisualInspectionPage.o \ + release/moc_CConnectorSelectWidget.o +DIST = +QMAKE_TARGET = CableTestBench +DESTDIR = release\ #avoid trailing-slash linebreak +TARGET = CableTestBench.exe +DESTDIR_TARGET = release\CableTestBench.exe + +####### Implicit rules + +.SUFFIXES: .cpp .cc .cxx .c + +.cpp.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< + +.cc.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< + +.cxx.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $< + +####### Build rules + +first: all +all: Makefile.Release $(DESTDIR_TARGET) + +$(DESTDIR_TARGET): ui_CMainPage.h ui_VisualInspectionPage.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(DESTDIR_TARGET) object_script.CableTestBench.Release $(LIBS) + +qmake: FORCE + @$(QMAKE) -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=declarative_debug -o Makefile.Release CableTestBench.pro + +dist: + $(ZIP) CableTestBench.zip $(SOURCES) $(DIST) CableTestBench.pro ..\..\Qt\4.8.1\mkspecs\qconfig.pri ..\..\Qt\4.8.1\mkspecs\modules\qt_webkit_version.pri ..\..\Qt\4.8.1\mkspecs\features\qt_functions.prf ..\..\Qt\4.8.1\mkspecs\features\qt_config.prf ..\..\Qt\4.8.1\mkspecs\features\exclusive_builds.prf ..\..\Qt\4.8.1\mkspecs\features\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\release.prf ..\..\Qt\4.8.1\mkspecs\features\debug_and_release.prf ..\..\Qt\4.8.1\mkspecs\features\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\build_pass.prf ..\..\Qt\4.8.1\mkspecs\features\declarative_debug.prf ..\..\Qt\4.8.1\mkspecs\features\win32\rtti.prf ..\..\Qt\4.8.1\mkspecs\features\win32\exceptions.prf ..\..\Qt\4.8.1\mkspecs\features\win32\stl.prf ..\..\Qt\4.8.1\mkspecs\features\shared.prf ..\..\Qt\4.8.1\mkspecs\features\warn_on.prf ..\..\Qt\4.8.1\mkspecs\features\qt.prf ..\..\Qt\4.8.1\mkspecs\features\win32\thread.prf ..\..\Qt\4.8.1\mkspecs\features\moc.prf ..\..\Qt\4.8.1\mkspecs\features\win32\windows.prf ..\..\Qt\4.8.1\mkspecs\features\resources.prf ..\..\Qt\4.8.1\mkspecs\features\uic.prf ..\..\Qt\4.8.1\mkspecs\features\yacc.prf ..\..\Qt\4.8.1\mkspecs\features\lex.prf ..\..\Qt\4.8.1\mkspecs\features\include_source_dir.prf c:\Qt\4.8.1\lib\qtmain.prl HEADERS RESOURCES IMAGES SOURCES OBJECTIVE_SOURCES FORMS YACCSOURCES YACCSOURCES LEXSOURCES + +clean: compiler_clean + -$(DEL_FILE) release\MainWindow.o release\main.o release\MainPage.o release\CableTestBench.o release\VisualInspectionPage.o release\CConnectorSelectWidget.o release\moc_MainWindow.o release\moc_MainPage.o release\moc_CableTestBench.o release\moc_VisualInspectionPage.o release\moc_CConnectorSelectWidget.o + +distclean: clean + -$(DEL_FILE) $(DESTDIR_TARGET) + -$(DEL_FILE) Makefile.Release + +check: first + +mocclean: compiler_moc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_source_make_all + +compiler_moc_header_make_all: release/moc_MainWindow.cpp release/moc_MainPage.cpp release/moc_CableTestBench.cpp release/moc_VisualInspectionPage.cpp release/moc_CConnectorSelectWidget.cpp +compiler_moc_header_clean: + -$(DEL_FILE) release\moc_MainWindow.cpp release\moc_MainPage.cpp release\moc_CableTestBench.cpp release\moc_VisualInspectionPage.cpp release\moc_CConnectorSelectWidget.cpp +release/moc_MainWindow.cpp: Sources/MainPage.h \ + Sources/VisualInspectionPage.h \ + Sources/MainWindow.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\MainWindow.h -o release\moc_MainWindow.cpp + +release/moc_MainPage.cpp: Sources/MainPage.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\MainPage.h -o release\moc_MainPage.cpp + +release/moc_CableTestBench.cpp: Sources/MainWindow.h \ + Sources/MainPage.h \ + Sources/VisualInspectionPage.h \ + Sources/CableTestBench.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\CableTestBench.h -o release\moc_CableTestBench.cpp + +release/moc_VisualInspectionPage.cpp: Sources/VisualInspectionPage.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\VisualInspectionPage.h -o release\moc_VisualInspectionPage.cpp + +release/moc_CConnectorSelectWidget.cpp: Sources/Widgets/CConnectorSelectWidget.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\Widgets\CConnectorSelectWidget.h -o release\moc_CConnectorSelectWidget.cpp + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_image_collection_make_all: qmake_image_collection.cpp +compiler_image_collection_clean: + -$(DEL_FILE) qmake_image_collection.cpp +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_CMainPage.h ui_VisualInspectionPage.h +compiler_uic_clean: + -$(DEL_FILE) ui_CMainPage.h ui_VisualInspectionPage.h +ui_CMainPage.h: Sources/CMainPage.ui + c:\Qt\4.8.1\bin\uic.exe Sources\CMainPage.ui -o ui_CMainPage.h + +ui_VisualInspectionPage.h: Sources/VisualInspectionPage.ui + c:\Qt\4.8.1\bin\uic.exe Sources\VisualInspectionPage.ui -o ui_VisualInspectionPage.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_header_clean compiler_uic_clean + + + +####### Compile + +release/MainWindow.o: Sources/MainWindow.cpp Sources/MainWindow.h \ + Sources/MainPage.h \ + Sources/VisualInspectionPage.h \ + Sources/CableTestBench.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\MainWindow.o Sources\MainWindow.cpp + +release/main.o: Sources/main.cpp Sources/CableTestBench.h \ + Sources/MainWindow.h \ + Sources/MainPage.h \ + Sources/VisualInspectionPage.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\main.o Sources\main.cpp + +release/MainPage.o: Sources/MainPage.cpp Sources/MainPage.h \ + ui_CMainPage.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\MainPage.o Sources\MainPage.cpp + +release/CableTestBench.o: Sources/CableTestBench.cpp Sources/CableTestBench.h \ + Sources/MainWindow.h \ + Sources/MainPage.h \ + Sources/VisualInspectionPage.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\CableTestBench.o Sources\CableTestBench.cpp + +release/VisualInspectionPage.o: Sources/VisualInspectionPage.cpp Sources/VisualInspectionPage.h \ + ui_VisualInspectionPage.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\VisualInspectionPage.o Sources\VisualInspectionPage.cpp + +release/CConnectorSelectWidget.o: Sources/Widgets/CConnectorSelectWidget.cpp Sources/Widgets/CConnectorSelectWidget.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\CConnectorSelectWidget.o Sources\Widgets\CConnectorSelectWidget.cpp + +release/moc_MainWindow.o: release/moc_MainWindow.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\moc_MainWindow.o release\moc_MainWindow.cpp + +release/moc_MainPage.o: release/moc_MainPage.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\moc_MainPage.o release\moc_MainPage.cpp + +release/moc_CableTestBench.o: release/moc_CableTestBench.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\moc_CableTestBench.o release\moc_CableTestBench.cpp + +release/moc_VisualInspectionPage.o: release/moc_VisualInspectionPage.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\moc_VisualInspectionPage.o release\moc_VisualInspectionPage.cpp + +release/moc_CConnectorSelectWidget.o: release/moc_CConnectorSelectWidget.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\moc_CConnectorSelectWidget.o release\moc_CConnectorSelectWidget.cpp + +####### Install + +install: FORCE + +uninstall: FORCE + +FORCE: + diff --git a/Sources/CMainPage.cpp b/Sources/CMainPage.cpp new file mode 100644 index 0000000..8291580 --- /dev/null +++ b/Sources/CMainPage.cpp @@ -0,0 +1,14 @@ +#include "CMainPage.h" +#include "ui_CMainPage.h" + +CMainPage::CMainPage(QWidget *parent) : + QWidget(parent), + ui(new Ui::CMainPage) +{ + ui->setupUi(this); +} + +//CMainPage::~CMainPage() +//{ +// delete ui; +//} diff --git a/Sources/CMainPage.ui b/Sources/CMainPage.ui new file mode 100644 index 0000000..59819d2 --- /dev/null +++ b/Sources/CMainPage.ui @@ -0,0 +1,58 @@ + + + CMainPage + + + + 0 + 0 + 1124 + 693 + + + + Form + + + + + 40 + 210 + 111 + 23 + + + + Inspection Visuelle + + + + + + 550 + 30 + 20 + 641 + + + + Qt::Vertical + + + + + + 580 + 30 + 491 + 431 + + + + TextLabel + + + + + + diff --git a/Sources/CableTestBench.cpp b/Sources/CableTestBench.cpp new file mode 100644 index 0000000..2b9e8ac --- /dev/null +++ b/Sources/CableTestBench.cpp @@ -0,0 +1,53 @@ +#include "CableTestBench.h" +#include + +CCableTestBench::CCableTestBench(QObject *parent) : + QObject(parent) +{ + w = new MainWindow(0,this); +} + +CCableTestBench::~CCableTestBench() +{ + delete w; +} + +int CCableTestBench::Start() +{ + w->resize(1024,768); + w->show(); + + mMainPageHandle = w->mMainPage; + mVisualInspPageHandle = w->mVisualInspPage; + + return 1; +} + + +quint8 CCableTestBench::DecToBCDByte(const quint8 byte) +{ + quint8 out = 0; + + out = ((byte/10) << 4) + (byte%10); + + + return out; + +} + +quint16 CCableTestBench::DecToBCDWord(const quint16 word) +{ + quint16 out = 0; + quint16 temp = 0; + + out = word % 10; + temp = (((word /10) % 10) << 4); + out += temp; + temp = (((word / 100) % 10) << 8); + out += temp; + temp = (((word / 1000) % 10) << 12); + out += temp; + + return out; + +} diff --git a/Sources/CableTestBench.h b/Sources/CableTestBench.h new file mode 100644 index 0000000..09c703f --- /dev/null +++ b/Sources/CableTestBench.h @@ -0,0 +1,36 @@ +#ifndef OUTILMODBUS_H +#define OUTILMODBUS_H + +#include +#include "MainWindow.h" + + +class CMainPage; +class CVisualInspectionPage; + +class CCableTestBench : public QObject +{ + Q_OBJECT +public: + explicit CCableTestBench(QObject *parent = 0); + ~CCableTestBench(); + int Start(); + + + MainWindow *w; + CMainPage *mMainPageHandle; + CVisualInspectionPage *mVisualInspPageHandle; + + + private: + + quint16 DecToBCDWord(const quint16 word); + quint8 DecToBCDByte(const quint8 byte); +signals: + +public slots: + + +}; + +#endif // OUTILMODBUS_H diff --git a/Sources/GlobalDefine.h b/Sources/GlobalDefine.h new file mode 100644 index 0000000..a66b605 --- /dev/null +++ b/Sources/GlobalDefine.h @@ -0,0 +1,9 @@ +#ifndef GLOBALDEFINE_H +#define GLOBALDEFINE_H + + +#define RET_OK 1 +#define RET_ERROR 0 + + +#endif // GLOBALDEFINE_H diff --git a/Sources/MainPage.cpp b/Sources/MainPage.cpp new file mode 100644 index 0000000..190afef --- /dev/null +++ b/Sources/MainPage.cpp @@ -0,0 +1,39 @@ +#include "MainPage.h" +#include "ui_CMainPage.h" + +#include "SeaMAX.h" + +CMainPage::CMainPage(QWidget *parent) : + QWidget(parent), + ui(new Ui::CMainPage) +{ + mProgramHandle = 0; + ui->setupUi(this); + QFont font; + font.setPointSize(18); + + ui->mConnectorsImgLbl->setPixmap(QPixmap("./images/connecteurs.png").scaled(ui->mConnectorsImgLbl->size())); + +// test = new QLabel(this); +// test->setObjectName("test"); +// test->setGeometry(QRect(580, 500, 491, 431)); +// test->setPixmap(QPixmap("./images/connecteurs.png")); +// test->show(); + + connect(ui->mInspVisuelleBtn,SIGNAL(clicked()),this,SLOT(InspVisuelleBtnClicked())); + + SM_HANDLE hndl; + SM_Open(&hndl,"192.168.0.101"); + + +} + +CMainPage::~CMainPage() +{ + delete ui; +} + +void CMainPage::InspVisuelleBtnClicked() +{ + qDebug("clicked"); +} diff --git a/Sources/MainPage.h b/Sources/MainPage.h new file mode 100644 index 0000000..296f8cc --- /dev/null +++ b/Sources/MainPage.h @@ -0,0 +1,33 @@ +#ifndef CMAINPAGE_H +#define CMAINPAGE_H +#include + +#include +#include + +class CCableTestBench; + +namespace Ui { +class CMainPage; +} + +class CMainPage : public QWidget +{ + Q_OBJECT + +public: + explicit CMainPage(QWidget *parent = 0); + ~CMainPage(); + CCableTestBench *mProgramHandle; + QPixmap mLedONPixmap, mLedOFFPixmap; + QLabel *test; + +private: + Ui::CMainPage *ui; + +public slots: + + void InspVisuelleBtnClicked(); +}; + +#endif // CMAINPAGE_H diff --git a/Sources/MainWindow.cpp b/Sources/MainWindow.cpp new file mode 100644 index 0000000..32de9a4 --- /dev/null +++ b/Sources/MainWindow.cpp @@ -0,0 +1,27 @@ +#include "MainWindow.h" +#include +#include "CableTestBench.h" + +MainWindow::MainWindow(QWidget *parent,CCableTestBench* ProgramHandle) + : QMainWindow(parent), + mProgramHandle(ProgramHandle) +{ + resize(1024,768); + + mMainPage = new CMainPage(this); + mVisualInspPage = new CVisualInspectionPage(); + + mMainPage->mProgramHandle = ProgramHandle; + mVisualInspPage->mProgramHandle = ProgramHandle; + + //setCentralWidget(mVisualInspPage); + + + +} + +MainWindow::~MainWindow() +{ + delete mMainPage; + delete mVisualInspPage; +} diff --git a/Sources/MainWindow.h b/Sources/MainWindow.h new file mode 100644 index 0000000..d7e8ab1 --- /dev/null +++ b/Sources/MainWindow.h @@ -0,0 +1,30 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include +#include +#include +#include +#include "MainPage.h" +#include "VisualInspectionPage.h" + +class CCableTestBench; + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + MainWindow(QWidget *parent = 0,CCableTestBench* ProgramHandle = 0); + ~MainWindow(); + + CMainPage *mMainPage; + CCableTestBench *mProgramHandle; + CVisualInspectionPage *mVisualInspPage; + +public slots: + +}; + +#endif // MAINWINDOW_H diff --git a/Sources/ModbusBackend.cpp b/Sources/ModbusBackend.cpp new file mode 100644 index 0000000..687c051 --- /dev/null +++ b/Sources/ModbusBackend.cpp @@ -0,0 +1,706 @@ +#include "ModbusBackend.h" +#include "QBuffer" + + +CModbusBackend::CModbusBackend(CModbusRepository *Repo) +{ + mModbusTCPSocketHandle = 0; + mDataLinkValid = false; + mModbusRepo = Repo; + mModbusMode = MODBUS_INVALID_MODE; + mTransactionIDCounter = 0; + mDeviceID = 1;//0xFF; + + mModbusMaxRetry = MODBUS_RETRY_MAX_COUNT; + mModbusRequestTimeout = MODBUS_RETRY_DELAY; +} + +CModbusBackend::~CModbusBackend() +{ + +} + +void CModbusBackend::ModbusDataReady() +{ + + CModbusTransaction Transaction; + QByteArray InData = mModbusTCPSocketHandle->readAll(); + + QBuffer FileBuffer(&InData); + FileBuffer.open(QIODevice::ReadOnly); + FileBuffer.seek(0); + QDataStream *TransactionDataStrm = new QDataStream(&FileBuffer); + *TransactionDataStrm >> Transaction.mHeader; + *TransactionDataStrm >> Transaction.mPDU.mFunctionCode; + Transaction.mPDU.mData = InData.right(Transaction.mHeader.mMessageLength - 2); //-2 to remove Device ID and Function Code. + +// qDebug("modbus data received %s",InData.toHex().data()); +// qDebug("Transaction ID 0x%X",Transaction.mHeader.mTransactionID); +// qDebug("Message Length %d",Transaction.mHeader.mMessageLength); +// qDebug("Protocol ID 0x%X",Transaction.mHeader.mProtocolID); +// qDebug("Unit ID 0x%X",Transaction.mHeader.mUnitID); + +// qDebug("Function Code 0x%X",Transaction.mPDU.mFunctionCode); +// qDebug("Data %s",Transaction.mPDU.mData.toHex().data()); + + if(mModbusMode == MODBUS_MASTER_MODE) + { + AnalyzeModbusResponse(Transaction); + } + else if( mModbusMode == MODBUS_SLAVE_MODE) + { + AnalyzeModbusRequest(Transaction); + } + else + { + qDebug("Illegal modbus backend mode..."); + } + + emit ModbusRX(); +} + +void CModbusBackend::ModbusLinkDisconnected() +{ + qDebug("Modbus link disconnected"); + mDataLinkValid = false; +} + + +//In client mode. This is the request from the master. +int CModbusBackend::AnalyzeModbusRequest(CModbusTransaction Transaction) +{ + if(Transaction.mHeader.mProtocolID != 0) + { + //Invalid protocol... what can we do? + return 0; + } + + switch(Transaction.mPDU.mFunctionCode) + { + case MODBUS_FCT_READ_HOLDING_REGISTERS: + { + bool ok = true; + unsigned short StartAdress = 0; + StartAdress = Transaction.mPDU.mData[0]&0xFF; + StartAdress <<= 8; + StartAdress += Transaction.mPDU.mData[1]&0xFF; + unsigned short NbRegisters = 0; + NbRegisters = Transaction.mPDU.mData[2]&0xFF; + NbRegisters <<= 8; + NbRegisters += Transaction.mPDU.mData[3]&0xFF; + + //Validate nb of registers + if(NbRegisters < 1 || NbRegisters > MODBUS_MAX_NB_REGISTERS) + { + SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE); +// emit ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE,MODBUS_FCT_READ_HOLDING_REGISTERS); + ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE,MODBUS_FCT_READ_HOLDING_REGISTERS); + return 0; + } + + //Validate data range + if(!mModbusRepo->IsHRValid(StartAdress,NbRegisters)) + { + qDebug("Reg invalid"); + //Send negative response + SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS); +// emit ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS,MODBUS_FCT_READ_HOLDING_REGISTERS); + ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS,MODBUS_FCT_READ_HOLDING_REGISTERS); + return 0; + } + + QByteArray data = mModbusRepo->GetHRData(StartAdress,NbRegisters,&ok); + +// qDebug("Slave Rx Read Holding Registers. Address: %d, Nb Reg: %d",StartAdress, NbRegisters); +// qDebug("Data: %s",data.toHex().data()); + + //The response to a HR reading needs the byte count before the data. + quint8 ByteCount = data.size(); + data.prepend(ByteCount); + SendModbusResponse(Transaction, data); + + //All OK + + break; + } + case MODBUS_WRITE_SINGLE_REGISTER: + { + unsigned short StartAdress = 0; + + StartAdress = Transaction.mPDU.mData[0]&0xFF; + StartAdress <<= 8; + StartAdress += Transaction.mPDU.mData[1]&0xFF; + + //Validate data range + if(!mModbusRepo->IsHRValid(StartAdress,1)) + { + qDebug("Reg invalid"); + //Send negative response + SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS); +// emit ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS,MODBUS_WRITE_SINGLE_REGISTER); + ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS,MODBUS_WRITE_SINGLE_REGISTER); + return 0; + } + + //Extract data. + QByteArray data = Transaction.mPDU.mData.right(2); + + //Write register data + mModbusRepo->WriteHRData(StartAdress,1,data); + +// qDebug("Slave Rx Write Single Register. Address: %d, Value: 0x%s",StartAdress, data.toHex().data()); +// qDebug("Data: %s",data.toHex().data()); + + data = Transaction.mPDU.mData.left(4); //The response corresponds to the Reg. Address & the value. Which is the first 4 bytes of the initial request. + SendModbusResponse(Transaction, data); +// emit RegistersDatabaseUpdated(StartAdress,1); + RegistersDatabaseUpdated(StartAdress,1); + + break; + } + case MODBUS_FCT_WRITE_MULTIPLE_REGISTERS: + { + unsigned short StartAdress = 0; + StartAdress = Transaction.mPDU.mData[0]&0xFF; + StartAdress <<= 8; + StartAdress += Transaction.mPDU.mData[1]&0xFF; + + unsigned short NbRegisters = 0; + NbRegisters = Transaction.mPDU.mData[2]&0xFF; + NbRegisters <<= 8; + NbRegisters += Transaction.mPDU.mData[3]&0xFF; + + quint8 ByteCount = Transaction.mPDU.mData[4]; + + //Validate nb of registers + if(NbRegisters < 1 || NbRegisters > 0x7D || ByteCount != (NbRegisters*2)) + { + qDebug("Invalid register number or byte count "); + SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE); +// emit ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE,MODBUS_FCT_WRITE_MULTIPLE_REGISTERS); + ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE,MODBUS_FCT_WRITE_MULTIPLE_REGISTERS); + return 0; + } + + //Validate data range + if(!mModbusRepo->IsHRValid(StartAdress,NbRegisters)) + { + qDebug("Reg invalid"); + //Send negative response + SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS); +// emit ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS,MODBUS_FCT_WRITE_MULTIPLE_REGISTERS); + ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS,MODBUS_FCT_WRITE_MULTIPLE_REGISTERS); + return 0; + } + + //Extract data. + QByteArray data = Transaction.mPDU.mData.right(ByteCount); + + //Write register data + mModbusRepo->WriteHRData(StartAdress,NbRegisters,data); + +// qDebug("Slave Rx Write Multiple Registers. Address: %d, Nb Reg: %d",StartAdress, NbRegisters); +// qDebug("Data: %s",data.toHex().data()); + + data = Transaction.mPDU.mData.left(4); //The response corresponds to the Start Adress and Nb of Regs. Which is the first 4 bytes of the initial request. + SendModbusResponse(Transaction, data); + +// emit RegistersDatabaseUpdated(StartAdress,NbRegisters); + RegistersDatabaseUpdated(StartAdress,NbRegisters); + + break; + } + default: + { + //Received "Illegal function code". Send the exception code to master + //TODO: Log this. + qDebug("Slave received illegal function code from master: 0x%x",Transaction.mPDU.mFunctionCode); + SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_FCT); +// emit ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_FCT,Transaction.mPDU.mFunctionCode); + ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_FCT,Transaction.mPDU.mFunctionCode); + break; + } + } + + + return 1; +} + +int CModbusBackend::SendModbusResponse(CModbusTransaction RequestTransaction, QByteArray Data) +{ + QByteArray ModbusPacket; + + QBuffer Buffer(&ModbusPacket); + Buffer.open(QIODevice::WriteOnly|QIODevice::Unbuffered); + Buffer.seek(0); + QDataStream *PacketDataStrm = new QDataStream(&Buffer); + + //For a response, the header will be the same as the original request, except for the msg. length. + //Set the appropriate msg length. + RequestTransaction.mHeader.mMessageLength = Data.size() + 2; //+2 to add function code & Unit ID. + RequestTransaction.mPDU.mData = Data; + + *PacketDataStrm << RequestTransaction.mHeader; + *PacketDataStrm << RequestTransaction.mPDU.mFunctionCode; + Buffer.close(); + ModbusPacket.append(Data); + + + qDebug("Response packet: %s",ModbusPacket.toHex().data()); + + mModbusTCPSocketHandle->write(ModbusPacket); + + delete PacketDataStrm; + + return RET_OK; +} + +//In Master mode. This is the response from slave to a previously sent request. +int CModbusBackend::AnalyzeModbusResponse(CModbusTransaction Transaction) +{ + if(Transaction.mHeader.mProtocolID != 0) + { + //Invalid protocol... what can we do? + return RET_ERROR; + } + + //Find matching request and remove it from the queue... + CModbusRequest *Request; + bool Found = false; + for(int i = 0; i < mRequestsList.size(); i++) + { + if(mRequestsList.at(i)->mHeader.mTransactionID == Transaction.mHeader.mTransactionID) + { + Request = mRequestsList.takeAt(i); //Remove from queue and keep a copy + Request->mRequestTimer->stop(); //Stop the resend timer + Found = true; + } + } + + if(Found == false) + { + //Invalid request number. This should happen only if a very long delay exists in the comm. + //TODO: Log this... + qDebug("Master received response to a non existent request!!!"); + return RET_ERROR; + } + + //check if we have an exception response + if((Transaction.mPDU.mFunctionCode & MODBUS_EXCEPTION_FCT_MASK) != 0) + { + //we have an exception response... something went wrong. + quint8 ExceptionCode = Transaction.mPDU.mData[0]; + + //TODO: Manage this! + qDebug("Master Rx exception code %d to request %d",ExceptionCode,Request->mPDU.mFunctionCode); + emit ModbusResponseException(ExceptionCode,Request->mPDU.mFunctionCode); + delete Request; + return RET_ERROR; + } + + switch(Transaction.mPDU.mFunctionCode) + { + case MODBUS_FCT_READ_HOLDING_REGISTERS: + { + quint8 ByteCount = 0; + ByteCount = Transaction.mPDU.mData.at(0); + + if((Request->mNbRegisters*2) != ByteCount) + { + //Inconsistency between the data range and the data count. + //TODO: Log the error. + qDebug("Master eceived a wrong data size in response for a MODBUS_FCT_READ_HOLDING_REGISTERS request"); + emit ModbusResponseException(MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE,MODBUS_FCT_READ_HOLDING_REGISTERS); + delete Request; + return RET_ERROR; + } + + QByteArray RegisterValues = Transaction.mPDU.mData.right(ByteCount); + + +// qDebug("Master Rx Read Holding Registers Response."); +// qDebug("Data: %s",RegisterValues.toHex().data()); + + mModbusRepo->WriteHRData(Request->mStartAddress,Request->mNbRegisters,RegisterValues); + RegistersDatabaseUpdated(Request->mStartAddress, Request->mNbRegisters); + + break; + } + case MODBUS_WRITE_SINGLE_REGISTER: + { + quint16 RegAddress = 0; + RegAddress = Transaction.mPDU.mData[0]&0xFF; + RegAddress <<= 8; + RegAddress += Transaction.mPDU.mData[1]&0xFF; + + if(Request->mStartAddress != RegAddress) + { + //Inconsistency between the request Adress and response Adress. + //TODO: Log the error. + qDebug("Master received a wrong Register Adress in response for a MODBUS_WRITE_SINGLE_REGISTER request. Expected [%d], Rx[%d]",Request->mStartAddress, RegAddress); + emit ModbusResponseException(MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE,MODBUS_WRITE_SINGLE_REGISTER); + delete Request; + return RET_ERROR; + } +// qDebug("Master Rx Write Single Register response. Address: %d,",RegAddress); +// qDebug("Data: %s",Transaction.mPDU.mData.toHex().data()); + + //Everything seems good. + + break; + } + case MODBUS_FCT_WRITE_MULTIPLE_REGISTERS: + { + unsigned short StartAdress = 0; + StartAdress = Transaction.mPDU.mData[0]&0xFF; + StartAdress <<= 8; + StartAdress += Transaction.mPDU.mData[1]&0xFF; + + unsigned short NbRegisters = 0; + NbRegisters = Transaction.mPDU.mData[2]&0xFF; + NbRegisters <<= 8; + NbRegisters += Transaction.mPDU.mData[3]&0xFF; + + if(StartAdress != Request->mStartAddress || NbRegisters != Request->mNbRegisters) + { + //Inconsistency between the request Adress or NbRegisters and response. + //TODO: Log the error. + qDebug("Master Received a wrong Register Adress or NbRegisters in response for a MODBUS_FCT_WRITE_MULTIPLE_REGISTERS request"); + emit ModbusResponseException(MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE,MODBUS_FCT_WRITE_MULTIPLE_REGISTERS); + delete Request; + return RET_ERROR; + } + +// qDebug("Master Rx Write Multiple Registers response. Address: %d, Nb Reg: %d",StartAdress, NbRegisters); +// qDebug("Data: %s",Transaction.mPDU.mData.toHex().data()); + + //All is good. + + break; + } + default: + { + //Received "Illegal function code" response + //TODO: Log this. + qDebug("Master received illegal function code 0x%x",Transaction.mPDU.mFunctionCode); + emit ModbusResponseException(MODBUS_EXCEPTION_ILLEGAL_FCT,MODBUS_FCT_WRITE_MULTIPLE_REGISTERS); + break; + } + } + + + delete Request; + return 1; +} + +int CModbusBackend::SendModbusRequest(CModbusRequest *Request) +{ + QByteArray ModbusPacket; + + QBuffer Buffer(&ModbusPacket); + Buffer.open(QIODevice::WriteOnly|QIODevice::Unbuffered); + Buffer.seek(0); + QDataStream *PacketDataStrm = new QDataStream(&Buffer); + + *PacketDataStrm << Request->mHeader; + *PacketDataStrm << Request->mPDU.mFunctionCode; + Buffer.close(); + ModbusPacket.append(Request->mPDU.mData); + + qDebug("Request packet: %s",ModbusPacket.toHex().data()); + + mModbusTCPSocketHandle->write(ModbusPacket); + mModbusTCPSocketHandle->flush(); + return RET_OK; +} + +int CModbusBackend::SendErrorResponse(CModbusTransaction RequestTransaction, quint8 ErrorCode) +{ + QByteArray ModbusPacket; + + QBuffer Buffer(&ModbusPacket); + Buffer.open(QIODevice::WriteOnly|QIODevice::Unbuffered); + Buffer.seek(0); + QDataStream *PacketDataStrm = new QDataStream(&Buffer); + + //For a response, the header will be the same as the original request, except for the msg. length. + //Set the appropriate msg length. + RequestTransaction.mHeader.mMessageLength = 3; //Unit ID, function code & Exception code. + + *PacketDataStrm << RequestTransaction.mHeader; + Buffer.close(); + ModbusPacket.append(RequestTransaction.mPDU.mFunctionCode + 0x80); + ModbusPacket.append(ErrorCode); + + + qDebug("Sending error code %d. Error packet: %s",ErrorCode,ModbusPacket.toHex().data()); + + mModbusTCPSocketHandle->write(ModbusPacket); + + delete PacketDataStrm; + + return RET_OK; +} + + +int CModbusBackend::SendReadHoldingRegistersRequest(quint16 StartAddress, quint16 RegisterCount) +{ + //First, validate that the reading range is within our repo + if(mModbusRepo->IsHRValid(StartAddress,RegisterCount) == false) + { + qDebug("Trying to send a read HR in an invalid range"); + return RET_ERROR; + } + + //Create a request. + CModbusRequest *NewRequest = new CModbusRequest; + NewRequest->mStartAddress = StartAddress; + NewRequest->mNbRegisters = RegisterCount; + connect(NewRequest->mRequestTimer,SIGNAL(timeout()),this,SLOT(RequestTimerExpired())); + + NewRequest->mPDU.mData.clear(); + NewRequest->mPDU.mFunctionCode = MODBUS_FCT_READ_HOLDING_REGISTERS; + + quint8 HighByte, LowByte; + LowByte = StartAddress & 0x00FF; + HighByte = (StartAddress >> 8) & 0x00FF; + NewRequest->mPDU.mData.append(HighByte); + NewRequest->mPDU.mData.append(LowByte); + + LowByte = RegisterCount & 0x00FF; + HighByte = (RegisterCount >> 8) & 0x00FF; + NewRequest->mPDU.mData.append(HighByte); + NewRequest->mPDU.mData.append(LowByte); + + NewRequest->mHeader.mMessageLength = NewRequest->mPDU.mData.size() + 2; + NewRequest->mHeader.mProtocolID = 0; + NewRequest->mHeader.mTransactionID = (qint16)GetNewTransactionID(); + NewRequest->mHeader.mUnitID = mDeviceID; + + mRequestsList.append(NewRequest); + + SendModbusRequest(NewRequest); + + NewRequest->mRequestTimer->start(mModbusRequestTimeout); + + + return RET_OK; + +} + +int CModbusBackend::SendWriteHoldingRegistersRequest(quint16 StartAddress, quint16 RegisterCount) +{ + //First, validate that the reading range is within our repo + if(mModbusRepo->IsHRValid(StartAddress,RegisterCount) == false) + { + qDebug("Trying to send a read HR in an invalid range"); + return RET_ERROR; + } + + if(RegisterCount > MODBUS_MAX_NB_REGISTERS) + { + return RET_ERROR; + } + + //Get data. + bool OK; + QByteArray RegData = mModbusRepo->GetHRData(StartAddress,RegisterCount,&OK); + if(OK == false) + { + return RET_ERROR; + } + + //Create a request. + CModbusRequest *NewRequest = new CModbusRequest; + NewRequest->mStartAddress = StartAddress; + NewRequest->mNbRegisters = RegisterCount; + connect(NewRequest->mRequestTimer,SIGNAL(timeout()),this,SLOT(RequestTimerExpired())); + + NewRequest->mPDU.mData.clear(); + NewRequest->mPDU.mFunctionCode = MODBUS_FCT_WRITE_MULTIPLE_REGISTERS; + + //Start address + quint8 HighByte, LowByte; + LowByte = StartAddress & 0x00FF; + HighByte = (StartAddress >> 8) & 0x00FF; + NewRequest->mPDU.mData.append(HighByte); + NewRequest->mPDU.mData.append(LowByte); + + //Nb registers + LowByte = RegisterCount & 0x00FF; + HighByte = (RegisterCount >> 8) & 0x00FF; + NewRequest->mPDU.mData.append(HighByte); + NewRequest->mPDU.mData.append(LowByte); + + //Byte Count + NewRequest->mPDU.mData.append(RegData.size()); + + //Datal + NewRequest->mPDU.mData.append(RegData); + + NewRequest->mHeader.mMessageLength = NewRequest->mPDU.mData.size() + 2; + NewRequest->mHeader.mProtocolID = 0; + NewRequest->mHeader.mTransactionID = (qint16)GetNewTransactionID(); + NewRequest->mHeader.mUnitID = mDeviceID; + + mRequestsList.append(NewRequest); + + SendModbusRequest(NewRequest); + + NewRequest->mRequestTimer->start(mModbusRequestTimeout); + + + return RET_OK; +} + +int CModbusBackend::SendWriteSingleRegisterRequest(quint16 Address) +{ + if(Address == 2000) + { + qDebug("Write single reg 2000"); + } + //First, validate that the reading range is within our repo + if(mModbusRepo->IsHRValid(Address,1) == false) + { + qDebug("Trying to send a read HR in an invalid range"); + return RET_ERROR; + } + + //Get data. + bool OK; + QByteArray RegData = mModbusRepo->GetHRData(Address,1,&OK); + if(OK == false) + { + return RET_ERROR; + } + + //Create a request. + CModbusRequest *NewRequest = new CModbusRequest; + NewRequest->mStartAddress = Address; + NewRequest->mNbRegisters = 1; + connect(NewRequest->mRequestTimer,SIGNAL(timeout()),this,SLOT(RequestTimerExpired())); + + NewRequest->mPDU.mData.clear(); + NewRequest->mPDU.mFunctionCode = MODBUS_WRITE_SINGLE_REGISTER; + + quint8 HighByte, LowByte; + LowByte = Address & 0x00FF; + HighByte = (Address >> 8) & 0x00FF; + NewRequest->mPDU.mData.append(HighByte); + NewRequest->mPDU.mData.append(LowByte); + +// LowByte = RegData & 0x00FF; +// HighByte = (RegData >> 8) & 0x00FF; +// NewRequest->mPDU.mData.append(HighByte); +// NewRequest->mPDU.mData.append(LowByte); + + NewRequest->mPDU.mData.append(RegData); + + NewRequest->mHeader.mMessageLength = NewRequest->mPDU.mData.size() + 2; + NewRequest->mHeader.mProtocolID = 0; + NewRequest->mHeader.mTransactionID = (qint16)GetNewTransactionID(); + NewRequest->mHeader.mUnitID = mDeviceID; + + mRequestsList.append(NewRequest); + + SendModbusRequest(NewRequest); + + NewRequest->mRequestTimer->start(mModbusRequestTimeout); + + + return RET_OK; +} + +void CModbusBackend::RequestTimerExpired() +{ + //find the expired request + for(int i = 0; i < mRequestsList.size(); i++) + { + if(mRequestsList.at(i)->mRequestTimer->isActive() == false) + { + if(mRequestsList.at(i)->mRetries >= mModbusMaxRetry) + { + //The max number of retry has been reached. The device is probably offline. + + qDebug("Modbus Master: Request sent to slave without response"); + + delete mRequestsList[i]; + mRequestsList.removeAt(i); + + + //TODO: Manage this situation (log?) + + return; + } + else + { + SendModbusRequest(mRequestsList[i]); + mRequestsList.at(i)->mRequestTimer->start(mModbusRequestTimeout); + mRequestsList[i]->mRetries++; + } + } + } +} + +quint16 CModbusBackend::GetNewTransactionID() +{ + quint16 ID = mTransactionIDCounter++; + + if(mTransactionIDCounter == 0xFFFF - 10) + { + mTransactionIDCounter = 0; + } + + return ID; +} + + + +CModbusRequest::CModbusRequest(): + mRetries(0) +{ + mRequestTimer = new QTimer; + mRequestTimer->setSingleShot(true); +} +CModbusRequest::~CModbusRequest() +{ + delete mRequestTimer; +} + + + + + +QDataStream &operator<<(QDataStream &out, const CModbusHeader &source) +{ + out << source.mTransactionID + << source.mProtocolID + << source.mMessageLength + << source.mUnitID + ; + + return out; +} + +QDataStream &operator>>(QDataStream &in, CModbusHeader &dest) +{ + in >> dest.mTransactionID + >> dest.mProtocolID + >> dest.mMessageLength + >> dest.mUnitID + ; + + return in; +} + +//Virtual function that should not even get called... +void CModbusBackend::ModbusResponseException(quint8 ExceptionCode, quint8 FctCode) +{ + qDebug("ModbusResponseException called from within slave object... weird stuff!"); +} + +//Virtual function that should not even get called... +void CModbusBackend::ModbusRequestException(quint8 ExceptionCode, quint8 FctCode) +{ + qDebug("ModbusResponseException called from within master object... weird stuff!"); +} diff --git a/Sources/ModbusMaster.cpp b/Sources/ModbusMaster.cpp new file mode 100644 index 0000000..748b3e4 --- /dev/null +++ b/Sources/ModbusMaster.cpp @@ -0,0 +1,113 @@ +#include "ModbusMaster.h" +#include +#include "ProtocolDefs.h" + +CModbusMaster::CModbusMaster(CModbusRepository *Repo): + CModbusBackend(Repo) +{ + // connect(mModbusTCPSocketHandle,SIGNAL(readyRead()),this,SLOT(ModbusDataReady())); + mModbusMode = MODBUS_MASTER_MODE; + + mModbusTCPSocketHandle = new QTcpSocket(); + connect(mModbusTCPSocketHandle,SIGNAL(readyRead()),this,SLOT(ModbusDataReady())); + connect(mModbusTCPSocketHandle,SIGNAL(disconnected()),this,SLOT(SocketDisconnected())); + connect(mModbusTCPSocketHandle,SIGNAL(connected()),this,SLOT(SocketConnected())); + +} + +CModbusMaster::~CModbusMaster() +{ + if(mModbusTCPSocketHandle->state() != QAbstractSocket::UnconnectedState) + { + mModbusTCPSocketHandle->disconnectFromHost(); + mModbusTCPSocketHandle->waitForDisconnected(1000); + } + delete mModbusTCPSocketHandle; +} + +int CModbusMaster::ConnectToSlave(QString SlaveIP, int SlavePort) +{ + if(mModbusTCPSocketHandle->state() != QAbstractSocket::UnconnectedState) + { + return RET_ERROR; + } + + mModbusTCPSocketHandle->connectToHost(SlaveIP,SlavePort); + + return RET_OK; +} + +int CModbusMaster::DisconnectFromSlave() +{ + if(mModbusTCPSocketHandle->state() != QAbstractSocket::ConnectedState) + { + qDebug("Trying to disconnect a non connected socket"); + mModbusTCPSocketHandle->disconnectFromHost(); + return 0; + } + + qDebug("Requesting Disconnection..."); + mModbusTCPSocketHandle->disconnectFromHost(); + return 1; +} + +void CModbusMaster::SocketConnected() +{ + emit ModbusMasterConnected(this); + qDebug("Master: Connection established with slave"); +} + +void CModbusMaster::SocketDisconnected() +{ + ModbusLinkDisconnected(); + emit ModbusMasterDisconnected(this); + mModbusTCPSocketHandle->flush(); +} + +int CModbusMaster::ReadModbusRegisters() +{ + return SendReadHoldingRegistersRequest(MODBUS_ZT_DATA_BASE_REG,MODBUS_ZT_TABLE_DATA_SIZE); //Read all registers from ZT (2000 - 2027) +} + + +void CModbusMaster::RegistersDatabaseUpdated(quint16 StartAddress, quint16 Length) +{ + emit ModbusMasterRepositoryUpdated(); +// qDebug("Database updated with ZT data..."); +} + +void CModbusMaster::ModbusResponseException(quint8 ExceptionCode, quint8 FctCode) +{ + qDebug("Modbus MASTER exception: code:%d Fct:%d",ExceptionCode,FctCode); +} + +int CModbusMaster::SendAN1ToZT() +{ + //return SendWriteHoldingRegistersRequest(CC_AN1_REGISTER_ADDRESS,1); + return SendWriteSingleRegisterRequest(MODBUS_CC_AN_BASE_REG_ADD); +} + +int CModbusMaster::SendAN2ToZT() +{ + //return SendWriteHoldingRegistersRequest(CC_AN2_REGISTER_ADDRESS,1); + return SendWriteSingleRegisterRequest(MODBUS_CC_AN_BASE_REG_ADD); +} + +int CModbusMaster::SendWatchdog() +{ + return SendWriteSingleRegisterRequest(MODBUS_CC_WATCHDOG_BASE_REG_ADD); +} +int CModbusMaster::SendDateTime() +{ + return SendWriteHoldingRegistersRequest(MODBUS_CC_CLK_UPDATE_BASE_REG_ADD,5); +} + +int CModbusMaster::SendTrainData() +{ + return SendWriteHoldingRegistersRequest(MODBUS_CC_ZT1_TRAIN_TYPE_REG_ADD,8); +} + +int CModbusMaster::SendZTInhibitionData() +{ + return SendWriteSingleRegisterRequest(MODBUS_CC_AN_BASE_REG_ADD); +} diff --git a/Sources/ModbusRepository.cpp b/Sources/ModbusRepository.cpp new file mode 100644 index 0000000..24ac689 --- /dev/null +++ b/Sources/ModbusRepository.cpp @@ -0,0 +1,211 @@ +#include "ModbusRepository.h" +#include +#include +#include + +CModbusRepository::CModbusRepository() +{ +} + +int CModbusRepository::AddHRDataMap(quint16 StartAddress, quint16 Length) +{ + for(int i= 0; i < mHoldingRegisters.size(); i++) + { + if((StartAddress >= mHoldingRegisters.at(i).mStartAddress && StartAddress <= mHoldingRegisters.at(i).mEndAddress) || + (StartAddress + Length - 1 >= mHoldingRegisters.at(i).mStartAddress && StartAddress + Length - 1 <= mHoldingRegisters.at(i).mEndAddress)) + { + return RET_ERROR; //The data map overlaps an existing map. + } + } + + CHRDataMap NewHRMap(StartAddress,Length); + + mHoldingRegisters.append(NewHRMap); + + qDebug("Created a new HR data map at address: %d with size %d",StartAddress,Length); + + return RET_OK; +} + +bool CModbusRepository::IsHRValid(quint16 StartAddress, quint16 Length, int *index) +{ + for(int i= 0; i < mHoldingRegisters.size(); i++) + { + if((StartAddress >= mHoldingRegisters.at(i).mStartAddress && StartAddress + Length - 1 <= mHoldingRegisters.at(i).mEndAddress)) + { + if(index != 0) + { + *index = i; + } + return true; + } + } + + return false; +} + +QByteArray CModbusRepository::GetHRData(quint16 StartAddress, quint16 Length, bool *OK) +{ + QByteArray Data; + int RegisterIndex = 0; + + if(IsHRValid(StartAddress,Length, &RegisterIndex) == false) + { + if(OK != 0) + { + *OK = false; + } + } + else + { + int DataIndex = StartAddress - mHoldingRegisters.at(RegisterIndex).mStartAddress; + for(int i = 0; i < Length; i++) + { + quint16 CurReg = mHoldingRegisters.at(RegisterIndex).mRegistersData.at(DataIndex++); + quint8 HighByte, LowByte; + + LowByte = CurReg & 0x00FF; + HighByte = (CurReg >> 8) & 0x00FF; + Data.append(HighByte); + Data.append(LowByte); + } + + if(OK != 0) + { + *OK = true; + } + } + + return Data; +} + +int CModbusRepository::WriteHRData(quint16 StartAddress, quint16 Length, QByteArray Data) +{ + int RegisterIndex; + + if(IsHRValid(StartAddress,Length, &RegisterIndex) == false) + { + return RET_ERROR; + } + + if(Length*2 != Data.size()) + { + return RET_ERROR; + } + + int DataIndex = StartAddress - mHoldingRegisters.at(RegisterIndex).mStartAddress; + + for(int i = 0; i < Length; i++) + { + quint8 HighByte = Data.at(i*2); + quint8 LowByte = Data.at(i*2 + 1); + qint16 Word = HighByte; + Word <<= 8; + Word += LowByte; + Word = Word &0xFFFF; + + mHoldingRegisters[RegisterIndex].mRegistersData[DataIndex++] = Word; + } + + return RET_OK; +} + +int CModbusRepository::WriteSingleReg(quint16 Address, quint16 Value) +{ + int RegisterIndex; + + if(IsHRValid(Address,1, &RegisterIndex) == false) + { + return RET_ERROR; + } + + int DataIndex = Address - mHoldingRegisters.at(RegisterIndex).mStartAddress; + mHoldingRegisters[RegisterIndex].mRegistersData[DataIndex] = Value; + return RET_OK; +} + +quint16 CModbusRepository::GetSingleReg(quint16 Address, bool *OK) +{ + int RegisterIndex; + + if(IsHRValid(Address,1, &RegisterIndex) == false) + { + if(OK != 0) + { + *OK = false; + } + return 0; + } + + if(OK != 0) + { + *OK = true; + } + + int DataIndex = Address - mHoldingRegisters.at(RegisterIndex).mStartAddress; + return mHoldingRegisters[RegisterIndex].mRegistersData[DataIndex]; +} + +QList CModbusRepository::GetRegs(quint16 StartAddress, quint16 Length, bool *OK) +{ + int RegisterIndex; + + if(IsHRValid(StartAddress,Length, &RegisterIndex) == false) + { + if(OK != 0) + { + *OK = false; + } + return QList(); + } + + if(OK != 0) + { + *OK = true; + } + + int DataIndex = StartAddress - mHoldingRegisters.at(RegisterIndex).mStartAddress; + return mHoldingRegisters[RegisterIndex].mRegistersData.mid(DataIndex,Length); +} + +CHRDataMap::CHRDataMap(quint16 StartAddress, quint16 Length) +{ + mStartAddress = StartAddress; + mLength = Length; + for(int i = 0; i < Length; i++) + { + mRegistersData.append(0); + } + + + /* + mRegistersData[0] = 0x1234; + mRegistersData[1] = 0x4567; + mRegistersData[2] = 0x8911; + mRegistersData[3] = 9873; + mRegistersData[4] = 0xABCD;*/ + + + mEndAddress = StartAddress + Length - 1; +} + +int CModbusRepository::WriteMultipleRegs(quint16 StartAddress, QList Data) +{ + int RegisterIndex; + + if(IsHRValid(StartAddress,Data.size(), &RegisterIndex) == false) + { + return RET_ERROR; + } + + //mMutex.lockForWrite(); + int DataIndex = StartAddress - mHoldingRegisters.at(RegisterIndex).mStartAddress; + for(int i = 0; i < Data.size(); i++) + { + mHoldingRegisters[RegisterIndex].mRegistersData[DataIndex++] = Data.at(i); + } + // mMutex.unlock(); + + // emit RepoChanged(StartAddress,Data.size()); + return RET_OK; +} diff --git a/Sources/ModbusSlave.cpp b/Sources/ModbusSlave.cpp new file mode 100644 index 0000000..146dfca --- /dev/null +++ b/Sources/ModbusSlave.cpp @@ -0,0 +1,44 @@ +#include "ModbusSlave.h" + + +CModbusSlave::CModbusSlave(CModbusRepository *Repo) : + CModbusBackend(Repo) +{ + mModbusServer = new QTcpServer(); + connect(mModbusServer,SIGNAL(newConnection()),this,SLOT(NewModbusConnection())); + mModbusMode = MODBUS_SLAVE_MODE; +} + +CModbusSlave::~CModbusSlave() +{ + delete mModbusServer; +} + +int CModbusSlave::StartSlaveServer(int port) +{ + mModbusServer->listen(QHostAddress::Any,port); + qDebug("Slave server started on port %d",port); + return 1; +} + +void CModbusSlave::NewModbusConnection() +{ + mModbusTCPSocketHandle = mModbusServer->nextPendingConnection(); + if(mModbusTCPSocketHandle != 0) + { + mDataLinkValid = true; + connect(mModbusTCPSocketHandle,SIGNAL(readyRead()),this,SLOT(ModbusDataReady())); + connect(mModbusTCPSocketHandle,SIGNAL(disconnected()),this,SLOT(ModbusLinkDisconnected())); + qDebug("Slave: Connection with Master established"); + } +} + +void CModbusSlave::RegistersDatabaseUpdated(quint16 StartAddress, quint16 Length) +{ + +} + +void CModbusSlave::ModbusRequestException(quint8 ExceptionCode, quint8 FctCode) +{ + +} diff --git a/Sources/SeaMaxWin/Dll/SeaMAX Dot Net.XML b/Sources/SeaMaxWin/Dll/SeaMAX Dot Net.XML new file mode 100644 index 0000000..f5cef7c --- /dev/null +++ b/Sources/SeaMaxWin/Dll/SeaMAX Dot Net.XML @@ -0,0 +1,221 @@ + + + + SeaMAX Dot Net + + + + + Returns the SeaMAX library's version info as major.minor.revision.build. + + Integer where the Major version number will be stored. + Integer where the Minor version number will be stored. + Integer where the Revision version number will be stored. + Integer where the Build version number will be stored. + Returns 0 if successful. + + + + Opens a connection to a Sealevel I/O module. + + String representing the connection to be made. + Returns 0 if successful, otherwise returns a negative value. + + + + Configures the local PC's serial port baudrate (For Serial Connections Only). + + SeaMAX.Baudrate value representing the new baudrate to be used. + SeaMAX.Parity value representing the new parity to be used. + Returns 0 if successful, otherwise returns a negative value. + + + + Configures the local PC's serial port timeout parameters (For Serial Connections Only). + + Integer specifying the timeout multiplier to be used. + Integer specifying the timeout constant to be used. + Integer specifying the timeout character interval to be used. + Returns 0 if successful, otherwise returns a negative value. + + + + Closes the SeaMAX connection and deconstructs the SeaMAX instance. + + Returns 0 if successful, otherwise returns a negative value. + + + + Targets a new Modbus device. + + New Modbus slave ID to be used in future SeaMAX operations. Valid values are 0 - 247. + Returns 0 if successful, otherwise returns a negative value. + + + + Queries the Sealevel I/O module to determine the module model number, type, baudrate, and parity. + + Integer where the model number will be stored. + Returns 0 if successful, otherwise returns a negative value. + + + + Queries the Sealevel I/O module to determine the module model number, type, baudrate, and parity. + + Integer where the model number will be stored. + SeaMAX.CommunicationType where the type of communications interface of the device will be stored. + SeaMAX.Baudrate where the baudrate of the device will be stored. + SeaMAX.Parity where the parity of the device will be stored. + Returns 0 if successful, otherwise returns a negative value. + + + + Queries the Sealevel I/O module to determine the module model number, type, baudrate, parity, and firmware version number. + + Valid DeviceConfig struct + Returns 0 if successful, otherwise returns a negative value. + + + + Gets the device's analog configuraton. + + Analog to digital reference point. + Device input mode. + Returns 0 if successful, otherwise returns a negative value. + + + + Gets the device's analog inputs range configuraton. + + SeaMAX.ChannelRange Array where the desired channel ranges will be stored.. + Returns 0 if successful, otherwise returns a negative value. + + + + Sets the device's analog configuraton. + + Analog to digital reference point. + Device input mode. + Returns 0 if successful, otherwise returns a negative value. + + + + Sets the device's analog inputs range configuraton. + + Array of desired channel ranges. + Returns 0 if successful, otherwise returns a negative value. + + + + Sets the device's analog inputs range configuraton. + + SeaMAX.ChannelRange array where the desired channel ranges will be stored. + Returns 0 if successful, otherwise returns a negative value. + + + + + + + + Reads the entire I/O space of a Sealevel programmable IO device. + This method attempts to read the state of the programmable IO for any applicable Sealevel I/O module. The data is returned as a packed array of bytes reflecting the state of ports A1 to C4, MSB to LSB. + + Byte array where the state of the PIO inputs will be stored. Must have 1 byte allocated for each bank of 8 I/O points. + Returns 0 if successful, otherwise returns a negative value. + + + + Writes the IO space of a programmable I/O Sealevel I/O module. + This method attempts to configure the state of all programmable IO. The data should be a packed array of bytes, in order of ports A1 to C4, MSB to LSB. + + Byte array containing the desired output values of the programmable IO. Must have 1 byte allocated for each bank of 8 I/O points. If any particular port is set as an input, rather than output, the corresponding byte in the array will be ignored. + Returns 0 if successful, otherwise returns a negative value. + + + + Configures a Sealevel I/O module's serial communication parameters. + + SeaMAX.Baudrate containing the desired baudrate. + SeaMAX.Parity containing the desired parity. + Returns 0 if successful, otherwise returns a negative value. + + + + Configure's a Sealevel I/O module's software selectable Modbus slave ID (Modbus devices only). + This method attempts to set the software selectable address (slave ID) of a Sealevel I/O module, whose side rotary switch is set to the '0' position. By default, setting the side switch to zero will result in a Modbus slave ID address of 247. + The 'Set Software Slave ID' Modbus function requires a security key byte, recieved by performing a 'Get Module Configuration (0x45)'. If the security key has not previously been explicitly requested , the SetSoftwareAddress() method will automatically perform the 'Get Module Configuration' function prior to executing the 'Set Software Slave ID' + If the side rotary switch is not in the zero position, this Modbus function will fail. + + Integer containing the desired slave ID of the currently selected module. + Returns 0 if successful, otherwise returns a negative value. + + + + Reads the current state of one or more digital outputs. The output state(s) parameter will be an array of bytes where each byte represents 8 outputs and their states. The LSB of the first byte (values[0]) will contain the first 8 output states and will be ordered from LSB to MSB. + + Starting output to read (zero-indexed). + Quantity of outputs to read. + Byte array where the digital output values will be stored. The array must have at least 1 byte allocated for every 8 outputs. + Returns 0 if successful, otherwise returns a negative value. + + + + Reads the state of one or more digital inputs. The digital input values in the values array (after a successful read) are packed as one input per bit. The LSB of the first byte (values[0]) contains the first addressed input. The next inputs follow toward the high order end of this byte, and then from low order to high order in subsequent bytes. + + Starting input (zero-indexed). + Quantity of digital inputs to read. + Byte array where the digital input values will be stored. The array must have at least 1 byte allocated for each 8 inputs. + Returns 0 if successful, otherwise returns a negative value. + + + + Reads one or more analog inputs. This function will return, via parameters, either an array of bytes, an array of doubles, or both. If you pass either the byte array or double array as null, that type of data will not be returned. Both arrays may not be null. + + Starting input (zero-indexed). + Quantity of analog inputs to read. + Input values as floating point values (voltages). A double array must be supplied if a byte array is not. Must contain space allocated for 1 double per analog input. + Array of channel ranges that correspond directly to each requested input. + Register state values as 16-bit big-endian byte pairs. A byte array must be supplied if a double array is not. Must contain space allocated for 2 bytes per analog input. + Returns 0 if successful, otherwise returns a negative value. + + + + Writes the state of one or more digital outputs. The LSB of the first byte (values[0]) should contain the first 8 output states and should be ordered from LSB to MSB. + + Starting output (zero-indexed). + Quantity of outputs to write. + Byte array containing the desired output state(s). At least one byte must be allocated for every 8 outputs. + Returns 0 if successful, otherwise returns a negative value. + + + + Writes to the selected device's analog outputs. Use only AnalogValues or ByteValues, but not both. + + Starting output (zero-indexed). + Quantity of analog outputs to write. + Desired output values as floating point values (voltages). Leave null if ByteValues are used. + Array of analog output ranges. Can be null if providing byte values. + Desired output values as 16-bit byte values. Leave null if AnalogValues are used. + >=0 Number of bytes successfully written. Returns negative if an error occured. + + + + Continuously reads the discrete inputs until a change occurs. Only one notify request can be outstanding at a time. + + Modbus address to begin the read (zero-indexed). + Quantity of inputs to read. + On input change, this buffer will be populated with the input state. + Time to delay between issuing reads (ms). + Indicates whether to wait for a change (non-zero), or immediately return control to the caller (zero). + Returns 0 if successful, otherwise returns a negative value. + + + + Checks or cancels the notify input state status. + + Non zero value indicates the current notify operation should be canceled. + Returns 0 if no change was detected. Returns 1 if an input state has changed. Returns 2 if the last input read failed and will try again. Returns negative if failed. + + + diff --git a/Sources/SeaMaxWin/Dll/SeaMAX Dot Net.dll b/Sources/SeaMaxWin/Dll/SeaMAX Dot Net.dll new file mode 100644 index 0000000000000000000000000000000000000000..23863b08240227416a12a27684b2881796a26c46 GIT binary patch literal 26264 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 literal 0 HcmV?d00001 diff --git a/Sources/SeaMaxWin/Dll/SeaMAX.dll b/Sources/SeaMaxWin/Dll/SeaMAX.dll new file mode 100644 index 0000000000000000000000000000000000000000..e4c5ae6207460b573281af5bba35271444a91927 GIT binary patch literal 163976 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

R=C}FJxBe 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

cG zvv0lq7oO{KYBZhJ(V=7N@y$(|FbeMSRC)2dIzN)VF5(S~=`4xSz1e zTzz7idxuIttca1{Y^P#JI$msgQ~I=XVn5}k8AmdFZfuO-w0@uT=b_)%+}vxeTi^XQ zPR%>#JIlBpUOUbWZ@!?fI3?rG(Mi7-oM^b_;mm$M3pMGUQ=8az?;0HVaq5DdmPwOp z<~!e6d+uVE`1Yn;lgbrq<5nWWVzHsXAkT4hCCJ+L>$4`z4lS?OVjaajBe^E46W3}i12 znL8NGdd2Axw~AxQ5jcpDUNlx8L$O;W1gV8$g)$f^hhsNO1mdhTgrTv2hQ`hrVg{0W zV1G_vK=^SeO#p1h7XV%`0}N@6##0z2K|bRQ`(T0*CJJ_vN0323@W%?M zs3dPUgeP~PkupW1Y@x^_+)xW+n%%Ht#~1P4kY2bU$54cpphTn&!;7B+5kCMR>v=Ma zw593yLHcAzPHDOg z?~mvlfwqf=R3Y^bM!Gu?PB74*M{!vQrAP@)?QNtZX}Pj>D!qLUYo>-a@~)F( z#iPqmqI|snPTQyq6r>Q2SwTzsLvt)*zV5D3)=oN;LW%;SH zco*pw|FfSB1qws<(|74_+1ebWls3t|T zTa%@^qN%HO)@rq#wF%nQ+U?p*Z9BnT=r05alY}M0kHRTIqU)?1sEg7a(IF!}*3e;O z(;m!NW+}6QImFD8ZkN_#hqB|?nQRifp54jjv#(i4j^~DPGq|OkIX{$7;1~1X@sY9x zveUAMvNy6I`3(8@@?-Lg@+b02iaCniiX#dzDma^>PRc&Z#L6McDCHdGN#!urEY$|p z1y#Q4rK&CJ;;W8OPgJL?uc}|E>uTC)Tr@tK(V7LCGnywFTWt%iTsuX(T)RViM*Fi? zB-9f)!A006oD{AKuDWr$Il7ZN${+6wkWUqQG`)yUruWik>7VH$x<2E|EM!udJiY`-DFE;yJbJg z&dOwRcX^)tx!gvvNO3}ut;kmtC>|>c6|WRUiVxT_C{|i22PwxX7buq~cPq~*AEUi$ zsT!)fssdCWRok?O1v6bo-EBf^G%S(lo9PR5KV}M(!Yq?H%57A(Dm#^7j(K%T^va#*2q_5Xfcy1&yr`$bL5xhx$;{m zr%HEPM72hiMDh?>p6d8(4^ucUJj^eT+SMi(T22teljQ7Vq zVO}xQ&_Cv~iR=xwhrBdwOK|WY%>+%NhAK2{0jD-gJG1lH{aiNp3(C@hAFH%i-BxYU zJk~Z4G{SHpPPitBb=7sjy5CT95tWH-deMTE66j&)?4fYxnUhUHl`t7F~S&TJ3Xiw$FA*+QS|3Q9UUL^l0w^f8F#wkuI&MTfNS}5hp1m$Aoab=Ox8a>bs zeXyCTjfznzR65l+s%|Q8Rex~ta8;CQifX26o@%jbwQ7@Ux9YI!sOqBX8rtN(>K!%! zS5`Zyhp8jgaq7lGf^bA23c3RIvEwdrV`Rr==Vb3uj>>Wyd2`5yF7gQqTG>VEqa3D` zs(jTwH7hkTVISdPJ#;=1=3&xTQW5)^E8;)#m1T8gZ6IOXWgfC9**MuWS)y#CELD~v zJ1M&>dn9`<`zW)P*OEKPTgrL4THaCKP2NvFSUy}nRlZ2RLcU3UN`6N!R=6p;D54eP z(NlMTJG(1KDkmuSC=V$ssp?_0Xsv3GI=id-sfMDq<5f#kD^=?;e(Y53Q>CG{ry+l@ zs_v*BLIxK>N|~!GsjI1LsqNGa)K2OS>Tc>@>VfJ&^$7JS^%V6y^U$ zx{Ic_CRQ^?Q=oZ?k>-Z>q4tBeIwVw}FkYArIrTlpn4^$+m2~ZO-jL99bt$?ZbT$=&O*v0JOFIvIw?w-F& zqudqlA$ndFz82q_@4ye@L--N=Xnq1e8#4a}|A?NW zDf=jclo62aamu;MG)VTTDpuV`eObLx(?RGe_z3fbWx@vGmheD$F0=#pyXr!8k-F8o z0~lLR>dxs3byTE?A}?)v&_47qI))xk&!&^;Z|P0+PWm{VL;ps{ur9-3<(y5Sd+oZRoEPD0?b~?MAJ;7Gu-x8WP{K70Ub zlE$Clukk+=mn&B*H!8nV?n4XZD6c7RD<3IeDBof$e>GKYm9t7fZF;K?s``LKmk5W1 z*Mf?aEm35cgI8nh7zr~Pqt|cJMyvwzvm@)lda~Z^Bz6PjQx==e=CGI9T=o{52R*1A z$8icy!|AzA+-^v%OI$8@i_1ej+VTVW!O)Dt_((pQAIneVWBJo1W6U=BDdiRAJyj$1 z0BCJz)$STU%}|UHOCT-QYIbVwXdY`=twK9V8?T+Eoe%C`sjV#366}PX!eQZgDDXr#lX&DdG2 zmK(@*1J|GD2gV@hf>I>>?>gPBBQB7m7X^jy=r|GKk z)lAgP*Q|nWc}Q~)8d+1VlhzYD85tYWgd4(HwDvRI8$#1v#{4PTimpRD(jN2!=s6+K zBj?QhA2@joLy}UDH(K1qtM#y&}xhEhG77;I0%HUFm+%u9^AJ7%yvbmB497`4pK}?kayEe$Sm6ys=U7(KB%+R#fw%6*k zceQV{ErdM+l_MfYxTvYVtvMD&3aZaa4Xz2Gu;gDd2!^4<9e z@c(*#C-jt~{A!E|XJk)N-gM;&^wBNqed=TCm+BT6yBUpKBWOG|w>5pW)1l+%YoBTl zfU`df^>lh&G&llh;|+5U8>S000_8u=yl2`-yGe&iqoiY`6Y-K3-*G}YFEhE!E%3=> zrjYTFdP)aigdU7gVbVxxv~(;&#!9D2XG-T{+%BtgU6$rTF6Bw{r3KQ*(n5@IMN*=R zNZ4j#Eo7Z!w9HM`33T+7dCPod17!ZP zp|UVpq-+Z)TPS-aD}o+_0^`PwEEr=!!B}n@H_c?sW)Zv`EMhQ6raHN2j8 z<2&&lyeIDsP94Def6>3E@iY0kd?KI3FXvbB$(TcI;Zwh=XXf$wd;$NMFXUhGIM7Un zGlPDc2E8_izD(!Rd6>0)plz9EOe;pi=owGOoAG7*F*BQp@h*kg!lZ$xbC}CaK2u<5 zvm(YuY6~4vBh^cBvK{SbYPncw$V4|LT5*n)v{xS5$cnW#w34xX^sFyCfQ>e^5NVlR z>|Qnv(k`DZV2juftTl&=gE>dYyt$z80njra)UyGtG@#5-$hjocIs@7?(WP&pW<|WU zteLD8T5_mtCfY7jmIbYiw4XKfC5hZk?kV?`&y*)(tWA~gGR$3aF>fi5KbF6eTPa#8 zIEANT0CbzNiX_Ey=;67TXW1z^r9$be91CfGK$!~-&rZcbuk*&dWUOkr>VPU2^T`j; z-6U$g+Mnp@p7<^q=u1HkakMWTO($Xwkxf6Q3u$Xc0qPoQQjv#0;6RudeCvi$z#Fs~ z3_Us;Ts#eZI0@XF!loK%lnE}rj4>hKz`d_n3Cb9&OjIT-cPTTJ`N~4&E0ppBMjqysajx zWR@J?FceO~W+D+&owl~LGWwWVSWt9`WtFy;BC#l5ZYB~Z_r;*f zjCI5<738l6-nmENy(@V$Pu@fe3A~@ z9WUC5Ln{lJGmYNlI8^@L?M#39iX%$H-}(cvP+3&iG+3R^k~Gh!1Bx0}+j%u0x%Hu@L$cxHnJvtP|+^v#$V!k9|d5xmfrhbvFWhti; z9`0T#Ipei)`a|uJNh?1!b7yajuJfeE`jLY@g4@Lnb>D1;HW!sG9-71)<+2&oYpaE= zz0}I3@c8g5*^_HDwm+L6a?5Y4!!M@`qE2MQyIGj9C`0^ZMw%!oR_mwjS>WZLXXfLtncX?5_>E+NpO;sBYowPE|XGHVKVi zdgN4=BB9H8rzrbQq1}g13{J1{A@bbJL^|GlJa{ND+1yNIhFzr1ue~n{*tzCa;=>mE zuJ*f9p~SS;pJbx8bZf#y=CzxcxJyD#l}m8U8eb2^7prjmkbFQpO5*B57>AbAGKMc< z97YN&XJVWIe=<{!mKrl{`_D2Z>>fNy;wt4`X?1pn4`yYz40b>Z+C z3t#fyzWi?&WP<{`_3FuuJUU@WgIQU(+hh)_@ik(!evtm!JIOwFz6>cqVUaTlALS!U1;iM^&6f+eLkU6ZK+-Z8L% zrMH(0<1DSfO6Kv{t?zlfYgV(^yZP0c9lcY3_d2t6o8q0Vr`Cy+SBbCgw5wmefPJ|Z zpJv{CzHs55KK1pR9xXbeQ0|J6MXQ$g$d?~nG3)e_4h?qwcrtmOPu}}0gT)>A?xG9q z`g&R2wzWL@;$DJ>nWEd&u_r!w6$^-%YWW@Bt3rmG5>pax3|hYxv}fu z8z&w5A5K+TT~Rby$IfX#d*!3FN{w}HE|n|o3wCUl*6EU4?4xz(PnqqtJ@0+8?uOU_ z@5TuOM@^bpZ;g}d`qN(LCTZWaQ61=!L~R^VW$M6pgS=kZ?eVD*dF=Ps+m|F)uXiW2 zZmj>Q8g0W9#LpkS8r$-M#qpaF&MK2;rOt>c+}r*6-JfcthXfqnFxc_N zp?9a*@21hSd?(MnIsCS4O^x&mkH@|kvuSdKCVlbFY6pkD3QIbDxR>*HowToixH8bs z!EEjO_QM;dyxp*JQ~fNnds94m-LLNdSnoLb$7*+UC->f+aoBJCFs7aPin!WaI!ewl zQPq5$&yMBTCAC)6`ti=t_S=5Be{}ZTHpk{Po-yR`R9~Nnm~_py7BdE(wyC38JMA~` zpQ?msemdUe_K%fnE^9LJrqJ?2!?BOoGN+#Z(!~B|=AMqOE9?6uH%!bQ^!n+<=aaq* z6fJn&t?HeeCVjRnIlE)#=p9cFR(qM>?RxU>Lz8#ds`t$J=}@u6xJk$5{)-ZW@QzVp zSkac~-DV<+b|G$!#3~HuvScn7^Dc{)CSG}kq8l4LZ%r+2sksv zo~~!&Z}ZyL5FubRg)`&KGK8SG8vyTehbZyYf#h?!NMJlfXJ}b@IkNBAM9da}+c76cj9@KArEq zw0pCQTU&M?zhi%Z%gZ+B9-g{B==Pzu(}jJj_g%l|^ZCf${HuI>Rt{G zik5G6UFdjm4xlXV$IYz^^5}qeYunCxYte0D(Z>oU{_8a%GNQ^D2F+#o5mk(VRc`8< zai_}&l7FNO77Kx@wd!|M$Mb9at+zew zs_uSkVw%R?@le~mPp!?~`B-fjJiSiK*Uz_SF|!6XDQL58Q-?hZihk_9fA{{bdp<3g zT*>G0GuN9#0_y~v_pg?cd#5PxSfG{GyY{2br~7(OZ}Fh*0*AGaUawntlT6k_+_m8JMu;*a@M z{%zGh`_Eb|Yjt&kXnlIND&3Yq$-$+>N=7nqoAOS88fE5o)HuoWf*4~R2SD3+fKO@y!q(u$A=2( z$}e4&@6C2%Lliy2l#s|;96q&U@}WF~Vn_{n-6KuD{^( zTced-cOE=7zt-dvhdX@)MI zdq6O4{T#dLq9lpo)@Z{=MS}{t^gjCGL%__Bo|^)jtaEc0E~O6~zxzPEwnbczyA6l-{%|_1ewz&s zZ4;P5&*XnP0Wp z3kJ;#YnL|5nOpKNS#~(>*U=;eCxB983=1I*Y8&Q6<%C(KSXz%}f;?1WO3Ej*$xK3flRS(HVlj;8AoVQk$k?JGySH?fDg3f1A+aRo7GV7hEf}Xz}d+#m%ef znk6y~g~C)&Y=bFd=?a*G*q}$^^N*h^$PB|2@b>fp&wl8Xf4#Ba=341v&nDP?x_a3+ z)#1#xtyA0Io4S8dY5 zys^P|$<=FSOuKSut#O>bI^57h+T$$Q_I(iuIns zbsKT7TkftsUay~L(dtH@{!)hxp|2Ljufrn2W$Rn*j?@gFzgeYEcc$Ylt3b@YC>FE5 zs0Z7c_xVsi;mOidm%FkjE0B!-e@b(MnhLoqEvu#yYpI(0pE;)dGlleZ)2@RyUYmVL z`s-z%x6krVwwS!#e)*>@t0yJBkqx)G786HL5f7bmrfp2avkk1~-VIIKEZ?wdLTuiO zdr#%v{LZOupC(++dEJsvYhG2cd2Z0^dK;`Zez)uQv%>=8J+3sq;c)%={b}miZF)@a zpD5~aYV&BDDJ{(>9@#N@(oeVFS)@61S{3>*BSoWep@h3j9~{q58hN$1=p@ymi(a#D zU5l;On@7aXPi#Kne7er@QTwIuAIunYVqc%{$E&?*FNeE<+~@oT9p&r&+pXc<|O|tn{V@F@JZ@2O6 zWX^e(NfdvAD1L8PtEf2Nj5JEnP&$MTE-yj*{5SNe99*`e6Caq_moYzVNOo zhC-c!c{qc4I2@o**_afnZk}B`J4>AvW%Twx92d$C9Dk_TSD43><(ocDe&JFw1J2;< zO56Kv8C>J~+=ZEkvaKI%AD`T0%H58NF3w>Wri`pV@p0tV-Gx2!Ygl`|uQTXV^zzQl zrpL8#Txi>Imq*atL+iN9C)^9FO>Yrpp0joC;1Rb*F8amY!oN=6p2`otw!=SNPI)qJ zxRtfbsE6_HduCfuU6k`!M8T&o3_aADmjzb zXy9BA?zATNf&6O3M#*9BQH$$4sy#fu^6k34jTf>J2?f4~noo?b?)xdmAxL+QnfUDj zhox(ddySsff7SMd?^B;FJ~%L|vDeXfub`c^s(H?+>7e!QwRE=AD(#~BRx2&qom{-J z)51$kyto!dgX(4?5gm7m{?AmZ@joV$s7{0pT8T z`l?PV?k`fDOMl&M)tYCBAD;jgSB)9n^FxX}2}(%$#3zh!GT7A+Mo z9r;Fia>V%QXHv%dEZjfvt%psZMFZ957ky_vX#d8p!xOvvGncQiNEzVNE;(zs>yJ`J zk;DGyRUeoI4cHgkzHi;uJ)RfTd=mJ*)9_xV<5q?yc{(XFt`Ay!?dSa#@m)T*b(tvh+v#=F zu3+K&*Q1(l&Un$irE_pw=T~QTG`3iF#-X8a(vIAW8|^R3*2RmaKu}L8rMo2)FA9Ux zP{O4lf5|(cKX?;Wxp;POK_w5Q?Mh2y&QvY2R1$%EO8CQqsR0Fpp?Rr{QLsvm??*Q+ z^%XN%aG1MtWd9vAT$)cpj}2`+x7Bt>dB(;elV0vl9yxbL z%z;(Qv)T>nY<})ej?QM-iDS#(FH0$ENS*A-*S?=ETM&JEEOTJ1_2@vq`3rwqGiUQR z^>!`&e81}b2d%bw&X=3t3c5aLYlLi>K=-tr+-_O_ZolfymD45h>EGU8;5TOKxz#n^ V-IQvMe5_Y(mUqa=B=S=GzW|s=x?TVP literal 0 HcmV?d00001 diff --git a/Sources/SeaMaxWin/Dll/ftd2xx.dll b/Sources/SeaMaxWin/Dll/ftd2xx.dll new file mode 100644 index 0000000000000000000000000000000000000000..3b8c0abdbce334c9c6a776c3ab5f91d12a0fcedb GIT binary patch literal 203144 zcmeFaeSA|@wm+Ptr)^3@6Ci~E0V1Y~78NXNA)o=;vl_3GT~%s8VncSi7Kn3Q5$l)=J`iaO(f{jV3&IFA1|nGxa}UxnzeWR+uED%u-tOfop;{lx7>WIWo_V2%WZdBN|shx?zn69 zt(T7+Il`)-&VTQXCfBZK-%b4WoV@Z~C*GHSHuK#D{CV-a7ChH&`rEt9INVR)ozCMe z@7~6rS1a%{l;>6aS$W$n4TLk%0%xg8wOF00y6ooAl0@7QmF9w6b&g7PpGKwHBFAoi z6;A{Hwj+*06h<(U-taH+R5?L45bd%t0wv=g00}nvlwa5US)+Pgt5O*|HLBH=Y(c&x z61)o;Dls3=85ycw<3acDX;fx{JIlX@S2QYnY8vV($Q4M9O@=S`-@4w9w{hPE5Y>;` zN}ZkZ&!SSTx_s^GoBTJaR96vosO=SaZc0aNNA)h3!Bl%^BK-)`$KtvF47lj!YwuZm z3zB$Ssm)mke|!d<{qnW9-hLMVwG)sI8t}%mGvF2ws{i}%Ur&MVpGoMy!GGQFMAF~2 z+tc2QqHgKS=6(Kgk!Sf3F4p+93qsxMKwnH~-WSN+}Xx{v0DEqsoE;E3u8wRj`or) zwF=cUP^7Dpy}nJQBIwXwtuvnQL|I-0WlG6?;+FhYZFAqIsS3T>(+{asp{T{#u=0Bv z18V{Tq2do&)=nTIXtrlDjtC7oxb_qN-kR=(dm9e>0 zH&jdOQ_+7QjHwbNu^<}2PEfnL8CLCuLTB4XLZH%mm$=kQK^GIwTyrY z&>=Fk*PPlGY7x=DK@9=KG!LWgy`jBAb6+5nHycDTR7oqXX6kdZ2VG-uHjuEQ9<#Wr zYAWOTU7&n(G_WY1zlsXzzb{Z3+F&)R1B;{$;1hNY*fmn7cCu#>AoL)fpW0^z4ui|% zM&m4%RW%@tjLQEz>W{kG745=ImDJ8Ff-E_1)3ll3hg}Aa z4eiyTM!8PBPL^Nm6lOpOG$Wi9&^bFCS|V-y-Efwa6)e6u zFaq2Z&ZdQJx>gnF?GR`}R3U@ZwgR2WTLb!-CC5PMa~c#mPPT`0q2OjO%Ynh>%l)mfpua~` z1cD>BM z^F9M@10K0WPPs(^D!oJFVILuoXwiJIt)bG5Az_A$s;WsK3hX5AO>NBwr-!tr;2f>l zzn|)?lNM6z$4L`GH*J-Z9eR*6-O0lfqxKbTQZBVgSJ>)w)v!}xN&>_CGi!^YE7~BL z?-yFKrIUq48UNE1)i)8l%)K;_=ZWVNlS}>GKS7M|QV+YXnPY7R(7z)}zgu6};gT4W zrGVa+tfpw- zQ*bEN2TU6qMS0!qt)@ZxIchv^HZNKC++^mMknukmr(3d7_2yEH-lAx6Hc;tz0GBe- z;%|GT!|}Imhwq^jDx~nRC*#8^_6z8Ys8`*|!`_L}T00F7d3<=lM^mLNw8%_->T$A1 zIge?H$0UakYA1TLI>?o_x?ME>lOu-r2Z)MnMSZic*<_Y7B;mz|^$^=mHb*WHc&9pS z*K9b7?lN^CH`=L}#zce`FoU_y8&+RQwbw(QnhFnGA07c5)g%C46v89I*VK7mRP(wL zOE>l`hB$w^hh^EBGyzwjQ>TR5%kF!LEro- zYCs|YM9u+5WA{6V_&uM(FgRm0L7Qoq+D>npBI$lrADVq>U~+v3Dso_4DO!^Pg7z3F zqwRU#X6f|Cl_2u8NXZ?lh`&+09fX}O39mR&sktte_fpeMdY^{CsTbLkH?C@NsF!Jt}5m_6_5KgXkv9`mDI}?;I+mr^|MO` zNTOQ6OnEgPHj%$!B>Sl|Id8bxC;jobhaJH$(bbMl552ClHOa#S@=L$9gfs){Tz>&^ z9>8XyBaKcM%3EAn6|c4;7tIVKh+$*X6d)t&R$_NKs}QS@5Lz%~)m{h`kkv>8s$}!I zz!uQW{%myF^Jq9qFiKmk%fJ_qS}Th7v#T-08u!w0Pf^MmdwM{c!ST=V2Ez8@Q6>G* zI)Epn(Q8&Ra#0tZ%efm-q#zqpSpeb=dX==)SP2c9cSMu57=TWwhe|i(H*AFvi|nw@ zKs+?L2F!$L%Ljf_6}p5Xoee?KX@4Y(=~zBGb2_434I3zW3y;>KO(zgZ+7LDBCd4-G zr8dZoYV5(3p3={Sw&cMs+V zwsI6fmgdUiRFjpa%U zsitfSUWo^g5p%Z821QYJ8Fb3Vy+o%r$bTK4gZ)qVki|rg9nh=sXtJ8|fR#027o;+! z5)f$r-{88&y_CNVvh8CKMH@C+(Nq(H20R<^)S<^|v?6GXz}RT$GOG+u1*yxYk?ji$ zVP$c6Tj*fz`-tp42DC04CJa~BFoDfOYEPv$BConlLhrz-Su8>K(?z@EB5GA zFif(p=Mi;YC2GHmPtY}PsNP`RiBbj)NBZ5O(6}074^}? zM$^sb{>`=z{qr$y4YP~~PMdCJncz7EX#9wIw3UA}X1gQ^TV5!1es7TaSDKWi$9gPX%%6*Vp9|KqK zKsBN|{quqe)3fiF8mTJauM9Xfq%c)P@nnD%3_eYzPoM!<38zH<9%tQ71mkzo0JO7auv!}lGh_*hL_*LSW2l=1VXYh6Z(08Jb z+taX}^l#}DqaIdlGP0sk0e3?XJ>^q-m<8-g`obJ;=NOBkjd4n>Fa7XkJVV^oogLeFF(kCxrcW zFh0T7RrSi{z#m=Jj)ylv7bS2&+gv6}`X6?@ao$aDoD4B;HPGr*Zo zmjK!q$I$cBY*L|BTy>Jeh^oPyG|7lM97f_dH(LcHQaX)QE+kgp|A z7WGuu3=w&GezDqm0Wg~zbSS@)?Ib*Muh9gOf`BFw-5>@57$zq$T*xu3<`}4dIfmir zV+DwdRT9XV^cjYp(>VOp^M;?n;r{`Vdw%$5ariywhSxcX|1m}4|Aq#hV>{&-TzcRg z&1p>}lj*(KIuhhDz)6Vz1d!j14w(jWPv-rOhzo(%+^`Y|o$NY7XiQ_7q5Vz55BG@cpY`Tj>DI?osT%x z@a6I0g83EBG@lMd>0CaYbg;5v2Nl5Hgp&YrYZ9-O(Hb6wfQhKiLnJM<;ZczG%6LeY zpEBMJytNMi(fRS4k;7LG4?kplEB#%9ER}2uWl3i^)JL1-5z^#19UICy{1-5p&V<)- zfD|7ygpXLEhy_LUMWTaTmqe0(f8KDM^b3An0aV za$UlPf`@YUMpYnlcCFwqZg>h3lU2hSlKKJN48Pd(h>=$u!*zmGDul}n(h_ZWsZpxY zg*_&z)DSMia)+s57PJczyDOMu9iNvmjbgUzWF6N4U1v-K$L4#O!nKjRGrJjpo8xfz zj*=FbYT{i|Z}-QD>L}w%9*^}>N4{T3h!^~(V6^!kzg@4LC1 zY98v(ruL`f-|0OQKLeH__&+8>muYG4PsjfnVtnhnpTi^6uMK$EC)lz;y`#|gnk8rA zhmtxJKXfm`PqazJA6V7!2%=((*+c1Q?d54`Gtq6aS*Wv)=jMGDn+b%-oQ_cMvqqNc zup08=2CAnHi)c9>wy#mH^auW&D)z!X`~`hQ`qSW;1WVH@fOeMwNcWg%F<6K3X$Y5d znH+X<(dP`8o5C>;^QAnV=4R)(uUmD@u7S%I<4pG*mUHiW4#X1og4Y8%brDCVT(vAP?}7Ls)aC*y3$Ai{fnJ{xb%(Rr zU28f0>bzKXL_5M$+^<3`sF)``em^|4oF2#6f)gq9C{@=&Ad|1gi1p5#$il1@UWy?K znTbMmE1-H(Oge?`kkKb7^m!4gu285lnZzmdcN>xv3SE;-;uLyr1(FmBnUhJJLU-JN zBooU@#&QbnEJbXBLL=%{5Q%u*k|YY`yCV&`Z28?XRaSVV*Es;K1%P&N304vLu>L(1 zqQokM)|<3`?XFS8aXRvslZ5Byxw?{jzo9Vf$AsWyAA*Ld(jEHb8Tp~XkoE!`Q0{2H zRJ0cjw3bQoRMEweJ$wc-Xh3J;ORW#w7vzmceg4c*RGfh#IhQH(s{+1;&u3Ezd~mFh z!ZmdMQ_J(8pTmCv57`j-ggy)kVN}Y>k%sg#D79uMT6_U8nj6+5zl*&<`BNstvzNDl zm$&)M^3Go$3-Ti8a;Kg)S?W-FDEh$jygdDI<*i8=|0UMjC1nX^tChql`N_$lMGJoP zBriEV$vI9>-zw0=f>kEcx=2rCUOv)gg#ioGtI&7TT)tJLJw1UMc;L&JOKiuQ|3O-m zzIgyI@(|QF=U_U)?AH{eI52YKsZpw{?ExWtZEQ{BsnHbHc4Uz>kF9DvrBci90=+vM zPpOr6vN2=!##096oh+i*jK))T<(;H=47d#nJ`}2o8Q`2bWx1xM~tAE*&iVN6RRU(qD}} znFcp&c+?7@ydD0K*VfRmT|?p?TtpsNCE=ODgbqY)pd`R=O-2uEKmL$&!j)fw`OeEe zdWyqqhKC3N0K=Ki3@jD&rTOEO@-oxQGZI6R`bo2~!R71#(|}3oy+TX= zHtx>w!WL8VzkV#OzTcjo+!ZPLo73}iXNnPZpp9a%v>b4uz>gE;nNr;)T%MAL8r>2v zXhJ#(y_A2DW28i&>N=_1EImvfGRdxN^ukb99J9%e3-!qUMiXT*`wZZA*h2<5r;yvO zt&|?#3Ji&CeC{SnDTWc5Lu43{QREV+?qL^}zzs=pMfKH&qNkyB=pW1grnt3v>ui-= zW=b`!XQ?JM8caxVy(=@A)H01Aoyi6z9Mll&Lz_P1ym6AEe||X0B|98B&#WgW{IK<; z7NNRQ{DWeZArr)S5YJ!ZFNE+F_*;&@M3;gm$UlVcl=~Ev5L{AA!(fe5D1c1Z4@g?j zG`EN6nnk&05&g_Blcbc6N3bk*{HN$MZ0 zA0rT1&O{{VkauY$*=@fI6Rxg9u+sQ?ZiGJ@L1a}um+2QmIxAKO(Nu1V8hEFZmjrdC zA{NUg6w3+S+whaAZIM_Z-VwDC&z2_Kr|hcUQhLEwXf_+b&XC6Xn?0kU!DH+Uu= z6%ydDpDmK+;Lnn1&FUX*`=4G6_cGGQIN6i3HP(?yQPlrM(Px|prmV)${0Xj@x)ExyyY zI^!w==bh0GRY1UIAaWQP5YCjGvd_pUzrbyT6f<7NL4n7M(?~MYX@bZEhlE{xo2eDH z<%q}{%gaQe<3B}?X?1e`RXo3mzu0wQwKS3%fsUp|(4=Wm@nwc|k2DZycahG7e3KMz zAqm3$ftbr*<8%2tEHUvTK}f)BJJfUL(U+G`!*2v`r==qQH0;Ih_D6 z;ou}a;`yC?V?|&j=WTN1@24#sTY1IFWQP`(^>4I_Ma@g$NbHvbmcjN?WvhzzadX}+ zb%hSZ`KC6{tD`|K5RD`T-A9|0~1_DO=}WMp_8l%#ci5=Waj-j+R8a$EjfDo`IsiEFR+!$K{#9sd&s zu|bNX@@8k5$4&2ne^9yj&w?H=cOidNrt)Z?Mc({_T}~i1^^**lSaxi10(h?soG(Yx zema!7N`c2Pn8C|J^>|_a3;2Fzlw@{6UxbeYG~ks?)aEGFdjxiR(sn3x44Q7Thh8_3 zXVC^S=pPtG3tn)U6n!9jaK5^U>yVT$Tgg`oo~Q<`xFZ5g@g+JFo2U>YGevg{B_}3l zKHn}&Fh_~Cn!KYc>oJB_VO~3e?yU!v3hUt`yeLAu^!a{ybc2DomaX{D4l zF{^&(!Akfc|3(;)C-B8l(*|mD@if#MFT@>8kDM zOsCTsf9Dy}(7_a=oJ z6wc$Mf_hH1;ex#T*Wfy3-#Dqx{);`VCM}EHaAgXR^K1m5)MSmKn8*(65AmpUx;tb# z$t~cco}K*b#A6peZ+#H}O8FQPFYvC+;2nU3Xv8CcJUdV!tbKnI4@|*2JzB=|T`>xmpnRU->CyZ?+#pii}RWo7smq%)A~9&~g% z!}n;z_mfG!I9#hDnPBNyXvWzygH(#fuuH!n*Mk2dPTZB0?xa&ai)qXdauDi)J9QI=pZi-kjm8S>c7n;YD*J_uKir3)OcS@Ip@x z{~$sXG-kv~{9!NzHbL&-UMpL*buRYdXE<5chw(V4sKe$b@$ZCWLrGJmF`Und z{isfr?A;!|=9hzg^U&Ski(ipSzt6GSA=3}3ew+x{&*dq5CmEkIA2jw5FAvJ6Al}d- zVia<-(GwDCbWxvMCNVnSjLx)B$77%1bVWe*+rEMB>(F$6jbSy|ZL?f*E;o7F%F{Y+ z))}4V0Y2;@=9`1JTAxAzQfmQzkHFWj3I;}_x0)UU`fva$UiZTYQGz`%fyPYucDVdt zyO8d1HvwT1ja@8#4(iKUL`}_>0Su>EJ8mS?L6Ob>aXSJN;L%S1)kGl^1Z$F0onz4JVtdPXP)3 zS^U>Fe$BbA0P?{gX&_goqm!qF&?sR($(CwJ9CkA?fG#!)Z8ag;8HP(kAd1wm+i4a? z)yr(uq6g-YhJn(g_SixNHSLt9iFd{V5>wSq7kfg+SHrHL%;f z=P{Bc#4_*`Vj$nTl7tEI*Py-D*h7nngZxG_E7nMUYwbjU9JyV1x`_Zq$C&Y&ljRA*(?PzL@wvPU=dBv0U*1M1TQ9zv(dS3EwmpzZD7c z0WTZ_Lfq^t0$HKWLfk*E;VD#-eMkU|P=QyzPnn7%r8m^Tdeb{YA>>SZC8L>98VhTX#if#)c=ZTIB5P7XwF%^;5 ziS7##X%`(m#5I6e@ee*BTS|XFa`5Aysb%|+zSH8Jb4hz(zus+ z5EC4E`I>D+oP1A$IC;_m7nTa2wIs-s;G*vdAd!`kHIpP!0C7XP=m`Qya8Wg7x;av# z^HiR}MWlwXxph>q4qQ}*1DDcLQ@CP~i##5glFL9zw0OB#k%t!FD7r!HvK68O#9q2m zCT*=uTCYsnI+?VqWYXRwllEqrw71BlT`iOLR++T*GHL%!CT)XE+S@={6yy^f;K8Ne z5i7uhp4&w?c(Cja(J{4Kk0xLZR^RL)8Xl|}LPI+(>!*#x3S@GhB#Yh)VUEz@wVOv8I*8v11#24otplWBObOvCju z4ZkbX@IIM__scZgAk%Q8Ov6nw4L5TdJ|08`IT;^pq!3Z^p$8~L#C$x&Q!gO?H52;| zGBWfOL-&s$@UW1rZ{9=ny}Nn{eWTNd()V+~LDJ>lltN!RR+Xf$U6ynwR;AGQMF8*} z2*Z;Y14_jng(yEOn?Byen}IR^U^9h?Ss&U$A>!A^ALOZE*#~J6k5l|1oQgpzWWwV( z^aBDxEIcUjR7i%0XbR!fe>}odAs-&Zp-be2h@i^&jyeA%fn5RNkJoG)D z3UTo`&Ahxz9^AoGAv7L(l&3;&JpLF@1%E&II8UXHd4i`>$2`eX!RQZupQl3JKJ){g z3X%Kx4|%E;sXyYW5WElln5SMOjgb~mS9Vc=%cL&em83eb7b+7y$Y-im7bW@+e!;7K zMpg@9po|Ouq-38hmix?3iSn2TjHzOuyErbs)27>mjaAt5u|(%_ogrpWu!_BXW1{~& zhVWRa%!C8m$;oQzG_eAm=eb05qvy&l6&>idrG;Vz`ph$3bklrxndlf*FD<>iK3p++ zuxW1QN3HZbm*!#CZ2SlVHTd1k>qGkn=1U%TqQd5ph;HK1uMmh+ zdJ}pnsiinwutSFV0bpP>oTt(^Z9@GuEaWWP7V757nlOMmVQsed-h$Xz!>z5+2vv1`5Rd2UJon6 zGjflB{p>Fv;MN9s?!Kim&!K^;?q}&V;Q{tR7dLNn5w!ClF{eub)DhtQ0HhLfp*ET; zJ?uT0IaTa(83daA3Zy435~!8`?Ea&lVWUxU|B-zDsS4dn3+pPjA9Vt6f|*8eC(erH z&_&bsA@LY#p~;<4E3t1VORgML%Dbze3_NJSn*43@Mx)5#J80G zdy56-j;3>?I_f!IZZ6PKxfh~5H(S31BNsdjk}8!;_M9AO>>*#mpnm^6-eix1Bzt+J zt$duxZZF!YLC3GZ#r0LdJvfT{hEAme2_c4!p>~o!M`gCbo_-BaxWc%VJm?COy#)zZ zSiN+a>8ZQ6_KM`UZy=^`%}HIl@Wd^lN3c)_^eP_~re z1-pkj1i23b5Hui16HkmaVzI0Y>*_s*!RKr3Y(=fe5l8tVD=L08jyf= zA>`eTha23jLllKQIA!@(9IS5qHh0+(@B)oMvh!Wq6ai>yH{Pb?3HMn|iu>#s zxzCD-Lw{=}4JnqZ%sq4-A0?Z?Uq3`V(UN$Mv@PN}db)8UuZDdJ^@LWKu(MI$^b6{87@6qm)-ATsHe zU>y5D=YXSJaKPF9`5xwa6SaieT@)|1#qv9wvs5MF9pk(#q6nG>n&iLcOi?7CzuaaO2j)gV8u#5rC}(rb#2 z74>0pzzR>5&UQMGU+1M|W*}LKPLE^DW@zuKHa7nw%nYMzYGhWqBH@{%RRv@kSLfv( z_e8c%B^w&S(@5P(q&=^sB^-I!lHrum)(mmvZ3oF`xfK4X@o@I(kv>6yp_s9103Aj<80ugvtuDZZj@2pkK-Dy72# zW>LJ0x1;lG!y3L4IImphVB&wiW5GSRaRLi~F81jFir{-7z(r>{_(z%X4~I1)6#{#` zm9EOE4{x!6C`J1^vIgLms}FCRidU?j4=$LaN&@mYDU)RnDf>l-lF*d7KKz)HiSH^% zg?F9@yi%W^?!}qV-4&ztyWPgnN1MajtU!&3v7wJQ)B9u7@E+ba9lt4+Lwo9_`B{Ut zwYcBlCsGh7p3T}Gh?GPOWRi}D}P|5zvg)5yE{u7ShDW_^v zwudP7g%PP0GWN)iF477F9Pk+-upbRQv?sUk4EPa((mo~c{493!(5$=-iF7SnFl;&& z)&z0Bj#-t|miYqJ#axjh?|*zTaHGTg_2m zg*3Dqf8}8MlDXF zfLX{{%kKjiroSR3292$eM!`K92U%NDO5;%k!=#SW*j@Fw0VD%y5{Ep<3irrFAzq@x z9q~i;8BrMBFzN$*ORp9KCQ7rf!Pc*^6?UomC95h`PNrZkQU zek)mUpIop+O>3#1BUIpu5IdHPdcA}}CN2LBem7UZhT{Lp|Cmu0)!o?4l3A>`MixWI9?5B)hw~Zn8h~RRgLO+&l%_ARFJLOL&8uEh>LT z=uLHS^94Mh32w$xH)4d~<_md18-!Df!=r)0%>{B8+EtKzTZBiT@WpaiOX2Y-I24Z-7!Md?#Rt-cj%sKcZ|FYt897oQW@YKbQOZs*6tWR zHd3yxRs3l*?h9MLiE5%)3=qa*F;D71vJ_9aDqCABjFhbD6dn1yXwgrsAOy*DIqx|A z&Ml-qkgsrO6bIrRXna+~Jpp%NpllO+9!tgg-41LYnIU*w5F0<>5$>@KgfmidrQk&5 z7DTo;DN4K41mx}bjdSHXQj(J>mb)CAXg@Qonyg?AHYW9<=om{|j@ zjQt+IHXmJ5A%NZR`29%;Df#joR7^!%r?m;z=L0&_Q!;3e*opNQ%OcD`C*uO9x?Q=H z4^qkwTjZW=X|68;hAOz0>_CoI7kyA~YYU8vEX<>A3NqjgNx+xs;*@$@YhXN%jp|cy zU7Q4w-U6v~Obv8Uh;fYwz2~umWL3HiwmHkMe1FzN-jZMoSl9qMr#ARdKcGzD6l^W=j{PXLfxSWmy10 zI-#L^{}zjmS)#iL%h-k$b!c8OOk7;6Qad-n75n$QAdF5$?!_buo`hHcPcGjTk2gdS z;y+-@{+;M(q&hjL{v2;FQ*!-mC>epgS7->;haab574yq*cI0{>9d5!aSOZSLbv#IN z_!~sj;a(q}CsEjKTV)LLVGl}*0sGWY^Uy-i2H2bx*jw8!S4Ce zp4N{IxqA+FAOFReef7tGQ70Ync4y-pp<*WJcQ$hQLWSj0VgAhS!+r5MAC{PThf8Nj zXMe{}C~8leoR#^j9LMr7wsCKaey0P~+mb9{94}#%Jek?i46dAc+jdct)LUqtR&Sx% zSIu>NdHN%=D{wgPsK!!f{7_OYt&&|FCh5K36At-GqI)&c7i2BhxY$9!IrW5ot;bV4zYSX*SwJ4jkA21CQWo$4SFLNW62+W;Cjr!CL!=Kl3i9Vkq5|9WT- z6b7+_>vggoVBmVd`jPU4ZqT-r8-k|<|J2|qZ6KRph8i0iJf%aJd^WKW!Bd7n=I_b1 z5L}-}_4uO@T(9Q=Manf(Q9o2Jja$s>m7GcO_Xy!9FLu=odo& zWtPtpvwAUP53pl6Cz-0x)DBf>{yBZ-8QefHsL!kc^0VkO_ay<(s?T_mAc{US6X;U) z88yW2dFV4f4t5TGhRZ+qIrN!+5|HlU^_kab53;P!j6!gTK659cQuP_=GNjVT`V3&9 z(crzfD0-$wBkMUcMDHBYYZJY5MejV(d#&ibPW0ME?|jj_K=dvYy;q6et3~fMqIag~ zEfT#~ir!hGw?y=oie9(qb%@?F(OWKhuNS>Hh~7n_cd_VQB6=%C?^4n06umCdTPb?0 zL~pg|t>Fq(7guR+ZRzalhO)wy9I>Jvku9B~``@7FAXcnsApJA9BE+MO%9ze7omJH(3HlUh@hk-`Nn$n6mw%Mfj7IUM|Z#;*;((FMQG2xN*C zEBMCfOwqj}mQQKw;MZ#X4(u=e5lKPOyQ1ZAG^Rnk=v_|13?96ZKxYKMo_|@;& z6EQx@+vi?Qswf-@dJxa5ULjW8jJdU3blgI#AW#wKT$vbX$(dRX45Kez@~a{GV&^YY z^~L+}c0T%IWjfsX>WdSHX8V6hU!43e)ED2y@yT=Oi_c*@`L2=R!?Wm%yO7TQ3qNPk z7fnE))E6;lZTUZ_FHT1_hvk&VSvWjUn(>Yy^v}Z6{bsbC0QzCeG95%{!)S7m(gA*K11ld%*Cgv- za^{Ipjq$Gch}ejZ2m>Opov(aUiXMZc$%vl9-o1iGx31{}9NrCXz>?65!f({=+3?6@ z;x8*BvN%U0IRA8f+nk-X^;9kQ3LF3&Dy!4T7Z1X&n>^ZH^+f2#%41 z(1G+oY{1_rn1FZERmDc>b!bLLa?zOVO&q(bVPl4@0MTYN17Gh=ao2z? z$)DrnPzn9VkOF`_Jp0GVF{T@(5bf~N9@A>LV$WSa_ z*+MCd0F7`~3 zU!nTIIxF^A zc?r^sj=Q*xgtgc+(l6v-^`@oFFjw$TnbR7`ewA0oI2Ts!tGpsPb79oJN=9w5CyzVW zi#>Y3CilITvN6as6`8cKn~^Ox7P%;le6bP8M)ou^7JEj)gyin_V$WzEgh|S!aAo99 zp@!XvZkK)IptYqwTtk~BrgM|>^|PClIfEvpmrP0vnUvV?lkkt@7~P;fX(8d+28e&& zKi*OX$%~o9lOO$97||uV%`Ihcw_}I)(s9v`gb|(CM&D9q;-_Ie;}w|6EoCra=}^K% z1!hW1nOStu`GiRvCgFo?j?&2)?s=EpfsUy)5eH5$9cbUO4OA~@g?}fxU4btk%oM8V zhUy7C!ZDUS^4tkeUinN!LT+=vdsp}|dG-Em4)}A)?YXo`hh%jK0X*j7JmFA-_3ZNb z+x+jxFG>u4EN)DN4_@(DvfusftfuQ9l6jJ%d#Ee^he;4ca<2orRMXXQlteDM;)nX! z;cFtH{W}hj5Zc2y;b(Dxa~Q1)IY2^ar(gi~Y@(%Xw9@&^Awv6QL?wha8LaTbD+VhZ zx)oO0Z2eantYiZJuZ>pGd#mWJ7rp-`dK*OVZKBsFdcPxjZx_8D(Yp+mA}mDFd!y*} zir$s5>_qQPFwkI-iQd(s_h!+1i}+)RB9-{#M*jN%{|(Wv_fFA!m+0LfdN+#RO`>OXj=TVN3J3h2 z3^+wWN=IKH9W5MihYUzZ4Hieg5>_BXo%qn=gSr30j>GqnDmko~kIV&DrFBVL|a3FKI0 zbYdmOdWK~^y6S(m3=@1mX;vqzkhK*r6_z$!BV5(udA=Q<%|@nB zbcU>%(f)$x-b=B!r>5H57w{4%CYtL%bEW2GBA=RXKT~hxD>Z!68K%g=#hS?c#^ffn zbF9~_0;W)WRmx(`3x7!(-xp)C=0YsSEJl=Ke7CQn^YLe{*UUz9pqhNE{msieP35I6 z*8ChLQ1+zpeI*uaF2}5J5L;V#(Ve08RamSc$#Y)oHM`y=eRpqC-=+1vGwkoS;ek?2 zE8f4TnQX70C;a)@V_TsFqJ@7$9fr5ZKAW5v)5%Hw4126S38T#FPXS%3Jx2Gve7imN zK8H$7?J3q2*>Gf!E$0AjP6)Ua>i2k6w z(tiUW^n62>=vahe^sR~qdocmEe#V#U-AiOBY%~xZ6*3ep)r%ENWvFbLdfiS;Lncfu z4i}0tDf3E2Ws7G#%_;6GB#)OT6h}26Cg4#pVlR(2JfbK{7pZgWHF2Xl)-UNRqqxExcke8O0xik8W`Nsp zcYFzAzAMK}*6+l2G5t;eqk0BfM(+xb!uHS*-{KZ=mXeN zRdn?U9aplj%t_RA+MkV2ZX6J6ReYcO71$C6N9Y&~dJB$uepJ@eU+hIqH6KviEivo%F2Kj3|p4ekLjUmSvQj7$IXFgBBR4_Iuj2B zcac#EJ~yD^WbBz}d#7@~P-~y_CY)t(pcU>(?1zFm26tM*-kb9$9L+q(eke*ueVAp>NAH#6NPL@E9NHL}h)S9Jl1eqeB~{b=>Z1ox<2OK;a-Ql>gr)ejLT5CH}o8^2+cfes7+<#-DwzC4P9u`Od|( zCH@qD%>P&G`vYLxG&gsQM+|Xuzk|s0c5|O=eSaj5?{arZH3ArkBi}mHU6Qt8F?p-=t)!BxVY8;Sjrk3mAg zr9l=vneWlhvc+wUh=Q&J2Zi|90|=8fPrelHnn>=sypw2_K^bX-CMjC(yTpnO^6r6= z%EC8KKz{c|u>yC5YzB&S2L_bEwTW#4Ylq(^ur}$p@UEetyiMTl)NKNR#5RGzaN7g| zluO<`uExe)3U}=ZJ3=pe+?EME7?^$9>8+fia^K<29kO4dbuK**3&q@mwU~ zuOP?kjd)A(SDbY}>6Phl=j+$_dTSc`39pb}W6)pmFWXQ0uiPK7b6?Vtk?M~~>?alX zpL>766G&%|;O8v+1Nu8t{1yL)_Xp@u%^~{(e)eY4MKSDt(kD@U%+%lNp9rF(8;9Lb znvFsUL()Z&*iU+SqUiJ9AK+xmEHnlZ=gpk#uC#ZW@wE8-L-Ko=2GN*Bx2yEwrWL2! zt6Zgmn&7-vSe-arl^9O@rPlNnz);VO!TtZ!Y3U8q@q6s6Dg25(<&$hUc)?l`BX#O` zE;K%=e|C@1dPKn4rTNAXyG8oy$y@{txnJp@Jt;id`iVfVI{uo8*GziVroRgOH4CX( zNLA;4g#&BIoq4eTN!)X@*lNxF%Efcyd)I#J44iSE#oh)Xob0wFrE{@lV$*MhAbTB-bY z+~`-{fVcGBcYc7YPx@eL&b7bampbT$S+Xw{n2Z5V#MUZEaCRXkvb zEa_#{a4MjhMIT_-#WeQFLYyC>e;ul^kT*<)_t0KraqR$*l=c&nqG-(TmI5bcd$oZ% z_*$5g{ij`}TE09sU;om1((|a8anh3h&`oPj$N1Y|q23kyvMW(@7|XSZ zCK=tlNjY<6!pdK_Nn7*gvgQsy8l^oL!~FaMn|aG+YYLQHPo*T zWP^gG1Fh&+Q;%&+4`i$0iDahQ5`o+wkeMG0}n?K3mABp7f zB!KF7ei_Ta2cz+x%d2y6VPA;`eRyNgMs?X2yCbbGkwtM=vNmOB)Mg@T6Ie2QO>mL| z)mV78dhDZmyispE5SU(%YftB*2fN=zPqH}JOYXZf`z&UqFVAYqd5TG)a!j8Fh;Qt! z@D633&eQ44W5ReaMwT#EG61vXgW0u)z?kCN6T~6CGS_#1Lj73UGkcjfa1l67;X>v7 zIbiiodkJDmFYjrZ`exT^1DCVwQ2*31_55|pm>R?`^ItQvc%+Rw+t{sf!@Qn!qT zA1xD!u^Ta7f$LCx?i(_$dg)7`skf~$tkvOn^u1a28EcHOs}UZ%b_RY;_g;#a33Oe1 zP5&?)Cig7ikTA)iA~K_uDK#AMms1T<_(06tG7fEk?D)rEEdX5>UNTT`E9Vs`=M^aD z6)5KwDCZR@mn$%EjtUIaON8e@;DUPFaeod<#odQsvGk6{%~Si@WVWJ&UZqE4pK{Sj z;wRDfQO-n$+BTn|VbvdSg?;S}^cjz$zS#jSKCNYI4_MfI$b6Z5xe#K%n#X$|SF?2Q z1?ll!Ky>&w9NK@VuS{nT)Opy)*F&O)`s03#r*9zsyIQ}>q`TIpw0@M8p?mZxRfZv! z`LgN@jiGP8b#vhR1UjBTjj$3=WrmJSX+4saAw*=rT^!JE4eFckfS@DUS&fk!EqQEbo{rK15G&5$iJ*EfIXZjE5gh(5 zXTLyo+t3c&Lq+J?c8N#v9h0Y{qcRL`pV5oCFPr;-V_CNLjoDKBGnC@PhgbG3qSBvv zUY&tUlLM1|f;)T_rLh;&5;A=gmU-KX4!ulxW0_AAd{~EjuPvcHLgOjzry9eC&wSr_ z0r3PNJUG?XpD78=)O_iy(5F*cKh2VaY@(9Z*6tTjmL@zC*%vgP>PLnR2k2ghHdcvc z+~7Q2AHK)p&t#^>xC`kjDvKStA1L^F z74-B99XTYI$3}$OEx6q3H7EpLWun4l8|pW192<(_8{``SES2gS%Vl_gl^4c~zZ!{(E5^d;|5m+~lQSyYSl4H&S zUfZofQ>D1ur*0s!!u@QV5B79f|mx==@!+w(;vY z7X69sb zxPZ2z`t6vQ`!W5VYCWROXpM~p){M43JEq+n{Yycbbz>T-O+hbD7pcmPmMtRkp*M$C z{5hNt{1;VR1KuW`0u^tBgn~|Sj*46UmlZd1g7>gq94N&M)p&{%e0@i%YZXyZ4kz}%Ci1N`d{MMY7&f=AZ9_OYL%AsNa0R&`zr)g-)x*8co*`$uS7dZ z9rzmS89ZG{@Vz_oF?!hRB~#>u)=Vc&WURnG`v zAFE@Z;FP`3vLd4mpDbZteob8rxy#-{G~(D7;GgAEKduDFr!!FcP9^@jWn5IV|CHZ7 z>}ES5H6^5R4q79X9%UDyI&G{GP$UFU!~icsW}-+bJ~$$)&Er;6_JrD;k}z>d0zQ|` z$&fK5K8Y!NNJ1jR7q_IAfQ#=)kkn{H`_%Y2)yM`6V$2#R-=BEs!h_*_daZ5aPJmFS zx@h0*Oc?;5;ex9G3wt_Pssg@lbz4!i1&ggPl*cxHMOyCKywJQgknoVz-6g0B%+}CX z!rGZ9-@~P(eqG@~F+0?u4t1+x>~`{@NDo6stMo?b;|$#U=Fd9*3m_gL!+l0@D4?zl zzk*CQd~P_P^%TYN4Q+fP#mxLyqZs<9*b*OI#rrq6Ew-S~p$qx1akH6F0o=Ig@wR$A z*?3qHPPYA40>c!yF%y_@alXTB>+p|ovPZEbwmiJa9NvUGBJgE7XcD@HUSh5>WTh-Q z8pk{v&=#R|(hxcVlh~IiQZAiWgn8vE5R2(h2fJTK$iNR{fuYUK%1(jN!W#$N>{4Q9 zO!^7N$pquX-UfO%dz63@;zoxXJ@83_jXJ+|_C|w$iWD%S@l)8nC@Hn^M`!WIL%rs< z*%GboE&uzdN712^0p09U!@YlmN}zvXqv51OMcdvg?vfg8Eu;apB+8 z8wX-bZMFStm*T$PTsQl5IiEHH8$%Ex(%1eR?BZ@a8R#$kin6=egLb4l+4t_C%Iioa zxJi1;)`4w5o$4h6h40~_DyOvZMC=l&bU?owHw>~a@YZs!ja?GQ6yY!}LgkyIo2mM! zEWVhkZ=Mg@;!Ek>UqV3&Rp=~IM!A@aoPf}Nc8Ucvdgf=>lO4@4}(!*edSUctUHRU1x znn5-AFGw3~Y_G*vL!^yb+t*Zh8#w%XC`>M#n=CATrBZn8yTpn*+i?!*f2Sx~JXsFD z$v(S_M3fc?Mlu&ifaOP3>@a#2IjM#cmp5f^IMzZ|B2~1?|sJm}$9oM_V#cY<`6saR- zZ3v=%GUeE3oNT&qHfe^K0kYXP07`VBf7^a&I3CCVowURNyi%)lFr(e}%{r~EU;n_f z=zMvX=GrL+$Sf4du>E9=NWfq{Go9f+RLDec-zkN-4o zeRRh!Rfg?S$19W?>K4}OLPs((I`L7^=bl#?;?~Hsl#b^#dhSBpQT%D~a^b<2EHS&q zp%%;3Ee;Lvie;Kmdq${(W8a^|4j*C?mP4sS?V3=BhU)MiNvQ2IOsE~#cOX?wsbVq} zI3$$09)D}_*MPrO_*;fQC;rOuCzWhF8ZLS0D4q;YhG!3+J$UxwiF*sSoxt-1p8a_C z<2iumKt!Mos;Z3MjDCe2Qk)w7JpOj!Z$IHK1s(UbZKoEehUL~PG2|;vr3lE8fQ|TP z4n#K09#A^LI@k##Paps30Lq>50!oRWd=Hd9@+*~r+N<=*DY;JysZVAh2@nLly#(O~ z{B6fyizDO0gJM}m=yOiJFF5snlY*M+roasL)#sYf7rYn56v*u3xbdB}(-J_h#? zrQ^b;hj1`&8@{6V5H@&h6Yvz$`$ndb9r()ew+w%`6YfOcI5I$il)m8aXl+VAplyJW z61w%M3R9Bps#TcT@15!s*o`n%mxpd0z-;>K4G5;lw}gBsM8-CN z&MQT_GL6l9;wzYO0TVmY2q`d`X@fYn5(lrbTOduAFMryJ0?3ax9<_!+sJ4^3a~0*n zxA?dLMU#K1KO=xyWjW2AfSQ0y(A17lJBD~KJ{Xq@pRn(Eu5XU$AAA~xRe7X≥V- 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

}Oh-L(bB}dgq9LyBTDUv_! zA8CcO>>mjg4^2M7Q?`^8zg$LF&#!sao|k;;Ul|Lc^h|Rs=!98=Mn=f$^m|PG4hRs2lUnqdMhMO=2@8rNKFd zH;}6(;{Uv4K*8Wlc~QVRxh;s)QF28lajT4zJC6cgA1W7}(JkZ9svv6_R@S2Lt;bHF zc)Yk!!S70F2HM#PYV)-WdEwDjoEeC11OlEZx*^3AaCFiU|5i9pt(EaCQccXb1L*yd z_9pSF@K9ApW?5H@Cm548l4{lI-?|7g#?-1RSkyZ8u1e;@r&WBIbzK}4;xvgmzjylJ zvfBVF`}4%wBRqJ_Z8CQ5av0`fiG)J?!Xwll+3nY1w%zZ=v(>zl4I%q3s`+EY@tUR5 zr?qiG*D*xG^dXPSD%Ei;E$r^{8ubC(9Og1}WyKxo6k(sawn0x`*U+qEu0B{M%*E{k zzA125=yS`kGo?H%=lYML>+;0;rY^43$L>Db!eNry$kh~ad8PV}6x}noRxNXj*7p8+ z&i!7F#Cj5CX9{sZ09@`B9rQrS$;Kc+oXvSEYpx4B33_z0Rl^3gNUPg#RK)5#KYfZFF+0ztoJhy-awO}d#}~m-;R#R4qbcHi#WA|Y z?8fMHax0oqb50fr*P>;&bA#wU zCWtC1fGS8Ff#j)6w^LV9s~~kgYRPVSkRAmkRqm}6%7XZ*9ESV0G=f`&?>;W_3DIn; zdw>2VN)u~~47y2LX_9}QenyRExZ}h7%QPmg3Bk5CJt7c@$Zzfn`5nJpey4`ycjjIE zF58s5SwFIy^ke*;`jLKzeq6dpKd!u$$72tsH}kN|Jlodlr*~TePe}5%P4XS>?1iAF z?`QmoallrI+_sjlj`S7$W{O2XdPK)2j2kR%DzLQz@sg!&1zZb(Z7n2%!!rLBj0=yF z2jW7@nGLR~0G2Z(@UW1lsHKu7B(Tr16~MprZ2YEX$nq4K%#_S%u>YPB5EgMMJcw7!949s#@WG9M#IXT1lkHwy3>tyYCMt*l` zW02@hdDr$FR#ePD5>^~hZ5R?2s}CzGmLMwopXB(AF;!LlQ5Z3?9W6>&M7;36jJ%wN zUE4{BoYao~iWie(=j=AR_7CMuH-2jkB=PYN8R)+iZ}r0QCw$+F+k3mawGTUYeBbX7 z=_~HDU($~6e<nAzz^ zZHnrYllr@xS~n9E9@5(5<$T9OWDBD;w^ls*1?a-*(p;78u z+3XOb8Ec0ivuhRED92R!ksD2w7MX_8L*&wmibyVB{%9@HW=zuix^C)!_jb+de^2Qu z;=NI)X`m~*CiO?9cIENjaOSJVWV6HT_OrddH`wRe`S@d}*+#k0y{EQF1-t%2h^@Q- zzLuf>-7m%F_zt}BVJl~{l5pEX#GgRUQIfbu>Vpoa2Y4dsT& z!iF=U$ee~V%OiOWXIA^8e^0pE9$`1SZk1%g<;LjJL?H9i?X9k2qTKoix~}Yh&+nSZ z`^K~x(~R*A-%Xifj44fK1wo0deQe}s6zK%l=mbv*lAZN*j2;PHe~<)sq4t#Lz5b?G z<@s#{Eb=t`O}pf|#^1C{LvpFBEr2&M^uI)xjgRZcac_7th+O|u?Qi;x7apR|7`F8gTUji`2({Q151yrLY;*WEd+zpcdO?TZ?KJwgW7 zaRyGFjl1M`8!_u<*?L?ywl5}Ojk@tKOb|`9A-6)o>8HfNuy)8uwU5Myx_~8n(MjnO zPTDm~)ZAVxx`~&>q;xb*W*#}Z2zT&RIvPw&=cvYD{*h1N>t7WMDvZH*31NVpYWxc= zLn-7=8Y3?OvD%sXq$GdbO7E!@J3nK9{xOSu%F$W&3i{p3~=$NIKzOQf|}Lq@mNu;E&!UkUP95Tk|8Fsuix_WGl>)f6v_BIM<)g?R^v$ zXl}0rraj6w?e&2~7Y5&2KW42r*naiH0+LHZAQjKUFjGecl3C1G*Q6|VTMFUu7uB|!jIlki3wEe90q7> zp?SL4+M)+YkNxhtj5Li+eB#A-#mYV{XfIDx3_K*vVt43?`VGd{5c^<5abcv!(R0_< zzwIf7CGqQSSVnk8NeSAA69t+s9qx%=p$XQ&1a=8l!bUM&(thTqbqg|gwNO_ueg|D> z>&g0bN#q&~A{bzqZdY9y&qG0<_$Y`Edpb2T!i~vyyN|RUTd&#$Tcqg)TMkK&X=qu- z7)LXAm;w`6%`SSH?1%SdIhqBrcj*O4N5*0@GSm#>-ON4|5$>DU7+G5#E_8vY6YS`L zVD8#ada5mjMwUfe*8QEW5tmptp387zg7iwxma+?tMIYg#ys}&^e3o7jDr;O(tOFzY z&JKxm;meIK&q)!xBsV@ncHk0Ob8imAPWJ%7q&aFc$?6h}+uCGZBU0D=M2d=JU4>p? zQsV587ZvzFz<)}I)!BNT$ErcE%1yYnuwxIA$kro&Fn&H;#Q;xf2?)$wDB>E^y5j+SwUlw80d{`KX~ zhtD~$=knCG@=t~NhNBi?eXvH|jmXQr;o(>B0fIeBVlP?aEX2UG6DKBLL&`Gf0;lBh ztWWq&Vf)Zr1^=7K*26?jI4=^- zRX^0!FOSne|11<|P>G3r8s5LV_ZVp0Tf4Xp@8g!ZFJWG^d6|DbA?xP` zFQREWtzeUubb%rk33$aEdjxh@wriDJWeX<`C^JtsGyy2Z7$(jv$DJ&hlY%FJ zRQ2)OXbw_1dG%*r#4;-~u138p?`WA9p^<=E40VN0wzhMvQPYUkMoNiWzg%0Ty7oDR zUhJGA+)VbzLqZ;yFM8lY(*|q|A$0ozDI51+2LWI-9KQ(@#V)jP#rp{Rw!x?%!Y?oA3Ns>HCbMj22I3lGcXS#?i;&lsZ~q!Ee6ixv?C ze2wmBEy`9A9d$AIi2n&UhO9-Su^xOH74!EAvlsZx&OU268c2YdogbU~F*?j51=^dR zX92{RtU7-Pio~ullBM3%?_$%)^4Ln1o*RN^xj%K?_*&#?S*neV5X%sQIzHdrpHHdM)ek@!#JKH3F>V`ew<0014|A2C zmJvLxB?;+?%kjMV5lkejtE<$pcRZd;_CkPUuwF{38|V9)eeuz9MnF^wQrxZm#TD20 zMl!XwmGXoNXnVAQ3nzCT*)m2J4*k|SA!UN+2SARZ@ z84a3b+@5?~_nf~;d&kH)IcJEs!QZqQCQ41}V1AV>=VGS{oHdN22L6XyD>=$NWr!8a z=aY%7<;ni0J4sJE9UAe82cSwqoZLG^7P>`aO9Q|?UvvgJG28KPxE}InMd$FjF)Hn2 zvmCvLQL}NFty^8x(r|hx_f1(*Da_7D>oC`FMkIG*<&@@yCz|JfCI*vor`U9NDn}Wm!u<3kcBrL}u1NgCa0<=^ zBoW?c2c?l~=tU|PPKU3l3a7+klBSBShTtWU+dY*a$3Xo}caQ;Zj=Hs#sKriH+EM9B z+XMQX+_jn(`kTH&GFumI$7CR-wHEIX1X)oTT>eeD#GAXM{cHeUWv2GSqz;3CwwImA zJ_qn2_KoH)0hQw4^co*dRNy-rZkGw987UF(j8tQy|GA=~1Ix@lP~BQuYU;|QT05kD zZZ{_q-s0#m)hXm}Sx_U%9}P)48fa>wo{_I`D5}!Z@#;U$NgUMmke0c%;rLClF3XBa3b)h%@ANHGd}k)x@>nA>W*N^C=l?o&r5KV$ljdg7X9S7uyd@tfRYXij-aKG;?T2-&+n4_5M$VqS%%oYP zP2H^2aQ5xXth|yEQ@1%a@mOXBN=h2_nCX-D?f9R!@9&shw#L9f`)<==QjbCHnF)D^5Gk66u~9Zd+(X$_`1Hc2GBklXudFwDuG|U)*0>kk;tfNskB=wYeM4sHZgIJ1mE{J{RC|Hccmt*9N@gKrL8i>P@XcKk<}sF=yL1}d$E7bR)-#kF!!|&=T}D9tfLE(9J}WVM zf5c~9{OZKK(Dc3pLs&fm8>WxdYOhJET<7Q9w?{4D)yx-eDxPKQiWKNUwA9sSEm4pB zKz2+pWrf0&<+8!)XUaypdDSV5s0Wy`Er30bDeEEuOxbJw>0G942H*cfrtCPxaWGRh zx_`f;uEGjLa~Q|sqt){MB2+{d`ei)Y!>=cJv}p%{n&iC$TX#BWSM|*u!msF?JGj52 zJD!5;;rz&%jTtk(5hc~YZ1^9yx(|qei-5R`+tY9K{lx3v|i3*tWdsFb^ z7avAQCKH11)S?5k%Qt4!UW@MaeS%_D>-Ts{U@bVXcNO1gwzQ=9pTVTRX(PWV9Q;kf za+zvaq^2S=*Hn3tubFCSMEtM&qv8Zj?$n6FB2hvX2PwpvgQx3Felizkb#YLSJ7BX) z{L$y!6eV5H^U_h)t&>SfL_>{4Obizzq{S;2C2^~l0 zqZ-}^8RDYP9|aI671NSQ8m^mZtZ;iZoF3{XF-C(?J&s^=v&{B%DaV7I%xs)I^yv7X z4378d_*74PVt7c%`xD8(x<7uj*{NV^N29KB-e9QQs5NZHfqUbB@ zc6az(T6hrs;MPA$(F7jE6##t2sZGyoht&~Z+g3UnD zd)oXD>c8LiFE4Vt=q=fx7!^MkoEx)a<)7mva`nhqInFBo^&KFH z*!j_9E@uk%dmS4Hc1@pc?{;lG%?+t)!uKV(JpMzmSUDCCVPzeju8QP9u$`?hi1rTG zMQgL`8?@n=%}JenB>N9BA1O&k8>7U$I_qKb>2J)d;}`bZV7~x|rGxDm8Di$Rl+%5Y z(T(@$F=H+DT1$P_Mb^@B=FNfrJ=!p;kBgrl!@P4THkWCur;Y%sDmJZLOBirPh z)T!BCmN<{z-$#ll&&PR#qWvnN=JdM)_i$hGtl)J0UzCBqsC7 z^cCkjsv?(JKFN1W6^4j8>KSIE)CAKNEw1sgi?%rI!Yz#= z3ko0$if6?BNm{zh|LqL^79a)sc1=D%OGFAJf}xuUT3<`h`lSSYdszuT->T$i)t&sT zTS3GDa(0nWnMZE_({nXl-jf|tw> z{PH+goMay!_O@{&K1=O`<_GJo`6~EHWK_W?HS8)bcM(W#d%nWfeYL$=Q(TVwL7E0?(-LXo2@#AXFR&8<)7DB6;HWfh5q0R2^gH=< zmp35BDjYdWh99lDdt_5tBmWY1`2W6JQzAL{pC@N3wWa6~HGzcjx3|5Cs%wx*{=m7Y zKC%r4bKd}%kuH$Pdv>;D7as;m=|)HxM0To!uJqe>2Q`KArXtPcUi3>Jk}CquOBWI9 z*>)Gd>@2gTH67_8epvuK*ju@F7uk|(s{pv~Ku+3zF7aLHE2zxkDqKs4#)oD zgKV<`BHWuD5E)CY-B<7cX^Kj%`YrLj@78*~4$(YFswr{^%P-RL90$ zZI434XxH>w3ww|%vaX-pn_@&-&voY3&BsDf5N)W z%UH4by~W2p1XN4pC4)*`+++R;KI4Qx`XF!$7#@pzTF-jJv#?>hX-V+?RjKy-Y4dyB zTx1WvMaWyhcQO0M#o2ef!SDEtAcpeP`E36EW9*mT_~_JI6C>1jUYggKD3!W8J~nn! zrw)I{t*u1q`hJIM0>x+F;6?W1LbPx2Sqpq1nKN>Wxvt>^wm!jk6C$Je-Lb60b{(mG zB84LV0)Bn`1{e5@J2!%^=K21<)@EJ=iI+Ci`|)CJzogOnMx6R&UZCGKcIWJzlbIL) zicS;&t%Fk4dHKdF+0*dGhp{GI@5}&P4KlYmg-DaT9iKn?De+rn(8(%?^u%LlFK0m6 zQ$u33R4Tc$(xSXSrV`_D}DNt^MG!o`DC+nsSB6TzKT*eK}De9 zfl`l=iLr8@4&f#U$GE$iDZyRpZ|NXs1^S8P43V1{ZFiVU9U10!u8jAB{jqr?j#tGh zau9dN-=fxtOHmr>q``DayUJ^R)0d-Xhn`2I*e2oDOlcoP|3KSTnNfJHmubZH(#ZU# zm@R?(T5x_aRZ77W)xCRj1-L-#A^gZ1)18NIE6VD2Wz{1|(nboECO9ijBc4c8OJKL=2am?o9e)zT6 z=3X9Ffak|>v?aaW@>%KaXi&V!N4k`AgYmMxkb%~dE-ZQM<}8fGt=YcVjlB4**{5I2iP*Ta7R&GLI{)H;Rp+yA@(M+{$;WT7&S%taoHqn2GD@h(5U=Uv z-;a^yD4`;+4WbVh#O7?CW4{*1Wd(78*v;n=k0xDdf|K)HmV7W1n{!RC<+J9c^g`bj za!FN+b$zcj=bE0b8K90`;B+4Tm`LcM1o%0ZTmNJbLh!v_|W1$sfzF<(G73kvvNt%>bwA5ewf z8r&NTkEZL>U*P-`v8+$*2LzRJ>ks{N6TiO1$_839lEgW~Yf>T5s)_T#J#<*Z8y^dC z#%By@Jt$};j>dNmihRHuOQ3bZAhebRtTby*UN0hDy`9m7PzbW*bZP1!QmiK~hv9`n z|KF#^73NGKJ1OgC{qHI9H<0M{li>s}9iIf7jcELKU^aIi8||I zyY|D3TZ@l~rf_lZr@!=XlC6ZkcXOP8TiDaMSIC$7+pKPw&e*>Pc=)5@KFPe6mm!j9 zxP4mg7aMs4x2by>%@6(;FdS4lW9(M!DJ#sLS?l0=7R8#PQk>&4PY3*)_LJyjtKT2p z!%O37A%y-1|ATiNW*4vN^+&hyZg&U&w(@a*^e2*Luh2=({QLZymIH>>8Rw?OL;TSw zu|+3E!5UlYvrBue`Zuk`+G_(Q^i@9mw?k&O?;U(QqX>!z|l6d zH7oW*sY~!Bf78`O1ouaV+ZULB>Pvgs2Ifn~M-nqeviOATLGz?>b-{!FXu5>Xf3vs( zUg2{}1_xHzn;6LBKq6{TWg%FRiA;u_#5O>M55A!?%Z_B0adwumFCY9rZkN4TyasvA zi|5qdAKk%sF-Af^=gG;k68o%wQ-)x|*l#a<1@{bPM}p-I{^$=SUzrLbU)jKGV_A=< zK^{kC$vb>^r^AH>?Ou2-Y!&wVH+>`q61e$EHI|~24qopyYR$bloYzC|9MtP7qs_nR zVUi_IafJKg)55*+Yr<#ZSA~1xUk#s*Ulu+azc_pdj|Fo5W$D3rMoM^`@>Z%X)}A+oUR(H+W!6AtwSN-A`5wW zo3Qz!wq7jSGraU)FPBwb-{?rj)x&Dl&QIC1vs8~&>(7I6{5LL)d~2q=SCH+H?1cqf zwyGp~(g3>uSiHC&(+tLZe1_+wr3=SnwvI7B=w<`JFsNo6`&}>*mqQW?cgN~doJl?2RYPi%dr;wf=5=W;1OfJJzfC+H)-A> z%{#{JaRdbzp%3KjCg;_OoSEmuy|c2L9J#851C2Iw+=qJ(@qwSoFsN4V5?W{96u_x@ zX~3NBME=VfuPa#^z;XM+Ub!PD$KIqDHhb;nIhV|rI=_Z11tyy9u6Gr4?BZlwhBMsl zA2xwV{J_NjBHYXuIg5Fl=M*`Y9OTkF7cfA>`Agx;4$O@nfG^`Z-dj(5?V$zit3FAr zZ%{OuVoT)m&J>wqH+q9N`iwhRtMv+9f0_N7Fc7`5wbNPcpmLYo(LBfEug`B3+4GOH zv6wh4KAF|oO}0t1+-~ZL7xekbVGJV?NhjXqO>9JZD9302gV%b%OM&)32;<>i!$Tz# zE8mSiiv(4Yz^d{k>b1mO`G)niGSQn^1?w+qs2}DrhUuk^DgSY1&>mO>do$NI&yh_D zNwNnPz|8N;o-X!+Th#@fdeimBN10!TgdtQIW(~FGjS!{+Ud!lCJ1l$yLD#@GoUn(- z9!RmS!;9Y7;CSKVK{rHDZ$^wEiM56h%NM)es~1s*zPt9YF35ehC|ou7i@`>Om2;ag z>F&mxl-p#&h)6+C9HW*+%3YXh?U}-suPb7opl3)syP^iYi(l32uEEZ<{te69W_wO) zP_Jlfk1TO_5d)D+Z%=Lw)=&ZSQmKKbZL2)onkFvT#p#9i4ip^s`4J=tkxY)U!T^q0 z`4K;Ub2Z~7oTm1Q2wx5_HBE5?ej@?22=A+FKjRRKzv)6E8qbPljC<#FX!~QSf#2mo z7^?R?L8-NBW4T_j5w<2=%m;s^DM`pn*4@vOrY7uZPv3Qxnxe#^+7xhE=n>$A&NAg{ zR7F38{_7l0=@U#G)oy&2+YPAWj8)TXRD=)nqhMNlIPLjoxMw`{5I_p{vw^EDlS+uh zxBsG!XIv0i#+(doCLP9-%jcX|)y-}i)=bU@9|ch)ntOht``kpKKz@oR6arGM$`{{# z;=et7BH_me{a9p@dDe+sgz}1$Ww9xr3p|_%?AZZ9sdT2{e^E5sdSGc{kImG4Uoh)M z-9bZ3%pQ72OIp0TDj4&mseDo0&_j`2K1Rt0$h#=fJI3gcbc_;9TK6!rXo}@ZTJ0?O zc)kq5#aWoz{fI6ZEIfDICW+!|0qY7!$&TX6i$h=d*WpxHCxY}?Stpmg;oZPl-%)n_ zdMU?#MLL%2+>Y7ZYlh$ny*V$g(^aeQVY$O8XinQE_Ex}Q)VdB+zA0;bzv&z2`^0^l zA@w>#JqF9b?ir{T=hAbi18@?x09c|Tm6oA6ijN&2P}zj*<`OLhChYrubWV`~ajW7Q z|7o71zdrpLwJBcRf0I#1&NwHMhG+!m-~{n%Dn1y&k8>=Q@hBT&k^8&ivibmG_K93) zKVGGrm;PJ*>Eq#@l(HUksbJ6QG^F#|fgyOvOSE44$xz@RfdG7Qa-eQXux;(d^h~l} zMo9lvs}Dtgp$*j1(SpQ>3xj*C`Ht%x|CW}Dih;2RP{H0gXd0ti%PlMQ;uNRfR5FjW z=cW8B0}%21xhXYn0<<-kwhhM3_c-O};wFAOh!Gcc=?v4=+)_r2%Vfk0<;Y^Ppc>aM zbAww#G5reeuvHF);b{yL?t%^;=so}m&o-s z^=sbr@)f@X6kY71C{O*E;116Kiqa&59-4!@AGhxP=oZ_j_g!4~_xd@*Lr;dDUR|Ga zJAH7k$z;?i51yA2`_C1kYD<4cJOZnm_b^5^_k^Y20x!$>*S5X@b^q;7ewYVB)Qf$b zFGTcnqqkB``v=m?Eg4tJi=6dO+7Zg(40Yl^L_>8b{vx1LcauU6OK+C)9wr917^1k8 zZA3eXL!K-6$@`5b5L&R^6R3{O&1BL{&Pfq%l1xEyTiVj~I7utj$$tYFXCt#Ana9%F z8>Z(QLz+42y87b<6lF=uD-)P;SjeT}4+W4Sk(?Wr~DS^0K7B@}U18J_}Gv-Bdu z5x&+)c9r~7o~Lx*$lW}6@yL=EBRyE;jSs0-vmO8dIn^|INj6y;LB z0B-w9hI)0RMz1zjJtS59oUI4jH12g-Lcer^Y${wV6&8F-SPNmgud2=VOs;HyP)}lx z5w?vi22UN4`LQLb)hbheW2_dL2F9yv)KfFR&{wx^bNi~yXRYvBUr%%wlA$$pSFPGC zAf&s#uVHb6#Nb;*%DrkHt=2C7hpXFvM_RcNp=%$55HA@KTr2HWJ-w zY8n7*RH1;avronUoCKUfbJa;Qw}C#N2AObbhjP^`3eAKI_!)NUwJF9`Lt7%3UHgp` z$)36P`gzS zfdcN5g;}Q#U$TGLOIEgoBxrEsaTNUL*xQN#-^k;P5tmlhau*wu!qWFT`J;U#tqwKt z8{4&(aQiiEsdB6>OlB4&%o6@?LQ3+ez7bBkI`{`yhRQOSSPOOtOf`+PLJ#%rOYn+I z#ce{R`cH-$9`)*E)^Gvd3X)noqyX0$GnQLAcMlg$C!GRJ2&dGjUyzTH8v}!ml>&*K zSgh+6VbR~@aQvmSO<_Q}w@;}?gb)tx^V5=hsHfH>0=*h0sw#kKa=QcX~ z$=95*_TBhz^sp7>j|3%pL+!yJ0{-1fI&xRfoFDM>fq?MjP+%WZd(^Lm(pii5TZ@s! z9kUi6)l$aJ@DO#wPAU$)Q)|cu3m!wMt?F6P#L+|Ip3@H=*R73}9mRbzcKm~)+LKX7 zD%J3FbN$kdQgbd7z^_>2*Y>e>e9f_DZfA5^GoR!)^a}eL)i(}I2&vo$Q?nMcn>AY- zNJ|AKVw>_T_V!|6;%~YE5|E6+{q<8TiKtO;!B~`3strPK>$bTW{Y`SscukFZp2)fq zv|pT9B@jNWLTS47WpK zWrr%O!?W1nIEA&LH-XE1c*UM6e%0lc&xpTx@gZX<@wTUV(X6;^g?P&wly8MM?1ZkM z7|E&gz%w2~oI=VHuVliiUcbWDzbO<|mWq9l7{@rO{kA*C5w(qP$V-yI{~gJS7r*I` z{*@ODwZbKKeJ2;`RZlx_Ry_Zh9w*prHC%V4tUMxB_TaDS=VR&Mds_m-Wh5NKCa)mk zn^CwncSiC05#{lZWf9)TSbX^zP~O&X-L=MaGDRd4m`&jXM>;8oU_Umau>LcN&m;a; zi9bKGc=7&7+9_o5yECk^qagbdU14XnS3Nm3S=}7B$JaKRz_-Pl~`QS(33()PCYq}p%a`}#M@me!uu7HdkqlvYXM?7Qx3 z8B(w}tt>CNFmHVZ%BR!u)U<9`rSybtov8N*S9bgtD$BshvKvlFRWtQ#3$MZMb#u&* zhQwzLZumKXF8l(ZOnb@>-QppW8>SaKJ~gKCL~S=9@XU)8@-xc zUqmO^wK;6NTBZ=oqc`hrS z8scf>60w|@8cFdjiMgd3Cn|~enwnc`co*VQt!kOGd|b>2P{;AWA);iUh zJdH5~riO0;E(EPco#~Z^PKw`Zp1CiawkVv+KHvoFg*YCn z9~Jg4vR@`Zwn12!(kt%0?Nzr_SCdq|KyEHq)&dv&C`(B-5-wgC%zYJhw)FK@!G3VR zT|2IRbnx)ni-U*OPY51fHz9baek|S=5w`>ntvwk$y#8;&L+gCO!}Vg)pzOJ50A{4k z^~&!Mx7UM*jchhI=`wcwTUz78rT?c0@ z-Ut&x!_=-G=wiCWCrP2^b%*|o@VXgloG=u^K3593e*+wWrzKD*g<4PUbMn1T3dwg& zHgvL4S|RyXyZKs^`PfXUMmiHhnanLm=j7Dk4-){kX#ko%FprB(ln)ya1g*hS#soEi zK^Y#sL|bcf25HkH?wn}v8U~{ro}>kKHR_XZNS|aum5WfC&>Y2_%GF0y9PuqCC`#Y#ekqLO0-D0)st+ znKZMytFDigU0L;B_O5%cyDJYLKteDH_yT;Puxr#PH4bWkNCL#n|9h&sC$9;=`~Unt zpI<(oOm|nEI(4eL>QvR~^H^`&bUwEXQBv*fJ(LGJsH?xBb|kJJyz$#j=ij?3@3FOC zm6TO@Ge0-G+-x@H8a&3-6$UqP{-ra!;Dg{_fvS!GlpT&~jZZIYk6?9rtP9%y$Dmpf zWnjVCmhYj@7tDK2`xMsY><7%2jK)##drYr;-DXn>lD7q)JRmQ3)}ctLt@1UEb?IdT=igQo{|hkT;6^jj2LlcZ1J2GzsgxFrR7;JQn~O= z$fHk=RM;pv_>v`Y)a=BRCgmMCzCw78Kw(N5%b^}dING$QE4*-L3A(QZ-8#{orq_sh zD)FxoJJkx)u!YFZw^k)<$MUk%YSv%ijh!2q@5r#$cn}B}8in=}#OOp&a&k-INkm}b z@~7L+BXoTQt)!^6EKr)t8YmOB+McdxJsqK1U%}3@gjegyAt**4Z(*v4Ns`eKSehP~ z3F}f)BjQ7-l#K*iBNHhYaZ~gJTK-8JvAq3o`8fCr6kuqo;adIm-}M%sPQ)`rJEVy? zSW7;Dsn%0BiJk?U1}-?aPr;qN3fA^3Xa^H6#p*vDqO&#AaT8aa%0EqB zl+mpzNPyhiEIU~%5Mg-p4FP7$Qh^sSD;A=p+`ta^&Yv00p9b?l*BNZgrm=Qu)lI?WZy2W&^=# z?fq~b?kVRs=t?8)NchMnN4`07Ea|w?hWys{<>S+|Cgh~He{DIkYKRkXYi+9%oq%0q zo}YPCYgnKpwtot@6Q7#ySh{S#12K^3uLNv|5E>*Q-m^ij10>lACGv(*#obw{$U+O1 zQJ{&_!>OG;-VR#!XC7Vf;QTN`%JEFmWP2Zin?P{tZ}5|%Q|kb=LqM&4jV%MMABEn) z)sCxU!Gi|j%kBW(e89t1BUmP#hdLot9m7sN)@uyhjz{%Ciq=48NZlNB-{L68tS62s zIAoQb{Z$kPhkRSBd%A3&ckJdw?9~q6d(_+fV29;UFvVX8M7xPiIh)px&1lNUB{idI zx5@v7neOBBGn&FtmQoieO?i4BalZD*K4KYQDEHP9L$NevFX>d`_ZbZ2Xnyt_Yt>-w zSblcelj|>J9{*{e6x`!UURW>?&4hiUCvll42lE~bgm#g2`}jt@G!+laz&Gx#CB9*4 z0`)wB^NFSag!a0RNH%2)+D;KuCAROkB-SPIANhk+H_SFEl4m@#ZKJiba5lDMC$z%Z zx)bJ7wihdC57x3C%)b|F5d%s8#e3l+h7aWKp+N(g1_uq~CT%eWjWI4lM~?G>d=LZq zEFZ|Jd?2Sp2Qm!}8pw8iATOm+U{p%g(MX(#!A6z@_UOE^(Y(;=F~%G~*g#jyk?m}D1p{^Lq~ z5HCbhI46>b6P2wdp*jv;ukAHsNU&1K+92trgTb&!A~_F)le}VkO+uu=UTrSqihvH^ zad;1e`j7Hw@5OW(7TklBKLV4rAs_ls*u0^kk}m`@aO6yfO)gZt3&UsUhri?*hmpa9 z`QS_>2y{fu*!9EKDXuWjJ9Dvoo~XTw%)!TUEhADj^x_+fmE`zjq=9CT8FfMDkq|yS zTsD_i9=A9j4LYctrncaf$_qJ-HjwbMoI&y&2=!;c&ddeiaZJ)1nOp;HZo6n)B(b}t zP@Xw8RP=+TFp`L@h4#WwDdr=JCpN^HsK=;)BQ%62DI&Jsfj+aS>86OeTT_)5(z5K) zG$t`5_dzHkKCoBQ!Jwpi^cL9PiO=iXwj&fvU@G_OUoYd(+L@KASg@al?g@RGhR@Eb zHZ~X>0J}EzfPDsPy=C=Jp}zsI0;}`2j=Ga^L8}DC|7kGveimS@<&XzmqZhYym6Z~L zgV>!21Vzs?jH|%ZQ~1TQOJ57S4{qBY1z|Y7fu~G;^fxqvU|a>E-}S=vscdhICkPs9 z;cg<%~9!#5LGY zWHgo>>Bx1JmB2YjTSSD0lW%abfBl{~WkDzQAU`32XNQZnXt;x;RQhh+$=+E;5M=q% z2_@$(K&RD*7sLB2td#1NhY+lQl3Jnh>%;4aKwdUD7hQdke$HhyIb zz+K7?`04GF&3++XkXE{Q8)2ahoOY-rI~x+VV=Ir_p&e-X)cMw`?^f2@E&H8Kt8IuV zX2lT?$UydB7<-`?buFulG-ofy!%h&czo9l0`i3V!)#P9FD(BxxYSM_2IsZ<4{Zh|E zXOPb6TJoK!Sevn&eveqrJ3p=(55lz#i`C_Dji}Aw*`p~t-|`s5i3dY(DsG2_`!&)3fg8qW{W^Oza!XPi zy3tN?d2WcNC+omzE)UcobW%IM5BT3af_Zf&*hmLOWS-IbWYbh{9!$Dy~{Hrnz$;8cC#0Q+~t9PV;#Osz;7lV;_}=Q zO}|A?ujc8wNH3vD$gbAYxA1htdDZbq-Bo~30abo9s|}yF(frNyA<*TS6-_^(r$5Eh zCq~l`=;_b$^lPH&FCkrY&gSQM)>te@`uNw2yuj1bqv;Ro>Dwv20{dc!J@g_=^{kh9 z)*xiTe2&^k-%0a~s<5~P{_qk&3=J_l`_am>2`dXJ8Z29cRT18u%J|jJ7VxWs&EeM+ zb_>6zvYY8TjZNl{>1-muj%VroI+3OF>m=sj*U8MruTz+bU(*;u#iE)l*2=FrjNz&t z$c?PYW&h+!v)PCITEyPr*Lmzses!@u{CXSP!LN(hU-@-0dy!x7WLx=lIeUU%D_D?U z?_+*`tz=dFDl>&&*RlKgbv?TWS0aHM;<7SI-ASW}&EvN;a9AF{rLn@M@mm@jEQ8897$f!oWu z6}0-osQCvRH$@10h5JP-fGzkH7qEwggVIu#fyE2afPf2OUYi>?zk)(|ttPm%KD(*$ z1Keqe*k{?}DFf?IGuEWQ&0KAMN&QVnvxdr-mz36+@hQrI4@~w+ldH{nSwod?Vb7i8 zgywEtu+m&J2H%DnvK-3UusFSl0VGe=5}ff_IG$4^-YbX%t&(TwCJY|i|IW?E3 zl(KUR0b?{6ZsT}Zkj!&sWbL7x%3htOT%Nr;Rk;j1W>`Kq7T5@RXgb>CnT(zY|Ay8l z9M(v|o*a$mhDe=O`^Ot-o5x=6v7UXAZ30l{IczVndsC7~p~_3OhK~d$qXNlC8rq1h za67>G9<)J8!$)<3TLd^vE#@M4XjF#qb&Y=uvq`&tHM7(+1n#<+$LwM!KO@<68(%&p zBk?E_2T>wcPX}LJ1@LP~R}bVQ6|~9ljkbsO8qmoP|C+q@nZlRV*u3W_ufNQDK6_)b zH#E80mg~(jDWUMq-t$g)A#DwAFxN=cL$r1}c%BJ=p(RtF;HVO?Y01>nFw4`Dse`H0 z5Ze!q0`XxM*G}5E;zp%6uT7;Fj}*k{`AAcVVc=mb9q(8oVu8&l(LnS(mfQpA)@{b0r9C}dY`=^ zRT-YWAq`r&a0gJ;@j4%i(@4HeV{sW2p|oRA!T3xJM1?Y}%z|V-_8OHzB`kp|2{#9_ zfK2j{^8|o2Lz=)xUZXO!gnfA{`W%DqIIiX4qk$}G*P5*0EbO+1V`te)!)@I^`L=8p zHd`r1+H#~}J(`7$)(9ibrKe$^b-9t2gEX<;%)*`~)kvP8gQmMYwd ze%FoiI+q8BT(N>})IqOzd2Th*R_bXtxI86BS{W~%lhi1WFJW7Mgf=PL;uhWNO#^&38Wc#vFD%Gm#|d{NFxuz{ z%p&H54^n1w=NC_^p=NC}@pBv>5_K-DZKg?wgmHQTpNTsOD|^QU@^|t{xgWP;CUOLr z-vM4Q@P{7LQ2!7%uiGae2`%WWn4#_hb2}K^AT-D;fhD`Mm!?R*5%|^v7KVd+IzEmT zPOh*zutEe2UcpHq{y23Pl=>xqqZruNLjLKA+eaQ>z}!Ay%jg-pPxvNxn{nIB=JH$a zG6Y&3Y&stC(G+S3q&(qU4^&WsmVB#mLmDV6c|x<~yPMw}lYHg4fwfrx9!0g{6V+B* z?hIPa)}I0Ebz!d(8GelOG58V(q*}$|rH3crPTEz#@Hrz;aCpOYSxdf?Ck6|?udz*k zONOG+x`?#%AoL81Pc&F1#BI0Dah~6BIyX0KQAB}>S_=dZYpn594g9v_7kVIpf?ARd zp5kBA(@F8B78wYji~w&0y)S~dRJN&Z6E5zuT)o_yloICK#G6b-f>fm77{^Y4WiFKF zz#uq6z-8UQcXHqssFeh(Nrf!)s9JT{ydnU%5XS<=2ZE1ykyyQKWA*JDt49Wk-w4)F zLZG;*dgO)@YVrJF@%Ql6Q8RS<`*Oatb1oWv)OiSYmK(1QZYiR6k!{Y~2%!9$2}OZ9 zFE3F1wpQFC?HrU{+`Qon+)`3Y7L+G#e%$j(|k zu}0it(qcR`QZ=T)W=hryY6F{__|1U;N39jS5#T7bf~LS`LWCIEfz7n#C7m8G(3C@d zbbmzofUPF<&~sVIug&b=`1KgO16Szt9dOJFzZKkDOE_rXWK32#<>6-TjlAaSKj3>f zuhH>5-BFc~zCd?WCy`3SSJ$H(l23Yc>^`W+4S0CJm%c@Nsc=+m1a6S9B=jbz1y|u& zOX}IxmqIe0kmOqHnfX#sT~NaZm#SySSL0?NX~Ho;K}rRgh#^f##Re6-q+l`2JkEYO z6=e&UwwpGXB&UPz_t$X|d1e~>=|doS%1jc#-GW<7J*@B`!%YMagCX!@TimLn!C6?< zK7qd_Y-_R4qoc?}z#}wnI~x+FN2WXsK3AC05S*QAhW^{Op){`G5vyC##kH2k2F#Q` z#T>G1s`%I zcAj=^Mn|L>9f9D4Y{eAnh!)Wi!L?b~ghBtqj@CrhOlC7tMPwSbifjt*&`Hz@ZI*f% zyGBH30ABf!_s7A_dVh4{D>R~4ROop0maRS9-5tMm^y`kiHF|fv2TMBZzQl;g zOk-ItZ_ z-YFD^xg$y`A4hgR3vhM}*^!-e{?d-IxA?dj`%1||475-d!E`8tN=HP|Z_ zw9!5}M}=4~QrQCMjExqE1j|?$8VY?z?K7B}7`0_=JnDrvG@=2;0y*Z$cQ2!r&{uaFp=RRNiLkb1HW220eF;P@a88Z9}tp7?L=PZ+Tb zPM8M#f~w8{3}(=x9)ykTPgoPU2rqam3UaCnIx&t;al#a@-l)Lq^m@cgLeCsY?$mX#D;VQA=~QJnPyEYSu@fzn6wyYw{X{z>J+cSuq~s%432Mh&>5;e4Ws;AE3Au*! z{TaJcl?{@7&+(g7xl(0m^4ubrdXk&QXD~J4N}C*ZN?Yjc1shK3k^68H`Un`cH4bF8 zOIvQItga;K5jPcBh!59)uLuN4m`UTg>IuZv0};hJX+&PD5tnVKHMUP&=mY%RwVg9 z1&Gj#39ZJhR!G#KDgT8BxPW-%PjrQ!dU!vB*9s$di=OMFB27@Bq9P;$nL*mGXg|-d zBEu=#l6VrIUfSN}JR)t`kEh%a9T>C(QBfX1)edK9YDg()*0?}$X!C(d|& zEaKzX*~brn|3*U4Oh+S^qmeL8@W36>u$8sTE&Ic3)QvjIBnsA~iJsq!hfQ6Aa)JYTd?WT)!fDzXxF&>$=m){p)UL78 zBbB((8mRub+wqA?yU4D`F|RzNqIPs+Cbo3=%$Z%4BIk*y+pDN~+}dC@ULnFn-=|ps z*kDT6->8ceFiGlDWI#&(skjZ#DuYJ|F?`mK#n9P!g%}iY_l#_P*sPCNyAn2xWv_rR zu4bq^r27e;!57f~r>LbEZz+H0MvMl=cL-w>ni;x*+Qup+p9V;DnS4)?Tv#MuRixCh z#UH`;gA7Qu!}#1^n6ABr$Q@7!N_hqxK183s@V3Nzq%K0gh!>>o4;{z*?A;@Y9&>0I z63ar#_>GRGTs){9822~h1{e@EJG6}k!y1}Zm^xz#pbMjX1iwi_Yc|@n-_i_)yXW5$ zTSi~91s5?&bk{ffF*LpV7zzk*9EjMCXVjO;!w@h`+e^$bJVe_|Oct2-K8LHi_htNI zErfP39TcFn5T_+ShqE3$wIx4?k7lot=Hd#AE2U&bU}5tL&E;5;kGn5$XUFwxTy3~A zT&*iKoNo$FL8GD!*YCJNZe-_6z#AxT1JE~-BiL@x2^8NCO>nR^!(=s?HV$K3XQEMk zLVm7APm#IDphnX_|H+|AwpcIUj?kytu@cDtnq4sA?&tPh5%sWS0wUT^GhH`*9GtS0Gm#n7Z8W@b8M^+*4HFL^WiIP2{iIk zRHsS)lsI;W_Fi6omRY`lHb{G$)bohZ_7H}ol@} z!^{mglbzP zVNN88$dUY5ED<0MKid8x`SK!pRFOQmNO|ey{17R9zI=CRDlWQv-IwnVU5zJ#j4zT0 zg*O}NMIj046}A6?Z`o`s)svvlmgsygenLKNBhPW z$wR=b-$YF>=Y`1K*vof?sJD&gEazUs5eR}+Akrf;R0t%*0LCii!*Bujn?Q+vFU_s} zVE+<@k6T43%R_O5^1;wWz+vdap&qOa(lE<*>$7Y(%`z_Rycej*U(!311&g zuj!Fq93Bx(U)3WWA3EWc5+>DY+PlyOv9WjB@n-q932|%MLREkTNBt0cBZI*}0tZNN zl_2?%>c9+RC$2&^IaE+G*yxqLEy`;=gfJy*$tl`%G1_whp$nZ4g$j7!MUig+!c|~( zPF@zX2(5)+XAUwxmV77CK^kmJ>J?}~HEUje^ucZ(YUmfG&3~lsgS%(>!JG+l9tg$Y z#GdfBd3tA$A?@el&NU;j8f0OAQ!@kxh}DB51&ICHskM?$ldal}$3i@ZZ_pN|INz7o z79#${%yCLwZXqenkUlRsgw9=?joex|?D@JH+rvU>K<&3NwDrCeEozavxx+0Nn z6_D^pr6^o?i{v=MPrxV^2fDd3KW_}Htl-UnwsQ_%D|BID1{MBPJDhceY|USwkX`b3 z*!>R9FN7@7vOqbD!GgEXUPn34mF4)nayq<2|C&ZRm2e~ROd zW>@-)b$s|Vq_XP42-0D`Ta&=E8qCu3*72*q10y+*ZYZVGx(O9sxIRef<@x|?#gh7N z*9W864MYpsCx|9({khSk52>iNdQA8brkC@5etQJQPuNN+Qq5p&==0I4F=$nIWc1Ot zK#q?Trzqc1Vd#vb!5Wo82;l;|$5p*JA+jj64xF-j4BLUKj9z$%zjusT(dBP-cljd( z)lJ`zD-8N38(lsUU4DeCFcxCIM7wz;yRAnBb$U1RdJu3b^LQ@Q&DR%}mSHWM3F0jE z2%rF+)dJg*u3%1U1cu=bSPm52udg!DfpkE~5y%cFRVBb49UfkTOU=$D_6>Vs@p=#< z+sEtf(CU`dZ<=o-+ej$#(8p37^$SxC;g7w0Yg4M7hNPwh-{s`_72E%tjD&{l7gfnK zDqi3TKi27Wr+RD@7{!wmS&LxYPl<1FHw2ZoQufFfUqF*N4(9z{c2=*3lN51*L!9KUcw4z^`oFbwj-QIN6M;G*k%|CPB38zkE^Mh zbXR^({MvYL-6!EBJmulR;;lQ6h&6RzTcJ^VxMr~Lpz<*^av=n)8JzDupSM2Vd;azf zHgD)I@A;8yExBQ4bj$i4-9kEQY{N24(pK%`O%1eyG03*?<<_$q`316XIK8 zSp=n69L|j%LHxx+TWaQ(>YK_qs5Rg%4Jg~G^XFLc@+GrXBm+F%D zNf%OGAvE>w#&9$`1xDk%Q-oVRqfcQcfj*6+J~fLz1p;{=FEowi>17lfOhaGCp|6>8A2qtruKa`wrfH=%av%*kRsd@= zy_G@gA#EzNxA4tB@21CAp8LZ4gQ>xFKook?_b_kR=meAh?!9Xf%31>5EX4$3Zc zDEOuv9;0r6*86020~EHe)uA3Xphmi=8RLy+=+hvTdc6NMc;*_>0GdRv(oTk)tCx?$ zN3Gn7)^%nuwUo&4c^H8h0#?OJ!>k@%`fGrqi0+C#7yggguZ+^8YSk5~rd%Qs8W@Es zay;~eVSqh?{SzlZkGZ1rLBfl0GlUm3i9n-Cf2Ox6Tel~6S95hYP8bapI=WH)R-k(K zS3OYmAd$~%Oe!|^4)i$uD95grzV{zAFy@1?8(md6c|c zyM;mldT*gZd#R9%$EXa?)eX2-t8*TM;OVTLE_}h!g;g`}?&S#I0UUvEc*`e?Su| zUc%bq$t__v2#kb?`$~P+!*(s9q?GVb-V?Vsn9i?*ngSTCVa~JqPnzXafj1Qw`6n6A3OkcSYQ2Lhxmo62h-R4-RvymAm z?R3Y*%A|TNsMiv^-U!x+j?hx9MVi?eC$E!swn{tWGFs(fP~ko&{joMU8&T45{=N*o zFYSB)O~^OL$UY142(m#&eyq|Th-?s&Z$W8TU__B)oo)~cZHocT6`6k7~roe8|zgMe&MjO>4k z?7_$$93z{;9ir2ckezf1Ql12umS=b7+YM6eF_1kVkR=0Ia*XU-MfMP64~dbTDY7MG zOP3(U&Pj1N^Bo2$ju^g{hD~G)8u#$i58Om&M55F0zLqd)OsN*#s~xFU6Uk zVvv#&1KAw{*>E5m9wR$PWRF1hh#1+UMfT;$zWfrToTKTJm+H( zY-Eh=zlrQCkbOmr?B9y)QOF*32~t*aQqr9HX$C22F_0AqWTSy>bd2n)L^h1M^2fx; zP88YDZOI>d2~wJ|4O8pV)&1$}_vvs>E2&RoeYL!2`B;sNl^))Q?8x{%1&^B@T3(AY zzeWCcAcQ)|11&M?d<@XY`U)Ul#mJUL_SeY%I!5+Fk$n=`Coe(q^#IfIm@}UloyTGz zvk7D&APdFF4q?LqO20w&H!-pgiR>`4!DXlS(ox$D#%{~oer(5~hx&msFwKEleF&>XmNBLKWW9(iV>-v)E+`Lac_*FuCpq81)P8`bcHeCa zcIs%u0}S=Yn#(yNd!V^IT4Wn@IW`@V{~R5u^TN*jurU^BYWF4OFrYxnDUcFtF8@tr z4>Xs5E3%EbJP;`>IVs;e^S?Jpp{d=MlmdYaTfO{PbNMQfJ^QnNTI3Smz384gw zLS!5BdLUA6;b6ubhfXV=d(HFEXryR)UpVu>Fo^vk1~n9q9mIYKVrlyKrRJE(HdsL4 z>{ms$!3G8*md@r{-q+6julaljYj_~mO21NIGgkV(mCX~`1F?haM7F^W2BIZ_)AEfo z{~M!QVy*Peu#y3l#!BCplsb_;5Igvj$Trx)K&1Q%U|QaH&iwBTQev(23k5P`rSD71 zG?6_JJGfkA8|+{pQd&tWkaxzJf5sps)=GZ}Q0Nt7rSD71Uqtpm>|l$?HrT;Hq};YAW}Ysj6%!1;LN{ZkP>U9e+5wJ6=S9E zOUe@>dmwhOMr0f8U?5T!0BnVp*R{f#-zE8O!Bgm4zT^Geng2PTRiA@~&tpvC;i7^s zFvDXpfOGg_ijo5{fR9DC!2kv#?`42#d0#p6zcP9%)=s}hATzcGeS2!9$R2S1i)>^5 z4@AlYPD;p`A2LXZwbPH_gD0A8><;>p(k!wEoc|)*nEwNj@(jSVyldKo*~a`Ih!lyFa@v`H+8`y?PCxVm?-gTr(3g}$B74C3FS3pKKM*NC zfN6O@IP-rnNQt%6Un-CpyMw-@+#<3Eoc|)*nEwNja=wj7Iq%FrZ;%per~f{nFjkD+ zL0?i{5!nOIf01p>|A9#Pg#a`7K;KFhh-`gZAo)y~)jbXhA%;2l zsM%q`>HOToX2*YOX2+9{m>ugLGdq5X=QKRq@%-&?&5oAMX2)-8%#KaJHaqUdb2*+9 z@O&<4c6|IBv*TUA+3~A@*|8GO^YAe%HoJ7hfHhUckx=3;jGbmh<* zRR&4&S8%BeWxjXB# zbQY=)E*=%p&f?a8FPC3bLX=r3I3I8jJ>?GcxFaUEYXmlkH_L~{1h5GJ z2sq0xiwSU&%NQyl;w&FFAU*p@!cdvwd?1DQPYQrjVq$w*V1taae0WTNbpilV&him4 z0m=jbXhv=a-XyCvfc|3U=5 zB)$-x0i7SBHk^XoU&YGYjZEx$++WAa{5>+U<8hztmuc{#H4tQIF6MMI8Qno7Fu)GS zN2;DANdEa;;8BSKkUJC;02(4#$11VsaeosNz%Br=>v4w%BIwpW5 z0H}Y@!~~$&g6KZ%e%xmVB!@fLaD^D`$9~B_XGg8LGFtK zlJj3AlyG%A-JSHsl=`|8uu_k)49~LD&}rBQxqs}R1+G%rg{&@Q4eM1(wrcysU=_J| zM{_SF_Pirh0;?R&^`+DOrO_u}0$u+J^&^)kRO0NzCw+f_69T}P`27K17XYy*zcIgm z2O!OL(&;{FkVCwnKeAs4WH|o}zyOK`z`zV(k^nFm0Db4~W+4VSiJY9U(;YU*Azsj* zoX@yqp%P~xcWef*R{#vm0JaJMg8{@QXB~hv*Y{5M_Xat{3;L7e63B24a>r%>Hwb`% z8Nd($U@(B#CFZ{XFy?=3a&G73v^(AH zoZWyIR1z=fPtT148xBP7*bKlS00w3N-*Y)almW!1=MaE2*F~rMqR~CX3;L7uCxHxy zBF+H%18foi1{>%PaHjw;m_clEoE(S@+H=7YaB2ek=`AJwj*s>)obE3Sg1?AK@M$i5 zsDzlr9h+Gk761b?i~kV-2D6AwFiA)>*Vj(>*9JMXY3Sejy9F|1<8+@f$cepi*ujMn(TziYavm1|12c=& z0>EGvvB{aw$vNkApX0m$jH5F4#$f`-<{p??SOox>MP+Pe@g-M*s}WL4GX& z3=R^z754&2bA9D>e`Rzk9Xa~<>^%Adqziz7IY{ITZ;-)3Vw3YJfHYUg=?)p> z#6EibT_7`d9{tJrjQ|*!gH#FtgM-8-=VzRpZ=LRM4RT^1J;n)S#?GTZIdKADU=H&6 zY2G^q2Z>G28vxQ=r=9N8eDHvqRK`AgJSMOiTaW(qtP%jm*`q&zTL2g=BsM*hI6Xf& z-9H%J6Z`04708UONB`Qsgt9mqV;nvD1MC+7#&#n%Ia>jwxz0P?=M8dVA3YR-Y~Z8E zZ319m4gy!IM6ba?Vv{pO0O?!=CV2f=g6|Mj^}JV7vTBlcs}%dv*W-1Xm;#;9`fe@G&`Jl9);(t z@mz%Gm!2^@w*0~Dc5qtsaFlTCba$sxT;uu?_c_zuKPorZ zxVmtE)pU24@{<}@1ow{Vh{l(s!bb%>bFJDRzQs6eh6{0rg=B75I0ttaKXZQ!--J61 zx4E6+iK4c!RO0}al<7kiM{XWG9>7YDjBChAuc4V7K4Uo7|6kjKX%TJ+W>0#E$F$A1@A7c}zW8}4#7dqQF z+_9+(^L69elHlxV!U%iq4GaNe$OyYp&T2%Q0@#RO2gjVs2^8hF{qX5bo|9pf6gq-2 z;bI@fks(N9F9YqCFa>bVu4<8w1+CLyVFZ^?rVCx9td4Noi0s@09f;kiEqUAdnLL^* zf`1=C;0C4)rn19qgrdoT%gbMT|EIyzY2V?4Qo2qv1* zq<$`0>P8(*sw)p2x&=NbjMPLU^%bP@X@vKv)~4%Lm*jF26xs3m*h}FqGNIT@wlL0r zt-g)yLSKCe9ctcy=-yy@K|nj2a7x1rIAWbFdH<5EDy$m zar$6c59bEp+65glzM>SLuWPm?)#)S_w~_&D)GvuTO&%6K18m^8RuA&UCW#ylQYuO`?1?OghJ5CaaC+ z=_gkuO#gCiT-?{w8*x{UyN2n_;6EX=awPNM^k#X`tDrQpDz5z#tqyTz^!Z6I4S}X5 zcH8yT1r+>>oRjn5L+fqM_(#DLR;96N$kk)G69{`AvSFBBQ2ZUlqG}#ncRpUT2cH9Q zU2}r8cedH8Hs=~XFHy(yPemvKg~w6xD23r_%|>xBT|P~1k>Rs3(c#|@rpE=R;DZct z3!5_!&bS;N*I_6LQw;4MwyCO_o)sJXt`E0icBuEX7%`zKT-O&s*>m_B0atCii*F}e z60;1WI}Fae982A%ELVZaqTeN6Uh^P^R)hn=o5r8quMSH;Wd zfQsC($+3JJdeY=lPa(u>8E29=!lUY&u#Rh8PQ%<3xQ8L~72Q?fAA!eds2#9kMl3{^ zUPozg2S_8PesC!yP>b5ty!Kvoh6@A7q9BI0q<)Rar1Xi`8Gk1d*WL^_ zro(1&KGsQd*%s7AnrX54# zyzCjTAl9dxS;~Gk2dK#0Wfgi4OA|cYz%0>d0uSJTh)aqc6#Ov{p!F!8%;Dq&(M+wL zt-P7S%sDDrsdq-=0gMjY2=HG!+uqp)$1!iy8l%|p(Z^oGmiq$OZ=I@(H1Vyz>589E1@hDK+T`xC@B zZ-J?qe;+XD?`l#h`(pvJ=v^HJk7V0nbC_M#tlX!yieMrxR)VDRKtgyKl~qxesRBr@ z5brAd0H>t19|8V|Qkosl2gQ_9HceC{!yixcns-XsRrJhm1}-BG6I(YGubhoXQfNJf z3(AjRBknT25!!xesvl13K&Bs0u zF+%HbDfU&tU0!%8fW_slV}ZTVicV4^6IU@f_d+m5$D0_ocVjhUH(v>)x$7{NMsUu2 zI1JxTxjond8|MSquK-)m26N!`07kfy&@1Q#;F?UhMj$^j^;vLxwip$X8SFs#ssQe}R6s)6Yxz;R}e1s`;NxoFF1)tYap<_Nvb8Dw~qF zmx@HD(l7fA7&)70#`k$s_=>%RDKeFQS$#AQdL@Xj+$h^AK3yW)Mi~jl7*0YaO%8;_a_UeErPj+a!syq<06H+K?isiX$)y$KojG!rMmWKp}|x9khzB3%~A_X+WgxMj}I zBp=Nh_2O{Jx0BzDkbHmTH}DYi0>6=Tk3AP{@(>(xU`>57N%B7l4D1cOFA)c(8jt%N zTd@P(uvob|GPMF;;@M+(voN7uOq(9Ex)8}_F7_C#SiyxNYZhzoGg6PIiRzmT5co;L z&{xkRsQUywhOdCvaJc%^W>A2cl@YsT!(uR9m2?QQ7g^=cL$px(4PO$}&DKk8hJwKs)7Selc24dc0aMLHRg0nX{ z8IIoMA~*<>#}z3X^}hc{8np}zu3f&blwFG_KIFnn_3`ppcmBLmHkk5h9EE2_rqZZn ztGn~Ts=gV8d`b_G(Z^y*cfP%p9in_1qX_GY1p;#lR;q$o4$~I4;HzXlu|pHP)(Nue z)r)5NdiA13zDB*643~5lC3xPuICR4m>`&u~DUCp3!yq;pDPSN7y~5s~OzTp5#iKNM zHsOIUF@dUMG;oi2JXsK z4C=vX9E}+(A|5V4n4u2>bM8dClB+FP9wTRT4FTxEWJh+z3BMuFx@IsbD z*~KTSM#6(LMII_!9GE@S7AZIpKF)ks^kfdiIS9+x$lB#4k%i6W;gRTBt?C%qgGr{> zw-OuD@_L@vo3Nqeby`rBK;DDrEYGZE<8T7$=6$cAAM}Hio7Q1^W_A#u!I6#)F$WNE zU<}&^F6Sxmws-oDltB9)qwz+`6^ycgoO;se-FM}|+~o9s?rbVcu?AN<59 zN-p9mY60(x3~!@NQwQQ7+`y(0!=G^{-$g|}cCi)|5cOKvle{o2uU+gN+?I!bTE@Og z#f{d=7K{X31(B~Eiww^~d2(-t7$uS6Ie73`v7V86wvxi$M_IAPvL@UjVgdLgkE8@1 z_%aRS*Kp`S^Xa@YjJ?3Y=`ccr^uKV$3R@pNvRuK`D1dNQ(@Go_*5Ze?CY)A+IsCMO zA^i2&x~~&7N!mMah*kaEEH}8=a}%*FkgwsybF&kyX8A^1byFx2y)qeegWx2w^8nkx z`F}|ZoQ=yP*_A|iaZA9);-j^z#Vygu#6&I~R;HpQ^@Q{zLP|{jFg5TKY@o6GUP5m1 zK7$`V9OOr{*Fm?K=3-YpQM3cC4wo1^=Pc}=zQvTFr4X?I?xs5~8A#GrcdFkF3Milw zG1m=_GXZqa2Fg(q-Q-Q8cMJ1u_B4p7$Ho_aT4OTeo)=Yy7A_+Amm6epT7a3n|*bBfRj_mAd+-jz*C7loo6nD^x z8|NH^us$o_EwYU?+oMQ7n z?SfmAQ}EJ-gVU+V%OnPYyDp3`7n?20VZg@2Qz{SJ=dJ1>@d+XUqNj8*fSYiU6vEE- zJRgYw6~rf<@Xp_>ID~{0)r-@IpkIKdclXXGT@aR&e798#G@))tZt^CWydxGk;5nIw5lBd1j2eJZf1sqL&z7IUkp}=hE1uW7Y>xbpsR#bL9l}L7Pb)ADL@im!u6P_nPqg5w;5_d-wm0Ml!;=E0#eC z^^pWIq)QQcbQolJkTph%?Q92zyE-!hOo))W@uVRbJ2%Ik3*T$4+9wE*y3uA*CV~5y z6T%ramI%JmyvM3gZWan+y?X_#znXO|e51Yh@-1vRA*`~QHhxGh+W0KmbZT9k${(G4JZs)&E_+{+FE((e} zl}!R2y?32Yf+>PEdH1{lK#KqB-;En$skAaj2AfRh3hlYd(o)s{R$Bg=>3iaZ5qT6A za(M*Aho6ttTI;&v>poAg*msZ&5fP;hoy!})QTYwQjU+h4`W0eE$QLcvpboYFT<&Av*7Sn0B${iWNFJV zB-R}AhSI&~7p+Z}_U@N*-*e_+<70=ct6^0k0bdJ@aw zQ2F7%VwI1K_rLz084hODAay9HcpR62U-YQxY0<}`@2QVNG76$rm8H`W#UfA1XpqOl zjb{oTB!4M#2kjv6(9dwI2IW!B& z3GX(Jm!2Y_CpbpB?}?F~L;udP%#{~ocAds zX6cDIIR*I33uPfobcrK0DSDqCO2>VTC1;v4+WRZ>6y@?+Mp5*TUi3$ZR&p{qz)c+B zMe5neM!YY9`vd_jmwe>dCg)zs_cmRBDftf2Rgrve&~=^UdxfrxB;QN8sxQ)j!KH~V zLI2CRxTKx?U2HFO%y2@k@zYo=m#@@<&*3JxgN7{IauMU#GD}npSGc|{o!Afbgzx|& z^i$M8Bc%h5dA|XlmV9LOpmvl!2+Z-`UwVpVN4-%TG8&Oo|=pZ;c{GBheWpN= z+90REf#i{n9*sC<0i9yBgvgu9wzs1VcCkB0W2l4<5=cj-^vDmWT=IR6U$x^NY0EC2 z{&VTqH_>jb<6ilGwc{5M6?FVk^8X%r=lE;#26i-4&3Eaq0u2u@)NYOv%rgH87LOq} z@kN@=5M`+M!q1fzVl3g=6uv#1kE;y{0e;=YN8_B`4P8kvcF72#Nd zyhMo$vg)%qnEhrj`ag15+e71BJ&?BPB${TDf1=MBoMFTSFM-5};O`Rf<>lTzG|PXk zq+tyA0D6vqa-u-a>y)ATTR}51`)P=jglO{}5VQqfKuQ<^305PlAXoxMwojwCO)JAL z6l&y4`PHCGf7{}9kZ4Krk)wzj4q$aR_&)%u$<_W3acT4)#xF*KDKrN#cx5Oc`HKm2 zqxD=}x|}My#9pQyQhZ>)!+jHfcghRtY;$2-APTg*n^@ogb()Kuc zsK@~;r}u}VCXKJ!8Cz+JXKbZZF%Im?PZ4Y04cxEt2 zLxbIgd{Nj|E{_s-R^_s?63=9TgpCv!)IG$4K{n?rE8va(ZjJYxzGUo5hyo5sW+j3c#%S zdbtB&FUjzS zpRDm6QqAGeF|;)ET=tGyl!24hJ#pAQDm#SAf)awM1tqn)&L-t&aQmt?WfrG^y+Ep>I5P`Uwx=soG<;Zb zLMQC;+VE885oNqK-ww~?yJ;IRu8I4fJly_C`=_Ihwtwn8Bm&aH7&<%%+6?tvEr5KYr!Ii z^LauIPbtidWb=6)*zpDcq%HH2U9*2udd{M?kP7!W1d>2n;~cHWK``?;4uZ1;$3vJ8 z|0kGk-kB35Up;PAPJBeU)iXHA*Iz`KoAw0KNy4#Vvc}WAS>u%n*}T=t@QPgQu7m!` z?RZ@-w)=g&%LDenR%&55MG!0&+iaeu+}Q*3iO10{zP6!EQP6D`+o`}4)Gob(i4@0& zEEB!i<0b!BxS>M?A1+S5qoPe1^{#eC)TZ(6KhCpvwU}{iw@E(gQne#ddN^6a-t99T zv0V@(`Pzp-w!D=%vgB{alB)NCF{&2qasp04d-WJ*ry|;!|;eOCoN)P=Uw_*?C#TyANibBPO=HVWP zS6$hFzbj?9$|sps;}4XWfgez#i)F&{Ev;*4CgRF|Cx#`nEPay+>0u#H<;xsgiFfUSeMosU|6S z)*gM!p_8}|jBN15XQ3U}inBprOMDKVLT@2YY#(|O&Z&JFS>6l%MFLMDUEflIafSi} zHWMO&LOl_aS4`y4FOX%31n!RBr-w>$Uz5N^0vkvqP-qnOMvGKozIPr&R8WeaARmV5Q<3~*+K8MG!($Z)n~1=%hX50KuZ+#w!TLD zc+{CY0$XY64wno}&ZHOdXHT+l= zZL#D#jqd8fhvb_f*KockPu7o3)TL3mhJ(vB0$ZO00U;ME6@x!ifZJXojUYB8<)Q15 z%taa(`M~`Qzg(n|#?v9vSP483X+Y>kgBW6s8@O15d@)B4x~~8RMBv5l#;-oWfGI>< z;Mk3>>-mm7me30%?9o~CWOn{7AvyUS5DBV;5>z=4J3%S9hwP*QK<=0&!r}OlKfc+O@0UR1?7^TT(@e$QvlPC;5byb^YC3z|QaI!LUkkA3+$lU!@rNd zg>oFVqHjU(Thyr)bp(PkK(Q1D{OfR|bJoZXFCMt~hNytxh7bn*1RLSUP(yn2eg~8; zA-&;iD@kv@_JU#=doC)djE*8~p`t>9^G8vJBsd=+_2wHmDjQzzZf{C&Mwd18 z-)PXENkk+s*9WKX-+E&IU4QJ#HN7x{S(!qggRWkf<9QrQZHw6I&>#;jM^)R?B_AmR zKq9h0AB!V;v+I4>o^h2oE-}Qql+vF9p*Uo)$bF{JuYpoW7lZq+j`md(Z2J24m2V3Q z8@P6v!UdphwvMd-Uh3*7uJ!$K$+HaxVtP8fZa^H1qd2nq<4~q{_ikcfWawcUaeSDI z)u_bHUj9DH5ZWPj32{$D#-=j!s2Eha@+jxWB)4-m{x9WrG;>S_??A0k?&~eLBLIU# z7;-xrlU!~`nGt>p=qb0O`77jhhe?}Qm)p@&2DK+Hx7&jI0pxZB7U0uf^8E|+Kz5hJ zWp|Q~g4Feu--TYG7s+RW+JS*{yp?Zd^v#a1i}p80FLiGn1nZI)KryHP7YVWGg~vCV zF>}DN>GYxRg7p1vxM=PQ1PF!9(D|Oy7L^%J%HBhq2Pg-W8v;HmH>8$|LzP)c)@5Ik z&x@C!aybB`iDh_*Ax$I(5tSy=LsXhb50EC(3!;~)@pDB6-$rC?rPS?QkjOWz{DUe9 z694fX4J`-~2|(M^of!-gKK3f|#rTRLNUSA@2LuL{OD;h1Q%ID12@+{cNF+$4o2Vdh zJswDqc=UumxJi&mi6ls*YmgI3g2X9Q#U3hc2okC0o`OV9Nix77NTmDzfJQA0*YN)h{^xuM z`^k^svk(7Y;y?MAE~SJ}i=v{fFBhgltKD3?j;qxfDs~d|>(m@rL`+p@tcU%RnFL(Q z7`Xex=Sh5-RECv!+QRVZ_e0oH;yD)?K9N+>5(8-o(EkgMV6VZNP*^6h{kT=rN#l=< zN4eSq)U3E}eQDYHJDka6uC%&DtE=mX*G>m>{G=yZy;A}IMtwmWh zBelZOfM)#5g4qR4Nm5fj;YnhP2?!p?3_w zM84NRZa`_)tUM*2zPCDCCG|-ppDRS)E~XGiN;W9mPslTm&q7!5w6yNNxc#8s7qF-~ z5w@T=NDrM&1QHlgnv~0fOYJ41;e=Ekg$HVh+K?N52%nDE!a5lkqSl5@X>#=+!`_Mt@-qvk~#Bj5UC- zP`6rRX{G)#4sQ|t{5Lw9(E!V$H!~ZlTzUMaPj4@hyLN<006lrAhMMk?R?42KI zvZtcE*@w6dWQF%brxmD6xo!mZ<8PU@28{Kf-Ond?1E~cyCqOT2ahz2f8oVuTy!T44 zHVC6^yf=NLJ_n2;O={b)>5zOReTKWfd+4Ir!J=X4F^VJB-tELEBk2;bpiE_4m4CTo^+Xo^`*>!sTI zXZqTF06lU7(YC`^utO-V^ZTQ?4P>dsC%_w;qgvFEy_q!FjW29wry^ZKkvd3Kh_@4o zzYVKQ1)WpazsyL+5)sHFMS)~>uHDv{mr7aTp?I(c^HPw7BpgW);=`uiWi0Nrg*ODQ zhF*CC7Me9@_(HQ77yTvTsRI9*M3tC`vv1JhYvOJ)4g5yVuThO0l zQ9EQ@YJn}z#SY>%mcL3}0G(~+c+VHc=RrX;n+Zbdfyrf~mjwp%6p{BOY$B0(9ibOS z!BA2qWYR8JbwqX6Nk)R^wy+Ms6PCdoi=m86F>Ilj4yEtm*-IRjC7p0S4_nz4e>K$26>0;35?4q&hX71ykqeD*e7+1Hf;BFLxCt(n@IFWa@06>c zsIFDN1aj2#<_#0FiyiCJGmpYjPkLhit>`j$sb>&Z2^Ss<01bohVuzC#S(To(6sv~j zrSe?8oU5W_~^2yGftEbaCI33w|hg4Io3pD|?$K1O%$xlGx*Lb&( zt~J;)Tp`%l2V$0Wn>dptzcr%?dbo$jHE9PXm~aAeHmw@0)s;UE3vBE7`s-+(_)X!E z-p7-%(K=V)@WL>$6>bWumvl829Hz+_Sn`29D6r&MLqWs=?VEyQH2$iWL?~V~%X}EB zwKVyJ8AjZ9d?SMn*-fG@f0Hs4--UA%O-g)rL9=Z27Dv1YPTXwCsHX+JmX7ycc}|gh zeUW?>tNR{U>_cNuFfXg=!-Kje}~}GK$Ad2#1&gvxAk3m9Dck#WVTzJu!$kwY+$ zL|nG1xD9vKO~q)g*`yY?T7|gAGN`I;d%BTt3&T$L6p3QO|FPX6CyG)IRtbUO|3}{Y z$46D1i~pO=CfS6*E)pR84)Q}3w9x=fNYDgW2x?#vA*33hR%p7lt>QUgErG>NG@CVO z`=PgbueVpL?X}k4+UiwoEhdB}L8;=8Dk>^ks4v0bv0i@ayaI6E@;i`d}lq-3%G zZ?H@C@7yDfr~x#^*@h*5w400m#{wcftJUpNgwD2x2C<*zF;zuSr-PL;N9;k7Rx-iI z@>sTrD}tIB@*ia{ZJMZ=G9w2?_Bfdl$@`&j$Qs0unr6^7*do zRP|YK!)KLERVR`&1t>yBX2HteGunzm=o}@kro>*qg}Kj8V|AwbH>skAIE(Vm@J0Le}lkOqC8xy zJdF?Y0?~V#cD7Dwqc}&or{O7nl@9u|tbHW!BC8J@GY|@Y5CEkFgli?fKvlw8mNy9GGwpO37G;qc?3+^OAvVM zY1k=HPH(}X2vL`RR|8Tw3M3O$%9@5UAkNfpUva3(IUl$O%Iv;b#cN$*IdZ zf=cy=OHUhR>OaZP)aY4cQuBy0v&1~iB;9vZQ~*^+&o+GlJ}Ll%M?|LZCz01>5^+ds zeLXKC9UjHFr9PiMqgp;3rxx-Jc9({WwHiYGT5nKecWJC9bob>= z+sPWItG9QD;ly(^Dl&U63#fpwmj}r5!F+&f87bD0 zsPZO6F7NU@*>-GE@dTGqAx)Ts6kD|43RpMrgGk2f5RJ**?3mYXiglm2?L8@~b>omO zUDSSFG7-l;Paa%+Y|%W5ERZ6_$ZvG>C_Xsv731%uc^T(N8;9&&Oj4NycsH^Gau+E* zjq7PuEX>K?N1T=N@jGqU#6q8wRCnk;KsR*Y0KPNujk79%Q-Hd@INSb3kiFC4s7*Su zL4-YC;gYq>-B3J-aY2P91C<6#=Owhsk7M9 zRccI~wfVx9*_$J|kB6_Enj5an4Q+iK-Z#1~jXFgZJ?>UZb#5Nk@eq3|LbYv|JRlow zVT;@K5fM5ZJHG3ZIxu5cksG-xw`7Ie%+O71U%BFUk1@524Y406BsYA8JG{^p{$}o~ z75+6fwKdn^haz#%a)YG(M~S@JOaZhMG|?KlAscWjyzntvn0 zi^CXIy*l(E{&zg3r`N7C-D}s?M&E_#AMX?(nIqex&d~emp%d;+7ySLFiK#!_bt=t! zcck;T5*v!THsvC+r*~l|_V7viX==+u63_1p`Q1&}Q7$(xQ(i(rp4GfKt!YVG^I|9E zHZ5_6I?_X(y7U97((!YZN~=?)g*u#}PN&r2XQ@+Pqmlh9vwpwq8h(E7^5CI&?v@OQPeJxu{`s_}a+TRI7 zKl}Sn`}l6*XQGHd{sxdf(wF9y_S$`N!s?Tm(kHWtB84QrdlAodTz7LdFHWEGQqz+3 z&_^12A8Y9SW*m+ZuZv&T;J&e7 zR8D!7Tx+;)kg}6~vp5|H4Co8}PHPAB18pOX6*j2v?3ppX!K&5Q4nfON7Ki3PgTDhu zw;`qeLAM^JE0y;H&;lwuOE z`PDsE;4M0^)ea0-+yt+kJ@qV>hhj$VFfZUj*E-#rN$&4j_ z^#qZLIr4_XhX0h5HB|JNF$@1fGqi)nF)dZ`6#+JTcca(xi@ydV^BA*EGkZrB5`2Lp zR`P(Ut@HB-0WH(Tnmh{sE~Ukt6(Si5&^s?bGpzInqq^B|97v&%bCabOJHC z)iRa_G>SZNO!vapiTIS+hGUs@Gw*?0mG>Tpjr&w2kS_xR^(* z+8v3_x#7j`#A;VfWU)KESoSS{xVAkqw1+k|4{vxGPiL*|!IOnsM+8rnY#*jAS-(^f z*6|Si*koLMz8ySSv2|wfq<{N#&mK6atDfg#-t-9z~uwt6wjWtP<(;sE>UQB z8s6nD7$}a)LUGc{>Tyd&TCmt}IwM^J^IX0?-_!7INhfD@U85fs8{;c0W1~XxE4O|( z6tCLGJZ!mV=TcqR3Ui~KU8}a_yQ<>1qW7s7Vpo-|E$$sJI11p4nL9p6yo&@C&-b*v zO?`it_>V;5Sy}RE{M5)H5?OD^@tAYU-(}NqzTtza;Q#Q1*T~VT*XSc;BB^`F2bV!= zVr67u1`wM~*pSc%&+d4E4?AMh2u2X)qu_3Av_$UsU^^K?FR(C?{7mRbrf%fbl!>|V z1!8hsS!wb+II6B>`!EgdG-6W7Xb#yp^Q~n;!;U^UTl4s{~ z`Br?6XXh`dPAFdCX`D|8S=dBEmb=OFJqp_`^SkJ4lwiZKIjyX4>!h-h?c>;bjtKnH zgMw!26Q*Ox4p@RdLfSntHH?;$e~;u}8ZG3JQtu&DoG^vdLQlge9+(=7e8Nw+R6`B* zG(HI-81Svf(>!-RLtNP$&s|UOOZVx%8}eyL6@I>7r2GB@yVbXhVLVY3Uqv#DO!fZQSPPBtTjfw(^6e4H@2SQYqaPkVqMP{@OA}nG5uD@ z+kD>8gHh`ndHWJ?%#?Y%g}2FNCFU?2mG*oF=wlw;6F*G$#3zvsk$dm{_jITCZLSFb zZ5h`_t~Fc+*KJ&Pb3K5R<<%Z7+x6p1YQRgI8b0XFIp{5Y(3@+(Tj(7ko|&ED#a>}) z%e=DUiQgs7@PsSMTJw(et^|vX)C{Ky2%D9DFk6 z>#(i4%H8QWOh8i-nC0!w0zK_JlI1C1?#-FaOI=Owa!U#kmy*&4oeo7V`qZN<;$++2 z$#nMB?zek|Hq-BjDcmz7-bh#CTxqTj9jZgKbm(<1X}JE{QrWSdS*!KR$)@XwRZJnn ze%Ix)AusfP9|lLAj$XbV_5&Z6tev)p1OA^xBIGa1{l)z%1s3`i^ zEjiz8&CQUaYuk5AvZQT}fGSj(n*b`fBkXiIo}${7R<~LbU9O{kTx1z8aaUGHwz(2G zD?{t_V#1q#XkB=1?lp`HggQy86D9nv2K>`RmboHnYZL2T5=WPayK6}yE`vZRzwS3A zS;iEj#h-4c51HB3oR`+*Enj9Hx62d%F6;orM`Uwa z1J;c5oMu+V0vyAb95aCnnw*(!$ri54)tJ>%IV+T%2#@TA0E9=1a1dGLZhYAofilS( zp3|p; z`&rjXBqsa%Ci{98@OCYUi|5t*&;f=gFvorGA%I5LzrZE+lo5!zdaeX;u zD<%-76OBR?N^Xlx{(wSdj7Xn#sRt14WXjRl8qTyZIlXDIE0z_S?!b)4v16mAf{_k7 z5|r1SPLEf)?FeQiIMh6mu6MsW>5}OVva?ET4qu`EO4&GH72_MqN*`Frif~n5BwGwh zsu_KA@Ut@x1oF1rlD4|qs%8ukQ`%@u!jBtnr>pu}7G0WPH{n(A+z!}l7IEnvnT~ao zyI)ULz{q5KXV6{?j_M~AM0>HuqrK?3-?UrYU$H@L8{BXy&zRm1yj50VHt?>eDgwOz zq6W4RWB~Lwpad%MG?V$@t7NjEk}XidLD_W2z-%(%x-{FEt9jvN4r5mT*I!3PuF0Dx z?2arKPGohR;Z9^mhJ{fD2ryDT#f&Z#&)#xwWO(Rg!Wdn;cl(IQl{+vQqGm}}78@RL z#+-q4x>QX-4kao@afKZ-zB@B>Asz-6XjiPTIUEEzzE&!-<>RiJKrK0$P=gT**pQswP5b&Cvl@ zT|PCj)BJ^gBn{Xxpvn&j2?!R;(t?;ExDy$A!XQU8#&V?O%NL57%G4p0C?Sn4kH_r zjZY=XSEVlj;MMd9MO29)=z_|CLu0y;AIMdoA)XU6O=xFVwW_DU*w}zu{ly9&+U!a3 z%M`-pX!Mbx<+NoN8Jw4F@h+TMOcRF4f~niD)*>PetSHSZdRfx1PNg4JDhI9X zFZLRl6~%dJ=E)V(QkLHaWt5SNU--z0rfS!YuWK3+9v#VK5npdLEB0CrdBR9}!|mTI%EB%qCx)fd|gyYNMdSGVF-k3Te=g zyXf?#EB+|MYBa;d%#qiRnN`NzD|ot*5i$_ZKot5T zZTnU7HR$%z&}9xWaJ++bv9jjHNEe2uEX}~uuGOzLOR)op?h)o(433=D@T*Vc8<1Q- z{hvebwe)L>;QdqFzb@G)fNofPhs#V3%9G~Kr-;@ME5S1@P*N}Mgt2pItb(j?JlKF05ER3x(n zPuwfjRiulZ*U!}CATfG(h)v+uXr3nMG?Qvwb2cnmE|za@ZTYsKc%pG>$t1z0^Q7EM zRt9n{`QaCA{Xqdcy69z+WG*Nke~Eb#^y^ZSVc|&(>OzOW0TBaGDAYZk1yCu!X>D?V zvUJOY&Jmtiyw=6;S{|!y=$4gx8d`Zr@2GcTa$=DjOwdOM&Y}gZ?czgNI8bvI9z66` zDvdB0ZDenmj8zj+viQBkAJ)m#BHAo%56KW%h2fB3kXS&9x6^QKuez#~bvh|=W+(DQ zP0hAEs}!bNMz$nUPthiMpp^NPQlbksvja{7t|v|!(NG2^QOPvI+`wZUV3q|@8SdKD zH-hMbWIHTU?y8#svRIU1Gwl%>R{d!PTvWdB7C02B=OLRYT`!ognQ5UJg{I0xtObK1 zUC{7a8vfw4#dr~rMdTvG+@H& z$Q%K6(f;72BCwjn7J~|ffFrEKn=|LNVRBjJW(>WDCX;$b#Sj%Pwj7=16`nmPRKIlZ z;;XFW{*tObW324ZxrKT|#`|=CvEs-8&yBfTs*b9)(jpOD!ovYQ`gjz0zX!oqa;`zF zgps@oR=J?ezx`5+@B|$92AI25NA|A3zFLi~g!ml7lxW1>#ke%LYZ-aItlVsG&RlE- zl$9Ioix-M9%c^wj+CW>F(tk}BS$K88I_5RmI}|2r}HF&`X5!h1xu6l z{~A4S*S}Z&SV+m>`mehti3MU^tOtW*0C^Nb8lr{Lp4NkS+1O&BQT$FmYefc-j*Y0h zL4I=Uu9u&Tx@-9nT38J6*QI&(I4pDvsf&$VbgFp%Gh8UH#|x@5N2~Lb#jk!R{p*hS zT~gUh?8+gd^jO%<9Dg7g9Syh9829mLr&q3H_BEV3ea5qkU%B*XNmhZj=}q~f;FcY& zxACio%FjgHhgdi4H?Ox_PdC=k3CqjAf)xqa<5Ukq1GOhXB9PFw=cnb(Z3G-KUFdkm6!PtUPsFc@u>APzGIU zv?V*M+e?ir%D!Tbvp)gs5FGdKcweYf5`gD3xOI!gF{p<7L-Gx^5F#XU`lNuB0s~%u zokU45Znj4GjnE|qdl^alKOgFzVY5(l6qbeCIN zeSY2s^z)wgGzg(?UY;h8%oj07$@4V6zyoN;l9Ol8{w1qh4EI61$k6Gu&9eftq*9Mj zo0VeIu3n^iG(~BkzazNqmSGA1_4NfV)s{=7Z={POq6WZAfQA|VZ6FtGA$Gb;Vq*ep zTYQIfAvFWil13*l&SwH=r5q|&^l@bf4l+a5eYs=5qa5xdJsMlbNX7Cfx5F_lb}20~ zJl06Q4ofFe$1X!5K*g%!9gZ}mm^{StNo9^8OR#u4s^8Q5gYR_)+txN=N^O6%X^qQP zc82q{S&VQ2U9nKN7(f@Z0(J_xsnJJ;rPB0zEP~~9K65y*3Dinw^U0_z=XE+mVUx?CqL02g z4y~wrRHN{b6_QszGa~hwdwGg+Y}!Gh4z*Mr0pSDJsI{`0xr@`9^v?>?h$OF``;z`> zO-+*jLP-MWSz{^S@T(goAyo{l_p8SModt<=2<;y!mLKrNR#;7P9&7m>FFb4L*fT?ASq~RjdKtm{b z3?Gn^uVaKH3p6v!^|~OE&Gxy-A4YE7V?xkgP=BBvgl@Z6qQ=?jMG7U(%aGBci<}Cb zD(YN&Ada2azI_ypQy^ol{(7!_HkSqskd^2w1Js60G(4Fh*P4YH^h`iO^5$rt*l(AuxQ%<|K-%$(Qa z3;LC;5$j_$7xNITZ$P;9+=c2IpZXj&c$Y{)f$Lj*VaRAuJ;kCNdc|Q-zZca8UZNA7 zPL)sM+UIEq5bD`^nSQ<8vr`r{L#J2Z68-d5p2isj2N+_#f+YW7 z6OaZ^A*DrpyqPo(X)Go__Dt_zC#k)Rp6IPv}g2grFNJs(-NVjFH@Lv$Dnwr=R%%^gpW~=?`(D~5Q#jcu~wLcfe zZcGwtT6a|U19WeM@P1pG5K(pH&m9G%8lqFZN~+kQlxSd!d3?}f0gr>f(qkzRju@$5 zK8%yV6l(}|-_SpNKR4eEPwdFZ22avDt@EU0#@M(CWUGEwc)LxgM6MDau23pZ!%7}X zYLCd|_egA*p8OuC8?2;WoT-PR_@vF=GR^|&ipbFJgy7vSzghuFjXKFcxn6~R2iTAu zJh{fqw-RcI%amiO3_O-o@Q^l@NYs-fG<;ip``FHnP!$yySHY8)nVW_8t2BZJ4vA&S zA#q53kL7b?bOq`D*e-iK+y{+7VDmky2ZUd36V%m1K~5}>oo6R|#!mJ` z?Dfg@uUZ`cA?E1^)gv>(xEf1b^r>*wQ4NZjz5~qKWzH_mx999f{VH8am9Q8`rwn!p zz#GsYGA{>bJJvQ$knRw~ortM$iVELPi*>P{JzhHTY3ZEFReh7Iy0IB651ka@nEfRh zPM*6q0Af$WMQBt@U-2|t##`tlra9wTcnqDqc-zX*$r9)_Z)o=tiP?=^T3(B*7pYK5 zZQOvz%XI2U-NQuq)eSv@rbtkL#S(~<^C{|#s4DsdYQp!6YjcfnxA-3RE7?Zjw+4Km z%&*=9LqhwQ)l@0<186v>;bJ{KLRJ!8WtW;ch!w>A3i=`A`J@i%qLln&1Vt`PDM2G&p?;8+00` zLSm94j)I~_y#yqgv9R3t5sj%tG?Vbq$p!erWUbb-^I4cu=p;sI+F|+0b!?a+#Iwg; z9y+ny?w2>{#n6dGo|YTQg5T!t-!#gp-UFc%^v*UZ;KbZ*nEzplbED3zduI)n6Y}9X zU{0*j?lK9CR)RMJ-bLj0l8Do9m`DTx$EqFymp58X!qAD!jFJ!|cxRse(gM%UsD4=J zX>{^{fyLp+WuQWsau5&X44r+s6ogVf_TSPF-HK9Z0o%wZuF%u?9H_Oju1_dcXXwP$ zp1XvhhEA;XwCt3kqkd1rjf5=qG&~1B;Me0`-s~Ee(E<^tz5V^ zw7vpdUXwoX5EeSIYU`2EiPfH+f6zEwz3t`Di5kz&|I}~m%zYN3S7;R3`XorcEhlth z@wSnn6PIuQPrE+%3(j6bX#?H`y4U{2#(-e)W#){eSh0vbK_VsesINlBHHL_kW-BIQ zBV-1te!`%)5|xptE-svv9J@t!XVPa0%)QZSnmqt0(O;r{82Bz`Y@85l2R&+&!&Zuv z6b7H%Pv zU#$td_gy}e5??~y#r<-M?ro+So;~fNoM!lkO%#UNTgFDTEk{DDP_Ph49HESk=uZUF z8;&~mXufEw;Hk^Z%UgVhMXVOu*Uz4H$?)iAo1AHpMhr?Ti}q`1BO3m&t%4KLkE+QO z9+mF2ro`3H&e-kr21Z0)S0!&#CXFw$%=Kz)f{v5Q zr}sy{YDahBboqXI&XR84;fdjOR5@X2v3bFIw#keQo+>v-Myd`KwN81#0y4Xu!&QnE z>hd~K=(be7s{ZmGK)1AGN7=r+PGbUsj^J;iql&4}AH3V7;NoG1=_Jeu0SvnolTbpH`cp zGPqL4k!C#**cSu^`U$M)D@QS^E%sVhL6PcqYj}%Gmwq}a6#l$&aSA@nn#Md08D-9N zE{lZhaknQ@SxnJmxdh1;M)fvSS5P)($RTPohx*Zz)k%hXY>Yh(K{1P=a4g5_`xhC_b$8l;x`v3s z0f#qAac+bWRbEnJzF$)vFz}jSXmeWyz`TcvIIb zx@ZX6)l+&0vS75cSZpICE<>k zEY^NwHzIY<-(;O%`*ni%zfovhpQ9Luv1Ut=q z$8ahAQj*Pgz@4brOvdRHIK0t2#PaH-?3dNITYk11s%mI011jsqgVL_VA#y{tZsX z^gma=;YVvBbH;=6oi3FP&gw#kgDpDo9(sI_fU2gEU6ELF&aAuVX+{HCC7#TIS$;K* z>=w!V1y8z!7oiY!yCf-fyn=FdaeojjlyaawcJnW+gT8&s97NgRnzBKKsob+Xwt+3cBY?w)KO5;s=Q zgzNW(>$}7CPlW4VjkK4(J^)_$Zg039FcJ7o=}0_$Xn!2$+!o&fzxuI=Oq!_sS|uP{ z^^9un59_kR_NmQ;2_}xGoGGbt=znvhE@w6I$;og}xC-YP6kgFESoK8Mw_99N#W9nR z!#de$ZdV4e%DBX$mPgi?t(Tm}2=#BTr3&Q0W8a~eM>RII=(^ z+;j`P2LSA&el>$G6P}PRWXVQ48{>%0kyzce$6h8LYdQ$Ym&M1KG2Q0YpouwF%90Km zPM-q>ontSIAvVNjh=(b2vUyNC<3LHhGAhUb+r1ptL*AoxcY`#3HCAWO)7e90@Bf6c zl+&4Qx%Ei2m`>tw_M|=M-h&9ForWh|Jiu%{61P6_A)F{F=TsdC`wm7-88XL`D3GBI z`(-bbtd@ySxu5Wx0zL?3u97*gty_F-H*8d`Q2Eu0+PhuDYOZ$5o)Eg{Le$e_I(wY` zS%|PTKFM75gc_erSWZHjTS=MsF|%j%@br)@)zs15NVe4JIi7T}=a8B@jZM`_@GckW zNyqj=gEbE7JrWNiRqyf}!_{k)X(7lfBmf8hkP6sGuh==*pYbqJio9@ek#MttMSALvXr_NyZ4_J_DMce6w~ObNTZHi~XCf(q{{%K?HsT6V^jXZd z=w*wQ?%FFS0yRD-qIaJJ3R6u6VuzuH`&~Becn5mHn2Y|6?y_V2YT_7}SWQ%>f|05t zS_UY3Sue^)+DlgT8JSZ$XLiH}09VX6SAv2z;<5oq5O;o>P=qhYU|c2$|OhR_m9Rg;4HJ5r?gtpRB93H_C0}ehhHSYMBr{NKholv*n7F9e0vHF46 zPrhVHQOg3KYZOS=&rP5-hW~$&4#H>5_`-A-rD}_;Bq~I!i3fBOSIX$oyd>E~8=UO5 z5^#P>O>JyETU`t7xS>;9i(baQY}Z~q3NjLAcG$zp&||Q!m5=F(-~YO-pjB3`j4Jq6 zvN#qN4*Tn#pt#t=e^S<^5{DtN<5+v^8U)5zwscOi5DkO6hbcr8m*qmd2EpKqOa6Rs z8ngOYUq5v3)6o6L8)ue`h$;5L6Oz4fw@&xR!RcV0kyVHFa!LQ@>QML8m8v`>UZ|F}+<(L#)2p5TVCo++dn2`RCIdCFprJH~QN&UTry#sl*uZU-;D@Eh0Wt-|eWeOp$`~^@bK> znZ;j^LhgI*O)e@E!6{N0S(CI~DG!^ytQ;6s!tT{yDG|{Pp$&mN?CY_(KLz*>$3UH4 zdEh!)C)03>?No4!SaV9_o93j@hHk7+dPLb{H4?qbtpFDa z*l}9IdNsfNx(_nOzf-NYWg3ksL$Px7dyIzn%K)?)&0tc@WiItAzIxKRsG-> z!_N1474W~wZ}9{HwUJw_7i~NZ=g`=aiAFIioj1}Vi<| zNsL|oNN0!)N!Q>L^6SjS!S6aRGcBB_0gp*xV!b1}TdR;q?A)(*+G7B1EhB{@tZt0{2ajY$Z;j>0 zK@h3SuhzjodD<iLDUDNH-OMbStPks@2ETesr__+!$k+NcPnU^) zLfwCW?6X^Z_pDxOx0RVbMwh-LtNE5%DN55O7NM+qe~Q2_tsYNFdNs}i3R#1l1qsds zEH~zZjQ#4N94S7f9y;O|6+w@B{y7c9CK(D{>fh}`J39uehioE(wG~JytH+j#jNplqZNq~n)}e>dy3%h^dhEzb&z?6zvAI?+gif7rUZi(KjMBmL%R{GJ zmj1mUbSf)0CRKWqReEe(<6B!ZLZ{NVrH7tRgia-rY6q`WofWNLfWD#uN*Z>Ff1S)~ zaRa>A6*(39&AOc{adn7{Tj72rj8*7i zAya@J_3}Py{8N@oZqVZ^4ho2progIubgd3$5oj4DOOCj@pB%czb`6-D$_lGpgF8WQ znVWw7jBg_OQ_8m`R+sV>O2K8Nd#32IB5o`aa`Hfi`9-qKSt zi|WyF|CNkO&7$a?;p%Qmw3^aF0%lR$QvuuBWw8a1XkbmIs2#z%{?%SlFtS@hX!vz9 z;s?_3Q1{jLa1|C0Pnc{TK?{fWO%_Z9Z!SW1E1POwB*zr%brUbmg5d>au;Np0pO+J# zyuxs8O?7kwIV@`2oQ7;x;kj?`WV6S!=TM*k{mSK`_h*Loj+*)AWK-did|jlST^*hV z@q|`sRO{1i#1GDZ4)-)rGxlYw_gbZ&T*9wmpsbIQh>^nF({})VF^#bRj2Fm{rD5-e z5l43<5#B~0Bap3rlq~5eB^?F#WulG_{29M`SMaDy_4T9EQ524`OLc|%H6^I#a4#UL zxj>exOcrNVOuF(3D)ne|Bb-eAH#E;8;~LbWz@0bb3=7j)o0>{a9)8#Y@a? z1CAofghvGcRGTHLw?y&UrSg)glWC7iS`lSZX^*O3S!orGw4pBL9&7jFxRi>NnE85f z)CYak%Or49T|$!nNp_21#Wi@6^sg5!8aAho8hLyVy=IstHyP*Kg@drx;8%Zp!5X$! zU&~ix6Kn`O3}i}FQ&&qS-K1;iA{*1$q7CbicFtxv#D-aYBed~q5v7DSTBw4^JvVeD zw=CCON;5o-bBIp1U)SjoWz{M6e6kT5sGNACb3uZrL!%_pb$I<*jy-92%4E+1!9!Ym zvy^sd5YTiB(#P7<`V-x!6HWbGqN2C(9>C<3?Qz!kV-xY(NP(lJ2r{m-GU`TnK`Au& zLtc>OP$Lr?hXRJX%o}zPSvSUWK*C%8pzOU5wPuBm#Id|O$V<(GRyyO-gx;=Cc1+~j?EH~~ zvC+X31?I5wrkn+_G!}^pjFT}JFXh@S_Rr02O-}tKd$}cL?JDBCh~`a<)v~#ITdAvT zow-cAvy7{Qa7{6KHoc(3D7a_#akjflk7k1naphzLNhsR@;_4p=Y{FKBpI?4V!wt!3 z2PNZt6`IJtCh`2~S36L(;25Mn?*eAX;Fy(VmzMVnV$WIYMo%(g?OMD7oDir|AG(td zVL0o>s(mzp+5!sOVp3tw7+2pSdhjAs|D+{w0X3jDQpZm%Qc9QGyPOBQMgP<1A_w^M z!~>Hcpw1b%zAi5AQs?}Kc>c`84cTe!|8i3xL;dRKmdCRmo;N_1sc>>O0#9stX)7;mzsZ0+1@dR)AK_feCC$_B>bzxCLU z#eZvta?5wysabv}HTyS0&#c+V0W~`y&;N^>CCq|^Iet*h{^j>p&15fXs%9Vk=JPeX z)~?yNAC{W+FKRYBw0fahM2+jxlk=Sr+ao+r#%+lt9_bXJJHAY0lI>S{8ZH)LTP+O5 zb3Av53lPtf!R3A@jtm>W%uk*Fx9EI61WD^E<>_sCS|m@e$Wxg-?U$$7^7JfE;+U-A zMIJmm+w|*7&(2@#hc%uCF}n)Iu}S+G4>k))XxX{Rm%tTjD1L?KE>S3i;+K0`Li)kC zePt-VsD2SjwVB#;S`~Tq7(j9o4_N-XS$tfO@CvXN6Y{7@JCYXA!kdoJ=UN)Bn<~}J z*R@#exieiqEZH_96kqDO>mPisZoDKoE>C&#Bs0&tTzUGluFRF5JN15^c$H_TNKycj zQ&IK9a-%X7uQtj;tq)^x>AB-)gdz=C_3*3j9s$k$xUhqE_2N8VPK|$_BwGGpKUlP# z%G9~|RP1|!)7J>0@J=@4xS3hiO+KBeCv@txr?G^DP<)Xyg!LWO>eXzs$FIHx#}Ki{ zROV27^UF~+`wudLv460n%BXH;pJ=E@)b+?uZk>{!412}7SNRcvW0yqU4gEPib}qV> zXffl$-UZjIE+Mw=2ss3@uS3(A!Fd|5Bnhac78+I7X5(Tu8PDb_$%i|)ue-*RpVi5@@*B!K*a2*U#B#Fs&`|J=Wjf$NkVMFV7+hJv- zO2S-F?bJ!q3{6dKe+iI99I)pDjw+`&hbxb3BG(Kq=W-`1P)Ayt)0v*0VR=8o?8IVf zo;}V1=Cm{0SEHS>mX$+ls&QRNO@L<0=?q?|nOnIb5h$6WlxNp4uKtzQ_7m`KVe6TZ z%`R(rA-wA;k;NYH9|jJgAyeO`8CoGC9DS-WTG*EiJ8QPT{kOz6@Va1u<>`iM&TKa} zu>IUvT4@wkny+L0iv}j{x44p8;I|S|ef1#>UGuN6XtW$3n=jMT+yykiN~AtwVi21; zIIQ+#zF7b^rC_^4a7@ECwP6^z5iR^F{B%+liv0}Uxnz5kRhNZQT> zw|@`RW%7RroJXzS`-F%EP;FZdP2M9V3f3NqokBNp@M=`e_|br zTE@tna=^q0IUw}a8$U~yI{&_ZfYEaJfjcs^?r*|vT@^YxCywb7 zw^8o_8vv5ENE=)WM0?tzH5XUeRqzg~0{+DQSq0<-n*IuqIQjX;vw!}!#e;xgecmY$ zc!dEf5IFPm&i~8jo&Uq<)6e#Kac8Bj{({fD{x6?*{STjS@C|Ccg#tnPTWat!r`4SW z1tj{P)!_^jkmSi)d;toaUNoo{Rv)lY->sJ0RXDQ`-2bcsXQBYEb}S710uL!P#pe(f@~9Nb>)o7T+FR3kx3$1Q5@1 z_R`sCLcu?)z?t}1ko^20eB4p*mZ8GoP=``3*YMuBJ>@4#&#X#d(fZ&>H@>je8ITuN z?NUkH>N^t8r1z}Rx`b^^b-t(sgfcgFUXnt}2%hB={U=N$MqZ0UZTs7LBPt#w*j`-$ z%NuaOgO%)T@L{UlzlF0LP-8b;~HV0qs?!k5fSY)R}eQ00_|Oj*a!JveituI7TD8 z)A2T2{^j8GIC|>@2_NNDCeE!87N=`puzEFmF4MJobu80@O&~$TnDSXi&h=EQ#f_8} z>4=>(7mvztrV=)mTQl1^JM6~7!d%)W9MOsE{~<1o5w^lgJs3@ z&EdcryuFRw3{J4c6YAhFC`x)oe3?@(j)5vpi}mW+G0uB>#CMN5PQ85FpcBo?d6n($ z9kH*2GU17A^vWu!&E1j}`x8IrLEfEB`O>j!robRx!|FmwwVF+R%5kYjBI5#Fhi=XY zoVzA=E(!IBYaOfQH0os^$aYgue@FXSw}G}okiPU?>U619Cw(p?r_w&khC8cHTcl2< zSlT(m#U=H*#-Au&JxCXGdTAfQtNiL0&5+NY#hg&5rdz-Wr!xxjRFqOW9S|?hXXG*B zh~W#PkL8uA{dKcWqWsf#>wEY>l`j=aCGk$;tt%FV$0O*)i(2Ij961n=5jtM&)J2b? zXzSFPQ_04~E`2t!9n%Ksyh9*D4P7SG%{YK!|2Oy0h5E=Ew|ZCT4LXi9buPE@v3An# z`Vnd6?7}rth4Tm{@Fpps=q*f)vP+*gbL2>s3@E7hW1@HW66tJWjWSPNE|rS(u=q27wOSeGW94Cx!E0Pp z>ho^S=8)5KX>x3eO;6NY`MQ%S#O~xf*?vvOv7PkHc0F>Z)vjk4pR|i3Bc)x-38h{4 zN@L}4AZb^vyYw9k&Xd%1-LBN(K)bAdVxcE`8x;u`G53WS=^iUFy*iiioSa<|ev7z9hiOwCNM{cmYK^%+acY0&Nue9gmzx=sOxir*{N3_36=8<2sC?Rww@o z2Z4f>_BV?G@0qQXK`OoX8v96Vtn*RyF)&w7^$zKhlT>i$$~iB`-`neTtUUf6{$DvH z=J@qf^Y9-ePw%C_at%>>$o6xWSLU5YHH12(s<(MnUc=RC6FAmdHi=-Y-V+JSR7EBp zQ+!_OQidGfhRe@N0Mj%9lreNKV|jq8(u%;Af5+hP^i+nrvqg}>KRDc(%JAj0MUY|A z;PA9MTkMlsrGG&j*_5X1NwUfoNqf>J*<=-KU}KVTWc&5tsPsBpu##-D*>^y;R2lE)<5+AoMB8}j795}g6zR+8s}vqg~MoWbF)6!cCo6bIDJiXg*#gTvja3|(i7 zAj4yW!ZlLqiSV{!@ZHx7wp_5|7S}`RDB&ju`n&tPRyK`A;`hRu_S#65Jh#-I2kSbh z`{=vWRCfgo=M&9vCaSM;%Ibh4G++FlP28hD2XU)8uxiUhHGgoLU!>BA?xkoyG^lB! z>;@~Ta&O629!Y&}>>!ja)OI>_;@mBJpox(egj9JtGB0dd#x8p8KJNIT$cdttk8|wv z$?VM;!M)Y7^x)pYrr{L{Umw+L-^@yr8)M2%Z?fW3>T_>$HBF5DN7I<4&7+&snuafJ z%34x-V$-LZYwh2QcXZij7^=_9fiIakjji>WfwVwQEJHvbQX(}{Y!^v75H4z!v}R_B z&t0EZE}J1pMphwFul6S+g1}@MiW7E|1%$eDWlg2@lsQq20Vo5A{2kz^W|Gl;z=)=A zep?Q0&2O3n9V{>LLG9HCqybRRv)&bIJspalyX9%x3k4H!9Vf9d0(Y0~;<$24Kghyn zez+Dc&VQc&D)k6M4{cWD&B#HP*G~u>+XRkng-tjo?^|4fOQpuvEw09wIrXW^yQzaf z`5o1f2yzXO{K?JGb;^A`Jh<;dNh(E1xc z!!Ldw%QSsca2HkItF=r$GTc(WiEK5~;3*ZUttpiT!#GViCB&;UEMRv=crcig@ zMgVALidkc9!)|G@1l&B9uc9|HKIJ@wh^t~FMe4JV`(ou9PTi_zwh)Q#{^qcl#%u{S zu(apP2terhXiqvGy73qzb@%m3o1{ISr>b(NwAnObg|3ROhhEw2uf?eTS_l_Q<_g)Z zo|c&NM7Jov`x0{=;sHIGQ~?GMMB%0$$5fO$NVjW1WLSW(zgipJ&b!S{^Hz&kCdQJt z6-l$aD3s--a*-cOkDIg9?k%SiS|GGf&6~zMBWzH^idv&`>~Kkao{`Jgc5dCzed=~L z(sr+Gp2*?jE!)yUPd^I6q-`55>T=JM?E&QUTcM|#%z*@$rG6?{|HR2mlOhpC>sWDNw!Ul2T1$ZX7)hszpA zY<6>2*)7Jxz)2Uo#YfRS?`NXfKI`j|AsF2D$&y&x4 zp2}Tztj%S(J$s(ViAZeR@it+%#>LIg2cusNo)|;;mh@1xAk?7{sx3dnjYE1*SA0HGRHlf zX3ppIJ}g$zxT56Pl1(c)da`fxbTxYO>BKQ#ep;tPjX6cF&>6V5AXQ0*=y}a7jd3v${}-A$=GkON zaL-ODLiEl-kv1BOa@S6iEQdO)>jtGAkVpy=51XK$XgmCVP8toQ*U{?Mx;3njB}U3Y zqYoDLa=gQ!=<>St{n2u$d%He3p82PoJP^Dz5Duhqq$`UUwH(mhtCnw<SC+kNIHtLe{!CV(iz>jjZl`+cmp4;HafUfW-OZDA zcys851ZzmK-9N#5*y5QzQ?Th~GSF}gzQ(7z6Q+_v|5!ipQ*RInosu6W zTKC9A>jNfcbSqtt4XzDE39nTrioQE~0O0hw06B%e<0GqZ`Cz&Or`OS0oZ^VLp%?DJJ6wK{d9hK}S~K`wo$cy&uzqlQnG1)ube=1Lbn zsTtYVS*28_J{Jq@K!=&wz6Cc%J>n_IO)1CPoSw!6>Nruce7U)Ns&I% zR}IHlnZqJ`wb|g9(EF#ut1trrXuaA-#)>c}t7BA+8XxAzVr!O)V5wE(*zCyOmsGgQ zTiUiMJ?sN@y=pi!Va8G~nuUq#A)QYvQ6ANg!c?T4byUnI18Uj#804PtqG2S41Yp7a-vRk$h*qj@Pt)H%itBAtI77nq)MPI9%6x$jssEF-75_O!7q;%UBe*fdGF zP!e96Oc<;`jbz&69(y;%Q%!Qg7Aeeie+#mCB z+W7Vne0%(K!tx4B8LF0lTafVr%8A`tQQBp?(htST zQwTE^Qygd0ij1w<%_Ab7rmKfdBOu*OzD-{^^HA)Z$q;4QjkSS-z~?R`l+ z=Hx;eapYGQ{S5Xna>nayvZ;&Pw|CXn*hKF!%cl26*nS6^kYgpNCVP)fPNwKnVDxZ9?GWFRvlSK(_ z61yZU=Q>hcZL<291ZbB3luBpm^cL_ATZ`=<#L?oR4=1&Kn5j8hiRNg}J}u-Kaxrdy z1qA#7tF$|GX`%*>J?2+0Z4!=VYK~Ssn4@hwA>h*-ZIoJ(s)MT0<;Y>~XKE5}W$vL_ z+qj!ktW6l#YW4S<2oOoZtFlrh(dt;0DCzY?2=QVn1TPW~$|W zG@s%`IAK#3lWKt%2Ma#a=XMCh4++G7j@WGr598F&$Sn|$@Y~NT#o&IB95GqdlK?s5 zYpHaWAaRgB{yfA#FGD=brT}T_*+qnIL6jsw9jQ+!7&{+58$i#e5gMS+NvW2sz#$2_ z0#pr$mOKrIh|`8dZeeo;EVtV8gpzT=dmoVkaeUjmE;{4$|7rpvDr zOL6(-5S01BrLJHkr{&6vr*gRJ`#XZqp-zgOH#qdR;B(HH3VzkKJvOvICOA3Rm_WWY zvv$iTYTHGEndWG9aIhtxwq+SQWWKJ+h4Xbqrq9>)n4~_fla3Ljl!*a%PHNBW?i6v{ zmuuDKQmZasw(3&I4~N*E&kv9}SFP!<*;|$r(*AW_Ga0l0j|$sJHdI}tQ;KL6`?IL& zQUiIY8qpv1J8RIE4HiT3Qf`Z(ulUvc?+6N^?1Ep4l*vk?Rug=Nh$$0>qwIWXqY^eI zpJgC^f(Wkh<_A)gg*SM}T50JLy42h$(tgf9&y|YGyc1>Jh3Wz3Wx`%?l7nSrZq=N%B(z6s6EF|m#-5oj6binCXcT7r z4WY~IVid%NOIT#5FlJGqpi)3~+Xt(^FkBzEH3}jS%!G+%Eg_7;0^S;NQa+8~0SbgU zpI0E98^+kaD$g7%Db2i;?jUCgWl<2tp`^I?sz|(AWR38u!|Ik-8HKe+BR`fJg{zJ* zIb>dleBybsjS4P&SZfwO!6|Vp|L0nq3=E3~0jPz5bF?k_d-ZZ3tvie{m- zs(aIlE$A(KN_}b*IuTXk>oG?VYz|`$%Xf5B(Uy!-^T_5|DaAu6iibp19MwYwT2UVd zE1_i7HuF6qB8%TrBa#ib=?@1~M15|G$@u?lP$q^!sZRrTP1t~U`I zr4N55i2bQW(9ie$9`Ni0v6 z>pcYwlPV_DtU!(^=EN38LEIVzQ2{N>0Omz%?)8I5&4XXFM@@fv(Nk@YHt8(6#vfPf z&MAFi^H_C)!~=)iMk}+p=kG09;}-pV9(}IIe>3wdq~X|H)U*=D<*rNfA}-#j4GYzI zIza*B$UCsMER%cCq+3DOsz}Nta{x@$XPQ4HSF2XA98z=)zk;&lFA_o)>yjHH6Q&}W z3b74v#2zLe=r0JrT2!ktBNh78N5Dd{-@uSEk@&Kt0!QYe4P_mBSEgtzScDjkdQ8q1 z>{A<2Y>NyM>U7CR%m=KMi*{l6$0UJI62y8m608ti+-lKM+fb>W3rXpLqF|tqF9(l| zP!C;qS}Zej)W7k7Vjo3*>VO#;Sh<_Uj8yL$E3ZJ5-qf3%Yu9@d^{9GlA)W*6XV%c> zWD;@Yu8lc9nLt0+=jjY*T7yW2vn^)w*;v+6?eMUiS;aq=!aZiT^=qnT^&8qipR_wL zmM}iyz%Iys$^1%KnaNqUyAS_RE0z7#)rpah>1m>o+nFKJ2>*`QNK1SQ#cwfltY9cM z`d{xh*})NMSFi;@4hLA3U;6qs_BtKCN?k)( zmC`xI5&LGoQTn2%;S+wDMllz9EnI)7q<%a?$uK$hwrV_|GTf!Fdm6=Hr(~5E<%M&N zHt;V!=(+1#!asc8Z7vS5ips1&8`vDO+R-f4WVgO@ZaNaI|A<+`N5<>T{^+X-F^{o<$UJG`_X1+_E_OyI35}Zdo)AlZ!1Q z)UhuCuzeuf_)dqI8^wm>EbL-Xm7soGBNp_=4DwLlsbmD8DIEYu&hnqdLaA_R$%kIM9+2Y?M*sm>vNwaS%T7;Cj`=t>!8 zWlTSdVb-* zvk*U!-fyn`0%oyGXX$4aufZ%1ka%F`5-W4;3gM}hUbqxa)O!3JdZ_uuR2Y-+i^~!> zvMSgk!CV&0Sm9SEG`SaUF-~owBujYy-!hKmQWxhT{}> zB#Sfg+Fa!vlx-egT^?}x)fG%I!9U?B!V=i)+{=VJHq5WS25|^y@+CM;O(cst#3svT z@wMyh1r$~tA;{=Yk#T^_1oai>@&h5>d5!Ka;Y{CN9Vx8l8yFs~3}AXRSNcEBXY0E$ zHY+bZZj^DH@j5y18y@+9G^sQr&fUyWvW@mZ9nx;D7ftEZk_pJq-DR}RF9aN|7?-GEC?X3kh+7h${;&bRWLBZ$h>QBoYDeLI`;bJ`>J zHi^q_4g_4)?BwJ_>L$Jk3+98XV#{>HO zW#^rf%!>yUB5?E6lDj)RJY2&Les_3`Zlu8ImI%un7|eYK5vjbU+^?=t`)G*KFxYekBGWz<5vXm zqUftu&(E?zB8LL^so(PkRBC`J;y80UXhxs<&r~S@7ed8Sw}cu?oG0tDX{J zq-XJJ_2|r0z0YMxtgco|&a7~}+NyA;Xh7)v+V%s9Y0ps0#I#m@mvyGZG+F9NOgo_O z2lf3`eHT`mn08p-kLdeReOLP4t?xbh-mC9%ec!F`4me_BnoHl^`kt%rUVYEg_k4XH zukQu=E>dA)nsC#^v|0LIsPD7&y;$GN^u1i)7wLPYzF(>Deto}M-$i^%OuJU!*X#TB z`d+8+H|YC~`flj^E&9Gy--G(zpzlrkey6_Qt?#?^{T_Y4Pv7si?z-*w>H9tUex<%w z>iZ&nFW2`neJ|Gc+4^3n@3ZuMhQ5m;D>1D=-^c5FzP?|p?+@ww!}|WHzKaN#nAXSL zUiQ!Jmji86n(^udaAJT-QkjJ!(K!$Vu&7#1_=l(mEPJ3y*cq+LjW{Efd2oe-$cx33 zj1j2$zq-|3cI$T6tb(SrisCWm-@sVeH7Uj)u01F`94l9f!Sjl%)B-49go*l8=5G`+ zS}o^$*04~Ec#Jsoaf8@4-8`&mlDb$bcW!hoL!$Kg0T$Y6SZG(+2HGRkzUhpPeNc%3 z64Q@oFvJMzmzbD7iYEh(4vPyl8meAhEuWV4oLERVOV^j_Ph4AP-TlQBXcCg>%4tZzj1F<$*` z)nI1x72cV&LP5S1Impp(=QrmBPkePNw_CSo1fvD)Z7&{c{xvq7J`>h@Y3du$i_VNS z5azO7PVdw55M9mk1pxg2$KSFSoQ}C%6S%PjEfNbq`kqm%+7` z%ghj4{q<$1qxFCj3E$~>hpSJ*|42O7c&-^-^SCbOTF-R@*DYK-x&D>wXI#JG z+RJr_vi5R4#x?9!>c>^cwScRevVZm>b)l~JaXrD+%5{M21Fk-e2=S)%g?o*YctoKT=#MP7uO!H16=QL9pgI9 zmHQIy$nWAAlFW=A9Fp*^;@nku6MZNT<6fv3%C|>t>wCftBLE!T=LiP zywh?2bJUgVUupkVt~FfqxW;lhxjrDxR^lJww~4EcYcba>u5-A0h&#k3e}4tW?{J;@ zckKfX?@#wSyuUu-@U9ptDiiCk?Hf+-(4UBp!_WU+cwMMULZ!6DT#x;hetX#IDBzD* z$I1;W>rCVN?`-+Df73TMf8&M?U*F)Eht_!7%{h)~7tSrbd0v4$IxZvamg^i2cgDX@ zez^J{%YXF1?{8nT^@eS$RxY^qs^!bCURSwlft1I)T-UB%x@g_B!r5!4`|SrSE|vC@ zLY-EpE1X?eq|?nUEWDU>am;91*E+oaUwdBy-&D1&zmpayP$0}R1Vku9;hdb4`6Ov* z3oW#zwq=m9p-J07n#3fX5Vg$6phW>uQ416(h+1S2nN<`}5Ks_gMp3wm0)mK&-v75x zk~S^F_1*X0eZTjA_mq!4ud|1>*Is)%k&P#^7$6fk4DcIkV&OKa%sr9Fdi9Hg-mS>*&GyNGyY`3M8tfUE%FKx!V~M!orv7T~wv`@QZ$6!;A+l?Tzx!$A5$Lu9?_Gp+KqTkAVPvDm zO=L}*HE+?fRqHlw+qLh|u~TPxm#z$e z{;_fK0|q7}4jP=4oH8W!k+k%Tp~Hrccy#2b(PPGr%e0Kovf8q9a_ti)I`W(@_hTNf zFTbF$sCd%jlb?9Ed8RW#Eak)r>p9;T_Ccddx`;3&U}Z%ZzWjstV@|s zM#Acny7*Dx`1trb^ieV-mBx;eYf?wliy&%-8J>!-cFW}v)H@vr}$yyB&6acai5>yz)GY)h4&V-{-UC zxqWhn@>qHB-46SBkHu3gw}VGK9$S{rQQWsds>5dS+T>X-r_Yjwlt>Xm zy@yxs&3C(99)#E|dGc&zKF{T`fd;I3Vu$T3W*+&c`QsWjh?bkHvyl(l$?1tncmcAQ z?Q!Md6?U)O;`Q3{#yg7T)_jlMnIm_CQ~}KfV%eQ`pWWiHPZG&D$e{7Kc%TCL!pyhVDd~%!9 zm7kL<_qr`vC@-Q@x#p-*VWIWK)~c_nvfKQPmzLqLZ(lAl?Q&+>`u_F$pzoo1W9U0# zL5b$C`UTcNxI#n2^PQIQ$R;?aI)*&gW^wy-3pxt*1Ik!v4@oGtTXj0sebae;)(50h z(sb^8a9e@h8i`^a@(A= zA9!7;2dk~Xo)r=|P)D{RH~I}YhSp4V&lKyK73(J-Zw$oA1KZhsxgHyOBDi2;?fCbv zmp~$`#b-fw8~K|&q+5!e-eY?#-{z&6pd}qFwR$!s! zzp%@r?isNT@5%QzCtA(r%(FRtC`yri|F1vLVELw8OgTcvdBe zC+{>K+jp0Fm)5+a` zHRDeq)qfK5*Zx8&OeNKSn2-IXzhHX#|KXMo7X9v4&HYz%fMiP5pX4t-!4{p$|;j{nz6TOCVAs_lN8M4UR5Oqn`u z`iz;gW;Uit?4KR#&W9`}(>!-h8Wa z{o5NhZrc3LmUp*q+rDGxuHEmw|G}OQKia!*|Hq#kIQZ$I!$&^*{OGYSj-UAQ{?ny#K`TFHIc( zr_298{r>-S{r{th`~AbkiTnR_`4bX!d3icIQzyiVr;j`tkDOYH@sQ-?epYKgSn#A` z)y)h*b-_GMTuLC&WUA~?Y+TeEIu53s{s>Tc^1V=qp#6w6pa|J0EvQ9yx()yhDJvHy zlqF9-CZaS9x|3+7DiY`u(4{m9Xi++V6X}X64Vs>&rD+H>uY8Xc0hFG{F4~}zdAtEX zsAx`GzyXa-v_W|jL!rm{O=xdOOOTErK0!Q!I8@IgmVRzx$?NCN1O0r=M{U+B!Gv0w~n#9}t{y%v&>!sa6{-a@;`G~Pm+)$YxW z&bB*68kplcsk^}Dv`xylIcNrhe)%3S1DYr3_LoO4mZ!?k=E+Br>NpmUMNCw~4@x=+ z2h%uFhhnUdIC)q!@St$PIC+@tWr0V6Zqy4_87v~-2mSCK@Ga^sgpSQ2_gWkU7OTrs zmDZM(U&D6Y3?W=266~{h(8J(^snlFSnmn;zhIcy z4@3G_(4Y35pnU>3j5b=(ZTDdP(qAjl;5PgC@iwv2tNol+;mELk5*jlYhDxZm`}>mE zUe;GjDnHua1KmC7M@=A? zR8=f!1m7w)kjMfAvQ6yg&XDG>@{D*rHf8Q0+G?UY!nM4kY zW-Qq*n*B+oXeN>}(Huk;isnc%Sv1p0rf6o64AC4&5=3(-5dvl(m;=)KlMbR8OCm%w ziQHa8{nN>1m~ruDa#S>9$!^h1B9)?1MJH=D_}Gq#R~!LJC<*&5_7oz<+wcoD4H1DUP^dCJY`(tkgX+ ziDU-M445>1LckPYrlutl9%lNm!K53^k>&xU4a~u)*NA}o&MLqAGR%yOA!2@Meonwm z&3!OwK571`85!9wvYt#89vKlG9u^)clSOol7!sRG%s@(&JWZ*Rr|HFzZ+Qa(i^2@2 zLLV^44Kt@Ea*DojbVtem)GaBQSu&*r8w+7GOJ+_jX;G&Rb{1yLm{ErihABxcnN1={ zR1Zz+@Dl7BU~?fgbv9DUqe^C%AQi#(LT+wuL`1zJx4Y2ouCcFx&6mLb%5W@!y9(2x zgwRbg_z(5kJVVA$z^5v8WaSpi<80n6kKG*zCi4Dt zC&3@d?D1HNkto!!IyyEgWHWzWLGrnq>D!P;Z(K{7EqAdWSX{6TF3v+u^8_-R8HiIb-oLwX|Cp%%ze3Mi3`GQ43M?gCvGN+&5}=Fx zw0cNpFi!OfI(7^Ep_#VaV7C8ZmO|n_sEBvfM@XJRY6AJXtKO>jGeRR~x*gcGpzE+$ z{-!)IYK%O~;qqby-e11j;US@!t~{q*++gwAb7;E zq16Wd32aY5JFc#xJc}Fk5ag`~Wg-~oo*AHJuj0>pXCTvy?GTH{U*&YUyqZveFKyWt zx&;Po0*CPyx&aa)AUO3J3=-zm2j0 z<-lYh6G#P;fH;5$WIzOPXT4N*1vm^;0<(ckKm$Yq*HC8%fC^wTkP7est<%u+J16T& zWoLn}fQKTaGA)n_JOexj{M-n-Q+?D6Fb{Yi?vH>IfZSw~)AoEk+hOrNK~0PiaA!JQ z&S=_aqUkO^!ferQOm_1iiRn=etV2Myg5hXf2XudG(tR-)#G6a^=;_=5f&lIUmmM<& z@UIP9-fpkm3m)zh;^;#+!tl@`)>RlqdX54OIqkD|znb>Xl%aloC(B{i>D+cFWpmoc zM7MxA!(UXm?|x-8(dj@Vur(*Q zWqI>K6YDV8n@2uHDJ;jksX9XEUio=2NR}(;L+#=Tm~6TWk08<$|J#aCkxqHn*sgLi z%9ji3WAGNb)INp)QX)fKv5E6)>`!$M>* z_KF>lFpz!0g5E2BsB8`@cyYRetay@?Zqm#WXO3TxfNn;%qqYk}^1D$nX@%E7Uow zphsZHc$Z6*WrdU>$NBtWqFkhLRDL(7@S8|6Zd{>?m*WE$bjug%DSuNsi0$WX*eNOM z7ds>+F{PVm4jG!!jU-UdfAXPU)Q;IDm4zXFT6$c%?$v=$jh;So(Bl0?tFEVRZV?Xu zEZyihTY=5ta#P)CbZlJmXse>A$m(#6PJ^BV89jPHMx0{Ah`w$sju_T>wto$|g7bSp zPkN5A1Kd$ST)>~kkpv>(@UVD5I0kN-?kK`&5Y0zuSY{wC4Wnt@a2Eyqf@x^j{nF5| zE1+EwLWkDD7P$8Tq4}fnXujzaN-s1m4GX_0mEEpIF9K%>+W?{TXuNyT3r$Pu$q_FB zX{nt)G=C%D&aFj{#=952(6ltY2Jx2EqE`X;mRj^^ynE3LO-t#eBHra%^lrl)fisJt z<)!iNMK3fhrI(9%8l&~`r^NK5@`+AAUSs9*5OK>7%r;S0KH+%|B_1Aa6-7#2!DGz|@>`3QX{ z^>bW@*&~%hm1>)Tap+(y; z67r=35K526yH^{Arj7ZYkUJeDB%EILy~l%l5TdNW4*`j0&^;LEtZ8%>XK1N85APP+ z9_B`X`q6f$X0YBPVb2Q054L+~*rr=V7Nmc)*82{x^1tVP;nFn^4!^Ya!QrpJ{^0OW z-g@=LeOVp0H^e?Kq+D&j zBeD(v%|q~gwfXeZA8Ur=2k2_>@$u_5!)uo_;%0R@kKU-xQ|)q%48#lOqjvc1pKHFS zc6giLYKGS?M_5DuU50zn-ySKEod6zG4?7w^INZ|a!Qq)5YKGU&e_i#1!*BnC@QIq5 z>1&sNt+r-(ZGIuTn&BI3wX-IsW_a!NSK=NV-Yvdnc039{3=gGG)9v3_Gdz_3_{|boHV{fbH2iIZZLSqwo4)g%n(1qYpL(}u z`0iTuzhGO<@Y?C$+wtJ=F*|F9*RG!h-_{JT-Oq<#_J`9tc>a>4O2*ZullZrqbZX0k z2H)2VuU(EUS89gWrvGQH@Y?jlZ`Dj+JN(O9;gf6CGfDD~xj{KmJN%_u;kEPc8&flV z?ffT=tr=cBy<*&h!rX?XJexQfMCXYkJ{I{218=$Q65`$Dw;_#M)#^1 zbU|!jzTJv@T&}zntQ?Br*}?FTd|?gC;Yg*ci(b6FYcNJEe8tx%VtEL5EIgJ6!%(52 zLBYhEX)UGM=pr0lMz_)0O2LU7)D>Am!^9oLP;WCy3ev1Dt$!yG3w$)oy@KK53u!@U zfoRES=)_=XNO`cbN7wp-6-~^+IH7G6h~y=Y1VgLeUqI_2Jw9V-D)x8#Vr_?zKcqD4 z4)IRhK*<2{zEfb|6meroEcV812{?I$MX)szN-7`Ms+_?MTk*n99k-v% zh^Ja>GnCfDowIk3T$`zzamYr zS=?svn&UFjE;c_ILhICDhz#80Gka;3P#bw8q~$Zj{pv(3_LM|lS01)rtw}iQVq^M>P=6eW4Em?hwDgz)X)d;Hd@{A4k|uglZo4%W z-7OV6rX}+C-B=gy{op38*up+*phJ`6w2WdaV@HN){h=0|#&gpqG?Sg^wRDrb zHVbtLPj}dGf;C(cdO5bCWB@h?9A>wh`kKkeur!O^3;A4i4c6d)1Km}n=OR$Pn3_Jw z^)#{G{a4f|2P_J4quH?*|6Ev_&oR_lh{Gaec=#~?#y z?}Zt)u7l!CuY|rZzWV-`zr`S6cTq}r z2av({Nim$fckdLai;OU_1b=hOjE1JQ|0dvx)QXpeMy9#({TeJaK3c%Z-$`A!YLO{NlkMKu41^!T#y@BAd{= z12M1ZpdsXz%(37iKG zgH}mA=njOR0)BvuLp-2_q7U3a3~)FRbYbph5Elm)7-YI^1nAQPXKKU&N`Ui#40~m6 zpi&Dr5Q7~|H&6l`rn{MXyc4Jd=phI>a1HOk3E8u6K$!RHh2+#p3fE}0w%mH2n)&m~`r-2^;=@}_$4s-!}0TR*xpIC~=R~ovJ z{y4#sN_z!Puk-+8K7tb|oyib1>p*-9We{mjI^z2djYv~)cncCv+M~_dktRfn-#AJk z$)pZ3zr_>h!yOIket?9xP!XHW%-4H8;QMNrN#3Mc{E7TQCHq;!FaHv@n zd47UJ&7!^>NF>@rh~lzm)!Vp~$Q8d>n`QoJ)zhCv7ED)*M!#^Rp z%Uhga1`^|xfz2}vl9?)|e!qBJsen|*9T%|<>2QN#$(dD5$6K+2sh3~K*Gx%snpYzw zM#+3g)DT)BKK=>@vFZqzh4{o~rFrxhM9c)$zG?QT=}(r5D*=g zuR$PH3B^3aj`7?=-T1f#4xM;03#bY~ZlO2OD#c};0HHYC#PH(&hd&DeZUz~#MN(Wo z9KpwV*g#9ce}KbP2*wd-ZT>X1TMCg-It+DoH`XAq0O23x{gDHm1aSh{2xbo7AQC6o z^z2X2kIn&;gZ1NcK@Sbq)^JWSu4;A%%Ay-56FlJ7Jh7^1fok~r=cHA>)ic?k7iu&x zpA7iKqaoc;vhu2qLqH(l(-Qkza!OsGgeBj3CAk zXVv@YtX+&pE$BS|Up-whDs{zZ(-mV{S8=ZyOX7d|iTNkegc2`7`su)IU>;BkECiMS zOMx<=90*PGUu_SU_~}Q&lmRUQ?hY{JKsO*N;K#t^1NLA(;^0mIl0y7Pz&<+Qw!+K> z9Dp0}0Y$)Mpahr>%m(HGrNBa939u9>1ImF4U>y*ACpEXjy&KpA>;nz}hk>KO2|#@0 zXkQ=#hy+5@{}p@8KanPsZVA#)2WA8FfKp%~umo5NlmX>HXqx|Odw7>X`@)m~EduTi zF!3QU(hZ0T_%Sf~fIXOxIJgslq!9lRu#XP7tuS)|2jB*LKoKw*C;_Gevw?X)DXKrpF1~j-&O%q1V{rbz7XMa#7cUT&@@>qv z^=)@y)d@=zwdl~J;y7}f?E;Pe{zrD-$Nz5meV_mSy!|WQaQ}~Q_}_m2k3ak?a`&%! z$9-8KAW84b0`h-N{{BU8`CrZoZk+v;NW&w_aX2+|YVp)AfofZI&Tm<^(r-?A?fe~T zi+Qp{G%FDQy%i@{$o;{0{XgYTzgJAa-1HaYn*;GTBmSY~7nipq-z>kpeANBvKePfgm^LA{UqwF0RALV@ZQO?tPW z4S?#zY9jqeDiMFlxE{<%AR=Ja510*L(y)d=FpScrX{p%+p!8`aP`{=?vjC`n7l8WH zrD*Cl2i&w>s5=#)Y0>~156je|IUFXX|0qD;?Eq+a9v}zYKnK7B(7e)e(D)?)&GVFi zITa=ip9awI=>VmJZ|PwLl#o{g?qx7(e#!y*zSRJY_YOew_bEWbj{`Kk4Jw7!SFp}# zy_e7z|C3LhpQ<%fNq|Ps43Z4GgXaDG?-%|bjUS{FG=u5?C(YV=5!J7jTlIFUCDbfbukLbInrRZGagGlk(E}m!&e= z)Cn+YoDMK4k6d|4DxK5`Xm;;)BDu-zKY28yfI0rI*3%>iX z5vT;#0TnzXHn7^a=f*Hg!{epggDtMgp{+UjQ}%M}ZqaQ@oG?Qh+=ln1*geQaN1+ zECx0Lp94PuG_(DHWWWIgA9^k}cs4fZ_rKBnN8dV>)_TGM&;Q1<{*^p~#qmhR!AuUZ zLgk;vKP=M#;t!`^MHR>X66!~vpg-l$+BnSal)bV(0$s* z;%`dO2;uk(_8~C={%cTm1Ch zZp5*JmNO)+f{ehQ98`+oPbuT8Q6fE>*NFk!c%-)g;<$oRSJNK``uIj#2we`jV8q`S zpyi-P3>qRnEvrwAOW)!MDTTib{(OY~CV>_2mY`fV)EG@cYr%~i(30eU3w)q`x1XG> zK{^F;z+m?}TC}mS$x$PB*OgJs+mHZFT4MU9VEg#%gVyx@@;C^)=@MwE9^}o6UmM6m zu2MjwcKgI4zqJ14$Z;I@<7s`H8Tv*4a@{95uPOqUWKCYtkX654B zc;0Ay@5cXOZTh8royD8iw}9=69~*Gmv$06-0-yF*Ijdslv0K?w>{skH_BN|i#3>$CR4TSAepeK78@V!mE&o05R!&mB zs~oM`q54hLNxfQKPxHR!fM%Wcytb>(sGF!et$R~{OkYnh3t56gm?S(StQ3w5KM4a2 zGYzj9>KQ%8L8cc>=pv#FJHT|qZPj+wIo0Z6(xz!AYv*Z8wF|XN zv`e*R+H&m|+K#$xok#bf?uM?rewh9x{df9A;Su36VY=|FutIoOcwhKJxGDT8)H5_T zbT#k>lOe(Ih~a?YbHhMmvGHYNx$$k|0pk(lIpb|(eUsYsxM`kgiRmj7G899wR|&nH z>BNj>?2M0@%ak)0nGS3QJCU8mE@9WPX2oE|XoXu*pm<8LSMi17C)B5eYs9tS7%qkz z#4YAt=9Y7BbNjhN+!vgbZ^d(bJU@h=$QSZc_$~Zbe1>wAa=P-k@{E$GB2_(ACRL7l zo_e|Z9rgR_v+AGJ$F=Kqujzjg^u||do>Kif;8^w@@HY?f6U*$V1SAjpKt3MY0 zF7z`Lm_DZYa#L9cNyq%A>Z~53o~8LfW7W>l@6un@e`I*d7*6Aq_-Ra1y{0;(x~bZ% z|4qMEI43kQ3^T2z;idld1D=_#F4bgcM`|;**;V zm=!sSmlSIhZ=;>-a2>dw9LEjd^0^A`O>Q&y0e771p;D`CYOi{#`f2q-^=|b-jR&<` zs2?OeB`gtM6IKiBgi2wfa7G9-bTLF3`WP5+q{bi^VhnMHXABDsOAJd5Wrn)Orp7)- z&Zsd8#u%f;IM=wtxW~8;e0tb;)Of;p+IZgB%fy&?lg1>NW}99zoihDyB9&qllcr2- z#>@<4tjq*v4)Y%K8PlGPW+$^#QLe|hC|<>9^ON~m{Brd??E>w~+C$n)+N;{1wR)Xd zHyX85q1&x%u8+}&qo0ouJ~5m&v@$+qj5g|xamEzmRO5W(3&u+0R^vhAbz_uijLB^} zZ~B9_-)_Io7tgF`8ne^bXW8ZKM)nYUoIS_hVw)&>D|m%Y5vxd03|Bm-Mqqpm~>a~K-@V((v)1NdyXk1*~C-KY-=4IvwW-PmyJ;)wo z3-HU$EBJT#OZ;{I55BIlK>3Vvq4G85>&o5Ay~=#}(tTeoBIA}O(_`winY;5ce>HLgwJ^1Jc)89?xyvY8LZEcvYOfN>s*qB93 zANDl+clHTI3imDFOSM&XKt&}`b4^>#V9jz!;qNpzH664{ZGm=`c8j)wPNw6LbDwU# z?o(ZwzK_5QNrF|_CY%s13cm{y@OUqS%8+L$FibUUGwd-OHZ(G}GIj+gjW*^QpEWKu zE;GJm{KojBvAszJPL4MvnVhB@wC%28T@!8BkBMiJnM`IP<7P_0%?p^N%t~e(^AU5N zxx(CJ!r8X$qii-?$}VEd*p=)DtWPmTq2tDIx!hdtB-euX@sIN}__z2S{0IEE{10gF zc1pRjuhNY1s7TpJ6|IU zSr~ElYd_U~qc!T%b#~nh-3z+?Xp2aFD}7(RQg6}^)Mw~NL5_A4UKAn?%?xb}oebSj z2Q2!y$uPi>Y{)Q-GGrMh8oY+546_aM4bK~1F|0DIH|#LHZ}`k`+;GP5wc%HMdhI9U zLetx(6Q~KQiDRzD3}&*K_1rSPw`!#7Db;w*SlxJxd=tnt3R$kr~gymSda@33sZ#o!i$F9Xt#LNlNd8U zFnwaWX!_1{)!+Bz60#5Ps>3v7nlo*g-VDQd(K53X%M_~=oABOGAVn`@w5-cTa?QBb zoSZXov0Mt5&W++M+(gd9&E)2D&vVNlU*8br>wfNQ?k4ve*N}Jf;hJWeo|=9dUK6WH z(mblMY6>({HKm%xnx&d$;M6^uk2POtu4}UNJM{-J&X|OFXe>p->%tMCp&`}qkf|?n zo@L546(IL>ObZ}G-!Q#{QXDWHHJuepa-H%a7FH@?G-BeI(M%3BfQ67HR15eU(-b<@ zDAtMbVhQ^u`yMo_KNRga6-r>n`2HDRt~{vBRLxN>hs4;cYNqa|=Alvb(Dc#FMNZdh zZfoAvmh0X^?_R85fsyxP{b{{IXk>^tjKE0H*%)Q)i!orZ(Po^Ep7H@C|Ci8Gt{Hze zN=*$+ZB24hv?Cd5kG!<}*u}x6q6CF^8DC>`*qBeTm(`zR&JuFS9?eEfu2_M-?X(Hx$1r z_H$RbU%5JbBfcfy1)5VbKb+4+`^Q5*{-g^>&l{r85}ZPz@RFc33^Y87zV(FRS;I2J zDZ?3BFPU_9kME%|8px0FY$SJ-`t{JMaX$sMHziKoXH#ceP=z8gn>svv~TnA|vj{ZFaz4?sc zA(TAcxY)P`BlRUCh?Pjh{fG@b?4|zx9M31BERXO*`A7LNyoI;%c8q|J@%el){{%F{ z8T`}ye0~AHh<}lPgs)puje=M??RHj$3LqDtuhH24dX*dp@X_3x?{R8b!T)J zbl>RyruzZo#Lv24b${q2`a1gh`bPSu`j+~(`i>Yk9@h8NM`P?z>a}_U#*Z|?B0MRq z6}}d(35N`44V!4aRZ2wND4Thnd6RjEIl$auwy--en*YE`6!oC-9#C9>ZXeBQxo5cd z&_-6&<~HQ)8$LoQDEli@l#7%-Rq?6?s-@!ieO~pA>O0j{)ooRCbzAfWrTQiHen{F( z%|!Iv?V78o*S~8bwe7X>+A&(2_6h9_?JL@q+8x^Nx;)6ZcXZozAL#b!4(X2SVln2W zp|@Po_ZC=TlrUcKqGxXqb_+iUZ4G8a5yqQOp+zMchZvtlzeag>OT;yi)~LVZ81=I; z(r$n?4CI8Ad{BI>*cS*Kziw7!YxA#Q$y?qP7* zG~CM|=OsAPh&?U#C|kP)7x3k1tCM_7<-^JtWu|g7Gz%$aJjJT%nB(lmyr;gpz4{4g z=5MPns;{VfX|f=@$}rAkL9gA58P}gsWhUy{>$CMf{bc>q`qldN&~HA}pVVK_U()}f zZvz>;M_6u7UUr)GyI5 z)tBk(3QdJR0w-t$L5KnO%oTPZFZ+Z8!eQYkM*q{od7)R8Zu_!fjo~fBE{y-D4PRki z@e5ie(%234ijj(O+|%5P7`r~=KjuG$wEY6LeHQbnZ!wR(#fK@IDmyEqm3n0|=2v!Qp>irp zzC^i7xn8+P`I)kvYNz^;x(?=+6`D%TCh*_;nthssn$I;~YQEB3*8HUTMe~QIp0>5N z6XaWaT^Df{Vb&$+hUiA-`A&ye5x$~H-hVQVlC-U{vTobd)` zYfVjBj4aQZUNkMod>;3CP!)_mFLObP@W-kZ0-8OEy90-HVy) zEjgi4RW-6k0I!2kWA15RPSMD1(Y)mY1^uXsq& zQ<1JX27P@E#%qS3iQdpcIb69|`7*ft7v*Z`@PDYZut9g-4y~T971Y7(&~4m?G4Gu5TjLMLhNd>A38o^`Ow3Jx!1ynv(|;mC zFV-_ACKmJ4!I+`0VD>N#Ssprk9=nSD3^T>6n1N&}I%0PHDz}#F$oJ%z@)f*X*#|ZK zhElHT16{pR)l02XSE{$GS&cy>)2gvDG#ZlgNzAaG*S@69(0S1}6ZIqY6ZL-xC591L zzrY_y7>BZz4y?fyDWAle(;U>rV&ziha%BZpbLZr&^+V z6{TH^cG`@2RfVRGw!XHpmVPVdGKwa{dP*Bb2WY5$6t@+3aM3NCi@+>E2EDWm)>Y(O zH!h0ngB3KM(?Ca!ftH#8JvEif;6`wxxlGQA*`0%Pb3U$!o6MDP(;;={ai!csZV9)P zE91&hJL|YgtZQ!JwsX7D9{ach++pZ`C%Ds)zZbd7&?~P&Lfz)>;F?`HAHhfR8eZUI z_&7d6)CrgJWf;RN_;q|GzY!~S+xgx69)2IB*kS%CAAz+xnJNmk!KirDhk#jRoGL-( zP`Op4%s*xw#!A|Gj1brKw;`7z1ewqVGp8tl!MGVCBnYWkUC9)31vlm;CBkgTt0h92 zP=OVqEzo54L28|V+`0^{?6yD*5e6CNlXA!~2D8Z+tYW5Oo{(wCHMpVglwdYl3hleh zP+_PvY=MN|hkkj&a31>jHN$PpC?kwAV;iF!vkC_5N-$xT5l~>ZB!k=P2KKMgGu134AltmRi?@c z&Z0HyQx&NugS)1yW~0}ZsuqI7ma59YV->1(;IfUXEm$|+t=fZ?nFAP8j$-}uwCcR- zqUy5his~BH8gHxa;1XrHIzkm#sg)Il$YrbG3c(O5%q>x=ZI&~VE2 z8!;o>uHUWShc>*Xzlqhb2q98zLk6uECuE@YMvLuNf|gq-l%wV7>YjhJxrjCA+mM#D z-Q=Ps6o(c|65Gs;)|wtz>nn%++>Lg+Y`B6p3OBY8+em}fNy50CiMH{Ht+NDU!#d-3 z<8F-52aFeuH^p%x(j+srFm=E>V3DZ=a;em`(6rQ4Y1)EW>}3-^aUq_YieRFc1SXf6 zjd^PY=3JMV2qtO3y z(Z?##k1lf&d=&afEQHY4q3l{{`=YPA=9qW}}n`n8VCz%+l!^(H*Q3MY1i}4s18J56Ue-dr86? z{%B}04%Ua2(dpP5DP>a?8JO4j6h(^3iW0?i)WAGNsbZmG3ADE|jQbUeb5( z|J_mpM1_mo~J$iJU|*T8>44a{x{B2p<~ zrnW4qTff)LgqgoIlGKxyO>Jq1mrW{>unn2|b?fwQ942j7hcLNy8}zO#371S&OC{lD zBbgBl7vj@|c{mK~O!DQON;+WMoc;~Lfe9}*;pwpodd$E`|ClZzG{alGzToFD_l-v+ zr}|HOcx3ycmXAFW5nVR5=|pB~*d%7EbbMJDej*fSyB&&bw|SOuK8zNExL_ef^+UwkRg zDEu$&{f}Nsb87R*qvZn?%#_zc3n{5X!luk8%#^34Q>KtTn|?}bxqbG`%$}_Vjp{de z!Nge$ZYVQGD8DsbKN-HG{I^ z2lk!V@VS)1z32TnV$j^9^)9ySb9?IA5nmqce8OVQMl6;t*wQ{H3vx)ETDI(6zvB;ip^ccxp=%}8dp z$@Tf%x_^4M|bua5Svuhw> zmd8;eT|b}KiywXK3xB2+P4qA&5y>Sm;y*=R**ErXT9rb=+&QFXPqfu{OZ`qC10)Fxohf-4>B*D zdn4+^-j#!`C-=4=wPT$&;+UrEGH!0aIWK*`y7MzJ7#O`=^9!qw7X7~G=XfDG>}q`TJ!PSUaRIfJKb>vFXPlcapskn4o|+@=&Wh) z#&ffFjGHup?Hl&ul;#x!<)5ZwtflbU^zSm>YvA1T=ZAyNyj!p73tcClGWIyqsp!gU?EdTDc5QoV z&xV1qFSQ$2)~WR3*q?u#eEo^n$4j35Il1B4!(E3}EIRn+?1DFc+}h~I#pEx`e$Op? zvxR=ctoODBB*rOb%87qcVo=`kONMldvY{~VxnpqnzUw(o7d1&b3ly0A`>5($&&37#38@)cgwExSoXSVg8Vchh} zrY|oH|NG93A3pi>p~zRSz3^x6&-H2T+iQCKVj9Fu4Zj1}0{z&Q*8RfUecN1kv`Nny z>$+YVT`R}TxR7rApixxKC{ZEkp?$>!!HNd?6Gn)erwl7PmhTs zs+LhI*y^rHolLN6PTBkya}W>$4V$;B9#ZMyHhGH8SLpIgWc7^JpG8FmK6~etyRzl^ z`1L!BPfj_+i!rINu(0OP;&EH#QCU41EppeFCJt-fql$X4p!8dQaym>?WkJC(+Gqt; z75-88-|$=UnI&TMq-`nuJRO?zhU)3;}bKi#tK*68V77F|5DG&Sk> z&${k7`P17$&=6y%*dU~=!|8S>UH%2_Z^rmFfM-8@=e7duT&yv$4dBQhW zrdUQ4uQ=aY)~scZ$_vT-Q@sbuqs!*iqgOO( zxMr0swK3l}dG)9J$3A>?-u4^L$vwAA#@u0NjXXAQM$U-YZOe8kuYK2hMVCvZx2Anl z@k3_O*vB)c{V}}Z7;~enjLa`$yIl2m|EZEwsHx-PFi^WIyJ;7bhug7{YOC8Yb7q2M z=IwY%z1CsOFeWNEx=SUkI^4JYvfN&#S5-_Y)2ZG4IvxNdBL=j$Z!iYZrPZ! zQOu*vaAs($`rzsuTfZE8Hni8yOuc|k9NyyDZ$57~bKU%BCVp_JWWv#eHhms%+n0H` z)k6U(fGQOh_D>2)mJ;n84mFB_8dcVHrpWH# z_PZ1*cb0_{1t3+3p&oT*CbZG@K)h1UN}6lqPu(F zGSkA&5z%{;FPAUt^iwTqLgnAwu-#`Co-i-B*ehFB6zyd`DixmW|4X;c7pHk!hd&iA zTe|G4-=_5Ye)q?5mptcFHxHG`r#Tltck!i1CTvu*r&mUQKacF~IOI~YV(X0CDLa45 z8EU&WVdtcet(tZ+Sy6ledt>ILuqK)BZy58+t-09+Q`p4N2F)DeDv4CS((@$pq$kkh|d(~xC+_8w536d-UIUSqmDLt z27Z&=i66|)p+7C^pCyUkNp*@}T(UUiNj@uUWCTjOVRL1iJ%|3JwLCFS9+aNZ^5o!| zWqG3cu1&ZKX!~R2Wec)tiee|H6%wg}RahFvyyw^{>dTzn3dfDG^ zC|uU=;e|hr{-NcK@u$<|Nn?8&KPZ3X^ys&~(k-&iFDyFadM0+xj$_9C@9Ze=V_r4m z*_|(_W?pUmMP>HLf)^I8e35xS^Sk-hq!vqb_1bDb{Orx?*L#2d^wNWoG5d}r#P~dY zPoCypI5NKN@MiA@W#2T&zNawxMR#j1&U$K0RO*#5aWtrNxBy1I7L zNbgx9i``OFNY*Hk&BJu2_3}`78>Ussy#-Ixy7m17Mt@`slfG~nCWqCF745@CjgdfU ztkvVi$==kMZ+aJQocLOuvQyiXA5;_#T#RPes<$&UFj6(q7QrKe*9D2DfW50 zRz5xTm`eX;%cY~&Pi)FRv$F2C-!j^Di<`$z4J*QA&nJ~gm?@w9uN8t)*nF@Z)uh8&43Eac zqxMG2Ql1;x`k^IW{TeR!`kcRovL2>~;ZsVMxsC5Ov%L1){z+G3p6YY{Qr&NVh`q4w z(0hL*_Io+u_apYsSNAr4Iir5}(`{!iT=wj|Rb%*@`?}3u85Y0imGvoCf1h=8)|kl8 zpF98I$tQmfJNU*6DOcKlVd`RRll8Y3UsitQI+i}|qch~d7eAK`IOn|(IeyRz_05s) z8E+k%-15zbzMXtFD{dK;M^hz_S7*L1J5}O zt;fqN2Cr#eQEsmH$LC!iANkS;e;(Lz^U1$ITNG}ar+Y=k?`iPS))hSxyKXr%RQgug z;ATh4`20!wgZqYjuw>!uTaVQJVEZ*g!o?k(m(8C$*t+Y>W^d*l{PHvD!3xC>-&XL; p$JxG-c0L%kL1K>nCTySA2++NQxpUiI#0qD{@7xwA`h4 zmlEmUNPrx22n@r(Z{%PYIr(7t5abjXMh-q0J_J7e2#g@e!O$Tvf*f)S;6vd2Url#U zKc=TSqh0y(6DZAWS5<%2@2>6|J^DhWwRG{t9nbXHfBO&g4;2m!4DEl`PVbjL5B2vS z60hfW5YfMgiVqN#OGJmS5Uu@9(8X&+Oy_q>dJ|7j{YydB&xn{V3<#=xK*Y4PA!zv= zQAB^i6SO)h=?{2<8U;a1e}_D%IxT2r7ZKAM3A*q;@&`5F5>)R1AJpy>)P(I!Yfxai zv`0{FjEJcP`fF?}uQ;w6+DRQp)aWt2Z6$XsUnM$l`YA|Fr- zWoD`j30k@pd$hPW)98{V|OLi|H8bWt#rCpt0K_4;ncnX!IfE z3mSh@(9yezB0{|$1x>sw=m>O}j{Q;4#4ec=8w-V&Q&W@gqCK_w&%H)KaS0bT3TWPFR+g8mm zrdHMh(49+|6ZelKOUmo4dwK=u{ia)ny;FtXq$W)Q_@0 zzTQD4>%3#|xSCuEp*=Hke5O@xSJ7Xc{$X=OIqkF<1GQsw;=D&{Ejgx=xm&zAe=F5N zuz1jztyY!+Y*}ukLE?0))~UK8W}?6yZmzDbH)=~29{w1)X5U8PJZzyi*SyfVT4`0w z%gd-ly9%M_VN0t=YAdx)r5=q8XQto+B-v8W=!EUkfH_iGEy0CWR9Kmx=mHL2nt*Mo zSJg1pMxaSPG*NAbTeant>ip)KI~6({NFS*;&-2v1y4s%QUTjTXJ|=Xg zo1NN)&8X_Iq6E$Yd}22BPFj0^vj** z2qwoXz9rwogT_dw$xD^eu$D>>Z*FRIaiUS{U?Wg_-C6_Pbe0^hS1XP6HM6%_i7bPi z3tXYGW^1asyk5uRWsFuom$k-ft#(If*a{AVWv8nfUQs)pC1=nx?Cewua|PVt&FRXj zH5if{Q+i^?oOiXXNH-;?%ENw9$LDc zD6&YfeR_vCJ7_v{iJP?zE^Hu`iyfv?{Bp0#`pxi1WZCo@^l_QOP8lK+Ogsiv-)Jr)xi5 zSA>}s_XZ5GSVR?jz^-jU{VZ2JQB$90iX$(#o|^J(myFl)4Bzc5$NG`>W4HLWfM zU=N=)%d<1yPHU&L1aO zOL;o>+>&IlY&6XZ1!KZYGFX=9S)Zt#&XUIDB>S43C}l7aSL?=9DTLxwDJ38$MiPQ1 zL&}OSn2^-ThINNGWwJ5UwV4)|z4FS&=>r49tt#)Jv>%#e#IhsRcBj?cG^$kz8=P2L zIqI^$l&DIM<#=afZpD;foE}R?8w{VQX2h}+&81G=oc2|=ni0#!KC)wKoE}TEO(T^~ zg{LFac~_Yy_?D*V2S($VYMN>3sKrlD-lmeljkTfzqQAmv(s?>1^UC;gFaXlCFof(p zFjv6}gYC;BAr$8kHEXE4lLE1B+!D1;u%RS7*3((~6%+he6IIS`%y^}-Y)z}Gy zNxAvU3v!QkKsJ7&t`>Bwl9k<;QjGrzTO|aNuce^z1)|)O?Px30ZtDVJK z<3h8w8lAN`MwJuz(nwZg3)|@1aS!cDUOYtNK^PiG0U;hMHrpOYNgj`*WU3l@K3;ln zvGbWJXX!0Iono|PI%bWJo-VYjm0B~Z{zc3*M~(nOcZ+;V#b^R7Wda%1AUU;)(JsLS znJJIx90L+Xv2eTUdJLxWi!0V7?&M&#Oa{rK*lResaD!k`oS)>juv#LkI9sW_LML;c zHsy)QB8Hl-t~@H7znD&(+>2$^msYXSW&3rV=F*7}&R5o#7hAmh^uWZ-b`mD$Wm1$g z7LL?b;f+;Rs+dpfl}%T7+*rZHyp%~JDoL%erL0|1*%b2M!S9dn;NKvk2Z}_cGHxah z6a5Xhiq|d@?L1HPCg@Atl73bt8o+Jn2Nm2_F5yOYndmQ|$yK61fC>$wzaxDba=TWL zA@X=1@^3Y9n+g5CHZbtcH{^RR;YPBC{8~is;(huxq7R|}OXz(Kx&-Wx!QXiqX`pXF zpF-vX$PWSkR^aSA1HF?(JI)e)gy*NPAir0MzIqvHpbgL|q`h$(X`nL;M0eu3=M?l_ zBKkF+Um)$D&|g?2`W*B#yuXV)#&CoA5oA8W^V&Sod%${o4!SeA`N!|K@%)AfX=AfQ ze?5V8&~E(x9e#g}vR>#A?Y&C$4(LytsHb(JUm^V;8>l<{-i~MC3d)J}-{SfE*HQOK zE8+QP=)N_IIv+;8j1c`|4D~h*`;I_w9Qht2`Zs>xj`Ty|KLpt~k$yLBX5Rz7I{_YK z{|LEVct46;>aV6?2cEw<4t%`-3r%!^nzVw3s#1e4(mGwD%k&yur4F^IO?A3L8}vH8 zL7P;gRr+r_N|Q82CuoL_(;Usx1WnU1Izs!XpPr|m(sOi>4$-spBE3MP^b;DV0u9mu z8lwF)K*RJ59i}3cs7xa?Mn9tO(5-YE{h02gyXm|1J-UbPpdGY}?xn}*aoSC{(8Kfu zJw%Vt9(t1Y(hul%`Y+l^chRHt0NqF5rw8d~>Z7OVhx9bvPiJVJPSP^HM2mEm&e174 zO|Q~8o_+{d)SA%66>8 z!ksSd-ArX(jYB(;8@svcjeEdLnBloPi?OV`-1~=|i!^T^vaO2wb|<-g%-%RSxi%eq zgl8O{@=tLRs4q>Bwr9 z3>$GlCX9#JYE*bslw#BJDVbE;qYearJE^a7EUPY9)i5muMIg9|5Zowij!sM ze64{*(*XXN^L|HW9jaaA>Q*OrUGD`lQuPt-R^ebQY{!eaAza=|W$u{%$S8l*4`5hB zM+>R0hXdRMPe=QhED>+v@?<`I4K9S$6u~iY(Ws4(ao*|%*}xv88bLy=?+Lp=a?aoh zXvD|)B22<4xCn272(N)U#y}>d2FQ3KU1F77p%YTeANasFp;BbMd1Ca?50lN#iD@ls z^Q_hb%Z`YFX-G>AO7gTJ#1n0ZG=F@OIve0iZ$L$7FWyj{h+{QPl;UrKh?N%J5iwPT zsuOQLIOCL-x^0TLT)wL#^jKp}wTkDFu7!xjr8-@n-TiOTgU$GuzS z7VYQwDmTtS^zLX7S~+uiba&z2FvJXXhh$~tu`#OK=-Mlm6wSmJQEu*@6Zay4V#ZIQc-Y9KwLe%%Q#sLW zBr{${WM{E`ZK$&dv>}At<}xZX7#ke#Aypl?UL3Y^g@g&vh>xp5Z8Jj>lb$nLek{VJ5@sV*$0rjuUtf zVt84euOzg`VksqEN*`N&&0t0ZM=t7Ck^5fP$3pP9nigOBM{%0#b{dS-u7{yyRF2`Z zSjxKRdHNNyu-#Ep)#H?!?9{%4Ou_T@9dJBuYMiOsj#=#yZ7Gv3YpfLUJ>5WfKjPCI zZ$n1{;g*a7cfOq3u?@GlxTVG4wtdUh^Xn^o zzbyVrc)Tg!)uTi^5AUlj!@AuAD(zmpd=9!M6K=w@ME##gxgnX18(7?CgRZFrJWJH~ z$#y*N!mTX-?a+mKlJ41g873?Zm&gL~j}d7A!Sa*I?=$8~;Q9`HzBQ4gO=>wv#Gx3D@aNP?4wH>Ib9bHG2Lw2wActXbGe0 zQ7BG~yRszEF5h8GvYy-l_^P_nw2Ot^2fvneOhov7?YOwjY2U zKfr3_+z1*_`ZZgd45svt9|Gxqg``f$#rNbIBKPPFp*^6`?7Pbwg!Z69!*0vC5bXl3 zkTT{UL`^u@vwmz2pf>O=d41?j)*<@ zM-0sPn%Mx;ui5&4e4OOWk9_{pr?9N+QH^jN?Uu5`VzfsUnsp=I4O*z}9#d!laPQf> z!3@>s;}IqPCS^wox7d0AMDfTNg5w;`aj0~{ceKb_I z0T)d~FBx$9HCw+NOc{%OyLP}uOHMaEEnUIJQ-M~xNJbCMR=QBj4JtG%ddmRIUA98X zdG&p$%OQm(W5T+@3ANclh2un;b%ht$Sszk(0C4|L#jY>|EAF!zvuFE?(ER+IftMTt zx|G@aMAd2CRO~R?DF~yKxuQ2@BR(*D*V!l$KAZCN!?BT6}|Qfa%wa zWlWigIM(E-#!_dr^7B@WlD~AJ(RoZGIHL zHa9}QqqukjGWQG@I+dO^Fyk<515CeWY`eg2cFw>`gz#&i{QV_x!ZDx3G{VIV(A>2e z+E1ReP~DH&yFv}DlBWz*U*vmNxPdx8ZQv%qjOYfnkm70Hk1@Gmpo$>=ZjeH!EH6nU z=PM2aPQPXxB`I@FAIfzmM(f?4F0|Wt*}(fY_g1fXaeK123arVmYE*MSC{e$7^=q0_R}BpM2eF6up8$&H+{ z67$V&BMmwJ@=v4XUz0;+ZYGi4uOkg;{hF<|L*CY!h1|V28Jf>uv#_F2Y<$P5OOwA& zL%wS(f#&T%`NwBq7tl^%8ee}J1=X+FS}?RWcl?<0LspG+9km-cXIW36`UZ(c&sfgD lEOf;}jK8_n5JpeRh!&V>uO`v_O_{&{1oj{sDX7WD{6CNtN`C+V literal 0 HcmV?d00001 diff --git a/Sources/VisualInspectionPage.cpp b/Sources/VisualInspectionPage.cpp new file mode 100644 index 0000000..7d1ded6 --- /dev/null +++ b/Sources/VisualInspectionPage.cpp @@ -0,0 +1,16 @@ +#include "VisualInspectionPage.h" +#include "ui_VisualInspectionPage.h" + +CVisualInspectionPage::CVisualInspectionPage(QWidget *parent) : + QWidget(parent), + ui(new Ui::CVisualInspectionPage) +{ + mProgramHandle = 0; + ui->setupUi(this); + +} + +CVisualInspectionPage::~CVisualInspectionPage() +{ + delete ui; +} diff --git a/Sources/VisualInspectionPage.h b/Sources/VisualInspectionPage.h new file mode 100644 index 0000000..ed8dfac --- /dev/null +++ b/Sources/VisualInspectionPage.h @@ -0,0 +1,27 @@ +#ifndef VISUALINSPECTIONPAGE_H +#define VISUALINSPECTIONPAGE_H + +#include + +class CCableTestBench; + +namespace Ui { +class CVisualInspectionPage; +} + +class CVisualInspectionPage : public QWidget +{ + Q_OBJECT + +public: + explicit CVisualInspectionPage(QWidget *parent = 0); + ~CVisualInspectionPage(); + CCableTestBench *mProgramHandle; + +private: + Ui::CVisualInspectionPage *ui; + + +}; + +#endif // VISUALINSPECTIONPAGE_H diff --git a/Sources/VisualInspectionPage.ui b/Sources/VisualInspectionPage.ui new file mode 100644 index 0000000..1df32f8 --- /dev/null +++ b/Sources/VisualInspectionPage.ui @@ -0,0 +1,63 @@ + + + CVisualInspectionPage + + + + 0 + 0 + 1103 + 710 + + + + Form + + + + + 100 + 50 + 211 + 17 + + + + + 12 + + + + Vérifiez ceci + + + + + + 100 + 90 + 70 + 17 + + + + CheckBox + + + + + + 100 + 140 + 70 + 17 + + + + CheckBox + + + + + + diff --git a/Sources/Widgets/CConnectorSelectWidget.cpp b/Sources/Widgets/CConnectorSelectWidget.cpp new file mode 100644 index 0000000..7f23949 --- /dev/null +++ b/Sources/Widgets/CConnectorSelectWidget.cpp @@ -0,0 +1,6 @@ +#include "CConnectorSelectWidget.h" + +CConnectorSelectWidget::CConnectorSelectWidget(QWidget *parent) : + QWidget(parent) +{ +} diff --git a/Sources/Widgets/CConnectorSelectWidget.h b/Sources/Widgets/CConnectorSelectWidget.h new file mode 100644 index 0000000..cad19d9 --- /dev/null +++ b/Sources/Widgets/CConnectorSelectWidget.h @@ -0,0 +1,18 @@ +#ifndef CCONNECTORSELECTWIDGET_H +#define CCONNECTORSELECTWIDGET_H + +#include + +class CConnectorSelectWidget : public QWidget +{ + Q_OBJECT +public: + explicit CConnectorSelectWidget(QWidget *parent = 0); + +signals: + +public slots: + +}; + +#endif // CCONNECTORSELECTWIDGET_H diff --git a/Sources/Widgets/CConnectorSelectWidget.h.autosave b/Sources/Widgets/CConnectorSelectWidget.h.autosave new file mode 100644 index 0000000..2a80567 --- /dev/null +++ b/Sources/Widgets/CConnectorSelectWidget.h.autosave @@ -0,0 +1,19 @@ + +#ifndef CCONNECTORSELECTWIDGET_H +#define CCONNECTORSELECTWIDGET_H + +#include + +class CConnectorSelectWidget : public QWidget +{ + Q_OBJECT +public: + explicit CConnectorSelectWidget(QWidget *parent = 0); + +signals: + +public slots: + +}; + +#endif // CCONNECTORSELECTWIDGET_H diff --git a/Sources/ZTInfo.cpp b/Sources/ZTInfo.cpp new file mode 100644 index 0000000..a438bc2 --- /dev/null +++ b/Sources/ZTInfo.cpp @@ -0,0 +1,6 @@ +#include "ZTInfo.h" + +CZTInfo::CZTInfo() +{ + +} diff --git a/Sources/main.cpp b/Sources/main.cpp new file mode 100644 index 0000000..2d0104c --- /dev/null +++ b/Sources/main.cpp @@ -0,0 +1,13 @@ +//#include "MainWindow.h" +#include "CableTestBench.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + CCableTestBench CableTestBench; + CableTestBench.Start(); + + return a.exec(); +} diff --git a/images/connecteurs.png b/images/connecteurs.png new file mode 100644 index 0000000000000000000000000000000000000000..b25666e3c4a83f555b510b823e37605b403a5c82 GIT binary patch literal 32972 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�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 literal 0 HcmV?d00001 diff --git a/images/green-led-on-md.png b/images/green-led-on-md.png new file mode 100644 index 0000000000000000000000000000000000000000..fa2b48845b5a028194a7d8ed1fb82041f9e9d055 GIT binary patch literal 24094 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 literal 0 HcmV?d00001 diff --git a/object_script.CableTestBench.Debug b/object_script.CableTestBench.Debug new file mode 100644 index 0000000..ec6638a --- /dev/null +++ b/object_script.CableTestBench.Debug @@ -0,0 +1,13 @@ +INPUT( +./debug\MainWindow.o +./debug\main.o +./debug\MainPage.o +./debug\CableTestBench.o +./debug\VisualInspectionPage.o +./debug\CConnectorSelectWidget.o +./debug\moc_MainWindow.o +./debug\moc_MainPage.o +./debug\moc_CableTestBench.o +./debug\moc_VisualInspectionPage.o +./debug\moc_CConnectorSelectWidget.o +); diff --git a/object_script.CableTestBench.Release b/object_script.CableTestBench.Release new file mode 100644 index 0000000..9a73ba7 --- /dev/null +++ b/object_script.CableTestBench.Release @@ -0,0 +1,13 @@ +INPUT( +./release\MainWindow.o +./release\main.o +./release\MainPage.o +./release\CableTestBench.o +./release\VisualInspectionPage.o +./release\CConnectorSelectWidget.o +./release\moc_MainWindow.o +./release\moc_MainPage.o +./release\moc_CableTestBench.o +./release\moc_VisualInspectionPage.o +./release\moc_CConnectorSelectWidget.o +); diff --git a/ui_CMainPage.h b/ui_CMainPage.h new file mode 100644 index 0000000..8b9c903 --- /dev/null +++ b/ui_CMainPage.h @@ -0,0 +1,69 @@ +/******************************************************************************** +** Form generated from reading UI file 'CMainPage.ui' +** +** Created: Wed Mar 27 11:28:49 2019 +** by: Qt User Interface Compiler version 4.8.1 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_CMAINPAGE_H +#define UI_CMAINPAGE_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_CMainPage +{ +public: + QPushButton *mInspVisuelleBtn; + QFrame *line; + QLabel *mConnectorsImgLbl; + + void setupUi(QWidget *CMainPage) + { + if (CMainPage->objectName().isEmpty()) + CMainPage->setObjectName(QString::fromUtf8("CMainPage")); + CMainPage->resize(1124, 693); + mInspVisuelleBtn = new QPushButton(CMainPage); + mInspVisuelleBtn->setObjectName(QString::fromUtf8("mInspVisuelleBtn")); + mInspVisuelleBtn->setGeometry(QRect(40, 210, 111, 23)); + line = new QFrame(CMainPage); + line->setObjectName(QString::fromUtf8("line")); + line->setGeometry(QRect(550, 30, 20, 641)); + line->setFrameShape(QFrame::VLine); + line->setFrameShadow(QFrame::Sunken); + mConnectorsImgLbl = new QLabel(CMainPage); + mConnectorsImgLbl->setObjectName(QString::fromUtf8("mConnectorsImgLbl")); + mConnectorsImgLbl->setGeometry(QRect(580, 30, 491, 431)); + + retranslateUi(CMainPage); + + QMetaObject::connectSlotsByName(CMainPage); + } // setupUi + + void retranslateUi(QWidget *CMainPage) + { + CMainPage->setWindowTitle(QApplication::translate("CMainPage", "Form", 0, QApplication::UnicodeUTF8)); + mInspVisuelleBtn->setText(QApplication::translate("CMainPage", "Inspection Visuelle", 0, QApplication::UnicodeUTF8)); + mConnectorsImgLbl->setText(QApplication::translate("CMainPage", "TextLabel", 0, QApplication::UnicodeUTF8)); + } // retranslateUi + +}; + +namespace Ui { + class CMainPage: public Ui_CMainPage {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_CMAINPAGE_H diff --git a/ui_VisualInspectionPage.h b/ui_VisualInspectionPage.h new file mode 100644 index 0000000..74efc45 --- /dev/null +++ b/ui_VisualInspectionPage.h @@ -0,0 +1,69 @@ +/******************************************************************************** +** Form generated from reading UI file 'VisualInspectionPage.ui' +** +** Created: Wed Mar 27 10:53:05 2019 +** by: Qt User Interface Compiler version 4.8.1 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_VISUALINSPECTIONPAGE_H +#define UI_VISUALINSPECTIONPAGE_H + +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_CVisualInspectionPage +{ +public: + QCheckBox *checkBox; + QCheckBox *checkBox_2; + QCheckBox *checkBox_3; + + void setupUi(QWidget *CVisualInspectionPage) + { + if (CVisualInspectionPage->objectName().isEmpty()) + CVisualInspectionPage->setObjectName(QString::fromUtf8("CVisualInspectionPage")); + CVisualInspectionPage->resize(1103, 710); + checkBox = new QCheckBox(CVisualInspectionPage); + checkBox->setObjectName(QString::fromUtf8("checkBox")); + checkBox->setGeometry(QRect(100, 50, 211, 17)); + QFont font; + font.setPointSize(12); + checkBox->setFont(font); + checkBox_2 = new QCheckBox(CVisualInspectionPage); + checkBox_2->setObjectName(QString::fromUtf8("checkBox_2")); + checkBox_2->setGeometry(QRect(100, 90, 70, 17)); + checkBox_3 = new QCheckBox(CVisualInspectionPage); + checkBox_3->setObjectName(QString::fromUtf8("checkBox_3")); + checkBox_3->setGeometry(QRect(100, 140, 70, 17)); + + retranslateUi(CVisualInspectionPage); + + QMetaObject::connectSlotsByName(CVisualInspectionPage); + } // setupUi + + void retranslateUi(QWidget *CVisualInspectionPage) + { + CVisualInspectionPage->setWindowTitle(QApplication::translate("CVisualInspectionPage", "Form", 0, QApplication::UnicodeUTF8)); + checkBox->setText(QApplication::translate("CVisualInspectionPage", "V\303\251rifiez ceci", 0, QApplication::UnicodeUTF8)); + checkBox_2->setText(QApplication::translate("CVisualInspectionPage", "CheckBox", 0, QApplication::UnicodeUTF8)); + checkBox_3->setText(QApplication::translate("CVisualInspectionPage", "CheckBox", 0, QApplication::UnicodeUTF8)); + } // retranslateUi + +}; + +namespace Ui { + class CVisualInspectionPage: public Ui_CVisualInspectionPage {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_VISUALINSPECTIONPAGE_H