version 0.0.3

This commit is contained in:
2025-03-31 10:35:51 +02:00
parent 2f2af40855
commit c89247dd7c
8 changed files with 1071 additions and 867 deletions

View File

@@ -91,11 +91,54 @@ collected per channel (entry wf/exit wf).
</li>
</ul>
<p>
<font color=green>
Data can be recalled from hdf5 and reanalyzed using the HDF analysis functionality
made available through a docked widget in the menu bar (right click on the menu bar
and select the HDF5 option).
</font>
<h3 style="color:#7b68ee;">Expert Panel</h3>
Input parameters to the peak search analysis, as configured in tina.json.<br>
The Injector has NOT yet been implemented into the application.
<table width=400>
<tr> <td>
<table>
<!--caption>
<h4 style="color:#0047ab;">Cyclotron</h4>
</caption-->
<thead>
<tr>
<th align=left>Parameter</th>
<th align=center style="color:#0047ab;">Cyclotron</th>
</tr>
</thead>
<tr><td>Minimum Peak Height</td> <td align=center>50</td></tr>
<tr><td>Minimum distance between peaks</td> <td align=center>10</td></tr>
<tr><td>Minimim difference in correlation plot <br>between peak and 2nd highest peak</td> <td rowspan=2 align=center>0.01</td></tr>
</table>
</td> <td width=20> &nbsp; </td>
<td> <table>
<!--caption>
<h4 style="color:#008b8b;">Injector</h4>
</caption-->
<thead>
<tr>
<th align=center style="color:#008b8b;">Injector</th>
</tr>
</thead>
<tr> <td align=center>50</td></tr>
<tr><td align=center>10</td></tr>
<tr><td align=center>0.01</td></tr>
</table>
</td>
</tr>
</table>
<br>
<p>
The Oscilloscope option disables setting values to epics process variables and is meant for testing code with raw data collected from the oscilloscope and stored in hdf5 files: <br>
/hipa/bd/data/measurements/Tina_2024-09-18_oscilloscope.h5
<h3 style="color:#7b68ee;">TINA Image</h3>

View File

@@ -2,13 +2,395 @@
# Resource object code
#
# Created by: The Resource Compiler for PyQt5 (Qt v5.15.3)
# Created by: The Resource Compiler for PyQt5 (Qt v5.9.7)
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore
qt_resource_data = b"\
\x00\x00\x14\xaa\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x54\x69\x6d\x65\x20\x6f\x66\x20\x46\x6c\x69\x67\x68\x74\
\x20\x4d\x65\x61\x73\x75\x65\x6d\x65\x6e\x74\x20\x66\x6f\x72\x20\
\x49\x6e\x6a\x65\x63\x74\x6f\x72\x20\x61\x6e\x64\x20\x52\x69\x6e\
\x67\x20\x43\x79\x63\x6c\x6f\x74\x72\x6f\x6e\x20\x54\x75\x72\x6e\
\x20\x4e\x75\x6d\x62\x65\x72\x20\x41\x73\x63\x65\x72\x74\x61\x69\
\x6e\x6d\x65\x6e\x74\x2c\x20\x54\x49\x4e\x41\x3c\x2f\x74\x69\x74\
\x6c\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\
\x3e\x0a\x0a\x3c\x68\x35\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
\x6f\x6c\x6f\x72\x3a\x67\x72\x61\x79\x3b\x22\x3e\x4a\x75\x6e\x65\
\x20\x32\x30\x32\x34\x2c\x20\x4a\x61\x6e\x20\x43\x68\x72\x69\x6e\
\x2c\x20\x50\x69\x65\x72\x72\x65\x2d\x41\x6e\x64\x72\x26\x65\x61\
\x63\x75\x74\x65\x3b\x20\x44\x75\x70\x65\x72\x72\x65\x78\x2c\x20\
\x41\x6c\x65\x73\x73\x61\x6e\x64\x72\x6f\x20\x46\x61\x63\x63\x68\
\x65\x74\x74\x69\x2c\x20\x20\x57\x61\x6c\x64\x61\x6d\x61\x72\x20\
\x4b\x6f\x70\x72\x65\x6b\x3c\x2f\x68\x35\x3e\x0a\x3c\x68\x34\x3e\
\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x54\x3c\x2f\x73\x70\
\x61\x6e\x3e\x69\x6d\x65\x20\x6f\x66\x20\x46\x6c\x69\x67\x68\x74\
\x20\x4d\x65\x61\x73\x75\x72\x65\x6d\x65\x6e\x74\x20\x66\x6f\x72\
\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x49\x3c\x2f\x73\x70\
\x61\x6e\x3e\x6e\x6a\x65\x63\x74\x6f\x72\x20\x61\x6e\x64\x20\x52\
\x69\x6e\x67\x20\x43\x79\x63\x6c\x6f\x74\x72\x6f\x6e\x20\x54\x75\
\x72\x6e\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\
\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x4e\x3c\x2f\
\x73\x70\x61\x6e\x3e\x75\x6d\x62\x65\x72\x20\x3c\x73\x70\x61\x6e\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x72\
\x65\x64\x3b\x22\x3e\x41\x3c\x2f\x73\x70\x61\x6e\x3e\x73\x63\x65\
\x72\x74\x61\x69\x6e\x6d\x65\x6e\x74\x2c\x20\x3c\x73\x70\x61\x6e\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x72\
\x65\x64\x3b\x22\x3e\x54\x49\x4e\x41\x3c\x2f\x73\x70\x61\x6e\x3e\
\x3c\x2f\x68\x34\x3e\x0a\x3c\x68\x32\x20\x73\x74\x79\x6c\x65\x3d\
\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\x3e\x41\x62\
\x6f\x75\x74\x3c\x2f\x68\x32\x3e\x0a\x0a\x0a\x3c\x70\x3e\x54\x68\
\x65\x20\x54\x49\x4e\x41\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\
\x6f\x6e\x20\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x73\x20\x74\x68\
\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x74\x75\x72\x6e\
\x73\x20\x69\x6e\x20\x61\x20\x63\x79\x63\x6c\x6f\x74\x72\x6f\x6e\
\x0a\x66\x72\x6f\x6d\x20\x61\x20\x54\x69\x6d\x65\x20\x6f\x66\x20\
\x46\x6c\x69\x67\x68\x74\x20\x28\x54\x4f\x46\x29\x20\x6d\x65\x61\
\x73\x75\x72\x65\x6d\x65\x6e\x74\x20\x74\x65\x63\x68\x6e\x69\x71\
\x75\x65\x20\x61\x6e\x64\x20\x61\x20\x63\x72\x6f\x73\x73\x2d\x63\
\x6f\x72\x72\x65\x6c\x61\x74\x69\x6f\x6e\x0a\x6f\x66\x20\x66\x61\
\x73\x74\x20\x73\x61\x6d\x70\x6c\x65\x64\x20\x64\x61\x74\x61\x20\
\x66\x72\x6f\x6d\x20\x63\x61\x70\x61\x63\x69\x74\x69\x76\x65\x20\
\x73\x65\x6e\x73\x6f\x72\x73\x20\x6c\x6f\x63\x61\x74\x65\x64\x20\
\x61\x74\x20\x74\x68\x65\x20\x65\x6e\x74\x72\x61\x6e\x63\x65\x20\
\x61\x6e\x64\x20\x65\x78\x69\x74\x0a\x6f\x66\x20\x74\x68\x65\x20\
\x63\x79\x63\x6f\x6c\x6f\x74\x72\x6f\x6e\x2e\x20\x54\x68\x69\x73\
\x20\x69\x73\x20\x62\x61\x73\x65\x64\x20\x6f\x6e\x20\x61\x20\x70\
\x79\x74\x68\x6f\x6e\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\
\x74\x69\x6f\x6e\x20\x6f\x66\x20\x61\x20\x4c\x61\x62\x56\x49\x45\
\x57\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x64\x65\
\x76\x65\x6c\x6f\x70\x65\x64\x20\x62\x79\x0a\x50\x69\x65\x72\x72\
\x65\x2d\x41\x6e\x64\x72\x26\x65\x61\x63\x75\x74\x65\x3b\x20\x44\
\x75\x70\x65\x72\x72\x65\x78\x3a\x20\x20\x3c\x62\x72\x3e\x0a\x50\
\x2e\x2d\x41\x2e\x20\x44\x75\x70\x65\x72\x72\x65\x78\x20\x61\x6e\
\x64\x20\x41\x2e\x20\x46\x61\x63\x63\x68\x65\x74\x74\x69\x2c\x20\
\x0a\x4e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x54\x75\x72\x6e\x20\
\x4d\x65\x61\x73\x75\x72\x65\x6d\x65\x6e\x74\x73\x20\x6f\x6e\x20\
\x74\x68\x65\x20\x48\x49\x50\x41\x20\x43\x79\x63\x6c\x6f\x74\x72\
\x6f\x6e\x73\x20\x61\x74\x20\x50\x53\x49\x2e\x3c\x62\x72\x3e\x0a\
\x64\x6f\x69\x3a\x31\x30\x2e\x31\x38\x34\x32\x39\x2f\x4a\x41\x43\
\x6f\x57\x2d\x49\x50\x41\x43\x32\x30\x31\x38\x2d\x57\x45\x50\x41\
\x4c\x30\x36\x37\x20\x0a\x0a\x20\x20\x0a\x20\x20\x3c\x2f\x70\x3e\
\x0a\x3c\x21\x2d\x2d\x61\x20\x68\x72\x65\x66\x3d\x22\x70\x61\x67\
\x65\x31\x2e\x68\x74\x6d\x6c\x22\x3e\x68\x65\x72\x65\x3c\x2f\x61\
\x3e\x3c\x2f\x70\x2d\x2d\x3e\x0a\x0a\x3c\x68\x32\x20\x73\x74\x79\
\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\
\x3e\x54\x68\x65\x20\x52\x65\x70\x6f\x73\x69\x74\x6f\x72\x79\x3c\
\x2f\x68\x32\x3e\x0a\x0a\x3c\x70\x3e\x54\x68\x65\x20\x61\x70\x70\
\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x63\x6f\x6d\x70\x72\x69\x73\
\x65\x73\x20\x74\x77\x6f\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\
\x73\x3a\x0a\x20\x20\x3c\x75\x6c\x3e\x0a\x3c\x6c\x69\x3e\x0a\x20\
\x20\x54\x68\x65\x20\x6c\x6f\x77\x2d\x6c\x65\x76\x65\x6c\x20\x41\
\x44\x43\x20\x64\x61\x74\x61\x20\x61\x63\x71\x75\x69\x73\x69\x74\
\x69\x6f\x6e\x20\x73\x79\x73\x74\x65\x6d\x2e\x3c\x62\x72\x3e\x0a\
\x20\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
\x6f\x6c\x6f\x72\x3a\x20\x67\x72\x65\x65\x6e\x3b\x22\x3e\x68\x74\
\x74\x70\x73\x3a\x2f\x2f\x67\x69\x74\x2e\x70\x73\x69\x2e\x63\x68\
\x2f\x65\x70\x69\x63\x73\x5f\x69\x6f\x63\x62\x6f\x6f\x74\x5f\x68\
\x69\x70\x61\x2f\x2e\x2e\x20\x74\x6f\x20\x62\x65\x20\x63\x6f\x6d\
\x70\x6c\x65\x74\x65\x64\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x62\x72\
\x3e\x0a\x20\x0a\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\x20\x3c\x6c\x69\
\x3e\x0a\x20\x20\x20\x20\x41\x20\x48\x69\x67\x68\x20\x4c\x65\x76\
\x65\x6c\x20\x41\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x28\
\x48\x4c\x41\x29\x20\x74\x68\x61\x74\x20\x69\x73\x20\x61\x62\x6c\
\x65\x20\x74\x6f\x20\x69\x6e\x74\x65\x72\x61\x63\x74\x20\x77\x69\
\x74\x68\x20\x74\x68\x65\x20\x49\x4f\x43\x2c\x20\x73\x74\x61\x72\
\x74\x20\x61\x20\x6c\x6f\x77\x2d\x6c\x65\x76\x65\x6c\x20\x64\x61\
\x74\x61\x20\x61\x63\x71\x75\x69\x73\x74\x69\x6f\x6e\x20\x72\x75\
\x6e\x2c\x0a\x20\x20\x20\x20\x61\x63\x71\x75\x69\x72\x65\x20\x74\
\x68\x65\x20\x72\x61\x77\x20\x64\x61\x74\x61\x2c\x20\x61\x6e\x64\
\x20\x70\x65\x72\x66\x6f\x72\x6d\x20\x74\x68\x65\x20\x6e\x75\x6d\
\x62\x65\x72\x20\x6f\x66\x20\x74\x65\x72\x6d\x73\x20\x61\x6e\x61\
\x6c\x79\x73\x69\x73\x2e\x3c\x62\x72\x3e\x0a\x20\x20\x20\x20\x3c\
\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\
\x72\x3a\x20\x67\x72\x65\x65\x6e\x3b\x22\x3e\x20\x68\x74\x74\x70\
\x73\x3a\x2f\x2f\x67\x69\x74\x6c\x61\x62\x2e\x70\x73\x69\x2e\x63\
\x68\x2f\x68\x69\x70\x61\x5f\x61\x70\x70\x73\x34\x6f\x70\x73\x2f\
\x74\x69\x6e\x61\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x62\x72\x3e\x0a\
\x20\x20\x20\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\
\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x67\x72\x61\x79\x3b\x22\x3e\x20\
\x2f\x68\x69\x70\x61\x2f\x62\x64\x2f\x61\x70\x70\x6c\x69\x63\x61\
\x74\x69\x6f\x6e\x73\x2f\x74\x69\x6e\x61\x2f\x6c\x61\x74\x65\x73\
\x74\x2f\x74\x69\x6e\x61\x2e\x73\x68\x3c\x2f\x73\x70\x61\x6e\x3e\
\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x3c\x2f\x75\x6c\x3e\
\x0a\x20\x20\x3c\x68\x32\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\x3e\x47\x55\x49\x2c\x20\
\x43\x6f\x6e\x74\x72\x6f\x6c\x20\x54\x61\x62\x3c\x2f\x68\x32\x3e\
\x0a\x20\x20\x4d\x61\x69\x6e\x20\x70\x61\x6e\x65\x6c\x20\x66\x6f\
\x72\x20\x75\x73\x65\x20\x62\x79\x20\x6f\x70\x65\x72\x61\x74\x6f\
\x72\x73\x2e\x20\x0a\x20\x20\x3c\x68\x33\x20\x73\x74\x79\x6c\x65\
\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x37\x62\x36\x38\x65\x65\x3b\
\x22\x3e\x4f\x70\x65\x72\x61\x74\x6f\x72\x20\x50\x61\x6e\x65\x6c\
\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x49\x6e\x70\x75\x74\x20\x70\x61\
\x72\x61\x6d\x65\x74\x65\x72\x73\x20\x74\x6f\x20\x61\x6e\x61\x6c\
\x79\x73\x69\x73\x20\x72\x6f\x75\x74\x69\x6e\x65\x2c\x20\x61\x73\
\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x65\x64\x20\x69\x6e\x20\x74\
\x69\x6e\x61\x2e\x6a\x73\x6f\x6e\x2e\x3c\x62\x72\x3e\x0a\x20\x20\
\x54\x68\x65\x20\x49\x6e\x6a\x65\x63\x74\x6f\x72\x20\x68\x61\x73\
\x20\x4e\x4f\x54\x20\x79\x65\x74\x20\x62\x65\x65\x6e\x20\x69\x6d\
\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x20\x69\x6e\x74\x6f\x20\x74\
\x68\x65\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2e\x0a\
\x20\x20\x3c\x74\x61\x62\x6c\x65\x20\x77\x69\x64\x74\x68\x3d\x34\
\x30\x30\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x20\x3c\x74\x64\
\x3e\x0a\x09\x3c\x74\x61\x62\x6c\x65\x3e\x0a\x09\x20\x20\x3c\x63\
\x61\x70\x74\x69\x6f\x6e\x3e\x0a\x09\x20\x20\x20\x20\x3c\x68\x34\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\
\x30\x34\x37\x61\x62\x3b\x22\x3e\x43\x79\x63\x6c\x6f\x74\x72\x6f\
\x6e\x3c\x2f\x68\x34\x3e\x0a\x09\x20\x20\x20\x20\x3c\x2f\x63\x61\
\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x3c\x74\x68\x65\x61\x64\x3e\
\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x0a\x20\x20\x20\x20\x20\x20\
\x3c\x74\x68\x20\x61\x6c\x69\x67\x6e\x3d\x6c\x65\x66\x74\x3e\x50\
\x61\x72\x61\x6d\x65\x74\x65\x72\x3c\x2f\x74\x68\x3e\x0a\x20\x20\
\x20\x20\x20\x20\x3c\x74\x68\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\
\x6e\x74\x65\x72\x3e\x56\x61\x6c\x75\x65\x3c\x2f\x74\x68\x3e\x0a\
\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x3c\x2f\x74\x68\
\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\
\x3e\x48\x61\x72\x6d\x6f\x6e\x69\x63\x20\x4e\x6f\x2e\x3c\x2f\x74\
\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\
\x74\x65\x72\x3e\x36\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\
\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x64\x54\x20\x43\
\x61\x62\x6c\x65\x20\x28\x6e\x73\x29\x3c\x2f\x74\x64\x3e\x20\x3c\
\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\
\x34\x34\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\
\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x64\x4e\x20\x50\x69\x63\x6b\
\x75\x70\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\
\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x2d\x31\x3c\x2f\x74\x64\x3e\
\x3c\x2f\x74\x72\x3e\x0a\x09\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\
\x20\x20\x20\x20\x20\x20\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\
\x77\x69\x64\x74\x68\x3d\x32\x30\x3e\x20\x26\x6e\x62\x73\x70\x3b\
\x20\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x64\
\x3e\x20\x3c\x74\x61\x62\x6c\x65\x3e\x0a\x09\x20\x20\x3c\x63\x61\
\x70\x74\x69\x6f\x6e\x3e\x0a\x3c\x68\x34\x20\x73\x74\x79\x6c\x65\
\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x38\x62\x38\x62\x3b\
\x22\x3e\x49\x6e\x6a\x65\x63\x74\x6f\x72\x3c\x2f\x68\x34\x3e\x0a\
\x3c\x2f\x63\x61\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x3c\x74\x68\
\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x0a\x20\x20\
\x20\x20\x20\x20\x3c\x74\x68\x20\x61\x6c\x69\x67\x6e\x3d\x6c\x65\
\x66\x74\x3e\x50\x61\x72\x61\x6d\x65\x74\x65\x72\x3c\x2f\x74\x68\
\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x20\x61\x6c\x69\x67\
\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x56\x61\x6c\x75\x65\x3c\x2f\
\x74\x68\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\
\x3c\x2f\x74\x68\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\
\x3e\x3c\x74\x64\x3e\x48\x61\x72\x6d\x6f\x6e\x69\x63\x20\x4e\x6f\
\x2e\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\
\x3d\x63\x65\x6e\x74\x65\x72\x3e\x31\x30\x3c\x2f\x74\x64\x3e\x3c\
\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\
\x3e\x64\x54\x20\x43\x61\x62\x6c\x65\x20\x28\x6e\x73\x29\x3c\x2f\
\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\
\x6e\x74\x65\x72\x3e\x36\x2e\x39\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\
\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x64\
\x4e\x20\x50\x69\x63\x6b\x75\x70\x3c\x2f\x74\x64\x3e\x20\x3c\x74\
\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x34\
\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\
\x74\x72\x3e\x3c\x74\x64\x3e\x4d\x6f\x64\x2e\x20\x46\x72\x65\x71\
\x2e\x20\x28\x47\x48\x7a\x29\x20\x26\x6e\x62\x73\x70\x3b\x3c\x2f\
\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\
\x6e\x74\x65\x72\x3e\x35\x30\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\
\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x44\
\x75\x74\x79\x20\x43\x79\x63\x6c\x65\x20\x28\x25\x29\x3c\x2f\x74\
\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\
\x74\x65\x72\x3e\x31\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\
\x09\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\
\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\
\x20\x20\x20\x20\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x3c\
\x70\x3e\x0a\x57\x69\x74\x68\x69\x6e\x20\x74\x68\x65\x20\x50\x72\
\x6f\x63\x65\x64\x75\x72\x65\x20\x67\x72\x6f\x75\x70\x2c\x20\x74\
\x68\x65\x20\x53\x74\x61\x72\x74\x20\x62\x75\x74\x74\x6f\x6e\x6e\
\x20\x65\x78\x65\x63\x75\x74\x65\x73\x20\x74\x68\x65\x20\x61\x6e\
\x61\x6c\x79\x73\x69\x73\x20\x70\x72\x6f\x67\x72\x61\x6d\x0a\x77\
\x68\x69\x63\x68\x20\x75\x73\x75\x61\x6c\x6c\x79\x20\x74\x61\x6b\
\x65\x73\x20\x6c\x65\x73\x73\x20\x74\x68\x61\x6e\x20\x31\x30\x20\
\x73\x65\x63\x6f\x6e\x64\x73\x20\x74\x6f\x20\x63\x6f\x6d\x70\x6c\
\x65\x74\x65\x2e\x20\x33\x27\x30\x31\x30\x27\x35\x36\x30\x20\x73\
\x61\x6d\x70\x6c\x65\x73\x20\x61\x72\x65\x0a\x63\x6f\x6c\x6c\x65\
\x63\x74\x65\x64\x20\x70\x65\x72\x20\x63\x68\x61\x6e\x6e\x65\x6c\
\x20\x28\x65\x6e\x74\x72\x79\x20\x77\x66\x2f\x65\x78\x69\x74\x20\
\x77\x66\x29\x2e\x20\x0a\x3c\x70\x3e\x0a\x20\x20\x54\x68\x65\x20\
\x53\x61\x76\x65\x41\x6c\x6c\x20\x62\x75\x74\x74\x6f\x6e\x3a\x0a\
\x20\x20\x3c\x75\x6c\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x3e\x77\
\x72\x69\x74\x65\x73\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\
\x20\x6f\x66\x20\x74\x75\x72\x6e\x73\x20\x6d\x65\x61\x73\x75\x72\
\x65\x64\x20\x69\x6e\x74\x6f\x20\x61\x6e\x20\x65\x70\x69\x63\x73\
\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x76\x61\x72\x69\x61\x62\x6c\
\x65\x2c\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\x20\x20\
\x20\x3c\x6c\x69\x3e\x73\x61\x76\x65\x20\x74\x68\x65\x20\x72\x61\
\x77\x20\x64\x61\x74\x61\x20\x74\x6f\x20\x68\x64\x66\x35\x2c\x0a\
\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\x20\x20\x20\x3c\x6c\
\x69\x3e\x6f\x70\x65\x6e\x73\x20\x61\x20\x64\x69\x61\x6c\x6f\x67\
\x20\x77\x69\x6e\x64\x6f\x77\x20\x66\x6f\x72\x20\x73\x75\x62\x6d\
\x69\x73\x73\x69\x6f\x6e\x20\x74\x6f\x20\x74\x68\x65\x20\x73\x65\
\x6c\x65\x63\x74\x65\x64\x20\x65\x6c\x6f\x67\x20\x62\x6f\x6f\x6b\
\x2e\x20\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\
\x20\x3c\x2f\x75\x6c\x3e\x0a\x3c\x70\x3e\x0a\x20\x20\x3c\x66\x6f\
\x6e\x74\x20\x63\x6f\x6c\x6f\x72\x3d\x67\x72\x65\x65\x6e\x3e\x0a\
\x20\x20\x44\x61\x74\x61\x20\x63\x61\x6e\x20\x62\x65\x20\x72\x65\
\x63\x61\x6c\x6c\x65\x64\x20\x66\x72\x6f\x6d\x20\x68\x64\x66\x35\
\x20\x61\x6e\x64\x20\x72\x65\x61\x6e\x61\x6c\x79\x7a\x65\x64\x20\
\x75\x73\x69\x6e\x67\x20\x74\x68\x65\x20\x48\x44\x46\x20\x61\x6e\
\x61\x6c\x79\x73\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x61\
\x6c\x69\x74\x79\x0a\x20\x20\x6d\x61\x64\x65\x20\x61\x76\x61\x69\
\x6c\x61\x62\x6c\x65\x20\x74\x68\x72\x6f\x75\x67\x68\x20\x61\x20\
\x64\x6f\x63\x6b\x65\x64\x20\x77\x69\x64\x67\x65\x74\x20\x69\x6e\
\x20\x74\x68\x65\x20\x6d\x65\x6e\x75\x20\x62\x61\x72\x20\x28\x72\
\x69\x67\x68\x74\x20\x63\x6c\x69\x63\x6b\x20\x6f\x6e\x20\x74\x68\
\x65\x20\x6d\x65\x6e\x75\x20\x62\x61\x72\x0a\x20\x20\x61\x6e\x64\
\x20\x73\x65\x6c\x65\x63\x74\x20\x74\x68\x65\x20\x48\x44\x46\x35\
\x20\x6f\x70\x74\x69\x6f\x6e\x29\x2e\x0a\x20\x20\x3c\x2f\x66\x6f\
\x6e\x74\x3e\x0a\x20\x20\x0a\x20\x20\x3c\x68\x33\x20\x73\x74\x79\
\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x37\x62\x36\x38\x65\
\x65\x3b\x22\x3e\x45\x78\x70\x65\x72\x74\x20\x50\x61\x6e\x65\x6c\
\x3c\x2f\x68\x33\x3e\x0a\x49\x6e\x70\x75\x74\x20\x70\x61\x72\x61\
\x6d\x65\x74\x65\x72\x73\x20\x74\x6f\x20\x74\x68\x65\x20\x70\x65\
\x61\x6b\x20\x73\x65\x61\x72\x63\x68\x20\x61\x6e\x61\x6c\x79\x73\
\x69\x73\x2c\x20\x61\x73\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x65\
\x64\x20\x69\x6e\x20\x74\x69\x6e\x61\x2e\x6a\x73\x6f\x6e\x2e\x3c\
\x62\x72\x3e\x0a\x20\x20\x0a\x54\x68\x65\x20\x49\x6e\x6a\x65\x63\
\x74\x6f\x72\x20\x68\x61\x73\x20\x4e\x4f\x54\x20\x79\x65\x74\x20\
\x62\x65\x65\x6e\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\
\x20\x69\x6e\x74\x6f\x20\x74\x68\x65\x20\x61\x70\x70\x6c\x69\x63\
\x61\x74\x69\x6f\x6e\x2e\x0a\x20\x3c\x74\x61\x62\x6c\x65\x20\x77\
\x69\x64\x74\x68\x3d\x34\x30\x30\x3e\x0a\x20\x20\x20\x20\x3c\x74\
\x72\x3e\x20\x3c\x74\x64\x3e\x0a\x09\x3c\x74\x61\x62\x6c\x65\x3e\
\x0a\x09\x20\x20\x3c\x21\x2d\x2d\x63\x61\x70\x74\x69\x6f\x6e\x3e\
\x0a\x09\x20\x20\x20\x20\x3c\x68\x34\x20\x73\x74\x79\x6c\x65\x3d\
\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x34\x37\x61\x62\x3b\x22\
\x3e\x43\x79\x63\x6c\x6f\x74\x72\x6f\x6e\x3c\x2f\x68\x34\x3e\x0a\
\x09\x20\x20\x20\x20\x3c\x2f\x63\x61\x70\x74\x69\x6f\x6e\x2d\x2d\
\x3e\x0a\x20\x20\x3c\x74\x68\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\
\x3c\x74\x72\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x20\x61\
\x6c\x69\x67\x6e\x3d\x6c\x65\x66\x74\x3e\x50\x61\x72\x61\x6d\x65\
\x74\x65\x72\x3c\x2f\x74\x68\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\
\x74\x68\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x20\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\
\x30\x34\x37\x61\x62\x3b\x22\x3e\x43\x79\x63\x6c\x6f\x74\x72\x6f\
\x6e\x3c\x2f\x74\x68\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\
\x0a\x20\x20\x3c\x2f\x74\x68\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\
\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x4d\x69\x6e\x69\x6d\x75\x6d\x20\
\x50\x65\x61\x6b\x20\x48\x65\x69\x67\x68\x74\x3c\x2f\x74\x64\x3e\
\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\
\x72\x3e\x35\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\
\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x4d\x69\x6e\x69\x6d\
\x75\x6d\x20\x64\x69\x73\x74\x61\x6e\x63\x65\x20\x62\x65\x74\x77\
\x65\x65\x6e\x20\x70\x65\x61\x6b\x73\x3c\x2f\x74\x64\x3e\x20\x3c\
\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\
\x31\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x3c\x74\x72\
\x3e\x3c\x74\x64\x3e\x4d\x69\x6e\x69\x6d\x69\x6d\x20\x64\x69\x66\
\x66\x65\x72\x65\x6e\x63\x65\x20\x69\x6e\x20\x63\x6f\x72\x72\x65\
\x6c\x61\x74\x69\x6f\x6e\x20\x70\x6c\x6f\x74\x20\x3c\x62\x72\x3e\
\x62\x65\x74\x77\x65\x65\x6e\x20\x70\x65\x61\x6b\x20\x61\x6e\x64\
\x20\x32\x6e\x64\x20\x68\x69\x67\x68\x65\x73\x74\x20\x70\x65\x61\
\x6b\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\x72\x6f\x77\x73\x70\
\x61\x6e\x3d\x32\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\
\x72\x3e\x30\x2e\x30\x31\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\
\x0a\x0a\x09\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\
\x20\x20\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\x77\x69\x64\x74\
\x68\x3d\x32\x30\x3e\x20\x26\x6e\x62\x73\x70\x3b\x20\x3c\x2f\x74\
\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x64\x3e\x20\x3c\x74\
\x61\x62\x6c\x65\x3e\x0a\x09\x20\x20\x3c\x21\x2d\x2d\x63\x61\x70\
\x74\x69\x6f\x6e\x3e\x0a\x3c\x68\x34\x20\x73\x74\x79\x6c\x65\x3d\
\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x38\x62\x38\x62\x3b\x22\
\x3e\x49\x6e\x6a\x65\x63\x74\x6f\x72\x3c\x2f\x68\x34\x3e\x0a\x3c\
\x2f\x63\x61\x70\x74\x69\x6f\x6e\x2d\x2d\x3e\x0a\x20\x20\x3c\x74\
\x68\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x0a\x20\
\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x20\x61\
\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x20\x73\x74\x79\x6c\
\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x38\x62\x38\x62\
\x3b\x22\x3e\x49\x6e\x6a\x65\x63\x74\x6f\x72\x3c\x2f\x74\x68\x3e\
\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x3c\x2f\x74\
\x68\x65\x61\x64\x3e\x0a\x20\x0a\x20\x20\x20\x3c\x74\x72\x3e\x20\
\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\
\x3e\x35\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\
\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\
\x63\x65\x6e\x74\x65\x72\x3e\x31\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\
\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x20\
\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x30\x2e\x30\
\x31\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x09\x3c\x2f\x74\
\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x74\x64\
\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\
\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x3c\x62\x72\x3e\x0a\x3c\x70\
\x3e\x0a\x20\x20\x54\x68\x65\x20\x4f\x73\x63\x69\x6c\x6c\x6f\x73\
\x63\x6f\x70\x65\x20\x6f\x70\x74\x69\x6f\x6e\x20\x64\x69\x73\x61\
\x62\x6c\x65\x73\x20\x73\x65\x74\x74\x69\x6e\x67\x20\x76\x61\x6c\
\x75\x65\x73\x20\x74\x6f\x20\x65\x70\x69\x63\x73\x20\x70\x72\x6f\
\x63\x65\x73\x73\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x73\x20\x61\
\x6e\x64\x20\x69\x73\x20\x6d\x65\x61\x6e\x74\x20\x66\x6f\x72\x20\
\x74\x65\x73\x74\x69\x6e\x67\x20\x63\x6f\x64\x65\x20\x77\x69\x74\
\x68\x20\x72\x61\x77\x20\x64\x61\x74\x61\x20\x63\x6f\x6c\x6c\x65\
\x63\x74\x65\x64\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x6f\x73\
\x63\x69\x6c\x6c\x6f\x73\x63\x6f\x70\x65\x20\x61\x6e\x64\x20\x73\
\x74\x6f\x72\x65\x64\x20\x69\x6e\x20\x68\x64\x66\x35\x20\x66\x69\
\x6c\x65\x73\x3a\x20\x3c\x62\x72\x3e\x20\x20\x0a\x20\x20\x2f\x68\
\x69\x70\x61\x2f\x62\x64\x2f\x64\x61\x74\x61\x2f\x6d\x65\x61\x73\
\x75\x72\x65\x6d\x65\x6e\x74\x73\x2f\x54\x69\x6e\x61\x5f\x32\x30\
\x32\x34\x2d\x30\x39\x2d\x31\x38\x5f\x6f\x73\x63\x69\x6c\x6c\x6f\
\x73\x63\x6f\x70\x65\x2e\x68\x35\x0a\x20\x20\x20\x3c\x68\x33\x20\
\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x37\x62\
\x36\x38\x65\x65\x3b\x22\x3e\x54\x49\x4e\x41\x20\x49\x6d\x61\x67\
\x65\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x20\x3c\x74\x61\x62\x6c\x65\
\x3e\x0a\x20\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x0a\
\x20\x20\x20\x3c\x69\x6d\x67\x20\x73\x72\x63\x3d\x22\x3a\x54\x69\
\x6e\x61\x2e\x6a\x70\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x39\x30\
\x20\x68\x65\x69\x67\x68\x74\x3d\x39\x30\x2f\x3e\x20\x26\x6e\x62\
\x73\x70\x3b\x20\x3c\x2f\x74\x64\x3e\x3c\x74\x64\x3e\x0a\x20\x20\
\x20\x54\x69\x6e\x61\x20\x54\x75\x72\x6e\x65\x72\x3c\x2f\x74\x64\
\x3e\x0a\x20\x20\x20\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x3c\x70\
\x3e\x0a\x3c\x2f\x70\x3e\x0a\x20\x20\x0a\x3c\x2f\x62\x6f\x64\x79\
\x3e\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\xa7\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x33\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
\x22\x70\x61\x67\x65\x34\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\x80\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x35\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x65\x74\x63\x2e\x2e\x2e\
\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x70\x3e\x0a\
\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\xa7\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x34\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
\x22\x70\x61\x67\x65\x35\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\xa7\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x31\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
\x22\x70\x61\x67\x65\x32\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x15\xad\
\xff\
\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x01\x00\
@@ -371,320 +753,29 @@ qt_resource_data = b"\
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\xa7\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x33\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
\x22\x70\x61\x67\x65\x34\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\xa7\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x31\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
\x22\x70\x61\x67\x65\x32\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\xa7\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x34\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
\x22\x70\x61\x67\x65\x35\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x10\x3f\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x54\x69\x6d\x65\x20\x6f\x66\x20\x46\x6c\x69\x67\x68\x74\
\x20\x4d\x65\x61\x73\x75\x65\x6d\x65\x6e\x74\x20\x66\x6f\x72\x20\
\x49\x6e\x6a\x65\x63\x74\x6f\x72\x20\x61\x6e\x64\x20\x52\x69\x6e\
\x67\x20\x43\x79\x63\x6c\x6f\x74\x72\x6f\x6e\x20\x54\x75\x72\x6e\
\x20\x4e\x75\x6d\x62\x65\x72\x20\x41\x73\x63\x65\x72\x74\x61\x69\
\x6e\x6d\x65\x6e\x74\x2c\x20\x54\x49\x4e\x41\x3c\x2f\x74\x69\x74\
\x6c\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\
\x3e\x0a\x0a\x3c\x68\x35\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
\x6f\x6c\x6f\x72\x3a\x67\x72\x61\x79\x3b\x22\x3e\x4a\x75\x6e\x65\
\x20\x32\x30\x32\x34\x2c\x20\x4a\x61\x6e\x20\x43\x68\x72\x69\x6e\
\x2c\x20\x50\x69\x65\x72\x72\x65\x2d\x41\x6e\x64\x72\x26\x65\x61\
\x63\x75\x74\x65\x3b\x20\x44\x75\x70\x65\x72\x72\x65\x78\x2c\x20\
\x41\x6c\x65\x73\x73\x61\x6e\x64\x72\x6f\x20\x46\x61\x63\x63\x68\
\x65\x74\x74\x69\x2c\x20\x20\x57\x61\x6c\x64\x61\x6d\x61\x72\x20\
\x4b\x6f\x70\x72\x65\x6b\x3c\x2f\x68\x35\x3e\x0a\x3c\x68\x34\x3e\
\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x54\x3c\x2f\x73\x70\
\x61\x6e\x3e\x69\x6d\x65\x20\x6f\x66\x20\x46\x6c\x69\x67\x68\x74\
\x20\x4d\x65\x61\x73\x75\x72\x65\x6d\x65\x6e\x74\x20\x66\x6f\x72\
\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x49\x3c\x2f\x73\x70\
\x61\x6e\x3e\x6e\x6a\x65\x63\x74\x6f\x72\x20\x61\x6e\x64\x20\x52\
\x69\x6e\x67\x20\x43\x79\x63\x6c\x6f\x74\x72\x6f\x6e\x20\x54\x75\
\x72\x6e\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\
\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x4e\x3c\x2f\
\x73\x70\x61\x6e\x3e\x75\x6d\x62\x65\x72\x20\x3c\x73\x70\x61\x6e\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x72\
\x65\x64\x3b\x22\x3e\x41\x3c\x2f\x73\x70\x61\x6e\x3e\x73\x63\x65\
\x72\x74\x61\x69\x6e\x6d\x65\x6e\x74\x2c\x20\x3c\x73\x70\x61\x6e\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x72\
\x65\x64\x3b\x22\x3e\x54\x49\x4e\x41\x3c\x2f\x73\x70\x61\x6e\x3e\
\x3c\x2f\x68\x34\x3e\x0a\x3c\x68\x32\x20\x73\x74\x79\x6c\x65\x3d\
\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\x3e\x41\x62\
\x6f\x75\x74\x3c\x2f\x68\x32\x3e\x0a\x0a\x0a\x3c\x70\x3e\x54\x68\
\x65\x20\x54\x49\x4e\x41\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\
\x6f\x6e\x20\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x73\x20\x74\x68\
\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x74\x75\x72\x6e\
\x73\x20\x69\x6e\x20\x61\x20\x63\x79\x63\x6c\x6f\x74\x72\x6f\x6e\
\x0a\x66\x72\x6f\x6d\x20\x61\x20\x54\x69\x6d\x65\x20\x6f\x66\x20\
\x46\x6c\x69\x67\x68\x74\x20\x28\x54\x4f\x46\x29\x20\x6d\x65\x61\
\x73\x75\x72\x65\x6d\x65\x6e\x74\x20\x74\x65\x63\x68\x6e\x69\x71\
\x75\x65\x20\x61\x6e\x64\x20\x61\x20\x63\x72\x6f\x73\x73\x2d\x63\
\x6f\x72\x72\x65\x6c\x61\x74\x69\x6f\x6e\x0a\x6f\x66\x20\x66\x61\
\x73\x74\x20\x73\x61\x6d\x70\x6c\x65\x64\x20\x64\x61\x74\x61\x20\
\x66\x72\x6f\x6d\x20\x63\x61\x70\x61\x63\x69\x74\x69\x76\x65\x20\
\x73\x65\x6e\x73\x6f\x72\x73\x20\x6c\x6f\x63\x61\x74\x65\x64\x20\
\x61\x74\x20\x74\x68\x65\x20\x65\x6e\x74\x72\x61\x6e\x63\x65\x20\
\x61\x6e\x64\x20\x65\x78\x69\x74\x0a\x6f\x66\x20\x74\x68\x65\x20\
\x63\x79\x63\x6f\x6c\x6f\x74\x72\x6f\x6e\x2e\x20\x54\x68\x69\x73\
\x20\x69\x73\x20\x62\x61\x73\x65\x64\x20\x6f\x6e\x20\x61\x20\x70\
\x79\x74\x68\x6f\x6e\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\
\x74\x69\x6f\x6e\x20\x6f\x66\x20\x61\x20\x4c\x61\x62\x56\x49\x45\
\x57\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x64\x65\
\x76\x65\x6c\x6f\x70\x65\x64\x20\x62\x79\x0a\x50\x69\x65\x72\x72\
\x65\x2d\x41\x6e\x64\x72\x26\x65\x61\x63\x75\x74\x65\x3b\x20\x44\
\x75\x70\x65\x72\x72\x65\x78\x3a\x20\x20\x3c\x62\x72\x3e\x0a\x50\
\x2e\x2d\x41\x2e\x20\x44\x75\x70\x65\x72\x72\x65\x78\x20\x61\x6e\
\x64\x20\x41\x2e\x20\x46\x61\x63\x63\x68\x65\x74\x74\x69\x2c\x20\
\x0a\x4e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x54\x75\x72\x6e\x20\
\x4d\x65\x61\x73\x75\x72\x65\x6d\x65\x6e\x74\x73\x20\x6f\x6e\x20\
\x74\x68\x65\x20\x48\x49\x50\x41\x20\x43\x79\x63\x6c\x6f\x74\x72\
\x6f\x6e\x73\x20\x61\x74\x20\x50\x53\x49\x2e\x3c\x62\x72\x3e\x0a\
\x64\x6f\x69\x3a\x31\x30\x2e\x31\x38\x34\x32\x39\x2f\x4a\x41\x43\
\x6f\x57\x2d\x49\x50\x41\x43\x32\x30\x31\x38\x2d\x57\x45\x50\x41\
\x4c\x30\x36\x37\x20\x0a\x0a\x20\x20\x0a\x20\x20\x3c\x2f\x70\x3e\
\x0a\x3c\x21\x2d\x2d\x61\x20\x68\x72\x65\x66\x3d\x22\x70\x61\x67\
\x65\x31\x2e\x68\x74\x6d\x6c\x22\x3e\x68\x65\x72\x65\x3c\x2f\x61\
\x3e\x3c\x2f\x70\x2d\x2d\x3e\x0a\x0a\x3c\x68\x32\x20\x73\x74\x79\
\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\
\x3e\x54\x68\x65\x20\x52\x65\x70\x6f\x73\x69\x74\x6f\x72\x79\x3c\
\x2f\x68\x32\x3e\x0a\x0a\x3c\x70\x3e\x54\x68\x65\x20\x61\x70\x70\
\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x63\x6f\x6d\x70\x72\x69\x73\
\x65\x73\x20\x74\x77\x6f\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\
\x73\x3a\x0a\x20\x20\x3c\x75\x6c\x3e\x0a\x3c\x6c\x69\x3e\x0a\x20\
\x20\x54\x68\x65\x20\x6c\x6f\x77\x2d\x6c\x65\x76\x65\x6c\x20\x41\
\x44\x43\x20\x64\x61\x74\x61\x20\x61\x63\x71\x75\x69\x73\x69\x74\
\x69\x6f\x6e\x20\x73\x79\x73\x74\x65\x6d\x2e\x3c\x62\x72\x3e\x0a\
\x20\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
\x6f\x6c\x6f\x72\x3a\x20\x67\x72\x65\x65\x6e\x3b\x22\x3e\x68\x74\
\x74\x70\x73\x3a\x2f\x2f\x67\x69\x74\x2e\x70\x73\x69\x2e\x63\x68\
\x2f\x65\x70\x69\x63\x73\x5f\x69\x6f\x63\x62\x6f\x6f\x74\x5f\x68\
\x69\x70\x61\x2f\x2e\x2e\x20\x74\x6f\x20\x62\x65\x20\x63\x6f\x6d\
\x70\x6c\x65\x74\x65\x64\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x62\x72\
\x3e\x0a\x20\x0a\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\x20\x3c\x6c\x69\
\x3e\x0a\x20\x20\x20\x20\x41\x20\x48\x69\x67\x68\x20\x4c\x65\x76\
\x65\x6c\x20\x41\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x28\
\x48\x4c\x41\x29\x20\x74\x68\x61\x74\x20\x69\x73\x20\x61\x62\x6c\
\x65\x20\x74\x6f\x20\x69\x6e\x74\x65\x72\x61\x63\x74\x20\x77\x69\
\x74\x68\x20\x74\x68\x65\x20\x49\x4f\x43\x2c\x20\x73\x74\x61\x72\
\x74\x20\x61\x20\x6c\x6f\x77\x2d\x6c\x65\x76\x65\x6c\x20\x64\x61\
\x74\x61\x20\x61\x63\x71\x75\x69\x73\x74\x69\x6f\x6e\x20\x72\x75\
\x6e\x2c\x0a\x20\x20\x20\x20\x61\x63\x71\x75\x69\x72\x65\x20\x74\
\x68\x65\x20\x72\x61\x77\x20\x64\x61\x74\x61\x2c\x20\x61\x6e\x64\
\x20\x70\x65\x72\x66\x6f\x72\x6d\x20\x74\x68\x65\x20\x6e\x75\x6d\
\x62\x65\x72\x20\x6f\x66\x20\x74\x65\x72\x6d\x73\x20\x61\x6e\x61\
\x6c\x79\x73\x69\x73\x2e\x3c\x62\x72\x3e\x0a\x20\x20\x20\x20\x3c\
\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\
\x72\x3a\x20\x67\x72\x65\x65\x6e\x3b\x22\x3e\x20\x68\x74\x74\x70\
\x73\x3a\x2f\x2f\x67\x69\x74\x6c\x61\x62\x2e\x70\x73\x69\x2e\x63\
\x68\x2f\x68\x69\x70\x61\x5f\x61\x70\x70\x73\x34\x6f\x70\x73\x2f\
\x74\x69\x6e\x61\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x62\x72\x3e\x0a\
\x20\x20\x20\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\
\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x67\x72\x61\x79\x3b\x22\x3e\x20\
\x2f\x68\x69\x70\x61\x2f\x62\x64\x2f\x61\x70\x70\x6c\x69\x63\x61\
\x74\x69\x6f\x6e\x73\x2f\x74\x69\x6e\x61\x2f\x6c\x61\x74\x65\x73\
\x74\x2f\x74\x69\x6e\x61\x2e\x73\x68\x3c\x2f\x73\x70\x61\x6e\x3e\
\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x3c\x2f\x75\x6c\x3e\
\x0a\x20\x20\x3c\x68\x32\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\x3e\x47\x55\x49\x2c\x20\
\x43\x6f\x6e\x74\x72\x6f\x6c\x20\x54\x61\x62\x3c\x2f\x68\x32\x3e\
\x0a\x20\x20\x4d\x61\x69\x6e\x20\x70\x61\x6e\x65\x6c\x20\x66\x6f\
\x72\x20\x75\x73\x65\x20\x62\x79\x20\x6f\x70\x65\x72\x61\x74\x6f\
\x72\x73\x2e\x20\x0a\x20\x20\x3c\x68\x33\x20\x73\x74\x79\x6c\x65\
\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x37\x62\x36\x38\x65\x65\x3b\
\x22\x3e\x4f\x70\x65\x72\x61\x74\x6f\x72\x20\x50\x61\x6e\x65\x6c\
\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x49\x6e\x70\x75\x74\x20\x70\x61\
\x72\x61\x6d\x65\x74\x65\x72\x73\x20\x74\x6f\x20\x61\x6e\x61\x6c\
\x79\x73\x69\x73\x20\x72\x6f\x75\x74\x69\x6e\x65\x2c\x20\x61\x73\
\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x65\x64\x20\x69\x6e\x20\x74\
\x69\x6e\x61\x2e\x6a\x73\x6f\x6e\x2e\x3c\x62\x72\x3e\x0a\x20\x20\
\x54\x68\x65\x20\x49\x6e\x6a\x65\x63\x74\x6f\x72\x20\x68\x61\x73\
\x20\x4e\x4f\x54\x20\x79\x65\x74\x20\x62\x65\x65\x6e\x20\x69\x6d\
\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x20\x69\x6e\x74\x6f\x20\x74\
\x68\x65\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2e\x0a\
\x20\x20\x3c\x74\x61\x62\x6c\x65\x20\x77\x69\x64\x74\x68\x3d\x34\
\x30\x30\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x20\x3c\x74\x64\
\x3e\x0a\x09\x3c\x74\x61\x62\x6c\x65\x3e\x0a\x09\x20\x20\x3c\x63\
\x61\x70\x74\x69\x6f\x6e\x3e\x0a\x09\x20\x20\x20\x20\x3c\x68\x34\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\
\x30\x34\x37\x61\x62\x3b\x22\x3e\x43\x79\x63\x6c\x6f\x74\x72\x6f\
\x6e\x3c\x2f\x68\x34\x3e\x0a\x09\x20\x20\x20\x20\x3c\x2f\x63\x61\
\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x3c\x74\x68\x65\x61\x64\x3e\
\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x0a\x20\x20\x20\x20\x20\x20\
\x3c\x74\x68\x20\x61\x6c\x69\x67\x6e\x3d\x6c\x65\x66\x74\x3e\x50\
\x61\x72\x61\x6d\x65\x74\x65\x72\x3c\x2f\x74\x68\x3e\x0a\x20\x20\
\x20\x20\x20\x20\x3c\x74\x68\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\
\x6e\x74\x65\x72\x3e\x56\x61\x6c\x75\x65\x3c\x2f\x74\x68\x3e\x0a\
\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x3c\x2f\x74\x68\
\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\
\x3e\x48\x61\x72\x6d\x6f\x6e\x69\x63\x20\x4e\x6f\x2e\x3c\x2f\x74\
\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\
\x74\x65\x72\x3e\x36\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\
\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x64\x54\x20\x43\
\x61\x62\x6c\x65\x20\x28\x6e\x73\x29\x3c\x2f\x74\x64\x3e\x20\x3c\
\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\
\x34\x34\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\
\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x64\x4e\x20\x50\x69\x63\x6b\
\x75\x70\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\
\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x2d\x31\x3c\x2f\x74\x64\x3e\
\x3c\x2f\x74\x72\x3e\x0a\x09\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\
\x20\x20\x20\x20\x20\x20\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\
\x77\x69\x64\x74\x68\x3d\x32\x30\x3e\x20\x26\x6e\x62\x73\x70\x3b\
\x20\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x64\
\x3e\x20\x3c\x74\x61\x62\x6c\x65\x3e\x0a\x09\x20\x20\x3c\x63\x61\
\x70\x74\x69\x6f\x6e\x3e\x0a\x3c\x68\x34\x20\x73\x74\x79\x6c\x65\
\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x38\x62\x38\x62\x3b\
\x22\x3e\x49\x6e\x6a\x65\x63\x74\x6f\x72\x3c\x2f\x68\x34\x3e\x0a\
\x3c\x2f\x63\x61\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x3c\x74\x68\
\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x0a\x20\x20\
\x20\x20\x20\x20\x3c\x74\x68\x20\x61\x6c\x69\x67\x6e\x3d\x6c\x65\
\x66\x74\x3e\x50\x61\x72\x61\x6d\x65\x74\x65\x72\x3c\x2f\x74\x68\
\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x20\x61\x6c\x69\x67\
\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x56\x61\x6c\x75\x65\x3c\x2f\
\x74\x68\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\
\x3c\x2f\x74\x68\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\
\x3e\x3c\x74\x64\x3e\x48\x61\x72\x6d\x6f\x6e\x69\x63\x20\x4e\x6f\
\x2e\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\
\x3d\x63\x65\x6e\x74\x65\x72\x3e\x31\x30\x3c\x2f\x74\x64\x3e\x3c\
\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\
\x3e\x64\x54\x20\x43\x61\x62\x6c\x65\x20\x28\x6e\x73\x29\x3c\x2f\
\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\
\x6e\x74\x65\x72\x3e\x36\x2e\x39\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\
\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x64\
\x4e\x20\x50\x69\x63\x6b\x75\x70\x3c\x2f\x74\x64\x3e\x20\x3c\x74\
\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x34\
\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\
\x74\x72\x3e\x3c\x74\x64\x3e\x4d\x6f\x64\x2e\x20\x46\x72\x65\x71\
\x2e\x20\x28\x47\x48\x7a\x29\x20\x26\x6e\x62\x73\x70\x3b\x3c\x2f\
\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\
\x6e\x74\x65\x72\x3e\x35\x30\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\
\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x44\
\x75\x74\x79\x20\x43\x79\x63\x6c\x65\x20\x28\x25\x29\x3c\x2f\x74\
\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\
\x74\x65\x72\x3e\x31\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\
\x09\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\
\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\
\x20\x20\x20\x20\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x3c\
\x70\x3e\x0a\x57\x69\x74\x68\x69\x6e\x20\x74\x68\x65\x20\x50\x72\
\x6f\x63\x65\x64\x75\x72\x65\x20\x67\x72\x6f\x75\x70\x2c\x20\x74\
\x68\x65\x20\x53\x74\x61\x72\x74\x20\x62\x75\x74\x74\x6f\x6e\x6e\
\x20\x65\x78\x65\x63\x75\x74\x65\x73\x20\x74\x68\x65\x20\x61\x6e\
\x61\x6c\x79\x73\x69\x73\x20\x70\x72\x6f\x67\x72\x61\x6d\x0a\x77\
\x68\x69\x63\x68\x20\x75\x73\x75\x61\x6c\x6c\x79\x20\x74\x61\x6b\
\x65\x73\x20\x6c\x65\x73\x73\x20\x74\x68\x61\x6e\x20\x31\x30\x20\
\x73\x65\x63\x6f\x6e\x64\x73\x20\x74\x6f\x20\x63\x6f\x6d\x70\x6c\
\x65\x74\x65\x2e\x20\x33\x27\x30\x31\x30\x27\x35\x36\x30\x20\x73\
\x61\x6d\x70\x6c\x65\x73\x20\x61\x72\x65\x0a\x63\x6f\x6c\x6c\x65\
\x63\x74\x65\x64\x20\x70\x65\x72\x20\x63\x68\x61\x6e\x6e\x65\x6c\
\x20\x28\x65\x6e\x74\x72\x79\x20\x77\x66\x2f\x65\x78\x69\x74\x20\
\x77\x66\x29\x2e\x20\x0a\x3c\x70\x3e\x0a\x20\x20\x54\x68\x65\x20\
\x53\x61\x76\x65\x41\x6c\x6c\x20\x62\x75\x74\x74\x6f\x6e\x3a\x0a\
\x20\x20\x3c\x75\x6c\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x3e\x77\
\x72\x69\x74\x65\x73\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\
\x20\x6f\x66\x20\x74\x75\x72\x6e\x73\x20\x6d\x65\x61\x73\x75\x72\
\x65\x64\x20\x69\x6e\x74\x6f\x20\x61\x6e\x20\x65\x70\x69\x63\x73\
\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x76\x61\x72\x69\x61\x62\x6c\
\x65\x2c\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\x20\x20\
\x20\x3c\x6c\x69\x3e\x73\x61\x76\x65\x20\x74\x68\x65\x20\x72\x61\
\x77\x20\x64\x61\x74\x61\x20\x74\x6f\x20\x68\x64\x66\x35\x2c\x0a\
\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\x20\x20\x20\x3c\x6c\
\x69\x3e\x6f\x70\x65\x6e\x73\x20\x61\x20\x64\x69\x61\x6c\x6f\x67\
\x20\x77\x69\x6e\x64\x6f\x77\x20\x66\x6f\x72\x20\x73\x75\x62\x6d\
\x69\x73\x73\x69\x6f\x6e\x20\x74\x6f\x20\x74\x68\x65\x20\x73\x65\
\x6c\x65\x63\x74\x65\x64\x20\x65\x6c\x6f\x67\x20\x62\x6f\x6f\x6b\
\x2e\x20\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\
\x20\x3c\x2f\x75\x6c\x3e\x0a\x3c\x70\x3e\x0a\x20\x20\x44\x61\x74\
\x61\x20\x63\x61\x6e\x20\x62\x65\x20\x72\x65\x63\x61\x6c\x6c\x65\
\x64\x20\x66\x72\x6f\x6d\x20\x68\x64\x66\x35\x20\x61\x6e\x64\x20\
\x72\x65\x61\x6e\x61\x6c\x79\x7a\x65\x64\x20\x75\x73\x69\x6e\x67\
\x20\x74\x68\x65\x20\x48\x44\x46\x20\x61\x6e\x61\x6c\x79\x73\x69\
\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x61\x6c\x69\x74\x79\x0a\
\x20\x20\x6d\x61\x64\x65\x20\x61\x76\x61\x69\x6c\x61\x62\x6c\x65\
\x20\x74\x68\x72\x6f\x75\x67\x68\x20\x61\x20\x64\x6f\x63\x6b\x65\
\x64\x20\x77\x69\x64\x67\x65\x74\x20\x69\x6e\x20\x74\x68\x65\x20\
\x6d\x65\x6e\x75\x20\x62\x61\x72\x20\x28\x72\x69\x67\x68\x74\x20\
\x63\x6c\x69\x63\x6b\x20\x6f\x6e\x20\x74\x68\x65\x20\x6d\x65\x6e\
\x75\x20\x62\x61\x72\x0a\x20\x20\x61\x6e\x64\x20\x73\x65\x6c\x65\
\x63\x74\x20\x74\x68\x65\x20\x48\x44\x46\x35\x20\x6f\x70\x74\x69\
\x6f\x6e\x29\x2e\x0a\x20\x20\x0a\x20\x20\x3c\x68\x33\x20\x73\x74\
\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x37\x62\x36\x38\
\x65\x65\x3b\x22\x3e\x45\x78\x70\x65\x72\x74\x20\x50\x61\x6e\x65\
\x6c\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x54\x68\x65\x20\x4f\x73\x63\
\x69\x6c\x6c\x6f\x73\x63\x6f\x70\x65\x20\x6f\x70\x74\x69\x6f\x6e\
\x20\x64\x69\x73\x61\x62\x6c\x65\x73\x20\x73\x65\x74\x74\x69\x6e\
\x67\x20\x76\x61\x6c\x75\x65\x73\x20\x74\x6f\x20\x65\x70\x69\x63\
\x73\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x76\x61\x72\x69\x61\x62\
\x6c\x65\x73\x20\x61\x6e\x64\x20\x69\x73\x20\x6d\x65\x61\x6e\x74\
\x20\x66\x6f\x72\x20\x74\x65\x73\x74\x69\x6e\x67\x20\x63\x6f\x64\
\x65\x20\x77\x69\x74\x68\x20\x72\x61\x77\x20\x64\x61\x74\x61\x20\
\x63\x6f\x6c\x6c\x65\x63\x74\x65\x64\x20\x66\x72\x6f\x6d\x20\x74\
\x68\x65\x20\x6f\x73\x63\x69\x6c\x6c\x6f\x73\x63\x6f\x70\x65\x20\
\x61\x6e\x64\x20\x73\x74\x6f\x72\x65\x64\x20\x69\x6e\x20\x68\x64\
\x66\x35\x20\x66\x69\x6c\x65\x73\x3a\x20\x3c\x62\x72\x3e\x20\x20\
\x0a\x20\x20\x2f\x68\x69\x70\x61\x2f\x62\x64\x2f\x64\x61\x74\x61\
\x2f\x6d\x65\x61\x73\x75\x72\x65\x6d\x65\x6e\x74\x73\x2f\x54\x69\
\x6e\x61\x5f\x32\x30\x32\x34\x2d\x30\x39\x2d\x31\x38\x5f\x6f\x73\
\x63\x69\x6c\x6c\x6f\x73\x63\x6f\x70\x65\x2e\x68\x35\x0a\x20\x20\
\x20\x3c\x68\x33\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\
\x72\x3a\x23\x37\x62\x36\x38\x65\x65\x3b\x22\x3e\x54\x49\x4e\x41\
\x20\x49\x6d\x61\x67\x65\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x20\x3c\
\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x3c\x74\x72\x3e\
\x3c\x74\x64\x3e\x0a\x20\x20\x20\x3c\x69\x6d\x67\x20\x73\x72\x63\
\x3d\x22\x3a\x54\x69\x6e\x61\x2e\x6a\x70\x67\x22\x20\x77\x69\x64\
\x74\x68\x3d\x39\x30\x20\x68\x65\x69\x67\x68\x74\x3d\x39\x30\x2f\
\x3e\x20\x26\x6e\x62\x73\x70\x3b\x20\x3c\x2f\x74\x64\x3e\x3c\x74\
\x64\x3e\x0a\x20\x20\x20\x54\x69\x6e\x61\x20\x54\x75\x72\x6e\x65\
\x72\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x3c\x2f\x74\x61\x62\x6c\
\x65\x3e\x0a\x3c\x70\x3e\x0a\x3c\x2f\x70\x3e\x0a\x20\x20\x0a\x3c\
\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\x80\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x35\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x65\x74\x63\x2e\x2e\x2e\
\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x70\x3e\x0a\
\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\
"
qt_resource_name = b"\
\x00\x0a\
\x0c\xba\xf2\x7c\
\x00\x69\
\x00\x6e\x00\x64\x00\x65\x00\x78\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x6a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x33\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x8a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x35\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x7a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x4a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x31\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x08\
\x00\x44\x5a\x07\
\x00\x54\
@@ -693,60 +784,40 @@ qt_resource_name = b"\
\x08\x5a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x6a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x33\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x4a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x31\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x7a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x0c\xba\xf2\x7c\
\x00\x69\
\x00\x6e\x00\x64\x00\x65\x00\x78\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x8a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x35\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
"
qt_resource_struct_v1 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x01\
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x17\x33\
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x16\x88\
\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x2c\xe4\
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x14\xae\
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x15\xdd\
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x15\x59\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x17\x07\
\x00\x00\x00\x16\x00\x00\x00\x00\x00\x01\x00\x00\x15\xb1\
\x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x16\x5c\
\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x17\xb2\
\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x28\xa0\
\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x18\x5d\
"
qt_resource_struct_v2 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x17\x33\
\x00\x00\x01\x94\x3a\xf8\x11\xe0\
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x16\x88\
\x00\x00\x01\x94\x3a\xf8\x11\xe8\
\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x2c\xe4\
\x00\x00\x01\x94\x3a\xf8\x11\xe9\
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x14\xae\
\x00\x00\x01\x94\x3a\xf8\x11\xeb\
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x15\xdd\
\x00\x00\x01\x94\x3a\xf8\x11\xec\
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x15\x59\
\x00\x00\x01\x94\x3a\xf8\x11\xee\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x90\x07\xcd\xf3\x00\
\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x17\x07\
\x00\x00\x01\x90\x02\x81\x81\x00\
\x00\x00\x00\x16\x00\x00\x00\x00\x00\x01\x00\x00\x15\xb1\
\x00\x00\x01\x90\x02\x81\x81\x00\
\x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x16\x5c\
\x00\x00\x01\x90\x02\x81\x81\x00\
\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x17\xb2\
\x00\x00\x01\x90\x02\x81\x81\x00\
\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x28\xa0\
\x00\x00\x01\x90\x02\x81\x81\x00\
\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x18\x5d\
\x00\x00\x01\x93\x9c\x62\xf4\xe6\
\x00\x00\x01\x94\x41\x4a\x3a\x25\
"
qt_version = [int(v) for v in QtCore.qVersion().split('.')]
if qt_version < [5, 8, 0]:
qt_version = QtCore.qVersion().split('.')
if qt_version < ['5', '8', '0']:
rcc_version = 1
qt_resource_struct = qt_resource_struct_v1
else:

