summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Plattner <aplattner@nvidia.com>2008-04-10 13:54:30 -0700
committerAaron Plattner <aplattner@nvidia.com>2008-04-10 13:54:30 -0700
commite595fe4cfdc12c8e6eaea71c11f79addecd97ecc (patch)
treed1e0865fa365a2023824234c9a693ef22e3ccdd7
parentb27db3d10d58b821e87fbe3f46166e02dc589855 (diff)
173.08173.08
-rw-r--r--Makefile8
-rw-r--r--samples/nv-control-events.c21
-rw-r--r--samples/nv-control-targets.c12
-rw-r--r--src/gtk+-2.x/Makefile.inc9
-rw-r--r--src/gtk+-2.x/ctkbanner.c6
-rw-r--r--src/gtk+-2.x/ctkdisplayconfig.c96
-rw-r--r--src/gtk+-2.x/ctkdisplayconfig.h2
-rw-r--r--src/gtk+-2.x/ctkdropdownmenu.c17
-rw-r--r--src/gtk+-2.x/ctkdropdownmenu.h3
-rw-r--r--src/gtk+-2.x/ctkevent.c193
-rw-r--r--src/gtk+-2.x/ctkevent.h3
-rw-r--r--src/gtk+-2.x/ctkframelock.c99
-rw-r--r--src/gtk+-2.x/ctkgvo-banner.c891
-rw-r--r--src/gtk+-2.x/ctkgvo-banner.h116
-rw-r--r--src/gtk+-2.x/ctkgvo-csc.c142
-rw-r--r--src/gtk+-2.x/ctkgvo-csc.h6
-rw-r--r--src/gtk+-2.x/ctkgvo-sync.c1509
-rw-r--r--src/gtk+-2.x/ctkgvo-sync.h123
-rw-r--r--src/gtk+-2.x/ctkgvo.c3243
-rw-r--r--src/gtk+-2.x/ctkgvo.h108
-rw-r--r--src/gtk+-2.x/ctkimagesliders.c7
-rw-r--r--src/gtk+-2.x/ctkopengl.c104
-rw-r--r--src/gtk+-2.x/ctkopengl.h1
-rw-r--r--src/gtk+-2.x/ctkrandr.c14
-rw-r--r--src/gtk+-2.x/ctkui.c4
-rw-r--r--src/gtk+-2.x/ctkvcs.c (renamed from src/gtk+-2.x/ctkvcsc.c)55
-rw-r--r--src/gtk+-2.x/ctkvcs.h (renamed from src/gtk+-2.x/ctkvcsc.h)50
-rw-r--r--src/gtk+-2.x/ctkwindow.c83
-rw-r--r--src/gtk+-2.x/ctkxvideo.c123
-rw-r--r--src/gtk+-2.x/ctkxvideo.h2
-rw-r--r--src/image_data/HOWTO-ADD-IMAGES2
-rw-r--r--src/image_data/Makefile.inc5
-rw-r--r--src/image_data/image.h3
-rw-r--r--src/image_data/rotation_orientation_horiz.h1878
-rw-r--r--src/image_data/rotation_orientation_horiz_flipped.h1862
-rw-r--r--src/image_data/rotation_orientation_vert.h1995
-rw-r--r--src/image_data/rotation_orientation_vert_flipped.h1975
-rw-r--r--src/image_data/sdi_shared_sync_bnc_pixdata.h1088
-rw-r--r--src/image_data/vcs_pixdata.h (renamed from src/image_data/vcsc_pixdata.h)6
-rw-r--r--src/libXNVCtrl/Imakefile26
-rw-r--r--src/libXNVCtrl/Makefile11
-rw-r--r--src/libXNVCtrl/Makefile.inc5
-rw-r--r--src/libXNVCtrl/NVCtrl.c52
-rw-r--r--src/libXNVCtrl/NVCtrl.h188
-rw-r--r--src/libXNVCtrl/NVCtrlLib.h49
-rw-r--r--src/libXNVCtrl/README.LIBXNVCTRL37
-rw-r--r--src/libXNVCtrl/libXNVCtrl.abin17180 -> 0 bytes
-rw-r--r--src/libXNVCtrl/nv_control.h19
-rw-r--r--src/libXNVCtrlAttributes/NvCtrlAttributes.c8
-rw-r--r--src/libXNVCtrlAttributes/NvCtrlAttributes.h8
-rw-r--r--src/libXNVCtrlAttributes/NvCtrlAttributesNvControl.c30
-rw-r--r--src/libXNVCtrlAttributes/NvCtrlAttributesPrivate.h2
-rw-r--r--src/libXNVCtrlAttributes/NvCtrlAttributesXv.c14
-rw-r--r--src/nvidia-settings.c22
-rw-r--r--src/parse.c65
-rw-r--r--src/parse.h4
-rw-r--r--src/query-assign.c62
57 files changed, 9076 insertions, 7390 deletions
diff --git a/Makefile b/Makefile
index 865a534..7a9cf76 100644
--- a/Makefile
+++ b/Makefile
@@ -121,6 +121,7 @@ GTK_LDFLAGS := $(shell $(PKG_CONFIG) --libs gtk+-2.0)
X11_LIBS := $(X11_LIB_DIRS) -Wl,-Bstatic -lXxf86vm -Wl,-Bdynamic -lX11 -lXext
XNVCTRL_LIB := src/libXNVCtrl/libXNVCtrl.a
+XNVCTRL_DIR := src/libXNVCtrl
XF86PARSER_LIB := src/XF86Config-parser/libXF86Config-parser.a
XF86PARSER_DIR := src/XF86Config-parser
@@ -234,12 +235,15 @@ $(STAMP_C): $(filter-out $(OBJS_DIR)/$(STAMP_C:.c=.o), $(OBJS))
$(XF86PARSER_LIB):
$(MAKE) NV_CFLAGS='$(NV_CFLAGS)' -C $(XF86PARSER_DIR)
+$(XNVCTRL_LIB):
+ $(MAKE) CFLAGS='$(ALL_CFLAGS)' LDFLAGS='$(ALL_LDFLAGS)' -C $(XNVCTRL_DIR)
+
$(NVIDIA_SETTINGS): $(OBJS) $(XNVCTRL_LIB) $(XF86PARSER_LIB)
$(CC) $(OBJS) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(XNVCTRL_LIB) $(XF86PARSER_LIB) -o $@
.PHONY: $(XF86PARSER_LIB) dist clean clobber
-dist:
+dist: $(XNVCTRL_LIB)
@ if [ -d $(NVIDIA_SETTINGS_DISTDIR) ]; then \
chmod 755 $(NVIDIA_SETTINGS_DISTDIR); \
fi
@@ -262,7 +266,7 @@ dist:
rm -rf $(NVIDIA_SETTINGS_DISTDIR)
clean clobber:
- rm -rf $(OBJS_DIR) $(DEPS_DIR) $(STAMP_C) $(NVIDIA_SETTINGS)
+ rm -rf $(OBJS_DIR) $(DEPS_DIR) $(STAMP_C) $(NVIDIA_SETTINGS) $(XNVCTRL_LIB)
find . -name "*~" -exec rm -f \{\} \;
-include $(DEPS)
diff --git a/samples/nv-control-events.c b/samples/nv-control-events.c
index 1f40fed..cfcc3e1 100644
--- a/samples/nv-control-events.c
+++ b/samples/nv-control-events.c
@@ -42,7 +42,7 @@ int main(void)
Display *dpy;
Bool ret;
int event_base, error_base;
- int num_screens, num_gpus, num_framelocks, num_vcscs, i;
+ int num_screens, num_gpus, num_framelocks, num_vcs, i;
int sources;
XEvent event;
XNVCtrlAttributeChangedEvent *nvevent;
@@ -101,13 +101,13 @@ int main(void)
return 1;
}
- /* Query number of VCSC (Visual Computing System Controllers) devices */
+ /* Query number of VCS (Visual Computing System) devices */
ret = XNVCTRLQueryTargetCount(dpy, NV_CTRL_TARGET_TYPE_VCSC,
- &num_vcscs);
+ &num_vcs);
if (ret != True) {
fprintf(stderr, "Failed to query the number of Visual Computing "
- "System Controllers devices on '%s'.\n",
+ "System devices on '%s'.\n",
XDisplayName(NULL));
return 1;
}
@@ -228,21 +228,21 @@ int main(void)
sources++;
}
- /* Register to receive on all VCSC targets */
+ /* Register to receive on all VCS targets */
- for (i = 0; i < num_vcscs; i++ ) {
+ for (i = 0; i < num_vcs; i++ ) {
ret = XNVCtrlSelectTargetNotify(dpy, NV_CTRL_TARGET_TYPE_VCSC,
i, TARGET_ATTRIBUTE_CHANGED_EVENT,
True);
if (ret != True) {
- printf("- Unable to register to receive NV-CONTROL VCSC "
- "target events for VCSC %d on '%s'.\n",
+ printf("- Unable to register to receive NV-CONTROL VCS "
+ "target events for VCS %d on '%s'.\n",
i, XDisplayName(NULL));
continue;
}
- printf("+ Listening to TARGET_ATTRIBUTE_CHANGE_EVENTs on VCSC "
+ printf("+ Listening to TARGET_ATTRIBUTE_CHANGE_EVENTs on VCS "
"%d.\n", i);
sources++;
}
@@ -321,7 +321,7 @@ static const char *target2str(int n)
case NV_CTRL_TARGET_TYPE_X_SCREEN: return "X Screen"; break;
case NV_CTRL_TARGET_TYPE_GPU: return "GPU"; break;
case NV_CTRL_TARGET_TYPE_FRAMELOCK: return "Frame Lock"; break;
- case NV_CTRL_TARGET_TYPE_VCSC: return "VCSC"; break;
+ case NV_CTRL_TARGET_TYPE_VCSC: return "VCS"; break;
default:
return "Unknown";
}
@@ -360,7 +360,6 @@ static const char *attr2str(int n)
case NV_CTRL_FRAMELOCK_TEST_SIGNAL: return "frame lock test signal"; break;
case NV_CTRL_FRAMELOCK_ETHERNET_DETECTED: return "frame lock ethernet detected"; break;
case NV_CTRL_FRAMELOCK_VIDEO_MODE: return "frame lock video mode"; break;
- case NV_CTRL_FORCE_GENERIC_CPU: return "force generic cpu"; break;
case NV_CTRL_OPENGL_AA_LINE_GAMMA: return "opengl aa line gamma"; break;
case NV_CTRL_FLIPPING_ALLOWED: return "flipping allowed"; break;
case NV_CTRL_TEXTURE_CLAMPING: return "texture clamping"; break;
diff --git a/samples/nv-control-targets.c b/samples/nv-control-targets.c
index 9866df3..89952cf 100644
--- a/samples/nv-control-targets.c
+++ b/samples/nv-control-targets.c
@@ -89,7 +89,7 @@ int main(int argc, char *argv[])
int major, minor;
int num_gpus, num_screens, num_gsyncs;
- int num_vcscs;
+ int num_vcs;
int gpu, screen;
int display_devices, mask;
int *pData;
@@ -172,18 +172,18 @@ int main(int argc, char *argv[])
printf(" number of Frame Lock Devices: %d\n", num_gsyncs);
- /* Get the number of Visual Computing System Controller devices in
+ /* Get the number of Visual Computing System devices in
* the system
*/
ret = XNVCTRLQueryTargetCount(dpy, NV_CTRL_TARGET_TYPE_VCSC,
- &num_vcscs);
+ &num_vcs);
if (!ret) {
- fprintf(stderr, "Failed to query number of VCSCs\n");
+ fprintf(stderr, "Failed to query number of VCS\n");
return 1;
}
- printf(" number of Visual Computing System Controllers: %d\n",
- num_vcscs);
+ printf(" number of Visual Computing System Devices: %d\n",
+ num_vcs);
/* display information about all GPUs */
diff --git a/src/gtk+-2.x/Makefile.inc b/src/gtk+-2.x/Makefile.inc
index 5f7bd6d..7802fac 100644
--- a/src/gtk+-2.x/Makefile.inc
+++ b/src/gtk+-2.x/Makefile.inc
@@ -61,8 +61,10 @@ SRC += \
ctkscreen.c \
ctkgpu.c \
ctkbanner.c \
- ctkvcsc.c \
+ ctkvcs.c \
ctkdisplayconfig-utils.c \
+ ctkgvo-banner.c \
+ ctkgvo-sync.c \
ctkpowersavings.c
@@ -104,8 +106,11 @@ EXTRA_DIST += \
ctkscreen.h \
ctkgpu.h \
ctkbanner.h \
- ctkvcsc.h \
+ ctkvcs.h \
ctkdisplayconfig-utils.h \
+ ctkpowersavings.h \
+ ctkgvo-banner.h \
+ ctkgvo-sync.h \
ctkpowersavings.h
dist_list::
diff --git a/src/gtk+-2.x/ctkbanner.c b/src/gtk+-2.x/ctkbanner.c
index adbe679..d8361f7 100644
--- a/src/gtk+-2.x/ctkbanner.c
+++ b/src/gtk+-2.x/ctkbanner.c
@@ -56,10 +56,11 @@
#include "penguin_pixdata.h"
#include "rotation_pixdata.h"
#include "sdi_pixdata.h"
+#include "sdi_shared_sync_bnc_pixdata.h"
#include "solaris_pixdata.h"
#include "thermal_pixdata.h"
#include "tv_pixdata.h"
-#include "vcsc_pixdata.h"
+#include "vcs_pixdata.h"
#include "x_pixdata.h"
#include "xvideo_pixdata.h"
@@ -370,10 +371,11 @@ static gboolean select_artwork(BannerArtworkType artwork,
{ BANNER_ARTWORK_PENGUIN, TRUE, 16, &penguin_pixdata },
{ BANNER_ARTWORK_ROTATION, FALSE, 16, &rotation_pixdata },
{ BANNER_ARTWORK_SDI, FALSE, 16, &sdi_pixdata },
+ { BANNER_ARTWORK_SDI_SHARED_SYNC_BNC, FALSE, 16, &sdi_shared_sync_bnc_pixdata },
{ BANNER_ARTWORK_SOLARIS, TRUE, 16, &solaris_pixdata },
{ BANNER_ARTWORK_THERMAL, FALSE, 16, &thermal_pixdata },
{ BANNER_ARTWORK_TV, FALSE, 16, &tv_pixdata },
- { BANNER_ARTWORK_VCSC, FALSE, 16, &vcsc_pixdata },
+ { BANNER_ARTWORK_VCS, FALSE, 16, &vcs_pixdata },
{ BANNER_ARTWORK_X, FALSE, 16, &x_pixdata },
{ BANNER_ARTWORK_XVIDEO, FALSE, 16, &xvideo_pixdata },
{ BANNER_ARTWORK_INVALID, FALSE, 16, NULL },
diff --git a/src/gtk+-2.x/ctkdisplayconfig.c b/src/gtk+-2.x/ctkdisplayconfig.c
index 9206323..e52e8c4 100644
--- a/src/gtk+-2.x/ctkdisplayconfig.c
+++ b/src/gtk+-2.x/ctkdisplayconfig.c
@@ -120,6 +120,7 @@ static void update_banner(XConfigPtr config);
#define GTK_RESPONSE_USER_DISPLAY_ENABLE_TWINVIEW 1
#define GTK_RESPONSE_USER_DISPLAY_ENABLE_XSCREEN 2
+#define MIN_LAYOUT_SCREENSIZE 600
typedef struct SwitchModeCallbackInfoRec {
CtkDisplayConfig *ctk_object;
int screen;
@@ -149,6 +150,9 @@ static int __position_table[] = { CONF_ADJ_ABSOLUTE,
/* Layout tooltips */
+static const char * __layout_hidden_label_help =
+"To select a display, use the \"Model\" dropdown menu.";
+
static const char * __layout_xinerama_button_help =
"The Enable Xinerama checkbox enables the Xinerama X extension; changing "
"this option will require restarting your X server.";
@@ -233,9 +237,9 @@ static const char * __screen_metamode_delete_button_help =
static const char * __apply_button_help =
"The Apply button allows you to apply changes made to the server layout.";
-static const char * __probe_button_help =
-"The probe button allows you to probe for new display devices that may "
-"have been hotplugged.";
+static const char * __detect_displays_button_help =
+"The Detect Displays button allows you to probe for new display devices "
+"that may have been hotplugged.";
static const char * __advanced_button_help =
"The Advanced/Basic button toggles between a basic view, and an advanced view "
@@ -893,6 +897,30 @@ static void screen_primary_display_toggled(GtkWidget *widget,
+/** screen_size_changed() *****************************************
+ *
+ * Hides layout widget.
+ *
+ **/
+
+static void screen_size_changed(GdkScreen *screen,
+ gpointer user_data)
+{
+ CtkDisplayConfig *ctk_object = CTK_DISPLAY_CONFIG(user_data);
+ gint h = gdk_screen_get_height(screen);
+
+ if ( h < MIN_LAYOUT_SCREENSIZE ) {
+ gtk_widget_hide_all(ctk_object->obj_layout);
+ gtk_widget_show(ctk_object->label_layout);
+ return;
+ }
+
+ gtk_widget_hide(ctk_object->label_layout);
+ gtk_widget_show_all(ctk_object->obj_layout);
+} /* screen_size_changed() */
+
+
+
/** ctk_display_config_new() *****************************************
*
* Display Configuration widget creation.
@@ -911,8 +939,9 @@ GtkWidget* ctk_display_config_new(NvCtrlAttributeHandle *handle,
GtkWidget *hbox;
GtkWidget *hbox2;
GtkWidget *vbox;
+ GdkScreen *screen;
GtkWidget *label;
-
+ GtkWidget *eventbox;
GtkRequisition req;
@@ -920,7 +949,7 @@ GtkWidget* ctk_display_config_new(NvCtrlAttributeHandle *handle,
GtkWidget *menu_item;
gchar *err_str = NULL;
-
+ gchar *layout_str = NULL;
/*
* Create the ctk object
@@ -1001,6 +1030,19 @@ GtkWidget* ctk_display_config_new(NvCtrlAttributeHandle *handle,
*
*/
+ /* Create label to replace layout widget */
+
+ eventbox = gtk_event_box_new();
+ layout_str = g_strdup_printf("(hidden because screen height is less than %d pixels)", MIN_LAYOUT_SCREENSIZE);
+ ctk_object->label_layout = gtk_label_new(layout_str);
+ gtk_container_add(GTK_CONTAINER(eventbox), ctk_object->label_layout);
+ ctk_config_set_tooltip(ctk_config, eventbox, __layout_hidden_label_help);
+ g_free(layout_str);
+ screen = gtk_widget_get_screen(GTK_WIDGET(ctk_object));
+ g_signal_connect(G_OBJECT(screen), "size-changed",
+ G_CALLBACK(screen_size_changed),
+ (gpointer) ctk_object);
+
/* Xinerama button */
ctk_object->chk_xinerama_enabled =
@@ -1342,7 +1384,7 @@ GtkWidget* ctk_display_config_new(NvCtrlAttributeHandle *handle,
/* Probe button */
ctk_object->btn_probe = gtk_button_new_with_label("Detect Displays");
ctk_config_set_tooltip(ctk_config, ctk_object->btn_probe,
- __probe_button_help);
+ __detect_displays_button_help);
g_signal_connect(G_OBJECT(ctk_object->btn_probe), "clicked",
G_CALLBACK(probe_clicked),
(gpointer) ctk_object);
@@ -1385,23 +1427,16 @@ GtkWidget* ctk_display_config_new(NvCtrlAttributeHandle *handle,
{ /* Layout section */
- frame = gtk_frame_new("Layout");
- hbox = gtk_hbox_new(TRUE, 5); /* main panel */
- vbox = gtk_vbox_new(TRUE, 5); /* layout panel */
- gtk_box_pack_start(GTK_BOX(ctk_object), hbox, TRUE, TRUE, 0);
- gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 5);
- gtk_widget_set_size_request(frame, -1, 200);
-
- hbox = gtk_hbox_new(FALSE, 5); /* layout panel */
- gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ frame = gtk_frame_new("Layout"); /* main panel */
+ gtk_box_pack_start(GTK_BOX(ctk_object), frame, FALSE, FALSE, 0);
vbox = gtk_vbox_new(FALSE, 5);
- gtk_container_add(GTK_CONTAINER(frame), hbox);
- gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
+ gtk_container_add(GTK_CONTAINER(frame), vbox);
/* Pack the layout widget */
gtk_box_pack_start(GTK_BOX(vbox), ctk_object->obj_layout,
TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), eventbox, TRUE, TRUE, 0);
/* Xinerama checkbox */
gtk_box_pack_start(GTK_BOX(vbox), ctk_object->chk_xinerama_enabled,
@@ -1771,6 +1806,8 @@ GtkTextBuffer *ctk_display_config_create_help(GtkTextTagTable *table,
"You may drag display devices around to reposition them. "
"When in advanced view, the display's panning domain may "
"be resized by holding shift while dragging.");
+ ctk_help_heading(b, &i, "Layout Hidden Label");
+ ctk_help_para(b, &i, __layout_hidden_label_help);
ctk_help_heading(b, &i, "Enable Xinerama");
ctk_help_para(b, &i, "%s. This setting is only available when multiple "
"X screens are present.", __layout_xinerama_button_help);
@@ -1829,10 +1866,15 @@ GtkTextBuffer *ctk_display_config_create_help(GtkTextTagTable *table,
ctk_help_para(b, &i, "");
ctk_help_heading(b, &i, "Buttons");
- ctk_help_heading(b, &i, "Probe");
- ctk_help_para(b, &i, __apply_button_help);
+ ctk_help_heading(b, &i, "Apply");
+ ctk_help_para(b, &i, "%s Note that not all settings can be applied to an "
+ "active X server; these require restarting the X server "
+ "after saving the desired settings to the X configuration "
+ "file. Examples of such settings include changing the "
+ "position of any X screen, adding/removing an X screen, and "
+ "changing the X screen color depth.", __apply_button_help);
ctk_help_heading(b, &i, "Detect Displays");
- ctk_help_para(b, &i, __probe_button_help);
+ ctk_help_para(b, &i, __detect_displays_button_help);
ctk_help_heading(b, &i, "Advanced/Basic...");
ctk_help_para(b, &i, "%s. The Basic view modifies the currently active "
"MetaMode for an X screen, while the Advanced view exposes "
@@ -1865,7 +1907,15 @@ static void setup_layout_frame(CtkDisplayConfig *ctk_object)
nvLayoutPtr layout = ctk_object->layout;
nvGpuPtr gpu;
int num_screens;
+ GdkScreen *s;
+ /*
+ * Hide/Shows the layout widget based on the current screen size.
+ * If the screen is too small, the layout widget is hidden and a
+ * message is shown instead.
+ */
+ s = gtk_widget_get_screen(GTK_WIDGET(ctk_object));
+ screen_size_changed(s, ctk_object);
/* Only allow Xinerama when there are multiple X screens */
num_screens = 0;
@@ -6152,6 +6202,10 @@ static void apply_clicked(GtkWidget *widget, gpointer user_data)
nv_error_msg("Failed to set primary display"
"for screen %d (GPU:%s)", screen->scrnum,
screen->gpu->name);
+ } else {
+ /* Make sure other parts of nvidia-settings get updated */
+ ctk_event_emit_string(screen->ctk_event, 0,
+ NV_CTRL_STRING_TWINVIEW_XINERAMA_INFO_ORDER);
}
}
}
diff --git a/src/gtk+-2.x/ctkdisplayconfig.h b/src/gtk+-2.x/ctkdisplayconfig.h
index 0921447..3a8348d 100644
--- a/src/gtk+-2.x/ctkdisplayconfig.h
+++ b/src/gtk+-2.x/ctkdisplayconfig.h
@@ -64,13 +64,13 @@ typedef struct _CtkDisplayConfig
/* Layout */
nvLayoutPtr layout;
GtkWidget *obj_layout;
+ GtkWidget *label_layout;
GtkWidget *chk_xinerama_enabled;
GtkWidget *chk_primary_display;
GtkWidget *notebook; /* Tabbed notebook for display and X screen pages */
-
/* Display - Info */
GtkWidget *display_page;
diff --git a/src/gtk+-2.x/ctkdropdownmenu.c b/src/gtk+-2.x/ctkdropdownmenu.c
index db46ef9..3fea606 100644
--- a/src/gtk+-2.x/ctkdropdownmenu.c
+++ b/src/gtk+-2.x/ctkdropdownmenu.c
@@ -147,6 +147,23 @@ GtkWidget* ctk_drop_down_menu_new(guint flags)
/*
+ * ctk_drop_down_menu_reset() - Clears the internal menu
+ */
+
+void ctk_drop_down_menu_reset(CtkDropDownMenu *d)
+{
+ g_free(d->values);
+ d->values = NULL;
+
+ d->num_entries = 0;
+
+ d->menu = gtk_menu_new();
+
+} /* ctk_drop_down_menu_reset() */
+
+
+
+/*
* ctk_drop_down_menu_append_item() - add a new entry to the drop down
* menu
*/
diff --git a/src/gtk+-2.x/ctkdropdownmenu.h b/src/gtk+-2.x/ctkdropdownmenu.h
index 6d3fa19..b1ee87d 100644
--- a/src/gtk+-2.x/ctkdropdownmenu.h
+++ b/src/gtk+-2.x/ctkdropdownmenu.h
@@ -95,6 +95,9 @@ void ctk_drop_down_menu_set_current_value (CtkDropDownMenu *d,
void ctk_drop_down_menu_set_value_sensitive (CtkDropDownMenu *d,
gint value,
gboolean sensitive);
+void ctk_drop_down_menu_reset (CtkDropDownMenu *d);
+
+
G_END_DECLS
diff --git a/src/gtk+-2.x/ctkevent.c b/src/gtk+-2.x/ctkevent.c
index fb0483b..10ecf7d 100644
--- a/src/gtk+-2.x/ctkevent.c
+++ b/src/gtk+-2.x/ctkevent.c
@@ -40,6 +40,7 @@
#include "ctkevent.h"
#include "NVCtrlLib.h"
+#include "msg.h"
static void ctk_event_class_init(CtkEventClass *ctk_event_class);
@@ -69,6 +70,7 @@ typedef struct __CtkEventSourceRec {
} CtkEventSource;
+static guint string_signals[NV_CTRL_STRING_LAST_ATTRIBUTE + 1];
static guint signals[NV_CTRL_LAST_ATTRIBUTE + 1];
static guint signal_RRScreenChangeNotify;
@@ -155,7 +157,6 @@ static void ctk_event_class_init(CtkEventClass *ctk_event_class)
MAKE_SIGNAL(NV_CTRL_FRAMELOCK_ETHERNET_DETECTED);
MAKE_SIGNAL(NV_CTRL_FRAMELOCK_VIDEO_MODE);
MAKE_SIGNAL(NV_CTRL_FRAMELOCK_SYNC_RATE);
- MAKE_SIGNAL(NV_CTRL_FORCE_GENERIC_CPU);
MAKE_SIGNAL(NV_CTRL_OPENGL_AA_LINE_GAMMA);
MAKE_SIGNAL(NV_CTRL_FLIPPING_ALLOWED);
MAKE_SIGNAL(NV_CTRL_FORCE_STEREO);
@@ -244,7 +245,14 @@ static void ctk_event_class_init(CtkEventClass *ctk_event_class)
MAKE_SIGNAL(NV_CTRL_FRAMELOCK_SYNC_RATE_4);
MAKE_SIGNAL(NV_CTRL_GVO_LOCK_OWNER);
MAKE_SIGNAL(NV_CTRL_NUM_GPU_ERRORS_RECOVERED);
+ MAKE_SIGNAL(NV_CTRL_REFRESH_RATE_3);
+ MAKE_SIGNAL(NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED);
+ MAKE_SIGNAL(NV_CTRL_GVO_SYNC_LOCK_STATUS);
+ MAKE_SIGNAL(NV_CTRL_GVO_ANC_TIME_CODE_GENERATION);
MAKE_SIGNAL(NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS);
+ MAKE_SIGNAL(NV_CTRL_GVO_COMPOSITE);
+ MAKE_SIGNAL(NV_CTRL_GVO_COMPOSITE_ALPHA_KEY);
+ MAKE_SIGNAL(NV_CTRL_GVO_COMPOSITE_NUM_KEY_RANGES);
MAKE_SIGNAL(NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT);
#undef MAKE_SIGNAL
@@ -260,6 +268,50 @@ static void ctk_event_class_init(CtkEventClass *ctk_event_class)
#warning "There are attributes that do not emit signals!"
#endif
+ /* make signals for string attribute */
+ for (i = 0; i <= NV_CTRL_STRING_LAST_ATTRIBUTE; i++) string_signals[i] = 0;
+
+#define MAKE_STRING_SIGNAL(x) \
+ string_signals[x] = g_signal_new(("CTK_EVENT_" #x), \
+ G_OBJECT_CLASS_TYPE(ctk_event_class), \
+ G_SIGNAL_RUN_LAST, 0, NULL, NULL, \
+ g_cclosure_marshal_VOID__POINTER, \
+ G_TYPE_NONE, 1, G_TYPE_POINTER);
+
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_PRODUCT_NAME);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_VBIOS_VERSION);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_NVIDIA_DRIVER_VERSION);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_DISPLAY_DEVICE_NAME);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_TV_ENCODER_NAME);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_DDCCI_MISC_TRANSMIT_DISPLAY_DESCRIPTOR);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_DDCCI_MISC_AUXILIARY_DISPLAY_DATA);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_GVO_FIRMWARE_VERSION);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_CURRENT_MODELINE);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_ADD_MODELINE);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_DELETE_MODELINE);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_CURRENT_METAMODE);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_ADD_METAMODE);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_DELETE_METAMODE);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_VCSC_PRODUCT_NAME);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_VCSC_PRODUCT_ID);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_VCSC_SERIAL_NUMBER);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_VCSC_BUILD_DATE);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_VCSC_FIRMWARE_VERSION);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_VCSC_FIRMWARE_REVISION);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_VCSC_HARDWARE_VERSION);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_VCSC_HARDWARE_REVISION);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_MOVE_METAMODE);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_VALID_HORIZ_SYNC_RANGES);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_VALID_VERT_REFRESH_RANGES);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_XINERAMA_SCREEN_INFO);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_TWINVIEW_XINERAMA_INFO_ORDER);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_SLI_MODE);
+ MAKE_STRING_SIGNAL(NV_CTRL_STRING_PERFORMANCE_MODES);
+#undef MAKE_STRING_SIGNAL
+
+#if NV_CTRL_STRING_LAST_ATTRIBUTE != NV_CTRL_STRING_PERFORMANCE_MODES
+#warning "There are attributes that do not emit signals!"
+#endif
/* Make XRandR signal */
signal_RRScreenChangeNotify =
@@ -470,7 +522,9 @@ static gboolean ctk_event_dispatch(GSource *source,
* Handle the ATTRIBUTE_CHANGED_EVENT NV-CONTROL event
*/
- if (event.type == (event_source->event_base + ATTRIBUTE_CHANGED_EVENT)) {
+ if (event_source->event_base != -1 &&
+ (event.type == (event_source->event_base + ATTRIBUTE_CHANGED_EVENT))) {
+
XNVCtrlAttributeChangedEvent *nvctrlevent =
(XNVCtrlAttributeChangedEvent *) &event;
@@ -483,6 +537,7 @@ static gboolean ctk_event_dispatch(GSource *source,
event_struct.attribute = nvctrlevent->attribute;
event_struct.value = nvctrlevent->value;
event_struct.display_mask = nvctrlevent->display_mask;
+ event_struct.availability = TRUE;
/*
* XXX Is emitting a signal with g_signal_emit() really
@@ -495,14 +550,15 @@ static gboolean ctk_event_dispatch(GSource *source,
NV_CTRL_TARGET_TYPE_X_SCREEN,
nvctrlevent->screen);
}
- }
/*
* Handle the TARGET_ATTRIBUTE_CHANGED_EVENT NV-CONTROL event
*/
- if (event.type == (event_source->event_base
- +TARGET_ATTRIBUTE_CHANGED_EVENT)) {
+ } else if (event_source->event_base != -1 &&
+ (event.type == (event_source->event_base
+ +TARGET_ATTRIBUTE_CHANGED_EVENT))) {
+
XNVCtrlAttributeChangedEventTarget *nvctrlevent =
(XNVCtrlAttributeChangedEventTarget *) &event;
@@ -515,7 +571,43 @@ static gboolean ctk_event_dispatch(GSource *source,
event_struct.attribute = nvctrlevent->attribute;
event_struct.value = nvctrlevent->value;
event_struct.display_mask = nvctrlevent->display_mask;
+ event_struct.availability = TRUE;
+
+ /*
+ * XXX Is emitting a signal with g_signal_emit() really
+ * the "correct" way of dispatching the event?
+ */
+ CTK_EVENT_BROADCAST(event_source,
+ signals[nvctrlevent->attribute],
+ &event_struct,
+ nvctrlevent->target_type,
+ nvctrlevent->target_id);
+ }
+
+ /*
+ * Handle the TARGET_ATTRIBUTE_AVAILABILITY_CHANGED_EVENT
+ * NV-CONTROL event.
+ */
+
+ } else if (event_source->event_base != -1 &&
+ (event.type == (event_source->event_base
+ + TARGET_ATTRIBUTE_AVAILABILITY_CHANGED_EVENT))) {
+
+ XNVCtrlAttributeChangedEventTargetAvailability *nvctrlevent =
+ (XNVCtrlAttributeChangedEventTargetAvailability *) &event;
+
+ /* make sure the attribute is in our signal array */
+
+ if ((nvctrlevent->attribute >= 0) &&
+ (nvctrlevent->attribute <= NV_CTRL_LAST_ATTRIBUTE) &&
+ (signals[nvctrlevent->attribute] != 0)) {
+
+ event_struct.attribute = nvctrlevent->attribute;
+ event_struct.value = nvctrlevent->value;
+ event_struct.display_mask = nvctrlevent->display_mask;
+ event_struct.availability = nvctrlevent->availability;
+
/*
* XXX Is emitting a signal with g_signal_emit() really
* the "correct" way of dispatching the event?
@@ -527,14 +619,46 @@ static gboolean ctk_event_dispatch(GSource *source,
nvctrlevent->target_type,
nvctrlevent->target_id);
}
- }
+ /*
+ * Handle the TARGET_STRING_ATTRIBUTE_CHANGED_EVENT
+ * NV-CONTROL event.
+ */
+ } else if (event_source->event_base != -1 &&
+ (event.type == (event_source->event_base
+ + TARGET_STRING_ATTRIBUTE_CHANGED_EVENT))) {
+ XNVCtrlStringAttributeChangedEventTarget *nvctrlevent =
+ (XNVCtrlStringAttributeChangedEventTarget *) &event;
+
+ /* make sure the attribute is in our signal array */
+
+ if ((nvctrlevent->attribute >= 0) &&
+ (nvctrlevent->attribute <= NV_CTRL_STRING_LAST_ATTRIBUTE) &&
+ (string_signals[nvctrlevent->attribute] != 0)) {
+
+ event_struct.attribute = nvctrlevent->attribute;
+ event_struct.value = 0;
+ event_struct.display_mask = nvctrlevent->display_mask;
+ event_struct.availability = TRUE;
+ /*
+ * XXX Is emitting a signal with g_signal_emit() really
+ * the "correct" way of dispatching the event?
+ */
+
+ CTK_EVENT_BROADCAST(event_source,
+ string_signals[nvctrlevent->attribute],
+ &event_struct,
+ nvctrlevent->target_type,
+ nvctrlevent->target_id);
+ }
/*
* Also handle XRandR events.
*/
- if (event_source->randr_event_base != -1 &&
- event.type ==
- (event_source->randr_event_base + RRScreenChangeNotify)) {
+
+ } else if (event_source->randr_event_base != -1 &&
+ (event.type ==
+ (event_source->randr_event_base + RRScreenChangeNotify))) {
+
XRRScreenChangeNotifyEvent *xrandrevent =
(XRRScreenChangeNotifyEvent *)&event;
int screen;
@@ -548,6 +672,14 @@ static gboolean ctk_event_dispatch(GSource *source,
NV_CTRL_TARGET_TYPE_X_SCREEN,
screen);
}
+
+ /*
+ * Trap events that get registered but are not handled
+ * properly.
+ */
+
+ } else {
+ nv_warning_msg("Unknown event type %d.", event.type);
}
return TRUE;
@@ -594,3 +726,46 @@ void ctk_event_emit(CtkEvent *ctk_event,
NvCtrlGetTargetId(ctk_event->handle));
} /* ctk_event_emit() */
+
+
+
+/* ctk_event_emit_string() - Emits signal(s) on a registered ctk_event object.
+ * This function is primarly used to simulate NV-CONTROL events such
+ * that various parts of nvidia-settings can communicate (internally)
+ */
+void ctk_event_emit_string(CtkEvent *ctk_event,
+ unsigned int mask, int attrib)
+{
+ CtkEventStruct event;
+ CtkEventSource *source;
+ Display *dpy = NvCtrlGetDisplayPtr(ctk_event->handle);
+
+
+ if (attrib > NV_CTRL_STRING_LAST_ATTRIBUTE) return;
+
+
+ /* Find the event source */
+ source = event_sources;
+ while (source) {
+ if (source->dpy == dpy) {
+ break;
+ }
+ source = source->next;
+ }
+ if (!source) return;
+
+
+ /* Broadcast event to all relavent ctk_event objects */
+
+ event.attribute = attrib;
+ event.value = 0;
+ event.display_mask = mask;
+
+ CTK_EVENT_BROADCAST(source,
+ string_signals[attrib],
+ &event,
+ NvCtrlGetTargetType(ctk_event->handle),
+ NvCtrlGetTargetId(ctk_event->handle));
+
+} /* ctk_event_emit_string() */
+
diff --git a/src/gtk+-2.x/ctkevent.h b/src/gtk+-2.x/ctkevent.h
index 9eb77d4..721271d 100644
--- a/src/gtk+-2.x/ctkevent.h
+++ b/src/gtk+-2.x/ctkevent.h
@@ -69,6 +69,7 @@ struct _CtkEventStruct
gint attribute;
gint value;
guint display_mask;
+ gboolean availability;
};
GType ctk_event_get_type (void) G_GNUC_CONST;
@@ -76,6 +77,8 @@ GtkObject* ctk_event_new (NvCtrlAttributeHandle*);
void ctk_event_emit(CtkEvent *ctk_event,
unsigned int mask, int attrib, int value);
+void ctk_event_emit_string(CtkEvent *ctk_event,
+ unsigned int mask, int attrib);
#define CTK_EVENT_NAME(x) ("CTK_EVENT_" #x)
diff --git a/src/gtk+-2.x/ctkframelock.c b/src/gtk+-2.x/ctkframelock.c
index 71898ed..33af997 100644
--- a/src/gtk+-2.x/ctkframelock.c
+++ b/src/gtk+-2.x/ctkframelock.c
@@ -83,7 +83,7 @@ enum
* that entry.
*/
-#define NUM_GPU_SIGNALS 5
+#define NUM_GPU_SIGNALS 6
const char *__GPUSignals[NUM_GPU_SIGNALS] =
{
@@ -91,7 +91,8 @@ const char *__GPUSignals[NUM_GPU_SIGNALS] =
CTK_EVENT_NAME(NV_CTRL_FRAMELOCK_SLAVES),
CTK_EVENT_NAME(NV_CTRL_FRAMELOCK_SYNC),
CTK_EVENT_NAME(NV_CTRL_FRAMELOCK_TEST_SIGNAL),
- CTK_EVENT_NAME(NV_CTRL_REFRESH_RATE)
+ CTK_EVENT_NAME(NV_CTRL_REFRESH_RATE),
+ CTK_EVENT_NAME(NV_CTRL_REFRESH_RATE_3)
};
/*
@@ -184,6 +185,7 @@ struct _nvDisplayDataRec {
GtkWidget *rate_label;
GtkWidget *rate_text;
guint rate;
+ guint rate_precision;
GtkWidget *stereo_label;
GtkWidget *stereo_hbox; /* LED */
@@ -401,6 +403,11 @@ static GtkWidget *create_error_msg_dialog(CtkFramelock *ctk_framelock)
GTK_RESPONSE_OK,
NULL);
+ /* Prevent the dialog from being deleted when closed */
+ g_signal_connect(G_OBJECT(dialog), "delete-event",
+ G_CALLBACK(gtk_widget_hide_on_delete),
+ (gpointer) dialog);
+
g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
G_CALLBACK(gtk_widget_hide_all),
GTK_OBJECT(dialog));
@@ -547,6 +554,11 @@ static GtkWidget *create_add_devices_dialog(CtkFramelock *ctk_framelock)
GTK_RESPONSE_OK,
NULL);
+ /* Prevent the dialog from being deleted when closed */
+ g_signal_connect(G_OBJECT(dialog), "delete-event",
+ G_CALLBACK(gtk_widget_hide_on_delete),
+ (gpointer) dialog);
+
g_signal_connect (GTK_OBJECT(dialog), "response",
G_CALLBACK(add_devices_response),
GTK_OBJECT(ctk_framelock));
@@ -599,7 +611,6 @@ static GtkWidget *create_add_devices_dialog(CtkFramelock *ctk_framelock)
TRUE, TRUE, 0);
return dialog;
-
}
@@ -631,6 +642,11 @@ static GtkWidget *create_remove_devices_dialog(CtkFramelock *ctk_framelock)
GTK_RESPONSE_OK,
NULL);
+ /* Prevent the dialog from being deleted when closed */
+ g_signal_connect(G_OBJECT(dialog), "delete-event",
+ G_CALLBACK(gtk_widget_hide_on_delete),
+ (gpointer) dialog);
+
g_signal_connect(GTK_OBJECT(dialog), "response",
G_CALLBACK(remove_devices_response),
GTK_OBJECT(ctk_framelock));
@@ -3470,13 +3486,29 @@ void list_entry_update_display_status(CtkFramelock *ctk_framelock,
gtk_widget_set_sensitive(data->stereo_label, FALSE);
update_image(data->stereo_hbox, ctk_framelock->led_grey);
} else {
+ nvGPUDataPtr gpu_data;
+ gint timing = TRUE;
gint stereo_sync;
- NvCtrlGetAttribute(data->handle, NV_CTRL_FRAMELOCK_STEREO_SYNC,
- &stereo_sync);
+
+ /* If the display's GPU is not recieving timing, activate the
+ * stereo label but make sure to gray out the LED.
+ */
gtk_widget_set_sensitive(data->stereo_label, TRUE);
- update_image(data->stereo_hbox,
- stereo_sync ? ctk_framelock->led_green :
- ctk_framelock->led_red);
+
+ if (entry->parent) {
+ gpu_data = (nvGPUDataPtr)(entry->parent->data);
+ NvCtrlGetAttribute(gpu_data->handle, NV_CTRL_FRAMELOCK_TIMING,
+ &timing);
+ }
+ if (!timing) {
+ update_image(data->stereo_hbox, ctk_framelock->led_grey);
+ } else {
+ NvCtrlGetAttribute(data->handle, NV_CTRL_FRAMELOCK_STEREO_SYNC,
+ &stereo_sync);
+ update_image(data->stereo_hbox,
+ stereo_sync ? ctk_framelock->led_green :
+ ctk_framelock->led_red);
+ }
}
}
@@ -3485,7 +3517,7 @@ void list_entry_update_display_status(CtkFramelock *ctk_framelock,
/** list_entry_update_status() ***************************************
*
* Updates the (GUI) state of a list entry, its children and siblings
- * by queryin ghte X Server.
+ * by querying the X Server.
*
*/
void list_entry_update_status(CtkFramelock *ctk_framelock,
@@ -3932,6 +3964,7 @@ static void gpu_state_received(GtkObject *object,
case NV_CTRL_REFRESH_RATE:
+ case NV_CTRL_REFRESH_RATE_3:
/* Update the display device's refresh rate */
display_entry = get_display_on_gpu(gpu_entry, event->display_mask);
if (display_entry && display_entry->data) {
@@ -3942,8 +3975,18 @@ static void gpu_state_received(GtkObject *object,
(nvDisplayDataPtr)(display_entry->data);
display_data->rate = event->value;
- fvalue = ((float)(display_data->rate)) / 100.0f;
- snprintf(str, 32, "%.2f Hz", fvalue);
+ if (event->attribute == NV_CTRL_REFRESH_RATE_3 &&
+ display_data->rate_precision == 3) {
+ fvalue = ((float)(display_data->rate)) / 1000.0f;
+ snprintf(str, 32, "%.3f Hz", fvalue);
+ } else if (display_data->rate_precision == 2 ){
+ fvalue = ((float)(display_data->rate)) / 100.0f;
+ snprintf(str, 32, "%.2f Hz", fvalue);
+ } else {
+ // wrong signal (got 2 but support 3 or got 3 but
+ // don't support it);
+ break;
+ }
gtk_label_set_text(GTK_LABEL(display_data->rate_text), str);
}
@@ -4709,7 +4752,7 @@ static unsigned int add_display_devices(CtkFramelock *ctk_framelock,
unsigned int master_mask;
unsigned int slaves_mask;
gfloat fvalue; /* To print the refresh rate */
- gchar str[32];
+ gchar rr_str[32];
nvListEntryPtr server_entry = NULL;
nvDisplayDataPtr server_data = NULL;
@@ -4803,10 +4846,24 @@ static unsigned int add_display_devices(CtkFramelock *ctk_framelock,
goto fail;
}
- ret = NvCtrlGetDisplayAttribute(gpu_data->handle,
- display_mask,
- NV_CTRL_REFRESH_RATE,
- (int *)&(display_data->rate));
+ // If we can't get either percision, then fail
+ if (NvCtrlSuccess !=
+ (ret = NvCtrlGetDisplayAttribute(gpu_data->handle,
+ display_mask,
+ NV_CTRL_REFRESH_RATE_3,
+ (int *)&(display_data->rate)))) {
+ ret = NvCtrlGetDisplayAttribute(gpu_data->handle,
+ display_mask,
+ NV_CTRL_REFRESH_RATE,
+ (int *)&(display_data->rate));
+ fvalue = ((float)(display_data->rate)) / 100.0f;
+ snprintf(rr_str, 32, "%.2f Hz", fvalue);
+ display_data->rate_precision = 2;
+ } else {
+ fvalue = ((float)(display_data->rate)) / 1000.0f;
+ snprintf(rr_str, 32, "%.3f Hz", fvalue);
+ display_data->rate_precision = 3;
+ }
if (ret != NvCtrlSuccess) {
goto fail;
}
@@ -4826,9 +4883,7 @@ static unsigned int add_display_devices(CtkFramelock *ctk_framelock,
__client_checkbox_help);
display_data->rate_label = gtk_label_new("Refresh:");
- fvalue = ((float)(display_data->rate)) / 100.0f;
- snprintf(str, 32, "%.2f Hz", fvalue);
- display_data->rate_text = gtk_label_new(str);
+ display_data->rate_text = gtk_label_new(rr_str);
display_data->stereo_label = gtk_label_new("Stereo");
display_data->stereo_hbox = gtk_hbox_new(FALSE, 0);
@@ -5083,7 +5138,7 @@ static unsigned int add_framelock_devices(CtkFramelock *ctk_framelock,
if (ret != NvCtrlSuccess) {
goto fail;
}
- revision_str = g_strdup_printf("%d", val);
+ revision_str = g_strdup_printf("0x%X", val);
/* Create the frame lock widgets */
framelock_data->label = gtk_label_new("");
@@ -5566,7 +5621,9 @@ GtkTextBuffer *ctk_framelock_create_help(GtkTextTagTable *table)
ctk_help_para(b, &i, "Stereo LED: This indicates whether or not the "
"display device is sync'ed to the stereo signal coming from "
"the G-Sync device. This LED is only available to display "
- "devices set as clients when frame lock is enabled.");
+ "devices set as clients when frame lock is enabled. The "
+ "Stereo LED is dependent on the parent GPU being in sync "
+ "with the input timing signal.");
ctk_help_heading(b, &i, "Adding Devices");
ctk_help_para(b, &i, __add_devices_button_help);
diff --git a/src/gtk+-2.x/ctkgvo-banner.c b/src/gtk+-2.x/ctkgvo-banner.c
new file mode 100644
index 0000000..6669ab9
--- /dev/null
+++ b/src/gtk+-2.x/ctkgvo-banner.c
@@ -0,0 +1,891 @@
+/*
+ * nvidia-settings: A tool for configuring the NVIDIA X driver on Unix
+ * and Linux systems.
+ *
+ * Copyright (C) 2004 NVIDIA Corporation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of Version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See Version 2
+ * of the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the:
+ *
+ * Free Software Foundation, Inc.
+ * 59 Temple Place - Suite 330
+ * Boston, MA 02111-1307, USA
+ *
+ */
+
+/*
+ * The CtkGvoBanner widget is in charge of displaying the GVO Banner image.
+ * The LEDs are drawn based on the state currently set by the
+ * ctk_gvo_banner_update_video_output() and
+ * ctk_gvo_banner_update_video_input() functions. It is the caller's
+ * job to set the appropriate state so that the banner can be drawn correctly.
+ */
+
+#include <gtk/gtk.h>
+#include <string.h>
+
+#include "NvCtrlAttributes.h"
+
+#include "ctkhelp.h"
+#include "ctkgvo-banner.h"
+#include "ctkutils.h"
+#include "ctkimage.h"
+#include "ctkbanner.h"
+
+#include "msg.h"
+
+
+
+/* values for controlling LED state */
+
+#define GVO_LED_VID_OUT_NOT_IN_USE 0
+#define GVO_LED_VID_OUT_HD_MODE 1
+#define GVO_LED_VID_OUT_SD_MODE 2
+
+#define GVO_LED_SDI_SYNC_NONE 0
+#define GVO_LED_SDI_SYNC_HD 1
+#define GVO_LED_SDI_SYNC_SD 2
+#define GVO_LED_SDI_SYNC_ERROR 3
+
+#define GVO_LED_COMP_SYNC_NONE 0
+#define GVO_LED_COMP_SYNC_SYNC 1
+
+/* LED colors */
+
+#define LED_GREY 0
+#define LED_GREEN 1
+#define LED_YELLOW 2
+#define LED_RED 3
+
+/* How often the LEDs in the banner should be updated */
+
+#define UPDATE_GVO_BANNER_TIME_INTERVAL 200
+#define DEFAULT_GVO_PROBE_TIME_INTERVAL 1000
+
+
+
+
+/* Position of LEDs relative to the SDI image, used for drawing LEDs */
+
+static int __led_pos_x[] = { 74, 101, 128, 156 }; // From sdi.png
+static int __led_pos_y = 36; // From sdi.png
+
+
+
+/* local prototypes */
+
+static void composite_callback(CtkBanner *ctk_banner, void *data);
+
+static gboolean update_gvo_banner_led_images(gpointer data);
+static gboolean update_gvo_banner_led_images_shared_sync_bnc(gpointer data);
+
+static void update_gvo_banner_led_state(CtkGvoBanner *ctk_gvo_banner);
+
+static void gvo_event_received(GtkObject *object,
+ gpointer arg1,
+ gpointer user_data);
+
+
+
+/*
+ * ctk_gvo_banner_get_type() - Returns the GType for a CtkGvoBanner object
+ */
+
+GType ctk_gvo_banner_get_type(void)
+{
+ static GType ctk_gvo_banner_type = 0;
+
+ if (!ctk_gvo_banner_type) {
+ static const GTypeInfo ctk_gvo_banner_info = {
+ sizeof (CtkGvoBannerClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ NULL, /* constructor */
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (CtkGvoBanner),
+ 0, /* n_preallocs */
+ NULL, /* instance_init */
+ };
+
+ ctk_gvo_banner_type =
+ g_type_register_static(GTK_TYPE_VBOX, "CtkGvoBanner",
+ &ctk_gvo_banner_info, 0);
+ }
+
+ return ctk_gvo_banner_type;
+
+} /* ctk_gvo_banner_get_type() */
+
+
+
+/*
+ * ctk_gvo_banner_new() - constructor for the CtkGvoBanner widget
+ */
+
+GtkWidget* ctk_gvo_banner_new(NvCtrlAttributeHandle *handle,
+ CtkConfig *ctk_config,
+ CtkEvent *ctk_event)
+{
+ GObject *object;
+ CtkGvoBanner *ctk_gvo_banner;
+ ReturnStatus ret;
+ gint val;
+ gint caps;
+
+
+ /* make sure we have a handle */
+
+ g_return_val_if_fail(handle != NULL, NULL);
+
+ /* check if this screen supports GVO */
+
+ ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_SUPPORTED, &val);
+ if ((ret != NvCtrlSuccess) || (val != NV_CTRL_GVO_SUPPORTED_TRUE)) {
+ /* GVO not available */
+ return NULL;
+ }
+
+ /* get the GVO capabilities */
+
+ ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_CAPABILITIES, &caps);
+ if (ret != NvCtrlSuccess) {
+ return NULL;
+ }
+
+ /* create the CtkGvoBanner object */
+
+ object = g_object_new(CTK_TYPE_GVO_BANNER, NULL);
+
+ /* initialize fields in the CtkGvoBanner object */
+
+ ctk_gvo_banner = CTK_GVO_BANNER(object);
+ ctk_gvo_banner->handle = handle;
+ ctk_gvo_banner->ctk_config = ctk_config;
+ ctk_gvo_banner->ctk_event = ctk_event;
+ ctk_gvo_banner->parent_box = NULL;
+
+ /* handle GVO devices that share the sync input differently */
+
+ ctk_gvo_banner->shared_sync_bnc =
+ (caps & NV_CTRL_GVO_CAPABILITIES_SHARED_SYNC_BNC) ? TRUE : FALSE;
+
+ /* create the banner image */
+
+ if (ctk_gvo_banner->shared_sync_bnc) {
+ ctk_gvo_banner->image =
+ ctk_banner_image_new_with_callback
+ (BANNER_ARTWORK_SDI_SHARED_SYNC_BNC,
+ composite_callback,
+ ctk_gvo_banner);
+ } else {
+ ctk_gvo_banner->image =
+ ctk_banner_image_new_with_callback(BANNER_ARTWORK_SDI,
+ composite_callback,
+ ctk_gvo_banner);
+ }
+
+ g_object_ref(ctk_gvo_banner->image);
+
+ gtk_box_pack_start(GTK_BOX(ctk_gvo_banner), ctk_gvo_banner->image,
+ FALSE, FALSE, 0);
+
+ ctk_gvo_banner->ctk_banner = NULL;
+
+ /* initialize LED state */
+
+ ctk_gvo_banner->state[GVO_BANNER_VID1] = GVO_LED_VID_OUT_NOT_IN_USE;
+ ctk_gvo_banner->state[GVO_BANNER_VID2] = GVO_LED_VID_OUT_NOT_IN_USE;
+ ctk_gvo_banner->state[GVO_BANNER_SDI] = GVO_LED_SDI_SYNC_NONE;
+ ctk_gvo_banner->state[GVO_BANNER_COMP] = GVO_LED_COMP_SYNC_NONE;
+
+ ctk_gvo_banner->img[GVO_BANNER_VID1] = LED_GREY;
+ ctk_gvo_banner->img[GVO_BANNER_VID2] = LED_GREY;
+ ctk_gvo_banner->img[GVO_BANNER_SDI] = LED_GREY;
+ ctk_gvo_banner->img[GVO_BANNER_COMP] = LED_GREY;
+
+ /* Get the current GVO state */
+
+ ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_LOCK_OWNER, &val);
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_LOCK_OWNER_NONE;
+ }
+ ctk_gvo_banner->gvo_lock_owner = val;
+
+ ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_SYNC_MODE, &val);
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING;
+ }
+ ctk_gvo_banner->sync_mode = val;
+
+ ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_SYNC_SOURCE, &val);
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_SYNC_SOURCE_COMPOSITE;
+ }
+ ctk_gvo_banner->sync_source = val;
+
+ ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT, &val);
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_VIDEO_FORMAT_NONE;
+ }
+ ctk_gvo_banner->output_video_format = val;
+
+ ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_DATA_FORMAT, &val);
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB444;
+ }
+ ctk_gvo_banner->output_data_format = val;
+
+ /* Update the current LED state */
+
+ update_gvo_banner_led_state(ctk_gvo_banner);
+
+ /*
+ * register a timeout function (directly with glib, not through
+ * ctk_config) to update the LEDs
+ */
+
+ if (ctk_gvo_banner->shared_sync_bnc) {
+ g_timeout_add(UPDATE_GVO_BANNER_TIME_INTERVAL,
+ update_gvo_banner_led_images_shared_sync_bnc,
+ ctk_gvo_banner);
+ } else {
+ g_timeout_add(UPDATE_GVO_BANNER_TIME_INTERVAL,
+ update_gvo_banner_led_images,
+ ctk_gvo_banner);
+ }
+
+ /* Add a timer so we can probe the hardware */
+
+ ctk_config_add_timer(ctk_gvo_banner->ctk_config,
+ DEFAULT_GVO_PROBE_TIME_INTERVAL,
+ "Graphics To Video Probe",
+ (GSourceFunc) ctk_gvo_banner_probe,
+ (gpointer) ctk_gvo_banner);
+
+ /* Listen for events */
+
+ g_signal_connect(G_OBJECT(ctk_gvo_banner->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_LOCK_OWNER),
+ G_CALLBACK(gvo_event_received),
+ (gpointer) ctk_gvo_banner);
+
+ g_signal_connect(G_OBJECT(ctk_gvo_banner->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_SYNC_MODE),
+ G_CALLBACK(gvo_event_received),
+ (gpointer) ctk_gvo_banner);
+
+ g_signal_connect(G_OBJECT(ctk_gvo_banner->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_SYNC_SOURCE),
+ G_CALLBACK(gvo_event_received),
+ (gpointer) ctk_gvo_banner);
+
+ g_signal_connect(G_OBJECT(ctk_gvo_banner->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT),
+ G_CALLBACK(gvo_event_received),
+ (gpointer) ctk_gvo_banner);
+
+ g_signal_connect(G_OBJECT(ctk_gvo_banner->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_DATA_FORMAT),
+ G_CALLBACK(gvo_event_received),
+ (gpointer) ctk_gvo_banner);
+
+ /* show the GVO banner widget */
+
+ gtk_widget_show_all(GTK_WIDGET(ctk_gvo_banner));
+
+ return GTK_WIDGET(ctk_gvo_banner);
+
+} /* ctk_gvo_banner_new() */
+
+
+
+/*
+ * draw_led() - Updates the LED to the given color in the banner's
+ * backing pixbuf.
+ */
+
+static void draw_led(CtkBanner *ctk_banner, int led, int color) {
+
+ /* Which LED to draw */
+ int dst_x = ctk_banner->artwork_x +__led_pos_x[led];
+ int dst_y = ctk_banner->artwork_y +__led_pos_y;
+
+ /* Offset LED color into LED position */
+ int offset_x = ctk_banner->artwork_x +__led_pos_x[led] -__led_pos_x[color];
+ int offset_y = ctk_banner->artwork_y;
+
+ gdk_pixbuf_composite(ctk_banner->artwork.pixbuf, // src
+ ctk_banner->back.pixbuf, // dest
+ dst_x, // dest_x
+ dst_y, // dest_y
+ 10, // dest_width
+ 10, // dest_height
+ offset_x, // offset_x
+ offset_y, // offset_y
+ 1.0, // scale_x
+ 1.0, // scale_y
+ GDK_INTERP_BILINEAR, // interp_type
+ 255); // overall_alpha
+
+} /* draw_led() */
+
+
+
+/*
+ * composite_callback() - Draws all the LEDs to the banner.
+ */
+
+static void composite_callback(CtkBanner *ctk_banner, void *data)
+{
+ CtkGvoBanner *ctk_gvo_banner = (CtkGvoBanner *) data;
+ int i;
+ int last_led;
+
+ /* Grab the latest banner widget */
+ ctk_gvo_banner->ctk_banner = GTK_WIDGET(ctk_banner);
+
+ /* Draw the current state */
+ last_led = ctk_gvo_banner->shared_sync_bnc ? 3 : 4;
+
+ for (i = 0; i < last_led; i++) {
+ draw_led(ctk_banner, i, ctk_gvo_banner->img[i]);
+ }
+
+} /* composite_callback() */
+
+
+
+/*
+ * update_led_image() - Updates the state of an LED and causes and
+ * expose event.
+ */
+
+static void update_led_image(CtkGvoBanner *banner, int led, int color)
+{
+ GtkWidget *ctk_banner = banner->ctk_banner;
+ GdkRectangle rec = {0, __led_pos_y, 10, 10};
+
+ /* Update the state of the LED */
+ banner->img[led] = color;
+
+ /* Draw the LED and tell gdk to draw it to the window */
+ if (ctk_banner && ctk_banner->window) {
+
+ draw_led(CTK_BANNER(ctk_banner), led, color);
+
+ rec.x = CTK_BANNER(ctk_banner)->artwork_x + __led_pos_x[led];
+ rec.y = CTK_BANNER(ctk_banner)->artwork_y + __led_pos_y;
+ gdk_window_invalidate_rect(ctk_banner->window, &rec, TRUE);
+ }
+
+} /* update_led_image() */
+
+
+
+/*
+ * update_gvo_banner_led_images() - called by a timer to update the LED images
+ * based on current state
+ */
+
+static gboolean update_gvo_banner_led_images(gpointer data)
+{
+ guint8 old, new;
+ CtkGvoBanner *banner = (CtkGvoBanner *) data;
+
+ /*
+ * we store the flashing state here:
+ *
+ * 0 == no LED is currently flashing
+ * 1 == some LED is flashing; currently "on" (lit)
+ * 2 == some LED is flashing; currently "off" (grey)
+ *
+ * this is used to track the current state, so that we can make
+ * all LEDs flash at the same time.
+ */
+
+ gint flashing = 0;
+
+
+ /* Vid 1 out */
+
+ old = banner->img[GVO_BANNER_VID1];
+
+ if (banner->state[GVO_BANNER_VID1] == GVO_LED_VID_OUT_HD_MODE) {
+ new = (old == LED_GREY) ? LED_GREEN: LED_GREY;
+ flashing = (new == LED_GREY) ? 2 : 1;
+
+ } else if (banner->state[GVO_BANNER_VID1] == GVO_LED_VID_OUT_SD_MODE) {
+ new = (old == LED_GREY) ? LED_YELLOW: LED_GREY;
+ flashing = (new == LED_GREY) ? 2 : 1;
+
+ } else {
+ new = LED_GREY;
+ }
+
+ if (old != new) {
+ update_led_image(banner, GVO_BANNER_VID1, new);
+ }
+
+ /* Vid 2 out */
+
+ old = banner->img[GVO_BANNER_VID2];
+
+ if (banner->state[GVO_BANNER_VID2] == GVO_LED_VID_OUT_HD_MODE) {
+ if (flashing) {
+ new = (flashing == 1) ? LED_GREEN: LED_GREY;
+ } else {
+ new = (old == LED_GREY) ? LED_GREEN: LED_GREY;
+ flashing = (new == LED_GREY) ? 2 : 1;
+ }
+ } else if (banner->state[GVO_BANNER_VID2] == GVO_LED_VID_OUT_SD_MODE) {
+ if (flashing) {
+ new = (flashing == 1) ? LED_YELLOW: LED_GREY;
+ } else {
+ new = (old == LED_GREY) ? LED_YELLOW: LED_GREY;
+ flashing = (new == LED_GREY) ? 2 : 1;
+ }
+ } else {
+ new = LED_GREY;
+ }
+
+ if (old != new) {
+ update_led_image(banner, GVO_BANNER_VID2, new);
+ }
+
+ /* SDI sync */
+
+ old = banner->img[GVO_BANNER_SDI];
+
+ if (banner->state[GVO_BANNER_SDI] == GVO_LED_SDI_SYNC_HD) {
+ if (flashing) {
+ new = (flashing == 1) ? LED_GREEN : LED_GREY;
+ } else {
+ new = (banner->img[GVO_BANNER_SDI] == LED_GREY) ?
+ LED_GREEN : LED_GREY;
+ flashing = (new == LED_GREY) ? 2 : 1;
+ }
+ } else if (banner->state[GVO_BANNER_SDI] == GVO_LED_SDI_SYNC_SD) {
+ if (flashing) {
+ new = (flashing == 1) ? LED_YELLOW : LED_GREY;
+ } else {
+ new = (banner->img[GVO_BANNER_SDI] == LED_GREY) ?
+ LED_YELLOW : LED_GREY;
+ flashing = (new == LED_GREY) ? 2 : 1;
+ }
+ } else if (banner->state[GVO_BANNER_SDI] == GVO_LED_SDI_SYNC_ERROR) {
+ new = LED_YELLOW;
+ } else {
+ new = LED_GREY;
+ }
+
+ if (old != new) {
+ update_led_image(banner, GVO_BANNER_SDI, new);
+ }
+
+ /* COMP sync */
+
+ old = banner->img[GVO_BANNER_COMP];
+
+ if (banner->state[GVO_BANNER_COMP] == GVO_LED_COMP_SYNC_SYNC) {
+ if (flashing) {
+ new = (flashing == 1) ? LED_GREEN : LED_GREY;
+ } else {
+ new = (banner->img[GVO_BANNER_COMP] == LED_GREY) ?
+ LED_GREEN : LED_GREY;
+ }
+ } else {
+ new = LED_GREY;
+ }
+
+ if (old != new) {
+ update_led_image(banner, GVO_BANNER_COMP, new);
+ }
+
+ return TRUE;
+
+} /* update_gvo_banner_led_images() */
+
+
+
+/*
+ * update_gvo_banner_led_images_shared_sync_bnc() - called by a timer to
+ * update the LED images based on current state for GVO devices that have
+ * a shared input sync signal BNC connector.
+ */
+
+static gboolean update_gvo_banner_led_images_shared_sync_bnc(gpointer data)
+{
+ guint8 old, new;
+ CtkGvoBanner *banner = (CtkGvoBanner *) data;
+
+ /* Flash is used to make all the LEDs flash at the same time. */
+
+ banner->flash = !banner->flash;
+
+
+ /* Vid 1 out */
+
+ old = banner->img[GVO_BANNER_VID1];
+
+ if (banner->state[GVO_BANNER_VID1] != GVO_LED_VID_OUT_NOT_IN_USE) {
+ new = banner->flash ? LED_GREEN : LED_GREY;
+ } else {
+ new = LED_GREY;
+ }
+
+ if (old != new) {
+ update_led_image(banner, GVO_BANNER_VID1, new);
+ }
+
+ /* Vid 2 out */
+
+ old = banner->img[GVO_BANNER_VID2];
+
+ if (banner->state[GVO_BANNER_VID2] != GVO_LED_VID_OUT_NOT_IN_USE) {
+ new = banner->flash ? LED_GREEN : LED_GREY;
+ } else {
+ new = LED_GREY;
+ }
+
+ if (old != new) {
+ update_led_image(banner, GVO_BANNER_VID2, new);
+ }
+
+ /* Sync */
+
+ /* For this GVO device both the SDI and Composite sync signals
+ * share the same LED. This LED doesn't care about the lock
+ * status of the input signal/output video.
+ */
+
+ old = banner->img[GVO_BANNER_SDI];
+
+ if ((banner->sync_mode != NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING) &&
+ (((banner->sync_source == NV_CTRL_GVO_SYNC_SOURCE_COMPOSITE) &&
+ banner->state[GVO_BANNER_COMP] != GVO_LED_COMP_SYNC_NONE) ||
+ ((banner->sync_source == NV_CTRL_GVO_SYNC_SOURCE_SDI) &&
+ banner->state[GVO_BANNER_SDI] != GVO_LED_SDI_SYNC_NONE))) {
+
+ if (banner->input_video_format != NV_CTRL_GVO_VIDEO_FORMAT_NONE) {
+ /* LED blinks if video format is detected */
+ new = banner->flash ? LED_GREEN : LED_GREY;
+ } else {
+ /* LED is solid green if the input video format is not detected. */
+ new = LED_GREEN;
+ }
+
+ } else {
+ new = LED_GREY;
+ }
+
+ if (old != new) {
+ update_led_image(banner, GVO_BANNER_SDI, new);
+ }
+
+ return TRUE;
+
+} /* update_gvo_banner_led_images_shared_sync_bnc() */
+
+
+
+/*
+ * ctk_gvo_banner_update_video_output() - update banner state of the
+ * GVO video output LEDs accordingly, based on the current
+ * output_video_format and output_data_format.
+ */
+
+static void update_video_output_state(CtkGvoBanner *banner,
+ gint output_video_format,
+ gint output_data_format)
+{
+ if (output_video_format == NV_CTRL_GVO_VIDEO_FORMAT_NONE) {
+ banner->state[GVO_BANNER_VID1] = GVO_LED_VID_OUT_NOT_IN_USE;
+ banner->state[GVO_BANNER_VID2] = GVO_LED_VID_OUT_NOT_IN_USE;
+ } else if ((output_video_format ==
+ NV_CTRL_GVO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC) ||
+ (output_video_format ==
+ NV_CTRL_GVO_VIDEO_FORMAT_576I_50_00_SMPTE259_PAL)) {
+ banner->state[GVO_BANNER_VID1] = GVO_LED_VID_OUT_SD_MODE;
+ banner->state[GVO_BANNER_VID2] = GVO_LED_VID_OUT_SD_MODE;
+ } else {
+ banner->state[GVO_BANNER_VID1] = GVO_LED_VID_OUT_HD_MODE;
+ banner->state[GVO_BANNER_VID2] = GVO_LED_VID_OUT_HD_MODE;
+ }
+
+ if (output_data_format == NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB422) {
+ banner->state[GVO_BANNER_VID2] = GVO_LED_VID_OUT_NOT_IN_USE;
+ }
+
+} /* update_video_output_state() */
+
+
+
+/*
+ * ctk_gvo_banner_update_video_input() - update banner state of the
+ * video input GVO banner LEDs accordingly, based on the current sdi
+ * and composite input.
+ */
+
+static void update_video_input_state(CtkGvoBanner *banner,
+ gint sdi, gint comp)
+{
+ if (sdi == NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_HD) {
+ banner->state[GVO_BANNER_SDI] = GVO_LED_SDI_SYNC_HD;
+ } else if (sdi == NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_SD) {
+ banner->state[GVO_BANNER_SDI] = GVO_LED_SDI_SYNC_SD;
+ } else {
+ banner->state[GVO_BANNER_SDI] = GVO_LED_SDI_SYNC_NONE;
+ }
+
+ banner->state[GVO_BANNER_COMP] = comp ?
+ GVO_LED_COMP_SYNC_SYNC : GVO_LED_COMP_SYNC_NONE;
+
+} /* update_video_input_state() */
+
+
+
+/*
+ * update_gvo_banner_led_state() - Modifies the LED state based on the
+ * current GVO state.
+ */
+
+static void update_gvo_banner_led_state(CtkGvoBanner *ctk_gvo_banner)
+{
+ /* Update input state */
+
+ update_video_input_state(ctk_gvo_banner,
+ ctk_gvo_banner->sdi_sync_input_detected,
+ ctk_gvo_banner->composite_sync_input_detected);
+
+ /* Update output state */
+
+ if (ctk_gvo_banner->gvo_lock_owner !=
+ NV_CTRL_GVO_LOCK_OWNER_NONE) {
+ update_video_output_state(ctk_gvo_banner,
+ ctk_gvo_banner->output_video_format,
+ ctk_gvo_banner->output_data_format);
+ } else {
+ update_video_output_state(ctk_gvo_banner,
+ NV_CTRL_GVO_VIDEO_FORMAT_NONE,
+ ctk_gvo_banner->output_data_format);
+ }
+
+} /* update_gvo_banner_led_state() */
+
+
+
+/*
+ * ctk_gvo_banner_probe() - query the incoming signal and state of
+ * the GVO board.
+ */
+
+gint ctk_gvo_banner_probe(gpointer data)
+{
+ ReturnStatus ret;
+ gint val;
+ CtkGvoBanner *ctk_gvo_banner = CTK_GVO_BANNER(data);
+
+
+ // XXX We could get notified of these (sync source/mode) and
+ // not have to probe - ie, it could be the job of the
+ // caller/user of the ctk_gvo_banner widget to notify the
+ // banner when these change. We don't however since doing
+ // that could be prone to bitrot.
+
+ /* query NV_CTRL_GVO_SYNC_MODE */
+
+ ret = NvCtrlGetAttribute(ctk_gvo_banner->handle,
+ NV_CTRL_GVO_SYNC_MODE, &val);
+
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING;
+ }
+
+ ctk_gvo_banner->sync_mode = val;
+
+
+ /* query NV_CTRL_GVO_SYNC_SOURCE */
+
+ ret = NvCtrlGetAttribute(ctk_gvo_banner->handle,
+ NV_CTRL_GVO_SYNC_SOURCE, &val);
+
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_SYNC_SOURCE_COMPOSITE;
+ }
+
+ ctk_gvo_banner->sync_source = val;
+
+
+ /* query NV_CTRL_GVO_INPUT_VIDEO_FORMAT */
+
+ ret = NvCtrlGetAttribute(ctk_gvo_banner->handle,
+ NV_CTRL_GVO_INPUT_VIDEO_FORMAT, &val);
+
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_VIDEO_FORMAT_NONE;
+ }
+
+ ctk_gvo_banner->input_video_format = val;
+
+
+ /* query COMPOSITE_SYNC_INPUT_DETECTED */
+
+ ret = NvCtrlGetAttribute(ctk_gvo_banner->handle,
+ NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED, &val);
+
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_FALSE;
+ }
+
+ ctk_gvo_banner->composite_sync_input_detected = val;
+
+
+ /* query SDI_SYNC_INPUT_DETECTED */
+
+ ret = NvCtrlGetAttribute(ctk_gvo_banner->handle,
+ NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED, &val);
+
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_NONE;
+ }
+
+ ctk_gvo_banner->sdi_sync_input_detected = val;
+
+
+ /* query SYNC_LOCK_STATUS */
+
+ ret = NvCtrlGetAttribute(ctk_gvo_banner->handle,
+ NV_CTRL_GVO_SYNC_LOCK_STATUS, &val);
+
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_SYNC_LOCK_STATUS_UNLOCKED;
+ }
+
+ ctk_gvo_banner->sync_lock_status = val;
+
+
+ /* Update the banner state */
+
+ update_gvo_banner_led_state(ctk_gvo_banner);
+
+
+ /* Update the banner's parent */
+
+ if (ctk_gvo_banner->probe_callback) {
+ ctk_gvo_banner->probe_callback(ctk_gvo_banner->probe_callback_data);
+ }
+
+ return TRUE;
+
+} /* ctk_gvo_banner_probe() */
+
+
+
+/*
+ * gvo_event_received() - Handles updating the state of the GVO banner
+ * for event-driven NV-CONTROL attributes.
+ */
+
+static void gvo_event_received(GtkObject *object,
+ gpointer arg1,
+ gpointer user_data)
+{
+ CtkEventStruct *event_struct = (CtkEventStruct *) arg1;
+ CtkGvoBanner *ctk_gvo_banner = CTK_GVO_BANNER(user_data);
+ gint attribute = event_struct->attribute;
+ gint value = event_struct->value;
+
+ switch (attribute) {
+ case NV_CTRL_GVO_SYNC_MODE:
+ ctk_gvo_banner->sync_mode = value;
+ break;
+
+ case NV_CTRL_GVO_SYNC_SOURCE:
+ ctk_gvo_banner->sync_source = value;
+ break;
+
+ case NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT:
+ ctk_gvo_banner->output_video_format = value;
+ break;
+
+ case NV_CTRL_GVO_DATA_FORMAT:
+ ctk_gvo_banner->output_data_format = value;
+ break;
+
+ case NV_CTRL_GVO_LOCK_OWNER:
+ ctk_gvo_banner->gvo_lock_owner = value;
+ break;
+
+ default:
+ return;
+ }
+
+ update_gvo_banner_led_state(ctk_gvo_banner);
+
+} /* gvo_event_recieved() */
+
+
+
+/* ctk_gvo_banner_set_parent() - Sets which parent page owns
+ * (is currently displaying) the gvo banner widget.
+ */
+
+void ctk_gvo_banner_set_parent(CtkGvoBanner *ctk_gvo_banner,
+ GtkWidget *new_parent_box,
+ ctk_gvo_banner_probe_callback probe_callback,
+ gpointer probe_callback_data)
+{
+ /* Repack the banner into the new parent */
+
+ if (ctk_gvo_banner->parent_box != new_parent_box) {
+
+ if (ctk_gvo_banner->parent_box) {
+ gtk_container_remove(GTK_CONTAINER(ctk_gvo_banner->parent_box),
+ GTK_WIDGET(ctk_gvo_banner));
+ }
+
+ if (new_parent_box) {
+ gtk_container_add(GTK_CONTAINER(new_parent_box),
+ GTK_WIDGET(ctk_gvo_banner));
+ }
+ }
+
+ /* Start/stop the GVO probe */
+
+ if (!ctk_gvo_banner->parent_box && new_parent_box) {
+
+ ctk_config_start_timer(ctk_gvo_banner->ctk_config,
+ (GSourceFunc) ctk_gvo_banner_probe,
+ (gpointer) ctk_gvo_banner);
+
+ } else if (ctk_gvo_banner->parent_box && !new_parent_box) {
+
+ ctk_config_stop_timer(ctk_gvo_banner->ctk_config,
+ (GSourceFunc) ctk_gvo_banner_probe,
+ (gpointer) ctk_gvo_banner);
+ }
+
+ /* Keep track of the current banner owner */
+
+ ctk_gvo_banner->parent_box = new_parent_box;
+
+ ctk_gvo_banner->probe_callback = probe_callback;
+ ctk_gvo_banner->probe_callback_data = probe_callback_data;
+
+ /* If we are programming a callback, do an initial probe */
+
+ if (probe_callback) {
+ ctk_gvo_banner_probe((gpointer)(ctk_gvo_banner));
+ }
+
+} /* ctk_gvo_banner_set_parent() */
diff --git a/src/gtk+-2.x/ctkgvo-banner.h b/src/gtk+-2.x/ctkgvo-banner.h
new file mode 100644
index 0000000..126ede1
--- /dev/null
+++ b/src/gtk+-2.x/ctkgvo-banner.h
@@ -0,0 +1,116 @@
+/*
+ * nvidia-settings: A tool for configuring the NVIDIA X driver on Unix
+ * and Linux systems.
+ *
+ * Copyright (C) 2004 NVIDIA Corporation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of Version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See Version 2
+ * of the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the:
+ *
+ * Free Software Foundation, Inc.
+ * 59 Temple Place - Suite 330
+ * Boston, MA 02111-1307, USA
+ *
+ */
+
+#ifndef __CTK_GVO_BANNER_H__
+#define __CTK_GVO_BANNER_H__
+
+#include "NvCtrlAttributes.h"
+#include "ctkconfig.h"
+#include "ctkevent.h"
+
+G_BEGIN_DECLS
+
+
+#define CTK_TYPE_GVO_BANNER (ctk_gvo_banner_get_type())
+
+#define CTK_GVO_BANNER(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), CTK_TYPE_GVO_BANNER, CtkGvoBanner))
+
+#define CTK_GVO_BANNER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), CTK_TYPE_GVO_BANNER, CtkGvoBannerClass))
+
+#define CTK_IS_GVO_BANNER(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CTK_TYPE_GVO_BANNER))
+
+#define CTK_IS_GVO_BANNER_CLASS(class) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), CTK_TYPE_GVO_BANNER))
+
+#define CTK_GVO_BANNER_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), CTK_TYPE_GVO_BANNER, CtkGvoBannerClass))
+
+
+
+typedef gint (* ctk_gvo_banner_probe_callback) (gpointer data);
+
+typedef struct _CtkGvoBanner CtkGvoBanner;
+typedef struct _CtkGvoBannerClass CtkGvoBannerClass;
+
+#define GVO_BANNER_VID1 0
+#define GVO_BANNER_VID2 1
+#define GVO_BANNER_SDI 2
+#define GVO_BANNER_COMP 3
+
+struct _CtkGvoBanner
+{
+ GtkVBox parent;
+
+ NvCtrlAttributeHandle *handle;
+ GtkWidget *parent_box;
+ CtkConfig *ctk_config;
+ CtkEvent *ctk_event;
+
+ gint sync_mode;
+ gint sync_source;
+ gboolean shared_sync_bnc; // GVO device has single sync BNC
+
+ GtkWidget *image; // Image
+ GtkWidget *ctk_banner; // CtkBanner widget using the image
+
+ gboolean flash; // Used to flash the LEDs at the same time
+ guint8 img[4]; // Current color of LEDs
+ guint state[4]; // Current state of LEDs
+
+ ctk_gvo_banner_probe_callback probe_callback; // Function to call
+ gpointer probe_callback_data;
+
+ // Other GVO state probed
+ gint gvo_lock_owner;
+ gint output_video_format;
+ gint output_data_format;
+ gint input_video_format;
+ gint composite_sync_input_detected;
+ gint sdi_sync_input_detected;
+ gint sync_lock_status;
+};
+
+struct _CtkGvoBannerClass
+{
+ GtkVBoxClass parent_class;
+};
+
+
+GType ctk_gvo_banner_get_type (void) G_GNUC_CONST;
+GtkWidget* ctk_gvo_banner_new (NvCtrlAttributeHandle *, CtkConfig *,
+ CtkEvent *);
+
+gint ctk_gvo_banner_probe(gpointer data);
+
+void ctk_gvo_banner_set_parent(CtkGvoBanner *ctk_gvo_banner,
+ GtkWidget *new_parent_box,
+ ctk_gvo_banner_probe_callback probe_callback,
+ gpointer probe_callback_data);
+
+G_END_DECLS
+
+#endif /* __CTK_GVO_BANNER_H__*/
diff --git a/src/gtk+-2.x/ctkgvo-csc.c b/src/gtk+-2.x/ctkgvo-csc.c
index c00314d..e1ba826 100644
--- a/src/gtk+-2.x/ctkgvo-csc.c
+++ b/src/gtk+-2.x/ctkgvo-csc.c
@@ -127,10 +127,32 @@ static GtkWidget *build_opengl_only_msg (void);
#define CSC_STANDARD_IDENTITY_STRING "Identity"
-
#define FRAME_BORDER 5
+/* General information help */
+
+static const char * __override_help =
+"The Override default Color Space Conversion checkbox will toggle use of "
+"custom CSC.";
+
+static const char * __initialize_help =
+"The Initialize Color Space Conversion dropdown allows you to select between "
+"some standard CSC configurations.";
+
+static const char * __csc_help =
+"The color space conversion matrix defines the paramaters used for "
+"converting the color data.";
+
+static const char * __apply_immediately_help =
+"The Apply Changes Immediately checkbox toggles whether or not changes made "
+"to the CSC matrix immediately take effect.";
+
+static const char * __apply_help =
+"The Apply button sends the new values of the color space conversion matrix "
+"to the server.";
+
+
GType ctk_gvo_csc_get_type(void)
{
@@ -215,6 +237,7 @@ GtkWidget* ctk_gvo_csc_new(NvCtrlAttributeHandle *handle,
ctk_gvo_csc->handle = handle;
ctk_gvo_csc->ctk_config = ctk_config;
ctk_gvo_csc->gvo_parent = gvo_parent;
+ ctk_gvo_csc->caps = caps;
gtk_box_set_spacing(GTK_BOX(object), 10);
@@ -229,6 +252,9 @@ GtkWidget* ctk_gvo_csc_new(NvCtrlAttributeHandle *handle,
ctk_gvo_csc->overrideButton = gtk_check_button_new_with_label
("Override default Color Space Conversion");
+
+ ctk_config_set_tooltip(ctk_config, ctk_gvo_csc->overrideButton,
+ __override_help);
g_signal_connect(GTK_OBJECT(ctk_gvo_csc->overrideButton), "toggled",
G_CALLBACK(override_button_toggled), ctk_gvo_csc);
@@ -303,6 +329,11 @@ GtkWidget* ctk_gvo_csc_new(NvCtrlAttributeHandle *handle,
ctk_gvo_csc->initializeDropDown =
ctk_drop_down_menu_new(CTK_DROP_DOWN_MENU_FLAG_MONOSPACE);
+
+ ctk_config_set_tooltip
+ (ctk_config,
+ CTK_DROP_DOWN_MENU(ctk_gvo_csc->initializeDropDown)->option_menu,
+ __initialize_help);
ctk_drop_down_menu_append_item
(CTK_DROP_DOWN_MENU(ctk_gvo_csc->initializeDropDown),
@@ -400,6 +431,10 @@ GtkWidget* ctk_gvo_csc_new(NvCtrlAttributeHandle *handle,
ctk_gvo_csc->matrix[row][column],
row + 1,
column+1);
+
+ ctk_config_set_tooltip(ctk_config,
+ ctk_gvo_csc->matrixWidget[row][column],
+ __csc_help);
}
}
@@ -435,6 +470,9 @@ GtkWidget* ctk_gvo_csc_new(NvCtrlAttributeHandle *handle,
ctk_gvo_csc->offset[row],
row+1,
0);
+
+ ctk_config_set_tooltip(ctk_config,
+ ctk_gvo_csc->offsetWidget[row], __csc_help);
}
@@ -469,6 +507,9 @@ GtkWidget* ctk_gvo_csc_new(NvCtrlAttributeHandle *handle,
ctk_gvo_csc->scale[row],
row+1,
0);
+
+ ctk_config_set_tooltip(ctk_config,
+ ctk_gvo_csc->scaleWidget[row], __csc_help);
}
@@ -479,8 +520,12 @@ GtkWidget* ctk_gvo_csc_new(NvCtrlAttributeHandle *handle,
if (caps & NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_IMMEDIATELY) {
- ctk_gvo_csc->applyImmediateButton = gtk_check_button_new_with_label
- ("Apply Changes Immediately");
+ ctk_gvo_csc->applyImmediateButton =
+ gtk_check_button_new_with_label("Apply Changes Immediately");
+
+ ctk_config_set_tooltip(ctk_config,
+ ctk_gvo_csc->applyImmediateButton,
+ __apply_immediately_help);
gtk_toggle_button_set_active
(GTK_TOGGLE_BUTTON(ctk_gvo_csc->applyImmediateButton), FALSE);
@@ -504,6 +549,8 @@ GtkWidget* ctk_gvo_csc_new(NvCtrlAttributeHandle *handle,
ctk_gvo_csc->applyButton = gtk_button_new_from_stock(GTK_STOCK_APPLY);
+ ctk_config_set_tooltip(ctk_config, ctk_gvo_csc->applyButton, __apply_help);
+
g_signal_connect(GTK_OBJECT(ctk_gvo_csc->applyButton),
"clicked",
G_CALLBACK(apply_button_clicked),
@@ -1053,13 +1100,11 @@ void ctk_gvo_csc_select(GtkWidget *widget)
CtkGvoCsc *ctk_gvo_csc = CTK_GVO_CSC(widget);
CtkGvo *ctk_gvo = ctk_gvo_csc->gvo_parent;
- /* Grab the GVO parent banner */
+ /* Grab the GVO banner */
- gtk_container_add(GTK_CONTAINER(ctk_gvo_csc->banner_box),
- ctk_gvo->banner.widget);
-
- ctk_config_start_timer(ctk_gvo->ctk_config, (GSourceFunc) ctk_gvo_probe,
- (gpointer) ctk_gvo);
+ ctk_gvo_banner_set_parent(CTK_GVO_BANNER(ctk_gvo->banner),
+ ctk_gvo_csc->banner_box,
+ NULL, NULL);
}
@@ -1069,11 +1114,78 @@ void ctk_gvo_csc_unselect(GtkWidget *widget)
CtkGvoCsc *ctk_gvo_csc = CTK_GVO_CSC(widget);
CtkGvo *ctk_gvo = ctk_gvo_csc->gvo_parent;
- /* Return the GVO parent banner */
-
- gtk_container_remove(GTK_CONTAINER(ctk_gvo_csc->banner_box),
- ctk_gvo->banner.widget);
+ /* Release the GVO banner */
- ctk_config_stop_timer(ctk_gvo->ctk_config, (GSourceFunc) ctk_gvo_probe,
- (gpointer) ctk_gvo);
+ ctk_gvo_banner_set_parent(CTK_GVO_BANNER(ctk_gvo->banner),
+ NULL, NULL, NULL);
}
+
+
+
+/*
+ * ctk_gvo_csc_create_help() - Create color space conversion help page
+ */
+
+GtkTextBuffer *ctk_gvo_csc_create_help(GtkTextTagTable *table,
+ CtkGvoCsc *ctk_gvo_csc)
+{
+ GtkTextIter i;
+ GtkTextBuffer *b;
+
+ b = gtk_text_buffer_new(table);
+
+ gtk_text_buffer_get_iter_at_offset(b, &i, 0);
+
+ ctk_help_title(b, &i, "Color Space Conversion Help");
+ ctk_help_para(b, &i, "This page gives access to configuration of "
+ "the SDI (GVO) color space conversion.");
+
+ ctk_help_heading(b, &i, "Override default Color Space Conversion");
+ ctk_help_para(b, &i, __override_help);
+
+ ctk_help_heading(b, &i, "Initialize Color Space Conversion");
+ ctk_help_para(b, &i, __initialize_help);
+
+ ctk_help_heading(b, &i, "Color Space Conversion Matrix, Offset and Scale");
+ ctk_help_para(b, &i, "%s RGB color is converted to YCrCb in the "
+ "following manner:",
+ __csc_help);
+ ctk_help_para(b, &i,
+ "Y = Ky + Sy * ( Ry*R + Gy*G + By*B )\n"
+ "Cb = Kcb + Scb * ( Rcb*R + Gcb*G + Bcb*B )\n"
+ "Cr = Kcr + Scr * ( Rcr*R + Gcr*G + Bcr*B )");
+ ctk_help_para(b, &i, "Where:");
+ ctk_help_para(b, &i,
+ "Ky = Y (luma) Offset\n"
+ "Kcb = Cr (red chroma) Offset\n"
+ "Kcr = Cb (blue chroma) Offset");
+ ctk_help_para(b, &i,
+ "Sy = Y scaling factor\n"
+ "Scb = Cb Scaling factor\n"
+ "Scr = Cr Scaling factor");
+ ctk_help_para(b, &i,
+ "Ry = Red coeficient for Y\n"
+ "Rcb = Red coeficient for Cb\n"
+ "Rcr = Red coeficient for Cr");
+ ctk_help_para(b, &i,
+ "Gy = Green coeficient for Y\n"
+ "Gcb = Green coeficient for Cb\n"
+ "Gcr = Green coeficient for Cr");
+ ctk_help_para(b, &i,
+ "By = Blue coeficient for Y\n"
+ "Bcb = Blue coeficient for Cb\n"
+ "Bcr = Blue coeficient for Cr");
+
+ if (ctk_gvo_csc->caps & NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_IMMEDIATELY) {
+ ctk_help_heading(b, &i, "Apply Changes Immediately");
+ ctk_help_para(b, &i, __apply_immediately_help);
+ }
+
+ ctk_help_heading(b, &i, "Apply");
+ ctk_help_para(b, &i, __apply_help);
+
+ ctk_help_finish(b);
+
+ return b;
+
+} /* ctk_gvo_csc_create_help() */
diff --git a/src/gtk+-2.x/ctkgvo-csc.h b/src/gtk+-2.x/ctkgvo-csc.h
index 01a86c4..ff50cfe 100644
--- a/src/gtk+-2.x/ctkgvo-csc.h
+++ b/src/gtk+-2.x/ctkgvo-csc.h
@@ -29,6 +29,7 @@
#include "ctkconfig.h"
#include "ctkgvo.h"
+
G_BEGIN_DECLS
#define CTK_TYPE_GVO_CSC (ctk_gvo_csc_get_type())
@@ -65,6 +66,8 @@ struct _CtkGvoCsc
CtkGvo *gvo_parent;
GtkWidget *banner_box;
+ int caps;
+
float matrix[3][3]; // [row][column]
float offset[3];
float scale[3];
@@ -96,8 +99,7 @@ GType ctk_gvo_csc_get_type (void) G_GNUC_CONST;
GtkWidget* ctk_gvo_csc_new (NvCtrlAttributeHandle *,
CtkConfig *, CtkEvent *, CtkGvo *);
-//GtkTextBuffer *ctk_gvo_csc_create_help(GtkTextTagTable *,
-// CtkGvoCsc *);
+GtkTextBuffer *ctk_gvo_csc_create_help(GtkTextTagTable *, CtkGvoCsc *);
void ctk_gvo_csc_select(GtkWidget *);
void ctk_gvo_csc_unselect(GtkWidget *);
diff --git a/src/gtk+-2.x/ctkgvo-sync.c b/src/gtk+-2.x/ctkgvo-sync.c
new file mode 100644
index 0000000..3aeb4be
--- /dev/null
+++ b/src/gtk+-2.x/ctkgvo-sync.c
@@ -0,0 +1,1509 @@
+/*
+ * nvidia-settings: A tool for configuring the NVIDIA X driver on Unix
+ * and Linux systems.
+ *
+ * Copyright (C) 2004 NVIDIA Corporation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of Version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See Version 2
+ * of the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the:
+ *
+ * Free Software Foundation, Inc.
+ * 59 Temple Place - Suite 330
+ * Boston, MA 02111-1307, USA
+ *
+ */
+
+#include <gtk/gtk.h>
+#include <NvCtrlAttributes.h>
+
+#include <string.h>
+
+#include "ctkimage.h"
+
+#include "ctkgvo.h"
+#include "ctkgvo-sync.h"
+
+#include "ctkconfig.h"
+#include "ctkhelp.h"
+
+#include "ctkdropdownmenu.h"
+
+
+/*
+ * The CtkGvoSync widget is used to provide a way for configuring
+ * how the SDI device synchronises with an input signal source.
+ */
+
+#define FRAME_BORDER 5
+#define TABLE_PADDING 5
+
+
+#define DEFAULT_DETECT_INPUT_TIME_INTERVAL 2000
+
+
+#define SYNC_FORMAT_SDI 0
+#define SYNC_FORMAT_COMP_AUTO 1
+#define SYNC_FORMAT_COMP_BI_LEVEL 2
+#define SYNC_FORMAT_COMP_TRI_LEVEL 3
+
+static const GvoFormatName syncFormatNames[] = {
+ { SYNC_FORMAT_SDI, "SDI Sync" },
+ { SYNC_FORMAT_COMP_AUTO, "COMP Sync" },
+ { SYNC_FORMAT_COMP_BI_LEVEL, "COMP Sync (Bi-level)" },
+ { SYNC_FORMAT_COMP_TRI_LEVEL, "COMP Sync (Tri-level)" },
+ { -1, NULL },
+};
+
+extern const GvoFormatName videoFormatNames[];
+
+
+
+/* local prototypes */
+
+static GtkWidget *start_menu(const gchar *name, GtkWidget *table,
+ const gint row);
+static void finish_menu(GtkWidget *menu, GtkWidget *table, const gint row);
+
+
+static gboolean query_init_gvo_sync_state(CtkGvoSync *ctk_gvo_sync);
+static void init_composite_termination(CtkGvoSync *ctk_gvo_sync);
+static void init_sync_format_menu(CtkGvoSync *ctk_gvo_sync);
+static void register_for_gvo_sync_events(CtkGvoSync *ctk_gvo_sync);
+
+
+static void update_gvo_sync_sensitivity(CtkGvoSync *ctk_gvo_sync);
+static void update_input_video_format_text_entry(CtkGvoSync *ctk_gvo_sync);
+static void post_composite_termination_toggled(CtkGvoSync *ctk_gvo_sync,
+ gboolean enabled);
+static void update_delay_spin_buttons_range(CtkGvoSync *ctk_gvo_sync);
+
+
+static void detect_input_toggled(GtkToggleButton *togglebutton,
+ CtkGvoSync *ctk_gvo_sync);
+static gint detect_input_done(gpointer data);
+static void composite_termination_toggled(GtkWidget *button,
+ CtkGvoSync *ctk_gvo_sync);
+static void sync_mode_changed(CtkDropDownMenu *menu, gpointer user_data);
+static void sync_format_changed(CtkDropDownMenu *menu, gpointer user_data);
+static void hsync_delay_changed(GtkSpinButton *spinbutton, gpointer user_data);
+static void vsync_delay_changed(GtkSpinButton *spinbutton, gpointer user_data);
+
+
+static void gvo_sync_event_received(GtkObject *object,
+ gpointer arg1,
+ gpointer user_data);
+static gint gvo_sync_probe_callback(gpointer data);
+
+
+
+/* Help tooltips */
+
+static const char * __input_video_format_help =
+"The Input Video Format text entry indicates the input video format detected "
+"on the input BNC.";
+
+static const char * __input_video_format_detect_help =
+"The Input Video Format Detect button will (re)detect the video format on "
+"the input BNC.";
+
+static const char * __composite_termination_help =
+"The Enable Composite Termination checkbox enables the 75 ohm termination "
+"of the composite input signal";
+
+static const char * __sync_mode_help =
+"The Sync Mode dropdown allows you to select how the SDI device syncs its "
+"output to the input signal.";
+
+static const char * __sync_format_help =
+"The Sync Format dropdown allows you to select the format of the input sync "
+"signal.";
+
+static const char * __sync_status_help =
+"The Sync Status reports on how the SDI device is currently syncing to the "
+"input sync signal.";
+
+static const char * __hsync_delay_help =
+"The HSync Delay entry allows you to specify the horizontal delay between the "
+"input signal and the output signal generated by the SDI device.";
+
+static const char * __vsync_delay_help =
+"The VSync Delay entry allows you to specify the vertical delay between the "
+"input signal and the output signal generated by the SDI device.";
+
+
+
+/**** Utility Functions ******************************************************/
+
+/*
+ * ctk_gvo_sync_get_type() - Returns the CtkGvoSync "class" type
+ */
+
+GType ctk_gvo_sync_get_type(void)
+{
+ static GType ctk_gvo_sync_type = 0;
+
+ if (!ctk_gvo_sync_type) {
+ static const GTypeInfo ctk_gvo_sync_info = {
+ sizeof (CtkGvoSyncClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ NULL, /* class_init, */
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (CtkGvoSync),
+ 0, /* n_preallocs */
+ NULL, /* instance_init */
+ };
+
+ ctk_gvo_sync_type =
+ g_type_register_static (GTK_TYPE_VBOX,
+ "CtkGvoSync", &ctk_gvo_sync_info, 0);
+ }
+
+ return ctk_gvo_sync_type;
+
+} /* ctk_gvo_sync_get_type() */
+
+
+
+/*
+ * max_input_video_format_text_entry_length()
+ */
+
+static int max_input_video_format_text_entry_length(void)
+{
+ gint i, tmp, max = 0;
+
+ for (i = 0; videoFormatNames[i].name; i++) {
+ tmp = strlen(videoFormatNames[i].name);
+ if (max < tmp) max = tmp;
+ }
+
+ return max;
+
+} /* max_input_video_format_text_entry_length() */
+
+
+
+/*
+ * get_current_sync_format() - given the current state of the
+ * sync source and composite detection mode, return the value
+ * to use for the sync format dropdown.
+ */
+
+static gint get_current_sync_format(CtkGvoSync *ctk_gvo_sync)
+{
+ /* Setup the sync format menu */
+
+ if (ctk_gvo_sync->sync_source == NV_CTRL_GVO_SYNC_SOURCE_SDI) {
+ return SYNC_FORMAT_SDI;
+ } else if (ctk_gvo_sync->comp_mode ==
+ NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_AUTO) {
+ return SYNC_FORMAT_COMP_AUTO;
+ } else if (ctk_gvo_sync->comp_mode ==
+ NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_BI_LEVEL) {
+ return SYNC_FORMAT_COMP_BI_LEVEL;
+ } else if (ctk_gvo_sync->comp_mode ==
+ NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_TRI_LEVEL){
+ return SYNC_FORMAT_COMP_TRI_LEVEL;
+ }
+
+ // should not get here
+ return SYNC_FORMAT_SDI;
+
+} /* get_current_sync_format() */
+
+
+
+/*
+ * sync_signal_detected() - Returns whether or not a sync signal
+ * is currently detected.
+ */
+
+static gboolean sync_signal_detected(CtkGvoSync *ctk_gvo_sync)
+{
+ /* Is a sync signal detected? */
+
+ if ((ctk_gvo_sync->comp_sync_input_detected !=
+ NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_FALSE) ||
+ (ctk_gvo_sync->sdi_sync_input_detected !=
+ NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_NONE)) {
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+
+
+/*
+ * set_sync_format_menu() - Selects the sync format drop down menu
+ * entry based on the current sync source and composite detection mode.
+ */
+
+static void set_sync_format_menu(CtkGvoSync *ctk_gvo_sync)
+{
+ gint val = get_current_sync_format(ctk_gvo_sync);
+
+ ctk_drop_down_menu_set_current_value
+ (CTK_DROP_DOWN_MENU(ctk_gvo_sync->sync_format_menu), val);
+}
+
+
+
+/*
+ * update_sync_lock_status_text() - Sets the correct text based on the
+ * current state of input sync lock.
+ */
+
+static void update_sync_lock_status_text(CtkGvoSync *ctk_gvo_sync)
+{
+ gchar *str = "Free Running";
+
+ switch (ctk_gvo_sync->sync_mode) {
+
+ case NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING:
+ gtk_widget_set_sensitive(ctk_gvo_sync->sync_lock_status_text, FALSE);
+ break;
+
+ case NV_CTRL_GVO_SYNC_MODE_GENLOCK:
+ gtk_widget_set_sensitive(ctk_gvo_sync->sync_lock_status_text, TRUE);
+ if (ctk_gvo_sync->sync_lock_status ==
+ NV_CTRL_GVO_SYNC_LOCK_STATUS_LOCKED) {
+ str = "GenLocked";
+ }
+ break;
+
+ case NV_CTRL_GVO_SYNC_MODE_FRAMELOCK:
+ gtk_widget_set_sensitive(ctk_gvo_sync->sync_lock_status_text, TRUE);
+ if (ctk_gvo_sync->sync_lock_status ==
+ NV_CTRL_GVO_SYNC_LOCK_STATUS_LOCKED) {
+ str = "FrameLocked";
+ } break;
+
+ default:
+ gtk_widget_set_sensitive(ctk_gvo_sync->sync_lock_status_text, FALSE);
+ str = "Unknown";
+ break;
+ }
+
+ gtk_label_set_text(GTK_LABEL(ctk_gvo_sync->sync_lock_status_text), str);
+
+} /* update_sync_lock_status_text() */
+
+
+
+
+/**** Creation Functions *****************************************************/
+
+/*
+ * ctk_gvo_sync_new() - create a CtkGvoSync widget
+ */
+
+GtkWidget* ctk_gvo_sync_new(NvCtrlAttributeHandle *handle,
+ GtkWidget *parent_window,
+ CtkConfig *ctk_config,
+ CtkEvent *ctk_event,
+ CtkGvo *gvo_parent)
+{
+ GObject *object;
+ CtkGvoSync *ctk_gvo_sync;
+ GtkWidget *frame;
+ GtkWidget *hbox;
+ GtkWidget *label;
+ GtkWidget *alignment;
+ GtkWidget *button;
+
+ GtkWidget *table, *menu;
+
+ gint val, i, width, height;
+ ReturnStatus ret;
+ gint row;
+
+
+ /* make sure we have a handle */
+
+ g_return_val_if_fail(handle != NULL, NULL);
+
+ /* create and initialize the object */
+
+ object = g_object_new(CTK_TYPE_GVO_SYNC, NULL);
+
+ ctk_gvo_sync = CTK_GVO_SYNC(object);
+ ctk_gvo_sync->handle = handle;
+ ctk_gvo_sync->parent_window = parent_window;
+ ctk_gvo_sync->ctk_config = ctk_config;
+ ctk_gvo_sync->ctk_event = ctk_event;
+ ctk_gvo_sync->gvo_parent = gvo_parent;
+
+ /* Query the current GVO state */
+
+ if ( !query_init_gvo_sync_state(ctk_gvo_sync) ) {
+ // Free the object
+ g_object_ref(object);
+ gtk_object_sink(GTK_OBJECT(object));
+ g_object_unref(object);
+ return NULL;
+ }
+
+ /* set container properties for the widget */
+
+ gtk_box_set_spacing(GTK_BOX(object), 10);
+
+ /* banner */
+
+ hbox = gtk_hbox_new(FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(object), hbox, FALSE, FALSE, 0);
+
+ ctk_gvo_sync->banner_box = hbox;
+
+ /*
+ * Sync options
+ */
+
+ frame = gtk_frame_new("Sync Options");
+ ctk_gvo_sync->frame = frame;
+
+ gtk_box_pack_start(GTK_BOX(object), frame, FALSE, FALSE, 0);
+
+ table = gtk_table_new(6, 2, FALSE);
+ gtk_table_set_row_spacings(GTK_TABLE(table), 0);
+ gtk_table_set_col_spacings(GTK_TABLE(table), 0);
+
+ gtk_container_add(GTK_CONTAINER(frame), table);
+
+ /* input video format */
+
+ label = gtk_label_new("Input Video Format: ");
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ gtk_table_attach(GTK_TABLE(table), label,
+ 0, 1, 0, 1, GTK_FILL, GTK_FILL,
+ TABLE_PADDING, TABLE_PADDING);
+
+ hbox = gtk_hbox_new(FALSE, 5);
+
+ ctk_gvo_sync->input_video_format_text_entry = gtk_entry_new();
+
+ ctk_config_set_tooltip(ctk_config,
+ ctk_gvo_sync->input_video_format_text_entry,
+ __input_video_format_help);
+
+ gtk_entry_set_width_chars
+ (GTK_ENTRY(ctk_gvo_sync->input_video_format_text_entry),
+ max_input_video_format_text_entry_length());
+
+ gtk_widget_set_sensitive(ctk_gvo_sync->input_video_format_text_entry,
+ FALSE);
+
+ update_input_video_format_text_entry(ctk_gvo_sync);
+
+ gtk_box_pack_start(GTK_BOX(hbox),
+ ctk_gvo_sync->input_video_format_text_entry,
+ TRUE, TRUE, 0);
+
+ /* Input video format detect button */
+
+ button = gtk_toggle_button_new_with_label("Detect");
+ alignment = gtk_alignment_new(1, 1, 0, 0);
+ gtk_container_add(GTK_CONTAINER(alignment), button);
+
+ ctk_gvo_sync->input_video_format_detect_button = button;
+
+ ctk_config_set_tooltip(ctk_config, button,
+ __input_video_format_detect_help);
+
+ g_signal_connect(G_OBJECT(button), "toggled",
+ G_CALLBACK(detect_input_toggled), ctk_gvo_sync);
+
+ gtk_box_pack_start(GTK_BOX(hbox), alignment, FALSE, FALSE, 0);
+
+ gtk_table_attach(GTK_TABLE(table), hbox,
+ 1, 2, 0, 1, GTK_FILL | GTK_EXPAND, GTK_FILL,
+ TABLE_PADDING, TABLE_PADDING);
+
+ /* Composite Termination */
+
+ if (ctk_gvo_sync->caps & NV_CTRL_GVO_CAPABILITIES_COMPOSITE_TERMINATION) {
+
+ button =
+ gtk_check_button_new_with_label("Enable Composite Termination");
+
+ ctk_config_set_tooltip(ctk_config, button,
+ __composite_termination_help);
+
+ alignment = gtk_alignment_new(1, 1, 0, 0);
+
+ gtk_container_add(GTK_CONTAINER(alignment), button);
+ gtk_table_attach(GTK_TABLE(table), alignment,
+ 0, 2, 2, 3, GTK_FILL | GTK_EXPAND, GTK_FILL,
+ TABLE_PADDING, TABLE_PADDING);
+
+ ctk_gvo_sync->composite_termination_button = button;
+
+ init_composite_termination(ctk_gvo_sync);
+
+ g_signal_connect(G_OBJECT(button), "toggled",
+ G_CALLBACK(composite_termination_toggled),
+ ctk_gvo_sync);
+
+ row = 3;
+ } else {
+ ctk_gvo_sync->composite_termination_button = NULL;
+ row = 2;
+ }
+
+ /* Sync Mode */
+
+ menu = start_menu("Sync Mode: ", table, row);
+
+ ctk_drop_down_menu_append_item(CTK_DROP_DOWN_MENU(menu), "Free Running",
+ NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING);
+
+ ctk_drop_down_menu_append_item(CTK_DROP_DOWN_MENU(menu), "GenLock",
+ NV_CTRL_GVO_SYNC_MODE_GENLOCK);
+
+ ctk_drop_down_menu_append_item(CTK_DROP_DOWN_MENU(menu), "FrameLock",
+ NV_CTRL_GVO_SYNC_MODE_FRAMELOCK);
+
+ finish_menu(menu, table, row);
+ row++;
+
+ ctk_gvo_sync->sync_mode_menu = menu;
+
+ ctk_config_set_tooltip(ctk_config, CTK_DROP_DOWN_MENU(menu)->option_menu,
+ __sync_mode_help);
+
+ ctk_drop_down_menu_set_current_value
+ (CTK_DROP_DOWN_MENU(ctk_gvo_sync->sync_mode_menu),
+ ctk_gvo_sync->sync_mode);
+
+ g_signal_connect(G_OBJECT(ctk_gvo_sync->sync_mode_menu), "changed",
+ G_CALLBACK(sync_mode_changed), (gpointer) ctk_gvo_sync);
+
+ /* Sync Format */
+
+ menu = start_menu("Sync Format: ", table, row);
+
+ for (i = 0; syncFormatNames[i].name; i++) {
+ ctk_drop_down_menu_append_item(CTK_DROP_DOWN_MENU(menu),
+ syncFormatNames[i].name,
+ syncFormatNames[i].format);
+ }
+
+ finish_menu(menu, table, row);
+ row++;
+
+ ctk_gvo_sync->sync_format_menu = menu;
+
+ ctk_config_set_tooltip(ctk_config, CTK_DROP_DOWN_MENU(menu)->option_menu,
+ __sync_format_help);
+
+ init_sync_format_menu(ctk_gvo_sync);
+
+ g_signal_connect(G_OBJECT(ctk_gvo_sync->sync_format_menu),
+ "changed", G_CALLBACK(sync_format_changed),
+ (gpointer) ctk_gvo_sync);
+
+ /* Sync Status */
+
+ label = gtk_label_new("Sync Status:");
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1,
+ GTK_FILL, GTK_FILL, TABLE_PADDING, TABLE_PADDING);
+
+ ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_SYNC_DELAY_PIXELS, &val);
+ if (ret != NvCtrlSuccess) val = 0;
+
+ ctk_gvo_sync->sync_lock_status_text = gtk_label_new("");
+
+ update_sync_lock_status_text(ctk_gvo_sync);
+
+ hbox = gtk_hbox_new(FALSE, 5);
+ gtk_box_pack_start(GTK_BOX(hbox), ctk_gvo_sync->sync_lock_status_text,
+ FALSE, FALSE, 0);
+
+ gtk_table_attach(GTK_TABLE(table), hbox,
+ 1, 2, row, row+1,
+ GTK_FILL /*| GTK_EXPAND*/, GTK_FILL,
+ TABLE_PADDING, TABLE_PADDING);
+ row++;
+
+
+ /*
+ * Synchronization Delay
+ */
+
+ ctk_gvo_get_video_format_resolution(ctk_gvo_sync->input_video_format,
+ &width, &height);
+
+ /* NV_CTRL_GVO_SYNC_DELAY_PIXELS */
+
+ label = gtk_label_new("HSync Delay:");
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1,
+ GTK_FILL, GTK_FILL, TABLE_PADDING, TABLE_PADDING);
+
+ ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_SYNC_DELAY_PIXELS, &val);
+ if (ret != NvCtrlSuccess) val = 0;
+
+ if (width < 1) width = 1;
+
+ ctk_gvo_sync->hsync_delay_spin_button =
+ gtk_spin_button_new_with_range(0.0, width, 1);
+
+ ctk_config_set_tooltip(ctk_config, ctk_gvo_sync->hsync_delay_spin_button,
+ __hsync_delay_help);
+
+ gtk_spin_button_set_value
+ (GTK_SPIN_BUTTON(ctk_gvo_sync->hsync_delay_spin_button), val);
+
+ g_signal_connect(G_OBJECT(ctk_gvo_sync->hsync_delay_spin_button),
+ "value-changed",
+ G_CALLBACK(hsync_delay_changed), ctk_gvo_sync);
+
+ hbox = gtk_hbox_new(FALSE, 5);
+ gtk_box_pack_start(GTK_BOX(hbox), ctk_gvo_sync->hsync_delay_spin_button,
+ FALSE, FALSE, 0);
+
+ label = gtk_label_new("(pixels)");
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ gtk_box_pack_start(GTK_BOX(hbox), label,
+ FALSE, FALSE, 0);
+
+ gtk_table_attach(GTK_TABLE(table), hbox,
+ 1, 2, row, row+1,
+ GTK_FILL /*| GTK_EXPAND*/, GTK_FILL,
+ TABLE_PADDING, TABLE_PADDING);
+ row++;
+
+ /* NV_CTRL_GVO_SYNC_DELAY_LINES */
+
+ label = gtk_label_new("VSync Delay:");
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1,
+ GTK_FILL, GTK_FILL, TABLE_PADDING, TABLE_PADDING);
+
+ ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_SYNC_DELAY_LINES, &val);
+ if (ret != NvCtrlSuccess) val = 0;
+
+ if (height < 1) height = 1;
+
+ ctk_gvo_sync->vsync_delay_spin_button =
+ gtk_spin_button_new_with_range(0.0, height, 1);
+
+ ctk_config_set_tooltip(ctk_config, ctk_gvo_sync->vsync_delay_spin_button,
+ __vsync_delay_help);
+
+ gtk_spin_button_set_value
+ (GTK_SPIN_BUTTON(ctk_gvo_sync->vsync_delay_spin_button), val);
+
+ g_signal_connect(G_OBJECT(ctk_gvo_sync->vsync_delay_spin_button),
+ "value-changed",
+ G_CALLBACK(vsync_delay_changed), ctk_gvo_sync);
+
+ hbox = gtk_hbox_new(FALSE, 5);
+ gtk_box_pack_start(GTK_BOX(hbox), ctk_gvo_sync->vsync_delay_spin_button,
+ FALSE, FALSE, 0);
+
+ label = gtk_label_new("(lines)");
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ gtk_box_pack_start(GTK_BOX(hbox), label,
+ FALSE, FALSE, 0);
+
+ gtk_table_attach(GTK_TABLE(table), hbox,
+ 1, 2, row, row+1,
+ GTK_FILL /*| GTK_EXPAND*/, GTK_FILL,
+ TABLE_PADDING, TABLE_PADDING);
+ row++;
+
+
+ /* create the watch cursor (for use when the "Detect" button is toggled" */
+
+ ctk_gvo_sync->wait_cursor = gdk_cursor_new(GDK_WATCH);
+
+ /* Set UI sensitivity */
+
+ update_gvo_sync_sensitivity(ctk_gvo_sync);
+
+ /* Start listening for events */
+
+ register_for_gvo_sync_events(ctk_gvo_sync);
+
+ /* show the page */
+
+ gtk_widget_show_all(GTK_WIDGET(object));
+
+ return GTK_WIDGET(object);
+
+} /* ctk_gvo_sync_new() */
+
+
+
+/*
+ * start_menu() - Start the creation of a labled dropdown menu. (Packs
+ * the dropdown label into the table row.
+ */
+
+static GtkWidget *start_menu(const gchar *name, GtkWidget *table,
+ const gint row)
+{
+ GtkWidget *menu, *label, *alignment;
+
+ label = gtk_label_new(name);
+ alignment = gtk_alignment_new(0, 0, 0, 0);
+ gtk_container_add(GTK_CONTAINER(alignment), label);
+
+ gtk_table_attach(GTK_TABLE(table),
+ alignment, 0, 1, row, row+1, GTK_FILL, GTK_FILL,
+ TABLE_PADDING, TABLE_PADDING);
+
+ menu = ctk_drop_down_menu_new(CTK_DROP_DOWN_MENU_FLAG_MONOSPACE);
+
+ return menu;
+}
+
+
+
+/*
+ * finish_menu() - Finish/Finalize a dropdown menu. (Packs the menu in
+ * the table row.)
+ */
+
+static void finish_menu(GtkWidget *menu, GtkWidget *table, const gint row)
+{
+ ctk_drop_down_menu_finalize(CTK_DROP_DOWN_MENU(menu));
+
+ gtk_table_attach(GTK_TABLE(table), menu, 1, 2, row, row+1,
+ GTK_FILL | GTK_EXPAND, GTK_FILL,
+ TABLE_PADDING, TABLE_PADDING);
+}
+
+
+
+
+/**** Initialization Functions ***********************************************/
+
+/*
+ * query_init_gvo_sync_state() - Query the initial GVO state so we can setup
+ * the UI correctly.
+ */
+
+static gboolean query_init_gvo_sync_state(CtkGvoSync *ctk_gvo_sync)
+{
+ gint val;
+ ReturnStatus ret;
+
+
+ /* Check if this screen supports GVO */
+
+ ret = NvCtrlGetAttribute(ctk_gvo_sync->handle, NV_CTRL_GVO_SUPPORTED,
+ &val);
+ if ((ret != NvCtrlSuccess) || (val != NV_CTRL_GVO_SUPPORTED_TRUE)) {
+ /* GVO not available */
+ return FALSE;
+ }
+
+ /* Get this GVO device's capabilities */
+
+ ret = NvCtrlGetAttribute(ctk_gvo_sync->handle, NV_CTRL_GVO_CAPABILITIES,
+ &val);
+ if (ret != NvCtrlSuccess) return FALSE;
+ ctk_gvo_sync->caps = val;
+
+ /* Query the current input video formats */
+
+ ret = NvCtrlGetAttribute(ctk_gvo_sync->handle,
+ NV_CTRL_GVO_INPUT_VIDEO_FORMAT, &val);
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_VIDEO_FORMAT_NONE;
+ }
+ ctk_gvo_sync->input_video_format = val;
+
+ /* Query the sync mode */
+
+ ret = NvCtrlGetAttribute(ctk_gvo_sync->handle, NV_CTRL_GVO_SYNC_MODE,
+ &val);
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING;
+ }
+ ctk_gvo_sync->sync_mode = val;
+
+ /* query COMPOSITE_SYNC_INPUT_DETECTED */
+
+ ret = NvCtrlGetAttribute(ctk_gvo_sync->handle,
+ NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED, &val);
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_FALSE;
+ }
+ ctk_gvo_sync->comp_sync_input_detected = val;
+
+ /* query COMPOSITE_SYNC_INPUT_DETECT_MODE */
+
+ ret = NvCtrlGetAttribute(ctk_gvo_sync->handle,
+ NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE,
+ &val);
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_AUTO;
+ }
+ ctk_gvo_sync->comp_mode = val;
+
+ /* query SDI_SYNC_INPUT_DETECTED */
+
+ ret = NvCtrlGetAttribute(ctk_gvo_sync->handle,
+ NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED, &val);
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_NONE;
+ }
+ ctk_gvo_sync->sdi_sync_input_detected = val;
+
+ /* query sync source */
+
+ ret = NvCtrlGetAttribute(ctk_gvo_sync->handle,
+ NV_CTRL_GVO_SYNC_SOURCE,
+ &val);
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_SYNC_SOURCE_SDI;
+ }
+ ctk_gvo_sync->sync_source = val;
+
+ /* Query framelock/genlock status */
+
+ ret = NvCtrlGetAttribute(ctk_gvo_sync->handle,
+ NV_CTRL_GVO_SYNC_LOCK_STATUS,
+ &val);
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_SYNC_LOCK_STATUS_UNLOCKED;
+ }
+ ctk_gvo_sync->sync_lock_status = val;
+
+ return TRUE;
+
+} /* query_init_gvo_sync_state() */
+
+
+
+/*
+ * init_composite_termination() - Initialize the state of the composite
+ * termination button.
+ */
+
+static void init_composite_termination(CtkGvoSync *ctk_gvo_sync)
+{
+ ReturnStatus ret;
+ gint val;
+
+ if (!ctk_gvo_sync->composite_termination_button) return;
+
+ ret = NvCtrlGetAttribute(ctk_gvo_sync->handle,
+ NV_CTRL_GVO_COMPOSITE_TERMINATION, &val);
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_COMPOSITE_TERMINATION_DISABLE;
+ }
+
+ gtk_toggle_button_set_active
+ (GTK_TOGGLE_BUTTON(ctk_gvo_sync->composite_termination_button),
+ ((val == NV_CTRL_GVO_COMPOSITE_TERMINATION_ENABLE) ? TRUE : FALSE));
+
+} /* init_composite_termination() */
+
+
+
+/*
+ * init_sync_format_menu() - initialize the sync format menu
+ */
+
+static void init_sync_format_menu(CtkGvoSync *ctk_gvo_sync)
+{
+ set_sync_format_menu(ctk_gvo_sync);
+
+} /* init_sync_format_menu() */
+
+
+
+/*
+ * register_for_gvo_sync_events() - Configure ctk_gvo_sync object to listen
+ * for GVO synchronization related evens.
+ */
+
+static void register_for_gvo_sync_events(CtkGvoSync *ctk_gvo_sync)
+{
+ g_signal_connect(G_OBJECT(ctk_gvo_sync->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_SYNC_MODE),
+ G_CALLBACK(gvo_sync_event_received),
+ (gpointer) ctk_gvo_sync);
+
+ g_signal_connect(G_OBJECT(ctk_gvo_sync->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_SYNC_SOURCE),
+ G_CALLBACK(gvo_sync_event_received),
+ (gpointer) ctk_gvo_sync);
+
+ g_signal_connect(G_OBJECT(ctk_gvo_sync->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE),
+ G_CALLBACK(gvo_sync_event_received),
+ (gpointer) ctk_gvo_sync);
+
+ g_signal_connect(G_OBJECT(ctk_gvo_sync->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_SYNC_DELAY_PIXELS),
+ G_CALLBACK(gvo_sync_event_received),
+ (gpointer) ctk_gvo_sync);
+
+ g_signal_connect(G_OBJECT(ctk_gvo_sync->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_SYNC_DELAY_LINES),
+ G_CALLBACK(gvo_sync_event_received),
+ (gpointer) ctk_gvo_sync);
+
+ g_signal_connect(G_OBJECT(ctk_gvo_sync->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_COMPOSITE_TERMINATION),
+ G_CALLBACK(gvo_sync_event_received),
+ (gpointer) ctk_gvo_sync);
+
+} /* register_for_gvo_sync_events() */
+
+
+
+
+/**** Common Update Functions ************************************************/
+
+/*
+ * update_gvo_sync_sensitivity() - Updates the sensitivity of various UI
+ * wigets based on whether or not an input sync signal is detected.
+ *
+ */
+
+static void update_gvo_sync_sensitivity(CtkGvoSync *ctk_gvo_sync)
+{
+ gboolean sensitive;
+
+ /* Allow selection of the sync format if we're not free-running */
+
+ sensitive = (ctk_gvo_sync->sync_mode !=
+ NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING) ? TRUE : FALSE;
+
+ gtk_widget_set_sensitive(ctk_gvo_sync->sync_format_menu, sensitive);
+
+ /* Update options that require a valid sync signal */
+
+ sensitive = (sensitive && sync_signal_detected(ctk_gvo_sync));
+
+ gtk_widget_set_sensitive(ctk_gvo_sync->hsync_delay_spin_button, sensitive);
+ gtk_widget_set_sensitive(ctk_gvo_sync->vsync_delay_spin_button, sensitive);
+
+} /* update_gvo_sync_sensitivity() */
+
+
+
+/*
+ * update_input_video_format_text_entry() - Displays the currently detected
+ * input video format.
+ */
+
+static void update_input_video_format_text_entry(CtkGvoSync *ctk_gvo_sync)
+{
+ gint i;
+ const gchar *str;
+
+ if (ctk_gvo_sync->sync_mode == NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING) {
+ str = "Free Running";
+ } else {
+ str = "No incoming signal detected";
+ for (i = 0; videoFormatNames[i].name; i++) {
+ if (videoFormatNames[i].format == ctk_gvo_sync->input_video_format) {
+ str = videoFormatNames[i].name;
+ }
+ }
+ }
+ gtk_entry_set_text(GTK_ENTRY(ctk_gvo_sync->input_video_format_text_entry), str);
+
+} /* update_input_video_format_text_entry() */
+
+
+
+/*
+ * post_composite_termination_toggled() - Call this function after
+ * the composite termination attribute has changed.
+ */
+
+static void post_composite_termination_toggled(CtkGvoSync *ctk_gvo_sync,
+ gboolean enabled)
+{
+ /* update the statusbar */
+
+ ctk_config_statusbar_message(ctk_gvo_sync->ctk_config,
+ "Composite Termination %s.",
+ enabled ? "Enabled" : "Disabled");
+
+} /* post_composite_termination_toggled() */
+
+
+
+/*
+ * post_sync_mode_menu_changed() - Call this function after the sync mode
+ * menu has changed.
+ *
+ */
+
+static void post_sync_mode_menu_changed(CtkGvoSync *ctk_gvo_sync, gint value)
+{
+ char *name;
+
+ /* Update the UI */
+
+ update_input_video_format_text_entry(ctk_gvo_sync);
+ update_gvo_sync_sensitivity(ctk_gvo_sync);
+
+ switch (value) {
+ case NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING: name = "Free Running"; break;
+ case NV_CTRL_GVO_SYNC_MODE_GENLOCK: name = "GenLock"; break;
+ case NV_CTRL_GVO_SYNC_MODE_FRAMELOCK: name = "FrameLock"; break;
+ default: return;
+ }
+
+ ctk_config_statusbar_message(ctk_gvo_sync->ctk_config,
+ "Sync Mode set to %s.", name);
+
+} /* post_sync_mode_menu_changed() */
+
+
+
+/*
+ * post_sync_format_menu_changed() - Call this function after teh sync
+ * format has changed.
+ */
+
+static void post_sync_format_menu_changed(CtkGvoSync *ctk_gvo_sync)
+{
+ const char *name = "Unknown";
+ gint value;
+ gint i;
+
+
+ /* Update the status bar */
+
+ value = get_current_sync_format(ctk_gvo_sync);
+
+ for (i = 0; syncFormatNames[i].name; i++) {
+ if (syncFormatNames[i].format == value) {
+ name = syncFormatNames[i].name;
+ break;
+ }
+ }
+
+ ctk_config_statusbar_message(ctk_gvo_sync->ctk_config,
+ "Sync Format set to \"%s\".", name);
+
+} /* post_sync_format_menu_changed() */
+
+
+
+/*
+ * update_delay_spin_buttons_range() - Updates the range of the
+ * delay spin buttons.
+ */
+
+static void update_delay_spin_buttons_range(CtkGvoSync *ctk_gvo_sync)
+{
+ gint w, h;
+
+ ctk_gvo_get_video_format_resolution(ctk_gvo_sync->input_video_format,
+ &w, &h);
+
+ gtk_spin_button_set_range
+ (GTK_SPIN_BUTTON(ctk_gvo_sync->hsync_delay_spin_button), 0, w);
+ gtk_spin_button_set_range
+ (GTK_SPIN_BUTTON(ctk_gvo_sync->vsync_delay_spin_button), 0, h);
+
+} /* update_delay_spin_buttons_range() */
+
+
+
+
+/**** UI Event Handlers ************************************************/
+
+/*
+ * detect_input_toggled() - if the Detect button is enabled, then enable
+ * INPUT_VIDEO_FORMAT_REACQUIRE, make everything else insensitive,
+ * switch to the wait cursor, and queue detect_input_done() to be
+ * called.
+ */
+
+static void detect_input_toggled(GtkToggleButton *togglebutton,
+ CtkGvoSync *ctk_gvo_sync)
+{
+ gboolean enabled;
+
+ enabled = gtk_toggle_button_get_active(togglebutton);
+
+ if (!enabled) return;
+
+ /* grab the server */
+
+ gtk_grab_add(ctk_gvo_sync->input_video_format_detect_button);
+
+ /* change the cursor */
+
+ gdk_window_set_cursor
+ ((GTK_WIDGET(ctk_gvo_sync->parent_window))->window,
+ ctk_gvo_sync->wait_cursor);
+
+ /* make all other widgets insensitive */
+
+ gtk_widget_set_sensitive(ctk_gvo_sync->frame, FALSE);
+
+ /* enable REACQUIRE */
+
+ NvCtrlSetAttribute(ctk_gvo_sync->handle,
+ NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE,
+ NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_TRUE);
+
+ /* update the statusbar */
+
+ ctk_config_statusbar_message(ctk_gvo_sync->ctk_config,
+ "Detecting incoming signal...");
+
+ /* register the "done" function */
+
+ g_timeout_add(DEFAULT_DETECT_INPUT_TIME_INTERVAL,
+ detect_input_done, (gpointer) ctk_gvo_sync);
+
+} /* detect_input_toggled() */
+
+
+
+/*
+ * detect_input_done() - done detecting; disable REACQUIRE, make all
+ * widgets sensitive again, and probe the new state
+ */
+
+static gint detect_input_done(gpointer data)
+{
+ CtkGvoSync *ctk_gvo_sync = CTK_GVO_SYNC(data);
+
+ /* disable REACQUIRE */
+
+ NvCtrlSetAttribute(ctk_gvo_sync->handle,
+ NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE,
+ NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_FALSE);
+
+ /* reprobe */
+
+ ctk_gvo_banner_probe((gpointer)(ctk_gvo_sync->gvo_parent->banner));
+
+ /* un-press the detect button */
+
+ g_signal_handlers_block_by_func
+ (G_OBJECT(ctk_gvo_sync->input_video_format_detect_button),
+ G_CALLBACK(detect_input_toggled),
+ (gpointer) ctk_gvo_sync);
+
+ gtk_toggle_button_set_active
+ (GTK_TOGGLE_BUTTON(ctk_gvo_sync->input_video_format_detect_button), FALSE);
+
+ g_signal_handlers_unblock_by_func
+ (G_OBJECT(ctk_gvo_sync->input_video_format_detect_button),
+ G_CALLBACK(detect_input_toggled),
+ (gpointer) ctk_gvo_sync);
+
+ /* update the status bar */
+
+ ctk_config_statusbar_message(ctk_gvo_sync->ctk_config,
+ "Done detecting incoming signal.");
+
+ /* restore sensitivity */
+
+ gtk_widget_set_sensitive(ctk_gvo_sync->frame, TRUE);
+
+ /* restore the cursor */
+
+ gdk_window_set_cursor((GTK_WIDGET(ctk_gvo_sync->parent_window))->window,
+ NULL);
+
+ /* ungrab the server */
+
+ gtk_grab_remove(ctk_gvo_sync->input_video_format_detect_button);
+
+ return FALSE;
+
+} /* detect_input_done() */
+
+
+
+/*
+ * composite_termination_toggled() - Called when the user clicks
+ * on the "Enable Composite Termination" check button.
+ */
+
+static void composite_termination_toggled(GtkWidget *button,
+ CtkGvoSync *ctk_gvo_sync)
+{
+ gboolean enabled;
+
+ enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
+
+ NvCtrlSetAttribute(ctk_gvo_sync->handle,
+ NV_CTRL_GVO_COMPOSITE_TERMINATION,
+ (enabled ? NV_CTRL_GVO_COMPOSITE_TERMINATION_ENABLE :
+ NV_CTRL_GVO_COMPOSITE_TERMINATION_DISABLE));
+
+ post_composite_termination_toggled(ctk_gvo_sync, enabled);
+
+} /* composite_termination_toggled() */
+
+
+
+/*
+ * sync_mode_changed() - callback when the user makes a selection from the
+ * sync mode menu.
+ */
+
+static void sync_mode_changed(CtkDropDownMenu *menu, gpointer user_data)
+{
+ CtkGvoSync *ctk_gvo_sync = CTK_GVO_SYNC(user_data);
+ gint value;
+ char *name;
+
+ value = ctk_drop_down_menu_get_current_value(menu);
+
+ switch (value) {
+ case NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING: name = "Free Running"; break;
+ case NV_CTRL_GVO_SYNC_MODE_GENLOCK: name = "GenLock"; break;
+ case NV_CTRL_GVO_SYNC_MODE_FRAMELOCK: name = "FrameLock"; break;
+ default: return;
+ }
+
+ NvCtrlSetAttribute(ctk_gvo_sync->handle, NV_CTRL_GVO_SYNC_MODE, value);
+
+ if (value != NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING) {
+ NvCtrlSetAttribute(ctk_gvo_sync->handle, NV_CTRL_GVO_SYNC_SOURCE,
+ ctk_gvo_sync->sync_source);
+ }
+
+ ctk_gvo_sync->sync_mode = value;
+
+ post_sync_mode_menu_changed(ctk_gvo_sync, value);
+
+} /* sync_mode_changed() */
+
+
+
+/*
+ * sync_format_changed() - callback when the user makes a selection from the
+ * sync format menu (from the UI.)
+ */
+
+static void sync_format_changed(CtkDropDownMenu *menu, gpointer user_data)
+{
+ CtkGvoSync *ctk_gvo_sync = CTK_GVO_SYNC(user_data);
+ gint value, sync_source, comp_mode;
+
+ value = ctk_drop_down_menu_get_current_value(menu);
+
+ switch (value) {
+ case SYNC_FORMAT_SDI:
+ sync_source = NV_CTRL_GVO_SYNC_SOURCE_SDI;
+ comp_mode = NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_AUTO;
+ break;
+ case SYNC_FORMAT_COMP_AUTO:
+ sync_source = NV_CTRL_GVO_SYNC_SOURCE_COMPOSITE;
+ comp_mode = NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_AUTO;
+ break;
+ case SYNC_FORMAT_COMP_BI_LEVEL:
+ sync_source = NV_CTRL_GVO_SYNC_SOURCE_COMPOSITE;
+ comp_mode = NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_BI_LEVEL;
+ break;
+ case SYNC_FORMAT_COMP_TRI_LEVEL:
+ sync_source = NV_CTRL_GVO_SYNC_SOURCE_COMPOSITE;
+ comp_mode = NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_TRI_LEVEL;
+ break;
+ default:
+ return;
+ }
+
+ ctk_gvo_sync->sync_source = sync_source;
+ ctk_gvo_sync->comp_mode = comp_mode;
+
+ NvCtrlSetAttribute(ctk_gvo_sync->handle,
+ NV_CTRL_GVO_SYNC_SOURCE, sync_source);
+
+ NvCtrlSetAttribute(ctk_gvo_sync->handle,
+ NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE,
+ comp_mode);
+
+ post_sync_format_menu_changed(ctk_gvo_sync);
+
+} /* sync_format_changed() */
+
+
+
+/*
+ * hsync_delay_changed() - UI Callback function for when the user changes
+ * the hsync delay.
+ */
+
+static void hsync_delay_changed(GtkSpinButton *spinbutton, gpointer user_data)
+{
+ CtkGvoSync *ctk_gvo_sync = CTK_GVO_SYNC(user_data);
+ gint val;
+
+ val = gtk_spin_button_get_value(spinbutton);
+
+ NvCtrlSetAttribute(ctk_gvo_sync->handle, NV_CTRL_GVO_SYNC_DELAY_PIXELS,
+ val);
+
+} /* hsync_delay_changed() */
+
+
+
+/*
+ * vsync_delay_changed() - UI Callback function for when the user changes
+ * the vsync delay.
+ */
+
+static void vsync_delay_changed(GtkSpinButton *spinbutton, gpointer user_data)
+{
+ CtkGvoSync *ctk_gvo_sync = CTK_GVO_SYNC(user_data);
+ gint val;
+
+ val = gtk_spin_button_get_value(spinbutton);
+
+ NvCtrlSetAttribute(ctk_gvo_sync->handle, NV_CTRL_GVO_SYNC_DELAY_LINES,
+ val);
+
+} /* vsync_delay_changed() */
+
+
+
+
+/**** NV-CONTROL/Misc Event Handlers *****************************************/
+
+/*
+ * gvo_sync_event_received() - Callback function for handling
+ * NV-CONTROL events.
+ */
+
+static void gvo_sync_event_received(GtkObject *object,
+ gpointer arg1,
+ gpointer user_data)
+{
+ CtkEventStruct *event_struct = (CtkEventStruct *) arg1;
+ CtkGvoSync *ctk_gvo_sync = CTK_GVO_SYNC(user_data);
+ GtkWidget *widget;
+ gint attribute = event_struct->attribute;
+ gint value = event_struct->value;
+ gboolean update_sync_format = FALSE;
+
+ switch (attribute) {
+ case NV_CTRL_GVO_SYNC_MODE:
+ ctk_gvo_sync->sync_mode = value;
+ post_sync_mode_menu_changed(ctk_gvo_sync, value);
+ break;
+
+ case NV_CTRL_GVO_SYNC_SOURCE:
+ ctk_gvo_sync->sync_source = value;
+ update_sync_format = TRUE;
+ break;
+
+ case NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE:
+ ctk_gvo_sync->comp_mode = value;
+ update_sync_format = TRUE;
+ break;
+
+ case NV_CTRL_GVO_SYNC_DELAY_PIXELS:
+ widget = ctk_gvo_sync->hsync_delay_spin_button;
+
+ g_signal_handlers_block_by_func(G_OBJECT(widget),
+ G_CALLBACK(hsync_delay_changed),
+ (gpointer) ctk_gvo_sync);
+
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), value);
+
+ g_signal_handlers_unblock_by_func(G_OBJECT(widget),
+ G_CALLBACK(hsync_delay_changed),
+ (gpointer) ctk_gvo_sync);
+ break;
+
+ case NV_CTRL_GVO_SYNC_DELAY_LINES:
+ widget = ctk_gvo_sync->vsync_delay_spin_button;
+
+ g_signal_handlers_block_by_func(G_OBJECT(widget),
+ G_CALLBACK(vsync_delay_changed),
+ (gpointer) ctk_gvo_sync);
+
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), value);
+
+ g_signal_handlers_unblock_by_func(G_OBJECT(widget),
+ G_CALLBACK(vsync_delay_changed),
+ (gpointer) ctk_gvo_sync);
+ break;
+
+ case NV_CTRL_GVO_COMPOSITE_TERMINATION:
+ widget = ctk_gvo_sync->composite_termination_button;
+
+ if (widget) {
+ g_signal_handlers_block_by_func
+ (G_OBJECT(widget),
+ G_CALLBACK(composite_termination_toggled),
+ ctk_gvo_sync);
+
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), value);
+
+ g_signal_handlers_unblock_by_func
+ (G_OBJECT(widget),
+ G_CALLBACK(composite_termination_toggled),
+ ctk_gvo_sync);
+
+ post_composite_termination_toggled(ctk_gvo_sync, value);
+ }
+ break;
+ }
+
+
+ /* Update the sync format menu */
+ if (update_sync_format) {
+ widget = ctk_gvo_sync->sync_format_menu;
+
+ g_signal_handlers_block_by_func(G_OBJECT(widget),
+ G_CALLBACK(sync_format_changed),
+ (gpointer) ctk_gvo_sync);
+
+ set_sync_format_menu(ctk_gvo_sync);
+
+ g_signal_handlers_unblock_by_func(G_OBJECT(widget),
+ G_CALLBACK(sync_format_changed),
+ (gpointer) ctk_gvo_sync);
+
+ post_sync_format_menu_changed(ctk_gvo_sync);
+ }
+
+} /* gvo_sync_event_received() */
+
+
+
+/*
+ * gvo_sync_probe_callback() - Callback function for when the
+ * sync signals are probed.
+ */
+
+static gint gvo_sync_probe_callback(gpointer data)
+{
+ CtkGvoSync *ctk_gvo_sync = CTK_GVO_SYNC(data);
+ CtkGvo *ctk_gvo = ctk_gvo_sync->gvo_parent;
+
+ /* update our copies of some SDI state variables */
+
+ ctk_gvo_sync->input_video_format =
+ CTK_GVO_BANNER(ctk_gvo->banner)->input_video_format;
+
+ ctk_gvo_sync->comp_sync_input_detected =
+ CTK_GVO_BANNER(ctk_gvo->banner)->composite_sync_input_detected;
+
+ ctk_gvo_sync->sdi_sync_input_detected =
+ CTK_GVO_BANNER(ctk_gvo->banner)->sdi_sync_input_detected;
+
+ ctk_gvo_sync->sync_lock_status =
+ CTK_GVO_BANNER(ctk_gvo->banner)->sync_lock_status;
+
+ /* update the UI */
+
+ update_input_video_format_text_entry(ctk_gvo_sync);
+
+ update_sync_lock_status_text(ctk_gvo_sync);
+
+ update_delay_spin_buttons_range(ctk_gvo_sync);
+
+ update_gvo_sync_sensitivity(ctk_gvo_sync);
+
+ return TRUE;
+
+} /* gvo_sync_probe_callback() */
+
+
+
+/*
+ * ctk_gvo_sync_select() - Callback function for when the GVO
+ * sync config page is selected.
+ */
+void ctk_gvo_sync_select(GtkWidget *widget)
+{
+ CtkGvoSync *ctk_gvo_sync = CTK_GVO_SYNC(widget);
+ CtkGvo *ctk_gvo = ctk_gvo_sync->gvo_parent;
+
+ /* Grab the GVO banner */
+
+ ctk_gvo_banner_set_parent(CTK_GVO_BANNER(ctk_gvo->banner),
+ ctk_gvo_sync->banner_box,
+ gvo_sync_probe_callback, ctk_gvo_sync);
+}
+
+
+
+/*
+ * ctk_gvo_sync_unselect() - Callback function for when the GVO
+ * sync config page is unselected.
+ */
+
+void ctk_gvo_sync_unselect(GtkWidget *widget)
+{
+ CtkGvoSync *ctk_gvo_sync = CTK_GVO_SYNC(widget);
+ CtkGvo *ctk_gvo = ctk_gvo_sync->gvo_parent;
+
+ /* Release the GVO banner */
+
+ ctk_gvo_banner_set_parent(CTK_GVO_BANNER(ctk_gvo->banner),
+ NULL, NULL, NULL);
+}
+
+
+
+/*
+ * ctk_gvo_sync_create_help() - GVO sync configuration help page
+ * creation.
+ */
+
+GtkTextBuffer* ctk_gvo_sync_create_help(GtkTextTagTable *table,
+ CtkGvoSync *ctk_gvo_sync)
+{
+ GtkTextIter i;
+ GtkTextBuffer *b;
+
+ b = gtk_text_buffer_new(table);
+
+ gtk_text_buffer_get_iter_at_offset(b, &i, 0);
+
+ ctk_help_title(b, &i, "GVO (Graphics to Video Out) Synchronization "
+ "options");
+ ctk_help_para(b, &i, "This page gives access to configuration of the "
+ "SDI synchronization options.");
+
+ ctk_help_heading(b, &i, "Input Video Format");
+ ctk_help_para(b, &i, __input_video_format_help);
+ ctk_help_heading(b, &i, "Input Video Format Detect");
+ ctk_help_para(b, &i, __input_video_format_detect_help);
+ ctk_help_heading(b, &i, "Composite Termination");
+ ctk_help_para(b, &i, "%s. This allows the composite signal to be daisy "
+ "chained from a server load.",
+ __composite_termination_help);
+ ctk_help_heading(b, &i, "Sync Mode");
+ ctk_help_para(b, &i, __sync_mode_help);
+ ctk_help_heading(b, &i, "Sync Format");
+ ctk_help_para(b, &i, __sync_format_help);
+ ctk_help_heading(b, &i, "Sync Status");
+ ctk_help_para(b, &i, __sync_status_help);
+ ctk_help_heading(b, &i, "HSync Delay");
+ ctk_help_para(b, &i, __hsync_delay_help);
+ ctk_help_heading(b, &i, "VSync Delay");
+ ctk_help_para(b, &i, __vsync_delay_help);
+
+ ctk_help_finish(b);
+
+ return b;
+}
diff --git a/src/gtk+-2.x/ctkgvo-sync.h b/src/gtk+-2.x/ctkgvo-sync.h
new file mode 100644
index 0000000..7480bb7
--- /dev/null
+++ b/src/gtk+-2.x/ctkgvo-sync.h
@@ -0,0 +1,123 @@
+/*
+ * nvidia-settings: A tool for configuring the NVIDIA X driver on Unix
+ * and Linux systems.
+ *
+ * Copyright (C) 2004 NVIDIA Corporation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of Version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See Version 2
+ * of the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the:
+ *
+ * Free Software Foundation, Inc.
+ * 59 Temple Place - Suite 330
+ * Boston, MA 02111-1307, USA
+ *
+ */
+
+#ifndef __CTK_GVO_SYNC_H__
+#define __CTK_GVO_SYNC_H__
+
+#include "ctkevent.h"
+#include "ctkconfig.h"
+#include "ctkgvo.h"
+
+
+G_BEGIN_DECLS
+
+#define CTK_TYPE_GVO_SYNC (ctk_gvo_sync_get_type())
+
+#define CTK_GVO_SYNC(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), CTK_TYPE_GVO_SYNC, \
+ CtkGvoSync))
+
+#define CTK_GVO_SYNC_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), CTK_TYPE_GVO_SYNC, \
+ CtkGvoSyncClass))
+
+#define CTK_IS_GVO_SYNC(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CTK_TYPE_GVO_SYNC))
+
+#define CTK_IS_GVO_SYNC_CLASS(class) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), CTK_TYPE_GVO_SYNC))
+
+#define CTK_GVO_SYNC_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), CTK_TYPE_GVO_SYNC, \
+ CtkGvoSyncClass))
+
+
+typedef struct _CtkGvoSync CtkGvoSync;
+typedef struct _CtkGvoSyncClass CtkGvoSyncClass;
+
+
+struct _CtkGvoSync
+{
+ GtkVBox parent;
+
+ NvCtrlAttributeHandle *handle;
+ GtkWidget *parent_window;
+ CtkConfig *ctk_config;
+ CtkEvent *ctk_event;
+
+ /* State */
+
+ gint caps; // SDI device capabilities
+ gint sync_mode; // NV_CTRL_GVO_SYNC_MODE
+
+ gint input_video_format; // NV_CTRL_GVO_INPUT_VIDEO_FORMAT
+ gint sync_source; // NV_CTRL_ SDI and COMP sync formats...
+
+ gint sdi_sync_input_detected;
+ gint comp_sync_input_detected;
+ gint comp_mode;
+ gint sync_lock_status; // Genlocked/Framelock status
+
+ /* Widgets */
+
+ GtkWidget *frame;
+
+ CtkGvo *gvo_parent;
+ GtkWidget *banner_box;
+
+ GtkWidget *input_video_format_text_entry;
+ GtkWidget *input_video_format_detect_button;
+ GtkWidget *composite_termination_button;
+
+ GtkWidget *sync_mode_menu;
+ GtkWidget *sync_format_menu; // SDI/Composite sync format
+ GtkWidget *sync_lock_status_text;
+
+ GtkWidget *hsync_delay_spin_button;
+ GtkWidget *vsync_delay_spin_button;
+
+ GdkCursor *wait_cursor;
+};
+
+struct _CtkGvoSyncClass
+{
+ GtkVBoxClass parent_class;
+};
+
+
+GType ctk_gvo_sync_get_type (void) G_GNUC_CONST;
+GtkWidget* ctk_gvo_sync_new (NvCtrlAttributeHandle *, GtkWidget *,
+ CtkConfig *, CtkEvent *, CtkGvo *);
+
+GtkTextBuffer* ctk_gvo_sync_create_help(GtkTextTagTable *, CtkGvoSync *);
+
+void ctk_gvo_sync_select(GtkWidget *);
+void ctk_gvo_sync_unselect(GtkWidget *);
+
+//GtkTextBuffer* ctk_gvo_sync_create_help (GtkTextTagTable *table);
+
+
+G_END_DECLS
+
+#endif /* __CTK_GVO_SYNC_H__ */
diff --git a/src/gtk+-2.x/ctkgvo.c b/src/gtk+-2.x/ctkgvo.c
index 3e903ed..26dedb2 100644
--- a/src/gtk+-2.x/ctkgvo.c
+++ b/src/gtk+-2.x/ctkgvo.c
@@ -25,6 +25,9 @@
#include <gtk/gtk.h>
#include <string.h>
+#include <X11/Xlib.h>
+#include <X11/extensions/Xrandr.h>
+
#include "NvCtrlAttributes.h"
#include "ctkhelp.h"
@@ -34,156 +37,117 @@
#include "ctkimage.h"
#include "ctkbanner.h"
-#include "msg.h"
+#include "ctkgvo-banner.h"
-/* local prototypes */
+#include "msg.h"
-static void init_gvo_banner(CtkGvo *ctk_gvo, CtkGvoBanner *banner);
-static gboolean update_gvo_banner(gpointer data);
-static void update_gvo_banner_video_output(CtkGvoBanner *banner,
- gint output_video_format,
- gint output_data_format);
-static void update_gvo_banner_video_input(CtkGvoBanner *banner,
- gint sdi, gint comp);
+#define TABLE_PADDING 5
-static GtkWidget *start_menu(const gchar *name, GtkWidget *table,
- const gint row);
-static void finish_menu(GtkWidget *menu, GtkWidget *table, const gint row);
+/* Some defaults */
+#define DEFAULT_OUTPUT_VIDEO_FORMAT \
+ NV_CTRL_GVO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC
-static void sync_mode_changed(CtkDropDownMenu *menu, gpointer user_data);
+#define DEFAULT_OUTPUT_DATA_FORMAT \
+ NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB444
-static void output_video_format_changed(CtkDropDownMenu *menu,
- gpointer user_data);
-static void post_output_video_format_changed(CtkGvo *ctk_gvo, gint value);
+/* General information help */
-static void output_data_format_changed(CtkDropDownMenu *menu,
- gpointer user_data);
+static const char * __general_firmware_version_help =
+"The Firmware Version reports the version of the firmware running on the "
+"SDI device.";
-static void post_output_data_format_changed(CtkGvo *ctk_gvo, gint value);
+static const char * __general_current_sdi_resolution_help =
+"The Current SDI Resolution reports the current active resolution that the "
+"SDI device is driving or 'Inactive' if SDI is currently disabled.";
-static void update_sync_mode_menu(CtkGvo *ctk_gvo,
- const gint composite_sync,
- const gint sdi_sync,
- const gint current);
+static const char * __general_current_sdi_state_help =
+"The Current SDI state reports on the current usage of the SDI device.";
-static void init_sync_mode_menu(CtkGvo *ctk_gvo);
-static void update_output_video_format_menu(CtkGvo *ctk_gvo);
+/* Clone mode help */
-static void init_output_video_format_menu(CtkGvo *ctk_gvo);
+static const char * __clone_mode_video_format_help =
+"The Video Format drop-down allows you to select the desired resolution and "
+"refresh rate to be used for Clone Mode.";
-static void init_output_data_format_menu(CtkGvo *ctk_gvo);
+static const char * __clone_mode_data_format_help =
+"The Data Format drop-down allows you to select the desired data format that "
+"the SDI will output.";
+static const char * __clone_mode_x_offset_help =
+"The X Offset determines the start location of the left side of SDI output "
+"window when in Clone Mode.";
-static void create_toggle_sdi_output_button(CtkGvo *ctk_gvo, gboolean enabled);
+static const char * __clone_mode_y_offset_help =
+"The Y Offset determines the start location of the top of the SDI output "
+"window when in Clone Mode.";
-static void toggle_sdi_output_button(GtkWidget *button, gpointer user_data);
+static const char * __clone_mode_enable_clone_mode_help =
+"The Enable Clone Mode button toggles SDI Clone mode.";
-static void post_toggle_sdi_output_button(CtkGvo *gvo, gboolean enabled);
-static void init_sync_format_menu(CtkGvo *ctk_gvo);
-static void update_sync_format_menu(CtkGvo *ctk_gvo);
+/* local prototypes */
-static void sync_format_changed(CtkDropDownMenu *menu, gpointer user_data);
+static gboolean query_init_gvo_state(CtkGvo *ctk_gvo);
-static void update_input_video_format_text_entry(CtkGvo *ctk_gvo);
+static void query_video_format_details(CtkGvo *ctk_gvo);
-static void init_input_video_format_text_entry(CtkGvo *ctk_gvo);
+static void register_for_gvo_events(CtkGvo *ctk_gvo);
-static void init_composite_termination(CtkGvo *ctk_gvo);
-static int max_input_video_format_text_entry_length(void);
+static GtkWidget *start_menu(const gchar *name, GtkWidget *table,
+ const gint row);
+static void finish_menu(GtkWidget *menu, GtkWidget *table, const gint row);
-static void post_toggle_composite_termination(CtkGvo *gvo, gboolean enabled);
-static void toggle_composite_termination(GtkWidget *button,
- CtkGvo *ctk_gvo);
+static void fill_output_video_format_menu(CtkGvo *ctk_gvo);
+static void trim_output_video_format_menu(CtkGvo *ctk_gvo);
+static void output_video_format_ui_changed(CtkDropDownMenu *menu,
+ gpointer user_data);
+static void post_output_video_format_changed(CtkGvo *ctk_gvo);
-static void detect_input(GtkToggleButton *togglebutton, CtkGvo *ctk_gvo);
-static gint detect_input_done(gpointer data);
-static const char *get_video_format_name(const gint format);
-static const char *get_data_format_name(const gint format);
-static void get_video_format_resolution(const gint format, gint *w, gint *h);
+static void validate_output_data_format(CtkGvo *ctk_gvo);
+static void output_data_format_ui_changed(CtkDropDownMenu *menu,
+ gpointer user_data);
+static void post_output_data_format_changed(CtkGvo *ctk_gvo);
-static void set_gvo_sensitivity(CtkGvo *ctk_gvo,
- gboolean sensitive, guint flags);
-static void get_video_format_details(CtkGvo *ctk_gvo);
+static void x_offset_ui_changed(GtkSpinButton *spinbutton, gpointer user_data);
+static void y_offset_ui_changed(GtkSpinButton *spinbutton, gpointer user_data);
-static void update_gvo_current_info(CtkGvo *ctk_gvo, guint lock_owner);
-static void update_delay_spin_buttons(CtkGvo *ctk_gvo);
+static void create_toggle_clone_mode_button(CtkGvo *ctk_gvo);
+static void clone_mode_button_ui_toggled(GtkWidget *button,
+ gpointer user_data);
+static void post_clone_mode_button_toggled(CtkGvo *gvo);
-static void hsync_delay_changed(GtkSpinButton *spinbutton, gpointer user_data);
-static void vsync_delay_changed(GtkSpinButton *spinbutton, gpointer user_data);
-static void update_offset_spin_buttons(CtkGvo *ctk_gvo);
+static void update_gvo_current_info(CtkGvo *ctk_gvo);
+static void update_offset_spin_button_ranges(CtkGvo *ctk_gvo);
+static void update_gvo_sensitivity(CtkGvo *ctk_gvo);
-static void x_offset_changed(GtkSpinButton *spinbutton, gpointer user_data);
-static void y_offset_changed(GtkSpinButton *spinbutton, gpointer user_data);
-
-static void register_for_gvo_events(CtkGvo *ctk_gvo);
static void gvo_event_received(GtkObject *object,
gpointer arg1,
gpointer user_data);
-
-static void composite_callback(CtkBanner *banner, void *data);
-
-
-GType ctk_gvo_get_type(void)
-{
- static GType ctk_gvo_type = 0;
-
- if (!ctk_gvo_type) {
- static const GTypeInfo ctk_gvo_info = {
- sizeof (CtkGvoClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- NULL, /* constructor */
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (CtkGvo),
- 0, /* n_preallocs */
- NULL, /* instance_init */
- };
-
- ctk_gvo_type =
- g_type_register_static(GTK_TYPE_VBOX, "CtkGvo",
- &ctk_gvo_info, 0);
- }
-
- return ctk_gvo_type;
-
-} /* ctk_gvo_get_type() */
-
+static void screen_changed_handler(GtkWidget *widget,
+ XRRScreenChangeNotifyEvent *ev,
+ gpointer data);
/*
* video format table -- should this be moved into NV-CONTROL?
*/
-typedef struct {
- int format;
- const char *name;
-} FormatName;
-
-typedef struct {
- int format;
- int rate;
- int width;
- int height;
-} FormatDetails;
-
-static const FormatName videoFormatNames[] = {
- { NV_CTRL_GVO_VIDEO_FORMAT_480I_59_94_SMPTE259_NTSC, "720 x 480i 59.94 Hz (SMPTE259) NTSC"},
+const GvoFormatName videoFormatNames[] = {
+ { NV_CTRL_GVO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC, "720 x 487i 59.94 Hz (SMPTE259) NTSC"},
{ NV_CTRL_GVO_VIDEO_FORMAT_576I_50_00_SMPTE259_PAL, "720 x 576i 50.00 Hz (SMPTE259) PAL"},
{ NV_CTRL_GVO_VIDEO_FORMAT_720P_23_98_SMPTE296, "1280 x 720p 23.98 Hz (SMPTE296)" },
{ NV_CTRL_GVO_VIDEO_FORMAT_720P_24_00_SMPTE296, "1280 x 720p 24.00 Hz (SMPTE296)" },
@@ -225,8 +189,8 @@ static const FormatName videoFormatNames[] = {
};
-static FormatDetails videoFormatDetails[] = {
- { NV_CTRL_GVO_VIDEO_FORMAT_480I_59_94_SMPTE259_NTSC, 0, 0, 0 },
+static GvoFormatDetails videoFormatDetails[] = {
+ { NV_CTRL_GVO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC, 0, 0, 0 },
{ NV_CTRL_GVO_VIDEO_FORMAT_576I_50_00_SMPTE259_PAL, 0, 0, 0 },
{ NV_CTRL_GVO_VIDEO_FORMAT_720P_23_98_SMPTE296, 0, 0, 0 },
{ NV_CTRL_GVO_VIDEO_FORMAT_720P_24_00_SMPTE296, 0, 0, 0 },
@@ -268,7 +232,7 @@ static FormatDetails videoFormatDetails[] = {
};
-static const FormatName dataFormatNames[] = {
+static const GvoFormatName dataFormatNames[] = {
{ NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB444, "RGB -> YCrCb (4:4:4)" },
{ NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB422, "RGB -> YCrCb (4:2:2)" },
{ NV_CTRL_GVO_DATA_FORMAT_X8X8X8_444_PASSTHRU,"RGB (4:4:4)" },
@@ -277,1144 +241,146 @@ static const FormatName dataFormatNames[] = {
-#define TABLE_PADDING 5
-
-
-#define SYNC_FORMAT_SDI 0
-#define SYNC_FORMAT_COMP_AUTO 1
-#define SYNC_FORMAT_COMP_BI_LEVEL 2
-#define SYNC_FORMAT_COMP_TRI_LEVEL 3
+/**** Utility Functions ******************************************************/
-static const FormatName syncFormatNames[] = {
- { SYNC_FORMAT_SDI, "SDI Sync" },
- { SYNC_FORMAT_COMP_AUTO, "COMP Sync" },
- { SYNC_FORMAT_COMP_BI_LEVEL, "COMP Sync (Bi-level)" },
- { SYNC_FORMAT_COMP_TRI_LEVEL, "COMP Sync (Tri-level)" },
- { -1, NULL },
-};
-
-
-/* arguments to set_gvo_sensitivity() */
-
-#define SET_SENSITIVITY_EXCLUDE_ENABLE_BUTTON 0x0001
-#define SET_SENSITIVITY_EXCLUDE_DETECT_BUTTON 0x0002
-#define SET_SENSITIVITY_EXCLUDE_ROI_BUTTONS 0x0004
-
-#define DEFAULT_DETECT_INPUT_TIME_INTERVAL 2000
-#define UPDATE_GVO_BANNER_TIME_INTERVAL 200
-#define DEFAULT_GVO_PROBE_TIME_INTERVAL 1000
/*
- * ctk_gvo_new() - constructor for the CtkGvo widget
+ * get_first_available_output_video_format() - returns the first available
+ * output video format from the dropdown menu. This is needed since when
+ * Frame Lock/Genlock are enabled, the default case of 487i may not be
+ * appropriate.
*/
-GtkWidget* ctk_gvo_new(NvCtrlAttributeHandle *handle,
- GtkWidget *parent_window,
- CtkConfig *ctk_config,
- CtkEvent *ctk_event)
+static gint get_first_available_output_video_format(CtkGvo *ctk_gvo)
{
- GObject *object;
- CtkGvo *ctk_gvo;
- GtkWidget *hbox, *alignment, *button, *label;
- ReturnStatus ret;
- gchar scratch[64], *firmware, *string;
- gint val, i, width, height, n, caps;
-
- GtkWidget *frame, *table, *menu;
-
- /* make sure we have a handle */
-
- g_return_val_if_fail(handle != NULL, NULL);
-
- /* check if this screen supports GVO */
-
- ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_SUPPORTED, &val);
- if ((ret != NvCtrlSuccess) || (val != NV_CTRL_GVO_SUPPORTED_TRUE)) {
- /* GVO not available */
- return NULL;
- }
-
- /* Get this GVO device's capabilities */
-
- ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_CAPABILITIES, &caps);
- if (ret != NvCtrlSuccess) return NULL;
-
- /* create the CtkGvo object */
-
- object = g_object_new(CTK_TYPE_GVO, NULL);
-
- /* initialize fields in the CtkGvo object */
-
- ctk_gvo = CTK_GVO(object);
- ctk_gvo->handle = handle;
- ctk_gvo->parent_window = parent_window;
- ctk_gvo->ctk_config = ctk_config;
- ctk_gvo->ctk_event = ctk_event;
-
- /* set container properties for the CtkGvo widget */
-
- gtk_box_set_spacing(GTK_BOX(ctk_gvo), 10);
-
- /* banner */
-
- hbox = gtk_hbox_new(FALSE, 0);
- gtk_box_pack_start(GTK_BOX(object), hbox, FALSE, FALSE, 0);
-
- ctk_gvo->banner_box = hbox;
-
- init_gvo_banner(ctk_gvo, &ctk_gvo->banner);
-
-
- /*
- * General information
- */
-
- frame = gtk_frame_new("General Information");
-
- gtk_box_pack_start(GTK_BOX(object), frame, FALSE, FALSE, 0);
-
- table = gtk_table_new(3, 2, FALSE);
-
- gtk_table_set_row_spacings(GTK_TABLE(table), 3);
- gtk_table_set_col_spacings(GTK_TABLE(table), 15);
- gtk_container_set_border_width(GTK_CONTAINER(table), 5);
- gtk_container_add(GTK_CONTAINER(frame), table);
-
- /* GVO_FIRMWARE_VERSION */
-
- string = NULL;
-
- ret = NvCtrlGetStringAttribute(handle,
- NV_CTRL_STRING_GVO_FIRMWARE_VERSION,
- &string);
-
- if ((ret == NvCtrlSuccess) && (string)) {
- firmware = strdup(string);
- } else {
-
- /*
- * NV_CTRL_STRING_GVO_FIRMWARE_VERSION was added later, so
- * older X servers may not know about it; fallback to
- * NV_CTRL_GVO_FIRMWARE_VERSION
- */
-
- ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_FIRMWARE_VERSION, &val);
-
- if (ret == NvCtrlSuccess) {
- snprintf(scratch, 64, "1.%02d", val);
- firmware = strdup(scratch);
- } else {
- firmware = strdup("???");
- }
- }
-
- add_table_row(table, 0,
- 0, 0.5, "Firmware Version:",
- 0, 0.5, firmware);
- ctk_gvo->current_resolution_label =
- add_table_row(table, 1,
- 0, 0.5, "Current SDI Resolution:",
- 0, 0.5, "Inactive");
- ctk_gvo->current_state_label =
- add_table_row(table, 2,
- 0, 0.5, "Current SDI State:",
- 0, 0.5, "Inactive");
-
-
- /*
- * Sync options
- */
-
- frame = gtk_frame_new("Sync Options");
-
- gtk_box_pack_start(GTK_BOX(object), frame, FALSE, FALSE, 0);
-
- table = gtk_table_new(4, 2, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(table), 0);
- gtk_table_set_col_spacings(GTK_TABLE(table), 0);
-
- gtk_container_add(GTK_CONTAINER(frame), table);
-
- /* Sync Mode */
-
- menu = start_menu("Sync Mode: ", table, 0);
-
- ctk_drop_down_menu_append_item(CTK_DROP_DOWN_MENU(menu), "Free Running",
- NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING);
-
- ctk_drop_down_menu_append_item(CTK_DROP_DOWN_MENU(menu), "GenLock",
- NV_CTRL_GVO_SYNC_MODE_GENLOCK);
-
- ctk_drop_down_menu_append_item(CTK_DROP_DOWN_MENU(menu), "FrameLock",
- NV_CTRL_GVO_SYNC_MODE_FRAMELOCK);
-
- finish_menu(menu, table, 0);
-
- ctk_gvo->sync_mode_menu = menu;
-
- init_sync_mode_menu(ctk_gvo);
-
- g_signal_connect(G_OBJECT(ctk_gvo->sync_mode_menu), "changed",
- G_CALLBACK(sync_mode_changed), (gpointer) ctk_gvo);
-
- /* Sync Format */
-
- menu = start_menu("Sync Format: ", table, 1);
-
- for (i = 0; syncFormatNames[i].name; i++) {
- ctk_drop_down_menu_append_item(CTK_DROP_DOWN_MENU(menu),
- syncFormatNames[i].name,
- syncFormatNames[i].format);
- }
-
- finish_menu(menu, table, 1);
-
- ctk_gvo->sync_format_menu = menu;
-
- init_sync_format_menu(ctk_gvo);
-
- g_signal_connect(G_OBJECT(ctk_gvo->sync_format_menu),
- "changed", G_CALLBACK(sync_format_changed),
- (gpointer) ctk_gvo);
-
- /* input type */
-
- label = gtk_label_new("Input Video Format: ");
- alignment = gtk_alignment_new(0, 0, 0, 0);
- gtk_container_add(GTK_CONTAINER(alignment), label);
-
- gtk_table_attach(GTK_TABLE(table),
- alignment, 0, 1, 2, 3, GTK_FILL, GTK_FILL,
- TABLE_PADDING, TABLE_PADDING);
-
- ctk_gvo->input_video_format_text_entry = gtk_entry_new();
-
- gtk_widget_set_sensitive(ctk_gvo->input_video_format_text_entry, FALSE);
- gtk_entry_set_width_chars
- (GTK_ENTRY(ctk_gvo->input_video_format_text_entry),
- max_input_video_format_text_entry_length());
-
- init_input_video_format_text_entry(ctk_gvo);
-
- gtk_table_attach(GTK_TABLE(table), ctk_gvo->input_video_format_text_entry,
- 1, 2, 2, 3, GTK_FILL | GTK_EXPAND, GTK_FILL,
- TABLE_PADDING, TABLE_PADDING);
-
- /* detect button */
-
- button = gtk_toggle_button_new_with_label("Detect");
-
- alignment = gtk_alignment_new(1, 1, 0, 0);
-
- gtk_container_add(GTK_CONTAINER(alignment), button);
- gtk_table_attach(GTK_TABLE(table), alignment,
- 1, 2, 3, 4, GTK_FILL | GTK_EXPAND, GTK_FILL,
- TABLE_PADDING, TABLE_PADDING);
-
- ctk_gvo->input_video_format_detect_button = button;
-
- g_signal_connect(G_OBJECT(button), "toggled",
- G_CALLBACK(detect_input), ctk_gvo);
-
- /* Composite Termination */
-
- if (caps & NV_CTRL_GVO_CAPABILITIES_COMPOSITE_TERMINATION) {
-
- button =
- gtk_check_button_new_with_label("Enable Composite Termination");
-
- alignment = gtk_alignment_new(1, 1, 0, 0);
-
- gtk_container_add(GTK_CONTAINER(alignment), button);
- gtk_table_attach(GTK_TABLE(table), alignment,
- 1, 2, 4, 5, GTK_FILL | GTK_EXPAND, GTK_FILL,
- TABLE_PADDING, TABLE_PADDING);
-
- ctk_gvo->composite_termination_button = button;
-
- init_composite_termination(ctk_gvo);
-
- g_signal_connect(G_OBJECT(button), "toggled",
- G_CALLBACK(toggle_composite_termination), ctk_gvo);
- } else {
- ctk_gvo->composite_termination_button = NULL;
- }
-
- /*
- * Output options
- */
-
- frame = gtk_frame_new("Output Options");
-
- gtk_box_pack_start(GTK_BOX(object), frame, FALSE, FALSE, 0);
-
- table = gtk_table_new(3, 2, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(table), 0);
- gtk_table_set_col_spacings(GTK_TABLE(table), 0);
-
- gtk_container_add(GTK_CONTAINER(frame), table);
-
- /* Output Video Format */
-
- menu = start_menu("Output Video Format: ", table, 0);
-
- ctk_gvo->screen_width = NvCtrlGetScreenWidth(handle);
- ctk_gvo->screen_height = NvCtrlGetScreenHeight(handle);
-
- /* get the width, height, and refresh rate for each format */
-
- get_video_format_details(ctk_gvo);
-
- n = 0;
-
- for (i = 0; videoFormatNames[i].name; i++) {
-
- /*
- * runtime check that videoFormatDetails[] and
- * videoFormatNames[] are in sync
- */
-
- if (videoFormatDetails[i].format != videoFormatNames[i].format) {
- nv_error_msg("GVO format tables out of alignment!");
- return NULL;
- }
-
- /* check that the current X screen can support width and height */
-
- width = videoFormatDetails[i].width;
- height = videoFormatDetails[i].height;
-
- if ((width > ctk_gvo->screen_width) ||
- (height > ctk_gvo->screen_height)) {
-
- nv_warning_msg("Not exposing GVO video format '%s' (this video "
- "format requires a resolution of atleast %d x %d, "
- "but the current X screen is %d x %d)",
- videoFormatNames[i].name,
- width, height, ctk_gvo->screen_width,
- ctk_gvo->screen_height);
- continue;
- }
-
- ctk_drop_down_menu_append_item(CTK_DROP_DOWN_MENU(menu),
- videoFormatNames[i].name,
- videoFormatNames[i].format);
- n++;
- }
-
- finish_menu(menu, table, 0);
-
- if (!n) {
- nv_warning_msg("No GVO video formats will fit the current X screen of "
- "%d x %d; please create an X screen of atleast "
- "720 x 487; not exposing GVO page.\n",
- ctk_gvo->screen_width, ctk_gvo->screen_height);
- return NULL;
- }
-
-
- ctk_gvo->output_video_format_menu = menu;
-
- init_output_video_format_menu(ctk_gvo);
-
- g_signal_connect(G_OBJECT(ctk_gvo->output_video_format_menu),
- "changed", G_CALLBACK(output_video_format_changed),
- (gpointer) ctk_gvo);
-
-
- /* Output Data Format */
-
- menu = start_menu("Output Data Format: ", table, 1);
-
- for (i = 0; dataFormatNames[i].name; i++) {
- ctk_drop_down_menu_append_item(CTK_DROP_DOWN_MENU(menu),
- dataFormatNames[i].name,
- dataFormatNames[i].format);
- }
-
- finish_menu(menu, table, 1);
-
- ctk_gvo->output_data_format_menu = menu;
-
- g_signal_connect(G_OBJECT(ctk_gvo->output_data_format_menu),
- "changed", G_CALLBACK(output_data_format_changed),
- (gpointer) ctk_gvo);
-
- init_output_data_format_menu(ctk_gvo);
-
-
- /*
- * Synchronization Delay
- */
-
- frame = gtk_frame_new("Synchronization Delay");
-
- gtk_box_pack_start(GTK_BOX(object), frame, FALSE, FALSE, 0);
-
- table = gtk_table_new(2, 2, FALSE);
-
- gtk_table_set_row_spacings(GTK_TABLE(table), 3);
- gtk_table_set_col_spacings(GTK_TABLE(table), 15);
- gtk_container_set_border_width(GTK_CONTAINER(table), 5);
- gtk_container_add(GTK_CONTAINER(frame), table);
-
- get_video_format_resolution(ctk_gvo->input_video_format, &width, &height);
-
- /* NV_CTRL_GVO_SYNC_DELAY_PIXELS */
-
- label = gtk_label_new("HSync Delay (in pixels): ");
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1,
- GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
-
- ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_SYNC_DELAY_PIXELS, &val);
- if (ret != NvCtrlSuccess) val = 0;
-
- if (width < 1) width = 1;
-
- ctk_gvo->hsync_delay_spin_button =
- gtk_spin_button_new_with_range(0.0, width, 1);
-
- gtk_spin_button_set_value
- (GTK_SPIN_BUTTON(ctk_gvo->hsync_delay_spin_button), val);
-
- g_signal_connect(G_OBJECT(ctk_gvo->hsync_delay_spin_button),
- "value-changed",
- G_CALLBACK(hsync_delay_changed), ctk_gvo);
-
- gtk_table_attach(GTK_TABLE(table), ctk_gvo->hsync_delay_spin_button,
- 1, 2, 0, 1,
- GTK_FILL /*| GTK_EXPAND*/, GTK_FILL,
- TABLE_PADDING, TABLE_PADDING);
-
- /* NV_CTRL_GVO_SYNC_DELAY_LINES */
-
- label = gtk_label_new("VSync Delay (in lines): ");
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2,
- GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
-
- ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_SYNC_DELAY_LINES, &val);
- if (ret != NvCtrlSuccess) val = 0;
-
- if (height < 1) height = 1;
-
- ctk_gvo->vsync_delay_spin_button =
- gtk_spin_button_new_with_range(0.0, height, 1);
-
- gtk_spin_button_set_value
- (GTK_SPIN_BUTTON(ctk_gvo->vsync_delay_spin_button), val);
-
- g_signal_connect(G_OBJECT(ctk_gvo->vsync_delay_spin_button),
- "value-changed",
- G_CALLBACK(vsync_delay_changed), ctk_gvo);
-
- gtk_table_attach(GTK_TABLE(table), ctk_gvo->vsync_delay_spin_button,
- 1, 2, 1, 2,
- GTK_FILL /*| GTK_EXPAND*/, GTK_FILL,
- TABLE_PADDING, TABLE_PADDING);
-
- /*
- * Region of Interest
- */
-
- frame = gtk_frame_new("Region of Interest");
-
- gtk_box_pack_start(GTK_BOX(object), frame, FALSE, FALSE, 0);
-
- hbox = gtk_hbox_new(FALSE, 5);
- gtk_container_add(GTK_CONTAINER(frame), hbox);
- gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
-
- get_video_format_resolution(ctk_gvo->output_video_format, &width, &height);
-
- /* NV_CTRL_GVO_X_SCREEN_PAN_X */
-
- label = gtk_label_new("X Offset: ");
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, TABLE_PADDING);
-
- ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_X_SCREEN_PAN_X, &val);
- if (ret != NvCtrlSuccess) val = 0;
-
- width = ctk_gvo->screen_width - width;
- if (width < 1) width = 1;
-
- ctk_gvo->x_offset_spin_button =
- gtk_spin_button_new_with_range(0.0, width, 1);
-
- gtk_spin_button_set_value
- (GTK_SPIN_BUTTON(ctk_gvo->x_offset_spin_button), val);
-
- g_signal_connect(G_OBJECT(ctk_gvo->x_offset_spin_button),
- "value-changed",
- G_CALLBACK(x_offset_changed), ctk_gvo);
-
- gtk_box_pack_start(GTK_BOX(hbox), ctk_gvo->x_offset_spin_button,
- FALSE, FALSE, TABLE_PADDING);
-
- /* NV_CTRL_GVO_X_SCREEN_PAN_Y */
-
- label = gtk_label_new("Y Offset: ");
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, TABLE_PADDING);
-
- ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_X_SCREEN_PAN_Y, &val);
- if (ret != NvCtrlSuccess) val = 0;
-
- height = ctk_gvo->screen_height - height;
- if (height < 1) height = 1;
-
- ctk_gvo->y_offset_spin_button =
- gtk_spin_button_new_with_range(0.0, height, 1);
-
- gtk_spin_button_set_value
- (GTK_SPIN_BUTTON(ctk_gvo->y_offset_spin_button), val);
-
- g_signal_connect(G_OBJECT(ctk_gvo->y_offset_spin_button),
- "value-changed",
- G_CALLBACK(y_offset_changed), ctk_gvo);
-
- gtk_box_pack_start(GTK_BOX(hbox), ctk_gvo->y_offset_spin_button,
- FALSE, FALSE, TABLE_PADDING);
-
-
- /*
- * "Enable SDI Output" button
- */
-
- ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_DISPLAY_X_SCREEN, &val);
- if (ret != NvCtrlSuccess) val = 0;
-
- create_toggle_sdi_output_button(ctk_gvo, val);
-
- post_toggle_sdi_output_button(ctk_gvo, val);
-
- alignment = gtk_alignment_new(1, 1, 0, 0);
- gtk_container_add(GTK_CONTAINER(alignment),
- ctk_gvo->toggle_sdi_output_button);
-
- gtk_box_pack_start(GTK_BOX(object), alignment, TRUE, TRUE, 0);
-
- /* create the watch cursor (for use when "Detect" is toggled" */
-
- ctk_gvo->wait_cursor = gdk_cursor_new(GDK_WATCH);
-
- /*
- * register a timeout function (directly with glib, not through
- * ctk_config) to update the LEDs
- */
-
- g_timeout_add(UPDATE_GVO_BANNER_TIME_INTERVAL, update_gvo_banner,
- &ctk_gvo->banner);
-
- string = g_strdup_printf("Graphics To Video Probe (Screen %u)",
- NvCtrlGetTargetId(handle));
-
- ctk_config_add_timer(ctk_gvo->ctk_config,
- DEFAULT_GVO_PROBE_TIME_INTERVAL,
- string,
- (GSourceFunc) ctk_gvo_probe,
- (gpointer) ctk_gvo);
-
- g_free(string);
-
-
- register_for_gvo_events(ctk_gvo);
-
- /* show the GVO widget */
-
- gtk_widget_show_all(GTK_WIDGET(ctk_gvo));
-
- return GTK_WIDGET(ctk_gvo);
-
-} /* ctk_gvo_new() */
-
-
-
-/**************************************************************************/
-/*
- * code for handling the GVO banner
- */
-
-/* value for controlling LED state */
-
-#define GVO_LED_VID_OUT_NOT_IN_USE 0
-#define GVO_LED_VID_OUT_HD_MODE 1
-#define GVO_LED_VID_OUT_SD_MODE 2
-
-#define GVO_LED_SDI_SYNC_NONE 0
-#define GVO_LED_SDI_SYNC_HD 1
-#define GVO_LED_SDI_SYNC_SD 2
-#define GVO_LED_SDI_SYNC_ERROR 3
-
-#define GVO_LED_COMP_SYNC_NONE 0
-#define GVO_LED_COMP_SYNC_SYNC 1
-
-#define LED_GREY 0
-#define LED_GREEN 1
-#define LED_YELLOW 2
-#define LED_RED 3
-
-/* Position of LEDs relative to the SDI image. */
-
-static int __led_pos_x[] = { 74, 101, 128, 156 }; // From sdi.png
-static int __led_pos_y = 36; // From sdi.png
-
-
-
-/*
- * draw_led() - Updates the LED to the given color in the banner's
- * backing pixbuf.
- */
-
-static void draw_led(CtkBanner *ctk_banner, int led, int color) {
-
- /* Which LED to draw */
- int dst_x = ctk_banner->artwork_x +__led_pos_x[led];
- int dst_y = ctk_banner->artwork_y +__led_pos_y;
-
- /* Offset LED color into LED position */
- int offset_x = ctk_banner->artwork_x +__led_pos_x[led] -__led_pos_x[color];
- int offset_y = ctk_banner->artwork_y;
-
- gdk_pixbuf_composite(ctk_banner->artwork.pixbuf, // src
- ctk_banner->back.pixbuf, // dest
- dst_x, // dest_x
- dst_y, // dest_y
- 10, // dest_width
- 10, // dest_height
- offset_x, // offset_x
- offset_y, // offset_y
- 1.0, // scale_x
- 1.0, // scale_y
- GDK_INTERP_BILINEAR, // interp_type
- 255); // overall_alpha
-}
-
-
-
-/*
- * composite_callback() - Draws all the LEDs to the banner.
- */
-static void composite_callback(CtkBanner *ctk_banner, void *data)
-{
- CtkGvo *ctk_gvo = (CtkGvo *) data;
+ CtkDropDownMenu *dmenu =
+ CTK_DROP_DOWN_MENU(ctk_gvo->output_video_format_menu);
int i;
- /* Grab the latest banner widget */
- ctk_gvo->banner.ctk_banner = GTK_WIDGET(ctk_banner);
-
- /* Draw the current state */
- for (i = 0; i < 4; i++) {
- draw_led(ctk_banner, i, ctk_gvo->banner.img[i]);
- }
-}
-
-
-
-/*
- * update_led() - Updates the state of an LED and causes and expose event.
- */
-
-static void update_led(CtkGvoBanner *banner, int led, int color)
-{
- GtkWidget *ctk_banner = banner->ctk_banner;
- GdkRectangle rec = {0, __led_pos_y, 10,10};
-
- /* Update the state of the LED */
- banner->img[led] = color;
-
- /* Draw the LED and tell gdk to draw it to the window */
- if (ctk_banner && ctk_banner->window) {
-
- draw_led(CTK_BANNER(ctk_banner), led, color);
-
- rec.x = CTK_BANNER(ctk_banner)->artwork_x + __led_pos_x[led];
- rec.y = CTK_BANNER(ctk_banner)->artwork_y + __led_pos_y;
- gdk_window_invalidate_rect(ctk_banner->window, &rec, TRUE);
- }
-}
-
-
-
-/*
- * init_gvo_banner() - initialize the GVO banner
- */
-
-static void init_gvo_banner(CtkGvo *ctk_gvo, CtkGvoBanner *banner)
-{
- /* Create the banner image */
- banner->widget = ctk_banner_image_new_with_callback(BANNER_ARTWORK_SDI,
- composite_callback,
- ctk_gvo);
- g_object_ref(banner->widget);
-
- banner->ctk_banner = NULL;
-
- /*
- * initialize LED state
- */
-
- banner->state[GVO_BANNER_VID1] = GVO_LED_VID_OUT_NOT_IN_USE;
- banner->state[GVO_BANNER_VID2] = GVO_LED_VID_OUT_NOT_IN_USE;
- banner->state[GVO_BANNER_SDI] = GVO_LED_SDI_SYNC_NONE;
- banner->state[GVO_BANNER_COMP] = GVO_LED_COMP_SYNC_NONE;
-
- banner->img[GVO_BANNER_VID1] = LED_GREY;
- banner->img[GVO_BANNER_VID2] = LED_GREY;
- banner->img[GVO_BANNER_SDI] = LED_GREY;
- banner->img[GVO_BANNER_COMP] = LED_GREY;
-
- gtk_widget_show_all(GTK_WIDGET(banner->widget));
-
-} /* init_gvo_banner() */
-
-
-
-/*
- * update_gvo_banner() - called by a timer to update the LED images
- * based on current state
- */
-
-static gboolean update_gvo_banner(gpointer data)
-{
- guint8 old, new;
- CtkGvoBanner *banner = (CtkGvoBanner *) data;
-
- /*
- * we store the flashing state here:
- *
- * 0 == no LED is currently flashing
- * 1 == some LED is flashing; currently "on" (lit)
- * 2 == some LED is flashing; currently "off" (grey)
- *
- * this is used to track the current state, so that we can make
- * all LEDs flash at the same time.
+ /* look through the output video format dropdown for the first
+ * available selection.
*/
-
- gint flashing = 0;
-
-
- /* Vid 1 out */
-
- old = banner->img[GVO_BANNER_VID1];
-
- if (banner->state[GVO_BANNER_VID1] == GVO_LED_VID_OUT_HD_MODE) {
- new = (old == LED_GREY) ? LED_GREEN: LED_GREY;
- flashing = (new == LED_GREY) ? 2 : 1;
-
- } else if (banner->state[GVO_BANNER_VID1] == GVO_LED_VID_OUT_SD_MODE) {
- new = (old == LED_GREY) ? LED_YELLOW: LED_GREY;
- flashing = (new == LED_GREY) ? 2 : 1;
-
- } else {
- new = LED_GREY;
- }
-
- if (old != new) {
- update_led(banner, GVO_BANNER_VID1, new);
- }
-
- /* Vid 2 out */
-
- old = banner->img[GVO_BANNER_VID2];
-
- if (banner->state[GVO_BANNER_VID2] == GVO_LED_VID_OUT_HD_MODE) {
- if (flashing) {
- new = (flashing == 1) ? LED_GREEN: LED_GREY;
- } else {
- new = (old == LED_GREY) ? LED_GREEN: LED_GREY;
- flashing = (new == LED_GREY) ? 2 : 1;
- }
- } else if (banner->state[GVO_BANNER_VID2] == GVO_LED_VID_OUT_SD_MODE) {
- if (flashing) {
- new = (flashing == 1) ? LED_YELLOW: LED_GREY;
- } else {
- new = (old == LED_GREY) ? LED_YELLOW: LED_GREY;
- flashing = (new == LED_GREY) ? 2 : 1;
- }
- } else {
- new = LED_GREY;
- }
-
- if (old != new) {
- update_led(banner, GVO_BANNER_VID2, new);
- }
-
- /* SDI sync */
-
- old = banner->img[GVO_BANNER_SDI];
-
- if (banner->state[GVO_BANNER_SDI] == GVO_LED_SDI_SYNC_HD) {
- if (flashing) {
- new = (flashing == 1) ? LED_GREEN : LED_GREY;
- } else {
- new = (banner->img[GVO_BANNER_SDI] == LED_GREY) ?
- LED_GREEN : LED_GREY;
- flashing = (new == LED_GREY) ? 2 : 1;
- }
- } else if (banner->state[GVO_BANNER_SDI] == GVO_LED_SDI_SYNC_SD) {
- if (flashing) {
- new = (flashing == 1) ? LED_YELLOW : LED_GREY;
- } else {
- new = (banner->img[GVO_BANNER_SDI] == LED_GREY) ?
- LED_YELLOW : LED_GREY;
- flashing = (new == LED_GREY) ? 2 : 1;
+ for (i = 0; i < dmenu->num_entries; i++) {
+ if (GTK_WIDGET_IS_SENSITIVE(dmenu->values[i].menu_item)) {
+ return dmenu->values[i].value;
}
- } else if (banner->state[GVO_BANNER_SDI] == GVO_LED_SDI_SYNC_ERROR) {
- new = LED_YELLOW;
- } else {
- new = LED_GREY;
- }
-
- if (old != new) {
- update_led(banner, GVO_BANNER_SDI, new);
}
- /* COMP sync */
-
- old = banner->img[GVO_BANNER_COMP];
-
- if (banner->state[GVO_BANNER_COMP] == GVO_LED_COMP_SYNC_SYNC) {
- if (flashing) {
- new = (flashing == 1) ? LED_GREEN : LED_GREY;
- } else {
- new = (banner->img[GVO_BANNER_COMP] == LED_GREY) ?
- LED_GREEN : LED_GREY;
- }
- } else {
- new = LED_GREY;
- }
-
- if (old != new) {
- update_led(banner, GVO_BANNER_COMP, new);
- }
-
- return TRUE;
-
-} /* update_gvo_banner() */
-
-
-
-/*
- * update_gvo_banner_video_output() - update banner state accordingly,
- * based on the current output_video_format and output_data_format
- */
-
-static void update_gvo_banner_video_output(CtkGvoBanner *banner,
- gint output_video_format,
- gint output_data_format)
-{
- if (output_video_format == NV_CTRL_GVO_VIDEO_FORMAT_NONE) {
- banner->state[GVO_BANNER_VID1] = GVO_LED_VID_OUT_NOT_IN_USE;
- banner->state[GVO_BANNER_VID2] = GVO_LED_VID_OUT_NOT_IN_USE;
- } else if ((output_video_format ==
- NV_CTRL_GVO_VIDEO_FORMAT_480I_59_94_SMPTE259_NTSC) ||
- (output_video_format ==
- NV_CTRL_GVO_VIDEO_FORMAT_576I_50_00_SMPTE259_PAL)) {
- banner->state[GVO_BANNER_VID1] = GVO_LED_VID_OUT_SD_MODE;
- banner->state[GVO_BANNER_VID2] = GVO_LED_VID_OUT_SD_MODE;
- } else {
- banner->state[GVO_BANNER_VID1] = GVO_LED_VID_OUT_HD_MODE;
- banner->state[GVO_BANNER_VID2] = GVO_LED_VID_OUT_HD_MODE;
- }
-
- if (output_data_format == NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB422) {
- banner->state[GVO_BANNER_VID2] = GVO_LED_VID_OUT_NOT_IN_USE;
- }
-} /* update_gvo_banner_video_output() */
-
-
-
-/*
- * update_gvo_banner_video_input() - update banner state accordingly,
- * based on the current sdi and composite input
- */
-
-static void update_gvo_banner_video_input(CtkGvoBanner *banner,
- gint sdi, gint comp)
-{
- if (sdi == NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_HD) {
- banner->state[GVO_BANNER_SDI] = GVO_LED_SDI_SYNC_HD;
- } else if (sdi == NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_SD) {
- banner->state[GVO_BANNER_SDI] = GVO_LED_SDI_SYNC_SD;
- } else {
- banner->state[GVO_BANNER_SDI] = GVO_LED_SDI_SYNC_NONE;
- }
-
- banner->state[GVO_BANNER_COMP] = comp ?
- GVO_LED_COMP_SYNC_SYNC : GVO_LED_COMP_SYNC_NONE;
-
-} /* update_gvo_banner_video_input() */
-
-
-
-/**************************************************************************/
-
-
-
-static GtkWidget *start_menu(const gchar *name, GtkWidget *table,
- const gint row)
-{
- GtkWidget *menu, *label, *alignment;
-
- label = gtk_label_new(name);
- alignment = gtk_alignment_new(0, 0, 0, 0);
- gtk_container_add(GTK_CONTAINER(alignment), label);
-
- gtk_table_attach(GTK_TABLE(table),
- alignment, 0, 1, row, row+1, GTK_FILL, GTK_FILL,
- TABLE_PADDING, TABLE_PADDING);
-
- menu = ctk_drop_down_menu_new(CTK_DROP_DOWN_MENU_FLAG_MONOSPACE);
-
- return menu;
-}
-
-
-static void finish_menu(GtkWidget *menu, GtkWidget *table, const gint row)
-{
- ctk_drop_down_menu_finalize(CTK_DROP_DOWN_MENU(menu));
+ /* There are no available video formats? Fallback to 487i. */
- gtk_table_attach(GTK_TABLE(table), menu, 1, 2, row, row+1,
- GTK_FILL | GTK_EXPAND, GTK_FILL,
- TABLE_PADDING, TABLE_PADDING);
-}
+ return NV_CTRL_GVO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC;
+} /* get_first_available_output_video_format() */
-/**************************************************************************/
/*
- * sync_mode_changed() - callback when the SyncMode menu changes
+ * ctk_gvo_get_video_format_name() - return the name of the given video format
*/
-static void sync_mode_changed(CtkDropDownMenu *menu, gpointer user_data)
+const char *ctk_gvo_get_video_format_name(const gint format)
{
- CtkGvo *ctk_gvo = CTK_GVO(user_data);
- gint value;
- char *name;
-
- value = ctk_drop_down_menu_get_current_value(menu);
-
- switch (value) {
- case NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING: name = "Free Running"; break;
- case NV_CTRL_GVO_SYNC_MODE_GENLOCK: name = "GenLock"; break;
- case NV_CTRL_GVO_SYNC_MODE_FRAMELOCK: name = "FrameLock"; break;
- default: return;
- }
-
- NvCtrlSetAttribute(ctk_gvo->handle, NV_CTRL_GVO_SYNC_MODE, value);
+ gint i;
- if (value != NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING) {
- NvCtrlSetAttribute(ctk_gvo->handle, NV_CTRL_GVO_SYNC_SOURCE,
- ctk_gvo->sync_source);
+ for (i = 0; videoFormatNames[i].name; i++) {
+ if (videoFormatNames[i].format == format) {
+ return videoFormatNames[i].name;
+ }
}
- ctk_gvo->sync_mode = value;
-
- update_output_video_format_menu(ctk_gvo);
-
- update_sync_format_menu(ctk_gvo);
-
- ctk_config_statusbar_message(ctk_gvo->ctk_config,
- "Sync Mode set to %s.", name);
+ return "Unknown";
-} /* sync_mode_changed() */
+} /* ctk_gvo_get_video_format_name() */
/*
- * output_video_format_changed() - callback when the output video
- * format menu changes
+ * ctk_gvo_get_data_format_name() - return the name of the given data format
*/
-static void output_video_format_changed(CtkDropDownMenu *menu,
- gpointer user_data)
+const char *ctk_gvo_get_data_format_name(const gint format)
{
- CtkGvo *ctk_gvo = CTK_GVO(user_data);
- gint value;
-
- value = ctk_drop_down_menu_get_current_value(menu);
+ gint i;
- if (((value < 32) &&
- !(ctk_gvo->valid_output_video_format_mask[0] & (1 << value))) ||
- ((value >= 32) &&
- !(ctk_gvo->valid_output_video_format_mask[1] & (1 << (value - 32))))){
-
- ctk_config_statusbar_message(ctk_gvo->ctk_config, "Invalid "
- "Output Video Format: %s; ignoring.",
- get_video_format_name(value));
- return;
+ for (i = 0; dataFormatNames[i].name; i++) {
+ if (dataFormatNames[i].format == format) {
+ return dataFormatNames[i].name;
+ }
}
-
- NvCtrlSetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT, value);
-
- post_output_video_format_changed(ctk_gvo, value);
-
-} /* output_video_format_changed() */
-
-
-static void post_output_video_format_changed(CtkGvo *ctk_gvo, gint value)
-{
- ctk_gvo->output_video_format = value;
-
- ctk_config_statusbar_message(ctk_gvo->ctk_config,
- "Output Video Format set to: %s.",
- get_video_format_name(value));
-}
-
-
-
-/*
- * output_data_format_changed() - callback when the output data format
- * menu changes
- */
-
-static void output_data_format_changed(CtkDropDownMenu *menu,
- gpointer user_data)
-{
- CtkGvo *ctk_gvo = CTK_GVO(user_data);
- gint value;
-
- value = ctk_drop_down_menu_get_current_value(menu);
-
- NvCtrlSetAttribute(ctk_gvo->handle, NV_CTRL_GVO_DATA_FORMAT, value);
-
- post_output_data_format_changed(ctk_gvo, value);
-
-} /* output_data_format_changed() */
-
-
-static void post_output_data_format_changed(CtkGvo *ctk_gvo, gint value)
-{
- ctk_gvo->output_data_format = value;
-
- ctk_config_statusbar_message(ctk_gvo->ctk_config,
- "Output Data Format set to: %s.",
- get_data_format_name(value));
-}
+ return "Unknown";
-/**************************************************************************/
+} /* ctk_gvo_get_data_format_name() */
/*
- * update_sync_mode_menu() - given the COMPOSITE_SYNC and SDI_SYNC
- * values, set the sensitivity of each entry in sync_mode_menu.
+ * ctk_gvo_get_video_format_resolution() - return the width and height of the
+ * given video format
*/
-static void update_sync_mode_menu(CtkGvo *ctk_gvo,
- const gint composite_sync,
- const gint sdi_sync,
- const gint current)
+void ctk_gvo_get_video_format_resolution(const gint format, gint *w, gint *h)
{
- gboolean sensitive;
-
- if ((composite_sync == NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_FALSE) &&
- (sdi_sync == NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_NONE)) {
-
- /* no external sync detected; do not expose GenLock or FrameLock */
- sensitive = FALSE;
-
- } else {
-
- /* external sync detected; expose GenLock amd FrameLock */
- sensitive = TRUE;
- }
+ gint i;
- /* set the sensitivity for GenLock and FrameLock */
+ *w = *h = 0;
- ctk_drop_down_menu_set_value_sensitive
- (CTK_DROP_DOWN_MENU(ctk_gvo->sync_mode_menu),
- NV_CTRL_GVO_SYNC_MODE_GENLOCK, sensitive);
-
- ctk_drop_down_menu_set_value_sensitive
- (CTK_DROP_DOWN_MENU(ctk_gvo->sync_mode_menu),
- NV_CTRL_GVO_SYNC_MODE_FRAMELOCK, sensitive);
-
- /*
- * if the current SYNC_MODE is not FREE_RUNNING, but other modes
- * are not available, then we need to change the current setting
- * to FREE_RUNNING
- */
-
- if ((current != NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING) && !sensitive) {
-
- NvCtrlSetAttribute(ctk_gvo->handle, NV_CTRL_GVO_SYNC_MODE,
- NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING);
-
- ctk_drop_down_menu_set_current_value
- (CTK_DROP_DOWN_MENU(ctk_gvo->sync_mode_menu),
- NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING);
+ for (i = 0; videoFormatDetails[i].format != -1; i++) {
+ if (videoFormatDetails[i].format == format) {
+ *w = videoFormatDetails[i].width;
+ *h = videoFormatDetails[i].height;
+ return;
+ }
}
-
-} /* update_sync_mode_menu() */
+} /* ctk_gvo_get_video_format_resolution() */
/*
- * init_sync_mode_menu() - initialize the sync mode menu: set the
- * currently active menu selection and set the sensitivity of the
- * menu entries.
+ * ctk_gvo_get_type() - Returns the CtkGvo "class" type
*/
-static void init_sync_mode_menu(CtkGvo *ctk_gvo)
+GType ctk_gvo_get_type(void)
{
- ReturnStatus ret;
- gint val, comp, sdi;
-
- /* get the current mode */
-
- ret = NvCtrlGetAttribute(ctk_gvo->handle, NV_CTRL_GVO_SYNC_MODE, &val);
- if (ret != NvCtrlSuccess) {
- val = NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING;
- }
-
- ctk_gvo->sync_mode = val;
-
- /* set the current mode in the menu */
+ static GType ctk_gvo_type = 0;
- ctk_drop_down_menu_set_current_value
- (CTK_DROP_DOWN_MENU(ctk_gvo->sync_mode_menu), val);
-
- /* query COMPOSITE_SYNC_INPUT_DETECTED */
+ if (!ctk_gvo_type) {
+ static const GTypeInfo ctk_gvo_info = {
+ sizeof (CtkGvoClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ NULL, /* constructor */
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (CtkGvo),
+ 0, /* n_preallocs */
+ NULL, /* instance_init */
+ };
- ret = NvCtrlGetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED, &comp);
- if (ret != NvCtrlSuccess) {
- comp = NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_FALSE;
+ ctk_gvo_type =
+ g_type_register_static(GTK_TYPE_VBOX, "CtkGvo",
+ &ctk_gvo_info, 0);
}
- /* query SDI_SYNC_INPUT_DETECTED */
-
- ret = NvCtrlGetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED, &sdi);
- if (ret != NvCtrlSuccess) {
- sdi = NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_NONE;
- }
-
- /* update the menu */
-
- update_sync_mode_menu(ctk_gvo, comp, sdi, val);
+ return ctk_gvo_type;
-} /* init_sync_mode_menu() */
+} /* ctk_gvo_get_type() */
/*
- * update_output_video_format_menu() - given the current
- * OUTPUT_VIDEO_FORMAT, set the sensitivity of each menu entry and
- * possibly update which entry is current.
+ * trim_output_video_format_menu() - given the current
+ * OUTPUT_VIDEO_FORMAT and SYNC_MODE, set the sensitivity of each menu
+ * entry and possibly update which of the output video mode dropdown
+ * entries is currently selected.
*/
-static void update_output_video_format_menu(CtkGvo *ctk_gvo)
+static void trim_output_video_format_menu(CtkGvo *ctk_gvo)
{
ReturnStatus ret;
NVCTRLAttributeValidValuesRec valid;
gint bitmask, bitmask2, i, refresh_rate;
- gboolean sensitive, current_not_available = FALSE;
+ gboolean sensitive, current_available;
/* retrieve the currently available values */
@@ -1466,9 +432,10 @@ static void update_output_video_format_menu(CtkGvo *ctk_gvo)
if ((ctk_gvo->sync_mode == NV_CTRL_GVO_SYNC_MODE_FRAMELOCK) &&
(ctk_gvo->input_video_format != NV_CTRL_GVO_VIDEO_FORMAT_NONE)) {
-
+
refresh_rate = 0;
-
+
+ /* Get the current input refresh rate */
for (i = 0; videoFormatDetails[i].format != -1; i++) {
if (videoFormatDetails[i].format == ctk_gvo->input_video_format) {
refresh_rate = videoFormatDetails[i].rate;
@@ -1476,9 +443,30 @@ static void update_output_video_format_menu(CtkGvo *ctk_gvo)
}
}
+ /* Mask out refresh rates that don't match */
for (i = 0; videoFormatDetails[i].format != -1; i++) {
- if (videoFormatDetails[i].rate != refresh_rate) {
-
+ gboolean match = FALSE;
+
+ if (videoFormatDetails[i].rate == refresh_rate) {
+ match = TRUE;
+
+ } else if (ctk_gvo->caps &
+ NV_CTRL_GVO_CAPABILITIES_MULTIRATE_SYNC) {
+
+ /* Some GVO devices support multi-rate synchronization.
+ * For these devices, we just need to check that the
+ * fractional part of the rate are either both zero or
+ * both non-zero.
+ */
+ if (((videoFormatDetails[i].rate % 1000) ? TRUE : FALSE) ==
+ ((refresh_rate % 1000) ? TRUE : FALSE)) {
+ match = TRUE;
+ }
+ } else {
+ match = FALSE;
+ }
+
+ if (!match) {
if (videoFormatDetails[i].format < 32) {
bitmask &= ~(1 << videoFormatDetails[i].format);
} else {
@@ -1493,6 +481,7 @@ static void update_output_video_format_menu(CtkGvo *ctk_gvo)
* bitmask, then it is available
*/
+ current_available = FALSE;
for (i = 0; videoFormatNames[i].name; i++) {
if (((videoFormatNames[i].format < 32) &&
((1 << videoFormatNames[i].format) & bitmask)) ||
@@ -1510,8 +499,8 @@ static void update_output_video_format_menu(CtkGvo *ctk_gvo)
/* if the current video is not sensitive, take note */
if ((ctk_gvo->output_video_format == videoFormatNames[i].format) &&
- !sensitive) {
- current_not_available = TRUE;
+ sensitive) {
+ current_available = TRUE;
}
}
@@ -1520,23 +509,32 @@ static void update_output_video_format_menu(CtkGvo *ctk_gvo)
* available format current
*/
- if (current_not_available && bitmask) {
+ if (!current_available && bitmask) {
+
for (i = 0; videoFormatNames[i].name; i++) {
if (((videoFormatNames[i].format < 32) &&
((1 << videoFormatNames[i].format) & bitmask)) ||
((videoFormatNames[i].format >= 32) &&
((1 << (videoFormatNames[i].format - 32)) & bitmask2))) {
- NvCtrlSetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT,
- videoFormatNames[i].format);
-
+ /* Invalidate the format so it gets set when clone mode is
+ * enabled.
+ */
+ ctk_gvo->output_video_format_valid = FALSE;
+
+ g_signal_handlers_block_by_func
+ (G_OBJECT(ctk_gvo->output_video_format_menu),
+ G_CALLBACK(output_video_format_ui_changed),
+ (gpointer) ctk_gvo);
+
ctk_drop_down_menu_set_current_value
(CTK_DROP_DOWN_MENU(ctk_gvo->output_video_format_menu),
videoFormatNames[i].format);
-
- ctk_gvo->output_video_format = videoFormatNames[i].format;
+ g_signal_handlers_unblock_by_func
+ (G_OBJECT(ctk_gvo->output_video_format_menu),
+ G_CALLBACK(output_video_format_ui_changed),
+ (gpointer) ctk_gvo);
break;
}
}
@@ -1549,191 +547,433 @@ static void update_output_video_format_menu(CtkGvo *ctk_gvo)
ctk_gvo->valid_output_video_format_mask[0] = bitmask;
ctk_gvo->valid_output_video_format_mask[1] = bitmask2;
-} /* update_output_video_format_menu() */
+} /* trim_output_video_format_menu() */
/*
- * init_sync_format_menu() - initialize the sync format menu
+ * validate_output_video_format() - Keep tabs on the output
+ * video format. If some other client sets the output video format to
+ * something clone mode can't do, we'll just need to make sure that
+ * we re-set the output video format when the user selects to enable
+ * clone mode.
+ *
+ * NOTE: The gtk signal handler for the video format menu should not
+ * be enabled while calling this function.
*/
-static void init_sync_format_menu(CtkGvo *ctk_gvo)
+static void validate_output_video_format(CtkGvo *ctk_gvo)
{
- ReturnStatus ret;
- gint sync_source, sync_mode, comp_mode, val;
-
- ret = NvCtrlGetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_SYNC_SOURCE,
- &sync_source);
-
- if (ret != NvCtrlSuccess) {
- sync_source = NV_CTRL_GVO_SYNC_SOURCE_SDI;
- }
+ gint bitmask, bitmask2;
+ gint width, height;
+ gint format = ctk_gvo->output_video_format;
- ret = NvCtrlGetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_SYNC_MODE,
- &sync_mode);
-
- if (ret != NvCtrlSuccess) {
- sync_mode = NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING;
- }
-
- ret = NvCtrlGetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE,
- &comp_mode);
-
- if (ret != NvCtrlSuccess) {
- comp_mode = NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_AUTO;
- }
-
- if (sync_source == NV_CTRL_GVO_SYNC_SOURCE_SDI) {
- val = SYNC_FORMAT_SDI;
- } else if (comp_mode ==
- NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_AUTO) {
- val = SYNC_FORMAT_COMP_AUTO;
- } else if (comp_mode ==
- NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_BI_LEVEL) {
- val = SYNC_FORMAT_COMP_BI_LEVEL;
- } else if (comp_mode ==
- NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_TRI_LEVEL){
- val = SYNC_FORMAT_COMP_TRI_LEVEL;
- } else {
- val = SYNC_FORMAT_SDI; // should not get here
+ /* Keep track of whether we'll need to re-set the video format
+ * when enabling clone mode.
+ */
+
+ /* Check to make sure the format size <= current screen size */
+ ctk_gvo_get_video_format_resolution(format, &width, &height);
+
+ /* Don't expose modes bigger than the current X Screen size */
+ if ((width > ctk_gvo->screen_width) ||
+ (height > ctk_gvo->screen_height)) {
+ /* Format is invalid due to screen size limitations */
+ ctk_gvo->output_video_format_valid = FALSE;
+ return;
}
-
- ctk_drop_down_menu_set_current_value
- (CTK_DROP_DOWN_MENU(ctk_gvo->sync_format_menu), val);
-
- if (sync_mode == NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING) {
- ctk_gvo->sync_format_sensitive = FALSE;
- } else {
- ctk_gvo->sync_format_sensitive = TRUE;
+
+ /* Check to make sure genlock/framelock requirements are ment */
+ bitmask = ctk_gvo->valid_output_video_format_mask[0];
+ bitmask2 = ctk_gvo->valid_output_video_format_mask[1];
+
+ if (((format < 32) && !((1 << format) & bitmask)) ||
+ ((format >= 32) && !((1 << (format - 32)) & bitmask2))) {
+ /* Format is invalid due to genlock/framelock requirements */
+ ctk_gvo->output_video_format_valid = FALSE;
+ return;
}
- ctk_gvo->sync_source = sync_source;
+ /* If we got this far, then the format is valid. */
+ ctk_gvo->output_video_format_valid = TRUE;
+
+} /* validate_output_video_format() */
- gtk_widget_set_sensitive(ctk_gvo->sync_format_menu,
- ctk_gvo->sync_format_sensitive);
-} /* init_sync_format_menu() */
+/*
+ * validate_output_data_format() - Keep tabs on the output
+ * data format. If some other client sets the output data format to
+ * something clone mode can't do, we'll just need to make sure that
+ * we re-set the output data format when the user selects to enable
+ * clone mode.
+ *
+ * NOTE: The gtk signal handler for the data format menu should not
+ * be enabled while calling this function.
+ */
-static void update_sync_format_menu(CtkGvo *ctk_gvo)
+static void validate_output_data_format(CtkGvo *ctk_gvo)
{
- if (ctk_gvo->sync_mode == NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING) {
- ctk_gvo->sync_format_sensitive = FALSE;
- } else {
- ctk_gvo->sync_format_sensitive = TRUE;
+ int i;
+
+ /* Keep track of whether we'll need to re-set the data format
+ * when enabling clone mode.
+ */
+ for (i = 0; dataFormatNames[i].name; i++) {
+ if (ctk_gvo->output_data_format == dataFormatNames[i].format) {
+ /* Value is OK */
+ ctk_gvo->output_data_format_valid = TRUE;
+ return;
+ }
}
-
- gtk_widget_set_sensitive(ctk_gvo->sync_format_menu,
- ctk_gvo->sync_format_sensitive);
-}
+
+ ctk_gvo->output_data_format_valid = FALSE;
+
+} /* validate_output_data_format() */
+
+
+
+/**** Creation Functions *****************************************************/
/*
- * init_output_video_format_menu() - initialize the output video
- * format menu: set the currently active menu entry and update the
- * sensitivity of all entries.
+ * ctk_gvo_new() - constructor for the CtkGvo widget
*/
-static void init_output_video_format_menu(CtkGvo *ctk_gvo)
+GtkWidget* ctk_gvo_new(NvCtrlAttributeHandle *handle,
+ CtkConfig *ctk_config,
+ CtkEvent *ctk_event)
{
- gint val;
+ GObject *object;
+ CtkGvo *ctk_gvo;
+ GtkWidget *hbox, *vbox, *alignment, *label;
ReturnStatus ret;
+ gchar scratch[64], *firmware, *string;
+ gint val, i, width, height;
+
+ GtkWidget *frame, *table, *menu;
+
+ /* make sure we have a handle */
+
+ g_return_val_if_fail(handle != NULL, NULL);
- ret = NvCtrlGetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT, &val);
- if (ret != NvCtrlSuccess) {
- val = NV_CTRL_GVO_VIDEO_FORMAT_480I_59_94_SMPTE259_NTSC;
- }
+ /* create and initialize the object */
- ctk_drop_down_menu_set_current_value
- (CTK_DROP_DOWN_MENU(ctk_gvo->output_video_format_menu), val);
+ object = g_object_new(CTK_TYPE_GVO, NULL);
- ctk_gvo->output_video_format = val;
+ ctk_gvo = CTK_GVO(object);
+ ctk_gvo->handle = handle;
+ ctk_gvo->ctk_config = ctk_config;
+ ctk_gvo->ctk_event = ctk_event;
+
+ /* Query the current GVO state */
+
+ if ( !query_init_gvo_state(ctk_gvo) ) {
+ // Free the object
+ g_object_ref(object);
+ gtk_object_sink(GTK_OBJECT(object));
+ g_object_unref(object);
+ return NULL;
+ }
+
+ /* Query the width, height and refresh rate for each video format */
- update_output_video_format_menu(ctk_gvo);
+ query_video_format_details(ctk_gvo);
+
+ /* set container properties for the widget */
-} /* init_output_video_format_menu() */
+ gtk_box_set_spacing(GTK_BOX(ctk_gvo), 10);
+ /* banner */
+
+ hbox = gtk_hbox_new(FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(object), hbox, FALSE, FALSE, 0);
+ ctk_gvo->banner_box = hbox;
-/*
- * init_output_data_format_menu() - initialize the output data format
- * menu: make sure the current value is available in the list that we
- * expose, and set the currently active menu entry.
- */
+ ctk_gvo->banner = ctk_gvo_banner_new(handle, ctk_config, ctk_event);
+ g_object_ref(ctk_gvo->banner);
-static void init_output_data_format_menu(CtkGvo *ctk_gvo)
-{
- gint current, i;
- ReturnStatus ret;
- gboolean found;
+ /*
+ * General information
+ */
- ret = NvCtrlGetAttribute(ctk_gvo->handle, NV_CTRL_GVO_DATA_FORMAT,
- &current);
+ frame = gtk_frame_new("General Information");
- if (ret != NvCtrlSuccess) {
- current = NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB444;
+ gtk_box_pack_start(GTK_BOX(object), frame, FALSE, FALSE, 0);
+
+ table = gtk_table_new(3, 2, FALSE);
+
+ gtk_table_set_row_spacings(GTK_TABLE(table), 3);
+ gtk_table_set_col_spacings(GTK_TABLE(table), 15);
+ gtk_container_set_border_width(GTK_CONTAINER(table), 5);
+
+ gtk_container_add(GTK_CONTAINER(frame), table);
+
+ /* GVO_FIRMWARE_VERSION */
+
+ string = NULL;
+
+ ret = NvCtrlGetStringAttribute(handle,
+ NV_CTRL_STRING_GVO_FIRMWARE_VERSION,
+ &string);
+
+ if ((ret == NvCtrlSuccess) && (string)) {
+ firmware = strdup(string);
+ } else {
+
+ /*
+ * NV_CTRL_STRING_GVO_FIRMWARE_VERSION was added later, so
+ * older X servers may not know about it; fallback to
+ * NV_CTRL_GVO_FIRMWARE_VERSION
+ */
+
+ ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_FIRMWARE_VERSION, &val);
+
+ if (ret == NvCtrlSuccess) {
+ snprintf(scratch, 64, "1.%02d", val);
+ firmware = strdup(scratch);
+ } else {
+ firmware = strdup("???");
+ }
}
+ add_table_row(table, 0,
+ 0, 0.5, "Firmware Version:",
+ 0, 0.5, firmware);
+ ctk_gvo->current_resolution_label =
+ add_table_row(table, 1,
+ 0, 0.5, "Current SDI Resolution:",
+ 0, 0.5, "Inactive");
+ ctk_gvo->current_state_label =
+ add_table_row(table, 2,
+ 0, 0.5, "Current SDI State:",
+ 0, 0.5, "Inactive");
+
+
/*
- * is this value in the list that we expose? if not, then pick the
- * first value that is in the list
+ * Clone mode options
*/
- for (i = 0, found = FALSE; dataFormatNames[i].name; i++) {
- if (current == dataFormatNames[i].format) {
- found = TRUE;
- break;
- }
+ frame = gtk_frame_new("Clone Mode");
+ ctk_gvo->clone_mode_frame = frame;
+
+ vbox = gtk_vbox_new(FALSE, 0);
+
+ table = gtk_table_new(3, 2, FALSE);
+ gtk_table_set_row_spacings(GTK_TABLE(table), 0);
+ gtk_table_set_col_spacings(GTK_TABLE(table), 0);
+
+ gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(frame), vbox);
+ gtk_box_pack_start(GTK_BOX(object), frame, FALSE, FALSE, 0);
+
+ /* Output Video Format */
+
+ menu = start_menu("Video Format: ", table, 0);
+ ctk_gvo->output_video_format_menu = menu;
+ ctk_config_set_tooltip(ctk_config, CTK_DROP_DOWN_MENU(menu)->option_menu,
+ __clone_mode_video_format_help);
+
+ fill_output_video_format_menu(ctk_gvo);
+
+ finish_menu(menu, table, 0);
+
+ /* Make sure that the video format selected is valid for clone mode */
+
+ validate_output_video_format(ctk_gvo);
+ if (ctk_gvo->output_video_format_valid) {
+ val = ctk_gvo->output_video_format;
+ } else {
+ val = get_first_available_output_video_format(ctk_gvo);
}
+
+ ctk_drop_down_menu_set_current_value
+ (CTK_DROP_DOWN_MENU(ctk_gvo->output_video_format_menu), val);
+
+ g_signal_connect(G_OBJECT(ctk_gvo->output_video_format_menu),
+ "changed", G_CALLBACK(output_video_format_ui_changed),
+ (gpointer) ctk_gvo);
- if (!found) {
- current = dataFormatNames[0].format;
+ /* Output Data Format */
- /* make this value current */
+ menu = start_menu("Data Format: ", table, 1);
+ ctk_gvo->output_data_format_menu = menu;
+ ctk_config_set_tooltip(ctk_config, CTK_DROP_DOWN_MENU(menu)->option_menu,
+ __clone_mode_data_format_help);
- NvCtrlSetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_DATA_FORMAT, current);
+ for (i = 0; dataFormatNames[i].name; i++) {
+ ctk_drop_down_menu_append_item(CTK_DROP_DOWN_MENU(menu),
+ dataFormatNames[i].name,
+ dataFormatNames[i].format);
+ }
+
+ finish_menu(menu, table, 1);
+
+ /* Make sure that the data format selected is valid for clone mode */
+
+ validate_output_data_format(ctk_gvo);
+ if (ctk_gvo->output_data_format_valid) {
+ val = ctk_gvo->output_data_format;
+ } else {
+ val = DEFAULT_OUTPUT_DATA_FORMAT;
}
- /* update the menu */
-
ctk_drop_down_menu_set_current_value
- (CTK_DROP_DOWN_MENU(ctk_gvo->output_data_format_menu), current);
+ (CTK_DROP_DOWN_MENU(ctk_gvo->output_data_format_menu), val);
+
+ g_signal_connect(G_OBJECT(ctk_gvo->output_data_format_menu),
+ "changed", G_CALLBACK(output_data_format_ui_changed),
+ (gpointer) ctk_gvo);
+
+ /* Region of Interest */
+
+ ctk_gvo_get_video_format_resolution(ctk_gvo->output_video_format,
+ &width, &height);
+
+ /* NV_CTRL_GVO_X_SCREEN_PAN_X */
+
+ label = gtk_label_new("X Offset: ");
+
+ alignment = gtk_alignment_new(0, 0, 0, 0);
+ gtk_container_add(GTK_CONTAINER(alignment), label);
+
+ gtk_table_attach(GTK_TABLE(table), alignment,
+ 0, 1, 2, 3,
+ GTK_FILL, GTK_FILL,
+ TABLE_PADDING, TABLE_PADDING);
+
+ ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_X_SCREEN_PAN_X, &val);
+ if (ret != NvCtrlSuccess) val = 0;
+
+ width = ctk_gvo->screen_width - width;
+ if (width < 1) width = 1;
+
+ ctk_gvo->x_offset_spin_button =
+ gtk_spin_button_new_with_range(0.0, width, 1);
+
+ ctk_config_set_tooltip(ctk_config, ctk_gvo->x_offset_spin_button,
+ __clone_mode_x_offset_help);
-} /* init_output_data_format_menu() */
+ gtk_spin_button_set_value
+ (GTK_SPIN_BUTTON(ctk_gvo->x_offset_spin_button), val);
+ g_signal_connect(G_OBJECT(ctk_gvo->x_offset_spin_button),
+ "value-changed",
+ G_CALLBACK(x_offset_ui_changed), ctk_gvo);
+ hbox = gtk_hbox_new(FALSE, FALSE);
+ gtk_box_pack_start(GTK_BOX(hbox), ctk_gvo->x_offset_spin_button,
+ FALSE, FALSE, 0);
+
+ gtk_table_attach(GTK_TABLE(table), hbox,
+ 1, 2, 2, 3,
+ GTK_FILL | GTK_EXPAND, GTK_FILL,
+ TABLE_PADDING, TABLE_PADDING);
+ /* NV_CTRL_GVO_X_SCREEN_PAN_Y */
-/**************************************************************************/
+ label = gtk_label_new("Y Offset: ");
+ alignment = gtk_alignment_new(0, 0, 0, 0);
+ gtk_container_add(GTK_CONTAINER(alignment), label);
+
+ gtk_table_attach(GTK_TABLE(table), alignment,
+ 0, 1, 3, 4,
+ GTK_FILL, GTK_FILL,
+ TABLE_PADDING, TABLE_PADDING);
+
+ ret = NvCtrlGetAttribute(handle, NV_CTRL_GVO_X_SCREEN_PAN_Y, &val);
+ if (ret != NvCtrlSuccess) val = 0;
+
+ height = ctk_gvo->screen_height - height;
+ if (height < 1) height = 1;
+
+ ctk_gvo->y_offset_spin_button =
+ gtk_spin_button_new_with_range(0.0, height, 1);
+
+ gtk_spin_button_set_value
+ (GTK_SPIN_BUTTON(ctk_gvo->y_offset_spin_button), val);
+
+ ctk_config_set_tooltip(ctk_config, ctk_gvo->y_offset_spin_button,
+ __clone_mode_y_offset_help);
+
+ g_signal_connect(G_OBJECT(ctk_gvo->y_offset_spin_button),
+ "value-changed",
+ G_CALLBACK(y_offset_ui_changed), ctk_gvo);
+
+ hbox = gtk_hbox_new(FALSE, FALSE);
+ gtk_box_pack_start(GTK_BOX(hbox), ctk_gvo->y_offset_spin_button,
+ FALSE, FALSE, 0);
+
+ gtk_table_attach(GTK_TABLE(table), hbox,
+ 1, 2, 3, 4,
+ GTK_FILL | GTK_EXPAND, GTK_FILL,
+ TABLE_PADDING, TABLE_PADDING);
+
+ /*
+ * "Enable Clone Mode" button
+ */
+
+ create_toggle_clone_mode_button(ctk_gvo);
+
+ ctk_config_set_tooltip(ctk_config, ctk_gvo->toggle_clone_mode_button,
+ __clone_mode_enable_clone_mode_help);
+
+ hbox = gtk_hbox_new(FALSE, 0);
+
+ gtk_box_pack_end(GTK_BOX(hbox), ctk_gvo->toggle_clone_mode_button,
+ FALSE, FALSE, 5);
+
+ gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
+
+
+ /*
+ * Set the initial UI state
+ */
+
+ update_gvo_current_info(ctk_gvo);
+
+ update_gvo_sensitivity(ctk_gvo);
+
+
+ /*
+ * Start listening for events
+ */
+
+ register_for_gvo_events(ctk_gvo);
+
+ /* show the GVO widget */
+
+ gtk_widget_show_all(GTK_WIDGET(ctk_gvo));
+
+ return GTK_WIDGET(ctk_gvo);
+
+} /* ctk_gvo_new() */
/*
- * create_toggle_sdi_output_button() -
+ * create_toggle_clone_mode_button() -
*/
-static void create_toggle_sdi_output_button(CtkGvo *ctk_gvo, gboolean enabled)
+static void create_toggle_clone_mode_button(CtkGvo *ctk_gvo)
{
GtkWidget *label;
GtkWidget *hbox, *hbox2;
GdkPixbuf *pixbuf;
GtkWidget *image = NULL;
GtkWidget *button;
+ gboolean enabled;
button = gtk_toggle_button_new();
- /* create the Enable SDI Output icon */
+ /* create the Enable Clone Mode icon */
pixbuf = gtk_widget_render_icon(button,
GTK_STOCK_EXECUTE,
GTK_ICON_SIZE_BUTTON,
- "Enable SDI Output");
+ "Enable Clone Mode");
if (pixbuf) image = gtk_image_new_from_pixbuf(pixbuf);
- label = gtk_label_new("Enable SDI Output");
+ label = gtk_label_new("Enable Clone Mode");
hbox = gtk_hbox_new(FALSE, 2);
@@ -1752,17 +992,17 @@ static void create_toggle_sdi_output_button(CtkGvo *ctk_gvo, gboolean enabled)
gtk_object_ref(GTK_OBJECT(hbox2));
- ctk_gvo->enable_sdi_output_label = hbox2;
+ ctk_gvo->enable_clone_mode_label = hbox2;
- /* create the Disable SDI Output icon */
+ /* create the Disable Clone Mode icon */
pixbuf = gtk_widget_render_icon(button,
GTK_STOCK_STOP,
GTK_ICON_SIZE_BUTTON,
- "Disable SDI Output");
+ "Disable Clone Mode");
if (pixbuf) image = gtk_image_new_from_pixbuf(pixbuf);
- label = gtk_label_new("Disable SDI Output");
+ label = gtk_label_new("Disable Clone Mode");
hbox = gtk_hbox_new(FALSE, 2);
@@ -1781,602 +1021,587 @@ static void create_toggle_sdi_output_button(CtkGvo *ctk_gvo, gboolean enabled)
gtk_object_ref(GTK_OBJECT(hbox2));
- ctk_gvo->disable_sdi_output_label = hbox2;
+ ctk_gvo->disable_clone_mode_label = hbox2;
- /* Set the initial SDI Output state */
+ /* Set the initial Clone Mode enabled state */
+
+ enabled = (ctk_gvo->lock_owner == NV_CTRL_GVO_LOCK_OWNER_CLONE);
gtk_container_add(GTK_CONTAINER(button),
- enabled ? ctk_gvo->disable_sdi_output_label :
- ctk_gvo->enable_sdi_output_label);
+ enabled ? ctk_gvo->disable_clone_mode_label :
+ ctk_gvo->enable_clone_mode_label);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), enabled);
- ctk_gvo->toggle_sdi_output_button = button;
-
- ctk_gvo->sdi_output_enabled = enabled;
+ ctk_gvo->toggle_clone_mode_button = button;
g_signal_connect(G_OBJECT(button), "toggled",
- G_CALLBACK(toggle_sdi_output_button),
+ G_CALLBACK(clone_mode_button_ui_toggled),
GTK_OBJECT(ctk_gvo));
-} /* create_toggle_sdi_output_button() */
+} /* create_toggle_clone_mode_button() */
/*
- * toggle_sdi_output_button() -
+ * start_menu() - Start the creation of a labled dropdown menu. (Packs
+ * the dropdown label into the table row.
*/
-static void toggle_sdi_output_button(GtkWidget *button, gpointer user_data)
+static GtkWidget *start_menu(const gchar *name, GtkWidget *table,
+ const gint row)
{
- CtkGvo *ctk_gvo = CTK_GVO(user_data);
- gboolean enabled;
- ReturnStatus ret;
- gint val, val2;
-
- enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
+ GtkWidget *menu, *label, *alignment;
- if (enabled) val = NV_CTRL_GVO_DISPLAY_X_SCREEN_ENABLE;
- else val = NV_CTRL_GVO_DISPLAY_X_SCREEN_DISABLE;
+ label = gtk_label_new(name);
+ alignment = gtk_alignment_new(0, 0, 0, 0);
+ gtk_container_add(GTK_CONTAINER(alignment), label);
- NvCtrlSetAttribute(ctk_gvo->handle, NV_CTRL_GVO_DISPLAY_X_SCREEN, val);
-
- /*
- * XXX NV_CTRL_GVO_DISPLAY_X_SCREEN can silently fail if GLX
- * locked GVO output for use by pbuffer(s). Check that the
- * setting actually stuck.
- */
+ gtk_table_attach(GTK_TABLE(table),
+ alignment, 0, 1, row, row+1, GTK_FILL, GTK_FILL,
+ TABLE_PADDING, TABLE_PADDING);
- ret = NvCtrlGetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_DISPLAY_X_SCREEN, &val2);
+ menu = ctk_drop_down_menu_new(CTK_DROP_DOWN_MENU_FLAG_MONOSPACE);
- if ((ret != NvCtrlSuccess) || (val != val2)) {
-
- /*
- * setting did not apply; restore the button to its previous
- * state
- */
-
- g_signal_handlers_block_matched
- (G_OBJECT(button), G_SIGNAL_MATCH_FUNC, 0, 0, NULL,
- G_CALLBACK(toggle_sdi_output_button), NULL);
-
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), !enabled);
+ return menu;
- g_signal_handlers_unblock_matched
- (G_OBJECT(button), G_SIGNAL_MATCH_FUNC, 0, 0, NULL,
- G_CALLBACK(toggle_sdi_output_button), NULL);
+} /* start_menu() */
- // XXX update the status bar; maybe pop up a dialog box?
- return;
- }
-
- post_toggle_sdi_output_button(ctk_gvo, enabled);
-
-} /* toggle_sdi_output_button() */
+/*
+ * finish_menu() - Finish/Finalize a dropdown menu. (Packs the menu in
+ * the table row.)
+ */
-static void post_toggle_sdi_output_button(CtkGvo *ctk_gvo, gboolean enabled)
+static void finish_menu(GtkWidget *menu, GtkWidget *table, const gint row)
{
- GList *children;
- GList *child;
+ ctk_drop_down_menu_finalize(CTK_DROP_DOWN_MENU(menu));
- children = gtk_container_get_children
- (GTK_CONTAINER(ctk_gvo->toggle_sdi_output_button));
+ gtk_table_attach(GTK_TABLE(table), menu, 1, 2, row, row+1,
+ GTK_FILL | GTK_EXPAND, GTK_FILL,
+ TABLE_PADDING, TABLE_PADDING);
+}
- for (child = children; child; child = child->next) {
- gtk_container_remove
- (GTK_CONTAINER(ctk_gvo->toggle_sdi_output_button),
- (GtkWidget *) child->data);
- }
- g_list_free(children);
-
- if (enabled) {
- gtk_container_add(GTK_CONTAINER(ctk_gvo->toggle_sdi_output_button),
- ctk_gvo->disable_sdi_output_label);
+/*
+ * fill_output_video_format_menu() - Populates the output video
+ * format menu.
+ */
- update_gvo_banner_video_output(&ctk_gvo->banner,
- ctk_gvo->output_video_format,
- ctk_gvo->output_data_format);
+static void fill_output_video_format_menu(CtkGvo *ctk_gvo)
+{
+ int i;
+ int width, height;
+ CtkDropDownMenu *dmenu =
+ CTK_DROP_DOWN_MENU(ctk_gvo->output_video_format_menu);
+
+ for (i = 0; videoFormatNames[i].name; i++) {
- update_gvo_current_info(ctk_gvo, NV_CTRL_GVO_LOCK_OWNER_CLONE);
+ /*
+ * runtime check that videoFormatDetails[] and
+ * videoFormatNames[] are in sync
+ */
- } else {
- gtk_container_add(GTK_CONTAINER(ctk_gvo->toggle_sdi_output_button),
- ctk_gvo->enable_sdi_output_label);
+ if (videoFormatDetails[i].format != videoFormatNames[i].format) {
+ nv_error_msg("GVO format tables out of alignment!");
+ return;
+ }
- update_gvo_banner_video_output(&ctk_gvo->banner,
- NV_CTRL_GVO_VIDEO_FORMAT_NONE,
- ctk_gvo->output_data_format);
+ /* check that the current X screen can support the width and height */
- update_gvo_current_info(ctk_gvo, NV_CTRL_GVO_LOCK_OWNER_NONE);
- }
-
-
- ctk_gvo->sdi_output_enabled = enabled;
-
- ctk_config_statusbar_message(ctk_gvo->ctk_config, "SDI Output %s.",
- enabled ? "enabled" : "disabled");
-}
-
-
-
-/*
- * sync_format_changed() -
- */
+ width = videoFormatDetails[i].width;
+ height = videoFormatDetails[i].height;
-static void sync_format_changed(CtkDropDownMenu *menu, gpointer user_data)
-{
- CtkGvo *ctk_gvo = CTK_GVO(user_data);
- gint i, value, sync_source, mode;
- const char *name = "Unknown";
+ /* Don't expose modes bigger than the current X Screen size */
+ if ((width > ctk_gvo->screen_width) ||
+ (height > ctk_gvo->screen_height)) {
+ continue;
+ }
- value = ctk_drop_down_menu_get_current_value(menu);
-
- switch (value) {
- case SYNC_FORMAT_SDI:
- sync_source = NV_CTRL_GVO_SYNC_SOURCE_SDI;
- mode = NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_AUTO;
- break;
- case SYNC_FORMAT_COMP_AUTO:
- sync_source = NV_CTRL_GVO_SYNC_SOURCE_COMPOSITE;
- mode = NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_AUTO;
- break;
- case SYNC_FORMAT_COMP_BI_LEVEL:
- sync_source = NV_CTRL_GVO_SYNC_SOURCE_COMPOSITE;
- mode = NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_BI_LEVEL;
- break;
- case SYNC_FORMAT_COMP_TRI_LEVEL:
- sync_source = NV_CTRL_GVO_SYNC_SOURCE_COMPOSITE;
- mode = NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_TRI_LEVEL;
- break;
- default:
- return;
+ ctk_drop_down_menu_append_item(dmenu,
+ videoFormatNames[i].name,
+ videoFormatNames[i].format);
}
- for (i = 0; syncFormatNames[i].name; i++) {
- if (syncFormatNames[i].format == value) {
- name = syncFormatNames[i].name;
- break;
- }
+ ctk_gvo->has_output_video_formats =
+ ((dmenu->num_entries > 0) ? TRUE : FALSE);
+
+ if (!ctk_gvo->has_output_video_formats) {
+ nv_warning_msg("No GVO video formats will fit the current X screen of "
+ "%d x %d; please create an X screen of atleast "
+ "720 x 487; not exposing GVO page.\n",
+ ctk_gvo->screen_width, ctk_gvo->screen_height);
+
+ ctk_drop_down_menu_append_item
+ (dmenu,
+ "*** X Screen is smaller than 720x487 ***",
+ 0);
}
- ctk_gvo->sync_source = sync_source;
+ /* Trim output video format based on sync mode */
+ trim_output_video_format_menu(ctk_gvo);
- NvCtrlSetAttribute(ctk_gvo->handle, NV_CTRL_GVO_SYNC_SOURCE, sync_source);
- NvCtrlSetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE, mode);
+} /* fill_output_video_format_menu() */
- ctk_config_statusbar_message(ctk_gvo->ctk_config, "Sync Format set to "
- "\"%s\".", name);
-
-} /* sync_format_changed() */
+/**** Initialization Functions ***********************************************/
/*
- * update_input_video_format_text_entry() -
+ * query_init_gvo_state() - Query the initial GVO state so we can setup
+ * the UI correctly.
*/
-static void update_input_video_format_text_entry(CtkGvo *ctk_gvo)
+static gboolean query_init_gvo_state(CtkGvo *ctk_gvo)
{
- gint i;
- const gchar *str;
+ gint val;
+ ReturnStatus ret;
+
+
+ /* Check if this screen supports GVO */
- if (ctk_gvo->sync_mode == NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING) {
- str = "Free Running";
- } else {
- str = "No incoming signal detected";
- for (i = 0; videoFormatNames[i].name; i++) {
- if (videoFormatNames[i].format == ctk_gvo->input_video_format) {
- str = videoFormatNames[i].name;
- }
- }
+ ret = NvCtrlGetAttribute(ctk_gvo->handle, NV_CTRL_GVO_SUPPORTED, &val);
+ if ((ret != NvCtrlSuccess) || (val != NV_CTRL_GVO_SUPPORTED_TRUE)) {
+ /* GVO not available */
+ return FALSE;
}
- gtk_entry_set_text(GTK_ENTRY(ctk_gvo->input_video_format_text_entry), str);
+
+ /* Get this GVO device's capabilities */
-} /* update_input_video_format_text_entry() */
+ ret = NvCtrlGetAttribute(ctk_gvo->handle, NV_CTRL_GVO_CAPABILITIES, &val);
+ if (ret != NvCtrlSuccess) return FALSE;
+ ctk_gvo->caps = val;
+ /* Query the current GVO lock owner (GVO enabled/disabled) */
+ ret = NvCtrlGetAttribute(ctk_gvo->handle, NV_CTRL_GVO_LOCK_OWNER, &val);
+ if (ret != NvCtrlSuccess) return FALSE;
+ ctk_gvo->lock_owner = val;
-/*
- * init_input_video_format_text_entry() -
- */
+ /* Query the sync mode */
-static void init_input_video_format_text_entry(CtkGvo *ctk_gvo)
-{
- ReturnStatus ret;
- gint val;
+ ret = NvCtrlGetAttribute(ctk_gvo->handle, NV_CTRL_GVO_SYNC_MODE, &val);
+ if (ret != NvCtrlSuccess) {
+ val = NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING;
+ }
+ ctk_gvo->sync_mode = val;
- ret = NvCtrlGetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_INPUT_VIDEO_FORMAT, &val);
+ /* Query the current input/output video formats */
+
+ ret = NvCtrlGetAttribute(ctk_gvo->handle, NV_CTRL_GVO_INPUT_VIDEO_FORMAT,
+ &val);
if (ret != NvCtrlSuccess) {
val = NV_CTRL_GVO_VIDEO_FORMAT_NONE;
}
-
ctk_gvo->input_video_format = val;
-
- update_input_video_format_text_entry(ctk_gvo);
-} /* init_input_video_format_text_entry() */
-
+ ret = NvCtrlGetAttribute(ctk_gvo->handle, NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT,
+ &val);
+ if (ret != NvCtrlSuccess) {
+ val = DEFAULT_OUTPUT_VIDEO_FORMAT;
+ }
+ ctk_gvo->output_video_format = val;
+ /* Output data format */
-/*
- * init_composite_termination() -
- */
+ ret = NvCtrlGetAttribute(ctk_gvo->handle, NV_CTRL_GVO_DATA_FORMAT, &val);
+ if (ret != NvCtrlSuccess) {
+ val = DEFAULT_OUTPUT_DATA_FORMAT;
+ }
+ ctk_gvo->output_data_format = val;
-static void init_composite_termination(CtkGvo *ctk_gvo)
-{
- ReturnStatus ret;
- gint val;
+ /* Get the current screen dimensions */
- if (!ctk_gvo->composite_termination_button) return;
+ ctk_gvo->screen_width = NvCtrlGetScreenWidth(ctk_gvo->handle);
+ ctk_gvo->screen_height = NvCtrlGetScreenHeight(ctk_gvo->handle);
- ret = NvCtrlGetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_COMPOSITE_TERMINATION, &val);
- if (ret != NvCtrlSuccess) {
- val = NV_CTRL_GVO_COMPOSITE_TERMINATION_DISABLE;
- }
-
- gtk_toggle_button_set_active
- (GTK_TOGGLE_BUTTON(ctk_gvo->composite_termination_button),
- (val == NV_CTRL_GVO_COMPOSITE_TERMINATION_ENABLE));
+ return TRUE;
-} /* init_composite_termination() */
+} /* query_init_gvo_state() */
/*
- * max_input_video_format_text_entry_length()
+ * query_video_format_details() - initialize the videoFormatDetails[]
+ * table by querying each of refresh rate, width, and height from
+ * NV-CONTROL.
*/
-static int max_input_video_format_text_entry_length(void)
+static void query_video_format_details(CtkGvo *ctk_gvo)
{
- gint i, tmp, max = 0;
+ ReturnStatus ret;
+ gint i, val;
- for (i = 0; videoFormatNames[i].name; i++) {
- tmp = strlen(videoFormatNames[i].name);
- if (max < tmp) max = tmp;
+ for (i = 0; videoFormatDetails[i].format != -1; i++) {
+
+ ret = NvCtrlGetDisplayAttribute(ctk_gvo->handle,
+ videoFormatDetails[i].format,
+ NV_CTRL_GVO_VIDEO_FORMAT_REFRESH_RATE,
+ &val);
+
+ if (ret != NvCtrlSuccess) val = 0;
+
+ videoFormatDetails[i].rate = val;
+
+ ret = NvCtrlGetDisplayAttribute(ctk_gvo->handle,
+ videoFormatDetails[i].format,
+ NV_CTRL_GVO_VIDEO_FORMAT_WIDTH,
+ &val);
+
+ if (ret != NvCtrlSuccess) val = 0;
+
+ videoFormatDetails[i].width = val;
+
+ ret = NvCtrlGetDisplayAttribute(ctk_gvo->handle,
+ videoFormatDetails[i].format,
+ NV_CTRL_GVO_VIDEO_FORMAT_HEIGHT,
+ &val);
+
+ if (ret != NvCtrlSuccess) val = 0;
+
+ videoFormatDetails[i].height = val;
}
- return max;
-
-} /* max_input_video_format_text_entry_length() */
+} /* query_video_format_details() */
/*
- * post_toggle_composite_termination() - Call this function after
- * the composite termination attribute has changed.
+ * register_for_gvo_events() - Configure ctk_gvo object to listen for
+ * GVO related evens.
*/
-static void post_toggle_composite_termination(CtkGvo *ctk_gvo,
- gboolean enabled)
+static void register_for_gvo_events(CtkGvo *ctk_gvo)
{
- /* update the statusbar */
-
- ctk_config_statusbar_message(ctk_gvo->ctk_config,
- "Composite Termination %s.",
- enabled ? "Enabled" : "Disabled");
-
-} /* post_toggle_composite_termination() */
+ g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT),
+ G_CALLBACK(gvo_event_received),
+ (gpointer) ctk_gvo);
+ g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_DATA_FORMAT),
+ G_CALLBACK(gvo_event_received),
+ (gpointer) ctk_gvo);
+ g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_X_SCREEN_PAN_X),
+ G_CALLBACK(gvo_event_received),
+ (gpointer) ctk_gvo);
+
+ g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_X_SCREEN_PAN_Y),
+ G_CALLBACK(gvo_event_received),
+ (gpointer) ctk_gvo);
-/*
- * toggle_composite_termination() - Called when the user clicks
- * on the "Enable Composite Termination" check button.
- */
+ g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
+ CTK_EVENT_NAME(NV_CTRL_GVO_LOCK_OWNER),
+ G_CALLBACK(gvo_event_received),
+ (gpointer) ctk_gvo);
-static void toggle_composite_termination(GtkWidget *button,
- CtkGvo *ctk_gvo)
-{
- gboolean enabled;
-
- enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
+ /* Ask for screen change notify events so we can
+ * know when to reconstruct the output video format drop down
+ */
- NvCtrlSetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_COMPOSITE_TERMINATION,
- enabled ? NV_CTRL_GVO_COMPOSITE_TERMINATION_ENABLE :
- NV_CTRL_GVO_COMPOSITE_TERMINATION_DISABLE);
+ g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
+ "CTK_EVENT_RRScreenChangeNotify",
+ G_CALLBACK(screen_changed_handler),
+ (gpointer) ctk_gvo);
- post_toggle_composite_termination(ctk_gvo, enabled);
+} /* register_for_gvo_events() */
-} /* toggle_composite_termination() */
+/**** User Interface Update Functions ****************************************/
/*
- * detect_input() - if the Detect button is enabled, then enable
- * INPUT_VIDEO_FORMAT_REACQUIRE, make everything else insensitive,
- * switch to the wait cursor, and queue detect_input_done() to be
- * called.
+ * output_video_format_ui_changed() - callback when the user makes a
+ * selection from the output video format menu (from the UI.)
*/
-static void detect_input(GtkToggleButton *togglebutton, CtkGvo *ctk_gvo)
+static void output_video_format_ui_changed(CtkDropDownMenu *menu,
+ gpointer user_data)
{
- gboolean enabled;
+ CtkGvo *ctk_gvo = CTK_GVO(user_data);
- enabled = gtk_toggle_button_get_active(togglebutton);
+ ctk_gvo->output_video_format = ctk_drop_down_menu_get_current_value(menu);
+ ctk_gvo->output_video_format_valid = TRUE;
- if (!enabled) return;
-
- /* grab the server */
+ NvCtrlSetAttribute(ctk_gvo->handle,
+ NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT,
+ ctk_gvo->output_video_format);
+
+ post_output_video_format_changed(ctk_gvo);
- gtk_grab_add(ctk_gvo->input_video_format_detect_button);
+} /* output_video_format_ui_changed() */
- /* change the cursor */
- gdk_window_set_cursor
- ((GTK_WIDGET(ctk_gvo->parent_window))->window,
- ctk_gvo->wait_cursor);
-
- /* make all other widgets insensitive */
- set_gvo_sensitivity(ctk_gvo, FALSE,
- SET_SENSITIVITY_EXCLUDE_DETECT_BUTTON);
-
- /* enable REACQUIRE */
+/*
+ * output_data_format_ui_changed() - callback when the output data format
+ * menu changes
+ */
- NvCtrlSetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE,
- NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_TRUE);
+static void output_data_format_ui_changed(CtkDropDownMenu *menu,
+ gpointer user_data)
+{
+ CtkGvo *ctk_gvo = CTK_GVO(user_data);
- /* update the statusbar */
-
- ctk_config_statusbar_message(ctk_gvo->ctk_config,
- "Detecting incoming signal...");
+ ctk_gvo->output_data_format = ctk_drop_down_menu_get_current_value(menu);
+ ctk_gvo->output_data_format_valid = TRUE;
- /* register the "done" function */
+ NvCtrlSetAttribute(ctk_gvo->handle, NV_CTRL_GVO_DATA_FORMAT,
+ ctk_gvo->output_data_format);
- g_timeout_add(DEFAULT_DETECT_INPUT_TIME_INTERVAL,
- detect_input_done, (gpointer) ctk_gvo);
+ post_output_data_format_changed(ctk_gvo);
-} /* detect_input() */
+} /* output_data_format_ui_changed() */
/*
- * detect_input_done() - done detecting; disable REACQUIRE, make all
- * widgets sensitive again, and probe the new state
+ * x_offset_ui_changed() - Updates the X Server with the current setting of
+ * the spin button.
*/
-static gint detect_input_done(gpointer data)
+static void x_offset_ui_changed(GtkSpinButton *spinbutton, gpointer user_data)
{
- CtkGvo *ctk_gvo = CTK_GVO(data);
-
- /* disable REACQUIRE */
-
- NvCtrlSetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE,
- NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_FALSE);
-
- /* reprobe */
-
- ctk_gvo_probe((gpointer) ctk_gvo);
+ CtkGvo *ctk_gvo = CTK_GVO(user_data);
+ gint val;
- /* un-press the detect button */
+ val = gtk_spin_button_get_value(spinbutton);
- g_signal_handlers_block_by_func
- (G_OBJECT(ctk_gvo->input_video_format_detect_button),
- G_CALLBACK(detect_input),
- (gpointer) ctk_gvo);
+ NvCtrlSetAttribute(ctk_gvo->handle, NV_CTRL_GVO_X_SCREEN_PAN_X, val);
- gtk_toggle_button_set_active
- (GTK_TOGGLE_BUTTON(ctk_gvo->input_video_format_detect_button), FALSE);
+} /* x_offset_ui_changed() */
- g_signal_handlers_unblock_by_func
- (G_OBJECT(ctk_gvo->input_video_format_detect_button),
- G_CALLBACK(detect_input),
- (gpointer) ctk_gvo);
-
- /* update the status bar */
-
- ctk_config_statusbar_message(ctk_gvo->ctk_config,
- "Done detecting incoming signal.");
-
- /* restore sensitivity */
-
- set_gvo_sensitivity(ctk_gvo, TRUE,
- SET_SENSITIVITY_EXCLUDE_DETECT_BUTTON);
- /* restore the cursor */
- gdk_window_set_cursor((GTK_WIDGET(ctk_gvo->parent_window))->window,
- NULL);
+/*
+ * y_offset_ui_changed() - Updates the X Server with the current setting of
+ * the spin button.
+ */
- /* ungrab the server */
+static void y_offset_ui_changed(GtkSpinButton *spinbutton, gpointer user_data)
+{
+ CtkGvo *ctk_gvo = CTK_GVO(user_data);
+ gint val;
- gtk_grab_remove(ctk_gvo->input_video_format_detect_button);
+ val = gtk_spin_button_get_value(spinbutton);
- return FALSE;
-
-} /* detect_input_done() */
-
-
-
+ NvCtrlSetAttribute(ctk_gvo->handle, NV_CTRL_GVO_X_SCREEN_PAN_Y, val);
+
+} /* y_offset_ui_changed() */
-/**************************************************************************/
/*
- * get_video_format_name() - return the name of the given video format
+ * clone_mode_button_ui_toggled() - Updates the X server to enable/disable
+ * clone mode when the UI button is toggled.
*/
-static const char *get_video_format_name(const gint format)
+static void clone_mode_button_ui_toggled(GtkWidget *button, gpointer user_data)
{
- gint i;
+ CtkGvo *ctk_gvo = CTK_GVO(user_data);
+ gboolean enabled;
+ ReturnStatus ret;
+ gint val;
+
+ enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
- for (i = 0; videoFormatNames[i].name; i++) {
- if (videoFormatNames[i].format == format) {
- return videoFormatNames[i].name;
+
+ /*
+ * When enabling clone mode, we must make sure that the output
+ * video format and output data format are something clone mode
+ * can support.
+ */
+
+ if (enabled) {
+ if (!ctk_gvo->output_video_format_valid) {
+ val = ctk_drop_down_menu_get_current_value
+ (CTK_DROP_DOWN_MENU(ctk_gvo->output_video_format_menu));
+ ctk_gvo->output_video_format = val;
+ ctk_gvo->output_video_format_valid = TRUE;
+ NvCtrlSetAttribute(ctk_gvo->handle,
+ NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT,
+ ctk_gvo->output_video_format);
+ }
+ if (!ctk_gvo->output_data_format_valid) {
+ val = ctk_drop_down_menu_get_current_value
+ (CTK_DROP_DOWN_MENU(ctk_gvo->output_data_format_menu));
+ ctk_gvo->output_data_format = val;
+ ctk_gvo->output_data_format_valid = TRUE;
+ NvCtrlSetAttribute(ctk_gvo->handle,
+ NV_CTRL_GVO_DATA_FORMAT,
+ val);
}
}
- return "Unknown";
+ if (enabled) val = NV_CTRL_GVO_DISPLAY_X_SCREEN_ENABLE;
+ else val = NV_CTRL_GVO_DISPLAY_X_SCREEN_DISABLE;
+ NvCtrlSetAttribute(ctk_gvo->handle, NV_CTRL_GVO_DISPLAY_X_SCREEN, val);
-} /* get_video_format_name() */
+ /*
+ * XXX NV_CTRL_GVO_DISPLAY_X_SCREEN can silently fail if GLX
+ * locked GVO output for use by pbuffer(s). Check that the
+ * setting actually stuck.
+ */
+
+ ret = NvCtrlGetAttribute(ctk_gvo->handle,
+ NV_CTRL_GVO_LOCK_OWNER,
+ &ctk_gvo->lock_owner);
+ if ((ret != NvCtrlSuccess) ||
+ (enabled &&
+ (ctk_gvo->lock_owner != NV_CTRL_GVO_LOCK_OWNER_CLONE))) {
+ /*
+ * setting did not apply; restore the button to its previous
+ * state
+ */
+
+ g_signal_handlers_block_matched
+ (G_OBJECT(button), G_SIGNAL_MATCH_FUNC, 0, 0, NULL,
+ G_CALLBACK(clone_mode_button_ui_toggled), NULL);
-/*
- * get_data_format_name() - return the name of the given data format
- */
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), !enabled);
-static const char *get_data_format_name(const gint format)
-{
- gint i;
-
- for (i = 0; dataFormatNames[i].name; i++) {
- if (dataFormatNames[i].format == format) {
- return dataFormatNames[i].name;
- }
+ g_signal_handlers_unblock_matched
+ (G_OBJECT(button), G_SIGNAL_MATCH_FUNC, 0, 0, NULL,
+ G_CALLBACK(clone_mode_button_ui_toggled), NULL);
+
+ // XXX update the status bar; maybe pop up a dialog box?
+ return;
}
+
+ post_clone_mode_button_toggled(ctk_gvo);
- return "Unknown";
+} /* clone_mode_button_ui_toggled() */
-} /* get_data_format_name() */
+/**** Common Update Functions ************************************************/
/*
- * get_video_format_resolution() - return the width and height of the
- * given video format
+ * post_output_video_format_changed() - Makes sure the CPL does the right
+ * things after the output video format has been changed. (by UI interaction
+ * or through an NV-CONTROL event.
+ *
*/
-static void get_video_format_resolution(const gint format, gint *w, gint *h)
+static void post_output_video_format_changed(CtkGvo *ctk_gvo)
{
- gint i;
+ /* Update UI state */
+
+ update_gvo_current_info(ctk_gvo);
+
+ update_offset_spin_button_ranges(ctk_gvo);
- *w = *h = 0;
+ ctk_config_statusbar_message(ctk_gvo->ctk_config,
+ "Output Video Format set to: %s.",
+ ctk_gvo_get_video_format_name
+ (ctk_gvo->output_video_format));
+
+} /* post_output_video_format_changed() */
- for (i = 0; videoFormatDetails[i].format != -1; i++) {
- if (videoFormatDetails[i].format == format) {
- *w = videoFormatDetails[i].width;
- *h = videoFormatDetails[i].height;
- return;
- }
- }
-} /* get_video_format_resolution() */
/*
- * set_gvo_sensitivity() - set the sensitivity of all the GVO widgets
+ * post_output_data_format_changed() - Makes sure the CPL does the right
+ * things after the output data format has been changed (by UI interaction
+ * or through an NV-CONTROL event.
*/
-static void set_gvo_sensitivity(CtkGvo *ctk_gvo,
- gboolean sensitive, guint flags)
+static void post_output_data_format_changed(CtkGvo *ctk_gvo)
{
- gtk_widget_set_sensitive(ctk_gvo->sync_mode_menu, sensitive);
- gtk_widget_set_sensitive(ctk_gvo->output_video_format_menu, sensitive);
- gtk_widget_set_sensitive(ctk_gvo->output_data_format_menu, sensitive);
- gtk_widget_set_sensitive(ctk_gvo->hsync_delay_spin_button, sensitive);
- gtk_widget_set_sensitive(ctk_gvo->vsync_delay_spin_button, sensitive);
-
- if (!(flags & SET_SENSITIVITY_EXCLUDE_ROI_BUTTONS)) {
- gtk_widget_set_sensitive(ctk_gvo->x_offset_spin_button, sensitive);
- gtk_widget_set_sensitive(ctk_gvo->y_offset_spin_button, sensitive);
- }
-
- if (!(flags & SET_SENSITIVITY_EXCLUDE_ENABLE_BUTTON)) {
- gtk_widget_set_sensitive(ctk_gvo->toggle_sdi_output_button, sensitive);
- }
-
- if (!(flags & SET_SENSITIVITY_EXCLUDE_DETECT_BUTTON)) {
- gtk_widget_set_sensitive(ctk_gvo->input_video_format_detect_button,
- sensitive);
- }
-
- if (!sensitive || (sensitive && ctk_gvo->sync_format_sensitive)) {
- gtk_widget_set_sensitive(ctk_gvo->sync_format_menu, sensitive);
- }
+ ctk_config_statusbar_message
+ (ctk_gvo->ctk_config,
+ "Output Data Format set to: %s.",
+ ctk_gvo_get_data_format_name(ctk_gvo->output_data_format));
-} /* set_gvo_sensitivity() */
+} /* post_output_data_format_changed() */
/*
- * get_video_format_details() - initialize the videoFormatDetails[]
- * table by querying each of refresh rate, width, and height from
- * NV-CONTROL.
+ * post_clone_mode_button_toggled() - Makes sure the CPL does the right
+ * things after clone mode is enabled/disabled (by UI interaction or
+ * through an NV-CONTROL event.
*/
-static void get_video_format_details(CtkGvo *ctk_gvo)
+static void post_clone_mode_button_toggled(CtkGvo *ctk_gvo)
{
- ReturnStatus ret;
- gint i, val;
+ GList *children;
+ GList *child;
+ gboolean enabled;
- for (i = 0; videoFormatDetails[i].format != -1; i++) {
-
- ret = NvCtrlGetDisplayAttribute(ctk_gvo->handle,
- videoFormatDetails[i].format,
- NV_CTRL_GVO_VIDEO_FORMAT_REFRESH_RATE,
- &val);
-
- if (ret != NvCtrlSuccess) val = 0;
-
- videoFormatDetails[i].rate = val;
-
- ret = NvCtrlGetDisplayAttribute(ctk_gvo->handle,
- videoFormatDetails[i].format,
- NV_CTRL_GVO_VIDEO_FORMAT_WIDTH,
- &val);
-
- if (ret != NvCtrlSuccess) val = 0;
-
- videoFormatDetails[i].width = val;
-
- ret = NvCtrlGetDisplayAttribute(ctk_gvo->handle,
- videoFormatDetails[i].format,
- NV_CTRL_GVO_VIDEO_FORMAT_HEIGHT,
- &val);
-
- if (ret != NvCtrlSuccess) val = 0;
-
- videoFormatDetails[i].height = val;
+ children = gtk_container_get_children
+ (GTK_CONTAINER(ctk_gvo->toggle_clone_mode_button));
+
+ for (child = children; child; child = child->next) {
+ gtk_container_remove
+ (GTK_CONTAINER(ctk_gvo->toggle_clone_mode_button),
+ (GtkWidget *) child->data);
+ }
+
+ g_list_free(children);
+
+ enabled =
+ (ctk_gvo->lock_owner == NV_CTRL_GVO_LOCK_OWNER_CLONE) ? TRUE : FALSE;
+
+ if (enabled) {
+ gtk_container_add(GTK_CONTAINER(ctk_gvo->toggle_clone_mode_button),
+ ctk_gvo->disable_clone_mode_label);
+ } else {
+ gtk_container_add(GTK_CONTAINER(ctk_gvo->toggle_clone_mode_button),
+ ctk_gvo->enable_clone_mode_label);
}
-} /* get_video_format_details() */
+
+ /* Update UI state */
+ update_gvo_current_info(ctk_gvo);
+
+ update_gvo_sensitivity(ctk_gvo);
+
+ ctk_config_statusbar_message(ctk_gvo->ctk_config, "Clone Mode %s.",
+ enabled ? "enabled" : "disabled");
+
+} /* post_clone_mode_button_toggled() */
-/**************************************************************************/
/*
- * update_gvo_current_info() - Updates the state information to reflect
+ * update_gvo_current_info() - Updates the page's information to reflect
* the GVO device's current state.
+ *
+ * This function must be called when the following have changed:
+ *
+ * ctk_gvo->lock_owner
+ * ctk_gvo->output_video_format
+
*/
-static void update_gvo_current_info(CtkGvo *ctk_gvo, guint lock_owner)
+static void update_gvo_current_info(CtkGvo *ctk_gvo)
{
int width;
int height;
gchar res_string[64], state_string[64];
- gboolean sensitive = FALSE;
- guint flags = 0;
-
- if (!ctk_gvo->current_resolution_label) return;
- if (!ctk_gvo->current_state_label) return;
/* Get the current video format sizes */
- get_video_format_resolution(ctk_gvo->output_video_format, &width, &height);
+ ctk_gvo_get_video_format_resolution(ctk_gvo->output_video_format,
+ &width, &height);
- switch (lock_owner) {
+ switch (ctk_gvo->lock_owner) {
case NV_CTRL_GVO_LOCK_OWNER_NONE:
snprintf(res_string, 64, "Inactive");
snprintf(state_string, 64, "Inactive");
- sensitive = TRUE;
break;
case NV_CTRL_GVO_LOCK_OWNER_CLONE:
snprintf(res_string, 64, "%d x %d", width, height);
snprintf(state_string, 64, "In use by X (Clone mode)");
- flags = SET_SENSITIVITY_EXCLUDE_ENABLE_BUTTON |
- SET_SENSITIVITY_EXCLUDE_ROI_BUTTONS;
break;
case NV_CTRL_GVO_LOCK_OWNER_X_SCREEN:
@@ -2392,97 +1617,32 @@ static void update_gvo_current_info(CtkGvo *ctk_gvo, guint lock_owner)
default:
return;
}
-
- gtk_label_set_text(GTK_LABEL(ctk_gvo->current_resolution_label),
- res_string);
- gtk_label_set_text(GTK_LABEL(ctk_gvo->current_state_label),
- state_string);
-
- set_gvo_sensitivity(ctk_gvo, sensitive, flags);
-
-} /* update_gvo_current_info() */
-
-
-
-/*
- * query_gvo_current_info() - Queries the state of the GVO device
- * from the X server and updates the information on the page.
- */
-
-static void query_gvo_current_info(CtkGvo *ctk_gvo)
-{
- ReturnStatus ret;
- gint lock_owner;
-
- ret = NvCtrlGetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_LOCK_OWNER, &lock_owner);
-
- if (ret == NvCtrlSuccess) {
- update_gvo_current_info(ctk_gvo, lock_owner);
+ if (ctk_gvo->current_resolution_label) {
+ gtk_label_set_text(GTK_LABEL(ctk_gvo->current_resolution_label),
+ res_string);
}
-} /* query_gvo_current_info() */
-
-
-
-/*
- * update_delay_spin_buttons() -
- */
-
-static void update_delay_spin_buttons(CtkGvo *ctk_gvo)
-{
- gint w, h;
-
- get_video_format_resolution(ctk_gvo->input_video_format, &w, &h);
-
- gtk_spin_button_set_range
- (GTK_SPIN_BUTTON(ctk_gvo->hsync_delay_spin_button), 0, w);
- gtk_spin_button_set_range
- (GTK_SPIN_BUTTON(ctk_gvo->vsync_delay_spin_button), 0, h);
-
-} /* update_delay_spin_buttons() */
-
-
+ if (ctk_gvo->current_state_label) {
+ gtk_label_set_text(GTK_LABEL(ctk_gvo->current_state_label),
+ state_string);
+ }
-/*
- * hsync_delay_changed()
- */
+} /* update_gvo_current_info() */
-static void hsync_delay_changed(GtkSpinButton *spinbutton, gpointer user_data)
-{
- CtkGvo *ctk_gvo = CTK_GVO(user_data);
- gint val;
-
- val = gtk_spin_button_get_value(spinbutton);
-
- NvCtrlSetAttribute(ctk_gvo->handle, NV_CTRL_GVO_SYNC_DELAY_PIXELS, val);
-
-} /* hsync_delay_changed() */
/*
- * vsync_delay_changed()
+ * update_offset_spin_button_ranges() - Updates the range of the
+ * offset spin buttons based on the current screen's width/height.
*/
-static void vsync_delay_changed(GtkSpinButton *spinbutton, gpointer user_data)
-{
- CtkGvo *ctk_gvo = CTK_GVO(user_data);
- gint val;
-
- val = gtk_spin_button_get_value(spinbutton);
-
- NvCtrlSetAttribute(ctk_gvo->handle, NV_CTRL_GVO_SYNC_DELAY_LINES, val);
-
-} /* vsync_delay_changed() */
-
-
-
-static void update_offset_spin_buttons(CtkGvo *ctk_gvo)
+static void update_offset_spin_button_ranges(CtkGvo *ctk_gvo)
{
gint w, h, x, y;
- get_video_format_resolution(ctk_gvo->output_video_format, &w, &h);
+ ctk_gvo_get_video_format_resolution(ctk_gvo->output_video_format,
+ &w, &h);
x = ctk_gvo->screen_width - w;
y = ctk_gvo->screen_height - h;
@@ -2492,178 +1652,51 @@ static void update_offset_spin_buttons(CtkGvo *ctk_gvo)
gtk_spin_button_set_range
(GTK_SPIN_BUTTON(ctk_gvo->y_offset_spin_button), 0, y);
-} /* update_delay_spin_buttons() */
-
-
-
-/*
- * x_offset_changed()
- */
-
-static void x_offset_changed(GtkSpinButton *spinbutton, gpointer user_data)
-{
- CtkGvo *ctk_gvo = CTK_GVO(user_data);
- gint val;
-
- val = gtk_spin_button_get_value(spinbutton);
-
- NvCtrlSetAttribute(ctk_gvo->handle, NV_CTRL_GVO_X_SCREEN_PAN_X, val);
-
-} /* x_offset_changed() */
-
-
-
-/*
- * y_offset_changed()
- */
-
-static void y_offset_changed(GtkSpinButton *spinbutton, gpointer user_data)
-{
- CtkGvo *ctk_gvo = CTK_GVO(user_data);
- gint val;
-
- val = gtk_spin_button_get_value(spinbutton);
-
- NvCtrlSetAttribute(ctk_gvo->handle, NV_CTRL_GVO_X_SCREEN_PAN_Y, val);
-
-} /* y_offset_changed() */
+} /* update_offset_spin_button_ranges() */
-/**************************************************************************/
/*
- * ctk_gvo_probe() - query the incoming signal
+ * update_gvo_sensitivity() - Set the sensitivity of the GVO panel's widgets
*/
-gint ctk_gvo_probe(gpointer data)
+static void update_gvo_sensitivity(CtkGvo *ctk_gvo)
{
- ReturnStatus ret;
- gint input, sdi, comp;
- CtkGvo *ctk_gvo = CTK_GVO(data);
+ gboolean sensitive;
- /* query NV_CTRL_GVO_INPUT_VIDEO_FORMAT */
-
- ret = NvCtrlGetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_INPUT_VIDEO_FORMAT, &input);
-
- if (ret != NvCtrlSuccess) {
- input = NV_CTRL_GVO_VIDEO_FORMAT_NONE;
- }
-
- ctk_gvo->input_video_format = input;
+ sensitive = ((ctk_gvo->lock_owner == NV_CTRL_GVO_LOCK_OWNER_NONE) ||
+ (ctk_gvo->lock_owner == NV_CTRL_GVO_LOCK_OWNER_CLONE));
- /* query COMPOSITE_SYNC_INPUT_DETECTED */
+ gtk_widget_set_sensitive(ctk_gvo->clone_mode_frame, sensitive);
- ret = NvCtrlGetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED, &comp);
-
- if (ret != NvCtrlSuccess) {
- comp = NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_FALSE;
- }
-
- /* query SDI_SYNC_INPUT_DETECTED */
+ if (sensitive) {
- ret = NvCtrlGetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED, &sdi);
-
- if (ret != NvCtrlSuccess) {
- sdi = NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_NONE;
- }
-
- /* update the input video format text entry */
-
- update_input_video_format_text_entry(ctk_gvo);
-
- if (!ctk_gvo->sdi_output_enabled) {
+ /* Video & data formats */
- /* update the available SyncModes */
+ sensitive = (ctk_gvo->lock_owner == NV_CTRL_GVO_LOCK_OWNER_NONE);
+ gtk_widget_set_sensitive(ctk_gvo->output_data_format_menu, sensitive);
- update_sync_mode_menu(ctk_gvo, comp, sdi, ctk_gvo->sync_mode);
-
- /* update the available output video formats */
-
- update_output_video_format_menu(ctk_gvo);
- }
-
- /* update whatever data will be needed to change the LED colors */
-
- update_gvo_banner_video_input(&ctk_gvo->banner, sdi, comp);
-
- /* update the range for the sync delay spin buttons */
-
- update_delay_spin_buttons(ctk_gvo);
- update_offset_spin_buttons(ctk_gvo);
-
- return TRUE;
-
-} /* ctk_gvo_probe() */
-
-
-/**************************************************************************/
-
-static void register_for_gvo_events(CtkGvo *ctk_gvo)
-{
- g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
- CTK_EVENT_NAME(NV_CTRL_GVO_SYNC_MODE),
- G_CALLBACK(gvo_event_received),
- (gpointer) ctk_gvo);
+ sensitive = (sensitive && ctk_gvo->has_output_video_formats);
+ gtk_widget_set_sensitive(ctk_gvo->output_video_format_menu, sensitive);
- g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
- CTK_EVENT_NAME(NV_CTRL_GVO_SYNC_SOURCE),
- G_CALLBACK(gvo_event_received),
- (gpointer) ctk_gvo);
-
- g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
- CTK_EVENT_NAME(NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT),
- G_CALLBACK(gvo_event_received),
- (gpointer) ctk_gvo);
-
- g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
- CTK_EVENT_NAME(NV_CTRL_GVO_DATA_FORMAT),
- G_CALLBACK(gvo_event_received),
- (gpointer) ctk_gvo);
+ /* Enable/Disable clone mode button */
- g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
- CTK_EVENT_NAME(NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE),
- G_CALLBACK(gvo_event_received),
- (gpointer) ctk_gvo);
+ sensitive =
+ ((ctk_gvo->lock_owner == NV_CTRL_GVO_LOCK_OWNER_NONE) &&
+ ctk_gvo->has_output_video_formats) ||
+ (ctk_gvo->lock_owner == NV_CTRL_GVO_LOCK_OWNER_CLONE);
+ gtk_widget_set_sensitive(ctk_gvo->toggle_clone_mode_button, sensitive);
+ }
- g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
- CTK_EVENT_NAME(NV_CTRL_GVO_SYNC_DELAY_PIXELS),
- G_CALLBACK(gvo_event_received),
- (gpointer) ctk_gvo);
+} /* update_gvo_sensitivity() */
- g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
- CTK_EVENT_NAME(NV_CTRL_GVO_SYNC_DELAY_LINES),
- G_CALLBACK(gvo_event_received),
- (gpointer) ctk_gvo);
-
- g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
- CTK_EVENT_NAME(NV_CTRL_GVO_X_SCREEN_PAN_X),
- G_CALLBACK(gvo_event_received),
- (gpointer) ctk_gvo);
-
- g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
- CTK_EVENT_NAME(NV_CTRL_GVO_X_SCREEN_PAN_Y),
- G_CALLBACK(gvo_event_received),
- (gpointer) ctk_gvo);
-
- g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
- CTK_EVENT_NAME(NV_CTRL_GVO_DISPLAY_X_SCREEN),
- G_CALLBACK(gvo_event_received),
- (gpointer) ctk_gvo);
- g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
- CTK_EVENT_NAME(NV_CTRL_GVO_COMPOSITE_TERMINATION),
- G_CALLBACK(gvo_event_received),
- (gpointer) ctk_gvo);
- g_signal_connect(G_OBJECT(ctk_gvo->ctk_event),
- CTK_EVENT_NAME(NV_CTRL_GVO_LOCK_OWNER),
- G_CALLBACK(gvo_event_received),
- (gpointer) ctk_gvo);
-}
+/**** Event Handlers *********************************************************/
+/*
+ * gvo_event_received(() - Handles GVO NV-CONTROL events.
+ */
static void gvo_event_received(GtkObject *object,
gpointer arg1,
@@ -2671,35 +1704,37 @@ static void gvo_event_received(GtkObject *object,
{
CtkEventStruct *event_struct = (CtkEventStruct *) arg1;
CtkGvo *ctk_gvo = CTK_GVO(user_data);
- ReturnStatus ret;
- GtkWidget *widget;
+ GtkWidget *widget;
gint attribute = event_struct->attribute;
gint value = event_struct->value;
+ gboolean active;
+
switch (attribute) {
- case NV_CTRL_GVO_SYNC_MODE:
- case NV_CTRL_GVO_SYNC_SOURCE:
- case NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE:
- // XXX implement me
- break;
-
+
case NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT:
widget = ctk_gvo->output_video_format_menu;
g_signal_handlers_block_by_func
(G_OBJECT(widget),
- G_CALLBACK(output_video_format_changed),
+ G_CALLBACK(output_video_format_ui_changed),
(gpointer) ctk_gvo);
+ ctk_gvo->output_video_format = value;
+ validate_output_video_format(ctk_gvo);
+
+ /* Update the dropdown with a reasonable value */
+ if (!ctk_gvo->output_video_format_valid) {
+ value = get_first_available_output_video_format(ctk_gvo);
+ }
ctk_drop_down_menu_set_current_value
(CTK_DROP_DOWN_MENU(widget), value);
-
- post_output_video_format_changed(ctk_gvo, value);
- query_gvo_current_info(ctk_gvo);
-
+
+ post_output_video_format_changed(ctk_gvo);
+
g_signal_handlers_unblock_by_func
(G_OBJECT(widget),
- G_CALLBACK(output_video_format_changed),
+ G_CALLBACK(output_video_format_ui_changed),
(gpointer) ctk_gvo);
break;
@@ -2708,59 +1743,38 @@ static void gvo_event_received(GtkObject *object,
g_signal_handlers_block_by_func
(G_OBJECT(widget),
- G_CALLBACK(output_data_format_changed),
+ G_CALLBACK(output_data_format_ui_changed),
(gpointer) ctk_gvo);
-
+
+ ctk_gvo->output_data_format = value;
+ validate_output_data_format(ctk_gvo);
+
+ /* Update the dropdown with a reasonable value */
+ if (!ctk_gvo->output_data_format_valid) {
+ value = DEFAULT_OUTPUT_DATA_FORMAT;
+ }
ctk_drop_down_menu_set_current_value
(CTK_DROP_DOWN_MENU(widget), value);
-
- post_output_data_format_changed(ctk_gvo, value);
+
+ post_output_data_format_changed(ctk_gvo);
g_signal_handlers_unblock_by_func
(G_OBJECT(widget),
- G_CALLBACK(output_data_format_changed),
+ G_CALLBACK(output_data_format_ui_changed),
(gpointer) ctk_gvo);
break;
-
- case NV_CTRL_GVO_SYNC_DELAY_PIXELS:
- widget = ctk_gvo->hsync_delay_spin_button;
-
- g_signal_handlers_block_by_func(G_OBJECT(widget),
- G_CALLBACK(hsync_delay_changed),
- (gpointer) ctk_gvo);
-
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), value);
-
- g_signal_handlers_unblock_by_func(G_OBJECT(widget),
- G_CALLBACK(hsync_delay_changed),
- (gpointer) ctk_gvo);
- break;
-
- case NV_CTRL_GVO_SYNC_DELAY_LINES:
- widget = ctk_gvo->vsync_delay_spin_button;
-
- g_signal_handlers_block_by_func(G_OBJECT(widget),
- G_CALLBACK(vsync_delay_changed),
- (gpointer) ctk_gvo);
-
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), value);
-
- g_signal_handlers_unblock_by_func(G_OBJECT(widget),
- G_CALLBACK(vsync_delay_changed),
- (gpointer) ctk_gvo);
- break;
-
+
case NV_CTRL_GVO_X_SCREEN_PAN_X:
widget = ctk_gvo->x_offset_spin_button;
g_signal_handlers_block_by_func(G_OBJECT(widget),
- G_CALLBACK(x_offset_changed),
+ G_CALLBACK(x_offset_ui_changed),
(gpointer) ctk_gvo);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), value);
g_signal_handlers_unblock_by_func(G_OBJECT(widget),
- G_CALLBACK(x_offset_changed),
+ G_CALLBACK(x_offset_ui_changed),
(gpointer) ctk_gvo);
break;
@@ -2768,109 +1782,200 @@ static void gvo_event_received(GtkObject *object,
widget = ctk_gvo->y_offset_spin_button;
g_signal_handlers_block_by_func(G_OBJECT(widget),
- G_CALLBACK(y_offset_changed),
+ G_CALLBACK(y_offset_ui_changed),
(gpointer) ctk_gvo);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), value);
g_signal_handlers_unblock_by_func(G_OBJECT(widget),
- G_CALLBACK(y_offset_changed),
+ G_CALLBACK(y_offset_ui_changed),
(gpointer) ctk_gvo);
break;
case NV_CTRL_GVO_LOCK_OWNER:
- update_gvo_current_info(ctk_gvo, value);
- break;
+ widget = ctk_gvo->toggle_clone_mode_button;
- case NV_CTRL_GVO_DISPLAY_X_SCREEN:
-
- /*
- * XXX explicitly re-query this value, since a change may not
- * actually have been successfully applied (if GLX or some other
- * mode already had GVO locked)
- */
+ g_signal_handlers_block_by_func
+ (G_OBJECT(widget),
+ G_CALLBACK(clone_mode_button_ui_toggled),
+ ctk_gvo);
- ret = NvCtrlGetAttribute(ctk_gvo->handle,
- NV_CTRL_GVO_DISPLAY_X_SCREEN, &value);
+ ctk_gvo->lock_owner = value;
+ active = (value != NV_CTRL_GVO_LOCK_OWNER_NONE);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), active);
- if (ret == NvCtrlSuccess) {
+ post_clone_mode_button_toggled(ctk_gvo);
- widget = ctk_gvo->toggle_sdi_output_button;
-
- g_signal_handlers_block_by_func
- (G_OBJECT(widget),
- G_CALLBACK(toggle_sdi_output_button),
- ctk_gvo);
-
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), value);
-
- post_toggle_sdi_output_button(ctk_gvo, value);
-
- g_signal_handlers_unblock_by_func
- (G_OBJECT(widget),
- G_CALLBACK(toggle_sdi_output_button),
- ctk_gvo);
- }
+ g_signal_handlers_unblock_by_func
+ (G_OBJECT(widget),
+ G_CALLBACK(clone_mode_button_ui_toggled),
+ ctk_gvo);
break;
+ }
- case NV_CTRL_GVO_COMPOSITE_TERMINATION:
- widget = ctk_gvo->composite_termination_button;
-
- if (widget) {
- g_signal_handlers_block_by_func
- (G_OBJECT(widget),
- G_CALLBACK(toggle_composite_termination),
- ctk_gvo);
-
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), value);
-
- post_toggle_composite_termination(ctk_gvo, value);
-
- g_signal_handlers_unblock_by_func
- (G_OBJECT(widget),
- G_CALLBACK(toggle_composite_termination),
- ctk_gvo);
- }
- break;
+} /* gvo_event_received(() */
+
+
+
+/*
+ * screen_changed_handler() - Handle XRandR screen size update events.
+ */
+
+static void screen_changed_handler(GtkWidget *widget,
+ XRRScreenChangeNotifyEvent *ev,
+ gpointer data)
+{
+ CtkGvo *ctk_gvo = CTK_GVO(data);
+ CtkDropDownMenu *dmenu;
+ gint val;
+
+ /* Cache the new screen dimensions */
+
+ ctk_gvo->screen_width = ev->width;
+ ctk_gvo->screen_height = ev->height;
+
+ /* Update the output video format drop down menu and reset the list */
+
+ dmenu = CTK_DROP_DOWN_MENU(ctk_gvo->output_video_format_menu);
+
+ /* Get the currently selected value */
+
+ val = ctk_drop_down_menu_get_current_value
+ (CTK_DROP_DOWN_MENU(ctk_gvo->output_video_format_menu));
+
+ /* Reset the drop down menu */
+
+ ctk_drop_down_menu_reset(dmenu);
+
+ /* Fill the menu with the new valid video modes */
+
+ fill_output_video_format_menu(ctk_gvo);
+
+ /* Finalize and load the menu */
+ g_signal_handlers_block_by_func
+ (G_OBJECT(ctk_gvo->output_video_format_menu),
+ G_CALLBACK(output_video_format_ui_changed),
+ (gpointer) ctk_gvo);
+
+ ctk_drop_down_menu_finalize(dmenu);
+
+ /* Set best valid output video format value possible.
+ * Revalidate here since the screen change could cause
+ * the current output video mode to now be valid.
+ */
+
+ validate_output_video_format(ctk_gvo);
+ if (ctk_gvo->output_video_format_valid) {
+ val = ctk_gvo->output_video_format;
}
-}
+ ctk_drop_down_menu_set_current_value
+ (CTK_DROP_DOWN_MENU(ctk_gvo->output_video_format_menu), val);
+
+ g_signal_handlers_unblock_by_func
+ (G_OBJECT(ctk_gvo->output_video_format_menu),
+ G_CALLBACK(output_video_format_ui_changed),
+ (gpointer) ctk_gvo);
+
+ /* Update UI */
+
+ update_gvo_current_info(ctk_gvo);
+
+ update_offset_spin_button_ranges(ctk_gvo);
+
+ update_gvo_sensitivity(ctk_gvo);
+
+} /* screen_changed_handler() */
+
+
+
+/**** Callback Handlers ******************************************************/
+
+
+/*
+ * ctk_gvo_probe_callback() - This function gets called when the
+ * GVO probe occurs so that we can update the state of attributes that
+ * do not emit events.
+ *
+ * These attributes are:
+ *
+ * - NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED
+ * - NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED
+ * - NV_CTRL_GVO_INPUT_VIDEO_FORMAT
+ *
+ */
+
+gint ctk_gvo_probe_callback(gpointer data)
+{
+ CtkGvo *ctk_gvo = CTK_GVO(data);
+ gint old_input_format = ctk_gvo->input_video_format;
+ gint old_sync_mode = ctk_gvo->sync_mode;
+
+ /* Update our copies of some SDI state variables */
+
+ ctk_gvo->input_video_format =
+ CTK_GVO_BANNER(ctk_gvo->banner)->input_video_format;
+
+ ctk_gvo->sync_mode =
+ CTK_GVO_BANNER(ctk_gvo->banner)->sync_mode;
+
+ if ((ctk_gvo->lock_owner == NV_CTRL_GVO_LOCK_OWNER_NONE) &&
+ ((old_input_format != ctk_gvo->input_video_format) ||
+ (old_sync_mode != ctk_gvo->sync_mode))) {
+
+ /* update the available output video formats */
+
+ trim_output_video_format_menu(ctk_gvo);
+ }
+
+ return TRUE;
+
+} /* ctk_gvo_probe_callback() */
-/**************************************************************************/
+/*
+ * ctk_gvo_select() - Called when the ctk_gvo page is selected
+ */
void ctk_gvo_select(GtkWidget *widget)
{
CtkGvo *ctk_gvo = CTK_GVO(widget);
- /* Greb the GVO parent banner */
+ /* Grab the GVO banner */
- gtk_container_add(GTK_CONTAINER(ctk_gvo->banner_box),
- ctk_gvo->banner.widget);
+ ctk_gvo_banner_set_parent(CTK_GVO_BANNER(ctk_gvo->banner),
+ ctk_gvo->banner_box,
+ ctk_gvo_probe_callback, ctk_gvo);
- ctk_config_start_timer(ctk_gvo->ctk_config, (GSourceFunc) ctk_gvo_probe,
- (gpointer) ctk_gvo);
-}
+} /* ctk_gvo_select() */
+/*
+ * ctk_gvo_unselect() - Called when a page other than the ctk_gvo
+ * page is selected and the ctk_gvo page was the last page to be
+ * selected.
+ */
+
void ctk_gvo_unselect(GtkWidget *widget)
{
CtkGvo *ctk_gvo = CTK_GVO(widget);
- /* Return the GVO parent banner */
+ /* Release the GVO banner */
- gtk_container_remove(GTK_CONTAINER(ctk_gvo->banner_box),
- ctk_gvo->banner.widget);
+ ctk_gvo_banner_set_parent(CTK_GVO_BANNER(ctk_gvo->banner),
+ NULL, NULL, NULL);
+
+} /* ctk_gvo_unselect() */
- ctk_config_stop_timer(ctk_gvo->ctk_config, (GSourceFunc) ctk_gvo_probe,
- (gpointer) ctk_gvo);
-}
+/*
+ * ctk_gvo_create_help() - Creates the GVO help page.
+ */
-GtkTextBuffer* ctk_gvo_create_help (GtkTextTagTable *table)
+GtkTextBuffer* ctk_gvo_create_help(GtkTextTagTable *table)
{
GtkTextIter i;
GtkTextBuffer *b;
@@ -2879,11 +1984,45 @@ GtkTextBuffer* ctk_gvo_create_help (GtkTextTagTable *table)
gtk_text_buffer_get_iter_at_offset(b, &i, 0);
- ctk_help_title(b, &i, "GVO (Graphics to Video Out)");
+ ctk_help_title(b, &i, "GVO (Graphics to Video Out) Help");
+ ctk_help_para(b, &i, "This page gives access to general information about "
+ "the SDI device as well as configuration of Clone Mode.");
+
+ ctk_help_heading(b, &i, "General Information");
+ ctk_help_para(b, &i, "This section shows information about the SDI device "
+ "that is associated with the X screen.");
+ ctk_help_heading(b, &i, "Firmware Version");
+ ctk_help_para(b, &i, __general_firmware_version_help);
+ ctk_help_heading(b, &i, "Current SDI Resolution");
+ ctk_help_para(b, &i, __general_current_sdi_resolution_help);
+ ctk_help_heading(b, &i, "Current SDI State");
+ ctk_help_para(b, &i, __general_current_sdi_state_help);
+
+ ctk_help_heading(b, &i, "Clone Mode");
+ ctk_help_para(b, &i, "This section allows configuration and operation "
+ "of the SDI device in Clone Mode.");
+ ctk_help_heading(b, &i, "Video Format");
+ ctk_help_para(b, &i, "%s The current size of the associated X screen "
+ "will limit the available clone mode video formats such "
+ "that only video modes that are smaller than or equal to "
+ "the current X screen size will be available. Also, the "
+ "current Sync Mode may limit available modes when not in "
+ "Free-Running (see Synchronization Options page for more "
+ "information).", __clone_mode_video_format_help);
+ ctk_help_heading(b, &i, "Data Format");
+ ctk_help_para(b, &i, __clone_mode_data_format_help);
+ ctk_help_heading(b, &i, "X Offset");
+ ctk_help_para(b, &i, __clone_mode_x_offset_help);
+ ctk_help_heading(b, &i, "Y Offset");
+ ctk_help_para(b, &i, __clone_mode_y_offset_help);
+ ctk_help_heading(b, &i, "Enable Clone Mode");
+ ctk_help_para(b, &i, "%s Clone mode may only be enabled when the SDI "
+ "device is currently free (It is not being used by other "
+ "modes such as OpenGL, TwinView, or Separate X Screens).",
+ __clone_mode_enable_clone_mode_help);
ctk_help_finish(b);
return b;
-}
-
+} /* ctk_gvo_create_help() */
diff --git a/src/gtk+-2.x/ctkgvo.h b/src/gtk+-2.x/ctkgvo.h
index 30d1367..d2201d7 100644
--- a/src/gtk+-2.x/ctkgvo.h
+++ b/src/gtk+-2.x/ctkgvo.h
@@ -28,6 +28,7 @@
#include "NvCtrlAttributes.h"
#include "ctkconfig.h"
#include "ctkevent.h"
+#include "ctkgvo-banner.h"
G_BEGIN_DECLS
@@ -54,22 +55,6 @@ G_BEGIN_DECLS
typedef struct _CtkGvo CtkGvo;
typedef struct _CtkGvoClass CtkGvoClass;
-typedef struct _CtkGvoBanner CtkGvoBanner;
-
-#define GVO_BANNER_VID1 0
-#define GVO_BANNER_VID2 1
-#define GVO_BANNER_SDI 2
-#define GVO_BANNER_COMP 3
-
-struct _CtkGvoBanner
-{
- GtkWidget *widget;
- GtkWidget *ctk_banner;
-
- guint8 img[4];
- guint state[4];
-};
-
struct _CtkGvo
{
@@ -79,49 +64,60 @@ struct _CtkGvo
GtkWidget *parent_window;
CtkConfig *ctk_config;
CtkEvent *ctk_event;
+
+ /* State */
- GtkWidget *banner_box;
-
- GtkWidget *sync_mode_menu;
- GtkWidget *output_video_format_menu;
- GtkWidget *output_data_format_menu;
-
- GtkWidget *composite_termination_button;
-
- GtkWidget *enable_sdi_output_label;
- GtkWidget *disable_sdi_output_label;
- GtkWidget *toggle_sdi_output_button;
+ gint caps; // Capabilities
- GtkWidget *sync_format_menu;
- GtkWidget *input_video_format_text_entry;
- GtkWidget *input_video_format_detect_button;
+ gint lock_owner;
- GtkWidget *current_resolution_label;
- GtkWidget *current_state_label;
-
gint sync_mode;
- gint sync_source;
gint input_video_format;
+
gint output_video_format;
+ gint valid_output_video_format_mask[2];
+ gboolean has_output_video_formats; // XXX Show show non-valid as gray?
+ gboolean output_video_format_valid; /* If the output video format was
+ changed by another client to
+ something clone mode doesn't
+ support, we should ignore it,
+ but we should make sure that we
+ set the output_video_format when
+ we enable clone mode. */
+
+
gint output_data_format;
+ gboolean output_data_format_valid; /* If the output data format was
+ changed by another client to
+ something clone mode doesn't
+ support, we should ignore it,
+ but we should make sure that we
+ set the output_data_format when
+ we enable clone mode. */
- gint valid_output_video_format_mask[2];
- gint input_video_format_detect_timer;
+ gint screen_width;
+ gint screen_height;
+
+ /* Widgets */
+
+ GtkWidget *banner_box;
+ GtkWidget *banner;
- GdkCursor *wait_cursor;
- CtkGvoBanner banner;
- GtkWidget *hsync_delay_spin_button;
- GtkWidget *vsync_delay_spin_button;
+ GtkWidget *current_resolution_label;
+ GtkWidget *current_state_label;
+
+ GtkWidget *clone_mode_frame;
+
+ GtkWidget *output_video_format_menu;
+ GtkWidget *output_data_format_menu;
GtkWidget *x_offset_spin_button;
GtkWidget *y_offset_spin_button;
- gboolean sync_format_sensitive;
- gboolean sdi_output_enabled;
-
- gint screen_width;
- gint screen_height;
+ GtkWidget *toggle_clone_mode_button;
+ GtkWidget *enable_clone_mode_label;
+ GtkWidget *disable_clone_mode_label;
};
@@ -131,9 +127,23 @@ struct _CtkGvoClass
};
+typedef struct {
+ int format;
+ const char *name;
+} GvoFormatName;
+
+typedef struct {
+ int format;
+ int rate;
+ int width;
+ int height;
+} GvoFormatDetails;
+
+
+
GType ctk_gvo_get_type (void) G_GNUC_CONST;
GtkWidget* ctk_gvo_new (NvCtrlAttributeHandle *,
- GtkWidget *, CtkConfig *, CtkEvent *);
+ CtkConfig *, CtkEvent *);
void ctk_gvo_select (GtkWidget *);
void ctk_gvo_unselect (GtkWidget *);
GtkTextBuffer* ctk_gvo_create_help (GtkTextTagTable *);
@@ -141,6 +151,12 @@ void ctk_gvo_pack_banner_slot (CtkGvoBanner *, gint slot, gint new);
gint ctk_gvo_probe (gpointer data);
+
+const char *ctk_gvo_get_video_format_name(const gint format);
+const char *ctk_gvo_get_data_format_name(const gint format);
+void ctk_gvo_get_video_format_resolution(const gint format, gint *w, gint *h);
+
+
G_END_DECLS
#endif /* __CTK_GVO_H__*/
diff --git a/src/gtk+-2.x/ctkimagesliders.c b/src/gtk+-2.x/ctkimagesliders.c
index 80152a0..820f603 100644
--- a/src/gtk+-2.x/ctkimagesliders.c
+++ b/src/gtk+-2.x/ctkimagesliders.c
@@ -333,6 +333,13 @@ static void scale_value_received(GtkObject *object, gpointer arg1,
break;
case NV_CTRL_IMAGE_SHARPENING:
scale = ctk_image_sliders->image_sharpening;
+ if (event_struct->availability == FALSE) {
+ gtk_widget_set_sensitive(scale, FALSE);
+ gtk_widget_hide(scale);
+ } else if (event_struct->availability == TRUE) {
+ gtk_widget_set_sensitive(scale, TRUE);
+ gtk_widget_show(scale);
+ }
break;
default:
return;
diff --git a/src/gtk+-2.x/ctkopengl.c b/src/gtk+-2.x/ctkopengl.c
index 2d9471e..4efccb7 100644
--- a/src/gtk+-2.x/ctkopengl.c
+++ b/src/gtk+-2.x/ctkopengl.c
@@ -44,8 +44,6 @@ static void post_show_sli_hud_button_toggled(CtkOpenGL *, gboolean);
static void post_xinerama_stereo_button_toggled(CtkOpenGL *, gboolean);
-static void post_force_generic_cpu_toggled(CtkOpenGL *, gboolean);
-
static void post_aa_line_gamma_toggled(CtkOpenGL *, gboolean);
static void allow_flipping_button_toggled(GtkWidget *, gpointer);
@@ -54,8 +52,6 @@ static void force_stereo_button_toggled (GtkWidget *, gpointer);
static void xinerama_stereo_button_toggled (GtkWidget *, gpointer);
-static void force_generic_cpu_toggled (GtkWidget *, gpointer);
-
static void aa_line_gamma_toggled (GtkWidget *, gpointer);
static void show_sli_hud_button_toggled (GtkWidget *, gpointer);
@@ -82,16 +78,6 @@ static const char *__sync_to_vblank_help =
"applied to OpenGL applications that are started after "
"this option is set.";
-static const char *__force_generic_cpu_help =
-"Enable this option to disable use of CPU "
-"specific features such as MMX, SSE, or 3DNOW!. "
-"Use of this option may result in performance "
-"loss, but may be useful in conjunction with "
-"software such as the Valgrind memory "
-"debugger. This option is applied to "
-"OpenGL applications that are started after "
-"this option is set.";
-
static const char *__image_settings_slider_help =
"The Image Settings slider controls the image quality setting.";
@@ -172,7 +158,6 @@ GtkWidget* ctk_opengl_new(NvCtrlAttributeHandle *handle,
NVCTRLAttributeValidValuesRec image_settings_valid;
gint image_settings_value;
gint aa_line_gamma;
- gint force_generic_cpu;
gint show_sli_hud;
ReturnStatus ret_sync_to_vblank;
@@ -181,7 +166,6 @@ GtkWidget* ctk_opengl_new(NvCtrlAttributeHandle *handle,
ReturnStatus ret_xinerama_stereo;
ReturnStatus ret_image_settings;
ReturnStatus ret_aa_line_gama;
- ReturnStatus ret_force_generic_cpu;
ReturnStatus ret_show_sli_hud;
/* Query OpenGL settings */
@@ -213,11 +197,6 @@ GtkWidget* ctk_opengl_new(NvCtrlAttributeHandle *handle,
ret_aa_line_gama = NvCtrlGetAttribute(handle, NV_CTRL_OPENGL_AA_LINE_GAMMA,
&aa_line_gamma);
-
- ret_force_generic_cpu = NvCtrlGetAttribute(handle,
- NV_CTRL_FORCE_GENERIC_CPU,
- &force_generic_cpu);
-
ret_show_sli_hud = NvCtrlGetAttribute(handle, NV_CTRL_SHOW_SLI_HUD,
&show_sli_hud);
@@ -228,7 +207,6 @@ GtkWidget* ctk_opengl_new(NvCtrlAttributeHandle *handle,
(ret_xinerama_stereo != NvCtrlSuccess) &&
(ret_image_settings != NvCtrlSuccess) &&
(ret_aa_line_gama != NvCtrlSuccess) &&
- (ret_force_generic_cpu != NvCtrlSuccess) &&
(ret_show_sli_hud != NvCtrlSuccess)) {
return NULL;
}
@@ -483,38 +461,6 @@ GtkWidget* ctk_opengl_new(NvCtrlAttributeHandle *handle,
ctk_opengl->aa_line_gamma_button = check_button;
}
- /*
- * Force Generic CPU
- */
-
- if (ret_force_generic_cpu == NvCtrlSuccess) {
- label = gtk_label_new("Disable use of enhanced CPU instruction sets");
-
- check_button = gtk_check_button_new();
- gtk_container_add(GTK_CONTAINER(check_button), label);
-
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button),
- force_generic_cpu ==
- NV_CTRL_FORCE_GENERIC_CPU_ENABLE);
-
- gtk_box_pack_start(GTK_BOX(vbox), check_button, FALSE, FALSE, 0);
-
- g_signal_connect(G_OBJECT(check_button), "toggled",
- G_CALLBACK(force_generic_cpu_toggled),
- (gpointer) ctk_opengl);
-
- g_signal_connect(G_OBJECT(ctk_event),
- CTK_EVENT_NAME(NV_CTRL_FORCE_GENERIC_CPU),
- G_CALLBACK(value_changed), (gpointer) ctk_opengl);
-
- ctk_config_set_tooltip(ctk_config, check_button,
- __force_generic_cpu_help);
-
- ctk_opengl->active_attributes |= __FORCE_GENERIC_CPU;
-
- ctk_opengl->force_generic_cpu_button = check_button;
- }
-
if (ret_show_sli_hud == NvCtrlSuccess) {
label = gtk_label_new("Enable SLI Heads-Up-Display");
@@ -591,20 +537,6 @@ static void post_xinerama_stereo_button_toggled(CtkOpenGL *ctk_opengl,
enabled ? "allowed" : "not allowed");
}
-static void post_force_generic_cpu_toggled(CtkOpenGL *ctk_opengl,
- gboolean enabled)
-{
- /*
- * XXX the logic is awkward, but correct: when
- * NV_CTRL_FORCE_GENERIC_CPU is enabled, use of enhanced CPU
- * instructions is disabled, and vice versa.
- */
-
- ctk_config_statusbar_message(ctk_opengl->ctk_config,
- "OpenGL use of enhanced CPU instructions %s.",
- enabled ? "disabled" : "enabled");
-}
-
static void post_aa_line_gamma_toggled(CtkOpenGL *ctk_opengl,
gboolean enabled)
{
@@ -690,31 +622,6 @@ static void xinerama_stereo_button_toggled(GtkWidget *widget,
post_xinerama_stereo_button_toggled(ctk_opengl, enabled);
}
-static void force_generic_cpu_toggled(
- GtkWidget *widget,
- gpointer user_data
-)
-{
- CtkOpenGL *ctk_opengl;
- gboolean enabled;
- ReturnStatus ret;
-
- ctk_opengl = CTK_OPENGL(user_data);
-
- enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
-
- ret = NvCtrlSetAttribute(ctk_opengl->handle,
- NV_CTRL_FORCE_GENERIC_CPU, enabled);
-
- if (ret != NvCtrlSuccess) return;
- post_force_generic_cpu_toggled(ctk_opengl, enabled);
- /*
- * XXX the logic is awkward, but correct: when
- * NV_CTRL_FORCE_GENERIC_CPU is enabled, use of enhanced CPU
- * instructions is disabled, and vice versa.
- */
-}
-
static void aa_line_gamma_toggled(
GtkWidget *widget,
gpointer user_data
@@ -778,11 +685,6 @@ static void value_changed(GtkObject *object, gpointer arg1, gpointer user_data)
func = G_CALLBACK(aa_line_gamma_toggled);
post_aa_line_gamma_toggled(ctk_opengl, event_struct->value);
break;
- case NV_CTRL_FORCE_GENERIC_CPU:
- button = GTK_TOGGLE_BUTTON(ctk_opengl->force_generic_cpu_button);
- func = G_CALLBACK(force_generic_cpu_toggled);
- post_force_generic_cpu_toggled(ctk_opengl, event_struct->value);
- break;
case NV_CTRL_SHOW_SLI_HUD:
button = GTK_TOGGLE_BUTTON(ctk_opengl->show_sli_hud_button);
func = G_CALLBACK(show_sli_hud_button_toggled);
@@ -978,12 +880,6 @@ GtkTextBuffer *ctk_opengl_create_help(GtkTextTagTable *table,
"this option is set.");
}
- if (ctk_opengl->active_attributes & __FORCE_GENERIC_CPU) {
- ctk_help_heading(b, &i, "Disable use of enhanced CPU "
- "instruction sets");
- ctk_help_para(b, &i, __force_generic_cpu_help);
- }
-
if (ctk_opengl->active_attributes & __SHOW_SLI_HUD) {
ctk_help_heading(b, &i, "SLI Heads-Up-Display");
ctk_help_para(b, &i, "This option draws information about the current "
diff --git a/src/gtk+-2.x/ctkopengl.h b/src/gtk+-2.x/ctkopengl.h
index 9b99476..ff37a0c 100644
--- a/src/gtk+-2.x/ctkopengl.h
+++ b/src/gtk+-2.x/ctkopengl.h
@@ -64,7 +64,6 @@ struct _CtkOpenGL
GtkWidget *xinerama_stereo_button;
GtkWidget *image_settings_scale;
GtkWidget *aa_line_gamma_button;
- GtkWidget *force_generic_cpu_button;
GtkWidget *show_sli_hud_button;
unsigned int active_attributes;
diff --git a/src/gtk+-2.x/ctkrandr.c b/src/gtk+-2.x/ctkrandr.c
index 9e394c2..66bccc0 100644
--- a/src/gtk+-2.x/ctkrandr.c
+++ b/src/gtk+-2.x/ctkrandr.c
@@ -537,15 +537,19 @@ GtkWidget* ctk_randr_new(NvCtrlAttributeHandle *handle,
}
{ /* Rotation orientation image */
+ GtkWidget *frame = gtk_frame_new(NULL);
GtkWidget *img_box = gtk_hbox_new(TRUE, 0);
-
- gtk_widget_set_size_request(img_box, 120, 120);
-
+ GtkWidget *hbox = gtk_hbox_new(TRUE, 0);
+ GtkWidget *vbox = gtk_vbox_new(TRUE, 0);
+
gtk_box_pack_start(GTK_BOX(img_box),
GTK_WIDGET(ctk_randr->orientation_image),
FALSE, FALSE, 0);
-
- gtk_box_pack_start(GTK_BOX(hControlBox), img_box, FALSE, FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(frame), img_box);
+ gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);
+ gtk_widget_set_size_request(hbox, 130, 130);
+ gtk_box_pack_start(GTK_BOX(hControlBox), hbox, FALSE, FALSE, 0);
}
{ /* Rotate right button */
diff --git a/src/gtk+-2.x/ctkui.c b/src/gtk+-2.x/ctkui.c
index 25ecdb8..a471985 100644
--- a/src/gtk+-2.x/ctkui.c
+++ b/src/gtk+-2.x/ctkui.c
@@ -44,7 +44,7 @@ char *ctk_get_display(void)
void ctk_main(NvCtrlAttributeHandle **screen_handles, int num_screen_handles,
NvCtrlAttributeHandle **gpu_handles, int num_gpu_handles,
- NvCtrlAttributeHandle **vcsc_handles, int num_vcsc_handles,
+ NvCtrlAttributeHandle **vcs_handles, int num_vcs_handles,
ParsedAttribute *p, ConfigProperties *conf)
{
int i, has_nv_control = FALSE;
@@ -53,7 +53,7 @@ void ctk_main(NvCtrlAttributeHandle **screen_handles, int num_screen_handles,
gtk_window_set_default_icon_list(list);
ctk_window_new(screen_handles, num_screen_handles,
gpu_handles, num_gpu_handles,
- vcsc_handles, num_vcsc_handles,
+ vcs_handles, num_vcs_handles,
p, conf);
for (i = 0; i < num_screen_handles; i++) {
diff --git a/src/gtk+-2.x/ctkvcsc.c b/src/gtk+-2.x/ctkvcs.c
index 8a35fff..5b4c157 100644
--- a/src/gtk+-2.x/ctkvcsc.c
+++ b/src/gtk+-2.x/ctkvcs.c
@@ -31,47 +31,47 @@
#include "ctkimage.h"
-#include "ctkvcsc.h"
+#include "ctkvcs.h"
#include "ctkevent.h"
#include "ctkhelp.h"
#include "ctkutils.h"
-GType ctk_vcsc_get_type(void)
+GType ctk_vcs_get_type(void)
{
- static GType ctk_vcsc_type = 0;
+ static GType ctk_vcs_type = 0;
- if (!ctk_vcsc_type) {
- static const GTypeInfo ctk_vcsc_info = {
- sizeof (CtkVcscClass),
+ if (!ctk_vcs_type) {
+ static const GTypeInfo ctk_vcs_info = {
+ sizeof (CtkVcsClass),
NULL, /* base_init */
NULL, /* base_finalize */
NULL, /* class_init */
NULL, /* class_finalize */
NULL, /* class_data */
- sizeof(CtkVcsc),
+ sizeof(CtkVcs),
0, /* n_preallocs */
NULL, /* instance_init */
};
- ctk_vcsc_type = g_type_register_static
- (GTK_TYPE_VBOX, "CtkVcsc", &ctk_vcsc_info, 0);
+ ctk_vcs_type = g_type_register_static
+ (GTK_TYPE_VBOX, "CtkVcs", &ctk_vcs_info, 0);
}
- return ctk_vcsc_type;
+ return ctk_vcs_type;
}
/*
- * CTK VCSC (Visual Computing System Controller) widget creation
+ * CTK VCS (Visual Computing System) widget creation
*
*/
-GtkWidget* ctk_vcsc_new(NvCtrlAttributeHandle *handle,
+GtkWidget* ctk_vcs_new(NvCtrlAttributeHandle *handle,
CtkConfig *ctk_config)
{
GObject *object;
- CtkVcsc *ctk_object;
+ CtkVcs *ctk_object;
GtkWidget *label;
GtkWidget *vbox;
GtkWidget *hbox;
@@ -143,8 +143,8 @@ GtkWidget* ctk_vcsc_new(NvCtrlAttributeHandle *handle,
/* now, create the object */
- object = g_object_new(CTK_TYPE_VCSC, NULL);
- ctk_object = CTK_VCSC(object);
+ object = g_object_new(CTK_TYPE_VCS, NULL);
+ ctk_object = CTK_VCS(object);
/* cache the attribute handle */
@@ -156,7 +156,7 @@ GtkWidget* ctk_vcsc_new(NvCtrlAttributeHandle *handle,
/* banner */
- banner = ctk_banner_image_new(BANNER_ARTWORK_VCSC);
+ banner = ctk_banner_image_new(BANNER_ARTWORK_VCS);
gtk_box_pack_start(GTK_BOX(ctk_object), banner, FALSE, FALSE, 0);
/*
@@ -170,7 +170,7 @@ GtkWidget* ctk_vcsc_new(NvCtrlAttributeHandle *handle,
hbox = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
- label = gtk_label_new("VCSC Information");
+ label = gtk_label_new("VCS Information");
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
hseparator = gtk_hseparator_new();
@@ -212,10 +212,10 @@ GtkWidget* ctk_vcsc_new(NvCtrlAttributeHandle *handle,
/*
- * VCSC help screen
+ * VCS help screen
*/
-GtkTextBuffer *ctk_vcsc_create_help(GtkTextTagTable *table,
- CtkVcsc *ctk_object)
+GtkTextBuffer *ctk_vcs_create_help(GtkTextTagTable *table,
+ CtkVcs *ctk_object)
{
GtkTextIter i;
GtkTextBuffer *b;
@@ -224,28 +224,27 @@ GtkTextBuffer *ctk_vcsc_create_help(GtkTextTagTable *table,
gtk_text_buffer_get_iter_at_offset(b, &i, 0);
- ctk_help_title(b, &i, "VCSC (Visual Computing System Controller) Help");
+ ctk_help_title(b, &i, "VCS (Visual Computing System) Help");
ctk_help_heading(b, &i, "Product Name");
- ctk_help_para(b, &i, "This is the product name of the VCSC system.");
+ ctk_help_para(b, &i, "This is the product name of the VCS.");
ctk_help_heading(b, &i, "Serial Number");
- ctk_help_para(b, &i, "This is the unique serial number of the VCSC "
- "system.");
+ ctk_help_para(b, &i, "This is the unique serial number of the VCS.");
ctk_help_heading(b, &i, "Build Date");
- ctk_help_para(b, &i, "This is the date the VCSC system was build, "
+ ctk_help_para(b, &i, "This is the date the VCS was build, "
"shown in a 'week.year' format");
ctk_help_heading(b, &i, "Product ID");
- ctk_help_para(b, &i, "This identifies the VCSC configuration.");
+ ctk_help_para(b, &i, "This identifies the VCS configuration.");
ctk_help_heading(b, &i, "Firmware Version");
ctk_help_para(b, &i, "This is the firmware version currently running on "
- "the VCSC system.");
+ "the VCS.");
ctk_help_heading(b, &i, "Hardware Version");
- ctk_help_para(b, &i, "This is the hardware version of the VCSC system.");
+ ctk_help_para(b, &i, "This is the hardware version of the VCS.");
ctk_help_finish(b);
diff --git a/src/gtk+-2.x/ctkvcsc.h b/src/gtk+-2.x/ctkvcs.h
index b05a985..120ee10 100644
--- a/src/gtk+-2.x/ctkvcsc.h
+++ b/src/gtk+-2.x/ctkvcs.h
@@ -22,56 +22,56 @@
*
*/
-#ifndef __CTK_VCSC_H__
-#define __CTK_VCSC_H__
+#ifndef __CTK_VCS_H__
+#define __CTK_VCS_H__
#include "ctkevent.h"
#include "ctkconfig.h"
G_BEGIN_DECLS
-#define CTK_TYPE_VCSC (ctk_vcsc_get_type())
+#define CTK_TYPE_VCS (ctk_vcs_get_type())
-#define CTK_VCSC(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), CTK_TYPE_VCSC, \
- CtkVcsc))
+#define CTK_VCS(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), CTK_TYPE_VCS, \
+ CtkVcs))
-#define CTK_VCSC_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), CTK_TYPE_VCSC, \
- CtkVcscClass))
+#define CTK_VCS_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), CTK_TYPE_VCS, \
+ CtkVcsClass))
-#define CTK_IS_VCSC(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CTK_TYPE_VCSC))
+#define CTK_IS_VCS(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CTK_TYPE_VCS))
-#define CTK_IS_VCSC_CLASS(class) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), CTK_TYPE_VCSC))
+#define CTK_IS_VCS_CLASS(class) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), CTK_TYPE_VCS))
-#define CTK_VCSC_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), CTK_TYPE_VCSC, \
- CtkVcscClass))
+#define CTK_VCS_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), CTK_TYPE_VCS, \
+ CtkVcsClass))
-typedef struct _CtkVcsc
+typedef struct _CtkVcs
{
GtkVBox parent;
CtkConfig *ctk_config;
NvCtrlAttributeHandle *handle;
-} CtkVcsc;
+} CtkVcs;
-typedef struct _CtkVcscClass
+typedef struct _CtkVcsClass
{
GtkVBoxClass parent_class;
-} CtkVcscClass;
+} CtkVcsClass;
-GType ctk_vcsc_get_type (void) G_GNUC_CONST;
-GtkWidget* ctk_vcsc_new (NvCtrlAttributeHandle *, CtkConfig *);
+GType ctk_vcs_get_type (void) G_GNUC_CONST;
+GtkWidget* ctk_vcs_new (NvCtrlAttributeHandle *, CtkConfig *);
-GtkTextBuffer *ctk_vcsc_create_help(GtkTextTagTable *,
- CtkVcsc *);
+GtkTextBuffer *ctk_vcs_create_help(GtkTextTagTable *,
+ CtkVcs *);
G_END_DECLS
-#endif /* __CTK_VCSC_H__ */
+#endif /* __CTK_VCS_H__ */
diff --git a/src/gtk+-2.x/ctkwindow.c b/src/gtk+-2.x/ctkwindow.c
index 2de713e..84f8f48 100644
--- a/src/gtk+-2.x/ctkwindow.c
+++ b/src/gtk+-2.x/ctkwindow.c
@@ -38,6 +38,7 @@
#include "ctkframelock.h"
#include "ctkgvo.h"
+#include "ctkgvo-sync.h"
#include "ctkgvo-csc.h"
#include "ctkconfig.h"
@@ -53,7 +54,7 @@
#include "ctkthermal.h"
#include "ctkpowermizer.h"
#include "ctkclocks.h"
-#include "ctkvcsc.h"
+#include "ctkvcs.h"
#include "ctkpowersavings.h"
#include "ctkdisplaydevice-crt.h"
@@ -233,9 +234,9 @@ static void help_button_toggled(GtkToggleButton *button, gpointer user_data)
if (enabled) {
if (ctk_window->ctk_help == NULL) {
ctk_window->ctk_help = ctk_help_new(GTK_WIDGET(button),
- ctk_window->help_tag_table);
+ ctk_window->help_tag_table);
ctk_help_set_page(CTK_HELP(ctk_window->ctk_help),
- ctk_window->help_text_buffer);
+ ctk_window->help_text_buffer);
}
gtk_widget_show_all(ctk_window->ctk_help);
} else {
@@ -257,7 +258,6 @@ static void tree_selection_changed(GtkTreeSelection *selection,
GtkTreeIter iter;
CtkWindow *ctk_window = CTK_WINDOW(user_data);
GtkTreeModel *model = GTK_TREE_MODEL(ctk_window->tree_store);
- gchar *str;
GtkWidget *widget;
GtkTextBuffer *help;
@@ -267,7 +267,6 @@ static void tree_selection_changed(GtkTreeSelection *selection,
if (!gtk_tree_selection_get_selected(selection, &model, &iter))
return;
- gtk_tree_model_get(model, &iter, CTK_WINDOW_LABEL_COLUMN, &str, -1);
gtk_tree_model_get(model, &iter, CTK_WINDOW_WIDGET_COLUMN, &widget, -1);
gtk_tree_model_get(model, &iter, CTK_WINDOW_HELP_COLUMN, &help, -1);
gtk_tree_model_get(model, &iter, CTK_WINDOW_SELECT_WIDGET_FUNC_COLUMN,
@@ -373,8 +372,8 @@ GtkWidget *ctk_window_new(NvCtrlAttributeHandle **screen_handles,
gint num_screen_handles,
NvCtrlAttributeHandle **gpu_handles,
gint num_gpu_handles,
- NvCtrlAttributeHandle **vcsc_handles,
- gint num_vcsc_handles,
+ NvCtrlAttributeHandle **vcs_handles,
+ gint num_vcs_handles,
ParsedAttribute *p, ConfigProperties *conf)
{
GObject *object;
@@ -705,10 +704,10 @@ GtkWidget *ctk_window_new(NvCtrlAttributeHandle **screen_handles,
"Antialiasing Settings", NULL, NULL, NULL);
}
+
/* gvo (Graphics To Video Out) */
- child = ctk_gvo_new(screen_handle, GTK_WIDGET(ctk_window),
- ctk_config, ctk_event);
+ child = ctk_gvo_new(screen_handle, ctk_config, ctk_event);
if (child) {
GtkWidget *gvo_parent = child;
GtkTreeIter child_iter;
@@ -717,12 +716,26 @@ GtkWidget *ctk_window_new(NvCtrlAttributeHandle **screen_handles,
"Graphics to Video Out", NULL,
ctk_gvo_select, ctk_gvo_unselect);
- /* add GVO sub-pages */
+ /* GVO Sync options */
+
+ child = ctk_gvo_sync_new(screen_handle, GTK_WIDGET(ctk_window),
+ ctk_config, ctk_event,
+ CTK_GVO(gvo_parent));
+ if (child) {
+ help = ctk_gvo_sync_create_help(tag_table,
+ CTK_GVO_SYNC(child));
+ add_page(child, help, ctk_window, &child_iter, NULL,
+ "Synchronization Options", NULL,
+ ctk_gvo_sync_select, ctk_gvo_sync_unselect);
+ }
+
+ /* GVO color space conversion */
child = ctk_gvo_csc_new(screen_handle, ctk_config, ctk_event,
CTK_GVO(gvo_parent));
if (child) {
- add_page(child, NULL, ctk_window, &child_iter, NULL,
+ help = ctk_gvo_csc_create_help(tag_table, CTK_GVO_CSC(child));
+ add_page(child, help, ctk_window, &child_iter, NULL,
"Color Space Conversion", NULL,
ctk_gvo_csc_select, ctk_gvo_csc_unselect);
}
@@ -832,50 +845,50 @@ GtkWidget *ctk_window_new(NvCtrlAttributeHandle **screen_handles,
tag_table, data);
}
- /* add the per-vcsc (e.g. Quadro Plex) entries into the tree model */
+ /* add the per-vcs (e.g. Quadro Plex) entries into the tree model */
- for (i = 0; i < num_vcsc_handles; i++) {
+ for (i = 0; i < num_vcs_handles; i++) {
GtkTreeIter iter;
- gchar *vcsc_product_name;
- gchar *vcsc_name;
+ gchar *vcs_product_name;
+ gchar *vcs_name;
GtkWidget *child;
ReturnStatus ret;
- NvCtrlAttributeHandle *vcsc_handle = vcsc_handles[i];
+ NvCtrlAttributeHandle *vcs_handle = vcs_handles[i];
- if (!vcsc_handle) continue;
+ if (!vcs_handle) continue;
- /* create the vcsc entry name */
+ /* create the vcs entry name */
- ret = NvCtrlGetStringDisplayAttribute(vcsc_handle, 0,
+ ret = NvCtrlGetStringDisplayAttribute(vcs_handle, 0,
NV_CTRL_STRING_VCSC_PRODUCT_NAME,
- &vcsc_product_name);
- if (ret == NvCtrlSuccess && vcsc_product_name) {
- vcsc_name = g_strdup_printf("VCSC %d - (%s)",
- NvCtrlGetTargetId(vcsc_handle),
- vcsc_product_name);
+ &vcs_product_name);
+ if (ret == NvCtrlSuccess && vcs_product_name) {
+ vcs_name = g_strdup_printf("VCS %d - (%s)",
+ NvCtrlGetTargetId(vcs_handle),
+ vcs_product_name);
} else {
- vcsc_name = g_strdup_printf("VCSC %d - (Unknown)",
- NvCtrlGetTargetId(vcsc_handle));
+ vcs_name = g_strdup_printf("VCS %d - (Unknown)",
+ NvCtrlGetTargetId(vcs_handle));
}
- if (!vcsc_name) continue;
+ if (!vcs_name) continue;
/* create the object for receiving NV-CONTROL events */
- ctk_event = CTK_EVENT(ctk_event_new(vcsc_handle));
+ ctk_event = CTK_EVENT(ctk_event_new(vcs_handle));
- /* create the vcsc entry */
+ /* create the vcs entry */
gtk_tree_store_append(ctk_window->tree_store, &iter, NULL);
gtk_tree_store_set(ctk_window->tree_store, &iter,
- CTK_WINDOW_LABEL_COLUMN, vcsc_name, -1);
- child = ctk_vcsc_new(vcsc_handle, ctk_config);
+ CTK_WINDOW_LABEL_COLUMN, vcs_name, -1);
+ child = ctk_vcs_new(vcs_handle, ctk_config);
gtk_object_ref(GTK_OBJECT(child));
gtk_tree_store_set(ctk_window->tree_store, &iter,
CTK_WINDOW_WIDGET_COLUMN, child, -1);
gtk_tree_store_set(ctk_window->tree_store, &iter,
CTK_WINDOW_HELP_COLUMN,
- ctk_gpu_create_help(tag_table), -1);
+ ctk_vcs_create_help(tag_table, CTK_VCS(child)), -1);
gtk_tree_store_set(ctk_window->tree_store, &iter,
CTK_WINDOW_CONFIG_FILE_ATTRIBUTES_FUNC_COLUMN,
NULL, -1);
@@ -1042,6 +1055,12 @@ static GtkWidget *create_quit_dialog(CtkWindow *ctk_window)
gtk_container_add(GTK_CONTAINER(alignment), label);
gtk_box_pack_start(GTK_BOX(hbox), alignment, FALSE, FALSE, 0);
+ /* Prevent the dialog from being deleted when closed */
+
+ g_signal_connect(G_OBJECT(dialog), "delete-event",
+ G_CALLBACK(gtk_widget_hide_on_delete),
+ (gpointer) dialog);
+
return dialog;
} /* create_quit_dialog() */
diff --git a/src/gtk+-2.x/ctkxvideo.c b/src/gtk+-2.x/ctkxvideo.c
index 2bd57c1..5f5ff6a 100644
--- a/src/gtk+-2.x/ctkxvideo.c
+++ b/src/gtk+-2.x/ctkxvideo.c
@@ -64,6 +64,13 @@ static const char *__xv_texture_brightness_help =
"The Video Texture Brightness slider controls "
"the brightness level for the Texture Xv Adaptor.";
+static const char *__xv_texture_hue_help =
+"The Video Texture Hue slider controls "
+"the hue level for the Texture Xv Adaptor.";
+
+static const char *__xv_texture_saturation_help =
+"The Video Texture Saturation slider controls "
+"the saturation level for the Texture Xv Adaptor.";
static const char *__xv_blitter_sync_to_vblank_help =
"The Video Blitter Sync To VBlank checkbox "
@@ -155,8 +162,10 @@ static void xv_sync_to_display_radio_button_enabled_add(CtkXVideo *ctk_xvideo,
#define __XV_TEXTURE_SYNC_TO_VBLANK (1 << 5)
#define __XV_TEXTURE_CONTRAST (1 << 6)
#define __XV_TEXTURE_BRIGHTNESS (1 << 7)
-#define __XV_BLITTER_SYNC_TO_VBLANK (1 << 8)
-#define __XV_SYNC_TO_DISPLAY (1 << 9)
+#define __XV_TEXTURE_SATURATION (1 << 8)
+#define __XV_TEXTURE_HUE (1 << 9)
+#define __XV_BLITTER_SYNC_TO_VBLANK (1 << 10)
+#define __XV_SYNC_TO_DISPLAY (1 << 11)
@@ -596,6 +605,18 @@ GtkWidget* ctk_xvideo_new(NvCtrlAttributeHandle *handle,
__xv_texture_contrast_help,
NV_CTRL_ATTR_XV_TEXTURE_CONTRAST,
__XV_TEXTURE_CONTRAST);
+
+ ctk_xvideo->texture_hue =
+ create_slider(ctk_xvideo, vbox, button, "Hue",
+ __xv_texture_hue_help,
+ NV_CTRL_ATTR_XV_TEXTURE_HUE,
+ __XV_TEXTURE_HUE);
+
+ ctk_xvideo->texture_saturation =
+ create_slider(ctk_xvideo, vbox, button, "Saturation",
+ __xv_texture_saturation_help,
+ NV_CTRL_ATTR_XV_TEXTURE_SATURATION,
+ __XV_TEXTURE_SATURATION);
}
@@ -607,20 +628,22 @@ GtkWidget* ctk_xvideo_new(NvCtrlAttributeHandle *handle,
gtk_box_pack_start(GTK_BOX(object), frame, FALSE, FALSE, 0);
vbox = gtk_vbox_new(FALSE, 5);
- ctk_xvideo->xv_sync_to_display_button_box = vbox;
gtk_container_set_border_width(GTK_CONTAINER(vbox), FRAME_PADDING);
gtk_container_add(GTK_CONTAINER(frame), vbox);
ctk_xvideo->blitter_sync_to_blank =
create_check_button(ctk_xvideo,
- ctk_xvideo->xv_sync_to_display_button_box,
- button,
- "Sync to VBlank on display device",
+ vbox,
+ button,
+ "Sync to VBlank",
__xv_blitter_sync_to_vblank_help,
NV_CTRL_ATTR_XV_BLITTER_SYNC_TO_VBLANK,
__XV_BLITTER_SYNC_TO_VBLANK);
-
- /* Sync to display selection */
+
+ }
+
+ /* Sync to display selection */
+ if (xv_texture_present || xv_blitter_present) {
ret = NvCtrlGetAttribute(handle,
NV_CTRL_XV_SYNC_TO_DISPLAY,
&sync_mask);
@@ -635,19 +658,25 @@ GtkWidget* ctk_xvideo_new(NvCtrlAttributeHandle *handle,
int i, n, current = -1, mask;
char *name, *type;
gchar *name_str;
+ frame = gtk_frame_new("Sync to this display device");
+ gtk_box_pack_start(GTK_BOX(object), frame, FALSE, FALSE, 0);
+ vbox = gtk_vbox_new(FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), FRAME_PADDING);
+ gtk_container_add(GTK_CONTAINER(frame), vbox);
+ ctk_xvideo->xv_sync_to_display_button_box = vbox;
for (n=0, i = 0; i < 24; i++) {
-
+
mask = 1 << i;
if (!(enabled & mask)) continue;
/* get the name of the display device */
-
+
ret = NvCtrlGetStringDisplayAttribute(handle, mask,
- NV_CTRL_STRING_DISPLAY_DEVICE_NAME,
- &name);
-
+ NV_CTRL_STRING_DISPLAY_DEVICE_NAME,
+ &name);
+
if ((ret != NvCtrlSuccess) || (!name)) {
name = g_strdup("Unknown");
}
@@ -659,27 +688,28 @@ GtkWidget* ctk_xvideo_new(NvCtrlAttributeHandle *handle,
name_str = g_strdup_printf("%s (%s)", name, type);
XFree(name);
free(type);
-
+
if (n==0) {
prev_radio = NULL;
} else {
- prev_radio = radio[n-1];
- }
+ prev_radio = radio[n-1];
+ }
radio[n] = xv_sync_to_display_radio_button_add(ctk_xvideo,
- prev_radio, name_str,
- mask, n);
+ prev_radio,
+ name_str,
+ mask, n);
g_free(name_str);
ctk_config_set_tooltip(ctk_config, radio[n],
__xv_sync_to_display_help);
-
+
if (mask == sync_mask) {
current = n;
}
-
+
n++;
ctk_xvideo->active_attributes |= __XV_SYNC_TO_DISPLAY;
}
-
+
g_signal_connect(G_OBJECT(ctk_event),
CTK_EVENT_NAME(NV_CTRL_XV_SYNC_TO_DISPLAY),
G_CALLBACK(xv_sync_to_display_update_received),
@@ -689,10 +719,10 @@ GtkWidget* ctk_xvideo_new(NvCtrlAttributeHandle *handle,
G_CALLBACK(nv_ctrl_enabled_displays),
(gpointer) ctk_xvideo);
sensitize_radio_buttons(ctk_xvideo);
-
+
if (current != -1)
xv_sync_to_display_update_radio_buttons(ctk_xvideo, current);
-
+
}
}
}
@@ -840,6 +870,8 @@ static void slider_changed(GtkAdjustment *adjustment, gpointer user_data)
case NV_CTRL_ATTR_XV_OVERLAY_HUE: str = "Overlay Hue"; break;
case NV_CTRL_ATTR_XV_TEXTURE_CONTRAST: str = "Texture Contrast"; break;
case NV_CTRL_ATTR_XV_TEXTURE_BRIGHTNESS: str = "Texture Brightness"; break;
+ case NV_CTRL_ATTR_XV_TEXTURE_HUE: str = "Texture Hue"; break;
+ case NV_CTRL_ATTR_XV_TEXTURE_SATURATION: str = "Texture Saturation"; break;
default:
return;
@@ -923,14 +955,13 @@ static void check_button_toggled(GtkWidget *widget, gpointer user_data)
switch (attribute) {
case NV_CTRL_ATTR_XV_TEXTURE_SYNC_TO_VBLANK:
str = "Texture Sync To VBlank"; break;
- case NV_CTRL_ATTR_XV_BLITTER_SYNC_TO_VBLANK: {
- str = "Blitter Sync To VBlank";
- sensitize_radio_buttons(ctk_xvideo);
- break;
- }
+ case NV_CTRL_ATTR_XV_BLITTER_SYNC_TO_VBLANK:
+ str = "Blitter Sync To VBlank"; break;
+
default:
return;
}
+ sensitize_radio_buttons(ctk_xvideo);
post_check_button_toggled(ctk_xvideo, str, enabled);
} /* check_button_toggled() */
@@ -952,11 +983,18 @@ static void sensitize_radio_buttons(CtkXVideo *ctk_xvideo)
int i;
gboolean enabled;
- if (!ctk_xvideo->blitter_sync_to_blank) return;
-
- enabled = gtk_toggle_button_get_active
- (GTK_TOGGLE_BUTTON(ctk_xvideo->blitter_sync_to_blank));
+ if (!ctk_xvideo->blitter_sync_to_blank &&
+ !ctk_xvideo->texture_sync_to_blank) return;
+ enabled = FALSE;
+ if (ctk_xvideo->blitter_sync_to_blank) {
+ enabled |= gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON(ctk_xvideo->blitter_sync_to_blank));
+ }
+ if (ctk_xvideo->texture_sync_to_blank) {
+ enabled |= gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON(ctk_xvideo->texture_sync_to_blank));
+ }
for (i = 0; i < 24; i++) {
GtkWidget *b = ctk_xvideo->xv_sync_to_display_buttons[i];
if (!b) continue;
@@ -1041,7 +1079,14 @@ static void reset_defaults(GtkButton *button, gpointer user_data)
reset_slider(ctk_xvideo, ctk_xvideo->texture_brightness,
NV_CTRL_ATTR_XV_TEXTURE_BRIGHTNESS);
-
+
+ reset_slider(ctk_xvideo, ctk_xvideo->texture_hue,
+ NV_CTRL_ATTR_XV_TEXTURE_HUE);
+
+ reset_slider(ctk_xvideo, ctk_xvideo->texture_saturation,
+ NV_CTRL_ATTR_XV_TEXTURE_SATURATION);
+
+
reset_check_button(ctk_xvideo, ctk_xvideo->blitter_sync_to_blank,
NV_CTRL_ATTR_XV_BLITTER_SYNC_TO_VBLANK);
@@ -1102,7 +1147,17 @@ GtkTextBuffer *ctk_xvideo_create_help(GtkTextTagTable *table,
ctk_help_heading(b, &i, "Video Texture Brightness");
ctk_help_para(b, &i, __xv_texture_brightness_help);
}
-
+
+ if (ctk_xvideo->active_attributes & __XV_TEXTURE_HUE) {
+ ctk_help_heading(b, &i, "Video Texture Hue");
+ ctk_help_para(b, &i, __xv_texture_hue_help);
+ }
+
+ if (ctk_xvideo->active_attributes & __XV_TEXTURE_SATURATION) {
+ ctk_help_heading(b, &i, "Video Texture Saturation");
+ ctk_help_para(b, &i, __xv_texture_saturation_help);
+ }
+
if (ctk_xvideo->active_attributes & __XV_BLITTER_SYNC_TO_VBLANK) {
ctk_help_heading(b, &i, "Video Blitter Sync To VBlank");
ctk_help_para(b, &i, __xv_blitter_sync_to_vblank_help);
diff --git a/src/gtk+-2.x/ctkxvideo.h b/src/gtk+-2.x/ctkxvideo.h
index 04f87f0..0e2015c 100644
--- a/src/gtk+-2.x/ctkxvideo.h
+++ b/src/gtk+-2.x/ctkxvideo.h
@@ -65,6 +65,8 @@ struct _CtkXVideo
GtkWidget *overlay_hue;
GtkWidget *texture_contrast;
GtkWidget *texture_brightness;
+ GtkWidget *texture_hue;
+ GtkWidget *texture_saturation;
GtkWidget *texture_sync_to_blank;
GtkWidget *blitter_sync_to_blank;
GtkWidget *xv_sync_to_display_buttons[24];
diff --git a/src/image_data/HOWTO-ADD-IMAGES b/src/image_data/HOWTO-ADD-IMAGES
index d54df70..903cf84 100644
--- a/src/image_data/HOWTO-ADD-IMAGES
+++ b/src/image_data/HOWTO-ADD-IMAGES
@@ -9,4 +9,4 @@ If I have a png, how do I build it into nvidia-settings?
- add to the BannerArtworkType enum in image.h
- include foo_pixdata.h in ctkbanner.c
- add an entry to the ArtworkTable[] in ctkbanner.c:select_artwork()
-
+ - add an entry to the .../image_data/Makefile.inc
diff --git a/src/image_data/Makefile.inc b/src/image_data/Makefile.inc
index 63cd23d..0a9707e 100644
--- a/src/image_data/Makefile.inc
+++ b/src/image_data/Makefile.inc
@@ -74,8 +74,9 @@ EXTRA_DIST += \
rotation_pixdata.h \
sdi_pixdata.h \
solaris_pixdata.h \
- vcsc_pixdata.h \
- xvideo_pixdata.h
+ vcs_pixdata.h \
+ xvideo_pixdata.h \
+ sdi_shared_sync_bnc_pixdata.h
dist_list::
@ echo $(SRC) $(EXTRA_DIST)
diff --git a/src/image_data/image.h b/src/image_data/image.h
index d6cbda7..59e90aa 100644
--- a/src/image_data/image.h
+++ b/src/image_data/image.h
@@ -62,10 +62,11 @@ typedef enum {
BANNER_ARTWORK_SOLARIS,
BANNER_ARTWORK_THERMAL,
BANNER_ARTWORK_TV,
- BANNER_ARTWORK_VCSC,
+ BANNER_ARTWORK_VCS,
BANNER_ARTWORK_X,
BANNER_ARTWORK_XVIDEO,
BANNER_ARTWORK_INVALID,
+ BANNER_ARTWORK_SDI_SHARED_SYNC_BNC,
} BannerArtworkType;
diff --git a/src/image_data/rotation_orientation_horiz.h b/src/image_data/rotation_orientation_horiz.h
index 01c6dfd..eda5baf 100644
--- a/src/image_data/rotation_orientation_horiz.h
+++ b/src/image_data/rotation_orientation_horiz.h
@@ -1,1156 +1,722 @@
-/* GIMP RGB C-Source image dump 1-byte-run-length-encoded (...) */
-
-#include "image.h"
-
-static const nv_image_t rotation_orientation_horiz_image = {
- 120, 90, 3, 0,
- "\377\0\0\0\363\0\0\0\35\7\15\20V\220\272t\277\366v\300\365x\301\365y\301"
- "\365{\302\365~\303\364\200\303\364\200\304\364\202\305\364\205\305\363\206"
- "\306\363\210\307\363\212\307\363\214\310\362\215\310\362\217\311\362\220"
- "\311\362\222\312\362\224\312\361\225\313\361\226\313\361\227\314\361\231"
- "\314\361\232\315\361\233\315\361\234\315\360\235\316\360\202\236\316\360"
- "\1\237\316\360\202\240\317\360\210\241\317\360\202\240\317\360\1\237\316"
- "\360\202\236\316\3607\235\316\360\234\315\360\233\315\361\232\315\361\231"
- "\314\361\227\314\361\226\313\361\225\313\361\224\312\361\222\312\362\220"
- "\311\362\217\311\362\215\310\362\214\310\362\212\307\363\210\307\363\206"
- "\306\363\205\305\363\202\305\364\200\304\364\200\303\364~\303\364{\302\365"
- "y\301\365x\301\365v\300\365t\277\366q\276\366o\276\366m\275\366k\274\367"
- "i\273\367g\273\367d\272\367b\271\370_\270\370]\270\370[\267\371Y\266\371"
- "W\265\371U\265\371R\264\372P\263\372M\262\372K\261\373H\260\373F\260\373"
- "D\257\373A\256\374?\255\374=\254\374:\253\3758\253\3756\252\3753\251\376"
- "\2141\250\376\2%\200\300\3\13\21\204\0\0\0\26V\220\272s\277\366u\300\365"
- "w\300\365y\301\365{\302\365~\303\364\177\303\364\200\304\364\202\305\364"
- "\205\305\363\206\306\363\210\307\363\212\307\363\214\310\362\215\310\362"
- "\217\311\362\221\311\362\222\312\362\224\313\361\226\313\361\227\314\361"
- "\202\231\314\361\6\233\315\361\234\315\360\235\316\360\236\316\360\237\316"
- "\360\240\317\360\202\241\317\360\2\242\317\360\243\320\360\210\243\320\357"
- "\2\243\320\360\242\317\360\202\241\317\360\6\240\317\360\237\316\360\236"
- "\316\360\235\316\360\234\315\360\233\315\361\202\231\314\3610\227\314\361"
- "\226\313\361\224\313\361\222\312\362\221\311\362\217\311\362\215\310\362"
- "\214\310\362\212\307\363\210\307\363\206\306\363\205\305\363\202\305\364"
- "\200\304\364\177\303\364~\303\364{\302\365y\301\365w\300\365u\300\365s\277"
- "\366q\276\366o\275\366l\275\366j\274\367h\273\367f\272\367c\271\370a\271"
- "\370_\270\370]\267\370Z\267\371X\266\371U\265\371S\264\372Q\263\372N\262"
- "\372L\262\372J\261\373H\260\373E\257\373C\256\374A\256\374>\255\374;\254"
- "\3759\253\3756\252\3754\251\375\2151\250\376\1%\200\300\204\0\0\0!r\277\366"
- "t\277\365v\300\365y\301\365{\302\365}\302\364\177\303\364\200\304\364\202"
- "\305\364\204\305\363\206\306\363\210\307\363\212\307\363\214\310\362\216"
- "\310\362\217\311\362\221\312\362\223\312\362\224\313\361\226\313\361\230"
- "\314\361\231\314\361\233\315\361\234\315\360\235\316\360\236\316\360\240"
- "\317\360\241\317\360\242\317\360\243\320\360\243\320\357\244\320\357\245"
- "\320\357\212\246\321\357<\245\320\357\244\320\357\243\320\357\243\320\360"
- "\242\317\360\241\317\360\240\317\360\236\316\360\235\316\360\234\315\360"
- "\233\315\361\231\314\361\230\314\361\226\313\361\224\313\361\223\312\362"
- "\221\312\362\217\311\362\216\310\362\214\310\362\212\307\363\210\307\363"
- "\206\306\363\204\305\363\202\305\364\200\304\364\177\303\364}\302\364{\302"
- "\365y\301\365v\300\365t\277\365r\277\366p\276\366n\275\366l\274\367i\274"
- "\367g\273\367d\272\367b\271\370`\270\370^\270\370[\267\371Y\266\371W\265"
- "\371U\265\371R\264\372P\263\372M\262\372K\261\373H\260\373F\260\373C\257"
- "\374A\256\374?\255\374<\254\374:\253\3757\252\3755\252\3753\251\376\2151"
- "\250\376\204\0\0\0\37t\277\366v\300\365x\301\365z\301\365|\302\364~\303\364"
- "\200\304\364\202\304\364\204\305\363\206\306\363\210\307\363\212\307\363"
- "\214\310\362\216\310\362\217\311\362\221\312\362\223\312\362\225\313\361"
- "\226\313\361\230\314\361\232\315\361\234\315\360\235\316\360\236\316\360"
- "\240\317\360\241\317\360\242\317\360\243\320\357\244\320\357\245\320\357"
- "\246\321\357\202\247\321\357\1\250\321\357\202\250\322\357\204\251\322\357"
- "\202\250\322\357\1\250\321\357\202\247\321\357:\246\321\357\245\320\357\244"
- "\320\357\243\320\357\242\317\360\241\317\360\240\317\360\236\316\360\235"
- "\316\360\234\315\360\232\315\361\230\314\361\226\313\361\225\313\361\223"
- "\312\362\221\312\362\217\311\362\216\310\362\214\310\362\212\307\363\210"
- "\307\363\206\306\363\204\305\363\202\304\364\200\304\364~\303\364|\302\364"
- "z\301\365x\301\365v\300\365t\277\366q\276\366o\276\366m\275\366j\274\367"
- "h\273\367f\272\367d\272\370b\271\370_\270\370]\267\370Z\267\371X\266\371"
- "U\265\371S\264\372Q\263\372N\262\372L\262\372J\261\373G\260\373E\257\373"
- "B\256\374@\255\374>\255\374;\254\3759\253\3756\252\3754\251\376\2151\250"
- "\376\204\0\0\0\33u\300\365w\300\365y\301\365{\302\365~\303\364\200\303\364"
- "\201\304\364\203\305\363\205\306\363\207\306\363\212\307\363\214\310\362"
- "\215\310\362\217\311\362\221\312\362\223\312\362\225\313\361\226\313\361"
- "\231\314\361\232\315\361\234\315\360\236\316\360\237\316\360\241\317\360"
- "\242\317\360\243\320\357\244\320\357\202\246\321\357\4\250\321\357\250\322"
- "\357\251\322\357\252\322\357\202\253\322\357\206\253\323\356\202\253\322"
- "\357\4\252\322\357\251\322\357\250\322\357\250\321\357\202\246\321\3577\244"
- "\320\357\243\320\357\242\317\360\241\317\360\237\316\360\236\316\360\234"
- "\315\360\232\315\361\231\314\361\226\313\361\225\313\361\223\312\362\221"
- "\312\362\217\311\362\215\310\362\214\310\362\212\307\363\207\306\363\205"
- "\306\363\203\305\363\201\304\364\200\303\364~\303\364{\302\365y\301\365w"
- "\300\365u\300\365s\277\366q\276\366n\275\366l\274\367i\274\367g\273\367e"
- "\272\367b\271\370`\270\370^\270\370[\267\371Y\266\371W\265\371T\264\372R"
- "\264\372P\263\372M\262\372K\261\373H\260\373F\257\373C\257\374A\256\374>"
- "\255\374;\254\3759\253\3757\252\3754\251\3752\251\376\2141\250\376\204\0"
- "\0\0\40v\300\365y\301\365{\302\365}\302\364\177\303\364\200\304\364\202\305"
- "\364\205\305\363\207\306\363\211\307\363\213\307\362\215\310\362\217\311"
- "\362\221\312\362\223\312\362\225\313\361\227\314\361\231\314\361\233\315"
- "\361\234\315\360\236\316\360\240\317\360\241\317\360\243\320\360\244\320"
- "\357\246\321\357\247\321\357\250\321\357\251\322\357\252\322\357\253\322"
- "\357\254\323\356\203\255\323\356\206\256\324\356\203\255\323\356<\254\323"
- "\356\253\322\357\252\322\357\251\322\357\250\321\357\247\321\357\246\321"
- "\357\244\320\357\243\320\360\241\317\360\240\317\360\236\316\360\234\315"
- "\360\233\315\361\231\314\361\227\314\361\225\313\361\223\312\362\221\312"
- "\362\217\311\362\215\310\362\213\307\362\211\307\363\207\306\363\205\305"
- "\363\202\305\364\200\304\364\177\303\364}\302\364{\302\365y\301\365v\300"
- "\365t\277\365q\276\366o\276\366m\275\366k\274\367h\273\367f\272\367d\272"
- "\370b\271\370_\270\370]\267\370Z\267\371X\266\371U\265\371R\264\372P\263"
- "\372N\262\372K\261\373I\261\373F\260\373D\257\373B\256\374?\255\374=\254"
- "\374:\253\3758\253\3755\252\3753\251\376\2141\250\376\204\0\0\0\35x\301\365"
- "z\301\365|\302\364~\303\364\200\304\364\202\304\364\204\305\363\206\306\363"
- "\211\307\363\212\307\363\214\310\362\217\311\362\221\311\362\223\312\362"
- "\225\313\361\227\314\361\231\314\361\233\315\361\234\315\360\236\316\360"
- "\240\317\360\242\317\360\243\320\357\245\320\357\246\321\357\250\321\357"
- "\251\322\357\253\322\357\253\323\356\202\255\323\356\2\256\324\356\257\324"
- "\356\203\260\324\356\204\261\325\356\203\260\324\356\2\257\324\356\256\324"
- "\356\202\255\323\3569\253\323\356\253\322\357\251\322\357\250\321\357\246"
- "\321\357\245\320\357\243\320\357\242\317\360\240\317\360\236\316\360\234"
- "\315\360\233\315\361\231\314\361\227\314\361\225\313\361\223\312\362\221"
- "\311\362\217\311\362\214\310\362\212\307\363\210\307\363\206\306\363\204"
- "\305\363\202\304\364\200\304\364~\303\364|\302\364z\301\365x\301\365u\300"
- "\365s\277\366q\276\366o\275\366l\274\367i\274\367g\273\367d\272\367b\271"
- "\370`\270\370]\270\370[\267\371Y\266\371V\265\371T\264\372Q\263\372O\263"
- "\372M\262\372J\261\373H\260\373E\257\373C\256\374@\255\374>\255\374;\254"
- "\3759\253\3756\252\3754\251\376\2141\250\376\204\0\0\0\33y\301\365{\302\365"
- "~\303\364\200\303\364\201\304\364\203\305\363\205\306\363\210\307\363\212"
- "\307\363\214\310\362\217\311\362\221\311\362\222\312\362\224\313\361\226"
- "\313\361\231\314\361\233\315\361\234\315\360\236\316\360\241\317\360\242"
- "\317\360\243\320\357\246\321\357\247\321\357\250\322\357\252\322\357\253"
- "\323\356\202\255\323\356\4\257\324\356\260\324\356\261\325\356\262\325\356"
- "\202\263\325\356\206\263\325\355\202\263\325\356\4\262\325\356\261\325\356"
- "\260\324\356\257\324\356\202\255\323\3568\253\323\356\252\322\357\250\322"
- "\357\247\321\357\246\321\357\243\320\357\242\317\360\241\317\360\236\316"
- "\360\234\315\360\233\315\361\231\314\361\226\313\361\224\313\361\222\312"
- "\362\221\311\362\217\311\362\214\310\362\212\307\363\207\306\363\205\306"
- "\363\203\305\363\201\304\364\200\303\364~\303\364{\302\365y\301\365v\300"
- "\365t\277\365r\277\366o\276\366m\275\366k\274\367h\273\367f\272\367d\272"
- "\370a\271\370_\270\370\\\267\371Z\266\371X\266\371U\265\371R\264\372P\263"
- "\372M\262\372K\261\373H\260\373F\257\373C\257\374A\256\374>\255\374<\254"
- "\3749\253\3757\252\3754\251\3752\251\376\2131\250\376\204\0\0\0!z\301\365"
- "|\302\364\177\303\364\200\304\364\202\305\364\205\305\363\207\306\363\211"
- "\307\363\214\310\362\216\310\362\220\311\362\222\312\362\224\313\361\226"
- "\313\361\230\314\361\232\315\361\234\315\360\236\316\360\241\317\360\242"
- "\317\360\244\320\357\246\321\357\250\321\357\251\322\357\253\322\357\254"
- "\323\356\255\323\356\257\324\356\260\324\356\261\325\356\263\325\356\263"
- "\325\355\264\326\355\202\265\326\355\206\266\326\355\202\265\326\355>\264"
- "\326\355\263\325\355\263\325\356\261\325\356\260\324\356\257\324\356\255"
- "\323\356\254\323\356\253\322\357\251\322\357\250\321\357\246\321\357\244"
- "\320\357\242\317\360\241\317\360\236\316\360\234\315\360\232\315\361\230"
- "\314\361\226\313\361\224\313\361\222\312\362\220\311\362\216\310\362\214"
- "\310\362\211\307\363\207\306\363\205\305\363\202\305\364\200\304\364\177"
- "\303\364|\302\364z\301\365x\301\365u\300\365s\277\366q\276\366n\275\366l"
- "\274\367i\274\367g\273\367d\272\367b\271\370_\270\370]\270\370Z\267\371X"
- "\266\371U\265\371S\264\372P\263\372N\262\372L\262\372I\261\373G\260\373D"
- "\257\373B\256\374?\255\374=\254\374:\253\3758\253\3755\252\3753\251\376\213"
- "1\250\376\204\0\0\0!{\302\365~\303\364\200\303\364\201\304\364\204\305\363"
- "\206\306\363\210\307\363\212\307\363\214\310\362\217\311\362\221\312\362"
- "\224\312\361\226\313\361\230\314\361\232\315\361\234\315\360\236\316\360"
- "\240\317\360\242\317\360\244\320\357\246\321\357\250\321\357\251\322\357"
- "\253\323\356\255\323\356\256\324\356\260\324\356\261\325\356\263\325\356"
- "\264\326\355\265\326\355\266\326\355\267\327\355\203\270\327\355\204\271"
- "\327\355\203\270\327\355>\267\327\355\266\326\355\265\326\355\264\326\355"
- "\263\325\356\261\325\356\260\324\356\256\324\356\255\323\356\253\323\356"
- "\251\322\357\250\321\357\246\321\357\244\320\357\242\317\360\240\317\360"
- "\236\316\360\234\315\360\232\315\361\230\314\361\226\313\361\224\312\361"
- "\221\312\362\217\311\362\214\310\362\212\307\363\210\307\363\206\306\363"
- "\204\305\363\201\304\364\200\303\364~\303\364{\302\365y\301\365v\300\365"
- "t\277\365q\276\366o\276\366l\275\366j\274\367h\273\367e\272\367c\271\370"
- "`\270\370^\270\370\\\267\371Y\266\371W\265\371T\264\372R\264\372O\263\372"
- "M\262\372J\261\373H\260\373E\257\373C\256\374@\255\374>\255\374;\254\375"
- "9\253\3756\252\3754\251\376\2131\250\376\204\0\0\0\36|\302\364~\303\364\200"
- "\304\364\202\305\364\205\305\363\207\306\363\212\307\363\214\310\362\216"
- "\310\362\220\311\362\223\312\362\225\313\361\227\314\361\231\314\361\234"
- "\315\360\236\316\360\240\317\360\242\317\360\243\320\357\246\321\357\250"
- "\321\357\252\322\357\253\323\356\255\323\356\257\324\356\260\324\356\262"
- "\325\356\263\325\355\265\326\355\266\326\355\202\270\327\355\3\271\327\355"
- "\272\327\355\272\330\355\206\273\330\354\3\272\330\355\272\327\355\271\327"
- "\355\202\270\327\355;\266\326\355\265\326\355\263\325\355\262\325\356\260"
- "\324\356\257\324\356\255\323\356\253\323\356\252\322\357\250\321\357\246"
- "\321\357\243\320\357\242\317\360\240\317\360\236\316\360\234\315\360\231"
- "\314\361\227\314\361\225\313\361\223\312\362\220\311\362\216\310\362\214"
- "\310\362\212\307\363\207\306\363\205\305\363\202\305\364\200\304\364~\303"
- "\364|\302\364z\301\365w\300\365u\300\365s\277\366p\276\366n\275\366k\274"
- "\367i\273\367g\273\367d\272\370b\271\370_\270\370]\267\370Z\266\371X\266"
- "\371U\265\371R\264\372P\263\372M\262\372K\261\373H\260\373F\257\373C\257"
- "\374A\256\374>\255\374;\254\3759\253\3756\252\3754\251\376\2131\250\376\204"
- "\0\0\0\"~\303\364\200\303\364\201\304\364\204\305\363\206\306\363\210\307"
- "\363\213\307\362\215\310\362\217\311\362\221\312\362\224\312\361\226\313"
- "\361\231\314\361\233\315\361\235\316\360\237\316\360\241\317\360\243\320"
- "\357\246\321\357\250\321\357\251\322\357\253\323\356\255\323\356\257\324"
- "\356\261\325\356\263\325\356\264\326\355\265\326\355\267\327\355\270\327"
- "\355\272\327\355\272\330\355\274\330\354\275\330\354\202\275\331\354\204"
- "\276\331\354\202\275\331\354@\275\330\354\274\330\354\272\330\355\272\327"
- "\355\270\327\355\267\327\355\265\326\355\264\326\355\263\325\356\261\325"
- "\356\257\324\356\255\323\356\253\323\356\251\322\357\250\321\357\246\321"
- "\357\243\320\357\241\317\360\237\316\360\235\316\360\233\315\361\231\314"
- "\361\226\313\361\224\312\361\221\312\362\217\311\362\215\310\362\213\307"
- "\362\210\307\363\206\306\363\204\305\363\201\304\364\200\303\364~\303\364"
- "{\302\365y\301\365v\300\365t\277\366q\276\366o\275\366l\275\366i\274\367"
- "g\273\367d\272\367b\271\370_\270\370]\270\370Z\267\371X\266\371U\265\371"
- "S\264\372P\263\372N\262\372K\261\373I\261\373F\260\373D\257\373A\256\374"
- "?\255\374<\254\3749\253\3757\252\3754\251\3752\251\376\2121\250\376\204\0"
- "\0\0!~\303\364\200\304\364\202\305\364\205\305\363\207\306\363\212\307\363"
- "\214\310\362\216\310\362\221\311\362\223\312\362\225\313\361\227\314\361"
- "\232\315\361\234\315\360\236\316\360\241\317\360\243\320\360\245\320\357"
- "\247\321\357\251\322\357\253\323\356\255\323\356\257\324\356\261\325\356"
- "\263\325\356\265\326\355\266\326\355\270\327\355\271\327\355\272\330\355"
- "\274\330\354\275\331\354\276\331\354\202\277\331\354\1\300\332\354\204\301"
- "\332\354\1\300\332\354\202\277\331\354?\276\331\354\275\331\354\274\330\354"
- "\272\330\355\271\327\355\270\327\355\266\326\355\265\326\355\263\325\356"
- "\261\325\356\257\324\356\255\323\356\253\323\356\251\322\357\247\321\357"
- "\245\320\357\243\320\360\241\317\360\236\316\360\234\315\360\232\315\361"
- "\227\314\361\225\313\361\223\312\362\221\311\362\216\310\362\214\310\362"
- "\212\307\363\207\306\363\205\305\363\202\305\364\200\304\364~\303\364|\302"
- "\364y\301\365w\300\365t\277\365r\277\366o\276\366m\275\366j\274\367h\273"
- "\367e\272\367c\271\370`\270\370^\270\370[\267\371Y\266\371V\265\371T\264"
- "\372Q\263\372O\263\372L\262\372J\261\373G\260\373D\257\373B\256\374?\255"
- "\374=\254\374:\253\3758\253\3755\252\3753\251\376\2121\250\376\204\0\0\0"
- "!\177\303\364\201\304\364\203\305\363\205\306\363\210\307\363\212\307\363"
- "\215\310\362\217\311\362\221\312\362\224\313\361\226\313\361\231\314\361"
- "\233\315\361\236\316\360\240\317\360\242\317\360\244\320\357\246\321\357"
- "\250\322\357\253\322\357\255\323\356\257\324\356\261\325\356\263\325\356"
- "\265\326\355\267\327\355\270\327\355\272\327\355\274\330\354\275\331\354"
- "\276\331\354\277\331\354\301\332\354\202\302\332\354\206\303\333\353\202"
- "\302\332\354?\301\332\354\277\331\354\276\331\354\275\331\354\273\330\354"
- "\272\327\355\270\327\355\267\327\355\265\326\355\263\325\356\261\325\356"
- "\257\324\356\255\323\356\253\322\357\250\322\357\246\321\357\244\320\357"
- "\242\317\360\240\317\360\236\316\360\233\315\361\231\314\361\226\313\361"
- "\224\313\361\221\312\362\217\311\362\215\310\362\212\307\363\210\307\363"
- "\205\306\363\203\305\363\201\304\364\177\303\364}\302\364z\301\365x\301\365"
- "u\300\365s\277\366p\276\366n\275\366k\274\367i\273\367f\272\367d\272\370"
- "a\271\370_\270\370\\\267\371Z\266\371W\265\371U\265\371R\264\372P\263\372"
- "M\262\372J\261\373H\260\373E\257\373C\256\374@\255\374>\255\374;\254\375"
- "8\253\3756\252\3753\251\376\2121\250\376\204\0\0\0!\200\303\364\202\304\364"
- "\204\305\363\207\306\363\211\307\363\214\310\362\216\310\362\220\311\362"
- "\223\312\362\225\313\361\227\314\361\232\315\361\234\315\360\236\316\360"
- "\241\317\360\243\320\357\246\321\357\250\321\357\252\322\357\254\323\356"
- "\256\324\356\260\324\356\263\325\356\265\326\355\267\327\355\270\327\355"
- "\272\330\355\274\330\354\275\331\354\277\331\354\301\332\354\302\332\354"
- "\303\333\353\202\304\333\353\1\305\333\353\204\306\334\353\1\305\333\353"
- "\202\304\333\353?\303\333\353\302\332\354\301\332\354\277\331\354\275\331"
- "\354\274\330\354\272\330\355\270\327\355\267\327\355\265\326\355\263\325"
- "\356\260\324\356\256\324\356\254\323\356\252\322\357\250\321\357\246\321"
- "\357\243\320\357\241\317\360\236\316\360\234\315\360\232\315\361\227\314"
- "\361\225\313\361\223\312\362\220\311\362\216\310\362\214\310\362\211\307"
- "\363\207\306\363\204\305\363\202\304\364\200\303\364~\303\364{\302\365y\301"
- "\365v\300\365t\277\366q\276\366o\275\366l\274\367i\274\367g\273\367d\272"
- "\367b\271\370_\270\370]\267\370Z\267\371X\266\371U\265\371R\264\372P\263"
- "\372M\262\372K\261\373H\260\373F\257\373C\257\374A\256\374>\255\374;\254"
- "\3759\253\3756\252\3754\251\376\2121\250\376\204\0\0\0!\200\304\364\202\305"
- "\364\205\306\363\207\306\363\212\307\363\214\310\362\217\311\362\221\312"
- "\362\224\312\361\226\313\361\231\314\361\233\315\361\236\316\360\240\317"
- "\360\242\317\360\245\320\357\247\321\357\251\322\357\253\323\356\255\323"
- "\356\260\324\356\262\325\356\264\326\355\266\326\355\270\327\355\272\330"
- "\355\274\330\354\276\331\354\277\331\354\302\332\354\303\333\353\304\333"
- "\353\305\333\353\202\307\334\353\202\310\334\353\202\311\335\353\202\310"
- "\334\353\202\307\334\353?\305\333\353\304\333\353\303\333\353\302\332\354"
- "\277\331\354\276\331\354\274\330\354\272\330\355\270\327\355\266\326\355"
- "\264\326\355\262\325\356\260\324\356\255\323\356\253\323\356\251\322\357"
- "\247\321\357\245\320\357\242\317\360\240\317\360\236\316\360\233\315\361"
- "\231\314\361\226\313\361\224\312\361\221\312\362\217\311\362\214\310\362"
- "\212\307\363\207\306\363\205\306\363\202\305\364\200\304\364~\303\364|\302"
- "\364y\301\365w\300\365t\277\365q\276\366o\276\366l\275\366j\274\367g\273"
- "\367e\272\367b\271\370`\270\370]\270\370Z\267\371X\266\371U\265\371S\264"
- "\372P\263\372N\262\372K\261\373H\260\373F\260\373C\257\374A\256\374>\255"
- "\374;\254\3759\253\3756\252\3754\251\375\2121\250\376\204\0\0\0\"\201\304"
- "\364\203\305\363\206\306\363\210\307\363\213\307\362\215\310\362\220\311"
- "\362\222\312\362\224\313\361\227\314\361\231\314\361\234\315\360\236\316"
- "\360\241\317\360\243\320\357\246\321\357\250\321\357\253\322\357\255\323"
- "\356\257\324\356\261\325\356\263\325\355\265\326\355\270\327\355\272\327"
- "\355\274\330\354\276\331\354\300\332\354\302\332\354\304\333\353\305\333"
- "\353\307\334\353\310\334\353\311\335\353\202\312\335\353\204\313\335\353"
- "\202\312\335\353A\311\335\353\310\334\353\307\334\353\305\333\353\303\333"
- "\353\302\332\354\300\332\354\276\331\354\274\330\354\272\327\355\270\327"
- "\355\265\326\355\263\325\355\261\325\356\257\324\356\255\323\356\253\322"
- "\357\250\321\357\246\321\357\243\320\357\241\317\360\236\316\360\234\315"
- "\360\231\314\361\227\314\361\224\313\361\222\312\362\220\311\362\215\310"
- "\362\213\307\362\210\307\363\206\306\363\203\305\363\201\304\364\177\303"
- "\364}\302\364z\301\365w\300\365u\300\365r\277\366p\276\366m\275\366k\274"
- "\367h\273\367f\272\367c\271\370`\270\370^\270\370[\267\371Y\266\371V\265"
- "\371S\264\372Q\263\372N\262\372L\262\372I\261\373F\260\373D\257\373A\256"
- "\374?\255\374<\254\3749\253\3757\252\3754\251\3752\251\376\2111\250\376\204"
- "\0\0\0$\202\304\364\204\305\363\207\306\363\211\307\363\214\310\362\216\310"
- "\362\221\311\362\223\312\362\226\313\361\230\314\361\233\315\361\235\316"
- "\360\237\316\360\242\317\360\244\320\357\247\321\357\251\322\357\253\323"
- "\356\256\324\356\260\324\356\263\325\356\265\326\355\267\327\355\272\327"
- "\355\274\330\354\276\331\354\277\331\354\302\332\354\304\333\353\305\333"
- "\353\307\334\353\311\335\353\312\335\353\313\335\353\314\336\352\315\336"
- "\352\204\316\336\352C\315\336\352\314\336\352\313\335\353\312\335\353\311"
- "\335\353\307\334\353\305\333\353\304\333\353\302\332\354\277\331\354\276"
- "\331\354\274\330\354\272\327\355\267\327\355\265\326\355\263\325\356\260"
- "\324\356\256\324\356\253\323\356\251\322\357\247\321\357\244\320\357\242"
- "\317\360\237\316\360\235\316\360\233\315\361\230\314\361\226\313\361\223"
- "\312\362\221\311\362\216\310\362\214\310\362\211\307\363\207\306\363\204"
- "\305\363\202\304\364\200\303\364}\302\364{\302\365x\301\365v\300\365s\277"
- "\366q\276\366n\275\366k\274\367i\273\367f\272\367d\272\370a\271\370^\270"
- "\370\\\267\371Y\266\371W\265\371T\264\372Q\263\372O\263\372L\262\372J\261"
- "\373G\260\373D\257\373B\256\374?\255\374=\254\374:\253\3757\252\3755\252"
- "\3752\251\376\2111\250\376\204\0\0\0#\202\304\364\205\305\363\207\306\363"
- "\212\307\363\214\310\362\217\311\362\221\312\362\224\312\361\226\313\361"
- "\231\314\361\234\315\360\236\316\360\241\317\360\243\320\360\246\321\357"
- "\250\321\357\252\322\357\255\323\356\257\324\356\262\325\356\264\326\355"
- "\266\326\355\270\327\355\272\330\355\275\331\354\277\331\354\302\332\354"
- "\304\333\353\305\333\353\307\334\353\311\335\353\313\335\353\314\336\352"
- "\316\336\352\317\337\352\202\320\337\352\202\321\337\352\202\320\337\352"
- "B\317\337\352\316\336\352\314\336\352\313\335\353\311\335\353\307\334\353"
- "\305\333\353\304\333\353\302\332\354\277\331\354\275\331\354\272\330\355"
- "\270\327\355\266\326\355\264\326\355\262\325\356\257\324\356\255\323\356"
- "\252\322\357\250\321\357\246\321\357\243\320\360\241\317\360\236\316\360"
- "\234\315\360\231\314\361\226\313\361\224\312\361\221\312\362\217\311\362"
- "\214\310\362\212\307\363\207\306\363\205\305\363\202\304\364\200\304\364"
- "~\303\364{\302\365y\301\365v\300\365t\277\366q\276\366o\275\366l\274\367"
- "i\274\367g\273\367d\272\370b\271\370_\270\370]\267\370Z\266\371W\265\371"
- "U\265\371R\264\372O\263\372M\262\372J\261\373H\260\373E\257\373B\256\374"
- "@\255\374=\254\374:\253\3758\253\3755\252\3753\251\376\2111\250\376\204\0"
- "\0\0$\202\305\364\205\306\363\207\306\363\212\307\363\214\310\362\217\311"
- "\362\222\312\362\224\313\361\227\314\361\231\314\361\234\315\360\236\316"
- "\360\241\317\360\243\320\357\246\321\357\250\322\357\253\323\356\255\323"
- "\356\260\324\356\263\325\356\265\326\355\270\327\355\272\327\355\274\330"
- "\354\276\331\354\301\332\354\303\333\353\305\333\353\307\334\353\311\335"
- "\353\313\335\353\315\336\352\317\337\352\320\337\352\321\340\352\322\340"
- "\352\204\323\340\352C\322\340\352\321\340\352\320\337\352\317\337\352\315"
- "\336\352\313\335\353\311\335\353\307\334\353\305\333\353\303\333\353\301"
- "\332\354\276\331\354\274\330\354\272\327\355\270\327\355\265\326\355\263"
- "\325\356\260\324\356\255\323\356\253\323\356\250\322\357\246\321\357\243"
- "\320\357\241\317\360\236\316\360\234\315\360\231\314\361\227\314\361\224"
- "\313\361\222\312\362\217\311\362\214\310\362\212\307\363\207\306\363\205"
- "\306\363\202\305\364\200\304\364~\303\364{\302\365y\301\365v\300\365t\277"
- "\365q\276\366o\275\366l\275\366i\274\367g\273\367d\272\367b\271\370_\270"
- "\370]\267\370Z\266\371X\266\371U\265\371R\264\372P\263\372M\262\372K\261"
- "\373H\260\373E\257\373C\256\374@\255\374>\255\374;\254\3758\253\3756\252"
- "\3753\251\376\2111\250\376\204\0\0\0$\203\305\363\205\306\363\210\307\363"
- "\213\307\362\215\310\362\220\311\362\222\312\362\225\313\361\230\314\361"
- "\232\315\361\235\316\360\237\316\360\242\317\360\244\320\357\247\321\357"
- "\251\322\357\254\323\356\256\324\356\261\325\356\263\325\355\266\326\355"
- "\270\327\355\273\330\354\275\331\354\277\331\354\302\332\354\304\333\353"
- "\307\334\353\311\335\353\313\335\353\315\336\352\317\337\352\321\337\352"
- "\322\340\352\324\340\351\324\341\351\204\326\341\351C\324\341\351\324\340"
- "\351\322\340\352\321\337\352\317\337\352\315\336\352\313\335\353\311\335"
- "\353\307\334\353\304\333\353\302\332\354\277\331\354\275\331\354\273\330"
- "\354\270\327\355\266\326\355\263\325\355\261\325\356\256\324\356\254\323"
- "\356\251\322\357\247\321\357\244\320\357\242\317\360\237\316\360\235\316"
- "\360\232\315\361\230\314\361\225\313\361\222\312\362\220\311\362\215\310"
- "\362\213\307\362\210\307\363\205\306\363\203\305\363\200\304\364\177\303"
- "\364|\302\364y\301\365w\300\365t\277\365r\277\366o\276\366l\275\366j\274"
- "\367g\273\367d\272\367b\271\370_\270\370]\270\370Z\267\371X\266\371U\265"
- "\371R\264\372P\263\372M\262\372K\261\373H\260\373F\257\373C\256\374A\256"
- "\374>\255\374;\254\3759\253\3756\252\3753\251\376\2111\250\376\204\0\0\0"
- "%\203\305\363\206\306\363\211\307\363\213\307\362\216\310\362\220\311\362"
- "\223\312\362\226\313\361\230\314\361\233\315\361\235\316\360\240\317\360"
- "\243\320\360\245\320\357\250\321\357\252\322\357\255\323\356\257\324\356"
- "\262\325\356\264\326\355\267\327\355\271\327\355\274\330\354\276\331\354"
- "\301\332\354\303\333\353\305\333\353\310\334\353\312\335\353\314\336\352"
- "\317\337\352\321\337\352\323\340\352\324\341\351\326\341\351\327\342\351"
- "\330\342\351\202\331\342\351D\330\342\351\327\342\351\326\341\351\324\341"
- "\351\323\340\352\321\337\352\317\337\352\314\336\352\312\335\353\310\334"
- "\353\305\333\353\303\333\353\301\332\354\276\331\354\274\330\354\271\327"
- "\355\267\327\355\264\326\355\262\325\356\257\324\356\255\323\356\252\322"
- "\357\250\321\357\245\320\357\243\320\360\240\317\360\235\316\360\233\315"
- "\361\230\314\361\226\313\361\223\312\362\220\311\362\216\310\362\213\307"
- "\362\211\307\363\206\306\363\203\305\363\201\304\364\177\303\364}\302\364"
- "z\301\365w\300\365u\300\365r\277\366o\276\366m\275\366j\274\367h\273\367"
- "e\272\367b\271\370`\270\370]\270\370Z\267\371X\266\371U\265\371R\264\372"
- "P\263\372M\262\372K\261\373H\260\373F\257\373C\257\374A\256\374>\255\374"
- ";\254\3759\253\3756\252\3754\251\376\2111\250\376\204\0\0\0$\204\305\363"
- "\207\306\363\211\307\363\214\310\362\216\310\362\221\311\362\224\312\361"
- "\226\313\361\231\314\361\233\315\361\236\316\360\241\317\360\243\320\360"
- "\246\321\357\250\322\357\253\322\357\255\323\356\260\324\356\263\325\356"
- "\265\326\355\270\327\355\272\327\355\275\330\354\277\331\354\302\332\354"
- "\304\333\353\307\334\353\311\335\353\314\336\352\316\336\352\320\337\352"
- "\322\340\352\324\341\351\326\341\351\330\342\351\331\342\351\204\333\343"
- "\351C\331\342\351\330\342\351\326\341\351\324\341\351\322\340\352\320\337"
- "\352\316\336\352\314\336\352\311\335\353\307\334\353\304\333\353\302\332"
- "\354\277\331\354\275\330\354\272\327\355\270\327\355\265\326\355\263\325"
- "\356\260\324\356\255\323\356\253\322\357\250\322\357\246\321\357\243\320"
- "\360\241\317\360\236\316\360\233\315\361\231\314\361\226\313\361\224\312"
- "\361\221\311\362\216\310\362\214\310\362\211\307\363\207\306\363\204\305"
- "\363\201\304\364\200\303\364}\302\364z\301\365x\301\365u\300\365r\277\366"
- "p\276\366m\275\366k\274\367h\273\367e\272\367c\271\370`\270\370]\270\370"
- "[\267\371X\266\371U\265\371S\264\372P\263\372M\262\372K\261\373H\260\373"
- "F\260\373C\257\374A\256\374>\255\374;\254\3759\253\3756\252\3754\251\376"
- "\2111\250\376\204\0\0\0%\204\305\363\207\306\363\212\307\363\214\310\362"
- "\217\311\362\221\311\362\224\312\361\226\313\361\231\314\361\234\315\360"
- "\236\316\360\241\317\360\243\320\357\246\321\357\250\322\357\253\323\356"
- "\255\323\356\260\324\356\263\325\355\265\326\355\270\327\355\272\330\355"
- "\275\331\354\277\331\354\302\332\354\305\333\353\307\334\353\312\335\353"
- "\314\336\352\317\337\352\321\340\352\324\340\351\326\341\351\330\342\351"
- "\332\343\351\333\343\350\335\344\350\202\336\344\350D\335\344\350\333\343"
- "\350\332\343\351\330\342\351\326\341\351\324\340\351\321\340\352\317\337"
- "\352\314\336\352\312\335\353\307\334\353\305\333\353\302\332\354\277\331"
- "\354\275\331\354\272\330\355\270\327\355\265\326\355\263\325\355\260\324"
- "\356\255\323\356\253\323\356\250\322\357\246\321\357\243\320\357\241\317"
- "\360\236\316\360\234\315\360\231\314\361\226\313\361\224\312\361\221\311"
- "\362\217\311\362\214\310\362\212\307\363\207\306\363\204\305\363\202\304"
- "\364\200\303\364}\302\364{\302\365x\301\365u\300\365s\277\366p\276\366m\275"
- "\366k\274\367h\273\367f\272\367c\271\370`\270\370^\270\370[\267\371X\266"
- "\371V\265\371S\264\372P\263\372N\262\372K\261\373H\260\373F\260\373C\257"
- "\374A\256\374>\255\374;\254\3759\253\3756\252\3754\251\376\2111\250\376\204"
- "\0\0\0%\205\305\363\207\306\363\212\307\363\214\310\362\217\311\362\221\312"
- "\362\224\312\361\226\313\361\231\314\361\234\315\360\236\316\360\241\317"
- "\360\243\320\357\246\321\357\251\322\357\253\323\356\256\324\356\260\324"
- "\356\263\325\355\266\326\355\270\327\355\273\330\354\276\331\354\300\332"
- "\354\303\333\353\305\333\353\310\334\353\313\335\353\315\336\352\320\337"
- "\352\322\340\352\325\341\351\327\342\351\331\342\351\333\343\350\336\344"
- "\350\337\344\350\202\341\345\350D\337\344\350\336\344\350\333\343\350\331"
- "\342\351\327\342\351\325\341\351\322\340\352\320\337\352\315\336\352\313"
- "\335\353\310\334\353\305\333\353\303\333\353\300\332\354\276\331\354\273"
- "\330\354\270\327\355\266\326\355\263\325\355\260\324\356\256\324\356\253"
- "\323\356\251\322\357\246\321\357\243\320\357\241\317\360\236\316\360\234"
- "\315\360\231\314\361\226\313\361\224\312\361\221\312\362\217\311\362\214"
- "\310\362\212\307\363\207\306\363\205\305\363\202\304\364\200\303\364~\303"
- "\364{\302\365x\301\365v\300\365s\277\366p\276\366n\275\366k\274\367h\273"
- "\367f\272\367c\271\370`\270\370^\270\370[\267\371Y\266\371V\265\371S\264"
- "\372Q\263\372N\262\372K\261\373I\261\373F\260\373C\257\374A\256\374>\255"
- "\374;\254\3759\253\3756\252\3754\251\376\2111\250\376\204\0\0\0%\205\305"
- "\363\207\306\363\212\307\363\214\310\362\217\311\362\221\312\362\224\313"
- "\361\226\313\361\231\314\361\234\315\360\236\316\360\241\317\360\244\320"
- "\357\246\321\357\251\322\357\254\323\356\256\324\356\261\325\356\263\325"
- "\355\266\326\355\271\327\355\273\330\354\276\331\354\301\332\354\303\333"
- "\353\306\334\353\311\335\353\313\335\353\316\336\352\320\337\352\323\340"
- "\352\326\341\351\330\342\351\333\343\351\335\344\350\337\344\350\341\345"
- "\350\202\343\346\350D\341\345\350\337\344\350\335\344\350\333\343\351\330"
- "\342\351\326\341\351\323\340\352\320\337\352\316\336\352\313\335\353\311"
- "\335\353\306\334\353\303\333\353\301\332\354\276\331\354\273\330\354\271"
- "\327\355\266\326\355\263\325\355\261\325\356\256\324\356\254\323\356\251"
- "\322\357\246\321\357\244\320\357\241\317\360\236\316\360\234\315\360\231"
- "\314\361\226\313\361\224\313\361\221\312\362\217\311\362\214\310\362\212"
- "\307\363\207\306\363\205\305\363\202\304\364\200\303\364~\303\364{\302\365"
- "y\301\365v\300\365s\277\366q\276\366n\275\366k\274\367i\273\367f\272\367"
- "c\271\370a\271\370^\270\370[\267\371Y\266\371V\265\371S\264\372Q\263\372"
- "N\262\372K\261\373I\261\373F\260\373C\257\374A\256\374>\255\374;\254\375"
- "9\253\3756\252\3754\251\376\2111\250\376\204\0\0\0%\205\305\363\207\306\363"
- "\212\307\363\214\310\362\217\311\362\221\312\362\224\313\361\226\313\361"
- "\231\314\361\234\315\360\236\316\360\241\317\360\244\320\357\246\321\357"
- "\251\322\357\254\323\356\256\324\356\261\325\356\264\326\355\266\326\355"
- "\271\327\355\274\330\354\276\331\354\301\332\354\304\333\353\306\334\353"
- "\311\335\353\314\336\352\316\336\352\321\337\352\324\340\351\326\341\351"
- "\331\342\351\333\343\351\336\344\350\341\345\350\343\346\350\202\345\346"
- "\347D\343\346\350\341\345\350\336\344\350\333\343\351\331\342\351\326\341"
- "\351\324\340\351\321\337\352\316\336\352\314\336\352\311\335\353\306\334"
- "\353\304\333\353\301\332\354\276\331\354\274\330\354\271\327\355\266\326"
- "\355\264\326\355\261\325\356\256\324\356\254\323\356\251\322\357\246\321"
- "\357\244\320\357\241\317\360\236\316\360\234\315\360\231\314\361\226\313"
- "\361\224\313\361\221\312\362\217\311\362\214\310\362\212\307\363\207\306"
- "\363\205\305\363\202\304\364\200\304\364~\303\364{\302\365y\301\365v\300"
- "\365s\277\366q\276\366n\275\366k\274\367i\273\367f\272\367c\271\370a\271"
- "\370^\270\370[\267\371Y\266\371V\265\371S\264\372Q\263\372N\262\372K\261"
- "\373I\261\373F\260\373C\257\374A\256\374>\255\374;\254\3759\253\3756\252"
- "\3754\251\375\2111\250\376\204\0\0\0%\205\305\363\207\306\363\212\307\363"
- "\214\310\362\217\311\362\221\312\362\224\313\361\226\313\361\231\314\361"
- "\234\315\360\236\316\360\241\317\360\244\320\357\246\321\357\251\322\357"
- "\254\323\356\256\324\356\261\325\356\264\326\355\266\326\355\271\327\355"
- "\274\330\354\276\331\354\301\332\354\304\333\353\306\334\353\311\335\353"
- "\314\336\352\316\336\352\321\337\352\324\340\351\326\341\351\331\342\351"
- "\333\343\351\336\344\350\341\345\350\343\346\350\202\345\346\347D\343\346"
- "\350\341\345\350\336\344\350\333\343\351\331\342\351\326\341\351\324\340"
- "\351\321\337\352\316\336\352\314\336\352\311\335\353\306\334\353\304\333"
- "\353\301\332\354\276\331\354\274\330\354\271\327\355\266\326\355\264\326"
- "\355\261\325\356\256\324\356\254\323\356\251\322\357\246\321\357\244\320"
- "\357\241\317\360\236\316\360\234\315\360\231\314\361\226\313\361\224\313"
- "\361\221\312\362\217\311\362\214\310\362\212\307\363\207\306\363\205\305"
- "\363\202\304\364\200\304\364~\303\364{\302\365y\301\365v\300\365s\277\366"
- "q\276\366n\275\366k\274\367i\273\367f\272\367c\271\370a\271\370^\270\370"
- "[\267\371Y\266\371V\265\371S\264\372Q\263\372N\262\372K\261\373I\261\373"
- "F\260\373C\257\374A\256\374>\255\374;\254\3759\253\3756\252\3754\251\375"
- "\2111\250\376\204\0\0\0%\205\305\363\207\306\363\212\307\363\214\310\362"
- "\217\311\362\221\312\362\224\313\361\226\313\361\231\314\361\234\315\360"
- "\236\316\360\241\317\360\244\320\357\246\321\357\251\322\357\254\323\356"
- "\256\324\356\261\325\356\263\325\355\266\326\355\271\327\355\273\330\354"
- "\276\331\354\301\332\354\303\333\353\306\334\353\311\335\353\313\335\353"
- "\316\336\352\320\337\352\323\340\352\326\341\351\330\342\351\333\343\351"
- "\335\344\350\337\344\350\341\345\350\202\343\346\350D\341\345\350\337\344"
- "\350\335\344\350\333\343\351\330\342\351\326\341\351\323\340\352\320\337"
- "\352\316\336\352\313\335\353\311\335\353\306\334\353\303\333\353\301\332"
- "\354\276\331\354\273\330\354\271\327\355\266\326\355\263\325\355\261\325"
- "\356\256\324\356\254\323\356\251\322\357\246\321\357\244\320\357\241\317"
- "\360\236\316\360\234\315\360\231\314\361\226\313\361\224\313\361\221\312"
- "\362\217\311\362\214\310\362\212\307\363\207\306\363\205\305\363\202\304"
- "\364\200\303\364~\303\364{\302\365y\301\365v\300\365s\277\366q\276\366n\275"
- "\366k\274\367i\273\367f\272\367c\271\370a\271\370^\270\370[\267\371Y\266"
- "\371V\265\371S\264\372Q\263\372N\262\372K\261\373I\261\373F\260\373C\257"
- "\374A\256\374>\255\374;\254\3759\253\3756\252\3754\251\376\2111\250\376\204"
- "\0\0\0%\205\305\363\207\306\363\212\307\363\214\310\362\217\311\362\221\312"
- "\362\224\312\361\226\313\361\231\314\361\234\315\360\236\316\360\241\317"
- "\360\243\320\357\246\321\357\251\322\357\253\323\356\256\324\356\260\324"
- "\356\263\325\355\266\326\355\270\327\355\273\330\354\276\331\354\300\332"
- "\354\303\333\353\305\333\353\310\334\353\313\335\353\315\336\352\320\337"
- "\352\322\340\352\325\341\351\327\342\351\331\342\351\333\343\350\336\344"
- "\350\337\344\350\202\341\345\350D\337\344\350\336\344\350\333\343\350\331"
- "\342\351\327\342\351\325\341\351\322\340\352\320\337\352\315\336\352\313"
- "\335\353\310\334\353\305\333\353\303\333\353\300\332\354\276\331\354\273"
- "\330\354\270\327\355\266\326\355\263\325\355\260\324\356\256\324\356\253"
- "\323\356\251\322\357\246\321\357\243\320\357\241\317\360\236\316\360\234"
- "\315\360\231\314\361\226\313\361\224\312\361\221\312\362\217\311\362\214"
- "\310\362\212\307\363\207\306\363\205\305\363\202\304\364\200\303\364~\303"
- "\364{\302\365x\301\365v\300\365s\277\366p\276\366n\275\366k\274\367h\273"
- "\367f\272\367c\271\370`\270\370^\270\370[\267\371Y\266\371V\265\371S\264"
- "\372Q\263\372N\262\372K\261\373I\261\373F\260\373C\257\374A\256\374>\255"
- "\374;\254\3759\253\3756\252\3754\251\376\2111\250\376\204\0\0\0%\204\305"
- "\363\207\306\363\212\307\363\214\310\362\217\311\362\221\311\362\224\312"
- "\361\226\313\361\231\314\361\234\315\360\236\316\360\241\317\360\243\320"
- "\357\246\321\357\250\322\357\253\323\356\255\323\356\260\324\356\263\325"
- "\355\265\326\355\270\327\355\272\330\355\275\331\354\277\331\354\302\332"
- "\354\305\333\353\307\334\353\312\335\353\314\336\352\317\337\352\321\340"
- "\352\324\340\351\326\341\351\330\342\351\332\343\351\333\343\350\335\344"
- "\350\202\336\344\350D\335\344\350\333\343\350\332\343\351\330\342\351\326"
- "\341\351\324\340\351\321\340\352\317\337\352\314\336\352\312\335\353\307"
- "\334\353\305\333\353\302\332\354\277\331\354\275\331\354\272\330\355\270"
- "\327\355\265\326\355\263\325\355\260\324\356\255\323\356\253\323\356\250"
- "\322\357\246\321\357\243\320\357\241\317\360\236\316\360\234\315\360\231"
- "\314\361\226\313\361\224\312\361\221\311\362\217\311\362\214\310\362\212"
- "\307\363\207\306\363\204\305\363\202\304\364\200\303\364}\302\364{\302\365"
- "x\301\365u\300\365s\277\366p\276\366m\275\366k\274\367h\273\367f\272\367"
- "c\271\370`\270\370^\270\370[\267\371X\266\371V\265\371S\264\372P\263\372"
- "N\262\372K\261\373H\260\373F\260\373C\257\374A\256\374>\255\374;\254\375"
- "9\253\3756\252\3754\251\376\2111\250\376\204\0\0\0$\204\305\363\207\306\363"
- "\211\307\363\214\310\362\216\310\362\221\311\362\224\312\361\226\313\361"
- "\231\314\361\233\315\361\236\316\360\241\317\360\243\320\360\246\321\357"
- "\250\322\357\253\322\357\255\323\356\260\324\356\263\325\356\265\326\355"
- "\270\327\355\272\327\355\275\330\354\277\331\354\302\332\354\304\333\353"
- "\307\334\353\311\335\353\314\336\352\316\336\352\320\337\352\322\340\352"
- "\324\341\351\326\341\351\330\342\351\331\342\351\204\333\343\351C\331\342"
- "\351\330\342\351\326\341\351\324\341\351\322\340\352\320\337\352\316\336"
- "\352\314\336\352\311\335\353\307\334\353\304\333\353\302\332\354\277\331"
- "\354\275\330\354\272\327\355\270\327\355\265\326\355\263\325\356\260\324"
- "\356\255\323\356\253\322\357\250\322\357\246\321\357\243\320\360\241\317"
- "\360\236\316\360\233\315\361\231\314\361\226\313\361\224\312\361\221\311"
- "\362\216\310\362\214\310\362\211\307\363\207\306\363\204\305\363\201\304"
- "\364\200\303\364}\302\364z\301\365x\301\365u\300\365r\277\366p\276\366m\275"
- "\366k\274\367h\273\367e\272\367c\271\370`\270\370]\270\370[\267\371X\266"
- "\371U\265\371S\264\372P\263\372M\262\372K\261\373H\260\373F\260\373C\257"
- "\374A\256\374>\255\374;\254\3759\253\3756\252\3754\251\376\2111\250\376\204"
- "\0\0\0%\203\305\363\206\306\363\211\307\363\213\307\362\216\310\362\220\311"
- "\362\223\312\362\226\313\361\230\314\361\233\315\361\235\316\360\240\317"
- "\360\243\320\360\245\320\357\250\321\357\252\322\357\255\323\356\257\324"
- "\356\262\325\356\264\326\355\267\327\355\271\327\355\274\330\354\276\331"
- "\354\301\332\354\303\333\353\305\333\353\310\334\353\312\335\353\314\336"
- "\352\317\337\352\321\337\352\323\340\352\324\341\351\326\341\351\327\342"
- "\351\330\342\351\202\331\342\351D\330\342\351\327\342\351\326\341\351\324"
- "\341\351\323\340\352\321\337\352\317\337\352\314\336\352\312\335\353\310"
- "\334\353\305\333\353\303\333\353\301\332\354\276\331\354\274\330\354\271"
- "\327\355\267\327\355\264\326\355\262\325\356\257\324\356\255\323\356\252"
- "\322\357\250\321\357\245\320\357\243\320\360\240\317\360\235\316\360\233"
- "\315\361\230\314\361\226\313\361\223\312\362\220\311\362\216\310\362\213"
- "\307\362\211\307\363\206\306\363\203\305\363\201\304\364\177\303\364}\302"
- "\364z\301\365w\300\365u\300\365r\277\366o\276\366m\275\366j\274\367h\273"
- "\367e\272\367b\271\370`\270\370]\270\370Z\267\371X\266\371U\265\371R\264"
- "\372P\263\372M\262\372K\261\373H\260\373F\257\373C\257\374A\256\374>\255"
- "\374;\254\3759\253\3756\252\3754\251\376\2111\250\376\204\0\0\0$\203\305"
- "\363\205\306\363\210\307\363\213\307\362\215\310\362\220\311\362\222\312"
- "\362\225\313\361\230\314\361\232\315\361\235\316\360\237\316\360\242\317"
- "\360\244\320\357\247\321\357\251\322\357\254\323\356\256\324\356\261\325"
- "\356\263\325\355\266\326\355\270\327\355\273\330\354\275\331\354\277\331"
- "\354\302\332\354\304\333\353\307\334\353\311\335\353\313\335\353\315\336"
- "\352\317\337\352\321\337\352\322\340\352\324\340\351\324\341\351\204\326"
- "\341\351C\324\341\351\324\340\351\322\340\352\321\337\352\317\337\352\315"
- "\336\352\313\335\353\311\335\353\307\334\353\304\333\353\302\332\354\277"
- "\331\354\275\331\354\273\330\354\270\327\355\266\326\355\263\325\355\261"
- "\325\356\256\324\356\254\323\356\251\322\357\247\321\357\244\320\357\242"
- "\317\360\237\316\360\235\316\360\232\315\361\230\314\361\225\313\361\222"
- "\312\362\220\311\362\215\310\362\213\307\362\210\307\363\205\306\363\203"
- "\305\363\200\304\364\177\303\364|\302\364y\301\365w\300\365t\277\365r\277"
- "\366o\276\366l\275\366j\274\367g\273\367d\272\367b\271\370_\270\370]\270"
- "\370Z\267\371X\266\371U\265\371R\264\372P\263\372M\262\372K\261\373H\260"
- "\373F\257\373C\256\374A\256\374>\255\374;\254\3759\253\3756\252\3753\251"
- "\376\2111\250\376\204\0\0\0$\202\305\364\205\306\363\207\306\363\212\307"
- "\363\214\310\362\217\311\362\222\312\362\224\313\361\227\314\361\231\314"
- "\361\234\315\360\236\316\360\241\317\360\243\320\357\246\321\357\250\322"
- "\357\253\323\356\255\323\356\260\324\356\263\325\356\265\326\355\270\327"
- "\355\272\327\355\274\330\354\276\331\354\301\332\354\303\333\353\305\333"
- "\353\307\334\353\311\335\353\313\335\353\315\336\352\317\337\352\320\337"
- "\352\321\340\352\322\340\352\204\323\340\352C\322\340\352\321\340\352\320"
- "\337\352\317\337\352\315\336\352\313\335\353\311\335\353\307\334\353\305"
- "\333\353\303\333\353\301\332\354\276\331\354\274\330\354\272\327\355\270"
- "\327\355\265\326\355\263\325\356\260\324\356\255\323\356\253\323\356\250"
- "\322\357\246\321\357\243\320\357\241\317\360\236\316\360\234\315\360\231"
- "\314\361\227\314\361\224\313\361\222\312\362\217\311\362\214\310\362\212"
- "\307\363\207\306\363\205\306\363\202\305\364\200\304\364~\303\364{\302\365"
- "y\301\365v\300\365t\277\365q\276\366o\275\366l\275\366i\274\367g\273\367"
- "d\272\367b\271\370_\270\370]\267\370Z\266\371X\266\371U\265\371R\264\372"
- "P\263\372M\262\372K\261\373H\260\373E\257\373C\256\374@\255\374>\255\374"
- ";\254\3758\253\3756\252\3753\251\376\2111\250\376\204\0\0\0\"\202\304\364"
- "\205\305\363\207\306\363\212\307\363\214\310\362\217\311\362\221\312\362"
- "\224\312\361\226\313\361\231\314\361\234\315\360\236\316\360\241\317\360"
- "\243\320\360\246\321\357\250\321\357\252\322\357\255\323\356\257\324\356"
- "\262\325\356\264\326\355\266\326\355\270\327\355\272\330\355\275\331\354"
- "\277\331\354\302\332\354\304\333\353\305\333\353\307\334\353\311\335\353"
- "\313\335\353\314\336\352\316\336\352\202\317\337\352\1\320\337\352\202\321"
- "\337\352\1\320\337\352\202\317\337\352A\316\336\352\314\336\352\313\335\353"
- "\311\335\353\307\334\353\305\333\353\304\333\353\302\332\354\277\331\354"
- "\275\331\354\272\330\355\270\327\355\266\326\355\264\326\355\262\325\356"
- "\257\324\356\255\323\356\252\322\357\250\321\357\246\321\357\243\320\360"
- "\241\317\360\236\316\360\234\315\360\231\314\361\226\313\361\224\312\361"
- "\221\312\362\217\311\362\214\310\362\212\307\363\207\306\363\205\305\363"
- "\202\304\364\200\304\364~\303\364{\302\365y\301\365v\300\365t\277\366q\276"
- "\366o\275\366l\274\367i\274\367g\273\367d\272\370b\271\370_\270\370]\267"
- "\370Z\266\371W\265\371U\265\371R\264\372O\263\372M\262\372J\261\373H\260"
- "\373E\257\373B\256\374@\255\374=\254\374:\253\3758\253\3755\252\3753\251"
- "\376\2111\250\376\204\0\0\0$\202\304\364\204\305\363\207\306\363\211\307"
- "\363\214\310\362\216\310\362\221\311\362\223\312\362\226\313\361\230\314"
- "\361\233\315\361\235\316\360\237\316\360\242\317\360\244\320\357\247\321"
- "\357\251\322\357\253\323\356\256\324\356\260\324\356\263\325\356\265\326"
- "\355\267\327\355\272\327\355\274\330\354\276\331\354\277\331\354\302\332"
- "\354\304\333\353\305\333\353\307\334\353\311\335\353\312\335\353\313\335"
- "\353\314\336\352\315\336\352\204\316\336\352C\315\336\352\314\336\352\313"
- "\335\353\312\335\353\311\335\353\307\334\353\305\333\353\304\333\353\302"
- "\332\354\277\331\354\276\331\354\274\330\354\272\327\355\267\327\355\265"
- "\326\355\263\325\356\260\324\356\256\324\356\253\323\356\251\322\357\247"
- "\321\357\244\320\357\242\317\360\237\316\360\235\316\360\233\315\361\230"
- "\314\361\226\313\361\223\312\362\221\311\362\216\310\362\214\310\362\211"
- "\307\363\207\306\363\204\305\363\202\304\364\200\303\364}\302\364{\302\365"
- "x\301\365v\300\365s\277\366q\276\366n\275\366k\274\367i\273\367f\272\367"
- "d\272\370a\271\370^\270\370\\\267\371Y\266\371W\265\371T\264\372Q\263\372"
- "O\263\372L\262\372J\261\373G\260\373D\257\373B\256\374?\255\374=\254\374"
- ":\253\3757\252\3755\252\3752\251\376\2111\250\376\204\0\0\0\"\201\304\364"
- "\203\305\363\206\306\363\210\307\363\213\307\362\215\310\362\220\311\362"
- "\222\312\362\224\313\361\227\314\361\231\314\361\234\315\360\236\316\360"
- "\241\317\360\243\320\357\246\321\357\250\321\357\253\322\357\255\323\356"
- "\257\324\356\261\325\356\263\325\355\265\326\355\270\327\355\272\327\355"
- "\274\330\354\276\331\354\300\332\354\302\332\354\303\333\353\305\333\353"
- "\307\334\353\310\334\353\311\335\353\202\312\335\353\204\313\335\353\202"
- "\312\335\353A\311\335\353\310\334\353\307\334\353\305\333\353\303\333\353"
- "\302\332\354\300\332\354\276\331\354\274\330\354\272\327\355\270\327\355"
- "\265\326\355\263\325\355\261\325\356\257\324\356\255\323\356\253\322\357"
- "\250\321\357\246\321\357\243\320\357\241\317\360\236\316\360\234\315\360"
- "\231\314\361\227\314\361\224\313\361\222\312\362\220\311\362\215\310\362"
- "\213\307\362\210\307\363\206\306\363\203\305\363\201\304\364\177\303\364"
- "}\302\364z\301\365w\300\365u\300\365r\277\366p\276\366m\275\366k\274\367"
- "h\273\367f\272\367c\271\370`\270\370^\270\370[\267\371Y\266\371V\265\371"
- "S\264\372Q\263\372N\262\372L\262\372I\261\373F\260\373D\257\373A\256\374"
- "?\255\374<\254\3749\253\3757\252\3754\251\3752\251\376\2111\250\376\204\0"
- "\0\0!\200\304\364\202\305\364\205\306\363\207\306\363\212\307\363\214\310"
- "\362\217\311\362\221\312\362\224\312\361\226\313\361\231\314\361\233\315"
- "\361\236\316\360\240\317\360\242\317\360\245\320\357\247\321\357\251\322"
- "\357\253\323\356\255\323\356\260\324\356\262\325\356\264\326\355\266\326"
- "\355\270\327\355\272\330\355\274\330\354\276\331\354\277\331\354\302\332"
- "\354\303\333\353\304\333\353\305\333\353\202\307\334\353\202\310\334\353"
- "\202\311\335\353\202\310\334\353\202\307\334\353?\305\333\353\304\333\353"
- "\303\333\353\302\332\354\277\331\354\276\331\354\274\330\354\272\330\355"
- "\270\327\355\266\326\355\264\326\355\262\325\356\260\324\356\255\323\356"
- "\253\323\356\251\322\357\247\321\357\245\320\357\242\317\360\240\317\360"
- "\236\316\360\233\315\361\231\314\361\226\313\361\224\312\361\221\312\362"
- "\217\311\362\214\310\362\212\307\363\207\306\363\205\306\363\202\305\364"
- "\200\304\364~\303\364|\302\364y\301\365w\300\365t\277\365q\276\366o\276\366"
- "l\275\366j\274\367g\273\367e\272\367b\271\370`\270\370]\270\370Z\267\371"
- "X\266\371U\265\371S\264\372P\263\372N\262\372K\261\373H\260\373F\260\373"
- "C\257\374A\256\374>\255\374;\254\3759\253\3756\252\3754\251\375\2121\250"
- "\376\204\0\0\0!\200\303\364\202\304\364\204\305\363\207\306\363\211\307\363"
- "\214\310\362\216\310\362\220\311\362\223\312\362\225\313\361\227\314\361"
- "\232\315\361\234\315\360\236\316\360\241\317\360\243\320\357\246\321\357"
- "\250\321\357\252\322\357\254\323\356\256\324\356\260\324\356\263\325\356"
- "\265\326\355\267\327\355\270\327\355\272\330\355\274\330\354\275\331\354"
- "\277\331\354\301\332\354\302\332\354\303\333\353\202\304\333\353\1\305\333"
- "\353\204\306\334\353\1\305\333\353\202\304\333\353?\303\333\353\302\332\354"
- "\301\332\354\277\331\354\275\331\354\274\330\354\272\330\355\270\327\355"
- "\267\327\355\265\326\355\263\325\356\260\324\356\256\324\356\254\323\356"
- "\252\322\357\250\321\357\246\321\357\243\320\357\241\317\360\236\316\360"
- "\234\315\360\232\315\361\227\314\361\225\313\361\223\312\362\220\311\362"
- "\216\310\362\214\310\362\211\307\363\207\306\363\204\305\363\202\304\364"
- "\200\303\364~\303\364{\302\365y\301\365v\300\365t\277\366q\276\366o\275\366"
- "l\274\367i\274\367g\273\367d\272\367b\271\370_\270\370]\267\370Z\267\371"
- "X\266\371U\265\371R\264\372P\263\372M\262\372K\261\373H\260\373F\257\373"
- "C\257\374A\256\374>\255\374;\254\3759\253\3756\252\3754\251\376\2121\250"
- "\376\204\0\0\0!\177\303\364\201\304\364\203\305\363\205\306\363\210\307\363"
- "\212\307\363\215\310\362\217\311\362\221\312\362\224\313\361\226\313\361"
- "\231\314\361\233\315\361\236\316\360\240\317\360\242\317\360\244\320\357"
- "\246\321\357\250\322\357\253\322\357\255\323\356\257\324\356\261\325\356"
- "\263\325\356\265\326\355\267\327\355\270\327\355\272\327\355\273\330\354"
- "\275\331\354\276\331\354\277\331\354\301\332\354\202\302\332\354\206\303"
- "\333\353\202\302\332\354?\301\332\354\277\331\354\276\331\354\275\331\354"
- "\273\330\354\272\327\355\270\327\355\267\327\355\265\326\355\263\325\356"
- "\261\325\356\257\324\356\255\323\356\253\322\357\250\322\357\246\321\357"
- "\244\320\357\242\317\360\240\317\360\236\316\360\233\315\361\231\314\361"
- "\226\313\361\224\313\361\221\312\362\217\311\362\215\310\362\212\307\363"
- "\210\307\363\205\306\363\203\305\363\201\304\364\177\303\364}\302\364z\301"
- "\365x\301\365u\300\365s\277\366p\276\366n\275\366k\274\367i\273\367f\272"
- "\367d\272\370a\271\370_\270\370\\\267\371Z\266\371W\265\371U\265\371R\264"
- "\372P\263\372M\262\372J\261\373H\260\373E\257\373C\256\374@\255\374>\255"
- "\374;\254\3758\253\3756\252\3753\251\376\2121\250\376\204\0\0\0!~\303\364"
- "\200\304\364\202\305\364\205\305\363\207\306\363\212\307\363\214\310\362"
- "\216\310\362\221\311\362\223\312\362\225\313\361\227\314\361\232\315\361"
- "\234\315\360\236\316\360\241\317\360\243\320\360\245\320\357\247\321\357"
- "\251\322\357\253\323\356\255\323\356\257\324\356\261\325\356\263\325\356"
- "\265\326\355\266\326\355\270\327\355\271\327\355\272\330\355\274\330\354"
- "\275\331\354\276\331\354\202\277\331\354\1\300\332\354\204\301\332\354\1"
- "\300\332\354\202\277\331\354?\276\331\354\275\331\354\274\330\354\272\330"
- "\355\271\327\355\270\327\355\266\326\355\265\326\355\263\325\356\261\325"
- "\356\257\324\356\255\323\356\253\323\356\251\322\357\247\321\357\245\320"
- "\357\243\320\360\241\317\360\236\316\360\234\315\360\232\315\361\227\314"
- "\361\225\313\361\223\312\362\221\311\362\216\310\362\214\310\362\212\307"
- "\363\207\306\363\205\305\363\202\305\364\200\304\364~\303\364|\302\364y\301"
- "\365w\300\365t\277\365r\277\366o\276\366m\275\366j\274\367h\273\367e\272"
- "\367c\271\370`\270\370^\270\370[\267\371Y\266\371V\265\371T\264\372Q\263"
- "\372O\263\372L\262\372J\261\373G\260\373D\257\373B\256\374?\255\374=\254"
- "\374:\253\3758\253\3755\252\3753\251\376\2121\250\376\204\0\0\0\"~\303\364"
- "\200\303\364\201\304\364\204\305\363\206\306\363\210\307\363\213\307\362"
- "\215\310\362\217\311\362\221\312\362\224\312\361\226\313\361\231\314\361"
- "\233\315\361\235\316\360\237\316\360\241\317\360\243\320\357\246\321\357"
- "\250\321\357\251\322\357\253\323\356\255\323\356\257\324\356\261\325\356"
- "\263\325\356\264\326\355\265\326\355\267\327\355\270\327\355\272\327\355"
- "\272\330\355\274\330\354\275\330\354\202\275\331\354\204\276\331\354\202"
- "\275\331\354@\275\330\354\274\330\354\272\330\355\272\327\355\270\327\355"
- "\267\327\355\265\326\355\264\326\355\263\325\356\261\325\356\257\324\356"
- "\255\323\356\253\323\356\251\322\357\250\321\357\246\321\357\243\320\357"
- "\241\317\360\237\316\360\235\316\360\233\315\361\231\314\361\226\313\361"
- "\224\312\361\221\312\362\217\311\362\215\310\362\213\307\362\210\307\363"
- "\206\306\363\204\305\363\201\304\364\200\303\364~\303\364{\302\365y\301\365"
- "v\300\365t\277\366q\276\366o\275\366l\275\366i\274\367g\273\367d\272\367"
- "b\271\370_\270\370]\270\370Z\267\371X\266\371U\265\371S\264\372P\263\372"
- "N\262\372K\261\373I\261\373F\260\373D\257\373A\256\374?\255\374<\254\374"
- "9\253\3757\252\3754\251\3752\251\376\2121\250\376\204\0\0\0\36|\302\364~"
- "\303\364\200\304\364\202\305\364\205\305\363\207\306\363\212\307\363\214"
- "\310\362\216\310\362\220\311\362\223\312\362\225\313\361\227\314\361\231"
- "\314\361\234\315\360\236\316\360\240\317\360\242\317\360\243\320\357\246"
- "\321\357\250\321\357\252\322\357\253\323\356\255\323\356\257\324\356\260"
- "\324\356\262\325\356\263\325\355\265\326\355\266\326\355\202\270\327\355"
- "\3\271\327\355\272\327\355\272\330\355\206\273\330\354\3\272\330\355\272"
- "\327\355\271\327\355\202\270\327\355;\266\326\355\265\326\355\263\325\355"
- "\262\325\356\260\324\356\257\324\356\255\323\356\253\323\356\252\322\357"
- "\250\321\357\246\321\357\243\320\357\242\317\360\240\317\360\236\316\360"
- "\234\315\360\231\314\361\227\314\361\225\313\361\223\312\362\220\311\362"
- "\216\310\362\214\310\362\212\307\363\207\306\363\205\305\363\202\305\364"
- "\200\304\364~\303\364|\302\364z\301\365w\300\365u\300\365s\277\366p\276\366"
- "n\275\366k\274\367i\273\367g\273\367d\272\370b\271\370_\270\370]\267\370"
- "Z\266\371X\266\371U\265\371R\264\372P\263\372M\262\372K\261\373H\260\373"
- "F\257\373C\257\374A\256\374>\255\374;\254\3759\253\3756\252\3754\251\376"
- "\2131\250\376\204\0\0\0!{\302\365~\303\364\200\303\364\201\304\364\204\305"
- "\363\206\306\363\210\307\363\212\307\363\214\310\362\217\311\362\221\312"
- "\362\224\312\361\226\313\361\230\314\361\232\315\361\234\315\360\236\316"
- "\360\240\317\360\242\317\360\244\320\357\246\321\357\250\321\357\251\322"
- "\357\253\323\356\255\323\356\256\324\356\260\324\356\261\325\356\263\325"
- "\356\264\326\355\265\326\355\266\326\355\267\327\355\203\270\327\355\204"
- "\271\327\355\203\270\327\355>\267\327\355\266\326\355\265\326\355\264\326"
- "\355\263\325\356\261\325\356\260\324\356\256\324\356\255\323\356\253\323"
- "\356\251\322\357\250\321\357\246\321\357\244\320\357\242\317\360\240\317"
- "\360\236\316\360\234\315\360\232\315\361\230\314\361\226\313\361\224\312"
- "\361\221\312\362\217\311\362\214\310\362\212\307\363\210\307\363\206\306"
- "\363\204\305\363\201\304\364\200\303\364~\303\364{\302\365y\301\365v\300"
- "\365t\277\365q\276\366o\276\366l\275\366j\274\367h\273\367e\272\367c\271"
- "\370`\270\370^\270\370\\\267\371Y\266\371W\265\371T\264\372R\264\372O\263"
- "\372M\262\372J\261\373H\260\373E\257\373C\256\374@\255\374>\255\374;\254"
- "\3759\253\3756\252\3754\251\376\2131\250\376\204\0\0\0!z\301\365|\302\364"
- "\177\303\364\200\304\364\202\305\364\205\305\363\207\306\363\211\307\363"
- "\214\310\362\216\310\362\220\311\362\222\312\362\224\313\361\226\313\361"
- "\230\314\361\232\315\361\234\315\360\236\316\360\241\317\360\242\317\360"
- "\244\320\357\246\321\357\250\321\357\251\322\357\253\322\357\254\323\356"
- "\255\323\356\257\324\356\260\324\356\261\325\356\263\325\356\263\325\355"
- "\264\326\355\202\265\326\355\206\266\326\355\202\265\326\355>\264\326\355"
- "\263\325\355\263\325\356\261\325\356\260\324\356\257\324\356\255\323\356"
- "\254\323\356\253\322\357\251\322\357\250\321\357\246\321\357\244\320\357"
- "\242\317\360\241\317\360\236\316\360\234\315\360\232\315\361\230\314\361"
- "\226\313\361\224\313\361\222\312\362\220\311\362\216\310\362\214\310\362"
- "\211\307\363\207\306\363\205\305\363\202\305\364\200\304\364\177\303\364"
- "|\302\364z\301\365x\301\365u\300\365s\277\366q\276\366n\275\366l\274\367"
- "i\274\367g\273\367d\272\367b\271\370_\270\370]\270\370Z\267\371X\266\371"
- "U\265\371S\264\372P\263\372N\262\372L\262\372I\261\373G\260\373D\257\373"
- "B\256\374?\255\374=\254\374:\253\3758\253\3755\252\3753\251\376\2131\250"
- "\376\204\0\0\0\33y\301\365{\302\365~\303\364\200\303\364\201\304\364\203"
- "\305\363\205\306\363\210\307\363\212\307\363\214\310\362\217\311\362\221"
- "\311\362\222\312\362\224\313\361\226\313\361\231\314\361\233\315\361\234"
- "\315\360\236\316\360\241\317\360\242\317\360\243\320\357\246\321\357\247"
- "\321\357\250\322\357\252\322\357\253\323\356\202\255\323\356\4\257\324\356"
- "\260\324\356\261\325\356\262\325\356\202\263\325\356\206\263\325\355\202"
- "\263\325\356\4\262\325\356\261\325\356\260\324\356\257\324\356\202\255\323"
- "\3568\253\323\356\252\322\357\250\322\357\247\321\357\246\321\357\243\320"
- "\357\242\317\360\241\317\360\236\316\360\234\315\360\233\315\361\231\314"
- "\361\226\313\361\224\313\361\222\312\362\221\311\362\217\311\362\214\310"
- "\362\212\307\363\207\306\363\205\306\363\203\305\363\201\304\364\200\303"
- "\364~\303\364{\302\365y\301\365v\300\365t\277\365r\277\366o\276\366m\275"
- "\366k\274\367h\273\367f\272\367d\272\370a\271\370_\270\370\\\267\371Z\266"
- "\371X\266\371U\265\371R\264\372P\263\372M\262\372K\261\373H\260\373F\257"
- "\373C\257\374A\256\374>\255\374<\254\3749\253\3757\252\3754\251\3752\251"
- "\376\2131\250\376\204\0\0\0\35x\301\365z\301\365|\302\364~\303\364\200\304"
- "\364\202\304\364\204\305\363\206\306\363\210\307\363\212\307\363\214\310"
- "\362\217\311\362\221\311\362\223\312\362\225\313\361\227\314\361\231\314"
- "\361\233\315\361\234\315\360\236\316\360\240\317\360\242\317\360\243\320"
- "\357\245\320\357\246\321\357\250\321\357\251\322\357\253\322\357\253\323"
- "\356\202\255\323\356\2\256\324\356\257\324\356\203\260\324\356\204\261\325"
- "\356\203\260\324\356\2\257\324\356\256\324\356\202\255\323\3569\253\323\356"
- "\253\322\357\251\322\357\250\321\357\246\321\357\245\320\357\243\320\357"
- "\242\317\360\240\317\360\236\316\360\234\315\360\233\315\361\231\314\361"
- "\227\314\361\225\313\361\223\312\362\221\311\362\217\311\362\214\310\362"
- "\212\307\363\210\307\363\206\306\363\204\305\363\202\304\364\200\304\364"
- "~\303\364|\302\364z\301\365x\301\365u\300\365s\277\366q\276\366o\275\366"
- "l\274\367i\274\367g\273\367d\272\367b\271\370`\270\370]\270\370[\267\371"
- "Y\266\371V\265\371T\264\372Q\263\372O\263\372M\262\372J\261\373H\260\373"
- "E\257\373C\256\374@\255\374>\255\374;\254\3759\253\3756\252\3754\251\376"
- "\2141\250\376\204\0\0\0\40v\300\365y\301\365{\302\365}\302\364\177\303\364"
- "\200\304\364\202\305\364\205\305\363\207\306\363\211\307\363\213\307\362"
- "\215\310\362\217\311\362\221\312\362\223\312\362\225\313\361\227\314\361"
- "\231\314\361\233\315\361\234\315\360\236\316\360\240\317\360\241\317\360"
- "\243\320\360\244\320\357\246\321\357\247\321\357\250\321\357\251\322\357"
- "\252\322\357\253\322\357\254\323\356\203\255\323\356\206\256\324\356\203"
- "\255\323\356<\254\323\356\253\322\357\252\322\357\251\322\357\250\321\357"
- "\247\321\357\246\321\357\244\320\357\243\320\360\241\317\360\240\317\360"
- "\236\316\360\234\315\360\233\315\361\231\314\361\227\314\361\225\313\361"
- "\223\312\362\221\312\362\217\311\362\215\310\362\213\307\362\211\307\363"
- "\207\306\363\205\305\363\202\305\364\200\304\364\177\303\364}\302\364{\302"
- "\365y\301\365v\300\365t\277\365q\276\366o\276\366m\275\366k\274\367h\273"
- "\367f\272\367d\272\370b\271\370_\270\370]\267\370Z\267\371X\266\371U\265"
- "\371R\264\372P\263\372N\262\372K\261\373I\261\373F\260\373D\257\373B\256"
- "\374?\255\374=\254\374:\253\3758\253\3755\252\3753\251\376\2141\250\376\204"
- "\0\0\0\33u\300\365w\300\365y\301\365{\302\365~\303\364\200\303\364\201\304"
- "\364\203\305\363\205\306\363\207\306\363\212\307\363\214\310\362\215\310"
- "\362\217\311\362\221\312\362\223\312\362\225\313\361\226\313\361\231\314"
- "\361\232\315\361\234\315\360\236\316\360\237\316\360\241\317\360\242\317"
- "\360\243\320\357\244\320\357\202\246\321\357\4\250\321\357\250\322\357\251"
- "\322\357\252\322\357\202\253\322\357\206\253\323\356\202\253\322\357\4\252"
- "\322\357\251\322\357\250\322\357\250\321\357\202\246\321\3577\244\320\357"
- "\243\320\357\242\317\360\241\317\360\237\316\360\236\316\360\234\315\360"
- "\232\315\361\231\314\361\226\313\361\225\313\361\223\312\362\221\312\362"
- "\217\311\362\215\310\362\214\310\362\212\307\363\207\306\363\205\306\363"
- "\203\305\363\201\304\364\200\303\364~\303\364{\302\365y\301\365w\300\365"
- "u\300\365s\277\366q\276\366n\275\366l\274\367i\274\367g\273\367e\272\367"
- "b\271\370`\270\370^\270\370[\267\371Y\266\371W\265\371T\264\372R\264\372"
- "P\263\372M\262\372K\261\373H\260\373F\257\373C\257\374A\256\374>\255\374"
- ";\254\3759\253\3757\252\3754\251\3752\251\376\2141\250\376\204\0\0\0\37t"
- "\277\366v\300\365x\301\365z\301\365|\302\364~\303\364\200\304\364\202\304"
- "\364\204\305\363\206\306\363\210\307\363\212\307\363\214\310\362\216\310"
- "\362\217\311\362\221\312\362\223\312\362\225\313\361\226\313\361\230\314"
- "\361\232\315\361\234\315\360\235\316\360\236\316\360\240\317\360\241\317"
- "\360\242\317\360\243\320\357\244\320\357\245\320\357\246\321\357\202\247"
- "\321\357\1\250\321\357\202\250\322\357\204\251\322\357\202\250\322\357\1"
- "\250\321\357\202\247\321\357:\246\321\357\245\320\357\244\320\357\243\320"
- "\357\242\317\360\241\317\360\240\317\360\236\316\360\235\316\360\234\315"
- "\360\232\315\361\230\314\361\226\313\361\225\313\361\223\312\362\221\312"
- "\362\217\311\362\216\310\362\214\310\362\212\307\363\210\307\363\206\306"
- "\363\204\305\363\202\304\364\200\304\364~\303\364|\302\364z\301\365x\301"
- "\365v\300\365t\277\366q\276\366o\276\366m\275\366j\274\367h\273\367f\272"
- "\367d\272\370b\271\370_\270\370]\267\370Z\267\371X\266\371U\265\371S\264"
- "\372Q\263\372N\262\372L\262\372J\261\373G\260\373E\257\373B\256\374@\255"
- "\374>\255\374;\254\3759\253\3756\252\3754\251\376\2151\250\376\204\0\0\0"
- "!r\277\366t\277\365v\300\365y\301\365{\302\365}\302\364\177\303\364\200\304"
- "\364\202\305\364\204\305\363\206\306\363\210\307\363\212\307\363\214\310"
- "\362\216\310\362\217\311\362\221\312\362\223\312\362\224\313\361\226\313"
- "\361\230\314\361\231\314\361\233\315\361\234\315\360\235\316\360\236\316"
- "\360\240\317\360\241\317\360\242\317\360\243\320\360\243\320\357\244\320"
- "\357\245\320\357\212\246\321\357<\245\320\357\244\320\357\243\320\357\243"
- "\320\360\242\317\360\241\317\360\240\317\360\236\316\360\235\316\360\234"
- "\315\360\233\315\361\231\314\361\230\314\361\226\313\361\224\313\361\223"
- "\312\362\221\312\362\217\311\362\216\310\362\214\310\362\212\307\363\210"
- "\307\363\206\306\363\204\305\363\202\305\364\200\304\364\177\303\364}\302"
- "\364{\302\365y\301\365v\300\365t\277\365r\277\366p\276\366n\275\366l\274"
- "\367i\274\367g\273\367d\272\367b\271\370`\270\370^\270\370[\267\371Y\266"
- "\371W\265\371U\265\371R\264\372P\263\372M\262\372K\261\373H\260\373F\260"
- "\373C\257\374A\256\374?\255\374<\254\374:\253\3757\252\3755\252\3753\251"
- "\376\2151\250\376\204\0\0\0\26q\276\366s\277\366u\300\365w\300\365y\301\365"
- "{\302\365~\303\364\177\303\364\200\304\364\202\305\364\205\305\363\206\306"
- "\363\210\307\363\212\307\363\214\310\362\215\310\362\217\311\362\221\311"
- "\362\222\312\362\224\313\361\226\313\361\227\314\361\202\231\314\361\6\233"
- "\315\361\234\315\360\235\316\360\236\316\360\237\316\360\240\317\360\202"
- "\241\317\360\2\242\317\360\243\320\360\210\243\320\357\2\243\320\360\242"
- "\317\360\202\241\317\360\6\240\317\360\237\316\360\236\316\360\235\316\360"
- "\234\315\360\233\315\361\202\231\314\3610\227\314\361\226\313\361\224\313"
- "\361\222\312\362\221\311\362\217\311\362\215\310\362\214\310\362\212\307"
- "\363\210\307\363\206\306\363\205\305\363\202\305\364\200\304\364\177\303"
- "\364~\303\364{\302\365y\301\365w\300\365u\300\365s\277\366q\276\366o\275"
- "\366l\275\366j\274\367h\273\367f\272\367c\271\370a\271\370_\270\370]\267"
- "\370Z\267\371X\266\371U\265\371S\264\372Q\263\372N\262\372L\262\372J\261"
- "\373H\260\373E\257\373C\256\374A\256\374>\255\374;\254\3759\253\3756\252"
- "\3754\251\375\2161\250\376\204\0\0\0\35o\276\366q\276\366t\277\366v\300\365"
- "x\301\365y\301\365{\302\365~\303\364\200\303\364\200\304\364\202\305\364"
- "\205\305\363\206\306\363\210\307\363\212\307\363\214\310\362\215\310\362"
- "\217\311\362\220\311\362\222\312\362\224\312\361\225\313\361\226\313\361"
- "\227\314\361\231\314\361\232\315\361\233\315\361\234\315\360\235\316\360"
- "\202\236\316\360\1\237\316\360\202\240\317\360\210\241\317\360\202\240\317"
- "\360\1\237\316\360\202\236\316\3607\235\316\360\234\315\360\233\315\361\232"
- "\315\361\231\314\361\227\314\361\226\313\361\225\313\361\224\312\361\222"
- "\312\362\220\311\362\217\311\362\215\310\362\214\310\362\212\307\363\210"
- "\307\363\206\306\363\205\305\363\202\305\364\200\304\364\200\303\364~\303"
- "\364{\302\365y\301\365x\301\365v\300\365t\277\366q\276\366o\276\366m\275"
- "\366k\274\367i\273\367g\273\367d\272\367b\271\370_\270\370]\270\370[\267"
- "\371Y\266\371W\265\371U\265\371R\264\372P\263\372M\262\372K\261\373H\260"
- "\373F\260\373D\257\373A\256\374?\255\374=\254\374:\253\3758\253\3756\252"
- "\3753\251\376\2161\250\376\204\0\0\0\32n\275\366p\276\366r\277\366t\277\366"
- "v\300\365x\301\365z\301\365|\302\364~\303\364\200\303\364\201\304\364\202"
- "\305\364\205\305\363\206\306\363\207\306\363\212\307\363\213\307\362\214"
- "\310\362\216\310\362\220\311\362\221\312\362\222\312\362\224\312\361\225"
- "\313\361\226\313\361\227\314\361\202\231\314\361\2\232\315\361\233\315\361"
- "\202\234\315\360\1\235\316\360\212\236\316\360\1\235\316\360\202\234\315"
- "\360\2\233\315\361\232\315\361\202\231\314\3614\227\314\361\226\313\361\225"
- "\313\361\224\312\361\222\312\362\221\312\362\220\311\362\216\310\362\214"
- "\310\362\213\307\362\212\307\363\207\306\363\206\306\363\205\305\363\202"
- "\305\364\201\304\364\200\303\364~\303\364|\302\364z\301\365x\301\365v\300"
- "\365t\277\366r\277\366p\276\366n\275\366l\274\367i\274\367g\273\367e\272"
- "\367c\271\370a\271\370_\270\370\\\267\371Z\266\371X\266\371U\265\371S\264"
- "\372Q\263\372N\262\372L\262\372J\261\373H\260\373E\257\373C\256\374A\256"
- "\374>\255\374;\254\3759\253\3757\252\3754\251\3752\251\376\2161\250\376\204"
- "\0\0\0\35l\275\366n\275\366p\276\366r\277\366t\277\365v\300\365x\301\365"
- "z\301\365|\302\364~\303\364\200\303\364\200\304\364\202\305\364\204\305\363"
- "\206\306\363\207\306\363\211\307\363\212\307\363\214\310\362\215\310\362"
- "\217\311\362\220\311\362\221\312\362\223\312\362\224\312\361\225\313\361"
- "\226\313\361\227\314\361\230\314\361\202\231\314\361\1\232\315\361\202\233"
- "\315\361\210\234\315\360\202\233\315\361\1\232\315\361\202\231\314\3616\230"
- "\314\361\227\314\361\226\313\361\225\313\361\224\312\361\223\312\362\221"
- "\312\362\220\311\362\217\311\362\215\310\362\214\310\362\212\307\363\211"
- "\307\363\207\306\363\206\306\363\204\305\363\202\305\364\200\304\364\200"
- "\303\364~\303\364|\302\364z\301\365x\301\365v\300\365t\277\365r\277\366p"
- "\276\366n\275\366l\275\366j\274\367h\273\367f\272\367d\272\370b\271\370_"
- "\270\370]\270\370Z\267\371X\266\371V\265\371T\264\372R\264\372P\263\372M"
- "\262\372K\261\373H\260\373F\260\373D\257\373A\256\374?\255\374=\254\374;"
- "\254\3758\253\3756\252\3754\251\376\2171\250\376\204\0\0\0\35j\274\367l\275"
- "\366o\275\366q\276\366s\277\366t\277\365v\300\365y\301\365z\301\365|\302"
- "\364~\303\364\200\303\364\200\304\364\202\304\364\204\305\363\205\306\363"
- "\207\306\363\210\307\363\212\307\363\213\307\362\214\310\362\216\310\362"
- "\217\311\362\220\311\362\221\312\362\223\312\362\224\312\361\224\313\361"
- "\225\313\361\202\226\313\361\2\227\314\361\230\314\361\212\231\314\361\2"
- "\230\314\361\227\314\361\202\226\313\3616\225\313\361\224\313\361\224\312"
- "\361\222\312\362\221\312\362\220\311\362\217\311\362\216\310\362\214\310"
- "\362\213\307\362\212\307\363\210\307\363\207\306\363\205\306\363\204\305"
- "\363\202\304\364\200\304\364\200\303\364~\303\364|\302\364z\301\365y\301"
- "\365v\300\365t\277\365s\277\366q\276\366o\275\366l\275\366j\274\367h\273"
- "\367g\273\367d\272\367b\271\370`\270\370^\270\370\\\267\371Z\266\371W\265"
- "\371U\265\371R\264\372P\263\372N\262\372L\262\372J\261\373G\260\373E\257"
- "\373C\256\374A\256\374>\255\374;\254\3759\253\3757\252\3754\251\3752\251"
- "\376\2171\250\376\204\0\0\0\37i\273\367k\274\367m\275\366o\275\366q\276\366"
- "s\277\366t\277\365v\300\365y\301\365z\301\365|\302\364~\303\364\177\303\364"
- "\200\304\364\202\304\364\203\305\363\205\305\363\206\306\363\207\306\363"
- "\211\307\363\212\307\363\214\310\362\215\310\362\216\310\362\217\311\362"
- "\220\311\362\221\311\362\222\312\362\223\312\362\224\312\361\224\313\361"
- "\202\225\313\361\212\226\313\361\202\225\313\3617\224\313\361\224\312\361"
- "\223\312\362\222\312\362\221\311\362\220\311\362\217\311\362\216\310\362"
- "\215\310\362\214\310\362\212\307\363\211\307\363\207\306\363\206\306\363"
- "\205\305\363\203\305\363\202\304\364\200\304\364\177\303\364~\303\364|\302"
- "\364z\301\365y\301\365v\300\365t\277\365s\277\366q\276\366o\275\366m\275"
- "\366k\274\367i\273\367g\273\367d\272\367b\271\370`\270\370^\270\370]\267"
- "\370Z\267\371X\266\371U\265\371S\264\372Q\263\372O\263\372M\262\372K\261"
- "\373H\260\373F\260\373C\257\374A\256\374?\255\374=\254\374;\254\3758\253"
- "\3756\252\3754\251\376\2201\250\376\204\0\0\0\25g\273\367i\273\367k\274\367"
- "m\275\366o\276\366q\276\366s\277\366t\277\365v\300\365x\301\365z\301\365"
- "{\302\365}\302\364\177\303\364\200\304\364\201\304\364\202\305\364\204\305"
- "\363\205\306\363\207\306\363\210\307\363\202\212\307\363\202\214\310\362"
- "\1\216\310\362\202\217\311\362\4\220\311\362\221\311\362\221\312\362\222"
- "\312\362\202\223\312\362\210\224\312\361\202\223\312\362\4\222\312\362\221"
- "\312\362\221\311\362\220\311\362\202\217\311\362\1\216\310\362\202\214\310"
- "\362\202\212\307\363-\210\307\363\207\306\363\205\306\363\204\305\363\202"
- "\305\364\201\304\364\200\304\364\177\303\364}\302\364{\302\365z\301\365x"
- "\301\365v\300\365t\277\365s\277\366q\276\366o\276\366m\275\366k\274\367i"
- "\273\367g\273\367e\272\367c\271\370a\271\370_\270\370]\267\370Z\267\371X"
- "\266\371V\265\371T\264\372R\264\372P\263\372M\262\372K\261\373I\261\373G"
- "\260\373E\257\373C\256\374@\255\374>\255\374;\254\3759\253\3757\252\3754"
- "\251\3752\251\376\2201\250\376\204\0\0\0\35e\272\367g\273\367i\274\367k\274"
- "\367m\275\366o\276\366q\276\366s\277\366t\277\365v\300\365x\301\365y\301"
- "\365{\302\365}\302\364~\303\364\200\303\364\200\304\364\202\304\364\203\305"
- "\363\205\305\363\206\306\363\207\306\363\210\307\363\211\307\363\212\307"
- "\363\213\307\362\214\310\362\215\310\362\216\310\362\203\217\311\362\1\220"
- "\311\362\203\221\311\362\204\221\312\362\203\221\311\362\1\220\311\362\203"
- "\217\311\3624\216\310\362\215\310\362\214\310\362\213\307\362\212\307\363"
- "\211\307\363\210\307\363\207\306\363\206\306\363\205\305\363\203\305\363"
- "\202\304\364\200\304\364\200\303\364~\303\364}\302\364{\302\365y\301\365"
- "x\301\365v\300\365t\277\365s\277\366q\276\366o\276\366m\275\366k\274\367"
- "i\274\367g\273\367e\272\367d\272\370b\271\370_\270\370]\270\370[\267\371"
- "Y\266\371W\265\371U\265\371R\264\372P\263\372N\262\372L\262\372J\261\373"
- "H\260\373F\257\373C\257\374A\256\374?\255\374<\254\374:\253\3758\253\375"
- "6\252\3754\251\376\2211\250\376\204\0\0\0\32d\272\370f\272\367g\273\367i"
- "\274\367k\274\367m\275\366o\276\366q\276\366r\277\366t\277\365v\300\365w"
- "\300\365y\301\365{\302\365|\302\364~\303\364\177\303\364\200\304\364\201"
- "\304\364\202\305\364\203\305\363\205\305\363\206\306\363\207\306\363\210"
- "\307\363\211\307\363\202\212\307\363\1\213\307\362\202\214\310\362\202\215"
- "\310\362\202\216\310\362\206\217\311\362\202\216\310\362\202\215\310\362"
- "\202\214\310\362\1\213\307\362\202\212\307\3631\211\307\363\210\307\363\207"
- "\306\363\206\306\363\205\305\363\203\305\363\202\305\364\201\304\364\200"
- "\304\364\177\303\364~\303\364|\302\364{\302\365y\301\365w\300\365v\300\365"
- "t\277\365r\277\366q\276\366o\276\366m\275\366k\274\367i\274\367g\273\367"
- "f\272\367d\272\370b\271\370_\270\370^\270\370\\\267\371Z\266\371X\266\371"
- "U\265\371S\264\372Q\263\372O\263\372M\262\372K\261\373H\260\373F\260\373"
- "D\257\373B\256\374@\255\374>\255\374;\254\3759\253\3756\252\3754\251\375"
- "2\251\376\2211\250\376\204\0\0\0\35b\271\370d\272\370f\272\367g\273\367i"
- "\274\367k\274\367m\275\366o\275\366q\276\366r\277\366t\277\366v\300\365w"
- "\300\365y\301\365z\301\365{\302\365}\302\364~\303\364\200\303\364\200\304"
- "\364\201\304\364\202\305\364\203\305\363\205\305\363\205\306\363\206\306"
- "\363\207\306\363\210\307\363\211\307\363\203\212\307\363\202\213\307\362"
- "\210\214\310\362\202\213\307\362\203\212\307\3633\211\307\363\210\307\363"
- "\207\306\363\206\306\363\205\306\363\205\305\363\203\305\363\202\305\364"
- "\201\304\364\200\304\364\200\303\364~\303\364}\302\364{\302\365z\301\365"
- "y\301\365w\300\365v\300\365t\277\366r\277\366q\276\366o\275\366m\275\366"
- "k\274\367i\274\367g\273\367f\272\367d\272\370b\271\370`\270\370^\270\370"
- "\\\267\371Z\266\371X\266\371V\265\371T\264\372R\264\372P\263\372M\262\372"
- "K\261\373I\261\373G\260\373E\257\373C\256\374A\256\374>\255\374<\254\374"
- ":\253\3758\253\3755\252\3753\251\376\2221\250\376\204\0\0\0\22`\270\370b"
- "\271\370d\272\370f\272\367g\273\367i\274\367k\274\367m\275\366o\275\366p"
- "\276\366q\276\366t\277\366u\300\365v\300\365x\301\365y\301\365{\302\365|"
- "\302\364\202~\303\364\11\200\303\364\200\304\364\201\304\364\202\304\364"
- "\203\305\363\204\305\363\205\305\363\205\306\363\206\306\363\202\207\306"
- "\363\202\210\307\363\203\211\307\363\204\212\307\363\203\211\307\363\202"
- "\210\307\363\202\207\306\363\11\206\306\363\205\306\363\205\305\363\204\305"
- "\363\203\305\363\202\304\364\201\304\364\200\304\364\200\303\364\202~\303"
- "\364'|\302\364{\302\365y\301\365x\301\365v\300\365u\300\365t\277\366q\276"
- "\366p\276\366o\275\366m\275\366k\274\367i\274\367g\273\367f\272\367d\272"
- "\370b\271\370`\270\370^\270\370]\267\370Z\267\371X\266\371V\265\371T\264"
- "\372R\264\372P\263\372N\262\372L\262\372J\261\373H\260\373F\257\373C\257"
- "\374A\256\374?\255\374=\254\374;\254\3759\253\3756\252\3754\251\375\2231"
- "\250\376\204\0\0\0\24^\270\370`\270\370b\271\370d\272\370f\272\367g\273\367"
- "i\273\367k\274\367l\275\366n\275\366p\276\366q\276\366s\277\366t\277\365"
- "v\300\365w\300\365y\301\365z\301\365{\302\365|\302\364\202~\303\364\1\200"
- "\303\364\202\200\304\364\4\201\304\364\202\305\364\203\305\363\204\305\363"
- "\202\205\305\363\1\205\306\363\203\206\306\363\206\207\306\363\203\206\306"
- "\363\1\205\306\363\202\205\305\363\4\204\305\363\203\305\363\202\305\364"
- "\201\304\364\202\200\304\364\1\200\303\364\202~\303\364)|\302\364{\302\365"
- "z\301\365y\301\365w\300\365v\300\365t\277\365s\277\366q\276\366p\276\366"
- "n\275\366l\275\366k\274\367i\273\367g\273\367f\272\367d\272\370b\271\370"
- "`\270\370^\270\370]\267\370Z\267\371X\266\371W\265\371U\265\371R\264\372"
- "P\263\372N\262\372M\262\372K\261\373H\260\373F\260\373D\257\373B\256\374"
- "@\255\374>\255\374;\254\3759\253\3757\252\3755\252\3753\251\376\2231\250"
- "\376\204\0\0\0\32]\267\370^\270\370`\270\370b\271\370d\272\370e\272\367g"
- "\273\367i\273\367j\274\367l\274\367n\275\366o\276\366q\276\366r\277\366t"
- "\277\366u\300\365v\300\365w\300\365y\301\365z\301\365{\302\365|\302\364}"
- "\302\364~\303\364\177\303\364\200\303\364\202\200\304\364\2\201\304\364\202"
- "\304\364\202\202\305\364\202\203\305\363\210\204\305\363\202\203\305\363"
- "\202\202\305\364\2\202\304\364\201\304\364\202\200\304\364.\200\303\364\177"
- "\303\364~\303\364}\302\364|\302\364{\302\365z\301\365y\301\365w\300\365v"
- "\300\365u\300\365t\277\366r\277\366q\276\366o\276\366n\275\366l\274\367j"
- "\274\367i\273\367g\273\367e\272\367d\272\370b\271\370`\270\370^\270\370]"
- "\267\370Z\267\371Y\266\371W\265\371U\265\371R\264\372Q\263\372O\263\372M"
- "\262\372K\261\373H\260\373G\260\373E\257\373C\256\374A\256\374>\255\374<"
- "\254\374:\253\3758\253\3756\252\3754\251\376\2241\250\376\204\0\0\0\24Z\267"
- "\371]\267\370^\270\370`\270\370b\271\370c\271\370e\272\367g\273\367h\273"
- "\367i\274\367l\274\367m\275\366o\275\366p\276\366q\276\366s\277\366t\277"
- "\366u\300\365v\300\365w\300\365\202y\301\365\202{\302\365\1|\302\364\202"
- "~\303\364\1\177\303\364\202\200\303\364\203\200\304\364\203\201\304\364\204"
- "\202\304\364\203\201\304\364\203\200\304\364\202\200\303\364\1\177\303\364"
- "\202~\303\364\1|\302\364\202{\302\365\202y\301\365(w\300\365v\300\365u\300"
- "\365t\277\366s\277\366q\276\366p\276\366o\275\366m\275\366l\274\367i\274"
- "\367h\273\367g\273\367e\272\367c\271\370b\271\370`\270\370^\270\370]\267"
- "\370Z\267\371Y\266\371W\265\371U\265\371S\264\372Q\263\372O\263\372M\262"
- "\372K\261\373I\261\373G\260\373E\257\373C\256\374A\256\374?\255\374=\254"
- "\374;\254\3759\253\3756\252\3754\251\3752\251\376\2241\250\376\204\0\0\0"
- "\31X\266\371Z\267\371\\\267\371^\270\370_\270\370b\271\370c\271\370d\272"
- "\367f\272\367g\273\367i\274\367k\274\367l\275\366n\275\366o\276\366p\276"
- "\366q\276\366s\277\366t\277\366u\300\365v\300\365w\300\365x\301\365y\301"
- "\365z\301\365\202{\302\365\2|\302\364}\302\364\203~\303\364\203\177\303\364"
- "\206\200\303\364\203\177\303\364\203~\303\364\2}\302\364|\302\364\202{\302"
- "\365,z\301\365y\301\365x\301\365w\300\365v\300\365u\300\365t\277\366s\277"
- "\366q\276\366p\276\366o\276\366n\275\366l\275\366k\274\367i\274\367g\273"
- "\367f\272\367d\272\367c\271\370b\271\370_\270\370^\270\370\\\267\371Z\267"
- "\371X\266\371W\265\371U\265\371S\264\372Q\263\372P\263\372M\262\372K\261"
- "\373I\261\373H\260\373F\257\373C\257\374A\256\374?\255\374=\254\374;\254"
- "\3759\253\3757\252\3755\252\3753\251\376\2251\250\376\204\0\0\0\21W\265\371"
- "X\266\371Z\267\371\\\267\371]\270\370_\270\370a\271\370b\271\370d\272\370"
- "e\272\367g\273\367i\273\367j\274\367k\274\367l\275\366n\275\366o\276\366"
- "\202q\276\366\3s\277\366t\277\366u\300\365\202v\300\365\1w\300\365\202y\301"
- "\365\202z\301\365\202{\302\365\203|\302\364\210}\302\364\203|\302\364\202"
- "{\302\365\202z\301\365\202y\301\365\1w\300\365\202v\300\365\3u\300\365t\277"
- "\366s\277\366\202q\276\366#o\276\366n\275\366l\275\366k\274\367j\274\367"
- "i\273\367g\273\367e\272\367d\272\370b\271\370a\271\370_\270\370]\270\370"
- "\\\267\371Z\267\371X\266\371W\265\371U\265\371S\264\372Q\263\372P\263\372"
- "M\262\372K\261\373J\261\373H\260\373F\257\373C\257\374B\256\374@\255\374"
- ">\255\374;\254\3759\253\3757\252\3755\252\3753\251\376\2261\250\376\204\0"
- "\0\0\13U\265\371W\265\371X\266\371Z\266\371\\\267\371]\270\370_\270\370`"
- "\270\370b\271\370c\271\370e\272\367\202g\273\367\14i\273\367j\274\367l\274"
- "\367m\275\366n\275\366o\276\366p\276\366q\276\366r\277\366t\277\366t\277"
- "\365u\300\365\202v\300\365\2w\300\365x\301\365\204y\301\365\203z\301\365"
- "\204{\302\365\203z\301\365\204y\301\365\2x\301\365w\300\365\202v\300\365"
- "\14u\300\365t\277\365t\277\366r\277\366q\276\366p\276\366o\276\366n\275\366"
- "m\275\366l\274\367j\274\367i\273\367\202g\273\367\34e\272\367c\271\370b\271"
- "\370`\270\370_\270\370]\270\370\\\267\371Z\266\371X\266\371W\265\371U\265"
- "\371S\264\372Q\263\372P\263\372M\262\372K\261\373J\261\373H\260\373F\257"
- "\373D\257\373B\256\374@\255\374>\255\374<\254\374:\253\3758\253\3756\252"
- "\3754\251\376\2271\250\376\204\0\0\0\26R\264\372U\265\371V\265\371X\266\371"
- "Z\266\371[\267\371]\267\370^\270\370_\270\370a\271\370b\271\370d\272\370"
- "e\272\367g\273\367h\273\367i\274\367j\274\367l\274\367m\275\366n\275\366"
- "o\275\366p\276\366\202q\276\366\5r\277\366s\277\366t\277\366t\277\365u\300"
- "\365\203v\300\365\202w\300\365\210x\301\365\202w\300\365\203v\300\365\5u"
- "\300\365t\277\365t\277\366s\277\366r\277\366\202q\276\366'p\276\366o\275"
- "\366n\275\366m\275\366l\274\367j\274\367i\274\367h\273\367g\273\367e\272"
- "\367d\272\370b\271\370a\271\370_\270\370^\270\370]\267\370[\267\371Z\266"
- "\371X\266\371V\265\371U\265\371R\264\372Q\263\372O\263\372M\262\372K\261"
- "\373J\261\373H\260\373F\260\373D\257\373B\256\374A\256\374>\255\374<\254"
- "\374:\253\3759\253\3756\252\3754\251\3752\251\376\2271\250\376\204\0\0\0"
- "\31Q\263\372R\264\372T\264\372V\265\371X\266\371Y\266\371Z\267\371\\\267"
- "\371]\270\370_\270\370`\270\370b\271\370c\271\370d\272\367f\272\367g\273"
- "\367h\273\367i\274\367j\274\367l\274\367l\275\366m\275\366o\275\366o\276"
- "\366p\276\366\202q\276\366\1r\277\366\202s\277\366\1t\277\366\202t\277\365"
- "\212u\300\365\202t\277\365\1t\277\366\202s\277\366\1r\277\366\202q\276\366"
- ")p\276\366o\276\366o\275\366m\275\366l\275\366l\274\367j\274\367i\274\367"
- "h\273\367g\273\367f\272\367d\272\367c\271\370b\271\370`\270\370_\270\370"
- "]\270\370\\\267\371Z\267\371Y\266\371X\266\371V\265\371T\264\372R\264\372"
- "Q\263\372O\263\372M\262\372K\261\373J\261\373H\260\373F\260\373D\257\373"
- "B\256\374A\256\374>\255\374<\254\374;\254\3759\253\3756\252\3754\251\375"
- "3\251\376\2301\250\376\204\0\0\0\35O\263\372P\263\372R\264\372T\264\372U"
- "\265\371W\265\371X\266\371Z\266\371[\267\371]\267\370^\270\370_\270\370a"
- "\271\370b\271\370c\271\370d\272\367f\272\367g\273\367h\273\367i\273\367j"
- "\274\367k\274\367l\274\367l\275\366m\275\366n\275\366o\275\366o\276\366p"
- "\276\366\204q\276\366\203r\277\366\204s\277\366\203r\277\366\204q\276\366"
- ",p\276\366o\276\366o\275\366n\275\366m\275\366l\275\366l\274\367k\274\367"
- "j\274\367i\273\367h\273\367g\273\367f\272\367d\272\367c\271\370b\271\370"
- "a\271\370_\270\370^\270\370]\267\370[\267\371Z\266\371X\266\371W\265\371"
- "U\265\371T\264\372R\264\372P\263\372O\263\372M\262\372K\261\373J\261\373"
- "H\260\373F\260\373D\257\373B\256\374A\256\374>\255\374=\254\374;\254\375"
- "9\253\3757\252\3755\252\3753\251\376\2311\250\376\204\0\0\0\23M\262\372N"
- "\262\372P\263\372R\264\372S\264\372U\265\371V\265\371X\266\371Y\266\371Z"
- "\267\371\\\267\371]\270\370_\270\370`\270\370a\271\370b\271\370c\271\370"
- "d\272\367e\272\367\202g\273\367\6h\273\367i\274\367j\274\367k\274\367l\274"
- "\367l\275\366\202m\275\366\1n\275\366\202o\275\366\202o\276\366\210p\276"
- "\366\202o\276\366\202o\275\366\1n\275\366\202m\275\366\6l\275\366l\274\367"
- "k\274\367j\274\367i\274\367h\273\367\202g\273\367!e\272\367d\272\367c\271"
- "\370b\271\370a\271\370`\270\370_\270\370]\270\370\\\267\371Z\267\371Y\266"
- "\371X\266\371V\265\371U\265\371S\264\372R\264\372P\263\372N\262\372M\262"
- "\372K\261\373I\261\373H\260\373F\257\373D\257\373B\256\374A\256\374>\255"
- "\374=\254\374;\254\3759\253\3757\252\3755\252\3753\251\376\2321\250\376\204"
- "\0\0\0\26K\261\373L\262\372N\262\372P\263\372Q\263\372R\264\372T\264\372"
- "U\265\371W\265\371X\266\371Z\266\371[\267\371]\267\370]\270\370_\270\370"
- "`\270\370a\271\370b\271\370c\271\370d\272\370e\272\367f\272\367\202g\273"
- "\367\5h\273\367i\273\367i\274\367j\274\367k\274\367\202l\274\367\202l\275"
- "\366\212m\275\366\202l\275\366\202l\274\367\5k\274\367j\274\367i\274\367"
- "i\273\367h\273\367\202g\273\367#f\272\367e\272\367d\272\370c\271\370b\271"
- "\370a\271\370`\270\370_\270\370]\270\370]\267\370[\267\371Z\266\371X\266"
- "\371W\265\371U\265\371T\264\372R\264\372Q\263\372P\263\372N\262\372L\262"
- "\372K\261\373I\261\373G\260\373F\257\373D\257\373B\256\374A\256\374>\255"
- "\374=\254\374;\254\3759\253\3757\252\3755\252\3754\251\376\2331\250\376\204"
- "\0\0\0\20H\260\373J\261\373L\262\372M\262\372O\263\372P\263\372R\264\372"
- "S\264\372U\265\371V\265\371X\266\371Y\266\371Z\266\371[\267\371]\267\370"
- "]\270\370\202_\270\370\1a\271\370\202b\271\370\4d\272\370d\272\367e\272\367"
- "f\272\367\202g\273\367\202h\273\367\1i\273\367\202i\274\367\204j\274\367"
- "\204k\274\367\204j\274\367\202i\274\367\1i\273\367\202h\273\367\202g\273"
- "\367\4f\272\367e\272\367d\272\367d\272\370\202b\271\370\1a\271\370\202_\270"
- "\370\34]\270\370]\267\370[\267\371Z\266\371Y\266\371X\266\371V\265\371U\265"
- "\371S\264\372R\264\372P\263\372O\263\372M\262\372L\262\372J\261\373H\260"
- "\373G\260\373F\257\373C\257\374B\256\374@\255\374>\255\374=\254\374;\254"
- "\3759\253\3757\252\3755\252\3754\251\376\2341\250\376\204\0\0\0\26F\260\373"
- "H\260\373J\261\373K\261\373M\262\372N\262\372P\263\372Q\263\372R\264\372"
- "T\264\372U\265\371V\265\371X\266\371Y\266\371Z\266\371[\267\371\\\267\371"
- "]\270\370^\270\370_\270\370`\270\370a\271\370\202b\271\370\4c\271\370d\272"
- "\370d\272\367e\272\367\202f\272\367\204g\273\367\210h\273\367\204g\273\367"
- "\202f\272\367\4e\272\367d\272\367d\272\370c\271\370\202b\271\370!a\271\370"
- "`\270\370_\270\370^\270\370]\270\370\\\267\371[\267\371Z\266\371Y\266\371"
- "X\266\371V\265\371U\265\371T\264\372R\264\372Q\263\372P\263\372N\262\372"
- "M\262\372K\261\373J\261\373H\260\373F\260\373E\257\373C\257\374A\256\374"
- "@\255\374>\255\374<\254\374;\254\3759\253\3757\252\3755\252\3754\251\376"
- "\2351\250\376\204\0\0\0\11D\257\373F\260\373H\260\373I\261\373K\261\373L"
- "\262\372M\262\372O\263\372P\263\372\202R\264\372\12T\264\372U\265\371V\265"
- "\371X\266\371Y\266\371Z\266\371[\267\371\\\267\371]\267\370]\270\370\202"
- "_\270\370\2`\270\370a\271\370\203b\271\370\1c\271\370\202d\272\370\202d\272"
- "\367\212e\272\367\202d\272\367\202d\272\370\1c\271\370\203b\271\370\2a\271"
- "\370`\270\370\202_\270\370\12]\270\370]\267\370\\\267\371[\267\371Z\266\371"
- "Y\266\371X\266\371V\265\371U\265\371T\264\372\202R\264\372\23P\263\372O\263"
- "\372M\262\372L\262\372K\261\373I\261\373H\260\373F\260\373D\257\373C\256"
- "\374A\256\374@\255\374>\255\374<\254\374;\254\3759\253\3757\252\3755\252"
- "\3754\251\376\2361\250\376\204\0\0\0\20B\256\374D\257\373F\257\373G\260\373"
- "H\260\373J\261\373K\261\373M\262\372N\262\372O\263\372P\263\372R\264\372"
- "S\264\372T\264\372U\265\371V\265\371\202X\266\371\7Y\266\371Z\267\371[\267"
- "\371\\\267\371]\267\370]\270\370^\270\370\202_\270\370\202`\270\370\1a\271"
- "\370\206b\271\370\204c\271\370\206b\271\370\1a\271\370\202`\270\370\202_"
- "\270\370\7^\270\370]\270\370]\267\370\\\267\371[\267\371Z\267\371Y\266\371"
- "\202X\266\371\31V\265\371U\265\371T\264\372S\264\372R\264\372P\263\372O\263"
- "\372N\262\372M\262\372K\261\373J\261\373H\260\373G\260\373F\257\373D\257"
- "\373B\256\374A\256\374?\255\374>\255\374;\254\375:\253\3759\253\3756\252"
- "\3755\252\3754\251\376\2371\250\376\204\0\0\0\7A\256\374B\256\374C\257\374"
- "E\257\373F\260\373H\260\373I\261\373\202K\261\373\2M\262\372N\262\372\202"
- "P\263\372\202R\264\372\4T\264\372U\265\371V\265\371W\265\371\202X\266\371"
- "\4Z\266\371Z\267\371[\267\371\\\267\371\202]\267\370\1]\270\370\202^\270"
- "\370\204_\270\370\210`\270\370\204_\270\370\202^\270\370\1]\270\370\202]"
- "\267\370\4\\\267\371[\267\371Z\267\371Z\266\371\202X\266\371\4W\265\371V"
- "\265\371U\265\371T\264\372\202R\264\372\202P\263\372\2N\262\372M\262\372"
- "\202K\261\373\17I\261\373H\260\373F\260\373E\257\373C\257\374B\256\374A\256"
- "\374>\255\374=\254\374;\254\375:\253\3758\253\3756\252\3755\252\3753\251"
- "\376\2401\250\376\204\0\0\0\15>\255\374@\255\374A\256\374C\256\374D\257\373"
- "F\257\373G\260\373H\260\373I\261\373K\261\373L\262\372M\262\372N\262\372"
- "\202P\263\372\202R\264\372\1S\264\372\202U\265\371\2V\265\371W\265\371\202"
- "X\266\371\3Y\266\371Z\266\371Z\267\371\202[\267\371\202\\\267\371\202]\267"
- "\370\212]\270\370\202]\267\370\202\\\267\371\202[\267\371\3Z\267\371Z\266"
- "\371Y\266\371\202X\266\371\2W\265\371V\265\371\202U\265\371\1S\264\372\202"
- "R\264\372\202P\263\372\24N\262\372M\262\372L\262\372K\261\373I\261\373H\260"
- "\373G\260\373F\257\373D\257\373C\256\374A\256\374@\255\374>\255\374<\254"
- "\374;\254\3759\253\3758\253\3756\252\3754\251\3753\251\376\2411\250\376\204"
- "\0\0\0\220R\360R\2K\343\241:\225\371\3428\211\376\204\0\0\0\221H\352H\1B"
- "\327\216\3421z\376\204\0\0\0\222>\343>\1-~\352\341+i\376\204\0\0\0\2224\334"
- "4\342$X\376\204\0\0\0\1\40\241\40\220*\325*\1'\256S\341\34F\376\1\25""5\300"
- "\204\0\0\0\2\2\16\2\27\234\27\216\37\316\37\2\34\240>\26""9\354\340\25""5"
- "\376\2\20(\300\1\4\21\377\0\0\0\363\0\0\0",
-};
-
+/* GIMP RGB C-Source image dump 1-byte-run-length-encoded (rotation_orientation_horz.c) */
+
+#include "image.h"
+
+static const nv_image_t rotation_orientation_horiz_image = {
+ 120, 90, 3, 0,
+ "\7\345\345\345\334\313\312\336\327\326\345\345\345\342\342\342\345\345\345"
+ "\340\340\340\202\345\345\345\1\343\343\343\203\345\345\345\3\342\342\342"
+ "\345\345\345\343\343\343\203\345\345\345\17\320\322\322\254\312\311\271\305"
+ "\325\334\334\333\276\306\312\331\332\331\327\327\327\311\311\311\340\340"
+ "\340\310\310\317\251\260\266\320\321\330\325\326\327\316\322\324\341\341"
+ "\341\301\345\345\345\3\341\341\341\344\344\344\330\330\330\202\345\345\345"
+ "\1\342\342\342\202\345\345\345\202\337\337\337-\345\345\345\334\334\334\343"
+ "\343\343\336\336\336\345\345\345\340\340\340\341\341\341\345\345\345\310"
+ "\310\310\307\307\307\345\345\345\336\332\332\265<6\262US\315\315\315\225"
+ "\225\225\242\242\242\214\214\214\273\273\273\225\225\225\251\251\251\231"
+ "\231\231\263\263\263\345\345\345\261\261\261\247\247\247\242\242\242\254"
+ "\254\254\237\237\237\311\311\311\266\277\305u\232\225\204\214\235\320\301"
+ "\251\264\247\202\300\276\262\277\276\274\312\312\315\321\321\321\270\270"
+ "\277\210\235\252\277\301\312\227\265\322\252\242\235\330\330\330\301\345"
+ "\345\345\10\342\342\342\344\344\344\267\267\267\237\237\237\301\301\301\226"
+ "\226\226\257\257\257\254\254\254\202\270\270\270\21\342\342\342\274\274\274"
+ "\275\275\275\223\223\223\264\264\264\213\213\213\204\204\204\343\343\343"
+ "\234\234\234\265\265\265\345\345\345\340\340\340\330\325\325\322\312\312"
+ "\335\335\335\316\316\316\305\305\305\202\325\325\325\31\320\320\320\324\324"
+ "\324\326\326\326\324\324\324\340\340\340\335\335\335\324\324\324\325\325"
+ "\325\326\326\326\324\324\324\331\331\331\337\337\337\277\303\307\301\301"
+ "\305\333\332\331\317\305\263\323\317\310\333\332\327\306\304\305\311\312"
+ "\313\327\327\330\266\303\320\326\326\326\301\306\316\252\254\273\302\340"
+ "\340\340\3\334\334\334\340\340\340\334\334\334\202\325\325\325\6\331\331"
+ "\331\323\323\323\277\277\277\320\320\320\317\317\317\327\327\327\202\334"
+ "\334\334\15\325\325\325\334\334\334\331\331\331\333\333\333\340\340\340\307"
+ "\307\307\315\315\315\340\340\340$<r%=r%=s&>t'?t\205'?u\23(@u'@u(@u(Av)Aw"
+ ")Bw*Bx+Cy+Dy,Dz,Ez-E{-F|.F}.G}/G~/H\1770H\1770I\200\2021I\200\33""2J\201"
+ "2J\2023K\2034L\2044M\2055N\2066O\2077P\2108Q\2119S\2139T\214:U\215;U\216"
+ ";V\216<V\217<W\220=X\220=X\221>Y\222>Y\223?Z\223@Z\224@[\224A[\225A\\\226"
+ "B\\\226B]\227\202C^\230\2D_\231D_\232\202E`\233\12Fa\234Fb\234Gb\235Gc\236"
+ "Hc\237Hd\237Ie\240Ie\241Jf\241Kf\242\202Lg\243\7Mh\244Mh\245Ni\245Nj\246"
+ "Oj\247Ok\247Pk\250\202Ql\251\10Rm\252Rn\253Sn\253So\254To\255Tp\255Up\256"
+ "Uq\257\233Vq\257\5\36""7o\37""7p\37""8p\40""9q\40""9r\202!:s\6\";t\"<u#<"
+ "u#=v$=w$>w\204%>w\203%?w\5&@x&@y'Az(Az(B{\202)C|\2*D}*D~\202+E\177&,E\200"
+ ",F\200-F\200.G\201.G\202/H\202/I\2030I\2040J\2051J\2051K\2062L\2073M\210"
+ "3N\2114O\2125P\2136Q\2157R\2168S\2178T\2209U\221:V\223;W\223;X\224<X\225"
+ "<Y\226=Y\226>Z\227>[\230?[\230?\\\231@\\\232@]\233A^\233A^\234B_\235C_\235"
+ "C`\236\202Da\237\26Eb\240Eb\241Fc\242Gc\242Hd\243He\244Ie\244If\245Jg\246"
+ "Kg\247Kh\247Lh\250Li\251Mi\251Mj\252Nk\253Nk\254Ol\254Ol\255Pm\256Qm\256"
+ "Qn\257\233Ro\260\23\36""6o\36""7o\37""8p\37""8q\40""9q\40""9r!:s!;s\";t#"
+ "<u#<v$=v$>w%>x%?x&?y&@z'@{'A{\205(B|\1)B|\202)C|))C}*D}*E~+E\177,E\177,E"
+ "\200-F\200-F\201.G\201.H\202/H\203/I\2030I\2040J\2051K\2052K\2062L\2073L"
+ "\2103M\2104N\2114N\2125O\2125O\2136P\2146Q\2157Q\2158R\2168S\2179T\221:U"
+ "\222;V\223<W\224=X\225=Z\227>[\230?\\\231@]\232A]\233A^\233B^\234B_\235\202"
+ "C`\236\17Da\237Da\240Eb\240Eb\241Fc\242Gd\243Hd\243Ie\244Ie\245Jf\245Jg\246"
+ "Kg\247Kh\247Lh\250Li\251\202Mj\252\5Nk\253Ok\254Ol\254Pl\255Pm\256\202Qn"
+ "\257\232Ro\260\10\35""6n\36""7o\36""7p\37""8p\37""8q\40""9r!:r!:s\202\";"
+ "t\5#<u#=v$=w$>w%>x\202&?y\10'@z'A{(A{(B|)B})C~*D~*D\177\202+E\200\1+F\200"
+ "\206,F\200;-F\200-G\201.G\202.H\202/H\203/I\2040J\2041J\2051K\2062K\2062"
+ "L\2073M\2103M\2114N\2114N\2125O\2136P\2136P\2147Q\2157Q\2168R\2168S\2179"
+ "S\2209T\220:T\221:U\222;U\222<V\223<W\224=W\225>Y\226?Z\227?[\231@\\\232"
+ "A]\233B_\235C`\236Da\237Eb\240Eb\241Fc\241Gc\242Hd\243He\243Ie\244If\245"
+ "Jf\246Jg\246Kg\247Lh\250Li\250Mi\251Mj\252Nj\252Nk\253Ol\254Ol\255Pm\255"
+ "Pm\256\202Qn\257\231Ro\260\7\34""6n\35""6n\36""7o\37""7p\37""8p\40""9q\40"
+ """9r\202!:s\30\";t\"<u#<u#=v$=w$>x%>x&?y&@z'@z'A{(B|(B})C})C~*D\177+D\177"
+ "+E\200,F\200,G\200-H\201-H\202.I\203.J\203\205/J\204\2030I\204\3""0J\205"
+ "1K\2051K\206\2022L\207\5""3M\2103M\2114N\2115O\2125O\213\2026P\214\5""7Q"
+ "\2157Q\2168R\2178S\2179S\220\202:T\221\34;U\222;V\223<V\223<W\224=W\225="
+ "X\226>Y\226>Y\227?Z\230@Z\230@[\231A\\\232B]\233C^\235C_\236Ea\237Fb\241"
+ "Gc\242Hd\243Ie\244Jf\245Jf\246Kg\247Kh\247Lh\250Li\251Mi\251Mj\252\202Nk"
+ "\253\5Ol\254Pl\255Pm\256Qn\256Qn\257\231Ro\260\32\34""5m\34""6n\36""6o\36"
+ """7o\37""8p\37""8q\40""9q\40""9r!:s!;t\":p*@r#<v$=v$>w%>x%?y&?y&@z'@{'A{"
+ "(B|)B})C}*C~*D\177\202+E\200\5,F\200,G\201-H\201-I\202.I\203\202/J\204\11"
+ """0K\2050K\2061L\2061M\2072M\2102N\2103N\2102N\2103N\210\2043M\210\26""4"
+ "N\2114N\2125O\2125O\2136P\2146Q\2157Q\2158R\2168R\2179S\2209T\220:T\221:"
+ "U\222;U\222;V\223<V\224<W\224=X\225>X\226>Y\226?Y\227?Z\230\202@[\231\5A"
+ "\\\232A\\\233B]\233B^\234C^\235\202D_\236\17E`\237Fa\240Fb\242Gd\243Ie\244"
+ "Jf\246Kg\247Li\250Mj\252Nj\252Nk\253Ok\254Ol\254Pm\255Pm\256\202Qn\257\230"
+ "Ro\260\33\33""5m\34""5m\35""6n\36""7o\36""7p\37""8p\37""8q\40""9rGX\200\203"
+ "\222\247\227\260\304\213\232\254$<s#=v$=w$>w%>x%?y&?z'@z'A{(A{(B|)B})C~*"
+ "D~*D\177\202+E\200\22,F\200-H\201-H\202.I\202.I\203/J\204/K\2050K\2050L\206"
+ "1L\2071M\2072M\2103N\2113O\2114O\2124P\2135P\2135Q\214\2076Q\215+7Q\2157"
+ "Q\2168R\2168R\2179S\2209T\220:T\221:U\222;V\223<V\223<W\224=W\225=X\225>"
+ "X\226>Y\227?Z\227?Z\230@[\231@[\232A\\\232B\\\233B]\234C^\234C^\235D_\236"
+ "D`\237E`\237Ea\240Ea\241Eb\241Fb\242Gc\243Gd\243Hd\244If\246Jg\247Kh\250"
+ "Mi\252Nj\253Ol\254Pm\256Qn\257Rn\260\227Ro\260$\33""4l\33""5m\34""6n\35""6"
+ "n\36""7o\37""8p\37""8q\40""9qmy\222\215\301\345\236\310\350\302\314\324\177"
+ "\207\234#<u#=v$=w%>x%?x&?y&@z'@z'A{(B|(B})C})C~*D\177+D\177+E\200,F\200,"
+ "G\200-H\201-H\202.I\203.J\203/J\204\2020K\205\10""1L\2061M\2072M\2072N\210"
+ "3N\2113O\2124O\2124P\213\2025Q\214\5""6R\2157R\2167S\2178T\2178T\220\204"
+ "9U\221\205:U\221\34;U\222;V\223<V\223<W\224=W\225=X\226>Y\226>Y\227?Z\230"
+ "@Z\230@[\231A\\\232A\\\233B]\233B]\234C^\235C_\235D_\236D`\237E`\237Ea\240"
+ "Ea\241Fb\242Fc\242Gc\243Gd\244Hd\244He\245\202If\246\7Jg\247Kg\250Kh\251"
+ "Li\252Mj\253Nk\254Ol\255\202Pm\256\1Qn\257\222Ro\260\34\33""4l\33""5m\34"
+ """5m\35""6n\36""6o\36""7o\37""8p\37""8q{\203\227\247\304\331\271\302\311"
+ "\310\313\311\207\215\231#<u#<v$=v$>w%>x%?x&?y&@z'@{'A{(B|)B})C}*D~*D\177"
+ "\202+E\200\26,F\200,G\201-H\201-I\202.I\203/J\203/J\2040K\2050L\2061L\206"
+ "1M\2072M\2102N\2103N\2113O\2124P\2135P\2135Q\2146Q\2156R\2157S\2167S\217"
+ "\2028T\220\7""9U\2219V\222:V\222;W\223;W\224<X\224<X\225\207=Y\226\4>X\226"
+ ">Y\227?Y\227?Z\230\202@[\231\5A\\\232A\\\233B]\233B^\234C^\235\202D_\236"
+ "\1E`\237\202Ea\240\14Eb\241Fb\242Fc\242Gc\243Gd\244He\245Ie\245If\246Jf\247"
+ "Jg\247Kh\250Kh\251\202Li\252\206Mj\253\1Nk\254\202Ol\255\1Pm\256\202Qn\257"
+ "\212Ro\260\35\32""4k\33""4l\33""5m\34""5m\35""6n\36""7o\36""7p\37""8pox\214"
+ "\234\234\235Ybwft\222Vh\201\";u#<u#=v$=w$>w%>x%?y&@y'@z'A{(A|(B|)C})C~*D"
+ "~*D\177\202+E\200\20,F\200-H\201-H\202.I\202.I\203/J\204/K\2040K\2050L\206"
+ "1L\2071M\2072N\2103N\2113O\2114O\2124P\213\2025Q\214\27""6R\2156R\2167S\216"
+ "7S\2178T\2209U\2209U\221:V\222:V\223;W\223;X\224<X\225<Y\225=Y\226=Z\227"
+ ">Z\227?[\230?\\\231@\\\232@]\232A]\233@]\232A]\232\202A\\\232\30A\\\233A"
+ "\\\232A]\233B]\234C^\234C^\235D_\236D`\237E`\237Ea\240Ea\241Eb\241Fb\242"
+ "Gc\243Gd\243Hd\244He\245Ie\246If\246Jg\247Jg\250Kh\250Lh\251Li\252\216Mj"
+ "\253\1Nk\254\202Ol\255\1Pm\256\202Qn\257\202Ro\260\13\32""3k\32""4l\33""5"
+ "l\33""5m\34""6n\35""6n\36""7o\37""7p\37""8q\40""8p\40""9r\202!:s#\";t\"<"
+ "u#<u#=v$=w%>x%?x&?y&@z'@z'A{(B|(B})C})C~*D\177+D\177+E\200,F\200,G\200-H"
+ "\201-H\202.I\203.J\203/J\204/K\2050K\2051L\2061M\2072M\2102N\2103N\2113O"
+ "\2124P\2124P\213\2025Q\214\5""6R\2157R\2167S\2178T\2178T\220\2029U\221\5"
+ ":V\222:W\223;W\224;X\224<X\225\202=Y\226\13>Z\227>[\230?[\230?\\\231@\\\232"
+ "@]\233A^\233A^\234B_\235C_\235C`\236\203Da\237\202D`\237\204E`\237\17Ea\240"
+ "Eb\241Fb\242Fc\242Gc\243Gd\244Hd\244He\245If\246If\247Jg\247Kg\250Kh\251"
+ "Li\251Li\252\224Mj\253\30Nk\254\31""3j\32""4k\32""4l\33""5m\34""5m\35""6"
+ "n\36""7o>Py5JwAT\177>Q}>Q~BT~<P}\";t#<u#<v$=v$>w%>x%?y&?y&@z\202'A{\5(B|"
+ ")B})C}*C~*D\177\202+E\200\5,F\200,G\201-H\201.I\202.I\203\202/J\204\22""0"
+ "K\2050L\2061L\2061M\2072M\2102N\2103N\2113O\2124P\2135P\2135Q\2146Q\2156"
+ "R\2157S\2167S\2178T\2178T\2209U\221\202:V\222\17;W\223;W\224<X\224<Y\225"
+ "=Y\226=Z\227>Z\227>[\230?[\231?\\\231@]\232A]\233A^\234B^\234B_\235\202C"
+ "`\236\7Da\237Da\240Eb\240Ec\241Fc\242Gd\243Hd\243\203Hd\244\202Hd\243\12"
+ "Gd\244Gd\243Gd\244He\245Ie\245If\246Jf\247Jg\250Kh\250Kh\251\202Li\252\224"
+ "Mj\253\37\31""3j\32""3k\32""4k\33""4l\33""5m\34""6m\35""6n8Kx8Ku=LnFUwIX"
+ "zBRv5Go\";t\";u#<u#=v$=w$>w%>x&?y&@y'@z'A{(A|(B|)C})C~*D~*D\177\202+E\200"
+ "\20,F\200-H\201-H\202.I\202.I\203/J\204/K\2040K\2050L\2061L\2071M\2072N\210"
+ "3N\2113O\2114O\2124P\213\2025Q\214\5""6R\2156R\2167S\2167S\2178T\220\202"
+ "9U\221\30:V\222:V\223;W\223;X\224<X\225<Y\225=Y\226=Z\227>Z\230?[\230?\\"
+ "\231@\\\232@]\232A]\233A^\234B_\234B_\235C`\236D`\237Da\237Eb\240Eb\241F"
+ "c\241Gc\242\202Hd\243\5Ie\244If\245Jf\246Jg\246Kh\247\203Lh\250\204Kh\250"
+ "\4Kg\250Kh\250Kh\251Li\252\224Mj\253\15\31""2i\31""3j\32""3k\32""4l\33""5"
+ "l\33""5m\34""6n\35""6n\36""7o\37""8p\37""8q\40""9q\40""9r\202!:s*\";t\"<"
+ "u#<u$=v$=w%>x%?x&?y&@z'@z'A{(B|(B})C}*C~*D\177+D\177+E\200,F\200,G\201-H"
+ "\201-H\202.I\203.J\203/J\204/K\2050K\2051L\2061M\2072M\2102N\2103N\2113O"
+ "\2124O\2124P\2135Q\2146Q\2146R\2157R\2167S\2178T\2178T\220\2029U\221&:V\222"
+ ":W\223;W\224;X\224<X\225=Y\226=Z\226>Z\227>[\230?[\230?\\\231@\\\232@]\233"
+ "A^\233A^\234B_\235C_\235C`\236Da\237Da\240Eb\240Eb\241Fc\242Gd\242Hd\243"
+ "He\244Ie\244Jf\245Jf\246Kg\247Kh\247Lh\250Li\251Mj\251Mj\252Nk\253Nk\254"
+ "Ol\254\202Ol\255\202Ol\254\2Ol\255Nk\254\221Mj\253\14\30""2i\31""2j\31""3"
+ "j\32""4k\32""4l\33""5m\34""5m\34""6n\36""6o\36""7o\37""8p\37""8q\202\40""9"
+ "r\1!:s\202\";t\17#<u#<v$=v$>w%>x%?y&?y&@z'A{(A{(B|)B})C}*D~*D\177\202+E\200"
+ "\26,F\200,G\201-H\201-I\202.I\203/J\203/J\2040K\2050L\2061L\2061M\2072M\210"
+ "2N\2103N\2114O\2124P\2135P\2135Q\2146Q\2156R\2157S\2167S\217\2028T\220\22"
+ """9U\2219V\222:V\222;W\223;W\224<X\224<Y\225=Y\226=Z\227>Z\227>[\230?[\231"
+ "@\\\231@]\232A]\233A^\234B^\234B_\235\202C`\236\5Da\237Da\240Eb\241Fc\241"
+ "Fc\242\202Hd\243\17Ie\244Ie\245Jf\245Jg\246Kg\247Kh\250Li\250Li\251Mj\252"
+ "Nj\252Nk\253Ok\254Ol\255Pm\255Pm\256\202Qn\257\203Ro\260\2Qn\257Pm\256\202"
+ "Ol\255\1Nk\254\212Mj\2533\30""1i\31""2i\31""3j\32""3k\32""4k\33""4l\33""5"
+ "m\34""6m\35""6n\36""7o\36""7p\37""8p\40""9q\40""9r!:r!:s\";t\";u#<u#=v$="
+ "w%>w%>x&?y&@y'@z'A{(A|(B|)B})C~*D~*D\177+E\200,E\200,F\200-H\201-H\202.I"
+ "\202.I\203/J\204/K\2050K\2050L\2061L\2072M\2072N\2103N\2113O\2124O\2124P"
+ "\213\2025Q\214\5""6R\2156R\2167S\2167S\2178T\220\2029U\221*:V\222:V\223;"
+ "W\223;X\224<X\225<Y\225=Y\226=Z\227>[\230?[\230?\\\231@\\\232@]\232A]\233"
+ "A^\234B_\234B_\235C`\236D`\237Da\237Eb\240Eb\241Fc\241Gc\242Hd\243He\244"
+ "Ie\244If\245Jf\246Kg\246Kh\247Lh\250Li\250Mi\251Mj\252Nj\253Nk\253Ol\254"
+ "Ol\255Pm\256Qm\256Qn\257\212Ro\260\2Qn\257Pm\256\202Ol\255\1Nk\254\203Mj"
+ "\253\17\30""1h\30""2i\31""2j\31""3j\32""3k\32""4l\33""5l\33""5m\34""6n\35"
+ """6n\36""7o\37""7p\37""8q\40""9q\40""9r\202!:s\31\";t\"<u#<v$=v$=w%>x%?x"
+ "&?y&@z'@z'A{(B|(B})C}*C~*D\177+E\177+E\200,F\200,G\200-H\201-H\202.I\203"
+ ".J\203/J\204\2020K\205\17""1L\2061M\2072M\2102N\2103N\2113O\2124P\2124P\213"
+ "5Q\2146Q\2146R\2157R\2167S\2178T\2178T\220\2029U\221*:V\222:W\223;W\224<"
+ "X\224<X\225=Y\226=Z\226>Z\227>[\230?[\231?\\\231@]\232@]\233A^\233A^\234"
+ "B_\235C_\235C`\236Da\237Da\240Eb\240Eb\241Fc\242Gd\242Hd\243Ie\244Ie\245"
+ "Jf\245Jg\246Kg\247Kh\247Lh\250Li\251Mi\251Mj\252Nk\253Ok\254Ol\254Pl\255"
+ "Pm\256Qn\256Qn\257\220Ro\260\13Qn\257\27""1h\30""1h\30""2i\31""2j\31""3j"
+ "\32""4k\33""4l\33""5m\34""5m\35""6n\202\36""7o\2\37""8p\37""8q\202\40""9"
+ "r\1!:s\202\";t\10#<u#<v$=v$>w%>x%?y&?y&@z\202'A{\5(B|)B})C}*C~*D\177\202"
+ "+E\200\5,F\200,G\201-H\201.I\202.I\203\202/J\204\13""0K\2050L\2061L\2061"
+ "M\2072M\2102N\2103O\2114O\2124P\2135P\2135Q\214\2026R\215\2""7S\2167S\217"
+ "\2028T\220\22""9U\2219V\222:V\222;W\223;W\224<X\224<Y\225=Y\226=Z\227>Z\227"
+ ">[\230?\\\231@\\\231@]\232A]\233A^\234B^\234B_\235\202C`\236\5Da\237Da\240"
+ "Eb\241Fc\241Fc\242\202Hd\243\17Ie\244If\245Jf\245Jg\246Kg\247Kh\250Li\250"
+ "Mi\251Mj\252Nj\252Nk\253Ok\254Ol\255Pm\255Pm\256\202Qn\257\220Ro\2605\27"
+ """0g\27""1h\30""1i\31""2i\31""3j\32""3k\32""4k\33""4l\33""5m\34""6n\35""6"
+ "n\36""7o\36""7p\37""8p\40""9q\40""9r!:r!:s\";t\";u#<u#=v$=w$>w%>x&?y&@z'"
+ "@z'A{(A|(B|)C})C~*D~*D\177+E\200,E\200,G\200-H\201-H\202.I\202.I\203/J\204"
+ "/K\2050K\2050L\2061L\2072M\2072N\2103N\2113O\2114O\2124P\213\2025Q\214\5"
+ """6R\2156R\2167S\2168S\2178T\220\2029U\221\17:V\222:V\223;W\223;X\224<X\225"
+ "<Y\225=Y\226>Z\227>[\230?[\230?\\\231@\\\232@]\232A]\233A^\234\202B_\235"
+ "\22C`\236D`\237Da\237Eb\240Eb\241Fc\242Gc\242Hd\243He\244Ie\244If\245Jf\246"
+ "Kg\246Kg\247Lh\250Li\251Mi\251Mj\252\202Nk\253\5Ol\254Ol\255Pm\255Pm\256"
+ "Qn\257\220Ro\260\202\27""0g\15\27""0f\30""0g\30""1g\31""1g\31""1h\32""2h"
+ "\32""2i\33""2h\33""4j\33""3j\34""5l\35""5l\35""6m\202\36""7nX\37""8o\37""8"
+ "p\40""9q\40:q!:r!;s\";s#<t#=u$=v$>w%?x&@y'@z'A{(B|)C}*D~+D\177+E\200,F\200"
+ ",G\201-H\201-H\202.I\203.J\203/J\2040K\2050K\2061L\2061M\2072M\2102N\210"
+ "3N\2113O\2124P\2124P\2135Q\2146Q\2156R\2157R\2167S\2178T\2178T\2209U\221"
+ "9U\222:V\222:W\223;W\224;X\224<X\225=Y\226=Z\226>Z\227>[\230?[\231?\\\231"
+ "@]\232@]\233A^\233B^\234B_\235C_\235C`\236Da\237Da\240Eb\240Eb\241Fc\242"
+ "Gd\242Hd\243Ie\244Ie\245Jf\245Jf\246Kg\247Kh\247Lh\250Li\251Mj\251Mj\252"
+ "Nk\253Ok\254Ol\254Pl\255Pm\256Qn\256Qn\257\217Ro\260\23\25-b\26-b\26.c\27"
+ ".c\27/d\30/e\30""0e\31""1f|xt\315\257z\225\204l\267\231j4Ce\33""4j\34""5"
+ "k\34""5l\35""6m\35""7m\36""7n\202\37""8o\26\40""9p\40""9q!:q!;r\";s\"<t#"
+ "<t#=u$>v%>v%?w&?x&@y'Ay'Az(B{)C|*D~+E\177,G\200-H\201.I\203\202/J\204\13"
+ """0K\2050L\2061L\2061M\2072M\2102N\2113O\2114O\2124P\2135P\2135Q\214\202"
+ "6R\215\2""7S\2167S\217\2028T\220\1""9U\221\202:V\222\17;W\223;W\224<X\225"
+ "<Y\225=Y\226=Z\227>Z\227>[\230?\\\231@\\\232@]\232A]\233A^\234B_\234B_\235"
+ "\202C`\236\5Da\237Da\240Eb\241Fc\241Fc\242\202Hd\243\17Ie\244If\245Jf\246"
+ "Jg\246Kg\247Kh\250Li\250Mi\251Mj\252Nj\252Nk\253Ol\254Ol\255Pm\255Pm\256"
+ "\202Qn\257\213Ro\260\33Qn\257Pm\256Ol\255\25,a\25-a\26-b\26.c\27.d\30/d\30"
+ """0e\31""1g\200zu\333\271\206\321\264\210\336\300\222\223\207{\33""4k\34"
+ """5l\34""6l\35""6m\36""7n\36""8o\37""8o\40""9p\40""9q!:q!;r\202\";s\11\""
+ "<t#<t#=u$=u$>v%>w%?w&@x&@y\202'Az\22(B{)B|)C|*D}*D~+E~+E\200-G\200.H\202"
+ "/J\2040L\2061L\2072M\2072N\2103N\2113O\2114O\2124P\213\2025Q\214\5""6R\215"
+ "6R\2167S\2168S\2178T\220\2029U\221\17:V\222:V\223;W\223;X\224<X\225<Y\225"
+ "=Y\226>Z\227>[\230?[\230?\\\231@\\\232@]\232A^\233A^\234\202B_\235\1C`\236"
+ "\202Da\237\3Eb\240Eb\241Fc\241\203Gc\242\203Fb\241\15Fb\242Fc\243Gd\243H"
+ "e\245Jg\247Li\251Nj\253Nk\253Ol\254Ol\255Pm\256Qm\256Qn\257\205Ro\260\202"
+ "Qn\257\3Pm\256Ol\255Nk\254\204Mj\253\23\24,`\25,a\26-b\26.c\27""0f\30""1"
+ "h\31""2j\31""3jjjs\361\312\223\177vlle_HIU\36""6n\36""7o\37""8p\37""8q\40"
+ """9q\40""9r\202!:s\11\";t\"<u#<v$=v$>w%>x%?x&?y&@y\202&@z\202'Az\2'A{(A{"
+ "\203(B{\4)C|)C}*D}*D~\202+E\177\22,E\200-F\200-F\201.H\2020J\2041L\2072N"
+ "\2103N\2113O\2124P\2124P\2135Q\2146Q\2156R\2157S\2167S\2178T\2178T\220\202"
+ "9U\221\20:V\222:W\223;W\224<X\224<X\225=Y\226=Z\226>Z\227>[\230?[\231?\\"
+ "\231@]\232@]\233A^\233B^\234B_\235\202C`\236\202Da\237\23D`\237C_\236C^\235"
+ "C_\235D_\236E`\237E`\240Ea\240Eb\241Fb\242Fc\242Gc\243Gd\244He\245If\246"
+ "Kh\250Nj\253Ol\254Pl\255\204Pm\256\2Ol\255Nk\254\212Mj\253\16\24+`\25,a\26"
+ ".d\27""0g\27""1h\30""1h\30""2i\31""2jafv\237\204a\217_?\235jEqK?\35""6n\202"
+ "\36""7o\5\37""8p\37""8q\40""9r!:r!:s\202\";t\17#<u#<v$=w$>w%>x%?y&?y&@z'"
+ "A{(A{(B|)B})C~*D~*D\177\203+E\200\4+F\200+E\177+F\177+E\177\202,E\200\17"
+ "-F\200-G\201.G\201.H\2020I\2042M\2073O\2114O\2124P\2135P\2135Q\2146R\215"
+ "6R\2167S\2167S\217\2028T\220\1""9U\221\202:V\222\15;W\223;X\224<X\225<Y\225"
+ "=Y\226=Z\227>Z\227>[\230?\\\231@\\\232@]\232A]\233A^\234\202B^\234\7A]\233"
+ "A\\\233A\\\232A\\\233B]\234C^\234C^\235\202D_\236\1E`\237\202Ea\240\14Eb"
+ "\241Fb\242Fc\243Gc\243Hd\244He\245Ie\245If\246Jg\247Jg\250Kh\250Kh\251\202"
+ "Li\252\214Mj\253\7\24+_\24,b\26/f\26""0f\27""0g\27""1h\30""1i\202\31""2i"
+ "\13\32""3k(6aEE]\40""5e\34""6n\35""6n\36""7o\36""7p\37""8p\40""9q\40""9r"
+ "\202!:s\27\";t\";u#<u#=v$=w%>w%>x&?y&@z'@z'A{(A|(B|)C})C~*D\177+D\177+E\200"
+ ",F\200,G\200-H\201-H\202.I\202\202.H\202\12-G\201-F\200.G\201.G\202/H\202"
+ "/I\2031K\2063O\2114O\2124P\213\2025Q\214\5""6R\2156R\2167S\2168T\2178T\220"
+ "\2029U\221\16:V\222:V\223;W\223;X\224<X\225<Y\226=Y\226>Z\227>[\230?[\230"
+ "?\\\231@\\\232?\\\231?[\230\203?Z\230\1@[\231\202A\\\232\2B]\233B]\234\202"
+ "C^\235\13D_\236D`\237E`\237Ea\240Ea\241Fb\241Fc\242Gc\243Gd\244Hd\244He\245"
+ "\202If\246\5Jg\247Jg\250Kh\251Lh\251Li\252\212Mj\253\6Nk\254Ol\255\23+_\24"
+ ",`\26/e\26/f\202\27""0g!*Aq3Hu;Nx2Fq2Gu=Py7Ly7Lz.Du\36""6o\36""7o\37""8p"
+ "\37""8q\40""9q\40""9r!:s!;t\";t#<u#<v$=v$=w%>x%?x&?y&@z'@{'A{(B|(B})C}*C"
+ "~*D\177\202+E\200*,F\200,G\201-H\201-I\202.I\203.J\203/J\204/K\204.I\203"
+ ".G\201.H\202/H\203/I\2031L\2063O\2124P\2124P\2135Q\2146Q\2156R\2157R\216"
+ "7S\2178T\2178T\2209U\2219V\221:V\222;W\223;W\224<X\224<X\225=Y\226=Z\226"
+ ">Z\227=Y\226=X\225<W\225=X\225=X\226>Y\226?Y\227?Z\230\202@[\231\17A\\\232"
+ "A\\\233B]\233B]\234C^\235C_\235D_\236E`\237E`\240Ea\240Eb\241Fb\242Fc\242"
+ "Gc\243Gd\244\202He\245\7If\246Jf\247Jg\247Kg\250Kh\251Li\251Li\252\205Mj"
+ "\253\4Nk\254Ol\255Pm\256Qn\257\202Ro\260\20\23*_\24+_\25-b\26/f\26""0f\27"
+ """0g0DoBQq;Kn7Jt)=k7Iq=Lm@Pt6Ho\35""6n\202\36""7o\5\37""8p\37""8q\40""9r"
+ "\40:r!:s\202\";t\17#<u#=v$=v$>w%>x%?y&?y'@z'A{(A{(B|)B})C~*D~*D\177\202+"
+ "E\200\5,F\200,H\201-H\202.I\202.I\203\202/J\204\2""0K\2050J\205\202.H\202"
+ "\13/H\2030I\2042M\2074O\2124P\2135P\2135Q\2146R\2156R\2167S\2167S\217\202"
+ "8T\220\1""9U\221\202:V\222\1;W\223\202;W\224\14;V\223;U\222:U\222;U\223;"
+ "V\223<W\224=W\224=X\225>X\226>Y\227?Z\227?Z\230\202@[\231\5A\\\232B\\\233"
+ "B]\234C^\234C^\235\202D_\236\17Ea\240Fb\241Fc\242Fb\241Fb\242Fc\243Gd\243"
+ "Hd\244He\245Ie\246If\246Jg\247Jg\250Kh\250Kh\251\202Li\252\4Mj\253Nk\254"
+ "Pm\256Qn\257\206Ro\260\26\23*^\23*_\24+_\24,b\26/e\26""0g\27""0g\30""1h\30"
+ """2i\31""2i\31""3j\32""3k\32""4k\33""4l\33""5m\34""6n\35""6n\36""7o\36""7"
+ "p\37""8p\40""9q\40""9r\202!:s#\";t\";u#<u#=v$=w$>x%>x&?y&@z'@z'A{(A|(B|)"
+ "C})C~*D~+D\177+E\200,F\200,G\200-H\201-H\202.I\202.J\203/J\204/K\2050K\205"
+ "/J\205.G\202/H\202/I\2030I\2043N\2114O\2124P\213\2025Q\214\5""6R\2156R\216"
+ "7S\2168T\2178T\220\2039U\221\1""9T\220\2028S\217\13""9S\2209T\220:T\221;"
+ "U\222;V\223<V\223<W\224=W\225=X\225>Y\226>Y\227\202?Z\230\16@[\231A[\232"
+ "A\\\232B]\233B]\234C_\235Ea\240Gc\242He\244Ie\244If\245Jf\246If\245Ie\245"
+ "\204He\245\7If\246Jf\247Kg\250Li\251Mj\252Nk\254Pm\256\212Ro\260)\22)]\23"
+ "*^\23+_\24+`\25,`\25-b\26/e\27""0g\30""1h\30""2i\31""2j\31""3j\32""3k\32"
+ """4l\33""5l\34""5m\34""6n\35""6o\36""7o\37""8p\37""8q\40""9q\40""9r!:s!;"
+ "s\";t#<u#<v$=v$=w%>x%?x&?y&@z'@{'A{(B|(B})C}*C~*D\177\202+E\200\11,F\200"
+ ",G\201-H\201-I\202.I\203/J\203/J\2040K\2050K\206\202.H\202\4/H\203/I\203"
+ "1K\2063O\212\2024P\213\3""5Q\2146Q\2156R\215\2027S\216\24""7R\2166Q\2156"
+ "P\2146Q\2157Q\2157R\2168R\2179S\2179S\220:T\221:U\221;U\222;V\223<V\224<"
+ "W\224=X\225=X\226>Y\226?Y\227?Z\230\202@[\231\30A\\\232B^\235Da\237Eb\241"
+ "Fc\242Gd\243Hd\243Ie\244Ie\245Jf\245Jg\246Kg\247Kh\247Lh\250Li\251Mj\251"
+ "Mj\252Nk\253Ok\254Ol\254Pm\255Pm\256Qn\256Qn\257\211Ro\260\1\22)]\202\23"
+ "*^\17\24+_\24+`\25,a\25-a\26-b\27/e\30""0g\30""2h\31""2j\32""3k\32""4k\33"
+ """4l\33""5m\34""5m\35""6n\202\36""7o\5\37""8p\37""8q\40""9r!:r!:s\202\";"
+ "t\17#<u#=v$=w$>w%>x%?y&?y'@z'A{(A|(B|)B})C~*D~*D\177\202+E\200\5,F\200,H"
+ "\201-H\202.I\202.I\203\202/J\204\11""0K\205/I\203.G\201.H\202/H\203/I\204"
+ "2N\2104O\2124P\213\2025P\213\37""4O\2134N\2124N\2114N\2125O\2136P\2136P\214"
+ "7Q\2157Q\2168R\2168S\2179S\2209T\220:T\221:U\222;U\223;V\223<W\224=W\225"
+ "=X\225>X\226>Y\227?Z\227@[\231B^\234C`\236Da\237Eb\240Eb\241Fc\241Gc\242"
+ "\202Hd\243\17Ie\244If\245Jf\246Jg\246Kg\247Kh\250Li\250Mi\251Mj\252Nj\253"
+ "Nk\253Ol\254Ol\255Pm\255Pm\256\202Qn\257\210Ro\260\202\22)]\26\23*^\23*_"
+ "\24+_\24,`\25,a\25-a\26-b\27.c\27/d\30/e\30""1g\31""2i\32""3j\33""4l\33""5"
+ "m\34""6n\35""6n\36""7o\37""7p\37""8p\40""9q\40""9r\202!:s\26\";t\"<u#<u#"
+ "=v$=w%>w%>x&?y&@z'@z'A{(A|(B|)C})C~*D\177+D\177+E\200,F\200,G\200-H\201-"
+ "H\202\202.I\203\12/J\204/K\205/I\203.G\201.G\202/H\202/I\2031K\2062N\210"
+ "2M\210\2032L\207\5""3M\2104M\2114N\2115O\2125O\213\2026P\214\5""7Q\2157Q"
+ "\2168R\2168S\2179S\220\202:T\221\13;U\222;V\223<V\223<W\224=W\225=X\226?"
+ "Z\230@]\233B_\235C_\235C`\236\202Da\237\26Eb\240Eb\241Fc\242Gc\242Hd\243"
+ "He\244Ie\244If\245Jf\246Kg\247Kh\247Lh\250Li\251Mi\251Mj\252Nk\253Nk\254"
+ "Ol\254Ol\255Pm\256Qn\256Qn\257\206Ro\260\202Qn\257\202\22)])\22)^\23*^\23"
+ "+_\24+`\25,`\25,a\26-a&9dBTy+?j\30/e\30""0e\31""1f\31""1g\32""2h\33""3j\34"
+ """5l\35""6n\36""7o\37""8p\37""8q\40""9q\40""9r!:s!;t\";t#<u#<v$=v$=w%>x%"
+ "?x&?y&@z'@{'A{(B|(B})C}*C~*D\177\202+E\200*,F\200,G\201-H\201-I\202.I\203"
+ "/J\203/J\204.I\203-F\201.G\201.H\202/H\203/I\2030I\2040J\2051K\2062K\206"
+ "2L\2073L\2103M\2104N\2114N\2125O\2125O\2136P\2146Q\2157Q\2157R\2168R\217"
+ "9S\2179S\220:T\221:U\221;U\222;V\223<W\224>Y\227@\\\231A]\233A^\233B^\234"
+ "B_\235\202C`\236\17Da\237Da\240Eb\240Eb\241Fc\242Gd\243Hd\243Ie\244Ie\245"
+ "Jf\245Jg\246Kg\247Kh\247Lh\250Li\251\202Mj\252\2Nk\253Ok\254\202Ol\254\4"
+ "Ol\255Ol\254Nk\254Ol\255\202Nk\254\204Mj\253,\23+a\22*^\22)]\23*^\23*_\24"
+ "+_\24+`\25,a7Hk\225\230\234\315\317\321\237\244\252':e\30/e\31""0f\31""1"
+ "f\32""1g\32""2h\33""2h\33""3i\33""4j\34""5k\35""6m\36""7o\37""8q\40""9r!"
+ ":s\";t\";u#<u#=v$=w$>w%>x%?y&?y'@z'A{(A{(B|)B})C~*D~*D\177\202+E\200\4,F"
+ "\200-H\201-H\202.I\202\202.I\203+-G\201-F\200-G\201.G\202.H\202/H\2030I\204"
+ "0J\2041J\2051K\2062K\2062L\2073M\2103M\2114N\2114N\2125O\2136P\2136P\214"
+ "7Q\2157Q\2168R\2168S\2179S\2209T\220:T\221;V\223=X\225>[\230?\\\231@\\\232"
+ "@]\232A]\233A^\234B_\234B_\235C`\236C`\237Da\237Eb\240Eb\241Fc\241Gc\242"
+ "\202Hd\243\6Ie\244If\245Jf\246Jg\246Kg\247Kh\250\202Lh\250\2Kh\250Kg\247"
+ "\202Jg\247\5Jg\250Kh\250Kh\251Li\252Mi\252\206Mj\253\202\23,b\21\23+`\22"
+ "*^\23*^\23*_\24+_\24,`';e\241\257\275\226\241\253\214\230\243\35""1^\30/"
+ "d\30""0e\31""0f\31""1g\32""2g\32""2h\202\33""3i\26\33""4j\33""4k\34""5l\35"
+ """6l\35""6m\36""7n\37""8p\40:r!;s#<u#=v$=w%>x%?x&?y&@z'@z'A{(A|(B|)C})C~"
+ "\202*D\177\2+E\200,F\200\202,G\200\1+F\200\202+E\177\13,E\200,F\200-F\200"
+ ".G\201.H\202/H\203/I\2030I\2040J\2051J\2051K\206\2022L\207\5""3M\2104M\211"
+ "4N\2125O\2125O\213\2026P\214\31""7Q\2157R\2168R\2169S\220:V\222<X\225=Y\226"
+ ">Z\227>[\230?[\230?\\\231@\\\232@]\233A^\233A^\234B_\235C_\235C`\236Da\237"
+ "Da\240Eb\240Eb\241Fc\242Gc\242Hd\243\202Ie\244\17If\245He\244Hd\244Gd\243"
+ "Gc\243Gd\244Hd\244He\245If\246If\247Jg\247Kg\250Kh\251Li\251Li\252\206Mj"
+ "\253\204\23,b(\23+a\23+_\24+_\24+`\26+]\312\312\313\245\245\246\233\234\236"
+ "\26-a\27/d\30/e\30""0e\31""0f\32""1g\32""2g\33""2h\33""3i\33""3j\33""4j\34"
+ """5k\34""5l\35""6l\35""6m\36""7n\36""8o\37""8o\40""9p\40:q!;s\"<t$=v%>w&"
+ "?y&@z'@{'A{(B|)B})C}*D~\202*D\177\1*D~\202)C}\3*D}*E~+E\177\202,E\200#-F"
+ "\200-G\201.G\201.H\202/H\203/I\2030I\2040J\2051K\2062K\2062L\2073L\2103M"
+ "\2104N\2114N\2125O\2125O\2136P\2147Q\2158S\217:V\222;W\224<X\224<Y\225=Y"
+ "\226=Z\227>Z\227>[\230?[\231?\\\231@]\232A]\233A^\233B^\234B_\235\202C`\236"
+ "\7Da\237Da\240Eb\240Ec\241Fc\242Fb\241Fa\240\203Ea\240\5Eb\241Fb\242Fc\243"
+ "Gc\243Gd\244\202He\245\5If\246Jf\247Jg\247Kh\250Kh\251\202Li\252\3Mj\253"
+ "Nk\254Ol\255\202Pm\256\205\23,b%\24-c\24,b\24,a\24+`hr\207\201\204\213Q\\"
+ "t\26.c\27.c\27/d\30""0e\31""0f\31""1f\32""1g\32""2h\33""2h\33""3i\33""4j"
+ "\33""4k\34""5k\35""5l\35""6m\36""7m\36""7n\37""8o\37""8p\40""9p\40:q!:r!"
+ ";r\";s\"<t#=u%>w%?x'@z'A{\202(B|3(Az'Az(B{(B|)C|*D}*D~+E~+E\177,E\200,F\200"
+ "-F\200-G\201.G\202.H\202/H\2030I\2040J\2041J\2051K\2062K\2072L\2073M\210"
+ "3M\2114N\2114N\2126Q\2148S\2179U\221:V\222:V\223;W\223;X\224<X\225<Y\225"
+ "=Y\226=Z\227>Z\230?[\230?\\\231@\\\232@]\232A]\233A^\234B_\234B_\235C`\236"
+ "C`\237D`\237C_\236C_\235\202C^\235\23D_\236D`\236E`\237Ea\240Ea\241Eb\241"
+ "Fb\242Gc\243Gd\243Hd\244He\245Ie\246If\246Kh\250Li\252Nk\253Ol\255Pm\256"
+ "Qo\257\204Ro\260\206\23,b\5\24-c\24-d\25.d\25-c\25-b\202\26-b\10\27.c\27"
+ "/d\30/d\30""0e\31""0f\31""1g\32""2g\32""2h\202\33""3i\5\33""4j\34""4k\34"
+ """5l\35""6l\35""6m\202\36""7n\22\37""8o\37""9p\40""9p!:q!:r\";s\"<s#<t#="
+ "u$=u$>v%>w%?x&@x&@y'Az(Az(B{\202)C|\2*D}*D~\202+E\177\13,E\200,F\200-F\200"
+ ".G\201.H\202/H\203/I\2030I\2040J\2051J\2051K\206\2022L\207\5""3N\2115P\214"
+ "7S\2168T\2178T\220\2029U\221\5:V\222:W\223;W\223;X\224<X\225\202=Y\226\12"
+ ">Z\227>[\230?[\230?\\\231@\\\232@]\233A^\233A^\234A^\233A]\233\203A\\\232"
+ "\26B]\233B]\234C^\235C_\235D_\236D`\237E`\237Ea\240Eb\241Fb\242Fc\242Hd\244"
+ "If\246Kg\247Li\251Nj\253Nk\254Ol\254Pl\255Pm\256Qn\256Qn\257\203Ro\260\1"
+ "Qn\257\206\23,b\7\23,c\24-c0Es@OoARwM\\{+?k\203\27/d\30\30/e\30""0e\31""1"
+ "f\32""1g\32""2h\33""2h\33""3i\33""3j\33""4j\34""5k\34""5l\35""6l\35""6m\36"
+ """7n\36""8o\37""8o\40""9p\40""9q!:q!;r\";s\"<s#<t#=u\202$>v\5%?w&?x&@x'@"
+ "y'Az\202(B{\5)C|)C}*D}*E~+E\177\202,E\200\17-F\200-G\201.G\201.H\202/H\203"
+ "/I\2030J\2040J\2051K\2062L\2074P\2136Q\2156R\2157S\2167S\217\2028T\220\22"
+ """9U\2219V\222:V\222;W\223;W\224<X\224<X\225=Y\226=Z\227>Z\227>[\230?[\231"
+ "@\\\231?\\\231?Z\230>Y\227?Y\227?Z\230\202@[\231\5A\\\232A\\\233B]\233B^"
+ "\234C^\235\202D_\236\17E`\237Ea\240Gc\242He\244Jg\246Kh\250Lh\250Li\251M"
+ "j\252Nj\252Nk\253Ok\254Ol\254Pm\255Pm\256\202Qn\257\202Ro\260\1Nk\254\207"
+ "\23,b\11\24-c\31""2g\37""4b/Bl)<g\35""4f\27""0g\27""1h\30""1h\202\30""1g"
+ "f\31""1g\31""1f\32""1g\32""2h\33""2h\33""3i\33""4j\33""4k\34""5k\35""5l\35"
+ """6m\36""7m\36""7n\37""8o\37""8p\40""9p\40:q!:r!;r\";s#<t#=t$=u$>v%>w%?w"
+ "&?x&@y'Ay'Az(B{(B|)C|*D}*D~+E~+E\177,E\200,F\200-F\200-G\201.G\202.H\202"
+ "/I\2030I\2040J\2042M\2104P\2135P\2135Q\2146R\2156R\2167S\2167S\2178T\220"
+ "9U\2209U\221:V\222:V\223;W\223;X\224<X\225<Y\225=Y\226=Z\227>Z\227>Y\227"
+ "=X\225=W\225=X\225>X\226>Y\227?Z\227?Z\230@[\231@[\232A\\\232A]\233B]\234"
+ "C^\234C^\235E`\237Gc\242Ie\244If\245Jf\246Jg\246Kg\247Lh\250Li\250Mi\251"
+ "Mj\252Nj\253Nk\253Ol\254Ol\255Pm\255Pm\256Qn\257Ro\260Ol\255Mj\253\210\23"
+ ",b\15\24-c\24-d\25.d\25/e\26/f\26""0g\27""0g\30""1h\30""2i\31""2i\31""3j"
+ "\32""3k\32""3j\202\33""3j\202\33""3i\1\33""4j\202\34""5k\2\35""6l\35""6m"
+ "\202\36""7n\26\37""8o\37""9p\40""9p!:q!:r\";s\"<s#<t#=u$=u$>v%?w%?x&@x'@"
+ "y'Az(Az(B{)C|)C}*D}*D~\202+E\177\13,E\200,F\200-F\200.G\201.H\202/H\203/"
+ "I\2030I\2042M\2074P\2124P\213\2025Q\214\5""6R\2157R\2167S\2178T\2178T\220"
+ "\2029U\221\7:V\222:W\223;W\224<X\224<X\225<Y\225<W\224\202;V\223\11<V\223"
+ "<W\224=W\225=X\226>Y\226>Y\227?Z\230@Z\230@[\231\202A\\\232\26B]\233C_\236"
+ "Fb\241Gd\242Hd\243He\244Ie\244Jf\245Jg\246Kg\247Kh\247Lh\250Li\251Mi\251"
+ "Mj\252Nk\253Nk\254Ol\254Pl\255Pm\256Qn\256Ol\255\202Mj\253\210\23,b\23\23"
+ "-c\24-c\25.d\25.e\26/e\26/f\27""0g\27""1h\30""1h\30""2i\31""2j\31""3j\32"
+ """4k\33""4l\33""5m\34""5m\34""6m\35""6m\34""5m\202\34""5l\15\35""6l\35""6"
+ "m\36""7n\36""8o\37""8o\40""9p\40""9q!:q!;r\";s\"<s#<t#=u\202$>v\5%?w&?x&"
+ "@x'@y'Az\202(B{\26)C|)C}*D}*E~+E\177,E\177,E\200-F\200-G\201.G\201.H\202"
+ "/H\203/I\2030J\2041K\2064O\2125P\2135Q\2146Q\2156R\2157S\2167S\217\2028T"
+ "\220\3""9U\2219V\222:V\222\202;W\223\15:U\2229T\220:T\221:U\222;U\222;V\223"
+ "<V\224<W\224=X\225>X\226>Y\227?Y\227?Z\230\202@[\231\5B]\234Da\237Eb\240"
+ "Ec\241Fc\242\202Hd\243\17Ie\244If\245Jf\245Jg\246Kg\247Kh\250Lh\250Li\251"
+ "Mj\252Nj\252Nk\253Ok\254Ol\254Pm\255Ol\255\202Li\252\1Mj\253\211\23,b\21"
+ "\24-c\24-d\25.d\25/e\26/f\26""0f\27""0g\27""1h\30""1i\31""2i\31""3j\32""3"
+ "k\32""4k\33""4l\33""5m\34""5m\34""5l\202\34""4k(\34""5k\35""5l\35""6m\36"
+ """7m\36""7n\37""8o\37""8p\40""9p\40:q!:r!;r\";s#<t#=t$=u$>v%>w%?w&?x&@y'"
+ "Ay'Az(B{)B|)C|*D}*D~+E~+E\177,E\200,F\200-F\200-G\201.G\202.H\202/I\2030"
+ "I\2040J\2041K\2063O\212\2025Q\214\6""6R\2156R\2167S\2167S\2178T\2209U\220"
+ "\2029U\221$8S\2178R\2168S\2179S\2209T\220:T\221:U\222;V\223<V\223<W\224="
+ "W\225=X\225>X\226>Y\227?Z\227@[\231B^\235C`\237Da\237Eb\240Eb\241Fc\241G"
+ "c\242Hd\243He\244Ie\244If\245Jf\246Jg\246Kg\247Lh\250Li\250Mi\251Mj\252N"
+ "j\253Nk\253\202Ol\254\4Li\251Kh\251Li\252Mj\253\212\23,b\15\24-c\24.d\25"
+ ".e\25/e\26/f\26""0g\27""0g\30""1h\30""2i\31""2i\31""3j\32""3j\32""2i\202"
+ "\32""2h\202\33""3i\1\33""4j\202\34""5k\2\35""6l\35""6m\202\36""7n\22\37""8"
+ "o\37""9p\40""9p!:q!:r\";s\"<s#<t#=u$=u$>v%>w%?x&@x&@y'Az(Az(B{\202)C|\2*"
+ "D}*D~\202+E\177\1,E\200\202-F\200\10.G\201.H\202/H\202/I\2030I\2040J\205"
+ "1K\2063N\211\2025Q\21416R\2157R\2167S\2178T\2177S\2167Q\2156P\2147Q\2157"
+ "R\2168R\2168S\2179S\220:T\221:U\221;U\222;V\223<V\223<W\224=W\225=X\226>"
+ "Y\226@\\\232B_\235C_\235C`\236Da\237Da\240Eb\240Eb\241Fc\242Gd\242Hd\243"
+ "He\244Ie\244Jf\245Jg\246Kg\247Kh\247Lh\250Li\251Mi\251Mj\252Nk\253Ok\254"
+ "Kh\251Kg\250Kh\251Li\251Li\252\212\23,b\12\23,c\24-c\24.d\25.e\26/e\26/f"
+ "\27""0g\27""1g\30""0g\30""0f\202\30""0e\5\31""1f\31""1g\32""2h\33""2h\33"
+ """3i\202\33""4j\5\34""5k\34""5l\35""6l\35""7m\36""7n\202\37""8o\17\40""9"
+ "p\40""9q!:q!;r\";s\"<t#<t#=u$>v%>v%?w&?x&@x'@y'Az\202(B{\5)C|)C}*D}*E~+E"
+ "\177\202,E\200\16-F\200-G\201.G\201.H\202/H\203/I\2030J\2041J\2051K\2063"
+ "M\2105Q\2146Q\2156R\2156Q\214\2035O\213\1""6P\214\2027Q\215\17""8R\2168R"
+ "\2179S\2209T\220:T\221:U\222;U\222;V\223<W\224=W\224>Y\226@\\\232A^\234B"
+ "^\234B_\235\202C`\236\5Da\237Da\240Eb\240Ec\241Fc\242\202Hd\243\5Ie\244I"
+ "f\245Jf\245Jg\246Kg\247\202Lh\250\11Li\251Mj\252Nj\252Li\251Jf\247Jg\250"
+ "Kh\250Kh\251Li\252\213\23,b\17\24-c\24-d\25.d\25.e\25.d\26.c\26-b\26.c\27"
+ ".d\30/d\30""0e\31""0f\31""1f\32""1g\32""2h\202\33""3i1\33""4j\33""4k\34""5"
+ "k\35""6l\35""6m\36""7m\36""7n\37""8o\37""8p\40""9p\40:q!:r!;r\";s\"<t#=t"
+ "$=u$>v%>w%?w&@x&@y'Ay'Az(B{)B|)C|*D}*D~+E~+E\177,E\200,F\200-F\200-G\201"
+ ".G\202.H\202/I\2030I\2040J\2041J\2051K\2063M\2104O\2123M\2103M\2114N\211"
+ "4N\2125O\213\2026P\214\17""7Q\2157Q\2168R\2168S\2179S\2209T\220:T\221:U\222"
+ ";V\223<V\223=Y\226@\\\232@]\232A^\233A^\234\202B_\235\22C`\236C`\237Da\237"
+ "Eb\240Eb\241Fc\241Gc\242Hd\243He\244Ie\244If\245Jf\246Jg\246Kg\247Lh\250"
+ "Li\251Mi\251Li\251\202If\246\4Jg\247Jg\250Kh\250Lh\251\214\23,b\1\23,a\202"
+ "\24+`\14\24,`\25,a\26-b\26.b\27.c\27/d\30/e\30""0e\31""0f\31""1g\32""2g\32"
+ """2h\202\33""3i\5\33""4j\34""5k\34""5l\35""6l\35""6m\202\36""7n\26\37""8"
+ "o\37""9p\40""9q!:q!:r\";s\"<s#<t#=u$=u$>v%>w%?x&@x&@y'Az(Bz(B{)C|)C}*D}*"
+ "D~\202+E\177\1,E\200\202-F\200\17.G\201.H\202/H\203/I\2030I\2040J\2051K\205"
+ "1K\2062L\2072L\2103M\2104N\2114N\2125O\2125O\213\2026P\214\31""7Q\2157R\216"
+ "8R\2178S\2179S\220:T\221:U\221;V\222=Y\226?[\231?\\\231@\\\232@]\233A^\233"
+ "A^\234B_\235C_\235C`\236Da\237Da\240Eb\240Eb\241Fc\242Gd\242Hd\243\202Ie"
+ "\244\4Jf\245Jf\246Kg\247Kh\247\202Lh\250\202He\245\5If\246Jf\247Jg\247Kg"
+ "\250Kh\251\210\23,b\34\23+a\22*_\22)^\22)]\22)^\23*^\24+_\24+`\25,a\25-a"
+ "\26-b\26.c\27.c\27/d\30/e\30""0e\31""1f\32""1g\32""2h\33""2h\33""3i\33""3"
+ "j\33""4j\34""5k\34""5l\35""6l\36""6m\36""7n\202\37""8o\17\40""9p\40""9q!"
+ ":q!;r\";s\"<t#<t#=u$>v%>v%?w&?x&@x'Ay'Az\202(B{\5)C|)D}*D~*E~+E\177\202,"
+ "E\200\17-F\200-G\201.G\201.H\202/H\203/I\2040J\2041J\2051K\2062K\2062L\207"
+ "3L\2103M\2104N\2114N\212\2025O\213\1""6P\214\2027Q\215\17""8R\2168R\2179"
+ "S\2209T\220;U\222=Y\226>Z\227>[\230?\\\231@\\\231@]\232A]\233A^\234B^\234"
+ "B_\235\202C`\236\5Da\237Da\240Eb\241Fc\241Gc\242\202Hd\243\16Ie\244If\245"
+ "Jf\245Jg\246Kg\247Kh\247He\245Hd\244He\245Ie\245If\246Jf\247Jg\250Kh\250"
+ "\205\23,b\2\23+a\22*_\206\22)]\17\23*^\23*_\24+_\24,`\25,a\25-a\26-b\27."
+ "c\27.d\30/d\30""0e\31""0f\31""1f\32""1g\32""2h\202\33""3i\21\33""4j\33""4"
+ "k\34""5k\35""5l\35""6m\36""7m\36""7n\37""8o\37""8p\40""9p\40:q!:r!;r\";s"
+ "\"<t#=u$=v\202%>w\27%?w&@x&@y'Ay'Az(B{)B|)C|*D}*D~+E~+E\177,E\200,F\200-"
+ "F\200-G\201.G\202.H\202/I\2030I\2040J\2041J\2051K\206\2022L\207\5""3M\210"
+ "3M\2114N\2115N\2125O\213\2026P\214\17""7Q\2157Q\2168R\2168S\217:U\221<Y\225"
+ "=Y\226>Z\227>[\230?[\230?\\\231@\\\232@]\232A]\233A^\234\202B_\235\1C`\236"
+ "\202Da\237\23Eb\240Eb\241Fc\241Gc\242Hd\243He\244Ie\244If\245Jf\246Jg\246"
+ "He\244Gc\243Gd\244Hd\244He\245Ie\246If\246Jg\247Jg\250\202\23,b\2\23+`\22"
+ "*_\212\22)]\5\23*^\23+_\24+`\25,`\25,a\202\26-b\17\27.c\27/d\30/d\30""0e"
+ "\31""0f\31""1g\32""2g\32""2h\33""3i\33""3j\33""4j\34""5k\34""5l\35""6l\35"
+ """6m\202\36""7n\26\37""8o\37""9p\40""9q!:q!:r\";s\"<t$>w&@y'@z'A{&@z&?x&"
+ "@x'@y'Az(Az(B{)C|)C}*D}*D~\202+E\177\1,E\200\202-F\2002.G\201.H\202/H\203"
+ "/I\2030I\2040J\2051K\2051K\2062L\2073L\2103M\2104N\2114N\2125O\2125O\213"
+ "6P\2146P\2157Q\2157R\2169T\221<X\224<X\225=Y\226=Z\227>Z\227>[\230?[\231"
+ "?\\\231@]\232@]\233A^\233B^\234B_\235C`\235C`\236Da\237Da\240Eb\240Eb\241"
+ "Fc\242Gd\242Hd\243Ie\244Ie\245Jf\245Ie\245Fb\242Fc\242Gc\243Gd\244\202He"
+ "\245\4If\246Jf\247Jg\247\22*^\215\22)]\21\22*^\23*^\23+_\24+`\25,a\25-a\26"
+ "-b\26.c\27.c\27/d\30/e\30""0e\31""1f\32""1g\32""2h\33""2h\33""3i\202\33""4"
+ "j\5\34""5k\34""5l\35""6m\35""7m\36""7n\202\37""8o\17\40""9p\40""9q!:r#<u"
+ "%>x%?y&?y&@z'A{(A{(B|'A{&@y'Ay'Az\202(B{\5)C|)C}*D~+E~+E\177\202,E\200\17"
+ "-F\200-G\201.G\201.H\202/H\2030I\2040J\2041J\2051K\2062K\2062L\2073L\210"
+ "3M\2104N\2114N\212\2025O\213\22""6P\2147Q\2159T\220;W\223;W\224<X\225<Y\225"
+ "=Y\226=Z\227>Z\227>[\230?\\\231@\\\231@]\232A]\233A^\234B^\234B_\235\202"
+ "C`\236\5Da\237Da\240Eb\241Fc\241Gc\242\202Hd\243\202Ie\244\202Eb\241\10F"
+ "b\242Fc\243Gd\243Gd\244He\245Ie\245If\246Jf\247\217\22)]\17\23*^\23*_\24"
+ "+_\24+`\25,a\25-b\26-b\26.c\27/d\30/d\30""0e\31""0f\31""1f\32""1g\32""2h"
+ "\202\33""3i\5\33""4j\33""4k\34""5k\35""6l\35""6m\202\36""7n\22\37""8o\37"
+ """9p!:s#<v$=w%>w%>x&?y&@z'@z'A{(A|(B|)B|'Az'Ay(Az(B{\202)C|\17*D}*D~+E~+"
+ "E\177,E\200,F\200-F\200-G\201.G\202/H\202/I\2030I\2040J\2041J\2051K\206\202"
+ "2L\207\26""3M\2103M\2114N\2115N\2125O\2136P\2148S\217:V\222:V\223;W\223;"
+ "X\224<X\225<Y\226=Y\226>Z\227>[\230?[\230?\\\231@\\\232@]\232A^\233A^\234"
+ "\202B_\235\22C`\236D`\237Da\237Eb\240Eb\241Fc\241Gc\242Hd\243Hd\244Fa\240"
+ "Ea\240Ea\241Fb\241Fc\242Gc\243Gd\244Hd\244He\245\202If\246\217\22)]\6\22"
+ ")^\23*^\23+_\24+`\24,`\25,a\202\26-b'\27.c\27/d\30/e\30""0e\31""0f\31""1"
+ "g\32""2g\32""2h\33""3i\33""3j\33""4j\34""5k\34""5l\35""6l\35""6m\36""7n\40"
+ """9q\";t#<u#<v$=v$=w%>x%?x&?y&@z'@{'A{(B|(B})C}(B{'Az(Bz(B{)C|)C}*D}*D~\202"
+ "+E\177\22,E\200-F\200-F\201.G\201.H\202/H\203/I\2030I\2040J\2051K\2051K\206"
+ "2L\2073L\2103M\2104N\2114N\2125O\2127R\215\2029U\221\31:V\222:W\223;W\224"
+ "<X\224<X\225=Y\226=Z\226>Z\227>[\230?[\231?\\\231@]\232@]\233A^\233B^\234"
+ "B_\235C_\236C`\236Da\237Da\240Eb\240Eb\241Fc\242Gd\242Fa\240\202E`\237\6"
+ "Ea\240Eb\241Fb\242Fc\242Gc\243Gd\244\202He\245\1If\246\220\22)]\4\22*^\23"
+ "*^\24+_\24+`\202\25,a\13\26-b\26.c\27.c\27/d\30/e\30""0f\31""1f\32""1g\32"
+ """2h\33""2h\33""3i\202\33""4j\5\34""5k\34""5l\36""7o\40""9r!:s\202\";t\12"
+ "#<u#=v$=v$>w%>x%?y&?y&@z'A{(A|\202(B|\3'A{'Ay'Az\202(B{\5)C|)C}*D}+E~+E\177"
+ "\202,E\200\13-F\200-G\201.G\201.H\202/H\203/I\2040J\2041J\2051K\2062K\206"
+ "2L\207\2023M\210\5""4N\2116P\2148T\2209T\2209U\221\202:V\222\26;W\223;W\224"
+ "<X\225<Y\225=Y\226=Z\227>Z\227>[\230?\\\231@\\\231@]\232A]\233A^\234B^\234"
+ "B_\235C`\236C`\237Da\237Db\240Eb\241Fc\241Ea\240\202D_\236\12E`\237Ea\240"
+ "Ea\241Eb\241Fb\242Fc\243Gd\243Hd\244He\245Ie\245\221\22)]\17\23*^\23*_\24"
+ "+_\24+`\25,a\25-b\26-b\26.c\27.d\30/d\30""0e\31""0f\31""1f\32""1g\32""2h"
+ "\202\33""3i\5\33""4j\35""5m\37""8p\40""9q\40""9r\202!:s\17\";t\";u#<u#=v"
+ "$=w$>w%>x&?y&@z'@z&@z&?x%?w&@x&@y\202'Az\1(B{\202)C|\17*D}*D~+E~+E\177,E"
+ "\200,F\200-F\200-G\201.G\202/H\202/I\2030I\2040J\2041J\2051K\206\2022L\207"
+ "\5""3M\2104O\2127S\2168T\2178T\220\2029U\221\17:V\222:V\223;W\223;X\224<"
+ "X\225<Y\226=Y\226>Z\227>[\230?[\230?\\\231@\\\232@]\232A^\233A^\234\202B"
+ "_\235\5C`\236D`\237Da\237Eb\240Ea\240\202C^\235\13D_\236D`\237E`\237Ea\240"
+ "Ea\241Eb\242Fc\242Gc\243Gd\244Hd\244He\245\221\22)]\6\22)^\23*^\23*_\24+"
+ "`\24,`\25,a\202\26-bM\27.c\27/d\30/e\30""0e\31""1f\31""1g\32""2g\32""2h\34"
+ """4k\35""6n\36""7o\37""8p\37""8q\40""9q\40""9r!:s!;s\";t#<u#<v$=v$=w%>x%"
+ "?x%>x$>v$=u$>v%?w&?x&@x'@y'Az(Bz(B{)C|)C}*D}*D~+E\177,E\177,E\200-F\200-"
+ "G\201.G\201.H\202/H\203/I\2030I\2040J\2051K\2052K\2062L\2073M\2106R\2157"
+ "S\2167S\2178T\2178T\2209U\2219U\222:V\222:W\223;W\224<X\224<X\225=Y\226="
+ "Z\226>Z\227>[\230?[\231?\\\231@]\232A]\233A^\233B^\234B_\235\202C`\236\202"
+ "Da\237\16B^\234B]\234C^\235C_\235D_\236E`\237E`\240Ea\240Eb\241Fb\242Fc\242"
+ "Gc\243Gd\244He\245\222\22)]\4\23*^\23*_\24+_\24+`\202\25,a\22\26-b\26.c\27"
+ ".c\27/d\30/e\30""0f\31""1f\32""2i\33""4l\34""5m\35""6n\36""7o\36""7p\37""8"
+ "p\37""8q\40""9r\40:r!:s\202\";t\17#<u#<v$=w#=v#<t\"<t#<t$=u$>v%>v%?w&?x&"
+ "@y'Ay'Az\202(B{\5)C|*D}*D~+E~+E\177\202,E\200\17-F\200-G\201.G\201.H\202"
+ "/H\203/I\2040J\2041J\2051K\2062K\2062L\2075P\2136R\2167S\2167S\217\2028T"
+ "\220\31""9U\221:V\222:V\223;W\223;X\224<X\225<Y\225=Y\226=Z\227>Z\227>[\230"
+ "?\\\231@\\\232@]\232A]\233A^\234B_\234B_\235C`\236C`\237B^\234A\\\233B]\234"
+ "C^\234C^\235\202D_\236\10E`\237Ea\240Ea\241Eb\241Fb\242Fc\243Gd\243Hd\244"
+ "\223\22)]\26\23*^\23*_\24+_\24,`\25,a\25-b\26-b\26.c\27/d\30/d\30""1g\32"
+ """3j\32""4l\33""4l\33""5m\34""6n\35""6n\36""7o\36""7p\37""8q\40""9q\40""9"
+ "r\202!:s\22\";t\"<u#<u!;s!:r\";r\";s#<t#=u$=u$>v%>w%?w&@x&@y'Az(Az(B{\202"
+ ")C|\2*D}*D~\202+E\177\13,E\200,F\200-F\200.G\201.G\202/H\202/I\2030I\204"
+ "0J\2051J\2051K\206\2022L\207\5""5Q\2147R\2167S\2178T\2178T\220\2029U\221"
+ "\17:V\222:V\223;W\223;X\224<X\225<Y\226=Y\226>Z\227>[\230?[\230?\\\231@\\"
+ "\232@]\233A^\233A^\234\202B_\235\1B^\234\202A\\\232\2B]\233B]\234\202C^\235"
+ "\11D_\236D`\237E`\237Ea\240Ea\241Fb\241Fc\242Gc\243Gd\244\223\22)]\27\22"
+ ")^\23*^\23+_\24+`\25,`\25,a\26-b\26.c\27/e\30""1h\31""2j\31""3j\32""3k\32"
+ """4l\33""5l\34""5m\35""6n\36""6o\36""7o\37""8p\37""8q\40""9q\40""9r\202!"
+ ":s\26\40""9q\40""9p\40""9q!:q!;r\";s\"<s#<t#=u$=v$>v%?w&?x&@x'@y'Az(Bz(B"
+ "{)C|)C}*D}*E~\202+E\177$,E\200-F\200-F\201.G\201.H\202/H\203/I\2030I\204"
+ "0J\2051K\2051K\2062L\2073M\2106Q\2157S\2167S\2178T\2178T\2209U\2219U\222"
+ ":V\222:W\223;W\224<X\224<X\225=Y\226=Z\227>Z\227>[\230?[\231?\\\231@]\232"
+ "@]\233A^\234B^\234A^\234\202@[\231\16A\\\232A\\\233B]\233B]\234C^\235C_\236"
+ "D_\236E`\237E`\240Ea\240Eb\241Fb\242Fc\242Gc\243\224\22)]\30\23*^\23*_\24"
+ "+_\24+`\25,a\25.c\27""0f\27""1h\30""1h\30""2i\31""2j\32""3k\32""4k\33""4"
+ "l\33""5m\34""5m\35""6n\36""7o\36""7p\37""8p\37""8q\40""9r\37""9p\36""7o\202"
+ "\37""8o\17\40""9p\40:q!:q!;r\";s\"<t#<t$=u$>v%>w%?w&?x&@y'Ay'Az\202(B{\5"
+ ")C|*D}*D~+E~+E\177\202,E\200\22-F\200-G\201.G\201.H\202/H\2030I\2040J\204"
+ "1J\2051K\2062K\2062L\2073M\2116R\2157S\2167S\2178T\2208U\2209U\221\202:V"
+ "\222\15;W\223;W\224<X\225<Y\225=Y\226=Z\227>Z\227>[\230?\\\231@\\\232@]\232"
+ "A]\233A^\233\202?Z\230\202@[\231\5A\\\232A]\233B]\234C^\234C^\235\202D_\236"
+ "\6E`\237Ea\240Ea\241Eb\241Fb\242Gc\243\225\22)]\24\23*^\23*_\24,a\25.d\26"
+ "/f\26""0g\27""0g\27""1h\30""2i\31""2i\31""3j\32""3k\32""4l\33""4l\33""5m"
+ "\34""6n\35""6n\36""7o\37""7p\36""7o\202\35""6m\202\36""7n\22\37""8o\37""9"
+ "p\40""9p\40:q!:r!;s\"<s#<t#=u$=u$>v%>w%?w&@x&@y'Az(Az(B{\202)C|\2*D}*D~\202"
+ "+E\177\13,E\200,F\200-F\200.G\201.H\202/H\202/I\2030I\2040J\2051J\2051K\206"
+ "\2022L\207\5""4N\2116R\2157S\2178T\2178T\220\2029U\221\17:V\222:W\223;W\223"
+ ";X\224<X\225<Y\226=Y\226>Z\227>[\230?[\230?\\\231@\\\232@]\232?Z\227>Y\227"
+ "\202?Z\230\1@[\231\202A\\\232\13B]\233B]\234C^\235C_\235D_\236D`\237E`\237"
+ "Ea\240Ea\241Fb\241Fc\242\225\22)]\20\23*_\24,b\24.d\25.e\26/e\26/f\27""0"
+ "g\27""1g\30""1h\30""2i\31""2j\31""3j\32""3k\32""4l\33""5l\34""5m\202\35""6"
+ "n\27\34""5l\34""5k\34""5l\35""6l\35""6m\36""7n\36""8n\37""8o\40""9p\40""9"
+ "q!:q!:r\";s\"<s#<t#=u$=v$>v%?w%?x&@x'@y'Az\202(B{\17)C|)C}*D}*E~+E\177,E"
+ "\177,E\200-F\200-G\201.G\201.H\202/H\203/I\2030J\2040J\205\2021K\206\31""2"
+ "L\2073L\2104N\2116R\2157S\2178T\2178T\2209U\2219V\222:V\222;W\223;W\224<"
+ "X\224<Y\225=Y\226=Z\227>Z\227>[\230?[\231?\\\231>Z\227>X\226>Y\226?Y\227"
+ "?Z\230\202@[\231\14A\\\232A\\\233B]\233B]\234C^\235C_\236D_\236E`\237E`\240"
+ "Ea\240Eb\241Fb\242\223\22)]\33\22*^\23+a\23,b\23-c\24-d\25.d\25.e\26/f\26"
+ """0f\27""0g\27""1h\30""1h\30""2i\31""3j\32""3k\32""4k\33""4l\33""5m\33""4"
+ "k\33""3i\33""4j\33""4k\34""5k\34""5l\35""6m\36""7m\36""7n\202\37""8o*\40"
+ """9p\40:q!:r!;r\";s\"<t#<t$=u$>v%>w%?w&?x&@y'Ay'Az(B{(B|)C|*D}*D~+E~+E\177"
+ ",E\200,F\200-F\200-G\201.G\202.H\202/I\2030I\2040J\2041J\2051K\2062K\207"
+ "2L\2073M\2104N\2116R\2157S\2178T\2209U\2209U\221\202:V\222\34;W\223;W\224"
+ "<X\225<Y\225=Y\226=Z\227>Z\227?[\230>Z\227=W\225=X\225>X\226>Y\227?Z\227"
+ "?Z\230@[\231@[\232A\\\232B\\\233B]\234C^\234C^\235D_\236D`\236E`\237Ea\240"
+ "Ea\241Eb\241\221\22)]\2\22*^\23+a\204\23,b\15\24-c\24-d\25.d\25/e\26/f\26"
+ """0g\27""0g\30""1h\30""2i\31""2i\31""3j\32""3k\32""3j\202\32""2h\202\33""3"
+ "i\5\33""4j\34""4k\34""5k\35""6l\35""6m\202\36""7n\17\37""8o\37""9p\40""9"
+ "p\40:q!:r!;s\";s#<t#=u$=u$>v%>w%?w&@x&@y\202'Az\1(B{\202)C|\2*D}*D~\202+"
+ "E\177\13,E\200,F\200-F\200.G\201.H\202/H\202/I\2030I\2040J\2051J\2051K\206"
+ "\2022L\207\5""3M\2104N\2116R\2158T\2178T\220\2029U\221\5:V\222:W\223;W\223"
+ ";X\224<X\225\202=Y\226\202>Z\227\11<V\224<W\224=W\225=X\226>Y\226>Y\227?"
+ "Z\230@Z\230@[\231\202A\\\232\2B]\233B]\234\202C^\235\5D_\236D`\237E`\237"
+ "Ea\240Ea\241\217\22)]\2\22*^\23+a\206\23,b\13\23,c\24-c\24.d\25.e\26/e\26"
+ "/f\27""0g\27""1h\30""1h\30""2i\31""2i\202\31""1f\34\31""1g\32""2g\33""2h"
+ "\33""3i\33""3j\33""4j\34""5k\34""5l\35""6l\35""6m\36""7n\36""8o\37""8o\40"
+ """9p\40""9q!:q!;r\";s\"<s#<t#=u$=v$>v%?w&?x&@x'@y'Az\202(B{\5)C|)C}*D}*E"
+ "~+E\177\202,E\200\32-F\200-F\201.G\201.H\202/H\203/I\2030I\2040J\2051K\206"
+ "2K\2062L\2073L\2103M\2104N\2116Q\2148T\2178T\2209U\2219V\222:V\222;W\223"
+ ";W\224<X\225<Y\225=Y\226=Z\226\202;V\223\7<V\224<W\224=X\225=X\226>Y\226"
+ "?Y\227?Z\230\202@[\231\5A\\\232A\\\233B]\233B]\234C^\235\202D_\236\3E`\237"
+ "E`\240Ea\240\215\22)]\2\22*^\23+a\211\23,b\6\24-c\24-d\25.d\25.e\26/f\26"
+ """0f\202\27""0gX\27/e\27/d\30""0e\31""0f\31""1f\32""1g\32""2h\33""2h\33""3"
+ "i\33""4j\33""4k\34""5k\34""5l\35""6m\36""7m\36""7n\37""8o\37""8p\40""9p\40"
+ ":q!:r!;r\";s\"<t#<t$=u$>v%>w%?w&?x&@y'Ay'Az(B{(B|)C|*D}*D~+E~+E\177,E\200"
+ ",F\200-F\200-G\201.G\202.H\202/I\2030I\2040J\2041J\2051K\2062K\2072L\207"
+ "3M\2103M\2114N\2115O\2137S\2179U\2209U\221:V\222:V\223;W\223;X\224<X\225"
+ "<Y\225;V\223;U\222;U\223<V\223<W\224=W\225=X\225>X\226>Y\227?Z\227?Z\230"
+ "@[\231@[\232A\\\232B]\233B]\234C^\234C^\235D_\236D`\236E`\237Ea\240\213\22"
+ ")]\2\22*^\23+`\214\23,b\17\24-c\24-d\25.e\25/e\26/f\26.d\26.b\27.c\27/d\30"
+ "/d\30""0e\31""0f\31""1g\32""2g\32""2h\202\33""3i\5\33""4j\34""4k\34""5l\35"
+ """6l\35""6m\202\36""7n\22\37""8o\37""9p\40""9p!:q!:r\";s\"<s#<t#=u$=u$>v"
+ "%>w%?x&@x&@y'Az(Az(B{\202)C|\2*D}*D~\202+E\177\31,E\200,F\200-F\200-G\201"
+ ".H\202/H\203/I\2030I\2040J\2051J\2051K\2062L\2072L\2103M\2104M\2114N\212"
+ "5O\2126Q\2158T\2209U\221:V\222:W\223;W\223;X\224;V\223\202:T\221\10;U\222"
+ ";V\223<V\224<W\224=W\225=X\226>Y\226?Y\227\202?Z\230\1@[\231\202A\\\232\7"
+ "B]\233B]\234C^\235C_\235D_\236D`\237E`\237\211\22)]\2\22)^\23+`\216\23,b"
+ "\4\23,c\24-c\24.d\25-c\202\25,a#\26-b\26.c\27.c\27/d\30/e\30""0e\31""1f\32"
+ """1g\32""2g\33""2h\33""3i\33""3j\33""4j\34""5k\34""5l\35""6l\35""6m\36""7"
+ "n\36""8o\37""8o\40""9p\40""9q!:q!;r\";s\"<s#<t#=u$>v%>v%?w&?x&@x'@y'Az\202"
+ "(B{\5)C|)C}*D}*E~+E\177\202,E\200\17-F\200-G\201.G\201.H\202/H\203/I\203"
+ "0I\2040J\2051K\2062K\2062L\2073L\2103M\2104N\2114N\212\2025O\213\5""7R\216"
+ "9U\221:V\222;W\223:V\223\2029S\220\13:T\221:U\222;U\222;V\223<V\224<W\224"
+ "=X\225>X\226>Y\227?Y\227?Z\230\202@[\231\5A\\\232A\\\233B]\233B^\234C^\235"
+ "\202D_\236\1E`\237\207\22)]\2\22)^\23+`\222\23,bE\23+`\24+_\24+`\25,a\25"
+ "-a\26-b\26.c\27.c\30/d\30""0e\31""0f\31""1f\32""1g\32""2h\33""2i\33""3i\33"
+ """4j\33""4k\34""5k\35""5l\35""6m\36""7m\36""7n\37""8o\37""8p\40""9p\40:q"
+ "!:r!;r\";s\"<t#=t$=u$>v%>w%?w&?x&@y'Ay'Az(B{)B|)C|*D}*D~+E~+E\177,E\200,"
+ "F\200-F\200-G\201.G\202.H\202/H\2030I\2040J\2041J\2051K\2062K\2072L\2073"
+ "M\2103M\2114N\2114N\2125O\2136P\2136P\2147R\2169T\220\2028S\217\26""9S\220"
+ "9T\220:T\221:U\222;U\223<V\223<W\224=W\225=X\225>X\226>Y\227?Z\227?Z\230"
+ "@[\231@[\232A\\\232B]\233B]\234C^\234C^\235D_\236D`\237\205\22)]\2\22)^\23"
+ "+`\221\23,b\22\23,a\22*_\22)]\23*^\23+_\24+`\24,`\25,a\25-b\26-b\27.c\27"
+ "/d\30/e\30""0e\31""0f\31""1g\32""2g\32""2h\202\33""3i\5\33""4j\34""4k\34"
+ """5l\35""6l\35""6m\202\36""7n\13\37""8o\37""9p\40""9q\40:q!:r\";s\"<s#<t"
+ "#=u$=u$>v\202%?w\3&@x'@y'Az\202(B{\202)C|\2*D}*D~\202+E\177\1,E\200\202-"
+ "F\200\10.G\201.H\202/H\202/I\2030I\2040J\2051J\2051K\206\2022L\207\5""3M"
+ "\2104M\2114N\2125O\2125O\213\2026P\214\5""7Q\2157R\2168R\2178S\2179S\220"
+ "\202:T\221\22;U\222;V\223<V\223<W\224=W\225=X\226>Y\226>Y\227?Z\230@Z\230"
+ "@[\231A\\\232A\\\233B]\233B]\234C^\235C_\235D_\236\203\22)]\2\22)^\23+`\222"
+ "\23,b\1\22+`\203\22)]\4\22)^\23*^\24+_\24+`\202\25,a\13\26-b\26.c\27.c\27"
+ "/d\30/e\30""0e\31""1f\31""1g\32""2g\33""2h\33""3i\202\33""4j\26\34""5k\34"
+ """5l\35""6l\35""6m\36""7n\36""8o\37""8o\40""9p\40""9q!:q!;r\";s\"<t#<t#="
+ "u$>v%>v%?w&?x&@x(B{*D~\202(B{\5)C|)C}*D}*E~+E\177\202,E\200\17-F\200-G\201"
+ ".G\201.H\202/H\203/I\2030J\2040J\2051K\2062K\2062L\2073L\2103M\2104N\211"
+ "4N\212\2025O\213\22""6P\2146Q\2157Q\2158R\2168R\2179S\2179T\220:T\221:U\222"
+ ";U\222;V\223<V\224<W\224=X\225>X\226>Y\227?Y\227?Z\230\202@[\231\11A\\\232"
+ "A\\\233B]\233B^\234C^\235D_\236\22)]\22)^\23+`\222\23,b\2\23+`\22)^\205\22"
+ ")]\17\23*^\23*_\24+_\24+`\25,a\25-a\26-b\26.c\27.d\27/d\30""0e\31""0f\31"
+ """1f\32""1g\32""2h\202\33""3iL\33""4j\33""4k\34""5k\34""6l\35""6m\36""7m"
+ "\36""7n\37""8o\37""8p\40""9p\40:q!:r!;r\";s\"<t#=u$=u$>v%>w%?w'@y)C~*D~*"
+ "C~(B{)B|)C|*D}*D~+E~+E\177,E\200,F\200-F\200-G\201.G\202/H\202/I\2030I\204"
+ "0J\2041J\2051K\2062K\2072L\2073M\2103M\2114N\2115N\2125O\2136P\2136P\214"
+ "7Q\2157Q\2168R\2168S\2179S\2209T\221:T\221;U\222;V\223<V\223<W\224=W\225"
+ "=X\225>X\226>Y\227?Z\227?Z\230@[\231@[\232A\\\232B]\233B]\234C^\234C^\235"
+ "\23+`\222\23,b\2\23+a\22*^\207\22)]\6\22)^\23*^\23+_\24+`\24,`\25,a\202\26"
+ "-b\10\27.c\27/d\30/e\30""0e\31""0f\31""1g\32""2g\32""2h\202\33""3i\5\33""4"
+ "j\34""5k\34""5l\35""6l\35""6m\202\36""7n\26\37""8o\37""9p\40""9q\40:q!:r"
+ "\";s\"<s#<t#=u$=u$>v%?x(B|)C})C~*D\177)C}(B{)C|)C}*D}*D~\202+E\177\1,E\200"
+ "\202-F\200\10.G\201.H\202/H\203/I\2030I\2040J\2051K\2051K\206\2022L\207\5"
+ """3M\2104N\2114N\2125O\2125O\213\2026P\214\27""7Q\2157R\2168R\2169S\2179"
+ "S\220:T\221:U\221;U\222;V\223<V\224<W\224=W\225=X\226>Y\226?Y\227?Z\230@"
+ "Z\230@[\231A\\\232A\\\233B]\233B]\234C^\235\222\23,b\1\22*_\212\22)]\4\22"
+ ")^\23*^\24+_\24+`\202\25,a\13\26-b\26.c\27.c\27/d\30/e\30""0e\31""1f\31""1"
+ "g\32""2h\33""2h\33""3i\202\33""4j\5\34""5k\34""5l\35""6l\36""6m\36""7n\202"
+ "\37""8o\26\40""9p\40""9q!:q!;r\";s\"<t#<t#=u$>v'@z(B|)B})C}*C~*D\177)C}("
+ "B{)C|)C}*D~+E~+E\177\202,E\200\13-F\200-G\201.G\201.H\202/H\203/I\2040I\204"
+ "1J\2051K\2062K\2062L\207\2023M\210\2""4N\2114N\212\2025O\213\22""6P\2146"
+ "Q\2157Q\2158R\2168R\2179S\2209T\220:T\221:U\222;U\222;V\223<W\224=W\224="
+ "X\225>X\226>Y\227?Y\227?Z\230\202@[\231\4A\\\232A\\\233B]\234B^\234\220\23"
+ ",b\1\22+`\215\22)]\17\23*^\23*_\24+_\24+`\25,a\25-a\26-b\26.c\27.d\27/d\30"
+ """0e\31""0f\31""1f\32""1g\32""2h\202\33""3i*\33""4j\33""4k\34""5k\35""5l"
+ "\35""6m\36""7m\36""7n\37""8o\37""8p\40""9p\40:q!:r!;r\";s#<t#=u&?x'A{(A|"
+ "(B|)C})C~*D~*D\177)C|)B|)C|*D}*D~+E~+E\177,E\200,F\200-F\200-G\201.G\202"
+ ".H\202/I\2030I\2040J\2041J\2051K\206\2022L\207\26""3M\2103M\2114N\2115N\212"
+ "5O\2136P\2136P\2147Q\2157Q\2168R\2168S\2179S\2209T\220:T\221:U\222;V\223"
+ "<V\223<W\224=W\225=X\225>X\226>Y\227\202?Z\230\5@[\231@[\232A\\\232B]\233"
+ "B]\234\216\23,b\2\23+`\22)^\217\22)]\5\23*^\23*_\24+`\24,`\25,a\202\26-b"
+ "\10\27.c\27/d\30/e\30""0e\31""0f\31""1g\32""2g\32""2h\202\33""3i\5\33""4"
+ "j\34""5k\34""5l\35""6l\35""6m\202\36""7n\21\37""8o\37""9p\40""9p!:q!:r\""
+ ";s\"<s$>v&@z'@z'A{(B|(B})C}*C~*D\177+D\177\203)C|\2*D}*D~\202+E\177\22,E"
+ "\200,F\200-F\200.G\201.H\202/H\203/I\2030I\2040J\2051K\2051K\2062L\2072L"
+ "\2103M\2104N\2114N\2125O\2125O\213\2026P\214\25""7Q\2157R\2168R\2179S\217"
+ "9S\220:T\221:U\221;U\222;V\223<V\224<W\224=X\225=X\226>Y\226?Y\227?Z\230"
+ "@Z\230@[\231A\\\232A\\\233B]\233\214\23,b\2\23+a\22*^\221\22)]\21\22*^\23"
+ "*^\23+_\24+`\25,`\25,a\26-b\26.c\27.c\27/d\30/e\30""0e\31""1f\31""1g\32""2"
+ "h\33""2h\33""3i\202\33""4j\5\34""5k\34""5l\35""6m\35""7m\36""7n\202\37""8"
+ "o\20\40""9p\40""9q!:q!;r#<u%?y&?y&@z'A{(A{(B|)B})C}*C~*D\177+E\177\202)C"
+ "|\4)C}*D}+E~+E\177\202,E\200\13-F\200-G\201.G\201.H\202/H\203/I\2030J\204"
+ "1J\2051K\2062K\2062L\207\2023M\210\2""4N\2114N\212\2025O\213\1""6P\214\202"
+ "7Q\215\17""8R\2168R\2179S\2209T\220:T\221:U\222;U\222;V\223<V\224=W\224="
+ "X\225>X\226>Y\227?Y\227?Z\230\202@[\231\2A\\\232A\\\233\213\23,b\1\22*_\224"
+ "\22)]\17\23*^\23*_\24+_\24,`\25,a\25-a\26-b\27.c\27.d\30/d\30""0e\31""0f"
+ "\31""1g\32""1g\32""2h\202\33""3i*\33""4j\33""4k\34""5k\35""5l\35""6m\36""7"
+ "m\36""7n\37""8o\37""8p\40""9p\40:q\";s$>w%>x&?y&@z'@z'A{(A|(B|)C})C~*D~*"
+ "D\177+E\200)C})C|*D}*D~+E~+E\177,E\200,F\200-F\200-G\201.G\202/H\202/I\203"
+ "0I\2040J\2041J\2051K\206\2022L\207\5""3M\2103M\2114N\2115N\2125O\213\202"
+ "6P\214\17""7Q\2157Q\2168R\2168S\2179S\2209T\220:T\221;U\222;V\223<V\223<"
+ "W\224=W\225=X\225>X\226>Y\227\202?Z\230\3@[\231@\\\232A\\\232\211\23,b\1"
+ "\22+`\226\22)]\6\22)^\23*^\23+_\24+`\24,`\25,a\202\26-b\10\27.c\27/d\30/"
+ "e\30""0e\31""0f\31""1g\32""2g\32""2h\202\33""3i\5\33""4j\34""5k\34""5l\35"
+ """6l\35""6m\202\36""7n\26\37""8o\37""9p\40""9q#=v$=w%>x%?x&?y&@z'@z'A{(A"
+ "|(B})C}*C~*D\177+D\177+E\200*D\177)C}*D}*D~\202+E\177\1,E\200\202-F\200$"
+ ".G\201.H\202/H\203/I\2030I\2040J\2051K\2051K\2062L\2073L\2103M\2104M\211"
+ "4N\2125O\2125O\2136P\2146P\2157Q\2157R\2168R\2179S\2179S\220:T\221:U\221"
+ ";U\222;V\223<V\224<W\224=W\225=X\226>Y\226?Y\227?Z\230@[\230@[\231A\\\232"
+ "\207\23,b\2\23+a\22)^\230\22)]\21\22*^\23*^\24+_\24+`\25,a\25-a\26-b\26."
+ "c\27.c\27/d\30/e\30""0f\31""1f\32""1g\32""2h\33""2h\33""3i\202\33""4j\5\34"
+ """5k\34""5l\35""6l\35""7m\36""7n\202\37""8o\17\";t#<v$=v$>w%>x%?y&?y'@z'"
+ "A{(A{(B|)B})C~*D~*D\177\202+E\200\5+F\200*D~*D}+E~+E\177\202,E\200\13-F\200"
+ "-G\201.G\201.H\202/H\203/I\2030J\2041J\2051K\2062K\2062L\207\2023M\210\2"
+ """4N\2114N\212\2025O\213\1""6P\214\2027Q\215\17""8R\2168R\2179S\2179T\220"
+ ":T\221:U\222;U\222;V\223<W\224=W\224=X\225>X\226>Y\227?Y\227?Z\230\202@["
+ "\231\205\23,b\2\23,a\22*^\233\22)]\17\23*^\23*_\24+_\24+`\25,a\25-a\26-b"
+ "\27.c\27/d\30/d\30""0e\31""0f\31""1f\32""1g\32""2h\202\33""3i\35\33""4j\33"
+ """4k\34""5k\35""6l\35""6m\36""7m\36""7n!:r\";u#<u#=v$=w%>w%>x&?y&@z'@z'A"
+ "{(A|(B|)C})C~*D\177+D\177+E\200,F\200,G\200+F\200*D~\202+E\177#,E\200,F\200"
+ "-F\200.G\201.G\202/H\202/I\2030I\2040J\2041J\2051K\2062K\2072L\2073M\210"
+ "3M\2114N\2125N\2125O\2136P\2136P\2147Q\2157Q\2168R\2168S\2179S\2209T\221"
+ ":T\221:U\222;V\223<V\223<W\224=W\225=X\225>X\226>Y\227\202?Z\230\1@[\231"
+ "\204\23,b\1\22*_\235\22)]/\22)^\23*^\23+_\24+`\25,`\25,a\26-b\26.b\27.c\27"
+ "/d\30/e\30""0e\31""0f\31""1g\32""2g\32""2h\33""3i\33""3j\33""4j\34""5k\34"
+ """5l\35""6l\35""6m\37""8p!;s\";t\"<u#<v$=v$>w%>x%?x&?y&@z'@z'A{(B|)B})C}"
+ "*C~*D\177+E\177+E\200,F\200,G\200-H\201+F\200\202+E\177%,E\200-F\200-F\201"
+ ".G\201.H\202/H\203/I\2030I\2040J\2051K\2051K\2062L\2073L\2103M\2104N\211"
+ "4N\2125O\2125O\2136P\2146P\2157Q\2157R\2168R\2179S\2179S\220:T\221:U\221"
+ ";U\222;V\223<V\224<W\224=X\225=X\226>Y\226?Y\227?Z\230@[\231\202\23,b\1\23"
+ "+`\240\22)]\21\22*^\23*_\24+_\24+`\25,a\25-a\26-b\26.c\27.c\27/d\30/e\30"
+ """0e\31""1f\32""1g\32""2h\33""2h\33""3i\202\33""4j\5\34""5k\34""5l\36""7"
+ "n!:r!:s\202\";t\17#<u#<v$=v$>w%>x%?y&?y&@z'A{(A{(B|)B})C~*D~*D\177\202+E"
+ "\200\2,F\200,G\201\202-H\201\1,F\200\202,E\200\13-F\200-G\201.G\201.H\202"
+ "/H\203/I\2040J\2041J\2051K\2062K\2062L\207\2023M\210\5""4N\2114N\2125O\213"
+ "5P\2136P\214\2027Q\215\21""8R\2168R\2179S\2209T\220:T\221:U\222;U\222;V\223"
+ "<W\224=W\225=X\225>X\226>Y\227?Y\227?Z\230\23+a\22*^\242\22)]\17\23*^\23"
+ "*_\24+_\24,`\25,a\25-a\26-b\26.c\27.d\30/d\30""0e\31""0f\31""1f\32""1g\32"
+ """2h\202\33""3i\5\33""4j\33""4k\35""6l\37""8q\40""9r\202!:s\17\";t\"<u#<"
+ "u#=v$=w%>w%>x&?y&@z'@z'A{(A|(B|)C})C~\202*D\177\7+E\200,F\200,G\200-H\201"
+ "-H\202.I\202-H\202\202,F\200\11-F\200-G\201.G\202/H\202/I\2030I\2040J\205"
+ "1J\2051K\206\2022L\207\5""3M\2103M\2114N\2115O\2125O\213\2026P\214\20""7"
+ "Q\2157Q\2168R\2168S\2179S\2209T\221:T\221;U\222;V\223<V\223<W\224=W\225="
+ "X\225>Y\226>Y\227?Z\230\245\22)]\5\23*^\23+_\24+`\25,`\25,a\202\26-b;\27"
+ ".c\27/d\30/e\30""0e\31""0f\31""1g\32""2g\32""2h\33""3i\33""3j\33""4k\36""7"
+ "o\37""8q\40""9q\40""9r!:s!;s\";t\"<u#<v$=v$=w%>x%?x&?y&@z'@{'A{(B|(B})C}"
+ ")C~*D\177+E\177+E\200,F\200,G\201-H\201-I\202.I\203,F\200,E\200-F\200-F\201"
+ ".G\201.H\202/H\203/I\2030I\2040J\2051K\2051K\2062L\2073L\2103M\2104N\211"
+ "4N\2125O\2125O\213\2026P\214\24""7Q\2157R\2168R\2179S\2179S\220:T\221:U\222"
+ ";U\222;V\223<V\224<W\224=X\225=X\226>Y\226?Y\227\302\303\307\314\315\321"
+ "\307\311\314\303\305\311\325\327\333\243\331\333\336\210\331\333\337\207"
+ "\332\333\337\220\332\334\340\203\333\334\340\202\333\334\341\230\333\335"
+ "\341\203\333\335\342\203\334\335\342\2\334\336\342\202\213\236\202p{\223"
+ "\1\237\244\256\202\253\255\261\1\260\262\266\202\253\255\261\1\260\262\266"
+ "\202\253\255\261\6\260\262\267\317\316\314\231\236\232\215\244\223\322\322"
+ "\322\340\340\340\346\345\345\345\1Xd\177\202:Jm\1\214\220\232\202\240\240"
+ "\240\1\250\250\250\202\240\240\240\1\250\250\250\202\240\240\240\6\247\247"
+ "\247\306\306\306\302\302\301\300\276\273\311\311\311\342\342\342\346\345"
+ "\345\345\1q{\216\202Yf\200\1\230\233\242\202\247\247\247\1\255\255\255\202"
+ "\247\247\247\1\255\255\255\202\247\247\247\1\256\256\256",
+};
+
diff --git a/src/image_data/rotation_orientation_horiz_flipped.h b/src/image_data/rotation_orientation_horiz_flipped.h
index 20ce1d9..8ceca39 100644
--- a/src/image_data/rotation_orientation_horiz_flipped.h
+++ b/src/image_data/rotation_orientation_horiz_flipped.h
@@ -4,1152 +4,720 @@
static const nv_image_t rotation_orientation_horiz_flipped_image = {
120, 90, 3, 0,
- "\377\0\0\0\363\0\0\0\2\2\16\2\27\233\27\216\37\315\37\2\34\237>\26""9\353"
- "\340\25""5\375\2\20(\277\1\4\21\204\0\0\0\1\40\240\40\220*\324*\1'\255S\341"
- "\34F\375\1\25""5\277\204\0\0\0\2224\3334\342$X\375\204\0\0\0\222>\342>\1"
- "-~\351\341+i\375\204\0\0\0\221H\351H\1B\326\215\3421z\375\204\0\0\0\220R"
- "\357R\2K\342\240:\224\370\3428\210\375\204\0\0\0\15>\254\373@\254\373A\255"
- "\373C\255\373D\256\372F\256\372G\257\372H\257\372I\260\372K\260\372L\261"
- "\371M\261\371N\261\371\202P\262\371\202R\263\371\1S\263\371\202U\264\370"
- "\2V\264\370W\264\370\202X\265\370\3Y\265\370Z\265\370Z\266\370\202[\266\370"
- "\202\\\266\370\202]\266\367\212]\267\367\202]\266\367\202\\\266\370\202["
- "\266\370\3Z\266\370Z\265\370Y\265\370\202X\265\370\2W\264\370V\264\370\202"
- "U\264\370\1S\263\371\202R\263\371\202P\262\371\24N\261\371M\261\371L\261"
- "\371K\260\372I\260\372H\257\372G\257\372F\256\372D\256\372C\255\373A\255"
- "\373@\254\373>\254\373<\253\373;\253\3749\252\3748\252\3746\251\3744\250"
- "\3743\250\375\2411\247\375\204\0\0\0\7A\255\373B\255\373C\256\373E\256\372"
- "F\257\372H\257\372I\260\372\202K\260\372\2M\261\371N\261\371\202P\262\371"
- "\202R\263\371\4T\263\371U\264\370V\264\370W\264\370\202X\265\370\4Z\265\370"
- "Z\266\370[\266\370\\\266\370\202]\266\367\1]\267\367\202^\267\367\204_\267"
- "\367\210`\267\367\204_\267\367\202^\267\367\1]\267\367\202]\266\367\4\\\266"
- "\370[\266\370Z\266\370Z\265\370\202X\265\370\4W\264\370V\264\370U\264\370"
- "T\263\371\202R\263\371\202P\262\371\2N\261\371M\261\371\202K\260\372\17I"
- "\260\372H\257\372F\257\372E\256\372C\256\373B\255\373A\255\373>\254\373="
- "\253\373;\253\374:\252\3748\252\3746\251\3745\251\3743\250\375\2401\247\375"
- "\204\0\0\0\20B\255\373D\256\372F\256\372G\257\372H\257\372J\260\372K\260"
- "\372M\261\371N\261\371O\262\371P\262\371R\263\371S\263\371T\263\371U\264"
- "\370V\264\370\202X\265\370\7Y\265\370Z\266\370[\266\370\\\266\370]\266\367"
- "]\267\367^\267\367\202_\267\367\202`\267\367\1a\270\367\206b\270\367\204"
- "c\270\367\206b\270\367\1a\270\367\202`\267\367\202_\267\367\7^\267\367]\267"
- "\367]\266\367\\\266\370[\266\370Z\266\370Y\265\370\202X\265\370\31V\264\370"
- "U\264\370T\263\371S\263\371R\263\371P\262\371O\262\371N\261\371M\261\371"
- "K\260\372J\260\372H\257\372G\257\372F\256\372D\256\372B\255\373A\255\373"
- "?\254\373>\254\373;\253\374:\252\3749\252\3746\251\3745\251\3744\250\375"
- "\2371\247\375\204\0\0\0\11D\256\372F\257\372H\257\372I\260\372K\260\372L"
- "\261\371M\261\371O\262\371P\262\371\202R\263\371\12T\263\371U\264\370V\264"
- "\370X\265\370Y\265\370Z\265\370[\266\370\\\266\370]\266\367]\267\367\202"
- "_\267\367\2`\267\367a\270\367\203b\270\367\1c\270\367\202d\271\367\202d\271"
- "\366\212e\271\366\202d\271\366\202d\271\367\1c\270\367\203b\270\367\2a\270"
- "\367`\267\367\202_\267\367\12]\267\367]\266\367\\\266\370[\266\370Z\265\370"
- "Y\265\370X\265\370V\264\370U\264\370T\263\371\202R\263\371\23P\262\371O\262"
- "\371M\261\371L\261\371K\260\372I\260\372H\257\372F\257\372D\256\372C\255"
- "\373A\255\373@\254\373>\254\373<\253\373;\253\3749\252\3747\251\3745\251"
- "\3744\250\375\2361\247\375\204\0\0\0\26F\257\372H\257\372J\260\372K\260\372"
- "M\261\371N\261\371P\262\371Q\262\371R\263\371T\263\371U\264\370V\264\370"
- "X\265\370Y\265\370Z\265\370[\266\370\\\266\370]\267\367^\267\367_\267\367"
- "`\267\367a\270\367\202b\270\367\4c\270\367d\271\367d\271\366e\271\366\202"
- "f\271\366\204g\272\366\210h\272\366\204g\272\366\202f\271\366\4e\271\366"
- "d\271\366d\271\367c\270\367\202b\270\367!a\270\367`\267\367_\267\367^\267"
- "\367]\267\367\\\266\370[\266\370Z\265\370Y\265\370X\265\370V\264\370U\264"
- "\370T\263\371R\263\371Q\262\371P\262\371N\261\371M\261\371K\260\372J\260"
- "\372H\257\372F\257\372E\256\372C\256\373A\255\373@\254\373>\254\373<\253"
- "\373;\253\3749\252\3747\251\3745\251\3744\250\375\2351\247\375\204\0\0\0"
- "\20H\257\372J\260\372L\261\371M\261\371O\262\371P\262\371R\263\371S\263\371"
- "U\264\370V\264\370X\265\370Y\265\370Z\265\370[\266\370]\266\367]\267\367"
- "\202_\267\367\1a\270\367\202b\270\367\4d\271\367d\271\366e\271\366f\271\366"
- "\202g\272\366\202h\272\366\1i\272\366\202i\273\366\204j\273\366\204k\273"
- "\366\204j\273\366\202i\273\366\1i\272\366\202h\272\366\202g\272\366\4f\271"
- "\366e\271\366d\271\366d\271\367\202b\270\367\1a\270\367\202_\267\367\34]"
- "\267\367]\266\367[\266\370Z\265\370Y\265\370X\265\370V\264\370U\264\370S"
- "\263\371R\263\371P\262\371O\262\371M\261\371L\261\371J\260\372H\257\372G"
- "\257\372F\256\372C\256\373B\255\373@\254\373>\254\373=\253\373;\253\3749"
- "\252\3747\251\3745\251\3744\250\375\2341\247\375\204\0\0\0\26K\260\372L\261"
- "\371N\261\371P\262\371Q\262\371R\263\371T\263\371U\264\370W\264\370X\265"
- "\370Z\265\370[\266\370]\266\367]\267\367_\267\367`\267\367a\270\367b\270"
- "\367c\270\367d\271\367e\271\366f\271\366\202g\272\366\5h\272\366i\272\366"
- "i\273\366j\273\366k\273\366\202l\273\366\202l\274\365\212m\274\365\202l\274"
- "\365\202l\273\366\5k\273\366j\273\366i\273\366i\272\366h\272\366\202g\272"
- "\366#f\271\366e\271\366d\271\367c\270\367b\270\367a\270\367`\267\367_\267"
- "\367]\267\367]\266\367[\266\370Z\265\370X\265\370W\264\370U\264\370T\263"
- "\371R\263\371Q\262\371P\262\371N\261\371L\261\371K\260\372I\260\372G\257"
- "\372F\256\372D\256\372B\255\373A\255\373>\254\373=\253\373;\253\3749\252"
- "\3747\251\3745\251\3744\250\375\2331\247\375\204\0\0\0\23M\261\371N\261\371"
- "P\262\371R\263\371S\263\371U\264\370V\264\370X\265\370Y\265\370Z\266\370"
- "\\\266\370]\267\367_\267\367`\267\367a\270\367b\270\367c\270\367d\271\366"
- "e\271\366\202g\272\366\6h\272\366i\273\366j\273\366k\273\366l\273\366l\274"
- "\365\202m\274\365\1n\274\365\202o\274\365\202o\275\365\210p\275\365\202o"
- "\275\365\202o\274\365\1n\274\365\202m\274\365\6l\274\365l\273\366k\273\366"
- "j\273\366i\273\366h\272\366\202g\272\366!e\271\366d\271\366c\270\367b\270"
- "\367a\270\367`\267\367_\267\367]\267\367\\\266\370Z\266\370Y\265\370X\265"
- "\370V\264\370U\264\370S\263\371R\263\371P\262\371N\261\371M\261\371K\260"
- "\372I\260\372H\257\372F\256\372D\256\372B\255\373A\255\373>\254\373=\253"
- "\373;\253\3749\252\3747\251\3745\251\3743\250\375\2321\247\375\204\0\0\0"
- "\35O\262\371P\262\371R\263\371T\263\371U\264\370W\264\370X\265\370Z\265\370"
- "[\266\370]\266\367^\267\367_\267\367a\270\367b\270\367c\270\367d\271\366"
- "f\271\366g\272\366h\272\366i\272\366j\273\366k\273\366l\273\366l\274\365"
- "m\274\365n\274\365o\274\365o\275\365p\275\365\204q\275\365\203r\276\365\204"
- "s\276\365\203r\276\365\204q\275\365,p\275\365o\275\365o\274\365n\274\365"
- "m\274\365l\274\365l\273\366k\273\366j\273\366i\272\366h\272\366g\272\366"
- "f\271\366d\271\366c\270\367b\270\367a\270\367_\267\367^\267\367]\266\367"
- "[\266\370Z\265\370X\265\370W\264\370U\264\370T\263\371R\263\371P\262\371"
- "O\262\371M\261\371K\260\372J\260\372H\257\372F\257\372D\256\372B\255\373"
- "A\255\373>\254\373=\253\373;\253\3749\252\3747\251\3745\251\3743\250\375"
- "\2311\247\375\204\0\0\0\31Q\262\371R\263\371T\263\371V\264\370X\265\370Y"
- "\265\370Z\266\370\\\266\370]\267\367_\267\367`\267\367b\270\367c\270\367"
- "d\271\366f\271\366g\272\366h\272\366i\273\366j\273\366l\273\366l\274\365"
- "m\274\365o\274\365o\275\365p\275\365\202q\275\365\1r\276\365\202s\276\365"
- "\1t\276\365\202t\276\364\212u\277\364\202t\276\364\1t\276\365\202s\276\365"
- "\1r\276\365\202q\275\365)p\275\365o\275\365o\274\365m\274\365l\274\365l\273"
- "\366j\273\366i\273\366h\272\366g\272\366f\271\366d\271\366c\270\367b\270"
- "\367`\267\367_\267\367]\267\367\\\266\370Z\266\370Y\265\370X\265\370V\264"
- "\370T\263\371R\263\371Q\262\371O\262\371M\261\371K\260\372J\260\372H\257"
- "\372F\257\372D\256\372B\255\373A\255\373>\254\373<\253\373;\253\3749\252"
- "\3746\251\3744\250\3743\250\375\2301\247\375\204\0\0\0\26R\263\371U\264\370"
- "V\264\370X\265\370Z\265\370[\266\370]\266\367^\267\367_\267\367a\270\367"
- "b\270\367d\271\367e\271\366g\272\366h\272\366i\273\366j\273\366l\273\366"
- "m\274\365n\274\365o\274\365p\275\365\202q\275\365\5r\276\365s\276\365t\276"
- "\365t\276\364u\277\364\203v\277\364\202w\277\364\210x\300\364\202w\277\364"
- "\203v\277\364\5u\277\364t\276\364t\276\365s\276\365r\276\365\202q\275\365"
- "'p\275\365o\274\365n\274\365m\274\365l\273\366j\273\366i\273\366h\272\366"
- "g\272\366e\271\366d\271\367b\270\367a\270\367_\267\367^\267\367]\266\367"
- "[\266\370Z\265\370X\265\370V\264\370U\264\370R\263\371Q\262\371O\262\371"
- "M\261\371K\260\372J\260\372H\257\372F\257\372D\256\372B\255\373A\255\373"
- ">\254\373<\253\373:\252\3749\252\3746\251\3744\250\3742\250\375\2271\247"
- "\375\204\0\0\0\13U\264\370W\264\370X\265\370Z\265\370\\\266\370]\267\367"
- "_\267\367`\267\367b\270\367c\270\367e\271\366\202g\272\366\14i\272\366j\273"
- "\366l\273\366m\274\365n\274\365o\275\365p\275\365q\275\365r\276\365t\276"
- "\365t\276\364u\277\364\202v\277\364\2w\277\364x\300\364\204y\300\364\203"
- "z\300\364\204{\301\364\203z\300\364\204y\300\364\2x\300\364w\277\364\202"
- "v\277\364\14u\277\364t\276\364t\276\365r\276\365q\275\365p\275\365o\275\365"
- "n\274\365m\274\365l\273\366j\273\366i\272\366\202g\272\366\34e\271\366c\270"
- "\367b\270\367`\267\367_\267\367]\267\367\\\266\370Z\265\370X\265\370W\264"
- "\370U\264\370S\263\371Q\262\371P\262\371M\261\371K\260\372J\260\372H\257"
- "\372F\256\372D\256\372B\255\373@\254\373>\254\373<\253\373:\252\3748\252"
- "\3746\251\3744\250\375\2271\247\375\204\0\0\0\21W\264\370X\265\370Z\266\370"
- "\\\266\370]\267\367_\267\367a\270\367b\270\367d\271\367e\271\366g\272\366"
- "i\272\366j\273\366k\273\366l\274\365n\274\365o\275\365\202q\275\365\3s\276"
- "\365t\276\365u\277\364\202v\277\364\1w\277\364\202y\300\364\202z\300\364"
- "\202{\301\364\203|\301\363\210}\301\363\203|\301\363\202{\301\364\202z\300"
- "\364\202y\300\364\1w\277\364\202v\277\364\3u\277\364t\276\365s\276\365\202"
- "q\275\365#o\275\365n\274\365l\274\365k\273\366j\273\366i\272\366g\272\366"
- "e\271\366d\271\367b\270\367a\270\367_\267\367]\267\367\\\266\370Z\266\370"
- "X\265\370W\264\370U\264\370S\263\371Q\262\371P\262\371M\261\371K\260\372"
- "J\260\372H\257\372F\256\372C\256\373B\255\373@\254\373>\254\373;\253\374"
- "9\252\3747\251\3745\251\3743\250\375\2261\247\375\204\0\0\0\31X\265\370Z"
- "\266\370\\\266\370^\267\367_\267\367b\270\367c\270\367d\271\366f\271\366"
- "g\272\366i\273\366k\273\366l\274\365n\274\365o\275\365p\275\365q\275\365"
- "s\276\365t\276\365u\277\364v\277\364w\277\364x\300\364y\300\364z\300\364"
- "\202{\301\364\2|\301\363}\301\363\203~\302\363\203\177\302\363\206\200\302"
- "\363\203\177\302\363\203~\302\363\2}\301\363|\301\363\202{\301\364,z\300"
- "\364y\300\364x\300\364w\277\364v\277\364u\277\364t\276\365s\276\365q\275"
- "\365p\275\365o\275\365n\274\365l\274\365k\273\366i\273\366g\272\366f\271"
- "\366d\271\366c\270\367b\270\367_\267\367^\267\367\\\266\370Z\266\370X\265"
- "\370W\264\370U\264\370S\263\371Q\262\371P\262\371M\261\371K\260\372I\260"
- "\372H\257\372F\256\372C\256\373A\255\373?\254\373=\253\373;\253\3749\252"
- "\3747\251\3745\251\3743\250\375\2251\247\375\204\0\0\0\24Z\266\370]\266\367"
- "^\267\367`\267\367b\270\367c\270\367e\271\366g\272\366h\272\366i\273\366"
- "l\273\366m\274\365o\274\365p\275\365q\275\365s\276\365t\276\365u\277\364"
- "v\277\364w\277\364\202y\300\364\202{\301\364\1|\301\363\202~\302\363\1\177"
- "\302\363\202\200\302\363\206\200\303\363\204\201\303\363\206\200\303\363"
- "\202\200\302\363\1\177\302\363\202~\302\363\1|\301\363\202{\301\364\202y"
- "\300\364(w\277\364v\277\364u\277\364t\276\365s\276\365q\275\365p\275\365"
- "o\274\365m\274\365l\273\366i\273\366h\272\366g\272\366e\271\366c\270\367"
- "b\270\367`\267\367^\267\367]\266\367Z\266\370Y\265\370W\264\370U\264\370"
- "S\263\371Q\262\371O\262\371M\261\371K\260\372I\260\372G\257\372E\256\372"
- "C\255\373A\255\373?\254\373=\253\373;\253\3749\252\3746\251\3744\250\374"
- "2\250\375\2241\247\375\204\0\0\0\32]\266\367^\267\367`\267\367b\270\367d"
- "\271\367e\271\366g\272\366i\272\366j\273\366l\273\366n\274\365o\275\365q"
- "\275\365r\276\365t\276\365u\277\364v\277\364w\277\364y\300\364z\300\364{"
- "\301\364|\301\363}\301\363~\302\363\177\302\363\200\302\363\203\200\303\363"
- "\1\201\303\363\202\201\304\363\202\202\304\362\210\203\304\362\202\202\304"
- "\362\202\201\304\363\1\201\303\363\203\200\303\363.\200\302\363\177\302\363"
- "~\302\363}\301\363|\301\363{\301\364z\300\364y\300\364w\277\364v\277\364"
- "u\277\364t\276\365r\276\365q\275\365o\275\365n\274\365l\273\366j\273\366"
- "i\272\366g\272\366e\271\366d\271\367b\270\367`\267\367^\267\367]\266\367"
- "Z\266\370Y\265\370W\264\370U\264\370R\263\371Q\262\371O\262\371M\261\371"
- "K\260\372H\257\372G\257\372E\256\372C\255\373A\255\373>\254\373<\253\373"
- ":\252\3748\252\3746\251\3744\250\375\2241\247\375\204\0\0\0\24^\267\367`"
- "\267\367b\270\367d\271\367f\271\366g\272\366i\272\366k\273\366l\274\365n"
- "\274\365p\275\365q\275\365s\276\365t\276\364v\277\364w\277\364y\300\364z"
- "\300\364{\301\364|\301\363\202~\302\363\1\200\302\363\203\200\303\363\3\201"
- "\304\363\202\304\362\203\304\362\202\204\304\362\1\204\305\362\203\205\305"
- "\362\206\206\305\362\203\205\305\362\1\204\305\362\202\204\304\362\3\203"
- "\304\362\202\304\362\201\304\363\203\200\303\363\1\200\302\363\202~\302\363"
- ")|\301\363{\301\364z\300\364y\300\364w\277\364v\277\364t\276\364s\276\365"
- "q\275\365p\275\365n\274\365l\274\365k\273\366i\272\366g\272\366f\271\366"
- "d\271\367b\270\367`\267\367^\267\367]\266\367Z\266\370X\265\370W\264\370"
- "U\264\370R\263\371P\262\371N\261\371M\261\371K\260\372H\257\372F\257\372"
- "D\256\372B\255\373@\254\373>\254\373;\253\3749\252\3747\251\3745\251\374"
- "3\250\375\2231\247\375\204\0\0\0\22`\267\367b\270\367d\271\367f\271\366g"
- "\272\366i\273\366k\273\366m\274\365o\274\365p\275\365q\275\365t\276\365u"
- "\277\364v\277\364x\300\364y\300\364{\301\364|\301\363\202~\302\363\1\200"
- "\302\363\202\200\303\363\6\201\303\363\202\304\362\203\304\362\204\304\362"
- "\204\305\362\205\305\362\202\206\305\362\202\207\306\362\203\210\306\362"
- "\204\211\306\362\203\210\306\362\202\207\306\362\202\206\305\362\6\205\305"
- "\362\204\305\362\204\304\362\203\304\362\202\304\362\201\303\363\202\200"
- "\303\363\1\200\302\363\202~\302\363'|\301\363{\301\364y\300\364x\300\364"
- "v\277\364u\277\364t\276\365q\275\365p\275\365o\274\365m\274\365k\273\366"
- "i\273\366g\272\366f\271\366d\271\367b\270\367`\267\367^\267\367]\266\367"
- "Z\266\370X\265\370V\264\370T\263\371R\263\371P\262\371N\261\371L\261\371"
- "J\260\372H\257\372F\256\372C\256\373A\255\373?\254\373=\253\373;\253\374"
- "9\252\3746\251\3744\250\374\2231\247\375\204\0\0\0\23b\270\367d\271\367f"
- "\271\366g\272\366i\273\366k\273\366m\274\365o\274\365q\275\365r\276\365t"
- "\276\365v\277\364w\277\364y\300\364z\300\364{\301\364}\301\363~\302\363\200"
- "\302\363\202\200\303\363\10\201\304\363\202\304\362\204\304\362\204\305\362"
- "\205\305\362\206\305\362\207\306\362\210\306\362\203\211\306\362\202\212"
- "\306\361\210\213\307\361\202\212\306\361\203\211\306\362\10\210\306\362\207"
- "\306\362\206\305\362\205\305\362\204\305\362\204\304\362\202\304\362\201"
- "\304\363\202\200\303\363)\200\302\363~\302\363}\301\363{\301\364z\300\364"
- "y\300\364w\277\364v\277\364t\276\365r\276\365q\275\365o\274\365m\274\365"
- "k\273\366i\273\366g\272\366f\271\366d\271\367b\270\367`\267\367^\267\367"
- "\\\266\370Z\265\370X\265\370V\264\370T\263\371R\263\371P\262\371M\261\371"
- "K\260\372I\260\372G\257\372E\256\372C\255\373A\255\373>\254\373<\253\373"
- ":\252\3748\252\3745\251\3743\250\375\2221\247\375\204\0\0\0\21d\271\367f"
- "\271\366g\272\366i\273\366k\273\366m\274\365o\275\365q\275\365r\276\365t"
- "\276\364v\277\364w\277\364y\300\364{\301\364|\301\363~\302\363\177\302\363"
- "\202\200\303\363\7\201\304\363\202\304\362\204\304\362\205\305\362\206\305"
- "\362\207\306\362\210\306\362\202\211\306\362\1\212\306\361\202\213\307\361"
- "\202\214\307\361\202\215\307\361\206\216\310\361\202\215\307\361\202\214"
- "\307\361\202\213\307\361\1\212\306\361\202\211\306\362\7\210\306\362\207"
- "\306\362\206\305\362\205\305\362\204\304\362\202\304\362\201\304\363\202"
- "\200\303\363(\177\302\363~\302\363|\301\363{\301\364y\300\364w\277\364v\277"
- "\364t\276\364r\276\365q\275\365o\275\365m\274\365k\273\366i\273\366g\272"
- "\366f\271\366d\271\367b\270\367_\267\367^\267\367\\\266\370Z\265\370X\265"
- "\370U\264\370S\263\371Q\262\371O\262\371M\261\371K\260\372H\257\372F\257"
- "\372D\256\372B\255\373@\254\373>\254\373;\253\3749\252\3746\251\3744\250"
- "\3742\250\375\2211\247\375\204\0\0\0\35e\271\366g\272\366i\273\366k\273\366"
- "m\274\365o\275\365q\275\365s\276\365t\276\364v\277\364x\300\364y\300\364"
- "{\301\364}\301\363~\302\363\200\302\363\200\303\363\201\303\363\202\304\362"
- "\204\304\362\205\305\362\206\305\362\207\306\362\210\306\362\211\306\362"
- "\212\306\361\213\307\361\214\307\361\215\307\361\203\216\310\361\1\217\310"
- "\361\203\220\310\361\204\220\311\361\203\220\310\361\1\217\310\361\203\216"
- "\310\3614\215\307\361\214\307\361\213\307\361\212\306\361\211\306\362\210"
- "\306\362\207\306\362\206\305\362\205\305\362\204\304\362\202\304\362\201"
- "\303\363\200\303\363\200\302\363~\302\363}\301\363{\301\364y\300\364x\300"
- "\364v\277\364t\276\364s\276\365q\275\365o\275\365m\274\365k\273\366i\273"
- "\366g\272\366e\271\366d\271\367b\270\367_\267\367]\267\367[\266\370Y\265"
- "\370W\264\370U\264\370R\263\371P\262\371N\261\371L\261\371J\260\372H\257"
- "\372F\256\372C\256\373A\255\373?\254\373<\253\373:\252\3748\252\3746\251"
- "\3744\250\375\2211\247\375\204\0\0\0\16g\272\366i\272\366k\273\366m\274\365"
- "o\275\365q\275\365s\276\365t\276\364v\277\364x\300\364z\300\364{\301\364"
- "}\301\363\177\302\363\202\200\303\363\5\201\304\363\203\304\362\204\305\362"
- "\206\305\362\207\306\362\202\211\306\362\202\213\307\361\1\215\307\361\202"
- "\216\310\361\4\217\310\361\220\310\361\220\311\361\221\311\361\202\222\311"
- "\361\210\223\311\360\202\222\311\361\4\221\311\361\220\311\361\220\310\361"
- "\217\310\361\202\216\310\361\1\215\307\361\202\213\307\361\202\211\306\362"
- "\5\207\306\362\206\305\362\204\305\362\203\304\362\201\304\363\202\200\303"
- "\363&\177\302\363}\301\363{\301\364z\300\364x\300\364v\277\364t\276\364s"
- "\276\365q\275\365o\275\365m\274\365k\273\366i\272\366g\272\366e\271\366c"
- "\270\367a\270\367_\267\367]\266\367Z\266\370X\265\370V\264\370T\263\371R"
- "\263\371P\262\371M\261\371K\260\372I\260\372G\257\372E\256\372C\255\373@"
- "\254\373>\254\373;\253\3749\252\3747\251\3744\250\3742\250\375\2201\247\375"
- "\204\0\0\0\37i\272\366k\273\366m\274\365o\274\365q\275\365s\276\365t\276"
- "\364v\277\364y\300\364z\300\364|\301\363~\302\363\177\302\363\200\303\363"
- "\201\303\363\202\304\362\204\304\362\205\305\362\206\305\362\210\306\362"
- "\211\306\362\213\307\361\214\307\361\215\307\361\216\310\361\217\310\361"
- "\220\310\361\221\311\361\222\311\361\223\311\360\223\312\360\202\224\312"
- "\360\212\225\312\360\202\224\312\3607\223\312\360\223\311\360\222\311\361"
- "\221\311\361\220\310\361\217\310\361\216\310\361\215\307\361\214\307\361"
- "\213\307\361\211\306\362\210\306\362\206\305\362\205\305\362\204\304\362"
- "\202\304\362\201\303\363\200\303\363\177\302\363~\302\363|\301\363z\300\364"
- "y\300\364v\277\364t\276\364s\276\365q\275\365o\274\365m\274\365k\273\366"
- "i\272\366g\272\366d\271\366b\270\367`\267\367^\267\367]\266\367Z\266\370"
- "X\265\370U\264\370S\263\371Q\262\371O\262\371M\261\371K\260\372H\257\372"
- "F\257\372C\256\373A\255\373?\254\373=\253\373;\253\3748\252\3746\251\374"
- "4\250\375\2201\247\375\204\0\0\0\35j\273\366l\274\365o\274\365q\275\365s"
- "\276\365t\276\364v\277\364y\300\364z\300\364|\301\363~\302\363\200\302\363"
- "\200\303\363\201\303\363\203\304\362\204\305\362\206\305\362\207\306\362"
- "\211\306\362\212\306\361\213\307\361\215\307\361\216\310\361\217\310\361"
- "\220\311\361\222\311\361\223\311\360\223\312\360\224\312\360\202\225\312"
- "\360\2\226\313\360\227\313\360\212\230\313\360\2\227\313\360\226\313\360"
- "\202\225\312\3606\224\312\360\223\312\360\223\311\360\221\311\361\220\311"
- "\361\217\310\361\216\310\361\215\307\361\213\307\361\212\306\361\211\306"
- "\362\207\306\362\206\305\362\204\305\362\203\304\362\201\303\363\200\303"
- "\363\200\302\363~\302\363|\301\363z\300\364y\300\364v\277\364t\276\364s\276"
- "\365q\275\365o\274\365l\274\365j\273\366h\272\366g\272\366d\271\366b\270"
- "\367`\267\367^\267\367\\\266\370Z\265\370W\264\370U\264\370R\263\371P\262"
- "\371N\261\371L\261\371J\260\372G\257\372E\256\372C\255\373A\255\373>\254"
- "\373;\253\3749\252\3747\251\3744\250\3742\250\375\2171\247\375\204\0\0\0"
- "\35l\274\365n\274\365p\275\365r\276\365t\276\364v\277\364x\300\364z\300\364"
- "|\301\363~\302\363\200\302\363\200\303\363\201\304\363\203\304\362\205\305"
- "\362\206\305\362\210\306\362\211\306\362\213\307\361\214\307\361\216\310"
- "\361\217\310\361\220\311\361\222\311\361\223\311\360\224\312\360\225\312"
- "\360\226\313\360\227\313\360\202\230\313\360\1\231\314\360\202\232\314\360"
- "\210\233\314\357\202\232\314\360\1\231\314\360\202\230\313\3606\227\313\360"
- "\226\313\360\225\312\360\224\312\360\223\311\360\222\311\361\220\311\361"
- "\217\310\361\216\310\361\214\307\361\213\307\361\211\306\362\210\306\362"
- "\206\305\362\205\305\362\203\304\362\201\304\363\200\303\363\200\302\363"
- "~\302\363|\301\363z\300\364x\300\364v\277\364t\276\364r\276\365p\275\365"
- "n\274\365l\274\365j\273\366h\272\366f\271\366d\271\367b\270\367_\267\367"
- "]\267\367Z\266\370X\265\370V\264\370T\263\371R\263\371P\262\371M\261\371"
- "K\260\372H\257\372F\257\372D\256\372A\255\373?\254\373=\253\373;\253\374"
- "8\252\3746\251\3744\250\375\2171\247\375\204\0\0\0\32n\274\365p\275\365r"
- "\276\365t\276\365v\277\364x\300\364z\300\364|\301\363~\302\363\200\302\363"
- "\200\303\363\201\304\363\204\304\362\205\305\362\206\305\362\211\306\362"
- "\212\306\361\213\307\361\215\307\361\217\310\361\220\311\361\221\311\361"
- "\223\311\360\224\312\360\225\312\360\226\313\360\202\230\313\360\2\231\314"
- "\360\232\314\360\202\233\314\357\1\234\315\357\212\235\315\357\1\234\315"
- "\357\202\233\314\357\2\232\314\360\231\314\360\202\230\313\3604\226\313\360"
- "\225\312\360\224\312\360\223\311\360\221\311\361\220\311\361\217\310\361"
- "\215\307\361\213\307\361\212\306\361\211\306\362\206\305\362\205\305\362"
- "\204\304\362\201\304\363\200\303\363\200\302\363~\302\363|\301\363z\300\364"
- "x\300\364v\277\364t\276\365r\276\365p\275\365n\274\365l\273\366i\273\366"
- "g\272\366e\271\366c\270\367a\270\367_\267\367\\\266\370Z\265\370X\265\370"
- "U\264\370S\263\371Q\262\371N\261\371L\261\371J\260\372H\257\372E\256\372"
- "C\255\373A\255\373>\254\373;\253\3749\252\3747\251\3744\250\3742\250\375"
- "\2161\247\375\204\0\0\0\35o\275\365q\275\365t\276\365v\277\364x\300\364y"
- "\300\364{\301\364~\302\363\200\302\363\200\303\363\201\304\363\204\304\362"
- "\205\305\362\207\306\362\211\306\362\213\307\361\214\307\361\216\310\361"
- "\217\310\361\221\311\361\223\311\360\224\312\360\225\312\360\226\313\360"
- "\230\313\360\231\314\360\232\314\360\233\314\357\234\315\357\202\235\315"
- "\357\1\236\315\357\202\237\316\357\210\240\316\357\202\237\316\357\1\236"
- "\315\357\202\235\315\3577\234\315\357\233\314\357\232\314\360\231\314\360"
- "\230\313\360\226\313\360\225\312\360\224\312\360\223\311\360\221\311\361"
- "\217\310\361\216\310\361\214\307\361\213\307\361\211\306\362\207\306\362"
- "\205\305\362\204\304\362\201\304\363\200\303\363\200\302\363~\302\363{\301"
- "\364y\300\364x\300\364v\277\364t\276\365q\275\365o\275\365m\274\365k\273"
- "\366i\272\366g\272\366d\271\366b\270\367_\267\367]\267\367[\266\370Y\265"
- "\370W\264\370U\264\370R\263\371P\262\371M\261\371K\260\372H\257\372F\257"
- "\372D\256\372A\255\373?\254\373=\253\373:\252\3748\252\3746\251\3743\250"
- "\375\2161\247\375\204\0\0\0\26q\275\365s\276\365u\277\364w\277\364y\300\364"
- "{\301\364~\302\363\177\302\363\200\303\363\201\304\363\204\304\362\205\305"
- "\362\207\306\362\211\306\362\213\307\361\214\307\361\216\310\361\220\310"
- "\361\221\311\361\223\312\360\225\312\360\226\313\360\202\230\313\360\6\232"
- "\314\360\233\314\357\234\315\357\235\315\357\236\315\357\237\316\357\202"
- "\240\316\357\2\241\316\357\242\317\357\210\242\317\356\2\242\317\357\241"
- "\316\357\202\240\316\357\6\237\316\357\236\315\357\235\315\357\234\315\357"
- "\233\314\357\232\314\360\202\230\313\3600\226\313\360\225\312\360\223\312"
- "\360\221\311\361\220\310\361\216\310\361\214\307\361\213\307\361\211\306"
- "\362\207\306\362\205\305\362\204\304\362\201\304\363\200\303\363\177\302"
- "\363~\302\363{\301\364y\300\364w\277\364u\277\364s\276\365q\275\365o\274"
- "\365l\274\365j\273\366h\272\366f\271\366c\270\367a\270\367_\267\367]\266"
- "\367Z\266\370X\265\370U\264\370S\263\371Q\262\371N\261\371L\261\371J\260"
- "\372H\257\372E\256\372C\255\373A\255\373>\254\373;\253\3749\252\3746\251"
- "\3744\250\374\2161\247\375\204\0\0\0!r\276\365t\276\364v\277\364y\300\364"
- "{\301\364}\301\363\177\302\363\200\303\363\201\304\363\203\304\362\205\305"
- "\362\207\306\362\211\306\362\213\307\361\215\307\361\216\310\361\220\311"
- "\361\222\311\361\223\312\360\225\312\360\227\313\360\230\313\360\232\314"
- "\360\233\314\357\234\315\357\235\315\357\237\316\357\240\316\357\241\316"
- "\357\242\317\357\242\317\356\243\317\356\244\317\356\212\245\320\356<\244"
- "\317\356\243\317\356\242\317\356\242\317\357\241\316\357\240\316\357\237"
- "\316\357\235\315\357\234\315\357\233\314\357\232\314\360\230\313\360\227"
- "\313\360\225\312\360\223\312\360\222\311\361\220\311\361\216\310\361\215"
- "\307\361\213\307\361\211\306\362\207\306\362\205\305\362\203\304\362\201"
- "\304\363\200\303\363\177\302\363}\301\363{\301\364y\300\364v\277\364t\276"
- "\364r\276\365p\275\365n\274\365l\273\366i\273\366g\272\366d\271\366b\270"
- "\367`\267\367^\267\367[\266\370Y\265\370W\264\370U\264\370R\263\371P\262"
- "\371M\261\371K\260\372H\257\372F\257\372C\256\373A\255\373?\254\373<\253"
- "\373:\252\3747\251\3745\251\3743\250\375\2151\247\375\204\0\0\0\37t\276\365"
- "v\277\364x\300\364z\300\364|\301\363~\302\363\200\303\363\201\303\363\203"
- "\304\362\205\305\362\207\306\362\211\306\362\213\307\361\215\307\361\216"
- "\310\361\220\311\361\222\311\361\224\312\360\225\312\360\227\313\360\231"
- "\314\360\233\314\357\234\315\357\235\315\357\237\316\357\240\316\357\241"
- "\316\357\242\317\356\243\317\356\244\317\356\245\320\356\202\246\320\356"
- "\1\247\320\356\202\247\321\356\204\250\321\356\202\247\321\356\1\247\320"
- "\356\202\246\320\356:\245\320\356\244\317\356\243\317\356\242\317\356\241"
- "\316\357\240\316\357\237\316\357\235\315\357\234\315\357\233\314\357\231"
- "\314\360\227\313\360\225\312\360\224\312\360\222\311\361\220\311\361\216"
- "\310\361\215\307\361\213\307\361\211\306\362\207\306\362\205\305\362\203"
- "\304\362\201\303\363\200\303\363~\302\363|\301\363z\300\364x\300\364v\277"
- "\364t\276\365q\275\365o\275\365m\274\365j\273\366h\272\366f\271\366d\271"
- "\367b\270\367_\267\367]\266\367Z\266\370X\265\370U\264\370S\263\371Q\262"
- "\371N\261\371L\261\371J\260\372G\257\372E\256\372B\255\373@\254\373>\254"
- "\373;\253\3749\252\3746\251\3744\250\375\2151\247\375\204\0\0\0\33u\277\364"
- "w\277\364y\300\364{\301\364~\302\363\200\302\363\200\303\363\202\304\362"
- "\204\305\362\206\305\362\211\306\362\213\307\361\214\307\361\216\310\361"
- "\220\311\361\222\311\361\224\312\360\225\312\360\230\313\360\231\314\360"
- "\233\314\357\235\315\357\236\315\357\240\316\357\241\316\357\242\317\356"
- "\243\317\356\202\245\320\356\4\247\320\356\247\321\356\250\321\356\251\321"
- "\356\202\252\321\356\206\252\322\355\202\252\321\356\4\251\321\356\250\321"
- "\356\247\321\356\247\320\356\202\245\320\3567\243\317\356\242\317\356\241"
- "\316\357\240\316\357\236\315\357\235\315\357\233\314\357\231\314\360\230"
- "\313\360\225\312\360\224\312\360\222\311\361\220\311\361\216\310\361\214"
- "\307\361\213\307\361\211\306\362\206\305\362\204\305\362\202\304\362\200"
- "\303\363\200\302\363~\302\363{\301\364y\300\364w\277\364u\277\364s\276\365"
- "q\275\365n\274\365l\273\366i\273\366g\272\366e\271\366b\270\367`\267\367"
- "^\267\367[\266\370Y\265\370W\264\370T\263\371R\263\371P\262\371M\261\371"
- "K\260\372H\257\372F\256\372C\256\373A\255\373>\254\373;\253\3749\252\374"
- "7\251\3744\250\3742\250\375\2141\247\375\204\0\0\0\40v\277\364y\300\364{"
- "\301\364}\301\363\177\302\363\200\303\363\201\304\363\204\304\362\206\305"
- "\362\210\306\362\212\306\361\214\307\361\216\310\361\220\311\361\222\311"
- "\361\224\312\360\226\313\360\230\313\360\232\314\360\233\314\357\235\315"
- "\357\237\316\357\240\316\357\242\317\357\243\317\356\245\320\356\246\320"
- "\356\247\320\356\250\321\356\251\321\356\252\321\356\253\322\355\203\254"
- "\322\355\206\255\323\355\203\254\322\355<\253\322\355\252\321\356\251\321"
- "\356\250\321\356\247\320\356\246\320\356\245\320\356\243\317\356\242\317"
- "\357\240\316\357\237\316\357\235\315\357\233\314\357\232\314\360\230\313"
- "\360\226\313\360\224\312\360\222\311\361\220\311\361\216\310\361\214\307"
- "\361\212\306\361\210\306\362\206\305\362\204\304\362\201\304\363\200\303"
- "\363\177\302\363}\301\363{\301\364y\300\364v\277\364t\276\364q\275\365o\275"
- "\365m\274\365k\273\366h\272\366f\271\366d\271\367b\270\367_\267\367]\266"
- "\367Z\266\370X\265\370U\264\370R\263\371P\262\371N\261\371K\260\372I\260"
- "\372F\257\372D\256\372B\255\373?\254\373=\253\373:\252\3748\252\3745\251"
- "\3743\250\375\2141\247\375\204\0\0\0\35x\300\364z\300\364|\301\363~\302\363"
- "\200\303\363\201\303\363\203\304\362\205\305\362\207\306\362\211\306\362"
- "\213\307\361\216\310\361\220\310\361\222\311\361\224\312\360\226\313\360"
- "\230\313\360\232\314\360\233\314\357\235\315\357\237\316\357\241\316\357"
- "\242\317\356\244\317\356\245\320\356\247\320\356\250\321\356\252\321\356"
- "\252\322\355\202\254\322\355\2\255\323\355\256\323\355\203\257\323\355\204"
- "\260\324\355\203\257\323\355\2\256\323\355\255\323\355\202\254\322\3559\252"
- "\322\355\252\321\356\250\321\356\247\320\356\245\320\356\244\317\356\242"
- "\317\356\241\316\357\237\316\357\235\315\357\233\314\357\232\314\360\230"
- "\313\360\226\313\360\224\312\360\222\311\361\220\310\361\216\310\361\213"
- "\307\361\211\306\362\207\306\362\205\305\362\203\304\362\201\303\363\200"
- "\303\363~\302\363|\301\363z\300\364x\300\364u\277\364s\276\365q\275\365o"
- "\274\365l\273\366i\273\366g\272\366d\271\366b\270\367`\267\367]\267\367["
- "\266\370Y\265\370V\264\370T\263\371Q\262\371O\262\371M\261\371J\260\372H"
- "\257\372E\256\372C\255\373@\254\373>\254\373;\253\3749\252\3746\251\3744"
- "\250\375\2141\247\375\204\0\0\0\33y\300\364{\301\364~\302\363\200\302\363"
- "\200\303\363\202\304\362\204\305\362\207\306\362\211\306\362\213\307\361"
- "\216\310\361\220\310\361\221\311\361\223\312\360\225\312\360\230\313\360"
- "\232\314\360\233\314\357\235\315\357\240\316\357\241\316\357\242\317\356"
- "\245\320\356\246\320\356\247\321\356\251\321\356\252\322\355\202\254\322"
- "\355\4\256\323\355\257\323\355\260\324\355\261\324\355\202\262\324\355\206"
- "\262\324\354\202\262\324\355\4\261\324\355\260\324\355\257\323\355\256\323"
- "\355\202\254\322\3558\252\322\355\251\321\356\247\321\356\246\320\356\245"
- "\320\356\242\317\356\241\316\357\240\316\357\235\315\357\233\314\357\232"
- "\314\360\230\313\360\225\312\360\223\312\360\221\311\361\220\310\361\216"
- "\310\361\213\307\361\211\306\362\206\305\362\204\305\362\202\304\362\200"
- "\303\363\200\302\363~\302\363{\301\364y\300\364v\277\364t\276\364r\276\365"
- "o\275\365m\274\365k\273\366h\272\366f\271\366d\271\367a\270\367_\267\367"
- "\\\266\370Z\265\370X\265\370U\264\370R\263\371P\262\371M\261\371K\260\372"
- "H\257\372F\256\372C\256\373A\255\373>\254\373<\253\3739\252\3747\251\374"
- "4\250\3742\250\375\2131\247\375\204\0\0\0!z\300\364|\301\363\177\302\363"
- "\200\303\363\201\304\363\204\304\362\206\305\362\210\306\362\213\307\361"
- "\215\307\361\217\310\361\221\311\361\223\312\360\225\312\360\227\313\360"
- "\231\314\360\233\314\357\235\315\357\240\316\357\241\316\357\243\317\356"
- "\245\320\356\247\320\356\250\321\356\252\321\356\253\322\355\254\322\355"
- "\256\323\355\257\323\355\260\324\355\262\324\355\262\324\354\263\325\354"
- "\202\264\325\354\206\265\325\354\202\264\325\354>\263\325\354\262\324\354"
- "\262\324\355\260\324\355\257\323\355\256\323\355\254\322\355\253\322\355"
- "\252\321\356\250\321\356\247\320\356\245\320\356\243\317\356\241\316\357"
- "\240\316\357\235\315\357\233\314\357\231\314\360\227\313\360\225\312\360"
- "\223\312\360\221\311\361\217\310\361\215\307\361\213\307\361\210\306\362"
- "\206\305\362\204\304\362\201\304\363\200\303\363\177\302\363|\301\363z\300"
- "\364x\300\364u\277\364s\276\365q\275\365n\274\365l\273\366i\273\366g\272"
- "\366d\271\366b\270\367_\267\367]\267\367Z\266\370X\265\370U\264\370S\263"
- "\371P\262\371N\261\371L\261\371I\260\372G\257\372D\256\372B\255\373?\254"
- "\373=\253\373:\252\3748\252\3745\251\3743\250\375\2131\247\375\204\0\0\0"
- "!{\301\364~\302\363\200\302\363\200\303\363\203\304\362\205\305\362\207\306"
- "\362\211\306\362\213\307\361\216\310\361\220\311\361\223\311\360\225\312"
- "\360\227\313\360\231\314\360\233\314\357\235\315\357\237\316\357\241\316"
- "\357\243\317\356\245\320\356\247\320\356\250\321\356\252\322\355\254\322"
- "\355\255\323\355\257\323\355\260\324\355\262\324\355\263\325\354\264\325"
- "\354\265\325\354\266\326\354\203\267\326\354\204\270\326\354\203\267\326"
- "\354>\266\326\354\265\325\354\264\325\354\263\325\354\262\324\355\260\324"
- "\355\257\323\355\255\323\355\254\322\355\252\322\355\250\321\356\247\320"
- "\356\245\320\356\243\317\356\241\316\357\237\316\357\235\315\357\233\314"
- "\357\231\314\360\227\313\360\225\312\360\223\311\360\220\311\361\216\310"
- "\361\213\307\361\211\306\362\207\306\362\205\305\362\203\304\362\200\303"
- "\363\200\302\363~\302\363{\301\364y\300\364v\277\364t\276\364q\275\365o\275"
- "\365l\274\365j\273\366h\272\366e\271\366c\270\367`\267\367^\267\367\\\266"
- "\370Y\265\370W\264\370T\263\371R\263\371O\262\371M\261\371J\260\372H\257"
- "\372E\256\372C\255\373@\254\373>\254\373;\253\3749\252\3746\251\3744\250"
- "\375\2131\247\375\204\0\0\0\36|\301\363~\302\363\200\303\363\201\304\363"
- "\204\304\362\206\305\362\211\306\362\213\307\361\215\307\361\217\310\361"
- "\222\311\361\224\312\360\226\313\360\230\313\360\233\314\357\235\315\357"
- "\237\316\357\241\316\357\242\317\356\245\320\356\247\320\356\251\321\356"
- "\252\322\355\254\322\355\256\323\355\257\323\355\261\324\355\262\324\354"
- "\264\325\354\265\325\354\202\267\326\354\3\270\326\354\271\326\354\271\327"
- "\354\206\272\327\353\3\271\327\354\271\326\354\270\326\354\202\267\326\354"
- ";\265\325\354\264\325\354\262\324\354\261\324\355\257\323\355\256\323\355"
- "\254\322\355\252\322\355\251\321\356\247\320\356\245\320\356\242\317\356"
- "\241\316\357\237\316\357\235\315\357\233\314\357\230\313\360\226\313\360"
- "\224\312\360\222\311\361\217\310\361\215\307\361\213\307\361\211\306\362"
- "\206\305\362\204\304\362\201\304\363\200\303\363~\302\363|\301\363z\300\364"
- "w\277\364u\277\364s\276\365p\275\365n\274\365k\273\366i\272\366g\272\366"
- "d\271\367b\270\367_\267\367]\266\367Z\265\370X\265\370U\264\370R\263\371"
- "P\262\371M\261\371K\260\372H\257\372F\256\372C\256\373A\255\373>\254\373"
- ";\253\3749\252\3746\251\3744\250\375\2131\247\375\204\0\0\0\"~\302\363\200"
- "\302\363\200\303\363\203\304\362\205\305\362\207\306\362\212\306\361\214"
- "\307\361\216\310\361\220\311\361\223\311\360\225\312\360\230\313\360\232"
- "\314\360\234\315\357\236\315\357\240\316\357\242\317\356\245\320\356\247"
- "\320\356\250\321\356\252\322\355\254\322\355\256\323\355\260\324\355\262"
- "\324\355\263\325\354\264\325\354\266\326\354\267\326\354\271\326\354\271"
- "\327\354\273\327\353\274\327\353\202\274\330\353\204\275\330\353\202\274"
- "\330\353@\274\327\353\273\327\353\271\327\354\271\326\354\267\326\354\266"
- "\326\354\264\325\354\263\325\354\262\324\355\260\324\355\256\323\355\254"
- "\322\355\252\322\355\250\321\356\247\320\356\245\320\356\242\317\356\240"
- "\316\357\236\315\357\234\315\357\232\314\360\230\313\360\225\312\360\223"
- "\311\360\220\311\361\216\310\361\214\307\361\212\306\361\207\306\362\205"
- "\305\362\203\304\362\200\303\363\200\302\363~\302\363{\301\364y\300\364v"
- "\277\364t\276\365q\275\365o\274\365l\274\365i\273\366g\272\366d\271\366b"
- "\270\367_\267\367]\267\367Z\266\370X\265\370U\264\370S\263\371P\262\371N"
- "\261\371K\260\372I\260\372F\257\372D\256\372A\255\373?\254\373<\253\3739"
- "\252\3747\251\3744\250\3742\250\375\2121\247\375\204\0\0\0!~\302\363\200"
- "\303\363\201\304\363\204\304\362\206\305\362\211\306\362\213\307\361\215"
- "\307\361\220\310\361\222\311\361\224\312\360\226\313\360\231\314\360\233"
- "\314\357\235\315\357\240\316\357\242\317\357\244\317\356\246\320\356\250"
- "\321\356\252\322\355\254\322\355\256\323\355\260\324\355\262\324\355\264"
- "\325\354\265\325\354\267\326\354\270\326\354\271\327\354\273\327\353\274"
- "\330\353\275\330\353\202\276\330\353\1\277\331\353\204\300\331\353\1\277"
- "\331\353\202\276\330\353?\275\330\353\274\330\353\273\327\353\271\327\354"
- "\270\326\354\267\326\354\265\325\354\264\325\354\262\324\355\260\324\355"
- "\256\323\355\254\322\355\252\322\355\250\321\356\246\320\356\244\317\356"
- "\242\317\357\240\316\357\235\315\357\233\314\357\231\314\360\226\313\360"
- "\224\312\360\222\311\361\220\310\361\215\307\361\213\307\361\211\306\362"
- "\206\305\362\204\304\362\201\304\363\200\303\363~\302\363|\301\363y\300\364"
- "w\277\364t\276\364r\276\365o\275\365m\274\365j\273\366h\272\366e\271\366"
- "c\270\367`\267\367^\267\367[\266\370Y\265\370V\264\370T\263\371Q\262\371"
- "O\262\371L\261\371J\260\372G\257\372D\256\372B\255\373?\254\373=\253\373"
- ":\252\3748\252\3745\251\3743\250\375\2121\247\375\204\0\0\0!\177\302\363"
- "\200\303\363\202\304\362\204\305\362\207\306\362\211\306\362\214\307\361"
- "\216\310\361\220\311\361\223\312\360\225\312\360\230\313\360\232\314\360"
- "\235\315\357\237\316\357\241\316\357\243\317\356\245\320\356\247\321\356"
- "\252\321\356\254\322\355\256\323\355\260\324\355\262\324\355\264\325\354"
- "\266\326\354\267\326\354\271\326\354\272\327\353\274\330\353\275\330\353"
- "\276\330\353\300\331\353\202\301\331\353\206\302\332\352\202\301\331\353"
- "?\300\331\353\276\330\353\275\330\353\274\330\353\272\327\353\271\326\354"
- "\267\326\354\266\326\354\264\325\354\262\324\355\260\324\355\256\323\355"
- "\254\322\355\252\321\356\247\321\356\245\320\356\243\317\356\241\316\357"
- "\237\316\357\235\315\357\232\314\360\230\313\360\225\312\360\223\312\360"
- "\220\311\361\216\310\361\214\307\361\211\306\362\207\306\362\204\305\362"
- "\202\304\362\200\303\363\177\302\363}\301\363z\300\364x\300\364u\277\364"
- "s\276\365p\275\365n\274\365k\273\366i\272\366f\271\366d\271\367a\270\367"
- "_\267\367\\\266\370Z\265\370W\264\370U\264\370R\263\371P\262\371M\261\371"
- "J\260\372H\257\372E\256\372C\255\373@\254\373>\254\373;\253\3748\252\374"
- "6\251\3743\250\375\2121\247\375\204\0\0\0!\200\302\363\201\303\363\203\304"
- "\362\206\305\362\210\306\362\213\307\361\215\307\361\217\310\361\222\311"
- "\361\224\312\360\226\313\360\231\314\360\233\314\357\235\315\357\240\316"
- "\357\242\317\356\245\320\356\247\320\356\251\321\356\253\322\355\255\323"
- "\355\257\323\355\262\324\355\264\325\354\266\326\354\267\326\354\271\327"
- "\354\273\327\353\274\330\353\276\330\353\300\331\353\301\331\353\302\332"
- "\352\202\303\332\352\1\304\332\352\204\305\333\352\1\304\332\352\202\303"
- "\332\352?\302\332\352\301\331\353\300\331\353\276\330\353\274\330\353\273"
- "\327\353\271\327\354\267\326\354\266\326\354\264\325\354\262\324\355\257"
- "\323\355\255\323\355\253\322\355\251\321\356\247\320\356\245\320\356\242"
- "\317\356\240\316\357\235\315\357\233\314\357\231\314\360\226\313\360\224"
- "\312\360\222\311\361\217\310\361\215\307\361\213\307\361\210\306\362\206"
- "\305\362\203\304\362\201\303\363\200\302\363~\302\363{\301\364y\300\364v"
- "\277\364t\276\365q\275\365o\274\365l\273\366i\273\366g\272\366d\271\366b"
- "\270\367_\267\367]\266\367Z\266\370X\265\370U\264\370R\263\371P\262\371M"
- "\261\371K\260\372H\257\372F\256\372C\256\373A\255\373>\254\373;\253\3749"
- "\252\3746\251\3744\250\375\2121\247\375\204\0\0\0!\200\303\363\201\304\363"
- "\204\305\362\206\305\362\211\306\362\213\307\361\216\310\361\220\311\361"
- "\223\311\360\225\312\360\230\313\360\232\314\360\235\315\357\237\316\357"
- "\241\316\357\244\317\356\246\320\356\250\321\356\252\322\355\254\322\355"
- "\257\323\355\261\324\355\263\325\354\265\325\354\267\326\354\271\327\354"
- "\273\327\353\275\330\353\276\330\353\301\331\353\302\332\352\303\332\352"
- "\304\332\352\202\306\333\352\202\307\333\352\202\310\334\352\202\307\333"
- "\352\202\306\333\352?\304\332\352\303\332\352\302\332\352\301\331\353\276"
- "\330\353\275\330\353\273\327\353\271\327\354\267\326\354\265\325\354\263"
- "\325\354\261\324\355\257\323\355\254\322\355\252\322\355\250\321\356\246"
- "\320\356\244\317\356\241\316\357\237\316\357\235\315\357\232\314\360\230"
- "\313\360\225\312\360\223\311\360\220\311\361\216\310\361\213\307\361\211"
- "\306\362\206\305\362\204\305\362\201\304\363\200\303\363~\302\363|\301\363"
- "y\300\364w\277\364t\276\364q\275\365o\275\365l\274\365j\273\366g\272\366"
- "e\271\366b\270\367`\267\367]\267\367Z\266\370X\265\370U\264\370S\263\371"
- "P\262\371N\261\371K\260\372H\257\372F\257\372C\256\373A\255\373>\254\373"
- ";\253\3749\252\3746\251\3744\250\374\2121\247\375\204\0\0\0\"\200\303\363"
- "\202\304\362\205\305\362\207\306\362\212\306\361\214\307\361\217\310\361"
- "\221\311\361\223\312\360\226\313\360\230\313\360\233\314\357\235\315\357"
- "\240\316\357\242\317\356\245\320\356\247\320\356\252\321\356\254\322\355"
- "\256\323\355\260\324\355\262\324\354\264\325\354\267\326\354\271\326\354"
- "\273\327\353\275\330\353\277\331\353\301\331\353\302\332\352\304\332\352"
- "\306\333\352\307\333\352\310\334\352\202\311\334\352\204\312\334\352\202"
- "\311\334\352A\310\334\352\307\333\352\306\333\352\304\332\352\302\332\352"
- "\301\331\353\277\331\353\275\330\353\273\327\353\271\326\354\267\326\354"
- "\264\325\354\262\324\354\260\324\355\256\323\355\254\322\355\252\321\356"
- "\247\320\356\245\320\356\242\317\356\240\316\357\235\315\357\233\314\357"
- "\230\313\360\226\313\360\223\312\360\221\311\361\217\310\361\214\307\361"
- "\212\306\361\207\306\362\205\305\362\202\304\362\200\303\363\177\302\363"
- "}\301\363z\300\364w\277\364u\277\364r\276\365p\275\365m\274\365k\273\366"
- "h\272\366f\271\366c\270\367`\267\367^\267\367[\266\370Y\265\370V\264\370"
- "S\263\371Q\262\371N\261\371L\261\371I\260\372F\257\372D\256\372A\255\373"
- "?\254\373<\253\3739\252\3747\251\3744\250\3742\250\375\2111\247\375\204\0"
- "\0\0$\201\303\363\203\304\362\206\305\362\210\306\362\213\307\361\215\307"
- "\361\220\310\361\222\311\361\225\312\360\227\313\360\232\314\360\234\315"
- "\357\236\315\357\241\316\357\243\317\356\246\320\356\250\321\356\252\322"
- "\355\255\323\355\257\323\355\262\324\355\264\325\354\266\326\354\271\326"
- "\354\273\327\353\275\330\353\276\330\353\301\331\353\303\332\352\304\332"
- "\352\306\333\352\310\334\352\311\334\352\312\334\352\313\335\351\314\335"
- "\351\204\315\335\351C\314\335\351\313\335\351\312\334\352\311\334\352\310"
- "\334\352\306\333\352\304\332\352\303\332\352\301\331\353\276\330\353\275"
- "\330\353\273\327\353\271\326\354\266\326\354\264\325\354\262\324\355\257"
- "\323\355\255\323\355\252\322\355\250\321\356\246\320\356\243\317\356\241"
- "\316\357\236\315\357\234\315\357\232\314\360\227\313\360\225\312\360\222"
- "\311\361\220\310\361\215\307\361\213\307\361\210\306\362\206\305\362\203"
- "\304\362\201\303\363\200\302\363}\301\363{\301\364x\300\364v\277\364s\276"
- "\365q\275\365n\274\365k\273\366i\272\366f\271\366d\271\367a\270\367^\267"
- "\367\\\266\370Y\265\370W\264\370T\263\371Q\262\371O\262\371L\261\371J\260"
- "\372G\257\372D\256\372B\255\373?\254\373=\253\373:\252\3747\251\3745\251"
- "\3742\250\375\2111\247\375\204\0\0\0\"\201\303\363\204\304\362\206\305\362"
- "\211\306\362\213\307\361\216\310\361\220\311\361\223\311\360\225\312\360"
- "\230\313\360\233\314\357\235\315\357\240\316\357\242\317\357\245\320\356"
- "\247\320\356\251\321\356\254\322\355\256\323\355\261\324\355\263\325\354"
- "\265\325\354\267\326\354\271\327\354\274\330\353\276\330\353\301\331\353"
- "\303\332\352\304\332\352\306\333\352\310\334\352\312\334\352\313\335\351"
- "\315\335\351\202\316\336\351\1\317\336\351\202\320\336\351\1\317\336\351"
- "\202\316\336\351A\315\335\351\313\335\351\312\334\352\310\334\352\306\333"
- "\352\304\332\352\303\332\352\301\331\353\276\330\353\274\330\353\271\327"
- "\354\267\326\354\265\325\354\263\325\354\261\324\355\256\323\355\254\322"
- "\355\251\321\356\247\320\356\245\320\356\242\317\357\240\316\357\235\315"
- "\357\233\314\357\230\313\360\225\312\360\223\311\360\220\311\361\216\310"
- "\361\213\307\361\211\306\362\206\305\362\204\304\362\201\303\363\200\303"
- "\363~\302\363{\301\364y\300\364v\277\364t\276\365q\275\365o\274\365l\273"
- "\366i\273\366g\272\366d\271\367b\270\367_\267\367]\266\367Z\265\370W\264"
- "\370U\264\370R\263\371O\262\371M\261\371J\260\372H\257\372E\256\372B\255"
- "\373@\254\373=\253\373:\252\3748\252\3745\251\3743\250\375\2111\247\375\204"
- "\0\0\0$\201\304\363\204\305\362\206\305\362\211\306\362\213\307\361\216\310"
- "\361\221\311\361\223\312\360\226\313\360\230\313\360\233\314\357\235\315"
- "\357\240\316\357\242\317\356\245\320\356\247\321\356\252\322\355\254\322"
- "\355\257\323\355\262\324\355\264\325\354\267\326\354\271\326\354\273\327"
- "\353\275\330\353\300\331\353\302\332\352\304\332\352\306\333\352\310\334"
- "\352\312\334\352\314\335\351\316\336\351\317\336\351\320\337\351\321\337"
- "\351\204\322\337\351C\321\337\351\320\337\351\317\336\351\316\336\351\314"
- "\335\351\312\334\352\310\334\352\306\333\352\304\332\352\302\332\352\300"
- "\331\353\275\330\353\273\327\353\271\326\354\267\326\354\264\325\354\262"
- "\324\355\257\323\355\254\322\355\252\322\355\247\321\356\245\320\356\242"
- "\317\356\240\316\357\235\315\357\233\314\357\230\313\360\226\313\360\223"
- "\312\360\221\311\361\216\310\361\213\307\361\211\306\362\206\305\362\204"
- "\305\362\201\304\363\200\303\363~\302\363{\301\364y\300\364v\277\364t\276"
- "\364q\275\365o\274\365l\274\365i\273\366g\272\366d\271\366b\270\367_\267"
- "\367]\266\367Z\265\370X\265\370U\264\370R\263\371P\262\371M\261\371K\260"
- "\372H\257\372E\256\372C\255\373@\254\373>\254\373;\253\3748\252\3746\251"
- "\3743\250\375\2111\247\375\204\0\0\0$\202\304\362\204\305\362\207\306\362"
- "\212\306\361\214\307\361\217\310\361\221\311\361\224\312\360\227\313\360"
- "\231\314\360\234\315\357\236\315\357\241\316\357\243\317\356\246\320\356"
- "\250\321\356\253\322\355\255\323\355\260\324\355\262\324\354\265\325\354"
- "\267\326\354\272\327\353\274\330\353\276\330\353\301\331\353\303\332\352"
- "\306\333\352\310\334\352\312\334\352\314\335\351\316\336\351\320\336\351"
- "\321\337\351\323\337\350\323\340\350\204\325\340\350C\323\340\350\323\337"
- "\350\321\337\351\320\336\351\316\336\351\314\335\351\312\334\352\310\334"
- "\352\306\333\352\303\332\352\301\331\353\276\330\353\274\330\353\272\327"
- "\353\267\326\354\265\325\354\262\324\354\260\324\355\255\323\355\253\322"
- "\355\250\321\356\246\320\356\243\317\356\241\316\357\236\315\357\234\315"
- "\357\231\314\360\227\313\360\224\312\360\221\311\361\217\310\361\214\307"
- "\361\212\306\361\207\306\362\204\305\362\202\304\362\200\303\363\177\302"
- "\363|\301\363y\300\364w\277\364t\276\364r\276\365o\275\365l\274\365j\273"
- "\366g\272\366d\271\366b\270\367_\267\367]\267\367Z\266\370X\265\370U\264"
- "\370R\263\371P\262\371M\261\371K\260\372H\257\372F\256\372C\255\373A\255"
- "\373>\254\373;\253\3749\252\3746\251\3743\250\375\2111\247\375\204\0\0\0"
- "%\202\304\362\205\305\362\210\306\362\212\306\361\215\307\361\217\310\361"
- "\222\311\361\225\312\360\227\313\360\232\314\360\234\315\357\237\316\357"
- "\242\317\357\244\317\356\247\320\356\251\321\356\254\322\355\256\323\355"
- "\261\324\355\263\325\354\266\326\354\270\326\354\273\327\353\275\330\353"
- "\300\331\353\302\332\352\304\332\352\307\333\352\311\334\352\313\335\351"
- "\316\336\351\320\336\351\322\337\351\323\340\350\325\340\350\326\341\350"
- "\327\341\350\202\330\341\350D\327\341\350\326\341\350\325\340\350\323\340"
- "\350\322\337\351\320\336\351\316\336\351\313\335\351\311\334\352\307\333"
- "\352\304\332\352\302\332\352\300\331\353\275\330\353\273\327\353\270\326"
- "\354\266\326\354\263\325\354\261\324\355\256\323\355\254\322\355\251\321"
- "\356\247\320\356\244\317\356\242\317\357\237\316\357\234\315\357\232\314"
- "\360\227\313\360\225\312\360\222\311\361\217\310\361\215\307\361\212\306"
- "\361\210\306\362\205\305\362\202\304\362\200\303\363\177\302\363}\301\363"
- "z\300\364w\277\364u\277\364r\276\365o\275\365m\274\365j\273\366h\272\366"
- "e\271\366b\270\367`\267\367]\267\367Z\266\370X\265\370U\264\370R\263\371"
- "P\262\371M\261\371K\260\372H\257\372F\256\372C\256\373A\255\373>\254\373"
- ";\253\3749\252\3746\251\3744\250\375\2111\247\375\204\0\0\0$\203\304\362"
- "\206\305\362\210\306\362\213\307\361\215\307\361\220\310\361\223\311\360"
- "\225\312\360\230\313\360\232\314\360\235\315\357\240\316\357\242\317\357"
- "\245\320\356\247\321\356\252\321\356\254\322\355\257\323\355\262\324\355"
- "\264\325\354\267\326\354\271\326\354\274\327\353\276\330\353\301\331\353"
- "\303\332\352\306\333\352\310\334\352\313\335\351\315\335\351\317\336\351"
- "\321\337\351\323\340\350\325\340\350\327\341\350\330\341\350\204\332\342"
- "\350C\330\341\350\327\341\350\325\340\350\323\340\350\321\337\351\317\336"
- "\351\315\335\351\313\335\351\310\334\352\306\333\352\303\332\352\301\331"
- "\353\276\330\353\274\327\353\271\326\354\267\326\354\264\325\354\262\324"
- "\355\257\323\355\254\322\355\252\321\356\247\321\356\245\320\356\242\317"
- "\357\240\316\357\235\315\357\232\314\360\230\313\360\225\312\360\223\311"
- "\360\220\310\361\215\307\361\213\307\361\210\306\362\206\305\362\203\304"
- "\362\200\303\363\200\302\363}\301\363z\300\364x\300\364u\277\364r\276\365"
- "p\275\365m\274\365k\273\366h\272\366e\271\366c\270\367`\267\367]\267\367"
- "[\266\370X\265\370U\264\370S\263\371P\262\371M\261\371K\260\372H\257\372"
- "F\257\372C\256\373A\255\373>\254\373;\253\3749\252\3746\251\3744\250\375"
- "\2111\247\375\204\0\0\0%\203\304\362\206\305\362\211\306\362\213\307\361"
- "\216\310\361\220\310\361\223\311\360\225\312\360\230\313\360\233\314\357"
- "\235\315\357\240\316\357\242\317\356\245\320\356\247\321\356\252\322\355"
- "\254\322\355\257\323\355\262\324\354\264\325\354\267\326\354\271\327\354"
- "\274\330\353\276\330\353\301\331\353\304\332\352\306\333\352\311\334\352"
- "\313\335\351\316\336\351\320\337\351\323\337\350\325\340\350\327\341\350"
- "\331\342\350\332\342\347\334\343\347\202\335\343\347D\334\343\347\332\342"
- "\347\331\342\350\327\341\350\325\340\350\323\337\350\320\337\351\316\336"
- "\351\313\335\351\311\334\352\306\333\352\304\332\352\301\331\353\276\330"
- "\353\274\330\353\271\327\354\267\326\354\264\325\354\262\324\354\257\323"
- "\355\254\322\355\252\322\355\247\321\356\245\320\356\242\317\356\240\316"
- "\357\235\315\357\233\314\357\230\313\360\225\312\360\223\311\360\220\310"
- "\361\216\310\361\213\307\361\211\306\362\206\305\362\203\304\362\201\303"
- "\363\200\302\363}\301\363{\301\364x\300\364u\277\364s\276\365p\275\365m\274"
- "\365k\273\366h\272\366f\271\366c\270\367`\267\367^\267\367[\266\370X\265"
- "\370V\264\370S\263\371P\262\371N\261\371K\260\372H\257\372F\257\372C\256"
- "\373A\255\373>\254\373;\253\3749\252\3746\251\3744\250\375\2111\247\375\204"
- "\0\0\0%\204\304\362\206\305\362\211\306\362\213\307\361\216\310\361\220\311"
- "\361\223\311\360\225\312\360\230\313\360\233\314\357\235\315\357\240\316"
- "\357\242\317\356\245\320\356\250\321\356\252\322\355\255\323\355\257\323"
- "\355\262\324\354\265\325\354\267\326\354\272\327\353\275\330\353\277\331"
- "\353\302\332\352\304\332\352\307\333\352\312\334\352\314\335\351\317\336"
- "\351\321\337\351\324\340\350\326\341\350\330\341\350\332\342\347\335\343"
- "\347\336\343\347\202\340\344\347D\336\343\347\335\343\347\332\342\347\330"
- "\341\350\326\341\350\324\340\350\321\337\351\317\336\351\314\335\351\312"
- "\334\352\307\333\352\304\332\352\302\332\352\277\331\353\275\330\353\272"
- "\327\353\267\326\354\265\325\354\262\324\354\257\323\355\255\323\355\252"
- "\322\355\250\321\356\245\320\356\242\317\356\240\316\357\235\315\357\233"
- "\314\357\230\313\360\225\312\360\223\311\360\220\311\361\216\310\361\213"
- "\307\361\211\306\362\206\305\362\204\304\362\201\303\363\200\302\363~\302"
- "\363{\301\364x\300\364v\277\364s\276\365p\275\365n\274\365k\273\366h\272"
- "\366f\271\366c\270\367`\267\367^\267\367[\266\370Y\265\370V\264\370S\263"
- "\371Q\262\371N\261\371K\260\372I\260\372F\257\372C\256\373A\255\373>\254"
- "\373;\253\3749\252\3746\251\3744\250\375\2111\247\375\204\0\0\0%\204\304"
- "\362\206\305\362\211\306\362\213\307\361\216\310\361\220\311\361\223\312"
- "\360\225\312\360\230\313\360\233\314\357\235\315\357\240\316\357\243\317"
- "\356\245\320\356\250\321\356\253\322\355\255\323\355\260\324\355\262\324"
- "\354\265\325\354\270\326\354\272\327\353\275\330\353\300\331\353\302\332"
- "\352\305\333\352\310\334\352\312\334\352\315\335\351\317\336\351\322\337"
- "\351\325\340\350\327\341\350\332\342\350\334\343\347\336\343\347\340\344"
- "\347\202\342\345\347D\340\344\347\336\343\347\334\343\347\332\342\350\327"
- "\341\350\325\340\350\322\337\351\317\336\351\315\335\351\312\334\352\310"
- "\334\352\305\333\352\302\332\352\300\331\353\275\330\353\272\327\353\270"
- "\326\354\265\325\354\262\324\354\260\324\355\255\323\355\253\322\355\250"
- "\321\356\245\320\356\243\317\356\240\316\357\235\315\357\233\314\357\230"
- "\313\360\225\312\360\223\312\360\220\311\361\216\310\361\213\307\361\211"
- "\306\362\206\305\362\204\304\362\201\303\363\200\302\363~\302\363{\301\364"
- "y\300\364v\277\364s\276\365q\275\365n\274\365k\273\366i\272\366f\271\366"
- "c\270\367a\270\367^\267\367[\266\370Y\265\370V\264\370S\263\371Q\262\371"
- "N\261\371K\260\372I\260\372F\257\372C\256\373A\255\373>\254\373;\253\374"
- "9\252\3746\251\3744\250\375\2111\247\375\204\0\0\0%\204\304\362\206\305\362"
- "\211\306\362\213\307\361\216\310\361\220\311\361\223\312\360\225\312\360"
- "\230\313\360\233\314\357\235\315\357\240\316\357\243\317\356\245\320\356"
- "\250\321\356\253\322\355\255\323\355\260\324\355\263\325\354\265\325\354"
- "\270\326\354\273\327\353\275\330\353\300\331\353\303\332\352\305\333\352"
- "\310\334\352\313\335\351\315\335\351\320\336\351\323\337\350\325\340\350"
- "\330\341\350\332\342\350\335\343\347\340\344\347\342\345\347\202\344\345"
- "\346D\342\345\347\340\344\347\335\343\347\332\342\350\330\341\350\325\340"
- "\350\323\337\350\320\336\351\315\335\351\313\335\351\310\334\352\305\333"
- "\352\303\332\352\300\331\353\275\330\353\273\327\353\270\326\354\265\325"
- "\354\263\325\354\260\324\355\255\323\355\253\322\355\250\321\356\245\320"
- "\356\243\317\356\240\316\357\235\315\357\233\314\357\230\313\360\225\312"
- "\360\223\312\360\220\311\361\216\310\361\213\307\361\211\306\362\206\305"
- "\362\204\304\362\201\303\363\200\303\363~\302\363{\301\364y\300\364v\277"
- "\364s\276\365q\275\365n\274\365k\273\366i\272\366f\271\366c\270\367a\270"
- "\367^\267\367[\266\370Y\265\370V\264\370S\263\371Q\262\371N\261\371K\260"
- "\372I\260\372F\257\372C\256\373A\255\373>\254\373;\253\3749\252\3746\251"
- "\3744\250\374\2111\247\375\204\0\0\0%\204\304\362\206\305\362\211\306\362"
- "\213\307\361\216\310\361\220\311\361\223\312\360\225\312\360\230\313\360"
- "\233\314\357\235\315\357\240\316\357\243\317\356\245\320\356\250\321\356"
- "\253\322\355\255\323\355\260\324\355\263\325\354\265\325\354\270\326\354"
- "\273\327\353\275\330\353\300\331\353\303\332\352\305\333\352\310\334\352"
- "\313\335\351\315\335\351\320\336\351\323\337\350\325\340\350\330\341\350"
- "\332\342\350\335\343\347\340\344\347\342\345\347\202\344\345\346D\342\345"
- "\347\340\344\347\335\343\347\332\342\350\330\341\350\325\340\350\323\337"
- "\350\320\336\351\315\335\351\313\335\351\310\334\352\305\333\352\303\332"
- "\352\300\331\353\275\330\353\273\327\353\270\326\354\265\325\354\263\325"
- "\354\260\324\355\255\323\355\253\322\355\250\321\356\245\320\356\243\317"
- "\356\240\316\357\235\315\357\233\314\357\230\313\360\225\312\360\223\312"
- "\360\220\311\361\216\310\361\213\307\361\211\306\362\206\305\362\204\304"
- "\362\201\303\363\200\303\363~\302\363{\301\364y\300\364v\277\364s\276\365"
- "q\275\365n\274\365k\273\366i\272\366f\271\366c\270\367a\270\367^\267\367"
- "[\266\370Y\265\370V\264\370S\263\371Q\262\371N\261\371K\260\372I\260\372"
- "F\257\372C\256\373A\255\373>\254\373;\253\3749\252\3746\251\3744\250\374"
- "\2111\247\375\204\0\0\0%\204\304\362\206\305\362\211\306\362\213\307\361"
- "\216\310\361\220\311\361\223\312\360\225\312\360\230\313\360\233\314\357"
- "\235\315\357\240\316\357\243\317\356\245\320\356\250\321\356\253\322\355"
- "\255\323\355\260\324\355\262\324\354\265\325\354\270\326\354\272\327\353"
- "\275\330\353\300\331\353\302\332\352\305\333\352\310\334\352\312\334\352"
- "\315\335\351\317\336\351\322\337\351\325\340\350\327\341\350\332\342\350"
- "\334\343\347\336\343\347\340\344\347\202\342\345\347D\340\344\347\336\343"
- "\347\334\343\347\332\342\350\327\341\350\325\340\350\322\337\351\317\336"
- "\351\315\335\351\312\334\352\310\334\352\305\333\352\302\332\352\300\331"
- "\353\275\330\353\272\327\353\270\326\354\265\325\354\262\324\354\260\324"
- "\355\255\323\355\253\322\355\250\321\356\245\320\356\243\317\356\240\316"
- "\357\235\315\357\233\314\357\230\313\360\225\312\360\223\312\360\220\311"
- "\361\216\310\361\213\307\361\211\306\362\206\305\362\204\304\362\201\303"
- "\363\200\302\363~\302\363{\301\364y\300\364v\277\364s\276\365q\275\365n\274"
- "\365k\273\366i\272\366f\271\366c\270\367a\270\367^\267\367[\266\370Y\265"
- "\370V\264\370S\263\371Q\262\371N\261\371K\260\372I\260\372F\257\372C\256"
- "\373A\255\373>\254\373;\253\3749\252\3746\251\3744\250\375\2111\247\375\204"
- "\0\0\0%\204\304\362\206\305\362\211\306\362\213\307\361\216\310\361\220\311"
- "\361\223\311\360\225\312\360\230\313\360\233\314\357\235\315\357\240\316"
- "\357\242\317\356\245\320\356\250\321\356\252\322\355\255\323\355\257\323"
- "\355\262\324\354\265\325\354\267\326\354\272\327\353\275\330\353\277\331"
- "\353\302\332\352\304\332\352\307\333\352\312\334\352\314\335\351\317\336"
- "\351\321\337\351\324\340\350\326\341\350\330\341\350\332\342\347\335\343"
- "\347\336\343\347\202\340\344\347D\336\343\347\335\343\347\332\342\347\330"
- "\341\350\326\341\350\324\340\350\321\337\351\317\336\351\314\335\351\312"
- "\334\352\307\333\352\304\332\352\302\332\352\277\331\353\275\330\353\272"
- "\327\353\267\326\354\265\325\354\262\324\354\257\323\355\255\323\355\252"
- "\322\355\250\321\356\245\320\356\242\317\356\240\316\357\235\315\357\233"
- "\314\357\230\313\360\225\312\360\223\311\360\220\311\361\216\310\361\213"
- "\307\361\211\306\362\206\305\362\204\304\362\201\303\363\200\302\363~\302"
- "\363{\301\364x\300\364v\277\364s\276\365p\275\365n\274\365k\273\366h\272"
- "\366f\271\366c\270\367`\267\367^\267\367[\266\370Y\265\370V\264\370S\263"
- "\371Q\262\371N\261\371K\260\372I\260\372F\257\372C\256\373A\255\373>\254"
- "\373;\253\3749\252\3746\251\3744\250\375\2111\247\375\204\0\0\0%\203\304"
- "\362\206\305\362\211\306\362\213\307\361\216\310\361\220\310\361\223\311"
- "\360\225\312\360\230\313\360\233\314\357\235\315\357\240\316\357\242\317"
- "\356\245\320\356\247\321\356\252\322\355\254\322\355\257\323\355\262\324"
- "\354\264\325\354\267\326\354\271\327\354\274\330\353\276\330\353\301\331"
- "\353\304\332\352\306\333\352\311\334\352\313\335\351\316\336\351\320\337"
- "\351\323\337\350\325\340\350\327\341\350\331\342\350\332\342\347\334\343"
- "\347\202\335\343\347D\334\343\347\332\342\347\331\342\350\327\341\350\325"
- "\340\350\323\337\350\320\337\351\316\336\351\313\335\351\311\334\352\306"
- "\333\352\304\332\352\301\331\353\276\330\353\274\330\353\271\327\354\267"
- "\326\354\264\325\354\262\324\354\257\323\355\254\322\355\252\322\355\247"
- "\321\356\245\320\356\242\317\356\240\316\357\235\315\357\233\314\357\230"
- "\313\360\225\312\360\223\311\360\220\310\361\216\310\361\213\307\361\211"
- "\306\362\206\305\362\203\304\362\201\303\363\200\302\363}\301\363{\301\364"
- "x\300\364u\277\364s\276\365p\275\365m\274\365k\273\366h\272\366f\271\366"
- "c\270\367`\267\367^\267\367[\266\370X\265\370V\264\370S\263\371P\262\371"
- "N\261\371K\260\372H\257\372F\257\372C\256\373A\255\373>\254\373;\253\374"
- "9\252\3746\251\3744\250\375\2111\247\375\204\0\0\0$\203\304\362\206\305\362"
- "\210\306\362\213\307\361\215\307\361\220\310\361\223\311\360\225\312\360"
- "\230\313\360\232\314\360\235\315\357\240\316\357\242\317\357\245\320\356"
- "\247\321\356\252\321\356\254\322\355\257\323\355\262\324\355\264\325\354"
- "\267\326\354\271\326\354\274\327\353\276\330\353\301\331\353\303\332\352"
- "\306\333\352\310\334\352\313\335\351\315\335\351\317\336\351\321\337\351"
- "\323\340\350\325\340\350\327\341\350\330\341\350\204\332\342\350C\330\341"
- "\350\327\341\350\325\340\350\323\340\350\321\337\351\317\336\351\315\335"
- "\351\313\335\351\310\334\352\306\333\352\303\332\352\301\331\353\276\330"
- "\353\274\327\353\271\326\354\267\326\354\264\325\354\262\324\355\257\323"
- "\355\254\322\355\252\321\356\247\321\356\245\320\356\242\317\357\240\316"
- "\357\235\315\357\232\314\360\230\313\360\225\312\360\223\311\360\220\310"
- "\361\215\307\361\213\307\361\210\306\362\206\305\362\203\304\362\200\303"
- "\363\200\302\363}\301\363z\300\364x\300\364u\277\364r\276\365p\275\365m\274"
- "\365k\273\366h\272\366e\271\366c\270\367`\267\367]\267\367[\266\370X\265"
- "\370U\264\370S\263\371P\262\371M\261\371K\260\372H\257\372F\257\372C\256"
- "\373A\255\373>\254\373;\253\3749\252\3746\251\3744\250\375\2111\247\375\204"
- "\0\0\0%\202\304\362\205\305\362\210\306\362\212\306\361\215\307\361\217\310"
- "\361\222\311\361\225\312\360\227\313\360\232\314\360\234\315\357\237\316"
- "\357\242\317\357\244\317\356\247\320\356\251\321\356\254\322\355\256\323"
- "\355\261\324\355\263\325\354\266\326\354\270\326\354\273\327\353\275\330"
- "\353\300\331\353\302\332\352\304\332\352\307\333\352\311\334\352\313\335"
- "\351\316\336\351\320\336\351\322\337\351\323\340\350\325\340\350\326\341"
- "\350\327\341\350\202\330\341\350D\327\341\350\326\341\350\325\340\350\323"
- "\340\350\322\337\351\320\336\351\316\336\351\313\335\351\311\334\352\307"
- "\333\352\304\332\352\302\332\352\300\331\353\275\330\353\273\327\353\270"
- "\326\354\266\326\354\263\325\354\261\324\355\256\323\355\254\322\355\251"
- "\321\356\247\320\356\244\317\356\242\317\357\237\316\357\234\315\357\232"
- "\314\360\227\313\360\225\312\360\222\311\361\217\310\361\215\307\361\212"
- "\306\361\210\306\362\205\305\362\202\304\362\200\303\363\177\302\363}\301"
- "\363z\300\364w\277\364u\277\364r\276\365o\275\365m\274\365j\273\366h\272"
- "\366e\271\366b\270\367`\267\367]\267\367Z\266\370X\265\370U\264\370R\263"
- "\371P\262\371M\261\371K\260\372H\257\372F\256\372C\256\373A\255\373>\254"
- "\373;\253\3749\252\3746\251\3744\250\375\2111\247\375\204\0\0\0$\202\304"
- "\362\204\305\362\207\306\362\212\306\361\214\307\361\217\310\361\221\311"
- "\361\224\312\360\227\313\360\231\314\360\234\315\357\236\315\357\241\316"
- "\357\243\317\356\246\320\356\250\321\356\253\322\355\255\323\355\260\324"
- "\355\262\324\354\265\325\354\267\326\354\272\327\353\274\330\353\276\330"
- "\353\301\331\353\303\332\352\306\333\352\310\334\352\312\334\352\314\335"
- "\351\316\336\351\320\336\351\321\337\351\323\337\350\323\340\350\204\325"
- "\340\350C\323\340\350\323\337\350\321\337\351\320\336\351\316\336\351\314"
- "\335\351\312\334\352\310\334\352\306\333\352\303\332\352\301\331\353\276"
- "\330\353\274\330\353\272\327\353\267\326\354\265\325\354\262\324\354\260"
- "\324\355\255\323\355\253\322\355\250\321\356\246\320\356\243\317\356\241"
- "\316\357\236\315\357\234\315\357\231\314\360\227\313\360\224\312\360\221"
- "\311\361\217\310\361\214\307\361\212\306\361\207\306\362\204\305\362\202"
- "\304\362\200\303\363\177\302\363|\301\363y\300\364w\277\364t\276\364r\276"
- "\365o\275\365l\274\365j\273\366g\272\366d\271\366b\270\367_\267\367]\267"
- "\367Z\266\370X\265\370U\264\370R\263\371P\262\371M\261\371K\260\372H\257"
- "\372F\256\372C\255\373A\255\373>\254\373;\253\3749\252\3746\251\3743\250"
- "\375\2111\247\375\204\0\0\0$\201\304\363\204\305\362\206\305\362\211\306"
- "\362\213\307\361\216\310\361\221\311\361\223\312\360\226\313\360\230\313"
- "\360\233\314\357\235\315\357\240\316\357\242\317\356\245\320\356\247\321"
- "\356\252\322\355\254\322\355\257\323\355\262\324\355\264\325\354\267\326"
- "\354\271\326\354\273\327\353\275\330\353\300\331\353\302\332\352\304\332"
- "\352\306\333\352\310\334\352\312\334\352\314\335\351\316\336\351\317\336"
- "\351\320\337\351\321\337\351\204\322\337\351C\321\337\351\320\337\351\317"
- "\336\351\316\336\351\314\335\351\312\334\352\310\334\352\306\333\352\304"
- "\332\352\302\332\352\300\331\353\275\330\353\273\327\353\271\326\354\267"
- "\326\354\264\325\354\262\324\355\257\323\355\254\322\355\252\322\355\247"
- "\321\356\245\320\356\242\317\356\240\316\357\235\315\357\233\314\357\230"
- "\313\360\226\313\360\223\312\360\221\311\361\216\310\361\213\307\361\211"
- "\306\362\206\305\362\204\305\362\201\304\363\200\303\363~\302\363{\301\364"
- "y\300\364v\277\364t\276\364q\275\365o\274\365l\274\365i\273\366g\272\366"
- "d\271\366b\270\367_\267\367]\266\367Z\265\370X\265\370U\264\370R\263\371"
- "P\262\371M\261\371K\260\372H\257\372E\256\372C\255\373@\254\373>\254\373"
- ";\253\3748\252\3746\251\3743\250\375\2111\247\375\204\0\0\0#\201\303\363"
- "\204\304\362\206\305\362\211\306\362\213\307\361\216\310\361\220\311\361"
- "\223\311\360\225\312\360\230\313\360\233\314\357\235\315\357\240\316\357"
- "\242\317\357\245\320\356\247\320\356\251\321\356\254\322\355\256\323\355"
- "\261\324\355\263\325\354\265\325\354\267\326\354\271\327\354\274\330\353"
- "\276\330\353\301\331\353\303\332\352\304\332\352\306\333\352\310\334\352"
- "\312\334\352\313\335\351\315\335\351\316\336\351\202\317\336\351\202\320"
- "\336\351\202\317\336\351B\316\336\351\315\335\351\313\335\351\312\334\352"
- "\310\334\352\306\333\352\304\332\352\303\332\352\301\331\353\276\330\353"
- "\274\330\353\271\327\354\267\326\354\265\325\354\263\325\354\261\324\355"
- "\256\323\355\254\322\355\251\321\356\247\320\356\245\320\356\242\317\357"
- "\240\316\357\235\315\357\233\314\357\230\313\360\225\312\360\223\311\360"
- "\220\311\361\216\310\361\213\307\361\211\306\362\206\305\362\204\304\362"
- "\201\303\363\200\303\363~\302\363{\301\364y\300\364v\277\364t\276\365q\275"
- "\365o\274\365l\273\366i\273\366g\272\366d\271\367b\270\367_\267\367]\266"
- "\367Z\265\370W\264\370U\264\370R\263\371O\262\371M\261\371J\260\372H\257"
- "\372E\256\372B\255\373@\254\373=\253\373:\252\3748\252\3745\251\3743\250"
- "\375\2111\247\375\204\0\0\0$\201\303\363\203\304\362\206\305\362\210\306"
- "\362\213\307\361\215\307\361\220\310\361\222\311\361\225\312\360\227\313"
- "\360\232\314\360\234\315\357\236\315\357\241\316\357\243\317\356\246\320"
- "\356\250\321\356\252\322\355\255\323\355\257\323\355\262\324\355\264\325"
- "\354\266\326\354\271\326\354\273\327\353\275\330\353\276\330\353\301\331"
- "\353\303\332\352\304\332\352\306\333\352\310\334\352\311\334\352\312\334"
- "\352\313\335\351\314\335\351\204\315\335\351C\314\335\351\313\335\351\312"
- "\334\352\311\334\352\310\334\352\306\333\352\304\332\352\303\332\352\301"
- "\331\353\276\330\353\275\330\353\273\327\353\271\326\354\266\326\354\264"
- "\325\354\262\324\355\257\323\355\255\323\355\252\322\355\250\321\356\246"
- "\320\356\243\317\356\241\316\357\236\315\357\234\315\357\232\314\360\227"
- "\313\360\225\312\360\222\311\361\220\310\361\215\307\361\213\307\361\210"
- "\306\362\206\305\362\203\304\362\201\303\363\200\302\363}\301\363{\301\364"
- "x\300\364v\277\364s\276\365q\275\365n\274\365k\273\366i\272\366f\271\366"
- "d\271\367a\270\367^\267\367\\\266\370Y\265\370W\264\370T\263\371Q\262\371"
- "O\262\371L\261\371J\260\372G\257\372D\256\372B\255\373?\254\373=\253\373"
- ":\252\3747\251\3745\251\3742\250\375\2111\247\375\204\0\0\0\"\200\303\363"
- "\202\304\362\205\305\362\207\306\362\212\306\361\214\307\361\217\310\361"
- "\221\311\361\223\312\360\226\313\360\230\313\360\233\314\357\235\315\357"
- "\240\316\357\242\317\356\245\320\356\247\320\356\252\321\356\254\322\355"
- "\256\323\355\260\324\355\262\324\354\264\325\354\267\326\354\271\326\354"
- "\273\327\353\275\330\353\277\331\353\301\331\353\303\332\352\304\332\352"
- "\306\333\352\307\333\352\310\334\352\202\311\334\352\204\312\334\352\202"
- "\311\334\352A\310\334\352\307\333\352\306\333\352\304\332\352\302\332\352"
- "\301\331\353\277\331\353\275\330\353\273\327\353\271\326\354\267\326\354"
- "\264\325\354\262\324\354\260\324\355\256\323\355\254\322\355\252\321\356"
- "\247\320\356\245\320\356\242\317\356\240\316\357\235\315\357\233\314\357"
- "\230\313\360\226\313\360\223\312\360\221\311\361\217\310\361\214\307\361"
- "\212\306\361\207\306\362\205\305\362\202\304\362\200\303\363\177\302\363"
- "}\301\363z\300\364w\277\364u\277\364r\276\365p\275\365m\274\365k\273\366"
- "h\272\366f\271\366c\270\367`\267\367^\267\367[\266\370Y\265\370V\264\370"
- "S\263\371Q\262\371N\261\371L\261\371I\260\372F\257\372D\256\372A\255\373"
- "?\254\373<\253\3739\252\3747\251\3744\250\3742\250\375\2111\247\375\204\0"
- "\0\0!\200\303\363\201\304\363\204\305\362\206\305\362\211\306\362\213\307"
- "\361\216\310\361\220\311\361\223\311\360\225\312\360\230\313\360\232\314"
- "\360\235\315\357\237\316\357\241\316\357\244\317\356\246\320\356\250\321"
- "\356\252\322\355\254\322\355\257\323\355\261\324\355\263\325\354\265\325"
- "\354\267\326\354\271\327\354\273\327\353\275\330\353\276\330\353\301\331"
- "\353\302\332\352\303\332\352\304\332\352\202\306\333\352\202\307\333\352"
- "\202\310\334\352\202\307\333\352\202\306\333\352?\304\332\352\303\332\352"
- "\302\332\352\301\331\353\276\330\353\275\330\353\273\327\353\271\327\354"
- "\267\326\354\265\325\354\263\325\354\261\324\355\257\323\355\254\322\355"
- "\252\322\355\250\321\356\246\320\356\244\317\356\241\316\357\237\316\357"
- "\235\315\357\232\314\360\230\313\360\225\312\360\223\311\360\220\311\361"
- "\216\310\361\213\307\361\211\306\362\206\305\362\204\305\362\201\304\363"
- "\200\303\363~\302\363|\301\363y\300\364w\277\364t\276\364q\275\365o\275\365"
- "l\274\365j\273\366g\272\366e\271\366b\270\367`\267\367]\267\367Z\266\370"
- "X\265\370U\264\370S\263\371P\262\371N\261\371K\260\372H\257\372F\257\372"
- "C\256\373A\255\373>\254\373;\253\3749\252\3746\251\3744\250\374\2121\247"
- "\375\204\0\0\0!\200\302\363\201\303\363\203\304\362\206\305\362\210\306\362"
- "\213\307\361\215\307\361\217\310\361\222\311\361\224\312\360\226\313\360"
- "\231\314\360\233\314\357\235\315\357\240\316\357\242\317\356\245\320\356"
- "\247\320\356\251\321\356\253\322\355\255\323\355\257\323\355\262\324\355"
- "\264\325\354\266\326\354\267\326\354\271\327\354\273\327\353\274\330\353"
- "\276\330\353\300\331\353\301\331\353\302\332\352\202\303\332\352\1\304\332"
- "\352\204\305\333\352\1\304\332\352\202\303\332\352?\302\332\352\301\331\353"
- "\300\331\353\276\330\353\274\330\353\273\327\353\271\327\354\267\326\354"
- "\266\326\354\264\325\354\262\324\355\257\323\355\255\323\355\253\322\355"
- "\251\321\356\247\320\356\245\320\356\242\317\356\240\316\357\235\315\357"
- "\233\314\357\231\314\360\226\313\360\224\312\360\222\311\361\217\310\361"
- "\215\307\361\213\307\361\210\306\362\206\305\362\203\304\362\201\303\363"
- "\200\302\363~\302\363{\301\364y\300\364v\277\364t\276\365q\275\365o\274\365"
- "l\273\366i\273\366g\272\366d\271\366b\270\367_\267\367]\266\367Z\266\370"
- "X\265\370U\264\370R\263\371P\262\371M\261\371K\260\372H\257\372F\256\372"
- "C\256\373A\255\373>\254\373;\253\3749\252\3746\251\3744\250\375\2121\247"
- "\375\204\0\0\0!\177\302\363\200\303\363\202\304\362\204\305\362\207\306\362"
- "\211\306\362\214\307\361\216\310\361\220\311\361\223\312\360\225\312\360"
- "\230\313\360\232\314\360\235\315\357\237\316\357\241\316\357\243\317\356"
- "\245\320\356\247\321\356\252\321\356\254\322\355\256\323\355\260\324\355"
- "\262\324\355\264\325\354\266\326\354\267\326\354\271\326\354\273\327\353"
- "\274\330\353\275\330\353\276\330\353\300\331\353\202\301\331\353\206\302"
- "\332\352\202\301\331\353?\300\331\353\276\330\353\275\330\353\274\330\353"
- "\272\327\353\271\326\354\267\326\354\266\326\354\264\325\354\262\324\355"
- "\260\324\355\256\323\355\254\322\355\252\321\356\247\321\356\245\320\356"
- "\243\317\356\241\316\357\237\316\357\235\315\357\232\314\360\230\313\360"
- "\225\312\360\223\312\360\220\311\361\216\310\361\214\307\361\211\306\362"
- "\207\306\362\204\305\362\202\304\362\200\303\363\177\302\363}\301\363z\300"
- "\364x\300\364u\277\364s\276\365p\275\365n\274\365k\273\366i\272\366f\271"
- "\366d\271\367a\270\367_\267\367\\\266\370Z\265\370W\264\370U\264\370R\263"
- "\371P\262\371M\261\371J\260\372H\257\372E\256\372C\255\373@\254\373>\254"
- "\373;\253\3748\252\3746\251\3743\250\375\2121\247\375\204\0\0\0!~\302\363"
- "\200\303\363\201\304\363\204\304\362\206\305\362\211\306\362\213\307\361"
- "\215\307\361\220\310\361\222\311\361\224\312\360\226\313\360\231\314\360"
- "\233\314\357\235\315\357\240\316\357\242\317\357\244\317\356\246\320\356"
- "\250\321\356\252\322\355\254\322\355\256\323\355\260\324\355\262\324\355"
- "\264\325\354\265\325\354\267\326\354\270\326\354\271\327\354\273\327\353"
- "\274\330\353\275\330\353\202\276\330\353\1\277\331\353\204\300\331\353\1"
- "\277\331\353\202\276\330\353?\275\330\353\274\330\353\273\327\353\271\327"
- "\354\270\326\354\267\326\354\265\325\354\264\325\354\262\324\355\260\324"
- "\355\256\323\355\254\322\355\252\322\355\250\321\356\246\320\356\244\317"
- "\356\242\317\357\240\316\357\235\315\357\233\314\357\231\314\360\226\313"
- "\360\224\312\360\222\311\361\220\310\361\215\307\361\213\307\361\211\306"
- "\362\206\305\362\204\304\362\201\304\363\200\303\363~\302\363|\301\363y\300"
- "\364w\277\364t\276\364r\276\365o\275\365m\274\365j\273\366h\272\366e\271"
- "\366c\270\367`\267\367^\267\367[\266\370Y\265\370V\264\370T\263\371Q\262"
- "\371O\262\371L\261\371J\260\372G\257\372D\256\372B\255\373?\254\373=\253"
- "\373:\252\3748\252\3745\251\3743\250\375\2121\247\375\204\0\0\0\"~\302\363"
- "\200\302\363\200\303\363\203\304\362\205\305\362\207\306\362\212\306\361"
- "\214\307\361\216\310\361\220\311\361\223\311\360\225\312\360\230\313\360"
- "\232\314\360\234\315\357\236\315\357\240\316\357\242\317\356\245\320\356"
- "\247\320\356\250\321\356\252\322\355\254\322\355\256\323\355\260\324\355"
- "\262\324\355\263\325\354\264\325\354\266\326\354\267\326\354\271\326\354"
- "\271\327\354\273\327\353\274\327\353\202\274\330\353\204\275\330\353\202"
- "\274\330\353@\274\327\353\273\327\353\271\327\354\271\326\354\267\326\354"
- "\266\326\354\264\325\354\263\325\354\262\324\355\260\324\355\256\323\355"
- "\254\322\355\252\322\355\250\321\356\247\320\356\245\320\356\242\317\356"
- "\240\316\357\236\315\357\234\315\357\232\314\360\230\313\360\225\312\360"
- "\223\311\360\220\311\361\216\310\361\214\307\361\212\306\361\207\306\362"
- "\205\305\362\203\304\362\200\303\363\200\302\363~\302\363{\301\364y\300\364"
- "v\277\364t\276\365q\275\365o\274\365l\274\365i\273\366g\272\366d\271\366"
- "b\270\367_\267\367]\267\367Z\266\370X\265\370U\264\370S\263\371P\262\371"
- "N\261\371K\260\372I\260\372F\257\372D\256\372A\255\373?\254\373<\253\373"
- "9\252\3747\251\3744\250\3742\250\375\2121\247\375\204\0\0\0\36|\301\363~"
- "\302\363\200\303\363\201\304\363\204\304\362\206\305\362\211\306\362\213"
- "\307\361\215\307\361\217\310\361\222\311\361\224\312\360\226\313\360\230"
- "\313\360\233\314\357\235\315\357\237\316\357\241\316\357\242\317\356\245"
- "\320\356\247\320\356\251\321\356\252\322\355\254\322\355\256\323\355\257"
- "\323\355\261\324\355\262\324\354\264\325\354\265\325\354\202\267\326\354"
- "\3\270\326\354\271\326\354\271\327\354\206\272\327\353\3\271\327\354\271"
- "\326\354\270\326\354\202\267\326\354;\265\325\354\264\325\354\262\324\354"
- "\261\324\355\257\323\355\256\323\355\254\322\355\252\322\355\251\321\356"
- "\247\320\356\245\320\356\242\317\356\241\316\357\237\316\357\235\315\357"
- "\233\314\357\230\313\360\226\313\360\224\312\360\222\311\361\217\310\361"
- "\215\307\361\213\307\361\211\306\362\206\305\362\204\304\362\201\304\363"
- "\200\303\363~\302\363|\301\363z\300\364w\277\364u\277\364s\276\365p\275\365"
- "n\274\365k\273\366i\272\366g\272\366d\271\367b\270\367_\267\367]\266\367"
- "Z\265\370X\265\370U\264\370R\263\371P\262\371M\261\371K\260\372H\257\372"
- "F\256\372C\256\373A\255\373>\254\373;\253\3749\252\3746\251\3744\250\375"
- "\2131\247\375\204\0\0\0!{\301\364~\302\363\200\302\363\200\303\363\203\304"
- "\362\205\305\362\207\306\362\211\306\362\213\307\361\216\310\361\220\311"
- "\361\223\311\360\225\312\360\227\313\360\231\314\360\233\314\357\235\315"
- "\357\237\316\357\241\316\357\243\317\356\245\320\356\247\320\356\250\321"
- "\356\252\322\355\254\322\355\255\323\355\257\323\355\260\324\355\262\324"
- "\355\263\325\354\264\325\354\265\325\354\266\326\354\203\267\326\354\204"
- "\270\326\354\203\267\326\354>\266\326\354\265\325\354\264\325\354\263\325"
- "\354\262\324\355\260\324\355\257\323\355\255\323\355\254\322\355\252\322"
- "\355\250\321\356\247\320\356\245\320\356\243\317\356\241\316\357\237\316"
- "\357\235\315\357\233\314\357\231\314\360\227\313\360\225\312\360\223\311"
- "\360\220\311\361\216\310\361\213\307\361\211\306\362\207\306\362\205\305"
- "\362\203\304\362\200\303\363\200\302\363~\302\363{\301\364y\300\364v\277"
- "\364t\276\364q\275\365o\275\365l\274\365j\273\366h\272\366e\271\366c\270"
- "\367`\267\367^\267\367\\\266\370Y\265\370W\264\370T\263\371R\263\371O\262"
- "\371M\261\371J\260\372H\257\372E\256\372C\255\373@\254\373>\254\373;\253"
- "\3749\252\3746\251\3744\250\375\2131\247\375\204\0\0\0!z\300\364|\301\363"
- "\177\302\363\200\303\363\201\304\363\204\304\362\206\305\362\210\306\362"
- "\213\307\361\215\307\361\217\310\361\221\311\361\223\312\360\225\312\360"
- "\227\313\360\231\314\360\233\314\357\235\315\357\240\316\357\241\316\357"
- "\243\317\356\245\320\356\247\320\356\250\321\356\252\321\356\253\322\355"
- "\254\322\355\256\323\355\257\323\355\260\324\355\262\324\355\262\324\354"
- "\263\325\354\202\264\325\354\206\265\325\354\202\264\325\354>\263\325\354"
- "\262\324\354\262\324\355\260\324\355\257\323\355\256\323\355\254\322\355"
- "\253\322\355\252\321\356\250\321\356\247\320\356\245\320\356\243\317\356"
- "\241\316\357\240\316\357\235\315\357\233\314\357\231\314\360\227\313\360"
- "\225\312\360\223\312\360\221\311\361\217\310\361\215\307\361\213\307\361"
- "\210\306\362\206\305\362\204\304\362\201\304\363\200\303\363\177\302\363"
- "|\301\363z\300\364x\300\364u\277\364s\276\365q\275\365n\274\365l\273\366"
- "i\273\366g\272\366d\271\366b\270\367_\267\367]\267\367Z\266\370X\265\370"
- "U\264\370S\263\371P\262\371N\261\371L\261\371I\260\372G\257\372D\256\372"
- "B\255\373?\254\373=\253\373:\252\3748\252\3745\251\3743\250\375\2131\247"
- "\375\204\0\0\0\33y\300\364{\301\364~\302\363\200\302\363\200\303\363\202"
- "\304\362\204\305\362\207\306\362\211\306\362\213\307\361\216\310\361\220"
- "\310\361\221\311\361\223\312\360\225\312\360\230\313\360\232\314\360\233"
- "\314\357\235\315\357\240\316\357\241\316\357\242\317\356\245\320\356\246"
- "\320\356\247\321\356\251\321\356\252\322\355\202\254\322\355\4\256\323\355"
- "\257\323\355\260\324\355\261\324\355\202\262\324\355\206\262\324\354\202"
- "\262\324\355\4\261\324\355\260\324\355\257\323\355\256\323\355\202\254\322"
- "\3558\252\322\355\251\321\356\247\321\356\246\320\356\245\320\356\242\317"
- "\356\241\316\357\240\316\357\235\315\357\233\314\357\232\314\360\230\313"
- "\360\225\312\360\223\312\360\221\311\361\220\310\361\216\310\361\213\307"
- "\361\211\306\362\206\305\362\204\305\362\202\304\362\200\303\363\200\302"
- "\363~\302\363{\301\364y\300\364v\277\364t\276\364r\276\365o\275\365m\274"
- "\365k\273\366h\272\366f\271\366d\271\367a\270\367_\267\367\\\266\370Z\265"
- "\370X\265\370U\264\370R\263\371P\262\371M\261\371K\260\372H\257\372F\256"
- "\372C\256\373A\255\373>\254\373<\253\3739\252\3747\251\3744\250\3742\250"
- "\375\2131\247\375\204\0\0\0\35x\300\364z\300\364|\301\363~\302\363\200\303"
- "\363\201\303\363\203\304\362\205\305\362\210\306\362\211\306\362\213\307"
- "\361\216\310\361\220\310\361\222\311\361\224\312\360\226\313\360\230\313"
- "\360\232\314\360\233\314\357\235\315\357\237\316\357\241\316\357\242\317"
- "\356\244\317\356\245\320\356\247\320\356\250\321\356\252\321\356\252\322"
- "\355\202\254\322\355\2\255\323\355\256\323\355\203\257\323\355\204\260\324"
- "\355\203\257\323\355\2\256\323\355\255\323\355\202\254\322\3559\252\322\355"
- "\252\321\356\250\321\356\247\320\356\245\320\356\244\317\356\242\317\356"
- "\241\316\357\237\316\357\235\315\357\233\314\357\232\314\360\230\313\360"
- "\226\313\360\224\312\360\222\311\361\220\310\361\216\310\361\213\307\361"
- "\211\306\362\207\306\362\205\305\362\203\304\362\201\303\363\200\303\363"
- "~\302\363|\301\363z\300\364x\300\364u\277\364s\276\365q\275\365o\274\365"
- "l\273\366i\273\366g\272\366d\271\366b\270\367`\267\367]\267\367[\266\370"
- "Y\265\370V\264\370T\263\371Q\262\371O\262\371M\261\371J\260\372H\257\372"
- "E\256\372C\255\373@\254\373>\254\373;\253\3749\252\3746\251\3744\250\375"
- "\2141\247\375\204\0\0\0\40v\277\364y\300\364{\301\364}\301\363\177\302\363"
- "\200\303\363\201\304\363\204\304\362\206\305\362\210\306\362\212\306\361"
- "\214\307\361\216\310\361\220\311\361\222\311\361\224\312\360\226\313\360"
- "\230\313\360\232\314\360\233\314\357\235\315\357\237\316\357\240\316\357"
- "\242\317\357\243\317\356\245\320\356\246\320\356\247\320\356\250\321\356"
- "\251\321\356\252\321\356\253\322\355\203\254\322\355\206\255\323\355\203"
- "\254\322\355<\253\322\355\252\321\356\251\321\356\250\321\356\247\320\356"
- "\246\320\356\245\320\356\243\317\356\242\317\357\240\316\357\237\316\357"
- "\235\315\357\233\314\357\232\314\360\230\313\360\226\313\360\224\312\360"
- "\222\311\361\220\311\361\216\310\361\214\307\361\212\306\361\210\306\362"
- "\206\305\362\204\304\362\201\304\363\200\303\363\177\302\363}\301\363{\301"
- "\364y\300\364v\277\364t\276\364q\275\365o\275\365m\274\365k\273\366h\272"
- "\366f\271\366d\271\367b\270\367_\267\367]\266\367Z\266\370X\265\370U\264"
- "\370R\263\371P\262\371N\261\371K\260\372I\260\372F\257\372D\256\372B\255"
- "\373?\254\373=\253\373:\252\3748\252\3745\251\3743\250\375\2141\247\375\204"
- "\0\0\0\33u\277\364w\277\364y\300\364{\301\364~\302\363\200\302\363\200\303"
- "\363\202\304\362\204\305\362\206\305\362\211\306\362\213\307\361\214\307"
- "\361\216\310\361\220\311\361\222\311\361\224\312\360\225\312\360\230\313"
- "\360\231\314\360\233\314\357\235\315\357\236\315\357\240\316\357\241\316"
- "\357\242\317\356\243\317\356\202\245\320\356\4\247\320\356\247\321\356\250"
- "\321\356\251\321\356\202\252\321\356\206\252\322\355\202\252\321\356\4\251"
- "\321\356\250\321\356\247\321\356\247\320\356\202\245\320\3567\243\317\356"
- "\242\317\356\241\316\357\240\316\357\236\315\357\235\315\357\233\314\357"
- "\231\314\360\230\313\360\225\312\360\224\312\360\222\311\361\220\311\361"
- "\216\310\361\214\307\361\213\307\361\211\306\362\206\305\362\204\305\362"
- "\202\304\362\200\303\363\200\302\363~\302\363{\301\364y\300\364w\277\364"
- "u\277\364s\276\365q\275\365n\274\365l\273\366i\273\366g\272\366e\271\366"
- "b\270\367`\267\367^\267\367[\266\370Y\265\370W\264\370T\263\371R\263\371"
- "P\262\371M\261\371K\260\372H\257\372F\256\372C\256\373A\255\373>\254\373"
- ";\253\3749\252\3747\251\3744\250\3742\250\375\2141\247\375\204\0\0\0\37t"
- "\276\365v\277\364x\300\364z\300\364|\301\363~\302\363\200\303\363\201\303"
- "\363\203\304\362\205\305\362\207\306\362\211\306\362\213\307\361\215\307"
- "\361\216\310\361\220\311\361\222\311\361\224\312\360\225\312\360\227\313"
- "\360\231\314\360\233\314\357\234\315\357\235\315\357\237\316\357\240\316"
- "\357\241\316\357\242\317\356\243\317\356\244\317\356\245\320\356\202\246"
- "\320\356\1\247\320\356\202\247\321\356\204\250\321\356\202\247\321\356\1"
- "\247\320\356\202\246\320\356:\245\320\356\244\317\356\243\317\356\242\317"
- "\356\241\316\357\240\316\357\237\316\357\235\315\357\234\315\357\233\314"
- "\357\231\314\360\227\313\360\225\312\360\224\312\360\222\311\361\220\311"
- "\361\216\310\361\215\307\361\213\307\361\211\306\362\207\306\362\205\305"
- "\362\203\304\362\201\303\363\200\303\363~\302\363|\301\363z\300\364x\300"
- "\364v\277\364t\276\365q\275\365o\275\365m\274\365j\273\366h\272\366f\271"
- "\366d\271\367b\270\367_\267\367]\266\367Z\266\370X\265\370U\264\370S\263"
- "\371Q\262\371N\261\371L\261\371J\260\372G\257\372E\256\372B\255\373@\254"
- "\373>\254\373;\253\3749\252\3746\251\3744\250\375\2151\247\375\204\0\0\0"
- "!r\276\365t\276\364v\277\364y\300\364{\301\364}\301\363\177\302\363\200\303"
- "\363\201\304\363\203\304\362\205\305\362\207\306\362\211\306\362\213\307"
- "\361\215\307\361\216\310\361\220\311\361\222\311\361\223\312\360\225\312"
- "\360\227\313\360\230\313\360\232\314\360\233\314\357\234\315\357\235\315"
- "\357\237\316\357\240\316\357\241\316\357\242\317\357\242\317\356\243\317"
- "\356\244\317\356\212\245\320\356<\244\317\356\243\317\356\242\317\356\242"
- "\317\357\241\316\357\240\316\357\237\316\357\235\315\357\234\315\357\233"
- "\314\357\232\314\360\230\313\360\227\313\360\225\312\360\223\312\360\222"
- "\311\361\220\311\361\216\310\361\215\307\361\213\307\361\211\306\362\207"
- "\306\362\205\305\362\203\304\362\201\304\363\200\303\363\177\302\363}\301"
- "\363{\301\364y\300\364v\277\364t\276\364r\276\365p\275\365n\274\365l\273"
- "\366i\273\366g\272\366d\271\366b\270\367`\267\367^\267\367[\266\370Y\265"
- "\370W\264\370U\264\370R\263\371P\262\371M\261\371K\260\372H\257\372F\257"
- "\372C\256\373A\255\373?\254\373<\253\373:\252\3747\251\3745\251\3743\250"
- "\375\2151\247\375\204\0\0\0\26V\217\271s\276\365u\277\364w\277\364y\300\364"
- "{\301\364~\302\363\177\302\363\200\303\363\201\304\363\204\304\362\205\305"
- "\362\207\306\362\211\306\362\213\307\361\214\307\361\216\310\361\220\310"
- "\361\221\311\361\223\312\360\225\312\360\226\313\360\202\230\313\360\6\232"
- "\314\360\233\314\357\234\315\357\235\315\357\236\315\357\237\316\357\202"
- "\240\316\357\2\241\316\357\242\317\357\210\242\317\356\2\242\317\357\241"
- "\316\357\202\240\316\357\6\237\316\357\236\315\357\235\315\357\234\315\357"
- "\233\314\357\232\314\360\202\230\313\3600\226\313\360\225\312\360\223\312"
- "\360\221\311\361\220\310\361\216\310\361\214\307\361\213\307\361\211\306"
- "\362\207\306\362\205\305\362\204\304\362\201\304\363\200\303\363\177\302"
- "\363~\302\363{\301\364y\300\364w\277\364u\277\364s\276\365q\275\365o\274"
- "\365l\274\365j\273\366h\272\366f\271\366c\270\367a\270\367_\267\367]\266"
- "\367Z\266\370X\265\370U\264\370S\263\371Q\262\371N\261\371L\261\371J\260"
- "\372H\257\372E\256\372C\255\373A\255\373>\254\373;\253\3749\252\3746\251"
- "\3744\250\374\2151\247\375\1%\200\277\204\0\0\0\35\7\15\20V\217\271t\276"
- "\365v\277\364x\300\364y\300\364{\301\364~\302\363\200\302\363\200\303\363"
- "\201\304\363\204\304\362\205\305\362\207\306\362\211\306\362\213\307\361"
- "\214\307\361\216\310\361\217\310\361\221\311\361\223\311\360\224\312\360"
- "\225\312\360\226\313\360\230\313\360\231\314\360\232\314\360\233\314\357"
- "\234\315\357\202\235\315\357\1\236\315\357\202\237\316\357\210\240\316\357"
- "\202\237\316\357\1\236\315\357\202\235\315\3577\234\315\357\233\314\357\232"
- "\314\360\231\314\360\230\313\360\226\313\360\225\312\360\224\312\360\223"
- "\311\360\221\311\361\217\310\361\216\310\361\214\307\361\213\307\361\211"
- "\306\362\207\306\362\205\305\362\204\304\362\201\304\363\200\303\363\200"
- "\302\363~\302\363{\301\364y\300\364x\300\364v\277\364t\276\365q\275\365o"
- "\275\365m\274\365k\273\366i\272\366g\272\366d\271\366b\270\367_\267\367]"
- "\267\367[\266\370Y\265\370W\264\370U\264\370R\263\371P\262\371M\261\371K"
- "\260\372H\257\372F\257\372D\256\372A\255\373?\254\373=\253\373:\252\3748"
- "\252\3746\251\3743\250\375\2141\247\375\2%\200\277\3\13\21\377\0\0\0\363"
- "\0\0\0",
+ "\5\306\306\306\302\302\301\300\276\273\311\311\311\342\342\342\346\345\345"
+ "\345\1q{\216\202Yf\200\1\230\233\242\202\247\247\247\1\255\255\255\202\247"
+ "\247\247\1\255\255\255\202\247\247\247\6\256\256\256\317\316\314\231\236"
+ "\232\215\244\223\322\322\322\340\340\340\346\345\345\345\1Xd\177\202:Jm\1"
+ "\214\220\232\202\240\240\240\1\250\250\250\202\240\240\240\1\250\250\250"
+ "\202\240\240\240\6\247\247\247\302\303\307\314\315\321\307\311\314\303\305"
+ "\311\325\327\333\243\331\333\336\210\331\333\337\207\332\333\337\220\332"
+ "\334\340\203\333\334\340\202\333\334\341\230\333\335\341\203\333\335\342"
+ "\203\334\335\342\2\334\336\342\202\213\236\202p{\223\1\237\244\256\202\253"
+ "\255\261\1\260\262\266\202\253\255\261\1\260\262\266\202\253\255\261\1\260"
+ "\262\267\245\22)]\5\23*^\23+_\24+`\25,`\25,a\202\26-b;\27.c\27/d\30/e\30"
+ """0e\31""0f\31""1g\32""2g\32""2h\33""3i\33""3j\33""4k\36""7o\37""8q\40""9"
+ "q\40""9r!:s!;s\";t\"<u#<v$=v$=w%>x%?x&?y&@z'@{'A{(B|(B})C})C~*D\177+E\177"
+ "+E\200,F\200,G\201-H\201-I\202.I\203,F\200,E\200-F\200-F\201.G\201.H\202"
+ "/H\203/I\2030I\2040J\2051K\2051K\2062L\2073L\2103M\2104N\2114N\2125O\212"
+ "5O\213\2026P\214\21""7Q\2157R\2168R\2179S\2179S\220:T\221:U\222;U\222;V\223"
+ "<V\224<W\224=X\225=X\226>Y\226?Y\227\23+a\22*^\242\22)]\17\23*^\23*_\24+"
+ "_\24,`\25,a\25-a\26-b\26.c\27.d\30/d\30""0e\31""0f\31""1f\32""1g\32""2h\202"
+ "\33""3i\5\33""4j\33""4k\35""6l\37""8q\40""9r\202!:s\17\";t\"<u#<u#=v$=w%"
+ ">w%>x&?y&@z'@z'A{(A|(B|)C})C~\202*D\177\7+E\200,F\200,G\200-H\201-H\202."
+ "I\202-H\202\202,F\200\11-F\200-G\201.G\202/H\202/I\2030I\2040J\2051J\205"
+ "1K\206\2022L\207\5""3M\2103M\2114N\2115O\2125O\213\2026P\214\20""7Q\2157"
+ "Q\2168R\2168S\2179S\2209T\221:T\221;U\222;V\223<V\223<W\224=W\225=X\225>"
+ "Y\226>Y\227?Z\230\202\23,b\1\23+`\240\22)]\21\22*^\23*_\24+_\24+`\25,a\25"
+ "-a\26-b\26.c\27.c\27/d\30/e\30""0e\31""1f\32""1g\32""2h\33""2h\33""3i\202"
+ "\33""4j\5\34""5k\34""5l\36""7n!:r!:s\202\";t\17#<u#<v$=v$>w%>x%?y&?y&@z'"
+ "A{(A{(B|)B})C~*D~*D\177\202+E\200\2,F\200,G\201\202-H\201\1,F\200\202,E\200"
+ "\13-F\200-G\201.G\201.H\202/H\203/I\2040J\2041J\2051K\2062K\2062L\207\202"
+ "3M\210\5""4N\2114N\2125O\2135P\2136P\214\2027Q\215\17""8R\2168R\2179S\220"
+ "9T\220:T\221:U\222;U\222;V\223<W\224=W\225=X\225>X\226>Y\227?Y\227?Z\230"
+ "\204\23,b\1\22*_\235\22)]/\22)^\23*^\23+_\24+`\25,`\25,a\26-b\26.b\27.c\27"
+ "/d\30/e\30""0e\31""0f\31""1g\32""2g\32""2h\33""3i\33""3j\33""4j\34""5k\34"
+ """5l\35""6l\35""6m\37""8p!;s\";t\"<u#<v$=v$>w%>x%?x&?y&@z'@z'A{(B|)B})C}"
+ "*C~*D\177+E\177+E\200,F\200,G\200-H\201+F\200\202+E\177%,E\200-F\200-F\201"
+ ".G\201.H\202/H\203/I\2030I\2040J\2051K\2051K\2062L\2073L\2103M\2104N\211"
+ "4N\2125O\2125O\2136P\2146P\2157Q\2157R\2168R\2179S\2179S\220:T\221:U\221"
+ ";U\222;V\223<V\224<W\224=X\225=X\226>Y\226?Y\227?Z\230@[\231\205\23,b\2\23"
+ ",a\22*^\233\22)]\17\23*^\23*_\24+_\24+`\25,a\25-a\26-b\27.c\27/d\30/d\30"
+ """0e\31""0f\31""1f\32""1g\32""2h\202\33""3i\35\33""4j\33""4k\34""5k\35""6"
+ "l\35""6m\36""7m\36""7n!:r\";u#<u#=v$=w%>w%>x&?y&@z'@z'A{(A|(B|)C})C~*D\177"
+ "+D\177+E\200,F\200,G\200+F\200*D~\202+E\177#,E\200,F\200-F\200.G\201.G\202"
+ "/H\202/I\2030I\2040J\2041J\2051K\2062K\2072L\2073M\2103M\2114N\2125N\212"
+ "5O\2136P\2136P\2147Q\2157Q\2168R\2168S\2179S\2209T\221:T\221:U\222;V\223"
+ "<V\223<W\224=W\225=X\225>X\226>Y\227\202?Z\230\1@[\231\207\23,b\2\23+a\22"
+ ")^\230\22)]\21\22*^\23*^\24+_\24+`\25,a\25-a\26-b\26.c\27.c\27/d\30/e\30"
+ """0f\31""1f\32""1g\32""2h\33""2h\33""3i\202\33""4j\5\34""5k\34""5l\35""6"
+ "l\35""7m\36""7n\202\37""8o\17\";t#<v$=v$>w%>x%?y&?y'@z'A{(A{(B|)B})C~*D~"
+ "*D\177\202+E\200\5+F\200*D~*D}+E~+E\177\202,E\200\13-F\200-G\201.G\201.H"
+ "\202/H\203/I\2030J\2041J\2051K\2062K\2062L\207\2023M\210\2""4N\2114N\212"
+ "\2025O\213\1""6P\214\2027Q\215\17""8R\2168R\2179S\2179T\220:T\221:U\222;"
+ "U\222;V\223<W\224=W\224=X\225>X\226>Y\227?Y\227?Z\230\202@[\231\211\23,b"
+ "\1\22+`\226\22)]\6\22)^\23*^\23+_\24+`\24,`\25,a\202\26-b\10\27.c\27/d\30"
+ "/e\30""0e\31""0f\31""1g\32""2g\32""2h\202\33""3i\5\33""4j\34""5k\34""5l\35"
+ """6l\35""6m\202\36""7n\26\37""8o\37""9p\40""9q#=v$=w%>x%?x&?y&@z'@z'A{(A"
+ "|(B})C}*C~*D\177+D\177+E\200*D\177)C}*D}*D~\202+E\177\1,E\200\202-F\200$"
+ ".G\201.H\202/H\203/I\2030I\2040J\2051K\2051K\2062L\2073L\2103M\2104M\211"
+ "4N\2125O\2125O\2136P\2146P\2157Q\2157R\2168R\2179S\2179S\220:T\221:U\221"
+ ";U\222;V\223<V\224<W\224=W\225=X\226>Y\226?Y\227?Z\230@[\230@[\231A\\\232"
+ "\213\23,b\1\22*_\224\22)]\17\23*^\23*_\24+_\24,`\25,a\25-a\26-b\27.c\27."
+ "d\30/d\30""0e\31""0f\31""1g\32""1g\32""2h\202\33""3i*\33""4j\33""4k\34""5"
+ "k\35""5l\35""6m\36""7m\36""7n\37""8o\37""8p\40""9p\40:q\";s$>w%>x&?y&@z'"
+ "@z'A{(A|(B|)C})C~*D~*D\177+E\200)C})C|*D}*D~+E~+E\177,E\200,F\200-F\200-"
+ "G\201.G\202/H\202/I\2030I\2040J\2041J\2051K\206\2022L\207\5""3M\2103M\211"
+ "4N\2115N\2125O\213\2026P\214\17""7Q\2157Q\2168R\2168S\2179S\2209T\220:T\221"
+ ";U\222;V\223<V\223<W\224=W\225=X\225>X\226>Y\227\202?Z\230\3@[\231@\\\232"
+ "A\\\232\214\23,b\2\23+a\22*^\221\22)]\21\22*^\23*^\23+_\24+`\25,`\25,a\26"
+ "-b\26.c\27.c\27/d\30/e\30""0e\31""1f\31""1g\32""2h\33""2h\33""3i\202\33""4"
+ "j\5\34""5k\34""5l\35""6m\35""7m\36""7n\202\37""8o\20\40""9p\40""9q!:q!;r"
+ "#<u%?y&?y&@z'A{(A{(B|)B})C}*C~*D\177+E\177\202)C|\4)C}*D}+E~+E\177\202,E"
+ "\200\13-F\200-G\201.G\201.H\202/H\203/I\2030J\2041J\2051K\2062K\2062L\207"
+ "\2023M\210\2""4N\2114N\212\2025O\213\1""6P\214\2027Q\215\17""8R\2168R\217"
+ "9S\2209T\220:T\221:U\222;U\222;V\223<V\224=W\224=X\225>X\226>Y\227?Y\227"
+ "?Z\230\202@[\231\2A\\\232A\\\233\216\23,b\2\23+`\22)^\217\22)]\5\23*^\23"
+ "*_\24+`\24,`\25,a\202\26-b\10\27.c\27/d\30/e\30""0e\31""0f\31""1g\32""2g"
+ "\32""2h\202\33""3i\5\33""4j\34""5k\34""5l\35""6l\35""6m\202\36""7n\21\37"
+ """8o\37""9p\40""9p!:q!:r\";s\"<s$>v&@z'@z'A{(B|(B})C}*C~*D\177+D\177\203"
+ ")C|\2*D}*D~\202+E\177\22,E\200,F\200-F\200.G\201.H\202/H\203/I\2030I\204"
+ "0J\2051K\2051K\2062L\2072L\2103M\2104N\2114N\2125O\2125O\213\2026P\214\25"
+ """7Q\2157R\2168R\2179S\2179S\220:T\221:U\221;U\222;V\223<V\224<W\224=X\225"
+ "=X\226>Y\226?Y\227?Z\230@Z\230@[\231A\\\232A\\\233B]\233\220\23,b\1\22+`"
+ "\215\22)]\17\23*^\23*_\24+_\24+`\25,a\25-a\26-b\26.c\27.d\27/d\30""0e\31"
+ """0f\31""1f\32""1g\32""2h\202\33""3i*\33""4j\33""4k\34""5k\35""5l\35""6m"
+ "\36""7m\36""7n\37""8o\37""8p\40""9p\40:q!:r!;r\";s#<t#=u&?x'A{(A|(B|)C})"
+ "C~*D~*D\177)C|)B|)C|*D}*D~+E~+E\177,E\200,F\200-F\200-G\201.G\202.H\202/"
+ "I\2030I\2040J\2041J\2051K\206\2022L\207\26""3M\2103M\2114N\2115N\2125O\213"
+ "6P\2136P\2147Q\2157Q\2168R\2168S\2179S\2209T\220:T\221:U\222;V\223<V\223"
+ "<W\224=W\225=X\225>X\226>Y\227\202?Z\230\5@[\231@[\232A\\\232B]\233B]\234"
+ "\222\23,b\1\22*_\212\22)]\4\22)^\23*^\24+_\24+`\202\25,a\13\26-b\26.c\27"
+ ".c\27/d\30/e\30""0e\31""1f\31""1g\32""2h\33""2h\33""3i\202\33""4j\5\34""5"
+ "k\34""5l\35""6l\36""6m\36""7n\202\37""8o\26\40""9p\40""9q!:q!;r\";s\"<t#"
+ "<t#=u$>v'@z(B|)B})C}*C~*D\177)C}(B{)C|)C}*D~+E~+E\177\202,E\200\13-F\200"
+ "-G\201.G\201.H\202/H\203/I\2040I\2041J\2051K\2062K\2062L\207\2023M\210\2"
+ """4N\2114N\212\2025O\213\22""6P\2146Q\2157Q\2158R\2168R\2179S\2209T\220:"
+ "T\221:U\222;U\222;V\223<W\224=W\224=X\225>X\226>Y\227?Y\227?Z\230\202@[\231"
+ "\5A\\\232A\\\233B]\234B^\234\23+`\222\23,b\2\23+a\22*^\207\22)]\6\22)^\23"
+ "*^\23+_\24+`\24,`\25,a\202\26-b\10\27.c\27/d\30/e\30""0e\31""0f\31""1g\32"
+ """2g\32""2h\202\33""3i\5\33""4j\34""5k\34""5l\35""6l\35""6m\202\36""7n\26"
+ "\37""8o\37""9p\40""9q\40:q!:r\";s\"<s#<t#=u$=u$>v%?x(B|)C})C~*D\177)C}(B"
+ "{)C|)C}*D}*D~\202+E\177\1,E\200\202-F\200\10.G\201.H\202/H\203/I\2030I\204"
+ "0J\2051K\2051K\206\2022L\207\5""3M\2104N\2114N\2125O\2125O\213\2026P\214"
+ "\32""7Q\2157R\2168R\2169S\2179S\220:T\221:U\221;U\222;V\223<V\224<W\224="
+ "W\225=X\226>Y\226?Y\227?Z\230@Z\230@[\231A\\\232A\\\233B]\233B]\234C^\235"
+ "\22)]\22)^\23+`\222\23,b\2\23+`\22)^\205\22)]\17\23*^\23*_\24+_\24+`\25,"
+ "a\25-a\26-b\26.c\27.d\27/d\30""0e\31""0f\31""1f\32""1g\32""2h\202\33""3i"
+ "K\33""4j\33""4k\34""5k\34""6l\35""6m\36""7m\36""7n\37""8o\37""8p\40""9p\40"
+ ":q!:r!;r\";s\"<t#=u$=u$>v%>w%?w'@y)C~*D~*C~(B{)B|)C|*D}*D~+E~+E\177,E\200"
+ ",F\200-F\200-G\201.G\202/H\202/I\2030I\2040J\2041J\2051K\2062K\2072L\207"
+ "3M\2103M\2114N\2115N\2125O\2136P\2136P\2147Q\2157Q\2168R\2168S\2179S\220"
+ "9T\221:T\221;U\222;V\223<V\223<W\224=W\225=X\225>X\226>Y\227?Z\227?Z\230"
+ "@[\231@[\232A\\\232B]\233B]\234C^\234C^\235\203\22)]\2\22)^\23+`\222\23,"
+ "b\1\22+`\203\22)]\4\22)^\23*^\24+_\24+`\202\25,a\13\26-b\26.c\27.c\27/d\30"
+ "/e\30""0e\31""1f\31""1g\32""2g\33""2h\33""3i\202\33""4j\26\34""5k\34""5l"
+ "\35""6l\35""6m\36""7n\36""8o\37""8o\40""9p\40""9q!:q!;r\";s\"<t#<t#=u$>v"
+ "%>v%?w&?x&@x(B{*D~\202(B{\5)C|)C}*D}*E~+E\177\202,E\200\17-F\200-G\201.G"
+ "\201.H\202/H\203/I\2030J\2040J\2051K\2062K\2062L\2073L\2103M\2104N\2114N"
+ "\212\2025O\213\22""6P\2146Q\2157Q\2158R\2168R\2179S\2179T\220:T\221:U\222"
+ ";U\222;V\223<V\224<W\224=X\225>X\226>Y\227?Y\227?Z\230\202@[\231\6A\\\232"
+ "A\\\233B]\233B^\234C^\235D_\236\205\22)]\2\22)^\23+`\221\23,b\22\23,a\22"
+ "*_\22)]\23*^\23+_\24+`\24,`\25,a\25-b\26-b\27.c\27/d\30/e\30""0e\31""0f\31"
+ """1g\32""2g\32""2h\202\33""3i\5\33""4j\34""4k\34""5l\35""6l\35""6m\202\36"
+ """7n\13\37""8o\37""9p\40""9q\40:q!:r\";s\"<s#<t#=u$=u$>v\202%?w\3&@x'@y'"
+ "Az\202(B{\202)C|\2*D}*D~\202+E\177\1,E\200\202-F\200\10.G\201.H\202/H\202"
+ "/I\2030I\2040J\2051J\2051K\206\2022L\207\5""3M\2104M\2114N\2125O\2125O\213"
+ "\2026P\214\5""7Q\2157R\2168R\2178S\2179S\220\202:T\221\22;U\222;V\223<V\223"
+ "<W\224=W\225=X\226>Y\226>Y\227?Z\230@Z\230@[\231A\\\232A\\\233B]\233B]\234"
+ "C^\235C_\235D_\236\207\22)]\2\22)^\23+`\222\23,bE\23+`\24+_\24+`\25,a\25"
+ "-a\26-b\26.c\27.c\30/d\30""0e\31""0f\31""1f\32""1g\32""2h\33""2i\33""3i\33"
+ """4j\33""4k\34""5k\35""5l\35""6m\36""7m\36""7n\37""8o\37""8p\40""9p\40:q"
+ "!:r!;r\";s\"<t#=t$=u$>v%>w%?w&?x&@y'Ay'Az(B{)B|)C|*D}*D~+E~+E\177,E\200,"
+ "F\200-F\200-G\201.G\202.H\202/H\2030I\2040J\2041J\2051K\2062K\2072L\2073"
+ "M\2103M\2114N\2114N\2125O\2136P\2136P\2147R\2169T\220\2028S\217\26""9S\220"
+ "9T\220:T\221:U\222;U\223<V\223<W\224=W\225=X\225>X\226>Y\227?Z\227?Z\230"
+ "@[\231@[\232A\\\232B]\233B]\234C^\234C^\235D_\236D`\237\211\22)]\2\22)^\23"
+ "+`\216\23,b\4\23,c\24-c\24.d\25-c\202\25,a#\26-b\26.c\27.c\27/d\30/e\30""0"
+ "e\31""1f\32""1g\32""2g\33""2h\33""3i\33""3j\33""4j\34""5k\34""5l\35""6l\35"
+ """6m\36""7n\36""8o\37""8o\40""9p\40""9q!:q!;r\";s\"<s#<t#=u$>v%>v%?w&?x&"
+ "@x'@y'Az\202(B{\5)C|)C}*D}*E~+E\177\202,E\200\17-F\200-G\201.G\201.H\202"
+ "/H\203/I\2030I\2040J\2051K\2062K\2062L\2073L\2103M\2104N\2114N\212\2025O"
+ "\213\5""7R\2169U\221:V\222;W\223:V\223\2029S\220\13:T\221:U\222;U\222;V\223"
+ "<V\224<W\224=X\225>X\226>Y\227?Y\227?Z\230\202@[\231\5A\\\232A\\\233B]\233"
+ "B^\234C^\235\202D_\236\1E`\237\213\22)]\2\22*^\23+`\214\23,b\17\24-c\24-"
+ "d\25.e\25/e\26/f\26.d\26.b\27.c\27/d\30/d\30""0e\31""0f\31""1g\32""2g\32"
+ """2h\202\33""3i\5\33""4j\34""4k\34""5l\35""6l\35""6m\202\36""7n\22\37""8"
+ "o\37""9p\40""9p!:q!:r\";s\"<s#<t#=u$=u$>v%>w%?x&@x&@y'Az(Az(B{\202)C|\2*"
+ "D}*D~\202+E\177\31,E\200,F\200-F\200-G\201.H\202/H\203/I\2030I\2040J\205"
+ "1J\2051K\2062L\2072L\2103M\2104M\2114N\2125O\2126Q\2158T\2209U\221:V\222"
+ ":W\223;W\223;X\224;V\223\202:T\221\10;U\222;V\223<V\224<W\224=W\225=X\226"
+ ">Y\226?Y\227\202?Z\230\1@[\231\202A\\\232\7B]\233B]\234C^\235C_\235D_\236"
+ "D`\237E`\237\215\22)]\2\22*^\23+a\211\23,b\6\24-c\24-d\25.d\25.e\26/f\26"
+ """0f\202\27""0gX\27/e\27/d\30""0e\31""0f\31""1f\32""1g\32""2h\33""2h\33""3"
+ "i\33""4j\33""4k\34""5k\34""5l\35""6m\36""7m\36""7n\37""8o\37""8p\40""9p\40"
+ ":q!:r!;r\";s\"<t#<t$=u$>v%>w%?w&?x&@y'Ay'Az(B{(B|)C|*D}*D~+E~+E\177,E\200"
+ ",F\200-F\200-G\201.G\202.H\202/I\2030I\2040J\2041J\2051K\2062K\2072L\207"
+ "3M\2103M\2114N\2115O\2137S\2179U\2209U\221:V\222:V\223;W\223;X\224<X\225"
+ "<Y\225;V\223;U\222;U\223<V\223<W\224=W\225=X\225>X\226>Y\227?Z\227?Z\230"
+ "@[\231@[\232A\\\232B]\233B]\234C^\234C^\235D_\236D`\236E`\237Ea\240\217\22"
+ ")]\2\22*^\23+a\206\23,b\13\23,c\24-c\24.d\25.e\26/e\26/f\27""0g\27""1h\30"
+ """1h\30""2i\31""2i\202\31""1f\34\31""1g\32""2g\33""2h\33""3i\33""3j\33""4"
+ "j\34""5k\34""5l\35""6l\35""6m\36""7n\36""8o\37""8o\40""9p\40""9q!:q!;r\""
+ ";s\"<s#<t#=u$=v$>v%?w&?x&@x'@y'Az\202(B{\5)C|)C}*D}*E~+E\177\202,E\200\32"
+ "-F\200-F\201.G\201.H\202/H\203/I\2030I\2040J\2051K\2062K\2062L\2073L\210"
+ "3M\2104N\2116Q\2148T\2178T\2209U\2219V\222:V\222;W\223;W\224<X\225<Y\225"
+ "=Y\226=Z\226\202;V\223\7<V\224<W\224=X\225=X\226>Y\226?Y\227?Z\230\202@["
+ "\231\5A\\\232A\\\233B]\233B]\234C^\235\202D_\236\3E`\237E`\240Ea\240\221"
+ "\22)]\2\22*^\23+a\204\23,b\15\24-c\24-d\25.d\25/e\26/f\26""0g\27""0g\30""1"
+ "h\30""2i\31""2i\31""3j\32""3k\32""3j\202\32""2h\202\33""3i\5\33""4j\34""4"
+ "k\34""5k\35""6l\35""6m\202\36""7n\17\37""8o\37""9p\40""9p\40:q!:r!;s\";s"
+ "#<t#=u$=u$>v%>w%?w&@x&@y\202'Az\1(B{\202)C|\2*D}*D~\202+E\177\13,E\200,F"
+ "\200-F\200.G\201.H\202/H\202/I\2030I\2040J\2051J\2051K\206\2022L\207\5""3"
+ "M\2104N\2116R\2158T\2178T\220\2029U\221\5:V\222:W\223;W\223;X\224<X\225\202"
+ "=Y\226\202>Z\227\11<V\224<W\224=W\225=X\226>Y\226>Y\227?Z\230@Z\230@[\231"
+ "\202A\\\232\2B]\233B]\234\202C^\235\5D_\236D`\237E`\237Ea\240Ea\241\223\22"
+ ")]\33\22*^\23+a\23,b\23-c\24-d\25.d\25.e\26/f\26""0f\27""0g\27""1h\30""1"
+ "h\30""2i\31""3j\32""3k\32""4k\33""4l\33""5m\33""4k\33""3i\33""4j\33""4k\34"
+ """5k\34""5l\35""6m\36""7m\36""7n\202\37""8o*\40""9p\40:q!:r!;r\";s\"<t#<"
+ "t$=u$>v%>w%?w&?x&@y'Ay'Az(B{(B|)C|*D}*D~+E~+E\177,E\200,F\200-F\200-G\201"
+ ".G\202.H\202/I\2030I\2040J\2041J\2051K\2062K\2072L\2073M\2104N\2116R\215"
+ "7S\2178T\2209U\2209U\221\202:V\222\34;W\223;W\224<X\225<Y\225=Y\226=Z\227"
+ ">Z\227?[\230>Z\227=W\225=X\225>X\226>Y\227?Z\227?Z\230@[\231@[\232A\\\232"
+ "B\\\233B]\234C^\234C^\235D_\236D`\236E`\237Ea\240Ea\241Eb\241\225\22)]\20"
+ "\23*_\24,b\24.d\25.e\26/e\26/f\27""0g\27""1g\30""1h\30""2i\31""2j\31""3j"
+ "\32""3k\32""4l\33""5l\34""5m\202\35""6n\27\34""5l\34""5k\34""5l\35""6l\35"
+ """6m\36""7n\36""8n\37""8o\40""9p\40""9q!:q!:r\";s\"<s#<t#=u$=v$>v%?w%?x&"
+ "@x'@y'Az\202(B{\17)C|)C}*D}*E~+E\177,E\177,E\200-F\200-G\201.G\201.H\202"
+ "/H\203/I\2030J\2040J\205\2021K\206\31""2L\2073L\2104N\2116R\2157S\2178T\217"
+ "8T\2209U\2219V\222:V\222;W\223;W\224<X\224<Y\225=Y\226=Z\227>Z\227>[\230"
+ "?[\231?\\\231>Z\227>X\226>Y\226?Y\227?Z\230\202@[\231\14A\\\232A\\\233B]"
+ "\233B]\234C^\235C_\236D_\236E`\237E`\240Ea\240Eb\241Fb\242\225\22)]\24\23"
+ "*^\23*_\24,a\25.d\26/f\26""0g\27""0g\27""1h\30""2i\31""2i\31""3j\32""3k\32"
+ """4l\33""4l\33""5m\34""6n\35""6n\36""7o\37""7p\36""7o\202\35""6m\202\36""7"
+ "n\22\37""8o\37""9p\40""9p\40:q!:r!;s\"<s#<t#=u$=u$>v%>w%?w&@x&@y'Az(Az(B"
+ "{\202)C|\2*D}*D~\202+E\177\13,E\200,F\200-F\200.G\201.H\202/H\202/I\2030"
+ "I\2040J\2051J\2051K\206\2022L\207\5""4N\2116R\2157S\2178T\2178T\220\2029"
+ "U\221\17:V\222:W\223;W\223;X\224<X\225<Y\226=Y\226>Z\227>[\230?[\230?\\\231"
+ "@\\\232@]\232?Z\227>Y\227\202?Z\230\1@[\231\202A\\\232\13B]\233B]\234C^\235"
+ "C_\235D_\236D`\237E`\237Ea\240Ea\241Fb\241Fc\242\224\22)]\30\23*^\23*_\24"
+ "+_\24+`\25,a\25.c\27""0f\27""1h\30""1h\30""2i\31""2j\32""3k\32""4k\33""4"
+ "l\33""5m\34""5m\35""6n\36""7o\36""7p\37""8p\37""8q\40""9r\37""9p\36""7o\202"
+ "\37""8o\17\40""9p\40:q!:q!;r\";s\"<t#<t$=u$>v%>w%?w&?x&@y'Ay'Az\202(B{\5"
+ ")C|*D}*D~+E~+E\177\202,E\200\22-F\200-G\201.G\201.H\202/H\2030I\2040J\204"
+ "1J\2051K\2062K\2062L\2073M\2116R\2157S\2167S\2178T\2208U\2209U\221\202:V"
+ "\222\15;W\223;W\224<X\225<Y\225=Y\226=Z\227>Z\227>[\230?\\\231@\\\232@]\232"
+ "A]\233A^\233\202?Z\230\202@[\231\5A\\\232A]\233B]\234C^\234C^\235\202D_\236"
+ "\6E`\237Ea\240Ea\241Eb\241Fb\242Gc\243\223\22)]\27\22)^\23*^\23+_\24+`\25"
+ ",`\25,a\26-b\26.c\27/e\30""1h\31""2j\31""3j\32""3k\32""4l\33""5l\34""5m\35"
+ """6n\36""6o\36""7o\37""8p\37""8q\40""9q\40""9r\202!:s\26\40""9q\40""9p\40"
+ """9q!:q!;r\";s\"<s#<t#=u$=v$>v%?w&?x&@x'@y'Az(Bz(B{)C|)C}*D}*E~\202+E\177"
+ "$,E\200-F\200-F\201.G\201.H\202/H\203/I\2030I\2040J\2051K\2051K\2062L\207"
+ "3M\2106Q\2157S\2167S\2178T\2178T\2209U\2219U\222:V\222:W\223;W\224<X\224"
+ "<X\225=Y\226=Z\227>Z\227>[\230?[\231?\\\231@]\232@]\233A^\234B^\234A^\234"
+ "\202@[\231\16A\\\232A\\\233B]\233B]\234C^\235C_\236D_\236E`\237E`\240Ea\240"
+ "Eb\241Fb\242Fc\242Gc\243\223\22)]\26\23*^\23*_\24+_\24,`\25,a\25-b\26-b\26"
+ ".c\27/d\30/d\30""1g\32""3j\32""4l\33""4l\33""5m\34""6n\35""6n\36""7o\36""7"
+ "p\37""8q\40""9q\40""9r\202!:s\22\";t\"<u#<u!;s!:r\";r\";s#<t#=u$=u$>v%>w"
+ "%?w&@x&@y'Az(Az(B{\202)C|\2*D}*D~\202+E\177\13,E\200,F\200-F\200.G\201.G"
+ "\202/H\202/I\2030I\2040J\2051J\2051K\206\2022L\207\5""5Q\2147R\2167S\217"
+ "8T\2178T\220\2029U\221\17:V\222:V\223;W\223;X\224<X\225<Y\226=Y\226>Z\227"
+ ">[\230?[\230?\\\231@\\\232@]\233A^\233A^\234\202B_\235\1B^\234\202A\\\232"
+ "\2B]\233B]\234\202C^\235\11D_\236D`\237E`\237Ea\240Ea\241Fb\241Fc\242Gc\243"
+ "Gd\244\222\22)]\4\23*^\23*_\24+_\24+`\202\25,a\22\26-b\26.c\27.c\27/d\30"
+ "/e\30""0f\31""1f\32""2i\33""4l\34""5m\35""6n\36""7o\36""7p\37""8p\37""8q"
+ "\40""9r\40:r!:s\202\";t\17#<u#<v$=w#=v#<t\"<t#<t$=u$>v%>v%?w&?x&@y'Ay'Az"
+ "\202(B{\5)C|*D}*D~+E~+E\177\202,E\200\17-F\200-G\201.G\201.H\202/H\203/I"
+ "\2040J\2041J\2051K\2062K\2062L\2075P\2136R\2167S\2167S\217\2028T\220\31""9"
+ "U\221:V\222:V\223;W\223;X\224<X\225<Y\225=Y\226=Z\227>Z\227>[\230?\\\231"
+ "@\\\232@]\232A]\233A^\234B_\234B_\235C`\236C`\237B^\234A\\\233B]\234C^\234"
+ "C^\235\202D_\236\10E`\237Ea\240Ea\241Eb\241Fb\242Fc\243Gd\243Hd\244\221\22"
+ ")]\6\22)^\23*^\23*_\24+`\24,`\25,a\202\26-bM\27.c\27/d\30/e\30""0e\31""1"
+ "f\31""1g\32""2g\32""2h\34""4k\35""6n\36""7o\37""8p\37""8q\40""9q\40""9r!"
+ ":s!;s\";t#<u#<v$=v$=w%>x%?x%>x$>v$=u$>v%?w&?x&@x'@y'Az(Bz(B{)C|)C}*D}*D~"
+ "+E\177,E\177,E\200-F\200-G\201.G\201.H\202/H\203/I\2030I\2040J\2051K\205"
+ "2K\2062L\2073M\2106R\2157S\2167S\2178T\2178T\2209U\2219U\222:V\222:W\223"
+ ";W\224<X\224<X\225=Y\226=Z\226>Z\227>[\230?[\231?\\\231@]\232A]\233A^\233"
+ "B^\234B_\235\202C`\236\202Da\237\16B^\234B]\234C^\235C_\235D_\236E`\237E"
+ "`\240Ea\240Eb\241Fb\242Fc\242Gc\243Gd\244He\245\221\22)]\17\23*^\23*_\24"
+ "+_\24+`\25,a\25-b\26-b\26.c\27.d\30/d\30""0e\31""0f\31""1f\32""1g\32""2h"
+ "\202\33""3i\5\33""4j\35""5m\37""8p\40""9q\40""9r\202!:s\17\";t\";u#<u#=v"
+ "$=w$>w%>x&?y&@z'@z&@z&?x%?w&@x&@y\202'Az\1(B{\202)C|\17*D}*D~+E~+E\177,E"
+ "\200,F\200-F\200-G\201.G\202/H\202/I\2030I\2040J\2041J\2051K\206\2022L\207"
+ "\5""3M\2104O\2127S\2168T\2178T\220\2029U\221\17:V\222:V\223;W\223;X\224<"
+ "X\225<Y\226=Y\226>Z\227>[\230?[\230?\\\231@\\\232@]\232A^\233A^\234\202B"
+ "_\235\5C`\236D`\237Da\237Eb\240Ea\240\202C^\235\13D_\236D`\237E`\237Ea\240"
+ "Ea\241Eb\242Fc\242Gc\243Gd\244Hd\244He\245\220\22)]\4\22*^\23*^\24+_\24+"
+ "`\202\25,a\13\26-b\26.c\27.c\27/d\30/e\30""0f\31""1f\32""1g\32""2h\33""2"
+ "h\33""3i\202\33""4j\5\34""5k\34""5l\36""7o\40""9r!:s\202\";t\12#<u#=v$=v"
+ "$>w%>x%?y&?y&@z'A{(A|\202(B|\3'A{'Ay'Az\202(B{\5)C|)C}*D}+E~+E\177\202,E"
+ "\200\13-F\200-G\201.G\201.H\202/H\203/I\2040J\2041J\2051K\2062K\2062L\207"
+ "\2023M\210\5""4N\2116P\2148T\2209T\2209U\221\202:V\222\26;W\223;W\224<X\225"
+ "<Y\225=Y\226=Z\227>Z\227>[\230?\\\231@\\\231@]\232A]\233A^\234B^\234B_\235"
+ "C`\236C`\237Da\237Db\240Eb\241Fc\241Ea\240\202D_\236\12E`\237Ea\240Ea\241"
+ "Eb\241Fb\242Fc\243Gd\243Hd\244He\245Ie\245\217\22)]\6\22)^\23*^\23+_\24+"
+ "`\24,`\25,a\202\26-b'\27.c\27/d\30/e\30""0e\31""0f\31""1g\32""2g\32""2h\33"
+ """3i\33""3j\33""4j\34""5k\34""5l\35""6l\35""6m\36""7n\40""9q\";t#<u#<v$="
+ "v$=w%>x%?x&?y&@z'@{'A{(B|(B})C}(B{'Az(Bz(B{)C|)C}*D}*D~\202+E\177\22,E\200"
+ "-F\200-F\201.G\201.H\202/H\203/I\2030I\2040J\2051K\2051K\2062L\2073L\210"
+ "3M\2104N\2114N\2125O\2127R\215\2029U\221\31:V\222:W\223;W\224<X\224<X\225"
+ "=Y\226=Z\226>Z\227>[\230?[\231?\\\231@]\232@]\233A^\233B^\234B_\235C_\236"
+ "C`\236Da\237Da\240Eb\240Eb\241Fc\242Gd\242Fa\240\202E`\237\6Ea\240Eb\241"
+ "Fb\242Fc\242Gc\243Gd\244\202He\245\1If\246\217\22)]\17\23*^\23*_\24+_\24"
+ "+`\25,a\25-b\26-b\26.c\27/d\30/d\30""0e\31""0f\31""1f\32""1g\32""2h\202\33"
+ """3i\5\33""4j\33""4k\34""5k\35""6l\35""6m\202\36""7n\22\37""8o\37""9p!:s"
+ "#<v$=w%>w%>x&?y&@z'@z'A{(A|(B|)B|'Az'Ay(Az(B{\202)C|\17*D}*D~+E~+E\177,E"
+ "\200,F\200-F\200-G\201.G\202/H\202/I\2030I\2040J\2041J\2051K\206\2022L\207"
+ "\26""3M\2103M\2114N\2115N\2125O\2136P\2148S\217:V\222:V\223;W\223;X\224<"
+ "X\225<Y\226=Y\226>Z\227>[\230?[\230?\\\231@\\\232@]\232A^\233A^\234\202B"
+ "_\235\22C`\236D`\237Da\237Eb\240Eb\241Fc\241Gc\242Hd\243Hd\244Fa\240Ea\240"
+ "Ea\241Fb\241Fc\242Gc\243Gd\244Hd\244He\245\202If\246\1\22*^\215\22)]\21\22"
+ "*^\23*^\23+_\24+`\25,a\25-a\26-b\26.c\27.c\27/d\30/e\30""0e\31""1f\32""1"
+ "g\32""2h\33""2h\33""3i\202\33""4j\5\34""5k\34""5l\35""6m\35""7m\36""7n\202"
+ "\37""8o\17\40""9p\40""9q!:r#<u%>x%?y&?y&@z'A{(A{(B|'A{&@y'Ay'Az\202(B{\5"
+ ")C|)C}*D~+E~+E\177\202,E\200\17-F\200-G\201.G\201.H\202/H\2030I\2040J\204"
+ "1J\2051K\2062K\2062L\2073L\2103M\2104N\2114N\212\2025O\213\22""6P\2147Q\215"
+ "9T\220;W\223;W\224<X\225<Y\225=Y\226=Z\227>Z\227>[\230?\\\231@\\\231@]\232"
+ "A]\233A^\234B^\234B_\235\202C`\236\5Da\237Da\240Eb\241Fc\241Gc\242\202Hd"
+ "\243\202Ie\244\202Eb\241\10Fb\242Fc\243Gd\243Gd\244He\245Ie\245If\246Jf\247"
+ "\202\23,b\2\23+`\22*_\212\22)]\5\23*^\23+_\24+`\25,`\25,a\202\26-b\17\27"
+ ".c\27/d\30/d\30""0e\31""0f\31""1g\32""2g\32""2h\33""3i\33""3j\33""4j\34""5"
+ "k\34""5l\35""6l\35""6m\202\36""7n\26\37""8o\37""9p\40""9q!:q!:r\";s\"<t$"
+ ">w&@y'@z'A{&@z&?x&@x'@y'Az(Az(B{)C|)C}*D}*D~\202+E\177\1,E\200\202-F\200"
+ "2.G\201.H\202/H\203/I\2030I\2040J\2051K\2051K\2062L\2073L\2103M\2104N\211"
+ "4N\2125O\2125O\2136P\2146P\2157Q\2157R\2169T\221<X\224<X\225=Y\226=Z\227"
+ ">Z\227>[\230?[\231?\\\231@]\232@]\233A^\233B^\234B_\235C`\235C`\236Da\237"
+ "Da\240Eb\240Eb\241Fc\242Gd\242Hd\243Ie\244Ie\245Jf\245Ie\245Fb\242Fc\242"
+ "Gc\243Gd\244\202He\245\3If\246Jf\247Jg\247\205\23,b\2\23+a\22*_\206\22)]"
+ "\17\23*^\23*_\24+_\24,`\25,a\25-a\26-b\27.c\27.d\30/d\30""0e\31""0f\31""1"
+ "f\32""1g\32""2h\202\33""3i\21\33""4j\33""4k\34""5k\35""5l\35""6m\36""7m\36"
+ """7n\37""8o\37""8p\40""9p\40:q!:r!;r\";s\"<t#=u$=v\202%>w\27%?w&@x&@y'Ay"
+ "'Az(B{)B|)C|*D}*D~+E~+E\177,E\200,F\200-F\200-G\201.G\202.H\202/I\2030I\204"
+ "0J\2041J\2051K\206\2022L\207\5""3M\2103M\2114N\2115N\2125O\213\2026P\214"
+ "\17""7Q\2157Q\2168R\2168S\217:U\221<Y\225=Y\226>Z\227>[\230?[\230?\\\231"
+ "@\\\232@]\232A]\233A^\234\202B_\235\1C`\236\202Da\237\23Eb\240Eb\241Fc\241"
+ "Gc\242Hd\243He\244Ie\244If\245Jf\246Jg\246He\244Gc\243Gd\244Hd\244He\245"
+ "Ie\246If\246Jg\247Jg\250\210\23,b\34\23+a\22*_\22)^\22)]\22)^\23*^\24+_\24"
+ "+`\25,a\25-a\26-b\26.c\27.c\27/d\30/e\30""0e\31""1f\32""1g\32""2h\33""2h"
+ "\33""3i\33""3j\33""4j\34""5k\34""5l\35""6l\36""6m\36""7n\202\37""8o\17\40"
+ """9p\40""9q!:q!;r\";s\"<t#<t#=u$>v%>v%?w&?x&@x'Ay'Az\202(B{\5)C|)D}*D~*E"
+ "~+E\177\202,E\200\17-F\200-G\201.G\201.H\202/H\203/I\2040J\2041J\2051K\206"
+ "2K\2062L\2073L\2103M\2104N\2114N\212\2025O\213\1""6P\214\2027Q\215\17""8"
+ "R\2168R\2179S\2209T\220;U\222=Y\226>Z\227>[\230?\\\231@\\\231@]\232A]\233"
+ "A^\234B^\234B_\235\202C`\236\5Da\237Da\240Eb\241Fc\241Gc\242\202Hd\243\16"
+ "Ie\244If\245Jf\245Jg\246Kg\247Kh\247He\245Hd\244He\245Ie\245If\246Jf\247"
+ "Jg\250Kh\250\214\23,b\1\23,a\202\24+`\14\24,`\25,a\26-b\26.b\27.c\27/d\30"
+ "/e\30""0e\31""0f\31""1g\32""2g\32""2h\202\33""3i\5\33""4j\34""5k\34""5l\35"
+ """6l\35""6m\202\36""7n\26\37""8o\37""9p\40""9q!:q!:r\";s\"<s#<t#=u$=u$>v"
+ "%>w%?x&@x&@y'Az(Bz(B{)C|)C}*D}*D~\202+E\177\1,E\200\202-F\200\17.G\201.H"
+ "\202/H\203/I\2030I\2040J\2051K\2051K\2062L\2072L\2103M\2104N\2114N\2125O"
+ "\2125O\213\2026P\214\31""7Q\2157R\2168R\2178S\2179S\220:T\221:U\221;V\222"
+ "=Y\226?[\231?\\\231@\\\232@]\233A^\233A^\234B_\235C_\235C`\236Da\237Da\240"
+ "Eb\240Eb\241Fc\242Gd\242Hd\243\202Ie\244\4Jf\245Jf\246Kg\247Kh\247\202Lh"
+ "\250\202He\245\5If\246Jf\247Jg\247Kg\250Kh\251\213\23,b\17\24-c\24-d\25."
+ "d\25.e\25.d\26.c\26-b\26.c\27.d\30/d\30""0e\31""0f\31""1f\32""1g\32""2h\202"
+ "\33""3i1\33""4j\33""4k\34""5k\35""6l\35""6m\36""7m\36""7n\37""8o\37""8p\40"
+ """9p\40:q!:r!;r\";s\"<t#=t$=u$>v%>w%?w&@x&@y'Ay'Az(B{)B|)C|*D}*D~+E~+E\177"
+ ",E\200,F\200-F\200-G\201.G\202.H\202/I\2030I\2040J\2041J\2051K\2063M\210"
+ "4O\2123M\2103M\2114N\2114N\2125O\213\2026P\214\17""7Q\2157Q\2168R\2168S\217"
+ "9S\2209T\220:T\221:U\222;V\223<V\223=Y\226@\\\232@]\232A^\233A^\234\202B"
+ "_\235\22C`\236C`\237Da\237Eb\240Eb\241Fc\241Gc\242Hd\243He\244Ie\244If\245"
+ "Jf\246Jg\246Kg\247Lh\250Li\251Mi\251Li\251\202If\246\4Jg\247Jg\250Kh\250"
+ "Lh\251\212\23,b\12\23,c\24-c\24.d\25.e\26/e\26/f\27""0g\27""1g\30""0g\30"
+ """0f\202\30""0e\5\31""1f\31""1g\32""2h\33""2h\33""3i\202\33""4j\5\34""5k"
+ "\34""5l\35""6l\35""7m\36""7n\202\37""8o\17\40""9p\40""9q!:q!;r\";s\"<t#<"
+ "t#=u$>v%>v%?w&?x&@x'@y'Az\202(B{\5)C|)C}*D}*E~+E\177\202,E\200\16-F\200-"
+ "G\201.G\201.H\202/H\203/I\2030J\2041J\2051K\2063M\2105Q\2146Q\2156R\2156"
+ "Q\214\2035O\213\1""6P\214\2027Q\215\17""8R\2168R\2179S\2209T\220:T\221:U"
+ "\222;U\222;V\223<W\224=W\224>Y\226@\\\232A^\234B^\234B_\235\202C`\236\5D"
+ "a\237Da\240Eb\240Ec\241Fc\242\202Hd\243\5Ie\244If\245Jf\245Jg\246Kg\247\202"
+ "Lh\250\11Li\251Mj\252Nj\252Li\251Jf\247Jg\250Kh\250Kh\251Li\252\212\23,b"
+ "\15\24-c\24.d\25.e\25/e\26/f\26""0g\27""0g\30""1h\30""2i\31""2i\31""3j\32"
+ """3j\32""2i\202\32""2h\202\33""3i\1\33""4j\202\34""5k\2\35""6l\35""6m\202"
+ "\36""7n\22\37""8o\37""9p\40""9p!:q!:r\";s\"<s#<t#=u$=u$>v%>w%?x&@x&@y'Az"
+ "(Az(B{\202)C|\2*D}*D~\202+E\177\1,E\200\202-F\200\10.G\201.H\202/H\202/I"
+ "\2030I\2040J\2051K\2063N\211\2025Q\21416R\2157R\2167S\2178T\2177S\2167Q\215"
+ "6P\2147Q\2157R\2168R\2168S\2179S\220:T\221:U\221;U\222;V\223<V\223<W\224"
+ "=W\225=X\226>Y\226@\\\232B_\235C_\235C`\236Da\237Da\240Eb\240Eb\241Fc\242"
+ "Gd\242Hd\243He\244Ie\244Jf\245Jg\246Kg\247Kh\247Lh\250Li\251Mi\251Mj\252"
+ "Nk\253Ok\254Kh\251Kg\250Kh\251Li\251Li\252\211\23,b\21\24-c\24-d\25.d\25"
+ "/e\26/f\26""0f\27""0g\27""1h\30""1i\31""2i\31""3j\32""3k\32""4k\33""4l\33"
+ """5m\34""5m\34""5l\202\34""4k(\34""5k\35""5l\35""6m\36""7m\36""7n\37""8o"
+ "\37""8p\40""9p\40:q!:r!;r\";s#<t#=t$=u$>v%>w%?w&?x&@y'Ay'Az(B{)B|)C|*D}*"
+ "D~+E~+E\177,E\200,F\200-F\200-G\201.G\202.H\202/I\2030I\2040J\2041K\2063"
+ "O\212\2025Q\214\6""6R\2156R\2167S\2167S\2178T\2209U\220\2029U\221$8S\217"
+ "8R\2168S\2179S\2209T\220:T\221:U\222;V\223<V\223<W\224=W\225=X\225>X\226"
+ ">Y\227?Z\227@[\231B^\235C`\237Da\237Eb\240Eb\241Fc\241Gc\242Hd\243He\244"
+ "Ie\244If\245Jf\246Jg\246Kg\247Lh\250Li\250Mi\251Mj\252Nj\253Nk\253\202Ol"
+ "\254\4Li\251Kh\251Li\252Mj\253\210\23,b\23\23-c\24-c\25.d\25.e\26/e\26/f"
+ "\27""0g\27""1h\30""1h\30""2i\31""2j\31""3j\32""4k\33""4l\33""5m\34""5m\34"
+ """6m\35""6m\34""5m\202\34""5l\15\35""6l\35""6m\36""7n\36""8o\37""8o\40""9"
+ "p\40""9q!:q!;r\";s\"<s#<t#=u\202$>v\5%?w&?x&@x'@y'Az\202(B{\26)C|)C}*D}*"
+ "E~+E\177,E\177,E\200-F\200-G\201.G\201.H\202/H\203/I\2030J\2041K\2064O\212"
+ "5P\2135Q\2146Q\2156R\2157S\2167S\217\2028T\220\3""9U\2219V\222:V\222\202"
+ ";W\223\15:U\2229T\220:T\221:U\222;U\222;V\223<V\224<W\224=X\225>X\226>Y\227"
+ "?Y\227?Z\230\202@[\231\5B]\234Da\237Eb\240Ec\241Fc\242\202Hd\243\17Ie\244"
+ "If\245Jf\245Jg\246Kg\247Kh\250Lh\250Li\251Mj\252Nj\252Nk\253Ok\254Ol\254"
+ "Pm\255Ol\255\202Li\252\1Mj\253\210\23,b\15\24-c\24-d\25.d\25/e\26/f\26""0"
+ "g\27""0g\30""1h\30""2i\31""2i\31""3j\32""3k\32""3j\202\33""3j\202\33""3i"
+ "\1\33""4j\202\34""5k\2\35""6l\35""6m\202\36""7n\26\37""8o\37""9p\40""9p!"
+ ":q!:r\";s\"<s#<t#=u$=u$>v%?w%?x&@x'@y'Az(Az(B{)C|)C}*D}*D~\202+E\177\13,"
+ "E\200,F\200-F\200.G\201.H\202/H\203/I\2030I\2042M\2074P\2124P\213\2025Q\214"
+ "\5""6R\2157R\2167S\2178T\2178T\220\2029U\221\7:V\222:W\223;W\224<X\224<X"
+ "\225<Y\225<W\224\202;V\223\11<V\223<W\224=W\225=X\226>Y\226>Y\227?Z\230@"
+ "Z\230@[\231\202A\\\232\26B]\233C_\236Fb\241Gd\242Hd\243He\244Ie\244Jf\245"
+ "Jg\246Kg\247Kh\247Lh\250Li\251Mi\251Mj\252Nk\253Nk\254Ol\254Pl\255Pm\256"
+ "Qn\256Ol\255\202Mj\253\207\23,b\11\24-c\31""2g\37""4b/Bl)<g\35""4f\27""0"
+ "g\27""1h\30""1h\202\30""1gf\31""1g\31""1f\32""1g\32""2h\33""2h\33""3i\33"
+ """4j\33""4k\34""5k\35""5l\35""6m\36""7m\36""7n\37""8o\37""8p\40""9p\40:q"
+ "!:r!;r\";s#<t#=t$=u$>v%>w%?w&?x&@y'Ay'Az(B{(B|)C|*D}*D~+E~+E\177,E\200,F"
+ "\200-F\200-G\201.G\202.H\202/I\2030I\2040J\2042M\2104P\2135P\2135Q\2146R"
+ "\2156R\2167S\2167S\2178T\2209U\2209U\221:V\222:V\223;W\223;X\224<X\225<Y"
+ "\225=Y\226=Z\227>Z\227>Y\227=X\225=W\225=X\225>X\226>Y\227?Z\227?Z\230@["
+ "\231@[\232A\\\232A]\233B]\234C^\234C^\235E`\237Gc\242Ie\244If\245Jf\246J"
+ "g\246Kg\247Lh\250Li\250Mi\251Mj\252Nj\253Nk\253Ol\254Ol\255Pm\255Pm\256Q"
+ "n\257Ro\260Ol\255Mj\253\206\23,b\7\23,c\24-c0Es@OoARwM\\{+?k\203\27/d\30"
+ "\30/e\30""0e\31""1f\32""1g\32""2h\33""2h\33""3i\33""3j\33""4j\34""5k\34""5"
+ "l\35""6l\35""6m\36""7n\36""8o\37""8o\40""9p\40""9q!:q!;r\";s\"<s#<t#=u\202"
+ "$>v\5%?w&?x&@x'@y'Az\202(B{\5)C|)C}*D}*E~+E\177\202,E\200\17-F\200-G\201"
+ ".G\201.H\202/H\203/I\2030J\2040J\2051K\2062L\2074P\2136Q\2156R\2157S\216"
+ "7S\217\2028T\220\22""9U\2219V\222:V\222;W\223;W\224<X\224<X\225=Y\226=Z\227"
+ ">Z\227>[\230?[\231@\\\231?\\\231?Z\230>Y\227?Y\227?Z\230\202@[\231\5A\\\232"
+ "A\\\233B]\233B^\234C^\235\202D_\236\17E`\237Ea\240Gc\242He\244Jg\246Kh\250"
+ "Lh\250Li\251Mj\252Nj\252Nk\253Ok\254Ol\254Pm\255Pm\256\202Qn\257\202Ro\260"
+ "\1Nk\254\206\23,b\5\24-c\24-d\25.d\25-c\25-b\202\26-b\10\27.c\27/d\30/d\30"
+ """0e\31""0f\31""1g\32""2g\32""2h\202\33""3i\5\33""4j\34""4k\34""5l\35""6"
+ "l\35""6m\202\36""7n\22\37""8o\37""9p\40""9p!:q!:r\";s\"<s#<t#=u$=u$>v%>w"
+ "%?x&@x&@y'Az(Az(B{\202)C|\2*D}*D~\202+E\177\13,E\200,F\200-F\200.G\201.H"
+ "\202/H\203/I\2030I\2040J\2051J\2051K\206\2022L\207\5""3N\2115P\2147S\216"
+ "8T\2178T\220\2029U\221\5:V\222:W\223;W\223;X\224<X\225\202=Y\226\12>Z\227"
+ ">[\230?[\230?\\\231@\\\232@]\233A^\233A^\234A^\233A]\233\203A\\\232\26B]"
+ "\233B]\234C^\235C_\235D_\236D`\237E`\237Ea\240Eb\241Fb\242Fc\242Hd\244If"
+ "\246Kg\247Li\251Nj\253Nk\254Ol\254Pl\255Pm\256Qn\256Qn\257\203Ro\260\1Qn"
+ "\257\205\23,b%\24-c\24,b\24,a\24+`hr\207\201\204\213Q\\t\26.c\27.c\27/d\30"
+ """0e\31""0f\31""1f\32""1g\32""2h\33""2h\33""3i\33""4j\33""4k\34""5k\35""5"
+ "l\35""6m\36""7m\36""7n\37""8o\37""8p\40""9p\40:q!:r!;r\";s\"<t#=u%>w%?x'"
+ "@z'A{\202(B|3(Az'Az(B{(B|)C|*D}*D~+E~+E\177,E\200,F\200-F\200-G\201.G\202"
+ ".H\202/H\2030I\2040J\2041J\2051K\2062K\2072L\2073M\2103M\2114N\2114N\212"
+ "6Q\2148S\2179U\221:V\222:V\223;W\223;X\224<X\225<Y\225=Y\226=Z\227>Z\230"
+ "?[\230?\\\231@\\\232@]\232A]\233A^\234B_\234B_\235C`\236C`\237D`\237C_\236"
+ "C_\235\202C^\235\23D_\236D`\236E`\237Ea\240Ea\241Eb\241Fb\242Gc\243Gd\243"
+ "Hd\244He\245Ie\246If\246Kh\250Li\252Nk\253Ol\255Pm\256Qo\257\204Ro\260\204"
+ "\23,b(\23+a\23+_\24+_\24+`\26+]\312\312\313\245\245\246\233\234\236\26-a"
+ "\27/d\30/e\30""0e\31""0f\32""1g\32""2g\33""2h\33""3i\33""3j\33""4j\34""5"
+ "k\34""5l\35""6l\35""6m\36""7n\36""8o\37""8o\40""9p\40:q!;s\"<t$=v%>w&?y&"
+ "@z'@{'A{(B|)B})C}*D~\202*D\177\1*D~\202)C}\3*D}*E~+E\177\202,E\200#-F\200"
+ "-G\201.G\201.H\202/H\203/I\2030I\2040J\2051K\2062K\2062L\2073L\2103M\210"
+ "4N\2114N\2125O\2125O\2136P\2147Q\2158S\217:V\222;W\224<X\224<Y\225=Y\226"
+ "=Z\227>Z\227>[\230?[\231?\\\231@]\232A]\233A^\233B^\234B_\235\202C`\236\7"
+ "Da\237Da\240Eb\240Ec\241Fc\242Fb\241Fa\240\203Ea\240\5Eb\241Fb\242Fc\243"
+ "Gc\243Gd\244\202He\245\5If\246Jf\247Jg\247Kh\250Kh\251\202Li\252\3Mj\253"
+ "Nk\254Ol\255\202Pm\256\202\23,b\21\23+`\22*^\23*^\23*_\24+_\24,`';e\241\257"
+ "\275\226\241\253\214\230\243\35""1^\30/d\30""0e\31""0f\31""1g\32""2g\32""2"
+ "h\202\33""3i\26\33""4j\33""4k\34""5l\35""6l\35""6m\36""7n\37""8p\40:r!;s"
+ "#<u#=v$=w%>x%?x&?y&@z'@z'A{(A|(B|)C})C~\202*D\177\2+E\200,F\200\202,G\200"
+ "\1+F\200\202+E\177\13,E\200,F\200-F\200.G\201.H\202/H\203/I\2030I\2040J\205"
+ "1J\2051K\206\2022L\207\5""3M\2104M\2114N\2125O\2125O\213\2026P\214\31""7"
+ "Q\2157R\2168R\2169S\220:V\222<X\225=Y\226>Z\227>[\230?[\230?\\\231@\\\232"
+ "@]\233A^\233A^\234B_\235C_\235C`\236Da\237Da\240Eb\240Eb\241Fc\242Gc\242"
+ "Hd\243\202Ie\244\17If\245He\244Hd\244Gd\243Gc\243Gd\244Hd\244He\245If\246"
+ "If\247Jg\247Kg\250Kh\251Li\251Li\252\206Mj\253,\23+a\22*^\22)]\23*^\23*_"
+ "\24+_\24+`\25,a7Hk\225\230\234\315\317\321\237\244\252':e\30/e\31""0f\31"
+ """1f\32""1g\32""2h\33""2h\33""3i\33""4j\34""5k\35""6m\36""7o\37""8q\40""9"
+ "r!:s\";t\";u#<u#=v$=w$>w%>x%?y&?y'@z'A{(A{(B|)B})C~*D~*D\177\202+E\200\4"
+ ",F\200-H\201-H\202.I\202\202.I\203+-G\201-F\200-G\201.G\202.H\202/H\2030"
+ "I\2040J\2041J\2051K\2062K\2062L\2073M\2103M\2114N\2114N\2125O\2136P\2136"
+ "P\2147Q\2157Q\2168R\2168S\2179S\2209T\220:T\221;V\223=X\225>[\230?\\\231"
+ "@\\\232@]\232A]\233A^\234B_\234B_\235C`\236C`\237Da\237Eb\240Eb\241Fc\241"
+ "Gc\242\202Hd\243\6Ie\244If\245Jf\246Jg\246Kg\247Kh\250\202Lh\250\2Kh\250"
+ "Kg\247\202Jg\247\5Jg\250Kh\250Kh\251Li\252Mi\252\206Mj\253\202\22)])\22)"
+ "^\23*^\23+_\24+`\25,`\25,a\26-a&9dBTy+?j\30/e\30""0e\31""1f\31""1g\32""2"
+ "h\33""3j\34""5l\35""6n\36""7o\37""8p\37""8q\40""9q\40""9r!:s!;t\";t#<u#<"
+ "v$=v$=w%>x%?x&?y&@z'@{'A{(B|(B})C}*C~*D\177\202+E\200*,F\200,G\201-H\201"
+ "-I\202.I\203/J\203/J\204.I\203-F\201.G\201.H\202/H\203/I\2030I\2040J\205"
+ "1K\2062K\2062L\2073L\2103M\2104N\2114N\2125O\2125O\2136P\2146Q\2157Q\215"
+ "7R\2168R\2179S\2179S\220:T\221:U\221;U\222;V\223<W\224>Y\227@\\\231A]\233"
+ "A^\233B^\234B_\235\202C`\236\17Da\237Da\240Eb\240Eb\241Fc\242Gd\243Hd\243"
+ "Ie\244Ie\245Jf\245Jg\246Kg\247Kh\247Lh\250Li\251\202Mj\252\2Nk\253Ok\254"
+ "\202Ol\254\4Ol\255Ol\254Nk\254Ol\255\202Nk\254\204Mj\253\202\22)]\26\23*"
+ "^\23*_\24+_\24,`\25,a\25-a\26-b\27.c\27/d\30/e\30""1g\31""2i\32""3j\33""4"
+ "l\33""5m\34""6n\35""6n\36""7o\37""7p\37""8p\40""9q\40""9r\202!:s\26\";t\""
+ "<u#<u#=v$=w%>w%>x&?y&@z'@z'A{(A|(B|)C})C~*D\177+D\177+E\200,F\200,G\200-"
+ "H\201-H\202\202.I\203\12/J\204/K\205/I\203.G\201.G\202/H\202/I\2031K\206"
+ "2N\2102M\210\2032L\207\5""3M\2104M\2114N\2115O\2125O\213\2026P\214\5""7Q"
+ "\2157Q\2168R\2168S\2179S\220\202:T\221\13;U\222;V\223<V\223<W\224=W\225="
+ "X\226?Z\230@]\233B_\235C_\235C`\236\202Da\237\26Eb\240Eb\241Fc\242Gc\242"
+ "Hd\243He\244Ie\244If\245Jf\246Kg\247Kh\247Lh\250Li\251Mi\251Mj\252Nk\253"
+ "Nk\254Ol\254Ol\255Pm\256Qn\256Qn\257\206Ro\260\202Qn\257\1\22)]\202\23*^"
+ "\17\24+_\24+`\25,a\25-a\26-b\27/e\30""0g\30""2h\31""2j\32""3k\32""4k\33""4"
+ "l\33""5m\34""5m\35""6n\202\36""7o\5\37""8p\37""8q\40""9r!:r!:s\202\";t\17"
+ "#<u#=v$=w$>w%>x%?y&?y'@z'A{(A|(B|)B})C~*D~*D\177\202+E\200\5,F\200,H\201"
+ "-H\202.I\202.I\203\202/J\204\11""0K\205/I\203.G\201.H\202/H\203/I\2042N\210"
+ "4O\2124P\213\2025P\213\37""4O\2134N\2124N\2114N\2125O\2136P\2136P\2147Q\215"
+ "7Q\2168R\2168S\2179S\2209T\220:T\221:U\222;U\223;V\223<W\224=W\225=X\225"
+ ">X\226>Y\227?Z\227@[\231B^\234C`\236Da\237Eb\240Eb\241Fc\241Gc\242\202Hd"
+ "\243\17Ie\244If\245Jf\246Jg\246Kg\247Kh\250Li\250Mi\251Mj\252Nj\253Nk\253"
+ "Ol\254Ol\255Pm\255Pm\256\202Qn\257\210Ro\260)\22)]\23*^\23+_\24+`\25,`\25"
+ "-b\26/e\27""0g\30""1h\30""2i\31""2j\31""3j\32""3k\32""4l\33""5l\34""5m\34"
+ """6n\35""6o\36""7o\37""8p\37""8q\40""9q\40""9r!:s!;s\";t#<u#<v$=v$=w%>x%"
+ "?x&?y&@z'@{'A{(B|(B})C}*C~*D\177\202+E\200\11,F\200,G\201-H\201-I\202.I\203"
+ "/J\203/J\2040K\2050K\206\202.H\202\4/H\203/I\2031K\2063O\212\2024P\213\3"
+ """5Q\2146Q\2156R\215\2027S\216\24""7R\2166Q\2156P\2146Q\2157Q\2157R\2168"
+ "R\2179S\2179S\220:T\221:U\221;U\222;V\223<V\224<W\224=X\225=X\226>Y\226?"
+ "Y\227?Z\230\202@[\231\30A\\\232B^\235Da\237Eb\241Fc\242Gd\243Hd\243Ie\244"
+ "Ie\245Jf\245Jg\246Kg\247Kh\247Lh\250Li\251Mj\251Mj\252Nk\253Ok\254Ol\254"
+ "Pm\255Pm\256Qn\256Qn\257\211Ro\260\26\23*^\23*_\24+_\24,b\26/e\26""0g\27"
+ """0g\30""1h\30""2i\31""2i\31""3j\32""3k\32""4k\33""4l\33""5m\34""6n\35""6"
+ "n\36""7o\36""7p\37""8p\40""9q\40""9r\202!:s#\";t\";u#<u#=v$=w$>x%>x&?y&@"
+ "z'@z'A{(A|(B|)C})C~*D~+D\177+E\200,F\200,G\200-H\201-H\202.I\202.J\203/J"
+ "\204/K\2050K\205/J\205.G\202/H\202/I\2030I\2043N\2114O\2124P\213\2025Q\214"
+ "\5""6R\2156R\2167S\2168T\2178T\220\2039U\221\1""9T\220\2028S\217\13""9S\220"
+ "9T\220:T\221;U\222;V\223<V\223<W\224=W\225=X\225>Y\226>Y\227\202?Z\230\16"
+ "@[\231A[\232A\\\232B]\233B]\234C_\235Ea\240Gc\242He\244Ie\244If\245Jf\246"
+ "If\245Ie\245\204He\245\7If\246Jf\247Kg\250Li\251Mj\252Nk\254Pm\256\212Ro"
+ "\260\20\23*_\24+_\25-b\26/f\26""0f\27""0g0DoBQq;Kn7Jt)=k7Iq=Lm@Pt6Ho\35""6"
+ "n\202\36""7o\5\37""8p\37""8q\40""9r\40:r!:s\202\";t\17#<u#=v$=v$>w%>x%?y"
+ "&?y'@z'A{(A{(B|)B})C~*D~*D\177\202+E\200\5,F\200,H\201-H\202.I\202.I\203"
+ "\202/J\204\2""0K\2050J\205\202.H\202\13/H\2030I\2042M\2074O\2124P\2135P\213"
+ "5Q\2146R\2156R\2167S\2167S\217\2028T\220\1""9U\221\202:V\222\1;W\223\202"
+ ";W\224\14;V\223;U\222:U\222;U\223;V\223<W\224=W\224=X\225>X\226>Y\227?Z\227"
+ "?Z\230\202@[\231\5A\\\232B\\\233B]\234C^\234C^\235\202D_\236\17Ea\240Fb\241"
+ "Fc\242Fb\241Fb\242Fc\243Gd\243Hd\244He\245Ie\246If\246Jg\247Jg\250Kh\250"
+ "Kh\251\202Li\252\4Mj\253Nk\254Pm\256Qn\257\206Ro\260\4\23+_\24,`\26/e\26"
+ "/f\202\27""0g!*Aq3Hu;Nx2Fq2Gu=Py7Ly7Lz.Du\36""6o\36""7o\37""8p\37""8q\40"
+ """9q\40""9r!:s!;t\";t#<u#<v$=v$=w%>x%?x&?y&@z'@{'A{(B|(B})C}*C~*D\177\202"
+ "+E\200*,F\200,G\201-H\201-I\202.I\203.J\203/J\204/K\204.I\203.G\201.H\202"
+ "/H\203/I\2031L\2063O\2124P\2124P\2135Q\2146Q\2156R\2157R\2167S\2178T\217"
+ "8T\2209U\2219V\221:V\222;W\223;W\224<X\224<X\225=Y\226=Z\226>Z\227=Y\226"
+ "=X\225<W\225=X\225=X\226>Y\226?Y\227?Z\230\202@[\231\17A\\\232A\\\233B]\233"
+ "B]\234C^\235C_\235D_\236E`\237E`\240Ea\240Eb\241Fb\242Fc\242Gc\243Gd\244"
+ "\202He\245\7If\246Jf\247Jg\247Kg\250Kh\251Li\251Li\252\205Mj\253\4Nk\254"
+ "Ol\255Pm\256Qn\257\202Ro\260\7\24+_\24,b\26/f\26""0f\27""0g\27""1h\30""1"
+ "i\202\31""2i\13\32""3k(6aEE]\40""5e\34""6n\35""6n\36""7o\36""7p\37""8p\40"
+ """9q\40""9r\202!:s\27\";t\";u#<u#=v$=w%>w%>x&?y&@z'@z'A{(A|(B|)C})C~*D\177"
+ "+D\177+E\200,F\200,G\200-H\201-H\202.I\202\202.H\202\12-G\201-F\200.G\201"
+ ".G\202/H\202/I\2031K\2063O\2114O\2124P\213\2025Q\214\5""6R\2156R\2167S\216"
+ "8T\2178T\220\2029U\221\16:V\222:V\223;W\223;X\224<X\225<Y\226=Y\226>Z\227"
+ ">[\230?[\230?\\\231@\\\232?\\\231?[\230\203?Z\230\1@[\231\202A\\\232\2B]"
+ "\233B]\234\202C^\235\13D_\236D`\237E`\237Ea\240Ea\241Fb\241Fc\242Gc\243G"
+ "d\244Hd\244He\245\202If\246\5Jg\247Jg\250Kh\251Lh\251Li\252\212Mj\253\20"
+ "Nk\254Ol\255\24+`\25,a\26.d\27""0g\27""1h\30""1h\30""2i\31""2jafv\237\204"
+ "a\217_?\235jEqK?\35""6n\202\36""7o\5\37""8p\37""8q\40""9r!:r!:s\202\";t\17"
+ "#<u#<v$=w$>w%>x%?y&?y&@z'A{(A{(B|)B})C~*D~*D\177\203+E\200\4+F\200+E\177"
+ "+F\177+E\177\202,E\200\17-F\200-G\201.G\201.H\2020I\2042M\2073O\2114O\212"
+ "4P\2135P\2135Q\2146R\2156R\2167S\2167S\217\2028T\220\1""9U\221\202:V\222"
+ "\15;W\223;X\224<X\225<Y\225=Y\226=Z\227>Z\227>[\230?\\\231@\\\232@]\232A"
+ "]\233A^\234\202B^\234\7A]\233A\\\233A\\\232A\\\233B]\234C^\234C^\235\202"
+ "D_\236\1E`\237\202Ea\240\14Eb\241Fb\242Fc\243Gc\243Hd\244He\245Ie\245If\246"
+ "Jg\247Jg\250Kh\250Kh\251\202Li\252\214Mj\253\23\24,`\25,a\26-b\26.c\27""0"
+ "f\30""1h\31""2j\31""3jjjs\361\312\223\177vlle_HIU\36""6n\36""7o\37""8p\37"
+ """8q\40""9q\40""9r\202!:s\11\";t\"<u#<v$=v$>w%>x%?x&?y&@y\202&@z\202'Az\2"
+ "'A{(A{\203(B{\4)C|)C}*D}*D~\202+E\177\22,E\200-F\200-F\201.H\2020J\2041L"
+ "\2072N\2103N\2113O\2124P\2124P\2135Q\2146Q\2156R\2157S\2167S\2178T\2178T"
+ "\220\2029U\221\20:V\222:W\223;W\224<X\224<X\225=Y\226=Z\226>Z\227>[\230?"
+ "[\231?\\\231@]\232@]\233A^\233B^\234B_\235\202C`\236\202Da\237\23D`\237C"
+ "_\236C^\235C_\235D_\236E`\237E`\240Ea\240Eb\241Fb\242Fc\242Gc\243Gd\244H"
+ "e\245If\246Kh\250Nj\253Ol\254Pl\255\204Pm\256\2Ol\255Nk\254\212Mj\253\30"
+ "\25,a\25-a\26-b\26.c\27.d\30/d\30""0e\31""1g\200zu\333\271\206\321\264\210"
+ "\336\300\222\223\207{\33""4k\34""5l\34""6l\35""6m\36""7n\36""8o\37""8o\40"
+ """9p\40""9q!:q!;r\202\";s\11\"<t#<t#=u$=u$>v%>w%?w&@x&@y\202'Az\22(B{)B|"
+ ")C|*D}*D~+E~+E\200-G\200.H\202/J\2040L\2061L\2072M\2072N\2103N\2113O\211"
+ "4O\2124P\213\2025Q\214\5""6R\2156R\2167S\2168S\2178T\220\2029U\221\17:V\222"
+ ":V\223;W\223;X\224<X\225<Y\225=Y\226>Z\227>[\230?[\230?\\\231@\\\232@]\232"
+ "A^\233A^\234\202B_\235\1C`\236\202Da\237\3Eb\240Eb\241Fc\241\203Gc\242\203"
+ "Fb\241\15Fb\242Fc\243Gd\243He\245Jg\247Li\251Nj\253Nk\253Ol\254Ol\255Pm\256"
+ "Qm\256Qn\257\205Ro\260\202Qn\257\3Pm\256Ol\255Nk\254\204Mj\253\23\25-b\26"
+ "-b\26.c\27.c\27/d\30/e\30""0e\31""1f|xt\315\257z\225\204l\267\231j4Ce\33"
+ """4j\34""5k\34""5l\35""6m\35""7m\36""7n\202\37""8o\26\40""9p\40""9q!:q!;"
+ "r\";s\"<t#<t#=u$>v%>v%?w&?x&@y'Ay'Az(B{)C|*D~+E\177,G\200-H\201.I\203\202"
+ "/J\204\13""0K\2050L\2061L\2061M\2072M\2102N\2113O\2114O\2124P\2135P\2135"
+ "Q\214\2026R\215\2""7S\2167S\217\2028T\220\1""9U\221\202:V\222\17;W\223;W"
+ "\224<X\225<Y\225=Y\226=Z\227>Z\227>[\230?\\\231@\\\232@]\232A]\233A^\234"
+ "B_\234B_\235\202C`\236\5Da\237Da\240Eb\241Fc\241Fc\242\202Hd\243\17Ie\244"
+ "If\245Jf\246Jg\246Kg\247Kh\250Li\250Mi\251Mj\252Nj\252Nk\253Ol\254Ol\255"
+ "Pm\255Pm\256\202Qn\257\213Ro\260\3Qn\257Pm\256Ol\255\202\27""0g\15\27""0"
+ "f\30""0g\30""1g\31""1g\31""1h\32""2h\32""2i\33""2h\33""4j\33""3j\34""5l\35"
+ """5l\35""6m\202\36""7nX\37""8o\37""8p\40""9q\40:q!:r!;s\";s#<t#=u$=v$>w%"
+ "?x&@y'@z'A{(B|)C}*D~+D\177+E\200,F\200,G\201-H\201-H\202.I\203.J\203/J\204"
+ "0K\2050K\2061L\2061M\2072M\2102N\2103N\2113O\2124P\2124P\2135Q\2146Q\215"
+ "6R\2157R\2167S\2178T\2178T\2209U\2219U\222:V\222:W\223;W\224;X\224<X\225"
+ "=Y\226=Z\226>Z\227>[\230?[\231?\\\231@]\232@]\233A^\233B^\234B_\235C_\235"
+ "C`\236Da\237Da\240Eb\240Eb\241Fc\242Gd\242Hd\243Ie\244Ie\245Jf\245Jf\246"
+ "Kg\247Kh\247Lh\250Li\251Mj\251Mj\252Nk\253Ok\254Ol\254Pl\255Pm\256Qn\256"
+ "Qn\257\217Ro\2605\27""0g\27""1h\30""1i\31""2i\31""3j\32""3k\32""4k\33""4"
+ "l\33""5m\34""6n\35""6n\36""7o\36""7p\37""8p\40""9q\40""9r!:r!:s\";t\";u#"
+ "<u#=v$=w$>w%>x&?y&@z'@z'A{(A|(B|)C})C~*D~*D\177+E\200,E\200,G\200-H\201-"
+ "H\202.I\202.I\203/J\204/K\2050K\2050L\2061L\2072M\2072N\2103N\2113O\2114"
+ "O\2124P\213\2025Q\214\5""6R\2156R\2167S\2168S\2178T\220\2029U\221\17:V\222"
+ ":V\223;W\223;X\224<X\225<Y\225=Y\226>Z\227>[\230?[\230?\\\231@\\\232@]\232"
+ "A]\233A^\234\202B_\235\22C`\236D`\237Da\237Eb\240Eb\241Fc\242Gc\242Hd\243"
+ "He\244Ie\244If\245Jf\246Kg\246Kg\247Lh\250Li\251Mi\251Mj\252\202Nk\253\5"
+ "Ol\254Ol\255Pm\255Pm\256Qn\257\220Ro\260\12\27""1h\30""1h\30""2i\31""2j\31"
+ """3j\32""4k\33""4l\33""5m\34""5m\35""6n\202\36""7o\2\37""8p\37""8q\202\40"
+ """9r\1!:s\202\";t\10#<u#<v$=v$>w%>x%?y&?y&@z\202'A{\5(B|)B})C}*C~*D\177\202"
+ "+E\200\5,F\200,G\201-H\201.I\202.I\203\202/J\204\13""0K\2050L\2061L\2061"
+ "M\2072M\2102N\2103O\2114O\2124P\2135P\2135Q\214\2026R\215\2""7S\2167S\217"
+ "\2028T\220\22""9U\2219V\222:V\222;W\223;W\224<X\224<Y\225=Y\226=Z\227>Z\227"
+ ">[\230?\\\231@\\\231@]\232A]\233A^\234B^\234B_\235\202C`\236\5Da\237Da\240"
+ "Eb\241Fc\241Fc\242\202Hd\243\17Ie\244If\245Jf\245Jg\246Kg\247Kh\250Li\250"
+ "Mi\251Mj\252Nj\252Nk\253Ok\254Ol\255Pm\255Pm\256\202Qn\257\220Ro\260\17\30"
+ """1h\30""2i\31""2j\31""3j\32""3k\32""4l\33""5l\33""5m\34""6n\35""6n\36""7"
+ "o\37""7p\37""8q\40""9q\40""9r\202!:s\31\";t\"<u#<v$=v$=w%>x%?x&?y&@z'@z'"
+ "A{(B|(B})C}*C~*D\177+E\177+E\200,F\200,G\200-H\201-H\202.I\203.J\203/J\204"
+ "\2020K\205\17""1L\2061M\2072M\2102N\2103N\2113O\2124P\2124P\2135Q\2146Q\214"
+ "6R\2157R\2167S\2178T\2178T\220\2029U\221*:V\222:W\223;W\224<X\224<X\225="
+ "Y\226=Z\226>Z\227>[\230?[\231?\\\231@]\232@]\233A^\233A^\234B_\235C_\235"
+ "C`\236Da\237Da\240Eb\240Eb\241Fc\242Gd\242Hd\243Ie\244Ie\245Jf\245Jg\246"
+ "Kg\247Kh\247Lh\250Li\251Mi\251Mj\252Nk\253Ok\254Ol\254Pl\255Pm\256Qn\256"
+ "Qn\257\220Ro\2604Qn\257\30""1i\31""2i\31""3j\32""3k\32""4k\33""4l\33""5m"
+ "\34""6m\35""6n\36""7o\36""7p\37""8p\40""9q\40""9r!:r!:s\";t\";u#<u#=v$=w"
+ "%>w%>x&?y&@y'@z'A{(A|(B|)B})C~*D~*D\177+E\200,E\200,F\200-H\201-H\202.I\202"
+ ".I\203/J\204/K\2050K\2050L\2061L\2072M\2072N\2103N\2113O\2124O\2124P\213"
+ "\2025Q\214\5""6R\2156R\2167S\2167S\2178T\220\2029U\221*:V\222:V\223;W\223"
+ ";X\224<X\225<Y\225=Y\226=Z\227>[\230?[\230?\\\231@\\\232@]\232A]\233A^\234"
+ "B_\234B_\235C`\236D`\237Da\237Eb\240Eb\241Fc\241Gc\242Hd\243He\244Ie\244"
+ "If\245Jf\246Kg\246Kh\247Lh\250Li\250Mi\251Mj\252Nj\253Nk\253Ol\254Ol\255"
+ "Pm\256Qm\256Qn\257\212Ro\260\2Qn\257Pm\256\202Ol\255\1Nk\254\203Mj\253\14"
+ "\30""2i\31""2j\31""3j\32""4k\32""4l\33""5m\34""5m\34""6n\36""6o\36""7o\37"
+ """8p\37""8q\202\40""9r\1!:s\202\";t\17#<u#<v$=v$>w%>x%?y&?y&@z'A{(A{(B|)"
+ "B})C}*D~*D\177\202+E\200\26,F\200,G\201-H\201-I\202.I\203/J\203/J\2040K\205"
+ "0L\2061L\2061M\2072M\2102N\2103N\2114O\2124P\2135P\2135Q\2146Q\2156R\215"
+ "7S\2167S\217\2028T\220\22""9U\2219V\222:V\222;W\223;W\224<X\224<Y\225=Y\226"
+ "=Z\227>Z\227>[\230?[\231@\\\231@]\232A]\233A^\234B^\234B_\235\202C`\236\5"
+ "Da\237Da\240Eb\241Fc\241Fc\242\202Hd\243\17Ie\244Ie\245Jf\245Jg\246Kg\247"
+ "Kh\250Li\250Li\251Mj\252Nj\252Nk\253Ok\254Ol\255Pm\255Pm\256\202Qn\257\203"
+ "Ro\260\2Qn\257Pm\256\202Ol\255\1Nk\254\212Mj\253\15\31""2i\31""3j\32""3k"
+ "\32""4l\33""5l\33""5m\34""6n\35""6n\36""7o\37""8p\37""8q\40""9q\40""9r\202"
+ "!:s*\";t\"<u#<u$=v$=w%>x%?x&?y&@z'@z'A{(B|(B})C}*C~*D\177+D\177+E\200,F\200"
+ ",G\201-H\201-H\202.I\203.J\203/J\204/K\2050K\2051L\2061M\2072M\2102N\210"
+ "3N\2113O\2124O\2124P\2135Q\2146Q\2146R\2157R\2167S\2178T\2178T\220\2029U"
+ "\221&:V\222:W\223;W\224;X\224<X\225=Y\226=Z\226>Z\227>[\230?[\230?\\\231"
+ "@\\\232@]\233A^\233A^\234B_\235C_\235C`\236Da\237Da\240Eb\240Eb\241Fc\242"
+ "Gd\242Hd\243He\244Ie\244Jf\245Jf\246Kg\247Kh\247Lh\250Li\251Mj\251Mj\252"
+ "Nk\253Nk\254Ol\254\202Ol\255\202Ol\254\2Ol\255Nk\254\221Mj\253\37\31""3j"
+ "\32""3k\32""4k\33""4l\33""5m\34""6m\35""6n8Kx8Ku=LnFUwIXzBRv5Go\";t\";u#"
+ "<u#=v$=w$>w%>x&?y&@y'@z'A{(A|(B|)C})C~*D~*D\177\202+E\200\20,F\200-H\201"
+ "-H\202.I\202.I\203/J\204/K\2040K\2050L\2061L\2071M\2072N\2103N\2113O\211"
+ "4O\2124P\213\2025Q\214\5""6R\2156R\2167S\2167S\2178T\220\2029U\221\30:V\222"
+ ":V\223;W\223;X\224<X\225<Y\225=Y\226=Z\227>Z\230?[\230?\\\231@\\\232@]\232"
+ "A]\233A^\234B_\234B_\235C`\236D`\237Da\237Eb\240Eb\241Fc\241Gc\242\202Hd"
+ "\243\5Ie\244If\245Jf\246Jg\246Kh\247\203Lh\250\204Kh\250\4Kg\250Kh\250Kh"
+ "\251Li\252\224Mj\253\27\31""3j\32""4k\32""4l\33""5m\34""5m\35""6n\36""7o"
+ ">Py5JwAT\177>Q}>Q~BT~<P}\";t#<u#<v$=v$>w%>x%?y&?y&@z\202'A{\5(B|)B})C}*C"
+ "~*D\177\202+E\200\5,F\200,G\201-H\201.I\202.I\203\202/J\204\22""0K\2050L"
+ "\2061L\2061M\2072M\2102N\2103N\2113O\2124P\2135P\2135Q\2146Q\2156R\2157S"
+ "\2167S\2178T\2178T\2209U\221\202:V\222\17;W\223;W\224<X\224<Y\225=Y\226="
+ "Z\227>Z\227>[\230?[\231?\\\231@]\232A]\233A^\234B^\234B_\235\202C`\236\7"
+ "Da\237Da\240Eb\240Ec\241Fc\242Gd\243Hd\243\203Hd\244\202Hd\243\12Gd\244G"
+ "d\243Gd\244He\245Ie\245If\246Jf\247Jg\250Kh\250Kh\251\202Li\252\224Mj\253"
+ "\13\32""3k\32""4l\33""5l\33""5m\34""6n\35""6n\36""7o\37""7p\37""8q\40""8"
+ "p\40""9r\202!:s#\";t\"<u#<u#=v$=w%>x%?x&?y&@z'@z'A{(B|(B})C})C~*D\177+D\177"
+ "+E\200,F\200,G\200-H\201-H\202.I\203.J\203/J\204/K\2050K\2051L\2061M\207"
+ "2M\2102N\2103N\2113O\2124P\2124P\213\2025Q\214\5""6R\2157R\2167S\2178T\217"
+ "8T\220\2029U\221\5:V\222:W\223;W\224;X\224<X\225\202=Y\226\13>Z\227>[\230"
+ "?[\230?\\\231@\\\232@]\233A^\233A^\234B_\235C_\235C`\236\203Da\237\202D`"
+ "\237\204E`\237\17Ea\240Eb\241Fb\242Fc\242Gc\243Gd\244Hd\244He\245If\246I"
+ "f\247Jg\247Kg\250Kh\251Li\251Li\252\224Mj\253\36Nk\254\32""4k\33""4l\33""5"
+ "m\34""5m\35""6n\36""7o\36""7p\37""8pox\214\234\234\235Ybwft\222Vh\201\";"
+ "u#<u#=v$=w$>w%>x%?y&@y'@z'A{(A|(B|)C})C~*D~*D\177\202+E\200\20,F\200-H\201"
+ "-H\202.I\202.I\203/J\204/K\2040K\2050L\2061L\2071M\2072N\2103N\2113O\211"
+ "4O\2124P\213\2025Q\214\27""6R\2156R\2167S\2167S\2178T\2209U\2209U\221:V\222"
+ ":V\223;W\223;X\224<X\225<Y\225=Y\226=Z\227>Z\227?[\230?\\\231@\\\232@]\232"
+ "A]\233@]\232A]\232\202A\\\232\30A\\\233A\\\232A]\233B]\234C^\234C^\235D_"
+ "\236D`\237E`\237Ea\240Ea\241Eb\241Fb\242Gc\243Gd\243Hd\244He\245Ie\246If"
+ "\246Jg\247Jg\250Kh\250Lh\251Li\252\216Mj\253\1Nk\254\202Ol\255\1Pm\256\202"
+ "Qn\257\202Ro\260\34\33""4l\33""5m\34""5m\35""6n\36""6o\36""7o\37""8p\37""8"
+ "q{\203\227\247\304\331\271\302\311\310\313\311\207\215\231#<u#<v$=v$>w%>"
+ "x%?x&?y&@z'@{'A{(B|)B})C}*D~*D\177\202+E\200\26,F\200,G\201-H\201-I\202."
+ "I\203/J\203/J\2040K\2050L\2061L\2061M\2072M\2102N\2103N\2113O\2124P\2135"
+ "P\2135Q\2146Q\2156R\2157S\2167S\217\2028T\220\7""9U\2219V\222:V\222;W\223"
+ ";W\224<X\224<X\225\207=Y\226\4>X\226>Y\227?Y\227?Z\230\202@[\231\5A\\\232"
+ "A\\\233B]\233B^\234C^\235\202D_\236\1E`\237\202Ea\240\14Eb\241Fb\242Fc\242"
+ "Gc\243Gd\244He\245Ie\245If\246Jf\247Jg\247Kh\250Kh\251\202Li\252\206Mj\253"
+ "\1Nk\254\202Ol\255\1Pm\256\202Qn\257\212Ro\260$\33""4l\33""5m\34""6n\35""6"
+ "n\36""7o\37""8p\37""8q\40""9qmy\222\215\301\345\236\310\350\302\314\324\177"
+ "\207\234#<u#=v$=w%>x%?x&?y&@z'@z'A{(B|(B})C})C~*D\177+D\177+E\200,F\200,"
+ "G\200-H\201-H\202.I\203.J\203/J\204\2020K\205\10""1L\2061M\2072M\2072N\210"
+ "3N\2113O\2124O\2124P\213\2025Q\214\5""6R\2157R\2167S\2178T\2178T\220\204"
+ "9U\221\205:U\221\34;U\222;V\223<V\223<W\224=W\225=X\226>Y\226>Y\227?Z\230"
+ "@Z\230@[\231A\\\232A\\\233B]\233B]\234C^\235C_\235D_\236D`\237E`\237Ea\240"
+ "Ea\241Fb\242Fc\242Gc\243Gd\244Hd\244He\245\202If\246\7Jg\247Kg\250Kh\251"
+ "Li\252Mj\253Nk\254Ol\255\202Pm\256\1Qn\257\222Ro\260\33\33""5m\34""5m\35"
+ """6n\36""7o\36""7p\37""8p\37""8q\40""9rGX\200\203\222\247\227\260\304\213"
+ "\232\254$<s#=v$=w$>w%>x%?y&?z'@z'A{(A{(B|)B})C~*D~*D\177\202+E\200\22,F\200"
+ "-H\201-H\202.I\202.I\203/J\204/K\2050K\2050L\2061L\2071M\2072M\2103N\211"
+ "3O\2114O\2124P\2135P\2135Q\214\2076Q\215+7Q\2157Q\2168R\2168R\2179S\2209"
+ "T\220:T\221:U\222;V\223<V\223<W\224=W\225=X\225>X\226>Y\227?Z\227?Z\230@"
+ "[\231@[\232A\\\232B\\\233B]\234C^\234C^\235D_\236D`\237E`\237Ea\240Ea\241"
+ "Eb\241Fb\242Gc\243Gd\243Hd\244If\246Jg\247Kh\250Mi\252Nj\253Ol\254Pm\256"
+ "Qn\257Rn\260\227Ro\260\32\34""5m\34""6n\36""6o\36""7o\37""8p\37""8q\40""9"
+ "q\40""9r!:s!;t\":p*@r#<v$=v$>w%>x%?y&?y&@z'@{'A{(B|)B})C}*C~*D\177\202+E"
+ "\200\5,F\200,G\201-H\201-I\202.I\203\202/J\204\11""0K\2050K\2061L\2061M\207"
+ "2M\2102N\2103N\2102N\2103N\210\2043M\210\26""4N\2114N\2125O\2125O\2136P\214"
+ "6Q\2157Q\2158R\2168R\2179S\2209T\220:T\221:U\222;U\222;V\223<V\224<W\224"
+ "=X\225>X\226>Y\226?Y\227?Z\230\202@[\231\5A\\\232A\\\233B]\233B^\234C^\235"
+ "\202D_\236\17E`\237Fa\240Fb\242Gd\243Ie\244Jf\246Kg\247Li\250Mj\252Nj\252"
+ "Nk\253Ok\254Ol\254Pm\255Pm\256\202Qn\257\230Ro\260\7\34""6n\35""6n\36""7"
+ "o\37""7p\37""8p\40""9q\40""9r\202!:s\30\";t\"<u#<u#=v$=w$>x%>x&?y&@z'@z'"
+ "A{(B|(B})C})C~*D\177+D\177+E\200,F\200,G\200-H\201-H\202.I\203.J\203\205"
+ "/J\204\2030I\204\3""0J\2051K\2051K\206\2022L\207\5""3M\2103M\2114N\2115O"
+ "\2125O\213\2026P\214\5""7Q\2157Q\2168R\2178S\2179S\220\202:T\221\34;U\222"
+ ";V\223<V\223<W\224=W\225=X\226>Y\226>Y\227?Z\230@Z\230@[\231A\\\232B]\233"
+ "C^\235C_\236Ea\237Fb\241Gc\242Hd\243Ie\244Jf\245Jf\246Kg\247Kh\247Lh\250"
+ "Li\251Mi\251Mj\252\202Nk\253\5Ol\254Pl\255Pm\256Qn\256Qn\257\231Ro\260\10"
+ "\35""6n\36""7o\36""7p\37""8p\37""8q\40""9r!:r!:s\202\";t\5#<u#=v$=w$>w%>"
+ "x\202&?y\10'@z'A{(A{(B|)B})C~*D~*D\177\202+E\200\1+F\200\206,F\200;-F\200"
+ "-G\201.G\202.H\202/H\203/I\2040J\2041J\2051K\2062K\2062L\2073M\2103M\211"
+ "4N\2114N\2125O\2136P\2136P\2147Q\2157Q\2168R\2168S\2179S\2209T\220:T\221"
+ ":U\222;U\222<V\223<W\224=W\225>Y\226?Z\227?[\231@\\\232A]\233B_\235C`\236"
+ "Da\237Eb\240Eb\241Fc\241Gc\242Hd\243He\243Ie\244If\245Jf\246Jg\246Kg\247"
+ "Lh\250Li\250Mi\251Mj\252Nj\252Nk\253Ol\254Ol\255Pm\255Pm\256\202Qn\257\231"
+ "Ro\260\23\36""6o\36""7o\37""8p\37""8q\40""9q\40""9r!:s!;s\";t#<u#<v$=v$>"
+ "w%>x%?x&?y&@z'@{'A{\205(B|\1)B|\202)C|))C}*D}*E~+E\177,E\177,E\200-F\200"
+ "-F\201.G\201.H\202/H\203/I\2030I\2040J\2051K\2052K\2062L\2073L\2103M\210"
+ "4N\2114N\2125O\2125O\2136P\2146Q\2157Q\2158R\2168S\2179T\221:U\222;V\223"
+ "<W\224=X\225=Z\227>[\230?\\\231@]\232A]\233A^\233B^\234B_\235\202C`\236\17"
+ "Da\237Da\240Eb\240Eb\241Fc\242Gd\243Hd\243Ie\244Ie\245Jf\245Jg\246Kg\247"
+ "Kh\247Lh\250Li\251\202Mj\252\5Nk\253Ok\254Ol\254Pl\255Pm\256\202Qn\257\232"
+ "Ro\260\5\36""7o\37""7p\37""8p\40""9q\40""9r\202!:s\6\";t\"<u#<u#=v$=w$>w"
+ "\204%>w\203%?w\5&@x&@y'Az(Az(B{\202)C|\2*D}*D~\202+E\177&,E\200,F\200-F\200"
+ ".G\201.G\202/H\202/I\2030I\2040J\2051J\2051K\2062L\2073M\2103N\2114O\212"
+ "5P\2136Q\2157R\2168S\2178T\2209U\221:V\223;W\223;X\224<X\225<Y\226=Y\226"
+ ">Z\227>[\230?[\230?\\\231@\\\232@]\233A^\233A^\234B_\235C_\235C`\236\202"
+ "Da\237\26Eb\240Eb\241Fc\242Gc\242Hd\243He\244Ie\244If\245Jg\246Kg\247Kh\247"
+ "Lh\250Li\251Mi\251Mj\252Nk\253Nk\254Ol\254Ol\255Pm\256Qm\256Qn\257\233Ro"
+ "\260\5$<r%=r%=s&>t'?t\205'?u\23(@u'@u(@u(Av)Aw)Bw*Bx+Cy+Dy,Dz,Ez-E{-F|.F"
+ "}.G}/G~/H\1770H\1770I\200\2021I\200\33""2J\2012J\2023K\2034L\2044M\2055N"
+ "\2066O\2077P\2108Q\2119S\2139T\214:U\215;U\216;V\216<V\217<W\220=X\220=X"
+ "\221>Y\222>Y\223?Z\223@Z\224@[\224A[\225A\\\226B\\\226B]\227\202C^\230\2"
+ "D_\231D_\232\202E`\233\12Fa\234Fb\234Gb\235Gc\236Hc\237Hd\237Ie\240Ie\241"
+ "Jf\241Kf\242\202Lg\243\7Mh\244Mh\245Ni\245Nj\246Oj\247Ok\247Pk\250\202Ql"
+ "\251\10Rm\252Rn\253Sn\253So\254To\255Tp\255Up\256Uq\257\233Vq\257\6\340\340"
+ "\340\330\325\325\322\312\312\335\335\335\316\316\316\305\305\305\202\325"
+ "\325\325\31\320\320\320\324\324\324\326\326\326\324\324\324\340\340\340\335"
+ "\335\335\324\324\324\325\325\325\326\326\326\324\324\324\331\331\331\337"
+ "\337\337\277\303\307\301\301\305\333\332\331\317\305\263\323\317\310\333"
+ "\332\327\306\304\305\311\312\313\327\327\330\266\303\320\326\326\326\301"
+ "\306\316\252\254\273\302\340\340\340\3\334\334\334\340\340\340\334\334\334"
+ "\202\325\325\325\6\331\331\331\323\323\323\277\277\277\320\320\320\317\317"
+ "\317\327\327\327\202\334\334\334*\325\325\325\334\334\334\331\331\331\333"
+ "\333\333\340\340\340\307\307\307\315\315\315\340\340\340\336\332\332\265"
+ "<6\262US\315\315\315\225\225\225\242\242\242\214\214\214\273\273\273\225"
+ "\225\225\251\251\251\231\231\231\263\263\263\345\345\345\261\261\261\247"
+ "\247\247\242\242\242\254\254\254\237\237\237\311\311\311\266\277\305u\232"
+ "\225\204\214\235\320\301\251\264\247\202\300\276\262\277\276\274\312\312"
+ "\315\321\321\321\270\270\277\210\235\252\277\301\312\227\265\322\252\242"
+ "\235\330\330\330\301\345\345\345\10\342\342\342\344\344\344\267\267\267\237"
+ "\237\237\301\301\301\226\226\226\257\257\257\254\254\254\202\270\270\270"
+ "\12\342\342\342\274\274\274\275\275\275\223\223\223\264\264\264\213\213\213"
+ "\204\204\204\343\343\343\234\234\234\265\265\265\202\345\345\345\6\334\313"
+ "\312\336\327\326\345\345\345\342\342\342\345\345\345\340\340\340\202\345"
+ "\345\345\1\343\343\343\203\345\345\345\3\342\342\342\345\345\345\343\343"
+ "\343\203\345\345\345\17\320\322\322\254\312\311\271\305\325\334\334\333\276"
+ "\306\312\331\332\331\327\327\327\311\311\311\340\340\340\310\310\317\251"
+ "\260\266\320\321\330\325\326\327\316\322\324\341\341\341\301\345\345\345"
+ "\3\341\341\341\344\344\344\330\330\330\202\345\345\345\1\342\342\342\202"
+ "\345\345\345\202\337\337\337\13\345\345\345\334\334\334\343\343\343\336\336"
+ "\336\345\345\345\340\340\340\341\341\341\345\345\345\310\310\310\307\307"
+ "\307\345\345\345",
};
diff --git a/src/image_data/rotation_orientation_vert.h b/src/image_data/rotation_orientation_vert.h
index 441aba7..52fa3f9 100644
--- a/src/image_data/rotation_orientation_vert.h
+++ b/src/image_data/rotation_orientation_vert.h
@@ -1,1259 +1,736 @@
-/* GIMP RGB C-Source image dump 1-byte-run-length-encoded (...) */
-
-#include "image.h"
-
-static const nv_image_t rotation_orientation_vert_image = {
- 90, 120, 3, 0,
- "\377\0\0\0\267\0\0\0\11\12\16\20w\233\265\235\316\360\236\316\360\240\317"
- "\360\241\317\360\242\317\360\243\320\357\244\320\357\202\246\321\357\5\247"
- "\321\357\250\321\357\250\322\357\251\322\357\252\322\357\202\253\322\357"
- "\203\253\323\356\203\254\323\356\203\253\323\356\202\253\322\357\5\252\322"
- "\357\251\322\357\250\322\357\250\321\357\247\321\357\202\246\321\3572\244"
- "\320\357\243\320\357\242\317\360\241\317\360\240\317\360\236\316\360\235"
- "\316\360\234\315\360\233\315\361\231\314\361\230\314\361\226\313\361\225"
- "\313\361\223\312\362\221\312\362\220\311\362\217\311\362\215\310\362\213"
- "\307\362\212\307\363\207\306\363\206\306\363\205\305\363\202\305\364\201"
- "\304\364\200\303\364~\303\364|\302\364{\302\365y\301\365v\300\365u\300\365"
- "s\277\366q\276\366o\276\366m\275\366l\274\367i\274\367g\273\367e\272\367"
- "d\272\370b\271\370_\270\370]\270\370\\\267\371Z\266\371X\266\371U\265\371"
- "@\210\275\5\14\21\204\0\0\0\16w\233\265\236\316\360\237\316\360\240\317\360"
- "\241\317\360\243\320\360\243\320\357\245\320\357\246\321\357\247\321\357"
- "\250\321\357\250\322\357\252\322\357\253\322\357\202\253\323\356\1\254\323"
- "\356\213\255\323\356\1\254\323\356\202\253\323\3567\253\322\357\252\322\357"
- "\250\322\357\250\321\357\247\321\357\246\321\357\245\320\357\243\320\357"
- "\243\320\360\241\317\360\240\317\360\237\316\360\236\316\360\234\315\360"
- "\233\315\361\231\314\361\230\314\361\226\313\361\224\313\361\223\312\362"
- "\221\312\362\220\311\362\216\310\362\214\310\362\212\307\363\211\307\363"
- "\207\306\363\205\306\363\204\305\363\202\304\364\200\304\364\177\303\364"
- "~\303\364{\302\365y\301\365x\301\365v\300\365t\277\366r\277\366p\276\366"
- "n\275\366l\275\366j\274\367h\273\367g\273\367d\272\367b\271\370`\270\370"
- "_\270\370]\267\370Z\267\371X\266\371V\265\371U\265\371>\210\275\204\0\0\0"
- "\2\236\316\360\237\316\360\202\241\317\360\2\243\320\360\244\320\357\202"
- "\246\321\357\6\250\321\357\250\322\357\252\322\357\253\322\357\253\323\356"
- "\254\323\356\202\255\323\356\202\256\324\356\202\257\324\356\205\260\324"
- "\356\202\257\324\356\202\256\324\356\202\255\323\356\6\254\323\356\253\323"
- "\356\253\322\357\252\322\357\250\322\357\250\321\357\202\246\321\357\2\244"
- "\320\357\243\320\360\202\241\317\360+\237\316\360\236\316\360\234\315\360"
- "\233\315\361\231\314\361\227\314\361\226\313\361\224\313\361\223\312\362"
- "\221\311\362\217\311\362\216\310\362\214\310\362\212\307\363\210\307\363"
- "\207\306\363\205\305\363\203\305\363\201\304\364\200\304\364~\303\364|\302"
- "\364{\302\365y\301\365v\300\365u\300\365s\277\366q\276\366o\276\366m\275"
- "\366k\274\367i\273\367g\273\367e\272\367c\271\370a\271\370_\270\370]\270"
- "\370[\267\371Y\266\371W\265\371U\265\371S\264\372\204\0\0\0\16\237\316\360"
- "\241\317\360\242\317\360\243\320\357\244\320\357\246\321\357\247\321\357"
- "\250\322\357\251\322\357\253\322\357\253\323\356\254\323\356\255\323\356"
- "\256\324\356\202\257\324\356\203\260\324\356\207\261\325\356\203\260\324"
- "\356\202\257\324\3567\256\324\356\255\323\356\254\323\356\253\323\356\253"
- "\322\357\251\322\357\250\322\357\247\321\357\246\321\357\244\320\357\243"
- "\320\357\242\317\360\241\317\360\237\316\360\236\316\360\234\315\360\232"
- "\315\361\231\314\361\227\314\361\226\313\361\224\312\361\222\312\362\221"
- "\311\362\217\311\362\215\310\362\213\307\362\212\307\363\207\306\363\206"
- "\306\363\204\305\363\202\305\364\200\304\364\177\303\364~\303\364{\302\365"
- "y\301\365x\301\365v\300\365t\277\366r\277\366p\276\366n\275\366l\274\367"
- "j\274\367h\273\367f\272\367d\272\370b\271\370`\270\370^\270\370\\\267\371"
- "Z\266\371X\266\371V\265\371T\264\372\204\0\0\0\15\241\317\360\242\317\360"
- "\243\320\357\245\320\357\246\321\357\247\321\357\250\322\357\252\322\357"
- "\253\322\357\254\323\356\255\323\356\256\324\356\257\324\356\202\260\324"
- "\356\1\261\325\356\202\262\325\356\1\263\325\356\207\263\325\355\1\263\325"
- "\356\202\262\325\356\1\261\325\356\202\260\324\3566\257\324\356\256\324\356"
- "\255\323\356\254\323\356\253\322\357\252\322\357\250\322\357\247\321\357"
- "\246\321\357\245\320\357\243\320\357\242\317\360\241\317\360\236\316\360"
- "\235\316\360\234\315\360\232\315\361\231\314\361\226\313\361\225\313\361"
- "\224\312\361\221\312\362\220\311\362\216\310\362\214\310\362\212\307\363"
- "\211\307\363\207\306\363\205\305\363\203\305\363\201\304\364\200\304\364"
- "~\303\364|\302\364{\302\365y\301\365v\300\365t\277\365s\277\366q\276\366"
- "o\275\366l\275\366k\274\367i\273\367g\273\367d\272\367c\271\370a\271\370"
- "_\270\370]\267\370Z\267\371X\266\371V\265\371U\265\371\204\0\0\0\10\241\317"
- "\360\243\320\357\245\320\357\246\321\357\250\321\357\250\322\357\252\322"
- "\357\253\323\356\202\255\323\356\1\257\324\356\202\260\324\356\1\261\325"
- "\356\202\263\325\356\2\263\325\355\264\326\355\211\265\326\355\2\264\326"
- "\355\263\325\355\202\263\325\356\1\261\325\356\202\260\324\356\1\257\324"
- "\356\202\255\323\3561\253\323\356\252\322\357\250\322\357\250\321\357\246"
- "\321\357\245\320\357\243\320\357\241\317\360\240\317\360\236\316\360\235"
- "\316\360\234\315\360\231\314\361\230\314\361\226\313\361\224\313\361\223"
- "\312\362\221\311\362\217\311\362\215\310\362\214\310\362\212\307\363\207"
- "\306\363\206\306\363\204\305\363\202\305\364\200\304\364\177\303\364~\303"
- "\364{\302\365y\301\365w\300\365v\300\365t\277\366q\276\366o\276\366n\275"
- "\366l\274\367i\274\367g\273\367e\272\367d\272\370b\271\370_\270\370]\270"
- "\370[\267\371Y\266\371W\265\371U\265\371\204\0\0\0\17\243\320\360\244\320"
- "\357\246\321\357\250\321\357\251\322\357\252\322\357\253\323\356\255\323"
- "\356\256\324\356\257\324\356\260\324\356\261\325\356\263\325\356\263\325"
- "\355\264\326\355\202\265\326\355\202\266\326\355\207\267\327\355\202\266"
- "\326\355\202\265\326\3558\264\326\355\263\325\355\263\325\356\261\325\356"
- "\260\324\356\257\324\356\256\324\356\255\323\356\253\323\356\253\322\357"
- "\251\322\357\250\321\357\246\321\357\244\320\357\243\320\360\241\317\360"
- "\240\317\360\236\316\360\234\315\360\233\315\361\231\314\361\227\314\361"
- "\226\313\361\224\312\361\222\312\362\220\311\362\217\311\362\214\310\362"
- "\212\307\363\211\307\363\207\306\363\205\306\363\203\305\363\201\304\364"
- "\200\303\364~\303\364|\302\364z\301\365y\301\365v\300\365t\277\365r\277\366"
- "p\276\366o\275\366l\275\366j\274\367h\273\367f\272\367d\272\370b\271\370"
- "`\270\370^\270\370\\\267\371Z\266\371X\266\371U\265\371\204\0\0\0\15\244"
- "\320\357\246\321\357\247\321\357\251\322\357\253\322\357\254\323\356\255"
- "\323\356\256\324\356\260\324\356\261\325\356\262\325\356\263\325\355\264"
- "\326\355\202\265\326\355\2\266\326\355\267\327\355\203\270\327\355\205\271"
- "\327\355\203\270\327\355\2\267\327\355\266\326\355\202\265\326\3556\264\326"
- "\355\263\325\355\262\325\356\261\325\356\260\324\356\256\324\356\255\323"
- "\356\254\323\356\253\322\357\251\322\357\247\321\357\246\321\357\244\320"
- "\357\243\320\360\241\317\360\237\316\360\236\316\360\234\315\360\232\315"
- "\361\231\314\361\226\313\361\225\313\361\223\312\362\221\312\362\217\311"
- "\362\215\310\362\214\310\362\212\307\363\207\306\363\206\306\363\204\305"
- "\363\202\304\364\200\304\364\177\303\364}\302\364{\302\365y\301\365w\300"
- "\365u\300\365s\277\366q\276\366o\276\366m\275\366k\274\367i\273\367g\273"
- "\367d\272\367c\271\370a\271\370_\270\370]\267\370Z\267\371X\266\371V\265"
- "\371\204\0\0\0\13\246\321\357\247\321\357\250\322\357\252\322\357\254\323"
- "\356\255\323\356\256\324\356\260\324\356\261\325\356\263\325\356\263\325"
- "\355\202\265\326\355\1\267\327\355\202\270\327\355\1\271\327\355\202\272"
- "\327\355\203\272\330\355\1\273\330\354\203\272\330\355\202\272\327\355\1"
- "\271\327\355\202\270\327\355\1\267\327\355\202\265\326\3554\263\325\355\263"
- "\325\356\261\325\356\260\324\356\256\324\356\255\323\356\254\323\356\252"
- "\322\357\250\322\357\247\321\357\246\321\357\244\320\357\242\317\360\241"
- "\317\360\237\316\360\235\316\360\234\315\360\231\314\361\230\314\361\226"
- "\313\361\224\313\361\222\312\362\220\311\362\217\311\362\214\310\362\212"
- "\307\363\211\307\363\207\306\363\205\305\363\203\305\363\201\304\364\200"
- "\303\364~\303\364{\302\365z\301\365x\301\365v\300\365t\277\366q\276\366p"
- "\276\366n\275\366l\274\367i\274\367g\273\367e\272\367c\271\370b\271\370_"
- "\270\370]\270\370[\267\371Y\266\371W\265\371\204\0\0\0\14\247\321\357\250"
- "\322\357\252\322\357\253\323\356\255\323\356\257\324\356\260\324\356\261"
- "\325\356\263\325\356\264\326\355\265\326\355\266\326\355\202\270\327\355"
- "\4\271\327\355\272\327\355\272\330\355\273\330\354\202\274\330\354\205\275"
- "\330\354\202\274\330\354\4\273\330\354\272\330\355\272\327\355\271\327\355"
- "\202\270\327\3555\266\326\355\265\326\355\264\326\355\263\325\356\261\325"
- "\356\260\324\356\257\324\356\255\323\356\253\323\356\252\322\357\250\322"
- "\357\247\321\357\245\320\357\243\320\357\242\317\360\240\317\360\236\316"
- "\360\234\315\360\233\315\361\231\314\361\227\314\361\225\313\361\223\312"
- "\362\221\312\362\217\311\362\215\310\362\214\310\362\212\307\363\207\306"
- "\363\205\306\363\204\305\363\202\304\364\200\304\364~\303\364}\302\364{\302"
- "\365y\301\365v\300\365t\277\365r\277\366q\276\366o\275\366l\275\366j\274"
- "\367h\273\367f\272\367d\272\370b\271\370_\270\370^\270\370\\\267\371Z\266"
- "\371X\266\371\204\0\0\0\21\250\321\357\252\322\357\253\323\356\255\323\356"
- "\256\324\356\260\324\356\262\325\356\263\325\356\264\326\355\265\326\355"
- "\267\327\355\270\327\355\271\327\355\272\327\355\273\330\354\274\330\354"
- "\275\330\354\202\275\331\354\202\276\331\354\203\277\331\354\202\276\331"
- "\354\202\275\331\354:\275\330\354\274\330\354\273\330\354\272\327\355\271"
- "\327\355\270\327\355\267\327\355\265\326\355\264\326\355\263\325\356\262"
- "\325\356\260\324\356\256\324\356\255\323\356\253\323\356\252\322\357\250"
- "\321\357\246\321\357\245\320\357\243\320\360\241\317\360\237\316\360\236"
- "\316\360\234\315\360\232\315\361\230\314\361\226\313\361\224\313\361\222"
- "\312\362\220\311\362\217\311\362\214\310\362\212\307\363\210\307\363\207"
- "\306\363\205\305\363\202\305\364\200\304\364\177\303\364~\303\364{\302\365"
- "y\301\365w\300\365u\300\365s\277\366q\276\366o\276\366m\275\366k\274\367"
- "i\273\367g\273\367d\272\367b\271\370`\270\370^\270\370\\\267\371Z\267\371"
- "X\266\371\204\0\0\0\21\251\322\357\253\322\357\255\323\356\256\324\356\260"
- "\324\356\261\325\356\263\325\356\264\326\355\265\326\355\267\327\355\270"
- "\327\355\272\327\355\272\330\355\274\330\354\275\330\354\275\331\354\276"
- "\331\354\202\277\331\354\207\300\332\354\202\277\331\354:\276\331\354\275"
- "\331\354\275\330\354\274\330\354\272\330\355\272\327\355\270\327\355\267"
- "\327\355\265\326\355\264\326\355\263\325\356\261\325\356\260\324\356\256"
- "\324\356\255\323\356\253\322\357\251\322\357\250\321\357\246\321\357\244"
- "\320\357\242\317\360\241\317\360\236\316\360\234\315\360\233\315\361\231"
- "\314\361\227\314\361\225\313\361\223\312\362\221\311\362\217\311\362\215"
- "\310\362\213\307\362\211\307\363\207\306\363\205\306\363\203\305\363\201"
- "\304\364\200\303\364~\303\364|\302\364z\301\365x\301\365v\300\365t\277\366"
- "q\276\366o\276\366n\275\366l\274\367i\274\367g\273\367e\272\367c\271\370"
- "a\271\370_\270\370]\267\370Z\267\371X\266\371\204\0\0\0\22\253\322\357\254"
- "\323\356\255\323\356\260\324\356\261\325\356\263\325\356\264\326\355\265"
- "\326\355\267\327\355\270\327\355\272\327\355\273\330\354\275\330\354\275"
- "\331\354\276\331\354\277\331\354\300\332\354\301\332\354\211\302\332\354"
- ";\301\332\354\300\332\354\277\331\354\276\331\354\275\331\354\275\330\354"
- "\273\330\354\272\327\355\270\327\355\267\327\355\265\326\355\264\326\355"
- "\263\325\356\261\325\356\260\324\356\255\323\356\254\323\356\253\322\357"
- "\250\322\357\247\321\357\245\320\357\243\320\357\241\317\360\237\316\360"
- "\236\316\360\234\315\360\231\314\361\230\314\361\226\313\361\224\312\361"
- "\222\312\362\220\311\362\216\310\362\214\310\362\212\307\363\210\307\363"
- "\206\306\363\204\305\363\202\304\364\200\304\364~\303\364}\302\364{\302\365"
- "y\301\365v\300\365t\277\365r\277\366p\276\366n\275\366l\274\367i\274\367"
- "h\273\367f\272\367d\272\370b\271\370_\270\370]\270\370[\267\371Y\266\371"
- "\204\0\0\0\20\253\323\356\255\323\356\257\324\356\260\324\356\263\325\356"
- "\264\326\355\265\326\355\267\327\355\270\327\355\272\327\355\273\330\354"
- "\275\330\354\276\331\354\277\331\354\300\332\354\301\332\354\202\302\332"
- "\354\1\303\333\353\207\304\333\353\1\303\333\353\202\302\332\3549\301\332"
- "\354\300\332\354\277\331\354\276\331\354\275\330\354\273\330\354\272\327"
- "\355\270\327\355\267\327\355\265\326\355\264\326\355\263\325\356\260\324"
- "\356\257\324\356\255\323\356\253\323\356\252\322\357\250\321\357\246\321"
- "\357\244\320\357\242\317\360\241\317\360\236\316\360\234\315\360\233\315"
- "\361\231\314\361\226\313\361\224\313\361\223\312\362\221\311\362\217\311"
- "\362\214\310\362\212\307\363\211\307\363\207\306\363\205\305\363\202\305"
- "\364\200\304\364\177\303\364}\302\364{\302\365y\301\365w\300\365u\300\365"
- "s\277\366q\276\366o\275\366l\275\366j\274\367h\273\367f\272\367d\272\370"
- "b\271\370`\270\370^\270\370\\\267\371Z\266\371\204\0\0\0\16\255\323\356\256"
- "\324\356\260\324\356\262\325\356\263\325\355\265\326\355\267\327\355\270"
- "\327\355\272\327\355\273\330\354\275\330\354\276\331\354\277\331\354\301"
- "\332\354\202\302\332\354\202\304\333\353\202\305\333\353\205\306\334\353"
- "\202\305\333\353\202\304\333\353\202\302\332\3547\301\332\354\277\331\354"
- "\276\331\354\275\330\354\273\330\354\272\327\355\270\327\355\267\327\355"
- "\265\326\355\263\325\355\262\325\356\260\324\356\256\324\356\255\323\356"
- "\253\322\357\251\322\357\247\321\357\245\320\357\243\320\357\241\317\360"
- "\237\316\360\236\316\360\234\315\360\231\314\361\227\314\361\226\313\361"
- "\224\312\361\221\312\362\217\311\362\215\310\362\213\307\362\212\307\363"
- "\207\306\363\205\306\363\203\305\363\201\304\364\200\303\364~\303\364{\302"
- "\365y\301\365x\301\365v\300\365t\277\366q\276\366o\276\366m\275\366k\274"
- "\367i\273\367g\273\367d\272\367b\271\370`\270\370^\270\370\\\267\371Z\266"
- "\371\204\0\0\0\22\255\323\356\260\324\356\261\325\356\263\325\355\265\326"
- "\355\267\327\355\270\327\355\272\327\355\273\330\354\275\330\354\276\331"
- "\354\277\331\354\301\332\354\302\332\354\303\333\353\304\333\353\305\333"
- "\353\306\334\353\203\307\334\353\203\310\334\353\203\307\334\353;\306\334"
- "\353\305\333\353\304\333\353\303\333\353\302\332\354\301\332\354\277\331"
- "\354\276\331\354\275\330\354\273\330\354\272\327\355\270\327\355\267\327"
- "\355\265\326\355\263\325\355\261\325\356\260\324\356\255\323\356\254\323"
- "\356\252\322\357\250\321\357\246\321\357\244\320\357\242\317\360\241\317"
- "\360\236\316\360\234\315\360\232\315\361\230\314\361\226\313\361\224\313"
- "\361\222\312\362\220\311\362\216\310\362\214\310\362\212\307\363\210\307"
- "\363\206\306\363\204\305\363\202\304\364\200\304\364~\303\364|\302\364z\301"
- "\365x\301\365v\300\365t\277\366q\276\366p\276\366n\275\366l\274\367i\274"
- "\367g\273\367e\272\367c\271\370a\271\370_\270\370]\267\370Z\267\371\204\0"
- "\0\0\22\257\324\356\260\324\356\263\325\356\264\326\355\266\326\355\270\327"
- "\355\272\327\355\273\330\354\275\330\354\276\331\354\277\331\354\301\332"
- "\354\302\332\354\304\333\353\305\333\353\306\334\353\307\334\353\310\334"
- "\353\202\311\335\353\205\312\335\353\202\311\335\353;\310\334\353\307\334"
- "\353\306\334\353\305\333\353\304\333\353\302\332\354\301\332\354\277\331"
- "\354\276\331\354\275\330\354\273\330\354\272\327\355\270\327\355\266\326"
- "\355\264\326\355\263\325\356\260\324\356\257\324\356\255\323\356\253\322"
- "\357\251\322\357\247\321\357\245\320\357\243\320\360\241\317\360\237\316"
- "\360\235\316\360\233\315\361\231\314\361\227\314\361\225\313\361\223\312"
- "\362\221\311\362\217\311\362\214\310\362\212\307\363\210\307\363\207\306"
- "\363\205\305\363\202\305\364\200\304\364\177\303\364}\302\364{\302\365y\301"
- "\365v\300\365t\277\365r\277\366p\276\366n\275\366l\274\367i\274\367g\273"
- "\367e\272\367c\271\370a\271\370_\270\370]\267\370Z\267\371\204\0\0\0\16\260"
- "\324\356\262\325\356\263\325\355\265\326\355\267\327\355\271\327\355\272"
- "\330\355\275\330\354\276\331\354\277\331\354\301\332\354\302\332\354\304"
- "\333\353\305\333\353\202\307\334\353\1\311\335\353\202\312\335\353\1\313"
- "\335\353\205\314\336\352\1\313\335\353\202\312\335\353\1\311\335\353\202"
- "\307\334\3537\305\333\353\304\333\353\302\332\354\301\332\354\277\331\354"
- "\276\331\354\275\330\354\272\330\355\271\327\355\267\327\355\265\326\355"
- "\263\325\355\262\325\356\260\324\356\255\323\356\253\323\356\252\322\357"
- "\250\321\357\246\321\357\243\320\357\242\317\360\240\317\360\236\316\360"
- "\234\315\360\231\314\361\227\314\361\226\313\361\224\312\361\221\312\362"
- "\217\311\362\215\310\362\213\307\362\211\307\363\207\306\363\205\305\363"
- "\202\305\364\200\304\364\200\303\364~\303\364{\302\365y\301\365w\300\365"
- "u\300\365s\277\366q\276\366o\275\366l\275\366j\274\367h\273\367f\272\367"
- "d\272\370b\271\370_\270\370]\270\370[\267\371\204\0\0\0\17\260\324\356\263"
- "\325\356\264\326\355\266\326\355\270\327\355\272\327\355\274\330\354\275"
- "\331\354\277\331\354\301\332\354\302\332\354\304\333\353\305\333\353\307"
- "\334\353\310\334\353\202\312\335\353\202\314\336\352\202\315\336\352\203"
- "\316\336\352\202\315\336\352\202\314\336\352\202\312\335\3538\310\334\353"
- "\307\334\353\305\333\353\304\333\353\302\332\354\301\332\354\277\331\354"
- "\275\331\354\274\330\354\272\327\355\270\327\355\266\326\355\264\326\355"
- "\263\325\356\260\324\356\256\324\356\255\323\356\253\322\357\250\322\357"
- "\246\321\357\245\320\357\243\320\360\241\317\360\236\316\360\234\315\360"
- "\232\315\361\230\314\361\226\313\361\224\313\361\222\312\362\220\311\362"
- "\216\310\362\214\310\362\212\307\363\207\306\363\205\306\363\203\305\363"
- "\201\304\364\200\303\364~\303\364{\302\365y\301\365w\300\365u\300\365s\277"
- "\366q\276\366o\275\366l\275\366j\274\367h\273\367f\272\367d\272\370b\271"
- "\370_\270\370]\270\370[\267\371\204\0\0\0\23\261\325\356\263\325\355\265"
- "\326\355\267\327\355\271\327\355\273\330\354\275\330\354\277\331\354\300"
- "\332\354\302\332\354\304\333\353\305\333\353\307\334\353\310\334\353\312"
- "\335\353\313\335\353\314\336\352\315\336\352\316\336\352\207\317\337\352"
- "<\316\336\352\315\336\352\314\336\352\313\335\353\312\335\353\310\334\353"
- "\307\334\353\305\333\353\304\333\353\302\332\354\300\332\354\277\331\354"
- "\275\330\354\273\330\354\271\327\355\267\327\355\265\326\355\263\325\355"
- "\261\325\356\260\324\356\255\323\356\253\323\356\251\322\357\247\321\357"
- "\245\320\357\243\320\357\241\317\360\237\316\360\235\316\360\233\315\361"
- "\231\314\361\226\313\361\224\313\361\222\312\362\220\311\362\217\311\362"
- "\214\310\362\212\307\363\210\307\363\206\306\363\204\305\363\202\304\364"
- "\200\304\364~\303\364|\302\364z\301\365x\301\365v\300\365t\277\366q\276\366"
- "o\276\366m\275\366k\274\367i\273\367g\273\367d\272\367b\271\370`\270\370"
- "^\270\370\\\267\371\204\0\0\0\23\262\325\356\264\326\355\266\326\355\270"
- "\327\355\272\327\355\274\330\354\276\331\354\277\331\354\302\332\354\303"
- "\333\353\305\333\353\307\334\353\310\334\353\312\335\353\313\335\353\314"
- "\336\352\316\336\352\317\337\352\320\337\352\202\321\337\352\203\321\340"
- "\352\202\321\337\352<\320\337\352\317\337\352\316\336\352\314\336\352\313"
- "\335\353\312\335\353\310\334\353\307\334\353\305\333\353\303\333\353\302"
- "\332\354\277\331\354\276\331\354\274\330\354\272\327\355\270\327\355\266"
- "\326\355\264\326\355\262\325\356\260\324\356\256\324\356\254\323\356\252"
- "\322\357\250\321\357\246\321\357\243\320\357\242\317\360\240\317\360\236"
- "\316\360\234\315\360\231\314\361\227\314\361\225\313\361\223\312\362\221"
- "\311\362\217\311\362\214\310\362\212\307\363\210\307\363\206\306\363\204"
- "\305\363\202\304\364\200\304\364~\303\364|\302\364z\301\365x\301\365v\300"
- "\365t\277\366q\276\366o\276\366m\275\366k\274\367i\273\367g\273\367d\272"
- "\367b\271\370`\270\370^\270\370\\\267\371\204\0\0\0\24\263\325\356\265\326"
- "\355\267\327\355\271\327\355\273\330\354\275\330\354\277\331\354\301\332"
- "\354\302\332\354\304\333\353\306\334\353\310\334\353\312\335\353\313\335"
- "\353\314\336\352\316\336\352\317\337\352\321\337\352\321\340\352\322\340"
- "\352\202\323\340\352\1\324\340\351\202\323\340\352=\322\340\352\321\340\352"
- "\321\337\352\317\337\352\316\336\352\314\336\352\313\335\353\312\335\353"
- "\310\334\353\306\334\353\304\333\353\302\332\354\301\332\354\277\331\354"
- "\275\330\354\273\330\354\271\327\355\267\327\355\265\326\355\263\325\356"
- "\261\325\356\257\324\356\255\323\356\253\322\357\250\322\357\246\321\357"
- "\244\320\357\242\317\360\240\317\360\236\316\360\234\315\360\232\315\361"
- "\230\314\361\226\313\361\224\312\361\221\312\362\217\311\362\215\310\362"
- "\213\307\362\211\307\363\207\306\363\205\305\363\202\305\364\200\304\364"
- "\177\303\364}\302\364{\302\365y\301\365v\300\365t\277\365r\277\366p\276\366"
- "n\275\366l\274\367i\274\367g\273\367e\272\367c\271\370a\271\370_\270\370"
- "]\267\370\204\0\0\0\23\263\325\355\265\326\355\270\327\355\272\327\355\274"
- "\330\354\275\331\354\277\331\354\302\332\354\304\333\353\305\333\353\307"
- "\334\353\311\335\353\313\335\353\314\336\352\316\336\352\317\337\352\321"
- "\337\352\322\340\352\323\340\352\202\324\341\351\203\325\341\351\202\324"
- "\341\351<\323\340\352\322\340\352\321\337\352\317\337\352\316\336\352\314"
- "\336\352\313\335\353\311\335\353\307\334\353\305\333\353\304\333\353\302"
- "\332\354\277\331\354\275\331\354\274\330\354\272\327\355\270\327\355\265"
- "\326\355\263\325\355\262\325\356\260\324\356\255\323\356\253\323\356\251"
- "\322\357\247\321\357\245\320\357\243\320\360\241\317\360\236\316\360\234"
- "\315\360\232\315\361\230\314\361\226\313\361\224\312\361\221\312\362\217"
- "\311\362\215\310\362\213\307\362\211\307\363\207\306\363\205\305\363\202"
- "\305\364\200\304\364\177\303\364}\302\364{\302\365y\301\365v\300\365t\277"
- "\365r\277\366p\276\366n\275\366l\274\367i\274\367g\273\367e\272\367c\271"
- "\370a\271\370_\270\370]\267\370\204\0\0\0\23\264\326\355\266\326\355\270"
- "\327\355\272\330\355\275\330\354\277\331\354\300\332\354\302\332\354\304"
- "\333\353\307\334\353\310\334\353\312\335\353\314\336\352\316\336\352\317"
- "\337\352\321\337\352\322\340\352\324\340\351\325\341\351\202\326\341\351"
- "\203\327\342\351\202\326\341\351<\325\341\351\324\340\351\322\340\352\321"
- "\337\352\317\337\352\316\336\352\314\336\352\312\335\353\310\334\353\307"
- "\334\353\304\333\353\302\332\354\300\332\354\277\331\354\275\330\354\272"
- "\330\355\270\327\355\266\326\355\264\326\355\262\325\356\260\324\356\255"
- "\323\356\254\323\356\252\322\357\250\321\357\246\321\357\243\320\357\241"
- "\317\360\237\316\360\235\316\360\233\315\361\231\314\361\226\313\361\224"
- "\313\361\222\312\362\220\311\362\216\310\362\214\310\362\212\307\363\207"
- "\306\363\205\306\363\203\305\363\201\304\364\200\303\364~\303\364{\302\365"
- "y\301\365w\300\365u\300\365s\277\366q\276\366o\275\366l\275\366j\274\367"
- "h\273\367e\272\367c\271\370a\271\370_\270\370]\267\370\204\0\0\0\25\265\326"
- "\355\267\327\355\271\327\355\273\330\354\275\331\354\277\331\354\301\332"
- "\354\303\333\353\305\333\353\307\334\353\311\335\353\313\335\353\315\336"
- "\352\317\337\352\321\337\352\322\340\352\324\340\351\325\341\351\326\341"
- "\351\327\342\351\330\342\351\203\331\342\351>\330\342\351\327\342\351\326"
- "\341\351\325\341\351\324\340\351\322\340\352\321\337\352\317\337\352\315"
- "\336\352\313\335\353\311\335\353\307\334\353\305\333\353\303\333\353\301"
- "\332\354\277\331\354\275\331\354\273\330\354\271\327\355\267\327\355\265"
- "\326\355\263\325\356\260\324\356\256\324\356\254\323\356\252\322\357\250"
- "\321\357\246\321\357\243\320\357\241\317\360\237\316\360\235\316\360\233"
- "\315\361\231\314\361\226\313\361\224\313\361\222\312\362\220\311\362\216"
- "\310\362\214\310\362\212\307\363\207\306\363\205\306\363\203\305\363\201"
- "\304\364\200\303\364~\303\364{\302\365y\301\365w\300\365u\300\365s\277\366"
- "q\276\366o\275\366l\275\366j\274\367h\273\367f\272\367d\272\370b\271\370"
- "_\270\370]\270\370\204\0\0\0\25\265\326\355\270\327\355\272\327\355\274\330"
- "\354\275\331\354\277\331\354\302\332\354\304\333\353\306\334\353\310\334"
- "\353\312\335\353\314\336\352\316\336\352\320\337\352\321\340\352\324\340"
- "\351\325\341\351\326\341\351\330\342\351\331\342\351\332\343\351\203\333"
- "\343\351>\332\343\351\331\342\351\330\342\351\326\341\351\325\341\351\324"
- "\340\351\321\340\352\320\337\352\316\336\352\314\336\352\312\335\353\310"
- "\334\353\306\334\353\304\333\353\302\332\354\277\331\354\275\331\354\274"
- "\330\354\272\327\355\270\327\355\265\326\355\263\325\355\261\325\356\257"
- "\324\356\255\323\356\253\322\357\250\322\357\246\321\357\244\320\357\242"
- "\317\360\240\317\360\236\316\360\234\315\360\231\314\361\227\314\361\225"
- "\313\361\223\312\362\221\311\362\217\311\362\214\310\362\212\307\363\210"
- "\307\363\206\306\363\204\305\363\202\304\364\200\303\364~\303\364{\302\365"
- "y\301\365w\300\365u\300\365s\277\366q\276\366o\275\366l\275\366j\274\367"
- "h\273\367f\272\367d\272\370b\271\370_\270\370]\270\370\204\0\0\0V\265\326"
- "\355\270\327\355\272\327\355\274\330\354\276\331\354\300\332\354\302\332"
- "\354\304\333\353\307\334\353\311\335\353\313\335\353\314\336\352\317\337"
- "\352\321\337\352\323\340\352\324\341\351\326\341\351\330\342\351\331\342"
- "\351\333\343\351\333\343\350\334\343\350\335\344\350\334\343\350\333\343"
- "\350\333\343\351\331\342\351\330\342\351\326\341\351\324\341\351\323\340"
- "\352\321\337\352\317\337\352\314\336\352\313\335\353\311\335\353\307\334"
- "\353\304\333\353\302\332\354\300\332\354\276\331\354\274\330\354\272\327"
- "\355\270\327\355\265\326\355\263\325\355\261\325\356\257\324\356\255\323"
- "\356\253\322\357\250\322\357\246\321\357\244\320\357\242\317\360\240\317"
- "\360\236\316\360\234\315\360\231\314\361\227\314\361\225\313\361\223\312"
- "\362\221\311\362\217\311\362\214\310\362\212\307\363\210\307\363\206\306"
- "\363\204\305\363\202\304\364\200\304\364~\303\364|\302\364z\301\365x\301"
- "\365v\300\365t\277\366q\276\366o\275\366l\275\366j\274\367h\273\367f\272"
- "\367d\272\370b\271\370_\270\370]\270\370\204\0\0\0\24\266\326\355\270\327"
- "\355\272\330\355\275\330\354\277\331\354\301\332\354\303\333\353\305\333"
- "\353\307\334\353\312\335\353\314\336\352\315\336\352\317\337\352\321\340"
- "\352\324\340\351\326\341\351\327\342\351\331\342\351\333\343\351\334\343"
- "\350\205\336\344\350=\334\343\350\333\343\351\331\342\351\327\342\351\326"
- "\341\351\324\340\351\321\340\352\317\337\352\315\336\352\314\336\352\312"
- "\335\353\307\334\353\305\333\353\303\333\353\301\332\354\277\331\354\275"
- "\330\354\272\330\355\270\327\355\266\326\355\264\326\355\262\325\356\260"
- "\324\356\255\323\356\253\323\356\251\322\357\247\321\357\245\320\357\243"
- "\320\360\241\317\360\236\316\360\234\315\360\231\314\361\227\314\361\225"
- "\313\361\223\312\362\221\311\362\217\311\362\214\310\362\212\307\363\210"
- "\307\363\206\306\363\204\305\363\202\304\364\200\304\364~\303\364|\302\364"
- "z\301\365x\301\365v\300\365t\277\366q\276\366o\276\366m\275\366k\274\367"
- "i\273\367f\272\367d\272\370b\271\370_\270\370]\270\370\204\0\0\0V\266\326"
- "\355\270\327\355\272\330\355\275\330\354\277\331\354\301\332\354\303\333"
- "\353\305\333\353\307\334\353\312\335\353\314\336\352\316\336\352\320\337"
- "\352\322\340\352\324\341\351\326\341\351\331\342\351\332\343\351\334\343"
- "\350\336\344\350\337\344\350\340\345\350\341\345\350\340\345\350\337\344"
- "\350\336\344\350\334\343\350\332\343\351\331\342\351\326\341\351\324\341"
- "\351\322\340\352\320\337\352\316\336\352\314\336\352\312\335\353\307\334"
- "\353\305\333\353\303\333\353\301\332\354\277\331\354\275\330\354\272\330"
- "\355\270\327\355\266\326\355\264\326\355\262\325\356\260\324\356\255\323"
- "\356\253\323\356\251\322\357\247\321\357\245\320\357\243\320\360\241\317"
- "\360\236\316\360\234\315\360\232\315\361\230\314\361\226\313\361\224\312"
- "\361\221\312\362\217\311\362\214\310\362\212\307\363\210\307\363\206\306"
- "\363\204\305\363\202\304\364\200\304\364~\303\364|\302\364z\301\365x\301"
- "\365v\300\365t\277\366q\276\366o\276\366m\275\366k\274\367i\273\367g\273"
- "\367d\272\367b\271\370_\270\370]\270\370\204\0\0\0\25\267\327\355\271\327"
- "\355\273\330\354\275\331\354\277\331\354\302\332\354\304\333\353\306\334"
- "\353\310\334\353\312\335\353\314\336\352\317\337\352\321\337\352\323\340"
- "\352\325\341\351\327\342\351\331\342\351\333\343\351\335\344\350\337\344"
- "\350\341\345\350\203\342\345\350>\341\345\350\337\344\350\335\344\350\333"
- "\343\351\331\342\351\327\342\351\325\341\351\323\340\352\321\337\352\317"
- "\337\352\314\336\352\312\335\353\310\334\353\306\334\353\304\333\353\302"
- "\332\354\277\331\354\275\331\354\273\330\354\271\327\355\267\327\355\264"
- "\326\355\262\325\356\260\324\356\255\323\356\253\323\356\251\322\357\247"
- "\321\357\245\320\357\243\320\360\241\317\360\236\316\360\234\315\360\232"
- "\315\361\230\314\361\226\313\361\224\312\361\221\312\362\217\311\362\215"
- "\310\362\213\307\362\211\307\363\206\306\363\204\305\363\202\304\364\200"
- "\304\364~\303\364|\302\364z\301\365x\301\365v\300\365t\277\366q\276\366o"
- "\276\366m\275\366k\274\367i\273\367g\273\367d\272\367b\271\370`\270\370^"
- "\270\370\204\0\0\0V\267\327\355\271\327\355\273\330\354\275\331\354\277\331"
- "\354\302\332\354\304\333\353\306\334\353\310\334\353\312\335\353\314\336"
- "\352\317\337\352\321\337\352\323\340\352\325\341\351\327\342\351\331\342"
- "\351\333\343\350\336\344\350\340\345\350\342\345\350\343\346\347\344\346"
- "\347\343\346\347\342\345\350\340\345\350\336\344\350\333\343\350\331\342"
- "\351\327\342\351\325\341\351\323\340\352\321\337\352\317\337\352\314\336"
- "\352\312\335\353\310\334\353\306\334\353\304\333\353\302\332\354\277\331"
- "\354\275\331\354\273\330\354\271\327\355\267\327\355\265\326\355\263\325"
- "\356\260\324\356\256\324\356\253\323\356\251\322\357\247\321\357\245\320"
- "\357\243\320\360\241\317\360\236\316\360\234\315\360\232\315\361\230\314"
- "\361\226\313\361\224\312\361\221\312\362\217\311\362\215\310\362\213\307"
- "\362\211\307\363\207\306\363\205\305\363\202\304\364\200\304\364~\303\364"
- "|\302\364z\301\365x\301\365v\300\365t\277\366q\276\366o\276\366m\275\366"
- "k\274\367i\273\367g\273\367d\272\367b\271\370`\270\370^\270\370\204\0\0\0"
- "V\267\327\355\271\327\355\273\330\354\275\331\354\277\331\354\302\332\354"
- "\304\333\353\306\334\353\310\334\353\312\335\353\314\336\352\317\337\352"
- "\321\337\352\323\340\352\326\341\351\330\342\351\332\343\351\334\343\350"
- "\336\344\350\341\345\350\343\346\350\345\346\347\346\347\347\345\346\347"
- "\343\346\350\341\345\350\336\344\350\334\343\350\332\343\351\330\342\351"
- "\326\341\351\323\340\352\321\337\352\317\337\352\314\336\352\312\335\353"
- "\310\334\353\306\334\353\304\333\353\302\332\354\277\331\354\275\331\354"
- "\273\330\354\271\327\355\267\327\355\265\326\355\263\325\356\260\324\356"
- "\256\324\356\254\323\356\251\322\357\247\321\357\245\320\357\243\320\360"
- "\241\317\360\236\316\360\234\315\360\232\315\361\230\314\361\226\313\361"
- "\224\312\361\221\312\362\217\311\362\215\310\362\213\307\362\211\307\363"
- "\207\306\363\205\305\363\202\305\364\200\304\364~\303\364|\302\364z\301\365"
- "x\301\365v\300\365t\277\366q\276\366o\276\366m\275\366k\274\367i\273\367"
- "g\273\367d\272\367b\271\370`\270\370^\270\370\204\0\0\0V\267\327\355\271"
- "\327\355\273\330\354\275\331\354\277\331\354\302\332\354\304\333\353\306"
- "\334\353\310\334\353\312\335\353\314\336\352\317\337\352\321\337\352\323"
- "\340\352\326\341\351\330\342\351\332\343\351\334\343\350\336\344\350\341"
- "\345\350\343\346\350\345\346\347\346\347\347\345\346\347\343\346\350\341"
- "\345\350\336\344\350\334\343\350\332\343\351\330\342\351\326\341\351\323"
- "\340\352\321\337\352\317\337\352\314\336\352\312\335\353\310\334\353\306"
- "\334\353\304\333\353\302\332\354\277\331\354\275\331\354\273\330\354\271"
- "\327\355\267\327\355\265\326\355\263\325\356\260\324\356\256\324\356\254"
- "\323\356\251\322\357\247\321\357\245\320\357\243\320\360\241\317\360\236"
- "\316\360\234\315\360\232\315\361\230\314\361\226\313\361\224\312\361\221"
- "\312\362\217\311\362\215\310\362\213\307\362\211\307\363\207\306\363\205"
- "\305\363\202\305\364\200\304\364~\303\364|\302\364z\301\365x\301\365v\300"
- "\365t\277\366q\276\366o\276\366m\275\366k\274\367i\273\367g\273\367d\272"
- "\367b\271\370`\270\370^\270\370\204\0\0\0V\267\327\355\271\327\355\273\330"
- "\354\275\331\354\277\331\354\302\332\354\304\333\353\306\334\353\310\334"
- "\353\312\335\353\314\336\352\317\337\352\321\337\352\323\340\352\325\341"
- "\351\327\342\351\331\342\351\333\343\350\336\344\350\340\345\350\342\345"
- "\350\343\346\347\344\346\347\343\346\347\342\345\350\340\345\350\336\344"
- "\350\333\343\350\331\342\351\327\342\351\325\341\351\323\340\352\321\337"
- "\352\317\337\352\314\336\352\312\335\353\310\334\353\306\334\353\304\333"
- "\353\302\332\354\277\331\354\275\331\354\273\330\354\271\327\355\267\327"
- "\355\265\326\355\263\325\356\260\324\356\256\324\356\253\323\356\251\322"
- "\357\247\321\357\245\320\357\243\320\360\241\317\360\236\316\360\234\315"
- "\360\232\315\361\230\314\361\226\313\361\224\312\361\221\312\362\217\311"
- "\362\215\310\362\213\307\362\211\307\363\207\306\363\205\305\363\202\304"
- "\364\200\304\364~\303\364|\302\364z\301\365x\301\365v\300\365t\277\366q\276"
- "\366o\276\366m\275\366k\274\367i\273\367g\273\367d\272\367b\271\370`\270"
- "\370^\270\370\204\0\0\0\25\267\327\355\271\327\355\273\330\354\275\331\354"
- "\277\331\354\302\332\354\304\333\353\306\334\353\310\334\353\312\335\353"
- "\314\336\352\317\337\352\321\337\352\323\340\352\325\341\351\327\342\351"
- "\331\342\351\333\343\351\335\344\350\337\344\350\341\345\350\203\342\345"
- "\350>\341\345\350\337\344\350\335\344\350\333\343\351\331\342\351\327\342"
- "\351\325\341\351\323\340\352\321\337\352\317\337\352\314\336\352\312\335"
- "\353\310\334\353\306\334\353\304\333\353\302\332\354\277\331\354\275\331"
- "\354\273\330\354\271\327\355\267\327\355\264\326\355\262\325\356\260\324"
- "\356\255\323\356\253\323\356\251\322\357\247\321\357\245\320\357\243\320"
- "\360\241\317\360\236\316\360\234\315\360\232\315\361\230\314\361\226\313"
- "\361\224\312\361\221\312\362\217\311\362\215\310\362\213\307\362\211\307"
- "\363\206\306\363\204\305\363\202\304\364\200\304\364~\303\364|\302\364z\301"
- "\365x\301\365v\300\365t\277\366q\276\366o\276\366m\275\366k\274\367i\273"
- "\367g\273\367d\272\367b\271\370`\270\370^\270\370\204\0\0\0V\266\326\355"
- "\270\327\355\272\330\355\275\330\354\277\331\354\301\332\354\303\333\353"
- "\305\333\353\307\334\353\312\335\353\314\336\352\316\336\352\320\337\352"
- "\322\340\352\324\341\351\326\341\351\331\342\351\332\343\351\334\343\350"
- "\336\344\350\337\344\350\340\345\350\341\345\350\340\345\350\337\344\350"
- "\336\344\350\334\343\350\332\343\351\331\342\351\326\341\351\324\341\351"
- "\322\340\352\320\337\352\316\336\352\314\336\352\312\335\353\307\334\353"
- "\305\333\353\303\333\353\301\332\354\277\331\354\275\330\354\272\330\355"
- "\270\327\355\266\326\355\264\326\355\262\325\356\260\324\356\255\323\356"
- "\253\323\356\251\322\357\247\321\357\245\320\357\243\320\360\241\317\360"
- "\236\316\360\234\315\360\232\315\361\230\314\361\226\313\361\224\312\361"
- "\221\312\362\217\311\362\214\310\362\212\307\363\210\307\363\206\306\363"
- "\204\305\363\202\304\364\200\304\364~\303\364|\302\364z\301\365x\301\365"
- "v\300\365t\277\366q\276\366o\276\366m\275\366k\274\367i\273\367g\273\367"
- "d\272\367b\271\370_\270\370]\270\370\204\0\0\0\24\266\326\355\270\327\355"
- "\272\330\355\275\330\354\277\331\354\301\332\354\303\333\353\305\333\353"
- "\307\334\353\312\335\353\314\336\352\315\336\352\317\337\352\321\340\352"
- "\324\340\351\326\341\351\327\342\351\331\342\351\333\343\351\334\343\350"
- "\205\336\344\350=\334\343\350\333\343\351\331\342\351\327\342\351\326\341"
- "\351\324\340\351\321\340\352\317\337\352\315\336\352\314\336\352\312\335"
- "\353\307\334\353\305\333\353\303\333\353\301\332\354\277\331\354\275\330"
- "\354\272\330\355\270\327\355\266\326\355\264\326\355\262\325\356\260\324"
- "\356\255\323\356\253\323\356\251\322\357\247\321\357\245\320\357\243\320"
- "\360\241\317\360\236\316\360\234\315\360\231\314\361\227\314\361\225\313"
- "\361\223\312\362\221\311\362\217\311\362\214\310\362\212\307\363\210\307"
- "\363\206\306\363\204\305\363\202\304\364\200\304\364~\303\364|\302\364z\301"
- "\365x\301\365v\300\365t\277\366q\276\366o\276\366m\275\366k\274\367i\273"
- "\367f\272\367d\272\370b\271\370_\270\370]\270\370\204\0\0\0V\265\326\355"
- "\270\327\355\272\327\355\274\330\354\276\331\354\300\332\354\302\332\354"
- "\304\333\353\307\334\353\311\335\353\313\335\353\314\336\352\317\337\352"
- "\321\337\352\323\340\352\324\341\351\326\341\351\330\342\351\331\342\351"
- "\333\343\351\333\343\350\334\343\350\335\344\350\334\343\350\333\343\350"
- "\333\343\351\331\342\351\330\342\351\326\341\351\324\341\351\323\340\352"
- "\321\337\352\317\337\352\314\336\352\313\335\353\311\335\353\307\334\353"
- "\304\333\353\302\332\354\300\332\354\276\331\354\274\330\354\272\327\355"
- "\270\327\355\265\326\355\263\325\355\261\325\356\257\324\356\255\323\356"
- "\253\322\357\250\322\357\246\321\357\244\320\357\242\317\360\240\317\360"
- "\236\316\360\234\315\360\231\314\361\227\314\361\225\313\361\223\312\362"
- "\221\311\362\217\311\362\214\310\362\212\307\363\210\307\363\206\306\363"
- "\204\305\363\202\304\364\200\304\364~\303\364|\302\364z\301\365x\301\365"
- "v\300\365t\277\366q\276\366o\275\366l\275\366j\274\367h\273\367f\272\367"
- "d\272\370b\271\370_\270\370]\270\370\204\0\0\0\25\265\326\355\270\327\355"
- "\272\327\355\274\330\354\275\331\354\277\331\354\302\332\354\304\333\353"
- "\306\334\353\310\334\353\312\335\353\314\336\352\316\336\352\320\337\352"
- "\321\340\352\324\340\351\325\341\351\326\341\351\330\342\351\331\342\351"
- "\332\343\351\203\333\343\351>\332\343\351\331\342\351\330\342\351\326\341"
- "\351\325\341\351\324\340\351\321\340\352\320\337\352\316\336\352\314\336"
- "\352\312\335\353\310\334\353\306\334\353\304\333\353\302\332\354\277\331"
- "\354\275\331\354\274\330\354\272\327\355\270\327\355\265\326\355\263\325"
- "\355\261\325\356\257\324\356\255\323\356\253\322\357\250\322\357\246\321"
- "\357\244\320\357\242\317\360\240\317\360\236\316\360\234\315\360\231\314"
- "\361\227\314\361\225\313\361\223\312\362\221\311\362\217\311\362\214\310"
- "\362\212\307\363\210\307\363\206\306\363\204\305\363\202\304\364\200\303"
- "\364~\303\364{\302\365y\301\365w\300\365u\300\365s\277\366q\276\366o\275"
- "\366l\275\366j\274\367h\273\367f\272\367d\272\370b\271\370_\270\370]\270"
- "\370\204\0\0\0\25\265\326\355\267\327\355\271\327\355\273\330\354\275\331"
- "\354\277\331\354\301\332\354\303\333\353\305\333\353\307\334\353\311\335"
- "\353\313\335\353\315\336\352\317\337\352\321\337\352\322\340\352\324\340"
- "\351\325\341\351\326\341\351\327\342\351\330\342\351\203\331\342\351>\330"
- "\342\351\327\342\351\326\341\351\325\341\351\324\340\351\322\340\352\321"
- "\337\352\317\337\352\315\336\352\313\335\353\311\335\353\307\334\353\305"
- "\333\353\303\333\353\301\332\354\277\331\354\275\331\354\273\330\354\271"
- "\327\355\267\327\355\265\326\355\263\325\356\260\324\356\256\324\356\254"
- "\323\356\252\322\357\250\321\357\246\321\357\243\320\357\241\317\360\237"
- "\316\360\235\316\360\233\315\361\231\314\361\226\313\361\224\313\361\222"
- "\312\362\220\311\362\216\310\362\214\310\362\212\307\363\207\306\363\205"
- "\306\363\203\305\363\201\304\364\200\303\364~\303\364{\302\365y\301\365w"
- "\300\365u\300\365s\277\366q\276\366o\275\366l\275\366j\274\367h\273\367f"
- "\272\367d\272\370b\271\370_\270\370]\270\370\204\0\0\0\23\264\326\355\266"
- "\326\355\270\327\355\272\330\355\275\330\354\277\331\354\300\332\354\302"
- "\332\354\304\333\353\307\334\353\310\334\353\312\335\353\314\336\352\316"
- "\336\352\317\337\352\321\337\352\322\340\352\324\340\351\325\341\351\202"
- "\326\341\351\203\327\342\351\202\326\341\351<\325\341\351\324\340\351\322"
- "\340\352\321\337\352\317\337\352\316\336\352\314\336\352\312\335\353\310"
- "\334\353\307\334\353\304\333\353\302\332\354\300\332\354\277\331\354\275"
- "\330\354\272\330\355\270\327\355\266\326\355\264\326\355\262\325\356\260"
- "\324\356\255\323\356\254\323\356\252\322\357\250\321\357\246\321\357\243"
- "\320\357\241\317\360\237\316\360\235\316\360\233\315\361\231\314\361\226"
- "\313\361\224\313\361\222\312\362\220\311\362\216\310\362\214\310\362\212"
- "\307\363\207\306\363\205\306\363\203\305\363\201\304\364\200\303\364~\303"
- "\364{\302\365y\301\365w\300\365u\300\365s\277\366q\276\366o\275\366l\275"
- "\366j\274\367h\273\367e\272\367c\271\370a\271\370_\270\370]\267\370\204\0"
- "\0\0\23\263\325\355\265\326\355\270\327\355\272\327\355\274\330\354\275\331"
- "\354\277\331\354\302\332\354\304\333\353\305\333\353\307\334\353\311\335"
- "\353\313\335\353\314\336\352\316\336\352\317\337\352\321\337\352\322\340"
- "\352\323\340\352\202\324\341\351\203\325\341\351\202\324\341\351<\323\340"
- "\352\322\340\352\321\337\352\317\337\352\316\336\352\314\336\352\313\335"
- "\353\311\335\353\307\334\353\305\333\353\304\333\353\302\332\354\277\331"
- "\354\275\331\354\274\330\354\272\327\355\270\327\355\265\326\355\263\325"
- "\355\262\325\356\260\324\356\255\323\356\253\323\356\251\322\357\247\321"
- "\357\245\320\357\243\320\360\241\317\360\236\316\360\234\315\360\232\315"
- "\361\230\314\361\226\313\361\224\312\361\221\312\362\217\311\362\215\310"
- "\362\213\307\362\211\307\363\207\306\363\205\305\363\202\305\364\200\304"
- "\364\177\303\364}\302\364{\302\365y\301\365v\300\365t\277\365r\277\366p\276"
- "\366n\275\366l\274\367i\274\367g\273\367e\272\367c\271\370a\271\370_\270"
- "\370]\267\370\204\0\0\0\24\263\325\356\265\326\355\267\327\355\271\327\355"
- "\273\330\354\275\330\354\277\331\354\301\332\354\302\332\354\304\333\353"
- "\306\334\353\310\334\353\312\335\353\313\335\353\314\336\352\316\336\352"
- "\317\337\352\321\337\352\321\340\352\322\340\352\202\323\340\352\1\324\340"
- "\351\202\323\340\352=\322\340\352\321\340\352\321\337\352\317\337\352\316"
- "\336\352\314\336\352\313\335\353\312\335\353\310\334\353\306\334\353\304"
- "\333\353\302\332\354\301\332\354\277\331\354\275\330\354\273\330\354\271"
- "\327\355\267\327\355\265\326\355\263\325\356\261\325\356\257\324\356\255"
- "\323\356\253\322\357\250\322\357\246\321\357\244\320\357\242\317\360\240"
- "\317\360\236\316\360\234\315\360\232\315\361\230\314\361\226\313\361\224"
- "\312\361\221\312\362\217\311\362\215\310\362\213\307\362\211\307\363\207"
- "\306\363\205\305\363\202\305\364\200\304\364\177\303\364}\302\364{\302\365"
- "y\301\365v\300\365t\277\365r\277\366p\276\366n\275\366l\274\367i\274\367"
- "g\273\367e\272\367c\271\370a\271\370_\270\370]\267\370\204\0\0\0\23\262\325"
- "\356\264\326\355\266\326\355\270\327\355\272\327\355\274\330\354\276\331"
- "\354\277\331\354\302\332\354\303\333\353\305\333\353\307\334\353\310\334"
- "\353\312\335\353\313\335\353\314\336\352\316\336\352\317\337\352\320\337"
- "\352\202\321\337\352\203\321\340\352\202\321\337\352<\320\337\352\317\337"
- "\352\316\336\352\314\336\352\313\335\353\312\335\353\310\334\353\307\334"
- "\353\305\333\353\303\333\353\302\332\354\277\331\354\276\331\354\274\330"
- "\354\272\327\355\270\327\355\266\326\355\264\326\355\262\325\356\260\324"
- "\356\256\324\356\254\323\356\252\322\357\250\321\357\246\321\357\243\320"
- "\357\242\317\360\240\317\360\236\316\360\234\315\360\231\314\361\227\314"
- "\361\225\313\361\223\312\362\221\311\362\217\311\362\214\310\362\212\307"
- "\363\210\307\363\206\306\363\204\305\363\202\304\364\200\304\364~\303\364"
- "|\302\364z\301\365x\301\365v\300\365t\277\366q\276\366o\276\366m\275\366"
- "k\274\367i\273\367g\273\367d\272\367b\271\370`\270\370^\270\370\\\267\371"
- "\204\0\0\0\23\261\325\356\263\325\355\265\326\355\267\327\355\271\327\355"
- "\273\330\354\275\330\354\277\331\354\300\332\354\302\332\354\304\333\353"
- "\305\333\353\307\334\353\310\334\353\312\335\353\313\335\353\314\336\352"
- "\315\336\352\316\336\352\207\317\337\352<\316\336\352\315\336\352\314\336"
- "\352\313\335\353\312\335\353\310\334\353\307\334\353\305\333\353\304\333"
- "\353\302\332\354\300\332\354\277\331\354\275\330\354\273\330\354\271\327"
- "\355\267\327\355\265\326\355\263\325\355\261\325\356\260\324\356\255\323"
- "\356\253\323\356\251\322\357\247\321\357\245\320\357\243\320\357\241\317"
- "\360\237\316\360\235\316\360\233\315\361\231\314\361\226\313\361\224\313"
- "\361\222\312\362\220\311\362\217\311\362\214\310\362\212\307\363\210\307"
- "\363\206\306\363\204\305\363\202\304\364\200\304\364~\303\364|\302\364z\301"
- "\365x\301\365v\300\365t\277\366q\276\366o\276\366m\275\366k\274\367i\273"
- "\367g\273\367d\272\367b\271\370`\270\370^\270\370\\\267\371\204\0\0\0\17"
- "\260\324\356\263\325\356\264\326\355\266\326\355\270\327\355\272\327\355"
- "\274\330\354\275\331\354\277\331\354\301\332\354\302\332\354\304\333\353"
- "\305\333\353\307\334\353\310\334\353\202\312\335\353\202\314\336\352\202"
- "\315\336\352\203\316\336\352\202\315\336\352\202\314\336\352\202\312\335"
- "\3538\310\334\353\307\334\353\305\333\353\304\333\353\302\332\354\301\332"
- "\354\277\331\354\275\331\354\274\330\354\272\327\355\270\327\355\266\326"
- "\355\264\326\355\263\325\356\260\324\356\256\324\356\255\323\356\253\322"
- "\357\250\322\357\246\321\357\245\320\357\243\320\360\241\317\360\236\316"
- "\360\234\315\360\232\315\361\230\314\361\226\313\361\224\313\361\222\312"
- "\362\220\311\362\216\310\362\214\310\362\212\307\363\207\306\363\205\306"
- "\363\203\305\363\201\304\364\200\303\364~\303\364{\302\365y\301\365w\300"
- "\365u\300\365s\277\366q\276\366o\275\366l\275\366j\274\367h\273\367f\272"
- "\367d\272\370b\271\370_\270\370]\270\370[\267\371\204\0\0\0\16\260\324\356"
- "\262\325\356\263\325\355\265\326\355\267\327\355\271\327\355\272\330\355"
- "\275\330\354\276\331\354\277\331\354\301\332\354\302\332\354\304\333\353"
- "\305\333\353\202\307\334\353\1\311\335\353\202\312\335\353\1\313\335\353"
- "\205\314\336\352\1\313\335\353\202\312\335\353\1\311\335\353\202\307\334"
- "\3537\305\333\353\304\333\353\302\332\354\301\332\354\277\331\354\276\331"
- "\354\275\330\354\272\330\355\271\327\355\267\327\355\265\326\355\263\325"
- "\355\262\325\356\260\324\356\255\323\356\253\323\356\252\322\357\250\321"
- "\357\246\321\357\243\320\357\242\317\360\240\317\360\236\316\360\234\315"
- "\360\231\314\361\227\314\361\226\313\361\224\312\361\221\312\362\217\311"
- "\362\215\310\362\213\307\362\211\307\363\207\306\363\205\305\363\202\305"
- "\364\200\304\364\200\303\364~\303\364{\302\365y\301\365w\300\365u\300\365"
- "s\277\366q\276\366o\275\366l\275\366j\274\367h\273\367f\272\367d\272\370"
- "b\271\370_\270\370]\270\370[\267\371\204\0\0\0\22\257\324\356\260\324\356"
- "\263\325\356\264\326\355\266\326\355\270\327\355\272\327\355\273\330\354"
- "\275\330\354\276\331\354\277\331\354\301\332\354\302\332\354\304\333\353"
- "\305\333\353\306\334\353\307\334\353\310\334\353\202\311\335\353\205\312"
- "\335\353\202\311\335\353;\310\334\353\307\334\353\306\334\353\305\333\353"
- "\304\333\353\302\332\354\301\332\354\277\331\354\276\331\354\275\330\354"
- "\273\330\354\272\327\355\270\327\355\266\326\355\264\326\355\263\325\356"
- "\260\324\356\257\324\356\255\323\356\253\322\357\251\322\357\247\321\357"
- "\245\320\357\243\320\360\241\317\360\237\316\360\235\316\360\233\315\361"
- "\231\314\361\227\314\361\225\313\361\223\312\362\221\311\362\217\311\362"
- "\214\310\362\212\307\363\210\307\363\207\306\363\205\305\363\202\305\364"
- "\200\304\364\177\303\364}\302\364{\302\365y\301\365v\300\365t\277\365r\277"
- "\366p\276\366n\275\366l\274\367i\274\367g\273\367e\272\367c\271\370a\271"
- "\370_\270\370]\267\370Z\267\371\204\0\0\0\22\255\323\356\260\324\356\261"
- "\325\356\263\325\355\265\326\355\267\327\355\270\327\355\272\327\355\273"
- "\330\354\275\330\354\276\331\354\277\331\354\301\332\354\302\332\354\303"
- "\333\353\304\333\353\305\333\353\306\334\353\203\307\334\353\203\310\334"
- "\353\203\307\334\353;\306\334\353\305\333\353\304\333\353\303\333\353\302"
- "\332\354\301\332\354\277\331\354\276\331\354\275\330\354\273\330\354\272"
- "\327\355\270\327\355\267\327\355\265\326\355\263\325\355\261\325\356\260"
- "\324\356\255\323\356\254\323\356\252\322\357\250\321\357\246\321\357\244"
- "\320\357\242\317\360\241\317\360\236\316\360\234\315\360\232\315\361\230"
- "\314\361\226\313\361\224\313\361\222\312\362\220\311\362\216\310\362\214"
- "\310\362\212\307\363\210\307\363\206\306\363\204\305\363\202\304\364\200"
- "\304\364~\303\364|\302\364z\301\365x\301\365v\300\365t\277\366q\276\366p"
- "\276\366n\275\366l\274\367i\274\367g\273\367e\272\367c\271\370a\271\370_"
- "\270\370]\267\370Z\267\371\204\0\0\0\16\255\323\356\256\324\356\260\324\356"
- "\262\325\356\263\325\355\265\326\355\267\327\355\270\327\355\272\327\355"
- "\273\330\354\275\330\354\276\331\354\277\331\354\301\332\354\202\302\332"
- "\354\202\304\333\353\202\305\333\353\205\306\334\353\202\305\333\353\202"
- "\304\333\353\202\302\332\3547\301\332\354\277\331\354\276\331\354\275\330"
- "\354\273\330\354\272\327\355\270\327\355\267\327\355\265\326\355\263\325"
- "\355\262\325\356\260\324\356\256\324\356\255\323\356\253\322\357\251\322"
- "\357\247\321\357\245\320\357\243\320\357\241\317\360\237\316\360\236\316"
- "\360\234\315\360\231\314\361\227\314\361\226\313\361\224\312\361\221\312"
- "\362\217\311\362\215\310\362\213\307\362\212\307\363\207\306\363\205\306"
- "\363\203\305\363\201\304\364\200\303\364~\303\364{\302\365y\301\365x\301"
- "\365v\300\365t\277\366q\276\366o\276\366m\275\366k\274\367i\273\367g\273"
- "\367d\272\367b\271\370`\270\370^\270\370\\\267\371Z\266\371\204\0\0\0\20"
- "\253\323\356\255\323\356\257\324\356\260\324\356\263\325\356\264\326\355"
- "\265\326\355\267\327\355\270\327\355\272\327\355\273\330\354\275\330\354"
- "\276\331\354\277\331\354\300\332\354\301\332\354\202\302\332\354\1\303\333"
- "\353\207\304\333\353\1\303\333\353\202\302\332\3549\301\332\354\300\332\354"
- "\277\331\354\276\331\354\275\330\354\273\330\354\272\327\355\270\327\355"
- "\267\327\355\265\326\355\264\326\355\263\325\356\260\324\356\257\324\356"
- "\255\323\356\253\323\356\252\322\357\250\321\357\246\321\357\244\320\357"
- "\242\317\360\241\317\360\236\316\360\234\315\360\233\315\361\231\314\361"
- "\226\313\361\224\313\361\223\312\362\221\311\362\217\311\362\214\310\362"
- "\212\307\363\211\307\363\207\306\363\205\305\363\202\305\364\200\304\364"
- "\177\303\364}\302\364{\302\365y\301\365w\300\365u\300\365s\277\366q\276\366"
- "o\275\366l\275\366j\274\367h\273\367f\272\367d\272\370b\271\370`\270\370"
- "^\270\370\\\267\371Z\266\371\204\0\0\0\22\253\322\357\254\323\356\255\323"
- "\356\260\324\356\261\325\356\263\325\356\264\326\355\265\326\355\267\327"
- "\355\270\327\355\272\327\355\273\330\354\275\330\354\275\331\354\276\331"
- "\354\277\331\354\300\332\354\301\332\354\211\302\332\354;\301\332\354\300"
- "\332\354\277\331\354\276\331\354\275\331\354\275\330\354\273\330\354\272"
- "\327\355\270\327\355\267\327\355\265\326\355\264\326\355\263\325\356\261"
- "\325\356\260\324\356\255\323\356\254\323\356\253\322\357\250\322\357\247"
- "\321\357\245\320\357\243\320\357\241\317\360\237\316\360\236\316\360\234"
- "\315\360\231\314\361\230\314\361\226\313\361\224\312\361\222\312\362\220"
- "\311\362\216\310\362\214\310\362\212\307\363\210\307\363\206\306\363\204"
- "\305\363\202\304\364\200\304\364~\303\364}\302\364{\302\365y\301\365v\300"
- "\365t\277\365r\277\366p\276\366n\275\366l\274\367i\274\367h\273\367f\272"
- "\367d\272\370b\271\370_\270\370]\270\370[\267\371Y\266\371\204\0\0\0\21\251"
- "\322\357\253\322\357\255\323\356\256\324\356\260\324\356\261\325\356\263"
- "\325\356\264\326\355\265\326\355\267\327\355\270\327\355\272\327\355\272"
- "\330\355\274\330\354\275\330\354\275\331\354\276\331\354\202\277\331\354"
- "\207\300\332\354\202\277\331\354:\276\331\354\275\331\354\275\330\354\274"
- "\330\354\272\330\355\272\327\355\270\327\355\267\327\355\265\326\355\264"
- "\326\355\263\325\356\261\325\356\260\324\356\256\324\356\255\323\356\253"
- "\322\357\251\322\357\250\321\357\246\321\357\244\320\357\242\317\360\241"
- "\317\360\236\316\360\234\315\360\233\315\361\231\314\361\227\314\361\225"
- "\313\361\223\312\362\221\311\362\217\311\362\215\310\362\213\307\362\211"
- "\307\363\207\306\363\205\306\363\203\305\363\201\304\364\200\303\364~\303"
- "\364|\302\364z\301\365x\301\365v\300\365t\277\366q\276\366o\276\366n\275"
- "\366l\274\367i\274\367g\273\367e\272\367c\271\370a\271\370_\270\370]\267"
- "\370Z\267\371X\266\371\204\0\0\0\21\250\321\357\252\322\357\253\323\356\255"
- "\323\356\256\324\356\260\324\356\262\325\356\263\325\356\264\326\355\265"
- "\326\355\267\327\355\270\327\355\271\327\355\272\327\355\273\330\354\274"
- "\330\354\275\330\354\202\275\331\354\202\276\331\354\203\277\331\354\202"
- "\276\331\354\202\275\331\354:\275\330\354\274\330\354\273\330\354\272\327"
- "\355\271\327\355\270\327\355\267\327\355\265\326\355\264\326\355\263\325"
- "\356\262\325\356\260\324\356\256\324\356\255\323\356\253\323\356\252\322"
- "\357\250\321\357\246\321\357\245\320\357\243\320\360\241\317\360\237\316"
- "\360\236\316\360\234\315\360\232\315\361\230\314\361\226\313\361\224\313"
- "\361\222\312\362\220\311\362\217\311\362\214\310\362\212\307\363\210\307"
- "\363\207\306\363\205\305\363\202\305\364\200\304\364\177\303\364~\303\364"
- "{\302\365y\301\365w\300\365u\300\365s\277\366q\276\366o\276\366m\275\366"
- "k\274\367i\273\367g\273\367d\272\367b\271\370`\270\370^\270\370\\\267\371"
- "Z\267\371X\266\371\204\0\0\0\14\247\321\357\250\322\357\252\322\357\253\323"
- "\356\255\323\356\257\324\356\260\324\356\261\325\356\263\325\356\264\326"
- "\355\265\326\355\266\326\355\202\270\327\355\4\271\327\355\272\327\355\272"
- "\330\355\273\330\354\202\274\330\354\205\275\330\354\202\274\330\354\4\273"
- "\330\354\272\330\355\272\327\355\271\327\355\202\270\327\3555\266\326\355"
- "\265\326\355\264\326\355\263\325\356\261\325\356\260\324\356\257\324\356"
- "\255\323\356\253\323\356\252\322\357\250\322\357\247\321\357\245\320\357"
- "\243\320\357\242\317\360\240\317\360\236\316\360\234\315\360\233\315\361"
- "\231\314\361\227\314\361\225\313\361\223\312\362\221\312\362\217\311\362"
- "\215\310\362\214\310\362\212\307\363\207\306\363\205\306\363\204\305\363"
- "\202\304\364\200\304\364~\303\364}\302\364{\302\365y\301\365v\300\365t\277"
- "\365r\277\366q\276\366o\275\366l\275\366j\274\367h\273\367f\272\367d\272"
- "\370b\271\370_\270\370^\270\370\\\267\371Z\266\371X\266\371\204\0\0\0\13"
- "\246\321\357\247\321\357\250\322\357\252\322\357\254\323\356\255\323\356"
- "\256\324\356\260\324\356\261\325\356\263\325\356\263\325\355\202\265\326"
- "\355\1\267\327\355\202\270\327\355\1\271\327\355\202\272\327\355\203\272"
- "\330\355\1\273\330\354\203\272\330\355\202\272\327\355\1\271\327\355\202"
- "\270\327\355\1\267\327\355\202\265\326\3554\263\325\355\263\325\356\261\325"
- "\356\260\324\356\257\324\356\255\323\356\254\323\356\252\322\357\250\322"
- "\357\247\321\357\246\321\357\244\320\357\242\317\360\241\317\360\237\316"
- "\360\235\316\360\234\315\360\231\314\361\230\314\361\226\313\361\224\313"
- "\361\222\312\362\220\311\362\217\311\362\214\310\362\212\307\363\211\307"
- "\363\207\306\363\205\305\363\203\305\363\201\304\364\200\303\364~\303\364"
- "{\302\365z\301\365x\301\365v\300\365t\277\366q\276\366p\276\366n\275\366"
- "l\274\367i\274\367g\273\367e\272\367c\271\370b\271\370_\270\370]\270\370"
- "[\267\371Y\266\371W\265\371\204\0\0\0\15\244\320\357\246\321\357\247\321"
- "\357\251\322\357\253\322\357\254\323\356\255\323\356\256\324\356\260\324"
- "\356\261\325\356\262\325\356\263\325\355\264\326\355\202\265\326\355\2\266"
- "\326\355\267\327\355\203\270\327\355\205\271\327\355\203\270\327\355\2\267"
- "\327\355\266\326\355\202\265\326\3556\264\326\355\263\325\355\262\325\356"
- "\261\325\356\260\324\356\256\324\356\255\323\356\254\323\356\253\322\357"
- "\251\322\357\247\321\357\246\321\357\244\320\357\243\320\360\241\317\360"
- "\237\316\360\236\316\360\234\315\360\232\315\361\231\314\361\226\313\361"
- "\225\313\361\223\312\362\221\312\362\217\311\362\215\310\362\214\310\362"
- "\212\307\363\207\306\363\206\306\363\204\305\363\202\304\364\200\304\364"
- "\177\303\364}\302\364{\302\365y\301\365w\300\365u\300\365s\277\366q\276\366"
- "o\276\366m\275\366k\274\367i\273\367g\273\367d\272\367c\271\370a\271\370"
- "_\270\370]\267\370Z\267\371X\266\371V\265\371\204\0\0\0\17\243\320\360\244"
- "\320\357\246\321\357\250\321\357\251\322\357\253\322\357\253\323\356\255"
- "\323\356\256\324\356\257\324\356\260\324\356\261\325\356\263\325\356\263"
- "\325\355\264\326\355\202\265\326\355\202\266\326\355\207\267\327\355\202"
- "\266\326\355\202\265\326\3558\264\326\355\263\325\355\263\325\356\261\325"
- "\356\260\324\356\257\324\356\256\324\356\255\323\356\253\323\356\253\322"
- "\357\251\322\357\250\321\357\246\321\357\244\320\357\243\320\360\241\317"
- "\360\240\317\360\236\316\360\234\315\360\233\315\361\231\314\361\227\314"
- "\361\226\313\361\224\312\361\222\312\362\220\311\362\217\311\362\214\310"
- "\362\212\307\363\211\307\363\207\306\363\205\306\363\203\305\363\201\304"
- "\364\200\303\364~\303\364|\302\364z\301\365y\301\365v\300\365t\277\365r\277"
- "\366p\276\366o\275\366l\275\366j\274\367h\273\367f\272\367d\272\370b\271"
- "\370`\270\370^\270\370\\\267\371Z\266\371X\266\371U\265\371\204\0\0\0\10"
- "\241\317\360\243\320\357\245\320\357\246\321\357\250\321\357\250\322\357"
- "\252\322\357\253\323\356\202\255\323\356\1\257\324\356\202\260\324\356\1"
- "\261\325\356\202\263\325\356\2\263\325\355\264\326\355\211\265\326\355\2"
- "\264\326\355\263\325\355\202\263\325\356\1\261\325\356\202\260\324\356\1"
- "\257\324\356\202\255\323\3561\253\323\356\252\322\357\250\322\357\250\321"
- "\357\246\321\357\245\320\357\243\320\357\241\317\360\240\317\360\236\316"
- "\360\235\316\360\234\315\360\231\314\361\230\314\361\226\313\361\224\313"
- "\361\223\312\362\221\311\362\217\311\362\215\310\362\214\310\362\212\307"
- "\363\207\306\363\206\306\363\204\305\363\202\305\364\200\304\364\177\303"
- "\364~\303\364{\302\365y\301\365w\300\365v\300\365t\277\366q\276\366o\276"
- "\366n\275\366l\274\367i\274\367g\273\367e\272\367d\272\370b\271\370_\270"
- "\370]\270\370[\267\371Y\266\371W\265\371U\265\371\204\0\0\0\15\241\317\360"
- "\242\317\360\243\320\357\245\320\357\246\321\357\247\321\357\250\322\357"
- "\252\322\357\253\322\357\254\323\356\255\323\356\256\324\356\257\324\356"
- "\202\260\324\356\1\261\325\356\202\262\325\356\1\263\325\356\207\263\325"
- "\355\1\263\325\356\202\262\325\356\1\261\325\356\202\260\324\3566\257\324"
- "\356\256\324\356\255\323\356\254\323\356\253\322\357\252\322\357\250\322"
- "\357\247\321\357\246\321\357\245\320\357\243\320\357\242\317\360\241\317"
- "\360\236\316\360\235\316\360\234\315\360\232\315\361\231\314\361\226\313"
- "\361\225\313\361\224\312\361\221\312\362\220\311\362\216\310\362\214\310"
- "\362\212\307\363\211\307\363\207\306\363\205\305\363\203\305\363\201\304"
- "\364\200\304\364~\303\364|\302\364{\302\365y\301\365v\300\365t\277\365s\277"
- "\366q\276\366o\275\366l\275\366k\274\367i\273\367g\273\367d\272\367c\271"
- "\370a\271\370_\270\370]\267\370Z\267\371X\266\371V\265\371U\265\371\204\0"
- "\0\0\16\237\316\360\241\317\360\242\317\360\243\320\357\244\320\357\246\321"
- "\357\247\321\357\250\322\357\251\322\357\253\322\357\253\323\356\254\323"
- "\356\255\323\356\256\324\356\202\257\324\356\203\260\324\356\207\261\325"
- "\356\203\260\324\356\202\257\324\3567\256\324\356\255\323\356\254\323\356"
- "\253\323\356\253\322\357\251\322\357\250\322\357\247\321\357\246\321\357"
- "\244\320\357\243\320\357\242\317\360\241\317\360\237\316\360\236\316\360"
- "\234\315\360\232\315\361\231\314\361\227\314\361\226\313\361\224\312\361"
- "\222\312\362\221\311\362\217\311\362\215\310\362\213\307\362\212\307\363"
- "\207\306\363\206\306\363\204\305\363\202\305\364\200\304\364\177\303\364"
- "~\303\364{\302\365y\301\365x\301\365v\300\365t\277\366r\277\366p\276\366"
- "n\275\366l\274\367j\274\367h\273\367f\272\367d\272\370b\271\370`\270\370"
- "^\270\370\\\267\371Z\266\371X\266\371V\265\371T\264\372\204\0\0\0\2\236\316"
- "\360\237\316\360\202\241\317\360\2\243\320\360\244\320\357\202\246\321\357"
- "\6\250\321\357\250\322\357\252\322\357\253\322\357\253\323\356\254\323\356"
- "\202\255\323\356\202\256\324\356\202\257\324\356\205\260\324\356\202\257"
- "\324\356\202\256\324\356\202\255\323\356\6\254\323\356\253\323\356\253\322"
- "\357\252\322\357\250\322\357\250\321\357\202\246\321\357\2\244\320\357\243"
- "\320\360\202\241\317\360+\237\316\360\236\316\360\234\315\360\233\315\361"
- "\231\314\361\227\314\361\226\313\361\224\313\361\223\312\362\221\311\362"
- "\217\311\362\216\310\362\214\310\362\212\307\363\210\307\363\207\306\363"
- "\205\305\363\203\305\363\201\304\364\200\304\364~\303\364|\302\364{\302\365"
- "y\301\365v\300\365u\300\365s\277\366q\276\366o\276\366m\275\366k\274\367"
- "i\273\367g\273\367e\272\367c\271\370a\271\370_\270\370]\270\370[\267\371"
- "Y\266\371W\265\371U\265\371S\264\372\204\0\0\0\16\234\315\360\236\316\360"
- "\237\316\360\240\317\360\241\317\360\243\320\360\243\320\357\245\320\357"
- "\246\321\357\247\321\357\250\321\357\250\322\357\252\322\357\253\322\357"
- "\202\253\323\356\1\254\323\356\213\255\323\356\1\254\323\356\202\253\323"
- "\3567\253\322\357\252\322\357\250\322\357\250\321\357\247\321\357\246\321"
- "\357\245\320\357\243\320\357\243\320\360\241\317\360\240\317\360\237\316"
- "\360\236\316\360\234\315\360\233\315\361\231\314\361\230\314\361\226\313"
- "\361\224\313\361\223\312\362\221\312\362\220\311\362\216\310\362\214\310"
- "\362\212\307\363\211\307\363\207\306\363\205\306\363\204\305\363\202\304"
- "\364\200\304\364\177\303\364~\303\364{\302\365y\301\365x\301\365v\300\365"
- "t\277\366r\277\366p\276\366n\275\366l\275\366j\274\367h\273\367g\273\367"
- "d\272\367b\271\370`\270\370_\270\370]\267\370Z\267\371X\266\371V\265\371"
- "U\265\371R\264\372\204\0\0\0\11\233\315\361\234\315\360\235\316\360\236\316"
- "\360\240\317\360\241\317\360\242\317\360\243\320\357\244\320\357\202\246"
- "\321\357\5\247\321\357\250\321\357\250\322\357\251\322\357\252\322\357\202"
- "\253\322\357\203\253\323\356\203\254\323\356\203\253\323\356\202\253\322"
- "\357\5\252\322\357\251\322\357\250\322\357\250\321\357\247\321\357\202\246"
- "\321\3572\244\320\357\243\320\357\242\317\360\241\317\360\240\317\360\236"
- "\316\360\235\316\360\234\315\360\233\315\361\231\314\361\230\314\361\226"
- "\313\361\225\313\361\223\312\362\221\312\362\220\311\362\217\311\362\215"
- "\310\362\213\307\362\212\307\363\207\306\363\206\306\363\205\305\363\202"
- "\305\364\201\304\364\200\303\364~\303\364|\302\364{\302\365y\301\365v\300"
- "\365u\300\365s\277\366q\276\366o\276\366m\275\366l\274\367i\274\367g\273"
- "\367e\272\367d\272\370b\271\370_\270\370]\270\370\\\267\371Z\266\371X\266"
- "\371U\265\371T\264\372R\264\372\204\0\0\0\6\231\314\361\233\315\361\234\315"
- "\360\235\316\360\236\316\360\237\316\360\202\241\317\360\3\243\320\360\243"
- "\320\357\244\320\357\202\246\321\357\1\247\321\357\202\250\321\357\1\250"
- "\322\357\202\251\322\357\207\252\322\357\202\251\322\357\1\250\322\357\202"
- "\250\321\357\1\247\321\357\202\246\321\357\3\244\320\357\243\320\357\243"
- "\320\360\202\241\317\360/\237\316\360\236\316\360\235\316\360\234\315\360"
- "\233\315\361\231\314\361\230\314\361\226\313\361\225\313\361\224\312\361"
- "\222\312\362\220\311\362\217\311\362\215\310\362\214\310\362\212\307\363"
- "\210\307\363\207\306\363\205\305\363\203\305\363\202\304\364\200\304\364"
- "\177\303\364}\302\364{\302\365y\301\365x\301\365v\300\365t\277\366r\277\366"
- "p\276\366o\275\366l\275\366j\274\367i\273\367g\273\367d\272\367c\271\370"
- "a\271\370_\270\370]\267\370[\267\371Y\266\371W\265\371U\265\371R\264\372"
- "Q\263\372\204\0\0\0\16\230\314\361\231\314\361\232\315\361\234\315\360\235"
- "\316\360\236\316\360\237\316\360\240\317\360\241\317\360\242\317\360\243"
- "\320\360\243\320\357\244\320\357\245\320\357\202\246\321\357\202\247\321"
- "\357\211\250\321\357\202\247\321\357\202\246\321\3577\245\320\357\244\320"
- "\357\243\320\357\243\320\360\242\317\360\241\317\360\240\317\360\237\316"
- "\360\236\316\360\235\316\360\234\315\360\232\315\361\231\314\361\230\314"
- "\361\226\313\361\225\313\361\224\312\361\222\312\362\221\311\362\217\311"
- "\362\215\310\362\214\310\362\212\307\363\211\307\363\207\306\363\205\306"
- "\363\204\305\363\202\304\364\200\304\364\200\303\364~\303\364|\302\364z\301"
- "\365y\301\365v\300\365u\300\365s\277\366q\276\366o\276\366m\275\366l\274"
- "\367i\274\367g\273\367f\272\367d\272\370b\271\370`\270\370^\270\370\\\267"
- "\371Z\266\371X\266\371V\265\371T\264\372R\264\372P\263\372\204\0\0\0\16\226"
- "\313\361\227\314\361\231\314\361\232\315\361\233\315\361\234\315\360\235"
- "\316\360\236\316\360\237\316\360\240\317\360\241\317\360\242\317\360\243"
- "\320\360\243\320\357\202\244\320\357\1\245\320\357\213\246\321\357\1\245"
- "\320\357\202\244\320\3577\243\320\357\243\320\360\242\317\360\241\317\360"
- "\240\317\360\237\316\360\236\316\360\235\316\360\234\315\360\233\315\361"
- "\232\315\361\231\314\361\227\314\361\226\313\361\225\313\361\224\312\361"
- "\222\312\362\221\311\362\217\311\362\216\310\362\214\310\362\212\307\363"
- "\211\307\363\207\306\363\206\306\363\204\305\363\202\305\364\201\304\364"
- "\200\303\364~\303\364}\302\364{\302\365y\301\365w\300\365v\300\365t\277\366"
- "r\277\366p\276\366n\275\366l\275\366j\274\367i\273\367g\273\367d\272\367"
- "c\271\370a\271\370_\270\370]\270\370[\267\371Y\266\371X\266\371U\265\371"
- "S\264\372Q\263\372P\263\372\204\0\0\0\3\224\313\361\226\313\361\227\314\361"
- "\202\231\314\361\1\233\315\361\202\234\315\360\202\236\316\360\2\237\316"
- "\360\240\317\360\202\241\317\360\1\242\317\360\202\243\320\360\202\243\320"
- "\357\207\244\320\357\202\243\320\357\202\243\320\360\1\242\317\360\202\241"
- "\317\360\2\240\317\360\237\316\360\202\236\316\360\202\234\315\360\1\233"
- "\315\361\202\231\314\361,\227\314\361\226\313\361\224\313\361\224\312\361"
- "\222\312\362\221\311\362\217\311\362\216\310\362\214\310\362\213\307\362"
- "\212\307\363\207\306\363\206\306\363\205\305\363\203\305\363\201\304\364"
- "\200\304\364\177\303\364}\302\364{\302\365z\301\365x\301\365v\300\365t\277"
- "\365s\277\366q\276\366o\276\366m\275\366l\274\367i\274\367g\273\367f\272"
- "\367d\272\370b\271\370`\270\370^\270\370\\\267\371Z\267\371X\266\371V\265"
- "\371U\265\371R\264\372P\263\372N\262\372\204\0\0\0\2\223\312\362\224\313"
- "\361\202\226\313\361\6\230\314\361\231\314\361\232\315\361\233\315\361\234"
- "\315\360\235\316\360\202\236\316\360\1\237\316\360\202\240\317\360\203\241"
- "\317\360\203\242\317\360\203\243\320\360\203\242\317\360\203\241\317\360"
- "\202\240\317\360\1\237\316\360\202\236\316\360\6\235\316\360\234\315\360"
- "\233\315\361\232\315\361\231\314\361\230\314\361\202\226\313\361+\224\313"
- "\361\223\312\362\222\312\362\221\311\362\217\311\362\216\310\362\214\310"
- "\362\213\307\362\212\307\363\210\307\363\207\306\363\205\305\363\203\305"
- "\363\202\304\364\200\304\364\177\303\364~\303\364|\302\364z\301\365y\301"
- "\365w\300\365u\300\365t\277\366q\276\366p\276\366n\275\366l\275\366j\274"
- "\367i\273\367g\273\367d\272\367c\271\370a\271\370_\270\370]\270\370[\267"
- "\371Z\266\371X\266\371U\265\371S\264\372R\264\372P\263\372M\262\372\204\0"
- "\0\0\12\221\312\362\223\312\362\224\312\361\225\313\361\226\313\361\227\314"
- "\361\230\314\361\231\314\361\232\315\361\233\315\361\202\234\315\360\1\235"
- "\316\360\202\236\316\360\202\237\316\360\202\240\317\360\207\241\317\360"
- "\202\240\317\360\202\237\316\360\202\236\316\360\1\235\316\360\202\234\315"
- "\3603\233\315\361\232\315\361\231\314\361\230\314\361\227\314\361\226\313"
- "\361\225\313\361\224\312\361\223\312\362\221\312\362\220\311\362\217\311"
- "\362\216\310\362\214\310\362\213\307\362\212\307\363\210\307\363\207\306"
- "\363\205\306\363\204\305\363\202\304\364\200\304\364\200\303\364~\303\364"
- "|\302\364{\302\365y\301\365w\300\365v\300\365t\277\365r\277\366q\276\366"
- "o\275\366m\275\366k\274\367i\274\367g\273\367f\272\367d\272\370b\271\370"
- "`\270\370^\270\370]\267\370Z\267\371X\266\371W\265\371U\265\371R\264\372"
- "Q\263\372O\263\372M\262\372\204\0\0\0\5\220\311\362\221\312\362\222\312\362"
- "\224\312\361\224\313\361\202\226\313\361\1\227\314\361\202\231\314\361\2"
- "\232\315\361\233\315\361\203\234\315\360\1\235\316\360\215\236\316\360\1"
- "\235\316\360\203\234\315\360\2\233\315\361\232\315\361\202\231\314\361\1"
- "\227\314\361\202\226\313\361.\224\313\361\224\312\361\222\312\362\221\312"
- "\362\220\311\362\217\311\362\215\310\362\214\310\362\213\307\362\212\307"
- "\363\210\307\363\207\306\363\205\306\363\204\305\363\202\305\364\201\304"
- "\364\200\303\364~\303\364}\302\364{\302\365y\301\365x\301\365v\300\365t\277"
- "\365s\277\366q\276\366o\276\366n\275\366l\274\367j\274\367h\273\367g\273"
- "\367d\272\367c\271\370a\271\370_\270\370]\270\370[\267\371Z\266\371X\266"
- "\371U\265\371T\264\372R\264\372P\263\372N\262\372L\262\372\204\0\0\0\202"
- "\217\311\362\5\221\311\362\222\312\362\223\312\362\224\312\361\225\313\361"
- "\202\226\313\361\2\227\314\361\230\314\361\202\231\314\361\2\232\315\361"
- "\233\315\361\205\234\315\360\205\235\316\360\205\234\315\360\2\233\315\361"
- "\232\315\361\202\231\314\361\2\230\314\361\227\314\361\202\226\313\361\5"
- "\225\313\361\224\312\361\223\312\362\222\312\362\221\311\362\202\217\311"
- "\362)\215\310\362\214\310\362\213\307\362\212\307\363\210\307\363\207\306"
- "\363\205\306\363\204\305\363\202\305\364\201\304\364\200\304\364\177\303"
- "\364}\302\364{\302\365z\301\365y\301\365v\300\365u\300\365t\277\366q\276"
- "\366p\276\366o\275\366l\275\366k\274\367i\273\367g\273\367e\272\367d\272"
- "\370b\271\370`\270\370^\270\370\\\267\371Z\267\371X\266\371W\265\371U\265"
- "\371R\264\372Q\263\372O\263\372M\262\372K\261\373\204\0\0\0\11\215\310\362"
- "\216\310\362\217\311\362\220\311\362\221\312\362\222\312\362\223\312\362"
- "\224\313\361\225\313\361\202\226\313\361\2\227\314\361\230\314\361\203\231"
- "\314\361\203\232\315\361\207\233\315\361\203\232\315\361\203\231\314\361"
- "\2\230\314\361\227\314\361\202\226\313\3612\225\313\361\224\313\361\223\312"
- "\362\222\312\362\221\312\362\220\311\362\217\311\362\216\310\362\215\310"
- "\362\214\310\362\212\307\363\211\307\363\210\307\363\207\306\363\205\306"
- "\363\204\305\363\202\305\364\201\304\364\200\304\364\177\303\364~\303\364"
- "|\302\364z\301\365y\301\365w\300\365v\300\365t\277\366r\277\366q\276\366"
- "o\275\366m\275\366l\274\367i\274\367h\273\367f\272\367d\272\367b\271\370"
- "a\271\370_\270\370]\270\370[\267\371Y\266\371X\266\371U\265\371T\264\372"
- "R\264\372P\263\372N\262\372L\262\372J\261\373\204\0\0\0\3\213\307\362\214"
- "\310\362\215\310\362\202\217\311\362\7\221\311\362\221\312\362\222\312\362"
- "\223\312\362\224\312\361\224\313\361\225\313\361\202\226\313\361\202\227"
- "\314\361\202\230\314\361\211\231\314\361\202\230\314\361\202\227\314\361"
- "\202\226\313\361\7\225\313\361\224\313\361\224\312\361\223\312\362\222\312"
- "\362\221\312\362\221\311\362\202\217\311\362\5\215\310\362\214\310\362\213"
- "\307\362\212\307\363\211\307\363\202\207\306\363%\205\306\363\204\305\363"
- "\202\305\364\201\304\364\200\304\364\177\303\364~\303\364|\302\364{\302\365"
- "y\301\365w\300\365v\300\365t\277\365s\277\366q\276\366o\276\366n\275\366"
- "l\274\367j\274\367i\273\367g\273\367e\272\367c\271\370b\271\370_\270\370"
- "^\270\370\\\267\371Z\267\371X\266\371V\265\371U\265\371R\264\372Q\263\372"
- "O\263\372M\262\372K\261\373I\261\373\204\0\0\0\15\212\307\363\213\307\362"
- "\214\310\362\215\310\362\216\310\362\217\311\362\220\311\362\221\311\362"
- "\221\312\362\222\312\362\223\312\362\224\312\361\224\313\361\202\225\313"
- "\361\205\226\313\361\205\227\314\361\205\226\313\361\202\225\313\3616\224"
- "\313\361\224\312\361\223\312\362\222\312\362\221\312\362\221\311\362\220"
- "\311\362\217\311\362\216\310\362\215\310\362\214\310\362\213\307\362\212"
- "\307\363\211\307\363\207\306\363\206\306\363\205\305\363\204\305\363\202"
- "\305\364\201\304\364\200\304\364\177\303\364~\303\364|\302\364{\302\365y"
- "\301\365x\301\365v\300\365t\277\365s\277\366q\276\366p\276\366n\275\366l"
- "\275\366k\274\367i\273\367g\273\367e\272\367d\272\370b\271\370`\270\370_"
- "\270\370]\267\370[\267\371Y\266\371X\266\371U\265\371T\264\372R\264\372P"
- "\263\372N\262\372L\262\372J\261\373H\260\373\204\0\0\0\7\210\307\363\211"
- "\307\363\212\307\363\213\307\362\214\310\362\215\310\362\216\310\362\202"
- "\217\311\362\1\221\311\362\202\221\312\362\2\222\312\362\223\312\362\202"
- "\224\312\361\202\224\313\361\211\225\313\361\202\224\313\361\202\224\312"
- "\361\2\223\312\362\222\312\362\202\221\312\362\1\221\311\362\202\217\311"
- "\3620\216\310\362\215\310\362\214\310\362\213\307\362\212\307\363\211\307"
- "\363\210\307\363\207\306\363\206\306\363\205\305\363\203\305\363\202\305"
- "\364\201\304\364\200\304\364\177\303\364~\303\364|\302\364{\302\365y\301"
- "\365x\301\365v\300\365u\300\365t\277\366q\276\366p\276\366o\275\366m\275"
- "\366k\274\367i\274\367h\273\367f\272\367d\272\367b\271\370a\271\370_\270"
- "\370]\270\370\\\267\371Z\266\371X\266\371V\265\371U\265\371R\264\372Q\263"
- "\372O\263\372M\262\372K\261\373I\261\373H\260\373\204\0\0\0\202\207\306\363"
- "\1\211\307\363\202\212\307\363\202\214\310\362\2\215\310\362\216\310\362"
- "\202\217\311\362\1\220\311\362\202\221\311\362\1\221\312\362\202\222\312"
- "\362\204\223\312\362\203\224\312\361\204\223\312\362\202\222\312\362\1\221"
- "\312\362\202\221\311\362\1\220\311\362\202\217\311\362\2\216\310\362\215"
- "\310\362\202\214\310\362\202\212\307\363\1\211\307\363\202\207\306\363\4"
- "\205\306\363\204\305\363\203\305\363\202\304\364\202\200\304\364#\177\303"
- "\364~\303\364|\302\364{\302\365y\301\365x\301\365v\300\365u\300\365t\277"
- "\366r\277\366q\276\366o\275\366m\275\366l\274\367j\274\367h\273\367g\273"
- "\367e\272\367c\271\370b\271\370_\270\370^\270\370]\267\370Z\267\371Y\266"
- "\371W\265\371U\265\371S\264\372R\264\372P\263\372N\262\372L\262\372J\261"
- "\373H\260\373F\260\373\204\0\0\0\5\205\305\363\206\306\363\207\306\363\210"
- "\307\363\211\307\363\202\212\307\363\202\214\310\362\1\215\310\362\202\216"
- "\310\362\202\217\311\362\202\220\311\362\203\221\311\362\207\221\312\362"
- "\203\221\311\362\202\220\311\362\202\217\311\362\202\216\310\362\1\215\310"
- "\362\202\214\310\362\202\212\307\363\12\211\307\363\210\307\363\207\306\363"
- "\206\306\363\205\305\363\204\305\363\202\305\364\202\304\364\200\304\364"
- "\200\303\364\202~\303\364\"|\302\364{\302\365y\301\365x\301\365v\300\365"
- "u\300\365t\277\366r\277\366q\276\366o\276\366m\275\366l\274\367j\274\367"
- "i\273\367g\273\367e\272\367d\272\370b\271\370`\270\370_\270\370]\267\370"
- "[\267\371Z\266\371X\266\371V\265\371T\264\372R\264\372P\263\372O\263\372"
- "M\262\372K\261\373I\261\373G\260\373F\257\373\204\0\0\0\7\203\305\363\205"
- "\305\363\205\306\363\206\306\363\207\306\363\210\307\363\211\307\363\202"
- "\212\307\363\1\213\307\362\202\214\310\362\202\215\310\362\1\216\310\362"
- "\217\217\311\362\1\216\310\362\202\215\310\362\202\214\310\362\1\213\307"
- "\362\202\212\307\3630\211\307\363\210\307\363\207\306\363\206\306\363\205"
- "\306\363\205\305\363\203\305\363\202\305\364\201\304\364\200\304\364\200"
- "\303\364~\303\364}\302\364|\302\364{\302\365y\301\365x\301\365v\300\365u"
- "\300\365t\277\366r\277\366q\276\366o\276\366n\275\366l\275\366j\274\367i"
- "\273\367g\273\367f\272\367d\272\367b\271\370a\271\370_\270\370]\270\370\\"
- "\267\371Z\266\371X\266\371W\265\371U\265\371S\264\372Q\263\372P\263\372M"
- "\262\372L\262\372J\261\373H\260\373F\260\373D\257\373\204\0\0\0\11\202\304"
- "\364\202\305\364\204\305\363\205\305\363\205\306\363\206\306\363\207\306"
- "\363\210\307\363\211\307\363\203\212\307\363\1\213\307\362\204\214\310\362"
- "\203\215\310\362\205\216\310\362\203\215\310\362\204\214\310\362\1\213\307"
- "\362\203\212\307\363\11\211\307\363\210\307\363\207\306\363\206\306\363\205"
- "\306\363\205\305\363\204\305\363\202\305\364\202\304\364\202\200\304\364"
- "'\177\303\364~\303\364}\302\364{\302\365z\301\365y\301\365x\301\365v\300"
- "\365u\300\365t\277\366r\277\366q\276\366o\276\366n\275\366l\275\366k\274"
- "\367i\274\367g\273\367f\272\367d\272\367c\271\370b\271\370_\270\370^\270"
- "\370]\267\370Z\267\371Y\266\371W\265\371U\265\371T\264\372R\264\372P\263"
- "\372N\262\372M\262\372K\261\373I\261\373G\260\373F\257\373C\257\374\204\0"
- "\0\0\10\200\304\364\201\304\364\202\304\364\203\305\363\204\305\363\205\305"
- "\363\205\306\363\206\306\363\202\207\306\363\2\210\307\363\211\307\363\204"
- "\212\307\363\202\213\307\362\211\214\310\362\202\213\307\362\204\212\307"
- "\363\2\211\307\363\210\307\363\202\207\306\3631\206\306\363\205\306\363\205"
- "\305\363\204\305\363\203\305\363\202\304\364\201\304\364\200\304\364\200"
- "\303\364\177\303\364~\303\364|\302\364{\302\365z\301\365y\301\365x\301\365"
- "v\300\365u\300\365t\277\366r\277\366q\276\366o\276\366n\275\366l\275\366"
- "k\274\367i\274\367h\273\367g\273\367d\272\367c\271\370b\271\370`\270\370"
- "^\270\370]\267\370[\267\371Z\266\371X\266\371V\265\371T\264\372R\264\372"
- "Q\263\372O\263\372M\262\372K\261\373J\261\373H\260\373F\260\373D\257\373"
- "C\256\374\204\0\0\0\1\177\303\364\202\200\304\364\6\201\304\364\202\304\364"
- "\203\305\363\204\305\363\205\305\363\205\306\363\202\206\306\363\202\207"
- "\306\363\202\210\307\363\202\211\307\363\213\212\307\363\202\211\307\363"
- "\202\210\307\363\202\207\306\363\202\206\306\363\6\205\306\363\205\305\363"
- "\204\305\363\203\305\363\202\304\364\201\304\364\202\200\304\364*\177\303"
- "\364~\303\364}\302\364|\302\364{\302\365z\301\365y\301\365w\300\365v\300"
- "\365u\300\365t\277\366r\277\366q\276\366o\276\366n\275\366l\275\366k\274"
- "\367i\274\367h\273\367g\273\367e\272\367d\272\370b\271\370`\270\370_\270"
- "\370]\270\370[\267\371Z\266\371X\266\371W\265\371U\265\371S\264\372Q\263"
- "\372P\263\372N\262\372L\262\372K\261\373H\260\373G\260\373E\257\373C\257"
- "\374A\256\374\204\0\0\0\202~\303\364\1\200\303\364\202\200\304\364\6\201"
- "\304\364\202\304\364\202\305\364\203\305\363\204\305\363\205\305\363\202"
- "\205\306\363\1\206\306\363\205\207\306\363\207\210\307\363\205\207\306\363"
- "\1\206\306\363\202\205\306\363\6\205\305\363\204\305\363\203\305\363\202"
- "\305\364\202\304\364\201\304\364\202\200\304\364\1\200\303\364\202~\303\364"
- ")|\302\364{\302\365z\301\365y\301\365x\301\365w\300\365v\300\365t\277\365"
- "t\277\366r\277\366q\276\366o\276\366n\275\366l\275\366k\274\367i\274\367"
- "h\273\367g\273\367e\272\367d\272\370b\271\370a\271\370_\270\370]\270\370"
- "\\\267\371Z\267\371X\266\371W\265\371U\265\371S\264\372R\264\372P\263\372"
- "N\262\372M\262\372K\261\373I\261\373H\260\373F\257\373D\257\373B\256\374"
- "A\256\374\204\0\0\0\2|\302\364}\302\364\202~\303\364\1\200\303\364\202\200"
- "\304\364\2\201\304\364\202\304\364\202\202\305\364\2\203\305\363\204\305"
- "\363\202\205\305\363\203\205\306\363\211\206\306\363\203\205\306\363\202"
- "\205\305\363\2\204\305\363\203\305\363\202\202\305\364\2\202\304\364\201"
- "\304\364\202\200\304\364\1\200\303\364\202~\303\364\12}\302\364|\302\364"
- "{\302\365z\301\365y\301\365x\301\365v\300\365u\300\365t\277\365s\277\366"
- "\202q\276\366\37o\276\366n\275\366l\275\366k\274\367i\274\367h\273\367g\273"
- "\367e\272\367d\272\370b\271\370a\271\370_\270\370^\270\370\\\267\371Z\267"
- "\371Y\266\371X\266\371U\265\371T\264\372R\264\372P\263\372O\263\372M\262"
- "\372K\261\373J\261\373H\260\373F\260\373E\257\373C\256\374A\256\374?\255"
- "\374\204\0\0\0\4z\301\365{\302\365|\302\364}\302\364\202~\303\364\2\177\303"
- "\364\200\303\364\202\200\304\364\1\201\304\364\202\202\304\364\1\202\305"
- "\364\202\203\305\363\204\204\305\363\205\205\305\363\204\204\305\363\202"
- "\203\305\363\1\202\305\364\202\202\304\364\1\201\304\364\202\200\304\364"
- "\2\200\303\364\177\303\364\202~\303\364-}\302\364|\302\364{\302\365z\301"
- "\365y\301\365x\301\365w\300\365v\300\365u\300\365t\277\366s\277\366q\276"
- "\366p\276\366o\276\366n\275\366l\275\366k\274\367i\274\367h\273\367g\273"
- "\367e\272\367d\272\370b\271\370a\271\370_\270\370^\270\370]\267\370[\267"
- "\371Y\266\371X\266\371V\265\371U\265\371R\264\372Q\263\372P\263\372M\262"
- "\372L\262\372K\261\373H\260\373G\260\373F\257\373C\257\374B\256\374@\255"
- "\374>\255\374\204\0\0\0\202y\301\365\4z\301\365{\302\365|\302\364}\302\364"
- "\202~\303\364\1\177\303\364\202\200\303\364\203\200\304\364\202\201\304\364"
- "\202\202\304\364\211\202\305\364\202\202\304\364\202\201\304\364\203\200"
- "\304\364\202\200\303\364\1\177\303\364\202~\303\364\4}\302\364|\302\364{"
- "\302\365z\301\365\202y\301\365\1w\300\365\202v\300\365&t\277\365t\277\366"
- "r\277\366q\276\366p\276\366o\275\366m\275\366l\275\366k\274\367i\274\367"
- "h\273\367g\273\367e\272\367d\272\370b\271\370a\271\370_\270\370^\270\370"
- "]\267\370[\267\371Z\266\371X\266\371V\265\371U\265\371S\264\372R\264\372"
- "P\263\372N\262\372M\262\372K\261\373I\261\373H\260\373F\257\373D\257\373"
- "B\256\374A\256\374?\255\374=\254\374\204\0\0\0\2v\300\365x\301\365\202y\301"
- "\365\1z\301\365\202{\302\365\2|\302\364}\302\364\202~\303\364\202\177\303"
- "\364\202\200\303\364\217\200\304\364\202\200\303\364\202\177\303\364\202"
- "~\303\364\2}\302\364|\302\364\202{\302\365\1z\301\365\202y\301\365\1x\301"
- "\365\202v\300\365\3u\300\365t\277\366s\277\366\202q\276\366#o\276\366o\275"
- "\366m\275\366l\274\367j\274\367i\274\367h\273\367g\273\367e\272\367d\272"
- "\370b\271\370a\271\370_\270\370^\270\370]\267\370[\267\371Z\266\371X\266"
- "\371W\265\371U\265\371S\264\372R\264\372P\263\372O\263\372M\262\372K\261"
- "\373J\261\373H\260\373F\260\373E\257\373C\256\374A\256\374?\255\374>\255"
- "\374<\254\374\204\0\0\0\4u\300\365v\300\365w\300\365x\301\365\202y\301\365"
- "\1z\301\365\202{\302\365\202|\302\364\1}\302\364\204~\303\364\203\177\303"
- "\364\207\200\303\364\203\177\303\364\204~\303\364\1}\302\364\202|\302\364"
- "\202{\302\365\1z\301\365\202y\301\365-x\301\365w\300\365v\300\365u\300\365"
- "t\277\365s\277\366r\277\366q\276\366p\276\366o\276\366n\275\366l\275\366"
- "l\274\367j\274\367i\273\367h\273\367g\273\367e\272\367d\272\370b\271\370"
- "a\271\370_\270\370^\270\370]\267\370[\267\371Z\266\371X\266\371W\265\371"
- "U\265\371T\264\372R\264\372P\263\372O\263\372M\262\372L\262\372J\261\373"
- "H\260\373G\260\373E\257\373C\257\374B\256\374@\255\374>\255\374<\254\374"
- ";\254\375\204\0\0\0\3t\277\366t\277\365u\300\365\202v\300\365\2w\300\365"
- "x\301\365\202y\301\365\1z\301\365\203{\302\365\202|\302\364\203}\302\364"
- "\211~\303\364\203}\302\364\202|\302\364\203{\302\365\1z\301\365\202y\301"
- "\365\2x\301\365w\300\365\202v\300\365\4u\300\365t\277\365t\277\366r\277\366"
- "\202q\276\366&o\276\366o\275\366m\275\366l\275\366k\274\367j\274\367i\273"
- "\367g\273\367f\272\367e\272\367d\272\370b\271\370a\271\370_\270\370^\270"
- "\370]\267\370[\267\371Z\266\371X\266\371W\265\371U\265\371T\264\372R\264"
- "\372Q\263\372P\263\372M\262\372L\262\372K\261\373I\261\373G\260\373F\257"
- "\373D\257\373B\256\374A\256\374?\255\374=\254\374;\254\3759\253\375\204\0"
- "\0\0\5q\276\366s\277\366t\277\366t\277\365u\300\365\202v\300\365\2w\300\365"
- "x\301\365\203y\301\365\202z\301\365\206{\302\365\205|\302\364\206{\302\365"
- "\202z\301\365\203y\301\365\2x\301\365w\300\365\202v\300\365\4u\300\365t\277"
- "\365t\277\366s\277\366\202q\276\366(p\276\366o\275\366n\275\366m\275\366"
- "l\274\367k\274\367i\274\367h\273\367g\273\367f\272\367d\272\367d\272\370"
- "b\271\370a\271\370_\270\370^\270\370]\267\370[\267\371Z\266\371X\266\371"
- "W\265\371U\265\371T\264\372R\264\372Q\263\372P\263\372N\262\372M\262\372"
- "K\261\373I\261\373H\260\373F\260\373D\257\373C\256\374A\256\374?\255\374"
- ">\255\374<\254\374:\253\3759\253\375\204\0\0\0\1p\276\366\202q\276\366\5"
- "r\277\366s\277\366t\277\366t\277\365u\300\365\202v\300\365\202w\300\365\1"
- "x\301\365\205y\301\365\211z\301\365\205y\301\365\1x\301\365\202w\300\365"
- "\202v\300\365\5u\300\365t\277\365t\277\366s\277\366r\277\366\202q\276\366"
- "*p\276\366o\276\366n\275\366m\275\366l\275\366k\274\367j\274\367i\273\367"
- "h\273\367g\273\367e\272\367d\272\367c\271\370b\271\370a\271\370_\270\370"
- "^\270\370]\267\370[\267\371Z\266\371X\266\371W\265\371U\265\371T\264\372"
- "R\264\372Q\263\372P\263\372N\262\372M\262\372K\261\373J\261\373H\260\373"
- "F\260\373E\257\373C\257\374A\256\374@\255\374>\255\374<\254\374;\254\375"
- "9\253\3757\252\375\204\0\0\0\3o\275\366o\276\366p\276\366\202q\276\366\3"
- "r\277\366s\277\366t\277\366\202t\277\365\1u\300\365\203v\300\365\203w\300"
- "\365\213x\301\365\203w\300\365\203v\300\365\1u\300\365\202t\277\365\3t\277"
- "\366s\277\366r\277\366\202q\276\366,p\276\366o\276\366o\275\366m\275\366"
- "l\275\366l\274\367j\274\367i\274\367h\273\367g\273\367f\272\367e\272\367"
- "d\272\370c\271\370b\271\370`\270\370_\270\370^\270\370]\267\370[\267\371"
- "Z\266\371X\266\371W\265\371U\265\371T\264\372R\264\372Q\263\372P\263\372"
- "N\262\372M\262\372K\261\373J\261\373H\260\373G\260\373E\257\373C\257\374"
- "B\256\374A\256\374>\255\374=\254\374;\254\3759\253\3758\253\3756\252\375"
- "\204\0\0\0\5l\275\366m\275\366n\275\366o\276\366p\276\366\203q\276\366\2"
- "r\277\366s\277\366\202t\277\366\202t\277\365\202u\300\365\215v\300\365\202"
- "u\300\365\202t\277\365\202t\277\366\2s\277\366r\277\366\203q\276\366.p\276"
- "\366o\276\366n\275\366m\275\366l\275\366l\274\367k\274\367i\274\367i\273"
- "\367h\273\367g\273\367f\272\367d\272\367d\272\370b\271\370a\271\370`\270"
- "\370_\270\370]\270\370]\267\370[\267\371Z\266\371X\266\371W\265\371U\265"
- "\371T\264\372R\264\372Q\263\372P\263\372N\262\372M\262\372K\261\373J\261"
- "\373H\260\373G\260\373F\257\373D\257\373B\256\374A\256\374?\255\374>\255"
- "\374;\254\375:\253\3759\253\3756\252\3755\252\375\204\0\0\0\10k\274\367l"
- "\274\367l\275\366m\275\366n\275\366o\275\366o\276\366p\276\366\203q\276\366"
- "\202r\277\366\202s\277\366\203t\277\366\211t\277\365\203t\277\366\202s\277"
- "\366\202r\277\366\203q\276\366\22p\276\366o\276\366o\275\366n\275\366m\275"
- "\366l\275\366l\274\367k\274\367j\274\367i\273\367h\273\367g\273\367f\272"
- "\367e\272\367d\272\370c\271\370b\271\370a\271\370\202_\270\370\35]\270\370"
- "\\\267\371Z\267\371Z\266\371X\266\371W\265\371U\265\371T\264\372R\264\372"
- "Q\263\372P\263\372N\262\372M\262\372K\261\373J\261\373H\260\373G\260\373"
- "F\257\373D\257\373C\256\374A\256\374?\255\374>\255\374<\254\374;\254\375"
- "9\253\3757\252\3756\252\3754\251\376\204\0\0\0\5i\273\367i\274\367k\274\367"
- "l\274\367l\275\366\202m\275\366\3n\275\366o\275\366o\276\366\202p\276\366"
- "\204q\276\366\205r\277\366\203s\277\366\205r\277\366\204q\276\366\202p\276"
- "\366\3o\276\366o\275\366n\275\366\202m\275\366\6l\275\366l\274\367k\274\367"
- "i\274\367i\273\367h\273\367\202g\273\367\3e\272\367d\272\367d\272\370\202"
- "b\271\370!`\270\370_\270\370^\270\370]\267\370\\\267\371Z\267\371Y\266\371"
- "X\266\371W\265\371U\265\371T\264\372R\264\372Q\263\372P\263\372N\262\372"
- "M\262\372L\262\372J\261\373H\260\373G\260\373F\257\373D\257\373C\256\374"
- "A\256\374@\255\374>\255\374<\254\374;\254\3759\253\3758\253\3756\252\375"
- "4\251\3753\251\376\204\0\0\0\10g\273\367h\273\367i\273\367i\274\367j\274"
- "\367k\274\367l\274\367l\275\366\202m\275\366\1n\275\366\202o\275\366\202"
- "o\276\366\203p\276\366\211q\276\366\203p\276\366\202o\276\366\202o\275\366"
- "\1n\275\366\202m\275\366\7l\275\366l\274\367k\274\367j\274\367i\274\367i"
- "\273\367h\273\367\202g\273\367\6f\272\367d\272\367d\272\370c\271\370b\271"
- "\370a\271\370\202_\270\370\40]\270\370]\267\370[\267\371Z\267\371Y\266\371"
- "X\266\371V\265\371U\265\371T\264\372R\264\372Q\263\372P\263\372N\262\372"
- "M\262\372L\262\372K\261\373I\261\373H\260\373F\257\373D\257\373C\256\374"
- "A\256\374@\255\374>\255\374=\254\374;\254\3759\253\3758\253\3756\252\375"
- "4\251\3753\251\3761\250\376\204\0\0\0\1e\272\367\202g\273\367\2h\273\367"
- "i\273\367\202i\274\367\2j\274\367k\274\367\202l\274\367\1l\275\366\202m\275"
- "\366\203n\275\366\213o\275\366\203n\275\366\202m\275\366\1l\275\366\202l"
- "\274\367\2k\274\367j\274\367\202i\274\367\2i\273\367h\273\367\202g\273\367"
- "\15e\272\367d\272\367d\272\370c\271\370b\271\370a\271\370`\270\370_\270\370"
- "^\270\370]\270\370\\\267\371[\267\371Z\266\371\202X\266\371\10V\265\371U"
- "\265\371T\264\372R\264\372Q\263\372P\263\372N\262\372M\262\372\202K\261\373"
- "\17I\261\373H\260\373F\260\373E\257\373C\256\374A\256\374@\255\374>\255\374"
- "=\254\374;\254\375:\253\3758\253\3756\252\3755\252\3754\251\376\2021\250"
- "\376\204\0\0\0\4d\272\370d\272\367e\272\367f\272\367\202g\273\367\1h\273"
- "\367\202i\273\367\1i\274\367\202j\274\367\1k\274\367\203l\274\367\204l\275"
- "\366\205m\275\366\204l\275\366\203l\274\367\1k\274\367\202j\274\367\1i\274"
- "\367\202i\273\367\1h\273\367\202g\273\367\10f\272\367e\272\367d\272\367d"
- "\272\370c\271\370b\271\370a\271\370`\270\370\202_\270\370\7]\270\370]\267"
- "\370[\267\371Z\267\371Y\266\371X\266\371W\265\371\202U\265\371\30S\264\372"
- "R\264\372Q\263\372P\263\372N\262\372M\262\372K\261\373J\261\373I\261\373"
- "H\260\373F\260\373E\257\373C\257\374B\256\374@\255\374>\255\374=\254\374"
- ";\254\375:\253\3759\253\3757\252\3755\252\3754\251\3762\251\376\2021\250"
- "\376\204\0\0\0\5b\271\370c\271\370d\272\370d\272\367e\272\367\202f\272\367"
- "\202g\273\367\202h\273\367\202i\273\367\202i\274\367\203j\274\367\211k\274"
- "\367\203j\274\367\202i\274\367\202i\273\367\202h\273\367\202g\273\367\202"
- "f\272\367\7e\272\367d\272\367d\272\370c\271\370b\271\370a\271\370`\270\370"
- "\202_\270\370\14^\270\370]\267\370\\\267\371Z\267\371Z\266\371Y\266\371X"
- "\266\371V\265\371U\265\371T\264\372S\264\372R\264\372\202P\263\372\24N\262"
- "\372M\262\372K\261\373J\261\373H\260\373G\260\373F\260\373E\257\373C\257"
- "\374B\256\374A\256\374?\255\374=\254\374;\254\375:\253\3759\253\3757\252"
- "\3756\252\3754\251\3752\251\376\2031\250\376\204\0\0\0\2`\270\370a\271\370"
- "\202b\271\370\3c\271\370d\272\370d\272\367\202e\272\367\1f\272\367\204g\273"
- "\367\202h\273\367\206i\273\367\1i\274\367\206i\273\367\202h\273\367\204g"
- "\273\367\1f\272\367\202e\272\367\3d\272\367d\272\370c\271\370\202b\271\370"
- "\2a\271\370`\270\370\202_\270\370\17^\270\370]\267\370\\\267\371[\267\371"
- "Z\267\371Y\266\371X\266\371W\265\371V\265\371U\265\371T\264\372R\264\372"
- "Q\263\372P\263\372O\263\372\202M\262\372\22K\261\373J\261\373H\260\373G\260"
- "\373F\257\373E\257\373C\257\374B\256\374A\256\374?\255\374>\255\374<\254"
- "\374:\253\3759\253\3757\252\3756\252\3754\251\3753\251\376\2041\250\376\204"
- "\0\0\0\202_\270\370\2`\270\370a\271\370\203b\271\370\2c\271\370d\272\370"
- "\202d\272\367\202e\272\367\202f\272\367\217g\273\367\202f\272\367\202e\272"
- "\367\202d\272\367\2d\272\370c\271\370\203b\271\370\2a\271\370`\270\370\202"
- "_\270\370\6^\270\370]\267\370\\\267\371[\267\371Z\267\371Z\266\371\202X\266"
- "\371\34V\265\371U\265\371T\264\372S\264\372R\264\372Q\263\372P\263\372O\263"
- "\372M\262\372L\262\372K\261\373J\261\373H\260\373G\260\373F\257\373D\257"
- "\373C\256\374B\256\374A\256\374?\255\374>\255\374<\254\374;\254\3759\253"
- "\3757\252\3756\252\3754\251\3753\251\376\2051\250\376\204\0\0\0\3]\267\370"
- "]\270\370^\270\370\202_\270\370\2`\270\370a\271\370\203b\271\370\202c\271"
- "\370\202d\272\370\203d\272\367\213e\272\367\203d\272\367\202d\272\370\202"
- "c\271\370\203b\271\370\2a\271\370`\270\370\202_\270\370\7^\270\370]\270\370"
- "]\267\370\\\267\371[\267\371Z\267\371Z\266\371\202X\266\371\1W\265\371\202"
- "U\265\371\1T\264\372\202R\264\372\202P\263\372\12N\262\372M\262\372L\262"
- "\372K\261\373I\261\373H\260\373G\260\373F\257\373D\257\373C\256\374\202A"
- "\256\374\11?\255\374>\255\374<\254\374;\254\3759\253\3758\253\3756\252\375"
- "4\251\3753\251\376\2061\250\376\204\0\0\0\4[\267\371\\\267\371]\267\370]"
- "\270\370\202^\270\370\202_\270\370\202`\270\370\1a\271\370\205b\271\370\204"
- "c\271\370\205d\272\370\204c\271\370\205b\271\370\1a\271\370\202`\270\370"
- "\202_\270\370\202^\270\370\6]\270\370]\267\370\\\267\371[\267\371Z\267\371"
- "Z\266\371\202X\266\371\11W\265\371V\265\371U\265\371T\264\372S\264\372R\264"
- "\372Q\263\372P\263\372O\263\372\202M\262\372\202K\261\373\10I\261\373H\260"
- "\373F\260\373F\257\373D\257\373C\256\374A\256\374@\255\374\202>\255\374\7"
- "<\254\374;\254\3759\253\3758\253\3756\252\3755\252\3754\251\376\2071\250"
- "\376\204\0\0\0\7Y\266\371Z\266\371Z\267\371[\267\371\\\267\371]\267\370]"
- "\270\370\202^\270\370\203_\270\370\203`\270\370\203a\271\370\211b\271\370"
- "\203a\271\370\203`\270\370\203_\270\370\202^\270\370\7]\270\370]\267\370"
- "\\\267\371[\267\371Z\267\371Z\266\371Y\266\371\202X\266\371\7W\265\371V\265"
- "\371U\265\371T\264\372S\264\372R\264\372Q\263\372\202P\263\372\5N\262\372"
- "M\262\372L\262\372K\261\373J\261\373\202H\260\373\20F\260\373E\257\373D\257"
- "\373C\256\374A\256\374@\255\374>\255\374=\254\374<\254\374;\254\3759\253"
- "\3758\253\3756\252\3755\252\3754\251\3762\251\376\2071\250\376\204\0\0\0"
- "\202X\266\371\2Y\266\371Z\266\371\202Z\267\371\2[\267\371\\\267\371\202]"
- "\267\370\202]\270\370\202^\270\370\221_\270\370\202^\270\370\202]\270\370"
- "\202]\267\370\2\\\267\371[\267\371\202Z\267\371\2Z\266\371Y\266\371\202X"
- "\266\371\5W\265\371V\265\371U\265\371T\264\372S\264\372\202R\264\372\202"
- "P\263\372\1O\263\372\202M\262\372\202K\261\373\13I\261\373H\260\373G\260"
- "\373F\257\373E\257\373C\257\374B\256\374A\256\374@\255\374>\255\374=\254"
- "\374\202;\254\375\6""9\253\3758\253\3756\252\3755\252\3754\251\3762\251\376"
- "\2101\250\376\204\0\0\0\3U\265\371V\265\371W\265\371\202X\266\371\1Y\266"
- "\371\202Z\266\371\1Z\267\371\202[\267\371\202\\\267\371\202]\267\370\204"
- "]\270\370\207^\270\370\204]\270\370\202]\267\370\202\\\267\371\202[\267\371"
- "\1Z\267\371\202Z\266\371\1Y\266\371\202X\266\371\2W\265\371V\265\371\202"
- "U\265\371\2T\264\372S\264\372\202R\264\372\33Q\263\372P\263\372O\263\372"
- "N\262\372M\262\372L\262\372K\261\373J\261\373I\261\373H\260\373G\260\373"
- "F\257\373D\257\373C\257\374B\256\374A\256\374@\255\374>\255\374=\254\374"
- ";\254\375:\253\3759\253\3758\253\3756\252\3755\252\3754\251\3762\251\376"
- "\2111\250\376\204\0\0\0\1T\264\372\202U\265\371\1V\265\371\202W\265\371\202"
- "X\266\371\202Y\266\371\202Z\266\371\202Z\267\371\203[\267\371\213\\\267\371"
- "\203[\267\371\202Z\267\371\202Z\266\371\202Y\266\371\202X\266\371\202W\265"
- "\371\1V\265\371\202U\265\371\2T\264\372S\264\372\202R\264\372\6Q\263\372"
- "P\263\372O\263\372N\262\372M\262\372L\262\372\202K\261\373\7I\261\373H\260"
- "\373G\260\373F\260\373E\257\373D\257\373C\256\374\202A\256\374\13?\255\374"
- ">\255\374=\254\374;\254\375:\253\3759\253\3757\252\3756\252\3755\252\375"
- "4\251\3762\251\376\2121\250\376\204\0\0\0\202R\264\372\2S\264\372T\264\372"
- "\202U\265\371\202V\265\371\1W\265\371\204X\266\371\203Y\266\371\205Z\266"
- "\371\203Z\267\371\205Z\266\371\203Y\266\371\204X\266\371\1W\265\371\202V"
- "\265\371\202U\265\371\2T\264\372S\264\372\202R\264\372\1Q\263\372\202P\263"
- "\372\2O\263\372N\262\372\202M\262\372\202K\261\373\1J\261\373\202H\260\373"
- "\22G\260\373F\257\373E\257\373C\257\374B\256\374A\256\374@\255\374?\255\374"
- ">\255\374<\254\374;\254\375:\253\3759\253\3757\252\3756\252\3754\251\375"
- "4\251\3762\251\376\2131\250\376\204\0\0\0\2P\263\372Q\263\372\202R\264\372"
- "\202S\264\372\1T\264\372\203U\265\371\202V\265\371\203W\265\371\217X\266"
- "\371\203W\265\371\202V\265\371\203U\265\371\1T\264\372\202S\264\372\202R"
- "\264\372\1Q\263\372\202P\263\372\2O\263\372N\262\372\202M\262\372\202K\261"
- "\373\17J\261\373I\261\373H\260\373G\260\373F\260\373E\257\373D\257\373C\256"
- "\374B\256\374A\256\374@\255\374>\255\374=\254\374<\254\374;\254\375\2029"
- "\253\375\5""7\252\3756\252\3754\251\3753\251\3762\251\376\2141\250\376\204"
- "\0\0\0\220B\352B\2=\322\202/|\365\304.p\376\204\0\0\0\221>\350>\1""9\315"
- "z\304*h\376\204\0\0\0\2229\3459\1)s\347\303'`\376\204\0\0\0\2224\3434\304"
- "#W\376\204\0\0\0\221.\340.\1+\272\\\304\40N\376\204\0\0\0\1\37\247\37\217"
- ")\335)\2&\263Q\35M\357\303\34E\376\1\25""4\300\377\0\0\0\377\0\0\0\222\0"
- "\0\0",
-};
-
+/* GIMP RGB C-Source image dump 1-byte-run-length-encoded (rotation_orientation_vert.c) */
+
+#include "image.h"
+
+static const nv_image_t rotation_orientation_vert_image = {
+ 90, 120, 3, 0,
+ "\7\345\345\345\334\313\312\336\327\326\345\345\345\342\342\342\345\345\345"
+ "\340\340\340\202\345\345\345\1\343\343\343\203\345\345\345\3\342\342\342"
+ "\345\345\345\343\343\343\203\345\345\345\17\320\322\322\254\312\311\271\305"
+ "\325\334\334\333\276\306\312\331\332\331\327\327\327\311\311\311\340\340"
+ "\340\310\310\317\251\260\266\320\321\330\325\326\327\316\322\324\341\341"
+ "\341\243\345\345\345\3\341\341\341\344\344\344\330\330\330\202\345\345\345"
+ "\1\342\342\342\202\345\345\345\202\337\337\337-\345\345\345\334\334\334\343"
+ "\343\343\336\336\336\344\344\344\340\340\340\341\341\341\345\345\345\310"
+ "\310\310\307\307\307\345\345\345\336\332\332\265<6\262US\315\315\315\225"
+ "\225\225\242\242\242\214\214\214\273\273\273\225\225\225\251\251\251\231"
+ "\231\231\263\263\263\345\345\345\261\261\261\247\247\247\242\242\242\254"
+ "\254\254\237\237\237\311\311\311\266\277\305u\232\225\204\214\235\320\301"
+ "\251\264\247\202\300\276\262\277\276\274\312\312\315\321\321\321\270\270"
+ "\277\210\235\252\277\301\312\227\265\322\252\242\235\330\330\330\243\345"
+ "\345\345\10\342\342\342\344\344\344\267\267\267\237\237\237\301\301\301\226"
+ "\226\226\257\257\257\254\254\254\202\270\270\270\21\342\342\342\274\274\274"
+ "\275\275\275\213\213\213\265\265\265\213\213\213\204\204\204\343\343\343"
+ "\234\234\234\265\265\265\345\345\345\340\340\340\330\325\325\322\312\312"
+ "\335\335\335\316\316\316\305\305\305\202\325\325\325\31\320\320\320\324\324"
+ "\324\326\326\326\324\324\324\340\340\340\335\335\335\324\324\324\325\325"
+ "\325\326\326\326\324\324\324\331\331\331\337\337\337\277\303\307\301\301"
+ "\305\333\332\331\317\305\263\323\317\310\333\332\327\306\304\305\311\312"
+ "\313\327\327\330\266\303\320\326\326\326\301\306\316\252\254\273\244\340"
+ "\340\340\3\334\334\334\340\340\340\334\334\334\202\325\325\325\6\331\331"
+ "\331\323\323\323\277\277\277\320\320\320\317\317\317\327\327\327\202\334"
+ "\334\334\11\324\324\324\333\333\333\331\331\331\333\333\333\340\340\340\307"
+ "\307\307\315\315\315\340\340\340%<r\203$<qA%=q%=r&>s'?t'@u(@v)Av*Bw*Cx+D"
+ "y,Dz,E{-F|.F}/G~/H\1771J\2002K\2023L\2034N\2055O\2076P\2107Q\2117R\2128S"
+ "\2129S\213:T\214:U\215;V\216<V\217<W\220=X\221>Y\222?Y\222?Z\223@[\224A\\"
+ "\225A\\\226B]\227C^\230C^\231D_\232E`\233Ea\233Fb\234Gb\235Gc\236Hd\237I"
+ "d\240Je\241Kf\242Lg\243Mg\244Mh\244Ni\245Oj\246Ok\247Pk\250Ql\251Qm\252R"
+ "m\253Sn\254To\255Tp\255Up\256\225Vq\257\5\37""7p\37""8q\40""9r!:r!:s\203"
+ "!:r\34!;r\";s#<t$=u$>v%?w&?x&@y'Az(B{)C|)C}*D}+E~+E\177,E\200-F\200.H\202"
+ "/J\2041K\2062M\2103O\2114P\2135Q\2146R\2156R\2167S\2178T\220\2029U\221\37"
+ ":V\222;W\223<X\224<Y\225=Y\226>Z\227>[\230?\\\231@]\232A]\233A^\234B_\235"
+ "C`\236D`\237Da\240Eb\241Fc\241Gd\242Hd\243Ie\244Jf\245Jg\246Kh\247Lh\250"
+ "Li\251Mj\252Nk\253Ok\254Ol\255Pm\256Qn\257\225Ro\260\7\36""7o\37""8p\40""9"
+ "q\40""9r!:s\";t#<u\202#=v\1$=v\202#=u:$=v%>w%?x&@x'Ay(Az(B{)C|*D}*E~+E\177"
+ ",E\200-F\200-G\201.H\202/H\2030I\2040J\2051K\2062M\2104N\2125P\2136R\215"
+ "7S\2178T\2209U\221:V\222;W\223;W\224<X\225=Y\226=Z\227>[\230?[\231@\\\232"
+ "@]\232A^\234B_\234C_\235C`\236Da\237Eb\240Ec\241Gc\242Hd\243Ie\244If\245"
+ "Jg\246Kg\247Lh\250Li\251Mj\252Nj\253Nk\254Ol\255Pm\255Qn\256Qn\257\224Ro"
+ "\260\14\36""7o\37""8p\37""8q\40""9r!:s\";t\"<u#<u$=w%>w%?x&?y\204&@y6'@y"
+ "'Az(B{)C|)C}*D~+E\177,E\200,F\200-F\201.G\201/H\202/I\2030J\2041J\2051K\206"
+ "2L\2073M\2104N\2114N\2125P\2137Q\2158S\2179U\221:V\223<X\224<Y\226=Z\226"
+ ">Z\227?[\230?\\\231@]\232A]\233B^\234B_\235C`\236Da\237Ea\240Eb\241Fc\242"
+ "Hd\243He\244Ie\245Jf\246Kg\246Kh\247Li\250Mi\251Mj\252Nk\253Ol\254Pl\255"
+ "Pm\256Qn\257\224Ro\260\17\36""7o\36""7p\37""8q\40""9q!:r!:s\";t#<u#=v$>w"
+ "%>x&?y&@z'A{(A|\202)B}\204)C|2*D}+E~+E\177,E\200-F\200-G\201.H\202/I\203"
+ "0I\2040J\2051K\2062L\2073L\2103M\2114N\2125O\2126P\2136P\2147Q\2158R\216"
+ "8S\217:T\221;V\223<X\224=Y\226?[\230@\\\232A]\233A^\234B_\235C`\236D`\237"
+ "Da\240Eb\240Fc\241Gd\242Hd\243Ie\244Jf\245Jg\246Kg\247Lh\250Li\251Mj\252"
+ "Nk\253Ok\254Ol\255Pm\256Qn\257Rn\257\223Ro\260\24\35""6n\36""7o\37""8p\40"
+ """9q\40""9r!:s\";t\"<u#=v$=w%=s,Bu&@z'@{(A{(B|)C}*D~*D\177+E\200\202+F\200"
+ "1+F\177+E\177,E\200-F\200-G\201.G\202/H\203/I\2040J\2051K\2052K\2062L\207"
+ "3M\2104N\2115N\2125O\2136P\2147Q\2157R\2168R\2179S\220:T\221:U\222;V\223"
+ "<V\224=W\225>Y\226?[\231A]\233B_\235C`\236Da\237Eb\240Eb\241Gc\242Hd\243"
+ "Ie\244If\245Jf\246Kg\247Kh\250Li\250Mi\251Nj\252Nk\253Ol\254Pm\255Qm\256"
+ "Qn\257\223Ro\260\31\35""6n\36""7o\37""8p\37""8q\40""9r!:s!;t\";uHZ\201\203"
+ "\223\247\230\260\304\214\232\255'?w'@z'A{(B|)B}*C~*D\177+E\200,F\200,G\201"
+ "-H\202.I\203.I\202\202.H\202,.G\202/H\202/I\2030I\2041J\2051K\2062L\2073"
+ "M\2104M\2114N\2125O\2136P\2146Q\2157Q\2168R\2179S\2179T\220:T\221;U\222<"
+ "V\223<W\224=X\225>X\226>Y\227?Z\230@[\231B]\233C_\236Da\240Fc\241Gd\243H"
+ "e\244Ie\244Jf\245Jg\246Kh\247Lh\250Mi\251Mj\252Nk\253Ol\254Pl\255Pm\256Q"
+ "n\257\223Ro\260H\34""6n\36""6o\36""7o\37""8p\40""9q\40:r!:s\";tnz\224\215"
+ "\301\345\236\310\350\302\314\324\200\210\236&@z'A{(A|(B})C~*D\177+E\177+"
+ "E\200,G\200-H\201.I\202.J\203/J\2040K\2050L\2061L\2061K\2061K\2051J\2051"
+ "K\2062L\2073L\2103M\2114N\2115O\2125P\2136P\2147Q\2158R\2168S\2179S\220:"
+ "T\221;U\222;V\223<W\224=W\225=X\226>Y\227?Z\230@[\230@[\231A\\\232B]\233"
+ "C^\234D`\236Fa\240Gc\243Ie\245Jg\246Kg\247Lh\250Li\251Mj\252Nk\253Nk\254"
+ "Ol\255Pm\256Qn\256Qn\257\222Ro\260\40\34""5m\35""6n\36""7o\37""8p\40""8q"
+ "\40""9r!:s\";t|\204\230\247\304\331\271\302\311\310\313\311\210\215\232&"
+ "@y'@z(A{(B|)C}*D~*D\177+E\200,F\200-H\201-H\202.I\203/J\204/K\2050L\2061"
+ "L\2072M\2072N\2113O\211\2033N\211%3M\2104N\2115N\2125O\2136P\2147Q\2157R"
+ "\2168R\2179S\220:T\221:U\222;V\222<V\223<W\224=X\225>Y\226?Y\227?Z\230@["
+ "\231A\\\232B]\233B]\234C^\235D_\236D`\237Ea\240Fb\241Gd\243If\245Kh\247M"
+ "i\251Nj\252Nk\253Ol\254Pm\255Pm\256Qn\257\222Ro\260#\33""5m\34""6n\36""7"
+ "o\37""7p\37""8q\40""9r!:s!;tqy\215\234\234\235Zcxgv\224Xj\204&?y&@z'A{(B"
+ "|)B})C~*D\177+E\200,F\200,G\201-H\202.I\202/J\203/J\2040K\2051L\2061M\207"
+ "2N\2103N\2114O\2124P\2135Q\214\2026Q\215\1""6Q\214\2026P\214\40""6P\2157"
+ "Q\2168R\2179S\2179T\220:T\221;U\222;V\223<W\224=X\225>X\226>Y\227?Z\230@"
+ "[\231A\\\232A\\\233B]\234C^\235D_\235D`\236E`\237Ea\240Eb\241Fc\242Gc\243"
+ "Hd\244Jf\246Kh\250Mj\252Ol\255Pm\256Qn\257\222Ro\260'\33""5m\34""5n\35""6"
+ "n\36""7o\37""8p\40""9q\40""9r!:s\";t\"<t#=v$=w%>x&?y&@z'A{(A|(B})C~*D~+D"
+ "\177+E\200,F\200-H\201-I\202.I\203/J\2040K\2050L\2061M\2072M\2103N\2113O"
+ "\2124P\2135Q\2145Q\2156R\2157S\2168T\217\2038T\220\2028S\217\36""9S\220:"
+ "T\221:U\222;V\223<V\224=W\225=X\226>Y\227?Z\227@Z\230@[\231A\\\232B]\233"
+ "B^\234C^\235D_\236E`\237Ea\240Ea\241Fb\242Gc\243Gd\244He\245Ie\246If\247"
+ "Jg\250Li\251Nj\253Ol\255Qn\257\220Ro\260+\33""4l\34""5m\35""6n\36""7o\37"
+ """8p\37""8q\40""9r@R{7LzDW\201AT\200@T\201EW\200?S\200&?y'@z'A{(B|)C}*C~"
+ "*D\177+E\200,F\200,H\201-H\202.I\203/J\204/K\2050L\2061L\2062M\2072N\210"
+ "3O\2114O\2125P\2135Q\2146R\2157S\2167S\2178T\2209U\221:V\222:V\223\203;W"
+ "\223\202;V\223\31<V\223<W\224=X\225>Y\226?Y\227?Z\230@[\231A\\\232B]\233"
+ "B]\234C^\235D_\236D`\237E`\240Ea\241Eb\241Fc\242Gd\243Hd\244He\245If\246"
+ "Jg\247Kg\250Kh\251Li\252\202Mj\253\3Nk\254Ol\255Qn\257\214Ro\260(\33""4l"
+ "\33""5m\34""6n\36""7o\36""7p\37""8q\40""9r:N{;Mx?NqHWzKZ|DTy8Js&?y&@z'A{"
+ "(B|)B})C~*D\177+E\200,E\200,G\200-H\201.I\202.J\203/J\2040K\2051L\2061M\207"
+ "2N\2103N\2113O\2124P\2135Q\2146Q\2156R\2167S\2178T\220\2029U\221\5:V\222"
+ ";W\223<X\224<Y\225=Y\226\202>Z\227\30>Y\227>Y\226>X\226>Y\227?Z\230@[\231"
+ "A[\232A\\\233B]\234C^\234C_\235D_\236E`\237Ea\240Eb\241Fb\242Gc\243Hd\244"
+ "He\245If\246Jf\247Jg\250Kh\251Li\252\206Mj\253\4Nk\254Ol\255Pm\256Qn\257"
+ "\207Ro\2603\32""4l\33""5l\34""5m\35""6n\36""7o\37""8p\40""9q\40""9r!:s\""
+ ";t#<u#=v$=w%>x%?y&@z'@{(A{(B})C}*D~+D\177+E\200,F\200-H\201-I\202.I\203/"
+ "J\2040K\2050L\2061L\2072M\2103N\2113O\2114P\2125P\2145Q\2146R\2157S\2168"
+ "T\2178T\2209U\221:V\222:W\223;X\224<X\225=Y\226=Z\227>[\230?\\\231@\\\232"
+ "\202@]\232\1@\\\232\202@[\231\22A\\\232B]\233B^\234C^\235D_\236E`\237Ea\240"
+ "Ea\241Fb\242Fc\243Gd\244He\245Ie\246If\246Jg\247Kh\250Li\251Li\252\211Mj"
+ "\253\4Nk\254Ol\255Pm\256Qn\257\203Ro\260:\32""4k\33""4l\33""5m\35""6n\36"
+ """7o\37""8p\37""8q\40""9r!:s!;t\";u#<v$=w$>w%?x&?y'@z'A{(B|)C})C~*D\177+"
+ "E\200,F\200,G\201-H\202.I\203/J\204/K\2040K\2051L\2062M\2072N\2103O\2114"
+ "O\2124P\2135Q\2146R\2157S\2167S\2178T\2209U\2219V\222:V\223;W\224<X\225<"
+ "Y\225=Z\226>Z\227?[\230?\\\231@]\232A^\233A^\234B_\235C`\236C_\236C_\235"
+ "\202C^\235\16D_\236D`\237E`\240Ea\240Eb\241Fc\242Gc\243Hd\244He\245If\246"
+ "Jg\247Kg\250Kh\251Li\252\216Mj\253>Nk\254Ol\255\32""3k\32""4l\33""5m\34""6"
+ "n\36""6o\36""7p\37""8q\40""9q!:r!:s\";t#<u#=v$=w%>x&?y&@z'A{(A|)B})C~*D\177"
+ "+E\177+E\200,G\200-H\201.I\202.J\203/J\2040K\2050L\2061M\2072M\2103N\211"
+ "3O\2124P\2135Q\2146Q\2156R\2167S\2178T\2179U\2209U\221:V\222;W\223;X\224"
+ "<X\225=Y\226>Z\227>[\230?\\\231@\\\232A]\233A^\234B_\235C`\236C`\237Da\237"
+ "Eb\240Fc\241\202Fb\241\15Fa\240Ea\240Eb\241Fb\242Gc\243Gd\244He\245If\246"
+ "Jf\247Jg\250Kh\251Li\252Mi\252\217Mj\253A\31""3j\32""4k\33""5l\34""5m\35"
+ """6n\36""7o\37""8p\37""9q\40""9r!:s\";t#<u#<v$=w%>x%?y&@z'@z(A{(B|)C}*D~"
+ "+D\177+E\200,F\200-H\201-H\202.I\203/J\2040K\2050L\2061L\2072M\2102N\211"
+ "3O\2114P\2125P\2135Q\2146R\2157S\2168S\2178T\2209U\221:V\222:W\223;W\224"
+ "<X\225=Y\226=Z\227>[\230?[\230?\\\231@]\232A^\233B_\234B_\235C`\236Da\237"
+ "Eb\240Eb\241Fc\242Hd\243Ie\244Ie\245Ie\244\202Hd\244\10Gd\244Hd\244Ie\245"
+ "If\246Jg\247Kh\250Lh\251Li\252\217Mj\253F\31""3j\32""4k\33""4l\33""5m\35"
+ """6n\36""7o\37""7p\37""8q\40""9r!:s!;t\";u#<u$=v$>w%>x&?y'@z'A{(B|)B})C~"
+ "*D\177+E\200,F\200,G\201-H\202.I\202/J\203/K\2040K\2051L\2061M\2072N\210"
+ "3N\2114O\2124P\2135Q\2146R\2156R\2167S\2178T\2209U\2219V\222:V\222;W\223"
+ "<X\224<Y\225=Y\226>Z\227?[\230?\\\231@]\232A]\233A^\234B_\235C`\236D`\237"
+ "Da\240Eb\241Fc\242Gd\243Hd\243Ie\244Jf\245Jg\246Kh\247Lh\250Kh\250Kg\247"
+ "\202Jg\247\3Kg\250Kh\251Li\252\217Mj\2538\31""2j\32""3k\32""4l\33""5m\34"
+ """6n\35""6n\36""7o\37""8p\40""9q\40""9r!:s\";t#<u#=v$=w%>x&?y&@z'A{(A|(B"
+ "})C~*D~+E\177+E\200,F\200-H\201.I\202.I\203/J\2040K\2050L\2061M\2072M\210"
+ "3N\2113O\2124P\2135Q\2146Q\2156R\2157S\2168T\2178T\2209U\221:V\222;W\223"
+ ";X\224<X\225=Y\226>Z\227>[\230?\\\231@\\\232@]\233A^\234B_\235\202C`\236"
+ "\15Da\237Eb\240Fc\241Gc\242Hd\243Ie\244If\245Jg\246Kg\247Lh\250Li\251Mj\252"
+ "Nj\253\202Nk\253\3Mj\253Mj\252Li\252\216Mj\253O\31""2i\31""3j\32""4k\33""4"
+ "l\34""5m\35""6n\36""7o\37""8p\37""8q\40""8p!:s!:r\"<u#<v$=w%>x%?y&@y'@z'"
+ "A{(B|)C}*C~*D\177+E\200,F\200-H\201-H\202.I\203/J\204/K\2050L\2061L\2072"
+ "M\2072N\2103O\2114O\2125P\2135Q\2146R\2157S\2168S\2178T\2209U\221:V\222:"
+ "W\223;W\224<X\225=Y\226=Z\227>Z\227?[\230?\\\231@]\232A^\233B^\234B_\235"
+ "C`\236Da\237Eb\240Eb\241Fc\242Hd\243He\244If\245Jf\246Kg\246Kh\247Li\250"
+ "Mi\251Nj\252Nk\253Ol\254Pm\255Pm\256Qn\257Pm\256Ol\255Nk\254\213Mj\253L\30"
+ """2i\31""3j\32""3k\33""4l\33""5m\34""6n\36""7o\37""7p~{x\315\260{\227\206"
+ "o\270\232k9Hl#<u$=v$>w%>x&?y&@z'A{(B|)B})C~*D\177+E\200+F\200,G\201-H\201"
+ ".I\202.J\203/J\2040K\2051L\2061M\2072N\2103N\2114O\2124P\2135Q\2146Q\215"
+ "6R\2167S\2178T\2209U\2219U\222:V\223;W\223<X\224<Y\225=Y\226>Z\227>[\230"
+ "?\\\231@\\\232A]\233A^\234B_\235C`\236D`\237Da\240Eb\241Fc\241Gd\242Hd\243"
+ "Ie\244Jf\245Jg\246Kh\247Lh\250Mi\251Mj\252Nk\253Ol\254Ol\255Pm\256Qn\257"
+ "\204Ro\260\3Pm\256Ol\255Nk\254\207Mj\253&\30""2i\31""2j\32""3k\32""4l\33"
+ """5m\34""5m\35""6n\36""7o\202|x\333\271\206\321\264\210\336\300\222\225\211"
+ "~#<u#=v$=w%>x%?y&@z'A{(A|(B})C}*D~+D\177+E\200,F\200-H\201.I\202.I\203/J"
+ "\2040K\2050L\2061M\2072M\2103N\2113O\2124P\213\2025Q\214%6R\2157S\2168T\217"
+ "8T\2209U\221:V\222;W\223;W\224<X\225=Y\226=Z\227>[\230?[\231@\\\232@]\233"
+ "A^\234B_\234C_\235C`\236Da\237Eb\240Ec\241Gc\242Hd\243Ie\244If\245Jf\246"
+ "Kg\247Lh\250Li\251Mj\252Nj\253Nk\253Ol\254Pm\255Qn\256Qn\257\207Ro\260\3"
+ "Pm\256Ol\255Nk\254\203Mj\253M\30""1h\31""2i\31""3j\32""4k\33""4l\33""5m\35"
+ """6n\36""7olku\361\312\223\177vlle_KKX\";u#<v$=v$>w%?x&?y'@z'A{(B|)C})C~"
+ "*D\177+E\200,F\200,G\201-H\202.I\203/J\204/K\2040L\2051L\2062M\2072N\210"
+ "3O\2114O\2124P\2135Q\2146R\2157R\2167S\2178T\2209U\221:V\222:V\223;W\224"
+ "<X\225<Y\225=Z\226>Z\227?[\230?\\\231@]\232A]\233B^\234B_\235C`\236Da\237"
+ "Da\240Eb\241Fc\242Hd\243He\244Ie\245Jf\245Kg\246Kh\247Li\250Mi\251Mj\252"
+ "Nk\253Ol\254Pl\255Pm\256Qn\257\213Ro\260\33Pm\256Ol\255\30""1h\30""2i\31"
+ """2j\32""3k\33""4l\33""5m\34""6n\36""7odhy\240\205b\217`@\235jEsMA\";t#<"
+ "u#=v$>w%>x&?y&@z'A{(B|)B})C~*D\177\202+E\2002,G\200-H\202.I\202.J\203/J\204"
+ "0K\2051L\2061M\2072N\2103N\2113O\2124P\2135Q\2146Q\2156R\2167S\2178T\217"
+ "9U\2209U\221:V\222;W\223;X\224<Y\225=Y\226>Z\227>[\230?\\\231@\\\232A]\233"
+ "A^\234B_\235C`\236C`\237Da\240Eb\241Fc\241Gd\242Hd\243Ie\244Jf\245Jg\246"
+ "Kg\247Lh\250Li\251Mj\252Nk\253Ok\254Ol\255Pm\256Qn\257\215Ro\260N\27""1h"
+ "\30""1i\31""2i\31""3k\32""4k\33""5l\34""5m\35""6n\36""6n\37""8p,:fHHa&9k"
+ "\";t\"<u#=v$=w%>x%?y&@z'@{(A|(B|)C}*D~+D\177+E\200,F\200-H\201-H\202.I\203"
+ "/J\2040K\2050L\2061L\2072M\2102N\2113O\2124P\2125P\2135Q\2146R\2157S\216"
+ "8T\2178T\2209U\221:V\222:W\223;W\224<X\225=Y\226=Z\227>[\230?[\231@\\\232"
+ "@]\232A^\233B_\234B_\235C`\236Da\237Eb\240Eb\241Gc\242Hd\243Ie\244If\245"
+ "Jf\246Kg\247Lh\250Li\251Mi\251Nj\252Nk\253Ol\254Pm\255Qm\256Qn\257\214Ro"
+ "\260N\27""0g\30""1h\30""2i\31""3j\32""4k\33""4l.Du7Ly?Q|6Ju7LzAT~<P~<P\177"
+ "3I{#<u$=v$>w%?x&?y'@z'A{(B|)C}*C~*D\177+E\200,F\200,G\201-H\202.I\203/J\203"
+ "/K\2040K\2051L\2062M\2072N\2103N\2114O\2124P\2135Q\2146R\2157S\2167S\217"
+ "8T\2209U\2219V\222:V\223;W\223<X\224<Y\225=Z\226>Z\227?[\230?\\\231@]\232"
+ "A]\233A^\234B_\235C`\236Da\237Da\240Eb\241Fc\242Gd\242He\244Ie\244Jf\245"
+ "Jg\246Kh\247Lh\250Mi\251Mj\252Nk\253Ol\254Pl\255Pm\256Qn\257\214Ro\260O\27"
+ """0g\27""1h\30""2i\31""2j\32""3j\32""3k3FrDRr>Mp:Mw,An:Lt@NoCSw:Ks\";t\""
+ "<u#=u$=w%>x&@y'A{(A|)B})C~*D\177+E\177+E\200,G\200-H\201.I\202.I\203/J\204"
+ "0K\2051L\2061M\2072M\2103N\2113O\2124P\2135Q\2146Q\2156R\2157S\2168T\217"
+ "8U\2209U\221:V\222;W\223;X\224<Y\225=Y\226>Z\227>[\230?\\\231@\\\232@]\233"
+ "A^\234B_\235C_\236C`\236Da\237Eb\240Fc\241Gc\242Hd\243Ie\244If\245Jg\246"
+ "Kg\247Lh\250Li\251Mj\252Nj\253Ok\254Ol\255Pm\256Qn\256Qn\257\213Ro\260\1"
+ "\26/e\202\27/dL\30/d\30""0e\31""1f\32""2g\33""2h\33""3i\33""4j\34""5k\35"
+ """5l\35""6m\36""7n\37""8o\37""9p\40""9q!:r\";s\"<t#=t$=u%>w&@x'Az(B{)C}+"
+ "D\177,F\200-H\201-H\202.I\203/J\204/K\2050L\2061L\2072M\2102N\2103O\2114"
+ "O\2125P\2135Q\2146R\2157S\2167S\2178T\2209U\221:V\222:W\223;W\224<X\225="
+ "Y\226=Z\227>[\227?[\230?\\\231@]\232A^\233B^\234B_\235C`\236Da\237Eb\240"
+ "Eb\241Fc\242Hd\243Ie\244Ie\245Jf\246Kg\247Kh\247Li\250Mi\251Nj\252Nk\253"
+ "Ol\254Pm\255Qm\256Qn\257\213Ro\260O\25-a\26-b\27.c\27/d\30""0e\31""0f\32"
+ """1g\32""2h\33""3i\33""4j\34""4k\34""5l\35""6m\36""7n\36""8o\37""8o\40""9"
+ "p!:q!;r\";s#<t#=u$>v%?w&?x&@y'Az(B{)C|*D~,F\200-H\201.J\203/J\2040K\2051"
+ "L\2061M\2072N\2103N\2114O\2124P\2135Q\2146R\2156R\2167S\2178T\2209U\2219"
+ "U\222:V\223;W\223<X\224<Y\225=Y\226>Z\227?[\230?\\\231@]\232A]\233A^\234"
+ "B_\235C`\236D`\237Da\240Eb\241Fc\242Gd\243Hd\243Ie\244Jf\245Jg\246Kh\247"
+ "Lh\250Mi\251Mj\252Nk\253Ol\254Pl\255Pm\256Qn\257\211Ro\260FPm\256Ol\255\25"
+ ",a\26-b\26.c\27/d\30/e\31""0f\31""1g\32""2h\33""2h\33""3i\33""4j\34""5k\35"
+ """6l\35""7m\36""7n\37""8o\40""9p\40:q!:r\";s\"<t#=u$>v%>w%?x&@x'Ay(Az(B{"
+ ")C|*D}*E~+E\200-G\201/J\2040L\2061M\2072M\2103N\2113O\2124P\2135P\2146Q\215"
+ "6R\2157S\2168T\2178T\2209U\221:V\222;W\223;X\224<X\225=Y\226>Z\227>[\230"
+ "?\\\231@\\\232@]\233A^\233B_\234C_\235C`\236Da\237Eb\240Ec\241Gc\242Hd\243"
+ "Gc\242\202Fb\242\12Fc\242Gd\243If\246Li\251Nj\253Nk\253Ol\254Pm\255Qm\256"
+ "Qn\257\205Ro\260\2Pm\256Nk\254\203Mj\253\23\25,a\25-b\26-c\27/d\30""1g\31"
+ """2j\32""3k\33""4l\33""5m\35""6n\36""7n\36""7o\37""8p\40""9r!:s\";t\";u#"
+ "<u$=v\202$>w\1%>x\202%?x'&?x&@x'@y'Az(B{)C|*D}*D~+E\177,E\200,F\200.H\202"
+ "0K\2052M\2072N\2103O\2114O\2124P\2135Q\2146R\2157S\2167S\2178T\2209U\221"
+ ":V\222:V\223;W\224<X\225<Y\226=Z\227>Z\227?[\230?\\\231@]\232A^\233B^\234"
+ "B_\235C`\236Da\237\202Eb\240\23Ea\237D_\236D`\237E`\240Ea\241Fb\242Fc\242"
+ "Gd\243Hd\244Kg\247Nk\253Ol\254Pm\255Pm\256Qn\257Ro\260Qn\257Pm\256Nk\254"
+ "\206Mj\253\32\24,`\25,a\26/d\30""1h\30""2i\31""3j\32""3k\32""4l\33""5l+@"
+ "mFY\2000Es\37""8q\40""9q!:r!:s\";t#<u$=v$>w%>x&?y&@z'A{(B|)B}\203)C}\22)"
+ "C|)C}*D}+E~+E\177,E\200-F\200.G\201/I\2031M\2073N\2113O\2124P\2135Q\2146"
+ "Q\2156R\2167S\2178T\220\2029U\221\14:V\222;W\223;X\224<Y\225=Y\226>Z\227"
+ ">[\230?\\\231@\\\232A]\233A^\234B_\235\202C`\236\17C_\235B]\234C^\234C_\235"
+ "D_\236E`\237Ea\240Eb\241Fb\242Gc\243Hd\244He\245Jf\246Li\252Nk\253\202Nk"
+ "\254\212Mj\253\36\24+`\25-b\27""0g\27""1h\30""2i\31""2j\32""3k\32""4l;Mr"
+ "\225\230\234\315\317\321\237\244\252-Ao\40""9q\40""9r!:s\";t\"<u#=v$=w%>"
+ "x%?y&@z'@{(A|(B|)C}*D~+D\177+E\200\202,F\2001+F\200+E\177,E\200-F\200-G\201"
+ ".G\202/H\2032M\2073O\2124P\2125P\2145Q\2146R\2157S\2168T\2178T\2209U\221"
+ ":V\222;W\223;X\224<X\225=Y\226=Z\227>[\230?[\231@\\\232@]\233A^\233B^\234"
+ "A]\233@\\\232A\\\232B]\233B]\234C^\235D_\236E`\237Ea\240Ea\241Fb\242Gc\243"
+ "Gd\244He\245Ie\245If\246Jg\247Kh\250Li\251Li\252\211Mj\253#\24+`\25.d\26"
+ """0f\27""0g\30""1h\31""2i\31""3j\32""4k+Am\241\257\275\226\241\253\214\230"
+ "\243#9h\37""8q\40""9r!:s\";t\";u#<v$=v$>w%?x&?y'@z'A{(B|)B}*C~*D\177+E\200"
+ ",F\200,G\201-H\202.I\202-H\201\202-F\200\27.G\201.H\202/I\2043N\2114O\212"
+ "4P\2135Q\2146R\2157R\2167S\2178T\2209U\2219V\222:V\223;W\224<X\225<Y\226"
+ "=Y\226>Z\227?[\230?\\\231@]\232@\\\231\202?Z\230\23@[\231A\\\232A\\\233B"
+ "]\234C^\235D_\236D`\237E`\240Ea\240Fb\241Fc\242Gd\243Hd\244He\245If\246J"
+ "g\247Kg\250Kh\251Li\252\210Mj\2531Nk\254\24+_\25.d\26/f\27""0g\27""1h\30"
+ """2i\31""3j\32""3k\33""3g\312\312\313\245\245\246\233\234\236\36""6m\37""8"
+ "p\40""9q!:r!:s\";t#<u#=v$>w%>x&?y&@z'A{(A|)B})C~*D\177+E\177+E\200,G\200"
+ "-H\201.I\202.J\203/J\204.H\203.G\201.H\202/H\2031K\2053O\2124P\2135Q\214"
+ "6Q\2156R\2167S\2178T\217\2029U\221\10:V\222;W\223;X\224<X\225=Y\226>Z\227"
+ ">[\230>Z\227\202=X\226\26>Y\227?Z\230@[\231@[\232A\\\232B]\233C^\234C^\235"
+ "D_\236E`\237Ea\240Eb\241Fb\242Gc\243Gd\244He\245If\246Jf\247Jg\250Kh\251"
+ "Li\252Lj\252\205Mj\253UNk\254Pm\256Ro\260\23+_\25-b\26/f\27""0g\27""1h\30"
+ """1i\31""2j\31""3j\32""4kku\214\202\205\215U`z\36""7o\37""8p\40""8q\40""9"
+ "r!:s\";t#<u#<v$=w%>x%?y&@z'@z(A{(B|)C}*D~*D\177+E\200,F\200-H\201-H\202."
+ "I\203/J\2040K\205/I\203.G\202/H\203/I\2043N\2114P\2125P\2135Q\2146R\2157"
+ "S\2168T\2178T\2209U\221:V\222:W\223;W\224<X\225=Y\226<Y\225<W\224<V\224="
+ "W\224=X\225>Y\226?Y\227?Z\230@[\231A\\\232B]\233B]\234C^\235D_\236E`\237"
+ "Ea\240Ea\241Fb\242Fc\243Gd\244Hd\244Ie\245If\246Jg\247Kh\250Kh\251Li\252"
+ "\203Mj\253\2Nk\254Qn\257\203Ro\260U\23*_\24+`\26/e\26""0f\27""0g\30""1h\30"
+ """2i\31""3j\32""3k\33""4l\33""5m\35""6n\36""7o\37""8p\37""8q\40""9r!:s!;"
+ "t\";t#<u$=v$>w%?x&?y'@z'A{(B|)B})C~*D\177+E\200,F\200,G\201-H\202.I\203/"
+ "J\203/J\2040K\205.H\202/H\202/I\2031K\2064O\2124P\2135Q\2146R\2157R\2167"
+ "S\2178T\2209U\2219U\222:V\223;W\223;W\224:U\222:U\221;U\222;V\223<W\224="
+ "X\225>X\226>Y\227?Z\230@[\231A\\\232A\\\233B]\234C^\235C_\236D`\237Fb\241"
+ "Gc\243Fb\242Fc\242Gc\243Hd\244He\245If\246Jg\247Kg\250Kh\251Li\252Mj\253"
+ "Nk\254Qn\257\205Ro\260J\23*^\24+_\24,b\26/f\27""0g\27""1h\30""2i\31""2j5"
+ "JyCRsDV|Q_\2000Es\36""7o\37""8p\40""9q\40:r!:s\";t#<u#=v$=w%>x&?y&@z'A{("
+ "A|(B})C~*D~+E\177+E\200,G\200-H\201.I\202.I\203/J\2040K\205/J\205.H\202/"
+ "H\2030I\2043O\2124P\2135Q\2146Q\2156R\2157S\2168T\2178U\2209U\221:U\2219"
+ "T\2208S\2179S\220:T\221;U\222;V\223<W\224=W\225=X\226>Y\227?Z\227@Z\231@"
+ "[\231A\\\232B]\233B^\234D`\237Gc\242Ie\244If\245Jf\246He\244\202Gd\244\7"
+ "He\245Ie\246Jf\247Jg\250Li\251Nk\254Qn\257\207Ro\260S\23*^\23*_\24+`\25-"
+ "b\26/f\27""0h\30""1i\31""2i\36""7m#9h3Gr-Am#:m\36""7o\37""8p\37""8q\40""9"
+ "r!:s\";t\"<u#<v$=w%>x%?x&?z'@z(A{(B|)C}*C~*D\177+E\200,F\200-H\201-H\202"
+ ".I\203/J\204/K\2050K\206.H\202/H\203/I\2032M\2104O\2125P\2135Q\2146R\215"
+ "7S\2167S\2178T\2207R\2167Q\2157R\2168R\2179S\220:T\221:U\222;U\222<V\223"
+ "<W\224=X\225>Y\226?Y\227?Z\230@[\231A\\\232B]\233Da\237Fc\242Hd\243He\244"
+ "Ie\245Jf\246Kg\247Kh\247Kh\250Lh\250Li\251Mj\252Ok\254Pm\255Pm\256Qn\257"
+ "\207Ro\260S\22)]\23*^\24+_\24,`\25-b\27/e\30""1h\30""2i\31""3j\32""3k\33"
+ """4l\33""5m\34""6n\36""7o\37""7p\37""8q\40""9q!:r!;s\";t#<u$=v$>w%>x&?y&"
+ "@z'A{(B|)B})C~*D\177+E\200,E\200,G\201-H\202.I\203.J\203/J\2040K\205.H\203"
+ ".H\202/I\2031K\2064O\2124P\2135Q\2146R\2156R\2166Q\2145O\2136P\2146P\215"
+ "7Q\2158R\2169S\2179T\220:T\221;U\222;V\223<W\224=X\225>X\226>Y\227?Z\230"
+ "@[\231A]\233Da\237Eb\241Fc\241Gd\242Hd\243Ie\244Jf\245Jg\246Kh\247Lh\250"
+ "Li\251Mj\252Nk\253Ok\254Ol\255Pm\256Qn\257\207Ro\260T\22)]\23*^\23+_\24+"
+ "`\25,a\26-b\27.d\30""1g\31""2j\32""3k\32""4l\33""5l\34""5m\35""6n\36""7o"
+ "\37""8p\40""9q\40""9r!:s\";t#<u#=v$=w%>x%?y&@z'A{(A|(B|)C}*D~+D\177+E\200"
+ ",F\200-H\201.I\202.I\203/J\2040K\205/I\203.G\202/H\2030I\2043O\2114P\213"
+ "5P\2134O\2123M\2114N\2115O\2125O\2136P\2147Q\2158R\2168S\2179S\220:T\221"
+ ":U\222;V\223<V\224=W\225=X\226>Y\226?Z\230A]\233C`\236Da\237Eb\240Ec\241"
+ "Gc\242Hd\243Ie\244If\245Jf\246Kg\247Kh\250Li\251Mj\252Nj\253Nk\254Ol\255"
+ "Pm\255Qn\256Qn\257\206Ro\260-\22)]\23*^\23*_\24+`\25,a\25-a\26.b\27.c\30"
+ "/e\31""1h\32""3k\33""4l\33""5m\35""6n\36""7o\37""8p\37""8q\40""9r!:s\";t"
+ "\";u#<v$=v$>w%?x&?y'@z'A{(B|)C}*C~*D\177+E\200,F\200,G\201-H\202.I\203/J"
+ "\204/K\205.I\203.G\201/H\202/I\2032N\2103N\211\2022L\207%3M\2104M\2114N\212"
+ "5O\2136P\2147Q\2157Q\2168R\2179S\2209T\221:U\221;U\222<V\223<W\224=X\225"
+ ">Y\227A]\233B_\235C`\236Da\237Da\240Eb\241Fc\242Hd\243He\244Ie\245Jf\245"
+ "Kg\246Kh\247Lh\250Mi\251Mj\252Nk\253Ol\254Pl\255Pm\256Qn\257\206Ro\260\202"
+ "\22)]\36\23*^\24+_\24,`\25,a\26-b\27.c\27/d\30""0e\31""0f\32""2h\33""4k\34"
+ """6m\36""6o\36""7p\37""8p\40""9q!:r!:s\";t#<u#=v$>w%>x&?y&@z'A{(A|)B})C~"
+ "*D\177\202+E\2001,G\200-H\201.I\202.J\203/J\204.H\202.G\201.H\202/I\2030"
+ "J\2041J\2051K\2062L\2073L\2103M\2114N\2125O\2126P\2136P\2147Q\2158R\2168"
+ "S\2179T\220:T\221;U\222;V\223<W\224>Y\226@]\232A^\234B_\235C`\236C`\237D"
+ "a\237Eb\240Fc\241Gd\242Hd\243Ie\244Jf\245Jg\246Kg\247Lh\250Li\251Mj\252N"
+ "k\253Ok\254Ol\255Pm\256\203Qn\257\4Pm\256Ol\255Nk\254Mj\253\202\22)]Q\23"
+ "*^\23+_\24+`\25,a\26-b\26.c\27/d\30/e\30""0e\31""1f\32""2g\33""2i\34""4k"
+ "\35""6n\37""8p\40""9q\40""9r!:s\";t#<u#=v$=w%>x%?y&@z'@{(A{(B|)C}*D~*D\177"
+ "+E\200,F\200-H\201-H\202.I\203/J\204.H\202-G\201.G\202/H\203/I\2040J\205"
+ "1K\2062K\2062L\2073M\2104N\2115O\2125O\2136P\2147Q\2157R\2168R\2179S\220"
+ ":T\221:U\222;V\223=Y\226@\\\231@]\232A^\233B_\234C_\235C`\236Da\237Eb\240"
+ "Eb\241Fc\242Hd\243Ie\244If\245Jf\246Kg\247Kh\250Li\251Mi\251Nj\252Nk\253"
+ "Mj\253Mj\252\202Li\252\205Mj\253'\23+a\22)]\22)^\23*_\24+`\25,`\25-a\26-"
+ "b\27.c\27/d\30""0e\31""1f\32""1g\32""2h\33""3i\33""4j\34""5k\35""6n\37""8"
+ "p!:s!;t\";u#<u$=v$>w%?x&?y'@z'A{(B|)B}*C~*D\177+E\200,F\200,G\201-H\202."
+ "I\203.I\202\202-F\200,.G\201/H\202/I\2030J\2041J\2051K\2062L\2073M\2104M"
+ "\2114N\2125O\2136P\2147Q\2157Q\2168R\2179S\2179T\220:U\222=Y\226>[\230?\\"
+ "\231@]\232A]\233A^\234B_\235C`\236Da\237Da\240Eb\241Fc\242Gd\243He\244Ie"
+ "\245Jf\245Jg\246Kh\247Lh\250Kg\247Jg\247If\246Jg\247Kg\250Kh\251Li\252\205"
+ "Mj\253V\23,b\23+a\22)^\23*^\24+_\24,`\25,a\26-b\27.c\27/d\30""0e\31""0f\31"
+ """1g\32""2h\33""3i\33""3j\33""4j\34""5k\35""6l\36""7n\37""8p!:s#<u#=v$=w"
+ "%>x&?y&@z'A{(A|(B})C~*D\177+E\177+E\200,G\200-H\201,F\200+E\177,E\200-F\200"
+ ".G\201.H\202/H\2030I\2040J\2051K\2062L\2073L\2103M\2104N\2125O\2125P\213"
+ "6P\2147Q\2158R\2168S\217:U\222=Y\226=Z\227>[\230?\\\231@\\\232@]\233A^\234"
+ "B_\235C_\236C`\236Da\237Eb\240Ec\241Gc\242Hd\243Ie\244Jf\245If\245He\244"
+ "Gd\243Gd\244He\245If\246Jf\247Jg\250Kh\250Li\251Mi\253\204Mj\253\202\23,"
+ "bF\23,a\23*_\23+_\24+`\25,a\26-b\26.c\27.c\30/e\30""0e\31""1f\32""2g\33""2"
+ "h\33""3i\33""4j\34""5k\35""5l\35""6m\36""7n\37""8o\40""9p!;s#<u%>w%?y&@y"
+ "'@z'A{(B|)C}*D~*D\177+E\200+E\177*D}*D~+E\177,E\200-F\200-G\201.G\202/H\203"
+ "/I\2030J\2041J\2052K\2062L\2073M\2104N\2115N\2125O\2136P\2147Q\2158R\217"
+ ":V\222<X\225=Y\226=Z\227>Z\230?[\230?\\\231@]\232A^\233B^\234B_\235C`\236"
+ "Da\237Eb\240Eb\241Fc\242\202Hd\243\14Fb\241Ea\241Fb\242Fc\243Gd\243Hd\244"
+ "Ie\245If\246Jg\247Kh\250Kh\251Li\252\203Mj\253\1Nk\254\204\23,b\36\23+`\24"
+ "+_\25,`\25-a\26-b\27.c\27/d\30""0e\31""0f\32""1g\32""2h\33""3i\33""4j\33"
+ """4k\34""5l\35""6m\36""7n\36""8n\37""8o\40""9p!:q!;s#<u%>w&@z'A{(B|)B})C"
+ "~*C~\202)C|4)C}*D~+E~+E\177,F\200-F\200.G\201.H\202/I\2030I\2041J\2051K\206"
+ "2L\2073M\2103M\2114N\2125O\2136P\2148S\217:V\222;W\223<X\224<Y\225=Y\226"
+ ">Z\227>[\230?\\\231@]\232A]\233A^\234B_\235C`\236Da\237Da\240Eb\241Eb\240"
+ "D`\237D_\236E`\237Ea\240Eb\241Fc\242Gc\243Hd\244He\245If\246Jf\247Jg\250"
+ "Kh\251Li\252Nl\254Pm\256\202Ro\260\204\23,b\33\24-c\24,b\24+`\25,a\26-b\26"
+ ".c\27/d\30/e\31""0f\31""1g\32""2h\33""3i\33""3j\33""4j\34""5k\35""6l\35""6"
+ "m\36""7n\37""8o\40""9p\40:q!:r\";s#<t#=u%>w&@y\202(A{#'Az(Az(B{)C|*D}*E~"
+ "+E\177,E\200-F\200-G\201.H\202/H\2030I\2040J\2051K\2062K\2072L\2073M\210"
+ "4N\2115P\2138S\2179U\221:V\222;W\223;X\224<X\225=Y\226=Z\227>[\230?[\231"
+ "@\\\232@]\233A^\234B_\234C_\235\202C`\236\202C^\234\17C^\235D_\236E`\237"
+ "Ea\240Ea\241Fb\242Gc\243Gd\244He\245Ie\246Jg\247Li\252Ol\254Qm\256Qn\257"
+ "\203Ro\260\204\23,b\3\24-c\24-d\25.d\202\25-b9\26.b\27.c\30/d\30""0e\31""1"
+ "f\32""1g\33""2h\33""3i\33""4j\34""5k\34""5l\35""6m\36""7n\37""8o\37""9p\40"
+ """9q!:r\";r\"<s#<t$=u$>v%?w&@x'@y'Az(B{)C|)D}*D~+E\177,E\200,F\200-F\201"
+ ".G\201/H\202/I\2030J\2041J\2052K\2062L\2073M\2105P\2147S\2178T\2209U\221"
+ ":V\222:V\223;W\224<X\225<Y\225=Z\227>Z\227?[\230?\\\231@]\232A^\233\202B"
+ "^\234\202A\\\232\21B]\233B]\234C^\235D_\236D`\237E`\240Ea\241Fb\241Fc\242"
+ "Gd\244Jf\247Li\251Nk\253Ol\254Pl\255Pm\256Qn\257\202Ro\260\1Qn\257\205\23"
+ ",b1\24-c\25.d\25/e\26.e\26.c\27.c\27/d\30""0e\31""0f\32""1g\32""2h\33""3"
+ "i\33""3j\33""4k\34""5k\35""6m\36""7m\36""8n\37""8o\40""9p\40:q!;r\";s#<t"
+ "#=u$>v%?w&?x&@y'Az(B{)B|)C}*D}+E~+E\177,E\200-F\200.G\201.H\202/I\2030I\204"
+ "1J\2051K\2062L\2075P\2146R\2167S\2178T\220\2029U\221\37:V\222;W\223<X\224"
+ "<Y\225=Y\226>Z\227>[\230?\\\231@\\\232@]\232?[\230?Z\230@[\231A[\232A\\\233"
+ "B]\233C^\234C_\235D_\236E`\237Ea\240Fb\242Ie\245Lh\250Mi\251Mj\252Nk\253"
+ "Ok\254Ol\255Pm\256Qn\257\202Ro\260\1Ol\255\205\23,bU\24-c\24.d\25.e\26/f"
+ "\27""0g\27""0f\27/e\30/e\31""0f\31""1f\32""2h\33""2h\33""3i\33""4j\34""5"
+ "k\35""6l\35""6m\36""7n\37""8o\40""9p\40:q!:r\";s\"<t#=u$=v%>v%?x&@x'Ay(A"
+ "z(B{)C|*D}*E~+E\177,E\200-F\200-G\201.G\202/H\2030I\2040J\2051K\2064P\213"
+ "5Q\2146R\2157S\2168T\2178T\2209U\221:V\222:W\223;W\224<X\225=Y\226=Z\227"
+ ">[\230?[\231?[\230>X\226>Y\226?Z\227@Z\230@[\231A\\\232B]\233B^\234C^\235"
+ "D_\236E`\237Gc\243Jf\246Kg\247Lh\250Li\251Mj\252Nj\252Nk\254Ol\254Pm\255"
+ "Qn\256Qn\257Ro\260Nk\254\205\23,b\6\23,c\24-d\25.e\26/f\26""0f\27""0g\202"
+ "\30""1hM\31""1g\31""1f\32""1g\32""2h\33""3i\33""4j\34""5k\34""5l\35""6m\36"
+ """7n\36""8o\37""8p\40""9q!:q!;r\"<s#<t$=u$>v%?w&@x&@y'Az(B{)C|)D}*D~+E\177"
+ ",E\200,F\200-F\200.G\201.H\202/I\2030I\2043N\2114P\2135Q\2146R\2157R\216"
+ "7S\2178T\2209U\221:V\222:V\223;W\224<X\224<Y\225=Z\226>Z\227=X\226<W\224"
+ "=X\225>X\226>Y\227?Z\230@[\231A\\\232A\\\233B]\234C^\235E`\237Hd\243Ie\245"
+ "Jf\245Kg\246Kh\247Lh\250Mi\251Mj\252Nk\253Ol\254Pl\255Pm\256Qn\257Pm\256"
+ "Mj\253\206\23,b\13\24-c\25.d\25/e\26/f\27""0g\30""1h\30""2i\31""2j\32""3"
+ "k\32""3j\32""3i\202\33""3i+\33""4k\34""5k\35""6l\36""7m\36""7n\37""8o\40"
+ """9p\40:q!:r\";s#<t#=u$>v%?w&?x&@y'Az(Bz(B{)C|*D}+E~+E\177,E\200-F\200.G"
+ "\201.H\202/H\2030I\2043N\2114P\2135Q\2146Q\2156R\2167S\2178T\2179U\2209U"
+ "\221:V\222;W\223;X\224<Y\225=Y\225\202;V\223\5<W\224=W\225>X\226>Y\227?Z"
+ "\230\202@[\231\23A\\\232B]\233D`\237Gd\242Hd\243Ie\244Jf\245Jg\246Kg\247"
+ "Lh\250Li\251Mj\252Nk\253Ok\254Ol\255Pm\256Qn\257Nk\254Mj\253\206\23,b\13"
+ "\24-c\24.d\25.e\26/f\27""0g\27""1h\30""1h\31""2i\31""3j\32""4k\33""5l\202"
+ "\34""5l(\33""4k\34""5k\35""6l\35""6m\36""7n\37""8o\37""9p\40""9q!:r\";s\""
+ "<t#=u$=v%>v%?w&@x'@y'Az(B{)C|*D}*D~+E\177,E\200-F\200-G\201.G\202/H\2030"
+ "I\2030J\2054O\2125P\2135Q\2146R\2157S\2168T\2178T\2209U\221:V\222:W\223\202"
+ ";W\224\31:U\221:U\222;V\223<V\223<W\225=X\225>Y\226?Y\227?Z\230@[\231A\\"
+ "\232C`\236Eb\241Fc\242Hd\243Ie\244If\245Jf\246Kg\247Kh\250Li\250Mj\251Nj"
+ "\252Nk\253Ol\254\202Pm\255\2Li\252Mj\253\206\23,b\16\23-c\24-c\25.d\25/e"
+ "\26""0f\27""0g\30""1h\30""2i\31""3j\32""4k\33""4l\33""5m\35""6n\36""7o\202"
+ "\34""5lD\35""6m\36""7n\36""8o\37""8o\40""9p!:q!;r\"<s#<t$=u$>v%?w&?x&@y'"
+ "Az(B{)C|)C}*D~+E\177,E\177,E\200-F\200.G\201.H\202/I\2030I\2042L\2074P\213"
+ "5Q\2146R\2157R\2167S\2178T\2209U\2219V\222:V\223:U\2219S\2209T\220:U\221"
+ ";U\222;V\223<W\224=X\225>X\226>Y\227?Z\230@[\231B_\235Da\240Eb\241Fc\242"
+ "Gd\243He\243Ie\244Jf\245Jg\246Kh\247Lh\250Mi\251Mj\252Nk\253Ol\254Ol\255"
+ "Mj\253Li\252Mj\253\207\23,b\14\24-c\25.d\25/e\26/f\27""0g\27""1h\30""2i\31"
+ """2j\32""3k\32""4l\33""5m\34""5l\202\33""4jE\34""5k\35""6l\35""6m\36""7n"
+ "\37""8o\40""9p\40:q!:r\";s#<t#=u$>v%>w&?x&@y'Ay(Bz(B{)C|*D}+E~+E\177,E\200"
+ "-F\200-G\201.H\202/H\2030I\2040J\2053N\2105Q\2145Q\2156R\2167S\2168T\217"
+ "8T\2209U\2218S\2178R\2168S\2179S\220:T\221;U\222;V\223<V\224=W\225=X\226"
+ ">Y\227?Z\230A]\233C`\236Da\237Eb\240Fc\241Gc\242Hd\243Ie\244If\245Jf\246"
+ "Kg\247Lh\250Li\251Mj\252Nk\253Nk\254Ol\254Kh\251Li\251Li\252\207\23,b2\24"
+ "-c\24-d\25.e\26/f\26""0g\27""1h\30""1i\31""2i\31""3j\32""3j\32""2i\33""2"
+ "h\33""3i\33""4j\34""5k\34""5l\35""6m\36""7n\37""8o\37""9p\40""9q!:r!;s\""
+ "<t#=t$=u$>v%?w&@x'@y'Az(B{)C|*D}*D~+E\177,E\200,F\200-G\201.G\202/H\202/"
+ "I\2030J\2041J\2054O\2125Q\2146R\2157S\2168S\2178T\217\2027Q\215\37""7Q\216"
+ "8R\2179S\220:T\221:U\222;V\222<V\223<W\224=X\225>Y\226@\\\232B_\235C`\236"
+ "Da\237Eb\240Eb\241Fc\242Hd\243He\244Ie\245Jf\246Kg\247Kh\247Li\250Mi\251"
+ "Mj\252Nk\253Mj\252Kh\250Kh\251Li\252\210\23,b\5\24-c\25.d\25/e\26/f\27""0"
+ "g\202\30""1h*\30""1g\31""0f\32""1g\32""2h\33""3i\33""4j\33""4k\34""5l\35"
+ """6l\36""7m\36""8n\37""8o\40""9p!:q!;r\";s#<t#=u$>v%?w&?x&@y'Az(B{)C|)C}"
+ "*D}+E~+E\177,E\200-F\200.G\201.H\202/I\2030I\2040J\2052L\2075Q\2146R\215"
+ "6R\2166R\2155O\213\2026P\214\37""7Q\2158R\2169S\2179T\220:T\221;U\222;V\223"
+ "<W\224=W\225?Z\230A^\234B_\235C`\236Da\237Da\240Eb\241Fc\241Gd\243Hd\243"
+ "Ie\244Jf\245Jg\246Kh\247Lh\250Mi\251Mj\252Nk\253Kg\247Kg\250Kh\251Li\252"
+ "\210\23,bR\24-c\24.d\25.e\26/f\27""0g\27/e\27/d\30/e\31""0f\31""1g\32""2"
+ "h\33""2h\33""3i\33""4j\34""5k\35""6l\35""6m\36""7n\37""8o\40""9p\40:q!:r"
+ "\";s\"<t#=u$=v%>w%?w&@x'Ay(Az(B{)C|*D}*E~+E\177,E\200-F\200-G\201.G\202/"
+ "H\203/I\2040J\2051K\2063N\2115Q\2145P\2134N\2115O\2125O\2136P\2147Q\2157"
+ "R\2168S\2179S\220:T\221:U\222;V\223<V\224=X\226@]\232A^\233B_\235C_\235C"
+ "`\236Da\237Eb\240Ec\241Gc\242Hd\243Ie\244If\245Jf\246Kg\247Lh\250Li\251M"
+ "j\252Li\251If\246Jg\247Kh\250Li\251\210\23,bR\23-c\24-d\25.e\25.c\25-b\26"
+ ".b\27.c\30/d\30""0e\31""1f\32""1g\32""2h\33""3i\33""4j\34""5k\34""5l\35""6"
+ "m\36""7n\37""8o\37""8p\40""9q!:r!;r\"<s#<t$=u$>v%?w&@x&@y'Az(B{)C|)C}*D~"
+ "+E\177,E\200,F\200-F\200.G\201/H\202/I\2030J\2041J\2051K\2063N\2113M\210"
+ "4M\2114N\2125O\2136P\2147Q\2157Q\2168R\2179S\2209T\220:U\221;U\222<W\224"
+ "?[\231@]\232A^\233B^\234B_\235C`\236Da\237Da\240Eb\241Fc\242Hd\243He\244"
+ "Ie\245Jf\246Kg\246Kh\247Li\250Mi\251Jf\246If\246Jg\247Kg\250Kh\251\211\23"
+ ",b1\24,b\24+`\24,`\25,a\26-b\27.c\27/d\30""0e\31""0f\31""1g\32""2h\33""3"
+ "i\33""3j\33""4k\34""5l\35""6l\36""7m\36""7n\37""8o\40""9p\40:q!;r\";s#<t"
+ "#=u$>v%>w&?x&@y'Az(B{(B|)C}*D}+E~+E\177,E\200-F\200-G\201.H\202/I\2030I\204"
+ "0J\2051K\2062L\2073L\2103M\2114N\2125O\213\2026P\214\27""7Q\2158R\2168S\217"
+ "9S\220:T\221;U\222=Z\227?\\\231@\\\232A]\233A^\234B_\235C`\236C`\237Da\237"
+ "Eb\240Fc\241Gd\242Hd\243Ie\244Jf\245Jg\246Kg\247\202Lh\250\5He\245If\246"
+ "Jf\247Jg\250Kh\251\207\23,bS\23+a\22*^\23*^\23+_\24+`\25,a\26-b\26.c\27."
+ "d\30/e\31""0f\31""1f\32""2g\33""2h\33""3i\33""4j\34""5k\35""6l\35""6m\36"
+ """7n\37""8o\37""9p\40""9q!:r\";s\"<t#=u$=v%>v%?w&@x'Ay(Az(B{)C|*D}*E~+E\177"
+ ",E\200,F\200-G\201.G\202/H\203/I\2030J\2051K\2062K\2062L\2073M\2104N\211"
+ "4O\2125O\2136P\2147Q\2157R\2168R\2179S\220:T\221<W\224>[\230?[\231@\\\231"
+ "@]\232A^\233B_\234C_\235C`\236Da\237Eb\240Eb\241Gc\242Hd\243Ie\244If\245"
+ "Jf\246Kg\247Kh\250If\246Hd\245Ie\245If\246Jg\247Kh\250\205\23,b\2\23+a\22"
+ "*^\202\22)]Q\22)^\23*_\24+`\25,`\25-a\26-b\27.c\30/d\30""0e\31""1f\32""1"
+ "g\32""2h\33""3i\33""4j\34""4k\34""5l\35""6m\36""7n\36""8o\37""8p\40""9p!"
+ ":q!;r\"<s#<t$=u$>v%?w&@x&@y'Az(B{)C|)D}*D~+E\177,E\200,F\200-F\200.G\201"
+ "/H\202/I\2030I\2041J\2051K\2062L\2073M\2104M\2114N\2125O\2136P\2147Q\215"
+ "7Q\2168R\2179S\217:U\221=Y\226>Z\227?[\230?\\\231@]\232A]\233A^\234B_\235"
+ "C`\236Da\237Da\240Eb\241Fc\242Gd\242Hd\243Ie\244Jf\245Jg\246Kg\247Gd\243"
+ "Hd\244He\245If\246Jg\247Kg\250\203\23,b\2\23,a\22*_\205\22)]\13\23*^\24+"
+ "_\24,`\25,a\26-b\27.c\27/d\30/e\31""0f\31""1g\32""2h\202\33""3i\14\33""4"
+ "j\34""5k\35""6l\36""7m\36""7n\37""8o\40""9p\40:q!:r\";s#<t#=u\202%>w$%?x"
+ "&@y'Az(Bz(B{)C|*D}+E~+E\177,E\200-F\200-G\201.H\202/H\2030I\2040J\2051K\206"
+ "2L\2073L\2103M\2114N\2115O\2125P\2136P\2147Q\2158R\2168S\217<W\224=Y\226"
+ ">Z\227>[\230?\\\231@\\\232@]\233A^\234B_\235\202C`\236\17Da\237Eb\240Fc\241"
+ "Gc\242Hd\243Ie\244If\245Jg\246Ie\245Gc\243Gd\244He\245Ie\246Jf\247Jg\250"
+ "\202\23,b\1\22*_\207\22)]\31\23*^\23*_\24+`\25,a\26-b\26.c\27.d\30/d\30""0"
+ "e\31""1f\32""2g\33""2h\33""3i\33""4j\34""5k\34""5l\35""6m\36""7n\37""8o\37"
+ """9p\40""9q!:r\";s\"<t%>x\202'@z6&?x&@x'@y'Az(B{)C|*D}*D~+E\177,E\200-F\200"
+ "-G\201.G\202/H\203/I\2030J\2051K\2052K\2062L\2073M\2104N\2115N\2125O\213"
+ "6P\2147Q\2157R\2169U\221<X\225=Y\226=Z\227>[\230?[\231?\\\231@]\232A^\233"
+ "B^\234B_\235C`\236Da\237Eb\240Eb\241Fc\242Hd\243Ie\244Ie\245Jf\246Fc\242"
+ "Fc\243Gd\243Hd\244Ie\245If\246Jg\247\22+`\211\22)]\34\22)^\23*_\24+_\25,"
+ "`\25-a\26-b\27.c\27/d\30""0e\31""0f\32""1g\32""2h\33""3i\33""4j\34""4k\34"
+ """5l\35""6m\36""7m\36""8n\37""8o\40""9p!:q!;s$>w&?y'@z'A{(A|\202&@y2'Az("
+ "B{)C|)C}*D~+E\177,E\177,E\200-F\200.G\201.H\202/I\2030I\2041J\2051K\2062"
+ "L\2073M\2103M\2114N\2125O\2136P\2146P\2157R\216;W\223<X\224<Y\225=Y\226>"
+ "Z\227>[\230?\\\231@]\232A]\233A^\234B_\235C`\236D`\237Da\240Eb\241Fc\241"
+ "Gd\242Hd\243Ie\244Hd\244Eb\241Fc\242Gc\243Hd\244He\245If\246Jf\247\213\22"
+ ")]O\23*^\23+_\24+`\25,a\26-b\26.c\27/d\30/e\31""0f\31""1g\32""2h\33""3h\33"
+ """3i\33""4j\34""5k\35""6l\35""6m\36""7n\37""8o\40""9p!:q#=v%>x&?y&@z'A{("
+ "A|(B|'@z'Ay(Az(B{)C|*D}+E~+E\177,E\200-F\200-G\201.H\202/H\2030I\2040J\205"
+ "1K\2062K\2072L\2073M\2104N\2115O\2125O\2136P\2149T\221;W\223;X\224<X\225"
+ "=Y\226=Z\227>[\230?\\\231@\\\232@]\233A^\234B_\235C_\235C`\236Da\237Eb\240"
+ "Fc\241Gc\242Hd\243Ie\244Fb\241Eb\241Fb\242Gc\243Gd\244He\245Ie\246Jf\246"
+ "\213\22)]\35\23*^\23*_\24+`\25,a\25-b\26.c\27.c\30/d\30""0e\31""1f\32""1"
+ "g\32""2h\33""3i\33""4j\34""5k\34""5l\35""6m\36""7n\37""8o\40""9p#<u$=w%>"
+ "w%?x&?y'@z(A{(B|)B}\202'Az&(B{)C|)D}*D~+E\177,E\200,F\200-G\200.G\201/H\203"
+ "/I\2030J\2041J\2052K\2062L\2073M\2104N\2115N\2125O\2137Q\215:V\222:V\223"
+ ";W\224<X\225<Y\226=Z\226>Z\227?[\230?\\\231@]\232A^\233B^\234B_\235C`\236"
+ "Da\237Da\240Eb\241Fc\242\202Hd\243\10E`\240Ea\241Fb\241Fc\242Gd\243Hd\244"
+ "Ie\245If\246\214\22)]N\23*^\24+_\24,`\25,a\26-b\27.c\27/d\30""0e\31""0f\32"
+ """1g\32""2h\33""3i\33""4j\33""4k\34""5l\35""6m\36""7m\37""8o\";t#<u$=v$>"
+ "w%>x&?y&@z'A{(B|)B}(B|'Az(B{(B|)C|*D}+E~+E\177,E\200-F\200.G\201.H\202/I"
+ "\2030I\2041J\2051K\2062L\2073L\2103M\2114N\2125O\2128T\2179U\221:V\222;W"
+ "\223;X\224<Y\225=Y\226>Z\227>[\230?\\\231@]\232A]\233A^\234B_\235C`\236C"
+ "`\237Da\240Eb\240Fc\241Gd\242Fa\240E`\237Ea\240Eb\241Fb\242Gc\243Hd\244H"
+ "e\245If\246\214\22)]N\23*^\23*_\24+`\25,a\26-b\26.c\27/d\30/e\30""0f\31""1"
+ "g\32""2g\33""2h\33""3i\33""4j\34""5k\35""5l\36""7n!:s\";t#<u#=v$=w%>x%?y"
+ "&@z'@{(A|(B|)C}'Az(Az(B{)C|*D}*D~+E\177,E\200-F\200-G\201.G\202/H\203/I\204"
+ "0J\2051K\2062K\2062L\2073M\2104N\2116P\2148T\2209U\221:V\222:W\223;W\224"
+ "<X\225=Y\226=Z\227>[\230?[\231@\\\231@]\233A^\233B_\234C_\235C`\236Da\237"
+ "Eb\240Ec\241Fc\242D_\236E`\237Ea\240Ea\241Fb\242Fc\243Gd\244He\245Ie\245"
+ "\214\22)]N\22*^\23*_\24+`\25,a\25-a\26-b\27.c\30/d\30""0e\31""1f\32""1g\32"
+ """2h\33""3i\33""4j\34""4k\35""6n\40""9r!:s\";t\";u#<v$=v$>w%?x&?y'@z'A{("
+ "B|&@y'@y'Az(B{)C|)C}*D~+E\177,E\200,F\200-F\200.G\201/H\202/I\2030J\2041"
+ "J\2051K\2062L\2073M\2104M\2117R\2168T\2209U\221:V\222:V\223;W\224<X\225<"
+ "Y\225=Z\226>Z\227?[\230?\\\231@]\232A]\233A^\234B_\235C`\236Da\237Da\240"
+ "Eb\241Da\237D_\236D`\237E`\240Ea\240Eb\241Fc\242Gc\243Hd\244He\245\215\22"
+ ")]\30\23*^\24+_\24+`\25,a\26-b\27.c\27/d\30/e\31""0f\31""1g\32""2h\33""3"
+ "i\33""3j\35""5m\37""8p\40""9q\40:r!:s\";t#<u#=v$=w%>x&?y\202&@z)%?w%?x&@"
+ "y'Az(Bz(B{)C|*D}+E~+E\177,E\200-F\200.G\201.H\202/H\2030I\2040J\2051K\206"
+ "2L\2073L\2104N\2127S\2178T\2179U\2209U\221:V\222;W\223;X\224<X\225=Y\226"
+ ">Z\227>[\230?\\\231@\\\232A]\233A^\234B_\235C`\236C`\237Da\237Eb\240\202"
+ "C^\235\10D_\236E`\237Ea\240Eb\241Fb\242Gc\243Gd\244He\245\215\22)]M\23*^"
+ "\23*_\24+`\25,a\26-b\26.c\27.c\30/e\30""0e\31""1f\32""2g\33""2h\34""5l\36"
+ """7o\37""8p\40""9q\40""9r!:s\";t\"<u#<v$=w%>x%?y%?x$>v%>v%?w&@x'Ay'Az(B{"
+ ")C|*D}*D~+E\177,E\200-F\200-G\201.G\202/H\203/I\2040J\2041K\2052K\2062L\207"
+ "5Q\2147S\2168S\2178T\2209U\221:V\222:W\223;W\224<X\225=Y\226=Z\227>[\230"
+ "?[\230@\\\231@]\233A^\233B_\234B_\235C`\236Da\237C`\236B]\234C^\235D_\236"
+ "E`\237Ea\240Ea\241Fb\242Fc\243Gd\243Hd\245\215\22)]B\22)^\23*_\24+_\25,`"
+ "\25-a\26-b\27.c\27/d\30""0e\31""1f\32""1g\33""4k\35""6n\36""7o\37""7p\37"
+ """8q\40""9r!:s!;t\";t#<u$=v$>w$=v#<t$=u$>v%?w&?x&@y'Az(B{)C|)C}*D~+E\177"
+ ",E\177,F\200-F\200.G\201.H\202/I\2030I\2041J\2051K\2062L\2075P\2136R\216"
+ "7S\2178T\2209U\2219V\222:V\223;W\224;X\224<Y\225=Y\226>Z\227>[\230?\\\231"
+ "@]\232A]\233A^\234B_\235C`\236Da\237\202B]\234\11C^\235C_\235D_\236E`\237"
+ "Ea\240Eb\241Fc\242Gc\243Hd\244\216\22)]L\23*^\24+_\24+`\25,a\26-b\26.c\27"
+ "/d\30/e\31""0f\32""3j\33""5m\34""6n\36""6n\36""7o\37""8p\40""9q\40:r!:s\""
+ ";t#<u#=v\"<t\";s#<t#=u$>v%>w%?x&@y'Ay(Bz(B{)C|*D}+E~+E\177,E\200-F\200-G"
+ "\201.H\202/H\2030I\2040J\2051K\2062L\2073M\2116R\2167S\2168T\2178T\2209U"
+ "\221:V\222;W\223;X\224<X\225=Y\226>Z\227>[\230?\\\231@\\\232@]\233A^\234"
+ "B_\235C_\236C_\235A\\\232B]\233C^\234C^\235D_\236E`\237Ea\240Eb\241Fb\242"
+ "Gc\243Gd\244\216\22)]L\23*^\23*_\24+`\25,a\25-b\26.b\27.d\30/e\31""2i\32"
+ """4k\33""4l\34""5m\35""6n\36""7o\37""8p\37""8q\40""9r!:s\";t\"<u!;s!:r\""
+ ";s\"<t#=t$=u%>v%?w&@x'@y'Az(B{)C|*D}*D~+E\177,E\200,F\200-G\201.G\202/H\202"
+ "/I\2030J\2041J\2052K\2062L\2075Q\2147S\2167S\2178T\2209U\221:V\222:V\223"
+ ";W\224<X\225=Y\226=Z\227>Z\227?[\230?\\\231@]\232A^\233B^\234B_\235A]\233"
+ "A\\\232B]\233B]\234C^\235D_\236D`\237E`\240Ea\241Fb\242Fc\242Gd\243\217\22"
+ ")]1\23*^\24+_\25,`\25,a\26-b\27.d\30""1h\31""3j\32""3k\33""4l\33""5m\34""6"
+ "n\36""7o\36""7p\37""8q\40""9q!:s!;s\40:r\40""9p!:q!;r\";s#<t#=u$>v%?w&?x"
+ "&@y'Az(B{)C|)C}*D~+E~+E\177,E\200-F\200.G\201.H\202/I\2030I\2041J\2051K\206"
+ "2L\2074N\2116R\2167S\2178T\220\2029U\221\30:V\222;W\223;X\224<Y\225=Y\226"
+ ">Z\227>[\230?\\\231@]\232A]\233A^\234B^\234@[\231A[\232A\\\233B]\234C^\234"
+ "C_\235D_\236E`\237Ea\240Eb\241Fc\242Gc\243\217\22)]K\23*^\23+_\24+`\25,a"
+ "\26-c\27""0g\30""2i\31""2j\32""3k\32""4l\33""5m\34""5m\35""6n\36""7o\37""8"
+ "p\40""9q\40:r\40""9q\37""8o\40""9p\40:q!:r\";s\"<t#=u$=v%>w%?x&@x'Ay(Az("
+ "B{)C|*D}*E~+E\177,E\200-F\200-G\201.H\202/H\2030I\2040J\2051K\2062K\2062"
+ "L\2075Q\2147S\2168T\2178T\2209U\221:V\222;W\223;X\224<X\225=Y\226=Z\227>"
+ "[\230?[\231@\\\232@]\232A^\234@\\\232@Z\230@[\231A\\\232B]\233B^\234C^\235"
+ "D_\236E`\237Ea\240Ea\241Fb\242Gc\243\217\22)]K\22*^\23*_\24+`\25-b\26/f\27"
+ """0g\30""1h\31""2i\31""3j\32""4k\33""5l\34""5m\35""6n\36""7o\37""8p\37""8"
+ "q\37""8o\36""7n\37""8o\37""8p\40""9q!:q!;r\"<s#<t$=u$>v%?w&@x'@y'Az(B{)C"
+ "|)C}*D~+E\177,E\200,F\200-F\200.G\201/H\202/I\2030J\2041J\2052K\2062L\207"
+ "4N\2117S\2167S\2178T\2209U\221:V\222:V\223;W\224<X\225<Y\226=Z\226>Z\227"
+ "?[\230?\\\231@]\232A]\233?Z\227?Z\230@[\231A\\\232A\\\233B]\234C^\235D_\236"
+ "D`\237E`\240Ea\241Fb\241Fc\242\220\22)]\36\23*^\24,a\25/e\26/f\27""0g\30"
+ """1h\30""2i\31""3j\32""3k\33""4l\33""5m\34""6n\36""6o\36""7p\36""7n\35""6"
+ "l\36""7m\36""7n\37""8o\40""9p\40:q!;r\";s#<t#=u$>v%?w&?x&@y'Az\202(B{\21"
+ ")C|*D}+E~+E\177,E\200-F\200.G\201.H\202/I\2030I\2040J\2051K\2062L\2073L\210"
+ "6Q\2147S\2178T\217\2029U\221\27:V\222;W\223;X\224<Y\225=Y\226>Z\227>[\230"
+ "?\\\231@\\\232?[\231>Y\227?Z\230@[\231A[\232A\\\232B]\233C^\234C_\235D_\236"
+ "E`\237Ea\240Eb\241Fc\242\220\22)]<\23+`\24-d\25.e\26/f\27""0g\27""1h\30""2"
+ "i\31""2j\31""3k\32""4k\33""5l\34""5m\35""6n\35""6m\34""5k\35""6l\35""6m\36"
+ """7n\37""8o\40""9p\40:q!:r\";s\"<t#=u$=v%>v%?w&@x'Ay'Az(B{)C|*D}*D~+E\177"
+ ",E\200-F\200-G\201.G\202/H\2030I\2040J\2041K\2052K\2062L\2074N\2117S\216"
+ "8S\2178T\2209U\221:V\222;W\223;W\224<X\225=Y\226=Z\227>[\230?[\231?\\\231"
+ "\202>Y\226\14?Z\227?Z\230@[\231A\\\232B]\233B]\234C^\235D_\236E`\237Ea\240"
+ "Ea\241Fb\242\217\22)]K\22*_\23,c\24-d\25.e\26/e\26""0f\27""0g\30""1h\30""2"
+ "i\31""3j\32""4k\33""4l\33""5m\34""5l\33""4j\34""4k\34""5l\35""6m\36""7n\37"
+ """8o\37""9p\40""9p!:q!;r\"<s#<t$=u$>v%?w&?x&@y'Az(B{)C|)C}*D~+E\177,E\200"
+ ",F\200-F\200.G\201.H\202/I\2030J\2041J\2051K\2062L\2073M\2105P\2147S\217"
+ "8T\2209U\2219V\222:V\223;W\224<X\224<Y\225=Z\226>Z\227?[\230>[\230=X\225"
+ ">X\226>Y\227?Z\230@[\231A\\\232A\\\233B]\234C^\235D_\236D`\237E`\240Ea\240"
+ "Eb\241\216\22)]\1\22+`\202\23,bI\24-c\25.d\25.e\26/f\27""0g\27""1h\30""2"
+ "i\31""2j\32""3k\32""4l\33""4k\33""3i\33""3j\33""4k\34""5k\35""6l\35""7m\36"
+ """7n\37""8o\40""9p\40:q!:r\";s#<t#=u$>v%>w%?x&@y'Ay(Bz(B{)C|*D}+E~+E\177"
+ ",E\200-F\200.G\201.H\202/H\2030I\2040J\2051K\2062L\2073L\2103M\2117R\216"
+ "8T\2178U\2209U\221:V\222;W\223;X\224<X\225=Y\226>Z\227>[\230=X\225=W\225"
+ "=X\226>Y\227?Z\230@Z\231@[\231A\\\232B]\233C^\234C^\235D_\236E`\237Ea\240"
+ "Eb\241\215\22)]\1\23+`\203\23,bI\24-c\24-d\25.e\26/f\26""0g\27""1h\30""1"
+ "i\31""2j\31""3j\32""3i\32""2g\33""2h\33""3i\33""4j\34""5k\34""6l\35""6m\36"
+ """7n\37""8o\37""9p\40""9q!:r\";s\"<t#=t$=u$>v%?w&@x'@y'Az(B{)C|*D}*D~+E\177"
+ ",E\200,F\200-F\201.G\202/H\202/I\2030J\2051J\2052K\2062L\2073M\2105O\212"
+ "7S\2178T\2209U\221:V\222:W\223;W\224<X\225=Y\226=Z\227>Z\227<V\223=W\224"
+ "=X\225>Y\226?Y\227?Z\230@[\231A\\\232B]\233B]\234C^\235D_\236D`\237E`\240"
+ "Ea\241\214\22)]\1\23+a\204\23,bI\23,c\24-c\25.d\25/e\26""0f\27""0g\30""1"
+ "h\30""2i\31""2h\31""0f\32""1g\32""2h\33""3i\33""4j\34""4k\34""5l\35""6m\36"
+ """7n\36""8o\37""8o\40""9p!:q!;r\";s#<t$=u$>v%?w&?x&@y'Az(B{)C|)C}*D}+E~+"
+ "E\177,E\200-F\200.G\201.H\202/I\2030I\2041J\2051K\2062L\2073M\2103M\2116"
+ "Q\2148T\2209U\2219U\222:V\222;W\224<X\224<Y\225=Y\226<W\224;V\223<W\224="
+ "X\225>X\226>Y\227?Z\230@[\231A\\\232A\\\233B]\234C^\235C_\236D_\236E`\237"
+ "Ea\240\213\22)]\1\23+a\206\23,bH\24-c\24.d\25.e\26/f\27""0g\27""1h\30""1"
+ "g\30/e\31""0f\31""1g\32""2h\33""3h\33""3i\33""4j\34""5k\35""6l\35""6m\36"
+ """7n\37""8o\40""9p\40:q!:r\";s\"<t#=u$>v%>w%?w&@x'Ay(Az(B{)C|*D}+E~+E\177"
+ ",E\200-F\200-G\201.H\202/H\2030I\2040J\2051K\2062K\2073L\2103M\2104N\211"
+ "7R\2168T\2209U\221:V\222;W\223;X\224<X\225=Y\226;U\222;V\223<W\224=W\225"
+ "=X\226>Y\227?Z\227@Z\230@[\231A\\\232B]\233B^\234C^\235D_\236E`\237Ea\240"
+ "\211\22)]\2\22)^\23+a\207\23,bH\23-c\24-d\25.e\26/f\26""0f\27""0f\27.d\30"
+ "/d\30""0e\31""1f\32""1g\32""2h\33""3i\33""4j\34""5k\34""5l\35""6m\36""7n"
+ "\37""8o\37""9p\40""9q!:r!;r\"<s#<t$=u$>v%?w&@x'@y'Az(B{)C|)D}*D~+E\177,E"
+ "\200,F\200-G\201.G\201/H\202/I\2030J\2041J\2051K\2062L\2073M\2104N\2114O"
+ "\2127S\2179U\221:V\222:W\223;W\224<X\225;W\223:U\222;U\222<V\223<W\224=X"
+ "\225>Y\226?Y\227?Z\230@[\231A\\\232A\\\233B]\234C^\235D_\236D`\237E`\240"
+ "\210\22)]\2\22*^\23,a\211\23,b\20\24-c\25.d\25/e\26/e\26-b\27.c\27/d\30""0"
+ "e\31""0f\32""1g\32""2h\33""3i\33""4j\33""4k\34""5l\35""6l\202\36""7n$\37"
+ """8o\40""9p!:q!;r\";s#<t#=u$>v%?w&?x&@y'Az(B{(B|)C}*D}+E~+E\177,E\200-F\200"
+ ".G\201.H\202/I\2030I\2041J\2051K\2062L\2073L\2103M\2114N\2125O\2138S\217"
+ "9U\221:V\222;W\223;X\224\202:T\221\17;U\222;V\223<W\224=W\225>X\226>Y\227"
+ "?Z\230@[\231A[\232A\\\233B]\233C^\234C_\235D_\236E`\237\207\22)]\1\22*^\213"
+ "\23,bG\24-c\24.d\25-c\25,a\26-b\26.c\27.d\30/e\31""0f\31""1g\32""2g\33""2"
+ "h\33""3i\33""4j\34""5k\35""6l\35""6m\36""7n\37""8o\40""9p\40:q!:r\";s\"<"
+ "t#=u$=v%>v%?w&@x'Ay(Az(B{)C|*D}*E~+E\177,E\200-F\200-G\201.G\202/H\2030I"
+ "\2040J\2051K\2062K\2062L\2073M\2104N\2115N\2125O\2138S\217:V\222;W\223:V"
+ "\2229S\220:T\221:U\222;V\223<V\224=W\225=X\225>Y\226?Y\227@Z\230@[\231A\\"
+ "\232B]\233B]\234C^\235D_\236E`\237\206\22)]\1\22*_\214\23,bG\23,c\24,b\24"
+ "+`\25,`\25-a\26-b\27.c\30/d\30""0e\31""1f\32""1g\32""2h\33""3i\33""4j\34"
+ """4k\34""5l\35""6m\36""7n\37""8o\37""8p\40""9p!:q!;r\"<s#<t$=u$>v%?w&@x'"
+ "@y'Az(B{)C|)C}*D~+E\177,E\200,F\200-F\200.G\201/H\202/I\2030J\2041J\2051"
+ "K\2062L\2073M\2104N\2114N\2125O\2136P\2148S\216:V\2229T\2209S\2209T\220:"
+ "U\221;U\222;V\223<W\224=X\225>X\226>Y\227?Z\230@[\231A\\\232A\\\233B]\234"
+ "C^\235D_\236D`\237\205\22)]\1\22*_\215\23,b\37\23+a\23*_\24+_\24,`\25,a\26"
+ "-b\27.c\27/d\30/e\31""0f\31""1g\32""2h\33""3i\33""3j\33""4k\34""5k\35""6"
+ "l\36""7m\36""7n\37""8o\40""9p\40:q!;r\";s#<t#=u$>v%>w&?x&@y'Az\202(B{&)C"
+ "|*D}+E~+E\177,E\200-F\200.G\201.H\202/H\2030I\2040J\2051K\2062L\2073L\210"
+ "3M\2114N\2125O\2136P\2136P\2147Q\2168R\2168S\2179S\220:T\221;U\222;V\223"
+ "<W\224=W\225>X\226>Y\227?Z\230@[\231@[\232A\\\232B]\233C^\234C^\235D_\236"
+ "\204\22)]\1\22*_\215\23,b\40\23+a\22)]\23*^\23+_\24+`\25,a\26-b\26.c\27."
+ "d\30/e\30""0f\31""1f\32""2g\33""2h\33""3i\33""4j\34""5k\34""6l\35""6m\36"
+ """7n\37""8o\37""9p\40""9q!:r\";s\"<t#=t$=u%>v%?w&@x'Ay\202(B{&)C|*D}*D~+"
+ "E\177,E\200-F\200-G\201.G\202/H\203/I\2030J\2041K\2052K\2062L\2073M\2104"
+ "N\2115N\2125O\2136P\2147Q\2157R\2168R\2179S\220:T\221:U\222;V\223<V\223="
+ "W\224=X\225>Y\226?Y\227?Z\230@[\231A\\\232B]\233B]\234C^\235D_\236\203\22"
+ ")]\1\22+`\215\23,b\1\23+a\202\22)]F\22)^\23*_\24+_\25,`\25-a\26-b\27.c\27"
+ "/d\30""0e\31""1f\32""1g\32""2h\33""3i\33""4j\34""5k\34""5l\35""6m\36""7n"
+ "\36""8o\37""8o\40""9p!:q!;r\"<s#<t#=u$>v%?w&@x'@y)C~(B{)C|)C}*D~+E\177,E"
+ "\177,E\200-F\200.G\201.H\202/I\2030I\2041J\2051K\2062L\2073M\2104M\2114N"
+ "\2125O\2136P\2146Q\2157Q\2158R\2179S\2179T\220:T\221;U\222;V\223<W\224=X"
+ "\225>X\226?Y\227?Z\230@[\231A\\\232A\\\233B]\234C^\235C_\236\202\22)]\1\23"
+ "+`\215\23,b\1\23+a\204\22)]\13\23*^\24+_\24+`\25,a\26-b\26.c\27/d\30/e\31"
+ """0f\31""1g\32""2h\202\33""3i:\33""4j\34""5k\35""6l\35""6m\36""7n\37""8o"
+ "\40""9p\40:q!;r\";s#<t#=u$>v%>w%?x'A{*D~)B|(B{)C|*D}+E~+E\177,E\200-F\200"
+ "-G\201.G\202/H\2030I\2040J\2051K\2062L\2073L\2103M\2104N\2115O\2125O\213"
+ "6P\2147Q\2158R\2168S\2179S\220:T\221;U\222;V\223<V\224=W\225=X\226>Y\227"
+ "?Z\230@Z\230@[\231A\\\232B]\233C^\234C^\235\22)]\23+a\215\23,b\1\23+a\205"
+ "\22)]F\23*^\23*_\24+`\25,a\25-b\26.c\27.c\30/d\30""0e\31""1f\32""1g\33""2"
+ "h\33""3i\33""4j\34""5k\34""5l\35""6m\36""7n\37""8o\37""9p\40""9q!:r\";s\""
+ "<t#=t$=u$>v%?w)B|*C~*D~(B{)C|*D}*D~+E\177,E\200,F\200-F\201.G\201/H\202/"
+ "I\2030J\2041J\2052K\2062L\2073M\2104N\2114N\2125O\2136P\2147Q\2157Q\2168"
+ "R\2179S\2209T\221:U\222;U\222<V\223<W\224=X\225>Y\226?Y\227?Z\230@[\231A"
+ "\\\232B]\233B]\234C^\235\23+a\215\23,b\1\23+a\206\22)]\37\22)^\23*^\24+_"
+ "\24,`\25-a\26-b\27.c\27/d\30""0e\31""0f\32""1g\32""2h\33""3i\33""4j\33""4"
+ "k\34""5l\35""6m\36""7m\36""8n\37""8o\40""9p!:q!;r\";s#<t#=u$>v&@y)B})C~*"
+ "D\177\202)B|$)C}*D}+E~+E\177,E\200-F\200.G\201.H\202/I\2030I\2041J\2051K"
+ "\2062L\2073L\2103M\2114N\2125O\2136P\2146P\2157Q\2158R\2169S\2179T\220:T"
+ "\221;U\222;V\223<W\224=X\225>X\226>Y\227?Z\230@[\231@[\232A\\\233B]\234C"
+ "^\235\215\23,b\1\23+a\210\22)]\35\23*^\24+_\24+`\25,a\26-b\26.c\27/d\30/"
+ "e\31""0f\31""1g\32""2g\33""2h\33""3i\33""4j\34""5k\35""6l\36""6m\36""7n\37"
+ """8o\40""9p\40:q!:r\";s\"<t#=u$=v'A{(B})C}\202*D~%(B{)C|*D}*E~+E\177,E\200"
+ "-F\200-G\201.H\202/H\2030I\2040J\2051K\2052K\2072L\2073M\2104N\2115O\212"
+ "5O\2136P\2147Q\2158R\2168S\2179S\220:T\221:U\222;V\223<W\224=W\225=X\226"
+ ">Y\226?Z\227@Z\230@[\231A\\\232B]\233B^\234\214\23,b\1\23+a\211\22)]\37\22"
+ "*^\23*_\24+`\25,a\25-b\26-b\27.c\30/d\30""0e\31""1f\32""1g\33""2h\33""3i"
+ "\33""4j\34""5k\34""5l\35""6m\36""7n\37""8o\37""8p\40""9q!:q!;r\"<s#<t$>w"
+ "'A{(B|)C}*C~*D\177\202)C|#)D}*D~+E\177,E\200,F\200-F\201.G\201/H\202/I\203"
+ "0J\2041J\2051K\2062L\2073M\2104N\2114N\2125O\2136P\2147Q\2157Q\2168R\217"
+ "9S\2209T\220:U\221;U\222<V\223<W\224=X\225>Y\226>Y\227?Z\230@[\231A\\\232"
+ "A\\\233B]\234\213\23,b\2\23,a\22)^\212\22)]C\23*^\24+_\24,`\25,a\26-b\27"
+ ".c\27/d\30""0e\31""0f\32""1g\32""2h\33""3i\33""4j\33""4k\34""5l\35""6l\36"
+ """7m\36""7n\37""8o\40""9p!:q!;r\";s#<t&?y'A{(A|)B})C~*D\177*D~(B{)C|*D}+"
+ "E~+E\177,E\200-F\200-G\201.H\202/I\2030I\2040J\2051K\2062L\2073L\2103M\211"
+ "4N\2125O\2136P\2136P\2147Q\2158R\2168S\2179T\220:T\221;U\222;V\223<W\224"
+ "=W\225>X\226>Y\227?Z\230@[\231@[\232A\\\233B]\233\212\23,b\2\23,a\22)^\213"
+ "\22)]\37\23*^\23*_\24+`\25,a\26-b\26.c\27.d\30/e\30""0f\31""1f\32""2g\33"
+ """2h\33""3i\33""4j\34""5k\35""6l\35""6m\36""7n\37""8o\37""9p\40:q!:r\";s"
+ "#=u&@y'@{(A{(B|)C}*D~*D\177\202)C|\"*D}*D~+E\177,E\200,F\200-G\201.G\202"
+ "/H\203/I\2040J\2041K\2052K\2062L\2073M\2104N\2114O\2125O\2136P\2147Q\215"
+ "7R\2168R\2179S\220:T\221:U\222;V\223<V\224=W\224=X\226>Y\226?Y\227?Z\230"
+ "@[\231A\\\232B]\233\211\23,b\2\23,a\22)^\214\22)]\36\22)^\23*_\24+`\25,`"
+ "\25-a\26-b\27.c\27/d\30""0e\31""1f\32""1g\32""2h\33""3i\33""4j\34""5k\34"
+ """5l\35""6m\36""7n\37""8o\37""8p\40""9p!:q!;r$>w&?y'@z'A{(B|)B})C~\202*D"
+ "\177#)C|)C}*D~+E\177,E\200,F\200-F\200.G\201.H\202/I\2030J\2041J\2051K\206"
+ "2L\2073M\2104M\2114N\2125O\2136P\2146Q\2157Q\2158R\2179S\2179T\220:T\221"
+ ";U\222<V\223<W\224=X\225>X\226>Y\227?Z\230@[\231A\\\232A\\\233\210\23,b\2"
+ "\23,a\22)^\216\22)]B\23*^\24+_\24,`\25,a\26-b\27.c\27/d\30/e\31""0f\31""1"
+ "g\32""2h\33""3i\33""3j\33""4j\34""5k\35""6l\35""6m\36""7n\37""8o\40""9p\40"
+ ":q\";s%>x&?y&@z'A{(A|)B})C~*D\177+E\177)C})C|*D}+E~+E\177,E\200-F\200.G\201"
+ ".H\202/H\2030I\2040J\2051K\2062L\2073L\2103M\2104N\2115O\2125O\2136P\214"
+ "7Q\2158R\2168S\2179S\220:T\221;U\222;V\223<W\224=W\225=X\226>Y\227?Z\230"
+ "@Z\230@[\231A\\\232\207\23,b\2\23,a\22)^\217\22)]B\23*^\23*_\24+`\25,a\26"
+ "-b\26.c\27.c\30/d\30""0e\31""1f\32""2g\33""2h\33""3i\33""4j\34""5k\34""5"
+ "l\35""6m\36""7n\37""8o\37""9p\40""9q#<u%>x%?x&@z'@z'A{(B|)C}*C~*D\177+E\200"
+ ")C}*D}*D~+E\177,E\200,F\200-G\201.G\202/H\202/I\2030J\2041J\2052K\2062L\207"
+ "3M\2104N\2114N\2125O\2136P\2147Q\2157R\2168R\2179S\220:T\221:U\222;V\223"
+ "<V\224<W\224=X\225>Y\226?Y\227?Z\230@[\231A\\\232\206\23,b\2\23,a\22)^\220"
+ "\22)]\37\22)^\23*^\24+_\25,`\25-a\26-b\27.c\27/d\30""0e\31""1f\32""1g\32"
+ """2h\33""3i\33""4j\34""4k\34""5l\35""6m\36""7m\36""7n\37""8o\40""9q$=v$>"
+ "w%>x&?y'@z'A{(B|)B})C~*D\177\202+E\200!)C}*D~+E~,E\177,E\200-F\200.G\201"
+ ".H\202/I\2030I\2041J\2051K\2062L\2073M\2103M\2114N\2125O\2136P\2146Q\215"
+ "7Q\2158R\2168S\2179T\220:T\221;U\222;V\223<W\224=X\225>X\226>Y\227?Z\230"
+ "@[\231A\\\232\206\23,b\1\22)^\222\22)]A\23*^\23+_\24+`\25,a\26-b\26.c\27"
+ "/d\30/e\31""0f\31""1g\32""2h\33""2h\33""3i\33""4j\34""5k\35""6l\35""6m\36"
+ """7n\37""8o!:s#=v$=w%>x%?y&@z'A{(A|(B})C}*D~+D\177+E\200+E\177*D}*E~+E\177"
+ ",E\200-F\200-G\201.H\202/H\2030I\2040J\2051K\2062K\2072L\2103M\2104N\211"
+ "5O\2125O\2136P\2147Q\2158R\2168S\2179S\220:T\221:U\222;V\223<V\224=W\225"
+ "=X\226>Y\227?Z\230@Z\230@[\231\205\23,b\1\22*^\223\22)]A\22*^\23*_\24+`\25"
+ ",a\25-b\26.b\27.c\30/d\30""0e\31""1f\32""1g\32""2h\33""3i\33""4j\34""5k\34"
+ """5l\35""6m\36""7n\37""8o\";t#<v$=w%>x%?y&?y'@z'A{(B|)C}*C~*D\177+E\200,"
+ "F\200+F\177*D~+E\177,E\200-F\200-F\201.G\201/H\202/I\2030J\2041J\2051K\206"
+ "2L\2073M\2104N\2114N\2125O\2136P\2147Q\2157R\2168R\2179S\2209T\221:U\221"
+ ";U\222<V\223<W\224=X\225>X\226?Y\227?Z\230@[\231\204\23,b\1\22*^\225\22)"
+ "]\36\23*^\24+_\24,`\25-a\26-b\27.c\27/d\30""0e\31""0f\32""1g\32""2h\33""3"
+ "i\33""4j\33""4k\34""5l\35""6l\36""7m\40""9q\";t#<u#=v$>w%>x&?y&@z'A{(B|)"
+ "B})C~*D\177\202+E\200\40,G\200+F\200+E~+E\177,E\200-F\200.G\201.H\202/I\203"
+ "0I\2041J\2051K\2062L\2073L\2103M\2114N\2125O\2136P\2136P\2147Q\2158R\216"
+ "9S\2179T\220:T\221;U\222;V\223<W\224=W\225>X\226>Y\227?Z\230@[\231\203\23"
+ ",b\1\22*^\226\22)]@\23*^\23+_\24+`\25,a\26-b\26.c\27/d\30/e\31""0f\31""1"
+ "g\32""2g\33""2h\33""3i\33""4j\34""5k\35""6l\35""6m!:r\";t\"<u#=v$=w%>x%?"
+ "y&@z'A{(A|(B|)C}*D~+D\177+E\200,F\200-H\201,F\200+E\177,E\200-F\200-G\201"
+ ".G\202/H\203/I\2040J\2051K\2052K\2062L\2073M\2104N\2115N\2125O\2136P\214"
+ "7Q\2157R\2168R\2179S\220:T\221:U\222;V\223<V\224=W\225=X\226>Y\226?Z\227"
+ "?Z\230\202\23,b\1\22*^\227\22)]B\22*^\23*_\24+`\25,`\25-a\26-b\27.c\30/d"
+ "\30""0e\31""1f\32""1g\32""2h\33""3i\33""4j\34""4k\34""5l\36""7o!:s\";t\""
+ ";u#<v$=v$>w%?x&?y'@z'A{(B|)C})C~*D\177+E\200,F\200,G\201-H\202,G\200,E\200"
+ ",F\200-F\200.G\201/H\202/I\2030I\2041J\2051K\2062L\2073M\2104N\2114N\212"
+ "5O\2136P\2147Q\2157Q\2168R\2179S\2209T\220:U\221;U\222<V\223<W\224=X\225"
+ ">X\226>Y\227?Z\230\23,b\22*^\231\22)]\36\23*^\24+_\24,`\25,a\26-b\27.c\27"
+ "/d\30/e\31""0f\31""1g\32""2h\33""3i\33""3j\33""4k\34""5k\37""8q\40:r!:s\""
+ ";t#<u#=v$>w%>x&?y&@z'A{(A|)B})C~*D\177\202+E\200\40,G\200-H\201.I\202-G\200"
+ ",E\200-F\200-G\201.H\202/H\2030I\2040J\2051K\2062L\2073L\2103M\2114N\211"
+ "5O\2126P\2136P\2147Q\2158R\2168S\2179T\220:T\221;U\222;V\223<W\224=W\225"
+ ">X\226>Y\227?Z\230\22*^\232\22)]?\23*^\23*_\24+`\25,a\26-b\26.c\27.d\30/"
+ "d\30""0e\31""1f\32""2g\33""2h\33""3i\33""4j\35""6m\40""9q\40""9r!:s\";t\""
+ "<u#<v$=w%>x%?y&@z'@z(A{(B|)C}*D~*D\177+E\200,F\200-H\201-H\202.I\203-G\200"
+ ",F\200-G\201.G\202/H\203/I\2030J\2051K\2052K\2062L\2073M\2104N\2115N\212"
+ "5O\2136P\2147Q\2157R\2168R\2179S\220:T\221:U\222;V\223<V\224<W\225=X\225"
+ ">Y\226?Y\227\233\22)]$\22)^\23*_\24+_\25,`\25-a\26-b\27.c\27/d\30""0e\31"
+ """0f\32""1g\32""2h\33""3i\33""4j\36""7o\37""8q\40""9r!:s!;t\";u#<u$=v$>w"
+ "%>x&?y&@z'A{(B|)B})C~*D\177+E\200,F\200,G\201-H\202.I\202\202,E\200\31-F"
+ "\200.G\201.H\202/I\2030I\2041J\2051K\2062L\2073M\2104M\2114N\2125O\2136P"
+ "\2146P\2157Q\2168R\2169S\2179T\220:T\221;U\222<V\223<W\224=X\225>X\226>Y"
+ "\227\234\22)]C\23*^\24+_\24+`\25,a\26-b\26.c\27/d\30/e\31""0f\31""1g\32""2"
+ "h\33""3i\34""4k\36""7o\37""8p\40""9q\40""9r!:s\";t#<u#=v$=w%>x&?y&@z'A{("
+ "A|(B})C~*D~+D\177+E\200,F\200-H\201-G\201+E\177,E\200-F\200-G\201.H\202/"
+ "H\2030I\2040J\2051K\2062L\2073L\2103M\2104N\2115O\2125O\2136P\2147Q\2158"
+ "R\2168S\2179S\220:T\221:U\222;V\223<W\224=W\225=X\226>Y\227\302\303\307\314"
+ "\315\321\307\311\314\303\305\311\325\327\333\232\331\333\336\206\331\333"
+ "\337\204\332\333\337\215\332\334\340\1\333\334\340\202\333\334\341\223\333"
+ "\335\341\202\333\335\342\202\334\335\342\202\334\336\342\15\223\232\253p"
+ "{\223\247\252\262\253\255\261\260\262\266\257\261\266\253\255\262\260\262"
+ "\267\317\316\314\231\236\232\215\244\223\322\322\322\340\340\340\315\345"
+ "\345\345\4s}\221:Jm\232\234\241\240\240\240\202\250\250\250\7\241\241\241"
+ "\247\247\247\306\306\306\302\302\301\300\276\273\311\311\311\342\342\342"
+ "\315\345\345\345\4\206\216\236Yf\200\242\244\250\247\247\247\202\255\255"
+ "\255\2\250\250\250\256\256\256",
+};
+
diff --git a/src/image_data/rotation_orientation_vert_flipped.h b/src/image_data/rotation_orientation_vert_flipped.h
index 5586d04..bc8bbf2 100644
--- a/src/image_data/rotation_orientation_vert_flipped.h
+++ b/src/image_data/rotation_orientation_vert_flipped.h
@@ -4,1252 +4,733 @@
static const nv_image_t rotation_orientation_vert_flipped_image = {
90, 120, 3, 0,
- "\377\0\0\0\377\0\0\0\222\0\0\0\1\37\246\37\217)\334)\2&\262Q\35M\356\303"
- "\34E\375\1\25""4\277\204\0\0\0\221.\337.\1+\271\\\304\40N\375\204\0\0\0\222"
- "4\3424\304#W\375\204\0\0\0\2229\3449\1)s\346\303'`\375\204\0\0\0\221>\347"
- ">\1""9\314z\304*h\375\204\0\0\0\220B\351B\2=\321\201/|\364\304.p\375\204"
- "\0\0\0\2P\262\371Q\262\371\202R\263\371\202S\263\371\1T\263\371\203U\264"
- "\370\202V\264\370\203W\264\370\217X\265\370\203W\264\370\202V\264\370\203"
- "U\264\370\1T\263\371\202S\263\371\202R\263\371\1Q\262\371\202P\262\371\2"
- "O\262\371N\261\371\202M\261\371\202K\260\372\17J\260\372I\260\372H\257\372"
- "G\257\372F\257\372E\256\372D\256\372C\255\373B\255\373A\255\373@\254\373"
- ">\254\373=\253\373<\253\373;\253\374\2029\252\374\5""7\251\3746\251\3744"
- "\250\3743\250\3752\250\375\2141\247\375\204\0\0\0\202R\263\371\2S\263\371"
- "T\263\371\202U\264\370\202V\264\370\1W\264\370\204X\265\370\203Y\265\370"
- "\205Z\265\370\203Z\266\370\205Z\265\370\203Y\265\370\204X\265\370\1W\264"
- "\370\202V\264\370\202U\264\370\2T\263\371S\263\371\202R\263\371\1Q\262\371"
- "\202P\262\371\2O\262\371N\261\371\202M\261\371\202K\260\372\1J\260\372\202"
- "H\257\372\22G\257\372F\256\372E\256\372C\256\373B\255\373A\255\373@\254\373"
- "?\254\373>\254\373<\253\373;\253\374:\252\3749\252\3747\251\3746\251\374"
- "4\250\3744\250\3752\250\375\2131\247\375\204\0\0\0\1T\263\371\202U\264\370"
- "\1V\264\370\202W\264\370\202X\265\370\202Y\265\370\202Z\265\370\202Z\266"
- "\370\203[\266\370\213\\\266\370\203[\266\370\202Z\266\370\202Z\265\370\202"
- "Y\265\370\202X\265\370\202W\264\370\1V\264\370\202U\264\370\2T\263\371S\263"
- "\371\202R\263\371\6Q\262\371P\262\371O\262\371N\261\371M\261\371L\261\371"
- "\202K\260\372\7I\260\372H\257\372G\257\372F\257\372E\256\372D\256\372C\255"
- "\373\202A\255\373\13?\254\373>\254\373=\253\373;\253\374:\252\3749\252\374"
- "7\251\3746\251\3745\251\3744\250\3752\250\375\2121\247\375\204\0\0\0\3U\264"
- "\370V\264\370W\264\370\202X\265\370\1Y\265\370\202Z\265\370\1Z\266\370\202"
- "[\266\370\202\\\266\370\202]\266\367\204]\267\367\207^\267\367\204]\267\367"
- "\202]\266\367\202\\\266\370\202[\266\370\1Z\266\370\202Z\265\370\1Y\265\370"
- "\202X\265\370\2W\264\370V\264\370\202U\264\370\2T\263\371S\263\371\202R\263"
- "\371\33Q\262\371P\262\371O\262\371N\261\371M\261\371L\261\371K\260\372J\260"
- "\372I\260\372H\257\372G\257\372F\256\372D\256\372C\256\373B\255\373A\255"
- "\373@\254\373>\254\373=\253\373;\253\374:\252\3749\252\3748\252\3746\251"
- "\3745\251\3744\250\3752\250\375\2111\247\375\204\0\0\0\202X\265\370\2Y\265"
- "\370Z\265\370\202Z\266\370\2[\266\370\\\266\370\202]\266\367\202]\267\367"
- "\202^\267\367\221_\267\367\202^\267\367\202]\267\367\202]\266\367\2\\\266"
- "\370[\266\370\202Z\266\370\2Z\265\370Y\265\370\202X\265\370\5W\264\370V\264"
- "\370U\264\370T\263\371S\263\371\202R\263\371\202P\262\371\1O\262\371\202"
- "M\261\371\202K\260\372\13I\260\372H\257\372G\257\372F\256\372E\256\372C\256"
- "\373B\255\373A\255\373@\254\373>\254\373=\253\373\202;\253\374\6""9\252\374"
- "8\252\3746\251\3745\251\3744\250\3752\250\375\2101\247\375\204\0\0\0\7Y\265"
- "\370Z\265\370Z\266\370[\266\370\\\266\370]\266\367]\267\367\202^\267\367"
- "\203_\267\367\203`\267\367\203a\270\367\211b\270\367\203a\270\367\203`\267"
- "\367\203_\267\367\202^\267\367\7]\267\367]\266\367\\\266\370[\266\370Z\266"
- "\370Z\265\370Y\265\370\202X\265\370\7W\264\370V\264\370U\264\370T\263\371"
- "S\263\371R\263\371Q\262\371\202P\262\371\5N\261\371M\261\371L\261\371K\260"
- "\372J\260\372\202H\257\372\20F\257\372E\256\372D\256\372C\255\373A\255\373"
- "@\254\373>\254\373=\253\373<\253\373;\253\3749\252\3748\252\3746\251\374"
- "5\251\3744\250\3752\250\375\2071\247\375\204\0\0\0\4[\266\370\\\266\370]"
- "\266\367]\267\367\202^\267\367\202_\267\367\202`\267\367\1a\270\367\205b"
- "\270\367\204c\270\367\205d\271\367\204c\270\367\205b\270\367\1a\270\367\202"
- "`\267\367\202_\267\367\202^\267\367\6]\267\367]\266\367\\\266\370[\266\370"
- "Z\266\370Z\265\370\202X\265\370\11W\264\370V\264\370U\264\370T\263\371S\263"
- "\371R\263\371Q\262\371P\262\371O\262\371\202M\261\371\202K\260\372\10I\260"
- "\372H\257\372F\257\372F\256\372D\256\372C\255\373A\255\373@\254\373\202>"
- "\254\373\7<\253\373;\253\3749\252\3748\252\3746\251\3745\251\3744\250\375"
- "\2071\247\375\204\0\0\0\3]\266\367]\267\367^\267\367\202_\267\367\2`\267"
- "\367a\270\367\203b\270\367\202c\270\367\202d\271\367\203d\271\366\213e\271"
- "\366\203d\271\366\202d\271\367\202c\270\367\203b\270\367\2a\270\367`\267"
- "\367\202_\267\367\7^\267\367]\267\367]\266\367\\\266\370[\266\370Z\266\370"
- "Z\265\370\202X\265\370\1W\264\370\202U\264\370\1T\263\371\202R\263\371\202"
- "P\262\371\12N\261\371M\261\371L\261\371K\260\372I\260\372H\257\372G\257\372"
- "F\256\372D\256\372C\255\373\202A\255\373\11?\254\373>\254\373<\253\373;\253"
- "\3749\252\3748\252\3746\251\3744\250\3743\250\375\2061\247\375\204\0\0\0"
- "\202_\267\367\2`\267\367a\270\367\203b\270\367\2c\270\367d\271\367\202d\271"
- "\366\202e\271\366\202f\271\366\217g\272\366\202f\271\366\202e\271\366\202"
- "d\271\366\2d\271\367c\270\367\203b\270\367\2a\270\367`\267\367\202_\267\367"
- "\6^\267\367]\266\367\\\266\370[\266\370Z\266\370Z\265\370\202X\265\370\34"
- "V\264\370U\264\370T\263\371S\263\371R\263\371Q\262\371P\262\371O\262\371"
- "M\261\371L\261\371K\260\372J\260\372H\257\372G\257\372F\256\372D\256\372"
- "C\255\373B\255\373A\255\373?\254\373>\254\373<\253\373;\253\3749\252\374"
- "7\251\3746\251\3744\250\3743\250\375\2051\247\375\204\0\0\0\2`\267\367a\270"
- "\367\202b\270\367\3c\270\367d\271\367d\271\366\202e\271\366\1f\271\366\204"
- "g\272\366\202h\272\366\206i\272\366\1i\273\366\206i\272\366\202h\272\366"
- "\204g\272\366\1f\271\366\202e\271\366\3d\271\366d\271\367c\270\367\202b\270"
- "\367\2a\270\367`\267\367\202_\267\367\17^\267\367]\266\367\\\266\370[\266"
- "\370Z\266\370Y\265\370X\265\370W\264\370V\264\370U\264\370T\263\371R\263"
- "\371Q\262\371P\262\371O\262\371\202M\261\371\22K\260\372J\260\372H\257\372"
- "G\257\372F\256\372E\256\372C\256\373B\255\373A\255\373?\254\373>\254\373"
- "<\253\373:\252\3749\252\3747\251\3746\251\3744\250\3743\250\375\2041\247"
- "\375\204\0\0\0\5b\270\367c\270\367d\271\367d\271\366e\271\366\202f\271\366"
- "\202g\272\366\202h\272\366\202i\272\366\202i\273\366\203j\273\366\211k\273"
- "\366\203j\273\366\202i\273\366\202i\272\366\202h\272\366\202g\272\366\202"
- "f\271\366\7e\271\366d\271\366d\271\367c\270\367b\270\367a\270\367`\267\367"
- "\202_\267\367\14^\267\367]\266\367\\\266\370Z\266\370Z\265\370Y\265\370X"
- "\265\370V\264\370U\264\370T\263\371S\263\371R\263\371\202P\262\371\24N\261"
- "\371M\261\371K\260\372J\260\372H\257\372G\257\372F\257\372E\256\372C\256"
- "\373B\255\373A\255\373?\254\373=\253\373;\253\374:\252\3749\252\3747\251"
- "\3746\251\3744\250\3742\250\375\2031\247\375\204\0\0\0\4d\271\367d\271\366"
- "e\271\366f\271\366\202g\272\366\1h\272\366\202i\272\366\1i\273\366\202j\273"
- "\366\1k\273\366\203l\273\366\204l\274\365\205m\274\365\204l\274\365\203l"
- "\273\366\1k\273\366\202j\273\366\1i\273\366\202i\272\366\1h\272\366\202g"
- "\272\366\10f\271\366e\271\366d\271\366d\271\367c\270\367b\270\367a\270\367"
- "`\267\367\202_\267\367\7]\267\367]\266\367[\266\370Z\266\370Y\265\370X\265"
- "\370W\264\370\202U\264\370\30S\263\371R\263\371Q\262\371P\262\371N\261\371"
- "M\261\371K\260\372J\260\372I\260\372H\257\372F\257\372E\256\372C\256\373"
- "B\255\373@\254\373>\254\373=\253\373;\253\374:\252\3749\252\3747\251\374"
- "5\251\3744\250\3752\250\375\2021\247\375\204\0\0\0\1e\271\366\202g\272\366"
- "\2h\272\366i\272\366\202i\273\366\2j\273\366k\273\366\202l\273\366\1l\274"
- "\365\202m\274\365\203n\274\365\213o\274\365\203n\274\365\202m\274\365\1l"
- "\274\365\202l\273\366\2k\273\366j\273\366\202i\273\366\2i\272\366h\272\366"
- "\202g\272\366\15e\271\366d\271\366d\271\367c\270\367b\270\367a\270\367`\267"
- "\367_\267\367^\267\367]\267\367\\\266\370[\266\370Z\265\370\202X\265\370"
- "\10V\264\370U\264\370T\263\371R\263\371Q\262\371P\262\371N\261\371M\261\371"
- "\202K\260\372\17I\260\372H\257\372F\257\372E\256\372C\255\373A\255\373@\254"
- "\373>\254\373=\253\373;\253\374:\252\3748\252\3746\251\3745\251\3744\250"
- "\375\2021\247\375\204\0\0\0\10g\272\366h\272\366i\272\366i\273\366j\273\366"
- "k\273\366l\273\366l\274\365\202m\274\365\1n\274\365\202o\274\365\202o\275"
- "\365\203p\275\365\211q\275\365\203p\275\365\202o\275\365\202o\274\365\1n"
- "\274\365\202m\274\365\7l\274\365l\273\366k\273\366j\273\366i\273\366i\272"
- "\366h\272\366\202g\272\366\6f\271\366d\271\366d\271\367c\270\367b\270\367"
- "a\270\367\202_\267\367\40]\267\367]\266\367[\266\370Z\266\370Y\265\370X\265"
- "\370V\264\370U\264\370T\263\371R\263\371Q\262\371P\262\371N\261\371M\261"
- "\371L\261\371K\260\372I\260\372H\257\372F\256\372D\256\372C\255\373A\255"
- "\373@\254\373>\254\373=\253\373;\253\3749\252\3748\252\3746\251\3744\250"
- "\3743\250\3751\247\375\204\0\0\0\5i\272\366i\273\366k\273\366l\273\366l\274"
- "\365\202m\274\365\3n\274\365o\274\365o\275\365\202p\275\365\204q\275\365"
- "\205r\276\365\203s\276\365\205r\276\365\204q\275\365\202p\275\365\3o\275"
- "\365o\274\365n\274\365\202m\274\365\6l\274\365l\273\366k\273\366i\273\366"
- "i\272\366h\272\366\202g\272\366\3e\271\366d\271\366d\271\367\202b\270\367"
- "!`\267\367_\267\367^\267\367]\266\367\\\266\370Z\266\370Y\265\370X\265\370"
- "W\264\370U\264\370T\263\371R\263\371Q\262\371P\262\371N\261\371M\261\371"
- "L\261\371J\260\372H\257\372G\257\372F\256\372D\256\372C\255\373A\255\373"
- "@\254\373>\254\373<\253\373;\253\3749\252\3748\252\3746\251\3744\250\374"
- "3\250\375\204\0\0\0\10k\273\366l\273\366l\274\365m\274\365n\274\365o\274"
- "\365o\275\365p\275\365\203q\275\365\202r\276\365\202s\276\365\203t\276\365"
- "\211t\276\364\203t\276\365\202s\276\365\202r\276\365\203q\275\365\22p\275"
- "\365o\275\365o\274\365n\274\365m\274\365l\274\365l\273\366k\273\366j\273"
- "\366i\272\366h\272\366g\272\366f\271\366e\271\366d\271\367c\270\367b\270"
- "\367a\270\367\202_\267\367\35]\267\367\\\266\370Z\266\370Z\265\370X\265\370"
- "W\264\370U\264\370T\263\371R\263\371Q\262\371P\262\371N\261\371M\261\371"
- "K\260\372J\260\372H\257\372G\257\372F\256\372D\256\372C\255\373A\255\373"
- "?\254\373>\254\373<\253\373;\253\3749\252\3747\251\3746\251\3744\250\375"
- "\204\0\0\0\5l\274\365m\274\365n\274\365o\275\365p\275\365\203q\275\365\2"
- "r\276\365s\276\365\202t\276\365\202t\276\364\202u\277\364\215v\277\364\202"
- "u\277\364\202t\276\364\202t\276\365\2s\276\365r\276\365\203q\275\365.p\275"
- "\365o\275\365n\274\365m\274\365l\274\365l\273\366k\273\366i\273\366i\272"
- "\366h\272\366g\272\366f\271\366d\271\366d\271\367b\270\367a\270\367`\267"
- "\367_\267\367]\267\367]\266\367[\266\370Z\265\370X\265\370W\264\370U\264"
- "\370T\263\371R\263\371Q\262\371P\262\371N\261\371M\261\371K\260\372J\260"
- "\372H\257\372G\257\372F\256\372D\256\372B\255\373A\255\373?\254\373>\254"
- "\373;\253\374:\252\3749\252\3746\251\3745\251\374\204\0\0\0\3o\274\365o\275"
- "\365p\275\365\202q\275\365\3r\276\365s\276\365t\276\365\202t\276\364\1u\277"
- "\364\203v\277\364\203w\277\364\213x\300\364\203w\277\364\203v\277\364\1u"
- "\277\364\202t\276\364\3t\276\365s\276\365r\276\365\202q\275\365,p\275\365"
- "o\275\365o\274\365m\274\365l\274\365l\273\366j\273\366i\273\366h\272\366"
- "g\272\366f\271\366e\271\366d\271\367c\270\367b\270\367`\267\367_\267\367"
- "^\267\367]\266\367[\266\370Z\265\370X\265\370W\264\370U\264\370T\263\371"
- "R\263\371Q\262\371P\262\371N\261\371M\261\371K\260\372J\260\372H\257\372"
- "G\257\372E\256\372C\256\373B\255\373A\255\373>\254\373=\253\373;\253\374"
- "9\252\3748\252\3746\251\374\204\0\0\0\1p\275\365\202q\275\365\5r\276\365"
- "s\276\365t\276\365t\276\364u\277\364\202v\277\364\202w\277\364\1x\300\364"
- "\205y\300\364\211z\300\364\205y\300\364\1x\300\364\202w\277\364\202v\277"
- "\364\5u\277\364t\276\364t\276\365s\276\365r\276\365\202q\275\365*p\275\365"
- "o\275\365n\274\365m\274\365l\274\365k\273\366j\273\366i\272\366h\272\366"
- "g\272\366e\271\366d\271\366c\270\367b\270\367a\270\367_\267\367^\267\367"
- "]\266\367[\266\370Z\265\370X\265\370W\264\370U\264\370T\263\371R\263\371"
- "Q\262\371P\262\371N\261\371M\261\371K\260\372J\260\372H\257\372F\257\372"
- "E\256\372C\256\373A\255\373@\254\373>\254\373<\253\373;\253\3749\252\374"
- "7\251\374\204\0\0\0\5q\275\365s\276\365t\276\365t\276\364u\277\364\202v\277"
- "\364\2w\277\364x\300\364\203y\300\364\202z\300\364\206{\301\364\205|\301"
- "\363\206{\301\364\202z\300\364\203y\300\364\2x\300\364w\277\364\202v\277"
- "\364\4u\277\364t\276\364t\276\365s\276\365\202q\275\365(p\275\365o\274\365"
- "n\274\365m\274\365l\273\366k\273\366i\273\366h\272\366g\272\366f\271\366"
- "d\271\366d\271\367b\270\367a\270\367_\267\367^\267\367]\266\367[\266\370"
- "Z\265\370X\265\370W\264\370U\264\370T\263\371R\263\371Q\262\371P\262\371"
- "N\261\371M\261\371K\260\372I\260\372H\257\372F\257\372D\256\372C\255\373"
- "A\255\373?\254\373>\254\373<\253\373:\252\3749\252\374\204\0\0\0\3t\276\365"
- "t\276\364u\277\364\202v\277\364\2w\277\364x\300\364\202y\300\364\1z\300\364"
- "\203{\301\364\202|\301\363\203}\301\363\211~\302\363\203}\301\363\202|\301"
- "\363\203{\301\364\1z\300\364\202y\300\364\2x\300\364w\277\364\202v\277\364"
- "\4u\277\364t\276\364t\276\365r\276\365\202q\275\365&o\275\365o\274\365m\274"
- "\365l\274\365k\273\366j\273\366i\272\366g\272\366f\271\366e\271\366d\271"
- "\367b\270\367a\270\367_\267\367^\267\367]\266\367[\266\370Z\265\370X\265"
- "\370W\264\370U\264\370T\263\371R\263\371Q\262\371P\262\371M\261\371L\261"
- "\371K\260\372I\260\372G\257\372F\256\372D\256\372B\255\373A\255\373?\254"
- "\373=\253\373;\253\3749\252\374\204\0\0\0\4u\277\364v\277\364w\277\364x\300"
- "\364\202y\300\364\1z\300\364\202{\301\364\202|\301\363\1}\301\363\204~\302"
- "\363\203\177\302\363\207\200\302\363\203\177\302\363\204~\302\363\1}\301"
- "\363\202|\301\363\202{\301\364\1z\300\364\202y\300\364-x\300\364w\277\364"
- "v\277\364u\277\364t\276\364s\276\365r\276\365q\275\365p\275\365o\275\365"
- "n\274\365l\274\365l\273\366j\273\366i\272\366h\272\366g\272\366e\271\366"
- "d\271\367b\270\367a\270\367_\267\367^\267\367]\266\367[\266\370Z\265\370"
- "X\265\370W\264\370U\264\370T\263\371R\263\371P\262\371O\262\371M\261\371"
- "L\261\371J\260\372H\257\372G\257\372E\256\372C\256\373B\255\373@\254\373"
- ">\254\373<\253\373;\253\374\204\0\0\0\2v\277\364x\300\364\202y\300\364\1"
- "z\300\364\202{\301\364\2|\301\363}\301\363\202~\302\363\202\177\302\363\202"
- "\200\302\363\217\200\303\363\202\200\302\363\202\177\302\363\202~\302\363"
- "\2}\301\363|\301\363\202{\301\364\1z\300\364\202y\300\364\1x\300\364\202"
- "v\277\364\3u\277\364t\276\365s\276\365\202q\275\365#o\275\365o\274\365m\274"
- "\365l\273\366j\273\366i\273\366h\272\366g\272\366e\271\366d\271\367b\270"
- "\367a\270\367_\267\367^\267\367]\266\367[\266\370Z\265\370X\265\370W\264"
- "\370U\264\370S\263\371R\263\371P\262\371O\262\371M\261\371K\260\372J\260"
- "\372H\257\372F\257\372E\256\372C\255\373A\255\373?\254\373>\254\373<\253"
- "\373\204\0\0\0\202y\300\364\4z\300\364{\301\364|\301\363}\301\363\202~\302"
- "\363\1\177\302\363\202\200\302\363\205\200\303\363\202\201\303\363\211\201"
- "\304\363\202\201\303\363\205\200\303\363\202\200\302\363\1\177\302\363\202"
- "~\302\363\4}\301\363|\301\363{\301\364z\300\364\202y\300\364\1w\277\364\202"
- "v\277\364&t\276\364t\276\365r\276\365q\275\365p\275\365o\274\365m\274\365"
- "l\274\365k\273\366i\273\366h\272\366g\272\366e\271\366d\271\367b\270\367"
- "a\270\367_\267\367^\267\367]\266\367[\266\370Z\265\370X\265\370V\264\370"
- "U\264\370S\263\371R\263\371P\262\371N\261\371M\261\371K\260\372I\260\372"
- "H\257\372F\256\372D\256\372B\255\373A\255\373?\254\373=\253\373\204\0\0\0"
- "\4z\300\364{\301\364|\301\363}\301\363\202~\302\363\2\177\302\363\200\302"
- "\363\203\200\303\363\202\201\303\363\1\201\304\363\202\202\304\362\204\203"
- "\304\362\205\204\304\362\204\203\304\362\202\202\304\362\1\201\304\363\202"
- "\201\303\363\203\200\303\363\2\200\302\363\177\302\363\202~\302\363-}\301"
- "\363|\301\363{\301\364z\300\364y\300\364x\300\364w\277\364v\277\364u\277"
- "\364t\276\365s\276\365q\275\365p\275\365o\275\365n\274\365l\274\365k\273"
- "\366i\273\366h\272\366g\272\366e\271\366d\271\367b\270\367a\270\367_\267"
- "\367^\267\367]\266\367[\266\370Y\265\370X\265\370V\264\370U\264\370R\263"
- "\371Q\262\371P\262\371M\261\371L\261\371K\260\372H\257\372G\257\372F\256"
- "\372C\256\373B\255\373@\254\373>\254\373\204\0\0\0\2|\301\363}\301\363\202"
- "~\302\363\1\200\302\363\203\200\303\363\1\201\303\363\202\201\304\363\2\202"
- "\304\362\203\304\362\202\204\304\362\203\204\305\362\211\205\305\362\203"
- "\204\305\362\202\204\304\362\2\203\304\362\202\304\362\202\201\304\363\1"
- "\201\303\363\203\200\303\363\1\200\302\363\202~\302\363\12}\301\363|\301"
- "\363{\301\364z\300\364y\300\364x\300\364v\277\364u\277\364t\276\364s\276"
- "\365\202q\275\365\37o\275\365n\274\365l\274\365k\273\366i\273\366h\272\366"
- "g\272\366e\271\366d\271\367b\270\367a\270\367_\267\367^\267\367\\\266\370"
- "Z\266\370Y\265\370X\265\370U\264\370T\263\371R\263\371P\262\371O\262\371"
- "M\261\371K\260\372J\260\372H\257\372F\257\372E\256\372C\255\373A\255\373"
- "?\254\373\204\0\0\0\202~\302\363\1\200\302\363\203\200\303\363\5\201\303"
- "\363\201\304\363\202\304\362\203\304\362\204\304\362\202\204\305\362\1\205"
- "\305\362\205\206\305\362\207\207\306\362\205\206\305\362\1\205\305\362\202"
- "\204\305\362\5\204\304\362\203\304\362\202\304\362\201\304\363\201\303\363"
- "\203\200\303\363\1\200\302\363\202~\302\363)|\301\363{\301\364z\300\364y"
- "\300\364x\300\364w\277\364v\277\364t\276\364t\276\365r\276\365q\275\365o"
- "\275\365n\274\365l\274\365k\273\366i\273\366h\272\366g\272\366e\271\366d"
- "\271\367b\270\367a\270\367_\267\367]\267\367\\\266\370Z\266\370X\265\370"
- "W\264\370U\264\370S\263\371R\263\371P\262\371N\261\371M\261\371K\260\372"
- "I\260\372H\257\372F\256\372D\256\372B\255\373A\255\373\204\0\0\0\1\177\302"
- "\363\203\200\303\363\5\201\303\363\202\304\362\203\304\362\204\304\362\204"
- "\305\362\202\205\305\362\202\206\305\362\202\207\306\362\202\210\306\362"
- "\213\211\306\362\202\210\306\362\202\207\306\362\202\206\305\362\202\205"
- "\305\362\5\204\305\362\204\304\362\203\304\362\202\304\362\201\303\363\203"
- "\200\303\363*\177\302\363~\302\363}\301\363|\301\363{\301\364z\300\364y\300"
- "\364w\277\364v\277\364u\277\364t\276\365r\276\365q\275\365o\275\365n\274"
- "\365l\274\365k\273\366i\273\366h\272\366g\272\366e\271\366d\271\367b\270"
- "\367`\267\367_\267\367]\267\367[\266\370Z\265\370X\265\370W\264\370U\264"
- "\370S\263\371Q\262\371P\262\371N\261\371L\261\371K\260\372H\257\372G\257"
- "\372E\256\372C\256\373A\255\373\204\0\0\0\202\200\303\363\6\201\303\363\202"
- "\304\362\203\304\362\204\304\362\204\305\362\205\305\362\202\206\305\362"
- "\2\207\306\362\210\306\362\204\211\306\362\202\212\306\361\211\213\307\361"
- "\202\212\306\361\204\211\306\362\2\210\306\362\207\306\362\202\206\305\362"
- "\6\205\305\362\204\305\362\204\304\362\203\304\362\202\304\362\201\303\363"
- "\202\200\303\363)\200\302\363\177\302\363~\302\363|\301\363{\301\364z\300"
- "\364y\300\364x\300\364v\277\364u\277\364t\276\365r\276\365q\275\365o\275"
- "\365n\274\365l\274\365k\273\366i\273\366h\272\366g\272\366d\271\366c\270"
- "\367b\270\367`\267\367^\267\367]\266\367[\266\370Z\265\370X\265\370V\264"
- "\370T\263\371R\263\371Q\262\371O\262\371M\261\371K\260\372J\260\372H\257"
- "\372F\257\372D\256\372C\255\373\204\0\0\0\11\201\303\363\201\304\363\203"
- "\304\362\204\304\362\204\305\362\205\305\362\206\305\362\207\306\362\210"
- "\306\362\203\211\306\362\1\212\306\361\204\213\307\361\203\214\307\361\205"
- "\215\307\361\203\214\307\361\204\213\307\361\1\212\306\361\203\211\306\362"
- "\11\210\306\362\207\306\362\206\305\362\205\305\362\204\305\362\204\304\362"
- "\203\304\362\201\304\363\201\303\363\202\200\303\363'\177\302\363~\302\363"
- "}\301\363{\301\364z\300\364y\300\364x\300\364v\277\364u\277\364t\276\365"
- "r\276\365q\275\365o\275\365n\274\365l\274\365k\273\366i\273\366g\272\366"
- "f\271\366d\271\366c\270\367b\270\367_\267\367^\267\367]\266\367Z\266\370"
- "Y\265\370W\264\370U\264\370T\263\371R\263\371P\262\371N\261\371M\261\371"
- "K\260\372I\260\372G\257\372F\256\372C\256\373\204\0\0\0\7\202\304\362\204"
- "\304\362\204\305\362\205\305\362\206\305\362\207\306\362\210\306\362\202"
- "\211\306\362\1\212\306\361\202\213\307\361\202\214\307\361\1\215\307\361"
- "\217\216\310\361\1\215\307\361\202\214\307\361\202\213\307\361\1\212\306"
- "\361\202\211\306\362\10\210\306\362\207\306\362\206\305\362\205\305\362\204"
- "\305\362\204\304\362\202\304\362\201\304\363\202\200\303\363&\200\302\363"
- "~\302\363}\301\363|\301\363{\301\364y\300\364x\300\364v\277\364u\277\364"
- "t\276\365r\276\365q\275\365o\275\365n\274\365l\274\365j\273\366i\272\366"
- "g\272\366f\271\366d\271\366b\270\367a\270\367_\267\367]\267\367\\\266\370"
- "Z\265\370X\265\370W\264\370U\264\370S\263\371Q\262\371P\262\371M\261\371"
- "L\261\371J\260\372H\257\372F\257\372D\256\372\204\0\0\0\5\204\304\362\205"
- "\305\362\206\305\362\207\306\362\210\306\362\202\211\306\362\202\213\307"
- "\361\1\214\307\361\202\215\307\361\202\216\310\361\202\217\310\361\203\220"
- "\310\361\207\220\311\361\203\220\310\361\202\217\310\361\202\216\310\361"
- "\202\215\307\361\1\214\307\361\202\213\307\361\202\211\306\362\12\210\306"
- "\362\207\306\362\206\305\362\205\305\362\204\304\362\203\304\362\201\304"
- "\363\201\303\363\200\303\363\200\302\363\202~\302\363\"|\301\363{\301\364"
- "y\300\364x\300\364v\277\364u\277\364t\276\365r\276\365q\275\365o\275\365"
- "m\274\365l\273\366j\273\366i\272\366g\272\366e\271\366d\271\367b\270\367"
- "`\267\367_\267\367]\266\367[\266\370Z\265\370X\265\370V\264\370T\263\371"
- "R\263\371P\262\371O\262\371M\261\371K\260\372I\260\372G\257\372F\256\372"
- "\204\0\0\0\202\206\305\362\1\210\306\362\202\211\306\362\202\213\307\361"
- "\2\214\307\361\215\307\361\202\216\310\361\1\217\310\361\202\220\310\361"
- "\1\220\311\361\202\221\311\361\204\222\311\361\203\223\311\360\204\222\311"
- "\361\202\221\311\361\1\220\311\361\202\220\310\361\1\217\310\361\202\216"
- "\310\361\2\215\307\361\214\307\361\202\213\307\361\202\211\306\362\1\210"
- "\306\362\202\206\305\362\4\204\305\362\203\304\362\202\304\362\201\303\363"
- "\202\200\303\363#\177\302\363~\302\363|\301\363{\301\364y\300\364x\300\364"
- "v\277\364u\277\364t\276\365r\276\365q\275\365o\274\365m\274\365l\273\366"
- "j\273\366h\272\366g\272\366e\271\366c\270\367b\270\367_\267\367^\267\367"
- "]\266\367Z\266\370Y\265\370W\264\370U\264\370S\263\371R\263\371P\262\371"
- "N\261\371L\261\371J\260\372H\257\372F\257\372\204\0\0\0\7\207\306\362\210"
- "\306\362\211\306\362\212\306\361\213\307\361\214\307\361\215\307\361\202"
- "\216\310\361\1\220\310\361\202\220\311\361\2\221\311\361\222\311\361\202"
- "\223\311\360\202\223\312\360\211\224\312\360\202\223\312\360\202\223\311"
- "\360\2\222\311\361\221\311\361\202\220\311\361\1\220\310\361\202\216\310"
- "\361\14\215\307\361\214\307\361\213\307\361\212\306\361\211\306\362\210\306"
- "\362\207\306\362\206\305\362\205\305\362\204\304\362\202\304\362\201\304"
- "\363\202\200\303\363\"\177\302\363~\302\363|\301\363{\301\364y\300\364x\300"
- "\364v\277\364u\277\364t\276\365q\275\365p\275\365o\274\365m\274\365k\273"
- "\366i\273\366h\272\366f\271\366d\271\366b\270\367a\270\367_\267\367]\267"
- "\367\\\266\370Z\265\370X\265\370V\264\370U\264\370R\263\371Q\262\371O\262"
- "\371M\261\371K\260\372I\260\372H\257\372\204\0\0\0\15\211\306\362\212\306"
- "\361\213\307\361\214\307\361\215\307\361\216\310\361\217\310\361\220\310"
- "\361\220\311\361\221\311\361\222\311\361\223\311\360\223\312\360\202\224"
- "\312\360\205\225\312\360\205\226\313\360\205\225\312\360\202\224\312\360"
- "\23\223\312\360\223\311\360\222\311\361\221\311\361\220\311\361\220\310\361"
- "\217\310\361\216\310\361\215\307\361\214\307\361\213\307\361\212\306\361"
- "\211\306\362\210\306\362\206\305\362\205\305\362\204\304\362\203\304\362"
- "\201\304\363\202\200\303\363!\177\302\363~\302\363|\301\363{\301\364y\300"
- "\364x\300\364v\277\364t\276\364s\276\365q\275\365p\275\365n\274\365l\274"
- "\365k\273\366i\272\366g\272\366e\271\366d\271\367b\270\367`\267\367_\267"
- "\367]\266\367[\266\370Y\265\370X\265\370U\264\370T\263\371R\263\371P\262"
- "\371N\261\371L\261\371J\260\372H\257\372\204\0\0\0\3\212\306\361\213\307"
- "\361\214\307\361\202\216\310\361\7\220\310\361\220\311\361\221\311\361\222"
- "\311\361\223\311\360\223\312\360\224\312\360\202\225\312\360\202\226\313"
- "\360\202\227\313\360\211\230\313\360\202\227\313\360\202\226\313\360\202"
- "\225\312\360\7\224\312\360\223\312\360\223\311\360\222\311\361\221\311\361"
- "\220\311\361\220\310\361\202\216\310\361\5\214\307\361\213\307\361\212\306"
- "\361\211\306\362\210\306\362\202\206\305\362\3\204\305\362\203\304\362\201"
- "\304\363\202\200\303\363\40\177\302\363~\302\363|\301\363{\301\364y\300\364"
- "w\277\364v\277\364t\276\364s\276\365q\275\365o\275\365n\274\365l\273\366"
- "j\273\366i\272\366g\272\366e\271\366c\270\367b\270\367_\267\367^\267\367"
- "\\\266\370Z\266\370X\265\370V\264\370U\264\370R\263\371Q\262\371O\262\371"
- "M\261\371K\260\372I\260\372\204\0\0\0\11\214\307\361\215\307\361\216\310"
- "\361\217\310\361\220\311\361\221\311\361\222\311\361\223\312\360\224\312"
- "\360\202\225\312\360\2\226\313\360\227\313\360\203\230\313\360\203\231\314"
- "\360\207\232\314\360\203\231\314\360\203\230\313\360\2\227\313\360\226\313"
- "\360\202\225\312\360\21\224\312\360\223\312\360\222\311\361\221\311\361\220"
- "\311\361\217\310\361\216\310\361\215\307\361\214\307\361\213\307\361\211"
- "\306\362\210\306\362\207\306\362\206\305\362\204\305\362\203\304\362\201"
- "\304\363\202\200\303\363\37\177\302\363~\302\363|\301\363z\300\364y\300\364"
- "w\277\364v\277\364t\276\365r\276\365q\275\365o\274\365m\274\365l\273\366"
- "i\273\366h\272\366f\271\366d\271\366b\270\367a\270\367_\267\367]\267\367"
- "[\266\370Y\265\370X\265\370U\264\370T\263\371R\263\371P\262\371N\261\371"
- "L\261\371J\260\372\204\0\0\0\202\216\310\361\5\220\310\361\221\311\361\222"
- "\311\361\223\311\360\224\312\360\202\225\312\360\2\226\313\360\227\313\360"
- "\202\230\313\360\2\231\314\360\232\314\360\205\233\314\357\205\234\315\357"
- "\205\233\314\357\2\232\314\360\231\314\360\202\230\313\360\2\227\313\360"
- "\226\313\360\202\225\312\360\5\224\312\360\223\311\360\222\311\361\221\311"
- "\361\220\310\361\202\216\310\361\11\214\307\361\213\307\361\212\306\361\211"
- "\306\362\207\306\362\206\305\362\204\305\362\203\304\362\201\304\363\202"
- "\200\303\363\36\177\302\363}\301\363{\301\364z\300\364y\300\364v\277\364"
- "u\277\364t\276\365q\275\365p\275\365o\274\365l\274\365k\273\366i\272\366"
- "g\272\366e\271\366d\271\367b\270\367`\267\367^\267\367\\\266\370Z\266\370"
- "X\265\370W\264\370U\264\370R\263\371Q\262\371O\262\371M\261\371K\260\372"
- "\204\0\0\0\5\217\310\361\220\311\361\221\311\361\223\311\360\223\312\360"
- "\202\225\312\360\1\226\313\360\202\230\313\360\2\231\314\360\232\314\360"
- "\203\233\314\357\1\234\315\357\215\235\315\357\1\234\315\357\203\233\314"
- "\357\2\232\314\360\231\314\360\202\230\313\360\1\226\313\360\202\225\312"
- "\360.\223\312\360\223\311\360\221\311\361\220\311\361\217\310\361\216\310"
- "\361\214\307\361\213\307\361\212\306\361\211\306\362\207\306\362\206\305"
- "\362\204\305\362\203\304\362\201\304\363\200\303\363\200\302\363~\302\363"
- "}\301\363{\301\364y\300\364x\300\364v\277\364t\276\364s\276\365q\275\365"
- "o\275\365n\274\365l\273\366j\273\366h\272\366g\272\366d\271\366c\270\367"
- "a\270\367_\267\367]\267\367[\266\370Z\265\370X\265\370U\264\370T\263\371"
- "R\263\371P\262\371N\261\371L\261\371\204\0\0\0\12\220\311\361\222\311\361"
- "\223\311\360\224\312\360\225\312\360\226\313\360\227\313\360\230\313\360"
- "\231\314\360\232\314\360\202\233\314\357\1\234\315\357\202\235\315\357\202"
- "\236\315\357\202\237\316\357\207\240\316\357\202\237\316\357\202\236\315"
- "\357\202\235\315\357\1\234\315\357\202\233\314\3573\232\314\360\231\314\360"
- "\230\313\360\227\313\360\226\313\360\225\312\360\224\312\360\223\311\360"
- "\222\311\361\220\311\361\217\310\361\216\310\361\215\307\361\213\307\361"
- "\212\306\361\211\306\362\207\306\362\206\305\362\204\305\362\203\304\362"
- "\201\303\363\200\303\363\200\302\363~\302\363|\301\363{\301\364y\300\364"
- "w\277\364v\277\364t\276\364r\276\365q\275\365o\274\365m\274\365k\273\366"
- "i\273\366g\272\366f\271\366d\271\367b\270\367`\267\367^\267\367]\266\367"
- "Z\266\370X\265\370W\264\370U\264\370R\263\371Q\262\371O\262\371M\261\371"
- "\204\0\0\0\2\222\311\361\223\312\360\202\225\312\360\6\227\313\360\230\313"
- "\360\231\314\360\232\314\360\233\314\357\234\315\357\202\235\315\357\1\236"
- "\315\357\202\237\316\357\203\240\316\357\203\241\316\357\203\242\317\357"
- "\203\241\316\357\203\240\316\357\202\237\316\357\1\236\315\357\202\235\315"
- "\357\6\234\315\357\233\314\357\232\314\360\231\314\360\230\313\360\227\313"
- "\360\202\225\312\360+\223\312\360\222\311\361\221\311\361\220\310\361\216"
- "\310\361\215\307\361\213\307\361\212\306\361\211\306\362\207\306\362\206"
- "\305\362\204\304\362\202\304\362\201\303\363\200\303\363\177\302\363~\302"
- "\363|\301\363z\300\364y\300\364w\277\364u\277\364t\276\365q\275\365p\275"
- "\365n\274\365l\274\365j\273\366i\272\366g\272\366d\271\366c\270\367a\270"
- "\367_\267\367]\267\367[\266\370Z\265\370X\265\370U\264\370S\263\371R\263"
- "\371P\262\371M\261\371\204\0\0\0\3\223\312\360\225\312\360\226\313\360\202"
- "\230\313\360\1\232\314\360\202\233\314\357\202\235\315\357\2\236\315\357"
- "\237\316\357\202\240\316\357\1\241\316\357\202\242\317\357\202\242\317\356"
- "\207\243\317\356\202\242\317\356\202\242\317\357\1\241\316\357\202\240\316"
- "\357\2\237\316\357\236\315\357\202\235\315\357\202\233\314\357\1\232\314"
- "\360\202\230\313\360\17\226\313\360\225\312\360\223\312\360\223\311\360\221"
- "\311\361\220\310\361\216\310\361\215\307\361\213\307\361\212\306\361\211"
- "\306\362\206\305\362\205\305\362\204\304\362\202\304\362\202\200\303\363"
- "\33\177\302\363}\301\363{\301\364z\300\364x\300\364v\277\364t\276\364s\276"
- "\365q\275\365o\275\365m\274\365l\273\366i\273\366g\272\366f\271\366d\271"
- "\367b\270\367`\267\367^\267\367\\\266\370Z\266\370X\265\370V\264\370U\264"
- "\370R\263\371P\262\371N\261\371\204\0\0\0\16\225\312\360\226\313\360\230"
- "\313\360\231\314\360\232\314\360\233\314\357\234\315\357\235\315\357\236"
- "\315\357\237\316\357\240\316\357\241\316\357\242\317\357\242\317\356\202"
- "\243\317\356\1\244\317\356\213\245\320\356\1\244\317\356\202\243\317\356"
- "7\242\317\356\242\317\357\241\316\357\240\316\357\237\316\357\236\315\357"
- "\235\315\357\234\315\357\233\314\357\232\314\360\231\314\360\230\313\360"
- "\226\313\360\225\312\360\224\312\360\223\311\360\221\311\361\220\310\361"
- "\216\310\361\215\307\361\213\307\361\211\306\362\210\306\362\206\305\362"
- "\205\305\362\203\304\362\201\304\363\200\303\363\200\302\363~\302\363}\301"
- "\363{\301\364y\300\364w\277\364v\277\364t\276\365r\276\365p\275\365n\274"
- "\365l\274\365j\273\366i\272\366g\272\366d\271\366c\270\367a\270\367_\267"
- "\367]\267\367[\266\370Y\265\370X\265\370U\264\370S\263\371Q\262\371P\262"
- "\371\204\0\0\0\16\227\313\360\230\313\360\231\314\360\233\314\357\234\315"
- "\357\235\315\357\236\315\357\237\316\357\240\316\357\241\316\357\242\317"
- "\357\242\317\356\243\317\356\244\317\356\202\245\320\356\202\246\320\356"
- "\211\247\320\356\202\246\320\356\202\245\320\3567\244\317\356\243\317\356"
- "\242\317\356\242\317\357\241\316\357\240\316\357\237\316\357\236\315\357"
- "\235\315\357\234\315\357\233\314\357\231\314\360\230\313\360\227\313\360"
- "\225\312\360\224\312\360\223\311\360\221\311\361\220\310\361\216\310\361"
- "\214\307\361\213\307\361\211\306\362\210\306\362\206\305\362\204\305\362"
- "\203\304\362\201\303\363\200\303\363\200\302\363~\302\363|\301\363z\300\364"
- "y\300\364v\277\364u\277\364s\276\365q\275\365o\275\365m\274\365l\273\366"
- "i\273\366g\272\366f\271\366d\271\367b\270\367`\267\367^\267\367\\\266\370"
- "Z\265\370X\265\370V\264\370T\263\371R\263\371P\262\371\204\0\0\0\6\230\313"
- "\360\232\314\360\233\314\357\234\315\357\235\315\357\236\315\357\202\240"
- "\316\357\3\242\317\357\242\317\356\243\317\356\202\245\320\356\1\246\320"
- "\356\202\247\320\356\1\247\321\356\202\250\321\356\207\251\321\356\202\250"
- "\321\356\1\247\321\356\202\247\320\356\1\246\320\356\202\245\320\356\3\243"
- "\317\356\242\317\356\242\317\357\202\240\316\357/\236\315\357\235\315\357"
- "\234\315\357\233\314\357\232\314\360\230\313\360\227\313\360\225\312\360"
- "\224\312\360\223\311\360\221\311\361\217\310\361\216\310\361\214\307\361"
- "\213\307\361\211\306\362\207\306\362\206\305\362\204\304\362\202\304\362"
- "\201\303\363\200\303\363\177\302\363}\301\363{\301\364y\300\364x\300\364"
- "v\277\364t\276\365r\276\365p\275\365o\274\365l\274\365j\273\366i\272\366"
- "g\272\366d\271\366c\270\367a\270\367_\267\367]\266\367[\266\370Y\265\370"
- "W\264\370U\264\370R\263\371Q\262\371\204\0\0\0\11\232\314\360\233\314\357"
- "\234\315\357\235\315\357\237\316\357\240\316\357\241\316\357\242\317\356"
- "\243\317\356\202\245\320\356\5\246\320\356\247\320\356\247\321\356\250\321"
- "\356\251\321\356\202\252\321\356\203\252\322\355\203\253\322\355\203\252"
- "\322\355\202\252\321\356\5\251\321\356\250\321\356\247\321\356\247\320\356"
- "\246\320\356\202\245\320\3562\243\317\356\242\317\356\241\316\357\240\316"
- "\357\237\316\357\235\315\357\234\315\357\233\314\357\232\314\360\230\313"
- "\360\227\313\360\225\312\360\224\312\360\222\311\361\220\311\361\217\310"
- "\361\216\310\361\214\307\361\212\306\361\211\306\362\206\305\362\205\305"
- "\362\204\304\362\201\304\363\200\303\363\200\302\363~\302\363|\301\363{\301"
- "\364y\300\364v\277\364u\277\364s\276\365q\275\365o\275\365m\274\365l\273"
- "\366i\273\366g\272\366e\271\366d\271\367b\270\367_\267\367]\267\367\\\266"
- "\370Z\265\370X\265\370U\264\370T\263\371R\263\371\204\0\0\0\16\233\314\357"
- "\235\315\357\236\315\357\237\316\357\240\316\357\242\317\357\242\317\356"
- "\244\317\356\245\320\356\246\320\356\247\320\356\247\321\356\251\321\356"
- "\252\321\356\202\252\322\355\1\253\322\355\213\254\322\355\1\253\322\355"
- "\202\252\322\3557\252\321\356\251\321\356\247\321\356\247\320\356\246\320"
- "\356\245\320\356\244\317\356\242\317\356\242\317\357\240\316\357\237\316"
- "\357\236\315\357\235\315\357\233\314\357\232\314\360\230\313\360\227\313"
- "\360\225\312\360\223\312\360\222\311\361\220\311\361\217\310\361\215\307"
- "\361\213\307\361\211\306\362\210\306\362\206\305\362\204\305\362\203\304"
- "\362\201\303\363\200\303\363\177\302\363~\302\363{\301\364y\300\364x\300"
- "\364v\277\364t\276\365r\276\365p\275\365n\274\365l\274\365j\273\366h\272"
- "\366g\272\366d\271\366b\270\367`\267\367_\267\367]\266\367Z\266\370X\265"
- "\370V\264\370U\264\370R\263\371\204\0\0\0\2\235\315\357\236\315\357\202\240"
- "\316\357\2\242\317\357\243\317\356\202\245\320\356\6\247\320\356\247\321"
- "\356\251\321\356\252\321\356\252\322\355\253\322\355\202\254\322\355\202"
- "\255\323\355\202\256\323\355\205\257\323\355\202\256\323\355\202\255\323"
- "\355\202\254\322\355\6\253\322\355\252\322\355\252\321\356\251\321\356\247"
- "\321\356\247\320\356\202\245\320\356\2\243\317\356\242\317\357\202\240\316"
- "\357\22\236\315\357\235\315\357\233\314\357\232\314\360\230\313\360\226\313"
- "\360\225\312\360\223\312\360\222\311\361\220\310\361\216\310\361\215\307"
- "\361\213\307\361\211\306\362\207\306\362\206\305\362\204\304\362\202\304"
- "\362\202\200\303\363\27~\302\363|\301\363{\301\364y\300\364v\277\364u\277"
- "\364s\276\365q\275\365o\275\365m\274\365k\273\366i\272\366g\272\366e\271"
- "\366c\270\367a\270\367_\267\367]\267\367[\266\370Y\265\370W\264\370U\264"
- "\370S\263\371\204\0\0\0\16\236\315\357\240\316\357\241\316\357\242\317\356"
- "\243\317\356\245\320\356\246\320\356\247\321\356\250\321\356\252\321\356"
- "\252\322\355\253\322\355\254\322\355\255\323\355\202\256\323\355\203\257"
- "\323\355\207\260\324\355\203\257\323\355\202\256\323\3557\255\323\355\254"
- "\322\355\253\322\355\252\322\355\252\321\356\250\321\356\247\321\356\246"
- "\320\356\245\320\356\243\317\356\242\317\356\241\316\357\240\316\357\236"
- "\315\357\235\315\357\233\314\357\231\314\360\230\313\360\226\313\360\225"
- "\312\360\223\311\360\221\311\361\220\310\361\216\310\361\214\307\361\212"
- "\306\361\211\306\362\206\305\362\205\305\362\203\304\362\201\304\363\200"
- "\303\363\177\302\363~\302\363{\301\364y\300\364x\300\364v\277\364t\276\365"
- "r\276\365p\275\365n\274\365l\273\366j\273\366h\272\366f\271\366d\271\367"
- "b\270\367`\267\367^\267\367\\\266\370Z\265\370X\265\370V\264\370T\263\371"
- "\204\0\0\0\15\240\316\357\241\316\357\242\317\356\244\317\356\245\320\356"
- "\246\320\356\247\321\356\251\321\356\252\321\356\253\322\355\254\322\355"
- "\255\323\355\256\323\355\202\257\323\355\1\260\324\355\202\261\324\355\1"
- "\262\324\355\207\262\324\354\1\262\324\355\202\261\324\355\1\260\324\355"
- "\202\257\323\355\36\256\323\355\255\323\355\254\322\355\253\322\355\252\321"
- "\356\251\321\356\247\321\356\246\320\356\245\320\356\244\317\356\242\317"
- "\356\241\316\357\240\316\357\235\315\357\234\315\357\233\314\357\231\314"
- "\360\230\313\360\225\312\360\224\312\360\223\311\360\220\311\361\217\310"
- "\361\215\307\361\213\307\361\211\306\362\210\306\362\206\305\362\204\304"
- "\362\202\304\362\202\200\303\363\26~\302\363|\301\363{\301\364y\300\364v"
- "\277\364t\276\364s\276\365q\275\365o\274\365l\274\365k\273\366i\272\366g"
- "\272\366d\271\366c\270\367a\270\367_\267\367]\266\367Z\266\370X\265\370V"
- "\264\370U\264\370\204\0\0\0\10\240\316\357\242\317\356\244\317\356\245\320"
- "\356\247\320\356\247\321\356\251\321\356\252\322\355\202\254\322\355\1\256"
- "\323\355\202\257\323\355\1\260\324\355\202\262\324\355\2\262\324\354\263"
- "\325\354\211\264\325\354\2\263\325\354\262\324\354\202\262\324\355\1\260"
- "\324\355\202\257\323\355\1\256\323\355\202\254\322\3551\252\322\355\251\321"
- "\356\247\321\356\247\320\356\245\320\356\244\317\356\242\317\356\240\316"
- "\357\237\316\357\235\315\357\234\315\357\233\314\357\230\313\360\227\313"
- "\360\225\312\360\223\312\360\222\311\361\220\310\361\216\310\361\214\307"
- "\361\213\307\361\211\306\362\206\305\362\205\305\362\203\304\362\201\304"
- "\363\200\303\363\177\302\363~\302\363{\301\364y\300\364w\277\364v\277\364"
- "t\276\365q\275\365o\275\365n\274\365l\273\366i\273\366g\272\366e\271\366"
- "d\271\367b\270\367_\267\367]\267\367[\266\370Y\265\370W\264\370U\264\370"
- "\204\0\0\0\17\242\317\357\243\317\356\245\320\356\247\320\356\250\321\356"
- "\252\321\356\252\322\355\254\322\355\255\323\355\256\323\355\257\323\355"
- "\260\324\355\262\324\355\262\324\354\263\325\354\202\264\325\354\202\265"
- "\325\354\207\266\326\354\202\265\325\354\202\264\325\3548\263\325\354\262"
- "\324\354\262\324\355\260\324\355\257\323\355\256\323\355\255\323\355\254"
- "\322\355\252\322\355\252\321\356\250\321\356\247\320\356\245\320\356\243"
- "\317\356\242\317\357\240\316\357\237\316\357\235\315\357\233\314\357\232"
- "\314\360\230\313\360\226\313\360\225\312\360\223\311\360\221\311\361\217"
- "\310\361\216\310\361\213\307\361\211\306\362\210\306\362\206\305\362\204"
- "\305\362\202\304\362\200\303\363\200\302\363~\302\363|\301\363z\300\364y"
- "\300\364v\277\364t\276\364r\276\365p\275\365o\274\365l\274\365j\273\366h"
- "\272\366f\271\366d\271\367b\270\367`\267\367^\267\367\\\266\370Z\265\370"
- "X\265\370U\264\370\204\0\0\0\15\243\317\356\245\320\356\246\320\356\250\321"
- "\356\252\321\356\253\322\355\254\322\355\255\323\355\257\323\355\260\324"
- "\355\261\324\355\262\324\354\263\325\354\202\264\325\354\2\265\325\354\266"
- "\326\354\203\267\326\354\205\270\326\354\203\267\326\354\2\266\326\354\265"
- "\325\354\202\264\325\3546\263\325\354\262\324\354\261\324\355\260\324\355"
- "\257\323\355\255\323\355\254\322\355\253\322\355\252\321\356\250\321\356"
- "\246\320\356\245\320\356\243\317\356\242\317\357\240\316\357\236\315\357"
- "\235\315\357\233\314\357\231\314\360\230\313\360\225\312\360\224\312\360"
- "\222\311\361\220\311\361\216\310\361\214\307\361\213\307\361\211\306\362"
- "\206\305\362\205\305\362\203\304\362\201\303\363\200\303\363\177\302\363"
- "}\301\363{\301\364y\300\364w\277\364u\277\364s\276\365q\275\365o\275\365"
- "m\274\365k\273\366i\272\366g\272\366d\271\366c\270\367a\270\367_\267\367"
- "]\266\367Z\266\370X\265\370V\264\370\204\0\0\0\13\245\320\356\246\320\356"
- "\247\321\356\251\321\356\253\322\355\254\322\355\255\323\355\257\323\355"
- "\260\324\355\262\324\355\262\324\354\202\264\325\354\1\266\326\354\202\267"
- "\326\354\1\270\326\354\202\271\326\354\203\271\327\354\1\272\327\353\203"
- "\271\327\354\202\271\326\354\1\270\326\354\202\267\326\354\1\266\326\354"
- "\202\264\325\3544\262\324\354\262\324\355\260\324\355\257\323\355\256\323"
- "\355\254\322\355\253\322\355\251\321\356\247\321\356\246\320\356\245\320"
- "\356\243\317\356\241\316\357\240\316\357\236\315\357\234\315\357\233\314"
- "\357\230\313\360\227\313\360\225\312\360\223\312\360\221\311\361\217\310"
- "\361\216\310\361\213\307\361\211\306\362\210\306\362\206\305\362\204\304"
- "\362\202\304\362\200\303\363\200\302\363~\302\363{\301\364z\300\364x\300"
- "\364v\277\364t\276\365q\275\365p\275\365n\274\365l\273\366i\273\366g\272"
- "\366e\271\366c\270\367b\270\367_\267\367]\267\367[\266\370Y\265\370W\264"
- "\370\204\0\0\0\14\246\320\356\247\321\356\251\321\356\252\322\355\254\322"
- "\355\256\323\355\257\323\355\260\324\355\262\324\355\263\325\354\264\325"
- "\354\265\325\354\202\267\326\354\4\270\326\354\271\326\354\271\327\354\272"
- "\327\353\202\273\327\353\205\274\327\353\202\273\327\353\4\272\327\353\271"
- "\327\354\271\326\354\270\326\354\202\267\326\3545\265\325\354\264\325\354"
- "\263\325\354\262\324\355\260\324\355\257\323\355\256\323\355\254\322\355"
- "\252\322\355\251\321\356\247\321\356\246\320\356\244\317\356\242\317\356"
- "\241\316\357\237\316\357\235\315\357\233\314\357\232\314\360\230\313\360"
- "\226\313\360\224\312\360\222\311\361\220\311\361\216\310\361\214\307\361"
- "\213\307\361\211\306\362\206\305\362\204\305\362\203\304\362\201\303\363"
- "\200\303\363~\302\363}\301\363{\301\364y\300\364v\277\364t\276\364r\276\365"
- "q\275\365o\274\365l\274\365j\273\366h\272\366f\271\366d\271\367b\270\367"
- "_\267\367^\267\367\\\266\370Z\265\370X\265\370\204\0\0\0\21\247\320\356\251"
- "\321\356\252\322\355\254\322\355\255\323\355\257\323\355\261\324\355\262"
- "\324\355\263\325\354\264\325\354\266\326\354\267\326\354\270\326\354\271"
- "\326\354\272\327\353\273\327\353\274\327\353\202\274\330\353\202\275\330"
- "\353\203\276\330\353\202\275\330\353\202\274\330\353:\274\327\353\273\327"
- "\353\272\327\353\271\326\354\270\326\354\267\326\354\266\326\354\264\325"
- "\354\263\325\354\262\324\355\261\324\355\257\323\355\255\323\355\254\322"
- "\355\252\322\355\251\321\356\247\320\356\245\320\356\244\317\356\242\317"
- "\357\240\316\357\236\315\357\235\315\357\233\314\357\231\314\360\227\313"
- "\360\225\312\360\223\312\360\221\311\361\217\310\361\216\310\361\213\307"
- "\361\211\306\362\207\306\362\206\305\362\204\304\362\201\304\363\200\303"
- "\363\177\302\363~\302\363{\301\364y\300\364w\277\364u\277\364s\276\365q\275"
- "\365o\275\365m\274\365k\273\366i\272\366g\272\366d\271\366b\270\367`\267"
- "\367^\267\367\\\266\370Z\266\370X\265\370\204\0\0\0\21\250\321\356\252\321"
- "\356\254\322\355\255\323\355\257\323\355\260\324\355\262\324\355\263\325"
- "\354\264\325\354\266\326\354\267\326\354\271\326\354\271\327\354\273\327"
- "\353\274\327\353\274\330\353\275\330\353\202\276\330\353\207\277\331\353"
- "\202\276\330\353:\275\330\353\274\330\353\274\327\353\273\327\353\271\327"
- "\354\271\326\354\267\326\354\266\326\354\264\325\354\263\325\354\262\324"
- "\355\260\324\355\257\323\355\255\323\355\254\322\355\252\321\356\250\321"
- "\356\247\320\356\245\320\356\243\317\356\241\316\357\240\316\357\235\315"
- "\357\233\314\357\232\314\360\230\313\360\226\313\360\224\312\360\222\311"
- "\361\220\310\361\216\310\361\214\307\361\212\306\361\210\306\362\206\305"
- "\362\204\305\362\202\304\362\200\303\363\200\302\363~\302\363|\301\363z\300"
- "\364x\300\364v\277\364t\276\365q\275\365o\275\365n\274\365l\273\366i\273"
- "\366g\272\366e\271\366c\270\367a\270\367_\267\367]\266\367Z\266\370X\265"
- "\370\204\0\0\0\22\252\321\356\253\322\355\254\322\355\257\323\355\260\324"
- "\355\262\324\355\263\325\354\264\325\354\266\326\354\267\326\354\271\326"
- "\354\272\327\353\274\327\353\274\330\353\275\330\353\276\330\353\277\331"
- "\353\300\331\353\211\301\331\353;\300\331\353\277\331\353\276\330\353\275"
- "\330\353\274\330\353\274\327\353\272\327\353\271\326\354\267\326\354\266"
- "\326\354\264\325\354\263\325\354\262\324\355\260\324\355\257\323\355\254"
- "\322\355\253\322\355\252\321\356\247\321\356\246\320\356\244\317\356\242"
- "\317\356\240\316\357\236\315\357\235\315\357\233\314\357\230\313\360\227"
- "\313\360\225\312\360\223\311\360\221\311\361\217\310\361\215\307\361\213"
- "\307\361\211\306\362\207\306\362\205\305\362\203\304\362\201\303\363\200"
- "\303\363~\302\363}\301\363{\301\364y\300\364v\277\364t\276\364r\276\365p"
- "\275\365n\274\365l\273\366i\273\366h\272\366f\271\366d\271\367b\270\367_"
- "\267\367]\267\367[\266\370Y\265\370\204\0\0\0\20\252\322\355\254\322\355"
- "\256\323\355\257\323\355\262\324\355\263\325\354\264\325\354\266\326\354"
- "\267\326\354\271\326\354\272\327\353\274\327\353\275\330\353\276\330\353"
- "\277\331\353\300\331\353\202\301\331\353\1\302\332\352\207\303\332\352\1"
- "\302\332\352\202\301\331\3539\300\331\353\277\331\353\276\330\353\275\330"
- "\353\274\327\353\272\327\353\271\326\354\267\326\354\266\326\354\264\325"
- "\354\263\325\354\262\324\355\257\323\355\256\323\355\254\322\355\252\322"
- "\355\251\321\356\247\320\356\245\320\356\243\317\356\241\316\357\240\316"
- "\357\235\315\357\233\314\357\232\314\360\230\313\360\225\312\360\223\312"
- "\360\222\311\361\220\310\361\216\310\361\213\307\361\211\306\362\210\306"
- "\362\206\305\362\204\304\362\201\304\363\200\303\363\177\302\363}\301\363"
- "{\301\364y\300\364w\277\364u\277\364s\276\365q\275\365o\274\365l\274\365"
- "j\273\366h\272\366f\271\366d\271\367b\270\367`\267\367^\267\367\\\266\370"
- "Z\265\370\204\0\0\0\16\254\322\355\255\323\355\257\323\355\261\324\355\262"
- "\324\354\264\325\354\266\326\354\267\326\354\271\326\354\272\327\353\274"
- "\327\353\275\330\353\276\330\353\300\331\353\202\301\331\353\202\303\332"
- "\352\202\304\332\352\205\305\333\352\202\304\332\352\202\303\332\352\202"
- "\301\331\3537\300\331\353\276\330\353\275\330\353\274\327\353\272\327\353"
- "\271\326\354\267\326\354\266\326\354\264\325\354\262\324\354\261\324\355"
- "\257\323\355\255\323\355\254\322\355\252\321\356\250\321\356\246\320\356"
- "\244\317\356\242\317\356\240\316\357\236\315\357\235\315\357\233\314\357"
- "\230\313\360\226\313\360\225\312\360\223\311\360\220\311\361\216\310\361"
- "\214\307\361\212\306\361\211\306\362\206\305\362\204\305\362\202\304\362"
- "\200\303\363\200\302\363~\302\363{\301\364y\300\364x\300\364v\277\364t\276"
- "\365q\275\365o\275\365m\274\365k\273\366i\272\366g\272\366d\271\366b\270"
- "\367`\267\367^\267\367\\\266\370Z\265\370\204\0\0\0\22\254\322\355\257\323"
- "\355\260\324\355\262\324\354\264\325\354\266\326\354\267\326\354\271\326"
- "\354\272\327\353\274\327\353\275\330\353\276\330\353\300\331\353\301\331"
- "\353\302\332\352\303\332\352\304\332\352\305\333\352\203\306\333\352\203"
- "\307\333\352\203\306\333\352;\305\333\352\304\332\352\303\332\352\302\332"
- "\352\301\331\353\300\331\353\276\330\353\275\330\353\274\327\353\272\327"
- "\353\271\326\354\267\326\354\266\326\354\264\325\354\262\324\354\260\324"
- "\355\257\323\355\254\322\355\253\322\355\251\321\356\247\320\356\245\320"
- "\356\243\317\356\241\316\357\240\316\357\235\315\357\233\314\357\231\314"
- "\360\227\313\360\225\312\360\223\312\360\221\311\361\217\310\361\215\307"
- "\361\213\307\361\211\306\362\207\306\362\205\305\362\203\304\362\201\303"
- "\363\200\303\363~\302\363|\301\363z\300\364x\300\364v\277\364t\276\365q\275"
- "\365p\275\365n\274\365l\273\366i\273\366g\272\366e\271\366c\270\367a\270"
- "\367_\267\367]\266\367Z\266\370\204\0\0\0\22\256\323\355\257\323\355\262"
- "\324\355\263\325\354\265\325\354\267\326\354\271\326\354\272\327\353\274"
- "\327\353\275\330\353\276\330\353\300\331\353\301\331\353\303\332\352\304"
- "\332\352\305\333\352\306\333\352\307\333\352\202\310\334\352\205\311\334"
- "\352\202\310\334\352;\307\333\352\306\333\352\305\333\352\304\332\352\303"
- "\332\352\301\331\353\300\331\353\276\330\353\275\330\353\274\327\353\272"
- "\327\353\271\326\354\267\326\354\265\325\354\263\325\354\262\324\355\257"
- "\323\355\256\323\355\254\322\355\252\321\356\250\321\356\246\320\356\244"
- "\317\356\242\317\357\240\316\357\236\315\357\234\315\357\232\314\360\230"
- "\313\360\226\313\360\224\312\360\222\311\361\220\310\361\216\310\361\213"
- "\307\361\211\306\362\207\306\362\206\305\362\204\304\362\201\304\363\200"
- "\303\363\177\302\363}\301\363{\301\364y\300\364v\277\364t\276\364r\276\365"
- "p\275\365n\274\365l\273\366i\273\366g\272\366e\271\366c\270\367a\270\367"
- "_\267\367]\266\367Z\266\370\204\0\0\0\16\257\323\355\261\324\355\262\324"
- "\354\264\325\354\266\326\354\270\326\354\271\327\354\274\327\353\275\330"
- "\353\276\330\353\300\331\353\301\331\353\303\332\352\304\332\352\202\306"
- "\333\352\1\310\334\352\202\311\334\352\1\312\334\352\205\313\335\351\1\312"
- "\334\352\202\311\334\352\1\310\334\352\202\306\333\3527\304\332\352\303\332"
- "\352\301\331\353\300\331\353\276\330\353\275\330\353\274\327\353\271\327"
- "\354\270\326\354\266\326\354\264\325\354\262\324\354\261\324\355\257\323"
- "\355\254\322\355\252\322\355\251\321\356\247\320\356\245\320\356\242\317"
- "\356\241\316\357\237\316\357\235\315\357\233\314\357\230\313\360\226\313"
- "\360\225\312\360\223\311\360\220\311\361\216\310\361\214\307\361\212\306"
- "\361\210\306\362\206\305\362\204\304\362\201\304\363\200\303\363\200\302"
- "\363~\302\363{\301\364y\300\364w\277\364u\277\364s\276\365q\275\365o\274"
- "\365l\274\365j\273\366h\272\366f\271\366d\271\367b\270\367_\267\367]\267"
- "\367[\266\370\204\0\0\0\17\257\323\355\262\324\355\263\325\354\265\325\354"
- "\267\326\354\271\326\354\273\327\353\274\330\353\276\330\353\300\331\353"
- "\301\331\353\303\332\352\304\332\352\306\333\352\307\333\352\202\311\334"
- "\352\202\313\335\351\202\314\335\351\203\315\335\351\202\314\335\351\202"
- "\313\335\351\202\311\334\3528\307\333\352\306\333\352\304\332\352\303\332"
- "\352\301\331\353\300\331\353\276\330\353\274\330\353\273\327\353\271\326"
- "\354\267\326\354\265\325\354\263\325\354\262\324\355\257\323\355\255\323"
- "\355\254\322\355\252\321\356\247\321\356\245\320\356\244\317\356\242\317"
- "\357\240\316\357\235\315\357\233\314\357\231\314\360\227\313\360\225\312"
- "\360\223\312\360\221\311\361\217\310\361\215\307\361\213\307\361\211\306"
- "\362\206\305\362\204\305\362\202\304\362\200\303\363\200\302\363~\302\363"
- "{\301\364y\300\364w\277\364u\277\364s\276\365q\275\365o\274\365l\274\365"
- "j\273\366h\272\366f\271\366d\271\367b\270\367_\267\367]\267\367[\266\370"
- "\204\0\0\0\23\260\324\355\262\324\354\264\325\354\266\326\354\270\326\354"
- "\272\327\353\274\327\353\276\330\353\277\331\353\301\331\353\303\332\352"
- "\304\332\352\306\333\352\307\333\352\311\334\352\312\334\352\313\335\351"
- "\314\335\351\315\335\351\207\316\336\351<\315\335\351\314\335\351\313\335"
- "\351\312\334\352\311\334\352\307\333\352\306\333\352\304\332\352\303\332"
- "\352\301\331\353\277\331\353\276\330\353\274\327\353\272\327\353\270\326"
- "\354\266\326\354\264\325\354\262\324\354\260\324\355\257\323\355\254\322"
- "\355\252\322\355\250\321\356\246\320\356\244\317\356\242\317\356\240\316"
- "\357\236\315\357\234\315\357\232\314\360\230\313\360\225\312\360\223\312"
- "\360\221\311\361\217\310\361\216\310\361\213\307\361\211\306\362\207\306"
- "\362\205\305\362\203\304\362\201\303\363\200\303\363~\302\363|\301\363z\300"
- "\364x\300\364v\277\364t\276\365q\275\365o\275\365m\274\365k\273\366i\272"
- "\366g\272\366d\271\366b\270\367`\267\367^\267\367\\\266\370\204\0\0\0\23"
- "\261\324\355\263\325\354\265\325\354\267\326\354\271\326\354\273\327\353"
- "\275\330\353\276\330\353\301\331\353\302\332\352\304\332\352\306\333\352"
- "\307\333\352\311\334\352\312\334\352\313\335\351\315\335\351\316\336\351"
- "\317\336\351\202\320\336\351\203\320\337\351\202\320\336\351<\317\336\351"
- "\316\336\351\315\335\351\313\335\351\312\334\352\311\334\352\307\333\352"
- "\306\333\352\304\332\352\302\332\352\301\331\353\276\330\353\275\330\353"
- "\273\327\353\271\326\354\267\326\354\265\325\354\263\325\354\261\324\355"
- "\257\323\355\255\323\355\253\322\355\251\321\356\247\320\356\245\320\356"
- "\242\317\356\241\316\357\237\316\357\235\315\357\233\314\357\230\313\360"
- "\226\313\360\224\312\360\222\311\361\220\310\361\216\310\361\213\307\361"
- "\211\306\362\207\306\362\205\305\362\203\304\362\201\303\363\200\303\363"
- "~\302\363|\301\363z\300\364x\300\364v\277\364t\276\365q\275\365o\275\365"
- "m\274\365k\273\366i\272\366g\272\366d\271\366b\270\367`\267\367^\267\367"
- "\\\266\370\204\0\0\0\24\262\324\355\264\325\354\266\326\354\270\326\354\272"
- "\327\353\274\327\353\276\330\353\300\331\353\301\331\353\303\332\352\305"
- "\333\352\307\333\352\311\334\352\312\334\352\313\335\351\315\335\351\316"
- "\336\351\320\336\351\320\337\351\321\337\351\202\322\337\351\1\323\337\350"
- "\202\322\337\351=\321\337\351\320\337\351\320\336\351\316\336\351\315\335"
- "\351\313\335\351\312\334\352\311\334\352\307\333\352\305\333\352\303\332"
- "\352\301\331\353\300\331\353\276\330\353\274\327\353\272\327\353\270\326"
- "\354\266\326\354\264\325\354\262\324\355\260\324\355\256\323\355\254\322"
- "\355\252\321\356\247\321\356\245\320\356\243\317\356\241\316\357\237\316"
- "\357\235\315\357\233\314\357\231\314\360\227\313\360\225\312\360\223\311"
- "\360\220\311\361\216\310\361\214\307\361\212\306\361\210\306\362\206\305"
- "\362\204\304\362\201\304\363\200\303\363\177\302\363}\301\363{\301\364y\300"
- "\364v\277\364t\276\364r\276\365p\275\365n\274\365l\273\366i\273\366g\272"
- "\366e\271\366c\270\367a\270\367_\267\367]\266\367\204\0\0\0\23\262\324\354"
- "\264\325\354\267\326\354\271\326\354\273\327\353\274\330\353\276\330\353"
- "\301\331\353\303\332\352\304\332\352\306\333\352\310\334\352\312\334\352"
- "\313\335\351\315\335\351\316\336\351\320\336\351\321\337\351\322\337\351"
- "\202\323\340\350\203\324\340\350\202\323\340\350<\322\337\351\321\337\351"
- "\320\336\351\316\336\351\315\335\351\313\335\351\312\334\352\310\334\352"
- "\306\333\352\304\332\352\303\332\352\301\331\353\276\330\353\274\330\353"
- "\273\327\353\271\326\354\267\326\354\264\325\354\262\324\354\261\324\355"
- "\257\323\355\254\322\355\252\322\355\250\321\356\246\320\356\244\317\356"
- "\242\317\357\240\316\357\235\315\357\233\314\357\231\314\360\227\313\360"
- "\225\312\360\223\311\360\220\311\361\216\310\361\214\307\361\212\306\361"
- "\210\306\362\206\305\362\204\304\362\201\304\363\200\303\363\177\302\363"
- "}\301\363{\301\364y\300\364v\277\364t\276\364r\276\365p\275\365n\274\365"
- "l\273\366i\273\366g\272\366e\271\366c\270\367a\270\367_\267\367]\266\367"
- "\204\0\0\0\23\263\325\354\265\325\354\267\326\354\271\327\354\274\327\353"
- "\276\330\353\277\331\353\301\331\353\303\332\352\306\333\352\307\333\352"
- "\311\334\352\313\335\351\315\335\351\316\336\351\320\336\351\321\337\351"
- "\323\337\350\324\340\350\202\325\340\350\203\326\341\350\202\325\340\350"
- "<\324\340\350\323\337\350\321\337\351\320\336\351\316\336\351\315\335\351"
- "\313\335\351\311\334\352\307\333\352\306\333\352\303\332\352\301\331\353"
- "\277\331\353\276\330\353\274\327\353\271\327\354\267\326\354\265\325\354"
- "\263\325\354\261\324\355\257\323\355\254\322\355\253\322\355\251\321\356"
- "\247\320\356\245\320\356\242\317\356\240\316\357\236\315\357\234\315\357"
- "\232\314\360\230\313\360\225\312\360\223\312\360\221\311\361\217\310\361"
- "\215\307\361\213\307\361\211\306\362\206\305\362\204\305\362\202\304\362"
- "\200\303\363\200\302\363~\302\363{\301\364y\300\364w\277\364u\277\364s\276"
- "\365q\275\365o\274\365l\274\365j\273\366h\272\366e\271\366c\270\367a\270"
- "\367_\267\367]\266\367\204\0\0\0\25\264\325\354\266\326\354\270\326\354\272"
- "\327\353\274\330\353\276\330\353\300\331\353\302\332\352\304\332\352\306"
- "\333\352\310\334\352\312\334\352\314\335\351\316\336\351\320\336\351\321"
- "\337\351\323\337\350\324\340\350\325\340\350\326\341\350\327\341\350\203"
- "\330\341\350>\327\341\350\326\341\350\325\340\350\324\340\350\323\337\350"
- "\321\337\351\320\336\351\316\336\351\314\335\351\312\334\352\310\334\352"
- "\306\333\352\304\332\352\302\332\352\300\331\353\276\330\353\274\330\353"
- "\272\327\353\270\326\354\266\326\354\264\325\354\262\324\355\257\323\355"
- "\255\323\355\253\322\355\251\321\356\247\320\356\245\320\356\242\317\356"
- "\240\316\357\236\315\357\234\315\357\232\314\360\230\313\360\225\312\360"
- "\223\312\360\221\311\361\217\310\361\215\307\361\213\307\361\211\306\362"
- "\206\305\362\204\305\362\202\304\362\200\303\363\200\302\363~\302\363{\301"
- "\364y\300\364w\277\364u\277\364s\276\365q\275\365o\274\365l\274\365j\273"
- "\366h\272\366f\271\366d\271\367b\270\367_\267\367]\267\367\204\0\0\0\25\264"
- "\325\354\267\326\354\271\326\354\273\327\353\274\330\353\276\330\353\301"
- "\331\353\303\332\352\305\333\352\307\333\352\311\334\352\313\335\351\315"
- "\335\351\317\336\351\320\337\351\323\337\350\324\340\350\325\340\350\327"
- "\341\350\330\341\350\331\342\350\203\332\342\350>\331\342\350\330\341\350"
- "\327\341\350\325\340\350\324\340\350\323\337\350\320\337\351\317\336\351"
- "\315\335\351\313\335\351\311\334\352\307\333\352\305\333\352\303\332\352"
- "\301\331\353\276\330\353\274\330\353\273\327\353\271\326\354\267\326\354"
- "\264\325\354\262\324\354\260\324\355\256\323\355\254\322\355\252\321\356"
- "\247\321\356\245\320\356\243\317\356\241\316\357\237\316\357\235\315\357"
- "\233\314\357\230\313\360\226\313\360\224\312\360\222\311\361\220\310\361"
- "\216\310\361\213\307\361\211\306\362\207\306\362\205\305\362\203\304\362"
- "\201\303\363\200\302\363~\302\363{\301\364y\300\364w\277\364u\277\364s\276"
- "\365q\275\365o\274\365l\274\365j\273\366h\272\366f\271\366d\271\367b\270"
- "\367_\267\367]\267\367\204\0\0\0V\264\325\354\267\326\354\271\326\354\273"
- "\327\353\275\330\353\277\331\353\301\331\353\303\332\352\306\333\352\310"
- "\334\352\312\334\352\313\335\351\316\336\351\320\336\351\322\337\351\323"
- "\340\350\325\340\350\327\341\350\330\341\350\332\342\350\332\342\347\333"
- "\342\347\334\343\347\333\342\347\332\342\347\332\342\350\330\341\350\327"
- "\341\350\325\340\350\323\340\350\322\337\351\320\336\351\316\336\351\313"
- "\335\351\312\334\352\310\334\352\306\333\352\303\332\352\301\331\353\277"
- "\331\353\275\330\353\273\327\353\271\326\354\267\326\354\264\325\354\262"
- "\324\354\260\324\355\256\323\355\254\322\355\252\321\356\247\321\356\245"
- "\320\356\243\317\356\241\316\357\237\316\357\235\315\357\233\314\357\230"
- "\313\360\226\313\360\224\312\360\222\311\361\220\310\361\216\310\361\213"
- "\307\361\211\306\362\207\306\362\205\305\362\203\304\362\201\303\363\200"
- "\303\363~\302\363|\301\363z\300\364x\300\364v\277\364t\276\365q\275\365o"
- "\274\365l\274\365j\273\366h\272\366f\271\366d\271\367b\270\367_\267\367]"
- "\267\367\204\0\0\0\24\265\325\354\267\326\354\271\327\354\274\327\353\276"
- "\330\353\300\331\353\302\332\352\304\332\352\306\333\352\311\334\352\313"
- "\335\351\314\335\351\316\336\351\320\337\351\323\337\350\325\340\350\326"
- "\341\350\330\341\350\332\342\350\333\342\347\205\335\343\347=\333\342\347"
- "\332\342\350\330\341\350\326\341\350\325\340\350\323\337\350\320\337\351"
- "\316\336\351\314\335\351\313\335\351\311\334\352\306\333\352\304\332\352"
- "\302\332\352\300\331\353\276\330\353\274\327\353\271\327\354\267\326\354"
- "\265\325\354\263\325\354\261\324\355\257\323\355\254\322\355\252\322\355"
- "\250\321\356\246\320\356\244\317\356\242\317\357\240\316\357\235\315\357"
- "\233\314\357\230\313\360\226\313\360\224\312\360\222\311\361\220\310\361"
- "\216\310\361\213\307\361\211\306\362\207\306\362\205\305\362\203\304\362"
- "\201\303\363\200\303\363~\302\363|\301\363z\300\364x\300\364v\277\364t\276"
- "\365q\275\365o\275\365m\274\365k\273\366i\272\366f\271\366d\271\367b\270"
- "\367_\267\367]\267\367\204\0\0\0V\265\325\354\267\326\354\271\327\354\274"
- "\327\353\276\330\353\300\331\353\302\332\352\304\332\352\306\333\352\311"
- "\334\352\313\335\351\315\335\351\317\336\351\321\337\351\323\340\350\325"
- "\340\350\330\341\350\331\342\350\333\342\347\335\343\347\336\343\347\337"
- "\344\347\340\344\347\337\344\347\336\343\347\335\343\347\333\342\347\331"
- "\342\350\330\341\350\325\340\350\323\340\350\321\337\351\317\336\351\315"
- "\335\351\313\335\351\311\334\352\306\333\352\304\332\352\302\332\352\300"
- "\331\353\276\330\353\274\327\353\271\327\354\267\326\354\265\325\354\263"
- "\325\354\261\324\355\257\323\355\254\322\355\252\322\355\250\321\356\246"
- "\320\356\244\317\356\242\317\357\240\316\357\235\315\357\233\314\357\231"
- "\314\360\227\313\360\225\312\360\223\311\360\220\311\361\216\310\361\213"
- "\307\361\211\306\362\207\306\362\205\305\362\203\304\362\201\303\363\200"
- "\303\363~\302\363|\301\363z\300\364x\300\364v\277\364t\276\365q\275\365o"
- "\275\365m\274\365k\273\366i\272\366g\272\366d\271\366b\270\367_\267\367]"
- "\267\367\204\0\0\0\25\266\326\354\270\326\354\272\327\353\274\330\353\276"
- "\330\353\301\331\353\303\332\352\305\333\352\307\333\352\311\334\352\313"
- "\335\351\316\336\351\320\336\351\322\337\351\324\340\350\326\341\350\330"
- "\341\350\332\342\350\334\343\347\336\343\347\340\344\347\203\341\344\347"
- ">\340\344\347\336\343\347\334\343\347\332\342\350\330\341\350\326\341\350"
- "\324\340\350\322\337\351\320\336\351\316\336\351\313\335\351\311\334\352"
- "\307\333\352\305\333\352\303\332\352\301\331\353\276\330\353\274\330\353"
- "\272\327\353\270\326\354\266\326\354\263\325\354\261\324\355\257\323\355"
- "\254\322\355\252\322\355\250\321\356\246\320\356\244\317\356\242\317\357"
- "\240\316\357\235\315\357\233\314\357\231\314\360\227\313\360\225\312\360"
- "\223\311\360\220\311\361\216\310\361\214\307\361\212\306\361\210\306\362"
- "\205\305\362\203\304\362\201\303\363\200\303\363~\302\363|\301\363z\300\364"
- "x\300\364v\277\364t\276\365q\275\365o\275\365m\274\365k\273\366i\272\366"
- "g\272\366d\271\366b\270\367`\267\367^\267\367\204\0\0\0V\266\326\354\270"
- "\326\354\272\327\353\274\330\353\276\330\353\301\331\353\303\332\352\305"
- "\333\352\307\333\352\311\334\352\313\335\351\316\336\351\320\336\351\322"
- "\337\351\324\340\350\326\341\350\330\341\350\332\342\347\335\343\347\337"
- "\344\347\341\344\347\342\345\346\343\345\346\342\345\346\341\344\347\337"
- "\344\347\335\343\347\332\342\347\330\341\350\326\341\350\324\340\350\322"
- "\337\351\320\336\351\316\336\351\313\335\351\311\334\352\307\333\352\305"
- "\333\352\303\332\352\301\331\353\276\330\353\274\330\353\272\327\353\270"
- "\326\354\266\326\354\264\325\354\262\324\355\257\323\355\255\323\355\252"
- "\322\355\250\321\356\246\320\356\244\317\356\242\317\357\240\316\357\235"
- "\315\357\233\314\357\231\314\360\227\313\360\225\312\360\223\311\360\220"
- "\311\361\216\310\361\214\307\361\212\306\361\210\306\362\206\305\362\204"
- "\304\362\201\303\363\200\303\363~\302\363|\301\363z\300\364x\300\364v\277"
- "\364t\276\365q\275\365o\275\365m\274\365k\273\366i\272\366g\272\366d\271"
- "\366b\270\367`\267\367^\267\367\204\0\0\0V\266\326\354\270\326\354\272\327"
- "\353\274\330\353\276\330\353\301\331\353\303\332\352\305\333\352\307\333"
- "\352\311\334\352\313\335\351\316\336\351\320\336\351\322\337\351\325\340"
- "\350\327\341\350\331\342\350\333\342\347\335\343\347\340\344\347\342\345"
- "\347\344\345\346\345\346\346\344\345\346\342\345\347\340\344\347\335\343"
- "\347\333\342\347\331\342\350\327\341\350\325\340\350\322\337\351\320\336"
- "\351\316\336\351\313\335\351\311\334\352\307\333\352\305\333\352\303\332"
- "\352\301\331\353\276\330\353\274\330\353\272\327\353\270\326\354\266\326"
- "\354\264\325\354\262\324\355\257\323\355\255\323\355\253\322\355\250\321"
- "\356\246\320\356\244\317\356\242\317\357\240\316\357\235\315\357\233\314"
- "\357\231\314\360\227\313\360\225\312\360\223\311\360\220\311\361\216\310"
- "\361\214\307\361\212\306\361\210\306\362\206\305\362\204\304\362\201\304"
- "\363\200\303\363~\302\363|\301\363z\300\364x\300\364v\277\364t\276\365q\275"
- "\365o\275\365m\274\365k\273\366i\272\366g\272\366d\271\366b\270\367`\267"
- "\367^\267\367\204\0\0\0V\266\326\354\270\326\354\272\327\353\274\330\353"
- "\276\330\353\301\331\353\303\332\352\305\333\352\307\333\352\311\334\352"
- "\313\335\351\316\336\351\320\336\351\322\337\351\325\340\350\327\341\350"
- "\331\342\350\333\342\347\335\343\347\340\344\347\342\345\347\344\345\346"
- "\345\346\346\344\345\346\342\345\347\340\344\347\335\343\347\333\342\347"
- "\331\342\350\327\341\350\325\340\350\322\337\351\320\336\351\316\336\351"
- "\313\335\351\311\334\352\307\333\352\305\333\352\303\332\352\301\331\353"
- "\276\330\353\274\330\353\272\327\353\270\326\354\266\326\354\264\325\354"
- "\262\324\355\257\323\355\255\323\355\253\322\355\250\321\356\246\320\356"
- "\244\317\356\242\317\357\240\316\357\235\315\357\233\314\357\231\314\360"
- "\227\313\360\225\312\360\223\311\360\220\311\361\216\310\361\214\307\361"
- "\212\306\361\210\306\362\206\305\362\204\304\362\201\304\363\200\303\363"
- "~\302\363|\301\363z\300\364x\300\364v\277\364t\276\365q\275\365o\275\365"
- "m\274\365k\273\366i\272\366g\272\366d\271\366b\270\367`\267\367^\267\367"
- "\204\0\0\0V\266\326\354\270\326\354\272\327\353\274\330\353\276\330\353\301"
- "\331\353\303\332\352\305\333\352\307\333\352\311\334\352\313\335\351\316"
- "\336\351\320\336\351\322\337\351\324\340\350\326\341\350\330\341\350\332"
- "\342\347\335\343\347\337\344\347\341\344\347\342\345\346\343\345\346\342"
- "\345\346\341\344\347\337\344\347\335\343\347\332\342\347\330\341\350\326"
- "\341\350\324\340\350\322\337\351\320\336\351\316\336\351\313\335\351\311"
- "\334\352\307\333\352\305\333\352\303\332\352\301\331\353\276\330\353\274"
- "\330\353\272\327\353\270\326\354\266\326\354\264\325\354\262\324\355\257"
- "\323\355\255\323\355\252\322\355\250\321\356\246\320\356\244\317\356\242"
- "\317\357\240\316\357\235\315\357\233\314\357\231\314\360\227\313\360\225"
- "\312\360\223\311\360\220\311\361\216\310\361\214\307\361\212\306\361\210"
- "\306\362\206\305\362\204\304\362\201\303\363\200\303\363~\302\363|\301\363"
- "z\300\364x\300\364v\277\364t\276\365q\275\365o\275\365m\274\365k\273\366"
- "i\272\366g\272\366d\271\366b\270\367`\267\367^\267\367\204\0\0\0\25\266\326"
- "\354\270\326\354\272\327\353\274\330\353\276\330\353\301\331\353\303\332"
- "\352\305\333\352\307\333\352\311\334\352\313\335\351\316\336\351\320\336"
- "\351\322\337\351\324\340\350\326\341\350\330\341\350\332\342\350\334\343"
- "\347\336\343\347\340\344\347\203\341\344\347>\340\344\347\336\343\347\334"
- "\343\347\332\342\350\330\341\350\326\341\350\324\340\350\322\337\351\320"
- "\336\351\316\336\351\313\335\351\311\334\352\307\333\352\305\333\352\303"
- "\332\352\301\331\353\276\330\353\274\330\353\272\327\353\270\326\354\266"
- "\326\354\263\325\354\261\324\355\257\323\355\254\322\355\252\322\355\250"
- "\321\356\246\320\356\244\317\356\242\317\357\240\316\357\235\315\357\233"
- "\314\357\231\314\360\227\313\360\225\312\360\223\311\360\220\311\361\216"
- "\310\361\214\307\361\212\306\361\210\306\362\205\305\362\203\304\362\201"
- "\303\363\200\303\363~\302\363|\301\363z\300\364x\300\364v\277\364t\276\365"
- "q\275\365o\275\365m\274\365k\273\366i\272\366g\272\366d\271\366b\270\367"
- "`\267\367^\267\367\204\0\0\0V\265\325\354\267\326\354\271\327\354\274\327"
- "\353\276\330\353\300\331\353\302\332\352\304\332\352\306\333\352\311\334"
- "\352\313\335\351\315\335\351\317\336\351\321\337\351\323\340\350\325\340"
- "\350\330\341\350\331\342\350\333\342\347\335\343\347\336\343\347\337\344"
- "\347\340\344\347\337\344\347\336\343\347\335\343\347\333\342\347\331\342"
- "\350\330\341\350\325\340\350\323\340\350\321\337\351\317\336\351\315\335"
- "\351\313\335\351\311\334\352\306\333\352\304\332\352\302\332\352\300\331"
- "\353\276\330\353\274\327\353\271\327\354\267\326\354\265\325\354\263\325"
- "\354\261\324\355\257\323\355\254\322\355\252\322\355\250\321\356\246\320"
- "\356\244\317\356\242\317\357\240\316\357\235\315\357\233\314\357\231\314"
- "\360\227\313\360\225\312\360\223\311\360\220\311\361\216\310\361\213\307"
- "\361\211\306\362\207\306\362\205\305\362\203\304\362\201\303\363\200\303"
- "\363~\302\363|\301\363z\300\364x\300\364v\277\364t\276\365q\275\365o\275"
- "\365m\274\365k\273\366i\272\366g\272\366d\271\366b\270\367_\267\367]\267"
- "\367\204\0\0\0\24\265\325\354\267\326\354\271\327\354\274\327\353\276\330"
- "\353\300\331\353\302\332\352\304\332\352\306\333\352\311\334\352\313\335"
- "\351\314\335\351\316\336\351\320\337\351\323\337\350\325\340\350\326\341"
- "\350\330\341\350\332\342\350\333\342\347\205\335\343\347=\333\342\347\332"
- "\342\350\330\341\350\326\341\350\325\340\350\323\337\350\320\337\351\316"
- "\336\351\314\335\351\313\335\351\311\334\352\306\333\352\304\332\352\302"
- "\332\352\300\331\353\276\330\353\274\327\353\271\327\354\267\326\354\265"
- "\325\354\263\325\354\261\324\355\257\323\355\254\322\355\252\322\355\250"
- "\321\356\246\320\356\244\317\356\242\317\357\240\316\357\235\315\357\233"
- "\314\357\230\313\360\226\313\360\224\312\360\222\311\361\220\310\361\216"
- "\310\361\213\307\361\211\306\362\207\306\362\205\305\362\203\304\362\201"
- "\303\363\200\303\363~\302\363|\301\363z\300\364x\300\364v\277\364t\276\365"
- "q\275\365o\275\365m\274\365k\273\366i\272\366f\271\366d\271\367b\270\367"
- "_\267\367]\267\367\204\0\0\0V\264\325\354\267\326\354\271\326\354\273\327"
- "\353\275\330\353\277\331\353\301\331\353\303\332\352\306\333\352\310\334"
- "\352\312\334\352\313\335\351\316\336\351\320\336\351\322\337\351\323\340"
- "\350\325\340\350\327\341\350\330\341\350\332\342\350\332\342\347\333\342"
- "\347\334\343\347\333\342\347\332\342\347\332\342\350\330\341\350\327\341"
- "\350\325\340\350\323\340\350\322\337\351\320\336\351\316\336\351\313\335"
- "\351\312\334\352\310\334\352\306\333\352\303\332\352\301\331\353\277\331"
- "\353\275\330\353\273\327\353\271\326\354\267\326\354\264\325\354\262\324"
- "\354\260\324\355\256\323\355\254\322\355\252\321\356\247\321\356\245\320"
- "\356\243\317\356\241\316\357\237\316\357\235\315\357\233\314\357\230\313"
- "\360\226\313\360\224\312\360\222\311\361\220\310\361\216\310\361\213\307"
- "\361\211\306\362\207\306\362\205\305\362\203\304\362\201\303\363\200\303"
- "\363~\302\363|\301\363z\300\364x\300\364v\277\364t\276\365q\275\365o\274"
- "\365l\274\365j\273\366h\272\366f\271\366d\271\367b\270\367_\267\367]\267"
- "\367\204\0\0\0\25\264\325\354\267\326\354\271\326\354\273\327\353\274\330"
- "\353\276\330\353\301\331\353\303\332\352\305\333\352\307\333\352\311\334"
- "\352\313\335\351\315\335\351\317\336\351\320\337\351\323\337\350\324\340"
- "\350\325\340\350\327\341\350\330\341\350\331\342\350\203\332\342\350>\331"
- "\342\350\330\341\350\327\341\350\325\340\350\324\340\350\323\337\350\320"
- "\337\351\317\336\351\315\335\351\313\335\351\311\334\352\307\333\352\305"
- "\333\352\303\332\352\301\331\353\276\330\353\274\330\353\273\327\353\271"
- "\326\354\267\326\354\264\325\354\262\324\354\260\324\355\256\323\355\254"
- "\322\355\252\321\356\247\321\356\245\320\356\243\317\356\241\316\357\237"
- "\316\357\235\315\357\233\314\357\230\313\360\226\313\360\224\312\360\222"
- "\311\361\220\310\361\216\310\361\213\307\361\211\306\362\207\306\362\205"
- "\305\362\203\304\362\201\303\363\200\302\363~\302\363{\301\364y\300\364w"
- "\277\364u\277\364s\276\365q\275\365o\274\365l\274\365j\273\366h\272\366f"
- "\271\366d\271\367b\270\367_\267\367]\267\367\204\0\0\0\25\264\325\354\266"
- "\326\354\270\326\354\272\327\353\274\330\353\276\330\353\300\331\353\302"
- "\332\352\304\332\352\306\333\352\310\334\352\312\334\352\314\335\351\316"
- "\336\351\320\336\351\321\337\351\323\337\350\324\340\350\325\340\350\326"
- "\341\350\327\341\350\203\330\341\350>\327\341\350\326\341\350\325\340\350"
- "\324\340\350\323\337\350\321\337\351\320\336\351\316\336\351\314\335\351"
- "\312\334\352\310\334\352\306\333\352\304\332\352\302\332\352\300\331\353"
- "\276\330\353\274\330\353\272\327\353\270\326\354\266\326\354\264\325\354"
- "\262\324\355\257\323\355\255\323\355\253\322\355\251\321\356\247\320\356"
- "\245\320\356\242\317\356\240\316\357\236\315\357\234\315\357\232\314\360"
- "\230\313\360\225\312\360\223\312\360\221\311\361\217\310\361\215\307\361"
- "\213\307\361\211\306\362\206\305\362\204\305\362\202\304\362\200\303\363"
- "\200\302\363~\302\363{\301\364y\300\364w\277\364u\277\364s\276\365q\275\365"
- "o\274\365l\274\365j\273\366h\272\366f\271\366d\271\367b\270\367_\267\367"
- "]\267\367\204\0\0\0\23\263\325\354\265\325\354\267\326\354\271\327\354\274"
- "\327\353\276\330\353\277\331\353\301\331\353\303\332\352\306\333\352\307"
- "\333\352\311\334\352\313\335\351\315\335\351\316\336\351\320\336\351\321"
- "\337\351\323\337\350\324\340\350\202\325\340\350\203\326\341\350\202\325"
- "\340\350<\324\340\350\323\337\350\321\337\351\320\336\351\316\336\351\315"
- "\335\351\313\335\351\311\334\352\307\333\352\306\333\352\303\332\352\301"
- "\331\353\277\331\353\276\330\353\274\327\353\271\327\354\267\326\354\265"
- "\325\354\263\325\354\261\324\355\257\323\355\254\322\355\253\322\355\251"
- "\321\356\247\320\356\245\320\356\242\317\356\240\316\357\236\315\357\234"
- "\315\357\232\314\360\230\313\360\225\312\360\223\312\360\221\311\361\217"
- "\310\361\215\307\361\213\307\361\211\306\362\206\305\362\204\305\362\202"
- "\304\362\200\303\363\200\302\363~\302\363{\301\364y\300\364w\277\364u\277"
- "\364s\276\365q\275\365o\274\365l\274\365j\273\366h\272\366e\271\366c\270"
- "\367a\270\367_\267\367]\266\367\204\0\0\0\23\262\324\354\264\325\354\267"
- "\326\354\271\326\354\273\327\353\274\330\353\276\330\353\301\331\353\303"
- "\332\352\304\332\352\306\333\352\310\334\352\312\334\352\313\335\351\315"
- "\335\351\316\336\351\320\336\351\321\337\351\322\337\351\202\323\340\350"
- "\203\324\340\350\202\323\340\350<\322\337\351\321\337\351\320\336\351\316"
- "\336\351\315\335\351\313\335\351\312\334\352\310\334\352\306\333\352\304"
- "\332\352\303\332\352\301\331\353\276\330\353\274\330\353\273\327\353\271"
- "\326\354\267\326\354\264\325\354\262\324\354\261\324\355\257\323\355\254"
- "\322\355\252\322\355\250\321\356\246\320\356\244\317\356\242\317\357\240"
- "\316\357\235\315\357\233\314\357\231\314\360\227\313\360\225\312\360\223"
- "\311\360\220\311\361\216\310\361\214\307\361\212\306\361\210\306\362\206"
- "\305\362\204\304\362\201\304\363\200\303\363\177\302\363}\301\363{\301\364"
- "y\300\364v\277\364t\276\364r\276\365p\275\365n\274\365l\273\366i\273\366"
- "g\272\366e\271\366c\270\367a\270\367_\267\367]\266\367\204\0\0\0\24\262\324"
- "\355\264\325\354\266\326\354\270\326\354\272\327\353\274\327\353\276\330"
- "\353\300\331\353\301\331\353\303\332\352\305\333\352\307\333\352\311\334"
- "\352\312\334\352\313\335\351\315\335\351\316\336\351\320\336\351\320\337"
- "\351\321\337\351\202\322\337\351\1\323\337\350\202\322\337\351=\321\337\351"
- "\320\337\351\320\336\351\316\336\351\315\335\351\313\335\351\312\334\352"
- "\311\334\352\307\333\352\305\333\352\303\332\352\301\331\353\300\331\353"
- "\276\330\353\274\327\353\272\327\353\270\326\354\266\326\354\264\325\354"
- "\262\324\355\260\324\355\256\323\355\254\322\355\252\321\356\247\321\356"
- "\245\320\356\243\317\356\241\316\357\237\316\357\235\315\357\233\314\357"
- "\231\314\360\227\313\360\225\312\360\223\311\360\220\311\361\216\310\361"
- "\214\307\361\212\306\361\210\306\362\206\305\362\204\304\362\201\304\363"
- "\200\303\363\177\302\363}\301\363{\301\364y\300\364v\277\364t\276\364r\276"
- "\365p\275\365n\274\365l\273\366i\273\366g\272\366e\271\366c\270\367a\270"
- "\367_\267\367]\266\367\204\0\0\0\23\261\324\355\263\325\354\265\325\354\267"
- "\326\354\271\326\354\273\327\353\275\330\353\276\330\353\301\331\353\302"
- "\332\352\304\332\352\306\333\352\307\333\352\311\334\352\312\334\352\313"
- "\335\351\315\335\351\316\336\351\317\336\351\202\320\336\351\203\320\337"
- "\351\202\320\336\351<\317\336\351\316\336\351\315\335\351\313\335\351\312"
- "\334\352\311\334\352\307\333\352\306\333\352\304\332\352\302\332\352\301"
- "\331\353\276\330\353\275\330\353\273\327\353\271\326\354\267\326\354\265"
- "\325\354\263\325\354\261\324\355\257\323\355\255\323\355\253\322\355\251"
- "\321\356\247\320\356\245\320\356\242\317\356\241\316\357\237\316\357\235"
- "\315\357\233\314\357\230\313\360\226\313\360\224\312\360\222\311\361\220"
- "\310\361\216\310\361\213\307\361\211\306\362\207\306\362\205\305\362\203"
- "\304\362\201\303\363\200\303\363~\302\363|\301\363z\300\364x\300\364v\277"
- "\364t\276\365q\275\365o\275\365m\274\365k\273\366i\272\366g\272\366d\271"
- "\366b\270\367`\267\367^\267\367\\\266\370\204\0\0\0\23\260\324\355\262\324"
- "\354\264\325\354\266\326\354\270\326\354\272\327\353\274\327\353\276\330"
- "\353\277\331\353\301\331\353\303\332\352\304\332\352\306\333\352\307\333"
- "\352\311\334\352\312\334\352\313\335\351\314\335\351\315\335\351\207\316"
- "\336\351<\315\335\351\314\335\351\313\335\351\312\334\352\311\334\352\307"
- "\333\352\306\333\352\304\332\352\303\332\352\301\331\353\277\331\353\276"
- "\330\353\274\327\353\272\327\353\270\326\354\266\326\354\264\325\354\262"
- "\324\354\260\324\355\257\323\355\254\322\355\252\322\355\250\321\356\246"
- "\320\356\244\317\356\242\317\356\240\316\357\236\315\357\234\315\357\232"
- "\314\360\230\313\360\225\312\360\223\312\360\221\311\361\217\310\361\216"
- "\310\361\213\307\361\211\306\362\207\306\362\205\305\362\203\304\362\201"
- "\303\363\200\303\363~\302\363|\301\363z\300\364x\300\364v\277\364t\276\365"
- "q\275\365o\275\365m\274\365k\273\366i\272\366g\272\366d\271\366b\270\367"
- "`\267\367^\267\367\\\266\370\204\0\0\0\17\257\323\355\262\324\355\263\325"
- "\354\265\325\354\267\326\354\271\326\354\273\327\353\274\330\353\276\330"
- "\353\300\331\353\301\331\353\303\332\352\304\332\352\306\333\352\307\333"
- "\352\202\311\334\352\202\313\335\351\202\314\335\351\203\315\335\351\202"
- "\314\335\351\202\313\335\351\202\311\334\3528\307\333\352\306\333\352\304"
- "\332\352\303\332\352\301\331\353\300\331\353\276\330\353\274\330\353\273"
- "\327\353\271\326\354\267\326\354\265\325\354\263\325\354\262\324\355\257"
- "\323\355\255\323\355\254\322\355\252\321\356\247\321\356\245\320\356\244"
- "\317\356\242\317\357\240\316\357\235\315\357\233\314\357\231\314\360\227"
- "\313\360\225\312\360\223\312\360\221\311\361\217\310\361\215\307\361\213"
- "\307\361\211\306\362\206\305\362\204\305\362\202\304\362\200\303\363\200"
- "\302\363~\302\363{\301\364y\300\364w\277\364u\277\364s\276\365q\275\365o"
- "\274\365l\274\365j\273\366h\272\366f\271\366d\271\367b\270\367_\267\367]"
- "\267\367[\266\370\204\0\0\0\16\257\323\355\261\324\355\262\324\354\264\325"
- "\354\266\326\354\270\326\354\271\327\354\274\327\353\275\330\353\276\330"
- "\353\300\331\353\301\331\353\303\332\352\304\332\352\202\306\333\352\1\310"
- "\334\352\202\311\334\352\1\312\334\352\205\313\335\351\1\312\334\352\202"
- "\311\334\352\1\310\334\352\202\306\333\3527\304\332\352\303\332\352\301\331"
- "\353\300\331\353\276\330\353\275\330\353\274\327\353\271\327\354\270\326"
- "\354\266\326\354\264\325\354\262\324\354\261\324\355\257\323\355\254\322"
- "\355\252\322\355\251\321\356\247\320\356\245\320\356\242\317\356\241\316"
- "\357\237\316\357\235\315\357\233\314\357\230\313\360\226\313\360\225\312"
- "\360\223\311\360\220\311\361\216\310\361\214\307\361\212\306\361\210\306"
- "\362\206\305\362\204\304\362\201\304\363\200\303\363\200\302\363~\302\363"
- "{\301\364y\300\364w\277\364u\277\364s\276\365q\275\365o\274\365l\274\365"
- "j\273\366h\272\366f\271\366d\271\367b\270\367_\267\367]\267\367[\266\370"
- "\204\0\0\0\22\256\323\355\257\323\355\262\324\355\263\325\354\265\325\354"
- "\267\326\354\271\326\354\272\327\353\274\327\353\275\330\353\276\330\353"
- "\300\331\353\301\331\353\303\332\352\304\332\352\305\333\352\306\333\352"
- "\307\333\352\202\310\334\352\205\311\334\352\202\310\334\352;\307\333\352"
- "\306\333\352\305\333\352\304\332\352\303\332\352\301\331\353\300\331\353"
- "\276\330\353\275\330\353\274\327\353\272\327\353\271\326\354\267\326\354"
- "\265\325\354\263\325\354\262\324\355\257\323\355\256\323\355\254\322\355"
- "\252\321\356\250\321\356\246\320\356\244\317\356\242\317\357\240\316\357"
- "\236\315\357\234\315\357\232\314\360\230\313\360\226\313\360\224\312\360"
- "\222\311\361\220\310\361\216\310\361\213\307\361\211\306\362\207\306\362"
- "\206\305\362\204\304\362\201\304\363\200\303\363\177\302\363}\301\363{\301"
- "\364y\300\364v\277\364t\276\364r\276\365p\275\365n\274\365l\273\366i\273"
- "\366g\272\366e\271\366c\270\367a\270\367_\267\367]\266\367Z\266\370\204\0"
- "\0\0\22\254\322\355\257\323\355\260\324\355\262\324\354\264\325\354\266\326"
- "\354\267\326\354\271\326\354\272\327\353\274\327\353\275\330\353\276\330"
- "\353\300\331\353\301\331\353\302\332\352\303\332\352\304\332\352\305\333"
- "\352\203\306\333\352\203\307\333\352\203\306\333\352;\305\333\352\304\332"
- "\352\303\332\352\302\332\352\301\331\353\300\331\353\276\330\353\275\330"
- "\353\274\327\353\272\327\353\271\326\354\267\326\354\266\326\354\264\325"
- "\354\262\324\354\260\324\355\257\323\355\254\322\355\253\322\355\251\321"
- "\356\247\320\356\245\320\356\243\317\356\241\316\357\240\316\357\235\315"
- "\357\233\314\357\231\314\360\227\313\360\225\312\360\223\312\360\221\311"
- "\361\217\310\361\215\307\361\213\307\361\211\306\362\207\306\362\205\305"
- "\362\203\304\362\201\303\363\200\303\363~\302\363|\301\363z\300\364x\300"
- "\364v\277\364t\276\365q\275\365p\275\365n\274\365l\273\366i\273\366g\272"
- "\366e\271\366c\270\367a\270\367_\267\367]\266\367Z\266\370\204\0\0\0\16\254"
- "\322\355\255\323\355\257\323\355\261\324\355\262\324\354\264\325\354\266"
- "\326\354\267\326\354\271\326\354\272\327\353\274\327\353\275\330\353\276"
- "\330\353\300\331\353\202\301\331\353\202\303\332\352\202\304\332\352\205"
- "\305\333\352\202\304\332\352\202\303\332\352\202\301\331\3537\300\331\353"
- "\276\330\353\275\330\353\274\327\353\272\327\353\271\326\354\267\326\354"
- "\266\326\354\264\325\354\262\324\354\261\324\355\257\323\355\255\323\355"
- "\254\322\355\252\321\356\250\321\356\246\320\356\244\317\356\242\317\356"
- "\240\316\357\236\315\357\235\315\357\233\314\357\230\313\360\226\313\360"
- "\225\312\360\223\311\360\220\311\361\216\310\361\214\307\361\212\306\361"
- "\211\306\362\206\305\362\204\305\362\202\304\362\200\303\363\200\302\363"
- "~\302\363{\301\364y\300\364x\300\364v\277\364t\276\365q\275\365o\275\365"
- "m\274\365k\273\366i\272\366g\272\366d\271\366b\270\367`\267\367^\267\367"
- "\\\266\370Z\265\370\204\0\0\0\20\252\322\355\254\322\355\256\323\355\257"
- "\323\355\262\324\355\263\325\354\264\325\354\266\326\354\267\326\354\271"
- "\326\354\272\327\353\274\327\353\275\330\353\276\330\353\277\331\353\300"
- "\331\353\202\301\331\353\1\302\332\352\207\303\332\352\1\302\332\352\202"
- "\301\331\3539\300\331\353\277\331\353\276\330\353\275\330\353\274\327\353"
- "\272\327\353\271\326\354\267\326\354\266\326\354\264\325\354\263\325\354"
- "\262\324\355\257\323\355\256\323\355\254\322\355\252\322\355\251\321\356"
- "\247\320\356\245\320\356\243\317\356\241\316\357\240\316\357\235\315\357"
- "\233\314\357\232\314\360\230\313\360\225\312\360\223\312\360\222\311\361"
- "\220\310\361\216\310\361\213\307\361\211\306\362\210\306\362\206\305\362"
- "\204\304\362\201\304\363\200\303\363\177\302\363}\301\363{\301\364y\300\364"
- "w\277\364u\277\364s\276\365q\275\365o\274\365l\274\365j\273\366h\272\366"
- "f\271\366d\271\367b\270\367`\267\367^\267\367\\\266\370Z\265\370\204\0\0"
- "\0\22\252\321\356\253\322\355\254\322\355\257\323\355\260\324\355\262\324"
- "\355\263\325\354\264\325\354\266\326\354\267\326\354\271\326\354\272\327"
- "\353\274\327\353\274\330\353\275\330\353\276\330\353\277\331\353\300\331"
- "\353\211\301\331\353;\300\331\353\277\331\353\276\330\353\275\330\353\274"
- "\330\353\274\327\353\272\327\353\271\326\354\267\326\354\266\326\354\264"
- "\325\354\263\325\354\262\324\355\260\324\355\257\323\355\254\322\355\253"
- "\322\355\252\321\356\247\321\356\246\320\356\244\317\356\242\317\356\240"
- "\316\357\236\315\357\235\315\357\233\314\357\230\313\360\227\313\360\225"
- "\312\360\223\311\360\221\311\361\217\310\361\215\307\361\213\307\361\211"
- "\306\362\207\306\362\205\305\362\203\304\362\201\303\363\200\303\363~\302"
- "\363}\301\363{\301\364y\300\364v\277\364t\276\364r\276\365p\275\365n\274"
- "\365l\273\366i\273\366h\272\366f\271\366d\271\367b\270\367_\267\367]\267"
- "\367[\266\370Y\265\370\204\0\0\0\21\250\321\356\252\321\356\254\322\355\255"
- "\323\355\257\323\355\260\324\355\262\324\355\263\325\354\264\325\354\266"
- "\326\354\267\326\354\271\326\354\271\327\354\273\327\353\274\327\353\274"
- "\330\353\275\330\353\202\276\330\353\207\277\331\353\202\276\330\353:\275"
- "\330\353\274\330\353\274\327\353\273\327\353\271\327\354\271\326\354\267"
- "\326\354\266\326\354\264\325\354\263\325\354\262\324\355\260\324\355\257"
- "\323\355\255\323\355\254\322\355\252\321\356\250\321\356\247\320\356\245"
- "\320\356\243\317\356\241\316\357\240\316\357\235\315\357\233\314\357\232"
- "\314\360\230\313\360\226\313\360\224\312\360\222\311\361\220\310\361\216"
- "\310\361\214\307\361\212\306\361\210\306\362\206\305\362\204\305\362\202"
- "\304\362\200\303\363\200\302\363~\302\363|\301\363z\300\364x\300\364v\277"
- "\364t\276\365q\275\365o\275\365n\274\365l\273\366i\273\366g\272\366e\271"
- "\366c\270\367a\270\367_\267\367]\266\367Z\266\370X\265\370\204\0\0\0\21\247"
- "\320\356\251\321\356\252\322\355\254\322\355\255\323\355\257\323\355\261"
- "\324\355\262\324\355\263\325\354\264\325\354\266\326\354\267\326\354\270"
- "\326\354\271\326\354\272\327\353\273\327\353\274\327\353\202\274\330\353"
- "\202\275\330\353\203\276\330\353\202\275\330\353\202\274\330\353:\274\327"
- "\353\273\327\353\272\327\353\271\326\354\270\326\354\267\326\354\266\326"
- "\354\264\325\354\263\325\354\262\324\355\261\324\355\257\323\355\255\323"
- "\355\254\322\355\252\322\355\251\321\356\247\320\356\245\320\356\244\317"
- "\356\242\317\357\240\316\357\236\315\357\235\315\357\233\314\357\231\314"
- "\360\227\313\360\225\312\360\223\312\360\221\311\361\217\310\361\216\310"
- "\361\213\307\361\211\306\362\207\306\362\206\305\362\204\304\362\201\304"
- "\363\200\303\363\177\302\363~\302\363{\301\364y\300\364w\277\364u\277\364"
- "s\276\365q\275\365o\275\365m\274\365k\273\366i\272\366g\272\366d\271\366"
- "b\270\367`\267\367^\267\367\\\266\370Z\266\370X\265\370\204\0\0\0\14\246"
- "\320\356\247\321\356\251\321\356\252\322\355\254\322\355\256\323\355\257"
- "\323\355\260\324\355\262\324\355\263\325\354\264\325\354\265\325\354\202"
- "\267\326\354\4\270\326\354\271\326\354\271\327\354\272\327\353\202\273\327"
- "\353\205\274\327\353\202\273\327\353\4\272\327\353\271\327\354\271\326\354"
- "\270\326\354\202\267\326\3545\265\325\354\264\325\354\263\325\354\262\324"
- "\355\260\324\355\257\323\355\256\323\355\254\322\355\252\322\355\251\321"
- "\356\247\321\356\246\320\356\244\317\356\242\317\356\241\316\357\237\316"
- "\357\235\315\357\233\314\357\232\314\360\230\313\360\226\313\360\224\312"
- "\360\222\311\361\220\311\361\216\310\361\214\307\361\213\307\361\211\306"
- "\362\206\305\362\204\305\362\203\304\362\201\303\363\200\303\363~\302\363"
- "}\301\363{\301\364y\300\364v\277\364t\276\364r\276\365q\275\365o\274\365"
- "l\274\365j\273\366h\272\366f\271\366d\271\367b\270\367_\267\367^\267\367"
- "\\\266\370Z\265\370X\265\370\204\0\0\0\13\245\320\356\246\320\356\247\321"
- "\356\251\321\356\253\322\355\254\322\355\255\323\355\257\323\355\260\324"
- "\355\262\324\355\262\324\354\202\264\325\354\1\266\326\354\202\267\326\354"
- "\1\270\326\354\202\271\326\354\203\271\327\354\1\272\327\353\203\271\327"
- "\354\202\271\326\354\1\270\326\354\202\267\326\354\1\266\326\354\202\264"
- "\325\3544\262\324\354\262\324\355\260\324\355\257\323\355\255\323\355\254"
- "\322\355\253\322\355\251\321\356\247\321\356\246\320\356\245\320\356\243"
- "\317\356\241\316\357\240\316\357\236\315\357\234\315\357\233\314\357\230"
- "\313\360\227\313\360\225\312\360\223\312\360\221\311\361\217\310\361\216"
- "\310\361\213\307\361\211\306\362\210\306\362\206\305\362\204\304\362\202"
- "\304\362\200\303\363\200\302\363~\302\363{\301\364z\300\364x\300\364v\277"
- "\364t\276\365q\275\365p\275\365n\274\365l\273\366i\273\366g\272\366e\271"
- "\366c\270\367b\270\367_\267\367]\267\367[\266\370Y\265\370W\264\370\204\0"
- "\0\0\15\243\317\356\245\320\356\246\320\356\250\321\356\252\321\356\253\322"
- "\355\254\322\355\255\323\355\257\323\355\260\324\355\261\324\355\262\324"
- "\354\263\325\354\202\264\325\354\2\265\325\354\266\326\354\203\267\326\354"
- "\205\270\326\354\203\267\326\354\2\266\326\354\265\325\354\202\264\325\354"
- "6\263\325\354\262\324\354\261\324\355\260\324\355\257\323\355\255\323\355"
- "\254\322\355\253\322\355\252\321\356\250\321\356\246\320\356\245\320\356"
- "\243\317\356\242\317\357\240\316\357\236\315\357\235\315\357\233\314\357"
- "\231\314\360\230\313\360\225\312\360\224\312\360\222\311\361\220\311\361"
- "\216\310\361\214\307\361\213\307\361\211\306\362\206\305\362\205\305\362"
- "\203\304\362\201\303\363\200\303\363\177\302\363}\301\363{\301\364y\300\364"
- "w\277\364u\277\364s\276\365q\275\365o\275\365m\274\365k\273\366i\272\366"
- "g\272\366d\271\366c\270\367a\270\367_\267\367]\266\367Z\266\370X\265\370"
- "V\264\370\204\0\0\0\17\242\317\357\243\317\356\245\320\356\247\320\356\250"
- "\321\356\251\321\356\252\322\355\254\322\355\255\323\355\256\323\355\257"
- "\323\355\260\324\355\262\324\355\262\324\354\263\325\354\202\264\325\354"
- "\202\265\325\354\207\266\326\354\202\265\325\354\202\264\325\3548\263\325"
- "\354\262\324\354\262\324\355\260\324\355\257\323\355\256\323\355\255\323"
- "\355\254\322\355\252\322\355\252\321\356\250\321\356\247\320\356\245\320"
- "\356\243\317\356\242\317\357\240\316\357\237\316\357\235\315\357\233\314"
- "\357\232\314\360\230\313\360\226\313\360\225\312\360\223\311\360\221\311"
- "\361\217\310\361\216\310\361\213\307\361\211\306\362\210\306\362\206\305"
- "\362\204\305\362\202\304\362\200\303\363\200\302\363~\302\363|\301\363z\300"
- "\364y\300\364v\277\364t\276\364r\276\365p\275\365o\274\365l\274\365j\273"
- "\366h\272\366f\271\366d\271\367b\270\367`\267\367^\267\367\\\266\370Z\265"
- "\370X\265\370U\264\370\204\0\0\0\10\240\316\357\242\317\356\244\317\356\245"
- "\320\356\247\320\356\247\321\356\251\321\356\252\322\355\202\254\322\355"
- "\1\256\323\355\202\257\323\355\1\260\324\355\202\262\324\355\2\262\324\354"
- "\263\325\354\211\264\325\354\2\263\325\354\262\324\354\202\262\324\355\1"
- "\260\324\355\202\257\323\355\1\256\323\355\202\254\322\3551\252\322\355\251"
- "\321\356\247\321\356\247\320\356\245\320\356\244\317\356\242\317\356\240"
- "\316\357\237\316\357\235\315\357\234\315\357\233\314\357\230\313\360\227"
- "\313\360\225\312\360\223\312\360\222\311\361\220\310\361\216\310\361\214"
- "\307\361\213\307\361\211\306\362\206\305\362\205\305\362\203\304\362\201"
- "\304\363\200\303\363\177\302\363~\302\363{\301\364y\300\364w\277\364v\277"
- "\364t\276\365q\275\365o\275\365n\274\365l\273\366i\273\366g\272\366e\271"
- "\366d\271\367b\270\367_\267\367]\267\367[\266\370Y\265\370W\264\370U\264"
- "\370\204\0\0\0\15\240\316\357\241\316\357\242\317\356\244\317\356\245\320"
- "\356\246\320\356\247\321\356\251\321\356\252\321\356\253\322\355\254\322"
- "\355\255\323\355\256\323\355\202\257\323\355\1\260\324\355\202\261\324\355"
- "\1\262\324\355\207\262\324\354\1\262\324\355\202\261\324\355\1\260\324\355"
- "\202\257\323\355\36\256\323\355\255\323\355\254\322\355\253\322\355\252\321"
- "\356\251\321\356\247\321\356\246\320\356\245\320\356\244\317\356\242\317"
- "\356\241\316\357\240\316\357\235\315\357\234\315\357\233\314\357\231\314"
- "\360\230\313\360\225\312\360\224\312\360\223\311\360\220\311\361\217\310"
- "\361\215\307\361\213\307\361\211\306\362\210\306\362\206\305\362\204\304"
- "\362\202\304\362\202\200\303\363\26~\302\363|\301\363{\301\364y\300\364v"
- "\277\364t\276\364s\276\365q\275\365o\274\365l\274\365k\273\366i\272\366g"
- "\272\366d\271\366c\270\367a\270\367_\267\367]\266\367Z\266\370X\265\370V"
- "\264\370U\264\370\204\0\0\0\16\236\315\357\240\316\357\241\316\357\242\317"
- "\356\243\317\356\245\320\356\246\320\356\247\321\356\250\321\356\252\321"
- "\356\252\322\355\253\322\355\254\322\355\255\323\355\202\256\323\355\203"
- "\257\323\355\207\260\324\355\203\257\323\355\202\256\323\3557\255\323\355"
- "\254\322\355\253\322\355\252\322\355\252\321\356\250\321\356\247\321\356"
- "\246\320\356\245\320\356\243\317\356\242\317\356\241\316\357\240\316\357"
- "\236\315\357\235\315\357\233\314\357\231\314\360\230\313\360\226\313\360"
- "\225\312\360\223\311\360\221\311\361\220\310\361\216\310\361\214\307\361"
- "\212\306\361\211\306\362\206\305\362\205\305\362\203\304\362\201\304\363"
- "\200\303\363\177\302\363~\302\363{\301\364y\300\364x\300\364v\277\364t\276"
- "\365r\276\365p\275\365n\274\365l\273\366j\273\366h\272\366f\271\366d\271"
- "\367b\270\367`\267\367^\267\367\\\266\370Z\265\370X\265\370V\264\370T\263"
- "\371\204\0\0\0\2\235\315\357\236\315\357\202\240\316\357\2\242\317\357\243"
- "\317\356\202\245\320\356\6\247\320\356\247\321\356\251\321\356\252\321\356"
- "\252\322\355\253\322\355\202\254\322\355\202\255\323\355\202\256\323\355"
- "\205\257\323\355\202\256\323\355\202\255\323\355\202\254\322\355\6\253\322"
- "\355\252\322\355\252\321\356\251\321\356\247\321\356\247\320\356\202\245"
- "\320\356\2\243\317\356\242\317\357\202\240\316\357\22\236\315\357\235\315"
- "\357\233\314\357\232\314\360\230\313\360\226\313\360\225\312\360\223\312"
- "\360\222\311\361\220\310\361\216\310\361\215\307\361\213\307\361\211\306"
- "\362\207\306\362\206\305\362\204\304\362\202\304\362\202\200\303\363\27~"
- "\302\363|\301\363{\301\364y\300\364v\277\364u\277\364s\276\365q\275\365o"
- "\275\365m\274\365k\273\366i\272\366g\272\366e\271\366c\270\367a\270\367_"
- "\267\367]\267\367[\266\370Y\265\370W\264\370U\264\370S\263\371\204\0\0\0"
- "\16w\232\264\235\315\357\236\315\357\237\316\357\240\316\357\242\317\357"
- "\242\317\356\244\317\356\245\320\356\246\320\356\247\320\356\247\321\356"
- "\251\321\356\252\321\356\202\252\322\355\1\253\322\355\213\254\322\355\1"
- "\253\322\355\202\252\322\3557\252\321\356\251\321\356\247\321\356\247\320"
- "\356\246\320\356\245\320\356\244\317\356\242\317\356\242\317\357\240\316"
- "\357\237\316\357\236\315\357\235\315\357\233\314\357\232\314\360\230\313"
- "\360\227\313\360\225\312\360\223\312\360\222\311\361\220\311\361\217\310"
- "\361\215\307\361\213\307\361\211\306\362\210\306\362\206\305\362\204\305"
- "\362\203\304\362\201\303\363\200\303\363\177\302\363~\302\363{\301\364y\300"
- "\364x\300\364v\277\364t\276\365r\276\365p\275\365n\274\365l\274\365j\273"
- "\366h\272\366g\272\366d\271\366b\270\367`\267\367_\267\367]\266\367Z\266"
- "\370X\265\370V\264\370U\264\370>\207\274\204\0\0\0\11\12\16\20w\232\264\234"
- "\315\357\235\315\357\237\316\357\240\316\357\241\316\357\242\317\356\243"
- "\317\356\202\245\320\356\5\246\320\356\247\320\356\247\321\356\250\321\356"
- "\251\321\356\202\252\321\356\203\252\322\355\203\253\322\355\203\252\322"
- "\355\202\252\321\356\5\251\321\356\250\321\356\247\321\356\247\320\356\246"
- "\320\356\202\245\320\3562\243\317\356\242\317\356\241\316\357\240\316\357"
- "\237\316\357\235\315\357\234\315\357\233\314\357\232\314\360\230\313\360"
- "\227\313\360\225\312\360\224\312\360\222\311\361\220\311\361\217\310\361"
- "\216\310\361\214\307\361\212\306\361\211\306\362\206\305\362\205\305\362"
- "\204\304\362\201\304\363\200\303\363\200\302\363~\302\363|\301\363{\301\364"
- "y\300\364v\277\364u\277\364s\276\365q\275\365o\275\365m\274\365l\273\366"
- "i\273\366g\272\366e\271\366d\271\367b\270\367_\267\367]\267\367\\\266\370"
- "Z\265\370X\265\370U\264\370@\207\274\5\14\21\377\0\0\0\267\0\0\0",
+ "\5\306\306\306\302\302\301\300\276\273\311\311\311\342\342\342\315\345\345"
+ "\345\4\206\216\236Yf\200\242\244\250\247\247\247\202\255\255\255\7\250\250"
+ "\250\256\256\256\317\316\314\231\236\232\215\244\223\322\322\322\340\340"
+ "\340\315\345\345\345\4s}\221:Jm\232\234\241\240\240\240\202\250\250\250\7"
+ "\241\241\241\247\247\247\302\303\307\314\315\321\307\311\314\303\305\311"
+ "\325\327\333\232\331\333\336\206\331\333\337\204\332\333\337\215\332\334"
+ "\340\1\333\334\340\202\333\334\341\223\333\335\341\202\333\335\342\202\334"
+ "\335\342\202\334\336\342\10\223\232\253p{\223\247\252\262\253\255\261\260"
+ "\262\266\257\261\266\253\255\262\260\262\267\234\22)]>\23*^\24+_\24+`\25"
+ ",a\26-b\26.c\27/d\30/e\31""0f\31""1g\32""2h\33""3i\34""4k\36""7o\37""8p\40"
+ """9q\40""9r!:s\";t#<u#=v$=w%>x&?y&@z'A{(A|(B})C~*D~+D\177+E\200,F\200-H\201"
+ "-G\201+E\177,E\200-F\200-G\201.H\202/H\2030I\2040J\2051K\2062L\2073L\210"
+ "3M\2104N\2115O\2125O\2136P\2147Q\2158R\2168S\2179S\220:T\221:U\222;V\223"
+ "<W\224=W\225=X\226>Y\227\233\22)]$\22)^\23*_\24+_\25,`\25-a\26-b\27.c\27"
+ "/d\30""0e\31""0f\32""1g\32""2h\33""3i\33""4j\36""7o\37""8q\40""9r!:s!;t\""
+ ";u#<u$=v$>w%>x&?y&@z'A{(B|)B})C~*D\177+E\200,F\200,G\201-H\202.I\202\202"
+ ",E\200\32-F\200.G\201.H\202/I\2030I\2041J\2051K\2062L\2073M\2104M\2114N\212"
+ "5O\2136P\2146P\2157Q\2168R\2169S\2179T\220:T\221;U\222<V\223<W\224=X\225"
+ ">X\226>Y\227\22*^\232\22)]A\23*^\23*_\24+`\25,a\26-b\26.c\27.d\30/d\30""0"
+ "e\31""1f\32""2g\33""2h\33""3i\33""4j\35""6m\40""9q\40""9r!:s\";t\"<u#<v$"
+ "=w%>x%?y&@z'@z(A{(B|)C}*D~*D\177+E\200,F\200-H\201-H\202.I\203-G\200,F\200"
+ "-G\201.G\202/H\203/I\2030J\2051K\2052K\2062L\2073M\2104N\2115N\2125O\213"
+ "6P\2147Q\2157R\2168R\2179S\220:T\221:U\222;V\223<V\224<W\225=X\225>Y\226"
+ "?Y\227\23,b\22*^\231\22)]\36\23*^\24+_\24,`\25,a\26-b\27.c\27/d\30/e\31""0"
+ "f\31""1g\32""2h\33""3i\33""3j\33""4k\34""5k\37""8q\40:r!:s\";t#<u#=v$>w%"
+ ">x&?y&@z'A{(A|)B})C~*D\177\202+E\200\37,G\200-H\201.I\202-G\200,E\200-F\200"
+ "-G\201.H\202/H\2030I\2040J\2051K\2062L\2073L\2103M\2114N\2115O\2126P\213"
+ "6P\2147Q\2158R\2168S\2179T\220:T\221;U\222;V\223<W\224=W\225>X\226>Y\227"
+ "?Z\230\202\23,b\1\22*^\227\22)]@\22*^\23*_\24+`\25,`\25-a\26-b\27.c\30/d"
+ "\30""0e\31""1f\32""1g\32""2h\33""3i\33""4j\34""4k\34""5l\36""7o!:s\";t\""
+ ";u#<v$=v$>w%?x&?y'@z'A{(B|)C})C~*D\177+E\200,F\200,G\201-H\202,G\200,E\200"
+ ",F\200-F\200.G\201/H\202/I\2030I\2041J\2051K\2062L\2073M\2104N\2114N\212"
+ "5O\2136P\2147Q\2157Q\2168R\2179S\2209T\220:U\221;U\222<V\223<W\224=X\225"
+ ">X\226>Y\227?Z\230\203\23,b\1\22*^\226\22)]@\23*^\23+_\24+`\25,a\26-b\26"
+ ".c\27/d\30/e\31""0f\31""1g\32""2g\33""2h\33""3i\33""4j\34""5k\35""6l\35""6"
+ "m!:r\";t\"<u#=v$=w%>x%?y&@z'A{(A|(B|)C}*D~+D\177+E\200,F\200-H\201,F\200"
+ "+E\177,E\200-F\200-G\201.G\202/H\203/I\2040J\2051K\2052K\2062L\2073M\210"
+ "4N\2115N\2125O\2136P\2147Q\2157R\2168R\2179S\220:T\221:U\222;V\223<V\224"
+ "=W\225=X\226>Y\226?Z\227?Z\230\204\23,b\1\22*^\225\22)]\36\23*^\24+_\24,"
+ "`\25-a\26-b\27.c\27/d\30""0e\31""0f\32""1g\32""2h\33""3i\33""4j\33""4k\34"
+ """5l\35""6l\36""7m\40""9q\";t#<u#=v$>w%>x&?y&@z'A{(B|)B})C~*D\177\202+E\200"
+ "\40,G\200+F\200+E~+E\177,E\200-F\200.G\201.H\202/I\2030I\2041J\2051K\206"
+ "2L\2073L\2103M\2114N\2125O\2136P\2136P\2147Q\2158R\2169S\2179T\220:T\221"
+ ";U\222;V\223<W\224=W\225>X\226>Y\227?Z\230@[\231\205\23,b\1\22*^\223\22)"
+ "]A\22*^\23*_\24+`\25,a\25-b\26.b\27.c\30/d\30""0e\31""1f\32""1g\32""2h\33"
+ """3i\33""4j\34""5k\34""5l\35""6m\36""7n\37""8o\";t#<v$=w%>x%?y&?y'@z'A{("
+ "B|)C}*C~*D\177+E\200,F\200+F\177*D~+E\177,E\200-F\200-F\201.G\201/H\202/"
+ "I\2030J\2041J\2051K\2062L\2073M\2104N\2114N\2125O\2136P\2147Q\2157R\2168"
+ "R\2179S\2209T\221:U\221;U\222<V\223<W\224=X\225>X\226?Y\227?Z\230@[\231\206"
+ "\23,b\1\22)^\222\22)]A\23*^\23+_\24+`\25,a\26-b\26.c\27/d\30/e\31""0f\31"
+ """1g\32""2h\33""2h\33""3i\33""4j\34""5k\35""6l\35""6m\36""7n\37""8o!:s#="
+ "v$=w%>x%?y&@z'A{(A|(B})C}*D~+D\177+E\200+E\177*D}*E~+E\177,E\200-F\200-G"
+ "\201.H\202/H\2030I\2040J\2051K\2062K\2072L\2103M\2104N\2115O\2125O\2136P"
+ "\2147Q\2158R\2168S\2179S\220:T\221:U\222;V\223<V\224=W\225=X\226>Y\227?Z"
+ "\230@Z\230@[\231\206\23,b\2\23,a\22)^\220\22)]\37\22)^\23*^\24+_\25,`\25"
+ "-a\26-b\27.c\27/d\30""0e\31""1f\32""1g\32""2h\33""3i\33""4j\34""4k\34""5"
+ "l\35""6m\36""7m\36""7n\37""8o\40""9q$=v$>w%>x&?y'@z'A{(B|)B})C~*D\177\202"
+ "+E\200!)C}*D~+E~,E\177,E\200-F\200.G\201.H\202/I\2030I\2041J\2051K\2062L"
+ "\2073M\2103M\2114N\2125O\2136P\2146Q\2157Q\2158R\2168S\2179T\220:T\221;U"
+ "\222;V\223<W\224=X\225>X\226>Y\227?Z\230@[\231A\\\232\207\23,b\2\23,a\22"
+ ")^\217\22)]B\23*^\23*_\24+`\25,a\26-b\26.c\27.c\30/d\30""0e\31""1f\32""2"
+ "g\33""2h\33""3i\33""4j\34""5k\34""5l\35""6m\36""7n\37""8o\37""9p\40""9q#"
+ "<u%>x%?x&@z'@z'A{(B|)C}*C~*D\177+E\200)C}*D}*D~+E\177,E\200,F\200-G\201."
+ "G\202/H\202/I\2030J\2041J\2052K\2062L\2073M\2104N\2114N\2125O\2136P\2147"
+ "Q\2157R\2168R\2179S\220:T\221:U\222;V\223<V\224<W\224=X\225>Y\226?Y\227?"
+ "Z\230@[\231A\\\232\210\23,b\2\23,a\22)^\216\22)]B\23*^\24+_\24,`\25,a\26"
+ "-b\27.c\27/d\30/e\31""0f\31""1g\32""2h\33""3i\33""3j\33""4j\34""5k\35""6"
+ "l\35""6m\36""7n\37""8o\40""9p\40:q\";s%>x&?y&@z'A{(A|)B})C~*D\177+E\177)"
+ "C})C|*D}+E~+E\177,E\200-F\200.G\201.H\202/H\2030I\2040J\2051K\2062L\2073"
+ "L\2103M\2104N\2115O\2125O\2136P\2147Q\2158R\2168S\2179S\220:T\221;U\222;"
+ "V\223<W\224=W\225=X\226>Y\227?Z\230@Z\230@[\231A\\\232\211\23,b\2\23,a\22"
+ ")^\214\22)]\36\22)^\23*_\24+`\25,`\25-a\26-b\27.c\27/d\30""0e\31""1f\32""1"
+ "g\32""2h\33""3i\33""4j\34""5k\34""5l\35""6m\36""7n\37""8o\37""8p\40""9p!"
+ ":q!;r$>w&?y'@z'A{(B|)B})C~\202*D\177#)C|)C}*D~+E\177,E\200,F\200-F\200.G"
+ "\201.H\202/I\2030J\2041J\2051K\2062L\2073M\2104M\2114N\2125O\2136P\2146Q"
+ "\2157Q\2158R\2179S\2179T\220:T\221;U\222<V\223<W\224=X\225>X\226>Y\227?Z"
+ "\230@[\231A\\\232A\\\233\212\23,b\2\23,a\22)^\213\22)]\37\23*^\23*_\24+`"
+ "\25,a\26-b\26.c\27.d\30/e\30""0f\31""1f\32""2g\33""2h\33""3i\33""4j\34""5"
+ "k\35""6l\35""6m\36""7n\37""8o\37""9p\40:q!:r\";s#=u&@y'@{(A{(B|)C}*D~*D\177"
+ "\202)C|\"*D}*D~+E\177,E\200,F\200-G\201.G\202/H\203/I\2040J\2041K\2052K\206"
+ "2L\2073M\2104N\2114O\2125O\2136P\2147Q\2157R\2168R\2179S\220:T\221:U\222"
+ ";V\223<V\224=W\224=X\226>Y\226?Y\227?Z\230@[\231A\\\232B]\233\213\23,b\2"
+ "\23,a\22)^\212\22)]C\23*^\24+_\24,`\25,a\26-b\27.c\27/d\30""0e\31""0f\32"
+ """1g\32""2h\33""3i\33""4j\33""4k\34""5l\35""6l\36""7m\36""7n\37""8o\40""9"
+ "p!:q!;r\";s#<t&?y'A{(A|)B})C~*D\177*D~(B{)C|*D}+E~+E\177,E\200-F\200-G\201"
+ ".H\202/I\2030I\2040J\2051K\2062L\2073L\2103M\2114N\2125O\2136P\2136P\214"
+ "7Q\2158R\2168S\2179T\220:T\221;U\222;V\223<W\224=W\225>X\226>Y\227?Z\230"
+ "@[\231@[\232A\\\233B]\233\214\23,b\1\23+a\211\22)]\37\22*^\23*_\24+`\25,"
+ "a\25-b\26-b\27.c\30/d\30""0e\31""1f\32""1g\33""2h\33""3i\33""4j\34""5k\34"
+ """5l\35""6m\36""7n\37""8o\37""8p\40""9q!:q!;r\"<s#<t$>w'A{(B|)C}*C~*D\177"
+ "\202)C|#)D}*D~+E\177,E\200,F\200-F\201.G\201/H\202/I\2030J\2041J\2051K\206"
+ "2L\2073M\2104N\2114N\2125O\2136P\2147Q\2157Q\2168R\2179S\2209T\220:U\221"
+ ";U\222<V\223<W\224=X\225>Y\226>Y\227?Z\230@[\231A\\\232A\\\233B]\234\215"
+ "\23,b\1\23+a\210\22)]\35\23*^\24+_\24+`\25,a\26-b\26.c\27/d\30/e\31""0f\31"
+ """1g\32""2g\33""2h\33""3i\33""4j\34""5k\35""6l\36""6m\36""7n\37""8o\40""9"
+ "p\40:q!:r\";s\"<t#=u$=v'A{(B})C}\202*D~&(B{)C|*D}*E~+E\177,E\200-F\200-G"
+ "\201.H\202/H\2030I\2040J\2051K\2052K\2072L\2073M\2104N\2115O\2125O\2136P"
+ "\2147Q\2158R\2168S\2179S\220:T\221:U\222;V\223<W\224=W\225=X\226>Y\226?Z"
+ "\227@Z\230@[\231A\\\232B]\233B^\234\23+a\215\23,b\1\23+a\206\22)]\37\22)"
+ "^\23*^\24+_\24,`\25-a\26-b\27.c\27/d\30""0e\31""0f\32""1g\32""2h\33""3i\33"
+ """4j\33""4k\34""5l\35""6m\36""7m\36""8n\37""8o\40""9p!:q!;r\";s#<t#=u$>v"
+ "&@y)B})C~*D\177\202)B|&)C}*D}+E~+E\177,E\200-F\200.G\201.H\202/I\2030I\204"
+ "1J\2051K\2062L\2073L\2103M\2114N\2125O\2136P\2146P\2157Q\2158R\2169S\217"
+ "9T\220:T\221;U\222;V\223<W\224=X\225>X\226>Y\227?Z\230@[\231@[\232A\\\233"
+ "B]\234C^\235\22)]\23+a\215\23,b\1\23+a\205\22)]E\23*^\23*_\24+`\25,a\25-"
+ "b\26.c\27.c\30/d\30""0e\31""1f\32""1g\33""2h\33""3i\33""4j\34""5k\34""5l"
+ "\35""6m\36""7n\37""8o\37""9p\40""9q!:r\";s\"<t#=t$=u$>v%?w)B|*C~*D~(B{)C"
+ "|*D}*D~+E\177,E\200,F\200-F\201.G\201/H\202/I\2030J\2041J\2052K\2062L\207"
+ "3M\2104N\2114N\2125O\2136P\2147Q\2157Q\2168R\2179S\2209T\221:U\222;U\222"
+ "<V\223<W\224=X\225>Y\226?Y\227?Z\230@[\231A\\\232B]\233B]\234C^\235\202\22"
+ ")]\1\23+`\215\23,b\1\23+a\204\22)]\13\23*^\24+_\24+`\25,a\26-b\26.c\27/d"
+ "\30/e\31""0f\31""1g\32""2h\202\33""3i8\33""4j\34""5k\35""6l\35""6m\36""7"
+ "n\37""8o\40""9p\40:q!;r\";s#<t#=u$>v%>w%?x'A{*D~)B|(B{)C|*D}+E~+E\177,E\200"
+ "-F\200-G\201.G\202/H\2030I\2040J\2051K\2062L\2073L\2103M\2104N\2115O\212"
+ "5O\2136P\2147Q\2158R\2168S\2179S\220:T\221;U\222;V\223<V\224=W\225=X\226"
+ ">Y\227?Z\230@Z\230@[\231A\\\232B]\233C^\234C^\235\203\22)]\1\22+`\215\23"
+ ",b\1\23+a\202\22)]F\22)^\23*_\24+_\25,`\25-a\26-b\27.c\27/d\30""0e\31""1"
+ "f\32""1g\32""2h\33""3i\33""4j\34""5k\34""5l\35""6m\36""7n\36""8o\37""8o\40"
+ """9p!:q!;r\"<s#<t#=u$>v%?w&@x'@y)C~(B{)C|)C}*D~+E\177,E\177,E\200-F\200."
+ "G\201.H\202/I\2030I\2041J\2051K\2062L\2073M\2104M\2114N\2125O\2136P\2146"
+ "Q\2157Q\2158R\2179S\2179T\220:T\221;U\222;V\223<W\224=X\225>X\226?Y\227?"
+ "Z\230@[\231A\\\232A\\\233B]\234C^\235C_\236\204\22)]\1\22*_\215\23,b\40\23"
+ "+a\22)]\23*^\23+_\24+`\25,a\26-b\26.c\27.d\30/e\30""0f\31""1f\32""2g\33""2"
+ "h\33""3i\33""4j\34""5k\34""6l\35""6m\36""7n\37""8o\37""9p\40""9q!:r\";s\""
+ "<t#=t$=u%>v%?w&@x'Ay\202(B{&)C|*D}*D~+E\177,E\200-F\200-G\201.G\202/H\203"
+ "/I\2030J\2041K\2052K\2062L\2073M\2104N\2115N\2125O\2136P\2147Q\2157R\216"
+ "8R\2179S\220:T\221:U\222;V\223<V\223=W\224=X\225>Y\226?Y\227?Z\230@[\231"
+ "A\\\232B]\233B]\234C^\235D_\236\205\22)]\1\22*_\215\23,b\37\23+a\23*_\24"
+ "+_\24,`\25,a\26-b\27.c\27/d\30/e\31""0f\31""1g\32""2h\33""3i\33""3j\33""4"
+ "k\34""5k\35""6l\36""7m\36""7n\37""8o\40""9p\40:q!;r\";s#<t#=u$>v%>w&?x&@"
+ "y'Az\202(B{&)C|*D}+E~+E\177,E\200-F\200.G\201.H\202/H\2030I\2040J\2051K\206"
+ "2L\2073L\2103M\2114N\2125O\2136P\2136P\2147Q\2168R\2168S\2179S\220:T\221"
+ ";U\222;V\223<W\224=W\225>X\226>Y\227?Z\230@[\231@[\232A\\\232B]\233C^\234"
+ "C^\235D_\236\206\22)]\1\22*_\214\23,bG\23,c\24,b\24+`\25,`\25-a\26-b\27."
+ "c\30/d\30""0e\31""1f\32""1g\32""2h\33""3i\33""4j\34""4k\34""5l\35""6m\36"
+ """7n\37""8o\37""8p\40""9p!:q!;r\"<s#<t$=u$>v%?w&@x'@y'Az(B{)C|)C}*D~+E\177"
+ ",E\200,F\200-F\200.G\201/H\202/I\2030J\2041J\2051K\2062L\2073M\2104N\211"
+ "4N\2125O\2136P\2148S\216:V\2229T\2209S\2209T\220:U\221;U\222;V\223<W\224"
+ "=X\225>X\226>Y\227?Z\230@[\231A\\\232A\\\233B]\234C^\235D_\236D`\237\207"
+ "\22)]\1\22*^\213\23,bG\24-c\24.d\25-c\25,a\26-b\26.c\27.d\30/e\31""0f\31"
+ """1g\32""2g\33""2h\33""3i\33""4j\34""5k\35""6l\35""6m\36""7n\37""8o\40""9"
+ "p\40:q!:r\";s\"<t#=u$=v%>v%?w&@x'Ay(Az(B{)C|*D}*E~+E\177,E\200-F\200-G\201"
+ ".G\202/H\2030I\2040J\2051K\2062K\2062L\2073M\2104N\2115N\2125O\2138S\217"
+ ":V\222;W\223:V\2229S\220:T\221:U\222;V\223<V\224=W\225=X\225>Y\226?Y\227"
+ "@Z\230@[\231A\\\232B]\233B]\234C^\235D_\236E`\237\210\22)]\2\22*^\23,a\211"
+ "\23,b\20\24-c\25.d\25/e\26/e\26-b\27.c\27/d\30""0e\31""0f\32""1g\32""2h\33"
+ """3i\33""4j\33""4k\34""5l\35""6l\202\36""7n$\37""8o\40""9p!:q!;r\";s#<t#"
+ "=u$>v%?w&?x&@y'Az(B{(B|)C}*D}+E~+E\177,E\200-F\200.G\201.H\202/I\2030I\204"
+ "1J\2051K\2062L\2073L\2103M\2114N\2125O\2138S\2179U\221:V\222;W\223;X\224"
+ "\202:T\221\17;U\222;V\223<W\224=W\225>X\226>Y\227?Z\230@[\231A[\232A\\\233"
+ "B]\233C^\234C_\235D_\236E`\237\211\22)]\2\22)^\23+a\207\23,bH\23-c\24-d\25"
+ ".e\26/f\26""0f\27""0f\27.d\30/d\30""0e\31""1f\32""1g\32""2h\33""3i\33""4"
+ "j\34""5k\34""5l\35""6m\36""7n\37""8o\37""9p\40""9q!:r!;r\"<s#<t$=u$>v%?w"
+ "&@x'@y'Az(B{)C|)D}*D~+E\177,E\200,F\200-G\201.G\201/H\202/I\2030J\2041J\205"
+ "1K\2062L\2073M\2104N\2114O\2127S\2179U\221:V\222:W\223;W\224<X\225;W\223"
+ ":U\222;U\222<V\223<W\224=X\225>Y\226?Y\227?Z\230@[\231A\\\232A\\\233B]\234"
+ "C^\235D_\236D`\237E`\240\213\22)]\1\23+a\206\23,bH\24-c\24.d\25.e\26/f\27"
+ """0g\27""1h\30""1g\30/e\31""0f\31""1g\32""2h\33""3h\33""3i\33""4j\34""5k"
+ "\35""6l\35""6m\36""7n\37""8o\40""9p\40:q!:r\";s\"<t#=u$>v%>w%?w&@x'Ay(Az"
+ "(B{)C|*D}+E~+E\177,E\200-F\200-G\201.H\202/H\2030I\2040J\2051K\2062K\207"
+ "3L\2103M\2104N\2117R\2168T\2209U\221:V\222;W\223;X\224<X\225=Y\226;U\222"
+ ";V\223<W\224=W\225=X\226>Y\227?Z\227@Z\230@[\231A\\\232B]\233B^\234C^\235"
+ "D_\236E`\237Ea\240\214\22)]\1\23+a\204\23,bI\23,c\24-c\25.d\25/e\26""0f\27"
+ """0g\30""1h\30""2i\31""2h\31""0f\32""1g\32""2h\33""3i\33""4j\34""4k\34""5"
+ "l\35""6m\36""7n\36""8o\37""8o\40""9p!:q!;r\";s#<t$=u$>v%?w&?x&@y'Az(B{)C"
+ "|)C}*D}+E~+E\177,E\200-F\200.G\201.H\202/I\2030I\2041J\2051K\2062L\2073M"
+ "\2103M\2116Q\2148T\2209U\2219U\222:V\222;W\224<X\224<Y\225=Y\226<W\224;V"
+ "\223<W\224=X\225>X\226>Y\227?Z\230@[\231A\\\232A\\\233B]\234C^\235C_\236"
+ "D_\236E`\237Ea\240\215\22)]\1\23+`\203\23,bI\24-c\24-d\25.e\26/f\26""0g\27"
+ """1h\30""1i\31""2j\31""3j\32""3i\32""2g\33""2h\33""3i\33""4j\34""5k\34""6"
+ "l\35""6m\36""7n\37""8o\37""9p\40""9q!:r\";s\"<t#=t$=u$>v%?w&@x'@y'Az(B{)"
+ "C|*D}*D~+E\177,E\200,F\200-F\201.G\202/H\202/I\2030J\2051J\2052K\2062L\207"
+ "3M\2105O\2127S\2178T\2209U\221:V\222:W\223;W\224<X\225=Y\226=Z\227>Z\227"
+ "<V\223=W\224=X\225>Y\226?Y\227?Z\230@[\231A\\\232B]\233B]\234C^\235D_\236"
+ "D`\237E`\240Ea\241\216\22)]\1\22+`\202\23,bI\24-c\25.d\25.e\26/f\27""0g\27"
+ """1h\30""2i\31""2j\32""3k\32""4l\33""4k\33""3i\33""3j\33""4k\34""5k\35""6"
+ "l\35""7m\36""7n\37""8o\40""9p\40:q!:r\";s#<t#=u$>v%>w%?x&@y'Ay(Bz(B{)C|*"
+ "D}+E~+E\177,E\200-F\200.G\201.H\202/H\2030I\2040J\2051K\2062L\2073L\2103"
+ "M\2117R\2168T\2178U\2209U\221:V\222;W\223;X\224<X\225=Y\226>Z\227>[\230="
+ "X\225=W\225=X\226>Y\227?Z\230@Z\231@[\231A\\\232B]\233C^\234C^\235D_\236"
+ "E`\237Ea\240Eb\241\217\22)]K\22*_\23,c\24-d\25.e\26/e\26""0f\27""0g\30""1"
+ "h\30""2i\31""3j\32""4k\33""4l\33""5m\34""5l\33""4j\34""4k\34""5l\35""6m\36"
+ """7n\37""8o\37""9p\40""9p!:q!;r\"<s#<t$=u$>v%?w&?x&@y'Az(B{)C|)C}*D~+E\177"
+ ",E\200,F\200-F\200.G\201.H\202/I\2030J\2041J\2051K\2062L\2073M\2105P\214"
+ "7S\2178T\2209U\2219V\222:V\223;W\224<X\224<Y\225=Z\226>Z\227?[\230>[\230"
+ "=X\225>X\226>Y\227?Z\230@[\231A\\\232A\\\233B]\234C^\235D_\236D`\237E`\240"
+ "Ea\240Eb\241\220\22)]<\23+`\24-d\25.e\26/f\27""0g\27""1h\30""2i\31""2j\31"
+ """3k\32""4k\33""5l\34""5m\35""6n\35""6m\34""5k\35""6l\35""6m\36""7n\37""8"
+ "o\40""9p\40:q!:r\";s\"<t#=u$=v%>v%?w&@x'Ay'Az(B{)C|*D}*D~+E\177,E\200-F\200"
+ "-G\201.G\202/H\2030I\2040J\2041K\2052K\2062L\2074N\2117S\2168S\2178T\220"
+ "9U\221:V\222;W\223;W\224<X\225=Y\226=Z\227>[\230?[\231?\\\231\202>Y\226\14"
+ "?Z\227?Z\230@[\231A\\\232B]\233B]\234C^\235D_\236E`\237Ea\240Ea\241Fb\242"
+ "\220\22)]\36\23*^\24,a\25/e\26/f\27""0g\30""1h\30""2i\31""3j\32""3k\33""4"
+ "l\33""5m\34""6n\36""6o\36""7p\36""7n\35""6l\36""7m\36""7n\37""8o\40""9p\40"
+ ":q!;r\";s#<t#=u$>v%?w&?x&@y'Az\202(B{\21)C|*D}+E~+E\177,E\200-F\200.G\201"
+ ".H\202/I\2030I\2040J\2051K\2062L\2073L\2106Q\2147S\2178T\217\2029U\221\27"
+ ":V\222;W\223;X\224<Y\225=Y\226>Z\227>[\230?\\\231@\\\232?[\231>Y\227?Z\230"
+ "@[\231A[\232A\\\232B]\233C^\234C_\235D_\236E`\237Ea\240Eb\241Fc\242\217\22"
+ ")]K\22*^\23*_\24+`\25-b\26/f\27""0g\30""1h\31""2i\31""3j\32""4k\33""5l\34"
+ """5m\35""6n\36""7o\37""8p\37""8q\37""8o\36""7n\37""8o\37""8p\40""9q!:q!;"
+ "r\"<s#<t$=u$>v%?w&@x'@y'Az(B{)C|)C}*D~+E\177,E\200,F\200-F\200.G\201/H\202"
+ "/I\2030J\2041J\2052K\2062L\2074N\2117S\2167S\2178T\2209U\221:V\222:V\223"
+ ";W\224<X\225<Y\226=Z\226>Z\227?[\230?\\\231@]\232A]\233?Z\227?Z\230@[\231"
+ "A\\\232A\\\233B]\234C^\235D_\236D`\237E`\240Ea\241Fb\241Fc\242\217\22)]K"
+ "\23*^\23+_\24+`\25,a\26-c\27""0g\30""2i\31""2j\32""3k\32""4l\33""5m\34""5"
+ "m\35""6n\36""7o\37""8p\40""9q\40:r\40""9q\37""8o\40""9p\40:q!:r\";s\"<t#"
+ "=u$=v%>w%?x&@x'Ay(Az(B{)C|*D}*E~+E\177,E\200-F\200-G\201.H\202/H\2030I\204"
+ "0J\2051K\2062K\2062L\2075Q\2147S\2168T\2178T\2209U\221:V\222;W\223;X\224"
+ "<X\225=Y\226=Z\227>[\230?[\231@\\\232@]\232A^\234@\\\232@Z\230@[\231A\\\232"
+ "B]\233B^\234C^\235D_\236E`\237Ea\240Ea\241Fb\242Gc\243\217\22)]1\23*^\24"
+ "+_\25,`\25,a\26-b\27.d\30""1h\31""3j\32""3k\33""4l\33""5m\34""6n\36""7o\36"
+ """7p\37""8q\40""9q!:s!;s\40:r\40""9p!:q!;r\";s#<t#=u$>v%?w&?x&@y'Az(B{)C"
+ "|)C}*D~+E~+E\177,E\200-F\200.G\201.H\202/I\2030I\2041J\2051K\2062L\2074N"
+ "\2116R\2167S\2178T\220\2029U\221\30:V\222;W\223;X\224<Y\225=Y\226>Z\227>"
+ "[\230?\\\231@]\232A]\233A^\234B^\234@[\231A[\232A\\\233B]\234C^\234C_\235"
+ "D_\236E`\237Ea\240Eb\241Fc\242Gc\243\216\22)]L\23*^\23*_\24+`\25,a\25-b\26"
+ ".b\27.d\30/e\31""2i\32""4k\33""4l\34""5m\35""6n\36""7o\37""8p\37""8q\40""9"
+ "r!:s\";t\"<u!;s!:r\";s\"<t#=t$=u%>v%?w&@x'@y'Az(B{)C|*D}*D~+E\177,E\200,"
+ "F\200-G\201.G\202/H\202/I\2030J\2041J\2052K\2062L\2075Q\2147S\2167S\2178"
+ "T\2209U\221:V\222:V\223;W\224<X\225=Y\226=Z\227>Z\227?[\230?\\\231@]\232"
+ "A^\233B^\234B_\235A]\233A\\\232B]\233B]\234C^\235D_\236D`\237E`\240Ea\241"
+ "Fb\242Fc\242Gd\243\216\22)]L\23*^\24+_\24+`\25,a\26-b\26.c\27/d\30/e\31""0"
+ "f\32""3j\33""5m\34""6n\36""6n\36""7o\37""8p\40""9q\40:r!:s\";t#<u#=v\"<t"
+ "\";s#<t#=u$>v%>w%?x&@y'Ay(Bz(B{)C|*D}+E~+E\177,E\200-F\200-G\201.H\202/H"
+ "\2030I\2040J\2051K\2062L\2073M\2116R\2167S\2168T\2178T\2209U\221:V\222;W"
+ "\223;X\224<X\225=Y\226>Z\227>[\230?\\\231@\\\232@]\233A^\234B_\235C_\236"
+ "C_\235A\\\232B]\233C^\234C^\235D_\236E`\237Ea\240Eb\241Fb\242Gc\243Gd\244"
+ "\215\22)]B\22)^\23*_\24+_\25,`\25-a\26-b\27.c\27/d\30""0e\31""1f\32""1g\33"
+ """4k\35""6n\36""7o\37""7p\37""8q\40""9r!:s!;t\";t#<u$=v$>w$=v#<t$=u$>v%?"
+ "w&?x&@y'Az(B{)C|)C}*D~+E\177,E\177,F\200-F\200.G\201.H\202/I\2030I\2041J"
+ "\2051K\2062L\2075P\2136R\2167S\2178T\2209U\2219V\222:V\223;W\224;X\224<Y"
+ "\225=Y\226>Z\227>[\230?\\\231@]\232A]\233A^\234B_\235C`\236Da\237\202B]\234"
+ "\11C^\235C_\235D_\236E`\237Ea\240Eb\241Fc\242Gc\243Hd\244\215\22)]M\23*^"
+ "\23*_\24+`\25,a\26-b\26.c\27.c\30/e\30""0e\31""1f\32""2g\33""2h\34""5l\36"
+ """7o\37""8p\40""9q\40""9r!:s\";t\"<u#<v$=w%>x%?y%?x$>v%>v%?w&@x'Ay'Az(B{"
+ ")C|*D}*D~+E\177,E\200-F\200-G\201.G\202/H\203/I\2040J\2041K\2052K\2062L\207"
+ "5Q\2147S\2168S\2178T\2209U\221:V\222:W\223;W\224<X\225=Y\226=Z\227>[\230"
+ "?[\230@\\\231@]\233A^\233B_\234B_\235C`\236Da\237C`\236B]\234C^\235D_\236"
+ "E`\237Ea\240Ea\241Fb\242Fc\243Gd\243Hd\245\215\22)]\30\23*^\24+_\24+`\25"
+ ",a\26-b\27.c\27/d\30/e\31""0f\31""1g\32""2h\33""3i\33""3j\35""5m\37""8p\40"
+ """9q\40:r!:s\";t#<u#=v$=w%>x&?y\202&@z)%?w%?x&@y'Az(Bz(B{)C|*D}+E~+E\177"
+ ",E\200-F\200.G\201.H\202/H\2030I\2040J\2051K\2062L\2073L\2104N\2127S\217"
+ "8T\2179U\2209U\221:V\222;W\223;X\224<X\225=Y\226>Z\227>[\230?\\\231@\\\232"
+ "A]\233A^\234B_\235C`\236C`\237Da\237Eb\240\202C^\235\10D_\236E`\237Ea\240"
+ "Eb\241Fb\242Gc\243Gd\244He\245\214\22)]N\22*^\23*_\24+`\25,a\25-a\26-b\27"
+ ".c\30/d\30""0e\31""1f\32""1g\32""2h\33""3i\33""4j\34""4k\35""6n\40""9r!:"
+ "s\";t\";u#<v$=v$>w%?x&?y'@z'A{(B|&@y'@y'Az(B{)C|)C}*D~+E\177,E\200,F\200"
+ "-F\200.G\201/H\202/I\2030J\2041J\2051K\2062L\2073M\2104M\2117R\2168T\220"
+ "9U\221:V\222:V\223;W\224<X\225<Y\225=Z\226>Z\227?[\230?\\\231@]\232A]\233"
+ "A^\234B_\235C`\236Da\237Da\240Eb\241Da\237D_\236D`\237E`\240Ea\240Eb\241"
+ "Fc\242Gc\243Hd\244He\245\214\22)]N\23*^\23*_\24+`\25,a\26-b\26.c\27/d\30"
+ "/e\30""0f\31""1g\32""2g\33""2h\33""3i\33""4j\34""5k\35""5l\36""7n!:s\";t"
+ "#<u#=v$=w%>x%?y&@z'@{(A|(B|)C}'Az(Az(B{)C|*D}*D~+E\177,E\200-F\200-G\201"
+ ".G\202/H\203/I\2040J\2051K\2062K\2062L\2073M\2104N\2116P\2148T\2209U\221"
+ ":V\222:W\223;W\224<X\225=Y\226=Z\227>[\230?[\231@\\\231@]\233A^\233B_\234"
+ "C_\235C`\236Da\237Eb\240Ec\241Fc\242D_\236E`\237Ea\240Ea\241Fb\242Fc\243"
+ "Gd\244He\245Ie\245\214\22)]N\23*^\24+_\24,`\25,a\26-b\27.c\27/d\30""0e\31"
+ """0f\32""1g\32""2h\33""3i\33""4j\33""4k\34""5l\35""6m\36""7m\37""8o\";t#"
+ "<u$=v$>w%>x&?y&@z'A{(B|)B}(B|'Az(B{(B|)C|*D}+E~+E\177,E\200-F\200.G\201."
+ "H\202/I\2030I\2041J\2051K\2062L\2073L\2103M\2114N\2125O\2128T\2179U\221:"
+ "V\222;W\223;X\224<Y\225=Y\226>Z\227>[\230?\\\231@]\232A]\233A^\234B_\235"
+ "C`\236C`\237Da\240Eb\240Fc\241Gd\242Fa\240E`\237Ea\240Eb\241Fb\242Gc\243"
+ "Hd\244He\245If\246\213\22)]\35\23*^\23*_\24+`\25,a\25-b\26.c\27.c\30/d\30"
+ """0e\31""1f\32""1g\32""2h\33""3i\33""4j\34""5k\34""5l\35""6m\36""7n\37""8"
+ "o\40""9p#<u$=w%>w%?x&?y'@z(A{(B|)B}\202'Az&(B{)C|)D}*D~+E\177,E\200,F\200"
+ "-G\200.G\201/H\203/I\2030J\2041J\2052K\2062L\2073M\2104N\2115N\2125O\213"
+ "7Q\215:V\222:V\223;W\224<X\225<Y\226=Z\226>Z\227?[\230?\\\231@]\232A^\233"
+ "B^\234B_\235C`\236Da\237Da\240Eb\241Fc\242\202Hd\243\10E`\240Ea\241Fb\241"
+ "Fc\242Gd\243Hd\244Ie\245If\246\213\22)]P\23*^\23+_\24+`\25,a\26-b\26.c\27"
+ "/d\30/e\31""0f\31""1g\32""2h\33""3h\33""3i\33""4j\34""5k\35""6l\35""6m\36"
+ """7n\37""8o\40""9p!:q#=v%>x&?y&@z'A{(A|(B|'@z'Ay(Az(B{)C|*D}+E~+E\177,E\200"
+ "-F\200-G\201.H\202/H\2030I\2040J\2051K\2062K\2072L\2073M\2104N\2115O\212"
+ "5O\2136P\2149T\221;W\223;X\224<X\225=Y\226=Z\227>[\230?\\\231@\\\232@]\233"
+ "A^\234B_\235C_\235C`\236Da\237Eb\240Fc\241Gc\242Hd\243Ie\244Fb\241Eb\241"
+ "Fb\242Gc\243Gd\244He\245Ie\246Jf\246\22+`\211\22)]\34\22)^\23*_\24+_\25,"
+ "`\25-a\26-b\27.c\27/d\30""0e\31""0f\32""1g\32""2h\33""3i\33""4j\34""4k\34"
+ """5l\35""6m\36""7m\36""8n\37""8o\40""9p!:q!;s$>w&?y'@z'A{(A|\202&@y2'Az("
+ "B{)C|)C}*D~+E\177,E\177,E\200-F\200.G\201.H\202/I\2030I\2041J\2051K\2062"
+ "L\2073M\2103M\2114N\2125O\2136P\2146P\2157R\216;W\223<X\224<Y\225=Y\226>"
+ "Z\227>[\230?\\\231@]\232A]\233A^\234B_\235C`\236D`\237Da\240Eb\241Fc\241"
+ "Gd\242Hd\243Ie\244Hd\244Eb\241Fc\242Gc\243Hd\244He\245If\246Jf\247\202\23"
+ ",b\1\22*_\207\22)]\31\23*^\23*_\24+`\25,a\26-b\26.c\27.d\30/d\30""0e\31""1"
+ "f\32""2g\33""2h\33""3i\33""4j\34""5k\34""5l\35""6m\36""7n\37""8o\37""9p\40"
+ """9q!:r\";s\"<t%>x\202'@z5&?x&@x'@y'Az(B{)C|*D}*D~+E\177,E\200-F\200-G\201"
+ ".G\202/H\203/I\2030J\2051K\2052K\2062L\2073M\2104N\2115N\2125O\2136P\214"
+ "7Q\2157R\2169U\221<X\225=Y\226=Z\227>[\230?[\231?\\\231@]\232A^\233B^\234"
+ "B_\235C`\236Da\237Eb\240Eb\241Fc\242Hd\243Ie\244Ie\245Jf\246Fc\242Fc\243"
+ "Gd\243Hd\244Ie\245If\246Jg\247\203\23,b\2\23,a\22*_\205\22)]\13\23*^\24+"
+ "_\24,`\25,a\26-b\27.c\27/d\30/e\31""0f\31""1g\32""2h\202\33""3i\14\33""4"
+ "j\34""5k\35""6l\36""7m\36""7n\37""8o\40""9p\40:q!:r\";s#<t#=u\202%>w$%?x"
+ "&@y'Az(Bz(B{)C|*D}+E~+E\177,E\200-F\200-G\201.H\202/H\2030I\2040J\2051K\206"
+ "2L\2073L\2103M\2114N\2115O\2125P\2136P\2147Q\2158R\2168S\217<W\224=Y\226"
+ ">Z\227>[\230?\\\231@\\\232@]\233A^\234B_\235\202C`\236\17Da\237Eb\240Fc\241"
+ "Gc\242Hd\243Ie\244If\245Jg\246Ie\245Gc\243Gd\244He\245Ie\246Jf\247Jg\250"
+ "\205\23,b\2\23+a\22*^\202\22)]Q\22)^\23*_\24+`\25,`\25-a\26-b\27.c\30/d\30"
+ """0e\31""1f\32""1g\32""2h\33""3i\33""4j\34""4k\34""5l\35""6m\36""7n\36""8"
+ "o\37""8p\40""9p!:q!;r\"<s#<t$=u$>v%?w&@x&@y'Az(B{)C|)D}*D~+E\177,E\200,F"
+ "\200-F\200.G\201/H\202/I\2030I\2041J\2051K\2062L\2073M\2104M\2114N\2125O"
+ "\2136P\2147Q\2157Q\2168R\2179S\217:U\221=Y\226>Z\227?[\230?\\\231@]\232A"
+ "]\233A^\234B_\235C`\236Da\237Da\240Eb\241Fc\242Gd\242Hd\243Ie\244Jf\245J"
+ "g\246Kg\247Gd\243Hd\244He\245If\246Jg\247Kg\250\207\23,bS\23+a\22*^\23*^"
+ "\23+_\24+`\25,a\26-b\26.c\27.d\30/e\31""0f\31""1f\32""2g\33""2h\33""3i\33"
+ """4j\34""5k\35""6l\35""6m\36""7n\37""8o\37""9p\40""9q!:r\";s\"<t#=u$=v%>"
+ "v%?w&@x'Ay(Az(B{)C|*D}*E~+E\177,E\200,F\200-G\201.G\202/H\203/I\2030J\205"
+ "1K\2062K\2062L\2073M\2104N\2114O\2125O\2136P\2147Q\2157R\2168R\2179S\220"
+ ":T\221<W\224>[\230?[\231@\\\231@]\232A^\233B_\234C_\235C`\236Da\237Eb\240"
+ "Eb\241Gc\242Hd\243Ie\244If\245Jf\246Kg\247Kh\250If\246Hd\245Ie\245If\246"
+ "Jg\247Kh\250\211\23,b1\24,b\24+`\24,`\25,a\26-b\27.c\27/d\30""0e\31""0f\31"
+ """1g\32""2h\33""3i\33""3j\33""4k\34""5l\35""6l\36""7m\36""7n\37""8o\40""9"
+ "p\40:q!;r\";s#<t#=u$>v%>w&?x&@y'Az(B{(B|)C}*D}+E~+E\177,E\200-F\200-G\201"
+ ".H\202/I\2030I\2040J\2051K\2062L\2073L\2103M\2114N\2125O\213\2026P\214\27"
+ """7Q\2158R\2168S\2179S\220:T\221;U\222=Z\227?\\\231@\\\232A]\233A^\234B_"
+ "\235C`\236C`\237Da\237Eb\240Fc\241Gd\242Hd\243Ie\244Jf\245Jg\246Kg\247\202"
+ "Lh\250\5He\245If\246Jf\247Jg\250Kh\251\210\23,bR\23-c\24-d\25.e\25.c\25-"
+ "b\26.b\27.c\30/d\30""0e\31""1f\32""1g\32""2h\33""3i\33""4j\34""5k\34""5l"
+ "\35""6m\36""7n\37""8o\37""8p\40""9q!:r!;r\"<s#<t$=u$>v%?w&@x&@y'Az(B{)C|"
+ ")C}*D~+E\177,E\200,F\200-F\200.G\201/H\202/I\2030J\2041J\2051K\2063N\211"
+ "3M\2104M\2114N\2125O\2136P\2147Q\2157Q\2168R\2179S\2209T\220:U\221;U\222"
+ "<W\224?[\231@]\232A^\233B^\234B_\235C`\236Da\237Da\240Eb\241Fc\242Hd\243"
+ "He\244Ie\245Jf\246Kg\246Kh\247Li\250Mi\251Jf\246If\246Jg\247Kg\250Kh\251"
+ "\210\23,bR\24-c\24.d\25.e\26/f\27""0g\27/e\27/d\30/e\31""0f\31""1g\32""2"
+ "h\33""2h\33""3i\33""4j\34""5k\35""6l\35""6m\36""7n\37""8o\40""9p\40:q!:r"
+ "\";s\"<t#=u$=v%>w%?w&@x'Ay(Az(B{)C|*D}*E~+E\177,E\200-F\200-G\201.G\202/"
+ "H\203/I\2040J\2051K\2063N\2115Q\2145P\2134N\2115O\2125O\2136P\2147Q\2157"
+ "R\2168S\2179S\220:T\221:U\222;V\223<V\224=X\226@]\232A^\233B_\235C_\235C"
+ "`\236Da\237Eb\240Ec\241Gc\242Hd\243Ie\244If\245Jf\246Kg\247Lh\250Li\251M"
+ "j\252Li\251If\246Jg\247Kh\250Li\251\210\23,b\5\24-c\25.d\25/e\26/f\27""0"
+ "g\202\30""1h*\30""1g\31""0f\32""1g\32""2h\33""3i\33""4j\33""4k\34""5l\35"
+ """6l\36""7m\36""8n\37""8o\40""9p!:q!;r\";s#<t#=u$>v%?w&?x&@y'Az(B{)C|)C}"
+ "*D}+E~+E\177,E\200-F\200.G\201.H\202/I\2030I\2040J\2052L\2075Q\2146R\215"
+ "6R\2166R\2155O\213\2026P\214\37""7Q\2158R\2169S\2179T\220:T\221;U\222;V\223"
+ "<W\224=W\225?Z\230A^\234B_\235C`\236Da\237Da\240Eb\241Fc\241Gd\243Hd\243"
+ "Ie\244Jf\245Jg\246Kh\247Lh\250Mi\251Mj\252Nk\253Kg\247Kg\250Kh\251Li\252"
+ "\207\23,b2\24-c\24-d\25.e\26/f\26""0g\27""1h\30""1i\31""2i\31""3j\32""3j"
+ "\32""2i\33""2h\33""3i\33""4j\34""5k\34""5l\35""6m\36""7n\37""8o\37""9p\40"
+ """9q!:r!;s\"<t#=t$=u$>v%?w&@x'@y'Az(B{)C|*D}*D~+E\177,E\200,F\200-G\201."
+ "G\202/H\202/I\2030J\2041J\2054O\2125Q\2146R\2157S\2168S\2178T\217\2027Q\215"
+ "\37""7Q\2168R\2179S\220:T\221:U\222;V\222<V\223<W\224=X\225>Y\226@\\\232"
+ "B_\235C`\236Da\237Eb\240Eb\241Fc\242Hd\243He\244Ie\245Jf\246Kg\247Kh\247"
+ "Li\250Mi\251Mj\252Nk\253Mj\252Kh\250Kh\251Li\252\207\23,b\14\24-c\25.d\25"
+ "/e\26/f\27""0g\27""1h\30""2i\31""2j\32""3k\32""4l\33""5m\34""5l\202\33""4"
+ "jE\34""5k\35""6l\35""6m\36""7n\37""8o\40""9p\40:q!:r\";s#<t#=u$>v%>w&?x&"
+ "@y'Ay(Bz(B{)C|*D}+E~+E\177,E\200-F\200-G\201.H\202/H\2030I\2040J\2053N\210"
+ "5Q\2145Q\2156R\2167S\2168T\2178T\2209U\2218S\2178R\2168S\2179S\220:T\221"
+ ";U\222;V\223<V\224=W\225=X\226>Y\227?Z\230A]\233C`\236Da\237Eb\240Fc\241"
+ "Gc\242Hd\243Ie\244If\245Jf\246Kg\247Lh\250Li\251Mj\252Nk\253Nk\254Ol\254"
+ "Kh\251Li\251Li\252\206\23,b\16\23-c\24-c\25.d\25/e\26""0f\27""0g\30""1h\30"
+ """2i\31""3j\32""4k\33""4l\33""5m\35""6n\36""7o\202\34""5lD\35""6m\36""7n"
+ "\36""8o\37""8o\40""9p!:q!;r\"<s#<t$=u$>v%?w&?x&@y'Az(B{)C|)C}*D~+E\177,E"
+ "\177,E\200-F\200.G\201.H\202/I\2030I\2042L\2074P\2135Q\2146R\2157R\2167S"
+ "\2178T\2209U\2219V\222:V\223:U\2219S\2209T\220:U\221;U\222;V\223<W\224=X"
+ "\225>X\226>Y\227?Z\230@[\231B_\235Da\240Eb\241Fc\242Gd\243He\243Ie\244Jf"
+ "\245Jg\246Kh\247Lh\250Mi\251Mj\252Nk\253Ol\254Ol\255Mj\253Li\252Mj\253\206"
+ "\23,b\13\24-c\24.d\25.e\26/f\27""0g\27""1h\30""1h\31""2i\31""3j\32""4k\33"
+ """5l\202\34""5l(\33""4k\34""5k\35""6l\35""6m\36""7n\37""8o\37""9p\40""9q"
+ "!:r\";s\"<t#=u$=v%>v%?w&@x'@y'Az(B{)C|*D}*D~+E\177,E\200-F\200-G\201.G\202"
+ "/H\2030I\2030J\2054O\2125P\2135Q\2146R\2157S\2168T\2178T\2209U\221:V\222"
+ ":W\223\202;W\224\31:U\221:U\222;V\223<V\223<W\225=X\225>Y\226?Y\227?Z\230"
+ "@[\231A\\\232C`\236Eb\241Fc\242Hd\243Ie\244If\245Jf\246Kg\247Kh\250Li\250"
+ "Mj\251Nj\252Nk\253Ol\254\202Pm\255\2Li\252Mj\253\206\23,b\13\24-c\25.d\25"
+ "/e\26/f\27""0g\30""1h\30""2i\31""2j\32""3k\32""3j\32""3i\202\33""3i+\33""4"
+ "k\34""5k\35""6l\36""7m\36""7n\37""8o\40""9p\40:q!:r\";s#<t#=u$>v%?w&?x&@"
+ "y'Az(Bz(B{)C|*D}+E~+E\177,E\200-F\200.G\201.H\202/H\2030I\2043N\2114P\213"
+ "5Q\2146Q\2156R\2167S\2178T\2179U\2209U\221:V\222;W\223;X\224<Y\225=Y\225"
+ "\202;V\223\5<W\224=W\225>X\226>Y\227?Z\230\202@[\231\23A\\\232B]\233D`\237"
+ "Gd\242Hd\243Ie\244Jf\245Jg\246Kg\247Lh\250Li\251Mj\252Nk\253Ok\254Ol\255"
+ "Pm\256Qn\257Nk\254Mj\253\205\23,b\6\23,c\24-d\25.e\26/f\26""0f\27""0g\202"
+ "\30""1hM\31""1g\31""1f\32""1g\32""2h\33""3i\33""4j\34""5k\34""5l\35""6m\36"
+ """7n\36""8o\37""8p\40""9q!:q!;r\"<s#<t$=u$>v%?w&@x&@y'Az(B{)C|)D}*D~+E\177"
+ ",E\200,F\200-F\200.G\201.H\202/I\2030I\2043N\2114P\2135Q\2146R\2157R\216"
+ "7S\2178T\2209U\221:V\222:V\223;W\224<X\224<Y\225=Z\226>Z\227=X\226<W\224"
+ "=X\225>X\226>Y\227?Z\230@[\231A\\\232A\\\233B]\234C^\235E`\237Hd\243Ie\245"
+ "Jf\245Kg\246Kh\247Lh\250Mi\251Mj\252Nk\253Ol\254Pl\255Pm\256Qn\257Pm\256"
+ "Mj\253\205\23,bU\24-c\24.d\25.e\26/f\27""0g\27""0f\27/e\30/e\31""0f\31""1"
+ "f\32""2h\33""2h\33""3i\33""4j\34""5k\35""6l\35""6m\36""7n\37""8o\40""9p\40"
+ ":q!:r\";s\"<t#=u$=v%>v%?x&@x'Ay(Az(B{)C|*D}*E~+E\177,E\200-F\200-G\201.G"
+ "\202/H\2030I\2040J\2051K\2064P\2135Q\2146R\2157S\2168T\2178T\2209U\221:V"
+ "\222:W\223;W\224<X\225=Y\226=Z\227>[\230?[\231?[\230>X\226>Y\226?Z\227@Z"
+ "\230@[\231A\\\232B]\233B^\234C^\235D_\236E`\237Gc\243Jf\246Kg\247Lh\250L"
+ "i\251Mj\252Nj\252Nk\254Ol\254Pm\255Qn\256Qn\257Ro\260Nk\254\205\23,b1\24"
+ "-c\25.d\25/e\26.e\26.c\27.c\27/d\30""0e\31""0f\32""1g\32""2h\33""3i\33""3"
+ "j\33""4k\34""5k\35""6m\36""7m\36""8n\37""8o\40""9p\40:q!;r\";s#<t#=u$>v%"
+ "?w&?x&@y'Az(B{)B|)C}*D}+E~+E\177,E\200-F\200.G\201.H\202/I\2030I\2041J\205"
+ "1K\2062L\2075P\2146R\2167S\2178T\220\2029U\221\37:V\222;W\223<X\224<Y\225"
+ "=Y\226>Z\227>[\230?\\\231@\\\232@]\232?[\230?Z\230@[\231A[\232A\\\233B]\233"
+ "C^\234C_\235D_\236E`\237Ea\240Fb\242Ie\245Lh\250Mi\251Mj\252Nk\253Ok\254"
+ "Ol\255Pm\256Qn\257\202Ro\260\1Ol\255\204\23,b\3\24-c\24-d\25.d\202\25-b9"
+ "\26.b\27.c\30/d\30""0e\31""1f\32""1g\33""2h\33""3i\33""4j\34""5k\34""5l\35"
+ """6m\36""7n\37""8o\37""9p\40""9q!:r\";r\"<s#<t$=u$>v%?w&@x'@y'Az(B{)C|)D"
+ "}*D~+E\177,E\200,F\200-F\201.G\201/H\202/I\2030J\2041J\2052K\2062L\2073M"
+ "\2105P\2147S\2178T\2209U\221:V\222:V\223;W\224<X\225<Y\225=Z\227>Z\227?["
+ "\230?\\\231@]\232A^\233\202B^\234\202A\\\232\21B]\233B]\234C^\235D_\236D"
+ "`\237E`\240Ea\241Fb\241Fc\242Gd\244Jf\247Li\251Nk\253Ol\254Pl\255Pm\256Q"
+ "n\257\202Ro\260\1Qn\257\204\23,b\33\24-c\24,b\24+`\25,a\26-b\26.c\27/d\30"
+ "/e\31""0f\31""1g\32""2h\33""3i\33""3j\33""4j\34""5k\35""6l\35""6m\36""7n"
+ "\37""8o\40""9p\40:q!:r\";s#<t#=u%>w&@y\202(A{#'Az(Az(B{)C|*D}*E~+E\177,E"
+ "\200-F\200-G\201.H\202/H\2030I\2040J\2051K\2062K\2072L\2073M\2104N\2115P"
+ "\2138S\2179U\221:V\222;W\223;X\224<X\225=Y\226=Z\227>[\230?[\231@\\\232@"
+ "]\233A^\234B_\234C_\235\202C`\236\202C^\234\17C^\235D_\236E`\237Ea\240Ea"
+ "\241Fb\242Gc\243Gd\244He\245Ie\246Jg\247Li\252Ol\254Qm\256Qn\257\203Ro\260"
+ "\204\23,b\36\23+`\24+_\25,`\25-a\26-b\27.c\27/d\30""0e\31""0f\32""1g\32""2"
+ "h\33""3i\33""4j\33""4k\34""5l\35""6m\36""7n\36""8n\37""8o\40""9p!:q!;s#<"
+ "u%>w&@z'A{(B|)B})C~*C~\202)C|4)C}*D~+E~+E\177,F\200-F\200.G\201.H\202/I\203"
+ "0I\2041J\2051K\2062L\2073M\2103M\2114N\2125O\2136P\2148S\217:V\222;W\223"
+ "<X\224<Y\225=Y\226>Z\227>[\230?\\\231@]\232A]\233A^\234B_\235C`\236Da\237"
+ "Da\240Eb\241Eb\240D`\237D_\236E`\237Ea\240Eb\241Fc\242Gc\243Hd\244He\245"
+ "If\246Jf\247Jg\250Kh\251Li\252Nl\254Pm\256\202Ro\260\202\23,bF\23,a\23*_"
+ "\23+_\24+`\25,a\26-b\26.c\27.c\30/e\30""0e\31""1f\32""2g\33""2h\33""3i\33"
+ """4j\34""5k\35""5l\35""6m\36""7n\37""8o\40""9p!;s#<u%>w%?y&@y'@z'A{(B|)C"
+ "}*D~*D\177+E\200+E\177*D}*D~+E\177,E\200-F\200-G\201.G\202/H\203/I\2030J"
+ "\2041J\2052K\2062L\2073M\2104N\2115N\2125O\2136P\2147Q\2158R\217:V\222<X"
+ "\225=Y\226=Z\227>Z\230?[\230?\\\231@]\232A^\233B^\234B_\235C`\236Da\237E"
+ "b\240Eb\241Fc\242\202Hd\243\14Fb\241Ea\241Fb\242Fc\243Gd\243Hd\244Ie\245"
+ "If\246Jg\247Kh\250Kh\251Li\252\203Mj\253WNk\254\23,b\23+a\22)^\23*^\24+_"
+ "\24,`\25,a\26-b\27.c\27/d\30""0e\31""0f\31""1g\32""2h\33""3i\33""3j\33""4"
+ "j\34""5k\35""6l\36""7n\37""8p!:s#<u#=v$=w%>x&?y&@z'A{(A|(B})C~*D\177+E\177"
+ "+E\200,G\200-H\201,F\200+E\177,E\200-F\200.G\201.H\202/H\2030I\2040J\205"
+ "1K\2062L\2073L\2103M\2104N\2125O\2125P\2136P\2147Q\2158R\2168S\217:U\222"
+ "=Y\226=Z\227>[\230?\\\231@\\\232@]\233A^\234B_\235C_\236C`\236Da\237Eb\240"
+ "Ec\241Gc\242Hd\243Ie\244Jf\245If\245He\244Gd\243Gd\244He\245If\246Jf\247"
+ "Jg\250Kh\250Li\251Mi\253\204Mj\253'\23+a\22)]\22)^\23*_\24+`\25,`\25-a\26"
+ "-b\27.c\27/d\30""0e\31""1f\32""1g\32""2h\33""3i\33""4j\34""5k\35""6n\37""8"
+ "p!:s!;t\";u#<u$=v$>w%?x&?y'@z'A{(B|)B}*C~*D\177+E\200,F\200,G\201-H\202."
+ "I\203.I\202\202-F\200,.G\201/H\202/I\2030J\2041J\2051K\2062L\2073M\2104M"
+ "\2114N\2125O\2136P\2147Q\2157Q\2168R\2179S\2179T\220:U\222=Y\226>[\230?\\"
+ "\231@]\232A]\233A^\234B_\235C`\236Da\237Da\240Eb\241Fc\242Gd\243He\244Ie"
+ "\245Jf\245Jg\246Kh\247Lh\250Kg\247Jg\247If\246Jg\247Kg\250Kh\251Li\252\205"
+ "Mj\253\202\22)]Q\23*^\23+_\24+`\25,a\26-b\26.c\27/d\30/e\30""0e\31""1f\32"
+ """2g\33""2i\34""4k\35""6n\37""8p\40""9q\40""9r!:s\";t#<u#=v$=w%>x%?y&@z'"
+ "@{(A{(B|)C}*D~*D\177+E\200,F\200-H\201-H\202.I\203/J\204.H\202-G\201.G\202"
+ "/H\203/I\2040J\2051K\2062K\2062L\2073M\2104N\2115O\2125O\2136P\2147Q\215"
+ "7R\2168R\2179S\220:T\221:U\222;V\223=Y\226@\\\231@]\232A^\233B_\234C_\235"
+ "C`\236Da\237Eb\240Eb\241Fc\242Hd\243Ie\244If\245Jf\246Kg\247Kh\250Li\251"
+ "Mi\251Nj\252Nk\253Mj\253Mj\252\202Li\252\205Mj\253\202\22)]\36\23*^\24+_"
+ "\24,`\25,a\26-b\27.c\27/d\30""0e\31""0f\32""2h\33""4k\34""6m\36""6o\36""7"
+ "p\37""8p\40""9q!:r!:s\";t#<u#=v$>w%>x&?y&@z'A{(A|)B})C~*D\177\202+E\2001"
+ ",G\200-H\201.I\202.J\203/J\204.H\202.G\201.H\202/I\2030J\2041J\2051K\206"
+ "2L\2073L\2103M\2114N\2125O\2126P\2136P\2147Q\2158R\2168S\2179T\220:T\221"
+ ";U\222;V\223<W\224>Y\226@]\232A^\234B_\235C`\236C`\237Da\237Eb\240Fc\241"
+ "Gd\242Hd\243Ie\244Jf\245Jg\246Kg\247Lh\250Li\251Mj\252Nk\253Ok\254Ol\255"
+ "Pm\256\203Qn\2571Pm\256Ol\255Nk\254Mj\253\22)]\23*^\23*_\24+`\25,a\25-a\26"
+ ".b\27.c\30/e\31""1h\32""3k\33""4l\33""5m\35""6n\36""7o\37""8p\37""8q\40""9"
+ "r!:s\";t\";u#<v$=v$>w%?x&?y'@z'A{(B|)C}*C~*D\177+E\200,F\200,G\201-H\202"
+ ".I\203/J\204/K\205.I\203.G\201/H\202/I\2032N\2103N\211\2022L\207%3M\2104"
+ "M\2114N\2125O\2136P\2147Q\2157Q\2168R\2179S\2209T\221:U\221;U\222<V\223<"
+ "W\224=X\225>Y\227A]\233B_\235C`\236Da\237Da\240Eb\241Fc\242Hd\243He\244I"
+ "e\245Jf\245Kg\246Kh\247Lh\250Mi\251Mj\252Nk\253Ol\254Pl\255Pm\256Qn\257\206"
+ "Ro\260T\22)]\23*^\23+_\24+`\25,a\26-b\27.d\30""1g\31""2j\32""3k\32""4l\33"
+ """5l\34""5m\35""6n\36""7o\37""8p\40""9q\40""9r!:s\";t#<u#=v$=w%>x%?y&@z'"
+ "A{(A|(B|)C}*D~+D\177+E\200,F\200-H\201.I\202.I\203/J\2040K\205/I\203.G\202"
+ "/H\2030I\2043O\2114P\2135P\2134O\2123M\2114N\2115O\2125O\2136P\2147Q\215"
+ "8R\2168S\2179S\220:T\221:U\222;V\223<V\224=W\225=X\226>Y\226?Z\230A]\233"
+ "C`\236Da\237Eb\240Ec\241Gc\242Hd\243Ie\244If\245Jf\246Kg\247Kh\250Li\251"
+ "Mj\252Nj\253Nk\254Ol\255Pm\255Qn\256Qn\257\206Ro\260S\22)]\23*^\24+_\24,"
+ "`\25-b\27/e\30""1h\30""2i\31""3j\32""3k\33""4l\33""5m\34""6n\36""7o\37""7"
+ "p\37""8q\40""9q!:r!;s\";t#<u$=v$>w%>x&?y&@z'A{(B|)B})C~*D\177+E\200,E\200"
+ ",G\201-H\202.I\203.J\203/J\2040K\205.H\203.H\202/I\2031K\2064O\2124P\213"
+ "5Q\2146R\2156R\2166Q\2145O\2136P\2146P\2157Q\2158R\2169S\2179T\220:T\221"
+ ";U\222;V\223<W\224=X\225>X\226>Y\227?Z\230@[\231A]\233Da\237Eb\241Fc\241"
+ "Gd\242Hd\243Ie\244Jf\245Jg\246Kh\247Lh\250Li\251Mj\252Nk\253Ok\254Ol\255"
+ "Pm\256Qn\257\207Ro\260S\23*^\23*_\24+`\25-b\26/f\27""0h\30""1i\31""2i\36"
+ """7m#9h3Gr-Am#:m\36""7o\37""8p\37""8q\40""9r!:s\";t\"<u#<v$=w%>x%?x&?z'@"
+ "z(A{(B|)C}*C~*D\177+E\200,F\200-H\201-H\202.I\203/J\204/K\2050K\206.H\202"
+ "/H\203/I\2032M\2104O\2125P\2135Q\2146R\2157S\2167S\2178T\2207R\2167Q\215"
+ "7R\2168R\2179S\220:T\221:U\222;U\222<V\223<W\224=X\225>Y\226?Y\227?Z\230"
+ "@[\231A\\\232B]\233Da\237Fc\242Hd\243He\244Ie\245Jf\246Kg\247Kh\247Kh\250"
+ "Lh\250Li\251Mj\252Ok\254Pm\255Pm\256Qn\257\207Ro\260J\23*^\24+_\24,b\26/"
+ "f\27""0g\27""1h\30""2i\31""2j5JyCRsDV|Q_\2000Es\36""7o\37""8p\40""9q\40:"
+ "r!:s\";t#<u#=v$=w%>x&?y&@z'A{(A|(B})C~*D~+E\177+E\200,G\200-H\201.I\202."
+ "I\203/J\2040K\205/J\205.H\202/H\2030I\2043O\2124P\2135Q\2146Q\2156R\2157"
+ "S\2168T\2178U\2209U\221:U\2219T\2208S\2179S\220:T\221;U\222;V\223<W\224="
+ "W\225=X\226>Y\227?Z\227@Z\231@[\231A\\\232B]\233B^\234D`\237Gc\242Ie\244"
+ "If\245Jf\246He\244\202Gd\244\7He\245Ie\246Jf\247Jg\250Li\251Nk\254Qn\257"
+ "\207Ro\260U\23*_\24+`\26/e\26""0f\27""0g\30""1h\30""2i\31""3j\32""3k\33""4"
+ "l\33""5m\35""6n\36""7o\37""8p\37""8q\40""9r!:s!;t\";t#<u$=v$>w%?x&?y'@z'"
+ "A{(B|)B})C~*D\177+E\200,F\200,G\201-H\202.I\203/J\203/J\2040K\205.H\202/"
+ "H\202/I\2031K\2064O\2124P\2135Q\2146R\2157R\2167S\2178T\2209U\2219U\222:"
+ "V\223;W\223;W\224:U\222:U\221;U\222;V\223<W\224=X\225>X\226>Y\227?Z\230@"
+ "[\231A\\\232A\\\233B]\234C^\235C_\236D`\237Fb\241Gc\243Fb\242Fc\242Gc\243"
+ "Hd\244He\245If\246Jg\247Kg\250Kh\251Li\252Mj\253Nk\254Qn\257\205Ro\260R\23"
+ "+_\25-b\26/f\27""0g\27""1h\30""1i\31""2j\31""3j\32""4kku\214\202\205\215"
+ "U`z\36""7o\37""8p\40""8q\40""9r!:s\";t#<u#<v$=w%>x%?y&@z'@z(A{(B|)C}*D~*"
+ "D\177+E\200,F\200-H\201-H\202.I\203/J\2040K\205/I\203.G\202/H\203/I\2043"
+ "N\2114P\2125P\2135Q\2146R\2157S\2168T\2178T\2209U\221:V\222:W\223;W\224<"
+ "X\225=Y\226<Y\225<W\224<V\224=W\224=X\225>Y\226?Y\227?Z\230@[\231A\\\232"
+ "B]\233B]\234C^\235D_\236E`\237Ea\240Ea\241Fb\242Fc\243Gd\244Hd\244Ie\245"
+ "If\246Jg\247Kh\250Kh\251Li\252\203Mj\253\2Nk\254Qn\257\203Ro\2600\24+_\25"
+ ".d\26/f\27""0g\27""1h\30""2i\31""3j\32""3k\33""3g\312\312\313\245\245\246"
+ "\233\234\236\36""6m\37""8p\40""9q!:r!:s\";t#<u#=v$>w%>x&?y&@z'A{(A|)B})C"
+ "~*D\177+E\177+E\200,G\200-H\201.I\202.J\203/J\204.H\203.G\201.H\202/H\203"
+ "1K\2053O\2124P\2135Q\2146Q\2156R\2167S\2178T\217\2029U\221\10:V\222;W\223"
+ ";X\224<X\225=Y\226>Z\227>[\230>Z\227\202=X\226\26>Y\227?Z\230@[\231@[\232"
+ "A\\\232B]\233C^\234C^\235D_\236E`\237Ea\240Eb\241Fb\242Gc\243Gd\244He\245"
+ "If\246Jf\247Jg\250Kh\251Li\252Lj\252\205Mj\253&Nk\254Pm\256Ro\260\24+`\25"
+ ".d\26""0f\27""0g\30""1h\31""2i\31""3j\32""4k+Am\241\257\275\226\241\253\214"
+ "\230\243#9h\37""8q\40""9r!:s\";t\";u#<v$=v$>w%?x&?y'@z'A{(B|)B}*C~*D\177"
+ "+E\200,F\200,G\201-H\202.I\202-H\201\202-F\200\27.G\201.H\202/I\2043N\211"
+ "4O\2124P\2135Q\2146R\2157R\2167S\2178T\2209U\2219V\222:V\223;W\224<X\225"
+ "<Y\226=Y\226>Z\227?[\230?\\\231@]\232@\\\231\202?Z\230\23@[\231A\\\232A\\"
+ "\233B]\234C^\235D_\236D`\237E`\240Ea\240Fb\241Fc\242Gd\243Hd\244He\245If"
+ "\246Jg\247Kg\250Kh\251Li\252\210Mj\253\37Nk\254\24+`\25-b\27""0g\27""1h\30"
+ """2i\31""2j\32""3k\32""4l;Mr\225\230\234\315\317\321\237\244\252-Ao\40""9"
+ "q\40""9r!:s\";t\"<u#=v$=w%>x%?y&@z'@{(A|(B|)C}*D~+D\177+E\200\202,F\2001"
+ "+F\200+E\177,E\200-F\200-G\201.G\202/H\2032M\2073O\2124P\2125P\2145Q\214"
+ "6R\2157S\2168T\2178T\2209U\221:V\222;W\223;X\224<X\225=Y\226=Z\227>[\230"
+ "?[\231@\\\232@]\233A^\233B^\234A]\233@\\\232A\\\232B]\233B]\234C^\235D_\236"
+ "E`\237Ea\240Ea\241Fb\242Gc\243Gd\244He\245Ie\245If\246Jg\247Kh\250Li\251"
+ "Li\252\211Mj\253\32\24,`\25,a\26/d\30""1h\30""2i\31""3j\32""3k\32""4l\33"
+ """5l+@mFY\2000Es\37""8q\40""9q!:r!:s\";t#<u$=v$>w%>x&?y&@z'A{(B|)B}\203)"
+ "C}\22)C|)C}*D}+E~+E\177,E\200-F\200.G\201/I\2031M\2073N\2113O\2124P\2135"
+ "Q\2146Q\2156R\2167S\2178T\220\2029U\221\14:V\222;W\223;X\224<Y\225=Y\226"
+ ">Z\227>[\230?\\\231@\\\232A]\233A^\234B_\235\202C`\236\17C_\235B]\234C^\234"
+ "C_\235D_\236E`\237Ea\240Eb\241Fb\242Gc\243Hd\244He\245Jf\246Li\252Nk\253"
+ "\202Nk\254\212Mj\253\23\25,a\25-b\26-c\27/d\30""1g\31""2j\32""3k\33""4l\33"
+ """5m\35""6n\36""7n\36""7o\37""8p\40""9r!:s\";t\";u#<u$=v\202$>w\1%>x\202"
+ "%?x'&?x&@x'@y'Az(B{)C|*D}*D~+E\177,E\200,F\200.H\2020K\2052M\2072N\2103O"
+ "\2114O\2124P\2135Q\2146R\2157S\2167S\2178T\2209U\221:V\222:V\223;W\224<X"
+ "\225<Y\226=Z\227>Z\227?[\230?\\\231@]\232A^\233B^\234B_\235C`\236Da\237\202"
+ "Eb\240\23Ea\237D_\236D`\237E`\240Ea\241Fb\242Fc\242Gd\243Hd\244Kg\247Nk\253"
+ "Ol\254Pm\255Pm\256Qn\257Ro\260Qn\257Pm\256Nk\254\206Mj\253D\25,a\26-b\26"
+ ".c\27/d\30/e\31""0f\31""1g\32""2h\33""2h\33""3i\33""4j\34""5k\35""6l\35""7"
+ "m\36""7n\37""8o\40""9p\40:q!:r\";s\"<t#=u$>v%>w%?x&@x'Ay(Az(B{)C|*D}*E~+"
+ "E\200-G\201/J\2040L\2061M\2072M\2103N\2113O\2124P\2135P\2146Q\2156R\2157"
+ "S\2168T\2178T\2209U\221:V\222;W\223;X\224<X\225=Y\226>Z\227>[\230?\\\231"
+ "@\\\232@]\233A^\233B_\234C_\235C`\236Da\237Eb\240Ec\241Gc\242Hd\243Gc\242"
+ "\202Fb\242\12Fc\242Gd\243If\246Li\251Nj\253Nk\253Ol\254Pm\255Qm\256Qn\257"
+ "\205Ro\260\2Pm\256Nk\254\203Mj\253O\25-a\26-b\27.c\27/d\30""0e\31""0f\32"
+ """1g\32""2h\33""3i\33""4j\34""4k\34""5l\35""6m\36""7n\36""8o\37""8o\40""9"
+ "p!:q!;r\";s#<t#=u$>v%?w&?x&@y'Az(B{)C|*D~,F\200-H\201.J\203/J\2040K\2051"
+ "L\2061M\2072N\2103N\2114O\2124P\2135Q\2146R\2156R\2167S\2178T\2209U\2219"
+ "U\222:V\223;W\223<X\224<Y\225=Y\226>Z\227?[\230?\\\231@]\232A]\233A^\234"
+ "B_\235C`\236D`\237Da\240Eb\241Fc\242Gd\243Hd\243Ie\244Jf\245Jg\246Kh\247"
+ "Lh\250Mi\251Mj\252Nk\253Ol\254Pl\255Pm\256Qn\257\211Ro\260\3Pm\256Ol\255"
+ "\26/e\202\27/dL\30/d\30""0e\31""1f\32""2g\33""2h\33""3i\33""4j\34""5k\35"
+ """5l\35""6m\36""7n\37""8o\37""9p\40""9q!:r\";s\"<t#=t$=u%>w&@x'Az(B{)C}+"
+ "D\177,F\200-H\201-H\202.I\203/J\204/K\2050L\2061L\2072M\2102N\2103O\2114"
+ "O\2125P\2135Q\2146R\2157S\2167S\2178T\2209U\221:V\222:W\223;W\224<X\225="
+ "Y\226=Z\227>[\227?[\230?\\\231@]\232A^\233B^\234B_\235C`\236Da\237Eb\240"
+ "Eb\241Fc\242Hd\243Ie\244Ie\245Jf\246Kg\247Kh\247Li\250Mi\251Nj\252Nk\253"
+ "Ol\254Pm\255Qm\256Qn\257\213Ro\260O\27""0g\27""1h\30""2i\31""2j\32""3j\32"
+ """3k3FrDRr>Mp:Mw,An:Lt@NoCSw:Ks\";t\"<u#=u$=w%>x&@y'A{(A|)B})C~*D\177+E\177"
+ "+E\200,G\200-H\201.I\202.I\203/J\2040K\2051L\2061M\2072M\2103N\2113O\212"
+ "4P\2135Q\2146Q\2156R\2157S\2168T\2178U\2209U\221:V\222;W\223;X\224<Y\225"
+ "=Y\226>Z\227>[\230?\\\231@\\\232@]\233A^\234B_\235C_\236C`\236Da\237Eb\240"
+ "Fc\241Gc\242Hd\243Ie\244If\245Jg\246Kg\247Lh\250Li\251Mj\252Nj\253Ok\254"
+ "Ol\255Pm\256Qn\256Qn\257\213Ro\260N\27""0g\30""1h\30""2i\31""3j\32""4k\33"
+ """4l.Du7Ly?Q|6Ju7LzAT~<P~<P\1773I{#<u$=v$>w%?x&?y'@z'A{(B|)C}*C~*D\177+E"
+ "\200,F\200,G\201-H\202.I\203/J\203/K\2040K\2051L\2062M\2072N\2103N\2114O"
+ "\2124P\2135Q\2146R\2157S\2167S\2178T\2209U\2219V\222:V\223;W\223<X\224<Y"
+ "\225=Z\226>Z\227?[\230?\\\231@]\232A]\233A^\234B_\235C`\236Da\237Da\240E"
+ "b\241Fc\242Gd\242He\244Ie\244Jf\245Jg\246Kh\247Lh\250Mi\251Mj\252Nk\253O"
+ "l\254Pl\255Pm\256Qn\257\214Ro\260N\27""1h\30""1i\31""2i\31""3k\32""4k\33"
+ """5l\34""5m\35""6n\36""6n\37""8p,:fHHa&9k\";t\"<u#=v$=w%>x%?y&@z'@{(A|(B"
+ "|)C}*D~+D\177+E\200,F\200-H\201-H\202.I\203/J\2040K\2050L\2061L\2072M\210"
+ "2N\2113O\2124P\2125P\2135Q\2146R\2157S\2168T\2178T\2209U\221:V\222:W\223"
+ ";W\224<X\225=Y\226=Z\227>[\230?[\231@\\\232@]\232A^\233B_\234B_\235C`\236"
+ "Da\237Eb\240Eb\241Gc\242Hd\243Ie\244If\245Jf\246Kg\247Lh\250Li\251Mi\251"
+ "Nj\252Nk\253Ol\254Pm\255Qm\256Qn\257\214Ro\260\31\30""1h\30""2i\31""2j\32"
+ """3k\33""4l\33""5m\34""6n\36""7odhy\240\205b\217`@\235jEsMA\";t#<u#=v$>w"
+ "%>x&?y&@z'A{(B|)B})C~*D\177\202+E\2002,G\200-H\202.I\202.J\203/J\2040K\205"
+ "1L\2061M\2072N\2103N\2113O\2124P\2135Q\2146Q\2156R\2167S\2178T\2179U\220"
+ "9U\221:V\222;W\223;X\224<Y\225=Y\226>Z\227>[\230?\\\231@\\\232A]\233A^\234"
+ "B_\235C`\236C`\237Da\240Eb\241Fc\241Gd\242Hd\243Ie\244Jf\245Jg\246Kg\247"
+ "Lh\250Li\251Mj\252Nk\253Ok\254Ol\255Pm\256Qn\257\215Ro\260M\30""1h\31""2"
+ "i\31""3j\32""4k\33""4l\33""5m\35""6n\36""7olku\361\312\223\177vlle_KKX\""
+ ";u#<v$=v$>w%?x&?y'@z'A{(B|)C})C~*D\177+E\200,F\200,G\201-H\202.I\203/J\204"
+ "/K\2040L\2051L\2062M\2072N\2103O\2114O\2124P\2135Q\2146R\2157R\2167S\217"
+ "8T\2209U\221:V\222:V\223;W\224<X\225<Y\225=Z\226>Z\227?[\230?\\\231@]\232"
+ "A]\233B^\234B_\235C`\236Da\237Da\240Eb\241Fc\242Hd\243He\244Ie\245Jf\245"
+ "Kg\246Kh\247Li\250Mi\251Mj\252Nk\253Ol\254Pl\255Pm\256Qn\257\213Ro\260(P"
+ "m\256Ol\255\30""2i\31""2j\32""3k\32""4l\33""5m\34""5m\35""6n\36""7o\202|"
+ "x\333\271\206\321\264\210\336\300\222\225\211~#<u#=v$=w%>x%?y&@z'A{(A|(B"
+ "})C}*D~+D\177+E\200,F\200-H\201.I\202.I\203/J\2040K\2050L\2061M\2072M\210"
+ "3N\2113O\2124P\213\2025Q\214%6R\2157S\2168T\2178T\2209U\221:V\222;W\223;"
+ "W\224<X\225=Y\226=Z\227>[\230?[\231@\\\232@]\233A^\234B_\234C_\235C`\236"
+ "Da\237Eb\240Ec\241Gc\242Hd\243Ie\244If\245Jf\246Kg\247Lh\250Li\251Mj\252"
+ "Nj\253Nk\253Ol\254Pm\255Qn\256Qn\257\207Ro\260\3Pm\256Ol\255Nk\254\203Mj"
+ "\253L\30""2i\31""3j\32""3k\33""4l\33""5m\34""6n\36""7o\37""7p~{x\315\260"
+ "{\227\206o\270\232k9Hl#<u$=v$>w%>x&?y&@z'A{(B|)B})C~*D\177+E\200+F\200,G"
+ "\201-H\201.I\202.J\203/J\2040K\2051L\2061M\2072N\2103N\2114O\2124P\2135Q"
+ "\2146Q\2156R\2167S\2178T\2209U\2219U\222:V\223;W\223<X\224<Y\225=Y\226>Z"
+ "\227>[\230?\\\231@\\\232A]\233A^\234B_\235C`\236D`\237Da\240Eb\241Fc\241"
+ "Gd\242Hd\243Ie\244Jf\245Jg\246Kh\247Lh\250Mi\251Mj\252Nk\253Ol\254Ol\255"
+ "Pm\256Qn\257\204Ro\260\3Pm\256Ol\255Nk\254\207Mj\253O\31""2i\31""3j\32""4"
+ "k\33""4l\34""5m\35""6n\36""7o\37""8p\37""8q\40""8p!:s!:r\"<u#<v$=w%>x%?y"
+ "&@y'@z'A{(B|)C}*C~*D\177+E\200,F\200-H\201-H\202.I\203/J\204/K\2050L\206"
+ "1L\2072M\2072N\2103O\2114O\2125P\2135Q\2146R\2157S\2168S\2178T\2209U\221"
+ ":V\222:W\223;W\224<X\225=Y\226=Z\227>Z\227?[\230?\\\231@]\232A^\233B^\234"
+ "B_\235C`\236Da\237Eb\240Eb\241Fc\242Hd\243He\244If\245Jf\246Kg\246Kh\247"
+ "Li\250Mi\251Nj\252Nk\253Ol\254Pm\255Pm\256Qn\257Pm\256Ol\255Nk\254\213Mj"
+ "\2538\31""2j\32""3k\32""4l\33""5m\34""6n\35""6n\36""7o\37""8p\40""9q\40""9"
+ "r!:s\";t#<u#=v$=w%>x&?y&@z'A{(A|(B})C~*D~+E\177+E\200,F\200-H\201.I\202."
+ "I\203/J\2040K\2050L\2061M\2072M\2103N\2113O\2124P\2135Q\2146Q\2156R\2157"
+ "S\2168T\2178T\2209U\221:V\222;W\223;X\224<X\225=Y\226>Z\227>[\230?\\\231"
+ "@\\\232@]\233A^\234B_\235\202C`\236\15Da\237Eb\240Fc\241Gc\242Hd\243Ie\244"
+ "If\245Jg\246Kg\247Lh\250Li\251Mj\252Nj\253\202Nk\253\3Mj\253Mj\252Li\252"
+ "\216Mj\253F\31""3j\32""4k\33""4l\33""5m\35""6n\36""7o\37""7p\37""8q\40""9"
+ "r!:s!;t\";u#<u$=v$>w%>x&?y'@z'A{(B|)B})C~*D\177+E\200,F\200,G\201-H\202."
+ "I\202/J\203/K\2040K\2051L\2061M\2072N\2103N\2114O\2124P\2135Q\2146R\2156"
+ "R\2167S\2178T\2209U\2219V\222:V\222;W\223<X\224<Y\225=Y\226>Z\227?[\230?"
+ "\\\231@]\232A]\233A^\234B_\235C`\236D`\237Da\240Eb\241Fc\242Gd\243Hd\243"
+ "Ie\244Jf\245Jg\246Kh\247Lh\250Kh\250Kg\247\202Jg\247\3Kg\250Kh\251Li\252"
+ "\217Mj\253A\31""3j\32""4k\33""5l\34""5m\35""6n\36""7o\37""8p\37""9q\40""9"
+ "r!:s\";t#<u#<v$=w%>x%?y&@z'@z(A{(B|)C}*D~+D\177+E\200,F\200-H\201-H\202."
+ "I\203/J\2040K\2050L\2061L\2072M\2102N\2113O\2114P\2125P\2135Q\2146R\2157"
+ "S\2168S\2178T\2209U\221:V\222:W\223;W\224<X\225=Y\226=Z\227>[\230?[\230?"
+ "\\\231@]\232A^\233B_\234B_\235C`\236Da\237Eb\240Eb\241Fc\242Hd\243Ie\244"
+ "Ie\245Ie\244\202Hd\244\10Gd\244Hd\244Ie\245If\246Jg\247Kh\250Lh\251Li\252"
+ "\217Mj\253<\32""3k\32""4l\33""5m\34""6n\36""6o\36""7p\37""8q\40""9q!:r!:"
+ "s\";t#<u#=v$=w%>x&?y&@z'A{(A|)B})C~*D\177+E\177+E\200,G\200-H\201.I\202."
+ "J\203/J\2040K\2050L\2061M\2072M\2103N\2113O\2124P\2135Q\2146Q\2156R\2167"
+ "S\2178T\2179U\2209U\221:V\222;W\223;X\224<X\225=Y\226>Z\227>[\230?\\\231"
+ "@\\\232A]\233A^\234B_\235C`\236C`\237Da\237Eb\240Fc\241\202Fb\241\15Fa\240"
+ "Ea\240Eb\241Fb\242Gc\243Gd\244He\245If\246Jf\247Jg\250Kh\251Li\252Mi\252"
+ "\217Mj\253:\32""4k\33""4l\33""5m\35""6n\36""7o\37""8p\37""8q\40""9r!:s!;"
+ "t\";u#<v$=w$>w%?x&?y'@z'A{(B|)C})C~*D\177+E\200,F\200,G\201-H\202.I\203/"
+ "J\204/K\2040K\2051L\2062M\2072N\2103O\2114O\2124P\2135Q\2146R\2157S\2167"
+ "S\2178T\2209U\2219V\222:V\223;W\224<X\225<Y\225=Z\226>Z\227?[\230?\\\231"
+ "@]\232A^\233A^\234B_\235C`\236C_\236C_\235\202C^\235\16D_\236D`\237E`\240"
+ "Ea\240Eb\241Fc\242Gc\243Hd\244He\245If\246Jg\247Kg\250Kh\251Li\252\216Mj"
+ "\2535Nk\254Ol\255\32""4l\33""5l\34""5m\35""6n\36""7o\37""8p\40""9q\40""9"
+ "r!:s\";t#<u#=v$=w%>x%?y&@z'@{(A{(B})C}*D~+D\177+E\200,F\200-H\201-I\202."
+ "I\203/J\2040K\2050L\2061L\2072M\2103N\2113O\2114P\2125P\2145Q\2146R\2157"
+ "S\2168T\2178T\2209U\221:V\222:W\223;X\224<X\225=Y\226=Z\227>[\230?\\\231"
+ "@\\\232\202@]\232\1@\\\232\202@[\231\22A\\\232B]\233B^\234C^\235D_\236E`"
+ "\237Ea\240Ea\241Fb\242Fc\243Gd\244He\245Ie\246If\246Jg\247Kh\250Li\251Li"
+ "\252\211Mj\253\4Nk\254Ol\255Pm\256Qn\257\203Ro\260(\33""4l\33""5m\34""6n"
+ "\36""7o\36""7p\37""8q\40""9r:N{;Mx?NqHWzKZ|DTy8Js&?y&@z'A{(B|)B})C~*D\177"
+ "+E\200,E\200,G\200-H\201.I\202.J\203/J\2040K\2051L\2061M\2072N\2103N\211"
+ "3O\2124P\2135Q\2146Q\2156R\2167S\2178T\220\2029U\221\5:V\222;W\223<X\224"
+ "<Y\225=Y\226\202>Z\227\30>Y\227>Y\226>X\226>Y\227?Z\230@[\231A[\232A\\\233"
+ "B]\234C^\234C_\235D_\236E`\237Ea\240Eb\241Fb\242Gc\243Hd\244He\245If\246"
+ "Jf\247Jg\250Kh\251Li\252\206Mj\253\4Nk\254Ol\255Pm\256Qn\257\207Ro\260+\33"
+ """4l\34""5m\35""6n\36""7o\37""8p\37""8q\40""9r@R{7LzDW\201AT\200@T\201EW"
+ "\200?S\200&?y'@z'A{(B|)C}*C~*D\177+E\200,F\200,H\201-H\202.I\203/J\204/K"
+ "\2050L\2061L\2062M\2072N\2103O\2114O\2125P\2135Q\2146R\2157S\2167S\2178T"
+ "\2209U\221:V\222:V\223\203;W\223\202;V\223\31<V\223<W\224=X\225>Y\226?Y\227"
+ "?Z\230@[\231A\\\232B]\233B]\234C^\235D_\236D`\237E`\240Ea\241Eb\241Fc\242"
+ "Gd\243Hd\244He\245If\246Jg\247Kg\250Kh\251Li\252\202Mj\253\3Nk\254Ol\255"
+ "Qn\257\214Ro\260'\33""5m\34""5n\35""6n\36""7o\37""8p\40""9q\40""9r!:s\";"
+ "t\"<t#=v$=w%>x&?y&@z'A{(A|(B})C~*D~+D\177+E\200,F\200-H\201-I\202.I\203/"
+ "J\2040K\2050L\2061M\2072M\2103N\2113O\2124P\2135Q\2145Q\2156R\2157S\2168"
+ "T\217\2038T\220\2028S\217\36""9S\220:T\221:U\222;V\223<V\224=W\225=X\226"
+ ">Y\227?Z\227@Z\230@[\231A\\\232B]\233B^\234C^\235D_\236E`\237Ea\240Ea\241"
+ "Fb\242Gc\243Gd\244He\245Ie\246If\247Jg\250Li\251Nj\253Ol\255Qn\257\220Ro"
+ "\260#\33""5m\34""6n\36""7o\37""7p\37""8q\40""9r!:s!;tqy\215\234\234\235Z"
+ "cxgv\224Xj\204&?y&@z'A{(B|)B})C~*D\177+E\200,F\200,G\201-H\202.I\202/J\203"
+ "/J\2040K\2051L\2061M\2072N\2103N\2114O\2124P\2135Q\214\2026Q\215\1""6Q\214"
+ "\2026P\214\40""6P\2157Q\2168R\2179S\2179T\220:T\221;U\222;V\223<W\224=X\225"
+ ">X\226>Y\227?Z\230@[\231A\\\232A\\\233B]\234C^\235D_\235D`\236E`\237Ea\240"
+ "Eb\241Fc\242Gc\243Hd\244Jf\246Kh\250Mj\252Ol\255Pm\256Qn\257\222Ro\260\40"
+ "\34""5m\35""6n\36""7o\37""8p\40""8q\40""9r!:s\";t|\204\230\247\304\331\271"
+ "\302\311\310\313\311\210\215\232&@y'@z(A{(B|)C}*D~*D\177+E\200,F\200-H\201"
+ "-H\202.I\203/J\204/K\2050L\2061L\2072M\2072N\2113O\211\2033N\211%3M\2104"
+ "N\2115N\2125O\2136P\2147Q\2157R\2168R\2179S\220:T\221:U\222;V\222<V\223<"
+ "W\224=X\225>Y\226?Y\227?Z\230@[\231A\\\232B]\233B]\234C^\235D_\236D`\237"
+ "Ea\240Fb\241Gd\243If\245Kh\247Mi\251Nj\252Nk\253Ol\254Pm\255Pm\256Qn\257"
+ "\222Ro\260H\34""6n\36""6o\36""7o\37""8p\40""9q\40:r!:s\";tnz\224\215\301"
+ "\345\236\310\350\302\314\324\200\210\236&@z'A{(A|(B})C~*D\177+E\177+E\200"
+ ",G\200-H\201.I\202.J\203/J\2040K\2050L\2061L\2061K\2061K\2051J\2051K\206"
+ "2L\2073L\2103M\2114N\2115O\2125P\2136P\2147Q\2158R\2168S\2179S\220:T\221"
+ ";U\222;V\223<W\224=W\225=X\226>Y\227?Z\230@[\230@[\231A\\\232B]\233C^\234"
+ "D`\236Fa\240Gc\243Ie\245Jg\246Kg\247Lh\250Li\251Mj\252Nk\253Nk\254Ol\255"
+ "Pm\256Qn\256Qn\257\222Ro\260\31\35""6n\36""7o\37""8p\37""8q\40""9r!:s!;t"
+ "\";uHZ\201\203\223\247\230\260\304\214\232\255'?w'@z'A{(B|)B}*C~*D\177+E"
+ "\200,F\200,G\201-H\202.I\203.I\202\202.H\202,.G\202/H\202/I\2030I\2041J\205"
+ "1K\2062L\2073M\2104M\2114N\2125O\2136P\2146Q\2157Q\2168R\2179S\2179T\220"
+ ":T\221;U\222<V\223<W\224=X\225>X\226>Y\227?Z\230@[\231B]\233C_\236Da\240"
+ "Fc\241Gd\243He\244Ie\244Jf\245Jg\246Kh\247Lh\250Mi\251Mj\252Nk\253Ol\254"
+ "Pl\255Pm\256Qn\257\223Ro\260\24\35""6n\36""7o\37""8p\40""9q\40""9r!:s\";"
+ "t\"<u#=v$=w%=s,Bu&@z'@{(A{(B|)C}*D~*D\177+E\200\202+F\2001+F\177+E\177,E"
+ "\200-F\200-G\201.G\202/H\203/I\2040J\2051K\2052K\2062L\2073M\2104N\2115N"
+ "\2125O\2136P\2147Q\2157R\2168R\2179S\220:T\221:U\222;V\223<V\224=W\225>Y"
+ "\226?[\231A]\233B_\235C`\236Da\237Eb\240Eb\241Gc\242Hd\243Ie\244If\245Jf"
+ "\246Kg\247Kh\250Li\250Mi\251Nj\252Nk\253Ol\254Pm\255Qm\256Qn\257\223Ro\260"
+ "\17\36""7o\36""7p\37""8q\40""9q!:r!:s\";t#<u#=v$>w%>x&?y&@z'A{(A|\202)B}"
+ "\204)C|2*D}+E~+E\177,E\200-F\200-G\201.H\202/I\2030I\2040J\2051K\2062L\207"
+ "3L\2103M\2114N\2125O\2126P\2136P\2147Q\2158R\2168S\217:T\221;V\223<X\224"
+ "=Y\226?[\230@\\\232A]\233A^\234B_\235C`\236D`\237Da\240Eb\240Fc\241Gd\242"
+ "Hd\243Ie\244Jf\245Jg\246Kg\247Lh\250Li\251Mj\252Nk\253Ok\254Ol\255Pm\256"
+ "Qn\257Rn\257\223Ro\260\14\36""7o\37""8p\37""8q\40""9r!:s\";t\"<u#<u$=w%>"
+ "w%?x&?y\204&@y6'@y'Az(B{)C|)C}*D~+E\177,E\200,F\200-F\201.G\201/H\202/I\203"
+ "0J\2041J\2051K\2062L\2073M\2104N\2114N\2125P\2137Q\2158S\2179U\221:V\223"
+ "<X\224<Y\226=Z\226>Z\227?[\230?\\\231@]\232A]\233B^\234B_\235C`\236Da\237"
+ "Ea\240Eb\241Fc\242Hd\243He\244Ie\245Jf\246Kg\246Kh\247Li\250Mi\251Mj\252"
+ "Nk\253Ol\254Pl\255Pm\256Qn\257\224Ro\260\7\36""7o\37""8p\40""9q\40""9r!:"
+ "s\";t#<u\202#=v\1$=v\202#=u:$=v%>w%?x&@x'Ay(Az(B{)C|*D}*E~+E\177,E\200-F"
+ "\200-G\201.H\202/H\2030I\2040J\2051K\2062M\2104N\2125P\2136R\2157S\2178T"
+ "\2209U\221:V\222;W\223;W\224<X\225=Y\226=Z\227>[\230?[\231@\\\232@]\232A"
+ "^\234B_\234C_\235C`\236Da\237Eb\240Ec\241Gc\242Hd\243Ie\244If\245Jg\246K"
+ "g\247Lh\250Li\251Mj\252Nj\253Nk\254Ol\255Pm\255Qn\256Qn\257\224Ro\260\5\37"
+ """7p\37""8q\40""9r!:r!:s\203!:r\34!;r\";s#<t$=u$>v%?w&?x&@y'Az(B{)C|)C}*"
+ "D}+E~+E\177,E\200-F\200.H\202/J\2041K\2062M\2103O\2114P\2135Q\2146R\2156"
+ "R\2167S\2178T\220\2029U\221\37:V\222;W\223<X\224<Y\225=Y\226>Z\227>[\230"
+ "?\\\231@]\232A]\233A^\234B_\235C`\236D`\237Da\240Eb\241Fc\241Gd\242Hd\243"
+ "Ie\244Jf\245Jg\246Kh\247Lh\250Li\251Mj\252Nk\253Ok\254Ol\255Pm\256Qn\257"
+ "\225Ro\260\1%<r\203$<qA%=q%=r&>s'?t'@u(@v)Av*Bw*Cx+Dy,Dz,E{-F|.F}/G~/H\177"
+ "1J\2002K\2023L\2034N\2055O\2076P\2107Q\2117R\2128S\2129S\213:T\214:U\215"
+ ";V\216<V\217<W\220=X\221>Y\222?Y\222?Z\223@[\224A\\\225A\\\226B]\227C^\230"
+ "C^\231D_\232E`\233Ea\233Fb\234Gb\235Gc\236Hd\237Id\240Je\241Kf\242Lg\243"
+ "Mg\244Mh\244Ni\245Oj\246Ok\247Pk\250Ql\251Qm\252Rm\253Sn\254To\255Tp\255"
+ "Up\256\225Vq\257\6\340\340\340\330\325\325\322\312\312\335\335\335\316\316"
+ "\316\305\305\305\202\325\325\325\31\320\320\320\324\324\324\326\326\326\324"
+ "\324\324\340\340\340\335\335\335\324\324\324\325\325\325\326\326\326\324"
+ "\324\324\331\331\331\337\337\337\277\303\307\301\301\305\333\332\331\317"
+ "\305\263\323\317\310\333\332\327\306\304\305\311\312\313\327\327\330\266"
+ "\303\320\326\326\326\301\306\316\252\254\273\244\340\340\340\3\334\334\334"
+ "\340\340\340\334\334\334\202\325\325\325\6\331\331\331\323\323\323\277\277"
+ "\277\320\320\320\317\317\317\327\327\327\202\334\334\334*\324\324\324\333"
+ "\333\333\331\331\331\333\333\333\340\340\340\307\307\307\315\315\315\340"
+ "\340\340\336\332\332\265<6\262US\315\315\315\225\225\225\242\242\242\214"
+ "\214\214\273\273\273\225\225\225\251\251\251\231\231\231\263\263\263\345"
+ "\345\345\261\261\261\247\247\247\242\242\242\254\254\254\237\237\237\311"
+ "\311\311\266\277\305u\232\225\204\214\235\320\301\251\264\247\202\300\276"
+ "\262\277\276\274\312\312\315\321\321\321\270\270\277\210\235\252\277\301"
+ "\312\227\265\322\252\242\235\330\330\330\243\345\345\345\10\342\342\342\344"
+ "\344\344\267\267\267\237\237\237\301\301\301\226\226\226\257\257\257\254"
+ "\254\254\202\270\270\270\12\342\342\342\274\274\274\275\275\275\213\213\213"
+ "\265\265\265\213\213\213\204\204\204\343\343\343\234\234\234\265\265\265"
+ "\202\345\345\345\6\334\313\312\336\327\326\345\345\345\342\342\342\345\345"
+ "\345\340\340\340\202\345\345\345\1\343\343\343\203\345\345\345\3\342\342"
+ "\342\345\345\345\343\343\343\203\345\345\345\17\320\322\322\254\312\311\271"
+ "\305\325\334\334\333\276\306\312\331\332\331\327\327\327\311\311\311\340"
+ "\340\340\310\310\317\251\260\266\320\321\330\325\326\327\316\322\324\341"
+ "\341\341\243\345\345\345\3\341\341\341\344\344\344\330\330\330\202\345\345"
+ "\345\1\342\342\342\202\345\345\345\202\337\337\337\13\345\345\345\334\334"
+ "\334\343\343\343\336\336\336\344\344\344\340\340\340\341\341\341\345\345"
+ "\345\310\310\310\307\307\307\345\345\345",
};
diff --git a/src/image_data/sdi_shared_sync_bnc_pixdata.h b/src/image_data/sdi_shared_sync_bnc_pixdata.h
new file mode 100644
index 0000000..c09abde
--- /dev/null
+++ b/src/image_data/sdi_shared_sync_bnc_pixdata.h
@@ -0,0 +1,1088 @@
+/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */
+
+static guint8 sdi_shared_sync_bnc_pixdata_pixel_data[] = {
+ "\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0"
+ "\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377"
+ "\0\0\0\0\377\0\0\0\0\377\0\0\0\0\323\0\0\0\0\10\357\357\362#\357\357"
+ "\363a\357\357\363\223\357\357\363\275\357\357\363\334\360\360\363\361"
+ "\360\360\363\375\360\360\364\377\204\361\361\364\377\1\361\361\365\377"
+ "\204\362\362\365\377\1\363\363\365\377\204\363\363\366\377\1\364\364"
+ "\366\377\202\364\364\367\377\204\365\365\367\377\1\365\365\370\377\204"
+ "\366\366\370\377\205\367\367\371\377\1\370\370\371\377\202\370\370\372"
+ "\377\203\371\371\372\377\202\371\371\373\377\203\372\372\373\377\1\373"
+ "\373\373\377\204\373\373\374\377\1\374\374\374\377\203\374\374\375\377"
+ "\203\375\375\375\377\202\375\375\376\377\203\376\376\376\377\213\377"
+ "\377\377\377\202\376\376\377\377\204\376\376\376\377\202\375\375\376"
+ "\377\210\375\375\375\377\14\375\375\375\375\375\375\375\370\375\375\375"
+ "\357\375\375\375\343\375\375\375\324\375\375\375\301\375\375\375\252"
+ "\375\375\375\220\375\375\375s\375\375\375R\375\375\375.\375\375\375\10"
+ "\272\0\0\0\0\11\315\315\333#\315\315\334a\322\322\337\234\327\327\342"
+ "\325\317\317\335\334\317\317\335\361\317\317\335\375\320\320\335\377"
+ "\320\320\336\377\202\321\321\336\377\202\322\322\337\377\2\323\323\337"
+ "\377\323\323\340\377\202\324\324\340\377\2\325\325\340\377\325\325\341"
+ "\377\202\326\326\341\377\203\327\327\342\377\202\330\330\343\377\202"
+ "\331\331\343\377\202\332\332\344\377\2\333\333\344\377\333\333\345\377"
+ "\202\334\334\345\377\202\335\335\346\377\202\336\336\346\377\203\337"
+ "\337\347\377\202\340\340\350\377\2\341\341\350\377\341\341\351\377\202"
+ "\342\342\351\377\2\343\343\351\377\343\343\352\377\202\344\344\352\377"
+ "\202\345\345\353\377\202\346\346\353\377\203\347\347\354\377\202\350"
+ "\350\355\377\2\351\351\355\377\351\351\356\377\202\352\352\356\377\202"
+ "\353\353\357\377\202\354\354\357\377\202\355\355\360\377\2\356\356\360"
+ "\377\356\356\361\377\203\357\357\361\377\202\360\360\362\377\2\361\361"
+ "\362\377\361\361\363\377\202\362\362\363\377\202\363\363\364\377\202"
+ "\364\364\364\377\204\365\365\365\377\205\364\364\364\377\14\364\364\364"
+ "\375\364\364\364\370\364\364\364\357\364\364\364\343\364\364\364\324"
+ "\364\364\364\301\364\364\364\252\364\364\364\220\364\364\364s\364\364"
+ "\364R\364\364\364.\346\346\351\10\272\0\0\0\0\7\357\357\364e\356\356"
+ "\363\333\354\354\362\375\346\346\356\376\336\336\350\375\324\324\340"
+ "\370\320\320\336\375\203\321\321\336\377\202\322\322\337\377\202\323"
+ "\323\337\377\203\324\324\340\377\202\325\325\341\377\202\326\326\341"
+ "\377\202\327\327\342\377\2\330\330\342\377\330\330\343\377\202\331\331"
+ "\343\377\202\332\332\344\377\202\333\333\344\377\203\334\334\345\377"
+ "\202\335\335\346\377\2\336\336\346\377\336\336\347\377\202\337\337\347"
+ "\377\2\340\340\347\377\340\340\350\377\202\341\341\350\377\202\342\342"
+ "\351\377\2\343\343\351\377\343\343\352\377\203\344\344\352\377\202\345"
+ "\345\353\377\2\346\346\353\377\346\346\354\377\202\347\347\354\377\202"
+ "\350\350\355\377\202\351\351\355\377\202\352\352\356\377\2\353\353\356"
+ "\377\353\353\357\377\202\354\354\357\377\1\354\354\360\377\202\355\355"
+ "\360\377\2\356\356\360\377\356\356\361\377\202\357\357\361\377\202\360"
+ "\360\362\377\2\361\361\362\377\361\361\363\377\202\362\362\363\377\2"
+ "\363\363\363\377\363\363\364\377\202\364\364\364\377\205\365\365\365"
+ "\377\205\364\364\364\377\14\364\364\364\375\364\364\364\370\364\364\364"
+ "\357\364\364\364\343\364\364\364\324\364\364\364\301\364\364\364\252"
+ "\364\364\364\220\364\364\364s\364\364\364R\364\364\364.\364\364\364\10"
+ "\267\0\0\0\0\12\377\377\377\16\377\377\377\210\377\377\377\345\373\373"
+ "\374\373\364\364\367\375\355\355\362\376\347\347\356\376\341\341\352"
+ "\377\330\330\343\375\321\321\336\375\202\322\322\336\377\202\322\322"
+ "\337\377\2\323\323\337\377\323\323\340\377\202\324\324\340\377\202\325"
+ "\325\341\377\202\326\326\341\377\202\327\327\342\377\2\330\330\342\377"
+ "\330\330\343\377\202\331\331\343\377\203\332\332\344\377\2\333\333\344"
+ "\377\333\333\345\377\202\334\334\345\377\202\335\335\346\377\2\336\336"
+ "\346\377\336\336\347\377\202\337\337\347\377\2\340\340\347\377\340\340"
+ "\350\377\202\341\341\350\377\203\342\342\351\377\202\343\343\352\377"
+ "\202\344\344\352\377\202\345\345\353\377\2\346\346\353\377\346\346\354"
+ "\377\202\347\347\354\377\202\350\350\355\377\202\351\351\355\377\203"
+ "\352\352\356\377\202\353\353\357\377\202\354\354\357\377\206\355\355"
+ "\360\377\5\356\356\360\377\357\357\361\377\360\360\361\377\360\360\362"
+ "\377\361\361\362\377\202\362\362\363\377\202\363\363\364\377\2\364\364"
+ "\364\377\364\364\365\377\206\365\365\365\377\205\364\364\364\377\14\364"
+ "\364\364\375\364\364\364\370\364\364\364\357\364\364\364\343\364\364"
+ "\364\324\364\364\364\301\364\364\364\252\364\364\364\220\364\364\364"
+ "s\364\364\364R\364\364\364.\364\364\364\10\212\0\0\0\0\31\377\377\377"
+ "\14\302\332\302\207\264\321\264\223\261\317\261\223\255\315\255\223\252"
+ "\314\252\223\250\312\250\223\244\310\244\223\241\306\241\223\236\304"
+ "\236\223\233\302\233\223\230\301\230\223\225\277\225\223\222\275\222"
+ "\223\217\273\217\223\214\271\214\223b\240b\265U\230U\300n\247n\326k\245"
+ "k\326g\243g\326d\241d\326`\237`\326]\235]\326Z\233Z\262\222\0\0\0\0\14"
+ "\377\377\377:\377\377\377\264\377\377\377\362\377\377\377\371\377\377"
+ "\377\372\373\373\374\373\364\364\367\375\355\355\362\376\347\347\356"
+ "\376\341\341\352\377\331\331\343\375\322\322\337\375\202\322\322\337"
+ "\377\2\323\323\337\377\323\323\340\377\202\324\324\340\377\2\325\325"
+ "\340\377\325\325\341\377\202\326\326\341\377\202\327\327\342\377\1\330"
+ "\330\342\377\202\330\330\343\377\202\331\331\343\377\202\332\332\344"
+ "\377\2\333\333\344\377\333\333\345\377\202\334\334\345\377\202\335\335"
+ "\346\377\202\336\336\346\377\202\337\337\347\377\1\340\340\347\377\202"
+ "\340\340\350\377\2\341\341\350\377\341\341\351\377\202\342\342\351\377"
+ "\2\343\343\351\377\343\343\352\377\202\344\344\352\377\202\345\345\353"
+ "\377\2\346\346\353\377\346\346\354\377\202\347\347\354\377\1\350\350"
+ "\354\377\202\350\350\355\377\2\351\351\355\377\351\351\356\377\202\352"
+ "\352\356\377\202\353\353\357\377\202\354\354\357\377\202\355\355\360"
+ "\377\207\356\356\360\377\2\357\357\361\377\360\360\362\377\202\361\361"
+ "\362\377\202\363\363\364\377\2\364\364\364\377\364\364\365\377\207\365"
+ "\365\365\377\1\364\364\365\377\205\364\364\364\377\14\364\364\364\375"
+ "\364\364\364\370\364\364\364\357\364\364\364\343\364\364\364\324\364"
+ "\364\364\301\364\364\364\252\364\364\364\220\364\364\364s\364\364\364"
+ "R\364\364\364.\364\364\364\10\212\0\0\0\0\31\377\377\377<\241\306\241"
+ "\374\225\277\225\377o\250o\377n\253n\377d\241d\377b\245b\377Y\232Y\377"
+ "Y\237Y\377V\233V\377Z\232Z\377n\247n\377j\244j\377f\242f\377\201\263"
+ "\201\377q\225q\377o\224o\377m\222m\377j\221j\377h\217h\377f\216f\377"
+ "=\177=\377@\213@\377<\210<\377v\254v\377\202\377\377\377\357\1\377\377"
+ "\377\234\214\0\0\0\0\17\377\377\377\12\377\377\377t\377\377\377\325\377"
+ "\377\377\365\377\377\377\366\377\377\377\370\377\377\377\371\377\377"
+ "\377\372\373\373\374\373\364\364\367\375\356\356\363\376\347\347\356"
+ "\376\342\342\352\377\331\331\344\375\323\323\337\375\202\323\323\337"
+ "\377\3\324\324\340\377\0\0\0\377\252\252\263\377\202\325\325\341\377"
+ "\6ddi\37799<\377\16\16\17\377\327\327\342\377\330\330\342\377\330\330"
+ "\343\377\202\331\331\343\377\4\0\0\0\377\332\332\344\377\333\333\344"
+ "\377\333\333\345\377\202\334\334\345\377\2XX\\\377\0\0\0\377\202\336"
+ "\336\346\377\1\336\336\347\377\202\337\337\347\377\202\340\340\350\377"
+ "\10\341\341\350\377\0\0\0\377\265\265\272\377\342\342\351\377\343\343"
+ "\351\377jjm\377==>\377\17\17\20\377\202\345\345\353\377\202\346\346\353"
+ "\377\3\346\346\354\377\0\0\0\377\347\347\354\377\202\350\350\355\377"
+ "\6\351\351\355\377\351\351\356\377mmo\377\0\0\0\377nno\377\353\353\357"
+ "\377\202\354\354\357\377\202\355\355\360\377\1\356\356\360\377\210\356"
+ "\356\361\377\4\357\357\361\377\360\360\361\377\360\360\362\377\361\361"
+ "\362\377\202\362\362\363\377\202\363\363\364\377\2\364\364\364\377\364"
+ "\364\365\377\203\365\365\365\377\1\364\364\365\377\207\364\364\364\377"
+ "\14\364\364\364\375\364\364\364\370\364\364\364\357\364\364\364\343\364"
+ "\364\364\324\364\364\364\301\364\364\364\252\364\364\364\220\364\364"
+ "\364s\364\364\364R\364\364\364.\364\364\364\10\212\0\0\0\0\17\347\360"
+ "\347t\230\300\230\377\221\275\221\377L\223L\377N\235N\377\77\212\77\377"
+ "\77\225\77\3773\2013\3777\2157\3775\2115\377A\211A\377m\246m\377i\244"
+ "i\377e\241e\377\240\305\240\377\206,/,\377\4\"=\"\377\77\212\77\377:"
+ "\210:\377i\244i\377\202\377\377\377\377\1\377\377\377\346\212\0\0\0\0"
+ "\21\377\377\377*\377\377\377\241\377\377\377\347\377\377\377\361\377"
+ "\377\377\363\377\377\377\365\377\377\377\366\377\377\377\370\377\377"
+ "\377\371\377\377\377\372\373\373\374\373\364\364\367\375\356\356\363"
+ "\376\350\350\357\376\343\343\352\377\332\332\344\375\324\324\340\375"
+ "\203\324\324\340\377\10""99<\377fff\377\336\336\347\377\326\326\341\377"
+ "\35\35\36\377\235\235\241\377\365\365\367\377\374\374\375\377\202\331"
+ "\331\343\377\202\332\332\344\377\3\0\0\0\377\377\377\377\377\333\333"
+ "\345\377\202\334\334\345\377\4vv{\377;;=\377\0\0\0\377\377\377\377\377"
+ "\202\337\337\347\377\2\340\340\347\377\340\340\350\377\202\341\341\350"
+ "\377\13\342\342\351\377<<>\377fff\377\351\351\356\377\343\343\352\377"
+ "\36\36\37\377\241\241\243\377\370\370\372\377\375\375\376\377\346\346"
+ "\353\377\346\346\354\377\202\347\347\354\377\2\0\0\0\377\377\377\377"
+ "\377\202\351\351\355\377\202\352\352\356\377\5\0\0\0\377\366\366\370"
+ "\377\0\0\0\377\366\366\370\377\354\354\360\377\202\355\355\360\377\2"
+ "\356\356\360\377\356\356\361\377\211\357\357\361\377\2\360\360\361\377"
+ "\360\360\362\377\202\361\361\362\377\1\362\362\363\377\202\363\363\364"
+ "\377\2\364\364\364\377\364\364\365\377\202\365\365\365\377\211\364\364"
+ "\364\377\14\364\364\364\375\364\364\364\370\364\364\364\357\364\364\364"
+ "\343\364\364\364\324\364\364\364\301\364\364\364\252\364\364\364\220"
+ "\364\364\364s\364\364\364R\364\364\364.\364\364\364\10\212\0\0\0\0\17"
+ "\301\331\301\303\227\300\227\377\207\272\207\377J\222J\377L\233L\377"
+ "=\211=\377=\224=\3772\2012\3776\2146\3774\2104\377G\213G\377l\246l\377"
+ "h\243h\377c\240c\377\240\305\240\377\206,/,\377\4\40""7\40\377=\211="
+ "\3779\2079\3775\2045\377\203\377\377\377\377\210\0\0\0\0\35\377\377\377"
+ "d\377\377\377\300\377\377\377\353\377\377\377\355\377\377\377\357\377"
+ "\377\377\361\377\377\377\363\377\377\377\365\377\377\377\366\377\377"
+ "\377\370\377\377\377\371\377\377\377\372\373\373\374\373\365\365\370"
+ "\375\356\356\363\376\350\350\357\376\343\343\353\377\334\334\345\376"
+ "\324\324\340\375\325\325\341\377\325\325\340\377\325\325\341\377\217"
+ "\217\226\377\0\0\0\377\357\357\363\377\272\272\304\377\0\0\0\377\372"
+ "\372\373\377\0\0\0\377\202\331\331\343\377\6\221\221\230\377\17\17\17"
+ "\377,,.\377\0\0\0\377\377\377\377\377\334\334\345\377\202\335\335\346"
+ "\377\6\336\336\346\377\355\355\362\377\0\0\0\377\377\377\377\377\340"
+ "\340\347\377\340\340\350\377\202\341\341\350\377\1\341\341\351\377\202"
+ "\342\342\351\377\17\227\227\233\377\0\0\0\377\364\364\367\377\306\306"
+ "\313\377\0\0\0\377\374\374\374\377\0\0\0\377\346\346\354\377\347\347"
+ "\354\377\232\232\235\377\17\17\20\377../\377\0\0\0\377\377\377\377\377"
+ "\351\351\356\377\202\352\352\356\377\202\353\353\357\377\6\377\377\377"
+ "\377\0\0\0\377\377\377\377\377\355\355\360\377\356\356\360\377\356\356"
+ "\361\377\202\357\357\361\377\213\360\360\362\377\203\361\361\362\377"
+ "\202\362\362\363\377\1\364\364\364\377\202\364\364\365\377\212\364\364"
+ "\364\377\14\364\364\364\375\364\364\364\370\364\364\364\357\364\364\364"
+ "\343\364\364\364\324\364\364\364\301\364\364\364\252\364\364\364\220"
+ "\364\364\364s\364\364\364R\364\364\364.\364\364\364\10\211\0\0\0\0\20"
+ "\377\377\377\14\261\317\261\355\226\277\226\377z\266z\377H\220H\377J"
+ "\232J\377;\210;\377;\223;\3772\2002\3776\2136\3774\2064\377M\215M\377"
+ "k\245k\377f\242f\377b\240b\377\237\304\237\377\205,/,\377\6,.,\377\34"
+ "%\34\377<\211<\3778\2068\3774\2034\377\234\260\234\377\202\277\277\277"
+ "\377\1\277\277\277p\204\0\0\0\0\26\377\377\377\35\377\377\377\212\377"
+ "\377\377\330\377\377\377\346\377\377\377\350\377\377\377\353\377\377"
+ "\377\355\377\377\377\357\377\377\377\361\377\377\377\363\377\377\377"
+ "\365\377\377\377\366\377\377\377\370\377\377\377\371\377\377\377\372"
+ "\373\373\374\373\365\365\370\375\357\357\363\376\351\351\357\376\343"
+ "\343\353\377\334\334\345\376\325\325\341\375\203\326\326\341\377\17\327"
+ "\327\342\377\0\0\0\377\335\335\335\377eej\377JJM\377\377\377\377\377"
+ "\0\0\0\377\377\377\377\377\332\332\344\377\0\0\0\377\271\271\276\377"
+ "\333\333\333\377\0\0\0\377\377\377\377\377\335\335\346\377\202\336\336"
+ "\346\377\202\337\337\347\377\5\0\0\0\377\377\377\377\377\340\340\350"
+ "\377\341\341\350\377\341\341\351\377\202\342\342\351\377\21\343\343\351"
+ "\377\343\343\352\377\344\344\352\377\0\0\0\377\335\335\335\377kkn\377"
+ "NNO\377\377\377\377\377\0\0\0\377\377\377\377\377\347\347\354\377\0\0"
+ "\0\377\300\300\302\377\334\334\334\377\0\0\0\377\377\377\377\377\352"
+ "\352\356\377\202\353\353\357\377\202\354\354\357\377\4oop\377__`\377"
+ "\377\377\377\377\356\356\361\377\203\357\357\361\377\203\360\360\362"
+ "\377\205\361\361\362\377\202\360\360\362\377\205\361\361\362\377\202"
+ "\362\362\363\377\2\363\363\363\377\363\363\364\377\204\364\364\364\377"
+ "\2\363\363\364\377\363\363\363\377\205\364\364\364\377\14\364\364\364"
+ "\375\364\364\364\370\364\364\364\357\364\364\364\343\364\364\364\324"
+ "\364\364\364\301\364\364\364\252\364\364\364\220\364\364\364s\364\364"
+ "\364R\364\364\364.\364\364\364\10\211\0\0\0\0\20\377\377\377<\241\306"
+ "\241\374\224\276\224\377o\263o\377F\217F\377H\231H\3779\2079\377:\222"
+ ":\3772\1772\3775\2125\3774\2054\377M\215M\377j\244j\377e\242e\377a\237"
+ "a\377\236\304\236\377\205,/,\377\6,.,\377\40'\40\3772s2\3777\2057\377"
+ "3\2033\377\244\310\244\377\202\377\377\377\377\1\377\377\377\316\202"
+ "\0\0\0\0\30\377\377\377O\377\377\377\251\377\377\377\335\377\377\377"
+ "\340\377\377\377\343\377\377\377\346\377\377\377\350\377\377\377\353"
+ "\377\377\377\355\377\377\377\357\377\377\377\361\377\377\377\363\377"
+ "\377\377\365\377\377\377\366\377\377\377\370\377\377\377\371\377\377"
+ "\377\372\374\374\374\373\365\365\370\375\357\357\363\376\351\351\357"
+ "\376\344\344\354\377\335\335\346\376\326\326\341\375\202\326\326\342"
+ "\377\202\327\327\342\377\17::<\377www\377,,.\377\276\276\302\377\363"
+ "\363\366\377\0\0\0\377\377\377\377\377\333\333\345\377\0\0\0\377\377"
+ "\377\377\377\344\344\352\377\0\0\0\377\377\377\377\377\336\336\346\377"
+ "\336\336\347\377\202\337\337\347\377\4\340\340\350\377\0\0\0\377\377"
+ "\377\377\377\341\341\350\377\202\342\342\351\377\2\343\343\351\377\343"
+ "\343\352\377\202\344\344\352\377\17\345\345\353\377==\77\377www\377/"
+ "/0\377\302\302\305\377\367\367\371\377\0\0\0\377\377\377\377\377\350"
+ "\350\355\377\0\0\0\377\377\377\377\377\356\356\361\377\0\0\0\377\377"
+ "\377\377\377\353\353\357\377\202\354\354\357\377\5\355\355\360\377\315"
+ "\315\320\377\20\20\20\377\367\367\370\377\370\370\371\377\202\357\357"
+ "\361\377\204\360\360\362\377\202\361\361\362\377\205\362\362\363\377"
+ "\202\361\361\362\377\1\361\361\363\377\205\362\362\363\377\2\363\363"
+ "\363\377\363\363\364\377\202\364\364\364\377\202\363\363\364\377\202"
+ "\363\363\363\377\205\362\362\363\377\14\362\362\363\375\362\362\363\370"
+ "\362\362\363\357\362\362\363\343\362\362\363\324\362\362\363\301\362"
+ "\362\363\252\362\362\363\220\362\362\363s\362\362\363R\362\362\363.\362"
+ "\362\363\10\211\0\0\0\0\20\347\360\347t\227\300\227\377\223\276\223\377"
+ "Z\244Z\377E\216E\377F\231F\3777\2067\3779\2219\3771}1\3775\2115\3773"
+ "\2033\377L\214L\377h\244h\377d\241d\377`\236`\377\235\304\235\377\205"
+ ",/,\377\6+.+\377#)#\377.l.\3776\2056\3771\2021\377o\250o\377\202\377"
+ "\377\377\377\33\377\377\377\360\377\377\377s\377\377\377\301\377\377"
+ "\377\326\377\377\377\331\377\377\377\335\377\377\377\340\377\377\377"
+ "\343\377\377\377\346\377\377\377\350\377\377\377\353\377\377\377\355"
+ "\377\377\377\357\377\377\377\361\377\377\377\363\377\377\377\365\377"
+ "\377\377\366\377\377\377\370\377\377\377\371\377\377\377\372\374\374"
+ "\375\373\365\365\370\375\357\357\364\376\351\351\360\376\344\344\354"
+ "\377\336\336\347\376\327\327\342\375\202\327\327\342\377\17\330\330\342"
+ "\377\330\330\343\377\221\221\227\377!!!\377\20\20\20\377\370\370\372"
+ "\377\342\342\351\377\0\0\0\377\377\377\377\377\334\334\345\377\0\0\0"
+ "\377\377\377\377\377\300\300\307\377\0\0\0\377\377\377\377\377\202\337"
+ "\337\347\377\7\340\340\347\377\340\340\350\377\341\341\350\377\0\0\0"
+ "\377\377\377\377\377\342\342\351\377\343\343\351\377\202\343\343\352"
+ "\377\202\344\344\352\377\202\345\345\353\377\17\231\231\235\377!!!\377"
+ "\20\20\20\377\372\372\373\377\355\355\361\377\0\0\0\377\377\377\377\377"
+ "\351\351\355\377\0\0\0\377\377\377\377\377\314\314\316\377\0\0\0\377"
+ "\377\377\377\377\354\354\357\377\354\354\360\377\202\355\355\360\377"
+ "\4""000\377\200\200\202\377\376\376\376\377\357\357\361\377\202\360\360"
+ "\362\377\2\361\361\362\377\360\360\362\377\204\361\361\362\377\202\362"
+ "\362\362\377\204\363\363\363\377\1\362\362\362\377\202\362\362\363\377"
+ "\1\361\361\362\377\202\362\362\363\377\202\363\363\363\377\202\363\363"
+ "\364\377\202\363\363\363\377\210\362\362\363\377\14\362\362\363\375\362"
+ "\362\363\370\362\362\363\357\362\362\363\343\362\362\363\324\362\362"
+ "\363\301\362\362\363\252\362\362\363\220\362\362\363s\362\362\363R\362"
+ "\362\363.\362\362\363\10\211\0\0\0\0\20\304\333\304\310\226\277\226\377"
+ "\214\273\214\377S\237S\377C\215C\377D\230D\3776\2046\3778\2208\3770|"
+ "0\3774\2074\3772\2022\377R\216R\377l\250l\377w\263w\377r\261r\377\250"
+ "\317\250\377\204-0-\377$-/-\377,/,\377*.*\377(_(\377\77\235\77\377:\232"
+ ":\377.\205.\377W\231W\243\377\377\377\222\377\377\377\307\377\377\377"
+ "\317\377\377\377\322\377\377\377\326\377\377\377\331\377\377\377\335"
+ "\377\377\377\340\377\377\377\343\377\377\377\346\377\377\377\350\377"
+ "\377\377\353\377\377\377\355\377\377\377\357\377\377\377\361\377\377"
+ "\377\363\377\377\377\365\377\377\377\366\377\377\377\370\377\377\377"
+ "\371\377\377\377\372\374\374\375\373\365\365\370\375\360\360\364\376"
+ "\352\352\360\376\345\345\354\377\337\337\347\376\330\330\342\375\202"
+ "\330\330\343\377\203\331\331\343\377\16\0\0\0\377ddd\377\375\375\375"
+ "\377\333\333\345\377\0\0\0\377\377\377\377\377\335\335\346\377ggk\377"
+ "333\377JJM\377\0\0\0\377\377\377\377\377\340\340\347\377\0\0\0\377\202"
+ "\341\341\350\377\5\341\341\351\377\0\0\0\377\377\377\377\377\343\343"
+ "\351\377\343\343\352\377\202\344\344\352\377\202\345\345\353\377\27\346"
+ "\346\353\377\346\346\354\377\347\347\354\377\0\0\0\377eee\377\375\375"
+ "\376\377\351\351\355\377\0\0\0\377\377\377\377\377\352\352\356\377mm"
+ "o\377333\377NNP\377\0\0\0\377\377\377\377\377\355\355\360\377\0\0\0\377"
+ "\356\356\360\377\356\356\361\377\0\0\0\377\21\21\21\377\20\20\21\377"
+ "\360\360\362\377\202\361\361\362\377\1\360\360\362\377\204\361\361\362"
+ "\377\3\360\360\362\377\360\360\361\377\361\361\362\377\203\362\362\363"
+ "\377\202\363\363\364\377\205\362\362\363\377\1\363\363\363\377\202\363"
+ "\363\364\377\202\363\363\363\377\203\362\362\363\377\202\362\362\362"
+ "\377\204\362\362\363\377\14\362\362\363\375\362\362\363\370\362\362\363"
+ "\357\364\364\364\343\362\362\363\324\362\362\363\301\362\362\363\252"
+ "\362\362\363\220\362\362\363s\362\362\363R\362\362\363.\362\362\363\10"
+ "\210\0\0\0\0\35\377\377\377\31\261\317\261\355\225\277\225\377\202\270"
+ "\202\377Q\236Q\377A\213A\377B\227B\3774\2034\3778\2178\3770{0\3774\206"
+ "4\3772\2012\377W\220W\377p\254p\377\211\306\211\377\214\310\214\377\245"
+ "\321\245\377\206\245\207\377\200\240\201\377y\233z\377r\226t\377k\220"
+ "m\377d\213f\377\\\205^\377S\221V\377M\253N\377B\263B\3773\2243\377\362"
+ "\367\362\377\202\377\377\377\377\32\377\377\377\350\377\377\377\322\377"
+ "\377\377\326\377\377\377\331\377\377\377\335\377\377\377\340\377\377"
+ "\377\343\377\377\377\346\377\377\377\350\377\377\377\353\377\377\377"
+ "\355\377\377\377\357\377\377\377\361\377\377\377\363\377\377\377\365"
+ "\377\377\377\366\377\377\377\370\377\377\377\371\377\377\377\372\374"
+ "\374\375\373\366\366\370\375\360\360\364\376\352\352\360\376\345\345"
+ "\354\377\337\337\350\376\330\330\343\375\203\331\331\343\377\202\332"
+ "\332\344\377\6\333\333\344\377\377\377\377\377\361\361\365\377\334\334"
+ "\345\377\335\335\345\377\377\377\377\377\202\336\336\346\377\7\360\360"
+ "\364\377\371\371\372\377\364\364\367\377\377\377\377\377\340\340\350"
+ "\377\341\341\350\377\377\377\377\377\202\342\342\351\377\2\343\343\351"
+ "\377\377\377\377\377\202\344\344\352\377\202\345\345\353\377\202\346"
+ "\346\353\377\203\347\347\354\377\17\350\350\355\377\377\377\377\377\366"
+ "\366\370\377\351\351\356\377\352\352\356\377\377\377\377\377\353\353"
+ "\356\377\353\353\357\377\366\366\370\377\373\373\374\377\371\371\372"
+ "\377\377\377\377\377\356\356\360\377\356\356\361\377\377\377\377\377"
+ "\202\357\357\361\377\1\377\377\377\377\202\376\376\376\377\5\361\361"
+ "\363\377\362\362\363\377\361\361\362\377\360\360\362\377\360\360\361"
+ "\377\202\361\361\362\377\204\362\362\362\377\2\362\362\363\377\363\363"
+ "\363\377\206\362\362\363\377\202\363\363\363\377\2\363\363\364\377\363"
+ "\363\363\377\202\362\362\363\377\203\362\362\362\377\206\361\361\362"
+ "\377\14\361\361\362\375\361\361\362\370\361\361\362\357\361\361\362\343"
+ "\361\361\362\324\361\361\362\301\361\361\362\252\361\361\362\220\361"
+ "\361\362s\361\361\362R\361\361\362.\361\361\362\10\210\0\0\0\0\35\377"
+ "\377\377F\241\306\241\374\224\276\224\377x\265x\377O\235O\377\77\213"
+ "\77\377@\226@\3773\2023\3777\2167\377/z/\3774\2044\3771\2001\377W\220"
+ "W\377o\253o\377\243\317\243\377\275\307\275\377\262\267\263\377\307\307"
+ "\307\377\344\344\344\377\360\360\360\377\367\367\370\377\321\321\324"
+ "\377\263\263\266\377\205\205\211\377\\\\a\377TXZ\377ItN\3775\2265\377"
+ "\214\246\214\377\202\277\277\277\377\32\306\306\306\370\377\377\377\322"
+ "\377\377\377\326\377\377\377\331\377\377\377\335\377\377\377\340\377"
+ "\377\377\343\377\377\377\346\377\377\377\350\377\377\377\353\377\377"
+ "\377\355\377\377\377\357\377\377\377\361\377\377\377\363\377\377\377"
+ "\365\377\377\377\366\377\377\377\370\377\377\377\371\377\377\377\372"
+ "\374\374\375\373\366\366\370\375\360\360\364\376\353\353\360\376\346"
+ "\346\355\377\340\340\350\377\331\331\343\375\203\332\332\344\377\2\333"
+ "\333\344\377\333\333\345\377\202\334\334\345\377\1\300\300\306\377\203"
+ "\17\17\17\377\1\300\300\310\377\202\337\337\347\377\202\340\340\350\377"
+ "\202\341\341\350\377\202\342\342\351\377\2\305\305\312\377\343\343\352"
+ "\377\202\344\344\352\377\203\345\345\353\377\2\346\346\353\377\346\346"
+ "\354\377\202\347\347\354\377\202\350\350\355\377\202\351\351\355\377"
+ "\6>>\77\377\20\20\20\377\0\0\0\377//0\377\315\315\317\377\354\354\357"
+ "\377\203\355\355\360\377\202\356\356\361\377\202\357\357\361\377\4\320"
+ "\320\322\377\360\360\362\377\361\361\362\377\361\361\363\377\202\362"
+ "\362\363\377\2\363\363\363\377\361\361\362\377\202\360\360\361\377\4"
+ "\0\0\0\377\360\360\361\377\361\361\362\377\362\362\362\377\202\362\362"
+ "\363\377\2\363\363\364\377\363\363\363\377\207\362\362\363\377\1\363"
+ "\363\363\377\202\362\362\363\377\202\362\362\362\377\1\320\320\322\377"
+ "\203\361\361\362\377\1\360\360\361\377\204\361\361\362\377\14\361\361"
+ "\362\375\361\361\362\370\361\361\362\357\361\361\362\343\361\361\362"
+ "\324\361\361\362\301\361\361\362\252\361\361\362\220\361\361\362s\361"
+ "\361\362R\361\361\362.\361\361\362\10\210\0\0\0\0\21\351\362\351}\227"
+ "\300\227\377\223\275\223\377\\\234\\\377D\215D\377>\211>\377A\213A\377"
+ "[\232[\377Z\227Z\377X\224X\377B\202B\377,q,\377X\226X\377x\257x\377\271"
+ "\275\271\377\256\256\257\377\357\357\357\377\202\377\377\377\377\12\367"
+ "\367\370\377\350\350\352\377\325\325\330\377\300\300\304\377\250\250"
+ "\256\377\204\204\213\377\\\\a\377QQW\3776H:\377\220\265\220\377\202\377"
+ "\377\377\377\36\377\377\377\376\377\377\377\322\377\377\377\326\377\377"
+ "\377\331\377\377\377\335\377\377\377\340\377\377\377\343\377\377\377"
+ "\346\377\377\377\350\377\377\377\353\377\377\377\355\377\377\377\357"
+ "\377\377\377\361\377\377\377\363\377\377\377\365\377\377\377\366\377"
+ "\377\377\370\377\377\377\371\377\377\377\372\374\374\375\373\366\366"
+ "\370\375\360\360\365\376\353\353\361\376\346\346\355\377\341\341\351"
+ "\377\332\332\344\375\333\333\344\377\332\332\344\377\333\333\344\377"
+ "\333\333\345\377\202\334\334\345\377\10\335\335\346\377;;=\377iim\377"
+ "\375\375\375\377\207\207\207\377333\377\344\344\352\377\340\340\350\377"
+ "\202\341\341\350\377\202\342\342\351\377\5\343\343\351\377\343\343\352"
+ "\377\0\0\0\377\350\350\355\377\344\344\352\377\202\345\345\353\377\2"
+ "\346\346\353\377\346\346\354\377\202\347\347\354\377\202\350\350\355"
+ "\377\202\351\351\355\377\13\352\352\356\377NNO\377//0\377\372\372\373"
+ "\377\376\376\376\377fff\377222\377\357\357\362\377\355\355\360\377\356"
+ "\356\360\377\356\356\361\377\202\357\357\361\377\202\360\360\362\377"
+ "\2\0\0\0\377\363\363\365\377\202\362\362\363\377\10\363\363\363\377\363"
+ "\363\364\377\362\362\363\377\361\361\362\377\357\357\361\377\360\360"
+ "\362\377\0\0\0\377\377\377\377\377\203\361\361\362\377\202\362\362\363"
+ "\377\1\362\362\362\377\202\361\361\362\377\202\362\362\362\377\204\362"
+ "\362\363\377\202\362\362\362\377\202\361\361\362\377\3\0\0\0\377\360"
+ "\360\361\377\361\361\361\377\202\360\360\361\377\204\361\361\362\377"
+ "\14\361\361\362\375\361\361\362\370\361\361\362\357\361\361\362\343\361"
+ "\361\362\324\361\361\362\301\361\361\362\252\361\361\362\220\361\361"
+ "\362s\361\361\362R\361\361\362.\361\361\362\10\210\0\0\0\0\16\303\333"
+ "\303\310\226\277\226\377\222\275\222\377N\223N\377C\214C\377<\210<\377"
+ "Y\232Y\377\204\263\204\377\203\260\203\377\202\256\202\377L\210L\377"
+ "+o+\377[\230[\377\177\252\177\377\202\262\262\262\377)\372\372\372\377"
+ "\377\377\377\377\367\367\370\377\350\350\352\377\325\325\330\377\300"
+ "\300\304\377\250\250\256\377\216\216\226\377mmu\377RRV\377\\\\a\377Q"
+ "QW\377\15-\15\377\273\326\273\331\377\377\377\312\377\377\377\317\377"
+ "\377\377\322\377\377\377\326\377\377\377\331\377\377\377\335\377\377"
+ "\377\340\377\377\377\343\377\377\377\346\377\377\377\350\377\377\377"
+ "\353\377\377\377\355\377\377\377\357\377\377\377\361\377\377\377\363"
+ "\377\377\377\365\377\377\377\366\377\377\377\370\377\377\377\371\377"
+ "\377\377\372\374\374\375\373\366\366\371\375\361\361\365\376\353\353"
+ "\361\376\347\347\356\377\341\341\351\377\333\333\344\375\202\333\333"
+ "\345\377\202\334\334\345\377\202\335\335\346\377\11\336\336\346\377\0"
+ "\0\0\377\366\366\371\377\360\360\364\377\340\340\347\377\0\0\0\377\371"
+ "\371\372\377\341\341\350\377\0\0\0\377\202\342\342\351\377\10\0\0\0\377"
+ "\343\343\352\377jjm\377\0\0\0\377UUU\377\345\345\353\377\346\346\353"
+ "\377\346\346\354\377\202\347\347\354\377\1\350\350\354\377\202\350\350"
+ "\355\377\2\351\351\355\377\351\351\356\377\202\352\352\356\377\21\0\0"
+ "\0\377\306\306\310\377\373\373\374\377\354\354\357\377\355\355\360\377"
+ "\0\0\0\377\374\374\374\377\356\356\361\377\0\0\0\377\357\357\361\377"
+ "\360\360\362\377\0\0\0\377\361\361\362\377ppq\377\0\0\0\377UUU\377\362"
+ "\362\363\377\202\363\363\364\377\202\363\363\363\377\33\361\361\362\377"
+ "\360\360\362\377\360\360\361\377\0\0\0\377\377\377\377\377\0\0\0\377"
+ "QQQ\377\40\40\40\377\0\0\0\377qqq\377\362\362\362\377\0\0\0\377QQQ\377"
+ "\40\40\40\377\0\0\0\377qqq\377\362\362\362\377\0\0\0\377\357\357\361"
+ "\377\360\360\362\377\0\0\0\377\361\361\362\377ppq\377\0\0\0\377UUU\377"
+ "\362\362\363\377\360\360\361\377\205\357\357\360\377\14\357\357\360\375"
+ "\357\357\360\370\357\357\360\357\357\357\360\343\357\357\360\324\357"
+ "\357\360\301\357\357\360\252\357\357\360\220\357\357\360s\357\357\360"
+ "R\357\357\360.\357\357\360\10\207\0\0\0\0\17\377\377\377\31\261\317\261"
+ "\355\225\277\225\377\204\264\204\377H\220H\377A\213A\377:\207:\377b\237"
+ "b\377\204\262\204\377\203\260\203\377\202\255\202\377A\201A\377*n*\377"
+ "f\242f\377t\223t\377\202\262\262\262\377\15""000\377\253\253\253\377"
+ "\350\350\352\377\325\325\330\377\300\300\304\377\250\250\256\377\216"
+ "\216\226\377``g\377\32\32\34\377\33\33\34\377ffk\377\\\\a\377\6\27\6"
+ "\377\203\377\377\377\377\31\377\377\377\361\377\377\377\326\377\377\377"
+ "\331\377\377\377\335\377\377\377\340\377\377\377\343\377\377\377\346"
+ "\377\377\377\350\377\377\377\353\377\377\377\355\377\377\377\357\377"
+ "\377\377\361\377\377\377\363\377\377\377\365\377\377\377\366\377\377"
+ "\377\370\377\377\377\371\377\377\377\372\374\374\375\373\366\366\371"
+ "\375\361\361\365\376\354\354\361\376\350\350\356\377\342\342\352\377"
+ "\334\334\345\375\202\334\334\345\377\2\335\335\345\377\335\335\346\377"
+ "\202\336\336\346\377\3\336\336\347\377\0\0\0\377\377\377\377\377\202"
+ "\340\340\350\377\15\0\0\0\377\377\377\377\377\342\342\351\377\0\0\0\377"
+ "\377\377\377\377\343\343\352\377\0\0\0\377\377\377\377\377\345\345\353"
+ "\377\0\0\0\377\377\377\377\377\367\367\370\377\346\346\354\377\202\347"
+ "\347\354\377\202\350\350\355\377\2\351\351\355\377\351\351\356\377\202"
+ "\352\352\356\377\23\353\353\356\377\353\353\357\377\0\0\0\377\377\377"
+ "\377\377\361\361\363\377\355\355\360\377\356\356\360\377\0\0\0\377\377"
+ "\377\377\377\357\357\361\377\0\0\0\377\377\377\377\377\360\360\362\377"
+ "\0\0\0\377\377\377\377\377\362\362\363\377\0\0\0\377\377\377\377\377"
+ "\373\373\373\377\202\364\364\364\377\34\363\363\364\377\363\363\363\377"
+ "\361\361\362\377\360\360\361\377\361\361\362\377\0\0\0\377\377\377\377"
+ "\377\0\0\0\377\252\252\252\377\373\373\373\377\333\333\333\377\0\0\0"
+ "\377\370\370\371\377\0\0\0\377\252\252\252\377\373\373\373\377\333\333"
+ "\333\377\0\0\0\377\370\370\371\377\0\0\0\377\377\377\377\377\360\360"
+ "\362\377\0\0\0\377\377\377\377\377\362\362\363\377\0\0\0\377\377\377"
+ "\377\377\373\373\373\377\206\357\357\360\377\14\357\357\360\375\357\357"
+ "\360\370\357\357\360\357\357\357\360\343\357\357\360\324\357\357\360"
+ "\301\357\357\360\252\357\357\360\220\357\357\360s\357\357\360R\357\357"
+ "\360.\357\357\360\10\207\0\0\0\0\22\377\377\377F\240\305\240\374\224"
+ "\276\224\377v\254v\377F\216F\377\77\212\77\3778\2068\377p\247p\377\203"
+ "\261\203\377\202\257\202\377\201\254\201\377A\177A\377*m*\377e\241e\377"
+ "MsM\377\247\247\247\377\262\262\262\377CCC\377\202\0\0\0\377\3""223\377"
+ ",,.\377&&(\377\203\0\0\0\377\5==\77\377ppu\377``e\377\2\7\2\377\325\345"
+ "\325\377\202\377\377\377\377\31\377\377\377\372\377\377\377\326\377\377"
+ "\377\331\377\377\377\335\377\377\377\340\377\377\377\343\377\377\377"
+ "\346\377\377\377\350\377\377\377\353\377\377\377\355\377\377\377\357"
+ "\377\377\377\361\377\377\377\363\377\377\377\365\377\377\377\366\377"
+ "\377\377\370\377\377\377\371\377\377\377\372\374\374\375\373\366\366"
+ "\371\375\362\362\365\376\355\355\362\376\350\350\356\377\343\343\352"
+ "\377\335\335\345\375\203\335\335\346\377\2\336\336\346\377\336\336\347"
+ "\377\202\337\337\347\377\2\0\0\0\377\377\377\377\377\202\341\341\350"
+ "\377\13\0\0\0\377\377\377\377\377\343\343\351\377\0\0\0\377\377\377\377"
+ "\377\344\344\352\377\0\0\0\377\377\377\377\377\345\345\353\377\0\0\0"
+ "\377\377\377\377\377\202\347\347\354\377\202\350\350\355\377\202\351"
+ "\351\355\377\202\352\352\356\377\2\353\353\356\377\353\353\357\377\202"
+ "\354\354\357\377\25\20\20\20\377\314\314\314\377\355\355\360\377\356"
+ "\356\360\377\316\316\321\377\0\0\0\377\377\377\377\377\360\360\362\377"
+ "\0\0\0\377\377\377\377\377\361\361\363\377\0\0\0\377\377\377\377\377"
+ "\363\363\363\377\0\0\0\377\377\377\377\377\364\364\364\377\364\364\365"
+ "\377\365\365\365\377\364\364\364\377\363\363\364\377\202\361\361\362"
+ "\377\32\363\363\363\377\0\0\0\377\377\377\377\377\0\0\0\377\377\377\377"
+ "\377\366\366\366\377\361\361\362\377\0\0\0\377\377\377\377\377\0\0\0"
+ "\377\377\377\377\377\366\366\366\377\361\361\362\377\0\0\0\377\377\377"
+ "\377\377\0\0\0\377\377\377\377\377\361\361\363\377\0\0\0\377\377\377"
+ "\377\377\363\363\363\377\0\0\0\377\377\377\377\377\364\364\364\377\355"
+ "\355\357\377\356\356\357\377\204\357\357\360\377\14\357\357\360\375\357"
+ "\357\360\370\357\357\360\357\357\357\360\343\357\357\360\324\357\357"
+ "\360\301\357\357\360\252\357\357\360\220\357\357\360s\357\357\360R\357"
+ "\357\360.\357\357\360\10\207\0\0\0\0\37\351\362\351}\227\300\227\377"
+ "\223\275\223\377h\243h\377D\215D\377=\211=\3776\2056\377g\232g\377j\227"
+ "j\377i\225i\377g\222g\3771t1\377*l*\377d\241d\377j\245j\3779F9\377zz"
+ "z\377\262\262\262\377\221\221\221\377YYY\377,,,\377+++\377))*\377((("
+ "\377KKL\377rrt\377\203\203\206\377[[^\377\25\25\26\377\20=\20\377|\243"
+ "|\377\202\277\277\277\377\31\275\275\275\377\377\377\377\326\377\377"
+ "\377\331\377\377\377\335\377\377\377\340\377\377\377\343\377\377\377"
+ "\346\377\377\377\350\377\377\377\353\377\377\377\355\377\377\377\357"
+ "\377\377\377\361\377\377\377\363\377\377\377\365\377\377\377\366\377"
+ "\377\377\370\377\377\377\371\377\377\377\372\374\374\375\373\367\367"
+ "\371\375\362\362\365\376\355\355\362\376\350\350\356\377\344\344\353"
+ "\377\335\335\346\375\202\336\336\346\377\1\336\336\347\377\202\337\337"
+ "\347\377\21\340\340\347\377\340\340\350\377--.\377\210\210\210\377\342"
+ "\342\351\377yy|\377--/\377\377\377\377\377\343\343\352\377\0\0\0\377"
+ "\377\377\377\377\267\267\274\377\0\0\0\377\377\377\377\377\346\346\354"
+ "\377\0\0\0\377\377\377\377\377\202\350\350\355\377\202\351\351\355\377"
+ "\203\352\352\356\377\202\353\353\357\377\202\354\354\357\377\21\355\355"
+ "\360\377OOP\377UUU\377\361\361\364\377\357\357\361\377```\377AAA\377"
+ "\377\377\377\377\361\361\362\377\0\0\0\377\377\377\377\377\302\302\302"
+ "\377\0\0\0\377\377\377\377\377\363\363\364\377\0\0\0\377\377\377\377"
+ "\377\203\365\365\365\377\202\364\364\364\377\7\362\362\362\377\363\363"
+ "\363\377\364\364\364\377\0\0\0\377\377\377\377\377\0\0\0\377\377\377"
+ "\377\377\202\361\361\362\377\21\0\0\0\377\377\377\377\377\0\0\0\377\252"
+ "\252\252\377\373\373\373\377\333\333\333\377\0\0\0\377\370\370\371\377"
+ "\0\0\0\377\377\377\377\377\302\302\302\377\0\0\0\377\377\377\377\377"
+ "\363\363\364\377\0\0\0\377\377\377\377\377\365\365\365\377\206\355\355"
+ "\357\377\14\355\355\357\375\355\355\357\370\355\355\357\357\355\355\357"
+ "\343\355\355\357\324\355\355\357\301\355\355\357\252\355\355\357\220"
+ "\355\355\357s\355\355\357R\355\355\357.\355\355\357\10\207\0\0\0\0\37"
+ "\306\334\306\316\226\277\226\377\221\275\221\377Z\233Z\377B\214B\377"
+ ";\210;\3775\2045\377\204\263\204\377\203\260\203\377\202\256\202\377"
+ "\201\253\201\377+o+\377-n-\377b\240b\377q\261q\377v\267v\377<a<\377\34"
+ "0\34\377\33""0\33\377\31/\31\377\30/\30\377\27.\27\377\25.\25\377\24"
+ ".\24\377\22-\22\377\21-\21\377\17,\17\377\16+\16\377\36j\36\377)\235"
+ ")\377q\250q\377\203\377\377\377\377\30\377\377\377\350\377\377\377\331"
+ "\377\377\377\335\377\377\377\340\377\377\377\343\377\377\377\346\377"
+ "\377\377\350\377\377\377\353\377\377\377\355\377\377\377\357\377\377"
+ "\377\361\377\377\377\363\377\377\377\365\377\377\377\366\377\377\377"
+ "\370\377\377\377\371\377\377\377\372\374\374\375\373\367\367\371\375"
+ "\362\362\365\376\356\356\362\376\351\351\357\377\345\345\353\377\336"
+ "\336\346\375\203\337\337\347\377\1\340\340\347\377\202\340\340\350\377"
+ "\23\341\341\350\377\303\303\312\377!!!\377\20\20\20\377\17\17\20\377"
+ "\320\320\323\377\372\372\373\377\344\344\352\377LLN\377\0\0\0\377==\77"
+ "\377\0\0\0\377\377\377\377\377\347\347\354\377\0\0\0\377\21\21\21\377"
+ "\350\350\355\377\351\351\355\377\351\351\356\377\202\352\352\356\377"
+ "\202\353\353\357\377\202\354\354\357\377\202\355\355\360\377\21\356\356"
+ "\360\377\316\316\321\377222\377\21\21\21\377\0\0\0\377000\377\330\330"
+ "\331\377\373\373\374\377\361\361\363\377QQQ\377\0\0\0\377AAA\377\0\0"
+ "\0\377\377\377\377\377\364\364\365\377!!!\377\0\0\0\377\204\365\365\365"
+ "\377\2\364\364\364\377\363\363\364\377\202\363\363\363\377\31\0\0\0\377"
+ "\377\377\377\377\0\0\0\377\377\377\377\377\361\361\361\377\360\360\361"
+ "\377\0\0\0\377\377\377\377\377\0\0\0\377QQQ\377\40\40\40\377\0\0\0\377"
+ "qqq\377\362\362\362\377QQQ\377\0\0\0\377AAA\377\0\0\0\377\377\377\377"
+ "\377\364\364\365\377!!!\377\0\0\0\377\365\365\365\377\355\355\357\377"
+ "\355\355\356\377\204\355\355\357\377\14\355\355\357\375\355\355\357\370"
+ "\355\355\357\357\355\355\357\343\355\355\357\324\355\355\357\301\355"
+ "\355\357\252\355\355\357\220\355\355\357s\355\355\357R\355\355\357.\355"
+ "\355\357\10\206\0\0\0\0\40\377\377\377%\260\317\260\355\225\276\225\377"
+ "\220\274\220\377G\217G\377@\213@\377:\207:\377C\214C\377\203\262\203"
+ "\377\203\257\203\377\202\255\202\377\200\252\200\377*n*\3778x8\377a\237"
+ "a\377o\260o\377|\302|\377\220\315\220\377\216\277\216\377s\247s\377\207"
+ "\276\207\377k\245k\377\177\274\177\377|\273|\377x\272x\377t\271t\377"
+ "q\267q\377U\236U\377i\264i\377/\251/\377)\245)\377E\216E\377\203\377"
+ "\377\377\377\30\377\377\377\365\377\377\377\331\377\377\377\335\377\377"
+ "\377\340\377\377\377\343\377\377\377\346\377\377\377\350\377\377\377"
+ "\353\377\377\377\355\377\377\377\357\377\377\377\361\377\377\377\363"
+ "\377\377\377\365\377\377\377\366\377\377\377\370\377\377\377\371\377"
+ "\377\377\372\374\374\375\373\367\367\371\375\362\362\366\376\356\356"
+ "\362\376\352\352\357\377\346\346\354\377\337\337\347\375\202\337\337"
+ "\347\377\202\340\340\350\377\202\341\341\350\377\202\342\342\351\377"
+ "\2\347\347\354\377\373\373\374\377\202\375\375\376\377\7\350\350\356"
+ "\377\345\345\353\377\346\346\353\377\367\367\370\377\377\377\377\377"
+ "\371\371\372\377\377\377\377\377\202\350\350\355\377\2\377\377\377\377"
+ "\376\376\376\377\202\352\352\356\377\2\353\353\356\377\353\353\357\377"
+ "\202\354\354\357\377\202\355\355\360\377\1\356\356\360\377\202\356\356"
+ "\361\377\15\357\357\361\377\361\361\363\377\374\374\374\377\376\376\376"
+ "\377\377\377\377\377\374\374\375\377\364\364\365\377\362\362\363\377"
+ "\363\363\364\377\373\373\373\377\377\377\377\377\374\374\374\377\377"
+ "\377\377\377\202\365\365\365\377\2\376\376\376\377\377\377\377\377\202"
+ "\365\365\365\377\1\364\364\365\377\203\364\364\364\377\5\363\363\364"
+ "\377\363\363\363\377\377\377\377\377\363\363\363\377\377\377\377\377"
+ "\202\360\360\361\377\3\357\357\361\377\377\377\377\377\0\0\0\377\202"
+ "\360\360\361\377\202\361\361\361\377\6\362\362\363\377\363\363\364\377"
+ "\373\373\373\377\377\377\377\377\374\374\374\377\377\377\377\377\202"
+ "\365\365\365\377\4\376\376\376\377\377\377\377\377\354\354\355\377\353"
+ "\353\355\377\204\355\355\357\377\14\355\355\357\375\355\355\357\370\355"
+ "\355\357\357\355\355\357\343\355\355\357\324\355\355\357\301\355\355"
+ "\357\252\355\355\357\220\355\355\357s\355\355\357R\355\355\357.\355\355"
+ "\357\10\206\0\0\0\0!\377\377\377R\240\305\240\374\223\276\223\377\202"
+ "\263\202\377E\216E\377>\212>\3778\2068\377L\221L\377\203\261\203\377"
+ "\202\257\202\377\201\254\201\377k\233k\377*m*\3777w7\377`\236`\377n\260"
+ "n\377{\302{\377\217\314\217\377\215\277\215\377r\246r\377\206\275\206"
+ "\377j\244j\377\177\273\177\377{\272{\377w\271w\377s\270s\377p\267p\377"
+ "T\235T\377h\263h\377A\260A\377(\244(\377\33~\33\377\340\354\340\376\202"
+ "\377\377\377\374\30\377\377\377\367\377\377\377\331\377\377\377\335\377"
+ "\377\377\340\377\377\377\343\377\377\377\346\377\377\377\350\377\377"
+ "\377\353\377\377\377\355\377\377\377\357\377\377\377\361\377\377\377"
+ "\363\377\377\377\365\377\377\377\366\377\377\377\370\377\377\377\371"
+ "\377\377\377\372\374\374\375\373\367\367\371\375\363\363\366\376\356"
+ "\356\363\376\352\352\357\377\346\346\354\377\340\340\347\375\202\340"
+ "\340\350\377\202\341\341\350\377\202\342\342\351\377\1\343\343\351\377"
+ "\202\343\343\352\377\202\344\344\352\377\202\345\345\353\377\2\346\346"
+ "\353\377\346\346\354\377\202\347\347\354\377\202\350\350\355\377\202"
+ "\351\351\355\377\202\352\352\356\377\1\353\353\356\377\202\353\353\357"
+ "\377\2\354\354\357\377\354\354\360\377\202\355\355\360\377\2\356\356"
+ "\360\377\356\356\361\377\202\357\357\361\377\202\360\360\362\377\2\361"
+ "\361\362\377\361\361\363\377\202\362\362\363\377\2\363\363\363\377\363"
+ "\363\364\377\202\364\364\364\377\1\364\364\365\377\207\365\365\365\377"
+ "\203\364\364\364\377\202\363\363\364\377\202\363\363\363\377\203\362"
+ "\362\363\377\6\362\362\362\377\361\361\362\377\361\361\361\377\361\361"
+ "\362\377\0\0\0\377\360\360\361\377\203\361\361\361\377\6\360\360\361"
+ "\377\361\361\362\377\360\360\361\377\355\355\356\377\354\354\355\377"
+ "\352\352\354\377\202\351\351\353\377\210\353\353\355\377\14\353\353\355"
+ "\375\353\353\355\370\353\353\355\357\353\353\355\343\353\353\355\324"
+ "\353\353\355\301\353\353\355\252\353\353\355\220\353\353\355s\353\353"
+ "\355R\353\353\355.\353\353\355\10\206\0\0\0\0;\314\340\314\207\227\300"
+ "\227\377\222\275\222\377p\250p\377C\215C\377<\211<\3776\2056\377G\215"
+ "G\377Z\226Z\377X\223X\377W\220W\377K\205K\377)l)\3776v6\377_\236_\377"
+ "m\257m\377y\302y\377\215\314\215\377\214\277\214\377q\246q\377\205\275"
+ "\205\377i\244i\377}\273}\377z\272z\377v\271v\377r\270r\377o\267o\377"
+ "S\235S\377g\262g\377;\237;\377&\243&\377\33\206\33\3777\2067\374\377"
+ "\377\377\317\377\377\377\322\377\377\377\326\377\377\377\331\377\377"
+ "\377\335\377\377\377\340\377\377\377\343\377\377\377\346\377\377\377"
+ "\350\377\377\377\353\377\377\377\355\377\377\377\357\377\377\377\361"
+ "\377\377\377\363\377\377\377\365\377\377\377\366\377\377\377\370\377"
+ "\377\377\371\377\377\377\372\374\374\375\373\367\367\371\375\363\363"
+ "\366\376\357\357\363\376\353\353\357\377\347\347\355\377\341\341\350"
+ "\375\202\341\341\350\377\1\341\341\351\377\202\342\342\351\377\2\343"
+ "\343\351\377\343\343\352\377\202\344\344\352\377\202\345\345\353\377"
+ "\2\346\346\353\377\346\346\354\377\202\347\347\354\377\2\350\350\354"
+ "\377\350\350\355\377\202\351\351\355\377\1\351\351\356\377\202\352\352"
+ "\356\377\202\353\353\357\377\202\354\354\357\377\202\355\355\360\377"
+ "\2\356\356\360\377\356\356\361\377\202\357\357\361\377\202\360\360\362"
+ "\377\202\361\361\362\377\1\361\361\363\377\202\362\362\363\377\202\363"
+ "\363\364\377\2\364\364\364\377\364\364\365\377\207\365\365\365\377\1"
+ "\364\364\365\377\204\364\364\364\377\203\363\363\363\377\202\362\362"
+ "\363\377\7\362\362\362\377\362\362\363\377\362\362\362\377\361\361\362"
+ "\377\361\361\361\377\361\361\362\377\363\363\364\377\205\360\360\361"
+ "\377\5\357\357\360\377\356\356\360\377\355\355\356\377\353\353\355\377"
+ "\353\353\356\377\202\352\352\354\377\202\351\351\353\377\206\353\353"
+ "\355\377\14\353\353\355\375\353\353\355\370\353\353\355\357\353\353\355"
+ "\343\353\353\355\324\353\353\355\301\353\353\355\252\353\353\355\220"
+ "\353\353\355s\353\353\355R\353\353\355.\353\353\355\10\206\0\0\0\0;\316"
+ "\341\316\306\225\277\225\377\221\274\221\377j\222j\377c\201c\377PoP\377"
+ "]}]\377[|[\377ZzZ\377XxX\377GgG\377UuU\377TsT\377<_<\377X\223X\377n\261"
+ "n\377w\301w\377\203\307\203\377\201\277\201\377m\255m\377x\274x\377d"
+ "\253d\377o\272o\377k\271k\377f\270f\377b\266b\377]\264]\377I\242I\377"
+ "`\257`\3779\2319\377$\242$\377\33\216\33\377\21o\21\377\377\377\377\317"
+ "\377\377\377\322\377\377\377\326\377\377\377\331\377\377\377\335\377"
+ "\377\377\340\377\377\377\343\377\377\377\346\377\377\377\350\377\377"
+ "\377\353\377\377\377\355\377\377\377\357\377\377\377\361\377\377\377"
+ "\363\377\377\377\365\377\377\377\366\377\377\377\370\377\377\377\371"
+ "\377\377\377\372\374\374\375\373\370\370\371\375\363\363\366\376\357"
+ "\357\363\376\353\353\360\377\350\350\355\377\341\341\351\375\203\342"
+ "\342\351\377\2\343\343\351\377\343\343\352\377\202\344\344\352\377\202"
+ "\345\345\353\377\202\346\346\353\377\11\255\255\261\377HHI\377\16\16"
+ "\16\377\35\35\35\377---\377<<<\377||}\377\306\306\311\377\352\352\356"
+ "\377\202\353\353\357\377\202\354\354\357\377\202\355\355\360\377\2\356"
+ "\356\360\377\356\356\361\377\203\357\357\361\377\202\360\360\362\377"
+ "\2\361\361\362\377\361\361\363\377\202\362\362\363\377\11\363\363\364"
+ "\377\266\266\267\377LLL\377\16\16\16\377\35\35\35\377---\377<<<\377\200"
+ "\200\200\377\316\316\316\377\202\365\365\365\377\1\364\364\365\377\205"
+ "\364\364\364\377\2\363\363\364\377\363\363\363\377\202\362\362\363\377"
+ "\204\362\362\362\377\203\361\361\362\377\16\267\267\270\377XXY\377\40"
+ "\40\40\377,,,\377888\377FFF\377\203\203\204\377\312\312\313\377\356\356"
+ "\357\377\355\355\357\377\355\355\356\377\353\353\355\377\352\352\354"
+ "\377\352\352\353\377\204\351\351\353\377\204\353\353\355\377\14\353\353"
+ "\355\375\353\353\355\370\353\353\355\357\353\353\355\343\353\353\355"
+ "\324\353\353\355\301\353\353\355\252\353\353\355\220\353\353\355s\353"
+ "\353\355R\353\353\355.\353\353\355\10\205\0\0\0\0<\377\377\377%\265\322"
+ "\265\350\224\276\224\377\220\274\220\377\256\267\262\377ccw\377XXl\377"
+ "MMa\377BBV\37799L\37711C\377)):\377!!0\377\31\31'\377\12\12\20\377Eu"
+ "E\377s\270s\377v\301v\377\213\313\213\377\212\277\212\377o\246o\377\203"
+ "\275\203\377g\243g\377{\273{\377x\272x\377t\271t\377p\267p\377l\266l"
+ "\377Q\234Q\377e\261e\3775\2165\377#\241#\377\33\225\33\377\20n\20\377"
+ "\271\324\271\337\377\377\377\322\377\377\377\326\377\377\377\331\377"
+ "\377\377\335\377\377\377\340\377\377\377\343\377\377\377\346\377\377"
+ "\377\350\377\377\377\353\377\377\377\355\377\377\377\357\377\377\377"
+ "\361\377\377\377\363\377\377\377\365\377\377\377\366\377\377\377\370"
+ "\377\377\377\371\377\377\377\372\374\374\375\373\370\370\372\375\363"
+ "\363\366\376\360\360\363\376\354\354\360\377\350\350\356\377\342\342"
+ "\351\375\202\343\343\351\377\1\343\343\352\377\202\344\344\352\377\203"
+ "\345\345\353\377\6\346\346\353\377\346\346\354\377eeg\377\0\0\0\377\5"
+ "\5\5\377\2\2\2\377\202\0\0\0\377\4\4\4\4\377\"\"\"\377]]]\377\244\244"
+ "\246\377\202\354\354\357\377\203\355\355\360\377\202\356\356\361\377"
+ "\202\357\357\361\377\202\360\360\362\377\2\361\361\362\377\361\361\363"
+ "\377\202\362\362\363\377\202\363\363\364\377\4jjj\377\0\0\0\377\5\5\5"
+ "\377\2\2\2\377\202\0\0\0\377\4\4\4\4\377\"\"\"\377]]]\377\247\247\250"
+ "\377\205\364\364\364\377\202\363\363\364\377\202\363\363\363\377\203"
+ "\362\362\363\377\1\362\362\362\377\203\361\361\362\377\5\360\360\361"
+ "\377hhi\377\0\0\0\377\5\5\5\377\2\2\2\377\202\0\0\0\377\7\4\4\4\377\""
+ "\"\"\377]]]\377\245\245\245\377\355\355\356\377\354\354\356\377\354\354"
+ "\355\377\202\352\352\354\377\2\351\351\353\377\350\350\353\377\206\351"
+ "\351\353\377\14\351\351\353\375\351\351\353\370\351\351\353\357\351\351"
+ "\353\343\351\351\353\324\351\351\353\301\351\351\353\252\351\351\353"
+ "\220\351\351\353s\351\351\353R\351\351\353.\351\351\353\10\205\0\0\0"
+ "\0>\377\377\377R\243\307\243\371\223\276\223\377\217\273\217\377\261"
+ "\261\267\377nn\202\377ccw\377XXl\377MMa\377BBV\37799L\37711C\377)):\377"
+ "!!0\377\16\16\25\377DuD\377q\270q\377t\300t\377\203\277\203\377\212\276"
+ "\212\377n\245n\377\202\274\202\377f\243f\377z\272z\377w\271w\377s\270"
+ "s\377o\267o\377l\265l\377P\233P\377d\260d\377H\226H\377!\240!\377\33"
+ "\234\33\377\17m\17\377r\251r\360\377\377\377\322\377\377\377\326\377"
+ "\377\377\331\377\377\377\335\377\377\377\340\377\377\377\343\377\377"
+ "\377\346\377\377\377\350\377\377\377\353\377\377\377\355\377\377\377"
+ "\357\377\377\377\361\377\377\377\363\377\377\377\365\377\377\377\366"
+ "\377\377\377\370\377\377\377\371\377\377\377\372\375\375\375\373\370"
+ "\370\372\375\364\364\366\376\360\360\364\376\354\354\361\377\351\351"
+ "\356\377\343\343\352\375\344\344\352\377\343\343\352\377\202\344\344"
+ "\352\377\202\345\345\353\377\10\346\346\353\377\346\346\354\377\347\347"
+ "\354\377VVX\377\0\0\0\377\11\11\11\377@@@\377xxx\377\202\177\177\177"
+ "\377\5xxx\377@@@\377\7\7\7\377ooo\377\275\275\276\377\202\355\355\360"
+ "\377\2\356\356\360\377\356\356\361\377\202\357\357\361\377\202\360\360"
+ "\362\377\2\361\361\362\377\361\361\363\377\202\362\362\363\377\1\363"
+ "\363\363\377\202\363\363\364\377\5[[[\377\0\0\0\377\1\13\1\377\0M\0\377"
+ "\0\220\0\377\202\0\231\0\377\5\0\220\0\377\0M\0\377\7\7\7\377ooo\377"
+ "\300\300\300\377\202\364\364\364\377\202\363\363\364\377\203\363\363"
+ "\363\377\202\362\362\363\377\1\362\362\362\377\203\361\361\362\377\7"
+ "\361\361\361\377\360\360\361\377YYZ\377\0\0\0\377\16\16\1\377ee\0\377"
+ "\275\275\0\377\202\311\311\0\377\5\275\275\0\377ee\0\377\7\7\7\377oo"
+ "o\377\275\275\275\377\203\353\353\355\377\202\351\351\353\377\3\350\350"
+ "\352\377\351\351\353\377\350\350\353\377\204\351\351\353\377\14\351\351"
+ "\353\375\351\351\353\370\351\351\353\357\351\351\353\343\351\351\353"
+ "\324\351\351\353\301\351\351\353\252\351\351\353\220\351\351\353s\351"
+ "\351\353R\351\351\353.\351\351\353\10\205\0\0\0\0<\377\377\377y\226\277"
+ "\226\377\222\275\222\377\222\273\222\377\231\266\231\377\245\275\245"
+ "\377\223\254\223\377\241\273\241\377\237\271\237\377\235\270\235\377"
+ "\233\267\233\377\211\245\211\377\226\264\226\377\224\263\224\377d\214"
+ "d\377U\221U\377p\267p\377s\300s\377~\271~\377\211\276\211\377l\245l\377"
+ "\201\274\201\377e\243e\377y\272y\377v\271v\377r\270r\377n\267n\377j\265"
+ "j\377O\232O\377c\260c\377G\226G\377.\245.\377\32\233\32\377\20x\20\377"
+ "H\220H\370\377\377\377\322\377\377\377\326\377\377\377\331\377\377\377"
+ "\335\377\377\377\340\377\377\377\343\377\377\377\346\377\377\377\350"
+ "\377\377\377\353\377\377\377\355\377\377\377\357\377\377\377\361\377"
+ "\377\377\363\377\377\377\365\377\377\377\366\377\377\377\370\377\377"
+ "\377\371\377\377\377\372\375\375\375\373\370\370\372\375\364\364\367"
+ "\376\360\360\364\376\355\355\361\377\351\351\357\377\344\344\352\375"
+ "\202\344\344\352\377\202\345\345\353\377\2\346\346\353\377\346\346\354"
+ "\377\202\347\347\354\377\17\256\256\261\377\0\0\0\377\11\11\11\377hh"
+ "h\377\177\177\177\377\262\276\257\377\310\332\305\377\275\314\272\377"
+ "\252\264\250\377\225\232\224\377hhh\377\11\11\11\377\223\223\223\377"
+ "\340\340\342\377\356\356\361\377\202\357\357\361\377\202\360\360\362"
+ "\377\202\361\361\362\377\1\361\361\363\377\202\362\362\363\377\202\363"
+ "\363\364\377\20\364\364\364\377\267\267\270\377\0\0\0\377\1\13\1\377"
+ "\0}\0\377\0\231\0\377q\313o\377\244\342\240\377\213\327\210\377`\304"
+ "^\3771\2570\377\0}\0\377\11\11\11\377\223\223\223\377\345\345\345\377"
+ "\363\363\364\377\203\363\363\363\377\202\362\362\363\377\202\362\362"
+ "\362\377\202\361\361\362\377\1\361\361\361\377\202\360\360\361\377\16"
+ "\264\264\265\377\0\0\0\377\16\16\1\377\244\244\0\377\311\311\0\377\327"
+ "\344o\377\336\357\240\377\333\352\210\377\325\340^\377\317\3240\377\244"
+ "\244\0\377\11\11\11\377\223\223\223\377\336\336\337\377\202\352\352\354"
+ "\377\3\351\351\354\377\351\351\353\377\350\350\353\377\202\350\350\352"
+ "\377\204\351\351\353\377\14\351\351\353\375\351\351\353\370\351\351\353"
+ "\357\351\351\353\343\351\351\353\324\351\351\353\301\351\351\353\252"
+ "\351\351\353\220\351\351\353s\351\351\353R\351\351\353.\351\351\353\10"
+ "\203\0\0\0\0>\347\347\354\357\351\351\356\357\350\352\353\374\205\220"
+ "\212\377\276\311\300\377\330\343\332\377\316\320\320\377\346\346\350"
+ "\377\326\326\330\377\347\347\351\377\350\350\351\377\350\350\352\377"
+ "\351\351\353\377\332\332\333\377\352\352\353\377\353\353\354\377\327"
+ "\337\330\377\323\343\324\377\331\353\332\377\332\356\333\377\340\354"
+ "\340\377\344\357\344\377\333\347\333\377\342\356\342\377\331\346\331"
+ "\377\340\355\340\377\337\354\337\377\335\353\336\377\334\352\334\377"
+ "\332\351\333\377\321\340\322\377\327\347\330\377\316\335\317\377\307"
+ "\343\310\377\275\336\277\377\272\324\274\377\305\327\310\377\362\362"
+ "\365\374\361\361\364\374\360\360\363\375\360\360\363\374\360\360\364"
+ "\363\372\372\373\347\377\377\377\346\377\377\377\350\377\377\377\353"
+ "\377\377\377\355\377\377\377\357\377\377\377\361\377\377\377\363\377"
+ "\377\377\365\377\377\377\366\377\377\377\370\377\377\377\371\377\377"
+ "\377\372\375\375\375\373\370\370\372\375\365\365\367\376\361\361\364"
+ "\376\356\356\361\377\352\352\357\377\345\345\353\375\202\345\345\353"
+ "\377\202\346\346\353\377\203\347\347\354\377\6\350\350\355\377HHI\377"
+ "\5\5\5\377@@@\377\177\177\177\377\271\307\266\377\202\346\377\341\377"
+ "\7\330\356\324\377\302\323\277\377\254\267\252\377\226\233\225\377@@"
+ "@\377DDD\377\323\323\324\377\202\357\357\361\377\202\360\360\362\377"
+ "\2\361\361\362\377\361\361\363\377\202\362\362\363\377\202\363\363\364"
+ "\377\202\364\364\364\377\6\365\365\365\377LLL\377\5\5\5\377\0M\0\377"
+ "\0\231\0\377\202\323\177\377\202\346\377\341\377\7\307\361\303\377\226"
+ "\334\223\377d\306b\3772\2571\377\0M\0\377DDD\377\325\325\325\377\202"
+ "\363\363\363\377\202\362\362\363\377\202\362\362\362\377\203\361\361"
+ "\362\377\203\360\360\361\377\6\357\357\360\377JJJ\377\5\5\5\377ee\0\377"
+ "\311\311\0\377\331\347\177\377\202\346\377\341\377\10\342\370\303\377"
+ "\334\354\223\377\326\341b\377\317\3251\377ee\0\377DDD\377\322\322\322"
+ "\377\351\351\354\377\202\351\351\353\377\3\350\350\353\377\350\350\352"
+ "\377\347\347\352\377\205\347\347\351\377\14\347\347\351\375\347\347\351"
+ "\370\347\347\351\357\347\347\351\343\347\347\351\324\347\347\351\301"
+ "\347\347\351\252\347\347\351\220\347\347\351s\347\347\351R\347\347\351"
+ ".\347\347\351\10\203\0\0\0\0>\353\353\357\377\303\303\321\377\313\313"
+ "\327\377\205\205\212\377\253\253\265\377\270\270\303\377\323\323\336"
+ "\377\331\331\343\377\333\333\344\377\335\335\345\377\337\337\347\377"
+ "\341\341\350\377\343\343\351\377\345\345\352\377\347\347\354\377\351"
+ "\351\355\377\353\353\356\377\355\355\360\377\357\357\361\377\361\361"
+ "\362\377\363\363\363\377\364\364\365\377\365\365\365\377\364\364\364"
+ "\377\363\363\364\377\363\363\363\377\361\361\362\377\360\360\361\377"
+ "\357\357\360\377\355\355\356\377\353\353\355\377\351\351\354\377\347"
+ "\347\352\377\345\345\350\377\343\343\346\377\341\341\345\377\336\336"
+ "\343\377\334\334\341\377\331\331\337\377\327\327\334\377\326\326\335"
+ "\377\340\340\346\377\345\345\353\377\341\341\347\375\342\342\351\366"
+ "\377\377\377\353\377\377\377\355\377\377\377\357\377\377\377\361\377"
+ "\377\377\363\377\377\377\365\377\377\377\366\377\377\377\370\377\377"
+ "\377\371\377\377\377\372\375\375\375\373\371\371\372\375\365\365\367"
+ "\376\361\361\364\376\356\356\362\377\353\353\357\377\345\345\353\375"
+ "\202\346\346\353\377\1\346\346\354\377\202\347\347\354\377\202\350\350"
+ "\355\377\17\351\351\355\377\16\16\16\377\2\2\2\377xxx\377\235\244\233"
+ "\377\310\332\305\377\342\372\335\377\344\375\337\377\331\357\325\377"
+ "\310\332\305\377\265\302\262\377\241\251\237\377\204\207\203\377\14\14"
+ "\14\377\326\326\326\377\202\360\360\362\377\2\361\361\362\377\361\361"
+ "\363\377\202\362\362\363\377\2\363\363\363\377\363\363\364\377\202\364"
+ "\364\364\377\203\365\365\365\377\17\16\16\16\377\2\2\2\377\0\220\0\377"
+ "B\266A\377\244\342\240\377\335\373\330\377\342\375\335\377\311\362\305"
+ "\377\244\342\240\377y\317v\377K\272I\377\32\233\31\377\14\14\14\377\326"
+ "\326\326\377\363\363\363\377\202\362\362\363\377\1\362\362\362\377\203"
+ "\361\361\362\377\1\361\361\361\377\203\360\360\361\377\202\357\357\360"
+ "\377\23\16\16\16\377\2\2\2\377\275\275\0\377\321\331A\377\336\357\240"
+ "\377\345\375\330\377\345\376\335\377\342\370\305\377\336\357\240\377"
+ "\330\345v\377\322\333I\377\301\304\31\377\14\14\14\377\326\326\326\377"
+ "\351\351\353\377\350\350\353\377\350\350\352\377\347\347\352\377\347"
+ "\347\351\377\202\346\346\351\377\204\347\347\351\377\14\347\347\351\375"
+ "\347\347\351\370\347\347\351\357\347\347\351\343\347\347\351\324\347"
+ "\347\351\301\347\347\351\252\347\347\351\220\347\347\351s\347\347\351"
+ "R\347\347\351.\347\347\351\10\203\0\0\0\0\24\357\357\363\377\310\310"
+ "\325\377\322\322\334\377\214\214\217\377\255\255\267\377\265\265\276"
+ "\377\277\277\307\377\324\324\335\377\200\200\205\377``b\377ffh\377\210"
+ "\210\213\377\226\226\231\377\227\227\232\377\230\230\233\377\354\354"
+ "\357\377\211\211\213\377eee\377kkk\377\221\221\221\377\203\237\237\237"
+ "\377'\363\363\363\377\214\214\214\377eee\377jjj\377\215\215\216\377\231"
+ "\231\233\377\230\230\232\377\227\227\231\377\346\346\351\377\204\204"
+ "\206\377aab\377eef\377\204\204\207\377\216\216\221\377\214\214\220\377"
+ "\212\212\216\377\322\322\330\377\317\317\326\377\314\314\323\377\312"
+ "\312\322\377\326\326\335\377\302\302\320\377\377\377\377\353\377\377"
+ "\377\355\377\377\377\357\377\377\377\361\377\377\377\363\377\377\377"
+ "\365\377\377\377\366\377\377\377\370\377\377\377\371\377\377\377\372"
+ "\375\375\375\373\371\371\372\375\365\365\367\376\362\362\365\376\356"
+ "\356\362\377\353\353\357\377\346\346\354\376\203\347\347\354\377\202"
+ "\350\350\355\377\202\351\351\355\377\21\352\352\356\377\35\35\35\377"
+ "\0\0\0\377\177\177\177\377\244\255\242\377\302\323\277\377\323\350\317"
+ "\377\327\354\322\377\321\344\315\377\305\326\301\377\265\302\263\377"
+ "\244\255\242\377\221\225\220\377\0\0\0\377\345\345\345\377\361\361\362"
+ "\377\361\361\363\377\202\362\362\363\377\1\363\363\363\377\202\363\363"
+ "\364\377\2\364\364\364\377\364\364\365\377\204\365\365\365\377\20\35"
+ "\35\35\377\0\0\0\377\0\231\0\377R\275P\377\226\334\223\377\274\354\270"
+ "\377\304\360\300\377\266\352\262\377\233\336\230\377y\317v\377R\275P"
+ "\377(\253'\377\0\0\0\377\345\345\345\377\362\362\363\377\362\362\362"
+ "\377\203\361\361\362\377\1\361\361\361\377\203\360\360\361\377\203\357"
+ "\357\360\377\20\356\356\357\377\35\35\35\377\0\0\0\377\311\311\0\377"
+ "\323\334P\377\334\354\223\377\341\365\270\377\342\367\300\377\340\364"
+ "\262\377\335\355\230\377\330\345v\377\323\334P\377\316\322'\377\0\0\0"
+ "\377\345\345\345\377\350\350\352\377\202\347\347\352\377\202\346\346"
+ "\351\377\202\345\345\350\377\204\347\347\351\377\14\347\347\351\375\347"
+ "\347\351\370\347\347\351\357\347\347\351\343\347\347\351\324\347\347"
+ "\351\301\347\347\351\252\347\347\351\220\347\347\351s\347\347\351R\347"
+ "\347\351.\347\347\351\10\203\0\0\0\0>\363\363\366\377\331\331\341\377"
+ "\342\342\351\377\222\222\224\377\260\260\270\377\270\270\300\377\300"
+ "\300\310\377\310\310\317\377]]_\377\256\256\260\377\276\276\300\377u"
+ "uw\377\254\254\257\377\256\256\261\377\257\257\261\377\357\357\361\377"
+ "eee\377\263\263\263\377\302\302\303\377yyy\377\264\264\264\377\263\263"
+ "\264\377\263\263\263\377\361\361\362\377dde\377\261\261\261\377\300\300"
+ "\300\377vvw\377\253\253\255\377\252\252\254\377\250\250\253\377\342\342"
+ "\346\377``a\377\254\254\255\377\273\273\274\377qqr\377\235\235\242\377"
+ "\233\233\240\377\231\231\236\377\314\314\324\377\311\311\321\377\306"
+ "\306\317\377\303\303\314\377\277\277\311\377\224\224\236\377\377\377"
+ "\377\353\377\377\377\355\377\377\377\357\377\377\377\361\377\377\377"
+ "\363\377\377\377\365\377\377\377\366\377\377\377\370\377\377\377\371"
+ "\377\377\377\372\375\375\375\373\371\371\372\375\365\365\370\376\362"
+ "\362\365\376\357\357\363\377\354\354\360\377\347\347\354\376\202\350"
+ "\350\354\377\202\350\350\355\377\2\351\351\355\377\351\351\356\377\202"
+ "\352\352\356\377\17---\377\0\0\0\377\177\177\177\377\240\250\236\377"
+ "\267\305\264\377\304\325\301\377\310\332\305\377\305\326\302\377\274"
+ "\313\271\377\260\274\256\377\241\252\240\377\221\225\220\377\0\0\0\377"
+ "\365\365\365\377\361\361\363\377\202\362\362\363\377\202\363\363\364"
+ "\377\2\364\364\364\377\364\364\365\377\206\365\365\365\377\17---\377"
+ "\0\0\0\377\0\231\0\377I\271G\377}\320z\377\233\336\227\377\244\342\240"
+ "\377\234\336\231\377\211\326\206\377n\312k\377M\273K\377(\253'\377\0"
+ "\0\0\377\365\365\365\377\362\362\362\377\202\361\361\362\377\1\361\361"
+ "\361\377\203\360\360\361\377\203\357\357\360\377\1\356\356\360\377\202"
+ "\356\356\357\377\22---\377\0\0\0\377\311\311\0\377\322\332G\377\331\346"
+ "z\377\334\355\227\377\336\357\240\377\335\356\231\377\332\351\206\377"
+ "\327\343k\377\323\333K\377\316\322'\377\0\0\0\377\365\365\365\377\347"
+ "\347\352\377\347\347\351\377\346\346\351\377\346\346\350\377\202\345"
+ "\345\350\377\205\344\344\347\377\14\344\344\347\375\344\344\347\370\344"
+ "\344\347\357\344\344\347\343\344\344\347\324\344\344\347\301\344\344"
+ "\347\252\344\344\347\220\344\344\347s\344\344\347R\344\344\347.\344\344"
+ "\347\10\203\0\0\0\0>\367\367\371\377\352\352\356\377\363\363\366\377"
+ "\230\230\230\377\263\263\272\377\273\273\302\377\303\303\312\377\313"
+ "\313\321\377__a\377\235\235\236\377\254\254\255\377xxy\377\304\303\306"
+ "\377\237\233\235\377\307\307\310\377\363\363\364\377kkk\377\244\244\244"
+ "\377\260\260\260\377{{{\377\310\310\311\377\241\235\236\377\307\306\307"
+ "\377\356\356\357\377hhh\377\241\241\242\377\254\254\255\377vvw\377\275"
+ "\275\300\377\227\224\226\377\272\271\275\377\336\336\342\377bbc\377\233"
+ "\233\235\377\247\247\250\377oor\377\254\254\262\377\212\206\213\377\250"
+ "\247\256\377\307\307\320\377\304\304\315\377\300\300\312\377\275\275"
+ "\307\377\271\271\304\377yy\200\377\377\377\377\353\377\377\377\355\377"
+ "\377\377\357\377\377\377\361\377\377\377\363\377\377\377\365\377\377"
+ "\377\366\377\377\377\370\377\377\377\371\377\377\377\372\375\375\375"
+ "\373\371\371\372\375\366\366\370\376\363\363\365\376\357\357\363\377"
+ "\354\354\360\377\350\350\355\376\202\350\350\355\377\2\351\351\355\377"
+ "\351\351\356\377\202\352\352\356\377\21\353\353\356\377\353\353\357\377"
+ "<<<\377\4\4\4\377xxx\377\227\235\226\377\252\264\250\377\265\302\263"
+ "\377\272\310\267\377\270\306\265\377\262\276\257\377\250\262\246\377"
+ "\234\243\232\377\205\210\205\377\16\16\16\377\377\377\377\377\362\362"
+ "\363\377\202\363\363\364\377\202\364\364\364\377\207\365\365\365\377"
+ "\17\364\364\365\377<<<\377\4\4\4\377\0\220\0\3775\2614\377`\303^\377"
+ "y\317v\377\203\323\200\377\177\321|\377q\313o\377\\\302Z\377@\265\77"
+ "\377\36\235\35\377\16\16\16\377\377\377\377\377\202\361\361\362\377\203"
+ "\360\360\361\377\203\357\357\360\377\1\356\356\360\377\202\356\356\357"
+ "\377\20\355\355\357\377\355\355\356\377<<<\377\4\4\4\377\275\275\0\377"
+ "\320\3254\377\325\337^\377\330\345v\377\331\350\200\377\331\347|\377"
+ "\327\344o\377\325\336Z\377\321\330\77\377\301\304\35\377\16\16\16\377"
+ "\377\377\377\377\202\346\346\351\377\202\345\345\350\377\202\344\344"
+ "\347\377\1\343\343\346\377\204\344\344\347\377\14\344\344\347\375\344"
+ "\344\347\370\344\344\347\357\344\344\347\343\344\344\347\324\344\344"
+ "\347\301\344\344\347\252\344\344\347\220\344\344\347s\344\344\347R\344"
+ "\344\347.\344\344\347\10\203\0\0\0\0@\373\373\374\377\372\372\373\377"
+ "\375\375\375\377\226\226\227\377\266\266\274\377\276\276\304\377\306"
+ "\306\313\377\316\316\323\377\273\273\277\377\237\237\241\377\250\250"
+ "\252\377\322\322\324\377cII\377\246II\377wJJ\377\365\365\365\377\325"
+ "\325\325\377\254\254\254\377\256\256\256\377\324\324\324\377cHI\377\245"
+ "HH\377uHH\377\353\353\355\377\313\313\315\377\243\243\245\377\245\245"
+ "\247\377\307\307\312\377^DE\377\240CE\377pBD\377\331\331\337\377\273"
+ "\273\300\377\227\227\233\377\230\230\234\377\265\265\273\377X=@\377\231"
+ "<\77\377i;>\377\301\301\313\377\276\276\310\377\272\272\305\377\267\267"
+ "\302\377\263\263\277\377{{\202\377\377\377\377\353\377\377\377\355\377"
+ "\377\377\357\377\377\377\361\377\377\377\363\377\377\377\365\377\377"
+ "\377\366\377\377\377\370\377\377\377\371\377\377\377\372\375\375\375"
+ "\373\371\371\373\375\366\366\370\376\363\363\365\376\360\360\363\377"
+ "\355\355\361\377\351\351\355\376\351\351\356\377\351\351\355\377\202"
+ "\352\352\356\377\2\353\353\356\377\353\353\357\377\202\354\354\357\377"
+ "\17}}~\377\"\"\"\377@@@\377\214\217\213\377\234\243\233\377\246\260\244"
+ "\377\253\265\250\377\252\265\250\377\246\257\244\377\236\245\234\377"
+ "\224\231\223\377DED\377___\377\373\373\373\377\363\363\364\377\202\364"
+ "\364\364\377\1\364\364\365\377\206\365\365\365\377\1\364\364\365\377"
+ "\202\364\364\364\377\17\177\177\177\377\"\"\"\377\0M\0\377\34\245\33"
+ "\377A\266\77\377W\300U\377a\304_\377`\304^\377V\277T\377E\270D\377.\255"
+ "-\377\11Q\11\377___\377\373\373\373\377\361\361\361\377\203\360\360\361"
+ "\377\202\357\357\360\377\1\356\356\360\377\202\356\356\357\377\1\355"
+ "\355\357\377\202\355\355\356\377\17\354\354\356\377}}}\377\"\"\"\377"
+ "ee\0\377\315\320\33\377\321\330\77\377\324\336U\377\325\340_\377\325"
+ "\340^\377\324\335T\377\322\331D\377\317\324-\377fg\11\377___\377\367"
+ "\367\370\377\202\345\345\350\377\202\344\344\347\377\3\343\343\347\377"
+ "\343\343\346\377\342\342\346\377\204\344\344\347\377\14\344\344\347\375"
+ "\344\344\347\370\344\344\347\357\344\344\347\343\344\344\347\324\344"
+ "\344\347\301\344\344\347\252\344\344\347\220\344\344\347s\344\344\347"
+ "R\344\344\347.\344\344\347\10\203\0\0\0\0>\377\377\377\377\372\372\373"
+ "\377\362\362\365\377\220\220\223\377\271\271\276\377\301\301\305\377"
+ "\311\311\315\377\321\321\325\377\332\332\335\377\343\343\345\377\354"
+ "\354\355\377\362\362\363\377tTU\377\264JJ\377\212UU\377\364\364\364\377"
+ "\363\363\363\377\362\362\362\377\360\360\361\377\357\357\360\377rRR\377"
+ "\262GH\377\207QR\377\350\350\352\377\346\346\351\377\344\344\347\377"
+ "\342\342\345\377\337\337\343\377lLN\377\254BC\377\200JL\377\325\325\333"
+ "\377\322\322\330\377\317\317\326\377\314\314\323\377\311\311\321\377"
+ "dDH\377\245;>\377xBE\377\273\273\306\377\270\270\303\377\264\264\300"
+ "\377\260\260\275\377\242\242\256\377}}\204\377\377\377\377\353\377\377"
+ "\377\355\377\377\377\357\377\377\377\361\377\377\377\363\377\377\377"
+ "\365\377\377\377\366\377\377\377\370\377\377\377\371\377\377\377\372"
+ "\375\375\376\373\371\371\373\375\366\366\370\376\363\363\366\376\361"
+ "\361\363\377\356\356\361\377\352\352\356\376\203\352\352\356\377\202"
+ "\353\353\357\377\202\354\354\357\377\21\355\355\360\377\310\310\313\377"
+ "]]]\377\7\7\7\377hhh\377\216\221\215\377\227\235\226\377\234\243\232"
+ "\377\234\243\233\377\231\237\230\377\223\227\222\377qrp\377\17\17\17"
+ "\377\337\337\337\377\366\366\367\377\364\364\364\377\364\364\365\377"
+ "\207\365\365\365\377\1\364\364\365\377\203\364\364\364\377\16\316\316"
+ "\316\377]]]\377\7\7\7\377\0}\0\377!\250\40\3776\2614\377@\265\77\377"
+ "A\266@\377:\2639\377,\254+\377\24\206\24\377\17\17\17\377\337\337\337"
+ "\377\364\364\365\377\202\360\360\361\377\203\357\357\360\377\202\356"
+ "\356\357\377\202\355\355\357\377\1\355\355\356\377\202\354\354\356\377"
+ "\26\353\353\355\377\307\307\310\377]]]\377\7\7\7\377\244\244\0\377\315"
+ "\321\40\377\320\3264\377\321\330\77\377\321\330@\377\320\3279\377\317"
+ "\323+\377\246\251\24\377\17\17\17\377\337\337\337\377\354\354\356\377"
+ "\344\344\350\377\344\344\347\377\343\343\347\377\343\343\346\377\342"
+ "\342\346\377\342\342\345\377\341\341\345\377\204\342\342\346\377\14\342"
+ "\342\346\375\342\342\346\370\342\342\346\357\342\342\346\343\342\342"
+ "\346\324\342\342\346\301\342\342\346\252\342\342\346\220\342\342\346"
+ "s\342\342\346R\342\342\346.\342\342\346\10\203\0\0\0\0>\374\374\375\377"
+ "\353\353\360\377\340\340\347\377\210\210\214\377\274\274\300\377\304"
+ "\304\307\377\314\314\317\377\325\325\327\377\335\335\337\377\346\346"
+ "\347\377\357\357\360\377\365\365\365\377\340\337\337\377\321\311\312"
+ "\377\340\336\336\377\362\362\363\377\361\361\362\377\360\360\361\377"
+ "\356\356\357\377\354\354\356\377\327\326\330\377\307\300\302\377\324"
+ "\322\325\377\345\345\350\377\342\342\346\377\340\340\344\377\335\335"
+ "\342\377\333\333\340\377\306\305\312\377\267\260\265\377\302\300\306"
+ "\377\320\320\327\377\315\315\324\377\312\312\322\377\306\306\317\377"
+ "\303\303\314\377\257\257\270\377\242\233\244\377\252\250\263\377\265"
+ "\265\301\377\261\261\276\377\240\240\252\377\216\216\225\377\207\207"
+ "\214\377\245\245\251\374\377\377\377\353\377\377\377\355\377\377\377"
+ "\357\377\377\377\361\377\377\377\363\377\377\377\365\377\377\377\366"
+ "\377\377\377\370\377\377\377\371\377\377\377\372\375\375\376\373\372"
+ "\372\373\375\367\367\370\376\364\364\366\376\361\361\364\377\357\357"
+ "\362\377\352\352\356\376\203\353\353\357\377\202\354\354\357\377\202"
+ "\355\355\360\377\17\356\356\360\377\356\356\361\377\255\255\256\377o"
+ "oo\377\11\11\11\377@@@\377\200\202\177\377\215\220\214\377\216\221\215"
+ "\377\203\206\203\377CDC\377\17\17\17\377\317\317\317\377\372\372\372"
+ "\377\364\364\365\377\207\365\365\365\377\1\364\364\365\377\205\364\364"
+ "\364\377\16\363\363\364\377\257\257\257\377ooo\377\11\11\11\377\0M\0"
+ "\377\23\230\22\377\36\246\36\377!\250\40\377\32\233\31\377\11P\10\377"
+ "\17\17\17\377\317\317\317\377\370\370\371\377\360\360\361\377\203\357"
+ "\357\360\377\1\356\356\360\377\202\356\356\357\377\2\355\355\357\377"
+ "\355\355\356\377\202\354\354\356\377\1\354\354\355\377\202\353\353\355"
+ "\377\15\352\352\354\377\253\253\254\377ooo\377\11\11\11\377ee\0\377\300"
+ "\302\22\377\315\320\36\377\315\321\40\377\300\304\31\377fg\10\377\17"
+ "\17\17\377\317\317\317\377\364\364\365\377\202\344\344\347\377\1\343"
+ "\343\346\377\202\342\342\346\377\202\341\341\345\377\1\340\340\344\377"
+ "\204\342\342\346\377\14\342\342\346\375\342\342\346\370\342\342\346\357"
+ "\342\342\346\343\342\342\346\324\342\342\346\301\342\342\346\252\342"
+ "\342\346\220\342\342\346s\342\342\346R\342\342\346.\342\342\346\10\203"
+ "\0\0\0\0\13\370\370\372\377\210\210\214\377\201\201\207\377~~\204\377"
+ "\212\212\220\377\215\215\223\377\220\220\226\377\223\223\230\377\226"
+ "\226\233\377\232\232\236\377\235\235\241\377\202\237\237\243\377\3\240"
+ "\240\244\377\241\241\245\377\242\242\245\377\202\243\243\246\377\202"
+ "\244\244\247\377\2\245\245\247\377\245\245\250\377\202\246\246\250\377"
+ "\202\247\247\251\377\203\250\250\251\377!\247\247\251\377\246\246\250"
+ "\377\244\244\247\377\243\243\246\377\241\241\244\377\240\240\243\377"
+ "\236\236\241\377\234\234\240\377\232\232\236\377\230\230\235\377\225"
+ "\225\233\377\223\223\230\377\252\252\254\372\315\315\317\362\377\377"
+ "\377\346\377\377\377\350\377\377\377\353\377\377\377\355\377\377\377"
+ "\357\377\377\377\361\377\377\377\363\377\377\377\365\377\377\377\366"
+ "\377\377\377\370\377\377\377\371\377\377\377\372\375\375\376\373\372"
+ "\372\373\375\367\367\371\376\364\364\366\376\361\361\364\377\357\357"
+ "\362\377\353\353\357\376\203\354\354\357\377\203\355\355\360\377\202"
+ "\356\356\361\377\202\357\357\361\377\4\276\276\277\377\223\223\223\377"
+ "DDD\377\14\14\14\377\202\0\0\0\377\4\16\16\16\377___\377\337\337\337"
+ "\377\372\372\372\377\207\365\365\365\377\1\364\364\365\377\205\364\364"
+ "\364\377\202\363\363\364\377\202\363\363\363\377\4\277\277\300\377\223"
+ "\223\223\377DDD\377\14\14\14\377\202\0\0\0\377\5\16\16\16\377___\377"
+ "\337\337\337\377\370\370\371\377\357\357\361\377\202\357\357\360\377"
+ "\1\356\356\360\377\202\356\356\357\377\1\355\355\357\377\202\355\355"
+ "\356\377\2\354\354\356\377\354\354\355\377\202\353\353\355\377\203\352"
+ "\352\354\377\5\351\351\353\377\273\273\274\377\223\223\223\377DDD\377"
+ "\14\14\14\377\202\0\0\0\377\5\16\16\16\377___\377\337\337\337\377\363"
+ "\363\365\377\344\344\347\377\202\343\343\346\377\3\342\342\346\377\342"
+ "\342\345\377\341\341\345\377\202\340\340\344\377\1\337\337\343\377\204"
+ "\342\342\346\377\14\342\342\346\375\342\342\346\370\342\342\346\357\342"
+ "\342\346\343\342\342\346\324\342\342\346\301\342\342\346\252\342\342"
+ "\346\220\342\342\346s\342\342\346R\342\342\346.\342\342\346\10\206\0"
+ "\0\0\0\1\377\377\377\4\202\377\377\377\6""8\377\377\377\14\377\377\377"
+ "\22\377\377\377\24\377\377\377\31\377\377\377%\377\377\377*\377\377\377"
+ ",\377\377\377\77\377\377\377F\377\377\377K\377\377\377Z\377\377\377h"
+ "\377\377\377n\377\377\377t\377\377\377z\377\377\377\201\377\377\377\207"
+ "\377\377\377\214\377\377\377\223\377\377\377\230\377\377\377\236\377"
+ "\377\377\243\377\377\377\251\377\377\377\256\377\377\377\263\377\377"
+ "\377\271\377\377\377\275\377\377\377\302\377\377\377\306\377\377\377"
+ "\312\377\377\377\317\377\377\377\322\377\377\377\326\377\377\377\331"
+ "\377\377\377\335\377\377\377\340\377\377\377\343\377\377\377\346\377"
+ "\377\377\350\377\377\377\353\377\377\377\355\377\377\377\357\377\377"
+ "\377\361\377\377\377\363\377\377\377\365\377\377\377\366\377\377\377"
+ "\370\377\377\377\371\377\377\377\372\375\375\376\373\372\372\373\375"
+ "\367\367\371\376\365\365\366\376\362\362\365\377\360\360\363\377\354"
+ "\354\357\376\202\354\354\360\377\202\355\355\360\377\2\356\356\360\377"
+ "\356\356\361\377\202\357\357\361\377\202\360\360\362\377\11\361\361\362"
+ "\377\342\342\344\377\324\324\325\377\326\326\326\377\345\345\345\377"
+ "\365\365\365\377\377\377\377\377\374\374\374\377\367\367\370\377\207"
+ "\365\365\365\377\205\364\364\364\377\202\363\363\364\377\203\363\363"
+ "\363\377\202\362\362\363\377\10\343\343\343\377\324\324\324\377\326\326"
+ "\326\377\345\345\345\377\365\365\365\377\377\377\377\377\372\372\373"
+ "\377\364\364\365\377\203\357\357\360\377\202\356\356\357\377\202\355"
+ "\355\357\377\1\355\355\356\377\202\354\354\356\377\202\353\353\355\377"
+ "\1\353\353\354\377\202\352\352\354\377\202\351\351\353\377\21\350\350"
+ "\353\377\350\350\352\377\333\333\335\377\321\321\322\377\326\326\326"
+ "\377\345\345\345\377\365\365\365\377\377\377\377\377\367\367\370\377"
+ "\353\353\355\377\343\343\347\377\343\343\346\377\342\342\346\377\342"
+ "\342\345\377\341\341\345\377\341\341\344\377\340\340\344\377\202\337"
+ "\337\343\377\1\336\336\343\377\204\337\337\343\377\14\337\337\343\375"
+ "\337\337\343\370\337\337\343\357\337\337\343\343\337\337\343\324\337"
+ "\337\343\301\337\337\343\252\337\337\343\220\337\337\343s\337\337\343"
+ "R\337\337\343.\337\337\343\10\226\0\0\0\0+\377\377\377\10\377\377\377"
+ "\33\377\377\377\35\377\377\377\37\377\377\377\77\377\377\377C\377\377"
+ "\377E\377\377\377_\377\377\377k\377\377\377p\377\377\377\201\377\377"
+ "\377\230\377\377\377\235\377\377\377\244\377\377\377\302\377\377\377"
+ "\306\377\377\377\312\377\377\377\317\377\377\377\322\377\377\377\326"
+ "\377\377\377\331\377\377\377\335\377\377\377\340\377\377\377\343\377"
+ "\377\377\346\377\377\377\350\377\377\377\353\377\377\377\355\377\377"
+ "\377\357\377\377\377\361\377\377\377\363\377\377\377\365\377\377\377"
+ "\366\377\377\377\370\377\377\377\371\377\377\377\372\375\375\376\373"
+ "\372\372\373\375\370\370\371\376\365\365\367\376\363\363\365\377\360"
+ "\360\363\377\355\355\360\376\202\355\355\360\377\2\356\356\360\377\356"
+ "\356\361\377\202\357\357\361\377\202\360\360\362\377\202\361\361\362"
+ "\377\1\361\361\363\377\202\362\362\363\377\202\363\363\364\377\2\364"
+ "\364\364\377\364\364\365\377\207\365\365\365\377\1\364\364\365\377\205"
+ "\364\364\364\377\1\363\363\364\377\203\363\363\363\377\202\362\362\363"
+ "\377\202\362\362\362\377\202\361\361\362\377\1\361\361\361\377\203\360"
+ "\360\361\377\203\357\357\360\377\1\356\356\360\377\202\356\356\357\377"
+ "\2\355\355\357\377\355\355\356\377\202\354\354\356\377\1\354\354\355"
+ "\377\202\353\353\355\377\202\352\352\354\377\4\351\351\354\377\351\351"
+ "\353\377\350\350\353\377\350\350\352\377\202\347\347\352\377\2\347\347"
+ "\351\377\346\346\351\377\202\345\345\350\377\6\344\344\350\377\344\344"
+ "\347\377\343\343\347\377\343\343\346\377\342\342\346\377\342\342\345"
+ "\377\202\341\341\345\377\202\340\340\344\377\4\337\337\343\377\336\336"
+ "\343\377\336\336\342\377\335\335\342\377\204\337\337\343\377\14\337\337"
+ "\343\375\337\337\343\370\337\337\343\357\337\337\343\343\337\337\343"
+ "\324\337\337\343\301\337\337\343\252\337\337\343\220\337\337\343s\337"
+ "\337\343R\337\337\343.\337\337\343\10\247\0\0\0\0\33\377\377\377.\377"
+ "\377\3778\377\377\377:\377\377\377W\377\377\377q\377\377\377s\377\377"
+ "\377\201\377\377\377\247\377\377\377\251\377\377\377\255\377\377\377"
+ "\322\377\377\377\327\377\377\377\331\377\377\377\354\377\377\377\365"
+ "\377\377\377\366\377\377\377\370\377\377\377\371\377\377\377\372\375"
+ "\375\376\373\372\372\373\375\370\370\371\376\365\365\367\376\363\363"
+ "\365\377\361\361\363\377\357\357\360\376\356\356\361\377\202\357\357"
+ "\361\377\203\360\360\362\377\2\361\361\362\377\361\361\363\377\202\362"
+ "\362\363\377\202\363\363\364\377\2\364\364\364\377\364\364\365\377\207"
+ "\365\365\365\377\1\364\364\365\377\205\364\364\364\377\1\363\363\364"
+ "\377\203\363\363\363\377\202\362\362\363\377\202\362\362\362\377\203"
+ "\361\361\362\377\203\360\360\361\377\203\357\357\360\377\1\356\356\360"
+ "\377\202\356\356\357\377\2\355\355\357\377\355\355\356\377\202\354\354"
+ "\356\377\1\354\354\355\377\202\353\353\355\377\202\352\352\354\377\1"
+ "\351\351\354\377\202\351\351\353\377\4\350\350\353\377\350\350\352\377"
+ "\347\347\352\377\347\347\351\377\202\346\346\351\377\202\345\345\350"
+ "\377\202\344\344\347\377\202\343\343\346\377\1\342\342\346\377\202\341"
+ "\341\345\377\202\340\340\344\377\202\337\337\343\377\5\336\336\342\377"
+ "\335\335\342\377\335\335\341\377\334\334\341\377\334\334\340\377\204"
+ "\337\337\343\377\14\337\337\343\375\337\337\343\370\337\337\343\357\337"
+ "\337\343\343\337\337\343\324\337\337\343\301\337\337\343\252\337\337"
+ "\343\220\337\337\343s\337\337\343R\337\337\343.\337\337\343\10\267\0"
+ "\0\0\0\12\377\377\377\35\377\377\377O\377\377\377P\327\327\331m\303\303"
+ "\307\275\236\236\243\276\213\213\222\322\204\204\213\350ww\200\362ww"
+ "\177\375\202ww\177\377\202xx\200\377\203yy\200\377\202zz\201\377\1zz"
+ "\202\377\202{{\202\377\1||\202\377\202||\203\377\203}}\203\377\3}}\204"
+ "\377~~\204\377~~\205\377\203\177\177\205\377\203\200\200\206\377\202"
+ "\201\201\206\377\202\202\202\207\377\1\202\202\210\377\203\203\203\210"
+ "\377\2\203\203\211\377\204\204\211\377\203\205\205\211\377\2\205\205"
+ "\212\377\206\206\212\377\202\206\206\213\377\202\207\207\213\377\203"
+ "\210\210\214\377\202\211\211\214\377\202\211\211\215\377\1\212\212\216"
+ "\377\203\213\213\216\377\1\213\213\217\377\203\214\214\217\377\3\215"
+ "\215\217\377\215\215\220\377\216\216\220\377\202\216\216\221\377\202"
+ "\217\217\221\377\1\217\217\222\377\202\220\220\222\377\202\221\221\222"
+ "\377\202\221\221\223\377\203\222\222\224\377\2\223\223\224\377\223\223"
+ "\225\377\203\224\224\225\377\2\226\226\227\377\225\225\227\377\202\225"
+ "\225\226\377\14\225\225\226\375\224\224\225\370\224\224\225\357\224\224"
+ "\225\343\224\224\225\324\223\223\224\301\222\222\224\252\222\222\224"
+ "\220\222\222\224s\222\222\223R\221\221\223.\221\221\223\10\377\0\0\0"
+ "\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0"
+ "\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\320\0\0\0\0",
+};
+
+static const GdkPixdata sdi_shared_sync_bnc_pixdata = {
+ 0x47646b50, /* Pixbuf magic: 'GdkP' */
+ 24 + 20657, /* header length + pixel_data length */
+ 0x2010002, /* pixdata_type */
+ 656, /* rowstride */
+ 164, /* width */
+ 60, /* height */
+ sdi_shared_sync_bnc_pixdata_pixel_data /* pixel_data: */
+};
diff --git a/src/image_data/vcsc_pixdata.h b/src/image_data/vcs_pixdata.h
index a4ff5ea..5bd5348 100644
--- a/src/image_data/vcsc_pixdata.h
+++ b/src/image_data/vcs_pixdata.h
@@ -1,6 +1,6 @@
/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */
-static guint8 vcsc_pixdata_pixel_data[] = {
+static guint8 vcs_pixdata_pixel_data[] = {
0x87,0xff,0xff,0xbe,0x00,0x8a,0x00,0x00,0x00,0x00,0x5a,0xff,0xff,0xbe,0x01,
0xff,0xff,0xbe,0x02,0xff,0xff,0xbe,0x03,0xff,0xff,0xbe,0x05,0xff,0xff,0xbe,
0x09,0xff,0xff,0xbe,0x0e,0xff,0xff,0xbe,0x14,0xff,0xff,0xbe,0x1c,0xff,0xff,
@@ -1695,12 +1695,12 @@ static guint8 vcsc_pixdata_pixel_data[] = {
0xbe,0x00
};
-static const GdkPixdata vcsc_pixdata = {
+static const GdkPixdata vcs_pixdata = {
0x47646b50, /* Pixbuf magic: 'GdkP' */
24 + 25367, /* header length + pixel_data length */
0x2010002, /* pixdata_type */
452, /* rowstride */
113, /* width */
60, /* height */
- vcsc_pixdata_pixel_data /* pixel_data */
+ vcs_pixdata_pixel_data /* pixel_data */
};
diff --git a/src/libXNVCtrl/Imakefile b/src/libXNVCtrl/Imakefile
deleted file mode 100644
index e15e7b5..0000000
--- a/src/libXNVCtrl/Imakefile
+++ /dev/null
@@ -1,26 +0,0 @@
-XCOMM Imakefile for libXNVCtrl.a
-
-#define DoNormalLib NormalLibXrandr
-#define LibName XNVCtrl
-#define IncSubdir X11
-#define IncSubSubdir extensions
-
-#include <Threads.tmpl>
-
-#if Malloc0ReturnsNull
-ALLOC_DEFINES = -DMALLOC_0_RETURNS_NULL
-#endif
-
-
- DEFINES = $(ALLOC_DEFINES)
- INCLUDES = -I$(XLIBSRC) -I$(EXTINCSRC)
- SRCS = NVCtrl.c
- OBJS = NVCtrl.o
- LINTLIBS = $(LINTXLIB)
-
-HEADERS = NVCtrlLib.h NVCtrl.h
-
-#include <Library.tmpl>
-
-DependTarget()
-
diff --git a/src/libXNVCtrl/Makefile b/src/libXNVCtrl/Makefile
new file mode 100644
index 0000000..49ea8b2
--- /dev/null
+++ b/src/libXNVCtrl/Makefile
@@ -0,0 +1,11 @@
+RANLIB ?= ranlib
+
+libXNVCtrl.a : libXNVCtrl.a(NVCtrl.o)
+ $(RANLIB) $@
+
+NVCtrl.o : NVCtrl.h nv_control.h NVCtrlLib.h
+.INTERMEDIATE: NVCtrl.o
+
+clean ::
+ rm -f libXNVCtrl.a *.o
+.PHONY: clean
diff --git a/src/libXNVCtrl/Makefile.inc b/src/libXNVCtrl/Makefile.inc
index d3ecbeb..402fe1d 100644
--- a/src/libXNVCtrl/Makefile.inc
+++ b/src/libXNVCtrl/Makefile.inc
@@ -26,14 +26,13 @@
#
EXTRA_DIST += \
+ Makefile \
Makefile.inc \
NVCtrl.h \
NVCtrlLib.h \
libXNVCtrl.a \
NVCtrl.c \
- nv_control.h \
- README.LIBXNVCTRL \
- Imakefile
+ nv_control.h
dist_list::
@ echo $(SRC) $(EXTRA_DIST)
diff --git a/src/libXNVCtrl/NVCtrl.c b/src/libXNVCtrl/NVCtrl.c
index cbb7be6..1697380 100644
--- a/src/libXNVCtrl/NVCtrl.c
+++ b/src/libXNVCtrl/NVCtrl.c
@@ -1283,6 +1283,8 @@ static Bool wire_to_event (Display *dpy, XEvent *host, xEvent *wire)
xnvctrlEvent *event;
XNVCtrlEventTarget *reTarget;
xnvctrlEventTarget *eventTarget;
+ XNVCtrlEventTargetAvailability *reTargetAvailability;
+ XNVCtrlStringEventTarget *reTargetString;
XNVCTRLCheckExtension (dpy, info, False);
@@ -1291,7 +1293,7 @@ static Bool wire_to_event (Display *dpy, XEvent *host, xEvent *wire)
re = (XNVCtrlEvent *) host;
event = (xnvctrlEvent *) wire;
re->attribute_changed.type = event->u.u.type & 0x7F;
- re->attribute_changed.serial =
+ re->attribute_changed.serial =
_XSetLastRequestRead(dpy, (xGenericReply*) event);
re->attribute_changed.send_event = ((event->u.u.type & 0x80) != 0);
re->attribute_changed.display = dpy;
@@ -1306,7 +1308,7 @@ static Bool wire_to_event (Display *dpy, XEvent *host, xEvent *wire)
reTarget = (XNVCtrlEventTarget *) host;
eventTarget = (xnvctrlEventTarget *) wire;
reTarget->attribute_changed.type = eventTarget->u.u.type & 0x7F;
- reTarget->attribute_changed.serial =
+ reTarget->attribute_changed.serial =
_XSetLastRequestRead(dpy, (xGenericReply*) eventTarget);
reTarget->attribute_changed.send_event =
((eventTarget->u.u.type & 0x80) != 0);
@@ -1324,6 +1326,52 @@ static Bool wire_to_event (Display *dpy, XEvent *host, xEvent *wire)
reTarget->attribute_changed.value =
eventTarget->u.attribute_changed.value;
break;
+ case TARGET_ATTRIBUTE_AVAILABILITY_CHANGED_EVENT:
+ reTargetAvailability = (XNVCtrlEventTargetAvailability *) host;
+ eventTarget = (xnvctrlEventTarget *) wire;
+ reTargetAvailability->attribute_changed.type =
+ eventTarget->u.u.type & 0x7F;
+ reTargetAvailability->attribute_changed.serial =
+ _XSetLastRequestRead(dpy, (xGenericReply*) eventTarget);
+ reTargetAvailability->attribute_changed.send_event =
+ ((eventTarget->u.u.type & 0x80) != 0);
+ reTargetAvailability->attribute_changed.display = dpy;
+ reTargetAvailability->attribute_changed.time =
+ eventTarget->u.availability_changed.time;
+ reTargetAvailability->attribute_changed.target_type =
+ eventTarget->u.availability_changed.target_type;
+ reTargetAvailability->attribute_changed.target_id =
+ eventTarget->u.availability_changed.target_id;
+ reTargetAvailability->attribute_changed.display_mask =
+ eventTarget->u.availability_changed.display_mask;
+ reTargetAvailability->attribute_changed.attribute =
+ eventTarget->u.availability_changed.attribute;
+ reTargetAvailability->attribute_changed.availability =
+ eventTarget->u.availability_changed.availability;
+ reTargetAvailability->attribute_changed.value =
+ eventTarget->u.availability_changed.value;
+ break;
+ case TARGET_STRING_ATTRIBUTE_CHANGED_EVENT:
+ reTargetString = (XNVCtrlStringEventTarget *) host;
+ eventTarget = (xnvctrlEventTarget *) wire;
+ reTargetString->attribute_changed.type = eventTarget->u.u.type & 0x7F;
+ reTargetString->attribute_changed.serial =
+ _XSetLastRequestRead(dpy, (xGenericReply*) eventTarget);
+ reTargetString->attribute_changed.send_event =
+ ((eventTarget->u.u.type & 0x80) != 0);
+ reTargetString->attribute_changed.display = dpy;
+ reTargetString->attribute_changed.time =
+ eventTarget->u.attribute_changed.time;
+ reTargetString->attribute_changed.target_type =
+ eventTarget->u.attribute_changed.target_type;
+ reTargetString->attribute_changed.target_id =
+ eventTarget->u.attribute_changed.target_id;
+ reTargetString->attribute_changed.display_mask =
+ eventTarget->u.attribute_changed.display_mask;
+ reTargetString->attribute_changed.attribute =
+ eventTarget->u.attribute_changed.attribute;
+ break;
+
default:
return False;
}
diff --git a/src/libXNVCtrl/NVCtrl.h b/src/libXNVCtrl/NVCtrl.h
index bd031a3..96e073d 100644
--- a/src/libXNVCtrl/NVCtrl.h
+++ b/src/libXNVCtrl/NVCtrl.h
@@ -18,7 +18,7 @@
#define NV_CTRL_TARGET_TYPE_X_SCREEN 0
#define NV_CTRL_TARGET_TYPE_GPU 1
#define NV_CTRL_TARGET_TYPE_FRAMELOCK 2
-#define NV_CTRL_TARGET_TYPE_VCSC 3 /* Visual Computing System Controller */
+#define NV_CTRL_TARGET_TYPE_VCSC 3 /* Visual Computing System */
/**************************************************************************/
@@ -586,6 +586,9 @@
* conjunction with software such as the Valgrind memory debugger.
* This setting is only applied to OpenGL clients that are started
* after this setting is applied.
+ *
+ * USAGE NOTE: This attribute is deprecated. CPU compatibility is now
+ * checked each time during initialization.
*/
#define NV_CTRL_FORCE_GENERIC_CPU 37 /* RW-X */
@@ -944,7 +947,8 @@
#define NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT 70 /* RW- */
#define NV_CTRL_GVO_VIDEO_FORMAT_NONE 0
-#define NV_CTRL_GVO_VIDEO_FORMAT_480I_59_94_SMPTE259_NTSC 1
+#define NV_CTRL_GVO_VIDEO_FORMAT_480I_59_94_SMPTE259_NTSC 1 //deprecated
+#define NV_CTRL_GVO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC 1
#define NV_CTRL_GVO_VIDEO_FORMAT_576I_50_00_SMPTE259_PAL 2
#define NV_CTRL_GVO_VIDEO_FORMAT_720P_59_94_SMPTE296 3
#define NV_CTRL_GVO_VIDEO_FORMAT_720P_60_00_SMPTE296 4
@@ -1186,7 +1190,7 @@
*
* XNVCTRLQueryAttribute (dpy,
* screen,
- * NV_CTRL_GVO_VIDEO_FORMAT_480I_59_94_SMPTE259_NTSC,
+ * NV_CTRL_GVO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC,
* NV_CTRL_GVO_VIDEO_FORMAT_WIDTH,
* &value);
*
@@ -2696,12 +2700,22 @@
* COMPOSITE_TERMINATION - whether the 75 ohm termination of the
* SDI composite input signal can be programmed through the
* NV_CTRL_GVO_COMPOSITE_TERMINATION attribute.
+ *
+ * SHARED_SYNC_BNC - whether the SDI device has a single BNC
+ * connector used for both (SDI & Composite) incoming signals.
+ *
+ * MULTIRATE_SYNC - whether the SDI device supports synchronization
+ * of input and output video modes that match in being odd or even
+ * modes (ie, AA.00 Hz modes can be synched to other BB.00 Hz modes and
+ * AA.XX Hz can match to BB.YY Hz where .XX and .YY are not .00)
*/
#define NV_CTRL_GVO_CAPABILITIES 229 /* R-- */
-#define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_IMMEDIATELY 0x1
-#define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_TO_X_SCREEN 0x2
-#define NV_CTRL_GVO_CAPABILITIES_COMPOSITE_TERMINATION 0x4
+#define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_IMMEDIATELY 0x00000001
+#define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_TO_X_SCREEN 0x00000002
+#define NV_CTRL_GVO_CAPABILITIES_COMPOSITE_TERMINATION 0x00000004
+#define NV_CTRL_GVO_CAPABILITIES_SHARED_SYNC_BNC 0x00000008
+#define NV_CTRL_GVO_CAPABILITIES_MULTIRATE_SYNC 0x00000010
/*
@@ -2939,7 +2953,7 @@
/*
- * NV_CTRL_NATIVE_RESOLUTION - Returns the dimensions of the
+ * NV_CTRL_FLATPANEL_NATIVE_RESOLUTION - Returns the dimensions of the
* native resolution of the flat panel as determined by the
* NVIDIA X Driver.
*
@@ -2989,7 +3003,7 @@
/*
- * NV_CTRL_FLATPANEL_DFP_SCALING_ACTIVE - Returns the current state of
+ * NV_CTRL_DFP_SCALING_ACTIVE - Returns the current state of
* DFP scaling. DFP scaling is mode-specific (meaning it may vary
* depending on which mode is currently set). DFP scaling is active if
* the GPU is set to scale to the best fit resolution (NV_CTRL_GPU_SCALING
@@ -3062,7 +3076,6 @@
#define NV_CTRL_GVO_LOCK_OWNER_X_SCREEN 3
-
/*
* NV_CTRL_HWOVERLAY - when a workstation overlay is in use, reports
* whether the hardware overlay is used, or if the overlay is emulated.
@@ -3080,6 +3093,19 @@
#define NV_CTRL_NUM_GPU_ERRORS_RECOVERED 259 /* R--- */
+
+/*
+ * NV_CTRL_REFRESH_RATE_3 - Returns the refresh rate of the specified
+ * display device in 1000 * Hz (ie. to get the refresh rate in Hz, divide
+ * the returned value by 1000.)
+ *
+ * This attribute may be queried through XNVCTRLQueryTargetAttribute()
+ * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
+ */
+
+#define NV_CTRL_REFRESH_RATE_3 260 /* R-DG */
+
+
/*
* NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS - if the OnDemandVBlankInterrupts
* X driver option is set to true, this attribute can be used to
@@ -3139,6 +3165,123 @@
#define NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE_DISABLED 0
#define NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE_ENABLED 1
+
+/*
+ * NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED - Returns whether or not the GVO output
+ * video is locked to the GPU.
+ */
+
+#define NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED 267 /* R--- */
+#define NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED_FALSE 0
+#define NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED_TRUE 1
+
+
+/*
+ * NV_CTRL_GVO_SYNC_LOCK_STATUS - Returns whether or not the GVO device
+ * is locked to the input ref signal. If the sync mode is set to
+ * NV_CTRL_GVO_SYNC_MODE_GENLOCK, then this returns the genlock
+ * sync status, and if the sync mode is set to NV_CTRL_GVO_SYNC_MODE_FRAMELOCK,
+ * then this reports the frame lock status.
+ */
+
+#define NV_CTRL_GVO_SYNC_LOCK_STATUS 268 /* R--- */
+#define NV_CTRL_GVO_SYNC_LOCK_STATUS_UNLOCKED 0
+#define NV_CTRL_GVO_SYNC_LOCK_STATUS_LOCKED 1
+
+
+/*
+ * NV_CTRL_GVO_ANC_TIME_CODE_GENERATION - Allows SDI device to generate
+ * time codes in the ANC region of the SDI video output stream.
+ */
+
+#define NV_CTRL_GVO_ANC_TIME_CODE_GENERATION 269 /* RW-- */
+#define NV_CTRL_GVO_ANC_TIME_CODE_GENERATION_DISABLE 0
+#define NV_CTRL_GVO_ANC_TIME_CODE_GENERATION_ENABLE 1
+
+
+/*
+ * NV_CTRL_GVO_COMPOSITE - Enables/Disables SDI compositing. This attribute
+ * is only available when an SDI input source is detected and is in genlock
+ * mode.
+ */
+
+#define NV_CTRL_GVO_COMPOSITE 270 /* RW-- */
+#define NV_CTRL_GVO_COMPOSITE_DISABLE 0
+#define NV_CTRL_GVO_COMPOSITE_ENABLE 1
+
+
+/*
+ * NV_CTRL_GVO_COMPOSITE_ALPHA_KEY - When compositing is enabled, this
+ * enables/disables alpha blending.
+ */
+
+#define NV_CTRL_GVO_COMPOSITE_ALPHA_KEY 271 /* RW-- */
+#define NV_CTRL_GVO_COMPOSITE_ALPHA_KEY_DISABLE 0
+#define NV_CTRL_GVO_COMPOSITE_ALPHA_KEY_ENABLE 1
+
+
+/*
+ * NV_CTRL_GVO_COMPOSITE_LUMA_KEY_RANGE - Set the values of a luma
+ * channel range. This is a packed int that has the following format
+ * (in order of high-bits to low bits):
+ *
+ * Range # (11 bits), (Enabled 1 bit), min value (10 bits), max value (10 bits)
+ *
+ * To query the current values, pass the range # throught he display_mask
+ * variable.
+ */
+
+#define NV_CTRL_GVO_COMPOSITE_LUMA_KEY_RANGE 272 /* RW-- */
+
+#define NV_CTRL_GVO_COMPOSITE_MAKE_RANGE(range, enable, min, max) \
+ ((((min) & 0x3FF) << 0) | \
+ (((max) & 0x3FF) << 10) | \
+ (((enable) & 0x1) << 20) | \
+ (((range) & 0x7FF) << 21))
+
+#define NV_CTRL_GVO_COMPOSITE_GET_RANGE(val, range, enable, min, max) \
+ (min) = ((val) >> 0) & 0x3FF; \
+ (max) = ((val) >> 10) & 0x3FF; \
+ (enable) = ((val) >> 20) & 0x1; \
+ (range) = ((val) >> 21) & 0x7FF;
+
+
+/*
+ * NV_CTRL_GVO_COMPOSITE_CR_KEY_RANGE - Set the values of a CR
+ * channel range. This is a packed int that has the following format
+ * (in order of high-bits to low bits):
+ *
+ * Range # (11 bits), (Enabled 1 bit), min value (10 bits), max value (10 bits)
+ *
+ * To query the current values, pass the range # throught he display_mask
+ * variable.
+ */
+
+#define NV_CTRL_GVO_COMPOSITE_CR_KEY_RANGE 273 /* RW-- */
+
+
+/*
+ * NV_CTRL_GVO_COMPOSITE_CB_KEY_RANGE - Set the values of a CB
+ * channel range. This is a packed int that has the following format
+ * (in order of high-bits to low bits):
+ *
+ * Range # (11 bits), (Enabled 1 bit), min value (10 bits), max value (10 bits)
+ *
+ * To query the current values, pass the range # throught he display_mask
+ * variable.
+ */
+
+#define NV_CTRL_GVO_COMPOSITE_CB_KEY_RANGE 274 /* RW-- */
+
+
+/*
+ * NV_CTRL_GVO_COMPOSITE_NUM_KEY_RANGES - Returns the number of ranges
+ * available for each channel (Y/Luma, Cr, and Cb.)
+ */
+
+#define NV_CTRL_GVO_COMPOSITE_NUM_KEY_RANGES 275 /* R--- */
+
+
/*
* NV_CTRL_SWITCH_TO_DISPLAYS takes display to which
* user wants to switch.
@@ -3376,7 +3519,7 @@
/*
* NV_CTRL_STRING_VCSC_SERIAL_NUMBER - Querys the unique serial number
- * of the VCSC device.
+ * of the VCS device.
*
* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
* using a NV_CTRL_TARGET_TYPE_VCSC target.
@@ -3386,7 +3529,7 @@
/*
- * NV_CTRL_STRING_VCSC_BUILD_DATE - Querys the date of the VCSC device.
+ * NV_CTRL_STRING_VCSC_BUILD_DATE - Querys the date of the VCS device.
* the returned string is in the following format: "Week.Year"
*
* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
@@ -3398,7 +3541,7 @@
/*
* NV_CTRL_STRING_VCSC_FIRMWARE_VERSION - Querys the firmware version
- * of the VCSC device.
+ * of the VCS device.
*
* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
* using a NV_CTRL_TARGET_TYPE_VCSC target.
@@ -3409,10 +3552,10 @@
/*
* NV_CTRL_STRING_VCSC_FIRMWARE_REVISION - Querys the firmware revision
- * of the VCSC device.
+ * of the VCS device.
*
* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
- * using a NV_CTRL_TARGET_TYPE_VCSC target.
+ * using a NV_CTRL_TARGET_TYPE_VCS target.
*/
#define NV_CTRL_STRING_VCSC_FIRMWARE_REVISION 20 /* R---V */
@@ -3420,7 +3563,7 @@
/*
* NV_CTRL_STRING_VCSC_HARDWARE_VERSION - Querys the hardware version
- * of the VCSC device.
+ * of the VCS device.
*
* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
* using a NV_CTRL_TARGET_TYPE_VCSC target.
@@ -3431,7 +3574,7 @@
/*
* NV_CTRL_STRING_VCSC_HARDWARE_REVISION - Querys the hardware revision
- * of the VCSC device.
+ * of the VCS device.
*
* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
* using a NV_CTRL_TARGET_TYPE_VCSC target.
@@ -3799,7 +3942,7 @@
/*
* NV_CTRL_BINARY_DATA_GPUS_USING_VCSC - Returns the list of
- * GPU devices connected to the given VCSC.
+ * GPU devices connected to the given VCS.
*
* The format of the returned data is:
*
@@ -3821,8 +3964,8 @@
*
* The format of the returned data is:
*
- * 4 CARD32 number of VCSCs (always 1)
- * 4 * n CARD32 VCSC indices
+ * 4 CARD32 number of VCS (always 1)
+ * 4 * n CARD32 VCS indices
*
* This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
* using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
@@ -4052,9 +4195,10 @@ typedef struct _NVCTRLAttributeValidValues {
* of event to receive (see NVCtrlLib.h for more information):
*/
-#define ATTRIBUTE_CHANGED_EVENT 0
-#define TARGET_ATTRIBUTE_CHANGED_EVENT 1
-
+#define ATTRIBUTE_CHANGED_EVENT 0
+#define TARGET_ATTRIBUTE_CHANGED_EVENT 1
+#define TARGET_ATTRIBUTE_AVAILABILITY_CHANGED_EVENT 2
+#define TARGET_STRING_ATTRIBUTE_CHANGED_EVENT 3
#endif /* __NVCTRL_H */
diff --git a/src/libXNVCtrl/NVCtrlLib.h b/src/libXNVCtrl/NVCtrlLib.h
index 6a6bc28..7dda4e8 100644
--- a/src/libXNVCtrl/NVCtrlLib.h
+++ b/src/libXNVCtrl/NVCtrlLib.h
@@ -773,6 +773,55 @@ typedef union {
long pad[24];
} XNVCtrlEventTarget;
+
+/*
+ * XNVCtrlEventTargetAvailability structure
+ */
+
+typedef struct {
+ int type;
+ unsigned long serial;
+ Bool send_event; /* always FALSE, we don't allow send_events */
+ Display *display;
+ Time time;
+ int target_type;
+ int target_id;
+ unsigned int display_mask;
+ unsigned int attribute;
+ int value;
+ Bool availability;
+} XNVCtrlAttributeChangedEventTargetAvailability;
+
+typedef union {
+ int type;
+ XNVCtrlAttributeChangedEventTargetAvailability attribute_changed;
+ long pad[24];
+} XNVCtrlEventTargetAvailability;
+
+
+/*
+ * XNVCtrlStringEventTarget structure
+ */
+
+typedef struct {
+ int type;
+ unsigned long serial;
+ Bool send_event; /* always FALSE, we don't allow send_events */
+ Display *display;
+ Time time;
+ int target_type;
+ int target_id;
+ unsigned int display_mask;
+ unsigned int attribute;
+} XNVCtrlStringAttributeChangedEventTarget;
+
+typedef union {
+ int type;
+ XNVCtrlStringAttributeChangedEventTarget attribute_changed;
+ long pad[24];
+} XNVCtrlStringEventTarget;
+
+
#if defined __cplusplus
} /* extern "C" */
#endif
diff --git a/src/libXNVCtrl/README.LIBXNVCTRL b/src/libXNVCtrl/README.LIBXNVCTRL
deleted file mode 100644
index 9e8eb6c..0000000
--- a/src/libXNVCtrl/README.LIBXNVCTRL
+++ /dev/null
@@ -1,37 +0,0 @@
-
-LIBXNVCTRL README
-
-The libXNVCtrl.a library is a small archive that provides the NV-CONTROL
-API defined in NVCtrlLib.h. This library is provided as a binary because
-it is generally difficult to build an X library, unless you have an X
-server source tree available. However, everything necessary to build
-this library is provided in this directory should you wish to
-recompile it. The files are:
-
- Imakefile - the input file to imake for use in generating an
- appropriate Makefile
-
- Makefile.inc - the file that defines what files will be included
- in the nvidia-settings source package
-
- nv_control.h - header file that defines the actual NV-CONTROL
- protocol
-
- NVCtrl.c - libXNVCtrl.a source file
-
- NVCtrl.h - header file that defines the integer attributes
- available to the NV-CONTROL X extension
-
- NVCtrlLib.h - header file that defines the NV-CONTROL API
-
-
-To build libXNVCtrl.a, perform the following steps:
-
- $ xmkmf
- $ make clean
- $ make
-
-This does require that you have a properly configured xmkmf (ie: from
-an X server source tree).
-
-
diff --git a/src/libXNVCtrl/libXNVCtrl.a b/src/libXNVCtrl/libXNVCtrl.a
deleted file mode 100644
index 7693bd3..0000000
--- a/src/libXNVCtrl/libXNVCtrl.a
+++ /dev/null
Binary files differ
diff --git a/src/libXNVCtrl/nv_control.h b/src/libXNVCtrl/nv_control.h
index 62133c6..edd3056 100644
--- a/src/libXNVCtrl/nv_control.h
+++ b/src/libXNVCtrl/nv_control.h
@@ -2,11 +2,11 @@
#define __NVCONTROL_H
#define NV_CONTROL_ERRORS 0
-#define NV_CONTROL_EVENTS 2
+#define NV_CONTROL_EVENTS 4
#define NV_CONTROL_NAME "NV-CONTROL"
#define NV_CONTROL_MAJOR 1
-#define NV_CONTROL_MINOR 14
+#define NV_CONTROL_MINOR 16
#define X_nvCtrlQueryExtension 0
#define X_nvCtrlIsNv 1
@@ -698,6 +698,21 @@ typedef struct {
CARD32 pad0 B32;
CARD32 pad1 B32;
} attribute_changed;
+ struct {
+ BYTE type;
+ BYTE detail;
+ CARD16 sequenceNumber B16;
+ CARD32 time B32;
+ CARD16 target_type B16; /* Don't swap these */
+ CARD16 target_id B16;
+ CARD32 display_mask B32;
+ CARD32 attribute B32;
+ CARD32 value B32;
+ CARD8 availability;
+ CARD8 pad0;
+ CARD16 pad1 B16;
+ CARD32 pad2 B32;
+ } availability_changed;
} u;
} xnvctrlEventTarget;
diff --git a/src/libXNVCtrlAttributes/NvCtrlAttributes.c b/src/libXNVCtrlAttributes/NvCtrlAttributes.c
index ac873a1..64a57ec 100644
--- a/src/libXNVCtrlAttributes/NvCtrlAttributes.c
+++ b/src/libXNVCtrlAttributes/NvCtrlAttributes.c
@@ -275,11 +275,11 @@ int NvCtrlGetEventBase(NvCtrlAttributeHandle *handle)
{
NvCtrlAttributePrivateHandle *h;
- if (!handle) return 0;
+ if (!handle) return -1;
h = (NvCtrlAttributePrivateHandle *) handle;
- if (!h->nv) return 0;
+ if (!h->nv) return -1;
return (h->nv->event_base);
} /* NvCtrlGetEventBase() */
@@ -289,11 +289,11 @@ int NvCtrlGetXrandrEventBase(NvCtrlAttributeHandle *handle)
{
NvCtrlAttributePrivateHandle *h;
- if (!handle) return 0;
+ if (!handle) return -1;
h = (NvCtrlAttributePrivateHandle *) handle;
- if (!h->xrandr) return 0;
+ if (!h->xrandr) return -1;
return (h->xrandr->event_base);
} /* NvCtrlGetXrandrEventBase() */
diff --git a/src/libXNVCtrlAttributes/NvCtrlAttributes.h b/src/libXNVCtrlAttributes/NvCtrlAttributes.h
index ebd206a..e4d7469 100644
--- a/src/libXNVCtrlAttributes/NvCtrlAttributes.h
+++ b/src/libXNVCtrlAttributes/NvCtrlAttributes.h
@@ -112,9 +112,11 @@ typedef void NvCtrlAttributeHandle;
#define NV_CTRL_ATTR_XV_TEXTURE_SYNC_TO_VBLANK (NV_CTRL_ATTR_XV_BASE + 5)
#define NV_CTRL_ATTR_XV_TEXTURE_CONTRAST (NV_CTRL_ATTR_XV_BASE + 6)
#define NV_CTRL_ATTR_XV_TEXTURE_BRIGHTNESS (NV_CTRL_ATTR_XV_BASE + 7)
-#define NV_CTRL_ATTR_XV_TEXTURE_SET_DEFAULTS (NV_CTRL_ATTR_XV_BASE + 8)
-#define NV_CTRL_ATTR_XV_BLITTER_SYNC_TO_VBLANK (NV_CTRL_ATTR_XV_BASE + 9)
-#define NV_CTRL_ATTR_XV_BLITTER_SET_DEFAULTS (NV_CTRL_ATTR_XV_BASE + 10)
+#define NV_CTRL_ATTR_XV_TEXTURE_SATURATION (NV_CTRL_ATTR_XV_BASE + 8)
+#define NV_CTRL_ATTR_XV_TEXTURE_HUE (NV_CTRL_ATTR_XV_BASE + 9)
+#define NV_CTRL_ATTR_XV_TEXTURE_SET_DEFAULTS (NV_CTRL_ATTR_XV_BASE + 10)
+#define NV_CTRL_ATTR_XV_BLITTER_SYNC_TO_VBLANK (NV_CTRL_ATTR_XV_BASE + 11)
+#define NV_CTRL_ATTR_XV_BLITTER_SET_DEFAULTS (NV_CTRL_ATTR_XV_BASE + 12)
#define NV_CTRL_ATTR_XV_LAST_ATTRIBUTE \
diff --git a/src/libXNVCtrlAttributes/NvCtrlAttributesNvControl.c b/src/libXNVCtrlAttributes/NvCtrlAttributesNvControl.c
index 20a165e..ca81d27 100644
--- a/src/libXNVCtrlAttributes/NvCtrlAttributesNvControl.c
+++ b/src/libXNVCtrlAttributes/NvCtrlAttributesNvControl.c
@@ -83,6 +83,36 @@ NvCtrlInitNvControlAttributes (NvCtrlAttributePrivateHandle *h)
"events.");
}
+ /*
+ * TARGET_ATTRIBUTE_AVAILABILITY_CHANGED_EVENT was added in NV-CONTROL
+ * 1.15
+ */
+
+ if (((major > 1) || ((major == 1) && (minor >= 15)))) {
+ ret = XNVCtrlSelectTargetNotify(h->dpy, h->target_type, h->target_id,
+ TARGET_ATTRIBUTE_AVAILABILITY_CHANGED_EVENT,
+ True);
+ if (ret != True) {
+ nv_warning_msg("Unable to select attribute changed NV-CONTROL "
+ "events.");
+ }
+ }
+
+ /*
+ * TARGET_STRING_ATTRIBUTE_CHANGED_EVENT was added in NV-CONTROL
+ * 1.16
+ */
+
+ if (((major > 1) || ((major == 1) && (minor >= 16)))) {
+ ret = XNVCtrlSelectTargetNotify(h->dpy, h->target_type, h->target_id,
+ TARGET_STRING_ATTRIBUTE_CHANGED_EVENT,
+ True);
+ if (ret != True) {
+ nv_warning_msg("Unable to select attribute changed NV-CONTROL string"
+ "events.");
+ }
+ }
+
nv->event_base = event;
nv->error_base = error;
nv->major_version = major;
diff --git a/src/libXNVCtrlAttributes/NvCtrlAttributesPrivate.h b/src/libXNVCtrlAttributes/NvCtrlAttributesPrivate.h
index 8072833..8286d74 100644
--- a/src/libXNVCtrlAttributes/NvCtrlAttributesPrivate.h
+++ b/src/libXNVCtrlAttributes/NvCtrlAttributesPrivate.h
@@ -124,6 +124,8 @@ struct __NvCtrlXvTextureAttributes {
NvCtrlXvAttribute *sync_to_vblank;
NvCtrlXvAttribute *contrast;
NvCtrlXvAttribute *brightness;
+ NvCtrlXvAttribute *hue;
+ NvCtrlXvAttribute *saturation;
NvCtrlXvAttribute *defaults;
};
diff --git a/src/libXNVCtrlAttributes/NvCtrlAttributesXv.c b/src/libXNVCtrlAttributes/NvCtrlAttributesXv.c
index c43b3e6..55c5aa1 100644
--- a/src/libXNVCtrlAttributes/NvCtrlAttributesXv.c
+++ b/src/libXNVCtrlAttributes/NvCtrlAttributesXv.c
@@ -287,6 +287,10 @@ NvCtrlXvAttributes * NvCtrlInitXvAttributes(NvCtrlAttributePrivateHandle *h)
"XV_CONTRAST");
attrs->brightness = getXvAttribute(h, attrs->port,
"XV_BRIGHTNESS");
+ attrs->saturation = getXvAttribute(h, attrs->port,
+ "XV_SATURATION");
+ attrs->hue = getXvAttribute(h, attrs->port,
+ "XV_HUE");
attrs->defaults = getXvAttribute(h, attrs->port,
"XV_SET_DEFAULTS");
if (!attrs->sync_to_vblank ||
@@ -569,6 +573,8 @@ static Bool checkAdaptor(NvCtrlAttributePrivateHandle *h,
case NV_CTRL_ATTR_XV_TEXTURE_SYNC_TO_VBLANK:
case NV_CTRL_ATTR_XV_TEXTURE_CONTRAST:
case NV_CTRL_ATTR_XV_TEXTURE_BRIGHTNESS:
+ case NV_CTRL_ATTR_XV_TEXTURE_HUE:
+ case NV_CTRL_ATTR_XV_TEXTURE_SATURATION:
case NV_CTRL_ATTR_XV_TEXTURE_SET_DEFAULTS:
if (h && h->xv && h->xv->texture) return True;
else return False;
@@ -606,6 +612,8 @@ static unsigned int getXvPort(NvCtrlAttributePrivateHandle *h,
case NV_CTRL_ATTR_XV_TEXTURE_SYNC_TO_VBLANK:
case NV_CTRL_ATTR_XV_TEXTURE_CONTRAST:
case NV_CTRL_ATTR_XV_TEXTURE_BRIGHTNESS:
+ case NV_CTRL_ATTR_XV_TEXTURE_HUE:
+ case NV_CTRL_ATTR_XV_TEXTURE_SATURATION:
case NV_CTRL_ATTR_XV_TEXTURE_SET_DEFAULTS:
return h->xv->texture->port;
@@ -653,6 +661,12 @@ static NvCtrlXvAttribute *getXvAttributePtr(NvCtrlAttributePrivateHandle *h,
case NV_CTRL_ATTR_XV_TEXTURE_BRIGHTNESS:
return h->xv->texture->brightness;
+ case NV_CTRL_ATTR_XV_TEXTURE_HUE:
+ return h->xv->texture->hue;
+
+ case NV_CTRL_ATTR_XV_TEXTURE_SATURATION:
+ return h->xv->texture->saturation;
+
case NV_CTRL_ATTR_XV_BLITTER_SYNC_TO_VBLANK:
return h->xv->blitter->sync_to_vblank;
diff --git a/src/nvidia-settings.c b/src/nvidia-settings.c
index 75e48f0..9ab745c 100644
--- a/src/nvidia-settings.c
+++ b/src/nvidia-settings.c
@@ -41,9 +41,9 @@ int main(int argc, char **argv)
CtrlHandles *h;
NvCtrlAttributeHandle **screen_handles = NULL;
NvCtrlAttributeHandle **gpu_handles = NULL;
- NvCtrlAttributeHandle **vcsc_handles = NULL;
+ NvCtrlAttributeHandle **vcs_handles = NULL;
Options *op;
- int ret, i, num_screen_handles, num_gpu_handles, num_vcsc_handles;
+ int ret, i, num_screen_handles, num_gpu_handles, num_vcs_handles;
char *dpy = NULL;
int gui = 0;
@@ -177,17 +177,17 @@ int main(int argc, char **argv)
}
}
- num_vcsc_handles = h->targets[VCSC_TARGET].n;
+ num_vcs_handles = h->targets[VCS_TARGET].n;
- if (num_vcsc_handles) {
- vcsc_handles =
- malloc(num_vcsc_handles * sizeof(NvCtrlAttributeHandle *));
- if (vcsc_handles) {
- for (i = 0; i < num_vcsc_handles; i++) {
- vcsc_handles[i] = h->targets[VCSC_TARGET].t[i].h;
+ if (num_vcs_handles) {
+ vcs_handles =
+ malloc(num_vcs_handles * sizeof(NvCtrlAttributeHandle *));
+ if (vcs_handles) {
+ for (i = 0; i < num_vcs_handles; i++) {
+ vcs_handles[i] = h->targets[VCS_TARGET].t[i].h;
}
} else {
- num_vcsc_handles = 0;
+ num_vcs_handles = 0;
}
}
@@ -195,7 +195,7 @@ int main(int argc, char **argv)
ctk_main(screen_handles, num_screen_handles,
gpu_handles, num_gpu_handles,
- vcsc_handles, num_vcsc_handles,
+ vcs_handles, num_vcs_handles,
p, &conf);
/* write the configuration file */
diff --git a/src/parse.c b/src/parse.c
index 9e71944..52a1051 100644
--- a/src/parse.c
+++ b/src/parse.c
@@ -60,7 +60,9 @@ static char *nv_strndup(char *s, int n);
#define A NV_PARSER_TYPE_NO_QUERY_ALL
#define Z NV_PARSER_TYPE_NO_ZERO_VALUE
#define H NV_PARSER_TYPE_100Hz
+#define K NV_PARSER_TYPE_1000Hz
#define S NV_PARSER_TYPE_STRING_ATTRIBUTE
+#define I NV_PARSER_TYPE_SDI
#define W NV_PARSER_TYPE_VALUE_IS_SWITCH_DISPLAY
AttributeTableEntry attributeTable[] = {
@@ -95,7 +97,7 @@ AttributeTableEntry attributeTable[] = {
{ "AssociatedDisplays", NV_CTRL_ASSOCIATED_DISPLAY_DEVICES, N|D },
{ "ProbeDisplays", NV_CTRL_PROBE_DISPLAYS, A },
{ "Depth30Allowed", NV_CTRL_DEPTH_30_ALLOWED, N },
- { "ForceGenericCpu", NV_CTRL_FORCE_GENERIC_CPU, 0 },
+ { "ForceGenericCpu", NV_CTRL_FORCE_GENERIC_CPU, N },
{ "GammaCorrectedAALines", NV_CTRL_OPENGL_AA_LINE_GAMMA, 0 },
{ "ShowSLIHUD", NV_CTRL_SHOW_SLI_HUD, 0 },
{ "CursorShadow", NV_CTRL_CURSOR_SHADOW, 0 },
@@ -108,6 +110,7 @@ AttributeTableEntry attributeTable[] = {
{ "FSAAAppControlled", NV_CTRL_FSAA_APPLICATION_CONTROLLED, 0 },
{ "LogAnisoAppControlled", NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED,0 },
{ "RefreshRate", NV_CTRL_REFRESH_RATE, N|H },
+ { "RefreshRate3", NV_CTRL_REFRESH_RATE_3, N|K },
{ "InitialPixmapPlacement",NV_CTRL_INITIAL_PIXMAP_PLACEMENT, N },
{ "GlyphCache", NV_CTRL_GLYPH_CACHE, N },
{ "PCIBus", NV_CTRL_PCI_BUS, N },
@@ -148,28 +151,34 @@ AttributeTableEntry attributeTable[] = {
{ "FrameLockMasterable", NV_CTRL_FRAMELOCK_MASTERABLE, N|F|G },
{ "FrameLockFPGARevision", NV_CTRL_FRAMELOCK_FPGA_REVISION, N|F|G },
- { "GvoSupported", NV_CTRL_GVO_SUPPORTED, N },
- { "GvoSyncMode", NV_CTRL_GVO_SYNC_MODE, N },
- { "GvoSyncSource", NV_CTRL_GVO_SYNC_SOURCE, N },
- { "GvoOutputVideoFormat", NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT, N },
- { "GvoInputVideoFormat", NV_CTRL_GVO_INPUT_VIDEO_FORMAT, N },
- { "GvoDataFormat", NV_CTRL_GVO_DATA_FORMAT, N },
- { "GvoDisplayXScreen", NV_CTRL_GVO_DISPLAY_X_SCREEN, N },
- { "GvoCompositeSyncInputDetected", NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED, N },
- { "GvoCompositeSyncInputDetectMode", NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE, N },
- { "GvoSdiSyncInputDetected", NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED, N },
- { "GvoVideoOutputs", NV_CTRL_GVO_VIDEO_OUTPUTS, N },
- { "GvoSyncDelayPixels", NV_CTRL_GVO_SYNC_DELAY_PIXELS, N },
- { "GvoSyncDelayLines", NV_CTRL_GVO_SYNC_DELAY_LINES, N },
- { "GvoGlxLocked", NV_CTRL_GVO_GLX_LOCKED, N },
- { "GvoXScreenPanX", NV_CTRL_GVO_X_SCREEN_PAN_X, N },
- { "GvoXScreenPanY", NV_CTRL_GVO_X_SCREEN_PAN_Y, N },
- { "GvoOverrideHwCsc", NV_CTRL_GVO_OVERRIDE_HW_CSC, N },
- { "GvoCapabilities", NV_CTRL_GVO_CAPABILITIES, N },
- { "GvoCompositeTermination", NV_CTRL_GVO_COMPOSITE_TERMINATION, N },
- { "GvoFlipQueueSize", NV_CTRL_GVO_FLIP_QUEUE_SIZE, N },
- { "GvoFirmwareVersion", NV_CTRL_STRING_GVO_FIRMWARE_VERSION, S|N },
- { "GvoLockOwner", NV_CTRL_GVO_LOCK_OWNER, N },
+ { "GvoSupported", NV_CTRL_GVO_SUPPORTED, I|N },
+ { "GvoSyncMode", NV_CTRL_GVO_SYNC_MODE, I },
+ { "GvoSyncSource", NV_CTRL_GVO_SYNC_SOURCE, I },
+ { "GvoOutputVideoFormat", NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT, I },
+ { "GvoInputVideoFormat", NV_CTRL_GVO_INPUT_VIDEO_FORMAT, I|N },
+ { "GvoDataFormat", NV_CTRL_GVO_DATA_FORMAT, I },
+ { "GvoDisplayXScreen", NV_CTRL_GVO_DISPLAY_X_SCREEN, I|N },
+ { "GvoCompositeSyncInputDetected", NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED, I|N },
+ { "GvoCompositeSyncInputDetectMode", NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE, I|N },
+ { "GvoSdiSyncInputDetected", NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED, I|N },
+ { "GvoVideoOutputs", NV_CTRL_GVO_VIDEO_OUTPUTS, I|N },
+ { "GvoSyncDelayPixels", NV_CTRL_GVO_SYNC_DELAY_PIXELS, I },
+ { "GvoSyncDelayLines", NV_CTRL_GVO_SYNC_DELAY_LINES, I },
+ { "GvoGlxLocked", NV_CTRL_GVO_GLX_LOCKED, I|N },
+ { "GvoXScreenPanX", NV_CTRL_GVO_X_SCREEN_PAN_X, I },
+ { "GvoXScreenPanY", NV_CTRL_GVO_X_SCREEN_PAN_Y, I },
+ { "GvoOverrideHwCsc", NV_CTRL_GVO_OVERRIDE_HW_CSC, I },
+ { "GvoCapabilities", NV_CTRL_GVO_CAPABILITIES, I|N },
+ { "GvoCompositeTermination", NV_CTRL_GVO_COMPOSITE_TERMINATION, I },
+ { "GvoFlipQueueSize", NV_CTRL_GVO_FLIP_QUEUE_SIZE, I },
+ { "GvoFirmwareVersion", NV_CTRL_STRING_GVO_FIRMWARE_VERSION, I|S|N },
+ { "GvoLockOwner", NV_CTRL_GVO_LOCK_OWNER, I|N },
+ { "GvoOutputVideoLocked", NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED, I|N },
+ { "GvoSyncLockStatus", NV_CTRL_GVO_SYNC_LOCK_STATUS, I|N },
+ { "GvoANCTimeCodeGeneration", NV_CTRL_GVO_ANC_TIME_CODE_GENERATION, I },
+ { "GvoComposite", NV_CTRL_GVO_COMPOSITE, I },
+ { "GvoCompositeAlphaKey", NV_CTRL_GVO_COMPOSITE_ALPHA_KEY, I },
+ { "GvoCompositeNumKeyRanges", NV_CTRL_GVO_COMPOSITE_NUM_KEY_RANGES, I|N },
{ "Brightness", BRIGHTNESS_VALUE|ALL_CHANNELS, N|C|G },
{ "RedBrightness", BRIGHTNESS_VALUE|RED_CHANNEL, C|G },
@@ -199,6 +208,8 @@ AttributeTableEntry attributeTable[] = {
{ "XVideoOverlayHue", NV_CTRL_ATTR_XV_OVERLAY_HUE, V },
{ "XVideoTextureBrightness", NV_CTRL_ATTR_XV_TEXTURE_BRIGHTNESS, V },
{ "XVideoTextureContrast", NV_CTRL_ATTR_XV_TEXTURE_CONTRAST, V },
+ { "XVideoTextureHue", NV_CTRL_ATTR_XV_TEXTURE_HUE, V },
+ { "XVideoTextureSaturation", NV_CTRL_ATTR_XV_TEXTURE_SATURATION, V },
{ "XVideoTextureSyncToVBlank", NV_CTRL_ATTR_XV_TEXTURE_SYNC_TO_VBLANK, V },
{ "XVideoBlitterSyncToVBlank", NV_CTRL_ATTR_XV_BLITTER_SYNC_TO_VBLANK, V },
{ "XVideoSyncToDisplay", NV_CTRL_XV_SYNC_TO_DISPLAY, D|Z },
@@ -237,7 +248,9 @@ AttributeTableEntry attributeTable[] = {
#undef A
#undef Z
#undef H
+#undef K
#undef S
+#undef I
#undef W
/*
@@ -281,9 +294,9 @@ TargetTypeEntry targetTypeTable[] = {
ATTRIBUTE_TYPE_FRAMELOCK, /* permission_bit */
NV_FALSE }, /* uses_display_devices */
- { "VCSC", /* name */
- "vcsc", /* parsed_name */
- VCSC_TARGET, /* target_index */
+ { "VCS", /* name */
+ "vcs", /* parsed_name */
+ VCS_TARGET, /* target_index */
NV_CTRL_TARGET_TYPE_VCSC, /* nvctrl */
ATTRIBUTE_TYPE_VCSC, /* permission_bit */
NV_FALSE }, /* uses_display_devices */
diff --git a/src/parse.h b/src/parse.h
index d6dddc1..1e0d510 100644
--- a/src/parse.h
+++ b/src/parse.h
@@ -56,6 +56,8 @@
#define NV_PARSER_TYPE_STRING_ATTRIBUTE (1<<26)
#define NV_PARSER_TYPE_ASSIGN_ALL_DISPLAYS (1<<27)
#define NV_PARSER_TYPE_VALUE_IS_SWITCH_DISPLAY (1<<28)
+#define NV_PARSER_TYPE_1000Hz (1<<29)
+#define NV_PARSER_TYPE_SDI (1<<30)
#define NV_PARSER_ASSIGNMENT 0
#define NV_PARSER_QUERY 1
@@ -142,7 +144,7 @@ extern AttributeTableEntry attributeTable[];
#define X_SCREEN_TARGET 0
#define GPU_TARGET 1
#define FRAMELOCK_TARGET 2
-#define VCSC_TARGET 3
+#define VCS_TARGET 3
#define MAX_TARGET_TYPES 4
diff --git a/src/query-assign.c b/src/query-assign.c
index eda350d..2920762 100644
--- a/src/query-assign.c
+++ b/src/query-assign.c
@@ -373,8 +373,8 @@ static int process_attribute_queries(int num, char **queries,
continue;
}
- if (nv_strcasecmp(queries[query], "vcscs")) {
- query_all_targets(display_name, VCSC_TARGET);
+ if (nv_strcasecmp(queries[query], "vcs")) {
+ query_all_targets(display_name, VCS_TARGET);
continue;
}
@@ -772,6 +772,8 @@ static void print_queried_value(CtrlHandleTarget *t,
free(tmp_d_str);
} else if (flags & NV_PARSER_TYPE_100Hz) {
snprintf(val_str, 64, "%.2f Hz", ((float) val) / 100.0);
+ } else if (flags & NV_PARSER_TYPE_1000Hz) {
+ snprintf(val_str, 64, "%.3f Hz", ((float) val) / 1000.0);
} else if (v->type == ATTRIBUTE_TYPE_BITMASK) {
snprintf(val_str, 64, "0x%08x", val);
} else if (flags & NV_PARSER_TYPE_PACKED_ATTRIBUTE) {
@@ -1018,11 +1020,11 @@ static int print_target_display_connections(CtrlHandleTarget *t)
/*
- * get_vcsc_name() Returns the VCSC product name of the given
- * VCSC target.
+ * get_vcs_name() Returns the VCS product name of the given
+ * VCS target.
*/
-static char * get_vcsc_name(NvCtrlAttributeHandle *h)
+static char * get_vcs_name(NvCtrlAttributeHandle *h)
{
char *product_name;
ReturnStatus status;
@@ -1034,7 +1036,7 @@ static char * get_vcsc_name(NvCtrlAttributeHandle *h)
return product_name;
-} /* get_vcsc_name() */
+} /* get_vcs_name() */
@@ -1114,9 +1116,9 @@ static int print_target_connections(CtrlHandles *h,
get_gpu_name(h->targets[target_index].t[ pData[i] ].h);
break;
- case VCSC_TARGET:
+ case VCS_TARGET:
product_name =
- get_vcsc_name(h->targets[target_index].t[ pData[i] ].h);
+ get_vcs_name(h->targets[target_index].t[ pData[i] ].h);
break;
case FRAMELOCK_TARGET:
@@ -1229,7 +1231,7 @@ static int query_all_targets(const char *display_name, const int target_index)
product_name = malloc(32);
snprintf(product_name, 32, "G-Sync %d", i);
- } else if (target_index == VCSC_TARGET) {
+ } else if (target_index == VCS_TARGET) {
status = NvCtrlGetStringAttribute
(t->h, NV_CTRL_STRING_VCSC_PRODUCT_NAME, &product_name);
@@ -1280,7 +1282,7 @@ static int query_all_targets(const char *display_name, const int target_index)
FRAMELOCK_TARGET);
print_target_connections
(h, t, NV_CTRL_BINARY_DATA_VCSCS_USED_BY_GPU,
- VCSC_TARGET);
+ VCS_TARGET);
break;
case X_SCREEN_TARGET:
@@ -1295,7 +1297,7 @@ static int query_all_targets(const char *display_name, const int target_index)
GPU_TARGET);
break;
- case VCSC_TARGET:
+ case VCS_TARGET:
print_target_connections
(h, t, NV_CTRL_BINARY_DATA_GPUS_USING_VCSC,
GPU_TARGET);
@@ -1777,7 +1779,7 @@ int nv_process_parsed_attribute(ParsedAttribute *a, CtrlHandles *h,
status = NvCtrlGetAttribute(t->h, NV_CTRL_FRAMELOCK, &available);
if (status != NvCtrlSuccess) {
nv_error_msg("The attribute '%s' specified %s cannot be "
- "%s; error querying frame lock availablity on "
+ "%s; error querying frame lock availablity on "
"%s (%s).",
a->name, whence, assign ? "assigned" : "queried",
t->name, NvCtrlAttributesStrError(status));
@@ -1785,7 +1787,7 @@ int nv_process_parsed_attribute(ParsedAttribute *a, CtrlHandles *h,
}
if (available != NV_CTRL_FRAMELOCK_SUPPORTED) {
- nv_error_msg("The attribute '%s' specified %s cannot be %s; "
+ nv_error_msg("The attribute '%s' specified %s cannot be %s; "
"frame lock is not supported/available on %s.",
a->name, whence, assign ? "assigned" : "queried",
t->name);
@@ -1801,7 +1803,7 @@ int nv_process_parsed_attribute(ParsedAttribute *a, CtrlHandles *h,
&enabled);
if (status != NvCtrlSuccess) {
nv_error_msg("The attribute '%s' specified %s cannot be "
- "assigned; error querying frame lock sync "
+ "assigned; error querying frame lock sync "
"status on %s (%s).",
a->name, whence, t->name,
NvCtrlAttributesStrError(status));
@@ -1811,14 +1813,14 @@ int nv_process_parsed_attribute(ParsedAttribute *a, CtrlHandles *h,
if (a->attr == NV_CTRL_FRAMELOCK_TEST_SIGNAL) {
if (enabled != NV_CTRL_FRAMELOCK_SYNC_ENABLE) {
nv_error_msg("The attribute '%s' specified %s cannot "
- "be assigned; frame lock sync is "
+ "be assigned; frame lock sync is "
"currently disabled on %s.",
a->name, whence, t->name);
continue;
}
} else if (enabled != NV_CTRL_FRAMELOCK_SYNC_DISABLE) {
nv_warning_msg("The attribute '%s' specified %s cannot be "
- "assigned; frame lock sync is currently "
+ "assigned; frame lock sync is currently "
"enabled on %s.",
a->name, whence, t->name);
continue;
@@ -1826,6 +1828,34 @@ int nv_process_parsed_attribute(ParsedAttribute *a, CtrlHandles *h,
}
}
+ /*
+ * To properly handle SDI (GVO) attributes, we just need to make
+ * sure that GVO is supported by the handle.
+ */
+
+ if (a->flags & NV_PARSER_TYPE_SDI) {
+ int available;
+
+ status = NvCtrlGetAttribute(t->h, NV_CTRL_GVO_SUPPORTED,
+ &available);
+ if (status != NvCtrlSuccess) {
+ nv_error_msg("The attribute '%s' specified %s cannot be "
+ "%s; error querying SDI availablity on "
+ "%s (%s).",
+ a->name, whence, assign ? "assigned" : "queried",
+ t->name, NvCtrlAttributesStrError(status));
+ continue;
+ }
+
+ if (available != NV_CTRL_GVO_SUPPORTED_TRUE) {
+ nv_error_msg("The attribute '%s' specified %s cannot be %s; "
+ "SDI is not supported/available on %s.",
+ a->name, whence, assign ? "assigned" : "queried",
+ t->name);
+ continue;
+ }
+ }
+
/* loop over the display devices */
for (bit = 0; bit < 24; bit++) {