From 38ac0a2b46b0301e357b24d9f66a3a3d1ba825f6 Mon Sep 17 00:00:00 2001 From: chrin Date: Wed, 9 Apr 2025 14:52:00 +0200 Subject: [PATCH] adapted to new hardware; input parameters made configurable --- help/index.html | 115 +++--- help/tina_resources.py | 832 ++++++++++++++++++++------------------- pyrcc5/tina_resources.py | 832 ++++++++++++++++++++------------------- src/analysis.py | 267 +++++++++---- src/gui.py | 14 +- tina.json | 60 ++- tina.py | 124 ++++-- tina.sh | 2 +- 8 files changed, 1254 insertions(+), 992 deletions(-) diff --git a/help/index.html b/help/index.html index ce923c4..478b33e 100755 --- a/help/index.html +++ b/help/index.html @@ -1,7 +1,8 @@ Time of Flight Measuement for Injector and Ring Cyclotron Turn Number Ascertainment, TINA -
June 2024, Jan Chrin, Pierre-André Duperrex, Alessandro Facchetti, Waldamar Koprek
+
Jan Chrin, Pierre-André Duperrex, Alessandro Facchetti, Daniele, Felici, Waldamar Koprek
April 2025
+

Time of Flight Measurement for Injector and Ring Cyclotron Turn Number Ascertainment, TINA

About

@@ -14,9 +15,8 @@ Pierre-André Duperrex:
P.-A. Duperrex and A. Facchetti, Number of Turn Measurements on the HIPA Cyclotrons at PSI.
doi:10.18429/JACoW-IPAC2018-WEPAL067 +

- -

The Repository

@@ -24,8 +24,9 @@ doi:10.18429/JACoW-IPAC2018-WEPAL067

The application comprises two components:

GUI, Control Tab

Main panel for use by operators. -

Operator Panel

+

Accelerator Panel

Input parameters to analysis routine, as configured in tina.json.
The Injector has NOT yet been implemented into the application. @@ -76,8 +77,60 @@ doi:10.18429/JACoW-IPAC2018-WEPAL067
-

-Within the Procedure group, the Start buttonn executes the analysis program + + +

Expert Panel

+Input parameters to the peak search analysis, as configured in tina.json.
+ +The Injector has NOT yet been implemented into the application. +

+ + + + +
+ + + + + + + + + + + + + + + +
ParameterCyclotron
Minimum Peak Height: 50
Minimum distance between peaks: 10
Minimim difference in correlation between top two peaks: 0.01
Minimum Current in Injector: 1.0
+
  + + + + + + + + + + + + + +
Injector
50
10
 
0.01
1.0
+
+

+ 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:
+ /hipa/bd/data/measurements/Tina_2024-09-18_oscilloscope.h5 +

+

Procedure

+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).