View File

@@ -2,13 +2,395 @@
# Resource object code
#
# Created by: The Resource Compiler for PyQt5 (Qt v5.15.3)
# Created by: The Resource Compiler for PyQt5 (Qt v5.9.7)
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore
qt_resource_data = b"\
\x00\x00\x14\xaa\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x54\x69\x6d\x65\x20\x6f\x66\x20\x46\x6c\x69\x67\x68\x74\
\x20\x4d\x65\x61\x73\x75\x65\x6d\x65\x6e\x74\x20\x66\x6f\x72\x20\
\x49\x6e\x6a\x65\x63\x74\x6f\x72\x20\x61\x6e\x64\x20\x52\x69\x6e\
\x67\x20\x43\x79\x63\x6c\x6f\x74\x72\x6f\x6e\x20\x54\x75\x72\x6e\
\x20\x4e\x75\x6d\x62\x65\x72\x20\x41\x73\x63\x65\x72\x74\x61\x69\
\x6e\x6d\x65\x6e\x74\x2c\x20\x54\x49\x4e\x41\x3c\x2f\x74\x69\x74\
\x6c\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\
\x3e\x0a\x0a\x3c\x68\x35\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
\x6f\x6c\x6f\x72\x3a\x67\x72\x61\x79\x3b\x22\x3e\x4a\x75\x6e\x65\
\x20\x32\x30\x32\x34\x2c\x20\x4a\x61\x6e\x20\x43\x68\x72\x69\x6e\
\x2c\x20\x50\x69\x65\x72\x72\x65\x2d\x41\x6e\x64\x72\x26\x65\x61\
\x63\x75\x74\x65\x3b\x20\x44\x75\x70\x65\x72\x72\x65\x78\x2c\x20\
\x41\x6c\x65\x73\x73\x61\x6e\x64\x72\x6f\x20\x46\x61\x63\x63\x68\
\x65\x74\x74\x69\x2c\x20\x20\x57\x61\x6c\x64\x61\x6d\x61\x72\x20\
\x4b\x6f\x70\x72\x65\x6b\x3c\x2f\x68\x35\x3e\x0a\x3c\x68\x34\x3e\
\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x54\x3c\x2f\x73\x70\
\x61\x6e\x3e\x69\x6d\x65\x20\x6f\x66\x20\x46\x6c\x69\x67\x68\x74\
\x20\x4d\x65\x61\x73\x75\x72\x65\x6d\x65\x6e\x74\x20\x66\x6f\x72\
\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x49\x3c\x2f\x73\x70\
\x61\x6e\x3e\x6e\x6a\x65\x63\x74\x6f\x72\x20\x61\x6e\x64\x20\x52\
\x69\x6e\x67\x20\x43\x79\x63\x6c\x6f\x74\x72\x6f\x6e\x20\x54\x75\
\x72\x6e\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\
\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x4e\x3c\x2f\
\x73\x70\x61\x6e\x3e\x75\x6d\x62\x65\x72\x20\x3c\x73\x70\x61\x6e\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x72\
\x65\x64\x3b\x22\x3e\x41\x3c\x2f\x73\x70\x61\x6e\x3e\x73\x63\x65\
\x72\x74\x61\x69\x6e\x6d\x65\x6e\x74\x2c\x20\x3c\x73\x70\x61\x6e\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x72\
\x65\x64\x3b\x22\x3e\x54\x49\x4e\x41\x3c\x2f\x73\x70\x61\x6e\x3e\
\x3c\x2f\x68\x34\x3e\x0a\x3c\x68\x32\x20\x73\x74\x79\x6c\x65\x3d\
\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\x3e\x41\x62\
\x6f\x75\x74\x3c\x2f\x68\x32\x3e\x0a\x0a\x0a\x3c\x70\x3e\x54\x68\
\x65\x20\x54\x49\x4e\x41\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\
\x6f\x6e\x20\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x73\x20\x74\x68\
\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x74\x75\x72\x6e\
\x73\x20\x69\x6e\x20\x61\x20\x63\x79\x63\x6c\x6f\x74\x72\x6f\x6e\
\x0a\x66\x72\x6f\x6d\x20\x61\x20\x54\x69\x6d\x65\x20\x6f\x66\x20\
\x46\x6c\x69\x67\x68\x74\x20\x28\x54\x4f\x46\x29\x20\x6d\x65\x61\
\x73\x75\x72\x65\x6d\x65\x6e\x74\x20\x74\x65\x63\x68\x6e\x69\x71\
\x75\x65\x20\x61\x6e\x64\x20\x61\x20\x63\x72\x6f\x73\x73\x2d\x63\
\x6f\x72\x72\x65\x6c\x61\x74\x69\x6f\x6e\x0a\x6f\x66\x20\x66\x61\
\x73\x74\x20\x73\x61\x6d\x70\x6c\x65\x64\x20\x64\x61\x74\x61\x20\
\x66\x72\x6f\x6d\x20\x63\x61\x70\x61\x63\x69\x74\x69\x76\x65\x20\
\x73\x65\x6e\x73\x6f\x72\x73\x20\x6c\x6f\x63\x61\x74\x65\x64\x20\
\x61\x74\x20\x74\x68\x65\x20\x65\x6e\x74\x72\x61\x6e\x63\x65\x20\
\x61\x6e\x64\x20\x65\x78\x69\x74\x0a\x6f\x66\x20\x74\x68\x65\x20\
\x63\x79\x63\x6f\x6c\x6f\x74\x72\x6f\x6e\x2e\x20\x54\x68\x69\x73\
\x20\x69\x73\x20\x62\x61\x73\x65\x64\x20\x6f\x6e\x20\x61\x20\x70\
\x79\x74\x68\x6f\x6e\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\
\x74\x69\x6f\x6e\x20\x6f\x66\x20\x61\x20\x4c\x61\x62\x56\x49\x45\
\x57\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x64\x65\
\x76\x65\x6c\x6f\x70\x65\x64\x20\x62\x79\x0a\x50\x69\x65\x72\x72\
\x65\x2d\x41\x6e\x64\x72\x26\x65\x61\x63\x75\x74\x65\x3b\x20\x44\
\x75\x70\x65\x72\x72\x65\x78\x3a\x20\x20\x3c\x62\x72\x3e\x0a\x50\
\x2e\x2d\x41\x2e\x20\x44\x75\x70\x65\x72\x72\x65\x78\x20\x61\x6e\
\x64\x20\x41\x2e\x20\x46\x61\x63\x63\x68\x65\x74\x74\x69\x2c\x20\
\x0a\x4e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x54\x75\x72\x6e\x20\
\x4d\x65\x61\x73\x75\x72\x65\x6d\x65\x6e\x74\x73\x20\x6f\x6e\x20\
\x74\x68\x65\x20\x48\x49\x50\x41\x20\x43\x79\x63\x6c\x6f\x74\x72\
\x6f\x6e\x73\x20\x61\x74\x20\x50\x53\x49\x2e\x3c\x62\x72\x3e\x0a\
\x64\x6f\x69\x3a\x31\x30\x2e\x31\x38\x34\x32\x39\x2f\x4a\x41\x43\
\x6f\x57\x2d\x49\x50\x41\x43\x32\x30\x31\x38\x2d\x57\x45\x50\x41\
\x4c\x30\x36\x37\x20\x0a\x0a\x20\x20\x0a\x20\x20\x3c\x2f\x70\x3e\
\x0a\x3c\x21\x2d\x2d\x61\x20\x68\x72\x65\x66\x3d\x22\x70\x61\x67\
\x65\x31\x2e\x68\x74\x6d\x6c\x22\x3e\x68\x65\x72\x65\x3c\x2f\x61\
\x3e\x3c\x2f\x70\x2d\x2d\x3e\x0a\x0a\x3c\x68\x32\x20\x73\x74\x79\
\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\
\x3e\x54\x68\x65\x20\x52\x65\x70\x6f\x73\x69\x74\x6f\x72\x79\x3c\
\x2f\x68\x32\x3e\x0a\x0a\x3c\x70\x3e\x54\x68\x65\x20\x61\x70\x70\
\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x63\x6f\x6d\x70\x72\x69\x73\
\x65\x73\x20\x74\x77\x6f\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\
\x73\x3a\x0a\x20\x20\x3c\x75\x6c\x3e\x0a\x3c\x6c\x69\x3e\x0a\x20\
\x20\x54\x68\x65\x20\x6c\x6f\x77\x2d\x6c\x65\x76\x65\x6c\x20\x41\
\x44\x43\x20\x64\x61\x74\x61\x20\x61\x63\x71\x75\x69\x73\x69\x74\
\x69\x6f\x6e\x20\x73\x79\x73\x74\x65\x6d\x2e\x3c\x62\x72\x3e\x0a\
\x20\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
\x6f\x6c\x6f\x72\x3a\x20\x67\x72\x65\x65\x6e\x3b\x22\x3e\x68\x74\
\x74\x70\x73\x3a\x2f\x2f\x67\x69\x74\x2e\x70\x73\x69\x2e\x63\x68\
\x2f\x65\x70\x69\x63\x73\x5f\x69\x6f\x63\x62\x6f\x6f\x74\x5f\x68\
\x69\x70\x61\x2f\x2e\x2e\x20\x74\x6f\x20\x62\x65\x20\x63\x6f\x6d\
\x70\x6c\x65\x74\x65\x64\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x62\x72\
\x3e\x0a\x20\x0a\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\x20\x3c\x6c\x69\
\x3e\x0a\x20\x20\x20\x20\x41\x20\x48\x69\x67\x68\x20\x4c\x65\x76\
\x65\x6c\x20\x41\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x28\
\x48\x4c\x41\x29\x20\x74\x68\x61\x74\x20\x69\x73\x20\x61\x62\x6c\
\x65\x20\x74\x6f\x20\x69\x6e\x74\x65\x72\x61\x63\x74\x20\x77\x69\
\x74\x68\x20\x74\x68\x65\x20\x49\x4f\x43\x2c\x20\x73\x74\x61\x72\
\x74\x20\x61\x20\x6c\x6f\x77\x2d\x6c\x65\x76\x65\x6c\x20\x64\x61\
\x74\x61\x20\x61\x63\x71\x75\x69\x73\x74\x69\x6f\x6e\x20\x72\x75\
\x6e\x2c\x0a\x20\x20\x20\x20\x61\x63\x71\x75\x69\x72\x65\x20\x74\
\x68\x65\x20\x72\x61\x77\x20\x64\x61\x74\x61\x2c\x20\x61\x6e\x64\
\x20\x70\x65\x72\x66\x6f\x72\x6d\x20\x74\x68\x65\x20\x6e\x75\x6d\
\x62\x65\x72\x20\x6f\x66\x20\x74\x65\x72\x6d\x73\x20\x61\x6e\x61\
\x6c\x79\x73\x69\x73\x2e\x3c\x62\x72\x3e\x0a\x20\x20\x20\x20\x3c\
\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\
\x72\x3a\x20\x67\x72\x65\x65\x6e\x3b\x22\x3e\x20\x68\x74\x74\x70\
\x73\x3a\x2f\x2f\x67\x69\x74\x6c\x61\x62\x2e\x70\x73\x69\x2e\x63\
\x68\x2f\x68\x69\x70\x61\x5f\x61\x70\x70\x73\x34\x6f\x70\x73\x2f\
\x74\x69\x6e\x61\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x62\x72\x3e\x0a\
\x20\x20\x20\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\
\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x67\x72\x61\x79\x3b\x22\x3e\x20\
\x2f\x68\x69\x70\x61\x2f\x62\x64\x2f\x61\x70\x70\x6c\x69\x63\x61\
\x74\x69\x6f\x6e\x73\x2f\x74\x69\x6e\x61\x2f\x6c\x61\x74\x65\x73\
\x74\x2f\x74\x69\x6e\x61\x2e\x73\x68\x3c\x2f\x73\x70\x61\x6e\x3e\
\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x3c\x2f\x75\x6c\x3e\
\x0a\x20\x20\x3c\x68\x32\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\x3e\x47\x55\x49\x2c\x20\
\x43\x6f\x6e\x74\x72\x6f\x6c\x20\x54\x61\x62\x3c\x2f\x68\x32\x3e\
\x0a\x20\x20\x4d\x61\x69\x6e\x20\x70\x61\x6e\x65\x6c\x20\x66\x6f\
\x72\x20\x75\x73\x65\x20\x62\x79\x20\x6f\x70\x65\x72\x61\x74\x6f\
\x72\x73\x2e\x20\x0a\x20\x20\x3c\x68\x33\x20\x73\x74\x79\x6c\x65\
\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x37\x62\x36\x38\x65\x65\x3b\
\x22\x3e\x4f\x70\x65\x72\x61\x74\x6f\x72\x20\x50\x61\x6e\x65\x6c\
\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x49\x6e\x70\x75\x74\x20\x70\x61\
\x72\x61\x6d\x65\x74\x65\x72\x73\x20\x74\x6f\x20\x61\x6e\x61\x6c\
\x79\x73\x69\x73\x20\x72\x6f\x75\x74\x69\x6e\x65\x2c\x20\x61\x73\
\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x65\x64\x20\x69\x6e\x20\x74\
\x69\x6e\x61\x2e\x6a\x73\x6f\x6e\x2e\x3c\x62\x72\x3e\x0a\x20\x20\
\x54\x68\x65\x20\x49\x6e\x6a\x65\x63\x74\x6f\x72\x20\x68\x61\x73\
\x20\x4e\x4f\x54\x20\x79\x65\x74\x20\x62\x65\x65\x6e\x20\x69\x6d\
\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x20\x69\x6e\x74\x6f\x20\x74\
\x68\x65\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2e\x0a\
\x20\x20\x3c\x74\x61\x62\x6c\x65\x20\x77\x69\x64\x74\x68\x3d\x34\
\x30\x30\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x20\x3c\x74\x64\
\x3e\x0a\x09\x3c\x74\x61\x62\x6c\x65\x3e\x0a\x09\x20\x20\x3c\x63\
\x61\x70\x74\x69\x6f\x6e\x3e\x0a\x09\x20\x20\x20\x20\x3c\x68\x34\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\
\x30\x34\x37\x61\x62\x3b\x22\x3e\x43\x79\x63\x6c\x6f\x74\x72\x6f\
\x6e\x3c\x2f\x68\x34\x3e\x0a\x09\x20\x20\x20\x20\x3c\x2f\x63\x61\
\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x3c\x74\x68\x65\x61\x64\x3e\
\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x0a\x20\x20\x20\x20\x20\x20\
\x3c\x74\x68\x20\x61\x6c\x69\x67\x6e\x3d\x6c\x65\x66\x74\x3e\x50\
\x61\x72\x61\x6d\x65\x74\x65\x72\x3c\x2f\x74\x68\x3e\x0a\x20\x20\
\x20\x20\x20\x20\x3c\x74\x68\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\
\x6e\x74\x65\x72\x3e\x56\x61\x6c\x75\x65\x3c\x2f\x74\x68\x3e\x0a\
\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x3c\x2f\x74\x68\
\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\
\x3e\x48\x61\x72\x6d\x6f\x6e\x69\x63\x20\x4e\x6f\x2e\x3c\x2f\x74\
\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\
\x74\x65\x72\x3e\x36\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\
\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x64\x54\x20\x43\
\x61\x62\x6c\x65\x20\x28\x6e\x73\x29\x3c\x2f\x74\x64\x3e\x20\x3c\
\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\
\x34\x34\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\
\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x64\x4e\x20\x50\x69\x63\x6b\
\x75\x70\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\
\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x2d\x31\x3c\x2f\x74\x64\x3e\
\x3c\x2f\x74\x72\x3e\x0a\x09\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\
\x20\x20\x20\x20\x20\x20\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\
\x77\x69\x64\x74\x68\x3d\x32\x30\x3e\x20\x26\x6e\x62\x73\x70\x3b\
\x20\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x64\
\x3e\x20\x3c\x74\x61\x62\x6c\x65\x3e\x0a\x09\x20\x20\x3c\x63\x61\
\x70\x74\x69\x6f\x6e\x3e\x0a\x3c\x68\x34\x20\x73\x74\x79\x6c\x65\
\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x38\x62\x38\x62\x3b\
\x22\x3e\x49\x6e\x6a\x65\x63\x74\x6f\x72\x3c\x2f\x68\x34\x3e\x0a\
\x3c\x2f\x63\x61\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x3c\x74\x68\
\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x0a\x20\x20\
\x20\x20\x20\x20\x3c\x74\x68\x20\x61\x6c\x69\x67\x6e\x3d\x6c\x65\
\x66\x74\x3e\x50\x61\x72\x61\x6d\x65\x74\x65\x72\x3c\x2f\x74\x68\
\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x20\x61\x6c\x69\x67\
\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x56\x61\x6c\x75\x65\x3c\x2f\
\x74\x68\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\
\x3c\x2f\x74\x68\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\
\x3e\x3c\x74\x64\x3e\x48\x61\x72\x6d\x6f\x6e\x69\x63\x20\x4e\x6f\
\x2e\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\
\x3d\x63\x65\x6e\x74\x65\x72\x3e\x31\x30\x3c\x2f\x74\x64\x3e\x3c\
\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\
\x3e\x64\x54\x20\x43\x61\x62\x6c\x65\x20\x28\x6e\x73\x29\x3c\x2f\
\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\
\x6e\x74\x65\x72\x3e\x36\x2e\x39\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\
\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x64\
\x4e\x20\x50\x69\x63\x6b\x75\x70\x3c\x2f\x74\x64\x3e\x20\x3c\x74\
\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x34\
\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\
\x74\x72\x3e\x3c\x74\x64\x3e\x4d\x6f\x64\x2e\x20\x46\x72\x65\x71\
\x2e\x20\x28\x47\x48\x7a\x29\x20\x26\x6e\x62\x73\x70\x3b\x3c\x2f\
\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\
\x6e\x74\x65\x72\x3e\x35\x30\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\
\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x44\
\x75\x74\x79\x20\x43\x79\x63\x6c\x65\x20\x28\x25\x29\x3c\x2f\x74\
\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\
\x74\x65\x72\x3e\x31\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\
\x09\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\
\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\
\x20\x20\x20\x20\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x3c\
\x70\x3e\x0a\x57\x69\x74\x68\x69\x6e\x20\x74\x68\x65\x20\x50\x72\
\x6f\x63\x65\x64\x75\x72\x65\x20\x67\x72\x6f\x75\x70\x2c\x20\x74\
\x68\x65\x20\x53\x74\x61\x72\x74\x20\x62\x75\x74\x74\x6f\x6e\x6e\
\x20\x65\x78\x65\x63\x75\x74\x65\x73\x20\x74\x68\x65\x20\x61\x6e\
\x61\x6c\x79\x73\x69\x73\x20\x70\x72\x6f\x67\x72\x61\x6d\x0a\x77\
\x68\x69\x63\x68\x20\x75\x73\x75\x61\x6c\x6c\x79\x20\x74\x61\x6b\
\x65\x73\x20\x6c\x65\x73\x73\x20\x74\x68\x61\x6e\x20\x31\x30\x20\
\x73\x65\x63\x6f\x6e\x64\x73\x20\x74\x6f\x20\x63\x6f\x6d\x70\x6c\
\x65\x74\x65\x2e\x20\x33\x27\x30\x31\x30\x27\x35\x36\x30\x20\x73\
\x61\x6d\x70\x6c\x65\x73\x20\x61\x72\x65\x0a\x63\x6f\x6c\x6c\x65\
\x63\x74\x65\x64\x20\x70\x65\x72\x20\x63\x68\x61\x6e\x6e\x65\x6c\
\x20\x28\x65\x6e\x74\x72\x79\x20\x77\x66\x2f\x65\x78\x69\x74\x20\
\x77\x66\x29\x2e\x20\x0a\x3c\x70\x3e\x0a\x20\x20\x54\x68\x65\x20\
\x53\x61\x76\x65\x41\x6c\x6c\x20\x62\x75\x74\x74\x6f\x6e\x3a\x0a\
\x20\x20\x3c\x75\x6c\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x3e\x77\
\x72\x69\x74\x65\x73\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\
\x20\x6f\x66\x20\x74\x75\x72\x6e\x73\x20\x6d\x65\x61\x73\x75\x72\
\x65\x64\x20\x69\x6e\x74\x6f\x20\x61\x6e\x20\x65\x70\x69\x63\x73\
\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x76\x61\x72\x69\x61\x62\x6c\
\x65\x2c\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\x20\x20\
\x20\x3c\x6c\x69\x3e\x73\x61\x76\x65\x20\x74\x68\x65\x20\x72\x61\
\x77\x20\x64\x61\x74\x61\x20\x74\x6f\x20\x68\x64\x66\x35\x2c\x0a\
\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\x20\x20\x20\x3c\x6c\
\x69\x3e\x6f\x70\x65\x6e\x73\x20\x61\x20\x64\x69\x61\x6c\x6f\x67\
\x20\x77\x69\x6e\x64\x6f\x77\x20\x66\x6f\x72\x20\x73\x75\x62\x6d\
\x69\x73\x73\x69\x6f\x6e\x20\x74\x6f\x20\x74\x68\x65\x20\x73\x65\
\x6c\x65\x63\x74\x65\x64\x20\x65\x6c\x6f\x67\x20\x62\x6f\x6f\x6b\
\x2e\x20\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\
\x20\x3c\x2f\x75\x6c\x3e\x0a\x3c\x70\x3e\x0a\x20\x20\x3c\x66\x6f\
\x6e\x74\x20\x63\x6f\x6c\x6f\x72\x3d\x67\x72\x65\x65\x6e\x3e\x0a\
\x20\x20\x44\x61\x74\x61\x20\x63\x61\x6e\x20\x62\x65\x20\x72\x65\
\x63\x61\x6c\x6c\x65\x64\x20\x66\x72\x6f\x6d\x20\x68\x64\x66\x35\
\x20\x61\x6e\x64\x20\x72\x65\x61\x6e\x61\x6c\x79\x7a\x65\x64\x20\
\x75\x73\x69\x6e\x67\x20\x74\x68\x65\x20\x48\x44\x46\x20\x61\x6e\
\x61\x6c\x79\x73\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x61\
\x6c\x69\x74\x79\x0a\x20\x20\x6d\x61\x64\x65\x20\x61\x76\x61\x69\
\x6c\x61\x62\x6c\x65\x20\x74\x68\x72\x6f\x75\x67\x68\x20\x61\x20\
\x64\x6f\x63\x6b\x65\x64\x20\x77\x69\x64\x67\x65\x74\x20\x69\x6e\
\x20\x74\x68\x65\x20\x6d\x65\x6e\x75\x20\x62\x61\x72\x20\x28\x72\
\x69\x67\x68\x74\x20\x63\x6c\x69\x63\x6b\x20\x6f\x6e\x20\x74\x68\
\x65\x20\x6d\x65\x6e\x75\x20\x62\x61\x72\x0a\x20\x20\x61\x6e\x64\
\x20\x73\x65\x6c\x65\x63\x74\x20\x74\x68\x65\x20\x48\x44\x46\x35\
\x20\x6f\x70\x74\x69\x6f\x6e\x29\x2e\x0a\x20\x20\x3c\x2f\x66\x6f\
\x6e\x74\x3e\x0a\x20\x20\x0a\x20\x20\x3c\x68\x33\x20\x73\x74\x79\
\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x37\x62\x36\x38\x65\
\x65\x3b\x22\x3e\x45\x78\x70\x65\x72\x74\x20\x50\x61\x6e\x65\x6c\
\x3c\x2f\x68\x33\x3e\x0a\x49\x6e\x70\x75\x74\x20\x70\x61\x72\x61\
\x6d\x65\x74\x65\x72\x73\x20\x74\x6f\x20\x74\x68\x65\x20\x70\x65\
\x61\x6b\x20\x73\x65\x61\x72\x63\x68\x20\x61\x6e\x61\x6c\x79\x73\
\x69\x73\x2c\x20\x61\x73\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x65\
\x64\x20\x69\x6e\x20\x74\x69\x6e\x61\x2e\x6a\x73\x6f\x6e\x2e\x3c\
\x62\x72\x3e\x0a\x20\x20\x0a\x54\x68\x65\x20\x49\x6e\x6a\x65\x63\
\x74\x6f\x72\x20\x68\x61\x73\x20\x4e\x4f\x54\x20\x79\x65\x74\x20\
\x62\x65\x65\x6e\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\
\x20\x69\x6e\x74\x6f\x20\x74\x68\x65\x20\x61\x70\x70\x6c\x69\x63\
\x61\x74\x69\x6f\x6e\x2e\x0a\x20\x3c\x74\x61\x62\x6c\x65\x20\x77\
\x69\x64\x74\x68\x3d\x34\x30\x30\x3e\x0a\x20\x20\x20\x20\x3c\x74\
\x72\x3e\x20\x3c\x74\x64\x3e\x0a\x09\x3c\x74\x61\x62\x6c\x65\x3e\
\x0a\x09\x20\x20\x3c\x21\x2d\x2d\x63\x61\x70\x74\x69\x6f\x6e\x3e\
\x0a\x09\x20\x20\x20\x20\x3c\x68\x34\x20\x73\x74\x79\x6c\x65\x3d\
\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x34\x37\x61\x62\x3b\x22\
\x3e\x43\x79\x63\x6c\x6f\x74\x72\x6f\x6e\x3c\x2f\x68\x34\x3e\x0a\
\x09\x20\x20\x20\x20\x3c\x2f\x63\x61\x70\x74\x69\x6f\x6e\x2d\x2d\
\x3e\x0a\x20\x20\x3c\x74\x68\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\
\x3c\x74\x72\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x20\x61\
\x6c\x69\x67\x6e\x3d\x6c\x65\x66\x74\x3e\x50\x61\x72\x61\x6d\x65\
\x74\x65\x72\x3c\x2f\x74\x68\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\
\x74\x68\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x20\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\
\x30\x34\x37\x61\x62\x3b\x22\x3e\x43\x79\x63\x6c\x6f\x74\x72\x6f\
\x6e\x3c\x2f\x74\x68\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\
\x0a\x20\x20\x3c\x2f\x74\x68\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\
\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x4d\x69\x6e\x69\x6d\x75\x6d\x20\
\x50\x65\x61\x6b\x20\x48\x65\x69\x67\x68\x74\x3c\x2f\x74\x64\x3e\
\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\
\x72\x3e\x35\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\
\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x4d\x69\x6e\x69\x6d\
\x75\x6d\x20\x64\x69\x73\x74\x61\x6e\x63\x65\x20\x62\x65\x74\x77\
\x65\x65\x6e\x20\x70\x65\x61\x6b\x73\x3c\x2f\x74\x64\x3e\x20\x3c\
\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\
\x31\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x3c\x74\x72\
\x3e\x3c\x74\x64\x3e\x4d\x69\x6e\x69\x6d\x69\x6d\x20\x64\x69\x66\
\x66\x65\x72\x65\x6e\x63\x65\x20\x69\x6e\x20\x63\x6f\x72\x72\x65\
\x6c\x61\x74\x69\x6f\x6e\x20\x70\x6c\x6f\x74\x20\x3c\x62\x72\x3e\
\x62\x65\x74\x77\x65\x65\x6e\x20\x70\x65\x61\x6b\x20\x61\x6e\x64\
\x20\x32\x6e\x64\x20\x68\x69\x67\x68\x65\x73\x74\x20\x70\x65\x61\
\x6b\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\x72\x6f\x77\x73\x70\
\x61\x6e\x3d\x32\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\
\x72\x3e\x30\x2e\x30\x31\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\
\x0a\x0a\x09\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\
\x20\x20\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\x77\x69\x64\x74\
\x68\x3d\x32\x30\x3e\x20\x26\x6e\x62\x73\x70\x3b\x20\x3c\x2f\x74\
\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x64\x3e\x20\x3c\x74\
\x61\x62\x6c\x65\x3e\x0a\x09\x20\x20\x3c\x21\x2d\x2d\x63\x61\x70\
\x74\x69\x6f\x6e\x3e\x0a\x3c\x68\x34\x20\x73\x74\x79\x6c\x65\x3d\
\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x38\x62\x38\x62\x3b\x22\
\x3e\x49\x6e\x6a\x65\x63\x74\x6f\x72\x3c\x2f\x68\x34\x3e\x0a\x3c\
\x2f\x63\x61\x70\x74\x69\x6f\x6e\x2d\x2d\x3e\x0a\x20\x20\x3c\x74\
\x68\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x0a\x20\
\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x20\x61\
\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x20\x73\x74\x79\x6c\
\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x38\x62\x38\x62\
\x3b\x22\x3e\x49\x6e\x6a\x65\x63\x74\x6f\x72\x3c\x2f\x74\x68\x3e\
\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x3c\x2f\x74\
\x68\x65\x61\x64\x3e\x0a\x20\x0a\x20\x20\x20\x3c\x74\x72\x3e\x20\
\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\
\x3e\x35\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\
\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\
\x63\x65\x6e\x74\x65\x72\x3e\x31\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\
\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x20\
\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x30\x2e\x30\
\x31\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x09\x3c\x2f\x74\
\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x74\x64\
\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\
\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x3c\x62\x72\x3e\x0a\x3c\x70\
\x3e\x0a\x20\x20\x54\x68\x65\x20\x4f\x73\x63\x69\x6c\x6c\x6f\x73\
\x63\x6f\x70\x65\x20\x6f\x70\x74\x69\x6f\x6e\x20\x64\x69\x73\x61\
\x62\x6c\x65\x73\x20\x73\x65\x74\x74\x69\x6e\x67\x20\x76\x61\x6c\
\x75\x65\x73\x20\x74\x6f\x20\x65\x70\x69\x63\x73\x20\x70\x72\x6f\
\x63\x65\x73\x73\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x73\x20\x61\
\x6e\x64\x20\x69\x73\x20\x6d\x65\x61\x6e\x74\x20\x66\x6f\x72\x20\
\x74\x65\x73\x74\x69\x6e\x67\x20\x63\x6f\x64\x65\x20\x77\x69\x74\
\x68\x20\x72\x61\x77\x20\x64\x61\x74\x61\x20\x63\x6f\x6c\x6c\x65\
\x63\x74\x65\x64\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x6f\x73\
\x63\x69\x6c\x6c\x6f\x73\x63\x6f\x70\x65\x20\x61\x6e\x64\x20\x73\
\x74\x6f\x72\x65\x64\x20\x69\x6e\x20\x68\x64\x66\x35\x20\x66\x69\
\x6c\x65\x73\x3a\x20\x3c\x62\x72\x3e\x20\x20\x0a\x20\x20\x2f\x68\
\x69\x70\x61\x2f\x62\x64\x2f\x64\x61\x74\x61\x2f\x6d\x65\x61\x73\
\x75\x72\x65\x6d\x65\x6e\x74\x73\x2f\x54\x69\x6e\x61\x5f\x32\x30\
\x32\x34\x2d\x30\x39\x2d\x31\x38\x5f\x6f\x73\x63\x69\x6c\x6c\x6f\
\x73\x63\x6f\x70\x65\x2e\x68\x35\x0a\x20\x20\x20\x3c\x68\x33\x20\
\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x37\x62\
\x36\x38\x65\x65\x3b\x22\x3e\x54\x49\x4e\x41\x20\x49\x6d\x61\x67\
\x65\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x20\x3c\x74\x61\x62\x6c\x65\
\x3e\x0a\x20\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x0a\
\x20\x20\x20\x3c\x69\x6d\x67\x20\x73\x72\x63\x3d\x22\x3a\x54\x69\
\x6e\x61\x2e\x6a\x70\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x39\x30\
\x20\x68\x65\x69\x67\x68\x74\x3d\x39\x30\x2f\x3e\x20\x26\x6e\x62\
\x73\x70\x3b\x20\x3c\x2f\x74\x64\x3e\x3c\x74\x64\x3e\x0a\x20\x20\
\x20\x54\x69\x6e\x61\x20\x54\x75\x72\x6e\x65\x72\x3c\x2f\x74\x64\
\x3e\x0a\x20\x20\x20\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x3c\x70\
\x3e\x0a\x3c\x2f\x70\x3e\x0a\x20\x20\x0a\x3c\x2f\x62\x6f\x64\x79\
\x3e\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\xa7\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x33\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
\x22\x70\x61\x67\x65\x34\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\x80\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x35\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x65\x74\x63\x2e\x2e\x2e\
\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x70\x3e\x0a\
\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\xa7\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x34\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
\x22\x70\x61\x67\x65\x35\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\xa7\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x31\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
\x22\x70\x61\x67\x65\x32\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x15\xad\
\xff\
\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x01\x00\
@@ -371,320 +753,29 @@ qt_resource_data = b"\
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\xa7\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x33\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
\x22\x70\x61\x67\x65\x34\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\xa7\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x31\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
\x22\x70\x61\x67\x65\x32\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\xa7\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x34\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
\x22\x70\x61\x67\x65\x35\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x10\x3f\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x54\x69\x6d\x65\x20\x6f\x66\x20\x46\x6c\x69\x67\x68\x74\
\x20\x4d\x65\x61\x73\x75\x65\x6d\x65\x6e\x74\x20\x66\x6f\x72\x20\
\x49\x6e\x6a\x65\x63\x74\x6f\x72\x20\x61\x6e\x64\x20\x52\x69\x6e\
\x67\x20\x43\x79\x63\x6c\x6f\x74\x72\x6f\x6e\x20\x54\x75\x72\x6e\
\x20\x4e\x75\x6d\x62\x65\x72\x20\x41\x73\x63\x65\x72\x74\x61\x69\
\x6e\x6d\x65\x6e\x74\x2c\x20\x54\x49\x4e\x41\x3c\x2f\x74\x69\x74\
\x6c\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\
\x3e\x0a\x0a\x3c\x68\x35\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
\x6f\x6c\x6f\x72\x3a\x67\x72\x61\x79\x3b\x22\x3e\x4a\x75\x6e\x65\
\x20\x32\x30\x32\x34\x2c\x20\x4a\x61\x6e\x20\x43\x68\x72\x69\x6e\
\x2c\x20\x50\x69\x65\x72\x72\x65\x2d\x41\x6e\x64\x72\x26\x65\x61\
\x63\x75\x74\x65\x3b\x20\x44\x75\x70\x65\x72\x72\x65\x78\x2c\x20\
\x41\x6c\x65\x73\x73\x61\x6e\x64\x72\x6f\x20\x46\x61\x63\x63\x68\
\x65\x74\x74\x69\x2c\x20\x20\x57\x61\x6c\x64\x61\x6d\x61\x72\x20\
\x4b\x6f\x70\x72\x65\x6b\x3c\x2f\x68\x35\x3e\x0a\x3c\x68\x34\x3e\
\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x54\x3c\x2f\x73\x70\
\x61\x6e\x3e\x69\x6d\x65\x20\x6f\x66\x20\x46\x6c\x69\x67\x68\x74\
\x20\x4d\x65\x61\x73\x75\x72\x65\x6d\x65\x6e\x74\x20\x66\x6f\x72\
\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x49\x3c\x2f\x73\x70\
\x61\x6e\x3e\x6e\x6a\x65\x63\x74\x6f\x72\x20\x61\x6e\x64\x20\x52\
\x69\x6e\x67\x20\x43\x79\x63\x6c\x6f\x74\x72\x6f\x6e\x20\x54\x75\
\x72\x6e\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\
\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x4e\x3c\x2f\
\x73\x70\x61\x6e\x3e\x75\x6d\x62\x65\x72\x20\x3c\x73\x70\x61\x6e\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x72\
\x65\x64\x3b\x22\x3e\x41\x3c\x2f\x73\x70\x61\x6e\x3e\x73\x63\x65\
\x72\x74\x61\x69\x6e\x6d\x65\x6e\x74\x2c\x20\x3c\x73\x70\x61\x6e\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x72\
\x65\x64\x3b\x22\x3e\x54\x49\x4e\x41\x3c\x2f\x73\x70\x61\x6e\x3e\
\x3c\x2f\x68\x34\x3e\x0a\x3c\x68\x32\x20\x73\x74\x79\x6c\x65\x3d\
\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\x3e\x41\x62\
\x6f\x75\x74\x3c\x2f\x68\x32\x3e\x0a\x0a\x0a\x3c\x70\x3e\x54\x68\
\x65\x20\x54\x49\x4e\x41\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\
\x6f\x6e\x20\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x73\x20\x74\x68\
\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x74\x75\x72\x6e\
\x73\x20\x69\x6e\x20\x61\x20\x63\x79\x63\x6c\x6f\x74\x72\x6f\x6e\
\x0a\x66\x72\x6f\x6d\x20\x61\x20\x54\x69\x6d\x65\x20\x6f\x66\x20\
\x46\x6c\x69\x67\x68\x74\x20\x28\x54\x4f\x46\x29\x20\x6d\x65\x61\
\x73\x75\x72\x65\x6d\x65\x6e\x74\x20\x74\x65\x63\x68\x6e\x69\x71\
\x75\x65\x20\x61\x6e\x64\x20\x61\x20\x63\x72\x6f\x73\x73\x2d\x63\
\x6f\x72\x72\x65\x6c\x61\x74\x69\x6f\x6e\x0a\x6f\x66\x20\x66\x61\
\x73\x74\x20\x73\x61\x6d\x70\x6c\x65\x64\x20\x64\x61\x74\x61\x20\
\x66\x72\x6f\x6d\x20\x63\x61\x70\x61\x63\x69\x74\x69\x76\x65\x20\
\x73\x65\x6e\x73\x6f\x72\x73\x20\x6c\x6f\x63\x61\x74\x65\x64\x20\
\x61\x74\x20\x74\x68\x65\x20\x65\x6e\x74\x72\x61\x6e\x63\x65\x20\
\x61\x6e\x64\x20\x65\x78\x69\x74\x0a\x6f\x66\x20\x74\x68\x65\x20\
\x63\x79\x63\x6f\x6c\x6f\x74\x72\x6f\x6e\x2e\x20\x54\x68\x69\x73\
\x20\x69\x73\x20\x62\x61\x73\x65\x64\x20\x6f\x6e\x20\x61\x20\x70\
\x79\x74\x68\x6f\x6e\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\
\x74\x69\x6f\x6e\x20\x6f\x66\x20\x61\x20\x4c\x61\x62\x56\x49\x45\
\x57\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x64\x65\
\x76\x65\x6c\x6f\x70\x65\x64\x20\x62\x79\x0a\x50\x69\x65\x72\x72\
\x65\x2d\x41\x6e\x64\x72\x26\x65\x61\x63\x75\x74\x65\x3b\x20\x44\
\x75\x70\x65\x72\x72\x65\x78\x3a\x20\x20\x3c\x62\x72\x3e\x0a\x50\
\x2e\x2d\x41\x2e\x20\x44\x75\x70\x65\x72\x72\x65\x78\x20\x61\x6e\
\x64\x20\x41\x2e\x20\x46\x61\x63\x63\x68\x65\x74\x74\x69\x2c\x20\
\x0a\x4e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x54\x75\x72\x6e\x20\
\x4d\x65\x61\x73\x75\x72\x65\x6d\x65\x6e\x74\x73\x20\x6f\x6e\x20\
\x74\x68\x65\x20\x48\x49\x50\x41\x20\x43\x79\x63\x6c\x6f\x74\x72\
\x6f\x6e\x73\x20\x61\x74\x20\x50\x53\x49\x2e\x3c\x62\x72\x3e\x0a\
\x64\x6f\x69\x3a\x31\x30\x2e\x31\x38\x34\x32\x39\x2f\x4a\x41\x43\
\x6f\x57\x2d\x49\x50\x41\x43\x32\x30\x31\x38\x2d\x57\x45\x50\x41\
\x4c\x30\x36\x37\x20\x0a\x0a\x20\x20\x0a\x20\x20\x3c\x2f\x70\x3e\
\x0a\x3c\x21\x2d\x2d\x61\x20\x68\x72\x65\x66\x3d\x22\x70\x61\x67\
\x65\x31\x2e\x68\x74\x6d\x6c\x22\x3e\x68\x65\x72\x65\x3c\x2f\x61\
\x3e\x3c\x2f\x70\x2d\x2d\x3e\x0a\x0a\x3c\x68\x32\x20\x73\x74\x79\
\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\
\x3e\x54\x68\x65\x20\x52\x65\x70\x6f\x73\x69\x74\x6f\x72\x79\x3c\
\x2f\x68\x32\x3e\x0a\x0a\x3c\x70\x3e\x54\x68\x65\x20\x61\x70\x70\
\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x63\x6f\x6d\x70\x72\x69\x73\
\x65\x73\x20\x74\x77\x6f\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\
\x73\x3a\x0a\x20\x20\x3c\x75\x6c\x3e\x0a\x3c\x6c\x69\x3e\x0a\x20\
\x20\x54\x68\x65\x20\x6c\x6f\x77\x2d\x6c\x65\x76\x65\x6c\x20\x41\
\x44\x43\x20\x64\x61\x74\x61\x20\x61\x63\x71\x75\x69\x73\x69\x74\
\x69\x6f\x6e\x20\x73\x79\x73\x74\x65\x6d\x2e\x3c\x62\x72\x3e\x0a\
\x20\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
\x6f\x6c\x6f\x72\x3a\x20\x67\x72\x65\x65\x6e\x3b\x22\x3e\x68\x74\
\x74\x70\x73\x3a\x2f\x2f\x67\x69\x74\x2e\x70\x73\x69\x2e\x63\x68\
\x2f\x65\x70\x69\x63\x73\x5f\x69\x6f\x63\x62\x6f\x6f\x74\x5f\x68\
\x69\x70\x61\x2f\x2e\x2e\x20\x74\x6f\x20\x62\x65\x20\x63\x6f\x6d\
\x70\x6c\x65\x74\x65\x64\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x62\x72\
\x3e\x0a\x20\x0a\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\x20\x3c\x6c\x69\
\x3e\x0a\x20\x20\x20\x20\x41\x20\x48\x69\x67\x68\x20\x4c\x65\x76\
\x65\x6c\x20\x41\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x28\
\x48\x4c\x41\x29\x20\x74\x68\x61\x74\x20\x69\x73\x20\x61\x62\x6c\
\x65\x20\x74\x6f\x20\x69\x6e\x74\x65\x72\x61\x63\x74\x20\x77\x69\
\x74\x68\x20\x74\x68\x65\x20\x49\x4f\x43\x2c\x20\x73\x74\x61\x72\
\x74\x20\x61\x20\x6c\x6f\x77\x2d\x6c\x65\x76\x65\x6c\x20\x64\x61\
\x74\x61\x20\x61\x63\x71\x75\x69\x73\x74\x69\x6f\x6e\x20\x72\x75\
\x6e\x2c\x0a\x20\x20\x20\x20\x61\x63\x71\x75\x69\x72\x65\x20\x74\
\x68\x65\x20\x72\x61\x77\x20\x64\x61\x74\x61\x2c\x20\x61\x6e\x64\
\x20\x70\x65\x72\x66\x6f\x72\x6d\x20\x74\x68\x65\x20\x6e\x75\x6d\
\x62\x65\x72\x20\x6f\x66\x20\x74\x65\x72\x6d\x73\x20\x61\x6e\x61\
\x6c\x79\x73\x69\x73\x2e\x3c\x62\x72\x3e\x0a\x20\x20\x20\x20\x3c\
\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\
\x72\x3a\x20\x67\x72\x65\x65\x6e\x3b\x22\x3e\x20\x68\x74\x74\x70\
\x73\x3a\x2f\x2f\x67\x69\x74\x6c\x61\x62\x2e\x70\x73\x69\x2e\x63\
\x68\x2f\x68\x69\x70\x61\x5f\x61\x70\x70\x73\x34\x6f\x70\x73\x2f\
\x74\x69\x6e\x61\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x62\x72\x3e\x0a\
\x20\x20\x20\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\
\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x67\x72\x61\x79\x3b\x22\x3e\x20\
\x2f\x68\x69\x70\x61\x2f\x62\x64\x2f\x61\x70\x70\x6c\x69\x63\x61\
\x74\x69\x6f\x6e\x73\x2f\x74\x69\x6e\x61\x2f\x6c\x61\x74\x65\x73\
\x74\x2f\x74\x69\x6e\x61\x2e\x73\x68\x3c\x2f\x73\x70\x61\x6e\x3e\
\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x3c\x2f\x75\x6c\x3e\
\x0a\x20\x20\x3c\x68\x32\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\x3e\x47\x55\x49\x2c\x20\
\x43\x6f\x6e\x74\x72\x6f\x6c\x20\x54\x61\x62\x3c\x2f\x68\x32\x3e\
\x0a\x20\x20\x4d\x61\x69\x6e\x20\x70\x61\x6e\x65\x6c\x20\x66\x6f\
\x72\x20\x75\x73\x65\x20\x62\x79\x20\x6f\x70\x65\x72\x61\x74\x6f\
\x72\x73\x2e\x20\x0a\x20\x20\x3c\x68\x33\x20\x73\x74\x79\x6c\x65\
\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x37\x62\x36\x38\x65\x65\x3b\
\x22\x3e\x4f\x70\x65\x72\x61\x74\x6f\x72\x20\x50\x61\x6e\x65\x6c\
\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x49\x6e\x70\x75\x74\x20\x70\x61\
\x72\x61\x6d\x65\x74\x65\x72\x73\x20\x74\x6f\x20\x61\x6e\x61\x6c\
\x79\x73\x69\x73\x20\x72\x6f\x75\x74\x69\x6e\x65\x2c\x20\x61\x73\
\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x65\x64\x20\x69\x6e\x20\x74\
\x69\x6e\x61\x2e\x6a\x73\x6f\x6e\x2e\x3c\x62\x72\x3e\x0a\x20\x20\
\x54\x68\x65\x20\x49\x6e\x6a\x65\x63\x74\x6f\x72\x20\x68\x61\x73\
\x20\x4e\x4f\x54\x20\x79\x65\x74\x20\x62\x65\x65\x6e\x20\x69\x6d\
\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x20\x69\x6e\x74\x6f\x20\x74\
\x68\x65\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2e\x0a\
\x20\x20\x3c\x74\x61\x62\x6c\x65\x20\x77\x69\x64\x74\x68\x3d\x34\
\x30\x30\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x20\x3c\x74\x64\
\x3e\x0a\x09\x3c\x74\x61\x62\x6c\x65\x3e\x0a\x09\x20\x20\x3c\x63\
\x61\x70\x74\x69\x6f\x6e\x3e\x0a\x09\x20\x20\x20\x20\x3c\x68\x34\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\
\x30\x34\x37\x61\x62\x3b\x22\x3e\x43\x79\x63\x6c\x6f\x74\x72\x6f\
\x6e\x3c\x2f\x68\x34\x3e\x0a\x09\x20\x20\x20\x20\x3c\x2f\x63\x61\
\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x3c\x74\x68\x65\x61\x64\x3e\
\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x0a\x20\x20\x20\x20\x20\x20\
\x3c\x74\x68\x20\x61\x6c\x69\x67\x6e\x3d\x6c\x65\x66\x74\x3e\x50\
\x61\x72\x61\x6d\x65\x74\x65\x72\x3c\x2f\x74\x68\x3e\x0a\x20\x20\
\x20\x20\x20\x20\x3c\x74\x68\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\
\x6e\x74\x65\x72\x3e\x56\x61\x6c\x75\x65\x3c\x2f\x74\x68\x3e\x0a\
\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x3c\x2f\x74\x68\
\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\
\x3e\x48\x61\x72\x6d\x6f\x6e\x69\x63\x20\x4e\x6f\x2e\x3c\x2f\x74\
\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\
\x74\x65\x72\x3e\x36\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\
\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x64\x54\x20\x43\
\x61\x62\x6c\x65\x20\x28\x6e\x73\x29\x3c\x2f\x74\x64\x3e\x20\x3c\
\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\
\x34\x34\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\
\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x64\x4e\x20\x50\x69\x63\x6b\
\x75\x70\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\
\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x2d\x31\x3c\x2f\x74\x64\x3e\
\x3c\x2f\x74\x72\x3e\x0a\x09\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\
\x20\x20\x20\x20\x20\x20\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\
\x77\x69\x64\x74\x68\x3d\x32\x30\x3e\x20\x26\x6e\x62\x73\x70\x3b\
\x20\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x64\
\x3e\x20\x3c\x74\x61\x62\x6c\x65\x3e\x0a\x09\x20\x20\x3c\x63\x61\
\x70\x74\x69\x6f\x6e\x3e\x0a\x3c\x68\x34\x20\x73\x74\x79\x6c\x65\
\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x38\x62\x38\x62\x3b\
\x22\x3e\x49\x6e\x6a\x65\x63\x74\x6f\x72\x3c\x2f\x68\x34\x3e\x0a\
\x3c\x2f\x63\x61\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x3c\x74\x68\
\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x0a\x20\x20\
\x20\x20\x20\x20\x3c\x74\x68\x20\x61\x6c\x69\x67\x6e\x3d\x6c\x65\
\x66\x74\x3e\x50\x61\x72\x61\x6d\x65\x74\x65\x72\x3c\x2f\x74\x68\
\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x20\x61\x6c\x69\x67\
\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x56\x61\x6c\x75\x65\x3c\x2f\
\x74\x68\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\
\x3c\x2f\x74\x68\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\
\x3e\x3c\x74\x64\x3e\x48\x61\x72\x6d\x6f\x6e\x69\x63\x20\x4e\x6f\
\x2e\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\
\x3d\x63\x65\x6e\x74\x65\x72\x3e\x31\x30\x3c\x2f\x74\x64\x3e\x3c\
\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\
\x3e\x64\x54\x20\x43\x61\x62\x6c\x65\x20\x28\x6e\x73\x29\x3c\x2f\
\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\
\x6e\x74\x65\x72\x3e\x36\x2e\x39\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\
\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x64\
\x4e\x20\x50\x69\x63\x6b\x75\x70\x3c\x2f\x74\x64\x3e\x20\x3c\x74\
\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x34\
\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\
\x74\x72\x3e\x3c\x74\x64\x3e\x4d\x6f\x64\x2e\x20\x46\x72\x65\x71\
\x2e\x20\x28\x47\x48\x7a\x29\x20\x26\x6e\x62\x73\x70\x3b\x3c\x2f\
\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\
\x6e\x74\x65\x72\x3e\x35\x30\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\
\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x44\
\x75\x74\x79\x20\x43\x79\x63\x6c\x65\x20\x28\x25\x29\x3c\x2f\x74\
\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\
\x74\x65\x72\x3e\x31\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\
\x09\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\
\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\
\x20\x20\x20\x20\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x3c\
\x70\x3e\x0a\x57\x69\x74\x68\x69\x6e\x20\x74\x68\x65\x20\x50\x72\
\x6f\x63\x65\x64\x75\x72\x65\x20\x67\x72\x6f\x75\x70\x2c\x20\x74\
\x68\x65\x20\x53\x74\x61\x72\x74\x20\x62\x75\x74\x74\x6f\x6e\x6e\
\x20\x65\x78\x65\x63\x75\x74\x65\x73\x20\x74\x68\x65\x20\x61\x6e\
\x61\x6c\x79\x73\x69\x73\x20\x70\x72\x6f\x67\x72\x61\x6d\x0a\x77\
\x68\x69\x63\x68\x20\x75\x73\x75\x61\x6c\x6c\x79\x20\x74\x61\x6b\
\x65\x73\x20\x6c\x65\x73\x73\x20\x74\x68\x61\x6e\x20\x31\x30\x20\
\x73\x65\x63\x6f\x6e\x64\x73\x20\x74\x6f\x20\x63\x6f\x6d\x70\x6c\
\x65\x74\x65\x2e\x20\x33\x27\x30\x31\x30\x27\x35\x36\x30\x20\x73\
\x61\x6d\x70\x6c\x65\x73\x20\x61\x72\x65\x0a\x63\x6f\x6c\x6c\x65\
\x63\x74\x65\x64\x20\x70\x65\x72\x20\x63\x68\x61\x6e\x6e\x65\x6c\
\x20\x28\x65\x6e\x74\x72\x79\x20\x77\x66\x2f\x65\x78\x69\x74\x20\
\x77\x66\x29\x2e\x20\x0a\x3c\x70\x3e\x0a\x20\x20\x54\x68\x65\x20\
\x53\x61\x76\x65\x41\x6c\x6c\x20\x62\x75\x74\x74\x6f\x6e\x3a\x0a\
\x20\x20\x3c\x75\x6c\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x3e\x77\
\x72\x69\x74\x65\x73\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\
\x20\x6f\x66\x20\x74\x75\x72\x6e\x73\x20\x6d\x65\x61\x73\x75\x72\
\x65\x64\x20\x69\x6e\x74\x6f\x20\x61\x6e\x20\x65\x70\x69\x63\x73\
\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x76\x61\x72\x69\x61\x62\x6c\
\x65\x2c\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\x20\x20\
\x20\x3c\x6c\x69\x3e\x73\x61\x76\x65\x20\x74\x68\x65\x20\x72\x61\
\x77\x20\x64\x61\x74\x61\x20\x74\x6f\x20\x68\x64\x66\x35\x2c\x0a\
\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\x20\x20\x20\x3c\x6c\
\x69\x3e\x6f\x70\x65\x6e\x73\x20\x61\x20\x64\x69\x61\x6c\x6f\x67\
\x20\x77\x69\x6e\x64\x6f\x77\x20\x66\x6f\x72\x20\x73\x75\x62\x6d\
\x69\x73\x73\x69\x6f\x6e\x20\x74\x6f\x20\x74\x68\x65\x20\x73\x65\
\x6c\x65\x63\x74\x65\x64\x20\x65\x6c\x6f\x67\x20\x62\x6f\x6f\x6b\
\x2e\x20\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x6c\x69\x3e\x0a\x20\
\x20\x3c\x2f\x75\x6c\x3e\x0a\x3c\x70\x3e\x0a\x20\x20\x44\x61\x74\
\x61\x20\x63\x61\x6e\x20\x62\x65\x20\x72\x65\x63\x61\x6c\x6c\x65\
\x64\x20\x66\x72\x6f\x6d\x20\x68\x64\x66\x35\x20\x61\x6e\x64\x20\
\x72\x65\x61\x6e\x61\x6c\x79\x7a\x65\x64\x20\x75\x73\x69\x6e\x67\
\x20\x74\x68\x65\x20\x48\x44\x46\x20\x61\x6e\x61\x6c\x79\x73\x69\
\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x61\x6c\x69\x74\x79\x0a\
\x20\x20\x6d\x61\x64\x65\x20\x61\x76\x61\x69\x6c\x61\x62\x6c\x65\
\x20\x74\x68\x72\x6f\x75\x67\x68\x20\x61\x20\x64\x6f\x63\x6b\x65\
\x64\x20\x77\x69\x64\x67\x65\x74\x20\x69\x6e\x20\x74\x68\x65\x20\
\x6d\x65\x6e\x75\x20\x62\x61\x72\x20\x28\x72\x69\x67\x68\x74\x20\
\x63\x6c\x69\x63\x6b\x20\x6f\x6e\x20\x74\x68\x65\x20\x6d\x65\x6e\
\x75\x20\x62\x61\x72\x0a\x20\x20\x61\x6e\x64\x20\x73\x65\x6c\x65\
\x63\x74\x20\x74\x68\x65\x20\x48\x44\x46\x35\x20\x6f\x70\x74\x69\
\x6f\x6e\x29\x2e\x0a\x20\x20\x0a\x20\x20\x3c\x68\x33\x20\x73\x74\
\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x37\x62\x36\x38\
\x65\x65\x3b\x22\x3e\x45\x78\x70\x65\x72\x74\x20\x50\x61\x6e\x65\
\x6c\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x54\x68\x65\x20\x4f\x73\x63\
\x69\x6c\x6c\x6f\x73\x63\x6f\x70\x65\x20\x6f\x70\x74\x69\x6f\x6e\
\x20\x64\x69\x73\x61\x62\x6c\x65\x73\x20\x73\x65\x74\x74\x69\x6e\
\x67\x20\x76\x61\x6c\x75\x65\x73\x20\x74\x6f\x20\x65\x70\x69\x63\
\x73\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x76\x61\x72\x69\x61\x62\
\x6c\x65\x73\x20\x61\x6e\x64\x20\x69\x73\x20\x6d\x65\x61\x6e\x74\
\x20\x66\x6f\x72\x20\x74\x65\x73\x74\x69\x6e\x67\x20\x63\x6f\x64\
\x65\x20\x77\x69\x74\x68\x20\x72\x61\x77\x20\x64\x61\x74\x61\x20\
\x63\x6f\x6c\x6c\x65\x63\x74\x65\x64\x20\x66\x72\x6f\x6d\x20\x74\
\x68\x65\x20\x6f\x73\x63\x69\x6c\x6c\x6f\x73\x63\x6f\x70\x65\x20\
\x61\x6e\x64\x20\x73\x74\x6f\x72\x65\x64\x20\x69\x6e\x20\x68\x64\
\x66\x35\x20\x66\x69\x6c\x65\x73\x3a\x20\x3c\x62\x72\x3e\x20\x20\
\x0a\x20\x20\x2f\x68\x69\x70\x61\x2f\x62\x64\x2f\x64\x61\x74\x61\
\x2f\x6d\x65\x61\x73\x75\x72\x65\x6d\x65\x6e\x74\x73\x2f\x54\x69\
\x6e\x61\x5f\x32\x30\x32\x34\x2d\x30\x39\x2d\x31\x38\x5f\x6f\x73\
\x63\x69\x6c\x6c\x6f\x73\x63\x6f\x70\x65\x2e\x68\x35\x0a\x20\x20\
\x20\x3c\x68\x33\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\
\x72\x3a\x23\x37\x62\x36\x38\x65\x65\x3b\x22\x3e\x54\x49\x4e\x41\
\x20\x49\x6d\x61\x67\x65\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x20\x3c\
\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x3c\x74\x72\x3e\
\x3c\x74\x64\x3e\x0a\x20\x20\x20\x3c\x69\x6d\x67\x20\x73\x72\x63\
\x3d\x22\x3a\x54\x69\x6e\x61\x2e\x6a\x70\x67\x22\x20\x77\x69\x64\
\x74\x68\x3d\x39\x30\x20\x68\x65\x69\x67\x68\x74\x3d\x39\x30\x2f\
\x3e\x20\x26\x6e\x62\x73\x70\x3b\x20\x3c\x2f\x74\x64\x3e\x3c\x74\
\x64\x3e\x0a\x20\x20\x20\x54\x69\x6e\x61\x20\x54\x75\x72\x6e\x65\
\x72\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x3c\x2f\x74\x61\x62\x6c\
\x65\x3e\x0a\x3c\x70\x3e\x0a\x3c\x2f\x70\x3e\x0a\x20\x20\x0a\x3c\
\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\x80\
\x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x35\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x65\x74\x63\x2e\x2e\x2e\
\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x70\x3e\x0a\
\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\
"
qt_resource_name = b"\
\x00\x0a\
\x0c\xba\xf2\x7c\
\x00\x69\
\x00\x6e\x00\x64\x00\x65\x00\x78\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x6a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x33\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x8a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x35\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x7a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x4a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x31\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x08\
\x00\x44\x5a\x07\
\x00\x54\
@@ -693,60 +784,40 @@ qt_resource_name = b"\
\x08\x5a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x6a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x33\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x4a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x31\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x7a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x0c\xba\xf2\x7c\
\x00\x69\
\x00\x6e\x00\x64\x00\x65\x00\x78\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x8a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x35\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
"
qt_resource_struct_v1 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x01\
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x17\x33\
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x16\x88\
\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x2c\xe4\
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x14\xae\
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x15\xdd\
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x15\x59\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x17\x07\
\x00\x00\x00\x16\x00\x00\x00\x00\x00\x01\x00\x00\x15\xb1\
\x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x16\x5c\
\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x17\xb2\
\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x28\xa0\
\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x18\x5d\
"
qt_resource_struct_v2 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x17\x33\
\x00\x00\x01\x94\x3a\xf8\x11\xe0\
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x16\x88\
\x00\x00\x01\x94\x3a\xf8\x11\xe8\
\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x2c\xe4\
\x00\x00\x01\x94\x3a\xf8\x11\xe9\
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x14\xae\
\x00\x00\x01\x94\x3a\xf8\x11\xeb\
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x15\xdd\
\x00\x00\x01\x94\x3a\xf8\x11\xec\
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x15\x59\
\x00\x00\x01\x94\x3a\xf8\x11\xee\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x90\x07\xcd\xf3\x00\
\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x17\x07\
\x00\x00\x01\x90\x02\x81\x81\x00\
\x00\x00\x00\x16\x00\x00\x00\x00\x00\x01\x00\x00\x15\xb1\
\x00\x00\x01\x90\x02\x81\x81\x00\
\x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x16\x5c\
\x00\x00\x01\x90\x02\x81\x81\x00\
\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x17\xb2\
\x00\x00\x01\x90\x02\x81\x81\x00\
\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x28\xa0\
\x00\x00\x01\x90\x02\x81\x81\x00\
\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x18\x5d\
\x00\x00\x01\x93\x9c\x62\xf4\xe6\
\x00\x00\x01\x94\x41\x4a\x3a\x25\
"
qt_version = [int(v) for v in QtCore.qVersion().split('.')]
if qt_version < [5, 8, 0]:
qt_version = QtCore.qVersion().split('.')
if qt_version < ['5', '8', '0']:
rcc_version = 1
qt_resource_struct = qt_resource_struct_v1
else:

View File

@@ -7,7 +7,6 @@ import heapq
import logging
import math
import os
import pandas as pd
import time
import matplotlib
@@ -73,7 +72,7 @@ class AnalysisProcedure(QObject):
self.injector_2 = self.parent.injector_2
self.ring_cyclotron = self.parent.ring_cyclotron
self.accelerator_list = self.parent.accelerator_list
# Declare input parameters
self.input_parameters = self.parent.input_parameters
self.input_data = None
@@ -83,7 +82,7 @@ class AnalysisProcedure(QObject):
self.accelerator = self.ring_cyclotron
self.harmonic_no = 6
self.entry_current = 0
self.exit_current = 0
self.exit_current = 0
self.n_turns = None
# self.t_stepsize = 0.000000019750043 #0.00000002
self.rf_freq = 50.6328 # 10**6
@@ -96,7 +95,7 @@ class AnalysisProcedure(QObject):
self.signal_min_peak_height = 50
self.signal_min_peak_distance = 10
self.correlation_min_peak_diff = 0.01
self.dt_cable = 44 # ns
self.dn_pickup = -1
self.mod_freq = 500 # GHz
@@ -113,7 +112,7 @@ class AnalysisProcedure(QObject):
"""
self.abort = True
self.trigger_progressbar.emit(int(PROGRESS_THREAD_ABORTING))
print("RECEIVE ABORT...", flush=True)
print('RECEIVE ABORT...', flush=True)
def aborting(self, line_no):
self.abort = False
@@ -124,7 +123,7 @@ class AnalysisProcedure(QObject):
MsgSeverity.WARN.name, _pymodule, line_no,
('Measurement procedure aborted in analysis thread'), {})
print("ABORTING...", flush=True)
print('ABORTING...', flush=True)
#########INITIALIZE THE INPUTS FOM THE GUI#######################
@@ -132,15 +131,20 @@ class AnalysisProcedure(QObject):
self.input_data = input_data
self.all_data['Input data'] = self.input_data
idx = self.accelerator_list.index(self.accelerator)
#idx = 0 if self.injector_2 in self.accelerator else 1
self.parent.gui_frame.line_sender_dict['accelerator'].setCurrentIndex(
idx)
print(f'init input parameters {self.input_data}')
if reanalysis:
self.loglevel = self.input_parameters['loggingLevel']
else:
self.loglevel = self.input_data['loggingLevel']
self.logger.setLevel(self.logging.getLevelName(self.loglevel))
if 'debug' in self.input_data.keys():
self.debug = self.input_data['debug']
@@ -173,7 +177,7 @@ class AnalysisProcedure(QObject):
self.input_data[self.accelerator]['freqmod']) # * 10**9 GHz
self.duty_cycle = float(
self.input_data[self.accelerator]['dutycycle']) # * 0.01
self.logger.info('INPUT PARAMETERS')
self.logger.info(f'Accelerator: {self.accelerator}')
@@ -185,7 +189,7 @@ class AnalysisProcedure(QObject):
self.logger.info(f'Harmonic No. {self.harmonic_no}')
self.logger.info(f'dT Cable {self.dt_cable}')
self.logger.info(f'dN Pickup {self.dn_pickup}')
except KeyError as ex:
self.logger.error(f'KeyError {ex}')
except ValueError as ex:
@@ -198,14 +202,13 @@ class AnalysisProcedure(QObject):
self.input_data[self.accelerator]['peakHeight'])
self.signal_min_peak_distance = round(
self.input_data[self.accelerator]['peakDistance'])
except KeyError as ex:
self.logger.error(f'KeyError {ex}')
except ValueError as ex:
self.logger.error(f'ValueError {ex}')
#Overide peak search parameters with those given in gui
# Overide peak search parameters with those given in gui
if reanalysis:
self.correlation_min_peak_diff = float(self.input_parameters[
self.accelerator]['correlationPeakDifference'])
@@ -213,18 +216,15 @@ class AnalysisProcedure(QObject):
self.input_parameters[self.accelerator]['peakHeight'])
self.signal_min_peak_distance = int(
self.input_parameters[self.accelerator]['peakDistance'])
print(f'self.input_parameters={self.input_parameters}')
print((f'Reanalysis: self.correlation_min_peak_diff= ' + \
'{self.correlation_min_peak_diff}'))
print(('Reanalysis: self.correlation_min_peak_diff= ' +
f'{self.correlation_min_peak_diff}'))
self.logger.info(f'Corr Min Peak Diff {self.correlation_min_peak_diff}')
self.logger.info(f'Min Peak Height {self.signal_min_peak_height}')
self.logger.info(f'Min Peak Distance {self.signal_min_peak_distance}')
self.logger.info(
f'Corr Min Peak Diff {self.correlation_min_peak_diff}')
self.logger.info(f'Min Peak Height {self.signal_min_peak_height}')
self.logger.info(f'Min Peak Distance {self.signal_min_peak_distance}')
def measure_and_analyze(self, input_data=None):
'''This method is initiated by the START button in Procedure panel
@@ -239,10 +239,10 @@ class AnalysisProcedure(QObject):
self.initialize_input_parameters(input_data)
self.logger.info(
f'Corr Min Peak Diff {self.correlation_min_peak_diff}')
self.logger.info(f'Min Peak Height {self.signal_min_peak_height}')
self.logger.info(f'Min Peak Height {self.signal_min_peak_height}')
self.logger.info(
f'Min Peak Distance {self.signal_min_peak_distance}')
# Step 1 - Collect ambient data relate to the machine
self.all_data['Ambient data'] = self.collect_ambient_data()
self.trigger_progressbar.emit(int(PROGRESS_THREAD_START))
@@ -266,7 +266,7 @@ class AnalysisProcedure(QObject):
def load_hdf_file(self, hdf_filename_loaded):
print(f'load_hdf_file==> {hdf_filename_loaded}', flush=True)
raw_data = h5_storage.loadH5Recursive(hdf_filename_loaded)
self.raw_data = raw_data
@@ -281,9 +281,9 @@ class AnalysisProcedure(QObject):
input_data = all_data['Input_data']
# Read the input parameters
self.initialize_input_parameters(input_data=input_data, reanalysis=True)
self.initialize_input_parameters(
input_data=input_data, reanalysis=True)
ambient_data = all_data['Ambient_data']
self.raw_data = all_data['Raw_data']
self.all_data['Raw data'] = self.raw_data
@@ -347,7 +347,7 @@ class AnalysisProcedure(QObject):
self.trigger_progressbar.emit(PROGRESS_THREAD_ERROR)
return {}
pv_list = []
for key, value in self.settings.data['PV'][self.accelerator].items():
@@ -372,27 +372,26 @@ class AnalysisProcedure(QObject):
if status != self.cyca.ICAFE_NORMAL:
self.check_status_list(_pymodule, 'getScalarList',
pv_list, status_list, utils.line_no())
# Retrieve
pv_entry_current = self.settings.data['PV'][self.accelerator]['IEntry']
entry_current = self.cafe.getCache(pv_entry_current)
ambient_data['I Entry'] = entry_current/1000 \
if entry_current is not None else 0.0
#mA if divied by 1000 above
self.entry_current = ambient_data['I Entry']
# mA if divied by 1000 above
self.entry_current = ambient_data['I Entry']
# Retrieve
pv_exit_current = self.settings.data['PV'][self.accelerator]['IExit']
exit_current = self.cafe.getCache(pv_exit_current)
ambient_data['I Exit'] = exit_current/1000 \
if exit_current is not None else 0.0
#mA if divied by 1000 above
self.exit_current = ambient_data['I Exit']
# mA if divied by 1000 above
self.exit_current = ambient_data['I Exit']
pv_daq_ready = self.pv_dict['daqReady']
'''
'''
self.daq_ready = self.cafe.getCache(pv_daq_ready)
if self.daq_ready is None:
stat = self.cafe.getStatus(pv_daq_ready)
@@ -401,15 +400,14 @@ class AnalysisProcedure(QObject):
'''
pv_daq_error_count = self.pv_dict['daqErrorCount']
'''
daq_error_count = self.cafe.getCache(pv_daq_error_count)
daq_error_count = self.cafe.getCache(pv_daq_error_count)
if daq_error_count is None:
stat = self.cafe.getStatus(pv_daq_error_count)
self.check_status(_pymodule, 'getCache', pv_daq_error_count, stat,
utils.line_no())
'''
# Put values in dictionary for inspection
# Put values in dictionary for inspection
for i, (dict_key) in enumerate(self.pv_value_dict.keys()):
self.pv_value_dict[dict_key] = value_list[i]
@@ -418,16 +416,14 @@ class AnalysisProcedure(QObject):
#Monitored in GUI
if not self.cafe.getMonitorIDs(pv_daq_ready):
print("MONITOR STARTED FOR ", pv_daq_ready, flush=True)
print('MONITOR STARTED FOR ', pv_daq_ready, flush=True)
self.cafe.monitor(pv_daq_ready)
if not self.cafe.getMonitorIDs(pv_daq_error_count):
#Now in GUI
print("MONITOR STARTED FOR ", pv_daq_error_count, flush=True)
print('MONITOR STARTED FOR ', pv_daq_error_count, flush=True)
self.cafe.monitor(pv_daq_error_count)
return ambient_data
def extract_peak_data(self):
@@ -438,14 +434,14 @@ class AnalysisProcedure(QObject):
else:
height = 0.005
#returns indices of peaks, and dictionary of properties
# returns indices of peaks, and dictionary of properties
y1_peaks_pre = signal.find_peaks(self.y1_sample, height=height,
distance=10)
print("peak length==>", len(y1_peaks_pre[1]['peak_heights']))
print('peak length==>', len(y1_peaks_pre[1]['peak_heights']))
if len(y1_peaks_pre[1]['peak_heights']) < 2:
return False
##y1_peaks_avg = np.average(y1_peaks_pre[1]['peak_heights'])
min_y1_p = np.min(y1_peaks_pre[1]['peak_heights'])
max_y1_p = np.max(y1_peaks_pre[1]['peak_heights'])
@@ -459,7 +455,7 @@ class AnalysisProcedure(QObject):
min_y2_p = np.min(y2_peaks_pre[1]['peak_heights'])
max_y2_p = np.max(y2_peaks_pre[1]['peak_heights'])
print(f'min and max value of peak {min_y2_p}, {max_y2_p}')
y2_height = min_y2_p * 0.9 # y2_peaks_avg * 0.566667
print(f'AVG = {y1_height}, {y2_height}', flush=True)
@@ -478,7 +474,8 @@ class AnalysisProcedure(QObject):
#peak_heights = y2_peaks_pre[1]['peak_heights']
#peak_indices = y2_peaks_pre[0]
#second_highest_peak_index = peak_indices[np.argpartition(peak_heights,-2)[-2]]
#second_highest_peak_index = peak_indices[
# np.argpartition(peak_heights,-2)[-2]]
#print("2nd highest peak", np.argpartition(peak_heights,-2))
return True
@@ -511,7 +508,7 @@ class AnalysisProcedure(QObject):
entry = entry.replace('\n', '')
val = entry.split('\t')
self.t_sample.append(float(t_inc))
self.y1_sample.append(float(val[1])*(-1))
self.y1_sample.append(float(val[1])*(-1))
self.y2_sample.append(float(val[2]))
t_inc += self.t_stepsize
@@ -570,19 +567,18 @@ class AnalysisProcedure(QObject):
return None
daq_error_count = self.cafe.getCache(pv_daq_error_count)
if daq_error_count is None:
stat = self.cafe.getStatus(pv_daq_error_count)
self.check_status(_pymodule, 'getCache', pv_daq_error_count,
stat, utils.line_no())
stat, utils.line_no())
elif daq_error_count:
mess = ('Results discarded as DAQ reports ' +
mess = ('Results discarded as DAQ reports ' +
f'{daq_error_count} errors')
self.parent.trigger_log_message.emit(
MsgSeverity.ERROR.name, _pymodule, utils.line_no(),
mess, {})
return None
self.parent.trigger_log_message.emit(
MsgSeverity.ERROR.name, _pymodule, utils.line_no(),
mess, {})
return None
# Read WF from EPICS and fill sample y1_sample, y2_sample
(self.y1_sample, self.y2_sample), status, status_list = \
@@ -598,7 +594,7 @@ class AnalysisProcedure(QObject):
#series = pd.Series(self.y1_sample)
#self.y1_sample = (series * (-1)).tolist()
#self.y1_sample = (series).tolist()
self.t_sample = [None] * len(self.y1_sample)
self.t_sample[0] = 0
t_inc = 0
@@ -623,10 +619,10 @@ class AnalysisProcedure(QObject):
peaks_found = self.extract_peak_data()
if not peaks_found:
mess = ('No peaks found! ' +
f'Measuremenmg procedure aborted.')
'Measuremenmg procedure aborted.')
self.parent.trigger_log_message.emit(
MsgSeverity.ERROR.name, _pymodule, utils.line_no(), mess, {})
if self.abort:
self.aborting(utils.line_no())
return None
@@ -669,7 +665,8 @@ class AnalysisProcedure(QObject):
self.normalized_amplitude_envelope_1 = (
self.y1_pulse - self.mean_amplitude_y1)/self.std_amplitude_y1
self.normalized_amplitude_envelope_2 = (
self.y2_pulse - self.mean_amplitude_y2)/(self.std_amplitude_y2*len(self.y2_pulse))
self.y2_pulse - self.mean_amplitude_y2)/(self.std_amplitude_y2*len(
self.y2_pulse))
self.corr_full = signal.correlate(
self.normalized_amplitude_envelope_2,
self.normalized_amplitude_envelope_1, mode='full', method='auto')
@@ -677,15 +674,13 @@ class AnalysisProcedure(QObject):
len(self.normalized_amplitude_envelope_2),
len(self.normalized_amplitude_envelope_1), mode='full')
self.lag_full = int(self.lags_full_array[np.argmax(self.corr_full)])
#self.delay = self.lag_full * self.t_stepsize*self.t_interval
self.delay = float(self.lag_full * self.pulse_stepsize)
print('peak height', np.max(self.corr_full))
top_peak_values = heapq.nlargest(2, self.corr_full)
print('1st peak height', top_peak_values[0])
top_peak_values = heapq.nlargest(2, self.corr_full)
print('1st peak height', top_peak_values[0])
print('2nd peak height', top_peak_values[1])
self.correlation_peak_diff = top_peak_values[0] - top_peak_values[1]
print(f'peak significance = {self.correlation_peak_diff:.3f}')
@@ -696,7 +691,7 @@ class AnalysisProcedure(QObject):
print('harmonic', self.harmonic_no, flush=True)
print('dN pickup', self.dn_pickup, flush=True)
print(f'Correlation Peak Diff {self.correlation_peak_diff}')
print(f'Min Peak Height {self.signal_min_peak_height}')
print(f'Min Peak Height {self.signal_min_peak_height}')
print(f'Min Peak Distance {self.signal_min_peak_distance}')
self.n_turns = (
@@ -730,26 +725,30 @@ class AnalysisProcedure(QObject):
def make_figs(self):
''' Figure construction with matplotlib
'''
is_suspect = True if self.correlation_peak_diff < \
self.correlation_min_peak_diff else False
#if self.correlation_peak_diff < self.correlation_min_peak_diff:
# is_suspect = True
#else:
# is_suspect = False
is_suspect = bool(
self.correlation_peak_diff < self.correlation_min_peak_diff)
if is_suspect:
fontweight_main='normal'
fontweight='light'
color='red'
fontweight_main = 'normal'
fontweight = 'light'
color = 'red'
alpha = 0.4
else:
fontweight_main='bold'
fontweight='normal'
color='black'
fontweight_main = 'bold'
fontweight = 'normal'
color = 'black'
alpha = 1.0
fig, (ax) = plt.subplots(nrows=2, ncols=1,
figsize=(18, 9), layout='tight')
fig2, (ax2) = plt.subplots(nrows=1, ncols=1, figsize=(18, 9))
fig.patch.set_facecolor('#FAF9F6')
fig2.patch.set_facecolor('#FAF9F6')
ln = 500 # 500
off = 0 # 10000
s = off
@@ -794,14 +793,14 @@ class AnalysisProcedure(QObject):
ax2.plot([self.lag_full, self.lag_full], [line_start, line_end],
':', color='r')
ax2.set_ylim(line_start, line_end)
text = f'No of Turns = {self.n_turns:0.0f}'
plt.figtext(0.65, 0.82, self.accelerator, fontweight='bold',
fontsize=16, color='black')
plt.figtext(0.65, 0.77, text, fontweight=fontweight_main, fontsize=16,
color=color, alpha=alpha)
if self.entry_current != 0:
current_text = f'I(entry) = {self.entry_current:.3f} mA'
plt.figtext(0.80, 0.86, current_text, fontweight='normal',
@@ -810,7 +809,6 @@ class AnalysisProcedure(QObject):
current_text = f'I(exit) = {self.exit_current:.3f} mA'
plt.figtext(0.8075, 0.84, current_text, fontweight='normal',
fontsize=10)
plt.figtext(0.7, 0.72, f'lag = {self.lag_full}', fontweight=fontweight,
fontsize=14, color=color, alpha=alpha)
@@ -820,9 +818,9 @@ class AnalysisProcedure(QObject):
color=color, alpha=alpha)
if is_suspect:
plt.figtext(0.80, 0.72, "Suspect!", fontweight='normal', fontsize=16,
color='blue', alpha=1.0, rotation=45)
plt.figtext(0.80, 0.72, 'Suspect!', fontweight='normal',
fontsize=16, color='blue', alpha=1.0, rotation=45)
if self.settings.data['GUI']['showDate'] == 1:
plt.figtext(0.75, 0.12, self.time_stamp, size='small')

View File

@@ -6,12 +6,14 @@ from qtpy.QtGui import QColor
from qtpy.QtCore import __version__ as QT_VERSION_STR
from qtpy.QtCore import Qt
from qtpy.QtWidgets import (
QGridLayout, QGroupBox, QLabel, QStackedWidget, QTabBar, QTabWidget, QWidget)
QGridLayout, QGroupBox, QLabel, QStackedWidget, QTabBar, QTabWidget,
QWidget)
from caqtwidgets.pvwidgets import CAQLabel
_pymodule = os.path.basename(__file__)
class AppGui(QWidget):
''' Main GUI class
'''
@@ -25,14 +27,10 @@ class AppGui(QWidget):
self.check_status = self.parent.check_status
self.check_status_list = self.parent.check_status_list
self.elog_enum = self.parent.elog_enum
self.accelerator_list = [self.parent.injector_2,
self.parent.ring_cyclotron]
self.accelerator_list = self.parent.accelerator_list
self.send_to_log_window = self.parent.send_to_log_window
self.show_log_message = self.parent.show_log_message
self.statusbar = self.parent.statusbar
self.gui_frame = self.parent.gui_frame
self.gui_header = self.parent.gui_header
self.font_gui = self.parent.gui_frame.font_gui
@@ -40,15 +38,15 @@ class AppGui(QWidget):
self.input_labels = self.parent.input_labels
self.expert_parameters = self.parent.expert_parameters
self.gui_frame.expert_parameters_group.setFixedWidth(310)
self.gui_frame.expert_parameters_group.setFixedHeight(340)
self.gui_frame.expert_parameters_group.setFixedHeight(290)
self.gui_frame.operator_parameters_group.setFixedWidth(260)
self.gui_frame.operator_parameters_group.setFixedHeight(380)
self.gui_frame.measurement_tab_wgt.setFixedWidth(496)
self.gui_frame.measurement_tab_wgt.setFixedHeight(460)
self.gui_frame.operator_wgt.setFixedHeight(640)
#self.gui_frame.expert_wgt.setFixedHeight(240)
# self.gui_frame.expert_wgt.setFixedHeight(240)
#DAQ
# DAQ
self.daq_wgt = self.daq_group_qtabwidget(widget_type='QStackedWidget')
self.gui_frame.measurement_layout.addWidget(
self.daq_wgt, 0, 1, 1, 1, alignment=Qt.AlignTop)
@@ -56,7 +54,7 @@ class AppGui(QWidget):
self.daq_wgt.setCurrentIndex(self.parent.default_idx)
self.daq_wgt.currentChanged.emit(self.parent.default_idx)
#Accelerator Current
# Accelerator Current
self.current_wgt = self.accelerator_current_group_qtabwidget(
widget_type='QStackedWidget')
self.gui_frame.measurement_layout.addWidget(
@@ -66,30 +64,33 @@ class AppGui(QWidget):
self.current_wgt.currentChanged.emit(self.parent.default_idx)
choice_wgt = self.gui_frame.line_sender_dict['signalPeakSearch']
choice_wgt.name = "Expert"
choice_wgt.name = 'Expert'
self.gui_frame.line_sender_dict['signalSearch'] = choice_wgt
choice_wgt = self.gui_frame.line_sender_dict['accelerator']
choice_wgt.name = "Operator"
choice_wgt.name = 'Operator'
self.gui_frame.line_sender_dict['accelerator'] = choice_wgt
#On change Injector/Cyclotron
# On change Injector/Cyclotron
self.gui_frame.line_sender_dict[
'accelerator'].currentChanged.connect(self.cb_accelerator)
self.gui_frame.line_sender_dict[
'signalPeakSearch'].currentChanged.connect(self.cb_accelerator)
# self.gui_frame.line_sender_dict[
# 'signalPeakSearch'].currentChanged.connect(self.cb_accelerator)
def cb_accelerator(self, idx):
self.daq_wgt.setCurrentIndex(idx)
self.current_wgt.setCurrentIndex(idx)
_sender = self.sender().name
#is_sender = self.sender().name
#print(_sender, flush=True)
if "Expert" in _sender:
self.gui_frame.line_sender_dict[
'signalPeakSearch'].setCurrentIndex(idx)
'''
if "Expert" in is_sender:
self.gui_frame.line_sender_dict[
'signalPeakSearch'].blockSignals(True)
self.gui_frame.line_sender_dict['accelerator'].setCurrentIndex(idx)
self.gui_frame.line_sender_dict[
'signalPeakSearch'].blockSignals(False)
else:
self.gui_frame.line_sender_dict[
'accelerator'].blockSignals(True)
@@ -97,6 +98,7 @@ class AppGui(QWidget):
'signalPeakSearch'].setCurrentIndex(idx)
self.gui_frame.line_sender_dict[
'accelerator'].blockSignals(False)
'''
def daq_group_qtabwidget(self, widget_type='QStackedWidget'):
accel_wgt_dict = {}
@@ -143,14 +145,14 @@ class AppGui(QWidget):
vbox.addWidget(QLabel('DAQ Trigger:'), 0, 0)
vbox.addWidget(QLabel('DAQ Ready:'), 1, 0)
vbox.addWidget(QLabel('Error Count:'), 2, 0)
pv_widget = [None] * len(pv_daq)
for i, pv in enumerate(pv_daq):
pv_widget[i] = CAQLabel(self, pv_name=pv)
vbox.addWidget(pv_widget[i], i, 1)
fwidth = 40 if 'ERR-CNT' not in pv else 60
pv_widget[i].setFixedWidth(fwidth)
vbox.setContentsMargins(9, 19, 9, 9)
vbox.setSpacing(5)
vbox.setAlignment(Qt.AlignTop | Qt.AlignHCenter)
@@ -167,7 +169,6 @@ class AppGui(QWidget):
return qw
def accelerator_current_group_qtabwidget(
self, widget_type='QStackedWidget'):
accel_wgt_dict = {}
@@ -197,7 +198,6 @@ class AppGui(QWidget):
accel_tab_widget.setFixedHeight(180)
return accel_tab_widget
def accelerator_current_group(self, accel):
group_box = QGroupBox(f'{accel} Current')
obj_name = 'CYCLOTRON' if self.parent.ring_cyclotron in accel else \
@@ -213,14 +213,14 @@ class AppGui(QWidget):
vbox.addWidget(QLabel('I at Entry:'), 0, 0)
vbox.addWidget(QLabel('I at Exit:'), 1, 0)
pv_widget = [None] * len(pv_name)
for i, pv in enumerate(pv_name):
pv_widget[i] = CAQLabel(self, pv_name=pv, show_units=True)
vbox.addWidget(pv_widget[i], i, 1)
fwidth = 120
pv_widget[i].setFixedWidth(fwidth)
vbox.setContentsMargins(9, 19, 9, 9)
vbox.setSpacing(5)
vbox.setAlignment(Qt.AlignTop | Qt.AlignHCenter)
@@ -235,4 +235,4 @@ class AppGui(QWidget):
grid.addWidget(group_box, 0, 0)
qw.setLayout(grid)
return qw
return qw

View File

@@ -53,12 +53,12 @@
"Injector": {
"peakHeight": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak height:", "value" : 50 }},
"peakDistance": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak distance: ", "value" : 10 }},
"correlationPeakDifference": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min d(corr):", "value" : 0.01}}
"correlationPeakDifference": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min dcorr(peak1-peak2):", "value" : 0.01}}
},
"Cyclotron": {
"peakHeight": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak height:", "value" : 50 }},
"peakDistance": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak distance: ", "value" : 10 }},
"correlationPeakDifference": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min d(corr):", "value" : 0.01 }}
"correlationPeakDifference": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min dcorr(peak1-peak2):", "value" : 0.01 }}
}
},
@@ -75,7 +75,7 @@
},
"Expert":{
"signalPeakSearch" : {"flag" : 1, "data":{ "widget": "QTabWidget", "text" : "Accelerator: ",
"signalPeakSearch" : {"flag" : 1, "data":{ "widget": "QStackedWidget", "text" : "Accelerator: ",
"link" : "QTabSignalPeakSearch", "value" : 1,
"color" : ["#008b8b", "#0047ab" ]}},
"debug": {"flag" : 1, "data":{ "widget": "None", "text" : "Debug", "value" : 0}},

101
tina.py
View File

@@ -20,41 +20,44 @@ from apps4ops.hipa.enumkind import ElogHIPA
from src.gui import AppGui
from pyrcc5 import tina_resources
#try:
# import pyscan
# import pyscan.interface.pyScan as PyScan
#except:
# sys.path.append('/hipa/bd/applications/deps/apps4ops/v1.12.0/common/packages/')
#or insert to jump the queue
#sys.path.insert(0,'/hipa/bd/applications/deps/apps4ops/v1.12.0/common/packages/')
# import pyscan
# import pyscan.interface.pyScan as PyScan
# print("from common.packages import pyscan")
_pymodule = os.path.basename(__file__)
_appname, _appext = _pymodule.split('.')
_abspath = os.path.dirname(os.path.abspath(__file__))
_appversion = '0.0.1'
_appversion = '0.0.2'
_title = 'No of Turns Measurement'
_appname = 'Tina'
class StartMain(BaseWindow):
''' Application to measure the no of turns in Injector 2 and the
Ring Cyclotron
'''Application to measure the no of turns in Injector 2 and the
Ring Cyclotron.
A python implementation of the LabView application developed by
Pierre-Andre Duperrex
Attributes:
appname: tina.py
source_file: full pathname for inclusion into HDF.
elog_enum: enumerated datatypes for elog attributes.
message_elog: string to hold the elogbook message.
self.default_idx: int to indicate default accelerator.
self.accelerator: str to indicate default accelerator.
self.message: string to hold message to gui log pane.
'''
ring_cyclotron = 'Cyclotron'
injector_2 = 'Injector'
accelerator_list = [injector_2, ring_cyclotron]
def __init__(self, parent=None):
'''Initialize class attrinbutes and instantiate GUI.'''
super().__init__(
parent=parent, pymodule=_pymodule, appversion=_appversion,
title=_title, user_mode=UserMode.OPERATION, facility=Facility.HIPA,
has_optics=False, has_procedure=True)
self.appname = _appname
self.source_file = _abspath # required for HDF
self.source_file = _abspath
self.elog_enum = ElogHIPA()
self.message_elog = None
self.default_idx = self.settings.data['Parameters']['accelerator'][
@@ -63,18 +66,20 @@ class StartMain(BaseWindow):
self.injector_2
# self.from_hdf = False in base class
self.message = ''
self.gui = AppGui(self)
AppGui(self)
def prepare_results_message(self):
"""Prepare results message
"""
'''Prepare results messages
'''
try:
self.no_turns = self.all_data['Processed data']['nturns']
lag_full = self.all_data['Processed data']['lag']
delay = self.all_data['Processed data']['delay']
self.correlation_peak_diff = self.all_data['Processed data']['correlation_peak_diff']
self.correlation_min_peak_diff = self.all_data['Processed data']['correlation_min_peak_diff']
self.correlation_peak_diff = self.all_data['Processed data'][
'correlation_peak_diff']
self.correlation_min_peak_diff = self.all_data['Processed data'][
'correlation_min_peak_diff']
except KeyError:
self.message = ''
self.message_elog = ''
@@ -82,11 +87,13 @@ class StartMain(BaseWindow):
try:
self.accelerator = self.all_data['Input data']['accelerator']
except KeyError as ex:
self.logger.debug(f'KeyError {ex}')
logger_mess = f'KeyError {str(ex)}'
self.logger.debug(logger_mess)
try:
self.accelerator = self.all_data['Input data']['qtabdata']
except KeyError as ex:
self.logger.debug(f'KeyError {ex}')
logger_mess = f'KeyError {str(ex)}'
self.logger.debug(logger_mess)
mess = 'Reanalysis from HDF5. ' if self.from_hdf else ''
@@ -133,6 +140,9 @@ class StartMain(BaseWindow):
self.title = _title
def verify_analysis_preconditions(self):
'''Verify machine is setup for measurement procedure-
Check machine current is above threshold (1 mA)
'''
if self.injector_2 in self.input_parameters['accelerator']:
mess = ('Measurement procedure for Injector 2 \n' +
'has not yet been implementented.')
@@ -140,15 +150,15 @@ class StartMain(BaseWindow):
QApplication.processEvents()
return False
if self.input_parameters['simulation']:
return True
return True
#return True
injector_current = self.cafe.getCache("MWC2:IST:2")
injector_current = self.cafe.getCache('MWC2:IST:2')
if not injector_current:
stat = self.cafe.getStatus("MWC2:IST:2")
stat = self.cafe.getStatus('MWC2:IST:2')
self.check_status(_pymodule, 'getCache', injector_current, stat,
utils.line_no())
mess = ('Unable to read Injector 2 current\n' +
@@ -158,15 +168,17 @@ class StartMain(BaseWindow):
return False
elif injector_current < 0.001:
mess = ('Injector 2 current is below threshold.\n' +
'Measurememt cannot be untertaken at the present time.')
'Measurement cannot be untertaken at the present time.')
QMessageBox.information(self, 'Cyclotron', mess, QMessageBox.Ok)
QApplication.processEvents()
return False
return True
@Slot()
def analysis_thread_finished(self):
'''If analysis completed successfuly, prepare results message.
'''
BaseWindow.analysis_thread_finished(self)
if self.all_data is not None:
try:
@@ -193,6 +205,9 @@ class StartMain(BaseWindow):
@Slot()
def hdf_thread_finished(self):
'''If hdf analysis completed successfuly, prepare results
message.
'''
BaseWindow.hdf_thread_finished(self)
self.prepare_results_message()
self.show_log_message(MsgSeverity.INFO, _pymodule, utils.line_no(),
@@ -200,10 +215,11 @@ class StartMain(BaseWindow):
@Slot()
def save_to_hdf_dialog(self):
'''Save to hdf via the HDF dialogue window in menu bar.
'''
if self.from_hdf:
mess = ('This is a repeat analysis from HDF. \n' +
'Saving duplicate data to HDF is declined.')
'Saving duplicate data to HDF is declined.')
QMessageBox.information(self, 'HDF', mess, QMessageBox.Ok)
QApplication.processEvents()
@@ -213,12 +229,14 @@ class StartMain(BaseWindow):
@Slot()
def save_to_hdf(self, from_dialog=False):
'''Save to hdf via pilot mode.
'''
if not self.verify_save_to_hdf():
return False
if self.from_hdf:
mess = ('This is a repeat analysis from HDF. \n' +
'Saving duplicate data to HDF is declined.')
'Saving duplicate data to HDF is declined.')
QMessageBox.information(self, 'HDF', mess, QMessageBox.Ok)
QApplication.processEvents()
@@ -233,7 +251,7 @@ class StartMain(BaseWindow):
time.sleep(0.05) # Wait a tick
return True
def add_to_hdf(self, datah5, proc=True, raw=False):
def add_to_hdf(self, dataH5, proc=True, raw=False):
'''User supplied hdf data
'''
if self.all_data is not None:
@@ -248,7 +266,7 @@ class StartMain(BaseWindow):
all_data['Raw data']['Raw_data'] = self.all_data[
'Raw data']
h5_storage.saveH5Recursive(
self.hdf_filename, all_data['Raw data'], datah5)
self.hdf_filename, all_data['Raw data'], dataH5)
@Slot()
def send_to_elog(self):
@@ -325,11 +343,12 @@ class StartMain(BaseWindow):
return False
if self.correlation_peak_diff < self.correlation_min_peak_diff:
mess = (f'Measurement is suspect as difference in top two peak \n' +
mess = ('Measurement is suspect as difference in top two peak \n' +
'values of ' +
f'{self.peak_diff:0.3f} is less than accepted minimum ' +
f'of {self.correlation_min_peak_diff:0.3f}. \n' +
f'Analysis result is not saved to EPICS!')
'Analysis result is not saved to EPICS!')
QMessageBox.information(self, 'EPICS', mess, QMessageBox.Ok)
QApplication.processEvents()
@@ -343,7 +362,7 @@ class StartMain(BaseWindow):
pv = self.settings.data['PV']['Cyclotron']['nturns']
dict_bunch[pv] = nturns
status,_ = self.send_to_epics(dict_bunch)
status, _ = self.send_to_epics(dict_bunch)
if status == self.cyca.ICAFE_NORMAL:
mess = f'Saved data to EPICS; No turns = {nturns}'
sev = MsgSeverity.INFO
@@ -356,7 +375,7 @@ class StartMain(BaseWindow):
@Slot()
def closeEvent(self, event):
'''Close application only if conditions allow
'''Close application only if conditions allow.
'''
if not self.verify_close_event():
event.ignore()
@@ -404,7 +423,9 @@ class StartMain(BaseWindow):
#########################################################################
if __name__ == '__main__':
'''Initialize window parameters and start application via a splash
window.
'''
app = QApplication(sys.argv)
splash = BaseWindow.initialize_application(
app, appname=_appname, delay=5, facility=Facility.HIPA)

View File

@@ -24,7 +24,7 @@ _EPICS_BASE=base-7.0.8
# Select Python Version here. Currently one of 3.5, 3.7, 3.8 and 3.10
PYTHON_VERSION=3.10
#cafe-1.20.0-gcc-7.5.0
PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.12.0
PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.13.0
if [ "$1" ]; then