Commit 2f04d179 authored by mayinghao's avatar mayinghao

1工厂上传,2 支持多线程多个文件同时上传

parent 37ad29d0
Pipeline #24 canceled with stages
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'login.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_LoginWindow(object):
def setupUi(self, LoginWindow):
LoginWindow.setObjectName("LoginWindow")
LoginWindow.resize(889, 671)
self.centralwidget = QtWidgets.QWidget(LoginWindow)
self.centralwidget.setObjectName("centralwidget")
self.frame = QtWidgets.QFrame(self.centralwidget)
self.frame.setGeometry(QtCore.QRect(50, 50, 271, 371))
self.frame.setStyleSheet("#frame {background-color: qlineargradient(spread:pad, x1:0.272955, y1:0.244, x2:1, y2:1, stop:0 rgba(132, 95, 103, 255), stop:1 rgba(255, 255, 255, 255));\n"
"border-radius:20px;}")
self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame.setObjectName("frame")
self.label = QtWidgets.QLabel(self.frame)
self.label.setGeometry(QtCore.QRect(10, 70, 161, 51))
self.label.setStyleSheet("color: rgb(255, 255, 255);\n"
"font: 14pt \"Algerian\";")
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.frame)
self.label_2.setGeometry(QtCore.QRect(20, 180, 221, 51))
self.label_2.setStyleSheet("color: rgb(255, 255, 255);\n"
"font: 11pt \"幼圆\";")
self.label_2.setObjectName("label_2")
self.frame_2 = QtWidgets.QFrame(self.centralwidget)
self.frame_2.setGeometry(QtCore.QRect(320, 80, 271, 331))
self.frame_2.setStyleSheet("#frame_2{\n"
"background-color: rgb(255, 255, 255);\n"
"border-top-right-radius:20px;\n"
"border-bottom-right-radius:20px;\n"
"}")
self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_2.setObjectName("frame_2")
self.pushButton = QtWidgets.QPushButton(self.frame_2)
self.pushButton.setGeometry(QtCore.QRect(210, 0, 75, 23))
self.pushButton.setStyleSheet("QPushButton{\n"
"border:none;\n"
"}\n"
"QPushButton:hover{\n"
"padding-bottom:5px;\n"
"}")
self.pushButton.setText("")
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/icons/icons/close.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.pushButton.setIcon(icon)
self.pushButton.setObjectName("pushButton")
self.frame_3 = QtWidgets.QFrame(self.frame_2)
self.frame_3.setGeometry(QtCore.QRect(0, 40, 271, 281))
self.frame_3.setMinimumSize(QtCore.QSize(271, 281))
self.frame_3.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame_3.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_3.setObjectName("frame_3")
self.verticalLayout = QtWidgets.QVBoxLayout(self.frame_3)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setObjectName("verticalLayout")
self.frame_4 = QtWidgets.QFrame(self.frame_3)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(6)
sizePolicy.setHeightForWidth(self.frame_4.sizePolicy().hasHeightForWidth())
self.frame_4.setSizePolicy(sizePolicy)
self.frame_4.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame_4.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_4.setObjectName("frame_4")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.frame_4)
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_3.setSpacing(0)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.frame_6 = QtWidgets.QFrame(self.frame_4)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(5)
sizePolicy.setHeightForWidth(self.frame_6.sizePolicy().hasHeightForWidth())
self.frame_6.setSizePolicy(sizePolicy)
self.frame_6.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame_6.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_6.setObjectName("frame_6")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.frame_6)
self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_2.setSpacing(0)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.stackedWidget_2 = QtWidgets.QStackedWidget(self.frame_6)
self.stackedWidget_2.setStyleSheet("QLineEdit{\n"
" background-color: rgba(255, 255, 255,0);\n"
"border:none;\n"
"border-bottom:1px solid;\n"
"}\n"
"QPushButton{\n"
" background-color: rgb(0, 0, 0);\n"
" \n"
" color: rgb(255, 255, 255);\n"
" border-radius:7px;\n"
"}\n"
"QPushButton:pressed{\n"
"padding-top:5px;\n"
"paddding-left:5px;\n"
"}")
self.stackedWidget_2.setObjectName("stackedWidget_2")
self.page_login = QtWidgets.QWidget()
self.page_login.setObjectName("page_login")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.page_login)
self.verticalLayout_4.setContentsMargins(9, 9, 9, 9)
self.verticalLayout_4.setSpacing(0)
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.lineEdit_l_username = QtWidgets.QLineEdit(self.page_login)
self.lineEdit_l_username.setMinimumSize(QtCore.QSize(0, 35))
self.lineEdit_l_username.setText("")
self.lineEdit_l_username.setObjectName("lineEdit_l_username")
self.verticalLayout_4.addWidget(self.lineEdit_l_username)
self.lineEdit_l_password = QtWidgets.QLineEdit(self.page_login)
self.lineEdit_l_password.setMinimumSize(QtCore.QSize(0, 35))
self.lineEdit_l_password.setText("")
self.lineEdit_l_password.setEchoMode(QtWidgets.QLineEdit.Password)
self.lineEdit_l_password.setObjectName("lineEdit_l_password")
self.verticalLayout_4.addWidget(self.lineEdit_l_password)
self.pushButton_4 = QtWidgets.QPushButton(self.page_login)
self.pushButton_4.setMinimumSize(QtCore.QSize(0, 35))
self.pushButton_4.setObjectName("pushButton_4")
self.verticalLayout_4.addWidget(self.pushButton_4)
self.stackedWidget_2.addWidget(self.page_login)
self.page_register = QtWidgets.QWidget()
self.page_register.setObjectName("page_register")
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.page_register)
self.verticalLayout_5.setContentsMargins(9, 9, 9, 9)
self.verticalLayout_5.setSpacing(9)
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.lineEdit_re_account = QtWidgets.QLineEdit(self.page_register)
self.lineEdit_re_account.setMinimumSize(QtCore.QSize(0, 35))
self.lineEdit_re_account.setObjectName("lineEdit_re_account")
self.verticalLayout_5.addWidget(self.lineEdit_re_account)
self.lineEdit__password = QtWidgets.QLineEdit(self.page_register)
self.lineEdit__password.setMinimumSize(QtCore.QSize(0, 35))
self.lineEdit__password.setEchoMode(QtWidgets.QLineEdit.Password)
self.lineEdit__password.setObjectName("lineEdit__password")
self.verticalLayout_5.addWidget(self.lineEdit__password)
self.lineEdit_confirm_password = QtWidgets.QLineEdit(self.page_register)
self.lineEdit_confirm_password.setMinimumSize(QtCore.QSize(0, 35))
self.lineEdit_confirm_password.setEchoMode(QtWidgets.QLineEdit.Password)
self.lineEdit_confirm_password.setObjectName("lineEdit_confirm_password")
self.verticalLayout_5.addWidget(self.lineEdit_confirm_password)
self.pushButton_reg = QtWidgets.QPushButton(self.page_register)
self.pushButton_reg.setMinimumSize(QtCore.QSize(0, 35))
self.pushButton_reg.setObjectName("pushButton_reg")
self.verticalLayout_5.addWidget(self.pushButton_reg)
self.stackedWidget_2.addWidget(self.page_register)
self.horizontalLayout_2.addWidget(self.stackedWidget_2)
self.verticalLayout_3.addWidget(self.frame_6)
self.frame_7 = QtWidgets.QFrame(self.frame_4)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(1)
sizePolicy.setHeightForWidth(self.frame_7.sizePolicy().hasHeightForWidth())
self.frame_7.setSizePolicy(sizePolicy)
self.frame_7.setStyleSheet("QPushButton { \n"
"border:none\n"
"\n"
"}\n"
"\n"
"QPushButton:pressed{\n"
"padding-top:5px;padding-left:5px}")
self.frame_7.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame_7.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_7.setObjectName("frame_7")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.frame_7)
self.horizontalLayout.setObjectName("horizontalLayout")
self.login = QtWidgets.QPushButton(self.frame_7)
self.login.setText("")
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(":/icons/icons/login.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.login.setIcon(icon1)
self.login.setObjectName("login")
self.horizontalLayout.addWidget(self.login)
self.register_2 = QtWidgets.QPushButton(self.frame_7)
self.register_2.setText("")
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap(":/icons/icons/register.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.register_2.setIcon(icon2)
self.register_2.setObjectName("register_2")
self.horizontalLayout.addWidget(self.register_2)
self.verticalLayout_3.addWidget(self.frame_7)
self.verticalLayout.addWidget(self.frame_4)
self.frame_5 = QtWidgets.QFrame(self.frame_3)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(1)
sizePolicy.setHeightForWidth(self.frame_5.sizePolicy().hasHeightForWidth())
self.frame_5.setSizePolicy(sizePolicy)
self.frame_5.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame_5.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_5.setObjectName("frame_5")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.frame_5)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2.setSpacing(0)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.stackedWidget = QtWidgets.QStackedWidget(self.frame_5)
self.stackedWidget.setObjectName("stackedWidget")
self.page_wrong = QtWidgets.QWidget()
self.page_wrong.setObjectName("page_wrong")
self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.page_wrong)
self.verticalLayout_6.setObjectName("verticalLayout_6")
self.label_3 = QtWidgets.QLabel(self.page_wrong)
self.label_3.setStyleSheet("color: rgb(204, 0, 0);")
self.label_3.setObjectName("label_3")
self.verticalLayout_6.addWidget(self.label_3, 0, QtCore.Qt.AlignHCenter)
self.stackedWidget.addWidget(self.page_wrong)
self.page = QtWidgets.QWidget()
self.page.setObjectName("page")
self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.page)
self.verticalLayout_8.setObjectName("verticalLayout_8")
self.label_5 = QtWidgets.QLabel(self.page)
self.label_5.setStyleSheet("color: rgb(170, 0, 0);")
self.label_5.setObjectName("label_5")
self.verticalLayout_8.addWidget(self.label_5, 0, QtCore.Qt.AlignHCenter)
self.stackedWidget.addWidget(self.page)
self.page_2 = QtWidgets.QWidget()
self.page_2.setObjectName("page_2")
self.verticalLayout_9 = QtWidgets.QVBoxLayout(self.page_2)
self.verticalLayout_9.setObjectName("verticalLayout_9")
self.label_6 = QtWidgets.QLabel(self.page_2)
self.label_6.setStyleSheet("color: rgb(170, 0, 0);")
self.label_6.setObjectName("label_6")
self.verticalLayout_9.addWidget(self.label_6, 0, QtCore.Qt.AlignHCenter)
self.stackedWidget.addWidget(self.page_2)
self.page_3 = QtWidgets.QWidget()
self.page_3.setObjectName("page_3")
self.stackedWidget.addWidget(self.page_3)
self.page_4 = QtWidgets.QWidget()
self.page_4.setObjectName("page_4")
self.verticalLayout_10 = QtWidgets.QVBoxLayout(self.page_4)
self.verticalLayout_10.setObjectName("verticalLayout_10")
self.label_7 = QtWidgets.QLabel(self.page_4)
self.label_7.setStyleSheet("color: rgb(170, 0, 0);")
self.label_7.setObjectName("label_7")
self.verticalLayout_10.addWidget(self.label_7, 0, QtCore.Qt.AlignHCenter)
self.stackedWidget.addWidget(self.page_4)
self.page_empty = QtWidgets.QWidget()
self.page_empty.setObjectName("page_empty")
self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.page_empty)
self.verticalLayout_7.setObjectName("verticalLayout_7")
self.label_4 = QtWidgets.QLabel(self.page_empty)
self.label_4.setStyleSheet("color: rgb(203, 0, 0);")
self.label_4.setObjectName("label_4")
self.verticalLayout_7.addWidget(self.label_4, 0, QtCore.Qt.AlignHCenter)
self.stackedWidget.addWidget(self.page_empty)
self.page_index = QtWidgets.QWidget()
self.page_index.setObjectName("page_index")
self.stackedWidget.addWidget(self.page_index)
self.verticalLayout_2.addWidget(self.stackedWidget)
self.verticalLayout.addWidget(self.frame_5)
self.frame_2.raise_()
self.frame.raise_()
LoginWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(LoginWindow)
self.stackedWidget_2.setCurrentIndex(0)
self.stackedWidget.setCurrentIndex(3)
self.pushButton.clicked.connect(LoginWindow.close) # type: ignore
QtCore.QMetaObject.connectSlotsByName(LoginWindow)
def retranslateUi(self, LoginWindow):
_translate = QtCore.QCoreApplication.translate
LoginWindow.setWindowTitle(_translate("LoginWindow", "MainWindow"))
self.label.setText(_translate("LoginWindow", "Welcome Back"))
self.label_2.setText(_translate("LoginWindow", "感谢用户的支持\n"
"您的支持是对我们最大的鼓励"))
self.lineEdit_l_username.setPlaceholderText(_translate("LoginWindow", "账号:"))
self.lineEdit_l_password.setPlaceholderText(_translate("LoginWindow", "密码:"))
self.pushButton_4.setText(_translate("LoginWindow", "登录"))
self.lineEdit_re_account.setPlaceholderText(_translate("LoginWindow", "账号"))
self.lineEdit__password.setPlaceholderText(_translate("LoginWindow", "密码"))
self.lineEdit_confirm_password.setPlaceholderText(_translate("LoginWindow", "确认密码:"))
self.pushButton_reg.setText(_translate("LoginWindow", "注册"))
self.label_3.setText(_translate("LoginWindow", "密码错误或者账户不存在"))
self.label_5.setText(_translate("LoginWindow", "用户名或者密码不能为空"))
self.label_6.setText(_translate("LoginWindow", "密码不一致"))
self.label_7.setText(_translate("LoginWindow", "用户名已经存在"))
self.label_4.setText(_translate("LoginWindow", "密码和用户名不能为空"))
import res_rc
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>LoginWindow</class>
<widget class="QMainWindow" name="LoginWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>889</width>
<height>671</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>50</x>
<y>50</y>
<width>271</width>
<height>371</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">#frame {background-color: qlineargradient(spread:pad, x1:0.272955, y1:0.244, x2:1, y2:1, stop:0 rgba(132, 95, 103, 255), stop:1 rgba(255, 255, 255, 255));
border-radius:20px;}</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>70</y>
<width>161</width>
<height>51</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(255, 255, 255);
font: 14pt &quot;Algerian&quot;;</string>
</property>
<property name="text">
<string>Welcome Back</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>20</x>
<y>180</y>
<width>221</width>
<height>51</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(255, 255, 255);
font: 11pt &quot;幼圆&quot;;</string>
</property>
<property name="text">
<string>感谢用户的支持
您的支持是对我们最大的鼓励</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>320</x>
<y>80</y>
<width>271</width>
<height>331</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">#frame_2{
background-color: rgb(255, 255, 255);
border-top-right-radius:20px;
border-bottom-right-radius:20px;
}</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>210</x>
<y>0</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">QPushButton{
border:none;
}
QPushButton:hover{
padding-bottom:5px;
}</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="res.qrc">
<normaloff>:/icons/icons/close.svg</normaloff>:/icons/icons/close.svg</iconset>
</property>
</widget>
<widget class="QFrame" name="frame_3">
<property name="geometry">
<rect>
<x>0</x>
<y>40</y>
<width>271</width>
<height>281</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>271</width>
<height>281</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QFrame" name="frame_4">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>6</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QFrame" name="frame_6">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>5</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QStackedWidget" name="stackedWidget_2">
<property name="styleSheet">
<string notr="true">QLineEdit{
background-color: rgba(255, 255, 255,0);
border:none;
border-bottom:1px solid;
}
QPushButton{
background-color: rgb(0, 0, 0);
color: rgb(255, 255, 255);
border-radius:7px;
}
QPushButton:pressed{
padding-top:5px;
paddding-left:5px;
}</string>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="page_login">
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item>
<widget class="QLineEdit" name="lineEdit_l_username">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="placeholderText">
<string>账号:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_l_password">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
<property name="placeholderText">
<string>密码:</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_4">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string>登录</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_register">
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="spacing">
<number>9</number>
</property>
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item>
<widget class="QLineEdit" name="lineEdit_re_account">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="placeholderText">
<string>账号</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit__password">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
<property name="placeholderText">
<string>密码</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_confirm_password">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
<property name="placeholderText">
<string>确认密码:</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_reg">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string>注册</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_7">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>1</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true">QPushButton {
border:none
}
QPushButton:pressed{
padding-top:5px;padding-left:5px}</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="login">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="res.qrc">
<normaloff>:/icons/icons/login.svg</normaloff>:/icons/icons/login.svg</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="register_2">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="res.qrc">
<normaloff>:/icons/icons/register.svg</normaloff>:/icons/icons/register.svg</iconset>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_5">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>1</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QStackedWidget" name="stackedWidget">
<property name="currentIndex">
<number>3</number>
</property>
<widget class="QWidget" name="page_wrong">
<layout class="QVBoxLayout" name="verticalLayout_6">
<item alignment="Qt::AlignHCenter">
<widget class="QLabel" name="label_3">
<property name="styleSheet">
<string notr="true">color: rgb(204, 0, 0);</string>
</property>
<property name="text">
<string>密码错误或者账户不存在</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page">
<layout class="QVBoxLayout" name="verticalLayout_8">
<item alignment="Qt::AlignHCenter">
<widget class="QLabel" name="label_5">
<property name="styleSheet">
<string notr="true">color: rgb(170, 0, 0);</string>
</property>
<property name="text">
<string>用户名或者密码不能为空</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_2">
<layout class="QVBoxLayout" name="verticalLayout_9">
<item alignment="Qt::AlignHCenter">
<widget class="QLabel" name="label_6">
<property name="styleSheet">
<string notr="true">color: rgb(170, 0, 0);</string>
</property>
<property name="text">
<string>密码不一致</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_3"/>
<widget class="QWidget" name="page_4">
<layout class="QVBoxLayout" name="verticalLayout_10">
<item alignment="Qt::AlignHCenter">
<widget class="QLabel" name="label_7">
<property name="styleSheet">
<string notr="true">color: rgb(170, 0, 0);</string>
</property>
<property name="text">
<string>用户名已经存在</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_empty">
<layout class="QVBoxLayout" name="verticalLayout_7">
<item alignment="Qt::AlignHCenter">
<widget class="QLabel" name="label_4">
<property name="styleSheet">
<string notr="true">color: rgb(203, 0, 0);</string>
</property>
<property name="text">
<string>密码和用户名不能为空</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_index"/>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
<zorder>frame_2</zorder>
<zorder>frame</zorder>
</widget>
</widget>
<resources>
<include location="res.qrc"/>
</resources>
<connections>
<connection>
<sender>pushButton</sender>
<signal>clicked()</signal>
<receiver>LoginWindow</receiver>
<slot>close()</slot>
<hints>
<hint type="sourcelabel">
<x>563</x>
<y>111</y>
</hint>
<hint type="destinationlabel">
<x>700</x>
<y>73</y>
</hint>
</hints>
</connection>
</connections>
</ui>
import os.path
import hashlib
import base64
from login import *
import uuid
import re
from PyQt5.QtWidgets import QMessageBox, QProgressBar, QTableWidget, QTableWidgetItem
import requests
import json
import datetime
import oss2
import json
from oss2 import SizedFileAdapter, determine_part_size
from oss2.models import PartInfo
from PyQt5.QtWidgets import QComboBox
import sys
from PyQt5.QtWidgets import (QApplication, QMainWindow, QTableView, QVBoxLayout,
QWidget, QPushButton, QHeaderView, QHBoxLayout,
QDialog, QLabel, QLineEdit, QFormLayout, QFileDialog)
from PyQt5.QtCore import Qt, QAbstractTableModel, QModelIndex, QThread
from PyQt5.QtGui import QColor
from PyQt5.QtWidgets import QRadioButton
from PyQt5.QtGui import QValidator, QRegExpValidator
from PyQt5.QtCore import QRegExp
from multipleThread.thread_upload import Upload_Thread
from multipleThread.thread_resume import Resume_Thread
# 命令行查看文件md5
# certutil -hashfile music.mp4 MD5
# 上传文件固定参数
name_prefix = "https://qgongye.oss-cn-shanghai.aliyuncs.com\\upload/order"
# 当前用户
user_now = ''
token = ''
# 工厂上传登录地址
login_url = 'https://uat.emku.laidecloud.com/console/pc/userLoginByToken.ajax'
# order信息地址
order_info_url = "https://uat.emku.laidecloud.com/console/productOrder/experimentOrderList.ajax"
# order detail
order_detail_url = "https://uat.emku.laidecloud.com/console/productOrder/uploadorderdetail.ajax"
# 上传文件回调地址
callback_url = "https://uat.emku.laidecloud.com/console/productOrder/filePthSave.ajax"
# 切片上传大小
part_size = 5 * 1024 * 1024
# 未完成任务列表
job_list = {}
auth = oss2.Auth("LTAI3qeEHR5SP2ph", "zsV3FnjVgBDhaAm23J2vdAmMuX0YFY")
# 填写Bucket所在地域对应的Endpoint。以华东1(上海)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
endpoint = "https://oss-cn-shanghai.aliyuncs.com"
# 填写Endpoint对应的Region信息,例如cn-hangzhou。注意,v4签名下,必须填写该参数
region = "cn-shanghai"
bucket_name = "qgongye"
# yourBucketName填写存储空间名称。
bucket = oss2.Bucket(auth, endpoint, bucket_name, region=region)
# 未完成上传的json文件存储路径,json命名格式为:tmp_{key}.json,比如key="music.mp3"
uncomplete_json_folder = "./upload_tag"
# 验证版本输入必须为数字
class NumberValidator(QRegExpValidator):
def __init__(self, parent=None):
# 匹配整数、浮点数(包括科学计数法)
reg_exp = QRegExp(r'^[+-]?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$')
super().__init__(reg_exp, parent)
def validate(self, text, pos):
# 允许空输入
if not text:
return (QValidator.Intermediate, text, pos)
# 检查是否为纯数字
if text in ['+', '-', '.', '+.', '-.']:
return (QValidator.Intermediate, text, pos)
return super().validate(text, pos)
# 全局线程书
thread_index = 0
class OrderDetail(QMainWindow):
_instance = None
def __init__(self, sample_data):
super().__init__()
self.setWindowTitle("订单详情")
self.setGeometry(100, 100, 1200, 600)
self.data = sample_data
self.oss_prefix = "upload/order/"
# 用于同步进度条
self.send_data = 0
self.uuid_str = ''
# 为每个进程创建进度条
self.progress_bars = []
# 暂停按钮
self.buttons = []
# 线程数组
self.threads = []
# 未完成线程数组
self.resume_loads = []
# 正在上传线程数组
self.uploads = []
self.counter = 0
# 主窗口部件和布局
central_widget = QWidget()
self.setCentralWidget(central_widget)
self.main_layout = QVBoxLayout(central_widget)
# 创建表格
self.create_tracking_table(self.main_layout)
# 加载示例数据
self.load_sample_data()
self.program_bar = QProgressBar()
self.program_bar.setVisible(False)
self.main_layout.addWidget(self.program_bar)
self.file_label = QLabel()
self.main_layout.addWidget(self.file_label)
def create_tracking_table(self, layout):
"""创建任务跟踪表格"""
self.table = QTableWidget()
self.table.setColumnCount(8)
self.table.setHorizontalHeaderLabels([
"id", "工站", "人员", "状态", "预计完成时间", "实际完成日期", "图纸文件", "BoM文件"
])
# 设置表格属性
self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.table.verticalHeader().setVisible(False)
self.table.setEditTriggers(QTableWidget.NoEditTriggers)
self.table.setSelectionBehavior(QTableWidget.SelectRows)
#self.table.setColumnHidden(0, True)
self.table.setSortingEnabled(False)
self.table.sortItems(1, Qt.AscendingOrder)
layout.addWidget(self.table)
self.check_if_has_unfinished()
def load_sample_data(self):
"""加载示例数据"""
sample_data = self.data
self.table.setRowCount(len(sample_data))
for row, data in enumerate(sample_data):
for col, value in enumerate(data):
item = QTableWidgetItem(str(value))
item.setTextAlignment(Qt.AlignCenter)
self.table.setItem(row, col, item)
# 添加图纸文件按钮
drawing_btn = QPushButton("上传文件")
drawing_btn.clicked.connect(lambda _, r=row: self.upload_drawing(r))
self.table.setCellWidget(row, 6, drawing_btn)
# 添加BoM文件按钮
bom_btn = QPushButton("上传文件")
bom_btn.clicked.connect(lambda _, r=row: self.handle_bom(r))
self.table.setCellWidget(row, 7, bom_btn)
def upload_drawing(self, row):
type_info = 3
print(self.data[row][0])
"""上传图纸文件"""
file_path, _ = QFileDialog.getOpenFileName(
self, "选择图纸文件", "", "图纸文件 (*.dwg *.dxf *.pdf);;所有文件 (*)"
)
if file_path:
if os.path.getsize(file_path) < part_size:
self.upload_file(file_path, self.data[row][0], type_info)
else:
self.add_progress_bar_and_button(file_path, self.data[row][0], type_info)
def handle_bom(self, row):
type_info = 4
print(self.data[row][0])
# 上传文件逻辑
file_path, _ = QFileDialog.getOpenFileName(
self, "选择BoM文件", "", "BoM文件 (*.xls *.xlsx *.csv);;所有文件 (*)"
)
if file_path:
# 如果小于5M直接上传,大于5M开启线程上传
if os.path.getsize(file_path) < part_size:
self.upload_file(file_path, self.data[row][0], type_info)
else:
self.add_progress_bar_and_button(file_path, self.data[row][0], type_info)
def upload_callback(self, bytes_uploaded, total_bytes):
if bytes_uploaded >= total_bytes and (total_bytes != self.leftBytes):
self.send_data += 1
rate = int(100 * (float(bytes_uploaded + self.send_data * part_size) / float(self.total_size)))
self.program_bar.setValue(rate)
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super(OrderDetail, cls).__new__(cls)
return cls._instance
# 新上传就开启一个upload_thread线程并添加进度条和暂停按钮
def add_progress_bar_and_button(self, file_path, order_id, type_info):
# 创建水平布局
h_layout = QHBoxLayout()
# 创建进度条
progress_bar = QProgressBar()
progress_bar.setRange(0, 100)
progress_bar.setValue(0)
# 创建按钮
button = QPushButton(f"上传")
# 将部件添加到水平布局
h_layout.addWidget(progress_bar)
h_layout.addWidget(button)
# 将水平布局添加到主布局
self.main_layout.addLayout(h_layout)
# 存储部件引用
self.progress_bars.append(progress_bar)
self.buttons.append(button)
thread = QThread()
upload = Upload_Thread(self.counter, order_id, type_info)
upload.filename = file_path
upload.moveToThread(thread)
upload.updateSignal.connect(self.changeProcessbar)
self.uploads.append(upload)
self.threads.append(thread)
thread.started.connect(self.uploads[-1].run)
thread.start()
button.clicked.connect(lambda checked, idx=self.counter: upload.resume_thread())
print(self.counter)
# 增加计数器
self.counter += 1
# 更新进度条
def changeProcessbar(self, value):
self.progress_bars[value[0]].setValue(value[1])
# 从本地 upload_tag文件夹检查是否有未完成的任务,有就加载
def check_if_has_unfinished(self):
global thread_index
un_finished_job = os.listdir("./upload_tag")
if len(un_finished_job) >= 1:
for j in un_finished_job:
print(j)
with open("./upload_tag" + "/" + j, "r+") as f:
upload_data = json.loads(f.read())
upload_id = list(upload_data.keys())[0]
info = list(upload_data.values())[0]
local_file_path = info[0]
order_id = info[1]
type_info = info[2]
uuid_str = info[3]
total_size = info[4]
print(f"{upload_id} {local_file_path}")
# 添加UI内容
h_layout = QHBoxLayout()
# 创建进度条
progress_bar = QProgressBar()
progress_bar.setRange(0, 100)
progress_bar.setValue(0)
# 创建按钮
button = QPushButton(f"继续上传")
# 将部件添加到水平布局
h_layout.addWidget(progress_bar)
h_layout.addWidget(button)
# 将水平布局添加到主布局
self.main_layout.addLayout(h_layout)
self.progress_bars.append(progress_bar)
self.buttons.append(button)
thread = QThread()
resume_thread = Resume_Thread(self.counter, (local_file_path, upload_id, order_id, type_info, uuid_str, total_size))
resume_thread.moveToThread(thread)
resume_thread.updateSignal.connect(self.changeProcessbar)
self.resume_loads.append(resume_thread)
self.threads.append(thread)
thread.started.connect(self.resume_loads[self.counter].run)
print(f"self counter {self.counter}")
thread.start()
print(thread.isRunning())
button.clicked.connect(lambda checked, idx=self.counter, rt=resume_thread: rt.resume_thread())
# wrong 因为lambda作用域
# button.clicked.connect(lambda checked, idx=self.counter: resume_thread.resume_thread())
# 增加计数器
# 增加计数器
self.counter += 1
def closeEvent(self, event):
self.destroyed.emit()
OrderDetail._instance = None
event.accept()
def upload_file(self, filename, order_id, type):
# 显示上传进度条
self.program_bar.setVisible(True)
self.send_data = 0
key = filename.split('/')[-1]
self.uuid_str = str(uuid.uuid4())
extension = key.split(".")[-1]
oss_key = self.oss_prefix + self.uuid_str+"."+extension
print(oss_key)
parts = []
upload_id = bucket.init_multipart_upload(oss_key).upload_id
if os.path.exists(filename):
total_size = os.path.getsize(filename)
self.total_size = total_size
self.leftBytes = total_size % part_size
print(total_size)
# 小于5M直接上传
if total_size <= part_size:
with open(filename, "rb") as fileobj:
data = fileobj.read()
bucket.put_object(oss_key, data)
else:
circle = total_size // part_size
# 最后一包数据
left_bytes = total_size % part_size
if left_bytes != 0:
circle += 1
# 逐个上传分片。
with open(filename, 'rb') as fileobj:
part_number = 1
offset = 0
while offset < total_size:
num_to_upload = min(part_size, total_size - offset)
# 全局part_number冲突导致 setText不能正常显示,去掉恢复正常
print(f'正在上传第{part_number}/{circle}个分片包')
self.file_label.setText(f'正在上传第{part_number}/{circle}个分片包')
self.file_label.repaint()
# 调用SizedFileAdapter(fileobj, size)方法会生成一个新的文件对象,重新计算起始追加位置。
result = bucket.upload_part(oss_key, upload_id, part_number,
SizedFileAdapter(fileobj, num_to_upload),progress_callback=self.upload_callback
)
parts.append(PartInfo(part_number, result.etag))
offset += num_to_upload
part_number += 1
# 完成分片上传。
# 如需在完成分片上传时设置相关Headers,请参考如下示例代码。
headers = dict()
# 设置文件访问权限ACL。此处设置为OBJECT_ACL_PRIVATE,表示私有权限。
# headers["x-oss-object-acl"] = oss2.OBJECT_ACL_PRIVATE
bucket.complete_multipart_upload(oss_key, upload_id, parts, headers=headers)
self.program_bar.setValue(0)
self.program_bar.setVisible(False)
self.file_label.setText(f"{filename}上传完成")
datas = {"id": str(order_id), "name": self.uuid_str+"."+extension, "path": name_prefix, "info": key, "type": type}
response = requests.post(callback_url, data=datas)
res = response.json()
if res["obj"] == "保存成功":
self.file_label.setText("回调成功")
class DeviceTableModel(QAbstractTableModel):
def __init__(self, data, headers, parent=None):
super().__init__(parent)
self._data = data
self._headers = headers
self._filtered_data = data.copy() # 添加过滤后的数据副本
def rowCount(self, parent=QModelIndex()):
return len(self._filtered_data)
def columnCount(self, parent=QModelIndex()):
return len(self._headers)
def data(self, index, role=Qt.DisplayRole):
if not index.isValid():
return None
row = index.row()
col = index.column()
# 表格有多少列就填写数字几
if role == Qt.DisplayRole:
if col == 10: # 操作列不显示文本
return None
return self._filtered_data[row][col]
elif role == Qt.TextAlignmentRole:
return Qt.AlignCenter
elif role == Qt.BackgroundRole and col == 3:
return QColor(240, 240, 240)
return None
def headerData(self, section, orientation, role=Qt.DisplayRole):
if orientation == Qt.Horizontal and role == Qt.DisplayRole:
return self._headers[section]
return None
def flags(self, index):
flags = super().flags(index)
# 表格有多少列就填写数字几
if index.column() == 10: # 操作列
flags |= Qt.ItemIsEditable
return flags
def filter_data(self, manufacturer):
print("filter_data")
print(self._data)
"""根据厂商过滤数据"""
self.beginResetModel()
print(manufacturer)
if manufacturer == "所有客户企业":
self._filtered_data = self._data.copy()
else:
self._filtered_data = [device for device in self._data if device[2] == manufacturer]
print(self._filtered_data)
self.endResetModel()
class EqipInfoWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("订单信息管理")
self.setGeometry(100, 100, 1500, 655)
# 每页订单数量
self.per_page_size = 10
# 必须文件夹
if not os.path.exists("./upload_tag"):
os.mkdir("./upload_tag")
# 详情页
self.detail_page = None
# 订单状态表
self.order_status = {0: "已取消", 1: "已下单", 2: "设计中", 3: "设计完成", 4: "生成中", 5: "生产完成", 6: "售后中", 7: "售后完成",
8: "采购中", 9: "采购完成", 10: "品保中", 11: "品保完成", 50: "订单完成"}
# 初始化第一页
datas = {"start": "0", "draw": "1", "length": str(self.per_page_size)}
headers = {'token': token,
'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
response = requests.post(order_info_url, headers=headers, data=datas)
data1 = response.json()
# 总订单数量
list_num = data1["recordsTotal"]
order_property = ["id", "order_id", "customerName", "supplierName", "goodModel", "goodName", "goodSerialNumber",
"demand_finish_time", "expect_finish_time", "order_status"]
# 处理数据
result = []
single_order = []
for j in data1["data"]:
for p in order_property:
if p == "demand_finish_time" or p == "expect_finish_time":
if j[p] is not None:
timestamp = j[p] / 1000
str_date = datetime.datetime.utcfromtimestamp(timestamp).strftime("%Y-%m-%d")
single_order.append(str_date)
else:
single_order.append("")
elif p == "order_status":
single_order.append(self.order_status[j[p]])
else:
single_order.append(j[p])
result.append(single_order)
single_order = []
print(result)
self.devices = result
central_widget = QWidget()
main_layout = QVBoxLayout(central_widget)
self.filter_layout = QHBoxLayout()
self.filter_label = QLabel("筛选客户企业:")
self.brand_combo = QComboBox()
# 页码选择
self.page_num_label = QLabel("选择页码")
self.page_list_combo = QComboBox()
self.filter_layout.addWidget(self.filter_label)
self.filter_layout.addWidget(self.brand_combo)
self.filter_layout.addWidget(self.page_num_label)
self.filter_layout.addWidget(self.page_list_combo)
self.filter_layout.addStretch()
main_layout.addLayout(self.filter_layout)
# 获取所有品牌并去重,添加"所有品牌"选项
brands = list(set(device[2] for device in self.devices))
brands.insert(0, "所有客户企业")
self.brand_combo.addItems(brands)
self.brand_combo.currentTextChanged.connect(self.filter_devices)
page_list = [str(x) for x in range(1, self.get_total_page(list_num)+1)]
self.page_list_combo.addItems(page_list)
self.page_list_combo.currentTextChanged.connect(self.update_page_info)
self.headers = ["id", "订单编号", "客户企业名称", "所属公司名称", "产品型号", "产品名称", "产品序列号", "订单需求时间", "订单完成时间", "订单状态", "操作"]
self.station_code = {1: "设计", 2: "生产", 3: "售后", 4: "采购", 5: "品保"}
self.order_status_code = {1: "进行中", 2: "已完成", 0: "未开始"}
# 创建模型和视图
self.model = DeviceTableModel(self.devices, self.headers)
self.table_view = QTableView()
self.table_view.setModel(self.model)
# 设置表格属性
self.table_view.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.table_view.verticalHeader().setVisible(False)
self.table_view.setSelectionBehavior(QTableView.SelectRows)
self.table_view.setEditTriggers(QTableView.NoEditTriggers)
self.table_view.setColumnHidden(0,True)
# 为操作列添加按钮
for row in range(len(self.devices)):
self.add_operation_buttons(row)
# 布局
main_layout.addWidget(self.table_view)
self.setCentralWidget(central_widget)
self.show()
# 更新列表信息
def update_page_info(self, page_num):
page_select_num = int(page_num)
start = (page_select_num-1)*self.per_page_size
datas = {"start": str(start), "draw": str(page_select_num), "length": str(self.per_page_size)}
headers = {'token': token,
'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
response = requests.post(order_info_url, headers=headers, data=datas)
data1 = response.json()
order_property = ["id", "order_id", "customerName", "supplierName", "goodModel", "goodName", "goodSerialNumber",
"demand_finish_time", "expect_finish_time", "order_status"]
result = []
single_order = []
for j in data1["data"]:
for p in order_property:
if p == "demand_finish_time" or p == "expect_finish_time":
if j[p] is not None:
timestamp = j[p] / 1000
str_date = datetime.datetime.utcfromtimestamp(timestamp).strftime("%Y-%m-%d")
single_order.append(str_date)
else:
single_order.append("")
elif p == "order_status":
single_order.append(self.order_status[j[p]])
else:
single_order.append(j[p])
print(len(single_order))
result.append(single_order)
single_order = []
# print(result)
self.devices = result
self.model = DeviceTableModel(self.devices, self.headers)
self.table_view.setModel(self.model)
# 更新品牌列表
brands = list(set(device[2] for device in self.devices))
brands.insert(0, "所有客户企业")
self.brand_combo.clear()
self.brand_combo.addItems(brands)
self.brand_combo.currentTextChanged.connect(self.filter_devices)
for row in range(len(self.devices)):
self.add_operation_buttons(row)
def get_total_page(self, total):
if total % self.per_page_size == 0:
return int(total/self.per_page_size)
else:
return int(total/self.per_page_size)+1
# 厂商选择
def filter_devices(self, manufacturer):
"""根据选择的品牌过滤设备"""
print("change")
self.model.filter_data(manufacturer)
self.update_operation_buttons()
def update_operation_buttons(self):
"""更新所有行的操作按钮"""
for row in range(self.model.rowCount()):
self.add_operation_buttons(row)
def add_operation_buttons(self, row):
# 创建操作按钮
btn_edit = QPushButton("编辑")
# 设置按钮样式
btn_edit.setStyleSheet("background-color: #4CAF50; color: white;")
# 设置按钮大小
btn_edit.setFixedSize(60, 25)
# 创建按钮布局
btn_widget = QWidget()
btn_layout = QHBoxLayout(btn_widget)
btn_layout.addWidget(btn_edit)
btn_layout.setContentsMargins(5, 2, 5, 2)
btn_layout.setSpacing(5)
# 将按钮布局添加到表格第5列
self.table_view.setIndexWidget(
self.model.index(row, 10),
btn_widget
)
# 连接信号
btn_edit.clicked.connect(lambda _, r=row: self.edit_device(r))
def nanoseconds_to_date(self, nano_seconds):
timestamp = nano_seconds / 1000
str_date = datetime.datetime.utcfromtimestamp(timestamp).strftime("%Y-%m-%d %H-%M-%S")
return str_date
def handle_close(self):
self.detail_page = None
print("detail page close")
def edit_device(self, row):
print(self.detail_page)
filtered_device = self.model._filtered_data[row]
# 查找第一个匹配项
original_index = next(i for i, device in enumerate(self.devices) if device[0] == filtered_device[0])
if self.detail_page is None:
datas = {"id": str(self.devices[original_index][0])}
headers = {'token': token,
'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
response = requests.post(order_detail_url, headers=headers, data=datas)
data1 = response.json()
all_orders = []
for j in data1["obj"]["allChilds"]:
if j["expect_finishtime"] is not None:
expect_date = self.nanoseconds_to_date(j["expect_finishtime"])
else:
expect_date = ""
if j["actual_finishtime"] is not None:
actual_time = self.nanoseconds_to_date(j["actual_finishtime"])
else:
actual_time = ""
order_id = j["id"]
station_true_name = j["station_ture_name"]
if j["userName"] is None:
j["userName"] = ""
if j["trueName"] is None:
j["trueName"] = ""
full_name = j["userName"] + j["trueName"]
order_status = self.order_status_code[j["order_status"]]
all_orders.append([order_id, station_true_name, full_name, order_status, expect_date, actual_time])
self.detail_page = OrderDetail(all_orders)
self.detail_page.destroyed.connect(self.handle_close)
self.detail_page.show()
else:
self.detail_page.raise_()
self.detail_page.activateWindow()
display_property = []
# def edit_device(self, row):
# filtered_device = self.model._filtered_data[row]
#
# # 查找第一个匹配项
# original_index = next(i for i, device in enumerate(self.devices) if device[0] == filtered_device[0])
# dialog = DeviceEditDialog(self.devices[original_index], self)
# if dialog.exec_() == QDialog.Accepted:
# # 更新设备数据
# self.devices[original_index] = dialog.get_updated_data()
# 登录页
class LoginWindow(QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_LoginWindow()
self.ui.setupUi(self)
self.setWindowFlag(QtCore.Qt.FramelessWindowHint)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
self.shadow=QtWidgets.QGraphicsDropShadowEffect(self)
self.shadow.setOffset(5,5)
self.shadow.setBlurRadius(15)
self.shadow.setColor(QtCore.Qt.black)
self.ui.frame.setGraphicsEffect(self.shadow)
self.ui.login.clicked.connect(lambda: self.ui.stackedWidget_2.setCurrentIndex(0))
self.ui.register_2.clicked.connect(lambda: self.ui.stackedWidget_2.setCurrentIndex(1))
self.ui.pushButton_4.clicked.connect(self.login_in)
self.order_info_page = None
self.show()
def login_in(self):
account = self.ui.lineEdit_l_username.text()
password = self.ui.lineEdit_l_password.text()
if len(account) == 0 or len(password) == 0:
self.ui.stackedWidget.setCurrentIndex(1)
else:
myobj = {'username': account, 'password': password}
response = requests.post(login_url, data=myobj)
data = response.json()
if data['resMsg'] == "登录成功":
print("access success")
global user_now, token
user_now = account
token = data['obj']['token']
self.order_info_page = EqipInfoWindow()
self.order_info_page.show()
self.close()
else:
self.ui.stackedWidget.setCurrentIndex(0)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = LoginWindow()
sys.exit(app.exec_())
\ No newline at end of file
# -*- coding: utf-8 -*-
import time
import requests
from PyQt5.QtCore import QThread, pyqtSignal, QWaitCondition, QMutex, QObject, pyqtSlot
import os.path
from PyQt5.QtWidgets import QApplication,QMainWindow
import sys
import oss2
import json
from oss2 import SizedFileAdapter, determine_part_size
import time
import alibabacloud_oss_v2 as oss
import uuid
from oss2.models import PartInfo
# 切片上传大小
part_size = 5 * 1024 * 1024
name_prefix = "https://qgongye.oss-cn-shanghai.aliyuncs.com\\upload/order"
callback_url = "https://uat.emku.laidecloud.com/console/productOrder/filePthSave.ajax"
# 未完成任务列表
auth = oss2.Auth("LTAI3qeEHR5SP2ph", "zsV3FnjVgBDhaAm23J2vdAmMuX0YFY")
# 填写Bucket所在地域对应的Endpoint。以华东1(上海)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
endpoint = "https://oss-cn-shanghai.aliyuncs.com"
# 填写Endpoint对应的Region信息,例如cn-hangzhou。注意,v4签名下,必须填写该参数
region = "cn-shanghai"
# yourBucketName填写存储空间名称。
bucket = oss2.Bucket(auth, endpoint, "qgongye", region=region)
# 未完成任务类
class Resume_Thread(QObject):
# 使用自定义信号和UI主线程通讯,参数是发送信号时附带参数的数据类型,可以是str、int、list等
finishSignal = pyqtSignal(str)
updateSignal = pyqtSignal(tuple)
def __init__(self, thread_num=0, job_list=()):
QObject.__init__(self)
# 要发送的文件地址
self._filename = ''
self.cond = QWaitCondition()
self.mutex = QMutex()
self._isPause = True
self.thread_num = thread_num
self.job_list = job_list
self.send_data = 0
self.leftBytes = 0
self.total_size = 0
self.oss_prefix = "upload/order/"
self.type_info = job_list[3]
self.order_id = job_list[2]
self.uuid_str = job_list[4]
self.total_size = job_list[5]
def pause(self):
self._isPause = True
def resume(self):
self._isPause = False
self.cond.wakeAll()
@property
def filename(self):
return self._filename
@filename.setter
def filename(self, value):
self._filename = value
# 进度条回调函数
def upload_callback(self, bytes_uploaded, total_bytes):
if bytes_uploaded >= total_bytes and (total_bytes != self.leftBytes):
self.send_data += 1
if bytes_uploaded == part_size:
rate = int(100 * (float(self.send_data * part_size) / float(self.total_size)))
else:
rate = int(100 * (float(bytes_uploaded + self.send_data * part_size) / float(self.total_size)))
#print(f"{rate}% {bytes_uploaded + self.send_data * part_size} {self.send_data} {bytes_uploaded}")
self.updateSignal.emit((self.thread_num, rate))
def resume_thread(self):
print(self.thread_num)
self._isPause = not self._isPause
if not self._isPause:
print("thread resume")
self.cond.wakeAll()
else:
print("thread stop")
@pyqtSlot()
def run(self):
# 下拉列表当前选项
part_finish_list = {}
local_path = self.job_list[0]
print(local_path)
currentItem = self.job_list[1]
oss_key = ""
# 如果有未完成的下载
if currentItem != "":
parts = []
print(currentItem)
key = local_path.split("/")[-1]
extension = key.split(".")[-1]
oss_key = self.oss_prefix + self.uuid_str + "." + extension
# 收集阿里云已经上传完毕的数据包
for part_info in oss2.PartIterator(bucket, oss_key, currentItem):
part_finish_list[part_info.part_number] = part_info.etag
print('part_number:', part_info.part_number)
parts.append(PartInfo(part_info.part_number, part_info.etag))
self.send_data = len(part_finish_list)-1
if self.send_data<0:
self.send_data = 0
rate = int(100 * (float(self.send_data * part_size) / float(self.total_size)))
self.updateSignal.emit((self.thread_num, rate))
# 计算总循环次数和 最后一个包的数据
total_size = os.path.getsize(local_path)
print(total_size)
circle = total_size // part_size
# 最后一包数据
left_bytes = total_size % part_size
if left_bytes != 0:
circle += 1
with open(local_path, "rb") as f:
for j in range(1, circle + 1):
if j not in list(part_finish_list.keys()):
self.mutex.lock()
if self._isPause:
self.cond.wait(self.mutex)
# 定位到到指定文件位置
f.seek((j - 1) * part_size)
read_size = min(part_size, total_size - part_size * (j - 1))
content = f.read(read_size)
result = bucket.upload_part(oss_key, currentItem, j,
content, progress_callback=self.upload_callback)
parts.append(PartInfo(j, result.etag))
self.mutex.unlock()
print(j, end=",")
headers = dict()
# 设置文件访问权限ACL。此处设置为OBJECT_ACL_PRIVATE,表示私有权限。
headers["x-oss-object-acl"] = oss2.OBJECT_ACL_PRIVATE
bucket.complete_multipart_upload(oss_key, currentItem, parts, headers=headers)
key = local_path.split('/')[-1]
tmp_key_json = "./upload_tag/tmp_" + key + ".json"
print(f"文件存在:{os.path.exists(tmp_key_json)} {tmp_key_json}")
if os.path.exists(tmp_key_json):
os.remove(tmp_key_json)
datas = {"id": str(self.order_id), "name": self.uuid_str + "." + extension, "path": name_prefix,
"info": key,
"type": self.type_info}
response = requests.post(callback_url, data=datas)
res = response.json()
print(res["obj"])
# -*- coding: utf-8 -*-
import time
import requests
from PyQt5.QtCore import QThread, pyqtSignal, QWaitCondition, QMutex, QObject, pyqtSlot
import os.path
from PyQt5.QtWidgets import QApplication,QMainWindow
import sys
import oss2
import json
from oss2 import SizedFileAdapter, determine_part_size
import uuid
import alibabacloud_oss_v2 as oss
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import PartInfo
# 切片上传大小
part_size = 5 * 1024 * 1024
name_prefix = "https://qgongye.oss-cn-shanghai.aliyuncs.com\\upload/order"
callback_url = "https://uat.emku.laidecloud.com/console/productOrder/filePthSave.ajax"
# 未完成任务列表
job_list = {}
auth = oss2.Auth("LTAI3qeEHR5SP2ph", "zsV3FnjVgBDhaAm23J2vdAmMuX0YFY")
# 填写Bucket所在地域对应的Endpoint。以华东1(上海)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
endpoint = "https://oss-cn-shanghai.aliyuncs.com"
# 填写Endpoint对应的Region信息,例如cn-hangzhou。注意,v4签名下,必须填写该参数
region = "cn-shanghai"
# yourBucketName填写存储空间名称。
bucket = oss2.Bucket(auth, endpoint, "qgongye", region=region)
# self.thread = QThread()
# self.upload = Upload_Thread()
# self.upload.filename = filename
# self.upload.moveToThread(self.thread)
# self.upload.updateSignal.connect(self.changeProcessbar)
# self.thread.started.connect(self.upload.run)
# self.thread.start()
# 定义一个线程类
class Upload_Thread(QObject):
#自定义信号声明
# 使用自定义信号和UI主线程通讯,参数是发送信号时附带参数的数据类型,可以是str、int、list等
finishSignal = pyqtSignal(str)
updateSignal = pyqtSignal(tuple)
def __init__(self, thread_num=0, order_id=None, type_info=None):
QObject.__init__(self)
# 要发送的文件地址
self._filename = ''
self.cond = QWaitCondition()
self.mutex = QMutex()
self._isPause = False
self.thread_num = thread_num
self.send_data = 0
self.leftBytes = 0
self.total_size = 0
self.oss_prefix = "upload/order/"
self.uuid_str = str(uuid.uuid4())
self.type_info = type_info
self.order_id = order_id
def pause(self):
self._isPause = True
def resume(self):
self._isPause = False
self.cond.wakeAll()
@property
def filename(self):
return self._filename
@filename.setter
def filename(self, value):
self._filename = value
def resume_thread(self):
print(self.thread_num)
self._isPause = not self._isPause
if not self._isPause:
print("thread resume")
self.cond.wakeAll()
else:
print("thread stop")
def upload_callback(self, bytes_uploaded, total_bytes):
if bytes_uploaded >= total_bytes and (total_bytes != self.leftBytes):
self.send_data += 1
if bytes_uploaded == part_size:
rate = int(100 * (float(self.send_data * part_size) / float(self.total_size)))
else:
rate = int(100 * (float(bytes_uploaded + self.send_data * part_size) / float(self.total_size)))
#print(f"{rate}% {bytes_uploaded + self.send_data * part_size} {self.send_data} {bytes_uploaded}")
self.updateSignal.emit((self.thread_num, rate))
@pyqtSlot()
def run(self):
print("start upload thread")
key = self.filename.split('/')[-1]
extension = key.split(".")[-1]
oss_key = self.oss_prefix + self.uuid_str+"."+extension
# exist = False
# 返回值为true表示文件存在,false表示文件不存在。
if not True:
print("server has this file")
#self.ui.upload_status.setText(f"{self.filename} 已经存在于阿里云OSS")
else:
# 判断是否有碎片
print('object not exist')
#
# if filename[-4] == '.':
# json_name = filename[:-4]
# 如果没有上传完毕就把{filename:upload_id}的json文件放在upload_tag里
# if os.path.exists("./upload_tag/"+json_name+".json"):
# #找碎片
# pass
# else:
# pass
parts = []
total_size = os.path.getsize(self.filename)
self.total_size = total_size
self.leftBytes = total_size % part_size
self.send_data = 0
upload_id = bucket.init_multipart_upload(oss_key).upload_id
print(upload_id)
with open("./upload_tag/tmp_" + key + ".json", "w+") as f:
json.dump({upload_id: [self.filename, self.order_id, self.type_info, self.uuid_str, self.total_size]}, f)
if os.path.exists(self.filename):
total_size = os.path.getsize(self.filename)
print(total_size)
circle = total_size // part_size
# 最后一包数据
left_bytes = total_size % part_size
if left_bytes != 0:
circle += 1
# 逐个上传分片。
with open(self.filename, 'rb') as fileobj:
part_number = 1
offset = 0
# self.ui.progressBar1.setVisible(True)
while offset < total_size:
self.mutex.lock()
if self._isPause:
self.cond.wait(self.mutex)
num_to_upload = min(part_size, total_size - offset)
# self.ui.upload_status.setText(f'正在上传第{part_number}/{circle}个分片包')
# 调用SizedFileAdapter(fileobj, size)方法会生成一个新的文件对象,重新计算起始追加位置。
result = bucket.upload_part(oss_key, upload_id, part_number,
SizedFileAdapter(fileobj, num_to_upload), progress_callback=self.upload_callback
)
parts.append(PartInfo(part_number, result.etag))
offset += num_to_upload
part_number += 1
# if part_number == 2:
# self._isPause = True
self.mutex.unlock()
# 完成分片上传。
# 如需在完成分片上传时设置相关Headers,请参考如下示例代码。
headers = dict()
# 设置文件访问权限ACL。此处设置为OBJECT_ACL_PRIVATE,表示私有权限。
# headers["x-oss-object-acl"] = oss2.OBJECT_ACL_PRIVATE
bucket.complete_multipart_upload(oss_key, upload_id, parts, headers=headers)
if os.path.exists("./upload_tag/tmp_" + key + ".json"):
os.remove("./upload_tag/tmp_" + key + ".json")
datas = {"id": str(self.order_id), "name": self.uuid_str + "." + extension, "path": name_prefix, "info": key,
"type": self.type_info}
response = requests.post(callback_url, data=datas)
res = response.json()
print(res["obj"])
<RCC>
<qresource prefix="icons">
<file>icons/mini.svg</file>
<file>icons/quit.svg</file>
<file>icons/dog.svg</file>
<file>icons/baidu.svg</file>
<file>icons/bili.svg</file>
<file>icons/close.svg</file>
<file>icons/login.svg</file>
<file>icons/register.svg</file>
</qresource>
</RCC>
# -*- coding: utf-8 -*-
# Resource object code
#
# Created by: The Resource Compiler for PyQt5 (Qt v5.15.2)
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore
qt_resource_data = b"\
\x00\x00\x02\x76\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\
\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\
\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\
\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\
\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\
\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\
\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\
\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\
\x34\x37\x31\x31\x35\x32\x31\x30\x35\x37\x38\x22\x20\x63\x6c\x61\
\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\
\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\
\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\
\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\
\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x33\x36\x31\x33\x22\x20\x78\
\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\
\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\
\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\
\x22\x32\x30\x30\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x30\
\x30\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x35\x33\
\x2e\x33\x33\x33\x33\x33\x33\x20\x31\x32\x38\x68\x2d\x32\x35\x36\
\x56\x34\x32\x2e\x36\x36\x36\x36\x36\x37\x68\x33\x34\x31\x2e\x33\
\x33\x33\x33\x33\x34\x76\x39\x33\x38\x2e\x36\x36\x36\x36\x36\x36\
\x68\x2d\x33\x34\x31\x2e\x33\x33\x33\x33\x33\x34\x76\x2d\x38\x35\
\x2e\x33\x33\x33\x33\x33\x33\x68\x32\x35\x36\x7a\x22\x20\x66\x69\
\x6c\x6c\x3d\x22\x23\x32\x45\x32\x46\x33\x30\x22\x20\x70\x2d\x69\
\x64\x3d\x22\x33\x36\x31\x34\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\
\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x36\x35\x32\x2e\x31\x36\
\x20\x34\x36\x39\x2e\x33\x33\x33\x33\x33\x33\x4c\x35\x31\x32\x20\
\x33\x31\x39\x2e\x34\x34\x35\x33\x33\x33\x20\x35\x37\x31\x2e\x33\
\x30\x36\x36\x36\x37\x20\x32\x35\x36\x20\x38\x31\x30\x2e\x36\x36\
\x36\x36\x36\x37\x20\x35\x31\x32\x6c\x2d\x32\x33\x39\x2e\x33\x36\
\x20\x32\x35\x36\x4c\x35\x31\x32\x20\x37\x30\x34\x2e\x35\x35\x34\
\x36\x36\x37\x20\x36\x35\x32\x2e\x31\x36\x20\x35\x35\x34\x2e\x36\
\x36\x36\x36\x36\x37\x48\x38\x35\x2e\x33\x33\x33\x33\x33\x33\x76\
\x2d\x38\x35\x2e\x33\x33\x33\x33\x33\x34\x7a\x22\x20\x66\x69\x6c\
\x6c\x3d\x22\x23\x32\x45\x32\x46\x33\x30\x22\x20\x70\x2d\x69\x64\
\x3d\x22\x33\x36\x31\x35\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\
\x2f\x73\x76\x67\x3e\
\x00\x00\x04\xd0\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\
\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\
\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\
\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\
\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\
\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\
\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\
\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\
\x34\x37\x31\x32\x33\x36\x34\x39\x34\x39\x33\x22\x20\x63\x6c\x61\
\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\
\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\
\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\
\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\
\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x34\x36\x35\x22\x20\x78\
\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\
\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\
\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\
\x22\x32\x30\x30\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x30\
\x30\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x33\x33\
\x2e\x33\x33\x33\x33\x33\x33\x20\x36\x34\x61\x32\x31\x2e\x33\x33\
\x33\x33\x33\x33\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x30\
\x20\x30\x20\x31\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x34\x20\x32\
\x31\x2e\x33\x33\x33\x33\x33\x33\x76\x34\x32\x2e\x36\x36\x36\x36\
\x36\x37\x61\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x32\x31\x2e\
\x33\x33\x33\x33\x33\x33\x20\x30\x20\x30\x20\x31\x2d\x32\x31\x2e\
\x33\x33\x33\x33\x33\x34\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x33\
\x48\x31\x37\x30\x2e\x36\x36\x36\x36\x36\x37\x76\x37\x32\x35\x2e\
\x33\x33\x33\x33\x33\x34\x68\x33\x36\x32\x2e\x36\x36\x36\x36\x36\
\x36\x61\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x32\x31\x2e\x33\
\x33\x33\x33\x33\x33\x20\x30\x20\x30\x20\x31\x20\x32\x31\x2e\x33\
\x33\x33\x33\x33\x34\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x76\
\x34\x32\x2e\x36\x36\x36\x36\x36\x37\x61\x32\x31\x2e\x33\x33\x33\
\x33\x33\x33\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x30\x20\
\x30\x20\x31\x2d\x32\x31\x2e\x33\x33\x33\x33\x33\x34\x20\x32\x31\
\x2e\x33\x33\x33\x33\x33\x33\x48\x31\x37\x30\x2e\x36\x36\x36\x36\
\x36\x37\x61\x38\x35\x2e\x33\x33\x33\x33\x33\x33\x20\x38\x35\x2e\
\x33\x33\x33\x33\x33\x33\x20\x30\x20\x30\x20\x31\x2d\x38\x35\x2e\
\x32\x32\x36\x36\x36\x37\x2d\x38\x31\x2e\x30\x36\x36\x36\x36\x37\
\x4c\x38\x35\x2e\x33\x33\x33\x33\x33\x33\x20\x38\x37\x34\x2e\x36\
\x36\x36\x36\x36\x37\x56\x31\x34\x39\x2e\x33\x33\x33\x33\x33\x33\
\x61\x38\x35\x2e\x33\x33\x33\x33\x33\x33\x20\x38\x35\x2e\x33\x33\
\x33\x33\x33\x33\x20\x30\x20\x30\x20\x31\x20\x38\x31\x2e\x30\x36\
\x36\x36\x36\x37\x2d\x38\x35\x2e\x32\x32\x36\x36\x36\x36\x4c\x31\
\x37\x30\x2e\x36\x36\x36\x36\x36\x37\x20\x36\x34\x68\x33\x36\x32\
\x2e\x36\x36\x36\x36\x36\x36\x7a\x20\x6d\x31\x39\x34\x2e\x35\x38\
\x31\x33\x33\x34\x20\x32\x31\x39\x2e\x35\x38\x34\x6c\x31\x38\x33\
\x2e\x31\x36\x38\x20\x31\x38\x33\x2e\x31\x36\x38\x61\x36\x34\x20\
\x36\x34\x20\x30\x20\x30\x20\x31\x20\x32\x2e\x38\x38\x20\x38\x37\
\x2e\x34\x32\x34\x6c\x2d\x32\x2e\x38\x38\x20\x33\x2e\x30\x37\x32\
\x2d\x31\x38\x33\x2e\x31\x36\x38\x20\x31\x38\x33\x2e\x31\x36\x38\
\x61\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x32\x31\x2e\x33\x33\
\x33\x33\x33\x33\x20\x30\x20\x30\x20\x31\x2d\x33\x30\x2e\x31\x36\
\x35\x33\x33\x34\x20\x30\x6c\x2d\x33\x30\x2e\x31\x36\x35\x33\x33\
\x33\x2d\x33\x30\x2e\x31\x36\x35\x33\x33\x33\x61\x32\x31\x2e\x33\
\x33\x33\x33\x33\x33\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\
\x30\x20\x30\x20\x31\x20\x30\x2d\x33\x30\x2e\x31\x36\x35\x33\x33\
\x34\x4c\x37\x39\x32\x2e\x39\x36\x20\x35\x35\x34\x2e\x36\x36\x36\
\x36\x36\x37\x48\x33\x36\x32\x2e\x36\x36\x36\x36\x36\x37\x61\x32\
\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x32\x31\x2e\x33\x33\x33\x33\
\x33\x33\x20\x30\x20\x30\x20\x31\x2d\x32\x31\x2e\x33\x33\x33\x33\
\x33\x34\x2d\x32\x31\x2e\x33\x33\x33\x33\x33\x34\x76\x2d\x34\x32\
\x2e\x36\x36\x36\x36\x36\x36\x61\x32\x31\x2e\x33\x33\x33\x33\x33\
\x33\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x30\x20\x30\x20\
\x31\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x34\x2d\x32\x31\x2e\x33\
\x33\x33\x33\x33\x34\x68\x34\x33\x30\x2e\x32\x39\x33\x33\x33\x33\
\x6c\x2d\x31\x32\x35\x2e\x33\x37\x36\x2d\x31\x32\x35\x2e\x34\x31\
\x38\x36\x36\x36\x61\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x32\
\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x30\x20\x30\x20\x31\x20\x30\
\x2d\x33\x30\x2e\x31\x36\x35\x33\x33\x34\x6c\x33\x30\x2e\x31\x36\
\x35\x33\x33\x33\x2d\x33\x30\x2e\x31\x36\x35\x33\x33\x33\x61\x32\
\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x32\x31\x2e\x33\x33\x33\x33\
\x33\x33\x20\x30\x20\x30\x20\x31\x20\x33\x30\x2e\x31\x36\x35\x33\
\x33\x34\x20\x30\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x32\x32\
\x32\x34\x32\x39\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x34\x36\x36\
\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\
\x00\x00\x0d\xd6\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\
\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\
\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\
\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\
\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\
\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\
\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\
\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\
\x34\x37\x31\x31\x35\x32\x34\x36\x35\x31\x36\x22\x20\x63\x6c\x61\
\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\
\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\
\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\
\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\
\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x36\x35\x38\x36\x22\x20\x78\
\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\
\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\
\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\
\x22\x32\x30\x30\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x30\
\x30\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x37\x32\x39\
\x2e\x33\x32\x38\x36\x34\x20\x33\x37\x33\x2e\x39\x34\x39\x34\x34\
\x63\x2d\x39\x2e\x37\x39\x34\x35\x36\x2d\x35\x2e\x39\x34\x34\x33\
\x32\x2d\x31\x39\x2e\x30\x36\x31\x37\x36\x2d\x36\x2e\x37\x38\x34\
\x2d\x31\x39\x2e\x31\x34\x33\x36\x38\x2d\x36\x2e\x37\x38\x34\x6c\
\x2d\x31\x2e\x30\x36\x34\x39\x36\x2d\x30\x2e\x30\x35\x31\x32\x63\
\x2d\x35\x37\x2e\x32\x30\x30\x36\x34\x2d\x33\x2e\x38\x36\x35\x36\
\x2d\x31\x32\x31\x2e\x31\x36\x34\x38\x2d\x35\x2e\x38\x33\x31\x36\
\x38\x2d\x31\x39\x30\x2e\x31\x32\x36\x30\x38\x2d\x35\x2e\x38\x33\
\x31\x36\x38\x6c\x2d\x31\x33\x2e\x39\x38\x37\x38\x34\x20\x30\x2e\
\x30\x30\x35\x31\x32\x63\x2d\x36\x38\x2e\x39\x35\x36\x31\x36\x20\
\x30\x2d\x31\x33\x32\x2e\x39\x32\x35\x34\x34\x20\x31\x2e\x39\x36\
\x30\x39\x36\x2d\x31\x39\x30\x2e\x31\x32\x30\x39\x36\x20\x35\x2e\
\x38\x33\x31\x36\x38\x6c\x2d\x31\x2e\x30\x36\x34\x39\x36\x20\x30\
\x2e\x30\x35\x31\x32\x63\x2d\x30\x2e\x30\x38\x31\x39\x32\x20\x30\
\x2d\x39\x2e\x33\x34\x39\x31\x32\x20\x30\x2e\x38\x33\x39\x36\x38\
\x2d\x31\x39\x2e\x31\x34\x33\x36\x38\x20\x36\x2e\x37\x38\x34\x2d\
\x31\x35\x2e\x30\x34\x37\x36\x38\x20\x39\x2e\x31\x32\x38\x39\x36\
\x2d\x32\x34\x2e\x32\x37\x33\x39\x32\x20\x32\x35\x2e\x39\x34\x38\
\x31\x36\x2d\x32\x37\x2e\x34\x31\x37\x36\x20\x34\x39\x2e\x39\x37\
\x31\x32\x2d\x31\x30\x2e\x30\x37\x31\x30\x34\x20\x37\x36\x2e\x39\
\x31\x32\x36\x34\x2d\x34\x2e\x33\x38\x32\x37\x32\x20\x31\x37\x33\
\x2e\x36\x34\x39\x39\x32\x20\x30\x2e\x31\x38\x39\x34\x34\x20\x32\
\x35\x31\x2e\x33\x39\x32\x20\x32\x2e\x39\x33\x38\x38\x38\x20\x34\
\x39\x2e\x39\x36\x36\x30\x38\x20\x33\x33\x2e\x34\x30\x38\x20\x36\
\x32\x2e\x34\x35\x38\x38\x38\x20\x38\x35\x2e\x30\x34\x38\x33\x32\
\x20\x36\x37\x2e\x31\x34\x38\x38\x20\x31\x30\x2e\x37\x38\x32\x37\
\x32\x20\x30\x2e\x39\x38\x38\x31\x36\x20\x36\x39\x2e\x30\x38\x39\
\x32\x38\x20\x35\x2e\x38\x36\x37\x35\x32\x20\x31\x35\x39\x2e\x35\
\x30\x38\x34\x38\x20\x35\x2e\x38\x39\x33\x31\x32\x76\x2d\x30\x2e\
\x30\x30\x35\x31\x32\x63\x39\x30\x2e\x34\x31\x39\x32\x2d\x30\x2e\
\x30\x32\x30\x34\x38\x20\x31\x34\x38\x2e\x37\x32\x35\x37\x36\x2d\
\x34\x2e\x39\x30\x34\x39\x36\x20\x31\x35\x39\x2e\x35\x31\x33\x36\
\x2d\x35\x2e\x38\x38\x38\x20\x35\x31\x2e\x36\x34\x30\x33\x32\x2d\
\x34\x2e\x36\x38\x39\x39\x32\x20\x38\x32\x2e\x31\x30\x39\x34\x34\
\x2d\x31\x37\x2e\x31\x38\x32\x37\x32\x20\x38\x35\x2e\x30\x34\x33\
\x32\x2d\x36\x37\x2e\x31\x34\x38\x38\x20\x34\x2e\x35\x37\x37\x32\
\x38\x2d\x37\x37\x2e\x37\x34\x32\x30\x38\x20\x31\x30\x2e\x32\x36\
\x30\x34\x38\x2d\x31\x37\x34\x2e\x34\x37\x39\x33\x36\x20\x30\x2e\
\x31\x38\x39\x34\x34\x2d\x32\x35\x31\x2e\x33\x39\x32\x2d\x33\x2e\
\x31\x34\x38\x38\x2d\x32\x34\x2e\x30\x32\x38\x31\x36\x2d\x31\x32\
\x2e\x33\x37\x35\x30\x34\x2d\x34\x30\x2e\x38\x34\x37\x33\x36\x2d\
\x32\x37\x2e\x34\x32\x32\x37\x32\x2d\x34\x39\x2e\x39\x37\x36\x33\
\x32\x7a\x20\x6d\x2d\x33\x39\x30\x2e\x39\x38\x38\x38\x20\x31\x37\
\x32\x2e\x37\x31\x38\x30\x38\x61\x32\x33\x2e\x36\x34\x39\x32\x38\
\x20\x32\x33\x2e\x36\x34\x39\x32\x38\x20\x30\x20\x30\x20\x31\x2d\
\x33\x31\x2e\x36\x38\x37\x36\x38\x2d\x31\x30\x2e\x38\x34\x34\x31\
\x36\x20\x32\x33\x2e\x36\x38\x20\x32\x33\x2e\x36\x38\x20\x30\x20\
\x30\x20\x31\x20\x31\x30\x2e\x38\x34\x34\x31\x36\x2d\x33\x31\x2e\
\x36\x38\x37\x36\x38\x63\x32\x2e\x30\x33\x37\x37\x36\x2d\x31\x2e\
\x30\x30\x33\x35\x32\x20\x35\x30\x2e\x36\x39\x33\x31\x32\x2d\x32\
\x34\x2e\x37\x32\x34\x34\x38\x20\x31\x31\x30\x2e\x35\x34\x30\x38\
\x2d\x34\x33\x2e\x30\x36\x34\x33\x32\x61\x32\x33\x2e\x36\x38\x20\
\x32\x33\x2e\x36\x38\x20\x30\x20\x31\x20\x31\x20\x31\x33\x2e\x38\
\x38\x30\x33\x32\x20\x34\x35\x2e\x32\x39\x31\x35\x32\x63\x2d\x35\
\x36\x2e\x32\x39\x34\x34\x20\x31\x37\x2e\x32\x34\x39\x32\x38\x2d\
\x31\x30\x33\x2e\x31\x31\x31\x36\x38\x20\x34\x30\x2e\x30\x37\x34\
\x32\x34\x2d\x31\x30\x33\x2e\x35\x37\x37\x36\x20\x34\x30\x2e\x33\
\x30\x34\x36\x34\x7a\x20\x6d\x32\x36\x38\x2e\x38\x39\x37\x32\x38\
\x20\x33\x35\x2e\x38\x38\x36\x30\x38\x63\x2d\x30\x2e\x34\x34\x30\
\x33\x32\x20\x32\x2e\x32\x33\x32\x33\x32\x2d\x31\x31\x2e\x32\x36\
\x39\x31\x32\x20\x35\x34\x2e\x36\x34\x30\x36\x34\x2d\x35\x30\x2e\
\x39\x33\x38\x38\x38\x20\x35\x34\x2e\x36\x34\x30\x36\x34\x2d\x32\
\x31\x2e\x34\x34\x32\x35\x36\x20\x30\x2d\x33\x36\x2e\x31\x30\x31\
\x31\x32\x2d\x31\x34\x2e\x30\x34\x39\x32\x38\x2d\x34\x34\x2e\x39\
\x38\x34\x33\x32\x2d\x32\x36\x2e\x37\x37\x32\x34\x38\x2d\x38\x2e\
\x36\x39\x33\x37\x36\x20\x31\x32\x2e\x37\x30\x37\x38\x34\x2d\x32\
\x32\x2e\x38\x30\x34\x34\x38\x20\x32\x36\x2e\x37\x37\x32\x34\x38\
\x2d\x34\x32\x2e\x36\x35\x34\x37\x32\x20\x32\x36\x2e\x37\x37\x32\
\x34\x38\x2d\x33\x35\x2e\x35\x33\x32\x38\x20\x30\x2d\x35\x30\x2e\
\x31\x33\x35\x30\x34\x2d\x34\x38\x2e\x32\x36\x36\x32\x34\x2d\x35\
\x31\x2e\x36\x38\x31\x32\x38\x2d\x35\x33\x2e\x37\x37\x30\x32\x34\
\x61\x31\x31\x2e\x33\x36\x36\x34\x20\x31\x31\x2e\x33\x36\x36\x34\
\x20\x30\x20\x30\x20\x31\x20\x32\x31\x2e\x38\x37\x37\x37\x36\x2d\
\x36\x2e\x31\x36\x39\x36\x63\x32\x2e\x37\x34\x39\x34\x34\x20\x39\
\x2e\x36\x35\x31\x32\x20\x31\x34\x2e\x31\x33\x31\x32\x20\x33\x37\
\x2e\x32\x30\x31\x39\x32\x20\x32\x39\x2e\x37\x39\x38\x34\x20\x33\
\x37\x2e\x32\x30\x31\x39\x32\x20\x31\x36\x2e\x33\x37\x33\x37\x36\
\x20\x30\x20\x32\x38\x2e\x38\x39\x32\x31\x36\x2d\x32\x33\x2e\x36\
\x34\x34\x31\x36\x20\x33\x31\x2e\x39\x38\x34\x36\x34\x2d\x33\x31\
\x2e\x39\x32\x38\x33\x32\x61\x31\x31\x2e\x33\x37\x31\x35\x32\x20\
\x31\x31\x2e\x33\x37\x31\x35\x32\x20\x30\x20\x30\x20\x31\x20\x31\
\x30\x2e\x36\x34\x39\x36\x2d\x37\x2e\x33\x38\x38\x31\x36\x68\x30\
\x2e\x30\x36\x31\x34\x34\x63\x34\x2e\x37\x36\x36\x37\x32\x20\x30\
\x2e\x30\x33\x30\x37\x32\x20\x39\x2e\x30\x31\x31\x32\x20\x33\x2e\
\x30\x32\x35\x39\x32\x20\x31\x30\x2e\x36\x32\x39\x31\x32\x20\x37\
\x2e\x35\x30\x35\x39\x32\x20\x30\x2e\x31\x30\x37\x35\x32\x20\x30\
\x2e\x32\x38\x36\x37\x32\x20\x31\x31\x2e\x39\x36\x35\x34\x34\x20\
\x33\x31\x2e\x38\x31\x35\x36\x38\x20\x33\x34\x2e\x33\x31\x34\x32\
\x34\x20\x33\x31\x2e\x38\x31\x35\x36\x38\x20\x32\x30\x2e\x38\x36\
\x34\x20\x30\x20\x32\x38\x2e\x35\x36\x34\x34\x38\x2d\x33\x35\x2e\
\x39\x35\x32\x36\x34\x20\x32\x38\x2e\x36\x34\x31\x32\x38\x2d\x33\
\x36\x2e\x33\x32\x31\x32\x38\x61\x31\x31\x2e\x33\x34\x35\x39\x32\
\x20\x31\x31\x2e\x33\x34\x35\x39\x32\x20\x30\x20\x30\x20\x31\x20\
\x31\x33\x2e\x33\x35\x38\x30\x38\x2d\x38\x2e\x39\x33\x39\x35\x32\
\x20\x31\x31\x2e\x33\x36\x31\x32\x38\x20\x31\x31\x2e\x33\x36\x31\
\x32\x38\x20\x30\x20\x30\x20\x31\x20\x38\x2e\x39\x34\x34\x36\x34\
\x20\x31\x33\x2e\x33\x35\x32\x39\x36\x7a\x20\x6d\x31\x31\x30\x2e\
\x31\x31\x35\x38\x34\x2d\x34\x36\x2e\x37\x33\x35\x33\x36\x61\x32\
\x33\x2e\x36\x38\x20\x32\x33\x2e\x36\x38\x20\x30\x20\x30\x20\x31\
\x2d\x33\x31\x2e\x36\x38\x32\x35\x36\x20\x31\x30\x2e\x38\x34\x34\
\x31\x36\x63\x2d\x30\x2e\x34\x37\x31\x30\x34\x2d\x30\x2e\x32\x33\
\x30\x34\x2d\x34\x37\x2e\x34\x37\x32\x36\x34\x2d\x32\x33\x2e\x31\
\x31\x36\x38\x2d\x31\x30\x33\x2e\x35\x37\x32\x34\x38\x2d\x34\x30\
\x2e\x33\x30\x39\x37\x36\x61\x32\x33\x2e\x36\x39\x30\x32\x34\x20\
\x32\x33\x2e\x36\x39\x30\x32\x34\x20\x30\x20\x30\x20\x31\x2d\x31\
\x35\x2e\x37\x30\x38\x31\x36\x2d\x32\x39\x2e\x35\x38\x33\x33\x36\
\x20\x32\x33\x2e\x36\x36\x39\x37\x36\x20\x32\x33\x2e\x36\x36\x39\
\x37\x36\x20\x30\x20\x30\x20\x31\x20\x32\x39\x2e\x35\x37\x38\x32\
\x34\x2d\x31\x35\x2e\x37\x30\x33\x30\x34\x63\x35\x39\x2e\x38\x34\
\x37\x36\x38\x20\x31\x38\x2e\x33\x33\x39\x38\x34\x20\x31\x30\x38\
\x2e\x34\x39\x37\x39\x32\x20\x34\x32\x2e\x30\x36\x30\x38\x20\x31\
\x31\x30\x2e\x35\x35\x31\x30\x34\x20\x34\x33\x2e\x30\x36\x34\x33\
\x32\x61\x32\x33\x2e\x36\x38\x20\x32\x33\x2e\x36\x38\x20\x30\x20\
\x30\x20\x31\x20\x31\x30\x2e\x38\x33\x33\x39\x32\x20\x33\x31\x2e\
\x36\x38\x37\x36\x38\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\
\x31\x36\x43\x38\x44\x22\x20\x70\x2d\x69\x64\x3d\x22\x36\x35\x38\
\x37\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\
\x64\x3d\x22\x4d\x38\x34\x39\x2e\x39\x32\x20\x35\x31\x2e\x32\x48\
\x31\x37\x34\x2e\x30\x38\x63\x2d\x36\x37\x2e\x38\x36\x35\x36\x20\
\x30\x2d\x31\x32\x32\x2e\x38\x38\x20\x35\x35\x2e\x30\x31\x34\x34\
\x2d\x31\x32\x32\x2e\x38\x38\x20\x31\x32\x32\x2e\x38\x38\x76\x36\
\x37\x35\x2e\x38\x34\x63\x30\x20\x36\x37\x2e\x38\x37\x30\x37\x32\
\x20\x35\x35\x2e\x30\x31\x34\x34\x20\x31\x32\x32\x2e\x38\x38\x20\
\x31\x32\x32\x2e\x38\x38\x20\x31\x32\x32\x2e\x38\x38\x68\x36\x37\
\x35\x2e\x38\x34\x63\x36\x37\x2e\x38\x37\x30\x37\x32\x20\x30\x20\
\x31\x32\x32\x2e\x38\x38\x2d\x35\x35\x2e\x30\x30\x39\x32\x38\x20\
\x31\x32\x32\x2e\x38\x38\x2d\x31\x32\x32\x2e\x38\x38\x56\x31\x37\
\x34\x2e\x30\x38\x63\x30\x2d\x36\x37\x2e\x38\x36\x30\x34\x38\x2d\
\x35\x35\x2e\x30\x30\x39\x32\x38\x2d\x31\x32\x32\x2e\x38\x38\x2d\
\x31\x32\x32\x2e\x38\x38\x2d\x31\x32\x32\x2e\x38\x38\x7a\x20\x6d\
\x2d\x33\x36\x2e\x36\x30\x32\x38\x38\x20\x36\x32\x37\x2e\x34\x35\
\x30\x38\x38\x63\x2d\x32\x2e\x36\x32\x36\x35\x36\x20\x34\x34\x2e\
\x35\x37\x39\x38\x34\x2d\x32\x31\x2e\x38\x32\x31\x34\x34\x20\x37\
\x38\x2e\x36\x33\x32\x39\x36\x2d\x35\x35\x2e\x35\x31\x36\x31\x36\
\x20\x39\x38\x2e\x34\x38\x38\x33\x32\x2d\x32\x35\x2e\x36\x38\x31\
\x39\x32\x20\x31\x35\x2e\x31\x33\x34\x37\x32\x2d\x35\x34\x2e\x31\
\x37\x34\x37\x32\x20\x31\x39\x2e\x34\x38\x36\x37\x32\x2d\x38\x31\
\x2e\x31\x33\x36\x36\x34\x20\x32\x31\x2e\x39\x33\x39\x32\x2d\x33\
\x32\x2e\x34\x35\x35\x36\x38\x20\x32\x2e\x39\x34\x39\x31\x32\x2d\
\x39\x32\x2e\x37\x31\x38\x30\x38\x20\x36\x2e\x30\x39\x37\x39\x32\
\x2d\x31\x36\x34\x2e\x36\x36\x34\x33\x32\x20\x36\x2e\x31\x31\x38\
\x34\x2d\x37\x31\x2e\x39\x34\x31\x31\x32\x2d\x30\x2e\x30\x32\x30\
\x34\x38\x2d\x31\x33\x32\x2e\x32\x30\x38\x36\x34\x2d\x33\x2e\x31\
\x36\x34\x31\x36\x2d\x31\x36\x34\x2e\x36\x36\x34\x33\x32\x2d\x36\
\x2e\x31\x31\x38\x34\x2d\x32\x36\x2e\x39\x36\x31\x39\x32\x2d\x32\
\x2e\x34\x35\x32\x34\x38\x2d\x35\x35\x2e\x34\x35\x34\x37\x32\x2d\
\x36\x2e\x38\x30\x34\x34\x38\x2d\x38\x31\x2e\x31\x33\x31\x35\x32\
\x2d\x32\x31\x2e\x39\x33\x39\x32\x2d\x33\x33\x2e\x36\x39\x34\x37\
\x32\x2d\x31\x39\x2e\x38\x35\x35\x33\x36\x2d\x35\x32\x2e\x38\x38\
\x39\x36\x2d\x35\x33\x2e\x39\x30\x33\x33\x36\x2d\x35\x35\x2e\x35\
\x31\x31\x30\x34\x2d\x39\x38\x2e\x34\x38\x33\x32\x2d\x34\x2e\x37\
\x30\x35\x32\x38\x2d\x38\x30\x2e\x31\x33\x33\x31\x32\x2d\x31\x30\
\x2e\x35\x37\x32\x38\x2d\x31\x37\x39\x2e\x38\x35\x35\x33\x36\x20\
\x30\x2e\x31\x39\x34\x35\x36\x2d\x32\x36\x32\x2e\x31\x30\x38\x31\
\x36\x43\x32\x32\x31\x2e\x35\x34\x32\x34\x20\x33\x33\x35\x2e\x31\
\x36\x35\x34\x34\x20\x32\x38\x30\x2e\x39\x39\x30\x37\x32\x20\x33\
\x31\x31\x2e\x35\x37\x32\x34\x38\x20\x33\x31\x31\x2e\x35\x30\x30\
\x38\x20\x33\x31\x30\x2e\x33\x37\x39\x35\x32\x61\x32\x34\x38\x32\
\x2e\x36\x34\x31\x39\x32\x20\x32\x34\x38\x32\x2e\x36\x34\x31\x39\
\x32\x20\x30\x20\x30\x20\x31\x20\x38\x31\x2e\x34\x32\x33\x33\x36\
\x2d\x34\x2e\x30\x38\x35\x37\x36\x63\x2d\x37\x2e\x35\x33\x36\x36\
\x34\x2d\x38\x2e\x35\x33\x35\x30\x34\x2d\x31\x39\x2e\x38\x38\x30\
\x39\x36\x2d\x32\x33\x2e\x33\x32\x31\x36\x2d\x32\x38\x2e\x38\x31\
\x35\x33\x36\x2d\x33\x38\x2e\x31\x31\x33\x32\x38\x2d\x31\x33\x2e\
\x37\x33\x36\x39\x36\x2d\x32\x32\x2e\x37\x33\x37\x39\x32\x20\x38\
\x2e\x35\x32\x39\x39\x32\x2d\x34\x31\x2e\x36\x38\x37\x30\x34\x20\
\x38\x2e\x35\x32\x39\x39\x32\x2d\x34\x31\x2e\x36\x38\x37\x30\x34\
\x73\x32\x33\x2e\x36\x38\x2d\x32\x30\x2e\x33\x36\x37\x33\x36\x20\
\x34\x34\x2e\x35\x32\x38\x36\x34\x20\x35\x2e\x32\x31\x32\x31\x36\
\x63\x31\x35\x2e\x36\x39\x37\x39\x32\x20\x31\x39\x2e\x32\x36\x36\
\x35\x36\x20\x33\x38\x2e\x33\x37\x39\x35\x32\x20\x35\x35\x2e\x39\
\x39\x37\x34\x34\x20\x34\x38\x2e\x36\x31\x39\x35\x32\x20\x37\x32\
\x2e\x39\x35\x34\x38\x38\x6c\x35\x33\x2e\x32\x30\x37\x30\x34\x2d\
\x30\x2e\x32\x31\x35\x30\x34\x63\x31\x33\x2e\x32\x36\x30\x38\x20\
\x30\x20\x32\x36\x2e\x33\x33\x32\x31\x36\x20\x30\x2e\x30\x37\x31\
\x36\x38\x20\x33\x39\x2e\x32\x31\x39\x32\x20\x30\x2e\x32\x31\x35\
\x30\x34\x20\x31\x30\x2e\x32\x34\x2d\x31\x36\x2e\x39\x35\x37\x34\
\x34\x20\x33\x32\x2e\x39\x32\x31\x36\x2d\x35\x33\x2e\x36\x38\x33\
\x32\x20\x34\x38\x2e\x36\x31\x39\x35\x32\x2d\x37\x32\x2e\x39\x35\
\x34\x38\x38\x20\x32\x30\x2e\x38\x34\x33\x35\x32\x2d\x32\x35\x2e\
\x35\x37\x39\x35\x32\x20\x34\x34\x2e\x35\x32\x38\x36\x34\x2d\x35\
\x2e\x32\x31\x32\x31\x36\x20\x34\x34\x2e\x35\x32\x38\x36\x34\x2d\
\x35\x2e\x32\x31\x32\x31\x36\x73\x32\x32\x2e\x32\x36\x31\x37\x36\
\x20\x31\x38\x2e\x39\x34\x39\x31\x32\x20\x38\x2e\x35\x32\x34\x38\
\x20\x34\x31\x2e\x36\x38\x37\x30\x34\x63\x2d\x38\x2e\x39\x33\x34\
\x34\x20\x31\x34\x2e\x37\x39\x31\x36\x38\x2d\x32\x31\x2e\x32\x37\
\x38\x37\x32\x20\x32\x39\x2e\x35\x37\x38\x32\x34\x2d\x32\x38\x2e\
\x38\x31\x35\x33\x36\x20\x33\x38\x2e\x31\x31\x33\x32\x38\x20\x32\
\x38\x2e\x33\x35\x39\x36\x38\x20\x30\x2e\x39\x37\x37\x39\x32\x20\
\x35\x35\x2e\x35\x36\x32\x32\x34\x20\x32\x2e\x33\x33\x39\x38\x34\
\x20\x38\x31\x2e\x34\x32\x33\x33\x36\x20\x34\x2e\x30\x38\x30\x36\
\x34\x20\x33\x30\x2e\x35\x31\x35\x32\x20\x31\x2e\x31\x39\x38\x30\
\x38\x20\x38\x39\x2e\x39\x35\x38\x34\x20\x32\x34\x2e\x37\x39\x31\
\x30\x34\x20\x31\x30\x30\x2e\x36\x31\x33\x31\x32\x20\x31\x30\x36\
\x2e\x31\x37\x33\x34\x34\x20\x31\x30\x2e\x37\x37\x37\x36\x20\x38\
\x32\x2e\x32\x34\x37\x36\x38\x20\x34\x2e\x39\x31\x35\x32\x20\x31\
\x38\x31\x2e\x39\x36\x39\x39\x32\x20\x30\x2e\x32\x30\x39\x39\x32\
\x20\x32\x36\x32\x2e\x31\x30\x33\x30\x34\x7a\x22\x20\x66\x69\x6c\
\x6c\x3d\x22\x23\x46\x31\x36\x43\x38\x44\x22\x20\x70\x2d\x69\x64\
\x3d\x22\x36\x35\x38\x38\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\
\x2f\x73\x76\x67\x3e\
\x00\x00\x05\x8f\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\
\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\
\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\
\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\
\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\
\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\
\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\
\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\
\x34\x37\x31\x31\x35\x32\x32\x37\x35\x39\x31\x22\x20\x63\x6c\x61\
\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\
\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\
\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\
\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\
\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x34\x36\x34\x33\x22\x20\x78\
\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\
\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\
\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\
\x22\x32\x30\x30\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x30\
\x30\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x37\x32\x32\
\x2e\x36\x20\x36\x34\x35\x2e\x32\x39\x35\x63\x31\x37\x2e\x34\x39\
\x37\x2d\x32\x36\x2e\x39\x39\x39\x20\x39\x2e\x37\x39\x33\x2d\x36\
\x33\x2e\x30\x37\x32\x2d\x31\x37\x2e\x32\x30\x36\x2d\x38\x30\x2e\
\x35\x36\x37\x2d\x32\x31\x2e\x39\x39\x37\x2d\x31\x34\x2e\x32\x35\
\x35\x2d\x34\x35\x2e\x31\x30\x34\x2d\x32\x36\x2e\x34\x30\x36\x2d\
\x36\x39\x2e\x30\x34\x35\x2d\x33\x36\x2e\x33\x37\x37\x20\x36\x39\
\x2e\x36\x36\x2d\x35\x31\x2e\x33\x38\x37\x20\x31\x31\x34\x2e\x39\
\x33\x37\x2d\x31\x33\x34\x2e\x30\x30\x36\x20\x31\x31\x34\x2e\x39\
\x33\x37\x2d\x32\x32\x37\x2e\x30\x31\x33\x20\x30\x2d\x31\x35\x35\
\x2e\x34\x36\x37\x2d\x31\x32\x36\x2e\x34\x38\x33\x2d\x32\x38\x31\
\x2e\x39\x35\x31\x2d\x32\x38\x31\x2e\x39\x35\x31\x2d\x32\x38\x31\
\x2e\x39\x35\x31\x73\x2d\x32\x38\x31\x2e\x39\x35\x31\x20\x31\x32\
\x36\x2e\x34\x38\x33\x2d\x32\x38\x31\x2e\x39\x35\x31\x20\x32\x38\
\x31\x2e\x39\x35\x31\x63\x30\x20\x39\x32\x2e\x39\x35\x20\x34\x35\
\x2e\x32\x32\x33\x20\x31\x37\x35\x2e\x35\x32\x37\x20\x31\x31\x34\
\x2e\x38\x31\x31\x20\x32\x32\x36\x2e\x39\x31\x39\x2d\x35\x31\x2e\
\x37\x36\x33\x20\x32\x31\x2e\x35\x35\x37\x2d\x39\x39\x2e\x33\x30\
\x39\x20\x35\x33\x2e\x32\x36\x31\x2d\x31\x34\x30\x2e\x31\x35\x33\
\x20\x39\x34\x2e\x31\x30\x33\x2d\x38\x32\x2e\x30\x38\x30\x20\x38\
\x32\x2e\x30\x38\x30\x2d\x31\x32\x37\x2e\x32\x38\x34\x20\x31\x39\
\x31\x2e\x32\x31\x33\x2d\x31\x32\x37\x2e\x32\x38\x34\x20\x33\x30\
\x37\x2e\x32\x39\x32\x20\x30\x20\x33\x32\x2e\x31\x37\x34\x20\x32\
\x36\x2e\x30\x38\x32\x20\x35\x38\x2e\x32\x35\x34\x20\x35\x38\x2e\
\x32\x35\x34\x20\x35\x38\x2e\x32\x35\x34\x73\x35\x38\x2e\x32\x35\
\x34\x2d\x32\x36\x2e\x30\x38\x30\x20\x35\x38\x2e\x32\x35\x34\x2d\
\x35\x38\x2e\x32\x35\x34\x63\x30\x2d\x31\x37\x35\x2e\x33\x38\x35\
\x20\x31\x34\x32\x2e\x36\x38\x35\x2d\x33\x31\x38\x2e\x30\x36\x38\
\x20\x33\x31\x38\x2e\x30\x36\x38\x2d\x33\x31\x38\x2e\x30\x36\x38\
\x20\x36\x31\x2e\x35\x37\x39\x20\x30\x20\x31\x32\x31\x2e\x32\x39\
\x38\x20\x31\x37\x2e\x36\x30\x36\x20\x31\x37\x32\x2e\x36\x39\x39\
\x20\x35\x30\x2e\x39\x31\x35\x20\x32\x37\x2e\x30\x30\x32\x20\x31\
\x37\x2e\x34\x39\x38\x20\x36\x33\x2e\x30\x37\x34\x20\x39\x2e\x37\
\x39\x33\x20\x38\x30\x2e\x35\x36\x37\x2d\x31\x37\x2e\x32\x30\x36\
\x7a\x4d\x34\x36\x39\x2e\x33\x33\x34\x20\x31\x33\x35\x2e\x38\x39\
\x37\x63\x39\x31\x2e\x32\x32\x35\x20\x30\x20\x31\x36\x35\x2e\x34\
\x34\x32\x20\x37\x34\x2e\x32\x31\x38\x20\x31\x36\x35\x2e\x34\x34\
\x32\x20\x31\x36\x35\x2e\x34\x34\x32\x73\x2d\x37\x34\x2e\x32\x31\
\x38\x20\x31\x36\x35\x2e\x34\x34\x32\x2d\x31\x36\x35\x2e\x34\x34\
\x32\x20\x31\x36\x35\x2e\x34\x34\x32\x63\x2d\x39\x31\x2e\x32\x32\
\x35\x20\x30\x2d\x31\x36\x35\x2e\x34\x34\x32\x2d\x37\x34\x2e\x32\
\x31\x37\x2d\x31\x36\x35\x2e\x34\x34\x32\x2d\x31\x36\x35\x2e\x34\
\x34\x32\x73\x37\x34\x2e\x32\x31\x38\x2d\x31\x36\x35\x2e\x34\x34\
\x32\x20\x31\x36\x35\x2e\x34\x34\x32\x2d\x31\x36\x35\x2e\x34\x34\
\x32\x7a\x22\x20\x70\x2d\x69\x64\x3d\x22\x34\x36\x34\x34\x22\x3e\
\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\
\x4d\x39\x32\x36\x2e\x36\x33\x20\x37\x34\x33\x2e\x31\x39\x37\x68\
\x2d\x36\x36\x2e\x39\x39\x32\x76\x2d\x36\x36\x2e\x39\x39\x32\x63\
\x30\x2d\x33\x32\x2e\x31\x37\x34\x2d\x32\x36\x2e\x30\x38\x30\x2d\
\x35\x38\x2e\x32\x35\x34\x2d\x35\x38\x2e\x32\x35\x34\x2d\x35\x38\
\x2e\x32\x35\x34\x73\x2d\x35\x38\x2e\x32\x35\x34\x20\x32\x36\x2e\
\x30\x38\x30\x2d\x35\x38\x2e\x32\x35\x34\x20\x35\x38\x2e\x32\x35\
\x34\x76\x36\x36\x2e\x39\x39\x32\x68\x2d\x36\x36\x2e\x39\x39\x32\
\x63\x2d\x33\x32\x2e\x31\x37\x34\x20\x30\x2d\x35\x38\x2e\x32\x35\
\x34\x20\x32\x36\x2e\x30\x38\x30\x2d\x35\x38\x2e\x32\x35\x34\x20\
\x35\x38\x2e\x32\x35\x34\x73\x32\x36\x2e\x30\x38\x30\x20\x35\x38\
\x2e\x32\x35\x34\x20\x35\x38\x2e\x32\x35\x34\x20\x35\x38\x2e\x32\
\x35\x34\x68\x36\x36\x2e\x39\x39\x32\x76\x36\x36\x2e\x39\x39\x32\
\x63\x30\x20\x33\x32\x2e\x31\x37\x34\x20\x32\x36\x2e\x30\x38\x30\
\x20\x35\x38\x2e\x32\x35\x34\x20\x35\x38\x2e\x32\x35\x34\x20\x35\
\x38\x2e\x32\x35\x34\x73\x35\x38\x2e\x32\x35\x34\x2d\x32\x36\x2e\
\x30\x38\x30\x20\x35\x38\x2e\x32\x35\x34\x2d\x35\x38\x2e\x32\x35\
\x34\x76\x2d\x36\x36\x2e\x39\x39\x32\x68\x36\x36\x2e\x39\x39\x32\
\x63\x33\x32\x2e\x31\x37\x34\x20\x30\x20\x35\x38\x2e\x32\x35\x34\
\x2d\x32\x36\x2e\x30\x38\x30\x20\x35\x38\x2e\x32\x35\x34\x2d\x35\
\x38\x2e\x32\x35\x34\x73\x2d\x32\x36\x2e\x30\x38\x30\x2d\x35\x38\
\x2e\x32\x35\x34\x2d\x35\x38\x2e\x32\x35\x34\x2d\x35\x38\x2e\x32\
\x35\x34\x7a\x22\x20\x70\x2d\x69\x64\x3d\x22\x34\x36\x34\x35\x22\
\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\
\x00\x00\x01\xf7\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\
\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\
\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\
\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\
\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\
\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\
\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\
\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\
\x34\x37\x31\x31\x35\x31\x32\x32\x39\x39\x34\x22\x20\x63\x6c\x61\
\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\
\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\
\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\
\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\
\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x36\x31\x33\x22\x20\x78\
\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\
\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\
\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\
\x22\x32\x30\x30\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x30\
\x30\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x33\x32\
\x20\x31\x30\x31\x31\x2e\x32\x4c\x35\x32\x34\x2e\x38\x20\x36\x39\
\x31\x2e\x32\x20\x32\x33\x30\x2e\x34\x20\x31\x30\x31\x31\x2e\x32\
\x20\x38\x39\x2e\x36\x20\x38\x37\x30\x2e\x34\x6c\x33\x30\x37\x2e\
\x32\x2d\x33\x32\x30\x4c\x38\x39\x2e\x36\x20\x32\x31\x37\x2e\x36\
\x6c\x31\x34\x30\x2e\x38\x2d\x31\x32\x38\x20\x32\x39\x34\x2e\x34\
\x20\x33\x32\x30\x4c\x38\x33\x32\x20\x38\x39\x2e\x36\x6c\x31\x32\
\x38\x20\x31\x32\x38\x2d\x33\x30\x37\x2e\x32\x20\x33\x33\x32\x2e\
\x38\x20\x33\x30\x37\x2e\x32\x20\x33\x32\x30\x7a\x22\x20\x66\x69\
\x6c\x6c\x3d\x22\x23\x43\x43\x43\x43\x43\x43\x22\x20\x70\x2d\x69\
\x64\x3d\x22\x32\x36\x31\x34\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\
\x3c\x2f\x73\x76\x67\x3e\
\x00\x00\x08\x6f\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\
\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\
\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\
\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\
\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\
\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\
\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\
\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\
\x34\x37\x31\x32\x33\x38\x34\x32\x38\x37\x38\x22\x20\x63\x6c\x61\
\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\
\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\
\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\
\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\
\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x34\x33\x31\x22\x20\x78\
\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\
\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\
\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\
\x22\x32\x30\x30\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x30\
\x30\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x32\x33\
\x2e\x32\x31\x32\x33\x39\x34\x20\x36\x32\x36\x2e\x33\x37\x34\x38\
\x31\x33\x48\x36\x30\x2e\x38\x39\x37\x35\x35\x31\x63\x2d\x31\x34\
\x2e\x33\x32\x38\x38\x33\x36\x20\x30\x2d\x32\x35\x2e\x35\x38\x37\
\x32\x30\x36\x2d\x31\x31\x2e\x32\x35\x38\x33\x37\x31\x2d\x32\x35\
\x2e\x35\x38\x37\x32\x30\x36\x2d\x32\x35\x2e\x35\x38\x37\x32\x30\
\x37\x73\x31\x31\x2e\x32\x35\x38\x33\x37\x31\x2d\x32\x35\x2e\x35\
\x38\x37\x32\x30\x36\x20\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x2d\
\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x68\x33\x36\x31\x2e\x38\x30\
\x33\x30\x39\x39\x63\x31\x34\x2e\x33\x32\x38\x38\x33\x36\x20\x30\
\x20\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x20\x31\x31\x2e\x32\x35\
\x38\x33\x37\x31\x20\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x20\x32\
\x35\x2e\x35\x38\x37\x32\x30\x36\x73\x2d\x31\x31\x2e\x32\x35\x38\
\x33\x37\x31\x20\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x2d\x32\x35\
\x2e\x30\x37\x35\x34\x36\x32\x20\x32\x35\x2e\x35\x38\x37\x32\x30\
\x37\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x30\x30\x31\x41\x37\
\x30\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x34\x33\x32\x22\x3e\x3c\
\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\
\x34\x32\x33\x2e\x32\x31\x32\x33\x39\x34\x20\x39\x38\x38\x2e\x36\
\x38\x39\x36\x35\x35\x63\x2d\x31\x34\x2e\x33\x32\x38\x38\x33\x36\
\x20\x30\x2d\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x2d\x31\x31\x2e\
\x32\x35\x38\x33\x37\x31\x2d\x32\x35\x2e\x35\x38\x37\x32\x30\x37\
\x2d\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x76\x2d\x33\x36\x31\x2e\
\x38\x30\x33\x30\x39\x39\x63\x30\x2d\x31\x34\x2e\x33\x32\x38\x38\
\x33\x36\x20\x31\x31\x2e\x32\x35\x38\x33\x37\x31\x2d\x32\x35\x2e\
\x35\x38\x37\x32\x30\x36\x20\x32\x35\x2e\x35\x38\x37\x32\x30\x37\
\x2d\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x73\x32\x35\x2e\x35\x38\
\x37\x32\x30\x36\x20\x31\x31\x2e\x32\x35\x38\x33\x37\x31\x20\x32\
\x35\x2e\x35\x38\x37\x32\x30\x36\x20\x32\x35\x2e\x35\x38\x37\x32\
\x30\x36\x76\x33\x36\x31\x2e\x38\x30\x33\x30\x39\x39\x63\x30\x20\
\x31\x33\x2e\x38\x31\x37\x30\x39\x31\x2d\x31\x31\x2e\x37\x37\x30\
\x31\x31\x35\x20\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x2d\x32\x35\
\x2e\x35\x38\x37\x32\x30\x36\x20\x32\x35\x2e\x35\x38\x37\x32\x30\
\x36\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x30\x30\x31\x41\x37\
\x30\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x34\x33\x33\x22\x3e\x3c\
\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\
\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x20\x31\x30\x32\x34\x63\x2d\
\x36\x2e\x36\x35\x32\x36\x37\x34\x20\x30\x2d\x31\x33\x2e\x33\x30\
\x35\x33\x34\x37\x2d\x32\x2e\x35\x35\x38\x37\x32\x31\x2d\x31\x37\
\x2e\x39\x31\x31\x30\x34\x34\x2d\x37\x2e\x36\x37\x36\x31\x36\x32\
\x2d\x31\x30\x2e\x32\x33\x34\x38\x38\x33\x2d\x31\x30\x2e\x32\x33\
\x34\x38\x38\x33\x2d\x31\x30\x2e\x32\x33\x34\x38\x38\x33\x2d\x32\
\x36\x2e\x30\x39\x38\x39\x35\x31\x20\x30\x2d\x33\x36\x2e\x33\x33\
\x33\x38\x33\x33\x6c\x33\x39\x38\x2e\x31\x33\x36\x39\x33\x31\x2d\
\x33\x39\x38\x2e\x31\x33\x36\x39\x33\x32\x63\x31\x30\x2e\x32\x33\
\x34\x38\x38\x33\x2d\x31\x30\x2e\x32\x33\x34\x38\x38\x33\x20\x32\
\x36\x2e\x30\x39\x38\x39\x35\x31\x2d\x31\x30\x2e\x32\x33\x34\x38\
\x38\x33\x20\x33\x36\x2e\x33\x33\x33\x38\x33\x34\x20\x30\x73\x31\
\x30\x2e\x32\x33\x34\x38\x38\x33\x20\x32\x36\x2e\x30\x39\x38\x39\
\x35\x31\x20\x30\x20\x33\x36\x2e\x33\x33\x33\x38\x33\x34\x4c\x34\
\x33\x2e\x34\x39\x38\x32\x35\x31\x20\x31\x30\x31\x36\x2e\x33\x32\
\x33\x38\x33\x38\x63\x2d\x34\x2e\x36\x30\x35\x36\x39\x37\x20\x35\
\x2e\x31\x31\x37\x34\x34\x31\x2d\x31\x31\x2e\x32\x35\x38\x33\x37\
\x31\x20\x37\x2e\x36\x37\x36\x31\x36\x32\x2d\x31\x37\x2e\x39\x31\
\x31\x30\x34\x35\x20\x37\x2e\x36\x37\x36\x31\x36\x32\x7a\x22\x20\
\x66\x69\x6c\x6c\x3d\x22\x23\x30\x30\x31\x41\x37\x30\x22\x20\x70\
\x2d\x69\x64\x3d\x22\x32\x34\x33\x34\x22\x3e\x3c\x2f\x70\x61\x74\
\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x39\x36\x32\x2e\
\x35\x39\x30\x37\x30\x35\x20\x34\x34\x39\x2e\x33\x31\x31\x33\x34\
\x34\x68\x2d\x33\x36\x31\x2e\x38\x30\x33\x30\x39\x39\x63\x2d\x31\
\x34\x2e\x33\x32\x38\x38\x33\x36\x20\x30\x2d\x32\x35\x2e\x35\x38\
\x37\x32\x30\x36\x2d\x31\x31\x2e\x32\x35\x38\x33\x37\x31\x2d\x32\
\x35\x2e\x35\x38\x37\x32\x30\x36\x2d\x32\x35\x2e\x35\x38\x37\x32\
\x30\x36\x73\x31\x31\x2e\x32\x35\x38\x33\x37\x31\x2d\x32\x35\x2e\
\x35\x38\x37\x32\x30\x36\x20\x32\x35\x2e\x35\x38\x37\x32\x30\x36\
\x2d\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x68\x33\x36\x31\x2e\x38\
\x30\x33\x30\x39\x39\x63\x31\x34\x2e\x33\x32\x38\x38\x33\x36\x20\
\x30\x20\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x20\x31\x31\x2e\x32\
\x35\x38\x33\x37\x31\x20\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x20\
\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x73\x2d\x31\x31\x2e\x37\x37\
\x30\x31\x31\x35\x20\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x2d\x32\
\x35\x2e\x35\x38\x37\x32\x30\x36\x20\x32\x35\x2e\x35\x38\x37\x32\
\x30\x36\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x30\x30\x31\x41\
\x37\x30\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x34\x33\x35\x22\x3e\
\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\
\x4d\x36\x30\x30\x2e\x32\x37\x35\x38\x36\x32\x20\x34\x34\x39\x2e\
\x33\x31\x31\x33\x34\x34\x63\x2d\x31\x34\x2e\x33\x32\x38\x38\x33\
\x36\x20\x30\x2d\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x2d\x31\x31\
\x2e\x32\x35\x38\x33\x37\x31\x2d\x32\x35\x2e\x35\x38\x37\x32\x30\
\x36\x2d\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x56\x36\x31\x2e\x34\
\x30\x39\x32\x39\x35\x63\x30\x2d\x31\x34\x2e\x33\x32\x38\x38\x33\
\x36\x20\x31\x31\x2e\x32\x35\x38\x33\x37\x31\x2d\x32\x35\x2e\x35\
\x38\x37\x32\x30\x36\x20\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x2d\
\x32\x35\x2e\x35\x38\x37\x32\x30\x36\x73\x32\x35\x2e\x35\x38\x37\
\x32\x30\x36\x20\x31\x31\x2e\x32\x35\x38\x33\x37\x31\x20\x32\x35\
\x2e\x35\x38\x37\x32\x30\x36\x20\x32\x35\x2e\x35\x38\x37\x32\x30\
\x36\x76\x33\x36\x31\x2e\x38\x30\x33\x30\x39\x39\x63\x30\x20\x31\
\x34\x2e\x33\x32\x38\x38\x33\x36\x2d\x31\x31\x2e\x32\x35\x38\x33\
\x37\x31\x20\x32\x36\x2e\x30\x39\x38\x39\x35\x31\x2d\x32\x35\x2e\
\x35\x38\x37\x32\x30\x36\x20\x32\x36\x2e\x30\x39\x38\x39\x35\x7a\
\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x30\x30\x31\x41\x37\x30\x22\
\x20\x70\x2d\x69\x64\x3d\x22\x32\x34\x33\x36\x22\x3e\x3c\x2f\x70\
\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x39\
\x39\x2e\x37\x36\x34\x31\x31\x38\x20\x34\x34\x39\x2e\x38\x32\x33\
\x30\x38\x38\x63\x2d\x36\x2e\x36\x35\x32\x36\x37\x34\x20\x30\x2d\
\x31\x33\x2e\x33\x30\x35\x33\x34\x37\x2d\x32\x2e\x35\x35\x38\x37\
\x32\x31\x2d\x31\x37\x2e\x39\x31\x31\x30\x34\x35\x2d\x37\x2e\x36\
\x37\x36\x31\x36\x31\x2d\x31\x30\x2e\x32\x33\x34\x38\x38\x33\x2d\
\x31\x30\x2e\x32\x33\x34\x38\x38\x33\x2d\x31\x30\x2e\x32\x33\x34\
\x38\x38\x33\x2d\x32\x36\x2e\x30\x39\x38\x39\x35\x31\x20\x30\x2d\
\x33\x36\x2e\x33\x33\x33\x38\x33\x34\x6c\x33\x39\x38\x2e\x31\x33\
\x36\x39\x33\x32\x2d\x33\x39\x38\x2e\x31\x33\x36\x39\x33\x31\x63\
\x31\x30\x2e\x32\x33\x34\x38\x38\x33\x2d\x31\x30\x2e\x32\x33\x34\
\x38\x38\x33\x20\x32\x36\x2e\x30\x39\x38\x39\x35\x31\x2d\x31\x30\
\x2e\x32\x33\x34\x38\x38\x33\x20\x33\x36\x2e\x33\x33\x33\x38\x33\
\x33\x20\x30\x73\x31\x30\x2e\x32\x33\x34\x38\x38\x33\x20\x32\x36\
\x2e\x30\x39\x38\x39\x35\x31\x20\x30\x20\x33\x36\x2e\x33\x33\x33\
\x38\x33\x33\x6c\x2d\x33\x39\x38\x2e\x31\x33\x36\x39\x33\x31\x20\
\x33\x39\x38\x2e\x31\x33\x36\x39\x33\x32\x63\x2d\x35\x2e\x31\x31\
\x37\x34\x34\x31\x20\x35\x2e\x31\x31\x37\x34\x34\x31\x2d\x31\x31\
\x2e\x37\x37\x30\x31\x31\x35\x20\x37\x2e\x36\x37\x36\x31\x36\x32\
\x2d\x31\x38\x2e\x34\x32\x32\x37\x38\x39\x20\x37\x2e\x36\x37\x36\
\x31\x36\x31\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x30\x30\x31\
\x41\x37\x30\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x34\x33\x37\x22\
\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\
\x00\x00\x1e\x4d\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\
\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\
\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\
\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\
\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\
\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\
\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\
\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\
\x34\x37\x31\x32\x32\x37\x38\x39\x31\x31\x38\x22\x20\x63\x6c\x61\
\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\
\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\
\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\
\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\
\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x30\x36\x34\x37\x22\x20\
\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\
\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\
\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\
\x3d\x22\x32\x30\x30\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\
\x30\x30\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x36\x37\
\x33\x2e\x38\x20\x32\x35\x37\x2e\x32\x53\x37\x39\x35\x2e\x32\x20\
\x31\x34\x33\x20\x38\x37\x35\x2e\x32\x20\x31\x35\x30\x20\x38\x32\
\x37\x20\x34\x37\x36\x2e\x39\x20\x38\x31\x35\x2e\x36\x20\x34\x37\
\x36\x63\x2d\x31\x31\x2e\x34\x2d\x31\x2d\x31\x34\x31\x2e\x38\x2d\
\x32\x31\x38\x2e\x38\x2d\x31\x34\x31\x2e\x38\x2d\x32\x31\x38\x2e\
\x38\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x43\x43\x39\
\x41\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x30\x36\x34\x38\x22\x3e\
\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\
\x4d\x38\x31\x35\x2e\x37\x20\x34\x39\x32\x63\x2d\x30\x2e\x35\x20\
\x30\x2d\x31\x20\x30\x2d\x31\x2e\x35\x2d\x30\x2e\x31\x2d\x38\x2e\
\x34\x2d\x30\x2e\x37\x2d\x31\x33\x2e\x39\x2d\x37\x2d\x32\x30\x2e\
\x37\x2d\x31\x35\x2e\x39\x2d\x34\x2e\x36\x2d\x36\x2d\x31\x30\x2e\
\x37\x2d\x31\x34\x2e\x37\x2d\x31\x38\x2e\x32\x2d\x32\x35\x2e\x37\
\x2d\x31\x32\x2e\x33\x2d\x31\x38\x2e\x33\x2d\x32\x38\x2e\x36\x2d\
\x34\x33\x2e\x38\x2d\x34\x38\x2e\x35\x2d\x37\x35\x2e\x36\x2d\x33\
\x33\x2e\x37\x2d\x35\x34\x2e\x31\x2d\x36\x36\x2e\x34\x2d\x31\x30\
\x38\x2e\x37\x2d\x36\x36\x2e\x38\x2d\x31\x30\x39\x2e\x33\x6c\x2d\
\x36\x2e\x36\x2d\x31\x31\x20\x39\x2e\x34\x2d\x38\x2e\x38\x63\x31\
\x2e\x33\x2d\x31\x2e\x32\x20\x33\x31\x2e\x37\x2d\x32\x39\x2e\x37\
\x20\x37\x32\x2e\x36\x2d\x35\x37\x2e\x38\x20\x35\x36\x2e\x37\x2d\
\x33\x38\x2e\x39\x20\x31\x30\x34\x2e\x31\x2d\x35\x37\x20\x31\x34\
\x31\x2e\x31\x2d\x35\x33\x2e\x37\x20\x31\x37\x2e\x31\x20\x31\x2e\
\x35\x20\x32\x39\x2e\x39\x20\x31\x32\x2e\x34\x20\x33\x36\x2e\x31\
\x20\x33\x30\x2e\x36\x20\x34\x2e\x35\x20\x31\x33\x2e\x32\x20\x35\
\x2e\x37\x20\x33\x30\x2e\x35\x20\x33\x2e\x38\x20\x35\x32\x2e\x38\
\x2d\x34\x2e\x39\x20\x35\x37\x2e\x31\x2d\x32\x39\x2e\x33\x20\x31\
\x33\x31\x2e\x31\x2d\x34\x33\x2e\x34\x20\x31\x37\x30\x2e\x31\x2d\
\x39\x2e\x32\x20\x32\x35\x2e\x34\x2d\x31\x38\x2e\x39\x20\x34\x39\
\x2e\x36\x2d\x32\x37\x2e\x34\x20\x36\x38\x2e\x32\x2d\x34\x2e\x31\
\x20\x38\x2e\x39\x2d\x37\x2e\x36\x20\x31\x36\x2e\x31\x2d\x31\x30\
\x2e\x36\x20\x32\x31\x2e\x32\x2d\x33\x20\x35\x2e\x32\x2d\x38\x2e\
\x36\x20\x31\x35\x2d\x31\x39\x2e\x33\x20\x31\x35\x7a\x4d\x36\x39\
\x34\x2e\x33\x20\x32\x36\x30\x2e\x32\x63\x34\x36\x2e\x32\x20\x37\
\x36\x2e\x39\x20\x39\x36\x2e\x34\x20\x31\x35\x37\x2e\x32\x20\x31\
\x31\x39\x2e\x31\x20\x31\x38\x39\x20\x31\x30\x2e\x39\x2d\x32\x32\
\x2e\x39\x20\x32\x39\x2e\x31\x2d\x36\x37\x2e\x38\x20\x34\x34\x2e\
\x39\x2d\x31\x31\x38\x20\x32\x34\x2e\x31\x2d\x37\x36\x2e\x38\x20\
\x33\x32\x2e\x38\x2d\x31\x33\x36\x20\x32\x33\x2e\x32\x2d\x31\x35\
\x38\x2e\x35\x2d\x32\x2e\x35\x2d\x35\x2e\x39\x2d\x35\x2e\x31\x2d\
\x36\x2e\x36\x2d\x37\x2e\x37\x2d\x36\x2e\x38\x2d\x35\x34\x2e\x36\
\x2d\x34\x2e\x37\x2d\x31\x34\x30\x2e\x36\x20\x36\x30\x2d\x31\x37\
\x39\x2e\x35\x20\x39\x34\x2e\x33\x7a\x22\x20\x66\x69\x6c\x6c\x3d\
\x22\x23\x32\x44\x32\x44\x32\x44\x22\x20\x70\x2d\x69\x64\x3d\x22\
\x31\x30\x36\x34\x39\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\
\x61\x74\x68\x20\x64\x3d\x22\x4d\x37\x35\x35\x2e\x33\x20\x32\x35\
\x30\x2e\x32\x73\x35\x33\x2e\x38\x2d\x35\x30\x2e\x36\x20\x38\x39\
\x2e\x32\x2d\x34\x37\x2e\x35\x63\x33\x35\x2e\x35\x20\x33\x2e\x31\
\x2d\x32\x31\x2e\x34\x20\x31\x34\x34\x2e\x39\x2d\x32\x36\x2e\x34\
\x20\x31\x34\x34\x2e\x35\x73\x2d\x36\x32\x2e\x38\x2d\x39\x37\x2d\
\x36\x32\x2e\x38\x2d\x39\x37\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\
\x23\x46\x46\x41\x44\x36\x39\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\
\x30\x36\x35\x30\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\
\x74\x68\x20\x64\x3d\x22\x4d\x33\x35\x30\x2e\x32\x20\x32\x35\x37\
\x2e\x32\x53\x32\x32\x38\x2e\x38\x20\x31\x34\x33\x20\x31\x34\x38\
\x2e\x38\x20\x31\x35\x30\x73\x34\x38\x2e\x32\x20\x33\x32\x36\x2e\
\x39\x20\x35\x39\x2e\x36\x20\x33\x32\x36\x63\x31\x31\x2e\x34\x2d\
\x31\x20\x31\x34\x31\x2e\x38\x2d\x32\x31\x38\x2e\x38\x20\x31\x34\
\x31\x2e\x38\x2d\x32\x31\x38\x2e\x38\x7a\x22\x20\x66\x69\x6c\x6c\
\x3d\x22\x23\x46\x46\x43\x43\x39\x41\x22\x20\x70\x2d\x69\x64\x3d\
\x22\x31\x30\x36\x35\x31\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\
\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x30\x38\x2e\x33\x20\x34\
\x39\x32\x63\x2d\x31\x30\x2e\x37\x20\x30\x2d\x31\x36\x2e\x33\x2d\
\x39\x2e\x37\x2d\x31\x39\x2e\x33\x2d\x31\x35\x2e\x31\x2d\x33\x2d\
\x35\x2e\x31\x2d\x36\x2e\x35\x2d\x31\x32\x2e\x32\x2d\x31\x30\x2e\
\x36\x2d\x32\x31\x2e\x32\x2d\x38\x2e\x35\x2d\x31\x38\x2e\x36\x2d\
\x31\x38\x2e\x32\x2d\x34\x32\x2e\x38\x2d\x32\x37\x2e\x34\x2d\x36\
\x38\x2e\x32\x2d\x31\x34\x2e\x31\x2d\x33\x39\x2d\x33\x38\x2e\x35\
\x2d\x31\x31\x33\x2d\x34\x33\x2e\x34\x2d\x31\x37\x30\x2e\x31\x2d\
\x31\x2e\x39\x2d\x32\x32\x2e\x33\x2d\x30\x2e\x37\x2d\x33\x39\x2e\
\x36\x20\x33\x2e\x38\x2d\x35\x32\x2e\x38\x20\x36\x2e\x32\x2d\x31\
\x38\x2e\x32\x20\x31\x39\x2d\x32\x39\x2e\x31\x20\x33\x36\x2e\x31\
\x2d\x33\x30\x2e\x36\x20\x33\x37\x2d\x33\x2e\x32\x20\x38\x34\x2e\
\x35\x20\x31\x34\x2e\x38\x20\x31\x34\x31\x2e\x31\x20\x35\x33\x2e\
\x37\x20\x34\x30\x2e\x39\x20\x32\x38\x20\x37\x31\x2e\x33\x20\x35\
\x36\x2e\x36\x20\x37\x32\x2e\x36\x20\x35\x37\x2e\x38\x6c\x39\x2e\
\x34\x20\x38\x2e\x38\x2d\x36\x2e\x36\x20\x31\x31\x63\x2d\x30\x2e\
\x33\x20\x30\x2e\x35\x2d\x33\x33\x2e\x31\x20\x35\x35\x2e\x32\x2d\
\x36\x36\x2e\x37\x20\x31\x30\x39\x2e\x33\x2d\x31\x39\x2e\x38\x20\
\x33\x31\x2e\x38\x2d\x33\x36\x2e\x32\x20\x35\x37\x2e\x33\x2d\x34\
\x38\x2e\x35\x20\x37\x35\x2e\x36\x2d\x37\x2e\x34\x20\x31\x31\x2e\
\x31\x2d\x31\x33\x2e\x36\x20\x31\x39\x2e\x37\x2d\x31\x38\x2e\x32\
\x20\x32\x35\x2e\x37\x2d\x36\x2e\x38\x20\x38\x2e\x38\x2d\x31\x32\
\x2e\x33\x20\x31\x35\x2e\x31\x2d\x32\x30\x2e\x37\x20\x31\x35\x2e\
\x39\x2d\x30\x2e\x36\x20\x30\x2e\x32\x2d\x31\x2e\x31\x20\x30\x2e\
\x32\x2d\x31\x2e\x36\x20\x30\x2e\x32\x7a\x20\x6d\x2d\x35\x32\x2e\
\x32\x2d\x33\x32\x36\x2e\x33\x63\x2d\x32\x20\x30\x2d\x34\x20\x30\
\x2e\x31\x2d\x35\x2e\x39\x20\x30\x2e\x33\x2d\x32\x2e\x36\x20\x30\
\x2e\x32\x2d\x35\x2e\x32\x20\x30\x2e\x39\x2d\x37\x2e\x37\x20\x36\
\x2e\x38\x2d\x39\x2e\x35\x20\x32\x32\x2e\x35\x2d\x30\x2e\x39\x20\
\x38\x31\x2e\x37\x20\x32\x33\x2e\x32\x20\x31\x35\x38\x2e\x35\x20\
\x31\x35\x2e\x37\x20\x35\x30\x2e\x32\x20\x33\x34\x20\x39\x35\x2e\
\x32\x20\x34\x34\x2e\x39\x20\x31\x31\x38\x20\x32\x32\x2e\x37\x2d\
\x33\x31\x2e\x39\x20\x37\x32\x2e\x39\x2d\x31\x31\x32\x2e\x31\x20\
\x31\x31\x39\x2e\x31\x2d\x31\x38\x39\x2d\x33\x37\x2e\x36\x2d\x33\
\x33\x2e\x32\x2d\x31\x31\x38\x2e\x38\x2d\x39\x34\x2e\x36\x2d\x31\
\x37\x33\x2e\x36\x2d\x39\x34\x2e\x36\x7a\x22\x20\x66\x69\x6c\x6c\
\x3d\x22\x23\x32\x44\x32\x44\x32\x44\x22\x20\x70\x2d\x69\x64\x3d\
\x22\x31\x30\x36\x35\x32\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\
\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x36\x38\x2e\x37\x20\x32\
\x35\x30\x2e\x32\x73\x2d\x35\x33\x2e\x38\x2d\x35\x30\x2e\x36\x2d\
\x38\x39\x2e\x32\x2d\x34\x37\x2e\x35\x63\x2d\x33\x35\x2e\x35\x20\
\x33\x2e\x31\x20\x32\x31\x2e\x34\x20\x31\x34\x34\x2e\x39\x20\x32\
\x36\x2e\x34\x20\x31\x34\x34\x2e\x35\x20\x35\x2d\x30\x2e\x35\x20\
\x36\x32\x2e\x38\x2d\x39\x37\x20\x36\x32\x2e\x38\x2d\x39\x37\x7a\
\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x41\x44\x36\x39\x22\
\x20\x70\x2d\x69\x64\x3d\x22\x31\x30\x36\x35\x33\x22\x3e\x3c\x2f\
\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\
\x36\x38\x20\x38\x30\x33\x2e\x35\x48\x34\x35\x36\x63\x2d\x31\x33\
\x32\x2e\x38\x20\x30\x2d\x32\x34\x31\x2e\x35\x2d\x31\x30\x38\x2e\
\x37\x2d\x32\x34\x31\x2e\x35\x2d\x32\x34\x31\x2e\x35\x76\x2d\x35\
\x39\x2e\x35\x63\x30\x2d\x31\x35\x35\x2e\x31\x20\x31\x32\x36\x2e\
\x39\x2d\x32\x38\x32\x20\x32\x38\x32\x2d\x32\x38\x32\x68\x33\x31\
\x2e\x36\x63\x31\x35\x34\x2e\x38\x20\x30\x20\x32\x38\x31\x2e\x34\
\x20\x31\x32\x36\x2e\x37\x20\x32\x38\x31\x2e\x34\x20\x32\x38\x31\
\x2e\x34\x76\x36\x30\x63\x30\x20\x31\x33\x32\x2e\x39\x2d\x31\x30\
\x38\x2e\x37\x20\x32\x34\x31\x2e\x36\x2d\x32\x34\x31\x2e\x35\x20\
\x32\x34\x31\x2e\x36\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\
\x46\x43\x43\x39\x41\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x30\x36\
\x35\x34\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\
\x20\x64\x3d\x22\x4d\x35\x36\x38\x20\x38\x31\x39\x2e\x35\x48\x34\
\x35\x36\x63\x2d\x36\x38\x2e\x35\x20\x30\x2d\x31\x33\x33\x2e\x31\
\x2d\x32\x36\x2e\x39\x2d\x31\x38\x31\x2e\x39\x2d\x37\x35\x2e\x36\
\x53\x31\x39\x38\x2e\x35\x20\x36\x33\x30\x2e\x35\x20\x31\x39\x38\
\x2e\x35\x20\x35\x36\x32\x76\x2d\x35\x39\x2e\x35\x63\x30\x2d\x34\
\x30\x2e\x31\x20\x37\x2e\x39\x2d\x37\x39\x20\x32\x33\x2e\x35\x2d\
\x31\x31\x35\x2e\x37\x20\x31\x35\x2e\x31\x2d\x33\x35\x2e\x34\x20\
\x33\x36\x2e\x36\x2d\x36\x37\x2e\x33\x20\x36\x34\x2d\x39\x34\x2e\
\x37\x73\x35\x39\x2e\x33\x2d\x34\x38\x2e\x39\x20\x39\x34\x2e\x37\
\x2d\x36\x34\x63\x33\x36\x2e\x37\x2d\x31\x35\x2e\x36\x20\x37\x35\
\x2e\x37\x2d\x32\x33\x2e\x35\x20\x31\x31\x35\x2e\x37\x2d\x32\x33\
\x2e\x35\x48\x35\x32\x38\x63\x34\x30\x20\x30\x20\x37\x38\x2e\x39\
\x20\x37\x2e\x39\x20\x31\x31\x35\x2e\x35\x20\x32\x33\x2e\x35\x20\
\x33\x35\x2e\x34\x20\x31\x35\x20\x36\x37\x2e\x32\x20\x33\x36\x2e\
\x35\x20\x39\x34\x2e\x35\x20\x36\x33\x2e\x39\x20\x32\x37\x2e\x34\
\x20\x32\x37\x2e\x34\x20\x34\x38\x2e\x38\x20\x35\x39\x2e\x32\x20\
\x36\x33\x2e\x39\x20\x39\x34\x2e\x35\x20\x31\x35\x2e\x36\x20\x33\
\x36\x2e\x37\x20\x32\x33\x2e\x35\x20\x37\x35\x2e\x35\x20\x32\x33\
\x2e\x35\x20\x31\x31\x35\x2e\x35\x76\x36\x30\x63\x30\x20\x36\x38\
\x2e\x35\x2d\x32\x36\x2e\x39\x20\x31\x33\x33\x2e\x31\x2d\x37\x35\
\x2e\x36\x20\x31\x38\x31\x2e\x39\x53\x36\x33\x36\x2e\x35\x20\x38\
\x31\x39\x2e\x35\x20\x35\x36\x38\x20\x38\x31\x39\x2e\x35\x7a\x20\
\x6d\x2d\x37\x31\x2e\x35\x2d\x35\x38\x33\x63\x2d\x31\x34\x36\x2e\
\x37\x20\x30\x2d\x32\x36\x36\x20\x31\x31\x39\x2e\x33\x2d\x32\x36\
\x36\x20\x32\x36\x36\x56\x35\x36\x32\x63\x30\x20\x31\x32\x34\x2e\
\x34\x20\x31\x30\x31\x2e\x32\x20\x32\x32\x35\x2e\x35\x20\x32\x32\
\x35\x2e\x35\x20\x32\x32\x35\x2e\x35\x68\x31\x31\x32\x63\x31\x32\
\x34\x2e\x34\x20\x30\x20\x32\x32\x35\x2e\x35\x2d\x31\x30\x31\x2e\
\x32\x20\x32\x32\x35\x2e\x35\x2d\x32\x32\x35\x2e\x35\x76\x2d\x36\
\x30\x63\x30\x2d\x31\x34\x36\x2e\x34\x2d\x31\x31\x39\x2e\x31\x2d\
\x32\x36\x35\x2e\x34\x2d\x32\x36\x35\x2e\x34\x2d\x32\x36\x35\x2e\
\x34\x68\x2d\x33\x31\x2e\x36\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\
\x23\x32\x44\x32\x44\x32\x44\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\
\x30\x36\x35\x35\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\
\x74\x68\x20\x64\x3d\x22\x4d\x33\x30\x38\x2e\x31\x20\x33\x38\x33\
\x2e\x34\x63\x2d\x33\x2e\x32\x20\x30\x2d\x36\x2e\x35\x2d\x31\x2d\
\x39\x2e\x33\x2d\x33\x2d\x37\x2e\x32\x2d\x35\x2e\x32\x2d\x38\x2e\
\x38\x2d\x31\x35\x2e\x32\x2d\x33\x2e\x36\x2d\x32\x32\x2e\x33\x20\
\x32\x38\x2e\x34\x2d\x33\x39\x2e\x34\x20\x36\x37\x2e\x31\x2d\x36\
\x39\x2e\x37\x20\x31\x31\x32\x2d\x38\x37\x2e\x35\x20\x38\x2e\x32\
\x2d\x33\x2e\x33\x20\x31\x37\x2e\x35\x20\x30\x2e\x38\x20\x32\x30\
\x2e\x38\x20\x39\x20\x33\x2e\x33\x20\x38\x2e\x32\x2d\x30\x2e\x38\
\x20\x31\x37\x2e\x35\x2d\x39\x20\x32\x30\x2e\x38\x2d\x33\x39\x2e\
\x32\x20\x31\x35\x2e\x35\x2d\x37\x33\x20\x34\x32\x2d\x39\x37\x2e\
\x38\x20\x37\x36\x2e\x34\x2d\x33\x2e\x32\x20\x34\x2e\x32\x2d\x38\
\x2e\x31\x20\x36\x2e\x36\x2d\x31\x33\x2e\x31\x20\x36\x2e\x36\x7a\
\x4d\x35\x31\x32\x2e\x38\x20\x38\x30\x33\x2e\x35\x63\x37\x39\x2e\
\x39\x20\x31\x2e\x31\x20\x31\x34\x32\x2e\x35\x2d\x34\x36\x2e\x35\
\x20\x31\x35\x31\x2e\x37\x2d\x31\x32\x31\x2e\x35\x20\x38\x2e\x38\
\x2d\x37\x31\x2e\x32\x2d\x39\x2e\x32\x2d\x39\x39\x2e\x37\x2d\x38\
\x38\x2e\x35\x2d\x31\x36\x31\x2d\x34\x37\x2e\x38\x2d\x33\x37\x2d\
\x33\x39\x2e\x32\x2d\x32\x39\x36\x2e\x38\x2d\x34\x30\x2e\x32\x2d\
\x32\x39\x37\x2e\x31\x68\x2d\x34\x37\x2e\x37\x63\x2d\x31\x2e\x31\
\x20\x30\x2e\x34\x20\x37\x2e\x36\x20\x32\x36\x30\x2e\x31\x2d\x34\
\x30\x2e\x32\x20\x32\x39\x37\x2e\x31\x2d\x37\x39\x2e\x33\x20\x36\
\x31\x2e\x33\x2d\x39\x37\x2e\x32\x20\x38\x39\x2e\x38\x2d\x38\x38\
\x2e\x35\x20\x31\x36\x31\x20\x39\x2e\x32\x20\x37\x35\x20\x37\x31\
\x2e\x38\x20\x31\x32\x32\x2e\x36\x20\x31\x35\x31\x2e\x37\x20\x31\
\x32\x31\x2e\x35\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x46\
\x46\x46\x46\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x30\x36\x35\x36\
\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\
\x3d\x22\x4d\x34\x37\x36\x2e\x33\x20\x36\x31\x30\x2e\x33\x6c\x37\
\x2e\x31\x20\x37\x31\x2e\x35\x63\x34\x2e\x38\x20\x31\x38\x2e\x31\
\x20\x31\x32\x2e\x36\x20\x32\x38\x20\x32\x38\x20\x32\x38\x73\x32\
\x34\x2e\x35\x2d\x31\x31\x2e\x37\x20\x32\x38\x2d\x32\x38\x6c\x38\
\x2e\x33\x2d\x37\x32\x2e\x34\x2d\x33\x38\x2e\x33\x2d\x31\x32\x2e\
\x34\x2d\x33\x33\x2e\x31\x20\x31\x33\x2e\x33\x7a\x22\x20\x66\x69\
\x6c\x6c\x3d\x22\x23\x46\x46\x36\x36\x36\x36\x22\x20\x70\x2d\x69\
\x64\x3d\x22\x31\x30\x36\x35\x37\x22\x3e\x3c\x2f\x70\x61\x74\x68\
\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x36\x38\x20\x38\
\x31\x39\x2e\x35\x48\x34\x35\x36\x63\x2d\x36\x38\x2e\x35\x20\x30\
\x2d\x31\x33\x33\x2e\x31\x2d\x32\x36\x2e\x39\x2d\x31\x38\x31\x2e\
\x39\x2d\x37\x35\x2e\x36\x53\x31\x39\x38\x2e\x35\x20\x36\x33\x30\
\x2e\x35\x20\x31\x39\x38\x2e\x35\x20\x35\x36\x32\x76\x2d\x35\x39\
\x2e\x35\x63\x30\x2d\x34\x30\x2e\x31\x20\x37\x2e\x39\x2d\x37\x39\
\x20\x32\x33\x2e\x35\x2d\x31\x31\x35\x2e\x37\x20\x31\x35\x2e\x31\
\x2d\x33\x35\x2e\x34\x20\x33\x36\x2e\x36\x2d\x36\x37\x2e\x33\x20\
\x36\x34\x2d\x39\x34\x2e\x37\x73\x35\x39\x2e\x33\x2d\x34\x38\x2e\
\x39\x20\x39\x34\x2e\x37\x2d\x36\x34\x63\x33\x36\x2e\x37\x2d\x31\
\x35\x2e\x36\x20\x37\x35\x2e\x37\x2d\x32\x33\x2e\x35\x20\x31\x31\
\x35\x2e\x37\x2d\x32\x33\x2e\x35\x48\x35\x32\x38\x63\x34\x30\x20\
\x30\x20\x37\x38\x2e\x39\x20\x37\x2e\x39\x20\x31\x31\x35\x2e\x35\
\x20\x32\x33\x2e\x35\x20\x33\x35\x2e\x34\x20\x31\x35\x20\x36\x37\
\x2e\x32\x20\x33\x36\x2e\x35\x20\x39\x34\x2e\x35\x20\x36\x33\x2e\
\x39\x20\x32\x37\x2e\x34\x20\x32\x37\x2e\x34\x20\x34\x38\x2e\x38\
\x20\x35\x39\x2e\x32\x20\x36\x33\x2e\x39\x20\x39\x34\x2e\x35\x20\
\x31\x35\x2e\x36\x20\x33\x36\x2e\x37\x20\x32\x33\x2e\x35\x20\x37\
\x35\x2e\x35\x20\x32\x33\x2e\x35\x20\x31\x31\x35\x2e\x35\x76\x36\
\x30\x63\x30\x20\x36\x38\x2e\x35\x2d\x32\x36\x2e\x39\x20\x31\x33\
\x33\x2e\x31\x2d\x37\x35\x2e\x36\x20\x31\x38\x31\x2e\x39\x53\x36\
\x33\x36\x2e\x35\x20\x38\x31\x39\x2e\x35\x20\x35\x36\x38\x20\x38\
\x31\x39\x2e\x35\x7a\x20\x6d\x2d\x37\x31\x2e\x35\x2d\x35\x38\x33\
\x63\x2d\x31\x34\x36\x2e\x37\x20\x30\x2d\x32\x36\x36\x20\x31\x31\
\x39\x2e\x33\x2d\x32\x36\x36\x20\x32\x36\x36\x56\x35\x36\x32\x63\
\x30\x20\x31\x32\x34\x2e\x34\x20\x31\x30\x31\x2e\x32\x20\x32\x32\
\x35\x2e\x35\x20\x32\x32\x35\x2e\x35\x20\x32\x32\x35\x2e\x35\x68\
\x31\x31\x32\x63\x31\x32\x34\x2e\x34\x20\x30\x20\x32\x32\x35\x2e\
\x35\x2d\x31\x30\x31\x2e\x32\x20\x32\x32\x35\x2e\x35\x2d\x32\x32\
\x35\x2e\x35\x76\x2d\x36\x30\x63\x30\x2d\x31\x34\x36\x2e\x34\x2d\
\x31\x31\x39\x2e\x31\x2d\x32\x36\x35\x2e\x34\x2d\x32\x36\x35\x2e\
\x34\x2d\x32\x36\x35\x2e\x34\x68\x2d\x33\x31\x2e\x36\x7a\x22\x20\
\x66\x69\x6c\x6c\x3d\x22\x23\x32\x44\x32\x44\x32\x44\x22\x20\x70\
\x2d\x69\x64\x3d\x22\x31\x30\x36\x35\x38\x22\x3e\x3c\x2f\x70\x61\
\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x33\x38\x35\
\x2e\x34\x20\x34\x37\x30\x2e\x39\x68\x2d\x33\x33\x2e\x38\x63\x2d\
\x31\x30\x2e\x31\x20\x30\x2d\x31\x38\x2e\x33\x2d\x38\x2e\x32\x2d\
\x31\x38\x2e\x33\x2d\x31\x38\x2e\x33\x20\x30\x2d\x31\x30\x2e\x31\
\x20\x38\x2e\x32\x2d\x31\x38\x2e\x33\x20\x31\x38\x2e\x33\x2d\x31\
\x38\x2e\x33\x68\x33\x33\x2e\x38\x63\x31\x30\x2e\x31\x20\x30\x20\
\x31\x38\x2e\x33\x20\x38\x2e\x32\x20\x31\x38\x2e\x33\x20\x31\x38\
\x2e\x33\x20\x30\x20\x31\x30\x2e\x31\x2d\x38\x2e\x32\x20\x31\x38\
\x2e\x33\x2d\x31\x38\x2e\x33\x20\x31\x38\x2e\x33\x7a\x4d\x36\x37\
\x32\x2e\x34\x20\x34\x37\x30\x2e\x39\x68\x2d\x33\x33\x2e\x38\x63\
\x2d\x31\x30\x2e\x31\x20\x30\x2d\x31\x38\x2e\x33\x2d\x38\x2e\x32\
\x2d\x31\x38\x2e\x33\x2d\x31\x38\x2e\x33\x20\x30\x2d\x31\x30\x2e\
\x31\x20\x38\x2e\x32\x2d\x31\x38\x2e\x33\x20\x31\x38\x2e\x33\x2d\
\x31\x38\x2e\x33\x68\x33\x33\x2e\x38\x63\x31\x30\x2e\x31\x20\x30\
\x20\x31\x38\x2e\x33\x20\x38\x2e\x32\x20\x31\x38\x2e\x33\x20\x31\
\x38\x2e\x33\x20\x30\x20\x31\x30\x2e\x31\x2d\x38\x2e\x32\x20\x31\
\x38\x2e\x33\x2d\x31\x38\x2e\x33\x20\x31\x38\x2e\x33\x7a\x22\x20\
\x66\x69\x6c\x6c\x3d\x22\x23\x32\x44\x32\x44\x32\x44\x22\x20\x70\
\x2d\x69\x64\x3d\x22\x31\x30\x36\x35\x39\x22\x3e\x3c\x2f\x70\x61\
\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x36\x39\
\x2e\x33\x20\x35\x35\x36\x2e\x39\x61\x34\x32\x2e\x37\x20\x32\x37\
\x2e\x33\x20\x30\x20\x31\x20\x30\x20\x38\x35\x2e\x34\x20\x30\x20\
\x34\x32\x2e\x37\x20\x32\x37\x2e\x33\x20\x30\x20\x31\x20\x30\x2d\
\x38\x35\x2e\x34\x20\x30\x5a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\
\x32\x44\x32\x44\x32\x44\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x30\
\x36\x36\x30\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\
\x68\x20\x64\x3d\x22\x4d\x34\x38\x31\x2e\x32\x20\x36\x31\x38\x2e\
\x33\x63\x2d\x35\x2e\x39\x20\x30\x2d\x31\x31\x2e\x38\x2d\x31\x2e\
\x34\x2d\x31\x37\x2e\x32\x2d\x34\x2e\x31\x2d\x39\x2e\x33\x2d\x34\
\x2e\x36\x2d\x31\x36\x2e\x32\x2d\x31\x32\x2e\x36\x2d\x31\x39\x2e\
\x35\x2d\x32\x32\x2e\x34\x2d\x31\x2e\x34\x2d\x34\x2e\x32\x20\x30\
\x2e\x39\x2d\x38\x2e\x37\x20\x35\x2d\x31\x30\x2e\x31\x20\x34\x2e\
\x32\x2d\x31\x2e\x34\x20\x38\x2e\x37\x20\x30\x2e\x39\x20\x31\x30\
\x2e\x31\x20\x35\x20\x31\x2e\x39\x20\x35\x2e\x38\x20\x36\x20\x31\
\x30\x2e\x34\x20\x31\x31\x2e\x35\x20\x31\x33\x2e\x32\x73\x31\x31\
\x2e\x36\x20\x33\x2e\x31\x20\x31\x37\x2e\x34\x20\x31\x2e\x32\x63\
\x31\x31\x2e\x39\x2d\x34\x20\x31\x38\x2e\x34\x2d\x31\x36\x2e\x39\
\x20\x31\x34\x2e\x34\x2d\x32\x38\x2e\x39\x2d\x31\x2e\x34\x2d\x34\
\x2e\x32\x20\x30\x2e\x39\x2d\x38\x2e\x37\x20\x35\x2d\x31\x30\x2e\
\x31\x20\x34\x2e\x32\x2d\x31\x2e\x34\x20\x38\x2e\x37\x20\x30\x2e\
\x39\x20\x31\x30\x2e\x31\x20\x35\x20\x36\x2e\x38\x20\x32\x30\x2e\
\x33\x2d\x34\x2e\x32\x20\x34\x32\x2e\x33\x2d\x32\x34\x2e\x34\x20\
\x34\x39\x2e\x31\x2d\x34\x2e\x31\x20\x31\x2e\x34\x2d\x38\x2e\x33\
\x20\x32\x2e\x31\x2d\x31\x32\x2e\x34\x20\x32\x2e\x31\x7a\x22\x20\
\x66\x69\x6c\x6c\x3d\x22\x23\x32\x44\x32\x44\x32\x44\x22\x20\x70\
\x2d\x69\x64\x3d\x22\x31\x30\x36\x36\x31\x22\x3e\x3c\x2f\x70\x61\
\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x34\x32\
\x2e\x38\x20\x36\x31\x38\x2e\x33\x63\x2d\x34\x2e\x32\x20\x30\x2d\
\x38\x2e\x33\x2d\x30\x2e\x37\x2d\x31\x32\x2e\x34\x2d\x32\x2d\x32\
\x30\x2e\x33\x2d\x36\x2e\x38\x2d\x33\x31\x2e\x32\x2d\x32\x38\x2e\
\x38\x2d\x32\x34\x2e\x34\x2d\x34\x39\x2e\x31\x20\x31\x2e\x34\x2d\
\x34\x2e\x32\x20\x35\x2e\x39\x2d\x36\x2e\x34\x20\x31\x30\x2e\x31\
\x2d\x35\x20\x34\x2e\x32\x20\x31\x2e\x34\x20\x36\x2e\x34\x20\x35\
\x2e\x39\x20\x35\x20\x31\x30\x2e\x31\x2d\x34\x20\x31\x31\x2e\x39\
\x20\x32\x2e\x34\x20\x32\x34\x2e\x39\x20\x31\x34\x2e\x34\x20\x32\
\x38\x2e\x39\x20\x35\x2e\x38\x20\x31\x2e\x39\x20\x31\x32\x20\x31\
\x2e\x35\x20\x31\x37\x2e\x34\x2d\x31\x2e\x32\x20\x35\x2e\x35\x2d\
\x32\x2e\x37\x20\x39\x2e\x35\x2d\x37\x2e\x34\x20\x31\x31\x2e\x35\
\x2d\x31\x33\x2e\x32\x20\x31\x2e\x34\x2d\x34\x2e\x32\x20\x35\x2e\
\x39\x2d\x36\x2e\x34\x20\x31\x30\x2e\x31\x2d\x35\x20\x34\x2e\x32\
\x20\x31\x2e\x34\x20\x36\x2e\x34\x20\x35\x2e\x39\x20\x35\x20\x31\
\x30\x2e\x31\x2d\x33\x2e\x33\x20\x39\x2e\x38\x2d\x31\x30\x2e\x32\
\x20\x31\x37\x2e\x38\x2d\x31\x39\x2e\x35\x20\x32\x32\x2e\x34\x2d\
\x35\x2e\x34\x20\x32\x2e\x36\x2d\x31\x31\x2e\x32\x20\x34\x2d\x31\
\x37\x2e\x32\x20\x34\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x32\
\x44\x32\x44\x32\x44\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x30\x36\
\x36\x32\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\
\x20\x64\x3d\x22\x4d\x36\x39\x31\x2e\x38\x20\x35\x33\x32\x2e\x33\
\x61\x33\x37\x2e\x37\x20\x32\x34\x2e\x31\x20\x30\x20\x31\x20\x30\
\x20\x37\x35\x2e\x34\x20\x30\x20\x33\x37\x2e\x37\x20\x32\x34\x2e\
\x31\x20\x30\x20\x31\x20\x30\x2d\x37\x35\x2e\x34\x20\x30\x5a\x22\
\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x39\x32\x39\x32\x22\x20\
\x70\x2d\x69\x64\x3d\x22\x31\x30\x36\x36\x33\x22\x3e\x3c\x2f\x70\
\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\
\x36\x2e\x38\x20\x35\x33\x32\x2e\x33\x61\x33\x37\x2e\x37\x20\x32\
\x34\x2e\x31\x20\x30\x20\x31\x20\x30\x20\x37\x35\x2e\x34\x20\x30\
\x20\x33\x37\x2e\x37\x20\x32\x34\x2e\x31\x20\x30\x20\x31\x20\x30\
\x2d\x37\x35\x2e\x34\x20\x30\x5a\x22\x20\x66\x69\x6c\x6c\x3d\x22\
\x23\x46\x46\x39\x32\x39\x32\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\
\x30\x36\x36\x34\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\
\x74\x68\x20\x64\x3d\x22\x4d\x36\x35\x30\x2e\x31\x20\x37\x37\x31\
\x63\x33\x33\x20\x32\x30\x2e\x39\x20\x35\x30\x2e\x32\x20\x31\x32\
\x37\x2e\x39\x2d\x36\x20\x31\x33\x30\x2e\x35\x2d\x33\x31\x2e\x35\
\x20\x31\x2e\x34\x2d\x31\x31\x36\x2e\x31\x2d\x33\x33\x2e\x33\x2d\
\x31\x31\x39\x2e\x32\x2d\x33\x37\x6c\x31\x35\x2e\x39\x2d\x35\x35\
\x2e\x35\x73\x38\x32\x2e\x38\x2d\x35\x34\x2e\x38\x20\x31\x30\x39\
\x2e\x33\x2d\x33\x38\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\
\x46\x37\x31\x37\x31\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x30\x36\
\x36\x35\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\
\x20\x64\x3d\x22\x4d\x36\x34\x32\x2e\x32\x20\x39\x31\x37\x2e\x35\
\x63\x2d\x31\x35\x2e\x38\x20\x30\x2d\x34\x30\x2e\x36\x2d\x35\x2e\
\x39\x2d\x37\x33\x2e\x37\x2d\x31\x37\x2e\x35\x2d\x31\x31\x2e\x39\
\x2d\x34\x2e\x32\x2d\x32\x34\x2e\x31\x2d\x38\x2e\x39\x2d\x33\x34\
\x2e\x34\x2d\x31\x33\x2e\x32\x2d\x31\x36\x2e\x39\x2d\x37\x2e\x31\
\x2d\x31\x39\x2e\x31\x2d\x39\x2e\x32\x2d\x32\x31\x2e\x35\x2d\x31\
\x31\x2e\x39\x6c\x2d\x35\x2e\x35\x2d\x36\x2e\x35\x4c\x35\x32\x37\
\x20\x37\x39\x39\x6c\x34\x2e\x39\x2d\x33\x2e\x33\x63\x30\x2e\x39\
\x2d\x30\x2e\x36\x20\x32\x31\x2e\x39\x2d\x31\x34\x2e\x34\x20\x34\
\x36\x2e\x36\x2d\x32\x36\x2e\x34\x20\x33\x38\x2e\x32\x2d\x31\x38\
\x2e\x35\x20\x36\x33\x2e\x37\x2d\x32\x32\x2e\x32\x20\x38\x30\x2e\
\x31\x2d\x31\x31\x2e\x38\x20\x31\x33\x2e\x38\x20\x38\x2e\x37\x20\
\x32\x35\x2e\x36\x20\x32\x37\x2e\x36\x20\x33\x32\x2e\x34\x20\x35\
\x31\x2e\x36\x20\x36\x2e\x35\x20\x32\x33\x2e\x31\x20\x37\x2e\x34\
\x20\x34\x37\x2e\x32\x20\x32\x2e\x34\x20\x36\x36\x2d\x36\x2e\x39\
\x20\x32\x35\x2e\x38\x2d\x32\x34\x2e\x36\x20\x34\x31\x2e\x32\x2d\
\x34\x38\x2e\x37\x20\x34\x32\x2e\x33\x2d\x30\x2e\x37\x20\x30\x2e\
\x31\x2d\x31\x2e\x36\x20\x30\x2e\x31\x2d\x32\x2e\x35\x20\x30\x2e\
\x31\x7a\x20\x6d\x2d\x39\x38\x2e\x33\x2d\x36\x31\x2e\x33\x63\x32\
\x33\x2e\x36\x20\x31\x30\x2e\x32\x20\x37\x38\x2e\x37\x20\x33\x30\
\x2e\x32\x20\x39\x39\x2e\x35\x20\x32\x39\x2e\x33\x20\x36\x2e\x37\
\x2d\x30\x2e\x33\x20\x31\x34\x2e\x39\x2d\x32\x2e\x37\x20\x31\x39\
\x2e\x32\x2d\x31\x38\x2e\x36\x20\x33\x2e\x35\x2d\x31\x33\x2e\x32\
\x20\x32\x2e\x37\x2d\x33\x31\x2e\x36\x2d\x32\x2e\x33\x2d\x34\x39\
\x2e\x31\x2d\x35\x2e\x34\x2d\x31\x39\x2e\x33\x2d\x31\x33\x2e\x35\
\x2d\x33\x30\x2d\x31\x38\x2e\x37\x2d\x33\x33\x2e\x33\x2d\x30\x2e\
\x31\x2d\x30\x2e\x31\x2d\x31\x30\x2e\x32\x2d\x35\x2e\x32\x2d\x34\
\x39\x2e\x31\x20\x31\x33\x2e\x36\x2d\x31\x36\x2e\x31\x20\x37\x2e\
\x38\x2d\x33\x30\x2e\x37\x20\x31\x36\x2e\x36\x2d\x33\x38\x20\x32\
\x31\x2e\x31\x6c\x2d\x31\x30\x2e\x36\x20\x33\x37\x7a\x22\x20\x66\
\x69\x6c\x6c\x3d\x22\x23\x32\x44\x32\x44\x32\x44\x22\x20\x70\x2d\
\x69\x64\x3d\x22\x31\x30\x36\x36\x36\x22\x3e\x3c\x2f\x70\x61\x74\
\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x33\x37\x38\x2e\
\x37\x20\x37\x37\x31\x63\x2d\x33\x33\x20\x32\x30\x2e\x39\x2d\x35\
\x30\x2e\x32\x20\x31\x32\x37\x2e\x39\x20\x36\x20\x31\x33\x30\x2e\
\x35\x20\x33\x31\x2e\x35\x20\x31\x2e\x34\x20\x31\x31\x36\x2e\x31\
\x2d\x33\x33\x2e\x33\x20\x31\x31\x39\x2e\x32\x2d\x33\x37\x4c\x34\
\x38\x38\x2e\x31\x20\x38\x30\x39\x73\x2d\x38\x32\x2e\x38\x2d\x35\
\x34\x2e\x38\x2d\x31\x30\x39\x2e\x34\x2d\x33\x38\x7a\x22\x20\x66\
\x69\x6c\x6c\x3d\x22\x23\x46\x46\x37\x31\x37\x31\x22\x20\x70\x2d\
\x69\x64\x3d\x22\x31\x30\x36\x36\x37\x22\x3e\x3c\x2f\x70\x61\x74\
\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x33\x38\x36\x2e\
\x36\x20\x39\x31\x37\x2e\x35\x63\x2d\x30\x2e\x39\x20\x30\x2d\x31\
\x2e\x38\x20\x30\x2d\x32\x2e\x36\x2d\x30\x2e\x31\x2d\x32\x34\x2e\
\x31\x2d\x31\x2e\x31\x2d\x34\x31\x2e\x38\x2d\x31\x36\x2e\x35\x2d\
\x34\x38\x2e\x37\x2d\x34\x32\x2e\x33\x2d\x35\x2d\x31\x38\x2e\x38\
\x2d\x34\x2e\x31\x2d\x34\x32\x2e\x39\x20\x32\x2e\x34\x2d\x36\x36\
\x20\x36\x2e\x38\x2d\x32\x34\x2e\x31\x20\x31\x38\x2e\x36\x2d\x34\
\x32\x2e\x39\x20\x33\x32\x2e\x34\x2d\x35\x31\x2e\x36\x20\x31\x36\
\x2e\x34\x2d\x31\x30\x2e\x34\x20\x34\x31\x2e\x39\x2d\x36\x2e\x36\
\x20\x38\x30\x2e\x31\x20\x31\x31\x2e\x38\x20\x32\x34\x2e\x37\x20\
\x31\x31\x2e\x39\x20\x34\x35\x2e\x37\x20\x32\x35\x2e\x38\x20\x34\
\x36\x2e\x36\x20\x32\x36\x2e\x34\x6c\x34\x2e\x39\x20\x33\x2e\x33\
\x20\x31\x39\x2e\x39\x20\x36\x39\x2e\x34\x2d\x35\x2e\x35\x20\x36\
\x2e\x35\x63\x2d\x32\x2e\x33\x20\x32\x2e\x37\x2d\x34\x2e\x36\x20\
\x34\x2e\x37\x2d\x32\x31\x2e\x35\x20\x31\x31\x2e\x39\x2d\x31\x30\
\x2e\x33\x20\x34\x2e\x33\x2d\x32\x32\x2e\x35\x20\x39\x2d\x33\x34\
\x2e\x34\x20\x31\x33\x2e\x32\x2d\x33\x32\x2e\x39\x20\x31\x31\x2e\
\x36\x2d\x35\x37\x2e\x37\x20\x31\x37\x2e\x35\x2d\x37\x33\x2e\x36\
\x20\x31\x37\x2e\x35\x7a\x20\x6d\x35\x2e\x35\x2d\x31\x33\x33\x2e\
\x37\x63\x2d\x33\x2e\x34\x20\x30\x2d\x34\x2e\x37\x20\x30\x2e\x37\
\x2d\x34\x2e\x38\x20\x30\x2e\x37\x2d\x35\x2e\x32\x20\x33\x2e\x33\
\x2d\x31\x33\x2e\x33\x20\x31\x34\x2d\x31\x38\x2e\x37\x20\x33\x33\
\x2e\x33\x2d\x34\x2e\x39\x20\x31\x37\x2e\x35\x2d\x35\x2e\x38\x20\
\x33\x35\x2e\x39\x2d\x32\x2e\x33\x20\x34\x39\x2e\x31\x20\x34\x2e\
\x32\x20\x31\x35\x2e\x39\x20\x31\x32\x2e\x35\x20\x31\x38\x2e\x33\
\x20\x31\x39\x2e\x32\x20\x31\x38\x2e\x36\x68\x31\x2e\x35\x63\x32\
\x31\x2e\x38\x20\x30\x20\x37\x35\x2d\x31\x39\x2e\x33\x20\x39\x38\
\x2d\x32\x39\x2e\x33\x6c\x2d\x31\x30\x2e\x36\x2d\x33\x37\x63\x2d\
\x37\x2e\x33\x2d\x34\x2e\x36\x2d\x32\x32\x2e\x31\x2d\x31\x33\x2e\
\x35\x2d\x33\x38\x2e\x32\x2d\x32\x31\x2e\x33\x2d\x32\x34\x2e\x39\
\x2d\x31\x31\x2e\x39\x2d\x33\x38\x2d\x31\x34\x2e\x31\x2d\x34\x34\
\x2e\x31\x2d\x31\x34\x2e\x31\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\
\x23\x32\x44\x32\x44\x32\x44\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\
\x30\x36\x36\x38\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\
\x74\x68\x20\x64\x3d\x22\x4d\x32\x38\x34\x20\x34\x30\x38\x2e\x36\
\x6d\x2d\x31\x36\x20\x30\x61\x31\x36\x20\x31\x36\x20\x30\x20\x31\
\x20\x30\x20\x33\x32\x20\x30\x20\x31\x36\x20\x31\x36\x20\x30\x20\
\x31\x20\x30\x2d\x33\x32\x20\x30\x5a\x22\x20\x66\x69\x6c\x6c\x3d\
\x22\x23\x46\x46\x46\x46\x46\x46\x22\x20\x70\x2d\x69\x64\x3d\x22\
\x31\x30\x36\x36\x39\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\
\x61\x74\x68\x20\x64\x3d\x22\x4d\x36\x32\x30\x2e\x33\x20\x38\x35\
\x30\x2e\x37\x63\x2d\x31\x2e\x32\x20\x30\x2d\x32\x2e\x33\x2d\x30\
\x2e\x31\x2d\x33\x2e\x35\x2d\x30\x2e\x34\x2d\x31\x33\x2e\x31\x2d\
\x33\x2d\x33\x33\x2e\x34\x2d\x34\x2e\x35\x2d\x33\x39\x2e\x39\x2d\
\x33\x2d\x35\x2e\x37\x20\x34\x2e\x35\x2d\x31\x34\x20\x34\x2e\x37\
\x2d\x31\x39\x2e\x39\x2d\x30\x2e\x31\x2d\x36\x2e\x39\x2d\x35\x2e\
\x35\x2d\x38\x2d\x31\x35\x2e\x36\x2d\x32\x2e\x35\x2d\x32\x32\x2e\
\x35\x20\x36\x2e\x32\x2d\x37\x2e\x38\x20\x31\x37\x2e\x32\x2d\x31\
\x30\x2e\x37\x20\x33\x36\x2e\x38\x2d\x39\x2e\x38\x20\x31\x32\x20\
\x30\x2e\x35\x20\x32\x35\x20\x32\x2e\x35\x20\x33\x32\x2e\x35\x20\
\x34\x2e\x32\x20\x38\x2e\x36\x20\x31\x2e\x39\x20\x31\x34\x20\x31\
\x30\x2e\x35\x20\x31\x32\x2e\x31\x20\x31\x39\x2e\x31\x2d\x31\x2e\
\x37\x20\x37\x2e\x34\x2d\x38\x2e\x33\x20\x31\x32\x2e\x35\x2d\x31\
\x35\x2e\x36\x20\x31\x32\x2e\x35\x7a\x22\x20\x66\x69\x6c\x6c\x3d\
\x22\x23\x46\x46\x38\x44\x38\x44\x22\x20\x70\x2d\x69\x64\x3d\x22\
\x31\x30\x36\x37\x30\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\
\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x31\x30\x20\x38\x35\x32\x2e\
\x36\x63\x2d\x37\x2e\x33\x20\x30\x2d\x31\x33\x2e\x39\x2d\x35\x2d\
\x31\x35\x2e\x36\x2d\x31\x32\x2e\x35\x2d\x31\x2e\x39\x2d\x38\x2e\
\x36\x20\x33\x2e\x35\x2d\x31\x37\x2e\x32\x20\x31\x32\x2e\x31\x2d\
\x31\x39\x2e\x31\x20\x37\x2e\x35\x2d\x31\x2e\x37\x20\x32\x30\x2e\
\x35\x2d\x33\x2e\x36\x20\x33\x32\x2e\x35\x2d\x34\x2e\x32\x20\x31\
\x39\x2e\x36\x2d\x30\x2e\x39\x20\x33\x30\x2e\x36\x20\x32\x20\x33\
\x36\x2e\x38\x20\x39\x2e\x38\x20\x35\x2e\x35\x20\x36\x2e\x39\x20\
\x34\x2e\x34\x20\x31\x37\x2d\x32\x2e\x35\x20\x32\x32\x2e\x35\x2d\
\x35\x2e\x39\x20\x34\x2e\x37\x2d\x31\x34\x2e\x32\x20\x34\x2e\x36\
\x2d\x31\x39\x2e\x39\x20\x30\x2e\x31\x2d\x36\x2e\x35\x2d\x31\x2e\
\x34\x2d\x32\x36\x2e\x37\x20\x30\x2e\x31\x2d\x33\x39\x2e\x39\x20\
\x33\x2d\x31\x2e\x32\x20\x30\x2e\x33\x2d\x32\x2e\x34\x20\x30\x2e\
\x34\x2d\x33\x2e\x35\x20\x30\x2e\x34\x7a\x22\x20\x66\x69\x6c\x6c\
\x3d\x22\x23\x46\x46\x38\x44\x38\x44\x22\x20\x70\x2d\x69\x64\x3d\
\x22\x31\x30\x36\x37\x31\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\
\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x36\x32\x2e\x32\x20\x38\
\x32\x36\x2e\x39\x63\x30\x20\x31\x2e\x36\x2d\x30\x2e\x31\x20\x33\
\x2e\x32\x2d\x30\x2e\x32\x20\x34\x2e\x38\x2d\x32\x2e\x34\x20\x32\
\x35\x2e\x35\x2d\x32\x33\x2e\x39\x20\x34\x35\x2e\x35\x2d\x35\x30\
\x2e\x31\x20\x34\x35\x2e\x35\x2d\x32\x37\x2e\x38\x20\x30\x2d\x35\
\x30\x2e\x33\x2d\x32\x32\x2e\x35\x2d\x35\x30\x2e\x33\x2d\x35\x30\
\x2e\x33\x73\x32\x32\x2e\x35\x2d\x35\x30\x2e\x33\x20\x35\x30\x2e\
\x33\x2d\x35\x30\x2e\x33\x20\x35\x30\x2e\x33\x20\x32\x32\x2e\x35\
\x20\x35\x30\x2e\x33\x20\x35\x30\x2e\x33\x7a\x22\x20\x66\x69\x6c\
\x6c\x3d\x22\x23\x46\x46\x37\x31\x37\x31\x22\x20\x70\x2d\x69\x64\
\x3d\x22\x31\x30\x36\x37\x32\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\
\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x31\x31\x2e\x39\x20\
\x38\x39\x33\x2e\x32\x63\x2d\x33\x36\x2e\x36\x20\x30\x2d\x36\x36\
\x2e\x33\x2d\x32\x39\x2e\x38\x2d\x36\x36\x2e\x33\x2d\x36\x36\x2e\
\x33\x73\x32\x39\x2e\x38\x2d\x36\x36\x2e\x33\x20\x36\x36\x2e\x33\
\x2d\x36\x36\x2e\x33\x63\x33\x36\x2e\x36\x20\x30\x20\x36\x36\x2e\
\x33\x20\x32\x39\x2e\x38\x20\x36\x36\x2e\x33\x20\x36\x36\x2e\x33\
\x20\x30\x20\x32\x2e\x31\x2d\x30\x2e\x31\x20\x34\x2e\x33\x2d\x30\
\x2e\x33\x20\x36\x2e\x33\x2d\x31\x2e\x36\x20\x31\x36\x2e\x34\x2d\
\x39\x2e\x31\x20\x33\x31\x2e\x35\x2d\x32\x31\x2e\x33\x20\x34\x32\
\x2e\x36\x61\x36\x35\x2e\x39\x39\x32\x20\x36\x35\x2e\x39\x39\x32\
\x20\x30\x20\x30\x20\x31\x2d\x34\x34\x2e\x37\x20\x31\x37\x2e\x34\
\x7a\x20\x6d\x30\x2d\x31\x30\x30\x2e\x36\x63\x2d\x31\x38\x2e\x39\
\x20\x30\x2d\x33\x34\x2e\x33\x20\x31\x35\x2e\x34\x2d\x33\x34\x2e\
\x33\x20\x33\x34\x2e\x33\x73\x31\x35\x2e\x34\x20\x33\x34\x2e\x33\
\x20\x33\x34\x2e\x33\x20\x33\x34\x2e\x33\x63\x31\x37\x2e\x38\x20\
\x30\x20\x33\x32\x2e\x35\x2d\x31\x33\x2e\x33\x20\x33\x34\x2e\x32\
\x2d\x33\x31\x20\x30\x2e\x31\x2d\x31\x2e\x31\x20\x30\x2e\x32\x2d\
\x32\x2e\x32\x20\x30\x2e\x32\x2d\x33\x2e\x33\x2d\x30\x2e\x31\x2d\
\x31\x39\x2d\x31\x35\x2e\x35\x2d\x33\x34\x2e\x33\x2d\x33\x34\x2e\
\x34\x2d\x33\x34\x2e\x33\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\
\x32\x44\x32\x44\x32\x44\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x30\
\x36\x37\x33\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\
\x68\x20\x64\x3d\x22\x4d\x35\x30\x30\x20\x38\x31\x32\x2e\x31\x6d\
\x2d\x38\x2e\x32\x20\x30\x61\x38\x2e\x32\x20\x38\x2e\x32\x20\x30\
\x20\x31\x20\x30\x20\x31\x36\x2e\x34\x20\x30\x20\x38\x2e\x32\x20\
\x38\x2e\x32\x20\x30\x20\x31\x20\x30\x2d\x31\x36\x2e\x34\x20\x30\
\x5a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x46\x46\x46\x46\
\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x30\x36\x37\x34\x22\x3e\x3c\
\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\
\x00\x00\x0f\xcf\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\
\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\
\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\
\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\
\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\
\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\
\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\
\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\
\x34\x37\x31\x31\x35\x32\x36\x32\x37\x34\x30\x22\x20\x63\x6c\x61\
\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\
\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\
\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\
\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\
\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x37\x36\x34\x35\x22\x20\x78\
\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\
\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\
\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\
\x22\x32\x30\x30\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x30\
\x30\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x33\x34\x35\
\x2e\x37\x30\x36\x20\x32\x39\x37\x2e\x34\x32\x33\x63\x31\x35\x2e\
\x33\x35\x20\x31\x32\x2e\x37\x39\x32\x20\x33\x35\x2e\x38\x31\x37\
\x20\x32\x30\x2e\x34\x36\x37\x20\x35\x33\x2e\x37\x32\x36\x20\x31\
\x37\x2e\x39\x30\x38\x20\x32\x30\x2e\x34\x36\x37\x20\x30\x20\x33\
\x38\x2e\x33\x37\x35\x2d\x31\x30\x2e\x32\x33\x33\x20\x35\x33\x2e\
\x37\x32\x35\x2d\x32\x33\x2e\x30\x32\x35\x20\x31\x37\x2e\x39\x31\
\x2d\x31\x35\x2e\x33\x35\x20\x33\x30\x2e\x37\x2d\x33\x35\x2e\x38\
\x31\x37\x20\x34\x30\x2e\x39\x33\x34\x2d\x35\x38\x2e\x38\x34\x32\
\x43\x35\x31\x32\x20\x31\x38\x39\x2e\x39\x37\x20\x35\x31\x32\x20\
\x31\x33\x36\x2e\x32\x34\x35\x20\x34\x39\x36\x2e\x36\x35\x20\x39\
\x30\x2e\x31\x39\x34\x63\x2d\x31\x30\x2e\x32\x33\x34\x2d\x33\x30\
\x2e\x37\x2d\x32\x38\x2e\x31\x34\x32\x2d\x35\x38\x2e\x38\x34\x32\
\x2d\x35\x33\x2e\x37\x32\x36\x2d\x37\x36\x2e\x37\x35\x43\x34\x32\
\x37\x2e\x35\x37\x34\x20\x33\x2e\x32\x31\x20\x34\x30\x34\x2e\x35\
\x34\x38\x2d\x31\x2e\x39\x30\x36\x20\x33\x38\x34\x2e\x30\x38\x31\
\x20\x30\x2e\x36\x35\x32\x63\x2d\x31\x32\x2e\x37\x39\x31\x20\x32\
\x2e\x35\x35\x38\x2d\x32\x35\x2e\x35\x38\x33\x20\x37\x2e\x36\x37\
\x35\x2d\x33\x38\x2e\x33\x37\x35\x20\x31\x35\x2e\x33\x35\x2d\x32\
\x33\x2e\x30\x32\x35\x20\x31\x35\x2e\x33\x35\x2d\x33\x38\x2e\x33\
\x37\x36\x20\x34\x30\x2e\x39\x33\x34\x2d\x34\x38\x2e\x36\x31\x20\
\x36\x36\x2e\x35\x31\x38\x2d\x31\x32\x2e\x37\x39\x31\x20\x34\x36\
\x2e\x30\x35\x2d\x31\x35\x2e\x33\x35\x20\x39\x32\x2e\x31\x30\x31\
\x2d\x32\x2e\x35\x35\x37\x20\x31\x33\x38\x2e\x31\x35\x32\x20\x31\
\x30\x2e\x32\x33\x33\x20\x32\x38\x2e\x31\x34\x32\x20\x32\x35\x2e\
\x35\x38\x33\x20\x35\x36\x2e\x32\x38\x34\x20\x35\x31\x2e\x31\x36\
\x37\x20\x37\x36\x2e\x37\x35\x7a\x20\x6d\x32\x35\x35\x2e\x38\x33\
\x37\x20\x32\x2e\x35\x35\x38\x63\x31\x37\x2e\x39\x30\x39\x20\x31\
\x35\x2e\x33\x35\x20\x34\x30\x2e\x39\x33\x34\x20\x32\x35\x2e\x35\
\x38\x34\x20\x36\x33\x2e\x39\x36\x20\x32\x35\x2e\x35\x38\x34\x20\
\x32\x30\x2e\x34\x36\x36\x20\x32\x2e\x35\x35\x38\x20\x33\x38\x2e\
\x33\x37\x35\x2d\x32\x2e\x35\x35\x38\x20\x35\x36\x2e\x32\x38\x33\
\x2d\x31\x32\x2e\x37\x39\x32\x20\x31\x37\x2e\x39\x30\x39\x2d\x31\
\x30\x2e\x32\x33\x33\x20\x33\x33\x2e\x32\x36\x2d\x32\x35\x2e\x35\
\x38\x34\x20\x34\x33\x2e\x34\x39\x33\x2d\x34\x33\x2e\x34\x39\x32\
\x20\x31\x32\x2e\x37\x39\x32\x2d\x32\x30\x2e\x34\x36\x37\x20\x32\
\x33\x2e\x30\x32\x35\x2d\x34\x30\x2e\x39\x33\x34\x20\x33\x30\x2e\
\x37\x2d\x36\x33\x2e\x39\x36\x20\x35\x2e\x31\x31\x37\x2d\x31\x37\
\x2e\x39\x30\x38\x20\x37\x2e\x36\x37\x35\x2d\x33\x38\x2e\x33\x37\
\x35\x20\x35\x2e\x31\x31\x37\x2d\x35\x38\x2e\x38\x34\x32\x2d\x32\
\x2e\x35\x35\x39\x2d\x32\x38\x2e\x31\x34\x32\x2d\x31\x35\x2e\x33\
\x35\x2d\x35\x33\x2e\x37\x32\x36\x2d\x33\x33\x2e\x32\x35\x39\x2d\
\x37\x36\x2e\x37\x35\x31\x2d\x31\x32\x2e\x37\x39\x32\x2d\x31\x35\
\x2e\x33\x35\x2d\x32\x38\x2e\x31\x34\x32\x2d\x33\x30\x2e\x37\x2d\
\x34\x36\x2e\x30\x35\x2d\x33\x38\x2e\x33\x37\x36\x2d\x31\x32\x2e\
\x37\x39\x32\x2d\x35\x2e\x31\x31\x36\x2d\x32\x38\x2e\x31\x34\x33\
\x2d\x31\x30\x2e\x32\x33\x33\x2d\x34\x30\x2e\x39\x33\x35\x2d\x37\
\x2e\x36\x37\x35\x2d\x31\x37\x2e\x39\x30\x38\x20\x32\x2e\x35\x35\
\x39\x2d\x33\x33\x2e\x32\x35\x38\x20\x31\x32\x2e\x37\x39\x32\x2d\
\x34\x36\x2e\x30\x35\x20\x32\x33\x2e\x30\x32\x36\x2d\x31\x37\x2e\
\x39\x30\x39\x20\x31\x35\x2e\x33\x35\x2d\x33\x33\x2e\x32\x35\x39\
\x20\x33\x33\x2e\x32\x35\x38\x2d\x34\x33\x2e\x34\x39\x33\x20\x35\
\x33\x2e\x37\x32\x35\x2d\x31\x30\x2e\x32\x33\x33\x20\x31\x37\x2e\
\x39\x30\x39\x2d\x32\x30\x2e\x34\x36\x36\x20\x33\x38\x2e\x33\x37\
\x36\x2d\x32\x33\x2e\x30\x32\x35\x20\x36\x31\x2e\x34\x30\x31\x2d\
\x32\x2e\x35\x35\x38\x20\x32\x35\x2e\x35\x38\x34\x2d\x32\x2e\x35\
\x35\x38\x20\x35\x31\x2e\x31\x36\x38\x20\x32\x2e\x35\x35\x39\x20\
\x37\x34\x2e\x31\x39\x33\x20\x35\x2e\x31\x31\x36\x20\x32\x33\x2e\
\x30\x32\x35\x20\x31\x32\x2e\x37\x39\x31\x20\x34\x36\x2e\x30\x35\
\x20\x33\x30\x2e\x37\x20\x36\x33\x2e\x39\x36\x7a\x4d\x32\x34\x35\
\x2e\x39\x32\x39\x20\x35\x30\x39\x2e\x37\x36\x38\x63\x31\x37\x2e\
\x39\x31\x2d\x31\x35\x2e\x33\x35\x20\x32\x38\x2e\x31\x34\x33\x2d\
\x33\x35\x2e\x38\x31\x38\x20\x33\x35\x2e\x38\x31\x38\x2d\x35\x36\
\x2e\x32\x38\x35\x20\x31\x30\x2e\x32\x33\x33\x2d\x33\x33\x2e\x32\
\x35\x38\x20\x31\x30\x2e\x32\x33\x33\x2d\x36\x36\x2e\x35\x31\x37\
\x20\x37\x2e\x36\x37\x35\x2d\x39\x39\x2e\x37\x37\x36\x20\x30\x2d\
\x31\x32\x2e\x37\x39\x32\x2d\x35\x2e\x31\x31\x37\x2d\x32\x35\x2e\
\x35\x38\x34\x2d\x31\x30\x2e\x32\x33\x34\x2d\x33\x38\x2e\x33\x37\
\x36\x2d\x31\x32\x2e\x37\x39\x32\x2d\x32\x38\x2e\x31\x34\x32\x2d\
\x33\x35\x2e\x38\x31\x37\x2d\x35\x33\x2e\x37\x32\x35\x2d\x36\x33\
\x2e\x39\x35\x39\x2d\x36\x39\x2e\x30\x37\x36\x2d\x32\x33\x2e\x30\
\x32\x35\x2d\x31\x30\x2e\x32\x33\x33\x2d\x34\x36\x2e\x30\x35\x2d\
\x31\x35\x2e\x33\x35\x2d\x36\x36\x2e\x35\x31\x38\x2d\x31\x30\x2e\
\x32\x33\x33\x2d\x32\x35\x2e\x35\x38\x33\x20\x32\x2e\x35\x35\x38\
\x2d\x34\x36\x2e\x30\x35\x20\x32\x30\x2e\x34\x36\x37\x2d\x36\x31\
\x2e\x34\x20\x34\x30\x2e\x39\x33\x34\x2d\x32\x30\x2e\x34\x36\x37\
\x20\x32\x38\x2e\x31\x34\x32\x2d\x33\x30\x2e\x37\x20\x36\x33\x2e\
\x39\x36\x2d\x33\x35\x2e\x38\x31\x38\x20\x39\x37\x2e\x32\x31\x38\
\x2d\x32\x2e\x35\x35\x38\x20\x32\x30\x2e\x34\x36\x37\x20\x30\x20\
\x34\x30\x2e\x39\x33\x34\x20\x35\x2e\x31\x31\x37\x20\x36\x31\x2e\
\x34\x20\x37\x2e\x36\x37\x35\x20\x33\x30\x2e\x37\x30\x31\x20\x32\
\x33\x2e\x30\x32\x35\x20\x35\x38\x2e\x38\x34\x33\x20\x34\x36\x2e\
\x30\x35\x20\x37\x39\x2e\x33\x31\x20\x31\x37\x2e\x39\x31\x20\x31\
\x35\x2e\x33\x35\x20\x34\x30\x2e\x39\x33\x35\x20\x32\x33\x2e\x30\
\x32\x36\x20\x36\x33\x2e\x39\x36\x20\x32\x33\x2e\x30\x32\x36\x20\
\x32\x38\x2e\x31\x34\x32\x20\x30\x20\x35\x36\x2e\x32\x38\x34\x2d\
\x37\x2e\x36\x37\x35\x20\x37\x39\x2e\x33\x31\x2d\x32\x38\x2e\x31\
\x34\x32\x7a\x20\x6d\x37\x33\x36\x2e\x38\x31\x31\x2d\x37\x36\x2e\
\x37\x35\x32\x63\x2d\x32\x2e\x35\x35\x38\x2d\x32\x30\x2e\x34\x36\
\x37\x2d\x37\x2e\x36\x37\x35\x2d\x33\x38\x2e\x33\x37\x35\x2d\x31\
\x37\x2e\x39\x30\x38\x2d\x35\x36\x2e\x32\x38\x34\x2d\x31\x30\x2e\
\x32\x33\x34\x2d\x32\x30\x2e\x34\x36\x37\x2d\x32\x38\x2e\x31\x34\
\x33\x2d\x34\x30\x2e\x39\x33\x34\x2d\x34\x38\x2e\x36\x31\x2d\x35\
\x31\x2e\x31\x36\x37\x2d\x32\x33\x2e\x30\x32\x35\x2d\x31\x32\x2e\
\x37\x39\x32\x2d\x35\x31\x2e\x31\x36\x37\x2d\x31\x35\x2e\x33\x35\
\x2d\x37\x36\x2e\x37\x35\x2d\x31\x32\x2e\x37\x39\x32\x2d\x31\x32\
\x2e\x37\x39\x32\x20\x32\x2e\x35\x35\x38\x2d\x32\x38\x2e\x31\x34\
\x33\x20\x35\x2e\x31\x31\x37\x2d\x34\x30\x2e\x39\x33\x35\x20\x31\
\x32\x2e\x37\x39\x32\x2d\x31\x37\x2e\x39\x30\x38\x20\x31\x30\x2e\
\x32\x33\x33\x2d\x33\x30\x2e\x37\x20\x32\x38\x2e\x31\x34\x32\x2d\
\x34\x30\x2e\x39\x33\x33\x20\x34\x38\x2e\x36\x30\x39\x2d\x31\x30\
\x2e\x32\x33\x34\x20\x32\x35\x2e\x35\x38\x34\x2d\x31\x35\x2e\x33\
\x35\x20\x35\x33\x2e\x37\x32\x36\x2d\x31\x35\x2e\x33\x35\x20\x38\
\x31\x2e\x38\x36\x38\x20\x30\x20\x32\x35\x2e\x35\x38\x33\x20\x30\
\x20\x35\x33\x2e\x37\x32\x36\x20\x37\x2e\x36\x37\x34\x20\x37\x39\
\x2e\x33\x31\x20\x35\x2e\x31\x31\x37\x20\x31\x37\x2e\x39\x30\x38\
\x20\x31\x35\x2e\x33\x35\x20\x33\x38\x2e\x33\x37\x35\x20\x33\x33\
\x2e\x32\x36\x20\x34\x38\x2e\x36\x30\x38\x20\x31\x37\x2e\x39\x30\
\x38\x20\x31\x35\x2e\x33\x35\x20\x34\x30\x2e\x39\x33\x33\x20\x32\
\x30\x2e\x34\x36\x37\x20\x36\x33\x2e\x39\x35\x39\x20\x32\x33\x2e\
\x30\x32\x36\x20\x31\x37\x2e\x39\x30\x38\x20\x32\x2e\x35\x35\x38\
\x20\x33\x38\x2e\x33\x37\x35\x20\x32\x2e\x35\x35\x38\x20\x35\x36\
\x2e\x32\x38\x34\x2d\x32\x2e\x35\x35\x39\x20\x31\x37\x2e\x39\x30\
\x38\x2d\x35\x2e\x31\x31\x36\x20\x33\x35\x2e\x38\x31\x37\x2d\x31\
\x35\x2e\x33\x35\x20\x34\x36\x2e\x30\x35\x2d\x33\x30\x2e\x37\x20\
\x31\x32\x2e\x37\x39\x32\x2d\x31\x35\x2e\x33\x35\x20\x32\x30\x2e\
\x34\x36\x37\x2d\x33\x35\x2e\x38\x31\x37\x20\x32\x33\x2e\x30\x32\
\x36\x2d\x35\x33\x2e\x37\x32\x36\x20\x31\x32\x2e\x37\x39\x32\x2d\
\x33\x30\x2e\x37\x20\x31\x30\x2e\x32\x33\x33\x2d\x35\x38\x2e\x38\
\x34\x32\x20\x31\x30\x2e\x32\x33\x33\x2d\x38\x36\x2e\x39\x38\x35\
\x7a\x4d\x39\x31\x31\x2e\x31\x30\x36\x20\x38\x31\x39\x2e\x33\x33\
\x63\x2d\x32\x2e\x35\x35\x39\x2d\x33\x35\x2e\x38\x31\x37\x2d\x32\
\x30\x2e\x34\x36\x37\x2d\x37\x31\x2e\x36\x33\x34\x2d\x34\x36\x2e\
\x30\x35\x2d\x39\x39\x2e\x37\x37\x36\x2d\x35\x2e\x31\x31\x38\x2d\
\x35\x2e\x31\x31\x37\x2d\x31\x30\x2e\x32\x33\x34\x2d\x31\x30\x2e\
\x32\x33\x34\x2d\x31\x37\x2e\x39\x31\x2d\x31\x35\x2e\x33\x35\x2d\
\x33\x33\x2e\x32\x35\x38\x2d\x32\x38\x2e\x31\x34\x32\x2d\x36\x36\
\x2e\x35\x31\x37\x2d\x35\x38\x2e\x38\x34\x33\x2d\x39\x39\x2e\x37\
\x37\x36\x2d\x38\x39\x2e\x35\x34\x33\x2d\x33\x33\x2e\x32\x35\x39\
\x2d\x33\x33\x2e\x32\x36\x2d\x36\x33\x2e\x39\x36\x2d\x36\x39\x2e\
\x30\x37\x36\x2d\x39\x32\x2e\x31\x30\x31\x2d\x31\x30\x37\x2e\x34\
\x35\x32\x2d\x32\x30\x2e\x34\x36\x37\x2d\x33\x33\x2e\x32\x35\x39\
\x2d\x34\x38\x2e\x36\x31\x2d\x36\x33\x2e\x39\x36\x2d\x38\x36\x2e\
\x39\x38\x35\x2d\x38\x31\x2e\x38\x36\x38\x2d\x32\x33\x2e\x30\x32\
\x35\x2d\x31\x30\x2e\x32\x33\x33\x2d\x35\x31\x2e\x31\x36\x37\x2d\
\x31\x35\x2e\x33\x35\x2d\x37\x36\x2e\x37\x35\x31\x2d\x31\x32\x2e\
\x37\x39\x32\x2d\x34\x36\x2e\x30\x35\x20\x35\x2e\x31\x31\x37\x2d\
\x38\x36\x2e\x39\x38\x35\x20\x33\x30\x2e\x37\x2d\x31\x31\x35\x2e\
\x31\x32\x37\x20\x36\x36\x2e\x35\x31\x38\x2d\x37\x2e\x36\x37\x35\
\x20\x37\x2e\x36\x37\x35\x2d\x31\x32\x2e\x37\x39\x31\x20\x31\x37\
\x2e\x39\x30\x39\x2d\x31\x37\x2e\x39\x30\x38\x20\x32\x38\x2e\x31\
\x34\x32\x2d\x32\x30\x2e\x34\x36\x37\x20\x33\x30\x2e\x37\x2d\x34\
\x36\x2e\x30\x35\x20\x36\x31\x2e\x34\x30\x31\x2d\x37\x34\x2e\x31\
\x39\x33\x20\x38\x36\x2e\x39\x38\x35\x2d\x31\x35\x2e\x33\x35\x20\
\x31\x35\x2e\x33\x35\x2d\x33\x30\x2e\x37\x20\x32\x38\x2e\x31\x34\
\x32\x2d\x34\x36\x2e\x30\x35\x20\x34\x30\x2e\x39\x33\x34\x2d\x37\
\x2e\x36\x37\x36\x20\x37\x2e\x36\x37\x35\x2d\x31\x37\x2e\x39\x31\
\x20\x31\x35\x2e\x33\x35\x2d\x32\x35\x2e\x35\x38\x34\x20\x32\x33\
\x2e\x30\x32\x35\x2d\x33\x30\x2e\x37\x20\x32\x33\x2e\x30\x32\x35\
\x2d\x36\x31\x2e\x34\x30\x31\x20\x35\x33\x2e\x37\x32\x36\x2d\x37\
\x39\x2e\x33\x31\x20\x38\x36\x2e\x39\x38\x35\x2d\x31\x32\x2e\x37\
\x39\x32\x20\x32\x33\x2e\x30\x32\x35\x2d\x32\x30\x2e\x34\x36\x37\
\x20\x34\x38\x2e\x36\x30\x39\x2d\x32\x33\x2e\x30\x32\x35\x20\x37\
\x36\x2e\x37\x35\x20\x30\x20\x32\x33\x2e\x30\x32\x36\x20\x32\x2e\
\x35\x35\x38\x20\x34\x36\x2e\x30\x35\x31\x20\x31\x30\x2e\x32\x33\
\x33\x20\x36\x36\x2e\x35\x31\x38\x20\x37\x2e\x36\x37\x35\x20\x32\
\x33\x2e\x30\x32\x36\x20\x31\x37\x2e\x39\x30\x39\x20\x34\x36\x2e\
\x30\x35\x31\x20\x33\x33\x2e\x32\x36\x20\x36\x33\x2e\x39\x36\x20\
\x32\x35\x2e\x35\x38\x33\x20\x33\x30\x2e\x37\x20\x36\x33\x2e\x39\
\x35\x38\x20\x35\x31\x2e\x31\x36\x37\x20\x31\x30\x32\x2e\x33\x33\
\x34\x20\x35\x33\x2e\x37\x32\x35\x20\x34\x38\x2e\x36\x30\x39\x20\
\x32\x2e\x35\x35\x39\x20\x39\x37\x2e\x32\x31\x38\x20\x30\x20\x31\
\x34\x33\x2e\x32\x36\x39\x2d\x37\x2e\x36\x37\x35\x20\x32\x30\x2e\
\x34\x36\x37\x2d\x32\x2e\x35\x35\x38\x20\x34\x30\x2e\x39\x33\x34\
\x2d\x31\x30\x2e\x32\x33\x33\x20\x36\x33\x2e\x39\x35\x39\x2d\x31\
\x32\x2e\x37\x39\x32\x20\x34\x36\x2e\x30\x35\x2d\x35\x2e\x31\x31\
\x36\x20\x39\x32\x2e\x31\x30\x31\x2d\x32\x2e\x35\x35\x38\x20\x31\
\x33\x35\x2e\x35\x39\x34\x20\x31\x30\x2e\x32\x33\x34\x20\x33\x35\
\x2e\x38\x31\x37\x20\x31\x32\x2e\x37\x39\x32\x20\x37\x34\x2e\x31\
\x39\x32\x20\x31\x37\x2e\x39\x30\x39\x20\x31\x31\x32\x2e\x35\x36\
\x38\x20\x32\x30\x2e\x34\x36\x37\x20\x33\x38\x2e\x33\x37\x35\x20\
\x32\x2e\x35\x35\x38\x20\x37\x39\x2e\x33\x31\x2d\x32\x2e\x35\x35\
\x38\x20\x31\x31\x35\x2e\x31\x32\x37\x2d\x32\x33\x2e\x30\x32\x35\
\x20\x32\x35\x2e\x35\x38\x33\x2d\x31\x32\x2e\x37\x39\x32\x20\x34\
\x36\x2e\x30\x35\x2d\x33\x35\x2e\x38\x31\x38\x20\x35\x38\x2e\x38\
\x34\x32\x2d\x36\x31\x2e\x34\x30\x31\x20\x32\x30\x2e\x34\x36\x37\
\x2d\x33\x33\x2e\x32\x36\x20\x33\x30\x2e\x37\x2d\x37\x31\x2e\x36\
\x33\x35\x20\x32\x35\x2e\x35\x38\x34\x2d\x31\x31\x32\x2e\x35\x36\
\x39\x7a\x4d\x34\x38\x31\x2e\x33\x20\x39\x32\x34\x2e\x32\x32\x34\
\x48\x33\x36\x33\x2e\x36\x31\x35\x63\x2d\x31\x32\x2e\x37\x39\x32\
\x20\x30\x2d\x32\x35\x2e\x35\x38\x34\x20\x30\x2d\x33\x38\x2e\x33\
\x37\x36\x2d\x32\x2e\x35\x35\x39\x2d\x32\x35\x2e\x35\x38\x34\x2d\
\x35\x2e\x31\x31\x37\x2d\x34\x38\x2e\x36\x31\x2d\x32\x30\x2e\x34\
\x36\x37\x2d\x36\x33\x2e\x39\x36\x2d\x34\x33\x2e\x34\x39\x32\x2d\
\x31\x32\x2e\x37\x39\x31\x2d\x31\x35\x2e\x33\x35\x2d\x32\x30\x2e\
\x34\x36\x36\x2d\x33\x33\x2e\x32\x35\x39\x2d\x32\x33\x2e\x30\x32\
\x35\x2d\x35\x33\x2e\x37\x32\x36\x61\x32\x34\x36\x2e\x35\x36\x33\
\x20\x32\x34\x36\x2e\x35\x36\x33\x20\x30\x20\x30\x20\x31\x20\x30\
\x2d\x36\x31\x2e\x34\x63\x35\x2e\x31\x31\x37\x2d\x32\x33\x2e\x30\
\x32\x36\x20\x31\x37\x2e\x39\x30\x39\x2d\x34\x33\x2e\x34\x39\x33\
\x20\x33\x33\x2e\x32\x36\x2d\x35\x38\x2e\x38\x34\x33\x20\x31\x32\
\x2e\x37\x39\x31\x2d\x31\x32\x2e\x37\x39\x32\x20\x33\x30\x2e\x37\
\x2d\x32\x33\x2e\x30\x32\x36\x20\x34\x38\x2e\x36\x30\x38\x2d\x33\
\x30\x2e\x37\x20\x37\x2e\x36\x37\x35\x2d\x32\x2e\x35\x36\x20\x31\
\x35\x2e\x33\x35\x2d\x35\x2e\x31\x31\x37\x20\x32\x33\x2e\x30\x32\
\x36\x2d\x35\x2e\x31\x31\x37\x68\x36\x39\x2e\x30\x37\x36\x76\x2d\
\x39\x37\x2e\x32\x31\x39\x68\x36\x36\x2e\x35\x31\x37\x63\x32\x2e\
\x35\x35\x39\x20\x31\x32\x30\x2e\x32\x34\x34\x20\x32\x2e\x35\x35\
\x39\x20\x32\x33\x37\x2e\x39\x32\x39\x20\x32\x2e\x35\x35\x39\x20\
\x33\x35\x33\x2e\x30\x35\x36\x7a\x20\x6d\x32\x36\x33\x2e\x35\x31\
\x32\x20\x30\x48\x35\x38\x33\x2e\x36\x33\x34\x63\x2d\x31\x37\x2e\
\x39\x30\x38\x2d\x32\x2e\x35\x35\x39\x2d\x33\x33\x2e\x32\x35\x38\
\x2d\x37\x2e\x36\x37\x36\x2d\x34\x36\x2e\x30\x35\x2d\x31\x37\x2e\
\x39\x30\x39\x2d\x31\x35\x2e\x33\x35\x2d\x31\x32\x2e\x37\x39\x32\
\x2d\x32\x33\x2e\x30\x32\x36\x2d\x33\x33\x2e\x32\x35\x39\x2d\x32\
\x33\x2e\x30\x32\x36\x2d\x35\x31\x2e\x31\x36\x37\x76\x2d\x31\x37\
\x33\x2e\x39\x37\x68\x36\x36\x2e\x35\x31\x38\x76\x31\x36\x31\x2e\
\x31\x37\x38\x63\x30\x20\x37\x2e\x36\x37\x35\x20\x32\x2e\x35\x35\
\x38\x20\x31\x32\x2e\x37\x39\x32\x20\x37\x2e\x36\x37\x35\x20\x31\
\x37\x2e\x39\x30\x38\x20\x35\x2e\x31\x31\x37\x20\x35\x2e\x31\x31\
\x37\x20\x31\x32\x2e\x37\x39\x32\x20\x37\x2e\x36\x37\x35\x20\x32\
\x30\x2e\x34\x36\x37\x20\x37\x2e\x36\x37\x35\x68\x36\x39\x2e\x30\
\x37\x36\x56\x36\x37\x38\x2e\x36\x32\x68\x36\x36\x2e\x35\x31\x38\
\x76\x32\x34\x35\x2e\x36\x30\x34\x7a\x22\x20\x66\x69\x6c\x6c\x3d\
\x22\x23\x33\x30\x36\x43\x46\x46\x22\x20\x70\x2d\x69\x64\x3d\x22\
\x37\x36\x34\x36\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\
\x74\x68\x20\x64\x3d\x22\x4d\x33\x34\x30\x2e\x35\x39\x20\x37\x33\
\x34\x2e\x39\x30\x34\x63\x2d\x31\x32\x2e\x37\x39\x33\x20\x35\x2e\
\x31\x31\x37\x2d\x32\x35\x2e\x35\x38\x35\x20\x31\x35\x2e\x33\x35\
\x2d\x33\x33\x2e\x32\x36\x20\x33\x30\x2e\x37\x2d\x35\x2e\x31\x31\
\x36\x20\x31\x32\x2e\x37\x39\x32\x2d\x37\x2e\x36\x37\x35\x20\x32\
\x35\x2e\x35\x38\x34\x2d\x37\x2e\x36\x37\x35\x20\x33\x38\x2e\x33\
\x37\x36\x20\x30\x20\x31\x35\x2e\x33\x35\x20\x35\x2e\x31\x31\x37\
\x20\x33\x30\x2e\x37\x20\x31\x32\x2e\x37\x39\x32\x20\x34\x33\x2e\
\x34\x39\x32\x20\x31\x30\x2e\x32\x33\x34\x20\x31\x35\x2e\x33\x35\
\x20\x32\x38\x2e\x31\x34\x32\x20\x32\x35\x2e\x35\x38\x34\x20\x34\
\x36\x2e\x30\x35\x20\x32\x33\x2e\x30\x32\x36\x68\x35\x33\x2e\x37\
\x32\x37\x56\x37\x33\x32\x2e\x33\x34\x36\x48\x33\x35\x33\x2e\x33\
\x38\x63\x2d\x32\x2e\x35\x35\x38\x2d\x32\x2e\x35\x35\x39\x2d\x37\
\x2e\x36\x37\x35\x20\x30\x2d\x31\x32\x2e\x37\x39\x32\x20\x32\x2e\
\x35\x35\x38\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x33\x30\x36\
\x43\x46\x46\x22\x20\x70\x2d\x69\x64\x3d\x22\x37\x36\x34\x37\x22\
\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\
"
qt_resource_name = b"\
\x00\x05\
\x00\x6f\xa6\x53\
\x00\x69\
\x00\x63\x00\x6f\x00\x6e\x00\x73\
\x00\x09\
\x0e\x01\xbc\x67\
\x00\x6c\
\x00\x6f\x00\x67\x00\x69\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x08\
\x0c\x07\x55\xc7\
\x00\x71\
\x00\x75\x00\x69\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x08\
\x00\x2c\x57\xe7\
\x00\x62\
\x00\x69\x00\x6c\x00\x69\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x0c\
\x05\xd2\x9b\x87\
\x00\x72\
\x00\x65\x00\x67\x00\x69\x00\x73\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x09\
\x06\x98\x8e\xa7\
\x00\x63\
\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x08\
\x00\x4c\x54\x47\
\x00\x6d\
\x00\x69\x00\x6e\x00\x69\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x07\
\x0b\x5a\x5a\x07\
\x00\x64\
\x00\x6f\x00\x67\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x09\
\x0f\xb8\x8a\x27\
\x00\x62\
\x00\x61\x00\x69\x00\x64\x00\x75\x00\x2e\x00\x73\x00\x76\x00\x67\
"
qt_resource_struct_v1 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x08\x00\x00\x00\x03\
\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x07\x4e\
\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x1c\xb6\
\x00\x00\x00\x54\x00\x00\x00\x00\x00\x01\x00\x00\x15\x28\
\x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x1a\xbb\
\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x01\x00\x00\x25\x29\
\x00\x00\x00\x28\x00\x00\x00\x00\x00\x01\x00\x00\x02\x7a\
\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x43\x7a\
"
qt_resource_struct_v2 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x08\x00\x00\x00\x03\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x07\x4e\
\x00\x00\x01\x96\xc8\x2f\x25\xb8\
\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x1c\xb6\
\x00\x00\x01\x96\xc8\xb2\x50\xc1\
\x00\x00\x00\x54\x00\x00\x00\x00\x00\x01\x00\x00\x15\x28\
\x00\x00\x01\x96\xc8\x2e\xdc\x0c\
\x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x1a\xbb\
\x00\x00\x01\x96\xc8\x2d\x54\x53\
\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x01\x00\x00\x25\x29\
\x00\x00\x01\x96\xc8\xa2\x3d\x16\
\x00\x00\x00\x28\x00\x00\x00\x00\x00\x01\x00\x00\x02\x7a\
\x00\x00\x01\x96\xc8\xaf\x5f\x3a\
\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x96\xc8\x2e\x99\x27\
\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x43\x7a\
\x00\x00\x01\x96\xc8\x2f\x65\x18\
"
qt_version = [int(v) for v in QtCore.qVersion().split('.')]
if qt_version < [5, 8, 0]:
rcc_version = 1
qt_resource_struct = qt_resource_struct_v1
else:
rcc_version = 2
qt_resource_struct = qt_resource_struct_v2
def qInitResources():
QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
def qCleanupResources():
QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
qInitResources()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment