12 Commits

Author SHA1 Message Date
Jan Chrin 575c74564a json for injector2 2026-03-23 11:56:34 +01:00
Jan Chrin 0c275b723f update help 2026-03-23 10:39:12 +01:00
chrin 5476f36cd3 added injector2 2025-12-10 12:40:25 +01:00
chrin f8b3479715 hilbert transform; reset full_lags_array in set_input_parameters 2025-08-06 16:33:32 +02:00
chrin 0992667ded 1.3.0 2025-07-24 17:32:35 +02:00
chrin 9055baad4a Updated PVs related to new HIPA clock, 3036 MHz sampling frequency 2025-07-17 12:21:07 +02:00
chrin 7267bc30e3 added reverse polarity flag 2025-07-17 09:12:46 +02:00
chrin 14ba366861 increased peak threshold in json file 2025-06-24 14:55:54 +02:00
chrin 7ac791c214 update gui 2025-06-10 15:28:18 +02:00
chrin 5bfd9c68c6 Added related display 2025-04-28 15:03:07 +02:00
chrin 52c3b68457 json file modifiedf 2025-04-28 12:54:50 +02:00
chrin 38ac0a2b46 adapted to new hardware; input parameters made configurable 2025-04-09 14:52:00 +02:00
9 changed files with 2116 additions and 1157 deletions
+73 -56
View File
@@ -1,7 +1,8 @@
<html><head><title>Time of Flight Measuement for Injector and Ring Cyclotron Turn Number Ascertainment, TINA</title></head>
<body>
<h5 style="color:gray;">June 2024, Jan Chrin, Pierre-Andr&eacute; Duperrex, Alessandro Facchetti, Waldamar Koprek</h5>
<h5 style="color:gray;">Jan Chrin, Pierre-Andr&eacute; Duperrex, Alessandro Facchetti, Daniele Felici, Waldamar Koprek, Jilei Sun<br>April 2025</h5>
<h4> <span style="color: red;">T</span>ime of Flight Measurement for <span style="color: red;">I</span>njector and Ring Cyclotron Turn <span style="color: red;">N</span>umber <span style="color: red;">A</span>scertainment, <span style="color: red;">TINA</span></h4>
<h2 style="color:blue;">About</h2>
@@ -14,9 +15,12 @@ Pierre-Andr&eacute; Duperrex: <br>
P.-A. Duperrex and A. Facchetti,
Number of Turn Measurements on the HIPA Cyclotrons at PSI.<br>
doi:10.18429/JACoW-IPAC2018-WEPAL067
</p>
<h3 style="color:#7b68ee;">Changelog</h3>
August 2025: Hilbert transform applied to signals.<br>
March 2026: Injector 2
</p>
<!--a href="page1.html">here</a></p-->
<h2 style="color:blue;">The Repository</h2>
@@ -24,22 +28,23 @@ doi:10.18429/JACoW-IPAC2018-WEPAL067
<p>The application comprises two components:
<ul>
<li>
The low-level ADC data acquisition system.<br>
<span style="color: green;">https://git.psi.ch/epics_iocboot_hipa/.. to be completed</span><br>
The low-level ADC data acquisition system is detailed in the following repositories:<br>
<span style="color: green;">https://gitea.psi.ch/CAS_CO_GENERIC_CPSI_SCOPE/cpsi_scope</span><br>
<span style="color: green;">https://gitea.psi.ch/epics_iocboot_hipa/z_di_turn_count</span><br>
</li>
<li>
A High Level Application (HLA) that is able to interact with the IOC, start a low-level data acquistion run,
acquire the raw data, and perform the number of terms analysis.<br>
<span style="color: green;"> https://gitlab.psi.ch/hipa_apps4ops/tina</span><br>
<span style="color: green;"> https://gitea.psi.ch/hipa_apps4ops/tina</span><br>
<span style="color: gray;"> /hipa/bd/applications/tina/latest/tina.sh</span>
</li>
</ul>
<h2 style="color:blue;">GUI, Control Tab</h2>
Main panel for use by operators.
<h3 style="color:#7b68ee;">Operator Panel</h3>
<h3 style="color:#7b68ee;">Accelerator Panel</h3>
Input parameters to analysis routine, as configured in tina.json.<br>
The Injector has NOT yet been implemented into the application.
<table width=400>
<tr> <td>
<table>
@@ -70,14 +75,68 @@ doi:10.18429/JACoW-IPAC2018-WEPAL067
<tr><td>Harmonic No.</td> <td align=center>10</td></tr>
<tr><td>dT Cable (ns)</td> <td align=center>6.9</td></tr>
<tr><td>dN Pickup</td> <td align=center>4</td></tr>
<tr><td>Mod. Freq. (GHz) &nbsp;</td> <td align=center>500</td></tr>
<tr><td>Duty Cycle (%)</td> <td align=center>1</td></tr>
</table>
</td>
</tr>
</table>
<p>
Within the Procedure group, the Start buttonn executes the analysis program
<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.
<p>
<table width=1400px>
<tr> <td>
<table width=1000px>
<!--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 at Entry:</td> <td align=center>50</td></tr>
<tr><td>Minimum Peak Height at Exit:</td> <td align=center>50</td></tr>
<tr><td>Minimum distance between peaks</td> <td align=center>10</td></tr>
<tr><td width=80%>Minimim difference in correlation between top two peaks:</td> <td valign=bottom align=center>0.01</td></tr>
<tr>
<td>Minimum Current in Injector:</td> <td align=center>1.0</td>
</tr>
</table>
</td> <td width=20> &nbsp; </td>
<td> <table width=200px>
<!--caption>
<h4 style="color:#008b8b;">Injector</h4>
</caption-->
<thead>
<tr>
<th align=center style="color:#008b8b;">Injector</th>
</tr>
</thead>
<tr><td align=center>-600</td></tr>
<tr><td align=center>320</td></tr>
<tr><td align=center>20</td></tr>
<tr><td align=center>&nbsp;</td></tr>
<tr><td align=center>0.005</td></tr>
<tr><td align=center>0.1</td></tr>
</table>
</td>
</tr>
</table>
<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
<p>
<h4 style="color:#7b68ee;">Procedure</h4>
Within the Procedure group, the Start button executes the analysis program
which usually takes less than 10 seconds to complete. 3'010'560 samples are
collected per channel (entry wf/exit wf).
<p>
@@ -90,57 +149,15 @@ collected per channel (entry wf/exit wf).
<li>opens a dialog window for submission to the selected elog book.
</li>
</ul>
These actions can also be executed individually through icons placed in the menu bar.
<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>
<table>
<tr><td>
+446 -415
View File
@@ -2,391 +2,22 @@
# Resource object code
#
# Created by: The Resource Compiler for PyQt5 (Qt v5.9.7)
# Created by: The Resource Compiler for PyQt5 (Qt v5.15.3)
#
# 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\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x32\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\
\x22\x70\x61\x67\x65\x33\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\
@@ -740,84 +371,484 @@ qt_resource_data = b"\
\xfb\xfc\x44\x1d\x14\xe7\x0f\x15\x4f\x1b\x10\x93\x79\xdc\x62\xb1\
\x2b\x03\x09\x82\xd2\xa9\x73\xad\x8f\x92\xd8\xc0\x90\xee\xb1\xdf\
\xb1\xd9\x53\x50\xd0\xde\x4b\x2f\xff\x00\xff\xd9\
\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\x32\x20\x6f\
\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\x33\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
\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\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\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\x16\x9f\
\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\x20\x20\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\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\x44\x61\x6e\
\x69\x65\x6c\x65\x20\x46\x65\x6c\x69\x63\x69\x2c\x20\x57\x61\x6c\
\x64\x61\x6d\x61\x72\x20\x4b\x6f\x70\x72\x65\x6b\x2c\x20\x4a\x69\
\x6c\x65\x69\x20\x53\x75\x6e\x3c\x62\x72\x3e\x41\x70\x72\x69\x6c\
\x20\x32\x30\x32\x35\x3c\x2f\x68\x35\x3e\x0a\x20\x20\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\x3c\x2f\x70\x3e\x0a\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\x43\x68\x61\x6e\x67\x65\x6c\x6f\
\x67\x3c\x2f\x68\x33\x3e\x0a\x41\x75\x67\x75\x73\x74\x20\x32\x30\
\x32\x35\x3a\x20\x48\x69\x6c\x62\x65\x72\x74\x20\x74\x72\x61\x6e\
\x73\x66\x6f\x72\x6d\x20\x61\x70\x70\x6c\x69\x65\x64\x20\x74\x6f\
\x20\x73\x69\x67\x6e\x61\x6c\x73\x2e\x3c\x62\x72\x3e\x0a\x4d\x61\
\x72\x63\x68\x20\x32\x30\x32\x36\x3a\x20\x49\x6e\x6a\x65\x63\x74\
\x6f\x72\x20\x32\x0a\x0a\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\
\x20\x69\x73\x20\x64\x65\x74\x61\x69\x6c\x65\x64\x20\x69\x6e\x20\
\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x72\x65\
\x70\x6f\x73\x69\x74\x6f\x72\x69\x65\x73\x3a\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\x65\x61\x2e\x70\x73\x69\x2e\
\x63\x68\x2f\x43\x41\x53\x5f\x43\x4f\x5f\x47\x45\x4e\x45\x52\x49\
\x43\x5f\x43\x50\x53\x49\x5f\x53\x43\x4f\x50\x45\x2f\x63\x70\x73\
\x69\x5f\x73\x63\x6f\x70\x65\x3c\x2f\x73\x70\x61\x6e\x3e\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\x65\x61\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\x7a\x5f\x64\x69\x5f\x74\x75\
\x72\x6e\x5f\x63\x6f\x75\x6e\x74\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\x65\x61\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\x41\x63\x63\x65\x6c\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\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\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\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\x3c\x70\x3e\x20\x20\x0a\x20\x3c\x74\x61\x62\
\x6c\x65\x20\x77\x69\x64\x74\x68\x3d\x31\x34\x30\x30\x70\x78\x3e\
\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x20\x3c\x74\x64\x3e\x0a\x09\
\x3c\x74\x61\x62\x6c\x65\x20\x77\x69\x64\x74\x68\x3d\x31\x30\x30\
\x30\x70\x78\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\
\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\x20\x61\x74\x20\x45\
\x6e\x74\x72\x79\x3a\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\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\x20\x61\x74\x20\x45\x78\x69\x74\x3a\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\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\x0a\x3c\x74\x72\x3e\
\x3c\x74\x64\x20\x77\x69\x64\x74\x68\x3d\x38\x30\x25\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\
\x62\x65\x74\x77\x65\x65\x6e\x20\x74\x6f\x70\x20\x74\x77\x6f\x20\
\x70\x65\x61\x6b\x73\x3a\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\
\x76\x61\x6c\x69\x67\x6e\x3d\x62\x6f\x74\x74\x6f\x6d\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\x3c\x74\x72\x3e\x0a\x3c\
\x74\x64\x3e\x4d\x69\x6e\x69\x6d\x75\x6d\x20\x43\x75\x72\x72\x65\
\x6e\x74\x20\x69\x6e\x20\x49\x6e\x6a\x65\x63\x74\x6f\x72\x3a\x3c\
\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\
\x65\x6e\x74\x65\x72\x3e\x31\x2e\x30\x3c\x2f\x74\x64\x3e\x0a\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\x20\x77\x69\x64\x74\x68\x3d\x32\
\x30\x30\x70\x78\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\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\x3c\x74\x72\x3e\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\
\x3d\x63\x65\x6e\x74\x65\x72\x3e\x2d\x36\x30\x30\x3c\x2f\x74\x64\
\x3e\x3c\x2f\x74\x72\x3e\x0a\x3c\x74\x72\x3e\x3c\x74\x64\x20\x61\
\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x33\x32\x30\x3c\
\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x3c\x74\x72\x3e\x3c\x74\
\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x32\
\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x0a\x3c\x74\x72\
\x3e\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\
\x72\x3e\x26\x6e\x62\x73\x70\x3b\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\
\x72\x3e\x0a\x3c\x74\x72\x3e\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\
\x3d\x63\x65\x6e\x74\x65\x72\x3e\x30\x2e\x30\x30\x35\x3c\x2f\x74\
\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x3c\x74\x72\x3e\x3c\x74\x64\x20\
\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x30\x2e\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\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\x3c\x70\x3e\x0a\x20\x3c\x68\x34\x20\x73\x74\x79\x6c\
\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x37\x62\x36\x38\x65\x65\
\x3b\x22\x3e\x50\x72\x6f\x63\x65\x64\x75\x72\x65\x3c\x2f\x68\x34\
\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\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\x20\x20\x54\x68\x65\x73\x65\x20\x61\x63\x74\
\x69\x6f\x6e\x73\x20\x63\x61\x6e\x20\x61\x6c\x73\x6f\x20\x62\x65\
\x20\x65\x78\x65\x63\x75\x74\x65\x64\x20\x69\x6e\x64\x69\x76\x69\
\x64\x75\x61\x6c\x6c\x79\x20\x74\x68\x72\x6f\x75\x67\x68\x20\x69\
\x63\x6f\x6e\x73\x20\x70\x6c\x61\x63\x65\x64\x20\x69\x6e\x20\x74\
\x68\x65\x20\x6d\x65\x6e\x75\x20\x62\x61\x72\x2e\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\x0a\x20\x20\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\
"
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\
\x08\x5a\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\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x08\
\x00\x44\x5a\x07\
\x00\x54\
\x00\x69\x00\x6e\x00\x61\x00\x2e\x00\x6a\x00\x70\x00\x67\
\x00\x0a\
\x08\x5a\x34\x9c\
\x08\x8a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x61\x00\x67\x00\x65\x00\x35\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\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\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\
"
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\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\
\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x16\xe0\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x17\x8b\
\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x18\x36\
\x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x16\x5c\
\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x18\xe1\
"
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\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\
\x00\x00\x01\x9a\xc0\x42\xbf\x55\
\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x16\xe0\
\x00\x00\x01\x9a\xc0\x42\xbf\x5e\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x94\x41\x4a\x3a\x25\
\x00\x00\x01\x9a\xc0\x42\xbf\x60\
\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x17\x8b\
\x00\x00\x01\x9a\xc0\x42\xbf\x62\
\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x18\x36\
\x00\x00\x01\x9a\xc0\x42\xbf\x64\
\x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x16\x5c\
\x00\x00\x01\x9a\xc0\x42\xbf\x65\
\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x18\xe1\
\x00\x00\x01\x9c\xf6\xcb\x11\x2f\
"
qt_version = QtCore.qVersion().split('.')
if qt_version < ['5', '8', '0']:
qt_version = [int(v) for v in QtCore.qVersion().split('.')]
if qt_version < [5, 8, 0]:
rcc_version = 1
qt_resource_struct = qt_resource_struct_v1
else:
+446 -415
View File
@@ -2,391 +2,22 @@
# Resource object code
#
# Created by: The Resource Compiler for PyQt5 (Qt v5.9.7)
# Created by: The Resource Compiler for PyQt5 (Qt v5.15.3)
#
# 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\
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x32\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\
\x22\x70\x61\x67\x65\x33\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\
@@ -740,84 +371,484 @@ qt_resource_data = b"\
\xfb\xfc\x44\x1d\x14\xe7\x0f\x15\x4f\x1b\x10\x93\x79\xdc\x62\xb1\
\x2b\x03\x09\x82\xd2\xa9\x73\xad\x8f\x92\xd8\xc0\x90\xee\xb1\xdf\
\xb1\xd9\x53\x50\xd0\xde\x4b\x2f\xff\x00\xff\xd9\
\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\x32\x20\x6f\
\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\x33\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
\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\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\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\x16\x9f\
\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\x20\x20\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\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\x44\x61\x6e\
\x69\x65\x6c\x65\x20\x46\x65\x6c\x69\x63\x69\x2c\x20\x57\x61\x6c\
\x64\x61\x6d\x61\x72\x20\x4b\x6f\x70\x72\x65\x6b\x2c\x20\x4a\x69\
\x6c\x65\x69\x20\x53\x75\x6e\x3c\x62\x72\x3e\x41\x70\x72\x69\x6c\
\x20\x32\x30\x32\x35\x3c\x2f\x68\x35\x3e\x0a\x20\x20\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\x3c\x2f\x70\x3e\x0a\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\x43\x68\x61\x6e\x67\x65\x6c\x6f\
\x67\x3c\x2f\x68\x33\x3e\x0a\x41\x75\x67\x75\x73\x74\x20\x32\x30\
\x32\x35\x3a\x20\x48\x69\x6c\x62\x65\x72\x74\x20\x74\x72\x61\x6e\
\x73\x66\x6f\x72\x6d\x20\x61\x70\x70\x6c\x69\x65\x64\x20\x74\x6f\
\x20\x73\x69\x67\x6e\x61\x6c\x73\x2e\x3c\x62\x72\x3e\x0a\x4d\x61\
\x72\x63\x68\x20\x32\x30\x32\x36\x3a\x20\x49\x6e\x6a\x65\x63\x74\
\x6f\x72\x20\x32\x0a\x0a\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\
\x20\x69\x73\x20\x64\x65\x74\x61\x69\x6c\x65\x64\x20\x69\x6e\x20\
\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x72\x65\
\x70\x6f\x73\x69\x74\x6f\x72\x69\x65\x73\x3a\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\x65\x61\x2e\x70\x73\x69\x2e\
\x63\x68\x2f\x43\x41\x53\x5f\x43\x4f\x5f\x47\x45\x4e\x45\x52\x49\
\x43\x5f\x43\x50\x53\x49\x5f\x53\x43\x4f\x50\x45\x2f\x63\x70\x73\
\x69\x5f\x73\x63\x6f\x70\x65\x3c\x2f\x73\x70\x61\x6e\x3e\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\x65\x61\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\x7a\x5f\x64\x69\x5f\x74\x75\
\x72\x6e\x5f\x63\x6f\x75\x6e\x74\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\x65\x61\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\x41\x63\x63\x65\x6c\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\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\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\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\x3c\x70\x3e\x20\x20\x0a\x20\x3c\x74\x61\x62\
\x6c\x65\x20\x77\x69\x64\x74\x68\x3d\x31\x34\x30\x30\x70\x78\x3e\
\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x20\x3c\x74\x64\x3e\x0a\x09\
\x3c\x74\x61\x62\x6c\x65\x20\x77\x69\x64\x74\x68\x3d\x31\x30\x30\
\x30\x70\x78\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\
\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\x20\x61\x74\x20\x45\
\x6e\x74\x72\x79\x3a\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\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\x20\x61\x74\x20\x45\x78\x69\x74\x3a\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\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\x0a\x3c\x74\x72\x3e\
\x3c\x74\x64\x20\x77\x69\x64\x74\x68\x3d\x38\x30\x25\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\
\x62\x65\x74\x77\x65\x65\x6e\x20\x74\x6f\x70\x20\x74\x77\x6f\x20\
\x70\x65\x61\x6b\x73\x3a\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\
\x76\x61\x6c\x69\x67\x6e\x3d\x62\x6f\x74\x74\x6f\x6d\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\x3c\x74\x72\x3e\x0a\x3c\
\x74\x64\x3e\x4d\x69\x6e\x69\x6d\x75\x6d\x20\x43\x75\x72\x72\x65\
\x6e\x74\x20\x69\x6e\x20\x49\x6e\x6a\x65\x63\x74\x6f\x72\x3a\x3c\
\x2f\x74\x64\x3e\x20\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\
\x65\x6e\x74\x65\x72\x3e\x31\x2e\x30\x3c\x2f\x74\x64\x3e\x0a\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\x20\x77\x69\x64\x74\x68\x3d\x32\
\x30\x30\x70\x78\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\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\x3c\x74\x72\x3e\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\
\x3d\x63\x65\x6e\x74\x65\x72\x3e\x2d\x36\x30\x30\x3c\x2f\x74\x64\
\x3e\x3c\x2f\x74\x72\x3e\x0a\x3c\x74\x72\x3e\x3c\x74\x64\x20\x61\
\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x33\x32\x30\x3c\
\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x3c\x74\x72\x3e\x3c\x74\
\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x32\
\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x0a\x3c\x74\x72\
\x3e\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\
\x72\x3e\x26\x6e\x62\x73\x70\x3b\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\
\x72\x3e\x0a\x3c\x74\x72\x3e\x3c\x74\x64\x20\x61\x6c\x69\x67\x6e\
\x3d\x63\x65\x6e\x74\x65\x72\x3e\x30\x2e\x30\x30\x35\x3c\x2f\x74\
\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x3c\x74\x72\x3e\x3c\x74\x64\x20\
\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\x3e\x30\x2e\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\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\x3c\x70\x3e\x0a\x20\x3c\x68\x34\x20\x73\x74\x79\x6c\
\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x37\x62\x36\x38\x65\x65\
\x3b\x22\x3e\x50\x72\x6f\x63\x65\x64\x75\x72\x65\x3c\x2f\x68\x34\
\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\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\x20\x20\x54\x68\x65\x73\x65\x20\x61\x63\x74\
\x69\x6f\x6e\x73\x20\x63\x61\x6e\x20\x61\x6c\x73\x6f\x20\x62\x65\
\x20\x65\x78\x65\x63\x75\x74\x65\x64\x20\x69\x6e\x64\x69\x76\x69\
\x64\x75\x61\x6c\x6c\x79\x20\x74\x68\x72\x6f\x75\x67\x68\x20\x69\
\x63\x6f\x6e\x73\x20\x70\x6c\x61\x63\x65\x64\x20\x69\x6e\x20\x74\
\x68\x65\x20\x6d\x65\x6e\x75\x20\x62\x61\x72\x2e\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\x0a\x20\x20\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\
"
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\
\x08\x5a\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\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x08\
\x00\x44\x5a\x07\
\x00\x54\
\x00\x69\x00\x6e\x00\x61\x00\x2e\x00\x6a\x00\x70\x00\x67\
\x00\x0a\
\x08\x5a\x34\x9c\
\x08\x8a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x61\x00\x67\x00\x65\x00\x35\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\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\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\
"
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\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\
\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x16\xe0\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x17\x8b\
\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x18\x36\
\x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x16\x5c\
\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x18\xe1\
"
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\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\
\x00\x00\x01\x9a\xc0\x42\xbf\x55\
\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x16\xe0\
\x00\x00\x01\x9a\xc0\x42\xbf\x5e\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x94\x41\x4a\x3a\x25\
\x00\x00\x01\x9a\xc0\x42\xbf\x60\
\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x17\x8b\
\x00\x00\x01\x9a\xc0\x42\xbf\x62\
\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x18\x36\
\x00\x00\x01\x9a\xc0\x42\xbf\x64\
\x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x16\x5c\
\x00\x00\x01\x9a\xc0\x42\xbf\x65\
\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x18\xe1\
\x00\x00\x01\x9c\xf6\xcb\x11\x2f\
"
qt_version = QtCore.qVersion().split('.')
if qt_version < ['5', '8', '0']:
qt_version = [int(v) for v in QtCore.qVersion().split('.')]
if qt_version < [5, 8, 0]:
rcc_version = 1
qt_resource_struct = qt_resource_struct_v1
else:
+267
View File
@@ -0,0 +1,267 @@
import h5py as hdf
import math
import numpy as np
from scipy import signal
from scipy.signal import hilbert
import sys
import matplotlib
import matplotlib.pyplot as plt
file = open('/hipa/bd/data/measurements/tina/C1--333--00000 1ms 800uA.dat','r')
content = file.readlines()
#print(content)
file.close()
t = []
y1 = []
y2 = []
yall1 = []
yall2 = []
idxall = []
#t_stepsize = 0.0000000004*50
t_stepsize = 1/(50.6328*10**6)/50 # 0.00000002
print(t_stepsize)
print(1/(2.5*10**9))
#t_stepsize = 1/(2.5*10**9)
t_offset = 2500002/2
t_inc = 0
for count, entry in enumerate(content[0:]):
entry=entry.replace('\n','')
val=entry.split(' ')
if count < 50:
print(count, val[0], val[1])
t_inc += t_stepsize
t.append(val[0])
yall1.append(float(val[1])*(-1))
#yall2.append(float(val[2]))
idxall.append(t_inc) #count
#if count < 200:
# break
# print(val[1], val[2], count, t_inc )
#if count > 300:
# sys.exit(0)
sys.exit()
start=12
stop=2500002
_y1 = []
_y2 = []
count = 0
t_inc = 0
idx = []
for val in range(start,stop,50):
_test1_array = yall1[val : val+50]
_test2_array = yall2[val : val+50]
_y1.append(np.array(_test1_array).max())
_y2.append(np.array(_test2_array).max())
count += 1
t_inc += t_stepsize
idx.append(t_inc)
idx = np.array(idx) - t_offset*t_stepsize
y1 = _y1
y2 = _y2
print(y1[0:50], y2[0:50] )
f1 = hdf.File('/hipa/bd/data/measurements/Tina_2024-09-13_15:57:07.h5','a')
#f1 = hdf.File('/hipa/bd/data/measurements/Tina_2024-07-03_15:44:14.h5','a') #5Tina_2024-08-07_10:41:04.h5','a')
grp = f1.require_group('Raw_data')
if 't' in grp:
del grp['t']
if 'y1' in grp:
del grp['y1']
if 't_idx' in grp:
del grp['t_idx']
if 'y2' in grp:
del grp['y2']
if 'yall1' in grp:
del grp['yall1']
if 'yall2' in grp:
del grp['yall2']
dset_yall1 = grp.create_dataset('yall1', data=yall1)
dset_yall2 = grp.create_dataset('yall2', data=yall2)
dset_t = grp.create_dataset("t", data=t)
dset_y1 = grp.create_dataset('y1', data=y1)
dset_y2 = grp.create_dataset('y2', data=y2)
dset_t_idx = grp.create_dataset("t_idx", data=idx)
print(dset_y1.name)
f1.close()
analytic_signal_1 = y1 #hilbert(y1)
amplitude_envelope_1 = np.abs(analytic_signal_1) #analytic_signal_1 #
analytic_signal_2 = y2 #hilbert(y2)
amplitude_envelope_2 = np.abs(analytic_signal_2) #analytic_signal_2 #
#amplitude_envelope_1, peaks1 = signal.find_peaks(y1, height=0.012)
#amplitude_envelope_2, peaks2 = signal.find_peaks(y2, height=0.015)
mean_amplitude_envelope_1 = np.mean(amplitude_envelope_1, keepdims=True)
mean_amplitude_envelope_2 = np.mean(amplitude_envelope_2, keepdims=True)
mean_amplitude_envelope_1 = np.mean(analytic_signal_1, keepdims=True)
mean_amplitude_envelope_2 = np.mean(analytic_signal_2, keepdims=True)
print(mean_amplitude_envelope_1, mean_amplitude_envelope_2)
normalized_amplitude_envelope_1 = (analytic_signal_1 - mean_amplitude_envelope_1) #/ (np.std(amplitude_envelope_1)) # * len(amplitude_envelope_1))
normalized_amplitude_envelope_2 = (analytic_signal_2 - mean_amplitude_envelope_2) #/ (np.std(amplitude_envelope_2))
#normalized_amplitude_envelope_1 = (amplitude_envelope_1 - mean_amplitude_envelope_1) #/ (np.std(amplitude_envelope_1)) # * len(amplitude_envelope_1))
#normalized_amplitude_envelope_2 = (amplitude_envelope_2 - mean_amplitude_envelope_2) #/ (np.std(amplitude_envelope_2))
#rms_amplitude_envelope_1 = np.sqrt(np.mean(normalized_amplitude_envelope_1**2))
#rms_amplitude_envelope_2 = np.sqrt(np.mean(normalized_amplitude_envelope_2**2))
#print(rms_amplitude_envelope_1, rms_amplitude_envelope_2)
#norm_1 = np.linalg.norm(amplitude_envelope_1)
#normalized_amplitude_envelope_1 = amplitude_envelope_1/norm_1
#norm_2 = np.linalg.norm(amplitude_envelope_2)
#normalized_amplitude_envelope_2 = amplitude_envelope_2/norm_2
print (normalized_amplitude_envelope_1[0:10])
print (amplitude_envelope_1[0:10])
'''
y2_peaks = signal.find_peaks(normalized_amplitude_envelope_2, height=0.005)
y1_peaks = signal.find_peaks(normalized_amplitude_envelope_1, height=0.002)
print(y2_peaks)
print(y1_peaks)
print(y1_peaks[0])
print(y1_peaks[1]['peak_heights'])
print("length y1 peaks", len(y1_peaks[0]))
print(y2_peaks[0])
print(y2_peaks[1]['peak_heights'])
print("length y2 peaks", len(y2_peaks[0]))
#sys.exit(1)
normalized_amplitude_envelope_1_p = y1_peaks[1]['peak_heights']
normalized_amplitude_envelope_2_p = y2_peaks[1]['peak_heights']
#normalized_amplitude_envelope_1_p = y1
#normalized_amplitude_envelope_2_p = y2
#sys.exit(0)
'''
y1_array = []
y2_array = []
'''
for i, val in enumerate(y1):
if (i in y1_peaks[0]):
_idx = np.where(y1_peaks[0] == i)[0][0]
y1_array.append(y1_peaks[1]['peak_heights'][_idx])
else:
y1_array.append(0)
for i, val in enumerate(y2):
if i in y2_peaks[0]:
_idx = np.where(y2_peaks[0] == i)[0][0]
y2_array.append(y2_peaks[1]['peak_heights'][_idx])
else:
y2_array.append(0)
'''
#print(len(y1_array))
#print(len(y2_array))
#sys.exit(0)
#normalized_amplitude_envelope_1_p = y1_array
#normalized_amplitude_envelope_2_p = y2_array
idx2 = []
idx_neg = []
#for val in reversed(idx[1:]):
# idx_neg.append(val * (-1))
#idx2 = idx + idx_neg
mid_time = idx[-1]/2
for val in idx:
idx_neg.append(val-mid_time)
#print(normalized_amplitude_envelope_1_p)
#print(normalized_amplitude_envelope_2_p)
#normalized_amplitude_envelope_1_p = y1
#normalized_amplitude_envelope_2_p = y2
corr = signal.correlate(normalized_amplitude_envelope_2, normalized_amplitude_envelope_1, mode='same', method='auto')/len(amplitude_envelope_1)
corr_full = signal.correlate(normalized_amplitude_envelope_2, normalized_amplitude_envelope_1, mode='full', method='auto') #/len(amplitude_envelope_1)
#corr_valid = signal.correlate(normalized_amplitude_envelope_1, normalized_amplitude_envelope_2, mode='valid', method='auto')
lags = signal.correlation_lags(len(normalized_amplitude_envelope_2), len(normalized_amplitude_envelope_1), mode='same')
lags_full = signal.correlation_lags(len(normalized_amplitude_envelope_2), len(normalized_amplitude_envelope_1), mode='full')
lags_full = lags_full #* t_stepsize
lags = lags #* t_stepsize
#lags_valid = signal.correlation_lags(len(normalized_amplitude_envelope_2), len(normalized_amplitude_envelope_1), mode='valid')
lag_full = lags_full[np.argmax(corr_full)]
lag = lags[np.argmax(corr)]
#lag_valid = lags_valid[np.argmax(corr_valid)]
#corr = corr/rms_amplitude_envelope_1/rms_amplitude_envelope_2
print("lag same/full", lag, lag_full)
print("lag same/full", lag * t_stepsize, lag_full * t_stepsize)
print("length lags", len(lags))
print("VALID", signal.correlate(normalized_amplitude_envelope_1, normalized_amplitude_envelope_2, mode='valid'))
#lags = signal.correlation_lags(len(amplitude_envelope_2), len(amplitude_envelope_1))
#corr4 = signal.correlate(analytic_signal_1, analytic_signal_2, mode='full')
print(len(y2))
print(len(amplitude_envelope_2))
print("max correlation", np.max(corr))
print("arg of max corrrelation", np.argmax(corr))
print("time index", idx[np.argmax(corr)])
#print(y1)
#y1 = [0.000231, -0.000273, 0.000206, 0.000408,
#0.000609, 0.000231, 0.000508, 0.000760,
#0.000433, 0.000206, 0.000231, 0.000130]
subplots = 4
ln=500
ln2=1239770
ln3=1260230
if subplots == 4:
fig, (ax) = plt.subplots(nrows=2, ncols=2, figsize=(18,9))
#ax1.yticks(np.arange(min(y1), max(y1), 1))
ax[0,0].ticklabel_format(useOffset=False, style='plain')
#ax[0,0].plot(idx[0:ln], amplitude_envelope_1[0:ln], 'b')
#y1
ax[0,0].plot(idxall[0:ln], yall1[0:ln], 'ro')
###ax[0,0].plot(idx[0:ln2], normalized_amplitude_envelope_1[0:ln2], 'ro')
#ax1.set_ylim([-0.05, 0.05])
#y2
###ax[1,0].plot(idx[0:ln2], normalized_amplitude_envelope_2[0:ln2], 'ro')
ax[1,0].plot(idxall[0:ln], yall2[0:ln], 'ro')
#ax[1,0].plot(idx[0:ln], amplitude_envelope_2[0:ln], 'g')
#else:
# fig, (ax3, ax4) = plt.subplots(2, figsize=(20,12))
ax[0,1].plot(lags[:], corr[:])
#ax3.plot(corr)
ax[1,1].plot(lags_full[:], corr_full[:], 'yo')
#start, end = ax1.get_ylim()
#start2, end2 = ax2.get_ylim()
#print(start, end)
#print(start2, end2)
#ax1.yaxis.set_ticks(np.arange(start, end, 10))
#ax2.yaxis.set_ticks(np.arange(start2, end2, 10))
plt.show()
+507 -152
View File
File diff suppressed because it is too large Load Diff
+115 -39
View File
@@ -1,13 +1,15 @@
'''Main panel gui interface
'''
import os
import subprocess
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, QPushButton, QStackedWidget, QTabBar,
QTabWidget, QWidget)
from caqtwidgets.pvwidgets import CAQLabel
@@ -37,32 +39,46 @@ class AppGui(QWidget):
self.input_parameters = self.parent.input_parameters
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(290)
self.gui_frame.expert_parameters_group.setFixedWidth(280)
self.gui_frame.expert_parameters_group.setFixedHeight(430)
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_parameters_group.setFixedHeight(400)
self.gui_frame.measurement_tab_wgt.setFixedWidth(516)
self.gui_frame.measurement_tab_wgt.setFixedHeight(580)
self.gui_frame.operator_wgt.setFixedHeight(640)
# self.gui_frame.expert_wgt.setFixedHeight(240)
# self.gui_frame.expert_wgt.layout().addWidget(
# self.low_level_ring_display(), 2, 0, 1, 1)
# self.gui_frame.expert_parameters_group.layout().addWidget(
# self.low_level_ring_display()) #, 12, 0, 1, 1)
self.gui_frame.expert_wgt.layout().setVerticalSpacing(30)
self.gui_frame.measurement_tab_wgt.setCurrentIndex(1)
self.gui_frame.measurement_tab_wgt.setTabText(0, 'Accelerator')
# 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)
self.daq_wgt, 0, 1, 1, 1, alignment=Qt.AlignTop | Qt.AlignLeft)
self.daq_wgt.setCurrentIndex(self.parent.default_idx)
self.daq_wgt.currentChanged.emit(self.parent.default_idx)
self.gui_frame.measurement_layout.setVerticalSpacing(0)
# Accelerator Current
self.current_wgt = self.accelerator_current_group_qtabwidget(
widget_type='QStackedWidget')
self.gui_frame.measurement_layout.addWidget(
self.current_wgt, 1, 1, 1, 1, alignment=Qt.AlignTop)
self.current_wgt, 1, 1, 1, 1,
alignment=Qt.AlignTop | Qt.AlignLeft)
self.low_level_wgt = self.low_level_display_group_qtabwidget()
self.gui_frame.measurement_layout.addWidget(
self.low_level_wgt, 2, 1, 1, 1,
alignment=Qt.AlignTop | Qt.AlignLeft)
self.current_wgt.setCurrentIndex(self.parent.default_idx)
self.current_wgt.currentChanged.emit(self.parent.default_idx)
self.low_level_wgt.setCurrentIndex(self.parent.default_idx)
self.low_level_wgt.currentChanged.emit(self.parent.default_idx)
choice_wgt = self.gui_frame.line_sender_dict['signalPeakSearch']
choice_wgt.name = 'Expert'
self.gui_frame.line_sender_dict['signalSearch'] = choice_wgt
@@ -79,27 +95,10 @@ class AppGui(QWidget):
def cb_accelerator(self, idx):
self.daq_wgt.setCurrentIndex(idx)
self.current_wgt.setCurrentIndex(idx)
#is_sender = self.sender().name
#print(_sender, flush=True)
self.low_level_wgt.setCurrentIndex(idx)
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)
self.gui_frame.line_sender_dict[
'signalPeakSearch'].setCurrentIndex(idx)
self.gui_frame.line_sender_dict[
'accelerator'].blockSignals(False)
'''
def daq_group_qtabwidget(self, widget_type='QStackedWidget'):
accel_wgt_dict = {}
@@ -125,7 +124,7 @@ class AppGui(QWidget):
accel_tab_widget.addWidget(accel_wgt_dict[accel])
accel_tab_widget.setFixedWidth(320)
accel_tab_widget.setFixedHeight(160)
# accel_tab_widget.setFixedHeight(160)
return accel_tab_widget
def daq_group(self, accel):
@@ -138,26 +137,62 @@ class AppGui(QWidget):
pv_daq.append(self.settings.data['PV'][accel]['daqTrigger'])
pv_daq.append(self.settings.data['PV'][accel]['daqReady'])
pv_daq.append(self.settings.data['PV'][accel]['daqErrorCount'])
pv_daq.append(self.settings.data['PV'][accel]['daqWindow'])
pv_daq.append(self.settings.data['PV'][accel]['samplingFreq'])
pv_daq.append(self.settings.data['PV'][accel]['samplingNum'])
self.cafe.openPrepare()
self.cafe.open(pv_daq)
self.cafe.openNowAndWait(1.0)
vbox.addWidget(QLabel('DAQ Trigger:'), 0, 0)
vbox.addWidget(QLabel('DAQ Ready:'), 1, 0)
vbox.addWidget(QLabel('Error Count:'), 2, 0)
vbox.addWidget(QLabel('DAQ Count:'), 1, 0)
vbox.addWidget(QLabel('Read Error Count:'), 2, 0)
vbox.addWidget(QLabel('DAQ Window:'), 3, 0)
vbox.addWidget(QLabel('Sampling Freq:'), 4, 0)
vbox.addWidget(QLabel('No Samples:'), 5, 0)
pv_widget = [None] * len(pv_daq)
for i, pv in enumerate(pv_daq):
pv_widget[i] = CAQLabel(self, pv_name=pv)
pv_widget[i] = CAQLabel(self, pv_name=pv, show_units=True)
vbox.addWidget(pv_widget[i], i, 1)
fwidth = 40 if 'ERR-CNT' not in pv else 60
#fwidth = 100 if 'ERR-CNT' not in pv else 100
fwidth = 120 if 'SMP' in pv or 'WINDOW' in pv else 60
pv_widget[i].setFixedWidth(fwidth)
vbox.setContentsMargins(9, 19, 9, 9)
vbox.setSpacing(5)
vbox.setAlignment(Qt.AlignTop | Qt.AlignHCenter)
group_box.setFixedWidth(220)
group_box.setFixedHeight(140)
vbox.setAlignment((Qt.AlignTop | Qt.AlignHCenter))
group_box.setFixedWidth(260)
group_box.setFixedHeight(240)
group_box.setFont(self.font_gui)
group_box.setAlignment(int(Qt.AlignTop | Qt.AlignLeft))
group_box.setLayout(vbox)
qw = QWidget()
grid = QGridLayout()
grid.setSpacing(0)
grid.addWidget(group_box, 0, 0)
qw.setLayout(grid)
return qw
def accelerator_low_level_group(self, accel):
group_box = QGroupBox(f'{accel} IOC')
obj_name = 'CYCLOTRON' if self.parent.ring_cyclotron in accel else \
'INJECTOR'
group_box.setObjectName(obj_name)
vbox = QGridLayout()
if self.parent.ring_cyclotron in accel:
vbox.addWidget(self.low_level_ring_display(), 0, 0)
else:
vbox.addWidget(self.low_level_inj2_display(), 0, 0)
vbox.setContentsMargins(9, 19, 9, 9)
vbox.setSpacing(5)
vbox.setAlignment((Qt.AlignTop | Qt.AlignHCenter))
group_box.setFixedWidth(260)
group_box.setFixedHeight(100)
group_box.setFont(self.font_gui)
group_box.setAlignment(int(Qt.AlignTop | Qt.AlignHCenter))
group_box.setLayout(vbox)
@@ -166,9 +201,18 @@ class AppGui(QWidget):
grid = QGridLayout()
grid.addWidget(group_box, 0, 0)
qw.setLayout(grid)
return qw
def low_level_display_group_qtabwidget(self):
accel_tab_widget = QStackedWidget()
accel_wgt_dict = {}
for accel in (self.accelerator_list):
accel_wgt_dict[accel] = self.accelerator_low_level_group(accel)
accel_tab_widget.addWidget(accel_wgt_dict[accel])
accel_tab_widget.setFixedWidth(320)
accel_tab_widget.setFixedHeight(180)
return accel_tab_widget
def accelerator_current_group_qtabwidget(
self, widget_type='QStackedWidget'):
accel_wgt_dict = {}
@@ -223,8 +267,8 @@ class AppGui(QWidget):
vbox.setContentsMargins(9, 19, 9, 9)
vbox.setSpacing(5)
vbox.setAlignment(Qt.AlignTop | Qt.AlignHCenter)
group_box.setFixedWidth(220)
vbox.setAlignment((Qt.AlignTop | Qt.AlignHCenter))
group_box.setFixedWidth(260)
group_box.setFixedHeight(100)
group_box.setFont(self.font_gui)
group_box.setAlignment(int(Qt.AlignTop | Qt.AlignHCenter))
@@ -236,3 +280,35 @@ class AppGui(QWidget):
qw.setLayout(grid)
return qw
def low_level_ring_display(self):
#command = "caqtdm -macro 'DEVICE=ZWSGA-CECL-TCRING' Z_DI_TURN_COUNT.ui"
def low_level_ring_macro():
subprocess.run(['caqtdm', '-macro', 'DEVICE=ZWSGA-CECL-TCRING',
'Z_DI_TURN_COUNT.ui'])
qpb = QPushButton(' Low-level Display ')
qpb.setObjectName('related')
qpb.setToolTip('Execute caqtdm Turn Counter Display for Cyclotron')
qpb.clicked.connect(lambda: low_level_ring_macro())
qpb.setFixedHeight(40)
qpb.setFixedWidth(180)
return qpb
def low_level_inj2_display(self):
#command = "caqtdm -macro 'DEVICE=ZWSGA-CECL-TCRING' Z_DI_TURN_COUNT.ui"
def low_level_inj2_macro():
subprocess.run(['caqtdm', '-macro', 'DEVICE=ZWIHA-CECL-TCINJ2',
'Z_DI_TURN_COUNT.ui'])
qpb = QPushButton(' Low-level Display ')
qpb.setObjectName('related')
qpb.setToolTip('Execute caqtdm Turn Counter Display for Injector 2')
qpb.clicked.connect(lambda: low_level_inj2_macro())
qpb.setFixedHeight(40)
qpb.setFixedWidth(180)
return qpb
+61 -35
View File
@@ -14,78 +14,104 @@
"addDateToDir" : 0
},
"header" : ["SHIFT", "INJ2", "IP2", "IW2", "PK1", "PK2", "SINQ", "UCN"],
"PV" : {"Injector": {"nturns": "PV-INJ:NTURNS",
"daqTrigger": "PV-INJ:TRG",
"daqReady": "PV-INJ:READY",
"daqErrorCount": "PV-INJ:ERR-CNT",
"wfEntry": "PV-INJ:WF-ENTRY",
"wfExit": "PV-INJ:WF-EXIT",
"IEntry": "ENTRY:IST:1",
"IExit": "EXIT:IST:1"
"PV" : {"Injector": {"nturns": "ZWIHA-CECL-TCINJ2:TURN-COUNT",
"daqTrigger": "ZWIHA-CECL-TCINJ2:TRG-SINGLE.PROC",
"daqReady": "ZWIHA-CECL-TCINJ2:SCOPE-ACQ-CNT",
"daqErrorCount": "ZWIHA-CECL-TCINJ2:ERR-CNT",
"samplingFreq": "ZWIHA-CECL-TCINJ2:SCOPE-SMP-FREQ",
"samplingNum": "ZWIHA-CECL-TCINJ2:SCOPE-SMP-NUM",
"daqWindow": "ZWIHA-CECL-TCINJ2:SCOPE-ACQ-WINDOW",
"wfEntry": "ZWIHA-CECL-TCINJ2:SCOPE-CH0",
"wfExit": "ZWIHA-CECL-TCINJ2:SCOPE-CH1",
"IEntry": "MWC2:IST:2",
"IExit": "MXC1:IST:2"
},
"Cyclotron": {"nturns": "ZTEST-CPSI-TCRING:TURN-NUM",
"daqTrigger": "ZTEST-CPSI-TCRING:SCOPE-TRG",
"daqReady": "ZTEST-CPSI-TCRING:SCOPE-READY",
"daqErrorCount": "ZTEST-CPSI-TCRING:ERR-CNT",
"wfEntry": "ZTEST-CPSI-TCRING:SCOPE-CH0",
"wfExit": "ZTEST-CPSI-TCRING:SCOPE-CH1",
"Cyclotron": {"nturns": "ZWSGA-CECL-TCRING:TURN-COUNT",
"daqTrigger": "ZWSGA-CECL-TCRING:TRG-SINGLE.PROC",
"daqReady": "ZWSGA-CECL-TCRING:SCOPE-ACQ-CNT",
"daqErrorCount": "ZWSGA-CECL-TCRING:ERR-CNT",
"samplingFreq": "ZWSGA-CECL-TCRING:SCOPE-SMP-FREQ",
"samplingNum": "ZWSGA-CECL-TCRING:SCOPE-SMP-NUM",
"daqWindow": "ZWSGA-CECL-TCRING:SCOPE-ACQ-WINDOW",
"wfEntry": "ZWSGA-CECL-TCRING:SCOPE-CH0",
"wfExit": "ZWSGA-CECL-TCRING:SCOPE-CH1",
"IEntry": "MNC3:IST:2",
"IExit": "MHC1:IST:2"
}
},
"Init": {"Injector": {"ZWIHA-CECL-TCINJ2:TRG-SINGLE.PROC": 1,
"ZWIHA-CECL-TCINJ2:TRG-SOURCE": 0,
"ZWIHA-CECL-TCINJ2:SCOPE-PRE-TRIGGER": 0,
"ZWIHA-CECL-TCINJ2:TRG-AUTO-PERIOD": 4000,
"ZWIHA-CECL-TCINJ2:TRG-SW-INHIBIT-ENA": 1,
"ZWIHA-CECL-TCINJ2:ADC-CH-OFFSET": 4
},
"Cyclotron": {"ZWSGA-CECL-TCRING:TRG-SINGLE.PROC": 1,
"ZWSGA-CECL-TCRING:TRG-SOURCE": 0,
"ZWSGA-CECL-TCRING:SCOPE-PRE-TRIGGER": 0,
"ZWSGA-CECL-TCRING:TRG-AUTO-PERIOD": 4000,
"ZWSGA-CECL-TCRING:TRG-SW-INHIBIT-ENA": 1,
"ZWSGA-CECL-TCRING:ADC-CH-OFFSET": 4
}
},
"HIPA": ["Injector", "Ring"],
"HIPA2": {"test": ["Injector", "Ring"]},
"QTabAccelerator":{
"Injector": {
"harmonic" : {"data":{ "widget": "QLineRead", "text" :"Harmonic No: ", "value": 10}},
"deltaTcable" : {"data":{ "widget": "QLineRead", "text" : "dT Cable (ns):", "value": 6.9 }},
"deltaNpickup" : {"data":{ "widget": "QLineEdit", "text" : "dN Pickup:", "value": 4 }},
"freqmod" : {"data":{ "widget": "QLineRead", "text" :"Mod. Freq (GHz):", "value" : 500}},
"dutycycle" : {"data":{ "widget": "QLineRead", "text" :"Duty Cycle (%):", "value" : 1}}
"deltaTcable" : {"data":{ "widget": "QLineEdit", "text" : "dT Cable (ns):", "value": 0 }},
"deltaNpickup" : {"data":{ "widget": "QLineEdit", "text" : "dN Pickup:", "value": -0.86 }}
},
"Cyclotron": {
"harmonic" : {"data":{ "widget": "QLineRead", "text" :"Harmonic No: ", "value" : 6}},
"deltaTcable" : {"data":{ "widget": "QLineRead", "text" : "dT Cable (ns):", "value": 44 }},
"deltaNpickup" : {"data":{ "widget": "QLineEdit", "text" : "dN Pickup:", "value": -1 }}
}
},
"QTabSignalPeakSearch":{
"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 dcorr(peak1-peak2):", "value" : 0.01}}
" Injector ": {
"peakHeight": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak height (entry):", "value" : -600 }},
"peakHeightExit": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak height (exit):", "value" : 320 }},
"peakDistance": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak distance: ", "value" : 20 }},
"correlationPeakDifference": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min dcorr(peak1-peak2):", "value" : 0.005}},
"minimumCurrent": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Inj2 I_min (mA):", "value" : "0.100"}},
"reverseInput": {"flag": 1, "data":{ "widget": "QCheckBox", "text" :"Reverse Input Polarity: ", "value" : 1, "orientation":"RightToLeft"}},
"reverseOutput": {"flag": 1, "data":{ "widget": "QCheckBox", "text" :"Reverse Output Polarity: ", "value" : 1, "orientation":"RightToLeft"}}
},
"Cyclotron": {
"peakHeight": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak height:", "value" : 50 }},
" Cyclotron ": {
"peakHeight": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak height (entry):", "value" : 50 }},
"peakHeightExit": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak height (exit):", "value" : 50 }},
"peakDistance": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak distance: ", "value" : 10 }},
"correlationPeakDifference": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min dcorr(peak1-peak2):", "value" : 0.01 }}
"correlationPeakDifference": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min dcorr(peak1-peak2):", "value" : 0.01 }},
"minimumCurrent": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Inj2 I_min (mA):", "value" : "1.0"}},
"reverseInput": {"flag": 1, "data":{ "widget": "QCheckBox", "text" :"Reverse Input Polarity: ", "value" : 1, "orientation":"RightToLeft"}},
"reverseOutput": {"flag": 1, "data":{ "widget": "QCheckBox", "text" :"Reverse Output Polarity: ", "value" : 1, "orientation":"RightToLeft"}}
}
},
"Parameters":{
"freqrf" : {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"RF Freq (10^6/s):", "value" : 50.6328 }},
"freqsampling" : {"flag": 1, "data":{ "widget": "QLineRead", "text" :"Sampling Freq (GHz):", "value" : 3.0 }},
"freqrf" : {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"RF Freq (10^6/s):", "value" : 50.6328 }},
"drawLine" : {"flag" : 1, "data":{ "widget": "QHLine", "text" : "None", "value" : "None"}},
"accelerator" : {"flag" : 1, "data":{ "widget": "QTabWidget", "text" : "Accelerator: ",
"link" : "QTabAccelerator", "value" : 1,
"color" : ["#008b8b", "#0047ab" ]}}
"link" : "QTabAccelerator", "value" : 0,
"color" : ["#008b8b", "#0047ab" ]}}
},
"Expert":{
"signalPeakSearch" : {"flag" : 1, "data":{ "widget": "QStackedWidget", "text" : "Accelerator: ",
"link" : "QTabSignalPeakSearch", "value" : 1,
"color" : ["#008b8b", "#0047ab" ]}},
"signalPeakSearch" : {"flag" : 0, "data":{ "widget": "QStackedWidget", "text" : "Accelerator: ",
"link" : "QTabSignalPeakSearch", "value" : 0,
"color" : ["#008b8b", "#0047ab" ]}},
"debug": {"flag" : 1, "data":{ "widget": "None", "text" : "Debug", "value" : 0}},
"simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Oscilloscope", "value" : 0}}
},
"GUI": {
"resultsTabTitle" : "Plots",
"subResultsTabTitle" : ["Correlations", "Raw Data"],
"resultsSeq" : [1, 1],
"resultsSeq" : [1, 2],
"showDate" : 1
},
"MeasurementGridLayout" : [0, 0, 3, 1]
}
+195 -39
View File
@@ -23,7 +23,7 @@ from pyrcc5 import tina_resources
_pymodule = os.path.basename(__file__)
_appname, _appext = _pymodule.split('.')
_abspath = os.path.dirname(os.path.abspath(__file__))
_appversion = '0.0.2'
_appversion = '1.4.0'
_title = 'No of Turns Measurement'
_appname = 'Tina'
@@ -38,8 +38,8 @@ class StartMain(BaseWindow):
Attributes:
appname: tina.py
source_file: full pathname for inclusion into HDF.
elog_enum: enumerated datatypes for elog attributes.
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.
@@ -48,26 +48,38 @@ class StartMain(BaseWindow):
ring_cyclotron = 'Cyclotron'
injector_2 = 'Injector'
accelerator_list = [injector_2, ring_cyclotron]
def __init__(self, parent=None):
'''Initialize class attrinbutes and instantiate GUI.'''
'''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)
has_optics=False, has_procedure='VerticalExpert')
self.appname = _appname
self.source_file = _abspath
self.source_file = _abspath
self.elog_enum = ElogHIPA()
self.message_elog = None
self.default_idx = self.settings.data['Parameters']['accelerator'][
'data']['value']
self.accelerator = self.ring_cyclotron if self.default_idx else \
self.injector_2
self.accelerator_peak_search = ' ' + self.accelerator + ' '
# self.from_hdf = False in base class
self.message = ''
self.init_pv_dict = self.settings.data['Init'][self.accelerator]
self.init_pv_list = list(self.init_pv_dict.keys())
self.init_pv_values = list(self.init_pv_dict.values())
if self.is_front_end_initialized(init=False):
mess = 'FEE Initialized'
self.trigger_log_message.emit(
MsgSeverity.INFO.name, _pymodule, utils.line_no(), mess, {})
AppGui(self)
mess = 'GUI Initialized'
self.trigger_log_message.emit(
MsgSeverity.INFO.name, _pymodule, utils.line_no(), mess, {})
def prepare_results_message(self):
'''Prepare results messages
@@ -102,7 +114,7 @@ class StartMain(BaseWindow):
'''No. turns measured in the {0} = {1:0.0f} ({2:.2f}) <br>
lag = {3}, delay = {4:.3f} \u00B5s<br>'''.format(
self.accelerator, (self.no_turns), self.no_turns,
lag_full, delay*10**6))
lag_full, delay * 10**6))
self.message = (
mess +
@@ -110,7 +122,7 @@ class StartMain(BaseWindow):
No. turns measured in the {0} = {1:0.0f} ({2:.2f})
lag = {3}, delay = {4:.3f} \u00B5s'''.format(
self.accelerator, self.no_turns, self.no_turns,
lag_full, delay*10**6))
lag_full, delay * 10**6))
def prepare_elog_message(self):
'''Define elog parameters and define message
@@ -139,22 +151,78 @@ class StartMain(BaseWindow):
self.logbook = 'Sandkasten' if simulation else 'HIPA'
self.title = _title
def is_front_end_initialized(self, init: bool = True):
'''Initialized Front End Electonics if required
'''
value_list, status, status_list = self.cafe.getScalarList(
self.init_pv_list, dt='int')
if status != self.cyca.ICAFE_NORMAL:
self.check_status_list(
_pymodule, 'getScalarList', self.init_pv_list, status_list,
utils.line_no())
print(value_list, self.init_pv_values, init, flush=True)
if value_list != self.init_pv_values and not init:
return False
def is_simulation():
if self.all_data:
if self.all_data['Input data'] is not None:
try:
simulation = self.all_data['Input data']['simulation']
except KeyError:
simulation = self.input_parameters['simulation']
pass
else:
simulation = self.input_parameters['simulation']
return simulation
if value_list != self.init_pv_values:
for val, val_init, pv in zip(value_list, self.init_pv_values,
self.init_pv_list):
if val != val_init:
if not is_simulation():
status = self.cafe.set(pv, val_init)
if status != self.cyca.ICAFE_NORMAL:
self.check_status(_pymodule, 'set', pv, status,
utils.line_no())
time.sleep(0.02)
value_list, status, status_list = self.cafe.getScalarList(
self.init_pv_list, dt='int')
if status != self.cyca.ICAFE_NORMAL:
self.check_status_list(
_pymodule, 'getScalarList', self.init_pv_list, status_list,
utils.line_no())
if value_list != self.init_pv_values:
return False
return True
def verify_analysis_preconditions(self):
'''Verify machine is setup for measurement procedure-
Check machine current is above threshold (1 mA)
Check machine current is above threshold (0.001 mA is default)
Check that that the front-end electronics are initialized
'''
if self.injector_2 in self.input_parameters['accelerator']:
accelerator = self.input_parameters['accelerator']
'''
if self.injector_2 in accelerator:
mess = ('Measurement procedure for Injector 2 \n' +
'has not yet been implementented.')
'has not yet been implemented.')
QMessageBox.information(self, 'Injector 2', mess, QMessageBox.Ok)
QApplication.processEvents()
return False
'''
if self.input_parameters['simulation']:
return True
#return True
min_current = float(self.input_parameters[self.accelerator_peak_search][
'minimumCurrent'])
injector_current = self.cafe.getCache('MWC2:IST:2')
if not injector_current:
@@ -163,40 +231,59 @@ class StartMain(BaseWindow):
utils.line_no())
mess = ('Unable to read Injector 2 current\n' +
'Please try again.')
QMessageBox.information(self, 'Cyclotron', mess, QMessageBox.Ok)
QMessageBox.information(self, accelerator, mess, QMessageBox.Ok)
QApplication.processEvents()
return False
elif injector_current < 0.001:
mess = ('Injector 2 current is below threshold.\n' +
'Measurement cannot be untertaken at the present time.')
QMessageBox.information(self, 'Cyclotron', mess, QMessageBox.Ok)
elif injector_current <= min_current:
mess = (f'Injector 2 current is below threshold {min_current} mA.' +
'\nMeasurement cannot be untertaken at the present time.')
QMessageBox.information(self, accelerator, mess, QMessageBox.Ok)
QApplication.processEvents()
return False
return True
return self.is_front_end_initialized(init=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:
if self.all_data['Figure data'] is not None:
self.gui_frame.central_tab_widget.setCurrentIndex(1)
except KeyError:
print('No analysis performed')
return
else:
def delete_previous_figures():
print('Thread finished with no data')
ncanvas = len(self.settings.data['GUI']['subResultsTabTitle'])
dict_fig = {}
dict_fig['Figure data'] = {}
print('canvas', ncanvas, flush=True)
for i in range(0, ncanvas):
canvas = f'Canvas {i+1}'
dict_fig['Figure data'][canvas] = None
# Delete old figures
self.gui.gui_frame.canvas_update(dict_fig['Figure data'])
try:
self.gui_frame.canvas_update(dict_fig['Figure data'])
except AttributeError as ex:
print('AttributeError', ex, flush=True)
pass
print('Thread finished with no data', flush=True)
if self.all_data is not None:
try:
try:
if self.all_data['Figure data'] is not None:
self.gui_frame.central_tab_widget.setCurrentIndex(1)
else:
delete_previous_figures()
except AttributeError:
print('No analysis performed')
return
except KeyError:
print('No analysis performed')
return
else:
delete_previous_figures()
return
self.prepare_results_message()
@@ -205,10 +292,48 @@ class StartMain(BaseWindow):
@Slot()
def hdf_thread_finished(self):
'''If hdf analysis completed successfuly, prepare results
'''If hdf analysis completed successfuly, prepare results
message.
'''
BaseWindow.hdf_thread_finished(self)
def delete_previous_figures():
print('Thread finished with no data')
ncanvas = len(self.settings.data['GUI']['subResultsTabTitle'])
dict_fig = {}
dict_fig['Figure data'] = {}
print('canvas', ncanvas, flush=True)
for i in range(0, ncanvas):
canvas = f'Canvas {i+1}'
dict_fig['Figure data'][canvas] = None
# Delete old figures
try:
self.gui_frame.canvas_update(dict_fig['Figure data'])
except AttributeError as ex:
print('AttributeError', ex, flush=True)
pass
print('Thread finished with no data', flush=True)
if self.all_data is not None:
try:
try:
if self.all_data['Figure data'] is not None:
self.gui_frame.central_tab_widget.setCurrentIndex(1)
else:
delete_previous_figures()
except AttributeError:
print('No analysis performed')
return
except KeyError:
print('No analysis performed')
return
else:
delete_previous_figures()
return
print("hdf_finished", flush=True)
self.prepare_results_message()
self.show_log_message(MsgSeverity.INFO, _pymodule, utils.line_no(),
self.message)
@@ -251,7 +376,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, data_hdf, proc=True, raw=False):
'''User supplied hdf data
'''
if self.all_data is not None:
@@ -265,8 +390,9 @@ class StartMain(BaseWindow):
'Processed data']
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'], data_hdf)
@Slot()
def send_to_elog(self):
@@ -388,27 +514,55 @@ class StartMain(BaseWindow):
'''Behind the scences information
'''
QApplication.processEvents()
named_tuple = platform.uname()
system = named_tuple.system
node = named_tuple.node
release = named_tuple.release
item_str = ""
try:
with open('/etc/redhat-release') as f:
rhlist = f.read().split(' ')
#print(rhlist, flush=True)
for item in list(rhlist):
item_str += (item + " ")
try:
float(item)
break
except ValueError:
pass
except:
pass
#print(item_str)
QMessageBox.about(
self, 'About',
"""<b>{0}</b> v {1}
<p>Copyright &copy; Paul Scherrer Institut (PSI).
All rights reserved.</p>
<p>Authors: P.-A. Duperrex, J. Chrin, A. Facchetti, W. Koprek, </p>
<p>A python implementation of the LabVIEW measurement developed
by P.-A. Duperrex <br>
<p>P.-A. Duperrex, J. Chrin, A. Facchetti, D. Felici,
W. Koprek, J. Sun </p>
<p>A python implementation of the LabVIEW measurement originally
developed by P.-A. Duperrex <br>
Ref: P.-A. Duperrex and A. Facchetti <br>
'Number of Turn Measurements on the HIPA Cyclotrons at PSI' <br>
doi:10.18429/JACoW-IPAC2018-WEPAL067 </p>
<p>Responsible: W. Koprek, WBBA/315, Tel. x3765,
<p>Contact: J. Sun, WBGA/C32, Tel. x4127,
jilei.sun@psi.ch </p>
<p>Responsible (low-level): W. Koprek, WBBA/315, Tel. x3765,
waldemar.koprek@psi.ch </p>
<p>Responsible (high-level): J. Chrin, WBBA/318, Tel. x2930,
jan.chrin@psi.ch </p>
<p>A main-window style application for the measurement of
the number of turns in the HIPA cyclotron and injector </p>
<p>Python {2} - Qt {3} - PyQt {4} <br>
cafe {5} - epics {6} on {7}""".format(
cafe {5} - epics {6} <br>
on {7} {8} <br> {9} <br>kernel: {10}""".format(
_pymodule, _appversion, platform.python_version(),
QT_VERSION_STR, PYQT_VERSION_STR,
self.cafe.CAFE_version(), self.cafe.EPICS_version(),
platform.system()))
system, node, item_str, release))
QApplication.processEvents()
@Slot()
@@ -417,13 +571,15 @@ class StartMain(BaseWindow):
'''
index_html = 'index.html'
help_base = ':'
help_page = HelpBrowser(help_base, index_html, self)
help_page = HelpBrowser(help_base, index_html, self, xlength=800,
ylength=1290)
help_page.show()
#########################################################################
if __name__ == '__main__':
'''Initialize window parameters and start application via a splash
'''Initialize window parameters and start application via a splash
window.
'''
app = QApplication(sys.argv)
+6 -6
View File
@@ -1,5 +1,5 @@
#!/bin/bash
cd /hipa/bd/applications/tina/0.0.2
cd /hipa/bd/applications/tina/1.5.0
# For use if script is sourced rather than executed
appNameDefault="tina.sh"
@@ -19,12 +19,12 @@ else
fi
_EPICS_HOST_ARCH=${RHREL}-x86_64
_EPICS_BASE=base-7.0.8
_EPICS_BASE=base-7.0.9
# 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.13.0
PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.22.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.15.0
if [ "$1" ]; then
@@ -33,21 +33,21 @@ if [ "$1" ]; then
elif [ "$1" == "3.7" -o "$1" == "37" ]; then
PYTHON_VERSION=3.7
#cafe-1.20.0-gcc-7.3.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
#module unload gcc
#module load gcc/10.4.0
export LD_PRELOAD=/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libca.so:/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libCom.so
elif [ "$1" == "3.8" -o "$1" == "38" ]; then
PYTHON_VERSION=3.8
#cafe-1.19.3
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
#module unload gcc
#module load gcc/7.5.0
elif [ "$1" == "3.10" -o "$1" == "310" ]; then
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.22.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.13.0
#module unload gcc
#module load gcc/7.5.0
else