@@ -90,57 +143,15 @@ collected per channel (entry wf/exit wf).

  • opens a dialog window for submission to the selected elog book.
  • + These actions can also be executed individually through icons placed in the menu bar.

    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). - -

    Expert Panel

    -Input parameters to the peak search analysis, as configured in tina.json.
    - -The Injector has NOT yet been implemented into the application. - - - - -
    - - - - - - - - - - - -
    ParameterCyclotron
    Minimum Peak Height 50
    Minimum distance between peaks 10
    Minimim difference in correlation plot
    between peak and 2nd highest peak
    0.01
    -
      - - - - - - - - - - - -
    Injector
    50
    10
    0.01
    -
    -
    -

    - 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:
    - /hipa/bd/data/measurements/Tina_2024-09-18_oscilloscope.h5 +

    TINA Image

    diff --git a/help/tina_resources.py b/help/tina_resources.py index e6a026f..2a33951 100644 --- a/help/tina_resources.py +++ b/help/tina_resources.py @@ -2,382 +2,13 @@ # 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\ -\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\ @@ -391,6 +22,380 @@ qt_resource_data = b"\ \x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\ \x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\ \x68\x74\x6d\x6c\x3e\x0a\ +\x00\x00\x00\xa7\ +\x3c\ +\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\ +\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\ +\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\ +\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x33\x20\x6f\ +\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\ +\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\ +\x22\x70\x61\x67\x65\x34\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\ +\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\ +\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\ +\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\ +\x68\x74\x6d\x6c\x3e\x0a\ +\x00\x00\x16\x6b\ +\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\x2c\x20\x46\x65\x6c\x69\x63\x69\x2c\x20\x57\x61\ +\x6c\x64\x61\x6d\x61\x72\x20\x4b\x6f\x70\x72\x65\x6b\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\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\x2e\x70\x73\x69\x2e\x63\x68\x2f\x47\x46\ +\x41\x2f\x43\x4f\x2f\x67\x65\x6e\x65\x72\x61\x6c\x2f\x43\x50\x53\ +\x49\x5f\x53\x43\x4f\x50\x45\x2f\x43\x50\x53\x49\x5f\x53\x43\x4f\ +\x50\x45\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\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\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\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\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\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\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\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\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\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\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\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\x35\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\x31\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\x31\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\x31\x2e\x30\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\ \x00\x00\x15\xad\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x01\x00\ @@ -740,6 +745,29 @@ 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\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\ @@ -757,14 +785,22 @@ qt_resource_data = b"\ 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\ +\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\ +\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\x08\ +\x00\x44\x5a\x07\ +\x00\x54\ +\x00\x69\x00\x6e\x00\x61\x00\x2e\x00\x6a\x00\x70\x00\x67\ +\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\ @@ -773,14 +809,6 @@ qt_resource_name = b"\ \x00\x70\ \x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ \x00\x0a\ -\x08\x4a\x34\x9c\ -\x00\x70\ -\x00\x61\x00\x67\x00\x65\x00\x31\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ -\x00\x08\ -\x00\x44\x5a\x07\ -\x00\x54\ -\x00\x69\x00\x6e\x00\x61\x00\x2e\x00\x6a\x00\x70\x00\x67\ -\x00\x0a\ \x08\x5a\x34\x9c\ \x00\x70\ \x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ @@ -788,36 +816,36 @@ qt_resource_name = b"\ 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\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x17\xc5\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x2e\xa5\ +\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\ +\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x2d\xfa\ +\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x2d\x76\ +\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x01\x56\ " 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\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x17\xc5\ +\x00\x00\x01\x95\xeb\x5c\x84\xe2\ \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\x95\xeb\x5c\x84\xeb\ +\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x2e\xa5\ +\x00\x00\x01\x95\xeb\x5c\x84\xed\ +\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\ +\x00\x00\x01\x95\xeb\x5c\x84\xef\ +\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x2d\xfa\ +\x00\x00\x01\x95\xeb\x5c\x84\xf0\ +\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x2d\x76\ +\x00\x00\x01\x95\xeb\x5c\x84\xf2\ +\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x01\x56\ +\x00\x00\x01\x96\x1a\x88\xce\x2e\ " -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: diff --git a/pyrcc5/tina_resources.py b/pyrcc5/tina_resources.py index e6a026f..2a33951 100644 --- a/pyrcc5/tina_resources.py +++ b/pyrcc5/tina_resources.py @@ -2,382 +2,13 @@ # 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\ -\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\ @@ -391,6 +22,380 @@ qt_resource_data = b"\ \x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\ \x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\ \x68\x74\x6d\x6c\x3e\x0a\ +\x00\x00\x00\xa7\ +\x3c\ +\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\ +\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\ +\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\ +\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x33\x20\x6f\ +\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\ +\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\ +\x22\x70\x61\x67\x65\x34\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\ +\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\ +\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\ +\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\ +\x68\x74\x6d\x6c\x3e\x0a\ +\x00\x00\x16\x6b\ +\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\x2c\x20\x46\x65\x6c\x69\x63\x69\x2c\x20\x57\x61\ +\x6c\x64\x61\x6d\x61\x72\x20\x4b\x6f\x70\x72\x65\x6b\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\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\x2e\x70\x73\x69\x2e\x63\x68\x2f\x47\x46\ +\x41\x2f\x43\x4f\x2f\x67\x65\x6e\x65\x72\x61\x6c\x2f\x43\x50\x53\ +\x49\x5f\x53\x43\x4f\x50\x45\x2f\x43\x50\x53\x49\x5f\x53\x43\x4f\ +\x50\x45\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\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\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\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\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\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\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\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\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\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\x30\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\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\x35\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\x31\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\x31\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\x31\x2e\x30\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\ \x00\x00\x15\xad\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x01\x00\ @@ -740,6 +745,29 @@ 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\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\ @@ -757,14 +785,22 @@ qt_resource_data = b"\ 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\ +\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\ +\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\x08\ +\x00\x44\x5a\x07\ +\x00\x54\ +\x00\x69\x00\x6e\x00\x61\x00\x2e\x00\x6a\x00\x70\x00\x67\ +\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\ @@ -773,14 +809,6 @@ qt_resource_name = b"\ \x00\x70\ \x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ \x00\x0a\ -\x08\x4a\x34\x9c\ -\x00\x70\ -\x00\x61\x00\x67\x00\x65\x00\x31\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ -\x00\x08\ -\x00\x44\x5a\x07\ -\x00\x54\ -\x00\x69\x00\x6e\x00\x61\x00\x2e\x00\x6a\x00\x70\x00\x67\ -\x00\x0a\ \x08\x5a\x34\x9c\ \x00\x70\ \x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ @@ -788,36 +816,36 @@ qt_resource_name = b"\ 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\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x17\xc5\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x2e\xa5\ +\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\ +\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x2d\xfa\ +\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x2d\x76\ +\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x01\x56\ " 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\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x17\xc5\ +\x00\x00\x01\x95\xeb\x5c\x84\xe2\ \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\x95\xeb\x5c\x84\xeb\ +\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x2e\xa5\ +\x00\x00\x01\x95\xeb\x5c\x84\xed\ +\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\ +\x00\x00\x01\x95\xeb\x5c\x84\xef\ +\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x2d\xfa\ +\x00\x00\x01\x95\xeb\x5c\x84\xf0\ +\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x2d\x76\ +\x00\x00\x01\x95\xeb\x5c\x84\xf2\ +\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x01\x56\ +\x00\x00\x01\x96\x1a\x88\xce\x2e\ " -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: diff --git a/src/analysis.py b/src/analysis.py index ec50b14..52734da 100644 --- a/src/analysis.py +++ b/src/analysis.py @@ -49,7 +49,7 @@ class AnalysisProcedure(QObject): self.check_status_list = self.parent.check_status_list self.trigger_progressbar = self.parent.trigger_progressbar self.daq_timeout = 30 - self.daq_ready = 0 + self.daq_ready_init_value = 0 self.logging = self.parent.logging self.logger = self.logging.getLogger(__name__) self.logger.debug('Logging activated in analysis procedure') @@ -80,19 +80,20 @@ class AnalysisProcedure(QObject): self.log_level = logging.INFO self.simulation = False self.accelerator = self.ring_cyclotron + self.accelerator_peak_search = ' ' + self.accelerator + ' ' self.harmonic_no = 6 self.entry_current = 0 self.exit_current = 0 - self.n_turns = None + self.n_turns = 0 # self.t_stepsize = 0.000000019750043 #0.00000002 self.rf_freq = 50.6328 # 10**6 self.rf_sample = 3.0 # 10**6 - self.pulse_stepsize = 1/(self.rf_freq*10**6) - self.t_stepsize = 1/(self.rf_sample*10**9) - self.t_interval = math.ceil(self.pulse_stepsize/self.t_stepsize) + self.pulse_stepsize = 1 / (self.rf_freq * 10**6) + self.t_stepsize = 1 / (self.rf_sample * 10**9) + self.t_interval = math.ceil(self.pulse_stepsize / self.t_stepsize) self.correlation_peak_diff = 0.0 - self.signal_min_peak_height = 50 + self.signal_min_peak_height = 4 # 50 self.signal_min_peak_distance = 10 self.correlation_min_peak_diff = 0.01 @@ -100,7 +101,12 @@ class AnalysisProcedure(QObject): self.dn_pickup = -1 self.mod_freq = 500 # GHz self.duty_cycle = 1 # percentage + #self.minimum_current = -10.001 + self.delay = 0 + self.lag_full = 0 + self.lags_full_array = [] + self.corr_full = [] # Turn off DEBUG for MATLAB mat_logger = logging.getLogger('matplotlib') mat_logger.setLevel(logging.ERROR) @@ -137,7 +143,7 @@ class AnalysisProcedure(QObject): self.parent.gui_frame.line_sender_dict['accelerator'].setCurrentIndex( idx) - print(f'init input parameters {self.input_data}') + print(f'init input parameters {self.input_data}', flush=True) if reanalysis: self.loglevel = self.input_parameters['loggingLevel'] else: @@ -171,6 +177,9 @@ class AnalysisProcedure(QObject): self.input_data[self.accelerator]['deltaTcable']) self.dn_pickup = int( self.input_data[self.accelerator]['deltaNpickup']) + # self.minimum_current = float( + # self.input_data[self.accelerator_peak_search][ + # 'minimumCurrent']) if self.injector_2 in self.accelerator: self.mod_freq = float( @@ -189,6 +198,7 @@ class AnalysisProcedure(QObject): self.logger.info(f'Harmonic No. {self.harmonic_no}') self.logger.info(f'dT Cable {self.dt_cable}') self.logger.info(f'dN Pickup {self.dn_pickup}') + #self.logger.info(f'I minimum {self.minimum_current} (mA)') except KeyError as ex: self.logger.error(f'KeyError {ex}') @@ -197,11 +207,12 @@ class AnalysisProcedure(QObject): try: self.correlation_min_peak_diff = float( - self.input_data[self.accelerator]['correlationPeakDifference']) - self.signal_min_peak_height = round( - self.input_data[self.accelerator]['peakHeight']) - self.signal_min_peak_distance = round( - self.input_data[self.accelerator]['peakDistance']) + self.input_data[self.accelerator_peak_search][ + 'correlationPeakDifference']) + self.signal_min_peak_height = int( + self.input_data[self.accelerator_peak_search]['peakHeight']) + self.signal_min_peak_distance = int( + self.input_data[self.accelerator_peak_search]['peakDistance']) except KeyError as ex: self.logger.error(f'KeyError {ex}') @@ -211,11 +222,13 @@ class AnalysisProcedure(QObject): # Overide peak search parameters with those given in gui if reanalysis: self.correlation_min_peak_diff = float(self.input_parameters[ - self.accelerator]['correlationPeakDifference']) + self.accelerator_peak_search]['correlationPeakDifference']) self.signal_min_peak_height = int( - self.input_parameters[self.accelerator]['peakHeight']) + self.input_parameters[self.accelerator_peak_search][ + 'peakHeight']) self.signal_min_peak_distance = int( - self.input_parameters[self.accelerator]['peakDistance']) + self.input_parameters[self.accelerator_peak_search][ + 'peakDistance']) print(f'self.input_parameters={self.input_parameters}') print(('Reanalysis: self.correlation_min_peak_diff= ' + @@ -245,16 +258,22 @@ class AnalysisProcedure(QObject): # Step 1 - Collect ambient data relate to the machine self.all_data['Ambient data'] = self.collect_ambient_data() + + if not self.all_data['Ambient data']: + self.trigger_progressbar.emit(int(PROGRESS_THREAD_ERROR)) + return None + self.trigger_progressbar.emit(int(PROGRESS_THREAD_START)) # Step 2 - Perform measurement and return data for processing self.all_data['Raw data'] = self.measure() - if self.all_data['Raw data'] is None: + if not self.all_data['Raw data']: self.trigger_progressbar.emit(int(PROGRESS_THREAD_ERROR)) return None # Step 3 - Process the raw data + self.all_data['Processed data'] = self.process() # Step 4 - Provide plots @@ -299,6 +318,7 @@ class AnalysisProcedure(QObject): self.time_stamp = ambient_data['Time stamp'] self.all_data['Ambient data'] = ambient_data + self.all_data['Processed data'] = self.process(from_hdf5=True) self.all_data['Figure data'] = self.make_figs() @@ -343,10 +363,35 @@ class AnalysisProcedure(QObject): if self.abort: self.aborting(utils.line_no()) - return {} + return None self.trigger_progressbar.emit(PROGRESS_THREAD_ERROR) - return {} + return None + + ''' + injector_current = self.cafe.getCache('MWC2:IST:2') + I_min = self.minimum_current + print('injector_current', injector_current) + print('I_min', I_min) + + if not injector_current: + self.trigger_progressbar.emit(PROGRESS_THREAD_ERROR) + stat = self.cafe.getStatus('MWC2:IST:2') + self.check_status(_pymodule, 'getCache', injector_current, stat, + utils.line_no()) + mess = ('Unable to read Injector 2 current. ' + + 'Please try again.') + self.parent.trigger_log_message.emit( + MsgSeverity.ERROR.name, _pymodule, utils.line_no(), mess, {}) + return None + elif injector_current <= self.minimum_current: + self.trigger_progressbar.emit(PROGRESS_THREAD_ERROR) + mess = (f'Injector 2 current is below threshold {I_min} mA. ' + + f'Measurement cannot be untertaken at the present time.') + self.parent.trigger_log_message.emit( + MsgSeverity.ERROR.name, _pymodule, utils.line_no(), mess, {}) + return None + ''' pv_list = [] @@ -377,7 +422,9 @@ class AnalysisProcedure(QObject): pv_entry_current = self.settings.data['PV'][self.accelerator]['IEntry'] entry_current = self.cafe.getCache(pv_entry_current) - ambient_data['I Entry'] = entry_current/1000 \ + print('entry_current==>', entry_current) + + ambient_data['I Entry'] = entry_current / 1000 \ if entry_current is not None else 0.0 # mA if divied by 1000 above self.entry_current = ambient_data['I Entry'] @@ -385,15 +432,16 @@ class AnalysisProcedure(QObject): # Retrieve pv_exit_current = self.settings.data['PV'][self.accelerator]['IExit'] exit_current = self.cafe.getCache(pv_exit_current) - ambient_data['I Exit'] = exit_current/1000 \ + print('exit_current==>', exit_current) + ambient_data['I Exit'] = exit_current / 1000 \ if exit_current is not None else 0.0 - # mA if divied by 1000 above + # mA if divided by 1000 above self.exit_current = ambient_data['I Exit'] pv_daq_ready = self.pv_dict['daqReady'] ''' - self.daq_ready = self.cafe.getCache(pv_daq_ready) - if self.daq_ready is None: + self.daq_ready_init_value = self.cafe.getCache(pv_daq_ready) + if self.daq_ready_init_value is None: stat = self.cafe.getStatus(pv_daq_ready) self.check_status(_pymodule, 'getCache', pv_daq_ready, stat, utils.line_no()) @@ -424,13 +472,15 @@ class AnalysisProcedure(QObject): print('MONITOR STARTED FOR ', pv_daq_error_count, flush=True) self.cafe.monitor(pv_daq_error_count) + print('ambient_data', ambient_data) + return ambient_data def extract_peak_data(self): ''' Using signal package for peak search ''' if not self.simulation: - height = 50.0 + height = self.signal_min_peak_height else: height = 0.005 @@ -438,10 +488,13 @@ class AnalysisProcedure(QObject): y1_peaks_pre = signal.find_peaks(self.y1_sample, height=height, distance=10) - print('peak length==>', len(y1_peaks_pre[1]['peak_heights'])) + print( + 'peak length==>', len( + y1_peaks_pre[1]['peak_heights']), flush=True) if len(y1_peaks_pre[1]['peak_heights']) < 2: return False - + print('peak length=============>', len( + y1_peaks_pre[1]['peak_heights']), flush=True) ##y1_peaks_avg = np.average(y1_peaks_pre[1]['peak_heights']) min_y1_p = np.min(y1_peaks_pre[1]['peak_heights']) max_y1_p = np.max(y1_peaks_pre[1]['peak_heights']) @@ -474,7 +527,7 @@ class AnalysisProcedure(QObject): #peak_heights = y2_peaks_pre[1]['peak_heights'] #peak_indices = y2_peaks_pre[0] - #second_highest_peak_index = peak_indices[ + # second_highest_peak_index = peak_indices[ # np.argpartition(peak_heights,-2)[-2]] #print("2nd highest peak", np.argpartition(peak_heights,-2)) return True @@ -508,7 +561,7 @@ class AnalysisProcedure(QObject): entry = entry.replace('\n', '') val = entry.split('\t') self.t_sample.append(float(t_inc)) - self.y1_sample.append(float(val[1])*(-1)) + self.y1_sample.append(float(val[1]) * (-1)) self.y2_sample.append(float(val[2])) t_inc += self.t_stepsize @@ -521,15 +574,34 @@ class AnalysisProcedure(QObject): pv_wf_entry = self.pv_dict['wfEntry'] pv_wf_exit = self.pv_dict['wfExit'] pv_wf = [pv_wf_entry, pv_wf_exit] - self.daq_ready = self.cafe.getCache(pv_daq_ready) + self.daq_ready_init_value = self.cafe.getCache(pv_daq_ready) + + stat = 0 + ntries = 3 + itries = 0 + sleeptime = 0.01 + while stat != self.cyca.ICAFE_NORMAL and itries < ntries: + time.sleep(sleeptime) + stat = self.cafe.set(pv_daq_trigger, 1) + itries += 1 + sleeptime = 0.2 - stat = self.cafe.set(pv_daq_trigger, 8) - self.check_status(_pymodule, 'set', pv_daq_trigger, stat, - utils.line_no()) - time.sleep(0.5) - stat = self.cafe.set(pv_daq_trigger, 0) self.check_status(_pymodule, 'set', pv_daq_trigger, stat, utils.line_no()) + + if stat != self.cyca.ICAFE_NORMAL: + mess = ('DAQ cannot be started. Error in setting pv ' + + f'{pv_daq_trigger}') + self.parent.trigger_log_message.emit( + MsgSeverity.ERROR.name, _pymodule, utils.line_no(), + mess, {}) + self.aborting(utils.line_no()) + return None + + time.sleep(sleeptime) + #####stat = self.cafe.set(pv_daq_trigger, 0) + # self.check_status(_pymodule, 'set', pv_daq_trigger, stat, + # utils.line_no()) # Monitor DAQ State start = time.time() @@ -549,12 +621,12 @@ class AnalysisProcedure(QObject): stat = self.cafe.getStatus(pv_daq_ready) self.check_status(_pymodule, 'getCache', pv_daq_ready, stat, utils.line_no()) - elif value != 0: + elif value == self.daq_ready_init_value + 1: finished = True break time.sleep(1.0) icount += 1 - progress = int(100*icount/self.daq_timeout) + progress = int(100 * icount / self.daq_timeout) if progress > PROGRESS_THREAD_ERROR: self.trigger_progressbar.emit(progress) @@ -616,13 +688,6 @@ class AnalysisProcedure(QObject): self.trigger_progressbar.emit(60) extract_raw_data() - peaks_found = self.extract_peak_data() - if not peaks_found: - mess = ('No peaks found! ' + - 'Measuremenmg procedure aborted.') - self.parent.trigger_log_message.emit( - MsgSeverity.ERROR.name, _pymodule, utils.line_no(), mess, {}) - if self.abort: self.aborting(utils.line_no()) return None @@ -635,6 +700,9 @@ class AnalysisProcedure(QObject): 'y2': list(self.y2_sample), 't': list(self.t_sample), } + print(len(self.y1_sample), type(self.y1_sample), flush=True) + print(len(self.y2_sample), type(self.y2_sample), flush=True) + print(len(self.t_sample), type(self.t_sample), flush=True) return rawdata @@ -657,59 +725,90 @@ class AnalysisProcedure(QObject): if from_hdf5: self.unpack_hdf_data() + peaks_found = self.extract_peak_data() + print('peaks_found', peaks_found) + if not peaks_found: + mess = ('No peaks found! ' + + 'No measurement made.') + self.parent.trigger_log_message.emit( + MsgSeverity.ERROR.name, _pymodule, utils.line_no(), mess, {}) + + # self.aborting(utils.line_no()) + return {} + self.mean_amplitude_y1 = np.mean(self.y1_pulse, keepdims=True) self.mean_amplitude_y2 = np.mean(self.y2_pulse, keepdims=True) self.std_amplitude_y1 = np.std(self.y1_pulse, keepdims=True) self.std_amplitude_y2 = np.std(self.y2_pulse, keepdims=True) self.normalized_amplitude_envelope_1 = ( - self.y1_pulse - self.mean_amplitude_y1)/self.std_amplitude_y1 + self.y1_pulse - self.mean_amplitude_y1) / self.std_amplitude_y1 self.normalized_amplitude_envelope_2 = ( - self.y2_pulse - self.mean_amplitude_y2)/(self.std_amplitude_y2*len( - self.y2_pulse)) - self.corr_full = signal.correlate( - self.normalized_amplitude_envelope_2, - self.normalized_amplitude_envelope_1, mode='full', method='auto') - self.lags_full_array = signal.correlation_lags( - len(self.normalized_amplitude_envelope_2), - len(self.normalized_amplitude_envelope_1), mode='full') + self.y2_pulse - self.mean_amplitude_y2) / \ + (self.std_amplitude_y2 * len(self.y2_pulse)) - self.lag_full = int(self.lags_full_array[np.argmax(self.corr_full)]) - #self.delay = self.lag_full * self.t_stepsize*self.t_interval - self.delay = float(self.lag_full * self.pulse_stepsize) + try: + self.corr_full = signal.correlate( + self.normalized_amplitude_envelope_2, + self.normalized_amplitude_envelope_1, + mode='full', method='auto') + self.lags_full_array = signal.correlation_lags( + len(self.normalized_amplitude_envelope_2), + len(self.normalized_amplitude_envelope_1), mode='full') - print('peak height', np.max(self.corr_full)) - top_peak_values = heapq.nlargest(2, self.corr_full) - print('1st peak height', top_peak_values[0]) - print('2nd peak height', top_peak_values[1]) - self.correlation_peak_diff = top_peak_values[0] - top_peak_values[1] - print(f'peak significance = {self.correlation_peak_diff:.3f}') - print('lag', self.lag_full) - print('delay', self.delay, flush=True) - print('dTcable', self.dt_cable, flush=True) - print('rf freq', self.rf_freq, flush=True) - print('harmonic', self.harmonic_no, flush=True) - print('dN pickup', self.dn_pickup, flush=True) - print(f'Correlation Peak Diff {self.correlation_peak_diff}') - print(f'Min Peak Height {self.signal_min_peak_height}') - print(f'Min Peak Distance {self.signal_min_peak_distance}') + self.lag_full = int( + self.lags_full_array[np.argmax(self.corr_full)]) + #self.delay = self.lag_full * self.t_stepsize*self.t_interval + self.delay = float(self.lag_full * self.pulse_stepsize) - self.n_turns = ( - ((self.delay-self.dt_cable*10**(-9))*self.rf_freq*10**6) - / self.harmonic_no) + self.dn_pickup + print('peak height', np.max(self.corr_full)) + top_peak_values = heapq.nlargest(2, self.corr_full) + print('1st peak height', top_peak_values[0]) + print('2nd peak height', top_peak_values[1]) + self.correlation_peak_diff = top_peak_values[0] - \ + top_peak_values[1] + print(f'peak significance = {self.correlation_peak_diff:.3f}') + print('lag', self.lag_full) + print('delay', self.delay, flush=True) + print('dTcable', self.dt_cable, flush=True) + print('rf freq', self.rf_freq, flush=True) + print('harmonic', self.harmonic_no, flush=True) + print('dN pickup', self.dn_pickup, flush=True) + print(f'Correlation Peak Diff {self.correlation_peak_diff}') + print(f'Min Peak Height {self.signal_min_peak_height}') + print(f'Min Peak Distance {self.signal_min_peak_distance}') - print((f'lag = {self.lag_full}, ' + - f'delay = {self.delay*10**6:.3f} \u00B5s ' + - f'nturns = {self.n_turns:.4f}')) + self.n_turns = ( + ((self.delay - self.dt_cable * 10**(-9)) * self.rf_freq * 10**6) + / self.harmonic_no) + self.dn_pickup + + print((f'lag = {self.lag_full}, ' + + f'delay = {self.delay*10**6:.3f} \u00B5s ' + + f'nturns = {self.n_turns:.4f}')) + + except ValueError: + pass + except RuntimeError: + pass if self.abort: self.aborting(utils.line_no()) return None + if isinstance(self.y1_pulse, list): + y1p = self.y1_pulse + else: + y1p = self.y1_pulse.tolist() + + if isinstance(self.y2_pulse, list): + y2p = self.y2_pulse + else: + y2p = self.y2_pulse.tolist() + # Fill Processed data here proc_data = { - 'y1': self.y1_pulse.tolist(), - 'y2': self.y2_pulse.tolist(), + 'y1': y1p, + 'y2': y2p, 't_stepsize': self.pulse_stepsize, 'lag': self.lag_full, 'delay': self.delay, @@ -725,9 +824,9 @@ class AnalysisProcedure(QObject): def make_figs(self): ''' Figure construction with matplotlib ''' - #if self.correlation_peak_diff < self.correlation_min_peak_diff: + # if self.correlation_peak_diff < self.correlation_min_peak_diff: # is_suspect = True - #else: + # else: # is_suspect = False is_suspect = bool( self.correlation_peak_diff < self.correlation_min_peak_diff) @@ -760,7 +859,7 @@ class AnalysisProcedure(QObject): ax[1].plot(self.t_sample[s:e], self.y2_sample[s:e], '.r-', label='') ax[0].xaxis.set_major_locator( - ticker.MultipleLocator(self.t_stepsize*self.t_interval)) + ticker.MultipleLocator(self.t_stepsize * self.t_interval)) ax[0].set_xlabel('Time [s]') ax[0].set_ylabel('Amplitude') ax[0].set_title('Pulse at Entry') @@ -769,7 +868,7 @@ class AnalysisProcedure(QObject): ax[0].grid(visible=True, which='major', axis='both', linestyle='--', linewidth=0.8) ax[1].xaxis.set_major_locator( - ticker.MultipleLocator(self.t_stepsize*self.t_interval)) + ticker.MultipleLocator(self.t_stepsize * self.t_interval)) ax[1].set_xlabel('Time [s]') ax[1].set_ylabel('Amplitude') ax[1].set_title('Pulse at Exit') @@ -804,11 +903,11 @@ class AnalysisProcedure(QObject): if self.entry_current != 0: current_text = f'I(entry) = {self.entry_current:.3f} mA' plt.figtext(0.80, 0.86, current_text, fontweight='normal', - fontsize=10) + fontsize=8) if self.exit_current != 0: current_text = f'I(exit) = {self.exit_current:.3f} mA' plt.figtext(0.8075, 0.84, current_text, fontweight='normal', - fontsize=10) + fontsize=8) plt.figtext(0.7, 0.72, f'lag = {self.lag_full}', fontweight=fontweight, fontsize=14, color=color, alpha=alpha) diff --git a/src/gui.py b/src/gui.py index 3546112..c30a4da 100644 --- a/src/gui.py +++ b/src/gui.py @@ -37,15 +37,19 @@ 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(350) 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(480) self.gui_frame.operator_wgt.setFixedHeight(640) # self.gui_frame.expert_wgt.setFixedHeight(240) + + 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( diff --git a/tina.json b/tina.json index 6c12e91..4da3809 100755 --- a/tina.json +++ b/tina.json @@ -14,25 +14,40 @@ "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", + "PV" : {"Injector": {"nturns": "ZWSGA-CECL-TCINJ:TURN-COUNT", + "daqTrigger": "ZWSGA-CECL-TCINJ:TRG-SINGLE:PROC", + "daqReady": "ZWSGA-CECL-TCINJ:SCOPE-ACQ-CNT", + "daqErrorCount": "ZWSGA-CECL-TCINJ:ERR-CNT", + "wfEntry": "ZWSGA-CECL-TCINJ:SCOPE-CH0", + "wfExit": "ZWSGA-CECL-TCINJ:SCOPE-CH1", "IEntry": "ENTRY:IST:1", "IExit": "EXIT:IST:1" }, - "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", + "wfEntry": "ZWSGA-CECL-TCRING:SCOPE-CH0", + "wfExit": "ZWSGA-CECL-TCRING:SCOPE-CH1", "IEntry": "MNC3:IST:2", "IExit": "MHC1:IST:2" } }, + "Init": {"Injector": {"ZWSGA-CECL-TCINJ:TRG-SINGLE.PROC": 1, + "ZWSGA-CECL-TCINJ:TRG-SOURCE": "Auto", + "ZWSGA-CECL-TCINJ:SCOPE-PRE-TRIGGER": 0, + "ZWSGA-CECL-TCINJ:TRG-AUTO-PERIOD": 4000, + "ZWSGA-CECL-TCINJ:TRG-SW-INHIBIT-ENA": 1, + "ZWSGA-CECL-TCINJ: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":{ @@ -41,24 +56,28 @@ "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}} + "dutycycle" : {"data":{ "widget": "QLineRead", "text" :"Duty Cycle (%):", "value" : 1}} + }, "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": { + " 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}} + "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.00"}} }, - "Cyclotron": { + " Cyclotron ": { "peakHeight": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak height:", "value" : 50 }}, "peakDistance": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak distance: ", "value" : 10 }}, - "correlationPeakDifference": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min 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.00"}} } }, @@ -68,16 +87,15 @@ "freqsampling" : {"flag": 1, "data":{ "widget": "QLineRead", "text" :"Sampling Freq (GHz):", "value" : 3.0 }}, "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" ]}} + "color" : ["#008b8b", "#0047ab" ]}} }, "Expert":{ - "signalPeakSearch" : {"flag" : 1, "data":{ "widget": "QStackedWidget", "text" : "Accelerator: ", + "signalPeakSearch" : {"flag" : 0, "data":{ "widget": "QStackedWidget", "text" : "Accelerator: ", "link" : "QTabSignalPeakSearch", "value" : 1, - "color" : ["#008b8b", "#0047ab" ]}}, + "color" : ["#008b8b", "#0047ab" ]}}, "debug": {"flag" : 1, "data":{ "widget": "None", "text" : "Debug", "value" : 0}}, "simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Oscilloscope", "value" : 0}} }, diff --git a/tina.py b/tina.py index edece6a..5b474a2 100644 --- a/tina.py +++ b/tina.py @@ -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,25 +48,32 @@ 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) def prepare_results_message(self): @@ -102,7 +109,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)) self.message = ( mess + @@ -110,7 +117,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,11 +146,63 @@ 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()) + + 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.') QMessageBox.information(self, 'Injector 2', mess, QMessageBox.Ok) @@ -154,7 +213,8 @@ class StartMain(BaseWindow): if self.input_parameters['simulation']: return True - #return True + I_min = float(self.input_parameters[self.accelerator_peak_search][ + 'minimumCurrent']) injector_current = self.cafe.getCache('MWC2:IST:2') if not injector_current: @@ -166,14 +226,14 @@ class StartMain(BaseWindow): QMessageBox.information(self, 'Cyclotron', 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.') + elif injector_current <= I_min: + mess = (f'Injector 2 current is below threshold {I_min} mA.\n' + + f'Measurement cannot be untertaken at the present time.') QMessageBox.information(self, 'Cyclotron', mess, QMessageBox.Ok) QApplication.processEvents() return False - return True + return self.is_front_end_initialized(init=True) @Slot() def analysis_thread_finished(self): @@ -182,8 +242,12 @@ class StartMain(BaseWindow): 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) + try: + if self.all_data['Figure data'] is not None: + self.gui_frame.central_tab_widget.setCurrentIndex(1) + except AttributeError: + print('No analysis performed') + return except KeyError: print('No analysis performed') return @@ -192,11 +256,17 @@ class StartMain(BaseWindow): 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) return self.prepare_results_message() @@ -205,7 +275,7 @@ 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) @@ -251,7 +321,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_H5, proc=True, raw=False): '''User supplied hdf data ''' if self.all_data is not None: @@ -265,8 +335,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_H5) @Slot() def send_to_elog(self): @@ -393,7 +464,8 @@ class StartMain(BaseWindow): """{0} v {1}

    Copyright © Paul Scherrer Institut (PSI). All rights reserved.

    -

    Authors: P.-A. Duperrex, J. Chrin, A. Facchetti, W. Koprek,

    +

    Authors: P.-A. Duperrex, J. Chrin, A. Facchetti, D. Felici, + W. Koprek,

    A python implementation of the LabVIEW measurement developed by P.-A. Duperrex
    Ref: P.-A. Duperrex and A. Facchetti
    @@ -417,13 +489,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) diff --git a/tina.sh b/tina.sh index ae0b806..b87bc50 100755 --- a/tina.sh +++ b/tina.sh @@ -1,5 +1,5 @@ #!/bin/bash -cd /hipa/bd/applications/tina/0.0.2 +cd /hipa/bd/applications/tina/1.0.0 # For use if script is sourced rather than executed appNameDefault="tina.sh"