diff --git a/README.md b/README.md index d7c60ec..ad0c7c8 100644 --- a/README.md +++ b/README.md @@ -13,59 +13,68 @@ [腾讯视频热播列表](腾讯视频热播列表/) -[ QWebView 与 python 通过js交互 特效 - 已失效 未更新](https://github.com/892768447/PhotoEffects) +[ QWebView 与 python 通过js交互 特效 - QWebEngine需要改代码](https://github.com/892768447/PhotoEffects) + ### II、功能型 #### 2.1 常用例子 - - [ 自定义属性测试](自定义属性测试/) - - [ 自动更新](自动更新/) - - [ 自定义import](自定义import/) - - [ 全局热键](全局热键/) - - [ 单实例应用 - 只允许运行一个程序](单实例应用/) - - [ 程序重启](程序重启/) - - [ 窗口重启](窗口重启/) - - python 的exec( ) 动态生成控件 +1. - [ 自定义属性测试](自定义属性测试/) +1. - [ 自动更新](自动更新/) +1. - [ 自定义import](自定义import/) +1. - [ 全局热键](全局热键/) +1. - [ 单实例应用 - 只允许运行一个程序](单实例应用/) +1. - [ 程序重启](程序重启/) +1. - [ 窗口重启](窗口重启/) +1. - python 的exec( ) 动态生成控件 - [1. 动态控件基础例子 - 动态生成按钮](partner_625781186/exec动态生成控件/dynamic_button) - [2. 动态控件基础例子 - 动态生成菜单](partner_625781186/exec动态生成控件/dynamic_Menu) - - [3.配合setting记录模型类型](partner_625781186/exec动态生成控件/) + - [3. 配合setting记录模型类型](partner_625781186/13.combo_listwidget) + - 小部件 - - [ ☆! QSplitter 分割条重写 来添加按钮](分割窗口的分割条重写/) - - - [ QLabel 图片加载 gif动画](图片加载/) - - [ ComboBox 下拉选择级联--省、市、县 json 数据 ](下拉选择联动/) + 1. - [ ☆! QSplitter 分割条重写 来添加按钮](分割窗口的分割条重写/ + 1. - [ QLabel 图片加载 gif动画](图片加载/) + 1. - [ ComboBox 下拉选择级联--省、市、县 json 数据 ](下拉选择联动/) + 1. - [ ComboBox 自定义下拉 listitem ](下拉选择联动/) + 1. - [ 仿QQ设置面板](仿QQ设置面板/) + 1. - [ 右下角弹出框](右下角弹出框/) + 1. - [ 消息对话框倒计时关闭](消息对话框倒计时关闭/) + 1. - [ QTextEdit 文本高亮](文本高亮/) + 1. - [ QActiveX窗口 加载本地word/pdf](ActiveX窗口/) - - [ 仿QQ设置面板](仿QQ设置面板/) - - [ 右下角弹出框](右下角弹出框/) - - [ 消息对话框倒计时关闭](消息对话框倒计时关闭/) - - win 32 - - [ 嵌入外部窗口](嵌入外部窗口/) - - [ 探测窗口和 放大镜](探测窗口和放大截图/) + 1. - [ 线程的挂起与恢复](多线程使用/) + 1. - [ 嵌入外部窗口](嵌入外部窗口/) + 1. - [ 截图dll (只能用32位python)](调用截图dll(只能用32位)/) + 1. - [ 探测窗口 和 放大镜](探测窗口和放大截图/) - Model & View - - [ QTabWidget 左侧标签 正字方法](左侧选项卡/) - - [ QTabWidget 表格复制 与 黏贴](表格复制/) + 1. - [ QTabWidget 左侧标签 正字方法](左侧选项卡/) + 1. - [ QTabWidget 表格复制 与 黏贴](表格复制/) - - [ QListView 加按钮和 排序](QListView/) - - [ Json生成QTreeWidget](Json生成QTreeWidget/) - - [ QSqlTableModel + QTableView 数据库查询显示表格](数据库查询显示表格/) + 1. - [ QListView 加按钮和 排序](QListView/) + 1. - [ Json生成QTreeWidget](Json生成QTreeWidget/) + 1. - [ treeWidget 节点可拖拽](https://github.com/AshotS/glowing-disco) + 1. - [ treeWidget 支持拖拽 并改变图标样式](12.1拖拽显示为图片/) + 1. - [ QSqlTableModel + QTableView 数据库查询显示表格](数据库查询显示表格/) - 浏览器QWebEngine模块例子 - - [ 浏览器获取Cookie](浏览器获取Cookie/) - - [ 浏览器下载功能](partner_625781186/QWebEngineView下载文件) - - [ 梦幻树 QWebView - 已失效 未更新](梦幻树/) - - [ QWebView 与 python 通过js交互 特效 - 已失效 未更新](https://github.com/892768447/PhotoEffects) + 1. - [ 浏览器获取Cookie](浏览器获取Cookie/) + 1. - [ 浏览器下载功能](partner_625781186/QWebEngineView下载文件) + 1. - [ 浏览器开启调试工具](partner_625781186/14.多进程爬虫) + + 1. - [ 梦幻树 QWebView - QWebEngine需要改代码](梦幻树/) + 1. - [ QWebView 与 python 通过js交互 特效 - QWebEngine需要改代码](https://github.com/892768447/PhotoEffects) #### 2.2 框架 -- [ 无边框自定义标题栏窗口](无边框自定义标题栏窗口/) -- [ 验证码控件](验证码控件/) -- 悬浮下拉菜单 - - [ tableWidget形式](partner_625781186/hoverMenu) +1. - [ 无边框自定义标题栏窗口](无边框自定义标题栏窗口/) +1. - [ 验证码控件](验证码控件/) +1. - 悬浮下拉菜单 + - [ tableWidget形式](partner_625781186/hoverMenu) #### 2.3 其他案例 - [ 人脸描点检测](人脸描点检测/) @@ -101,17 +110,17 @@ 1. - [ 水波纹进度条](界面美化/水波纹进度条) ### IIII、图表型 -#### [4.1 QGraphicsView练习](QGraphicsView练习/) +#### 4.1 [ QGraphicsView练习](QGraphicsView练习/) - [ 世界地图](QGraphicsView练习/世界地图) - [ 添加QWidget](QGraphicsView练习/添加QWidget.py) - [ QChartToolTipTest](QGraphicsView练习/QChartToolTipTest.py) -#### [4.2 PyQtChart练习](PyQtChart练习/) +#### 4.2 [ PyQtChart练习](PyQtChart练习/) - [ charts](PyQtChart练习/charts) - [ test](PyQtChart练习/test) -### [IV、QML](partner_625781186/QML_QtQuick_PY) +### IV、[QML](partner_625781186/QML_QtQuick_PY) - [python_QML调用基础](partner_625781186/QML_QtQuick_PY/python_QML调用基础) - QWidget窗体中嵌入qml界面 - [QDialog中嵌入qml窗体并缩放](partner_625781186/QML_QtQuick_PY/QDialog中嵌入qml窗体并缩放) diff --git a/partner_625781186/12.1拖拽显示为图片/Custom_DND_image.py b/partner_625781186/12.1拖拽显示为图片/Custom_DND_image.py new file mode 100644 index 0000000..43031d7 --- /dev/null +++ b/partner_625781186/12.1拖拽显示为图片/Custom_DND_image.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python2 +import os +import sys +import re + +from PyQt5 import QtGui, QtCore, QtWidgets +from PyQt5.Qt import QDir + +from PyQt5 import QtGui, QtWidgets, QtCore, QtWinExtras +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * + +""" +Created on $date$
+description: 树视图支持拖拽 并改变图标样式
+author: 东love方
+ +""" + +class MyTreeWidget(QTreeWidget): + + def mouseMoveEvent_xxx(self, e): + mimeData = QtCore.QMimeData() + drag = QDrag(self) + drag.setMimeData(mimeData) + + # pixmap = QPixmap() + # drag.setPixmap(pixmap) + + # drag.setHotSpot(e.pos()) + + # QTreeWidget.mouseMoveEvent(self,e) + drag.exec_(QtCore.Qt.MoveAction) + + def dropEvent(self, e): + QTreeWidget.dropEvent(self, e) + self.expandAll() + e.accept() + + def startDrag(self, supportedActions): + listsQModelIndex = self.selectedIndexes() + if listsQModelIndex: + dataQMimeData = self.model().mimeData(listsQModelIndex) + if not dataQMimeData: + return None + dragQDrag = QDrag(self) + dragQDrag.setPixmap( + QPixmap(QDir.currentPath() + "/if_Cursor_drag_arrow_103039.png")) # <- For put your + # custom image here + dragQDrag.setMimeData(dataQMimeData) + defaultDropAction = QtCore.Qt.IgnoreAction + if ((supportedActions & QtCore.Qt.CopyAction) and (self.dragDropMode() != QAbstractItemView.InternalMove)): + defaultDropAction = QtCore.Qt.CopyAction + dragQDrag.exec_(supportedActions, defaultDropAction) + + +class TheUI(QDialog): + + def __init__(self, args=None, parent=None): + super(TheUI, self).__init__(parent) + self.layout = QVBoxLayout(self) + treeWidget = MyTreeWidget() + + button = QPushButton('Add') + self.layout.addWidget(treeWidget) + self.layout.addWidget(button) + treeWidget.setHeaderHidden(True) + + self.treeWidget = treeWidget + self.button = button + self.button.clicked.connect(lambda *x: self.addCmd()) + + HEADERS = ("script", "chunksize", "mem") + self.treeWidget.setHeaderLabels(HEADERS) + self.treeWidget.setColumnCount(len(HEADERS)) + + self.treeWidget.setColumnWidth(0, 160) + self.treeWidget.header().show() + + self.treeWidget.setDragDropMode(QAbstractItemView.InternalMove) + + self.resize(500, 500) + for i in range(6): + item = self.addCmd(i) + if i in (3, 4): + self.addCmd('%s-1' % i, parent=item) + + self.treeWidget.expandAll() + self.setStyleSheet("QTreeWidget::item{ height: 30px; }") + + def addCmd(self, i, parent=None): + 'add a level to tree widget' + + root = self.treeWidget.invisibleRootItem() + if not parent: + parent = root + item = QTreeWidgetItem(parent, ['script %s' % i, '1', '150']) + return item + +if __name__ == '__main__': + app = QApplication(sys.argv) + gui = TheUI() + gui.show() + app.exec_() diff --git a/partner_625781186/12.1拖拽显示为图片/README.md b/partner_625781186/12.1拖拽显示为图片/README.md new file mode 100644 index 0000000..cb52188 --- /dev/null +++ b/partner_625781186/12.1拖拽显示为图片/README.md @@ -0,0 +1,4 @@ +# 12.1拖拽显示为图片 + + +![1](ScreenShot/1.gif) \ No newline at end of file diff --git a/partner_625781186/12.1拖拽显示为图片/ScreenShot/1.gif b/partner_625781186/12.1拖拽显示为图片/ScreenShot/1.gif new file mode 100644 index 0000000..9a06499 Binary files /dev/null and b/partner_625781186/12.1拖拽显示为图片/ScreenShot/1.gif differ diff --git a/partner_625781186/12.1拖拽显示为图片/if_Cursor_drag_arrow_103039.png b/partner_625781186/12.1拖拽显示为图片/if_Cursor_drag_arrow_103039.png new file mode 100644 index 0000000..4ad72a3 Binary files /dev/null and b/partner_625781186/12.1拖拽显示为图片/if_Cursor_drag_arrow_103039.png differ diff --git a/partner_625781186/13.combo_listwidget/README.md b/partner_625781186/13.combo_listwidget/README.md new file mode 100644 index 0000000..4f2d186 --- /dev/null +++ b/partner_625781186/13.combo_listwidget/README.md @@ -0,0 +1,4 @@ +# comboxBox 自定义下拉 + + +![1](ScreenShot/1.gif) \ No newline at end of file diff --git a/partner_625781186/13.combo_listwidget/ScreenShot/1.gif b/partner_625781186/13.combo_listwidget/ScreenShot/1.gif new file mode 100644 index 0000000..85e0ddb Binary files /dev/null and b/partner_625781186/13.combo_listwidget/ScreenShot/1.gif differ diff --git a/partner_625781186/13.combo_listwidget/combo_listwidget.py b/partner_625781186/13.combo_listwidget/combo_listwidget.py new file mode 100644 index 0000000..28c3524 --- /dev/null +++ b/partner_625781186/13.combo_listwidget/combo_listwidget.py @@ -0,0 +1,208 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'C:\Users\Administrator\Desktop\untitled.ui' +# +# Created by: PyQt4 UI code generator 4.11.4 +# +# WARNING! All changes made in this file will be lost! + +""" +Created on $date$
+description: 自定义combobox, 添加按钮图标
+author: 东love方
+ +""" + +from PyQt5 import QtCore, QtWidgets +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * +import os +import myRes_rc + + +try: + _encoding = QtWidgets.QApplication.UnicodeUTF8 + def _translate(context, text, disambig): + return QtWidgets.QApplication.translate(context, text, disambig, _encoding) +except AttributeError: + def _translate(context, text, disambig): + return QtWidgets.QApplication.translate(context, text, disambig) + +def _fromUtf8(text): + return text + +class ComboBoxWidget(QWidget): + """ + listWidget中的单个item. + """ + itemOpSignal = pyqtSignal(QListWidgetItem) + + def __init__(self, text, listwidgetItem): + super().__init__() + self.text = text + self.listwidgetItem = listwidgetItem + self.initUi() + + def initUi(self): + self.horizontalLayout = QHBoxLayout(self) + self.file_btn = QPushButton(QIcon(":/newPrefix/file.png"), self.text, self) + sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) + self.file_btn.setSizePolicy(sizePolicy) + qss = '''QPushButton +{ + background-color: transparent; + border: none; +} + +QPushButton:hover { + background:transparent; + }''' + self.file_btn.setStyleSheet(qss) + self.bt_close = QToolButton(self) + self.bt_close.setIcon(QIcon(":/newPrefix/if_Delete_1493279.png")) + self.bt_close.setAutoRaise(True) + self.bt_close.setToolTip("Delete") + self.bt_close.clicked.connect(lambda: self.itemOpSignal.emit(self.listwidgetItem)) + + self.horizontalLayout.addWidget(self.bt_close) + self.horizontalLayout.addWidget(self.file_btn) + spacerItem = QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacerItem) + + + +class ListQCombobox(QComboBox): + + def __init__(self, *args): + super(ListQCombobox, self).__init__(*args) + self.listw = QListWidget(self) + self.setModel(self.listw.model()) + self.setView(self.listw) + self.activated.connect(self.setTopText) + qss = '''QComboBox QAbstractItemView::item { + height: 25px; + } + + QListView::item:hover { + background: #BDD7FD; + }''' + self.setStyleSheet(qss) + + def refreshInputs(self, list_inputs): + self.clear() + # 循环实例化添加item + for num, path in enumerate(list_inputs): + listwitem = QListWidgetItem(self.listw) + listwitem.setToolTip(path) + itemWidget = ComboBoxWidget(os.path.basename(path), listwitem) + itemWidget.itemOpSignal.connect(self.removeCombo) + # 背景颜色 + if num % 2 == 0: + listwitem.setBackground(QColor(255, 255, 255)) + else: + listwitem.setBackground(QColor(237, 243, 254)) + listwitem.setSizeHint(itemWidget.sizeHint()) + self.listw.addItem(listwitem) + self.listw.setItemWidget(listwitem, itemWidget) + self.setTopText() + + def setTopText(self): + list_text = self.fetchListsText() + if len(list_text) > 1: + topText = "%d input files"%len(list_text) + elif len(list_text) == 1: + topText = os.path.basename(list_text[0]) + else: + topText = "No input files" + self.setEditText(topText) + + def refreshBackColors(self): + for row in range(self.view().count()): + if row % 2 == 0: + self.view().item(row).setBackground(QColor(255, 255, 255)) + else: + self.view().item(row).setBackground(QColor(237, 243, 254)) + + def removeCombo(self, listwidgetItem): + view = self.view() + index = view.indexFromItem(listwidgetItem) + view.takeItem(index.row()) + self.refreshBackColors() + self.setTopText() + + def fetchListsText(self): + return [self.view().item(row).toolTip() for row in range(self.view().count())] + + def fetchCurrentText(self): + if self.view().count(): + return self.view().item(0).toolTip() + else: + return "" + + def count(self): + return self.view().count() + + +class Ui_Dialog(QDialog): + + def __init__(self, parent=None): + super(Ui_Dialog, self).__init__(parent) + self.setupUi() + list_new_inputs = [r"../0.jpg", + r"../00.jpg", + r"../2.jpg", + r"../3.jpg"] + self.comboBox_4.refreshInputs(list_new_inputs) + + def setupUi(self): + self.resize(366, 173) + self.gridLayout = QtWidgets.QGridLayout(self) + self.gridLayout.setObjectName(_fromUtf8("gridLayout")) + self.label_4 = QtWidgets.QLabel(self) + self.label_4.setObjectName(_fromUtf8("label_4")) + self.gridLayout.addWidget(self.label_4, 0, 0, 1, 1) + self.comboBox_4 = ListQCombobox(self) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_4.sizePolicy().hasHeightForWidth()) + self.comboBox_4.setSizePolicy(sizePolicy) + self.comboBox_4.setAcceptDrops(True) + self.comboBox_4.setEditable(True) + self.comboBox_4.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToMinimumContentsLength) + self.comboBox_4.setObjectName(_fromUtf8("comboBox_4")) + self.gridLayout.addWidget(self.comboBox_4, 0, 1, 1, 1) + self.pushButton_3 = QtWidgets.QPushButton(self) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_3.sizePolicy().hasHeightForWidth()) + self.pushButton_3.setSizePolicy(sizePolicy) + self.pushButton_3.setMinimumSize(QtCore.QSize(30, 26)) + self.pushButton_3.setMaximumSize(QtCore.QSize(30, 26)) + self.pushButton_3.setStyleSheet(_fromUtf8("")) + self.pushButton_3.setText(_fromUtf8("")) + self.pushButton_3.setObjectName(_fromUtf8("pushButton_3")) + self.gridLayout.addWidget(self.pushButton_3, 0, 2, 1, 1) + self.pushButton = QtWidgets.QPushButton(self) + self.pushButton.setObjectName(_fromUtf8("pushButton")) + self.gridLayout.addWidget(self.pushButton, 1, 0, 1, 3) + self.pushButton.clicked.connect(lambda: print(self.comboBox_4.view().width())) + + self.retranslateUi() + QtCore.QMetaObject.connectSlotsByName(self) + + def retranslateUi(self): + self.setWindowTitle(_translate("Dialog", "Dialog", None)) + self.label_4.setText(_translate("Dialog", "text:", None)) + self.pushButton.setText(_translate("Dialog", "Get combobox width", None)) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + dialog = Ui_Dialog() + dialog.show() + sys.exit(app.exec_()) + diff --git a/partner_625781186/13.combo_listwidget/myRes_rc.py b/partner_625781186/13.combo_listwidget/myRes_rc.py new file mode 100644 index 0000000..130d383 --- /dev/null +++ b/partner_625781186/13.combo_listwidget/myRes_rc.py @@ -0,0 +1,663 @@ +# -*- coding: utf-8 -*- + +# Resource object code +# +# Created by: The Resource Compiler for PyQt4 (Qt v4.8.7) +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore + +qt_resource_data = b"\ +\x00\x00\x0b\x05\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\xc8\x00\x00\x00\xc8\x08\x06\x00\x00\x00\xad\x58\xae\x9e\ +\x00\x00\x0a\xcc\x49\x44\x41\x54\x78\x5e\xed\x9d\x3f\x6e\x1c\x47\ +\x16\x87\x7f\x45\x2b\x58\x45\xe6\x0c\xb1\xb1\x29\x60\x73\x73\x81\ +\xcd\x45\x26\x0b\x34\x13\xe9\x06\xa2\x6e\x40\x9d\x40\xd4\x09\xc8\ +\x1b\x88\xba\x01\x95\x70\x80\x4d\x48\x1e\xc0\x30\xf7\x04\x92\xf3\ +\xd5\x8c\x14\x59\x81\x77\x6a\xd1\x23\x78\x21\x18\xa2\xd9\xf5\xaf\ +\xab\xab\xea\x63\x5c\xaf\xea\xbd\xef\xbd\x4f\xd3\x33\xdd\x9a\x31\ +\x4a\xf9\x77\xb5\xda\xd6\x67\x3d\x91\xd6\xfb\x92\xd9\x95\xd5\x9e\ +\x8c\xb6\x53\x1e\xc9\xde\xdf\x22\x60\x25\x19\x77\x34\x9b\x30\xf3\ +\x5c\xdd\xec\xdc\x3d\xb8\x8e\x08\x0f\x6a\x03\x0a\x5f\xac\x76\xa5\ +\xf5\x4b\xc9\x1c\x0d\x58\xcd\x92\xe4\x04\x42\x04\xe9\x93\x6b\x57\ +\x92\xf8\x82\x2c\x56\x2f\x65\xed\x31\xaf\x14\xc9\xa7\xde\xe1\x80\ +\x50\x41\xda\x95\x24\x9e\x20\x9b\xcb\xa9\xf5\x29\xaf\x1a\x0e\x73\ +\x3b\xda\xd2\x18\x82\xb4\x29\x49\x3c\x41\x2e\x97\x3f\xcb\x68\x6f\ +\xb4\x9e\x73\x90\x03\x81\x58\x82\xb4\x27\x49\x1c\x41\x16\x1f\x5e\ +\xf3\xca\xe1\x30\xaf\xa3\x2f\x8d\x29\x48\x5b\x92\x84\x0b\xb2\x58\ +\x1d\x49\xf6\xf5\xe8\x3d\xe7\x40\x07\x02\xb1\x05\x69\x47\x92\x30\ +\x41\x36\xef\x3b\xec\xcf\x92\x76\x1d\xba\xc5\xd2\xd1\x09\xa4\x10\ +\xa4\x0d\x49\xc2\x04\x59\x7c\x38\x91\xcc\xcb\xd1\xfb\xcd\x81\x8e\ +\x04\x52\x09\x52\xbf\x24\x81\x82\x2c\xdf\xf1\xea\xe1\x38\xab\x59\ +\x96\xa7\x14\xa4\x6e\x49\xfc\x05\xd9\xdc\x0c\xb4\xbd\x20\xfc\x4d\ +\x9e\x40\x6a\x41\x24\x7d\x67\xfe\xae\x7f\xce\x6e\x27\x8f\xc2\x31\ +\x41\x7f\x41\x2e\x57\xc7\x32\xf6\xd4\xf1\x3c\x96\x67\x21\x30\x82\ +\x20\x56\x1f\xf5\xc0\x1c\xd4\x26\x89\xbf\x20\xbc\xff\xc8\x32\xea\ +\x7e\x87\x8e\x20\x48\x9f\x58\x85\x92\x84\x08\x72\x2e\x99\x67\x7e\ +\x0d\x23\x6a\x5c\x02\x23\x09\x52\xa1\x24\xfe\x82\x5c\x2e\xaf\x65\ +\xf4\x38\x42\xa3\x3f\x49\xf6\x42\x76\xeb\x56\x46\xd5\x5d\xc3\x46\ +\xe0\x13\x61\x8b\xf5\x91\xd7\x3f\x66\x9e\x5e\xd5\xf4\x4a\x92\x5b\ +\x90\xb7\x92\x39\x56\x37\x7b\x1f\x61\x0a\xd8\xe2\x2e\x02\xbe\x97\ +\xc3\xbe\x82\x54\xf4\x4a\x92\x51\x10\xfb\x46\xdd\x0e\x8f\xc3\x8f\ +\xa1\x75\x0e\x41\x2a\x91\x24\x8f\x20\x56\x37\x3a\x9c\xef\x8f\x31\ +\x1b\x9c\x21\x29\x97\x20\x15\x48\x92\x47\x10\x99\x03\x75\xb3\x6b\ +\x86\x77\x24\x02\x39\x05\x29\x5c\x92\xf1\x05\xb1\xfa\x45\x87\x73\ +\x9e\xdd\x1a\xc9\x8d\xcd\x31\xb9\x05\x29\x58\x92\xf1\x05\x91\xde\ +\xaa\x9b\x3f\x1d\x73\x3e\x9a\x3f\xcb\x5f\x90\xdf\x64\xf4\x20\x1a\ +\xbf\x02\xef\x93\x64\x10\xc4\xbe\x52\xb7\x73\x12\x0d\x3a\x1b\xdd\ +\x4f\xc0\x57\x10\xe9\x27\x49\x7f\x93\xf4\xfd\xfd\x87\x0c\x5c\x51\ +\x98\x24\x08\x32\xb0\xaf\x45\x2f\xf3\x15\xa4\xff\x30\xe5\x81\x39\ +\xd6\x7f\x6d\xff\x7e\xb1\x49\x49\x10\xa4\xe8\xc9\x1f\x98\x7c\x88\ +\x20\xfd\xa7\x8d\xff\x5a\xed\xb5\x2a\x09\x82\x0c\x9c\xb1\xa2\x97\ +\x85\x0a\xd2\x17\xdf\xa8\x24\x08\x52\xf4\xe4\x0f\x4c\x3e\x86\x20\ +\x8d\x4a\x82\x20\x03\x67\xac\xe8\x65\xb1\x04\x69\x50\x12\x04\x29\ +\x7a\xf2\x07\x26\x1f\x53\x90\xc6\x24\x41\x90\x81\x33\x56\xf4\xb2\ +\xd8\x82\x34\x24\x09\x82\x14\x3d\xf9\x03\x93\x4f\x21\x48\x23\x92\ +\x20\xc8\xc0\x19\x2b\x7a\x59\x2a\x41\x1a\x90\x04\x41\x8a\x9e\xfc\ +\x81\xc9\xa7\x14\xa4\x72\x49\x10\x64\xe0\x8c\x15\xbd\x2c\xb5\x20\ +\x15\x4b\x82\x20\x45\x4f\xfe\xc0\xe4\xc7\x10\xa4\x52\x49\x10\x64\ +\xe0\x8c\x15\xbd\x6c\x2c\x41\x7a\x48\x8b\xd5\xbe\x64\xaf\xa2\xf2\ +\xca\xf8\x80\x23\x82\x44\xed\xe4\x44\x37\x1b\x53\x90\x2f\x92\xc4\ +\xff\x42\xf3\x4c\x92\x20\xc8\x44\x67\x3a\x6a\x5a\x63\x0b\x52\x91\ +\x24\x08\x12\x75\x12\x27\xba\x59\x0e\x41\x2a\x91\x04\x41\x26\x3a\ +\xd3\x51\xd3\xca\x25\x48\x05\x92\x20\x48\xd4\x49\x9c\xe8\x66\x39\ +\x05\x49\x29\xc9\x43\xf3\x48\x07\xb3\x8f\x29\xa9\x23\x48\x4a\xba\ +\x53\xd9\x3b\xb7\x20\xe9\x24\xb9\xd5\x43\x73\x90\x52\x12\x04\x99\ +\xca\x10\xa7\xcc\x63\x0a\x82\x14\x2a\x09\x82\xa4\x1c\xcc\xa9\xec\ +\x3d\x15\x41\x0a\x94\x04\x41\xa6\x32\xc4\x29\xf3\x98\x92\x20\x85\ +\x49\x82\x20\x29\x07\x73\x2a\x7b\xfb\x0b\xf2\x51\x87\xf3\x59\x92\ +\x32\xd2\xdc\x4c\x8c\xfe\x9e\x04\x41\x92\x74\x7f\x62\x9b\xfa\x0a\ +\xb2\x29\x23\xe1\xd7\xc4\x16\x20\x09\x82\x4c\x6c\x96\x93\xa4\x13\ +\x24\x88\xae\xd5\xcd\x0f\x92\xe4\x55\xc0\xe5\x16\x82\x24\xeb\xfc\ +\x84\x36\x0e\x13\x44\xb2\xe6\x85\x0e\x67\x67\xc9\x2a\x9a\xf0\x2b\ +\x09\x82\x24\xeb\xfa\x84\x36\x0e\x15\xe4\xcb\xa5\xd6\x89\xba\xd9\ +\xab\x64\x55\x4d\x54\x12\x04\x49\xd6\xf1\x09\x6d\x1c\x45\x90\x4d\ +\x3d\xef\x65\xcc\x99\xb6\x74\x93\xe4\xd7\x6c\x27\x28\x49\x3d\x82\ +\x2c\x96\xfd\x0f\x86\x4d\xff\x2f\xc7\x8f\x07\xc5\x13\x64\xfa\x7c\ +\xbf\x95\xa1\xd5\x7f\x74\x38\xff\xab\x4f\xf2\x08\xe2\x43\x2d\x24\ +\x06\x41\x42\xe8\xf9\xc5\xf6\xff\x97\xc4\xf3\xe3\x6a\x04\xf1\x43\ +\xee\x1f\x95\x45\x90\x04\xff\xcb\xcf\x9f\xc0\xf8\x91\x08\xd2\xff\ +\x2f\x36\x2e\xb1\xee\x9c\xbc\xc5\x6a\x57\xb2\xef\xc6\x9f\xcc\x89\ +\x9c\x88\x20\x08\x72\xef\x28\x2e\x96\xfd\x6f\xd0\xff\x78\xef\xba\ +\x1a\x17\x20\x08\x82\xdc\x3b\xd7\x97\xab\x63\x19\x7b\x7a\xef\xba\ +\x1a\x17\x20\x08\x82\xdc\x3b\xd7\x57\xab\x6d\xfd\x6a\x6f\x65\xf4\ +\xc3\xbd\x6b\x6b\x5b\x80\x20\x08\x32\x68\xa6\x53\xdc\x67\x18\x74\ +\x70\xe6\x45\x08\x82\x20\x83\x47\x70\xb1\xbc\x90\xf4\x64\xf0\xfa\ +\x1a\x16\x22\x08\x82\x0c\x9e\xe3\xfe\x52\xeb\xf3\xe6\x47\x39\xdb\ +\x79\xc3\x8e\x20\x08\x32\x58\x90\x7e\x61\x6b\x92\x20\x08\x82\x38\ +\x09\xf2\x7f\x49\xd6\x67\x92\x79\xe6\x1c\x5b\x5a\x00\x82\x20\x88\ +\xf7\xcc\xf6\xdf\xa5\x6b\xed\x89\x8c\x1e\x7b\xef\x31\xf5\x40\x04\ +\x41\x90\xe0\x19\xdd\x88\xb2\x7e\x2a\x99\xa7\xd5\x7d\x14\x8c\x20\ +\xbf\x7f\xab\x78\xf0\x98\xa4\xdf\xe0\x3b\x7d\x4c\xf2\xa8\x78\xec\ +\xcc\x37\xbf\x8b\xae\xed\xd8\xdb\x86\xed\xb7\x3e\x92\xb6\x3c\x2e\ +\x09\xed\x4f\xea\xe6\xff\xf0\x39\xbb\x9e\x87\x15\x7d\xaa\x27\xa6\ +\x2c\x02\xbe\x8f\xed\x07\x3c\x20\x8a\x20\x65\x8d\x48\xdb\xd9\x22\ +\x48\xdb\xfd\xa7\xfa\x7b\x08\x20\x08\x23\x02\x81\x3f\x21\x80\x20\ +\x8c\x07\x04\x10\xe4\x95\xba\x9d\x13\x06\x01\x02\xce\x04\x78\x05\ +\x71\x46\x46\x40\x4b\x04\x10\xa4\xa5\x6e\x53\xab\x33\x01\x04\x71\ +\x46\x46\x40\x4b\x04\x10\xa4\xa5\x6e\x53\xab\x33\x01\x04\x71\x46\ +\x46\x40\x4b\x04\x10\xa4\xa5\x6e\x53\xab\x33\x01\x04\x71\x46\x46\ +\x40\x4b\x04\x10\xa4\xa5\x6e\x53\xab\x33\x01\x04\x71\x46\x46\x40\ +\x4b\x04\x10\xa4\xa5\x6e\x53\xab\x33\x01\x04\x71\x46\x46\x40\x4b\ +\x04\x10\xa4\xa5\x6e\x53\xab\x33\x01\x04\x71\x46\x46\x40\x4b\x04\ +\x10\xa4\xa5\x6e\x53\xab\x33\x01\x04\x71\x46\x46\x40\x4b\x04\x10\ +\xa4\xa5\x6e\x53\xab\x33\x01\x04\x71\x46\x46\x40\x4b\x04\x10\xa4\ +\xa5\x6e\x53\xab\x33\x01\x04\x71\x46\x46\x40\x4b\x04\x10\xa4\xa5\ +\x6e\x53\xab\x33\x01\x04\x71\x46\x46\x40\x4b\x04\x10\x24\xa0\xdb\ +\x97\xab\x7a\xbf\x9d\x3c\x00\x4b\xb6\xd0\xc3\xd9\x4d\xf4\xb3\x11\ +\x24\x00\x69\x29\xbf\x93\x1e\x50\x62\x51\xa1\xdd\xdc\xff\x6b\x6d\ +\xef\x2a\x14\x41\x02\x46\x00\x41\x02\xe0\x25\x08\x45\x90\xe5\xb5\ +\xdf\x8f\xae\xd8\x34\x5f\x1c\x87\x20\x09\xa6\x3c\x60\x4b\x04\x41\ +\x90\x80\xf1\xa9\x3f\x14\x41\x10\xa4\xfe\x29\x0f\xa8\x10\x41\x10\ +\x24\x60\x7c\xea\x0f\x45\x10\x04\xa9\x7f\xca\x03\x2a\x44\x10\x04\ +\x09\x18\x9f\xfa\x43\x11\x04\x41\xea\x9f\xf2\x80\x0a\x11\x04\x41\ +\x02\xc6\xa7\xfe\x50\x04\x41\x90\xfa\xa7\x3c\xa0\x42\x04\x41\x90\ +\x80\xf1\xa9\x3f\x14\x41\x10\xa4\xfe\x29\x0f\xa8\x10\x41\x10\x24\ +\x60\x7c\xea\x0f\x45\x90\xa9\x09\xb2\xda\xaf\x7f\xea\x0a\xaa\xb0\ +\x9b\x5d\x47\xcf\x96\xa7\x79\xa3\x23\x65\xc3\x9a\x08\x20\x48\x4d\ +\xdd\xa4\x96\xe8\x04\x10\x24\x3a\x52\x36\xac\x89\x00\x82\xd4\xd4\ +\x4d\x6a\x89\x4e\x00\x41\xa2\x23\x65\xc3\x9a\x08\x20\x48\x4d\xdd\ +\xa4\x96\xe8\x04\x10\x24\x3a\x52\x36\xac\x89\x00\x82\xd4\xd4\x4d\ +\x6a\x89\x4e\x00\x41\xa2\x23\x65\xc3\x9a\x08\x20\x48\x4d\xdd\xa4\ +\x96\xe8\x04\x10\x24\x3a\x52\x36\xac\x89\x00\x82\xd4\xd4\x4d\x6a\ +\x89\x4e\x00\x41\xa2\x23\x65\xc3\x9a\x08\x20\x48\x4d\xdd\xa4\x96\ +\xe8\x04\x10\x24\x3a\x52\x36\xac\x89\x00\x82\xd4\xd4\x4d\x6a\x89\ +\x4e\x00\x41\xa2\x23\x65\xc3\x9a\x08\x20\x48\x4d\xdd\xa4\x96\xe8\ +\x04\x10\x24\x3a\x52\x36\xac\x89\x00\x82\xd4\xd4\x4d\x6a\x89\x4e\ +\x00\x41\xa2\x23\x65\xc3\x9a\x08\x20\x48\x4d\xdd\xa4\x96\xe8\x04\ +\x10\x24\x3a\x52\x36\xac\x89\x00\x82\xd4\xd4\x4d\x6a\x89\x4e\x00\ +\x41\xa2\x23\x65\xc3\x9a\x08\x20\x48\x4d\xdd\xa4\x96\xe8\x04\x10\ +\x24\x3a\x52\x36\xac\x89\x00\x82\x04\x74\xf3\x72\xf5\x38\x20\x9a\ +\xd0\xd8\x04\x0e\x67\x37\xb1\xb7\x14\x82\x04\x20\x5d\x2c\x6d\x40\ +\x34\xa1\xb1\x09\xf0\xed\xee\x53\xfb\x76\x77\x04\x89\x3d\xe3\x41\ +\xfb\x21\x08\x82\x04\x0d\x50\xed\xc1\x08\x82\x20\xb5\xcf\x78\x50\ +\x7d\x08\x82\x20\x41\x03\x54\x7b\x30\x82\x20\x48\xed\x33\x1e\x54\ +\x1f\x82\x20\x48\xd0\x00\xd5\x1e\x8c\x20\x08\x52\xfb\x8c\x07\xd5\ +\x87\x20\x08\x12\x34\x40\xb5\x07\x23\x08\x82\xd4\x3e\xe3\x41\xf5\ +\x21\x08\x82\x04\x0d\x50\xed\xc1\x08\x82\x20\xb5\xcf\x78\x50\x7d\ +\x08\x82\x20\x41\x03\x54\x7b\x30\x82\x20\x48\xed\x33\x1e\x54\x1f\ +\x82\x4c\x4c\x90\xa0\x6e\x12\x5c\x04\x01\x1e\x77\x2f\xa2\x4d\x24\ +\x99\x8b\x00\x82\xe4\x22\xcf\xb9\x45\x10\x40\x90\x22\xda\x44\x92\ +\xb9\x08\x20\x48\x2e\xf2\x9c\x5b\x04\x01\x04\x29\xa2\x4d\x24\x99\ +\x8b\x00\x82\xe4\x22\xcf\xb9\x45\x10\x40\x90\x22\xda\x44\x92\xb9\ +\x08\x20\x48\x2e\xf2\x9c\x5b\x04\x01\x04\x29\xa2\x4d\x24\x99\x8b\ +\x00\x82\xe4\x22\xcf\xb9\x45\x10\x40\x90\x22\xda\x44\x92\xb9\x08\ +\x20\x48\x2e\xf2\x9c\x5b\x04\x01\x04\x29\xa2\x4d\x24\x99\x8b\x00\ +\x82\xe4\x22\xcf\xb9\x45\x10\x40\x90\x22\xda\x44\x92\xb9\x08\x20\ +\x48\x2e\xf2\x9c\x5b\x04\x01\x04\x29\xa2\x4d\x24\x99\x8b\x00\x82\ +\xe4\x22\xcf\xb9\x45\x10\x40\x90\x22\xda\x44\x92\xb9\x08\x20\x48\ +\x2e\xf2\x9c\x5b\x04\x01\x04\x29\xa2\x4d\x24\x99\x8b\x00\x82\xe4\ +\x22\xcf\xb9\x45\x10\x40\x90\x22\xda\x44\x92\xb9\x08\x20\x48\x2e\ +\xf2\x9c\x5b\x04\x01\x04\x29\xa2\x4d\x24\x99\x8b\x00\x82\xe4\x22\ +\xcf\xb9\x45\x10\x40\x90\x22\xda\x44\x92\xb9\x08\x20\x48\x2e\xf2\ +\x9c\x5b\x04\x81\x36\x04\xd1\x5b\x75\xf3\xa7\x45\x34\x84\x24\xa7\ +\x45\x60\xb1\xbc\x90\xf4\xc4\x39\x29\xab\x1b\x1d\xce\xf7\x9d\xe3\ +\x24\x19\x9f\xa0\x4d\xcc\xa5\xef\xb7\xbb\xeb\xbd\xba\xf9\x23\xef\ +\x73\x09\x6c\x97\xc0\x62\xf9\x4e\xd2\xae\x33\x80\xc2\x04\xe9\xbd\ +\x3c\x50\x37\xbb\x76\x2e\x94\x80\x76\x09\x2c\x56\xfb\x92\xbd\xf2\ +\x02\x50\x9e\x20\xba\x56\x37\x3f\xf0\x2a\x96\xa0\x36\x09\x2c\x96\ +\xbd\x1c\x5e\x97\x49\x2a\x50\x10\x49\xf6\x5c\xdd\xce\xf3\x36\xbb\ +\x4d\xd5\x4e\x04\x16\x1f\x5e\x4b\xe6\xc8\x29\xe6\xeb\xc5\x65\x0a\ +\xd2\x3b\xa2\x0b\x19\xf3\x42\xdd\xec\xbd\x77\xf1\x04\xd6\x4b\x60\ +\xb1\xda\x95\xb5\xa7\x32\x0a\xfb\x50\xa7\x58\x41\xfa\xd6\x5a\x7d\ +\x94\x74\xad\x2d\x73\xad\xb5\x6e\xeb\xed\x36\x95\x0d\x26\xb0\xa5\ +\x3d\xad\x6d\x7f\x39\xb5\x2f\xa3\xed\xc1\x71\x77\x2d\xcc\x22\xc8\ +\xe2\xc3\xb9\x64\x9e\x05\x27\xcf\x06\x10\x48\x4e\xc0\xbe\x51\xb7\ +\xe3\x75\x89\xe6\xff\x31\xaf\xef\x4d\x9b\xe4\x30\x38\x00\x02\x7f\ +\x24\x60\x5f\xa9\xdb\x39\xf1\xe1\xe2\x2f\xc8\xe5\xea\x58\xc6\x9e\ +\xfa\x1c\x4a\x0c\x04\x46\x25\x60\xcd\x0b\x1d\xce\xce\x7c\xce\xf4\ +\x17\xa4\x7f\x03\x25\xdb\xdf\xb8\xe1\x0f\x02\x13\x27\x60\x1e\xf9\ +\x7e\x10\xe4\x2f\x48\x8f\x64\xb1\xec\xdf\x54\xff\x38\x71\x3a\xa4\ +\xd7\x36\x81\x7f\xab\x9b\xef\xf9\x22\x08\x14\xe4\xc3\x89\x64\x5e\ +\xfa\x1e\x4e\x1c\x04\xd2\x13\xf0\x7f\xff\xd1\xe7\x16\x26\xc8\xd5\ +\x6a\x5b\xbf\xda\x5b\x19\xfd\x90\xbe\x50\x4e\x80\x80\x23\x01\xab\ +\x5f\x74\x38\x77\x7f\x76\xeb\xab\x63\xc2\x04\xd9\x5c\x66\xad\x8e\ +\x24\xfb\xda\x31\x75\x96\x43\x60\x04\x02\xe6\xb9\xba\xd9\x79\xc8\ +\x41\xe1\x82\x6c\x24\xe1\x9e\x48\x48\x13\x88\x4d\x41\xc0\xff\xde\ +\xc7\xd7\xd9\xc4\x11\x84\x37\xec\x29\x3a\xcc\x9e\xfe\x04\x82\xde\ +\x98\xa7\x11\xa4\x7f\x3f\xf2\x79\x7d\xc6\xdd\x75\xff\xae\x12\x19\ +\x83\x80\x7d\xa3\xbf\x6c\x1d\xeb\x60\xd6\x3f\xc2\x14\xfc\x17\xef\ +\x15\xe4\xf7\x54\xbe\xdc\x61\x3f\x96\xf4\x7d\x70\x76\x6c\x00\x81\ +\xe1\x04\x3e\x49\xf6\xcc\xf7\x8e\xf9\x5d\xc7\xc4\x17\xe4\xcb\x1b\ +\xf7\x5d\x69\xdd\x8b\xc2\xb3\x5a\xc3\x1b\xcc\x4a\x6f\x02\x71\x5f\ +\x35\xd2\x5c\x62\x7d\xab\xb8\xcd\x65\x57\xff\xa8\xf2\x7a\x5f\xd6\ +\xec\xca\xa8\xbf\x61\xc3\x2b\x8b\xf7\x20\x10\x28\xe9\x93\xac\x6e\ +\x65\xec\x7b\xd9\xad\x0b\x3d\xd4\x75\xac\xcb\xa9\x6f\xd1\xfd\x1f\ +\x8b\xad\x0f\x50\xbe\xb7\xa2\x9c\x00\x00\x00\x00\x49\x45\x4e\x44\ +\xae\x42\x60\x82\ +\x00\x00\x1b\x6c\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x1b\x0e\x49\x44\x41\x54\x78\x9c\xed\ +\x9d\x69\x94\x5c\xc5\x95\xa0\xbf\x88\x5c\x5e\x65\x65\xbe\xac\x7d\ +\xd1\x8a\x85\x10\x12\x42\x12\x92\xaa\xb4\x22\x56\x1b\xb0\x8d\xc4\ +\xda\xb6\x7b\xc6\xdd\xb8\xbd\xa0\x2a\x61\xf7\x98\xb6\x7d\xfa\x4c\ +\xf7\x9c\x33\xb4\xa7\xdb\x9e\xa5\xcf\xb8\x87\x3e\x83\x36\xac\xa1\ +\xc1\xed\xb6\x2d\x8c\x0d\x56\x09\x6c\x41\xbb\x81\xc3\x22\xb4\x00\ +\x12\x02\x49\x08\xd0\xae\xaa\x52\xad\xb9\x55\x66\xbe\xcc\x17\x31\ +\x3f\x32\xb3\x4a\x2d\x09\x54\x95\xf5\x32\xab\xca\x27\xbf\x73\xf2\ +\x47\x96\x94\x2f\xee\x7b\xf7\xbe\x88\x1b\x37\xee\x8d\x80\x12\x25\ +\x4a\x94\x28\x51\xa2\x44\x89\x12\x25\x4a\x94\x28\x51\xa2\x44\x89\ +\x12\x25\x4a\x94\x28\x51\xa2\x44\x89\x12\x25\x4a\x94\x28\x51\xa2\ +\xc4\x1f\x1a\x62\xac\x05\x28\x71\x21\x5b\xc1\xdb\x13\x0c\xde\xe0\ +\x02\x19\x0f\x87\x5f\xfc\x36\x24\x0b\xd5\xd6\x98\x1a\xc0\x13\x0d\ +\x0d\xfe\x58\x2c\xf6\x19\x97\x94\x09\x1d\x0e\xff\xbe\x05\x52\x63\ +\x29\xcf\x78\x60\x83\xcf\x37\x45\xb8\xdd\xcf\x0a\xc1\x02\x00\x05\ +\x87\x5c\xee\xf4\x2d\x6b\x7b\xe3\xa7\x0a\xd1\xde\x98\x19\xc0\x06\ +\xd3\x9c\x25\xb4\x7e\x5e\x48\x71\x19\x80\x56\x7a\xaf\x4b\xca\x5b\ +\xef\x0f\x87\x7b\xc7\x4a\xa6\xb1\xe6\xfc\x67\x92\x43\x29\xf5\xa1\ +\xcb\xab\x6e\x2c\x84\x11\x48\xa7\x2f\x38\x1c\x36\x98\xe6\x2c\x29\ +\xf8\xb7\x73\x6f\x54\x48\xd1\xa4\xb0\xdb\x9e\x68\x68\xf0\x8f\x85\ +\x4c\x63\xcd\xfa\x8a\xf2\x45\x52\xf0\x4a\xee\x99\xd4\xd4\x56\x53\ +\x53\x5b\x0d\x80\x94\x72\xa6\x6d\xc9\x17\x37\x57\xfb\xa6\x3a\xdd\ +\x6e\xd1\x0d\x20\xa7\x7c\x60\x0a\x40\x43\x43\x1d\x15\x15\x66\x4e\ +\x9c\x15\xb1\x58\xec\x57\x5b\xc1\x5b\x6c\xb9\xc6\x92\xcd\x81\xc0\ +\x75\x2e\x5b\xbc\x08\xd4\x03\x34\x4e\xaa\xe7\xda\xeb\x96\x72\xed\ +\xaa\x25\xd4\x9e\x63\x04\xca\x92\xff\xb6\xc1\xe7\x9b\xe2\x64\xdb\ +\x45\x35\x80\x8b\x29\x7f\xf9\xca\xc5\xac\x5c\xb5\x04\xbf\xbf\x3c\ +\x23\x90\x14\xb7\xf6\x9a\xe6\x4f\xb6\x82\xab\x98\xb2\x8d\x15\x9b\ +\x4d\x73\xb5\x2d\xc5\x0e\xa4\x0c\x02\x4c\x9b\x3e\x99\xe5\x2b\x16\ +\xe3\x92\x02\x97\x4b\xb2\xf2\xda\xe6\x41\x23\x10\x52\x5e\x21\x5c\ +\xf2\x45\x27\x8d\xa0\x68\x06\x70\xa1\xf2\x6b\x59\xb6\x62\x11\x42\ +\x08\x0c\xc3\xcb\xca\x55\xcd\x94\x95\x19\x00\x08\xc1\x17\x7b\x4d\ +\xf3\x11\xfd\x07\x3e\x4b\xd9\x1c\x0c\x7e\xd9\x16\x3c\x2d\xa1\x0c\ +\xe0\xf2\x99\xd3\x69\x6a\x5e\x00\x80\xd6\x1a\xad\x35\xd2\x25\x59\ +\xb1\xb2\x69\x70\x38\x70\xda\x08\x8a\xf2\x96\x5d\x54\xf9\xcb\x17\ +\x23\xe5\x90\xfd\x79\x3d\x1e\xea\x1b\xea\x38\x75\xaa\x1d\xa5\x14\ +\x42\xd0\xbc\xc7\x6b\xb8\xdb\x2c\xeb\xf7\xc5\x90\xb1\xd8\x6c\x0c\ +\x06\xff\x1c\xf4\xa3\x22\xfb\x12\xce\x99\x73\x05\x57\xcf\x9b\x7d\ +\xd1\xff\x2b\xa5\x64\xea\xd4\x46\x7a\x7a\xfa\x89\x0f\xc4\x11\x42\ +\x54\x0b\x17\x6b\x56\xbb\x3c\xbf\x6c\x4b\xa5\xa2\xa3\x91\xa3\xe0\ +\x06\x70\x51\xe5\x2f\x5b\xf4\xef\x94\x9f\xc3\x30\xbc\xd4\xd6\x56\ +\x71\xea\x54\x07\x5a\x6b\x84\xe0\xfa\x35\x5e\x23\xdc\x66\x59\x3b\ +\x0b\x2d\x67\xb1\xd0\x20\x26\x9b\xe6\xdf\x08\xc1\xff\x04\x10\x42\ +\xb0\x60\xc1\x55\xcc\x9a\x35\xe3\x13\x7f\x27\x85\x60\xea\x94\x46\ +\x7a\x7b\xfb\x19\x18\x88\x03\xa2\x46\x4b\x39\x73\x7b\xd2\xfa\xc5\ +\x68\xe4\x29\xa8\x01\x5c\xa0\xfc\xfa\x5a\x96\x2d\x5b\x78\x51\xe5\ +\xe7\xf0\xf9\xca\xa8\xaa\xac\xe0\xf4\x99\x4e\xb4\xd6\x20\xb8\x6d\ +\xb5\xd7\x38\xd6\x66\x59\xfb\x0a\x29\x6b\x31\x78\x08\xe4\xe1\x40\ +\xe0\x1f\x85\x14\x7f\x09\x20\xa5\x60\xf1\xe2\x79\x7c\xea\xb2\xe1\ +\xf5\xe6\x52\x08\x26\x4f\x6e\xe0\xf8\x89\xd3\xd8\xb6\x8d\x86\xda\ +\xed\x49\xeb\xef\x47\x23\x53\xc1\x7c\x80\x0b\x95\x5f\xc3\xb2\xa5\ +\xd7\x20\x85\x00\xad\x3f\xf1\x53\x5f\x57\x4d\xd3\xa2\xab\x11\x22\ +\xe3\x02\x68\xc1\x96\x0d\x81\xc0\x9d\x85\x92\xb5\x18\x6c\x02\x4f\ +\x63\x20\xf0\x13\x21\xc5\xb7\x00\x5c\x2e\xc9\xd2\x25\x0b\x99\x36\ +\xa5\xf1\x92\xcf\xe3\xdc\xcf\xc1\x83\x47\x48\x26\x2d\x00\x04\x1c\ +\x1c\xad\x5c\x05\xe9\x01\x2e\xaa\xfc\x25\xd7\x7c\xe2\x9b\x7f\x3e\ +\x41\x33\x80\x61\x78\xe9\xec\xec\x46\x80\x14\x42\xdc\x7d\x7b\x99\ +\xe7\x95\xed\xc9\xd4\xb1\x42\xc8\x5c\x48\x36\x4d\x9a\x54\xae\xa4\ +\x7e\x4a\x0a\x79\x2f\x80\xc7\xe3\x66\xc5\xb2\x45\xd4\x67\x1d\xbb\ +\xe1\x72\xe8\xfd\x8f\x38\xf2\xc1\xb1\xcc\x17\xa5\xc2\xda\xa5\xbe\ +\xb8\x3d\x91\xea\x1c\x8d\x6c\x8e\x1b\xc0\x05\xca\xaf\x1b\xb9\xf2\ +\x73\x54\x55\x04\x11\x42\xd0\xdd\xd3\x07\xe0\xd6\x4a\xdf\x7b\x97\ +\xaf\x7c\xc7\xb6\x64\xb2\xdd\x59\xa9\x0b\xc7\x63\x15\x15\x95\x29\ +\x2b\xf9\xac\x44\x7c\x06\x32\x7e\xce\xb5\xcb\x17\x53\x55\x59\x31\ +\xa2\xeb\x7c\x74\xec\x24\xef\x1e\xfc\x00\x00\x05\x09\x34\x9f\x5f\ +\x17\x8e\xed\x1a\xad\x7c\x8e\x1a\xc0\x45\x95\xdf\xbc\x20\x2f\xe5\ +\xe7\xa8\xad\xae\x24\x95\xb6\xe9\xeb\x0f\x21\x84\x30\x6c\xf4\x3d\ +\x77\x78\xbc\xdb\xda\x2c\xab\xdb\x29\xb9\x0b\xc5\xff\x2d\x2f\x6f\ +\x44\x88\x17\x84\x60\x29\x40\xb9\xaf\x8c\xeb\x96\x37\x61\x06\x46\ +\x16\xec\x3c\x75\xa6\x83\xb7\xdf\x39\x04\x80\x02\x5b\x68\xfe\xa8\ +\x35\x1a\x7d\xde\x09\x19\x1d\x9b\x67\x3f\x1a\x0c\x5e\xa1\xd0\x2f\ +\x92\x55\x7e\x7d\x5d\x0d\xcb\x9a\xe7\x8f\x4a\xf9\xe7\xf2\xe6\xbe\ +\x83\x9c\x3c\x95\x7d\xf1\x35\x27\x71\xbb\x57\xb5\xf4\xf5\x9d\x70\ +\xe4\xe2\x05\x60\x73\x45\xc5\x0c\xdb\x4e\x3f\x2f\xa5\x9c\x09\x60\ +\x9a\x7e\x56\x2e\x5d\x38\x18\xeb\x18\x2e\x9d\x67\x7b\xd8\xb5\x67\ +\x3f\x4a\xeb\xcc\x1f\x34\xf7\xb5\x44\x22\x3f\x71\x4a\x4e\x47\xb4\ +\xa3\x41\xd8\x5a\x3f\xc5\xa0\xf2\xab\x59\xd6\x34\x6f\x58\x0e\xdf\ +\x70\x3f\x8b\xe6\xcf\xa6\xb1\xa1\x36\xd3\xa0\x60\x1a\xb6\xb5\x63\ +\x4b\x20\x50\xe7\x84\xfc\x4e\xb3\xde\xef\x9f\x67\x6b\xf5\x4a\x4e\ +\xf9\x55\x95\x41\x56\x2d\x5f\x44\x99\xe1\x1d\xd1\x3d\xf7\xf4\xf6\ +\xb3\xfb\xcd\x03\xe7\x2a\xff\x41\x27\x95\x0f\x0e\x19\xc0\x16\x9f\ +\x6f\x52\x6e\xf9\xb2\x22\x18\x60\xd9\x62\x67\x95\x8f\xd6\x08\x60\ +\xc9\xc2\xb9\xd4\x56\x57\xe6\x44\x9f\x9d\x82\xe7\x7e\x5c\x53\x63\ +\x7e\xbc\x64\xc5\x67\xb3\x69\x2e\x77\x09\x5e\x96\x30\x19\xa0\xae\ +\xb6\x8a\x6b\x97\x5e\x83\xd7\xed\x1e\xd1\xfd\x86\xc2\x11\xde\xd8\ +\xb3\x1f\xdb\xb6\x01\x50\x9a\xbf\x6d\x89\x44\x1e\x76\x5a\x5e\x47\ +\x0c\xc0\x15\x8f\xf7\x2a\xa5\x62\x00\xe1\x48\x8c\xe3\x27\xdb\x1d\ +\x55\x7e\xee\x23\x85\x60\xd9\xe2\x79\x54\x06\x33\x3a\x17\x52\x34\ +\xa5\x2c\xeb\x99\xc7\xb2\xa1\xd4\xb1\x66\x43\x30\x78\x8b\xad\xf5\ +\xbf\x22\x65\x15\xc0\xe4\xc6\x3a\x96\x37\xcd\xc7\x25\xe5\x88\xee\ +\x33\x16\x1b\xe0\xf5\xdd\xfb\x49\xa5\xd2\x99\x0b\x6b\x1e\x69\x8d\ +\x44\x1e\x2a\x84\xcc\x8e\x38\x81\xcf\x40\xfa\x4e\x9f\xd1\x05\x62\ +\x0d\x40\x67\x57\x2f\x12\x41\x4d\x55\xe5\xa5\x7e\x3a\x62\xa4\x94\ +\x4c\x6e\xa8\xa5\xa3\xab\x07\x2b\x95\x42\x08\x66\xa4\x0c\x63\x5e\ +\x73\xd2\x7a\xea\x25\x50\x8e\x37\x38\x4c\x36\x55\x04\xbe\xa0\xe1\ +\x29\x29\x44\x19\xc0\x65\x53\x27\xb1\x78\xde\x9c\x4c\x4f\x38\x02\ +\x12\x49\x8b\x57\x77\xed\x23\x91\xc8\x26\x01\x29\xfd\xb3\x33\xd1\ +\xe8\xfd\x37\x81\x76\x5c\x68\x1c\x9c\x05\x6c\x4b\x5a\x6f\xae\xf6\ +\x1a\xc7\xb4\x60\x8d\x00\xd9\xdd\xdb\x4f\x3a\x9d\xa6\xbe\xa6\xca\ +\xa9\x26\x06\x71\xb9\x24\x93\xea\x6b\x38\xd3\xd9\x4d\x3a\x6d\x23\ +\x60\x8e\x69\x78\xa6\x6d\x4b\xa6\x7e\xf3\x7d\xc7\x5b\xbb\x34\x9b\ +\x2b\x02\xf7\x2b\x2d\x1e\x97\xd9\xe7\x39\x6b\xc6\x34\xe6\xcf\x99\ +\x39\x62\x0f\x3b\x95\x4a\xf3\xda\x9e\xfd\x44\x07\xe2\x00\x28\xf4\ +\x73\x22\x12\xfd\xd2\xf7\xc0\x76\x5a\xe6\x1c\x8e\x4e\x03\xdb\x2c\ +\x6b\xdf\x6a\x8f\x77\x9f\x10\xe2\x6e\xc0\xdd\x17\x8a\x30\x10\x4f\ +\xd0\x58\x5b\xed\xf8\xb2\x9e\xc7\xed\xa2\xa1\xb6\x8a\xd3\x1d\xdd\ +\xd8\x4a\x01\x62\xd1\x6e\xc3\x1b\x68\x4b\x5a\xcf\x17\xcb\x08\x34\ +\x88\xc9\xc1\xc0\x7f\x06\xf1\xb0\xc8\xce\xa8\xae\x9e\x35\x83\xd9\ +\x97\x4f\x1f\xf1\xb5\x6c\xdb\xe6\xb5\x37\xdf\x21\x14\x19\x5c\xdb\ +\x79\x55\xf8\xcd\x35\x2d\xd1\x68\xc1\xf2\x01\xa1\x00\x81\xa0\xed\ +\x96\x75\x78\x75\x99\xe7\x55\xad\xf4\x3d\x42\x08\x23\x1c\x89\x11\ +\x8a\x44\x99\x5c\x57\x33\x18\xda\x75\x0a\xaf\xc7\x43\x5d\x75\x25\ +\xa7\x3b\xba\x50\x5a\x23\x10\x2b\xf7\x1a\xde\x64\x5b\xd2\x7a\xc5\ +\xd1\x86\x2e\x82\x06\xb1\x29\x18\xf8\x5f\x02\xf1\x5f\x21\xb3\xa8\ +\xb3\x70\xee\x2c\x2e\x9f\x36\x69\xc4\xd7\x52\x5a\xf3\xc6\xdb\xef\ +\xd1\xd3\x1f\xce\x5c\x5b\xb3\xdf\x90\xf2\xd6\x6f\x74\x77\x47\x9c\ +\x95\xfa\x42\x0a\x12\x0a\x6e\x4b\xa6\x8e\xdd\xe5\x2b\xdf\x61\xa3\ +\xef\x11\x50\x1e\x1d\x88\xd3\xdb\x1f\x66\x52\x7d\xcd\x88\xc7\xc4\ +\x4b\x51\x66\x78\xa9\xaa\x30\x39\xdd\xd9\x9d\x59\x3c\x42\x7c\x7a\ +\x8d\xe1\xed\x68\x4b\x5a\x7b\x1d\x6d\xe8\x1c\x1e\x02\xf7\xe1\xa0\ +\xff\x51\x81\xfc\x26\x64\xfc\x92\xe6\x79\xb3\x99\xda\x98\xdf\xac\ +\x74\xef\x3b\x87\xe9\xec\xce\xa4\x42\x2a\xa5\x3e\xb4\x95\xba\xb9\ +\x25\x1a\x2d\x4a\xa0\xab\xa0\x09\x17\x9b\x02\x81\x39\x08\xb1\x03\ +\xc1\x34\x80\x4a\x33\xc0\xf2\x85\x73\xf1\x7a\x3c\x8e\xb7\xd5\xd1\ +\xd5\xc3\xee\x03\x87\xd1\x5a\xa3\x40\xbb\x50\x7f\xbc\x36\x1c\xdb\ +\xea\x74\x3b\x8f\x41\x59\x32\x68\xfe\x8b\x80\xbb\x01\xdc\x2e\x17\ +\x4b\x17\xcc\xa1\x36\x4f\x87\x77\xdf\xa1\x0f\x38\x7e\x26\x13\xce\ +\x57\xd0\xae\x85\x5c\xf5\x40\x28\xf4\x91\x73\x12\x7f\x32\x05\xcf\ +\xb8\xd9\x54\x55\x35\x1d\xdb\xda\x01\x72\x36\x40\xa0\xdc\xc7\x8a\ +\x85\x73\xf1\x19\x23\x8b\x88\x0d\x87\x13\xed\x67\x79\xfb\xd0\x60\ +\xbc\x3c\xe5\x42\xac\x59\x1b\x0e\xff\xce\xa9\xeb\xff\xb8\xa6\xc6\ +\x4c\x5b\xd6\xd3\x42\x70\x33\x80\xd7\xe3\x66\xf9\x82\xb9\x54\x06\ +\x03\x79\x5d\xef\xe0\x47\xc7\x39\x72\xfc\x74\x46\x5e\xa5\xfa\x85\ +\xe6\xfa\xd6\x58\xec\x1d\xa7\xe4\x1d\x0e\x45\x49\xb9\xda\x12\x08\ +\xd4\xa5\xe0\x39\x21\x45\x13\x80\xcf\xf0\xb2\xe2\x9a\xb9\x04\xca\ +\x7d\x8e\xb7\xf5\xe1\xc9\x33\xbc\xfb\xe1\x71\x00\x94\xd2\x03\x42\ +\x88\xcf\xb4\x46\x22\xaf\x8f\xf6\xba\x9b\x02\x81\x5a\xe0\x39\xa4\ +\x68\x86\xcc\x3d\x2c\xbf\x66\x2e\x66\x9e\xf7\x50\x28\x39\x47\x4a\ +\xd1\x72\xee\x1e\xae\xae\x0e\x96\xa5\x52\xcf\x20\xb8\x11\xb2\x6f\ +\xcf\xfc\xab\xa8\x34\x9d\xcf\x02\x3f\x78\xf4\x24\x47\x4e\x64\xde\ +\x2c\x94\xea\xb3\x35\xd7\x3f\x10\x8b\x1d\xc8\xf7\x7a\x8f\x54\x95\ +\x4d\x93\xb6\x67\x87\x84\x39\x00\x01\x5f\x19\x2b\xae\xb9\x2a\xef\ +\x5e\xec\x44\x47\x17\x6f\x1f\xfe\x30\x23\x5e\x01\x7a\xaa\x91\x50\ +\xd4\xa4\xcb\xc7\xa0\xcc\x0a\x9a\x3f\x07\xee\x84\xec\xf8\x79\xf5\ +\x95\xd4\x56\x06\x1d\x6f\x6b\xff\x91\xa3\x1c\x6b\x3f\x0b\x64\xc6\ +\x56\x97\x90\xd7\xae\x0d\x85\x8e\x8e\xf4\x3a\xeb\x4d\x73\xb6\x0b\ +\x9e\xcf\xf9\x31\x15\x01\x3f\x2b\xe6\xcf\xce\xdb\x8f\xe9\xe8\xe9\ +\x63\xf7\x7b\x47\x06\x7d\x15\x81\xfa\x0f\xad\xe1\xd8\xa8\xd2\xba\ +\x46\x43\x51\x53\xaf\x9f\x81\x74\x53\xd2\xfa\x65\xc0\xf0\x4c\x17\ +\x88\x85\x4a\x6b\x4e\x77\xf5\x12\xf4\x97\x3b\x3e\x1c\x34\xd4\x54\ +\x11\x19\x48\x10\x19\x88\x23\xc0\x54\xca\x5e\xfd\x39\xb7\x67\xeb\ +\xb3\x23\x48\xa2\xdc\x58\x51\xb1\x18\xf4\xef\x85\x60\x12\x40\x4d\ +\x85\xc9\x8a\x05\x73\xf0\xb8\xdd\x79\xc9\xd4\xdd\x1f\x66\x57\x56\ +\xf9\x00\x02\xbd\xae\x35\x1c\x7b\x3c\xaf\x8b\x39\x44\xd1\x73\xef\ +\x5f\x02\xd5\x94\x4c\x6d\x0b\x18\xde\xa0\x40\xac\xd0\x5a\x73\xa6\ +\xbb\x17\x9f\xe1\xa1\x22\x5b\x1b\xe0\x14\x8d\x35\x55\xf4\x47\x62\ +\xc4\x12\x49\x84\x10\xd5\x2e\x21\x6f\xb9\xd7\xe7\xfb\xf9\x33\xc9\ +\x64\xe2\x52\xbf\xdd\x14\x08\xdc\xa0\xb5\xda\x21\x85\xa8\x02\x68\ +\xac\xae\x64\xd9\xd5\x57\x66\xe2\xfa\x79\xd0\x1f\x8d\xb1\xf3\xc0\ +\xe1\x6c\xd0\x0a\x34\xfa\xbf\xb4\x86\xa3\xff\x27\xaf\x8b\x39\xc8\ +\x98\xe5\xdd\x67\x03\x29\x7f\x25\x10\x3f\xc8\xfd\x6d\xee\x8c\x69\ +\xcc\x9c\xd2\xe8\x68\x3b\xb6\x52\xbc\xfe\xce\x61\xfa\xce\x89\xb0\ +\xe1\x0f\xdc\xda\xd2\xde\x3e\xf0\x71\xbf\xd9\x64\x9a\x77\x20\xd8\ +\x0a\x18\x00\x53\xeb\x6b\x58\x38\x6b\x46\xde\x81\xac\x68\x3c\xc1\ +\xab\xfb\x0f\x62\x65\x17\x77\x34\xfa\x1f\x5a\xc2\xd1\xef\x8a\x02\ +\xc5\xf7\x47\xc2\x98\xd4\x06\x02\x08\xd0\xad\xe1\xe8\x0f\x35\xfa\ +\x01\x95\x7d\x10\xef\x1d\x3d\xc9\xc1\x63\x27\x1d\x5d\x41\x74\x09\ +\xc1\xb2\xb9\xb3\xce\xf5\xd6\xaf\x25\x16\x79\x72\x13\x5c\x74\x10\ +\xdf\x60\x9a\xf7\x29\xc1\xaf\xc8\x2a\xff\xf2\xc9\x0d\x2c\x9a\x35\ +\x23\xf3\xa6\xe4\xd1\x7e\x3c\x91\x64\xe7\x81\xc3\x83\xca\x07\xfd\ +\x78\x7b\x38\xfa\xbd\xf1\xa0\x7c\x18\x07\xe5\x57\x6d\x49\x6b\xcf\ +\x1d\x86\xe7\x30\x88\xbb\x00\xd9\x1b\x8e\x92\xb4\x2c\x1a\xaa\x46\ +\x96\x33\xf7\x49\xb8\xa4\xa0\xb1\xba\x92\x8e\xde\x7e\x52\x69\x1b\ +\x10\xb3\x94\xc7\x3b\xb3\xd9\xb2\x9e\x7e\xe9\x1c\x45\x6c\x34\xcd\ +\x07\xa5\x60\x63\xae\x58\x63\xf6\xb4\xc9\x5c\x35\xcc\x94\xed\x8b\ +\x61\xa5\xd2\xbc\xfe\xee\xfb\x0c\x24\x06\xc3\xf9\xcf\x9c\x09\x47\ +\xff\xe4\xfb\x05\x5c\xdc\x19\x29\x63\x6e\x00\x00\x6d\xc9\xd4\x81\ +\xd5\x46\xd9\x6e\x01\xf7\x02\x9e\x50\x6c\x80\xe8\x40\x82\xc6\xea\ +\x4a\x84\x43\xa3\x94\xdb\xe5\xa2\xa1\xaa\x82\x33\x3d\x7d\xd8\x4a\ +\x21\x84\x98\x6f\x7a\x8d\xda\x6d\x96\xf5\xdc\xdf\x64\x8a\x35\xfe\ +\x56\x08\x7e\x08\x99\x71\x71\xfe\x8c\xe9\xcc\x9c\xdc\x90\x77\x7b\ +\x69\xdb\xe6\xf5\xf7\x8e\x10\xc9\xae\xec\xa1\x79\xd1\x1b\x89\xdc\ +\xfd\x17\x60\x39\x70\x3b\x8e\x31\xae\x6a\xef\x36\x99\xe6\x4a\xa5\ +\xd5\x76\x29\x65\x25\x40\x5d\x65\x90\x25\x57\x5e\x9e\xb7\xe3\x75\ +\x31\xc2\x03\x71\x5e\x7b\xef\xfd\x6c\x4f\x90\xc9\xb4\x01\x6a\xa5\ +\x60\x1d\x64\x8a\x2f\x16\xce\xfc\x14\x53\x6a\xf3\x5f\xc6\x56\x4a\ +\xb3\xf3\xd0\x11\x7a\xc2\x19\xbf\x43\x2b\xbd\x37\xe9\xf5\xde\xfc\ +\xed\xde\xde\xf0\xe8\xef\xc0\x59\xc6\x95\x01\x00\x3c\x5a\xe9\x5f\ +\xa0\x94\xfc\x1d\xd0\x08\x50\x15\xf0\xb3\x6c\xf6\x4c\x3c\x6e\xe7\ +\x3a\xab\xde\x48\x8c\x9d\x87\x3e\x18\xf4\xc8\x73\xb8\xa4\xa4\x79\ +\xd6\x0c\xea\x47\x11\x97\xd0\x5a\xb3\xe7\xc8\x51\x3a\xfa\x42\xd9\ +\xbf\xa8\xc3\x6e\x25\xae\xfb\x7a\x34\xda\x35\x0a\x91\x0b\xc6\xb8\ +\x18\x02\xce\x65\x5b\x22\xd5\xb9\xda\x28\x7b\x5a\x28\xb5\x1a\x21\ +\xaa\x12\x56\x8a\xce\xfe\x10\x8d\x55\x15\xb8\x1d\xea\x09\x7c\x5e\ +\x0f\x15\xe5\x3e\xda\x7b\xfb\x07\x1d\x00\x8f\xcb\xc5\xb2\x39\x33\ +\xa9\xcd\x33\xae\x9f\xe3\xed\x8f\x4e\x70\xa6\xb7\x1f\x00\xa5\x39\ +\x25\xdc\x9e\x9b\xee\x0f\x87\xc7\x6d\x1d\xc3\xb8\x33\x00\x80\xb6\ +\x64\xb2\x6f\xb5\xdb\xf3\xa4\x90\xf2\x36\xa0\xde\x4a\xa7\xe9\xe8\ +\x0b\xd1\x50\x19\xc4\xe3\x72\x46\x64\x7f\x99\x41\xb9\xe1\xa5\xb3\ +\x2f\x84\xe1\x71\xb3\x7c\xf6\x15\x54\xfa\x47\x17\x8c\x7a\xf7\xc4\ +\x19\x4e\x74\xf5\x64\xbf\xa9\x1e\xa1\xb9\xa9\x25\x1c\xfe\x70\xf4\ +\xd2\x16\x8e\x71\x37\x04\x9c\xcb\xfa\x8a\x8a\x2a\x97\x4e\x6f\x07\ +\xb9\x02\xc0\xf0\xb8\x59\x76\xe5\x4c\x82\x3e\xe7\x72\x40\x4f\xf5\ +\xf4\x51\x1d\xf0\x53\x6e\x8c\x6e\x53\x92\x23\xed\x9d\x1c\x3e\xdd\ +\x91\xf9\xa2\x54\x54\x4b\xd7\x4d\xad\xe1\xf0\x1e\x07\x44\x2c\x28\ +\xe3\xda\x00\x20\xb3\x93\xd8\x40\x2c\xf6\x94\x90\xe2\x36\xc8\x74\ +\xd5\x4b\xae\xf8\x14\xd5\x23\xac\xae\x29\x24\xc7\xba\x7a\x38\x90\ +\x5d\x7c\x52\x60\xb9\x84\xfa\xdc\xda\x50\x6c\x42\xec\x6b\x30\xee\ +\x0d\x00\x32\xfb\xe6\xf5\x99\xe6\x13\x08\xbe\x04\x19\x67\xad\x69\ +\xc6\x74\xea\x2b\xc6\xbe\x24\xe0\x4c\x5f\x3f\x6f\x1d\x3d\x99\xf3\ +\x25\x14\x4a\xdf\xdb\x12\x8d\x3e\x3d\xb6\x52\x0d\x9f\x71\xe9\x03\ +\x9c\xcf\x93\x60\xdf\x67\x59\xbf\x8e\x7b\x8d\x06\x21\x68\xd6\x5a\ +\x73\xa6\x3f\x84\xdf\xf0\x10\x2c\x1b\xbb\x92\x80\xae\x70\x94\x37\ +\x87\x94\x8f\xd6\x7c\xbd\x35\x1a\xfd\xf9\x98\x09\x94\x07\x13\xc2\ +\x00\x00\x9e\x04\xbd\xcd\xb2\xb6\xef\xf1\x1a\x6e\x21\xb8\x1e\xa0\ +\xb3\x3f\x8c\xd7\xed\x1a\xb5\xf3\x96\x0f\x7d\xb1\x01\x76\x7d\x74\ +\x62\xb0\x6c\x4b\x6b\xbe\xd7\x1a\x89\xac\x2f\xba\x20\xa3\x64\x42\ +\x0c\x01\xe7\xb3\xd1\x34\xbf\x23\x04\xff\x3b\xf7\xfd\xca\xc6\x3a\ +\xae\xcc\x33\x21\x33\x1f\x22\x89\x24\xaf\x1d\x39\x46\x2a\x5b\xb6\ +\xa5\x35\xff\xbd\x35\x12\xf9\xeb\xa2\x09\xe0\x20\x13\xd2\x00\x00\ +\x36\x9b\xe6\x9f\x69\xc1\x16\xb2\x71\xfb\x19\xb5\xd5\x5c\xed\xf0\ +\x4a\xe2\xc5\x18\xb0\x2c\x5e\xfd\xe0\x18\xc9\xa1\xb2\xad\xcd\x6b\ +\x23\x91\xd6\xf1\xb2\xb8\x33\x52\x26\xcc\x10\x70\x3e\xdb\x2c\xeb\ +\xed\x35\x1e\xef\x7e\xb2\x45\x28\xfd\x03\x71\x62\x96\x45\x83\x59\ +\x38\xc7\x30\x99\x4e\xf3\xfa\x87\xc7\x49\x0c\x29\xff\xc9\xaa\x48\ +\xe4\x6b\xf3\xc6\xb0\x24\x6d\xb4\x4c\xd8\x1e\x20\xc7\xc6\x0a\xff\ +\x4d\xc2\xe6\x37\x48\x19\x00\x68\x08\x06\x58\x3c\x7d\x8a\xe3\xf5\ +\x07\x29\xdb\xe6\xf5\x8f\x4e\x10\x19\xaa\xd9\x7b\x3e\x11\x8d\xae\ +\x29\xe4\x4e\xde\xc5\x60\xc2\x1b\x00\xc0\xc6\x60\xb0\x59\xa3\x9f\ +\x93\x50\x0b\x50\xed\xf7\xb1\xe4\xb2\xa9\x8e\x85\x8e\x6d\xa5\x79\ +\xe3\xd8\x49\xfa\xb2\x2b\x7b\x1a\xb5\x33\x6d\x94\xdf\xf2\xad\xae\ +\xae\x51\xed\xd1\x37\x1e\x18\xb3\x84\x10\x27\x31\xc2\xe1\x03\x28\ +\xfd\x66\xee\x7b\x38\x9e\x24\x12\x4f\x38\x96\x54\x32\x60\x25\x87\ +\xde\x7c\x40\x68\xf9\xc2\x1f\x82\xf2\x61\x02\xfb\x00\x39\x1e\xae\ +\xae\x0e\x0a\xb7\xbb\x4d\x48\xf1\x69\x00\xaf\xcb\xc5\xd2\xcb\xa6\ +\x52\xe5\x73\x6e\x6a\x68\xb8\xdc\x54\xfa\xca\x68\x0f\x47\x32\x9e\ +\x9e\xe0\xfa\xd5\x86\xb7\xb3\x2d\x69\x8d\xfb\x50\xef\xa5\x98\xd0\ +\x06\xb0\x25\x10\xa8\x13\xb6\xfd\xbc\x90\x62\x25\x40\x99\xc7\xcd\ +\xf2\xe9\x53\x09\x8e\x70\x1f\x9e\xe1\x50\xee\xf1\x60\x1a\x5e\x3a\ +\x22\x31\x00\x34\xe2\xf6\x35\x86\xe7\x50\x5b\x32\xf5\xae\xe3\x8d\ +\x15\x91\x09\xeb\x03\x3c\x52\x55\x36\xcd\x6d\xbb\x9e\xcf\x95\x9c\ +\xf9\xbd\x1e\x96\x4d\x9b\x82\xcf\x93\x5f\xca\xf6\x70\x39\xd9\x1f\ +\x66\x7f\xc7\x60\xbd\xc1\x98\x16\x75\x38\xc1\x84\x34\x80\xf3\x8b\ +\x4e\x83\x86\xc1\xb2\x69\x93\xf0\x3a\xb4\x54\x7c\x29\x3e\xea\xed\ +\xe7\x60\x76\xd9\x77\x2c\xcb\xba\x9c\x60\xc2\x19\xc0\xa3\x15\x15\ +\x4d\x69\xad\x7e\x3b\xe8\xf1\xfb\xca\x68\x9e\xd2\xe8\x98\xc7\x3f\ +\x5c\x0e\x77\xf7\xf2\x61\x36\xf1\xc3\x89\xf2\xb3\xb1\x62\x42\x19\ +\xc0\x86\x0a\xff\x8d\xd8\xfc\x46\x4a\x69\x02\xd4\xfb\xcb\x59\x3c\ +\xb9\xc1\xf1\x39\xff\x70\x79\xa7\xb3\x8b\x93\xa1\xcc\x1e\x0e\x63\ +\x51\xda\xed\x04\x13\xc6\x00\x36\x04\x02\x77\x4a\x29\x7e\x41\x36\ +\x5f\x7f\x8a\x19\x60\x41\x63\xdd\x98\xde\x80\x06\xde\x6a\x3f\x4b\ +\x47\x34\xe3\x18\x66\x36\x77\xd0\xab\xbe\x35\x30\xd0\x31\x86\x62\ +\x8d\x88\x09\x61\x00\x1b\x4d\xf3\x2b\x5a\xb0\x25\xb7\x09\xd3\xa7\ +\x2a\x83\xcc\x1d\xe1\x46\xcb\x85\x42\x6b\xcd\xee\xf6\xb3\x74\xe7\ +\x82\x44\x99\xed\x5d\x6e\xf8\x6a\x28\xd4\x3f\xc6\xa2\x0d\x8b\x71\ +\x6f\x00\x9b\x4c\xf3\x2f\x10\xfc\x28\xf7\x7d\x56\x75\x25\xb3\x1c\ +\x2c\x1a\x49\xa4\x6d\xca\x46\x99\x71\x6c\x2b\xcd\x1b\xed\x9d\xf4\ +\x0f\x05\x8b\x2e\x59\x7e\x36\x5e\x18\xb7\x71\x00\x0d\x62\x92\x69\ +\xfe\x9d\x10\xfc\x00\x32\x96\x7a\x75\x6d\x15\x97\x57\x38\x57\x4a\ +\x9e\x48\xdb\xbc\x7e\x26\xa3\xb8\xc6\x72\x5f\xde\x6f\x83\x14\xd0\ +\xe8\x2f\xe7\xec\x40\x1c\xcb\x56\x00\xd3\x55\x2a\xb9\xf8\x2b\x49\ +\xeb\xc9\x27\xc7\x51\x15\xd0\xc5\x18\x97\x06\xb0\x15\x5c\xaf\x9a\ +\xe6\x23\x42\xf0\x1d\xc8\xec\xc0\x75\x4d\x5d\x2d\xd3\xcc\xd1\xa5\ +\x6c\x9f\x8b\x65\x2b\xde\x68\x3f\xcb\x40\x3a\x4d\x34\x95\x22\x94\ +\xb4\x68\xf4\x97\x23\xf3\x34\x03\x97\x10\x34\xf8\xcb\xe9\x88\xc5\ +\x49\x2b\x85\x40\xcc\x4a\x78\xbc\x57\x34\x59\xd6\xaf\x5f\x1a\xc7\ +\x4b\xc5\xe3\xce\x00\xb2\xf9\x7f\xff\x8c\xe0\xcf\x20\xf3\x60\x9b\ +\xea\x6b\x69\x74\x70\xff\x00\x5b\x69\x76\x75\x9e\x25\x62\x0d\x9d\ +\x54\x3b\x90\x4e\xd3\x1b\x4f\xd0\x58\xee\xc3\x95\xe7\xac\xc2\x2d\ +\x04\x0d\x3e\x1f\xed\x03\x71\x6c\xad\xe1\x9c\xf2\xb3\xb1\xd8\xc0\ +\x72\x38\x8c\x2b\x03\x78\xa2\xa1\xc1\x1f\x11\xe2\xd7\x48\x71\x17\ +\x80\x47\x4a\x9a\x1b\x6a\xa9\x71\x30\xb4\xab\xb4\x66\xcf\xd9\x6e\ +\xfa\xb2\xc7\xae\xa0\x79\x0b\xad\xe2\x08\x51\x95\xb0\x6d\xba\x06\ +\x12\x34\x94\x97\xe5\x6d\x04\x1e\x29\xa9\x2d\x2b\xa3\x7d\x20\x9e\ +\x49\x17\x13\x2c\xdd\xe3\x35\x44\x9b\x65\xbd\xe8\xd8\x4d\x38\xc8\ +\xb8\x31\x80\xf5\x15\x15\x55\xa9\x54\xe2\x39\x21\xe4\x4d\x00\x86\ +\xcb\xc5\xd2\xfa\x5a\x2a\xbc\xce\x1d\x22\xaa\x81\xb7\xbb\x7a\xe8\ +\x1a\x74\xd6\xd4\x61\xb7\xe6\x66\x5b\xe9\x7f\xd2\x52\xde\x2a\xa0\ +\xc1\x52\x8a\x8e\x81\x38\xf5\xbe\x32\x3c\x79\x06\x97\x0c\x97\xa4\ +\xca\x30\x68\x1f\x88\xa3\x01\x21\xb8\x61\xb5\xd7\xe8\x6b\xb3\xac\ +\x37\x9c\xba\x17\xa7\x18\x17\xb3\x80\x8d\xe5\xe5\x93\xb4\xdb\xf5\ +\x3b\x09\xf3\x01\x7c\x6e\x17\x4b\xeb\x6a\x28\xcf\x73\x2b\x96\x8f\ +\x63\x7f\x6f\x3f\xa7\x63\x19\xc7\x5c\x69\x4e\x49\xb7\xfb\xda\xdc\ +\xa1\x13\xeb\x2b\x2a\xaa\x84\x4e\xb7\x49\xe4\x4a\xc8\x28\x71\x49\ +\x5d\x0d\xe6\x28\xf6\x34\xec\x4a\x24\xd8\xdb\xdd\x37\xb8\x25\x8c\ +\xd3\x87\x3d\x38\xc1\x98\x1b\xc0\xfa\x8a\x8a\xcb\x5d\x76\xfa\x79\ +\xa4\xbc\x1c\xc0\xf4\xb8\x59\x52\x5b\x83\xe1\x72\x36\xb4\x7b\x28\ +\x14\xe6\x68\x76\x25\x4f\x41\xb7\x54\xfa\xba\x96\x68\xf4\xd0\xb9\ +\xff\xe7\x89\x86\x06\x7f\x3c\x16\xfb\x25\x52\x7c\x16\x32\xdd\x79\ +\x53\x6d\x15\x55\xa3\xe8\x85\xce\x0c\xc4\xd9\x9f\xad\x41\xcc\x1e\ +\xf7\x72\x77\x6b\x24\xb2\x6d\x14\xb7\xe2\x28\x63\x6a\x00\x1b\xfd\ +\xfe\xf9\xc2\x25\x77\x90\xad\x04\xae\xf4\x7a\x68\xae\xa9\xce\xbb\ +\xeb\xfd\x38\x3e\x8c\x44\x79\x3f\x9c\xdd\x76\xf7\x12\x65\x5b\x5b\ +\xc1\xdb\x6b\x9a\x8f\x0b\xc1\x1f\x43\xc6\x09\x5d\x54\x5d\x45\xdd\ +\x28\xfc\x90\xe3\xb1\x01\xde\xeb\xcf\x54\x0b\x2b\x48\x08\xa5\x6f\ +\x6b\x8d\x46\x5f\xce\xfb\x82\x0e\x32\x66\x3e\xc0\x26\xd3\x5c\xa9\ +\xd1\x2f\x08\x21\x6a\x01\x6a\x0d\x83\xe6\x9a\x2a\xdc\x0e\xc7\xf5\ +\x4f\xc6\x06\x38\x18\x1e\xdc\x73\x39\xa9\xa5\x5e\xdd\x1a\x8e\xbe\ +\xf6\x71\xff\x3f\x5b\x84\xf2\xf4\x80\xd7\xa8\x13\x82\x25\x1a\x68\ +\x4f\xc4\x29\x77\xb9\x31\xf3\x1c\x92\x2a\x3d\x1e\x04\xd0\x6b\x59\ +\x08\x70\x0b\xad\xef\xfd\xbc\xcf\xf3\xbb\xed\xc9\xd4\x98\x87\x8c\ +\xc7\xc4\x00\x36\x07\x83\xb7\x29\xad\xb7\xe7\x16\x75\x1a\xcb\xca\ +\x58\x5c\x5d\xe9\x78\x7e\x5a\x7b\x22\xc1\x3b\xfd\x83\x7b\x32\x28\ +\x94\xfe\x62\x6b\x24\xf6\xdb\x4b\xfd\xee\x49\xd0\x6d\x96\xf5\xec\ +\x5e\xaf\xe1\x22\x5b\x84\x72\x36\x91\xc0\x23\x05\x95\x79\xfa\x04\ +\xd5\x5e\x2f\x29\xad\x09\xa5\x52\x20\x84\x01\xf2\x9e\x3b\xbd\xc6\ +\x33\xdb\x2c\xab\xe7\xd2\xbf\x2e\x1c\x45\x1f\x02\x36\x06\xfd\x5f\ +\xd2\xc8\x9f\xc8\xec\x26\x4d\xd3\xca\x7d\xcc\x2b\x40\x8d\x5f\x77\ +\xd2\x62\x6f\x5f\x68\xb0\x72\x47\x68\xbe\xba\x36\x12\xf9\xa7\x91\ +\x5e\x67\xa3\x69\x3e\x28\x04\xff\x90\xfb\x3e\xcb\xf4\x73\xc5\x28\ +\x0a\x53\xf7\xf7\x87\x39\x1d\xcf\xec\x52\xa7\x95\x3e\x2e\xbd\xf6\ +\xaa\xb5\xbd\xf1\x53\x79\x5f\x70\x94\x14\xd5\x00\x36\x06\x03\xad\ +\x1a\xb1\x5e\x66\xdb\xbd\xdc\x5f\xce\x95\x05\xd8\x2a\xb6\x3f\x95\ +\x62\x77\x6f\x28\x13\x8c\x01\xb4\xe6\xbb\xad\x91\xc8\x8f\x2e\xf1\ +\xb3\x8f\x65\x83\x69\xde\x87\xe0\xff\xe5\x16\xa3\x2e\x2b\xf7\x71\ +\x55\x9e\x1b\x49\x68\xe0\xad\xbe\x10\x67\x93\x83\x5b\x05\xbd\x67\ +\x69\xae\xff\xf3\x48\x64\x4c\x7a\x82\xa2\x0c\x01\x1a\xc4\xa4\x60\ +\xe0\xaf\x05\xe2\x47\xb9\x93\x35\x66\x9b\x7e\xae\xf0\x3b\xaf\xfc\ +\x68\x3a\xcd\xee\xbe\x10\xe9\xa1\xa9\xd7\x0f\x5b\x23\x91\x1f\x7c\ +\xf2\xaf\x3e\x99\xed\x96\xb5\xef\x0e\xaf\xf1\x36\x82\x7b\x00\x77\ +\x28\x95\x66\x20\xad\xa8\x37\x8c\x11\xbf\x41\x02\x68\x30\x0c\xfa\ +\x52\x29\xe2\x99\x75\x83\x3a\x97\x56\x37\xde\x65\x06\x7f\xf1\x9b\ +\x78\xbc\xe8\x1b\x48\x15\xbc\x07\x78\x08\xe4\xe4\x60\xe0\xef\x41\ +\x7c\x27\xd7\xe0\xbc\x60\x80\x29\x05\xa8\xea\x8d\xdb\x36\x3b\xfb\ +\x42\x24\x73\xbb\x71\x6a\x36\xb5\x44\x22\xeb\x9c\x2a\xdb\xda\x14\ +\x08\xdc\xa0\xd0\xdb\x06\x13\x52\x0c\x2f\x0b\x83\x66\x5e\x09\x29\ +\x69\xad\xd9\xd5\x17\x22\x9c\x1e\xac\x32\xfa\xd7\x44\x24\x72\x7b\ +\xb1\x0b\x4d\x0a\x9a\x47\xf5\x10\xb8\x27\x05\xfd\x5b\x72\xca\x97\ +\x42\xb0\x30\x68\x32\xc5\x30\x1c\x3f\x52\xce\xb2\x6d\x76\xf7\x87\ +\xcf\x55\xfe\xd6\xea\x48\xe4\x9b\x4e\xd6\xec\xb5\x44\xa3\x2f\x09\ +\x97\xfb\x46\x05\x5d\x00\x67\x93\x16\x7b\xfa\xc3\xa4\x95\x1a\xb1\ +\xbc\x6e\xa0\xb9\xc2\xc4\x9f\xcb\x63\x14\x7c\xda\x30\xcd\x9f\x6e\ +\x2d\xb2\x63\x5e\xb0\x1e\xe0\x31\x28\x4b\x04\xcd\x9f\x49\xb8\x0b\ +\x32\x0b\x25\x8b\x82\x01\x6a\x0a\x70\x5a\x48\x5a\x6b\xde\x08\x85\ +\x89\xe4\xb6\x7e\x53\x7a\x47\x4d\x34\xba\xe6\x8b\x05\xda\x93\x6f\ +\xbd\x69\xce\x16\x5a\xef\x90\x52\x4c\x07\x08\xba\x5d\x34\x07\x83\ +\x78\xe5\xc8\x1f\x67\x42\x29\x76\xf6\x87\x49\x0c\xed\x58\xb6\x65\ +\x6d\x38\x72\x7f\xb1\x8a\x4d\x0b\x62\x6d\x0f\x57\x57\x07\xb5\xdb\ +\xbd\x4d\x0a\x3e\x07\xe0\x15\x82\xe6\xa0\x49\x95\xc3\xa1\x5d\x00\ +\x5b\x6b\xf6\x86\xa3\x84\xb2\xca\xd7\xa8\x9d\xfe\xf2\xc0\xed\xff\ +\x31\x16\xbb\xe4\x86\xd0\xf9\xb2\xdd\xb2\x7a\x3e\xef\x97\x4f\xa1\ +\x5d\x9f\x13\x50\x9b\x54\x9a\xb3\x56\x8a\x06\xaf\x67\xc4\x71\x0c\ +\xb7\x10\xd4\x7a\x3d\x74\x24\xad\x5c\xe2\xc0\xe2\x3d\x86\xe1\x6b\ +\x4b\x5a\x2f\x14\x40\xf4\x0b\x70\xdc\x00\x72\xc5\x1a\x32\x57\xac\ +\x21\x25\x4b\x83\x26\x66\x01\x52\xb6\x35\xf0\x56\x24\x46\x4f\x6e\ +\x1c\x85\x03\x2e\xe4\x2d\x5f\x2b\xc2\x86\x8c\xcf\x26\xd2\xe1\x3b\ +\x3c\xde\x5f\xa0\xb9\x19\x21\x26\xa7\xb4\xa6\xc3\x4a\x51\xeb\xf1\ +\xe0\x15\x23\x1b\x59\xbd\x42\x52\xed\x71\xd3\x61\xa5\x50\x80\x80\ +\x6b\xd7\x78\xbc\xf1\x36\xcb\x7a\xb5\x30\xd2\x0f\xe1\xe8\x10\x70\ +\x41\xb1\x86\x4b\xb2\x24\x10\xa0\xac\x40\x29\xdb\xfb\x62\x03\xb4\ +\x5b\x99\x5e\x5e\x29\x75\xd4\x63\xab\x55\xdf\x88\xc7\xcf\x14\xa4\ +\xb1\x8f\xe1\x82\x73\x84\x84\xa0\x29\x10\xa0\x22\x8f\x34\xb3\x9e\ +\x74\x9a\xbd\x91\xe8\x60\xad\xb9\x52\xfa\x1b\xeb\xa2\xd1\x2d\x4e\ +\xca\x7b\x3e\x8e\x19\xc0\x66\xd3\xbc\x52\xc3\x0b\x83\xc5\x1a\x2e\ +\x17\x4d\x01\x3f\xde\x02\xa5\x6c\x1f\x8c\xc7\x39\x91\x9d\x4b\x2b\ +\xe8\x74\x23\x56\xdd\x1f\x0e\x7f\x50\x90\xc6\x2e\xc1\x05\x27\x89\ +\x09\xc1\x42\x7f\x39\x35\x79\x0c\x79\x9d\xa9\x14\xfb\x62\x03\x83\ +\x9b\x4e\x69\xa1\xbf\xd0\x1a\x8a\xfe\xca\x51\x81\xcf\xc1\x91\x7e\ +\x59\x83\xd8\x5b\x66\xbc\x8c\xe0\x0a\x80\x6a\xb7\x9b\x26\x7f\x39\ +\x9e\x02\x29\xff\x83\x44\x92\x63\xb9\x40\x8a\x52\x21\x97\x4b\xdf\ +\x7c\x7f\x28\x7a\xb0\x20\x8d\x0d\x83\xec\x49\x28\x4f\x05\x0c\xcf\ +\x54\x81\x58\xa4\x80\x0e\x2b\x45\x40\x4a\x02\x23\xec\xfd\x02\x52\ +\x62\x48\x49\x57\x66\x58\x13\x1a\x71\xf7\x1d\x65\x9e\x9d\x6d\xc9\ +\x54\x41\xea\x0d\x1c\xd1\xd0\x8f\x7d\xbe\xc9\xb6\xc7\x7d\x1a\x20\ +\xe8\x92\x2c\xf3\xfb\x0b\x36\xbf\x3c\x6e\x59\x1c\x1a\xca\xbe\x8d\ +\x2b\xa5\x6f\x59\x17\x8d\x16\x7c\xac\x1c\x0e\xe7\x9c\x26\xfa\x3d\ +\xc8\x3c\xdc\xb9\xbe\x32\xa6\xe6\x31\xf3\x39\x6a\x59\xbc\x9f\xbd\ +\x4f\xa5\x54\x0c\xe9\xba\x79\x5d\x38\xbc\xcb\x51\x81\x71\x28\x0e\ +\x10\x8b\xc7\x7b\x94\x52\x11\x80\x88\xad\x32\xe3\xb2\xc3\xf3\x7c\ +\xb4\xe6\x8c\x95\xe2\xf0\x90\xf2\xd3\x4a\xf3\x47\xe3\x45\xf9\x90\ +\x39\x04\xa3\x25\x1c\xfd\x4b\xd0\x7f\x05\x19\x27\xf5\xdd\x78\x82\ +\xa3\xc9\xe4\x88\xef\x75\x86\xc7\xc3\x8c\x6c\x1e\x82\x94\xd2\x8f\ +\xb2\x9f\xdb\x10\x08\xcc\x75\x5a\x66\x47\x0c\xe0\xdb\x90\x94\x42\ +\x3e\x08\xd9\x9b\x4e\x24\x39\x6d\xa5\x32\x5f\x1c\xfa\x74\xa5\xd2\ +\x1c\x48\x24\x72\x89\x15\x5a\x23\xbe\xb2\x2e\x12\x79\xd6\x09\xf9\ +\x9d\x24\x6b\x04\xff\x43\x0b\xdd\x92\x3b\x09\xe5\xfd\xa4\xc5\xfb\ +\x49\x6b\xc4\xf7\x7c\xa5\xd7\x3b\xd8\x7b\x48\x29\xab\xa5\x14\x3b\ +\x7e\x5c\x59\x79\x99\xc3\xf2\x3a\xc7\xa6\x60\xe0\x01\x10\x8f\xe4\ +\x2e\x7c\xb5\x61\x30\xc5\x81\x72\xed\x3e\xdb\x66\x6f\x3c\x31\x98\ +\x60\xaf\x51\xdf\x6a\x0d\xc7\x1e\x19\xf5\x85\x0b\xcc\xa6\x8a\xc0\ +\x17\x94\x16\x3f\xcd\xad\x7c\x4e\xf5\xb8\x99\x3b\xc2\xf5\x03\x0d\ +\xec\x4b\x24\xe9\x1c\x9c\xea\xaa\x23\xb6\xcd\xaa\x07\x62\xb1\xb3\ +\x4e\xc8\xe8\xb8\x97\x76\xa1\x11\x78\x99\x32\x8a\x00\x50\x58\x29\ +\x76\x27\x92\x43\x8b\x3b\xe8\x87\x5a\xc2\xd1\xff\xe6\x80\xa8\x45\ +\x61\x63\x30\x78\xab\x56\xea\xd7\x52\x8a\x72\x80\x06\xb7\x8b\x6b\ +\xf2\x30\x82\xbd\x89\x24\x3d\xd9\x7d\x09\xd1\xbc\x85\xdb\x7d\x53\ +\x4b\xdf\xe0\xa1\x04\x79\x53\x10\x37\xfd\x02\x23\xf0\x7a\x99\x92\ +\xc7\xbc\x78\x40\x6b\xde\x48\x24\xb1\xb2\xca\x57\xe8\x7f\x6c\x0d\ +\x47\x1f\x9c\x68\x7b\xf2\x6d\x36\xcd\xe5\x5a\xab\x67\x91\xb2\x0a\ +\xa0\xc6\x25\x59\x64\x18\x23\x9a\x82\xd9\xc0\xee\x44\x92\xd0\x50\ +\xc8\xf8\xe5\x68\x38\xf2\xd9\xef\x42\x7c\x34\xb2\x15\xe8\xf8\x78\ +\x6b\xf7\x1a\xc3\xdb\x05\xe2\x76\x80\x2e\xdb\xc6\x10\x02\x73\x04\ +\xd3\xc2\xa4\xd6\xec\x4e\x5a\x24\x87\xde\xfc\x7f\x6e\x0f\x47\x5b\ +\x6f\x9a\x60\xca\x07\xd8\x66\x59\xa7\x3e\xef\xf1\x6e\x47\x8a\xbb\ +\x05\x98\x71\xad\xe9\xb1\x15\xf5\x52\x0e\xdb\x09\x13\x40\x83\x4b\ +\xd2\xad\x14\x56\xe6\x09\x5c\xe6\xf6\x1a\xd5\xdb\x2d\x6b\xfb\x68\ +\x64\x2b\xd8\x6a\x60\x4b\x38\xba\x1e\xf4\x37\x21\xa3\xb1\xf7\xac\ +\x14\xa7\xd3\xf6\xb0\x9c\x9f\x94\xd2\xec\x4d\x5a\xc4\x07\x95\xaf\ +\xb6\x11\x8e\x7e\xed\xfb\x13\x78\x43\xc6\x07\x62\xb1\x03\x2e\x21\ +\xaf\xd5\x4a\x7d\x00\x10\x52\x2a\x63\xe0\x4a\x0f\xdb\x29\xf4\x20\ +\x68\xf2\x78\x87\x82\x6b\x99\xfc\x84\x51\x51\xd0\xe5\xe0\x0b\x8c\ +\x20\x95\xe2\x74\x3a\xfd\x89\xd3\x1f\x5b\x6b\xde\xb4\x2c\xa2\x83\ +\xca\xe7\xe5\x68\x38\xf6\xa5\x16\x48\x7d\x6c\x43\x13\x84\xb5\xa1\ +\xd0\x51\x97\x66\x15\x9a\x7d\x00\x51\xad\xd9\x65\x59\x0c\x8c\x60\ +\x39\xb9\xd3\xb6\x07\x87\x44\x60\xd4\x8e\x60\xc1\xf7\x55\xb9\xc0\ +\x08\xd2\x69\x4e\xdb\xf6\x45\x6f\x4e\x69\xcd\x5b\xa9\x14\xa1\xa1\ +\x6c\x9e\xb7\x70\xb9\xef\x18\xed\x38\x37\x9e\xb8\x3f\x16\xeb\xf4\ +\x4a\x79\xa3\x82\x57\x00\xe2\x5a\xb3\x2b\x95\x22\x32\x0c\x23\x38\ +\x91\x4e\x73\x68\x68\xe1\x4b\xb9\x34\xa3\xde\xa0\xba\x28\x1b\xeb\ +\x5c\xd4\x08\xce\x3b\xb1\x4b\x03\xef\xa4\xd3\xf4\x0e\xfe\x5d\x1d\ +\xb1\x95\xfa\xac\x13\x9e\xee\x78\xe3\xab\xa1\x50\xbf\xf4\x07\x6e\ +\x03\xfd\x2c\x80\xa5\x35\xbb\x53\x29\xfa\x87\xde\xec\x0b\x38\x61\ +\xdb\x1c\xb2\x07\x2b\xcd\x15\xa8\x2f\xaf\x8d\x44\xda\x46\x2b\x4b\ +\xd1\xb2\x4f\xce\x77\x0c\xbb\x95\xa2\x4c\x08\x82\xd9\xf1\xec\xbd\ +\x74\x9a\xf6\x21\xa3\x38\xed\x92\xee\x1b\x5b\x22\x91\xa2\xae\xec\ +\x15\x93\xb6\x68\x34\xb5\x26\x69\x3d\xa9\x3c\xde\x99\x42\x88\xf9\ +\x0a\xe8\x50\x0a\x53\x08\xfc\xe7\x39\xcb\x17\x53\x7e\x4b\x38\xe6\ +\xc8\xc1\x14\x45\x4d\x3f\xfa\x38\x23\xe8\x50\x8a\x93\x59\xe5\x2b\ +\xa5\x7a\xb5\xe6\xe6\x96\x31\x5a\xd9\x2b\x26\x6d\xa0\x9a\x2d\xeb\ +\xe9\x80\xc7\x5b\x23\x84\x58\xaa\x81\x4e\xa5\x28\x3f\x67\xc6\x74\ +\xbe\xf2\x15\xe2\x4f\x5a\xc3\xce\x9d\x4a\x52\xf4\xc2\x90\x0b\xa6\ +\x88\x4a\x0d\x76\x7d\xd9\x45\x8f\x5b\xd7\x45\x22\x6f\x17\x5b\xae\ +\xb1\xe2\x25\xd0\xdb\x2c\xeb\xb7\x7b\xbd\x06\x08\x6e\x84\xcc\x33\ +\xf1\x00\x21\xad\xff\x9d\xf2\x35\xe2\x4f\xd7\x85\xc3\x3f\x73\xb2\ +\xfd\x31\xab\x0d\x3c\x37\x58\x04\x99\xd3\xb6\xa4\x50\xb7\xb7\x84\ +\x62\x45\x49\x85\x1a\x8f\x6c\x34\xcd\xff\x24\x04\x0f\x5f\xe4\x9f\ +\x94\x46\xfc\x69\x6b\x38\xfc\x2f\x4e\xb7\x39\xa6\xc5\xa1\x9b\x4d\ +\x73\xb5\x2d\xf8\xba\x54\x3a\xae\x85\x78\xb8\x35\x12\x19\x77\xf5\ +\xf3\xc5\x66\x73\x30\xf8\x65\x1b\xfd\xb8\x1c\xea\x9d\x95\x40\xdc\ +\xb7\x36\x1c\xfe\x69\x21\xda\x1b\xf3\xf2\xf0\x12\x17\xb2\xc9\x34\ +\x57\x22\xf4\x3a\xa5\x90\xb8\xf4\xa3\xeb\x42\xb1\x17\xc7\x5a\xa6\ +\x12\x25\x4a\x94\x28\x51\xa2\x44\x89\x12\x25\x4a\x94\x28\x51\xa2\ +\x44\x89\x12\x25\x4a\x94\x28\x51\xa2\x44\x89\x12\x25\x4a\x94\x28\ +\x51\xa2\xc4\xc4\xe1\xff\x03\xdb\xb7\x0d\xc0\x19\x82\xb3\x5c\x00\ +\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +" + +qt_resource_name = b"\ +\x00\x09\ +\x0c\x78\x54\x88\ +\x00\x6e\ +\x00\x65\x00\x77\x00\x50\x00\x72\x00\x65\x00\x66\x00\x69\x00\x78\ +\x00\x08\ +\x00\x28\x5a\xe7\ +\x00\x66\ +\x00\x69\x00\x6c\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x15\ +\x0d\x53\x63\x27\ +\x00\x69\ +\x00\x66\x00\x5f\x00\x44\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x5f\x00\x31\x00\x34\x00\x39\x00\x33\x00\x32\x00\x37\x00\x39\ +\x00\x2e\x00\x70\x00\x6e\x00\x67\ +" + +qt_resource_struct = b"\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\ +\x00\x00\x00\x18\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x01\x00\x00\x0b\x09\ +" + +def qInitResources(): + QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + +def qCleanupResources(): + QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + +qInitResources() diff --git a/partner_625781186/14.多进程爬虫/README.md b/partner_625781186/14.多进程爬虫/README.md new file mode 100644 index 0000000..88117fb --- /dev/null +++ b/partner_625781186/14.多进程爬虫/README.md @@ -0,0 +1,16 @@ +# QWebEngineView 开启控制台 + +需要在 设置环境变量 , 并在浏览器中访问 , 因为访问的是网页 ,并且扩展工具选择页面元素 会加一个 动态高亮的样式类 , 所以可以用这个方法 来获取页面 元素的html相关属性元素。 + +```python +if __name__ == "__main__": + ... + + import os + os.environ["QTWEBENGINE_REMOTE_DEBUGGING"] = "9000" + + ... + +``` + +![1](ScreenShot/1.gif) \ No newline at end of file diff --git a/partner_625781186/14.多进程爬虫/ScreenShot/1.gif b/partner_625781186/14.多进程爬虫/ScreenShot/1.gif new file mode 100644 index 0000000..389328d Binary files /dev/null and b/partner_625781186/14.多进程爬虫/ScreenShot/1.gif differ diff --git a/partner_625781186/14.多进程爬虫/__init__.py b/partner_625781186/14.多进程爬虫/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/partner_625781186/14.多进程爬虫/icons/add_page.png b/partner_625781186/14.多进程爬虫/icons/add_page.png new file mode 100644 index 0000000..ff8f207 Binary files /dev/null and b/partner_625781186/14.多进程爬虫/icons/add_page.png differ diff --git a/partner_625781186/14.多进程爬虫/icons/back.png b/partner_625781186/14.多进程爬虫/icons/back.png new file mode 100644 index 0000000..fc13555 Binary files /dev/null and b/partner_625781186/14.多进程爬虫/icons/back.png differ diff --git a/partner_625781186/14.多进程爬虫/icons/clipboard.png b/partner_625781186/14.多进程爬虫/icons/clipboard.png new file mode 100644 index 0000000..b689cff Binary files /dev/null and b/partner_625781186/14.多进程爬虫/icons/clipboard.png differ diff --git a/partner_625781186/14.多进程爬虫/icons/cross.png b/partner_625781186/14.多进程爬虫/icons/cross.png new file mode 100644 index 0000000..6b9fa6d Binary files /dev/null and b/partner_625781186/14.多进程爬虫/icons/cross.png differ diff --git a/partner_625781186/14.多进程爬虫/icons/lock.png b/partner_625781186/14.多进程爬虫/icons/lock.png new file mode 100644 index 0000000..571c16d Binary files /dev/null and b/partner_625781186/14.多进程爬虫/icons/lock.png differ diff --git a/partner_625781186/14.多进程爬虫/icons/next.png b/partner_625781186/14.多进程爬虫/icons/next.png new file mode 100644 index 0000000..977b9e5 Binary files /dev/null and b/partner_625781186/14.多进程爬虫/icons/next.png differ diff --git a/partner_625781186/14.多进程爬虫/icons/penguin.png b/partner_625781186/14.多进程爬虫/icons/penguin.png new file mode 100644 index 0000000..7e93b80 Binary files /dev/null and b/partner_625781186/14.多进程爬虫/icons/penguin.png differ diff --git a/partner_625781186/14.多进程爬虫/icons/question.png b/partner_625781186/14.多进程爬虫/icons/question.png new file mode 100644 index 0000000..b9ca7cb Binary files /dev/null and b/partner_625781186/14.多进程爬虫/icons/question.png differ diff --git a/partner_625781186/14.多进程爬虫/icons/renew.png b/partner_625781186/14.多进程爬虫/icons/renew.png new file mode 100644 index 0000000..dda7132 Binary files /dev/null and b/partner_625781186/14.多进程爬虫/icons/renew.png differ diff --git a/partner_625781186/14.多进程爬虫/icons/save.png b/partner_625781186/14.多进程爬虫/icons/save.png new file mode 100644 index 0000000..966a19d Binary files /dev/null and b/partner_625781186/14.多进程爬虫/icons/save.png differ diff --git a/partner_625781186/14.多进程爬虫/多进程爬虫.py b/partner_625781186/14.多进程爬虫/多进程爬虫.py new file mode 100644 index 0000000..002d8a8 --- /dev/null +++ b/partner_625781186/14.多进程爬虫/多进程爬虫.py @@ -0,0 +1,118 @@ +import sys +import cgitb +sys.excepthook = cgitb.Hook(1, None, 5, sys.stderr, 'text') + +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * +from PyQt5.QtWebEngineWidgets import QWebEngineView + +from multiprocessing import Process, Pool + +def runPool( i): + print(i) + t= py_process() + t.run() + +class SWebEngineView(QWebEngineView): + ''' + 浏览器类。 + ''' + def __init__(self, parent=None, url=""): + super(SWebEngineView, self).__init__() + self.parent = parent + self.url = url#初始路径 + self.tempurl=""#组成跳转链接的临时路径 + self.loadFinished.connect(self.gethtml) + self.show() + self.a=0 + def gethtml(self, *a, **b): + self.a+=1 + print("times:", self.a,"--" , self.page().url()) + + def closeEvent(self,e): + self.deleteLater() + def clickLieBiao(self): + + print("end") + + # title + self.page().runJavaScript('''$("#alarmtitle").text()''', + self.get_title) + # content + self.page().runJavaScript('''$("#alarmcontent").text()''', + self.get_content) + # datetime re.sub + self.page().runJavaScript('''$("div.RecoveryDirectoryNav").text()''', + self.get_datetime) + # img + self.page().runJavaScript('''$("#alarmimg").attr("src")''', + self.get_img) + + def get_title(self, balance): + # self._dict["title"] = balance + + self.appInList(balance) + + def get_content(self, balance): + # self._dict["content"] = balance + + self.appInList(balance) + + def get_datetime(self, balance): + # balance = re.sub(r"【.+?】", "", balance) + # self._dict["datetime"] = balance + + self.appInList(balance) + + def get_img(self, balance): + # self._dict["img"] = balance + self.appInList(balance) + + def appInList(self,blance): + + print(blance) + +class py_process(Process): + def __init__(self): + super(py_process, self).__init__() + print("1") + self.url= r'https://siteserver.progressivedirect.com/session/setidredirect/?&product=AU&statecode=DC&type=New&refer=PGRX&URL=https://qad.progressivedirect.com/ApplicationStart.aspx?Page=Create&OfferingID=DC&state=DC&zip=20007&SessionStart=True' + self.app = QApplication(sys.argv) + + self.browser = SWebEngineView(self, self.url) + + + def run(self): + print("run1") + self.browser.setUrl(QUrl(self.url)) + print("run2") + + self.app.exec_() + +if __name__ == "__main__": + import sys + + app = QApplication(sys.argv) + #pool只能在if __name__ == "__main__":中使用 + # pool = Pool(3) + + # for i in range(2): + # pool.apply_async(runPool, (i, )) + + # pool.close() + # pool.join() + import os + os.environ["QTWEBENGINE_REMOTE_DEBUGGING"] = "9000" + + # url= r'https://siteserver.progressivedirect.com/session/setidredirect/?&product=AU&statecode=DC&type=New&refer=PGRX&URL=https://qad.progressivedirect.com/ApplicationStart.aspx?Page=Create&OfferingID=DC&state=DC&zip=20007&SessionStart=True' + url= r'http://www.progressive.com' + + browser = SWebEngineView(url) + + print("run1") + browser.setUrl(QUrl(url)) + print("run2") + + sys.exit(app.exec_()) + diff --git a/文本高亮/README.md b/文本高亮/README.md new file mode 100644 index 0000000..40de0e1 --- /dev/null +++ b/文本高亮/README.md @@ -0,0 +1,4 @@ +# QTextEdit mergeCurrentCharFormat函数 + + +![1](ScreenShot/1.gif) \ No newline at end of file diff --git a/文本高亮/ScreenShot/1.gif b/文本高亮/ScreenShot/1.gif new file mode 100644 index 0000000..340287f Binary files /dev/null and b/文本高亮/ScreenShot/1.gif differ diff --git a/文本高亮/简单查找文字并高亮.py b/文本高亮/简单查找文字并高亮.py new file mode 100644 index 0000000..75d1bc9 --- /dev/null +++ b/文本高亮/简单查找文字并高亮.py @@ -0,0 +1,57 @@ +import sys +from PyQt5.QtGui import QTextCharFormat,QTextDocument, QTextCursor +from PyQt5.QtWidgets import (QApplication, QMainWindow, QTextEdit, + QToolBar, QLineEdit, QPushButton, QColorDialog, QHBoxLayout, QWidget) + +class TextEdit(QMainWindow): + def __init__(self, parent=None): + super(TextEdit, self).__init__(parent) + self.textEdit = QTextEdit(self) + self.setCentralWidget(self.textEdit) + + widget = QWidget(self) + vb = QHBoxLayout(widget) + vb.setContentsMargins(0, 0, 0, 0) + self.findText = QLineEdit(self) + self.findText.setText('self') + findBtn = QPushButton('高亮',self) + findBtn.clicked.connect(self.highlight) + vb.addWidget(self.findText) + vb.addWidget(findBtn) + + tb = QToolBar(self) + tb.addWidget(widget) + + def setText(self,text): + self.textEdit.setPlainText(text) + + def mergeFormatOnWordOrSelection(self, format): + cursor = self.textEdit.textCursor() + if not cursor.hasSelection(): + cursor.select(QTextCursor.WordUnderCursor) + cursor.mergeCharFormat(format) + self.textEdit.mergeCurrentCharFormat(format) + + def highlight(self): + text = self.findText.text()#输入框中的文字 + if not text: + return + col = QColorDialog.getColor(self.textEdit.textColor(), self) + if not col.isValid(): + return + fmt = QTextCharFormat() + fmt.setForeground(col) + #先把光标移动到开头 + self.textEdit.moveCursor(QTextCursor.Start) + while self.textEdit.find(text,QTextDocument.FindWholeWords):#查找所有文字 + self.mergeFormatOnWordOrSelection(fmt) + +if __name__ == '__main__': + app = QApplication(sys.argv) + + textEdit = TextEdit() + textEdit.resize(800, 600) + textEdit.show() + textEdit.setText(open(sys.argv[0],'rb').read().decode()) + + sys.exit(app.exec_()) \ No newline at end of file diff --git a/调用截图dll(只能用32位)/README.md b/调用截图dll(只能用32位)/README.md new file mode 100644 index 0000000..d8f6b97 --- /dev/null +++ b/调用截图dll(只能用32位)/README.md @@ -0,0 +1,3 @@ +# 只允许32位python调用 , 64位会报错 + +![1](ScreenShot/1.gif) \ No newline at end of file diff --git a/调用截图dll(只能用32位)/ScreenShot.dll b/调用截图dll(只能用32位)/ScreenShot.dll new file mode 100644 index 0000000..ac4a8a9 Binary files /dev/null and b/调用截图dll(只能用32位)/ScreenShot.dll differ diff --git a/调用截图dll(只能用32位)/ScreenShot/1.gif b/调用截图dll(只能用32位)/ScreenShot/1.gif new file mode 100644 index 0000000..3e27e2d Binary files /dev/null and b/调用截图dll(只能用32位)/ScreenShot/1.gif differ diff --git a/调用截图dll(只能用32位)/截图DLL测试.py b/调用截图dll(只能用32位)/截图DLL测试.py new file mode 100644 index 0000000..bad08d9 --- /dev/null +++ b/调用截图dll(只能用32位)/截图DLL测试.py @@ -0,0 +1,3 @@ +from ctypes import CDLL +dll = CDLL('ScreenShot.dll') +dll.PrScrn()