From 1d95a05af0ddb236d2beece2e6a1ab4e3d127d45 Mon Sep 17 00:00:00 2001 From: Manish Singh Date: Thu, 28 May 1998 09:03:57 +0000 Subject: [PATCH] gimp_message. libgimp also overrides g_message for all plugins. Converted * redid the error message handling. g_message now calls message_box or prints to console depending on whether the no_interface is set or not. gimp-message is also exported to the PDB as a wrapper to g_message, and libgimp has a new API: gimp_message. libgimp also overrides g_message for all plugins. Converted lots of messages in app/* to g_message. Made script-fu a little friendlier. * updated the regex code from grep 2.2 * said goodbye to the old script-fu logo in script-fu.h -Yosh --- ChangeLog | 12 + app/actions/help-commands.c | 18 +- app/actions/plug-in-commands.c | 42 +- app/app_procs.c | 5 +- app/base/color-balance.c | 2 +- app/base/curves.c | 2 +- app/base/hue-saturation.c | 2 +- app/base/temp-buf.c | 18 +- app/base/threshold.c | 2 +- app/bezier_select.c | 2 +- app/blend.c | 4 +- app/brightness_contrast.c | 2 +- app/brushes.c | 8 +- app/bucket_fill.c | 4 +- app/channels_dialog.c | 4 +- app/clone.c | 2 +- app/color_balance.c | 2 +- app/commands.c | 18 +- app/convert.c | 9 +- app/core/gimpdatafiles.c | 2 +- app/core/gimpdrawable-blend.c | 4 +- app/core/gimpdrawable-desaturate.c | 2 +- app/core/gimpdrawable-equalize.c | 2 +- app/core/gimpdrawable-invert.c | 4 +- app/core/gimpimage-convert.c | 9 +- app/core/gimpimage-mask.c | 10 +- app/core/gimplayer-floating-sel.c | 9 +- app/core/gimplayer.c | 6 +- app/curves.c | 2 +- app/datafiles.c | 2 +- app/desaturate.c | 2 +- app/drawable.c | 4 +- app/equalize.c | 2 +- app/errors.c | 24 +- app/errors.h | 4 +- app/floating_sel.c | 9 +- app/free_select.c | 2 +- app/gimage.c | 37 +- app/gimage_mask.c | 10 +- app/gimpdrawable-desaturate.c | 2 +- app/gimpdrawable-equalize.c | 2 +- app/gimpdrawable-invert.c | 4 +- app/gimpimage-convert.c | 9 +- app/gimplayer.c | 6 +- app/gimprc.c | 3 +- app/gradient.c | 24 +- app/gradient_editor.c | 24 +- app/gui/channels-dialog.c | 4 +- app/gui/commands.c | 18 +- app/gui/gradient-editor.c | 24 +- app/gui/help-commands.c | 18 +- app/gui/layers-dialog.c | 10 +- app/gui/palette-editor.c | 2 +- app/gui/plug-in-commands.c | 42 +- app/gui/plug-in-menus.c | 42 +- app/histogram_tool.c | 2 +- app/hue_saturation.c | 2 +- app/invert.c | 4 +- app/iscissors.c | 6 +- app/layer.c | 6 +- app/layers_dialog.c | 10 +- app/levels.c | 2 +- app/main.c | 3 + app/menus/plug-in-menus.c | 42 +- app/paint/gimpclone.c | 2 +- app/paint/gimpsourcecore.c | 2 +- app/paint_core.c | 2 +- app/palette.c | 2 +- app/patterns.c | 8 +- app/plug-in/gimpplugin-message.c | 42 +- app/plug-in/gimpplugin-progress.c | 42 +- app/plug-in/gimpplugin.c | 42 +- app/plug-in/gimppluginmanager-call.c | 42 +- app/plug-in/gimppluginmanager-run.c | 42 +- app/plug-in/gimppluginmanager.c | 42 +- app/plug-in/gimppluginshm.c | 42 +- app/plug-in/plug-in-def.c | 42 +- app/plug-in/plug-in-message.c | 42 +- app/plug-in/plug-in-params.c | 42 +- app/plug-in/plug-in-progress.c | 42 +- app/plug-in/plug-in-run.c | 42 +- app/plug-in/plug-in-shm.c | 42 +- app/plug-in/plug-in.c | 42 +- app/plug-in/plug-ins.c | 42 +- app/plug_in.c | 42 +- app/posterize.c | 2 +- app/regex.c | 43 +- app/regex.h | 6 +- app/regexrepl.c | 43 +- app/regexrepl.h | 6 +- app/temp_buf.c | 18 +- app/text_tool.c | 13 +- app/threshold.c | 2 +- app/tools/bezier_select.c | 2 +- app/tools/blend.c | 4 +- app/tools/brightness_contrast.c | 2 +- app/tools/bucket_fill.c | 4 +- app/tools/clone.c | 2 +- app/tools/color_balance.c | 2 +- app/tools/curves.c | 2 +- app/tools/free_select.c | 2 +- app/tools/gimpblendtool.c | 4 +- app/tools/gimpbrightnesscontrasttool.c | 2 +- app/tools/gimpbucketfilltool.c | 4 +- app/tools/gimpclonetool.c | 2 +- app/tools/gimpcolorbalancetool.c | 2 +- app/tools/gimpcurvestool.c | 2 +- app/tools/gimpfreeselecttool.c | 2 +- app/tools/gimphistogramtool.c | 2 +- app/tools/gimphuesaturationtool.c | 2 +- app/tools/gimpiscissorstool.c | 6 +- app/tools/gimplevelstool.c | 2 +- app/tools/gimpposterizetool.c | 2 +- app/tools/gimpsourcetool.c | 2 +- app/tools/gimptexttool.c | 13 +- app/tools/gimpthresholdtool.c | 2 +- app/tools/histogram_tool.c | 2 +- app/tools/hue_saturation.c | 2 +- app/tools/iscissors.c | 6 +- app/tools/levels.c | 2 +- app/tools/paint_core.c | 2 +- app/tools/posterize.c | 2 +- app/tools/text_tool.c | 13 +- app/tools/threshold.c | 2 +- app/tools/transform_core.c | 4 +- app/transform_core.c | 4 +- app/widgets/gimpgradienteditor.c | 24 +- app/widgets/gimppaletteeditor.c | 2 +- app/xcf.c | 12 +- app/xcf/xcf.c | 12 +- libgimp/gimp.c | 32 +- libgimp/gimp.h | 6 + libgimpbase/gimpdatafiles.c | 2 +- plug-ins/common/psd.c | 2 +- plug-ins/psd/psd.c | 2 +- plug-ins/script-fu/regex.c | 43 +- plug-ins/script-fu/regex.h | 6 +- plug-ins/script-fu/regexrepl.c | 43 +- plug-ins/script-fu/regexrepl.h | 6 +- plug-ins/script-fu/script-fu-console.c | 6 +- plug-ins/script-fu/script-fu-interface.c | 7 +- plug-ins/script-fu/script-fu-scripts.c | 7 +- plug-ins/script-fu/script-fu.h | 2522 ---------------------- 143 files changed, 1239 insertions(+), 3039 deletions(-) delete mode 100644 plug-ins/script-fu/script-fu.h diff --git a/ChangeLog b/ChangeLog index 3abca78e51..28775096d0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +Thu May 28 01:16:26 PDT 1998 Manish Singh + + * redid the error message handling. g_message now calls + message_box or prints to console depending on whether the + no_interface is set or not. gimp-message is also exported + to the PDB as a wrapper to g_message, and libgimp has a new + API: gimp_message. libgimp also overrides g_message for all + plugins. Converted lots of messages in app/* to g_message. + Made script-fu a little friendlier. + + * updated the regex code from grep 2.2 + Wed May 27 11:22:46 MEST 1998 Sven Neumann * plug-ins/ifscompose/ifscompose.h: removed definition of TRUE diff --git a/app/actions/help-commands.c b/app/actions/help-commands.c index 9e9543ed3e..ceaf9a3633 100644 --- a/app/actions/help-commands.c +++ b/app/actions/help-commands.c @@ -564,29 +564,25 @@ file_prefs_ok_callback (GtkWidget *widget, if (levels_of_undo < 0) { - message_box("Error: Levels of undo must be zero or greater.", - NULL, NULL); + g_message ("Error: Levels of undo must be zero or greater."); levels_of_undo = old_levels_of_undo; return; } if (marching_speed < 50) { - message_box("Error: Marching speed must be 50 or greater.", - NULL, NULL); + g_message ("Error: Marching speed must be 50 or greater."); marching_speed = old_marching_speed; return; } if (default_width < 1) { - message_box("Error: Default width must be one or greater.", - NULL, NULL); + g_message ("Error: Default width must be one or greater."); default_width = old_default_width; return; } if (default_height < 1) { - message_box("Error: Default height must be one or greater.", - NULL, NULL); + g_message ("Error: Default height must be one or greater."); default_height = old_default_height; return; } @@ -752,7 +748,7 @@ file_prefs_save_callback (GtkWidget *widget, gradient_path = save_gradient_path; if (restart_notification) - message_box("You will need to restart GIMP for these changes to take effect.", NULL, NULL); + g_message ("You will need to restart GIMP for these changes to take effect."); g_list_free (update); g_list_free (remove); @@ -2486,7 +2482,7 @@ image_resize_callback (GtkWidget *w, } else { - message_box("Resize Error: Both width and height must be greater than zero.", NULL, NULL); + g_message ("Resize Error: Both width and height must be greater than zero."); return; } } @@ -2516,7 +2512,7 @@ image_scale_callback (GtkWidget *w, } else { - message_box("Scale Error: Both width and height must be greater than zero.", NULL, NULL); + g_message ("Scale Error: Both width and height must be greater than zero."); return; } } diff --git a/app/actions/plug-in-commands.c b/app/actions/plug-in-commands.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/actions/plug-in-commands.c +++ b/app/actions/plug-in-commands.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/app_procs.c b/app/app_procs.c index 96be369983..88c2048a11 100644 --- a/app/app_procs.c +++ b/app/app_procs.c @@ -22,6 +22,8 @@ #include #include +#include + #include "appenv.h" #include "app_procs.h" #include "batch.h" @@ -53,7 +55,7 @@ #include "tools.h" #include "undo.h" #include "xcf.h" -#include +#include "errors.h" #include "config.h" @@ -514,6 +516,7 @@ app_init (void) render_setup (transparency_type, transparency_size); tools_options_dialog_new (); tools_select (RECT_SELECT); + g_set_message_handler (&message_box_func); } color_transfer_init (); diff --git a/app/base/color-balance.c b/app/base/color-balance.c index 9c355b279e..00e762e34d 100644 --- a/app/base/color-balance.c +++ b/app/base/color-balance.c @@ -320,7 +320,7 @@ color_balance_initialize (void *gdisp_ptr) if (! drawable_color (gimage_active_drawable (gdisp->gimage))) { - message_box ("Color balance operates only on RGB color drawables.", NULL, NULL); + g_message ("Color balance operates only on RGB color drawables."); return; } diff --git a/app/base/curves.c b/app/base/curves.c index 430df58741..e5c24c8afc 100644 --- a/app/base/curves.c +++ b/app/base/curves.c @@ -346,7 +346,7 @@ curves_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Curves for indexed drawables cannot be adjusted.", NULL, NULL); + g_message ("Curves for indexed drawables cannot be adjusted."); return; } diff --git a/app/base/hue-saturation.c b/app/base/hue-saturation.c index bd2e8ae4be..96df37dcce 100644 --- a/app/base/hue-saturation.c +++ b/app/base/hue-saturation.c @@ -364,7 +364,7 @@ hue_saturation_initialize (void *gdisp_ptr) if (! drawable_color (gimage_active_drawable (gdisp->gimage))) { - message_box ("Hue-Saturation operates only on RGB color drawables.", NULL, NULL); + g_message ("Hue-Saturation operates only on RGB color drawables."); return; } diff --git a/app/base/temp-buf.c b/app/base/temp-buf.c index 482e216a54..63b3030a70 100644 --- a/app/base/temp-buf.c +++ b/app/base/temp-buf.c @@ -185,7 +185,7 @@ temp_buf_copy (src, dest) if (!src) { - warning ("trying to copy a temp buf which is NULL."); + g_message ("trying to copy a temp buf which is NULL."); return dest; } @@ -195,7 +195,7 @@ temp_buf_copy (src, dest) { new = dest; if (dest->width != src->width || dest->height != src->height) - warning ("In temp_buf_copy, the widths or heights don't match."); + g_message ("In temp_buf_copy, the widths or heights don't match."); /* The temp buf is smart, and can translate between color and gray */ /* (only necessary if not we allocated it */ if (src->bytes != new->bytes) @@ -205,7 +205,7 @@ temp_buf_copy (src, dest) else if (src->bytes == 2) /* grayscale */ temp_buf_to_color (src, new); else - warning ("Cannot convert from indexed color."); + g_message ("Cannot convert from indexed color."); return new; } } @@ -271,7 +271,7 @@ temp_buf_copy_area (src, dest, x, y, w, h, border) if (!src) { - warning ("trying to copy a temp buf which is NULL."); + g_message ("trying to copy a temp buf which is NULL."); return dest; } @@ -295,7 +295,7 @@ temp_buf_copy_area (src, dest, x, y, w, h, border) { new = dest; if (dest->bytes != src->bytes) - warning ("In temp_buf_copy_area, the widths or heights or bytes don't match."); + g_message ("In temp_buf_copy_area, the widths or heights or bytes don't match."); } /* Set the offsets for the dest */ @@ -464,7 +464,7 @@ temp_buf_swap (buf) { if (stat_buf.st_mode & S_IFDIR) { - warning ("Error in temp buf caching: \"%s\" is a directory (cannot overwrite)", + g_message ("Error in temp buf caching: \"%s\" is a directory (cannot overwrite)", filename); g_free (filename); return; @@ -480,7 +480,7 @@ temp_buf_swap (buf) else { perror ("Error in temp buf caching"); - warning ("Cannot write \"%s\"", filename); + g_message ("Cannot write \"%s\"", filename); g_free (filename); return; } @@ -537,7 +537,7 @@ temp_buf_unswap (buf) unlink (buf->filename); } if (!succ) - warning ("Error in temp buf caching: information swapped to disk was lost!"); + g_message ("Error in temp buf caching: information swapped to disk was lost!"); g_free (buf->filename); /* free filename */ buf->filename = NULL; @@ -570,7 +570,7 @@ temp_buf_swap_free (buf) unlink (buf->filename); } else - warning ("Error in temp buf disk swapping: information swapped to disk was lost!"); + g_message ("Error in temp buf disk swapping: information swapped to disk was lost!"); if (buf->filename) g_free (buf->filename); /* free filename */ diff --git a/app/base/threshold.c b/app/base/threshold.c index 574e5b8d04..8c89bb0193 100644 --- a/app/base/threshold.c +++ b/app/base/threshold.c @@ -343,7 +343,7 @@ threshold_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Threshold does not operate on indexed drawables.", NULL, NULL); + g_message ("Threshold does not operate on indexed drawables."); return; } diff --git a/app/bezier_select.c b/app/bezier_select.c index fa7f3934d5..c4c67cd68d 100644 --- a/app/bezier_select.c +++ b/app/bezier_select.c @@ -1133,7 +1133,7 @@ bezier_convert (BezierSelect *bezier_sel, x = (long) list->data; list = list->next; if (!list) - warning ("cannot properly scanline convert bezier curve: %d", i); + g_message ("cannot properly scanline convert bezier curve: %d", i); else { /* bounds checking */ diff --git a/app/blend.c b/app/blend.c index e47b86ae2e..aa1b32e827 100644 --- a/app/blend.c +++ b/app/blend.c @@ -550,7 +550,7 @@ blend_button_press (Tool *tool, switch (drawable_type (gimage_active_drawable (gdisp->gimage))) { case INDEXED_GIMAGE: case INDEXEDA_GIMAGE: - message_box ("Blend: Invalid for indexed images.", NULL, NULL); + g_message ("Blend: Invalid for indexed images."); return; break; @@ -622,7 +622,7 @@ blend_button_release (Tool *tool, if (return_vals[0].value.pdb_int == PDB_SUCCESS) gdisplays_flush (); else - message_box ("Blend operation failed.", NULL, NULL); + g_message ("Blend operation failed."); procedural_db_destroy_args (return_vals, nreturn_vals); } diff --git a/app/brightness_contrast.c b/app/brightness_contrast.c index b8a7db81b8..52b57b3e3d 100644 --- a/app/brightness_contrast.c +++ b/app/brightness_contrast.c @@ -286,7 +286,7 @@ brightness_contrast_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Brightness-Contrast does not operate on indexed drawables.", NULL, NULL); + g_message ("Brightness-Contrast does not operate on indexed drawables."); return; } diff --git a/app/brushes.c b/app/brushes.c index 1d4c53174b..80ab423a89 100644 --- a/app/brushes.c +++ b/app/brushes.c @@ -269,8 +269,8 @@ load_brush(char *filename) } else { - warning ("Unknown GIMP version #%d in \"%s\"\n", header.version, - filename); + g_message ("Unknown GIMP version #%d in \"%s\"\n", header.version, + filename); fclose (fp); free_brush (brush); return; @@ -287,7 +287,7 @@ load_brush(char *filename) brush->name = (char *) g_malloc (sizeof (char) * bn_size); if ((fread (brush->name, 1, bn_size, fp)) < bn_size) { - warning ("Error in GIMP brush file...aborting."); + g_message ("Error in GIMP brush file...aborting."); fclose (fp); free_brush (brush); return; @@ -300,7 +300,7 @@ load_brush(char *filename) /* Read the image data */ if ((fread (temp_buf_data (brush->mask), 1, header.width * header.height, fp)) < header.width * header.height) - warning ("GIMP brush file appears to be truncated."); + g_message ("GIMP brush file appears to be truncated."); /* Clean up */ fclose (fp); diff --git a/app/bucket_fill.c b/app/bucket_fill.c index f90c33b376..01bc273f8d 100644 --- a/app/bucket_fill.c +++ b/app/bucket_fill.c @@ -327,7 +327,7 @@ bucket_fill_button_release (tool, bevent, gdisp_ptr) if (return_vals[0].value.pdb_int == PDB_SUCCESS) gdisplays_flush (); else - message_box ("Bucket Fill operation failed.", NULL, NULL); + g_message ("Bucket Fill operation failed."); procedural_db_destroy_args (return_vals, nreturn_vals); } @@ -424,7 +424,7 @@ bucket_fill (gimage, drawable, fill_mode, paint_mode, if (!pattern) { - message_box ("No available patterns for this operation.", NULL, NULL); + g_message ("No available patterns for this operation."); return; } diff --git a/app/channels_dialog.c b/app/channels_dialog.c index 24fffcf7c9..ef1207a50a 100644 --- a/app/channels_dialog.c +++ b/app/channels_dialog.c @@ -798,10 +798,10 @@ channel_list_events (GtkWidget *widget, switch (kevent->keyval) { case GDK_Up: - printf ("up arrow\n"); + /* printf ("up arrow\n"); */ break; case GDK_Down: - printf ("down arrow\n"); + /* printf ("down arrow\n"); */ break; default: return FALSE; diff --git a/app/clone.c b/app/clone.c index 3964611b9e..9fecd23555 100644 --- a/app/clone.c +++ b/app/clone.c @@ -228,7 +228,7 @@ clone_paint_func (PaintCore *paint_core, if (clone_options->type == PatternClone) if (!get_active_pattern ()) - message_box ("No patterns available for this operation.", NULL, NULL); + g_message ("No patterns available for this operation."); break; case FINISH_PAINT : diff --git a/app/color_balance.c b/app/color_balance.c index 9c355b279e..00e762e34d 100644 --- a/app/color_balance.c +++ b/app/color_balance.c @@ -320,7 +320,7 @@ color_balance_initialize (void *gdisp_ptr) if (! drawable_color (gimage_active_drawable (gdisp->gimage))) { - message_box ("Color balance operates only on RGB color drawables.", NULL, NULL); + g_message ("Color balance operates only on RGB color drawables."); return; } diff --git a/app/commands.c b/app/commands.c index 9e9543ed3e..ceaf9a3633 100644 --- a/app/commands.c +++ b/app/commands.c @@ -564,29 +564,25 @@ file_prefs_ok_callback (GtkWidget *widget, if (levels_of_undo < 0) { - message_box("Error: Levels of undo must be zero or greater.", - NULL, NULL); + g_message ("Error: Levels of undo must be zero or greater."); levels_of_undo = old_levels_of_undo; return; } if (marching_speed < 50) { - message_box("Error: Marching speed must be 50 or greater.", - NULL, NULL); + g_message ("Error: Marching speed must be 50 or greater."); marching_speed = old_marching_speed; return; } if (default_width < 1) { - message_box("Error: Default width must be one or greater.", - NULL, NULL); + g_message ("Error: Default width must be one or greater."); default_width = old_default_width; return; } if (default_height < 1) { - message_box("Error: Default height must be one or greater.", - NULL, NULL); + g_message ("Error: Default height must be one or greater."); default_height = old_default_height; return; } @@ -752,7 +748,7 @@ file_prefs_save_callback (GtkWidget *widget, gradient_path = save_gradient_path; if (restart_notification) - message_box("You will need to restart GIMP for these changes to take effect.", NULL, NULL); + g_message ("You will need to restart GIMP for these changes to take effect."); g_list_free (update); g_list_free (remove); @@ -2486,7 +2482,7 @@ image_resize_callback (GtkWidget *w, } else { - message_box("Resize Error: Both width and height must be greater than zero.", NULL, NULL); + g_message ("Resize Error: Both width and height must be greater than zero."); return; } } @@ -2516,7 +2512,7 @@ image_scale_callback (GtkWidget *w, } else { - message_box("Scale Error: Both width and height must be greater than zero.", NULL, NULL); + g_message ("Scale Error: Both width and height must be greater than zero."); return; } } diff --git a/app/convert.c b/app/convert.c index 1d2a95d54b..fed4c19750 100644 --- a/app/convert.c +++ b/app/convert.c @@ -303,8 +303,7 @@ convert_to_indexed (void *gimage_ptr) dialog->num_cols = 255; if (!shown_message_already) { - message_box ("Note: You are attempting to convert an image\nwith alpha/layers. It is recommended that you quantize\nto no more than 255 colors if you wish to make\na transparent or animated GIF from it.\n\nYou won't get this message again\nuntil the next time you run GIMP.\nHave a nice day!", - NULL, NULL); + g_message ("Note: You are attempting to convert an image\nwith alpha/layers. It is recommended that you quantize\nto no more than 255 colors if you wish to make\na transparent or animated GIF from it.\n\nYou won't get this message again\nuntil the next time you run GIMP.\nHave a nice day!"); shown_message_already = True; } } @@ -1015,7 +1014,7 @@ generate_histogram_rgb (Histogram histogram, has_alpha = (gboolean) layer_has_alpha(layer); - g_print ("col_limit = %d, nfc = %d\n", col_limit, num_found_cols); +/* g_print ("col_limit = %d, nfc = %d\n", col_limit, num_found_cols);*/ pixel_region_init (&srcPR, GIMP_DRAWABLE(layer)->tiles, 0, 0, GIMP_DRAWABLE(layer)->width, @@ -1083,7 +1082,7 @@ generate_histogram_rgb (Histogram histogram, * quantizing at a later stage. */ needs_quantize = TRUE; - g_print ("\nmax colours exceeded - needs quantize.\n"); +/* g_print ("\nmax colours exceeded - needs quantize.\n");*/ goto already_found; } else @@ -1102,7 +1101,7 @@ generate_histogram_rgb (Histogram histogram, } } - g_print ("O: col_limit = %d, nfc = %d\n", col_limit, num_found_cols); +/* g_print ("O: col_limit = %d, nfc = %d\n", col_limit, num_found_cols);*/ } diff --git a/app/core/gimpdatafiles.c b/app/core/gimpdatafiles.c index 5fecda93e1..e53d9ff1c9 100644 --- a/app/core/gimpdatafiles.c +++ b/app/core/gimpdatafiles.c @@ -97,7 +97,7 @@ datafiles_read_directories (char *path_str, dir = opendir(path); if (!dir) - warning("error reading datafiles directory \"%s\"", path); + g_message ("error reading datafiles directory \"%s\"", path); else { while ((dir_ent = readdir(dir))) diff --git a/app/core/gimpdrawable-blend.c b/app/core/gimpdrawable-blend.c index e47b86ae2e..aa1b32e827 100644 --- a/app/core/gimpdrawable-blend.c +++ b/app/core/gimpdrawable-blend.c @@ -550,7 +550,7 @@ blend_button_press (Tool *tool, switch (drawable_type (gimage_active_drawable (gdisp->gimage))) { case INDEXED_GIMAGE: case INDEXEDA_GIMAGE: - message_box ("Blend: Invalid for indexed images.", NULL, NULL); + g_message ("Blend: Invalid for indexed images."); return; break; @@ -622,7 +622,7 @@ blend_button_release (Tool *tool, if (return_vals[0].value.pdb_int == PDB_SUCCESS) gdisplays_flush (); else - message_box ("Blend operation failed.", NULL, NULL); + g_message ("Blend operation failed."); procedural_db_destroy_args (return_vals, nreturn_vals); } diff --git a/app/core/gimpdrawable-desaturate.c b/app/core/gimpdrawable-desaturate.c index bbd2cebe78..14540e8ca5 100644 --- a/app/core/gimpdrawable-desaturate.c +++ b/app/core/gimpdrawable-desaturate.c @@ -41,7 +41,7 @@ image_desaturate (gimage_ptr) if (! drawable_color (drawable)) { - message_box ("Desaturate operates only on RGB color drawables.", NULL, NULL); + g_message ("Desaturate operates only on RGB color drawables."); return; } desaturate (drawable); diff --git a/app/core/gimpdrawable-equalize.c b/app/core/gimpdrawable-equalize.c index 1d9ff98302..ac30babd9b 100644 --- a/app/core/gimpdrawable-equalize.c +++ b/app/core/gimpdrawable-equalize.c @@ -42,7 +42,7 @@ image_equalize (gimage_ptr) if (drawable_indexed (drawable)) { - message_box ("Equalize does not operate on indexed drawables.", NULL, NULL); + g_message ("Equalize does not operate on indexed drawables."); return; } equalize (gimage, drawable, mask_only); diff --git a/app/core/gimpdrawable-invert.c b/app/core/gimpdrawable-invert.c index fcca80903e..82db12a1c7 100644 --- a/app/core/gimpdrawable-invert.c +++ b/app/core/gimpdrawable-invert.c @@ -42,7 +42,7 @@ image_invert (gimage_ptr) if (drawable_indexed (drawable)) { - message_box ("Invert does not operate on indexed drawables.", NULL, NULL); + g_message ("Invert does not operate on indexed drawables."); return; } @@ -53,7 +53,7 @@ image_invert (gimage_ptr) PDB_END); if (return_vals[0].value.pdb_int != PDB_SUCCESS) - message_box ("Invert operation failed.", NULL, NULL); + g_message ("Invert operation failed."); procedural_db_destroy_args (return_vals, nreturn_vals); } diff --git a/app/core/gimpimage-convert.c b/app/core/gimpimage-convert.c index 1d2a95d54b..fed4c19750 100644 --- a/app/core/gimpimage-convert.c +++ b/app/core/gimpimage-convert.c @@ -303,8 +303,7 @@ convert_to_indexed (void *gimage_ptr) dialog->num_cols = 255; if (!shown_message_already) { - message_box ("Note: You are attempting to convert an image\nwith alpha/layers. It is recommended that you quantize\nto no more than 255 colors if you wish to make\na transparent or animated GIF from it.\n\nYou won't get this message again\nuntil the next time you run GIMP.\nHave a nice day!", - NULL, NULL); + g_message ("Note: You are attempting to convert an image\nwith alpha/layers. It is recommended that you quantize\nto no more than 255 colors if you wish to make\na transparent or animated GIF from it.\n\nYou won't get this message again\nuntil the next time you run GIMP.\nHave a nice day!"); shown_message_already = True; } } @@ -1015,7 +1014,7 @@ generate_histogram_rgb (Histogram histogram, has_alpha = (gboolean) layer_has_alpha(layer); - g_print ("col_limit = %d, nfc = %d\n", col_limit, num_found_cols); +/* g_print ("col_limit = %d, nfc = %d\n", col_limit, num_found_cols);*/ pixel_region_init (&srcPR, GIMP_DRAWABLE(layer)->tiles, 0, 0, GIMP_DRAWABLE(layer)->width, @@ -1083,7 +1082,7 @@ generate_histogram_rgb (Histogram histogram, * quantizing at a later stage. */ needs_quantize = TRUE; - g_print ("\nmax colours exceeded - needs quantize.\n"); +/* g_print ("\nmax colours exceeded - needs quantize.\n");*/ goto already_found; } else @@ -1102,7 +1101,7 @@ generate_histogram_rgb (Histogram histogram, } } - g_print ("O: col_limit = %d, nfc = %d\n", col_limit, num_found_cols); +/* g_print ("O: col_limit = %d, nfc = %d\n", col_limit, num_found_cols);*/ } diff --git a/app/core/gimpimage-mask.c b/app/core/gimpimage-mask.c index b67b4ee9a9..54474e39f0 100644 --- a/app/core/gimpimage-mask.c +++ b/app/core/gimpimage-mask.c @@ -207,7 +207,7 @@ gimage_mask_extract (gimage, drawable, cut_gimage, keep_indexed) non_empty = drawable_mask_bounds (drawable, &x1, &y1, &x2, &y2); if (non_empty && (!(x2 - x1) || !(y2 - y1))) { - message_box ("Unable to cut/copy because the selected\nregion is empty.", NULL, NULL); + g_message ("Unable to cut/copy because the selected\nregion is empty."); return NULL; } @@ -330,7 +330,7 @@ gimage_mask_float (gimage, drawable, off_x, off_y) non_empty = drawable_mask_bounds ( (drawable), &x1, &y1, &x2, &y2); if (! non_empty || (x2 - x1) == 0 || (y2 - y1) == 0) { - message_box ("Float Selection: No selection to float.", NULL, NULL); + g_message ("Float Selection: No selection to float."); return NULL; } @@ -484,7 +484,7 @@ gimage_mask_layer_alpha (gimage, layer) } else { - message_box ("The active layer has no alpha channel\nto convert to a selection.", NULL, NULL); + g_message ("The active layer has no alpha channel\nto convert to a selection."); return; } } @@ -503,7 +503,7 @@ gimage_mask_layer_mask (gimage, layer) } else { - message_box ("The active layer has no mask\nto convert to a selection.", NULL, NULL); + g_message ("The active layer has no mask\nto convert to a selection."); return; } } @@ -552,7 +552,7 @@ gimage_mask_stroke (gimage, drawable) if (! gimage_mask_boundary (gimage, &bs_in, &bs_out, &num_segs_in, &num_segs_out)) { - message_box ("No selection to stroke!", NULL, NULL); + g_message ("No selection to stroke!"); return FALSE; } diff --git a/app/core/gimplayer-floating-sel.c b/app/core/gimplayer-floating-sel.c index b992692fe9..8d9dbcc2b7 100644 --- a/app/core/gimplayer-floating-sel.c +++ b/app/core/gimplayer-floating-sel.c @@ -102,8 +102,7 @@ floating_sel_anchor (Layer *layer) return; if (! layer_is_floating_sel (layer)) { - message_box ("Cannot anchor this layer because\nit is not a floating selection.", - NULL, NULL); + g_message ("Cannot anchor this layer because\nit is not a floating selection."); return; } @@ -168,9 +167,9 @@ floating_sel_to_layer (Layer *layer) if (drawable_channel (layer->fs.drawable) || drawable_layer_mask (layer->fs.drawable)) { - message_box ("Cannot create a new layer from the floating\n" - "selection because it belongs to a\n" - "layer mask or channel.", NULL, NULL); + g_message ("Cannot create a new layer from the floating\n" + "selection because it belongs to a\n" + "layer mask or channel.", NULL, NULL); return; } diff --git a/app/core/gimplayer.c b/app/core/gimplayer.c index 141cf12696..c8dd152967 100644 --- a/app/core/gimplayer.c +++ b/app/core/gimplayer.c @@ -235,7 +235,7 @@ layer_new (gimage_ID, width, height, type, name, opacity, mode) Layer * layer; if (width == 0 || height == 0) { - warning ("Zero width or height layers not allowed."); + g_message ("Zero width or height layers not allowed."); return NULL; } @@ -326,7 +326,7 @@ layer_copy (layer, add_alpha) new_layer = layer_new (GIMP_DRAWABLE(layer)->gimage_ID, GIMP_DRAWABLE(layer)->width, GIMP_DRAWABLE(layer)->height, new_type, layer_name, layer->opacity, layer->mode); if (!new_layer) { - warning("layer_copy: could not allocate new layer"); + g_message ("layer_copy: could not allocate new layer"); goto cleanup; } @@ -399,7 +399,7 @@ layer_from_tiles (gimage_ptr, drawable, tiles, name, opacity, mode) layer_type, name, opacity, mode); if (!new_layer) { - warning("layer_from_tiles: could not allocate new layer"); + g_message ("layer_from_tiles: could not allocate new layer"); return NULL; } diff --git a/app/curves.c b/app/curves.c index 430df58741..e5c24c8afc 100644 --- a/app/curves.c +++ b/app/curves.c @@ -346,7 +346,7 @@ curves_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Curves for indexed drawables cannot be adjusted.", NULL, NULL); + g_message ("Curves for indexed drawables cannot be adjusted."); return; } diff --git a/app/datafiles.c b/app/datafiles.c index 5fecda93e1..e53d9ff1c9 100644 --- a/app/datafiles.c +++ b/app/datafiles.c @@ -97,7 +97,7 @@ datafiles_read_directories (char *path_str, dir = opendir(path); if (!dir) - warning("error reading datafiles directory \"%s\"", path); + g_message ("error reading datafiles directory \"%s\"", path); else { while ((dir_ent = readdir(dir))) diff --git a/app/desaturate.c b/app/desaturate.c index bbd2cebe78..14540e8ca5 100644 --- a/app/desaturate.c +++ b/app/desaturate.c @@ -41,7 +41,7 @@ image_desaturate (gimage_ptr) if (! drawable_color (drawable)) { - message_box ("Desaturate operates only on RGB color drawables.", NULL, NULL); + g_message ("Desaturate operates only on RGB color drawables."); return; } desaturate (drawable); diff --git a/app/drawable.c b/app/drawable.c index 50938e6312..f549348414 100644 --- a/app/drawable.c +++ b/app/drawable.c @@ -231,7 +231,7 @@ drawable_fill (GimpDrawable *drawable, int fill_type) c[ALPHA_I_PIX] = a; break; default: - warning ("Can't fill unknown image type."); + g_message ("Can't fill unknown image type."); break; } @@ -631,7 +631,7 @@ gimp_drawable_configure (GimpDrawable *drawable, case INDEXEDA_GIMAGE: bpp = 2; alpha = 1; break; default: - warning ("Layer type %d not supported.", type); + g_message ("Layer type %d not supported.", type); return; } diff --git a/app/equalize.c b/app/equalize.c index 1d9ff98302..ac30babd9b 100644 --- a/app/equalize.c +++ b/app/equalize.c @@ -42,7 +42,7 @@ image_equalize (gimage_ptr) if (drawable_indexed (drawable)) { - message_box ("Equalize does not operate on indexed drawables.", NULL, NULL); + g_message ("Equalize does not operate on indexed drawables."); return; } equalize (gimage, drawable, mask_only); diff --git a/app/errors.c b/app/errors.c index a0737644b9..21eea144ae 100644 --- a/app/errors.c +++ b/app/errors.c @@ -24,36 +24,24 @@ #include #include -#include -#include +#include #include "app_procs.h" +#include "interface.h" #include "errors.h" extern char *prog_name; extern int use_debug_handler; void -message (char *fmt, ...) +message_console_func (char *str) { - va_list args; - - va_start (args, fmt); - printf ("%s: ", prog_name); - vprintf (fmt, args); - printf ("\n"); - va_end (args); + g_print ("%s: %s\n", prog_name, str); } void -warning (char *fmt, ...) +message_box_func (char *str) { - va_list args; - - va_start (args, fmt); - printf ("%s warning: ", prog_name); - vprintf (fmt, args); - printf ("\n"); - va_end (args); + message_box (str, NULL, NULL); } void diff --git a/app/errors.h b/app/errors.h index 3041b2503d..0e1ae8ad5e 100644 --- a/app/errors.h +++ b/app/errors.h @@ -18,8 +18,8 @@ #ifndef __ERRORS_H__ #define __ERRORS_H__ -void message (char *, ...); -void warning (char *, ...); +void message_console_func (char *); +void message_box_func (char *); void fatal_error (char *, ...); void terminate (char *, ...); diff --git a/app/floating_sel.c b/app/floating_sel.c index b992692fe9..8d9dbcc2b7 100644 --- a/app/floating_sel.c +++ b/app/floating_sel.c @@ -102,8 +102,7 @@ floating_sel_anchor (Layer *layer) return; if (! layer_is_floating_sel (layer)) { - message_box ("Cannot anchor this layer because\nit is not a floating selection.", - NULL, NULL); + g_message ("Cannot anchor this layer because\nit is not a floating selection."); return; } @@ -168,9 +167,9 @@ floating_sel_to_layer (Layer *layer) if (drawable_channel (layer->fs.drawable) || drawable_layer_mask (layer->fs.drawable)) { - message_box ("Cannot create a new layer from the floating\n" - "selection because it belongs to a\n" - "layer mask or channel.", NULL, NULL); + g_message ("Cannot create a new layer from the floating\n" + "selection because it belongs to a\n" + "layer mask or channel.", NULL, NULL); return; } diff --git a/app/free_select.c b/app/free_select.c index db852e2b65..6abe0ac4c2 100644 --- a/app/free_select.c +++ b/app/free_select.c @@ -212,7 +212,7 @@ scan_convert (int gimage_ID, int num_pts, FreeSelectPoint *pts, x = (long) list->data; list = g_slist_next(list); if (!list) - warning ("Cannot properly scanline convert polygon!\n"); + g_message ("Cannot properly scanline convert polygon!\n"); else { /* bounds checking */ diff --git a/app/gimage.c b/app/gimage.c index 7e7f8fb3fa..a88a8b114b 100644 --- a/app/gimage.c +++ b/app/gimage.c @@ -153,7 +153,7 @@ gimage_allocate_projection (GImage *gimage) gimage->proj_type = GRAYA_GIMAGE; break; default: - warning ("gimage type unsupported.\n"); + g_message ("gimage type unsupported.\n"); break; } @@ -270,7 +270,7 @@ gimage_resize (GImage *gimage, int new_width, int new_height, if (new_width <= 0 || new_height <= 0) { - warning("gimage_resize: width and height must be positive"); + g_message ("gimage_resize: width and height must be positive"); return; } @@ -530,7 +530,7 @@ gimage_apply_image (GImage *gimage, GimpDrawable *drawable, PixelRegion *src2PR, operation = valid_combinations [drawable_type (drawable)][src2PR->bytes]; if (operation == -1) { - warning ("gimage_apply_image sent illegal parameters\n"); + g_message ("gimage_apply_image sent illegal parameters"); return; } @@ -624,7 +624,7 @@ gimage_replace_image (GImage *gimage, GimpDrawable *drawable, PixelRegion *src2P operation = valid_combinations [drawable_type (drawable)][src2PR->bytes]; if (operation == -1) { - warning ("gimage_apply_image sent illegal parameters\n"); + g_message ("gimage_apply_image sent illegal parameters"); return; } @@ -912,7 +912,7 @@ project_indexed (GImage *gimage, Layer *layer, initial_region (src, dest, NULL, gimage->cmap, layer->opacity, layer->mode, gimage->visible, INITIAL_INDEXED); else - warning ("Unable to project indexed image."); + g_message ("Unable to project indexed image."); } @@ -1720,7 +1720,7 @@ gimage_raise_layer (GImage *gimage, Layer *layer_arg) } else { - message_box ("Layer cannot be raised any further", NULL, NULL); + g_message ("Layer cannot be raised any further"); return NULL; } } @@ -1789,7 +1789,7 @@ gimage_lower_layer (GImage *gimage, Layer *layer_arg) } else { - message_box ("Layer cannot be lowered any further", NULL, NULL); + g_message ("Layer cannot be lowered any further"); return NULL; } } @@ -1826,8 +1826,7 @@ gimage_merge_visible_layers (GImage *gimage, MergeType merge_type) } else { - message_box ("There are not enough visible layers for a merge.\nThere must be at least two.", - NULL, NULL); + g_message ("There are not enough visible layers for a merge.\nThere must be at least two."); g_slist_free (merge_list); return NULL; } @@ -1962,7 +1961,7 @@ gimage_merge_layers (GImage *gimage, GSList *merge_list, MergeType merge_type) type, drawable_name (GIMP_DRAWABLE(layer)), OPAQUE_OPACITY, NORMAL_MODE); if (!merge_layer) { - warning("gimage_merge_layers: could not allocate merge layer"); + g_message ("gimage_merge_layers: could not allocate merge layer"); return NULL; } @@ -1992,7 +1991,7 @@ gimage_merge_layers (GImage *gimage, GSList *merge_list, MergeType merge_type) layer->opacity, layer->mode); if (!merge_layer) { - warning("gimage_merge_layers: could not allocate merge layer"); + g_message ("gimage_merge_layers: could not allocate merge layer"); return NULL; } @@ -2031,7 +2030,7 @@ gimage_merge_layers (GImage *gimage, GSList *merge_list, MergeType merge_type) operation = valid_combinations [drawable_type (GIMP_DRAWABLE(merge_layer))][drawable_bytes (GIMP_DRAWABLE(layer))]; if (operation == -1) { - warning ("gimage_merge_layers attempting to merge incompatible layers\n"); + g_message ("gimage_merge_layers attempting to merge incompatible layers\n"); return NULL; } @@ -2112,7 +2111,7 @@ gimage_add_layer (GImage *gimage, Layer *float_layer, int position) if (GIMP_DRAWABLE(float_layer)->gimage_ID != 0 && GIMP_DRAWABLE(float_layer)->gimage_ID != gimage->ID) { - warning("gimage_add_layer: attempt to add layer to wrong image"); + g_message ("gimage_add_layer: attempt to add layer to wrong image"); return NULL; } @@ -2122,7 +2121,7 @@ gimage_add_layer (GImage *gimage, Layer *float_layer, int position) { if (ll->data == float_layer) { - warning("gimage_add_layer: trying to add layer to image twice"); + g_message ("gimage_add_layer: trying to add layer to image twice"); return NULL; } ll = g_slist_next(ll); @@ -2242,7 +2241,7 @@ gimage_add_layer_mask (GImage *gimage, Layer *layer, LayerMask *mask) if (error) { - message_box (error, NULL, NULL); + g_message (error); return NULL; } @@ -2344,7 +2343,7 @@ gimage_raise_channel (GImage *gimage, Channel * channel_arg) } else { - message_box ("Channel cannot be raised any further", NULL, NULL); + g_message ("Channel cannot be raised any further"); return NULL; } } @@ -2391,7 +2390,7 @@ gimage_lower_channel (GImage *gimage, Channel *channel_arg) } else { - message_box ("Channel cannot be lowered any further", NULL, NULL); + g_message ("Channel cannot be lowered any further"); return NULL; } } @@ -2411,7 +2410,7 @@ gimage_add_channel (GImage *gimage, Channel *channel, int position) if (GIMP_DRAWABLE(channel)->gimage_ID != 0 && GIMP_DRAWABLE(channel)->gimage_ID != gimage->ID) { - warning("gimage_add_channel: attempt to add channel to wrong image"); + g_message ("gimage_add_channel: attempt to add channel to wrong image"); return NULL; } @@ -2421,7 +2420,7 @@ gimage_add_channel (GImage *gimage, Channel *channel, int position) { if (cc->data == channel) { - warning("gimage_add_channel: trying to add channel to image twice"); + g_message ("gimage_add_channel: trying to add channel to image twice"); return NULL; } cc = g_slist_next (cc); diff --git a/app/gimage_mask.c b/app/gimage_mask.c index b67b4ee9a9..54474e39f0 100644 --- a/app/gimage_mask.c +++ b/app/gimage_mask.c @@ -207,7 +207,7 @@ gimage_mask_extract (gimage, drawable, cut_gimage, keep_indexed) non_empty = drawable_mask_bounds (drawable, &x1, &y1, &x2, &y2); if (non_empty && (!(x2 - x1) || !(y2 - y1))) { - message_box ("Unable to cut/copy because the selected\nregion is empty.", NULL, NULL); + g_message ("Unable to cut/copy because the selected\nregion is empty."); return NULL; } @@ -330,7 +330,7 @@ gimage_mask_float (gimage, drawable, off_x, off_y) non_empty = drawable_mask_bounds ( (drawable), &x1, &y1, &x2, &y2); if (! non_empty || (x2 - x1) == 0 || (y2 - y1) == 0) { - message_box ("Float Selection: No selection to float.", NULL, NULL); + g_message ("Float Selection: No selection to float."); return NULL; } @@ -484,7 +484,7 @@ gimage_mask_layer_alpha (gimage, layer) } else { - message_box ("The active layer has no alpha channel\nto convert to a selection.", NULL, NULL); + g_message ("The active layer has no alpha channel\nto convert to a selection."); return; } } @@ -503,7 +503,7 @@ gimage_mask_layer_mask (gimage, layer) } else { - message_box ("The active layer has no mask\nto convert to a selection.", NULL, NULL); + g_message ("The active layer has no mask\nto convert to a selection."); return; } } @@ -552,7 +552,7 @@ gimage_mask_stroke (gimage, drawable) if (! gimage_mask_boundary (gimage, &bs_in, &bs_out, &num_segs_in, &num_segs_out)) { - message_box ("No selection to stroke!", NULL, NULL); + g_message ("No selection to stroke!"); return FALSE; } diff --git a/app/gimpdrawable-desaturate.c b/app/gimpdrawable-desaturate.c index bbd2cebe78..14540e8ca5 100644 --- a/app/gimpdrawable-desaturate.c +++ b/app/gimpdrawable-desaturate.c @@ -41,7 +41,7 @@ image_desaturate (gimage_ptr) if (! drawable_color (drawable)) { - message_box ("Desaturate operates only on RGB color drawables.", NULL, NULL); + g_message ("Desaturate operates only on RGB color drawables."); return; } desaturate (drawable); diff --git a/app/gimpdrawable-equalize.c b/app/gimpdrawable-equalize.c index 1d9ff98302..ac30babd9b 100644 --- a/app/gimpdrawable-equalize.c +++ b/app/gimpdrawable-equalize.c @@ -42,7 +42,7 @@ image_equalize (gimage_ptr) if (drawable_indexed (drawable)) { - message_box ("Equalize does not operate on indexed drawables.", NULL, NULL); + g_message ("Equalize does not operate on indexed drawables."); return; } equalize (gimage, drawable, mask_only); diff --git a/app/gimpdrawable-invert.c b/app/gimpdrawable-invert.c index fcca80903e..82db12a1c7 100644 --- a/app/gimpdrawable-invert.c +++ b/app/gimpdrawable-invert.c @@ -42,7 +42,7 @@ image_invert (gimage_ptr) if (drawable_indexed (drawable)) { - message_box ("Invert does not operate on indexed drawables.", NULL, NULL); + g_message ("Invert does not operate on indexed drawables."); return; } @@ -53,7 +53,7 @@ image_invert (gimage_ptr) PDB_END); if (return_vals[0].value.pdb_int != PDB_SUCCESS) - message_box ("Invert operation failed.", NULL, NULL); + g_message ("Invert operation failed."); procedural_db_destroy_args (return_vals, nreturn_vals); } diff --git a/app/gimpimage-convert.c b/app/gimpimage-convert.c index 1d2a95d54b..fed4c19750 100644 --- a/app/gimpimage-convert.c +++ b/app/gimpimage-convert.c @@ -303,8 +303,7 @@ convert_to_indexed (void *gimage_ptr) dialog->num_cols = 255; if (!shown_message_already) { - message_box ("Note: You are attempting to convert an image\nwith alpha/layers. It is recommended that you quantize\nto no more than 255 colors if you wish to make\na transparent or animated GIF from it.\n\nYou won't get this message again\nuntil the next time you run GIMP.\nHave a nice day!", - NULL, NULL); + g_message ("Note: You are attempting to convert an image\nwith alpha/layers. It is recommended that you quantize\nto no more than 255 colors if you wish to make\na transparent or animated GIF from it.\n\nYou won't get this message again\nuntil the next time you run GIMP.\nHave a nice day!"); shown_message_already = True; } } @@ -1015,7 +1014,7 @@ generate_histogram_rgb (Histogram histogram, has_alpha = (gboolean) layer_has_alpha(layer); - g_print ("col_limit = %d, nfc = %d\n", col_limit, num_found_cols); +/* g_print ("col_limit = %d, nfc = %d\n", col_limit, num_found_cols);*/ pixel_region_init (&srcPR, GIMP_DRAWABLE(layer)->tiles, 0, 0, GIMP_DRAWABLE(layer)->width, @@ -1083,7 +1082,7 @@ generate_histogram_rgb (Histogram histogram, * quantizing at a later stage. */ needs_quantize = TRUE; - g_print ("\nmax colours exceeded - needs quantize.\n"); +/* g_print ("\nmax colours exceeded - needs quantize.\n");*/ goto already_found; } else @@ -1102,7 +1101,7 @@ generate_histogram_rgb (Histogram histogram, } } - g_print ("O: col_limit = %d, nfc = %d\n", col_limit, num_found_cols); +/* g_print ("O: col_limit = %d, nfc = %d\n", col_limit, num_found_cols);*/ } diff --git a/app/gimplayer.c b/app/gimplayer.c index 141cf12696..c8dd152967 100644 --- a/app/gimplayer.c +++ b/app/gimplayer.c @@ -235,7 +235,7 @@ layer_new (gimage_ID, width, height, type, name, opacity, mode) Layer * layer; if (width == 0 || height == 0) { - warning ("Zero width or height layers not allowed."); + g_message ("Zero width or height layers not allowed."); return NULL; } @@ -326,7 +326,7 @@ layer_copy (layer, add_alpha) new_layer = layer_new (GIMP_DRAWABLE(layer)->gimage_ID, GIMP_DRAWABLE(layer)->width, GIMP_DRAWABLE(layer)->height, new_type, layer_name, layer->opacity, layer->mode); if (!new_layer) { - warning("layer_copy: could not allocate new layer"); + g_message ("layer_copy: could not allocate new layer"); goto cleanup; } @@ -399,7 +399,7 @@ layer_from_tiles (gimage_ptr, drawable, tiles, name, opacity, mode) layer_type, name, opacity, mode); if (!new_layer) { - warning("layer_from_tiles: could not allocate new layer"); + g_message ("layer_from_tiles: could not allocate new layer"); return NULL; } diff --git a/app/gimprc.c b/app/gimprc.c index c57a799ea8..66748d9602 100644 --- a/app/gimprc.c +++ b/app/gimprc.c @@ -389,8 +389,7 @@ save_gimprc (GList **updated_options, error_msg = open_backup_file (name, &fp_new, &fp_old); if (error_msg != NULL) { - /* FIXME: show the error in a nice dialog box */ - g_warning (error_msg); + g_message (error_msg); return; } diff --git a/app/gradient.c b/app/gradient.c index cf7e311a6c..ba4b1fdd93 100644 --- a/app/gradient.c +++ b/app/gradient.c @@ -1312,7 +1312,7 @@ ed_do_new_gradient_callback(GtkWidget *widget, gpointer client_data, gpointer ca gradient_name = (char *) call_data; if (!gradient_name) { - warning("ed_do_new_gradient_callback(): oops, received NULL in call_data"); + g_message ("ed_do_new_gradient_callback(): oops, received NULL in call_data"); return; } /* if */ @@ -1369,7 +1369,7 @@ ed_do_copy_gradient_callback(GtkWidget *widget, gpointer client_data, gpointer c gradient_name = (char *) call_data; if (!gradient_name) { - warning("ed_do_copy_gradient_callback(): oops, received NULL in call_data"); + g_message ("ed_do_copy_gradient_callback(): oops, received NULL in call_data"); return; } /* if */ @@ -1622,7 +1622,7 @@ ed_do_save_pov_callback(GtkWidget *widget, gpointer client_data) file = fopen(filename, "w"); if (!file) - warning("ed_do_save_pov_callback(): oops, could not open \"%s\"", filename); + g_message ("ed_do_save_pov_callback(): oops, could not open \"%s\"", filename); else { fprintf(file, "/* color_map file created by the GIMP */\n"); fprintf(file, "/* http://www.gimp.org/ */\n"); @@ -2189,7 +2189,7 @@ control_do_hint(gint x, gint y) break; default: - warning("control_do_hint: oops, in_handle is true " + g_message ("control_do_hint: oops, in_handle is true " "yet we got handle type %d", (int) handle); break; } /* switch */ @@ -2293,7 +2293,7 @@ control_button_press(gint x, gint y, guint button, guint state) return; default: - warning("control_button_press(): oops, in_handle is true " + g_message ("control_button_press(): oops, in_handle is true " "yet we got handle type %d", (int) handle); return; } /* switch */ @@ -2337,7 +2337,7 @@ control_point_in_handle(gint x, gint y, grad_segment_t *seg, control_drag_mode_t break; default: - warning("control_point_in_handle(): oops, can not handle drag mode %d", + g_message ("control_point_in_handle(): oops, can not handle drag mode %d", (int) handle); return 0; } /* switch */ @@ -5290,7 +5290,7 @@ grad_load_gradient(char *filename) num_segments = atoi(line); if (num_segments < 1) { - warning("grad_load_gradient(): invalid number of segments in \"%s\"", filename); + g_message ("grad_load_gradient(): invalid number of segments in \"%s\"", filename); g_free(grad); return; } /* if */ @@ -5313,9 +5313,9 @@ grad_load_gradient(char *filename) &(seg->r0), &(seg->g0), &(seg->b0), &(seg->a0), &(seg->r1), &(seg->g1), &(seg->b1), &(seg->a1), &type, &color) != 13) { - warning("grad_load_gradient(): badly formatted " - "gradient segment %d in \"%s\" --- bad things may " - "happen soon", i, filename); + g_message ("grad_load_gradient(): badly formatted " + "gradient segment %d in \"%s\" --- bad things may " + "happen soon", i, filename); } else { seg->type = (grad_type_t) type; seg->color = (grad_color_t) color; @@ -5347,13 +5347,13 @@ grad_save_gradient(gradient_t *grad, char *filename) g_assert(grad != NULL); if (!filename) { - warning("grad_save_gradient(): can not save gradient with NULL filename"); + g_message ("grad_save_gradient(): can not save gradient with NULL filename"); return; } /* if */ file = fopen(filename, "w"); if (!file) { - warning("grad_save_gradient(): can't open \"%s\"", filename); + g_message ("grad_save_gradient(): can't open \"%s\"", filename); return; } /* if */ diff --git a/app/gradient_editor.c b/app/gradient_editor.c index cf7e311a6c..ba4b1fdd93 100644 --- a/app/gradient_editor.c +++ b/app/gradient_editor.c @@ -1312,7 +1312,7 @@ ed_do_new_gradient_callback(GtkWidget *widget, gpointer client_data, gpointer ca gradient_name = (char *) call_data; if (!gradient_name) { - warning("ed_do_new_gradient_callback(): oops, received NULL in call_data"); + g_message ("ed_do_new_gradient_callback(): oops, received NULL in call_data"); return; } /* if */ @@ -1369,7 +1369,7 @@ ed_do_copy_gradient_callback(GtkWidget *widget, gpointer client_data, gpointer c gradient_name = (char *) call_data; if (!gradient_name) { - warning("ed_do_copy_gradient_callback(): oops, received NULL in call_data"); + g_message ("ed_do_copy_gradient_callback(): oops, received NULL in call_data"); return; } /* if */ @@ -1622,7 +1622,7 @@ ed_do_save_pov_callback(GtkWidget *widget, gpointer client_data) file = fopen(filename, "w"); if (!file) - warning("ed_do_save_pov_callback(): oops, could not open \"%s\"", filename); + g_message ("ed_do_save_pov_callback(): oops, could not open \"%s\"", filename); else { fprintf(file, "/* color_map file created by the GIMP */\n"); fprintf(file, "/* http://www.gimp.org/ */\n"); @@ -2189,7 +2189,7 @@ control_do_hint(gint x, gint y) break; default: - warning("control_do_hint: oops, in_handle is true " + g_message ("control_do_hint: oops, in_handle is true " "yet we got handle type %d", (int) handle); break; } /* switch */ @@ -2293,7 +2293,7 @@ control_button_press(gint x, gint y, guint button, guint state) return; default: - warning("control_button_press(): oops, in_handle is true " + g_message ("control_button_press(): oops, in_handle is true " "yet we got handle type %d", (int) handle); return; } /* switch */ @@ -2337,7 +2337,7 @@ control_point_in_handle(gint x, gint y, grad_segment_t *seg, control_drag_mode_t break; default: - warning("control_point_in_handle(): oops, can not handle drag mode %d", + g_message ("control_point_in_handle(): oops, can not handle drag mode %d", (int) handle); return 0; } /* switch */ @@ -5290,7 +5290,7 @@ grad_load_gradient(char *filename) num_segments = atoi(line); if (num_segments < 1) { - warning("grad_load_gradient(): invalid number of segments in \"%s\"", filename); + g_message ("grad_load_gradient(): invalid number of segments in \"%s\"", filename); g_free(grad); return; } /* if */ @@ -5313,9 +5313,9 @@ grad_load_gradient(char *filename) &(seg->r0), &(seg->g0), &(seg->b0), &(seg->a0), &(seg->r1), &(seg->g1), &(seg->b1), &(seg->a1), &type, &color) != 13) { - warning("grad_load_gradient(): badly formatted " - "gradient segment %d in \"%s\" --- bad things may " - "happen soon", i, filename); + g_message ("grad_load_gradient(): badly formatted " + "gradient segment %d in \"%s\" --- bad things may " + "happen soon", i, filename); } else { seg->type = (grad_type_t) type; seg->color = (grad_color_t) color; @@ -5347,13 +5347,13 @@ grad_save_gradient(gradient_t *grad, char *filename) g_assert(grad != NULL); if (!filename) { - warning("grad_save_gradient(): can not save gradient with NULL filename"); + g_message ("grad_save_gradient(): can not save gradient with NULL filename"); return; } /* if */ file = fopen(filename, "w"); if (!file) { - warning("grad_save_gradient(): can't open \"%s\"", filename); + g_message ("grad_save_gradient(): can't open \"%s\"", filename); return; } /* if */ diff --git a/app/gui/channels-dialog.c b/app/gui/channels-dialog.c index 24fffcf7c9..ef1207a50a 100644 --- a/app/gui/channels-dialog.c +++ b/app/gui/channels-dialog.c @@ -798,10 +798,10 @@ channel_list_events (GtkWidget *widget, switch (kevent->keyval) { case GDK_Up: - printf ("up arrow\n"); + /* printf ("up arrow\n"); */ break; case GDK_Down: - printf ("down arrow\n"); + /* printf ("down arrow\n"); */ break; default: return FALSE; diff --git a/app/gui/commands.c b/app/gui/commands.c index 9e9543ed3e..ceaf9a3633 100644 --- a/app/gui/commands.c +++ b/app/gui/commands.c @@ -564,29 +564,25 @@ file_prefs_ok_callback (GtkWidget *widget, if (levels_of_undo < 0) { - message_box("Error: Levels of undo must be zero or greater.", - NULL, NULL); + g_message ("Error: Levels of undo must be zero or greater."); levels_of_undo = old_levels_of_undo; return; } if (marching_speed < 50) { - message_box("Error: Marching speed must be 50 or greater.", - NULL, NULL); + g_message ("Error: Marching speed must be 50 or greater."); marching_speed = old_marching_speed; return; } if (default_width < 1) { - message_box("Error: Default width must be one or greater.", - NULL, NULL); + g_message ("Error: Default width must be one or greater."); default_width = old_default_width; return; } if (default_height < 1) { - message_box("Error: Default height must be one or greater.", - NULL, NULL); + g_message ("Error: Default height must be one or greater."); default_height = old_default_height; return; } @@ -752,7 +748,7 @@ file_prefs_save_callback (GtkWidget *widget, gradient_path = save_gradient_path; if (restart_notification) - message_box("You will need to restart GIMP for these changes to take effect.", NULL, NULL); + g_message ("You will need to restart GIMP for these changes to take effect."); g_list_free (update); g_list_free (remove); @@ -2486,7 +2482,7 @@ image_resize_callback (GtkWidget *w, } else { - message_box("Resize Error: Both width and height must be greater than zero.", NULL, NULL); + g_message ("Resize Error: Both width and height must be greater than zero."); return; } } @@ -2516,7 +2512,7 @@ image_scale_callback (GtkWidget *w, } else { - message_box("Scale Error: Both width and height must be greater than zero.", NULL, NULL); + g_message ("Scale Error: Both width and height must be greater than zero."); return; } } diff --git a/app/gui/gradient-editor.c b/app/gui/gradient-editor.c index cf7e311a6c..ba4b1fdd93 100644 --- a/app/gui/gradient-editor.c +++ b/app/gui/gradient-editor.c @@ -1312,7 +1312,7 @@ ed_do_new_gradient_callback(GtkWidget *widget, gpointer client_data, gpointer ca gradient_name = (char *) call_data; if (!gradient_name) { - warning("ed_do_new_gradient_callback(): oops, received NULL in call_data"); + g_message ("ed_do_new_gradient_callback(): oops, received NULL in call_data"); return; } /* if */ @@ -1369,7 +1369,7 @@ ed_do_copy_gradient_callback(GtkWidget *widget, gpointer client_data, gpointer c gradient_name = (char *) call_data; if (!gradient_name) { - warning("ed_do_copy_gradient_callback(): oops, received NULL in call_data"); + g_message ("ed_do_copy_gradient_callback(): oops, received NULL in call_data"); return; } /* if */ @@ -1622,7 +1622,7 @@ ed_do_save_pov_callback(GtkWidget *widget, gpointer client_data) file = fopen(filename, "w"); if (!file) - warning("ed_do_save_pov_callback(): oops, could not open \"%s\"", filename); + g_message ("ed_do_save_pov_callback(): oops, could not open \"%s\"", filename); else { fprintf(file, "/* color_map file created by the GIMP */\n"); fprintf(file, "/* http://www.gimp.org/ */\n"); @@ -2189,7 +2189,7 @@ control_do_hint(gint x, gint y) break; default: - warning("control_do_hint: oops, in_handle is true " + g_message ("control_do_hint: oops, in_handle is true " "yet we got handle type %d", (int) handle); break; } /* switch */ @@ -2293,7 +2293,7 @@ control_button_press(gint x, gint y, guint button, guint state) return; default: - warning("control_button_press(): oops, in_handle is true " + g_message ("control_button_press(): oops, in_handle is true " "yet we got handle type %d", (int) handle); return; } /* switch */ @@ -2337,7 +2337,7 @@ control_point_in_handle(gint x, gint y, grad_segment_t *seg, control_drag_mode_t break; default: - warning("control_point_in_handle(): oops, can not handle drag mode %d", + g_message ("control_point_in_handle(): oops, can not handle drag mode %d", (int) handle); return 0; } /* switch */ @@ -5290,7 +5290,7 @@ grad_load_gradient(char *filename) num_segments = atoi(line); if (num_segments < 1) { - warning("grad_load_gradient(): invalid number of segments in \"%s\"", filename); + g_message ("grad_load_gradient(): invalid number of segments in \"%s\"", filename); g_free(grad); return; } /* if */ @@ -5313,9 +5313,9 @@ grad_load_gradient(char *filename) &(seg->r0), &(seg->g0), &(seg->b0), &(seg->a0), &(seg->r1), &(seg->g1), &(seg->b1), &(seg->a1), &type, &color) != 13) { - warning("grad_load_gradient(): badly formatted " - "gradient segment %d in \"%s\" --- bad things may " - "happen soon", i, filename); + g_message ("grad_load_gradient(): badly formatted " + "gradient segment %d in \"%s\" --- bad things may " + "happen soon", i, filename); } else { seg->type = (grad_type_t) type; seg->color = (grad_color_t) color; @@ -5347,13 +5347,13 @@ grad_save_gradient(gradient_t *grad, char *filename) g_assert(grad != NULL); if (!filename) { - warning("grad_save_gradient(): can not save gradient with NULL filename"); + g_message ("grad_save_gradient(): can not save gradient with NULL filename"); return; } /* if */ file = fopen(filename, "w"); if (!file) { - warning("grad_save_gradient(): can't open \"%s\"", filename); + g_message ("grad_save_gradient(): can't open \"%s\"", filename); return; } /* if */ diff --git a/app/gui/help-commands.c b/app/gui/help-commands.c index 9e9543ed3e..ceaf9a3633 100644 --- a/app/gui/help-commands.c +++ b/app/gui/help-commands.c @@ -564,29 +564,25 @@ file_prefs_ok_callback (GtkWidget *widget, if (levels_of_undo < 0) { - message_box("Error: Levels of undo must be zero or greater.", - NULL, NULL); + g_message ("Error: Levels of undo must be zero or greater."); levels_of_undo = old_levels_of_undo; return; } if (marching_speed < 50) { - message_box("Error: Marching speed must be 50 or greater.", - NULL, NULL); + g_message ("Error: Marching speed must be 50 or greater."); marching_speed = old_marching_speed; return; } if (default_width < 1) { - message_box("Error: Default width must be one or greater.", - NULL, NULL); + g_message ("Error: Default width must be one or greater."); default_width = old_default_width; return; } if (default_height < 1) { - message_box("Error: Default height must be one or greater.", - NULL, NULL); + g_message ("Error: Default height must be one or greater."); default_height = old_default_height; return; } @@ -752,7 +748,7 @@ file_prefs_save_callback (GtkWidget *widget, gradient_path = save_gradient_path; if (restart_notification) - message_box("You will need to restart GIMP for these changes to take effect.", NULL, NULL); + g_message ("You will need to restart GIMP for these changes to take effect."); g_list_free (update); g_list_free (remove); @@ -2486,7 +2482,7 @@ image_resize_callback (GtkWidget *w, } else { - message_box("Resize Error: Both width and height must be greater than zero.", NULL, NULL); + g_message ("Resize Error: Both width and height must be greater than zero."); return; } } @@ -2516,7 +2512,7 @@ image_scale_callback (GtkWidget *w, } else { - message_box("Scale Error: Both width and height must be greater than zero.", NULL, NULL); + g_message ("Scale Error: Both width and height must be greater than zero."); return; } } diff --git a/app/gui/layers-dialog.c b/app/gui/layers-dialog.c index 4cd0496af2..9b5a6c0dea 100644 --- a/app/gui/layers-dialog.c +++ b/app/gui/layers-dialog.c @@ -1498,10 +1498,10 @@ layer_list_events (GtkWidget *widget, switch (kevent->keyval) { case GDK_Up: - printf ("up arrow\n"); + /* printf ("up arrow\n"); */ break; case GDK_Down: - printf ("down arrow\n"); + /* printf ("down arrow\n"); */ break; default: return FALSE; @@ -2939,7 +2939,7 @@ new_layer_query_ok_callback (GtkWidget *w, } else { - warning("new_layer_query_ok_callback: could not allocate new layer"); + g_message ("new_layer_query_ok_callback: could not allocate new layer"); } } @@ -3584,7 +3584,7 @@ scale_layer_query_ok_callback (GtkWidget *w, g_free (options); } else - message_box ("Invalid width or height. Both must be positive.", NULL, NULL); + g_message ("Invalid width or height. Both must be positive."); } static void @@ -3705,7 +3705,7 @@ resize_layer_query_ok_callback (GtkWidget *w, g_free (options); } else - message_box ("Invalid width or height. Both must be positive.", NULL, NULL); + g_message ("Invalid width or height. Both must be positive."); } static void diff --git a/app/gui/palette-editor.c b/app/gui/palette-editor.c index 70af3ea9ed..ee1f8afbe5 100644 --- a/app/gui/palette-editor.c +++ b/app/gui/palette-editor.c @@ -608,7 +608,7 @@ palette_entries_save (PaletteEntriesP palette, /* Open the requested file */ if (! (fp = fopen (filename, "w"))) { - warning ("can't save palette \"%s\"\n", filename); + g_message ("can't save palette \"%s\"\n", filename); return; } diff --git a/app/gui/plug-in-commands.c b/app/gui/plug-in-commands.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/gui/plug-in-commands.c +++ b/app/gui/plug-in-commands.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/gui/plug-in-menus.c b/app/gui/plug-in-menus.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/gui/plug-in-menus.c +++ b/app/gui/plug-in-menus.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/histogram_tool.c b/app/histogram_tool.c index 7dc4485b57..883c229e8b 100644 --- a/app/histogram_tool.c +++ b/app/histogram_tool.c @@ -387,7 +387,7 @@ histogram_tool_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Histogram does not operate on indexed drawables.", NULL, NULL); + g_message ("Histogram does not operate on indexed drawables."); return; } diff --git a/app/hue_saturation.c b/app/hue_saturation.c index bd2e8ae4be..96df37dcce 100644 --- a/app/hue_saturation.c +++ b/app/hue_saturation.c @@ -364,7 +364,7 @@ hue_saturation_initialize (void *gdisp_ptr) if (! drawable_color (gimage_active_drawable (gdisp->gimage))) { - message_box ("Hue-Saturation operates only on RGB color drawables.", NULL, NULL); + g_message ("Hue-Saturation operates only on RGB color drawables."); return; } diff --git a/app/invert.c b/app/invert.c index fcca80903e..82db12a1c7 100644 --- a/app/invert.c +++ b/app/invert.c @@ -42,7 +42,7 @@ image_invert (gimage_ptr) if (drawable_indexed (drawable)) { - message_box ("Invert does not operate on indexed drawables.", NULL, NULL); + g_message ("Invert does not operate on indexed drawables."); return; } @@ -53,7 +53,7 @@ image_invert (gimage_ptr) PDB_END); if (return_vals[0].value.pdb_int != PDB_SUCCESS) - message_box ("Invert operation failed.", NULL, NULL); + g_message ("Invert operation failed."); procedural_db_destroy_args (return_vals, nreturn_vals); } diff --git a/app/iscissors.c b/app/iscissors.c index 847ca02376..55d318b437 100644 --- a/app/iscissors.c +++ b/app/iscissors.c @@ -509,10 +509,6 @@ iscissors_button_press (Tool *tool, iscissors = (Iscissors *) tool->private; drawable = gimage_active_drawable (gdisp->gimage); - /*message_box ("Intelligent Scissors is currently not enabled\nfor use with - the tile-based GIMP\non anything but yosh's computer.", NULL, NULL);*/ - /* return;*/ - gdisplay_untransform_coords (gdisp, bevent->x, bevent->y, &iscissors->x, &iscissors->y, FALSE, TRUE); @@ -1803,7 +1799,7 @@ bezierify_boundary (Tool *tool) if (iscissors->num_pts < 4) { - message_box ("Boundary contains < 4 points! Cannot bezierify.", NULL, NULL); + g_message ("Boundary contains < 4 points! Cannot bezierify."); return; } diff --git a/app/layer.c b/app/layer.c index 141cf12696..c8dd152967 100644 --- a/app/layer.c +++ b/app/layer.c @@ -235,7 +235,7 @@ layer_new (gimage_ID, width, height, type, name, opacity, mode) Layer * layer; if (width == 0 || height == 0) { - warning ("Zero width or height layers not allowed."); + g_message ("Zero width or height layers not allowed."); return NULL; } @@ -326,7 +326,7 @@ layer_copy (layer, add_alpha) new_layer = layer_new (GIMP_DRAWABLE(layer)->gimage_ID, GIMP_DRAWABLE(layer)->width, GIMP_DRAWABLE(layer)->height, new_type, layer_name, layer->opacity, layer->mode); if (!new_layer) { - warning("layer_copy: could not allocate new layer"); + g_message ("layer_copy: could not allocate new layer"); goto cleanup; } @@ -399,7 +399,7 @@ layer_from_tiles (gimage_ptr, drawable, tiles, name, opacity, mode) layer_type, name, opacity, mode); if (!new_layer) { - warning("layer_from_tiles: could not allocate new layer"); + g_message ("layer_from_tiles: could not allocate new layer"); return NULL; } diff --git a/app/layers_dialog.c b/app/layers_dialog.c index 4cd0496af2..9b5a6c0dea 100644 --- a/app/layers_dialog.c +++ b/app/layers_dialog.c @@ -1498,10 +1498,10 @@ layer_list_events (GtkWidget *widget, switch (kevent->keyval) { case GDK_Up: - printf ("up arrow\n"); + /* printf ("up arrow\n"); */ break; case GDK_Down: - printf ("down arrow\n"); + /* printf ("down arrow\n"); */ break; default: return FALSE; @@ -2939,7 +2939,7 @@ new_layer_query_ok_callback (GtkWidget *w, } else { - warning("new_layer_query_ok_callback: could not allocate new layer"); + g_message ("new_layer_query_ok_callback: could not allocate new layer"); } } @@ -3584,7 +3584,7 @@ scale_layer_query_ok_callback (GtkWidget *w, g_free (options); } else - message_box ("Invalid width or height. Both must be positive.", NULL, NULL); + g_message ("Invalid width or height. Both must be positive."); } static void @@ -3705,7 +3705,7 @@ resize_layer_query_ok_callback (GtkWidget *w, g_free (options); } else - message_box ("Invalid width or height. Both must be positive.", NULL, NULL); + g_message ("Invalid width or height. Both must be positive."); } static void diff --git a/app/levels.c b/app/levels.c index c5e307fa13..07719657db 100644 --- a/app/levels.c +++ b/app/levels.c @@ -425,7 +425,7 @@ levels_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Levels for indexed drawables cannot be adjusted.", NULL, NULL); + g_message ("Levels for indexed drawables cannot be adjusted."); return; } diff --git a/app/main.c b/app/main.c index 4ff205daa0..0c6094ecb3 100644 --- a/app/main.c +++ b/app/main.c @@ -199,6 +199,9 @@ main (int argc, char **argv) if (show_version || show_help) exit (0); + /* Print to console at first */ + g_set_message_handler (&message_console_func); + /* Handle some signals */ signal (SIGHUP, on_signal); signal (SIGINT, on_signal); diff --git a/app/menus/plug-in-menus.c b/app/menus/plug-in-menus.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/menus/plug-in-menus.c +++ b/app/menus/plug-in-menus.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/paint/gimpclone.c b/app/paint/gimpclone.c index 3964611b9e..9fecd23555 100644 --- a/app/paint/gimpclone.c +++ b/app/paint/gimpclone.c @@ -228,7 +228,7 @@ clone_paint_func (PaintCore *paint_core, if (clone_options->type == PatternClone) if (!get_active_pattern ()) - message_box ("No patterns available for this operation.", NULL, NULL); + g_message ("No patterns available for this operation."); break; case FINISH_PAINT : diff --git a/app/paint/gimpsourcecore.c b/app/paint/gimpsourcecore.c index 3964611b9e..9fecd23555 100644 --- a/app/paint/gimpsourcecore.c +++ b/app/paint/gimpsourcecore.c @@ -228,7 +228,7 @@ clone_paint_func (PaintCore *paint_core, if (clone_options->type == PatternClone) if (!get_active_pattern ()) - message_box ("No patterns available for this operation.", NULL, NULL); + g_message ("No patterns available for this operation."); break; case FINISH_PAINT : diff --git a/app/paint_core.c b/app/paint_core.c index 0c1f4dd35b..e69982c8a3 100644 --- a/app/paint_core.c +++ b/app/paint_core.c @@ -385,7 +385,7 @@ paint_core_init (paint_core, drawable, x, y) /* Each buffer is the same size as the maximum bounds of the active brush... */ if (!(brush = get_active_brush ())) { - warning ("No brushes available for use with this tool."); + g_message ("No brushes available for use with this tool."); return FALSE; } diff --git a/app/palette.c b/app/palette.c index 70af3ea9ed..ee1f8afbe5 100644 --- a/app/palette.c +++ b/app/palette.c @@ -608,7 +608,7 @@ palette_entries_save (PaletteEntriesP palette, /* Open the requested file */ if (! (fp = fopen (filename, "w"))) { - warning ("can't save palette \"%s\"\n", filename); + g_message ("can't save palette \"%s\"\n", filename); return; } diff --git a/app/patterns.c b/app/patterns.c index 10b8b4e50e..114815e2ea 100644 --- a/app/patterns.c +++ b/app/patterns.c @@ -199,8 +199,8 @@ load_pattern (char *filename) /* Check for correct version */ if (header.version != FILE_VERSION) { - warning ("Unknown GIMP version #%d in \"%s\"\n", header.version, - filename); + g_message ("Unknown GIMP version #%d in \"%s\"\n", header.version, + filename); fclose (fp); free_pattern (pattern); return; @@ -215,7 +215,7 @@ load_pattern (char *filename) pattern->name = (char *) g_malloc (sizeof (char) * bn_size); if ((fread (pattern->name, 1, bn_size, fp)) < bn_size) { - warning ("Error in GIMP pattern file...aborting."); + g_message ("Error in GIMP pattern file...aborting."); fclose (fp); free_pattern (pattern); return; @@ -229,7 +229,7 @@ load_pattern (char *filename) if ((fread (temp_buf_data (pattern->mask), 1, header.width * header.height * header.bytes, fp)) < header.width * header.height * header.bytes) - warning ("GIMP pattern file appears to be truncated."); + g_message ("GIMP pattern file appears to be truncated."); /* Clean up */ fclose (fp); diff --git a/app/plug-in/gimpplugin-message.c b/app/plug-in/gimpplugin-message.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug-in/gimpplugin-message.c +++ b/app/plug-in/gimpplugin-message.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/plug-in/gimpplugin-progress.c b/app/plug-in/gimpplugin-progress.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug-in/gimpplugin-progress.c +++ b/app/plug-in/gimpplugin-progress.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/plug-in/gimpplugin.c b/app/plug-in/gimpplugin.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug-in/gimpplugin.c +++ b/app/plug-in/gimpplugin.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/plug-in/gimppluginmanager-call.c b/app/plug-in/gimppluginmanager-call.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug-in/gimppluginmanager-call.c +++ b/app/plug-in/gimppluginmanager-call.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/plug-in/gimppluginmanager-run.c b/app/plug-in/gimppluginmanager-run.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug-in/gimppluginmanager-run.c +++ b/app/plug-in/gimppluginmanager-run.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/plug-in/gimppluginmanager.c b/app/plug-in/gimppluginmanager.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug-in/gimppluginmanager.c +++ b/app/plug-in/gimppluginmanager.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/plug-in/gimppluginshm.c b/app/plug-in/gimppluginshm.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug-in/gimppluginshm.c +++ b/app/plug-in/gimppluginshm.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/plug-in/plug-in-def.c b/app/plug-in/plug-in-def.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug-in/plug-in-def.c +++ b/app/plug-in/plug-in-def.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/plug-in/plug-in-message.c b/app/plug-in/plug-in-message.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug-in/plug-in-message.c +++ b/app/plug-in/plug-in-message.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/plug-in/plug-in-params.c b/app/plug-in/plug-in-params.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug-in/plug-in-params.c +++ b/app/plug-in/plug-in-params.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/plug-in/plug-in-progress.c b/app/plug-in/plug-in-progress.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug-in/plug-in-progress.c +++ b/app/plug-in/plug-in-progress.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/plug-in/plug-in-run.c b/app/plug-in/plug-in-run.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug-in/plug-in-run.c +++ b/app/plug-in/plug-in-run.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/plug-in/plug-in-shm.c b/app/plug-in/plug-in-shm.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug-in/plug-in-shm.c +++ b/app/plug-in/plug-in-shm.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/plug-in/plug-in.c b/app/plug-in/plug-in.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug-in/plug-in.c +++ b/app/plug-in/plug-in.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/plug-in/plug-ins.c b/app/plug-in/plug-ins.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug-in/plug-ins.c +++ b/app/plug-in/plug-ins.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/plug_in.c b/app/plug_in.c index 27d13ff4a3..ff25e8be85 100644 --- a/app/plug_in.c +++ b/app/plug_in.c @@ -114,6 +114,8 @@ static void plug_in_args_destroy (Argument *args, static Argument* progress_init_invoker (Argument *args); static Argument* progress_update_invoker (Argument *args); +static Argument* message_invoker (Argument *args); + static GSList *plug_in_defs = NULL; static GSList *gimprc_proc_defs = NULL; @@ -184,6 +186,30 @@ static ProcRecord progress_update_proc = }; +static ProcArg message_args[] = +{ + { PDB_STRING, + "message", + "Message to display in the dialog." } +}; + +static ProcRecord message_proc = +{ + "gimp_message", + "Displays a dialog box with a message", + "Displays a dialog box with a message. Useful for status or error reporting.", + "Spencer Kimball & Peter Mattis", + "Spencer Kimball & Peter Mattis", + "1995-1996", + PDB_INTERNAL, + 1, + message_args, + 0, + NULL, + { { message_invoker } }, +}; + + void plug_in_init () { @@ -198,6 +224,9 @@ plug_in_init () procedural_db_register (&progress_init_proc); procedural_db_register (&progress_update_proc); + /* initialize the message box procedural db calls */ + procedural_db_register (&message_proc); + /* initialize the gimp protocol library and set the read and * write handlers. */ @@ -652,7 +681,7 @@ plug_in_new (char *name) path = search_in_path (plug_in_path, name); if (!path) { - warning ("unable to locate plug-in: \"%s\"", name); + g_message ("unable to locate plug-in: \"%s\"", name); return NULL; } } @@ -732,7 +761,7 @@ plug_in_open (PlugIn *plug_in) */ if ((pipe (my_read) == -1) || (pipe (my_write) == -1)) { - warning ("unable to open pipe"); + g_message ("unable to open pipe"); return 0; } @@ -780,7 +809,7 @@ plug_in_open (PlugIn *plug_in) } else if (plug_in->pid == -1) { - warning ("unable to run plug-in: %s\n", plug_in->args[0]); + g_message ("unable to run plug-in: %s\n", plug_in->args[0]); plug_in_destroy (plug_in); return 0; } @@ -2973,3 +3002,10 @@ progress_update_invoker (Argument *args) return procedural_db_return_args (&progress_update_proc, success); } + +static Argument* +message_invoker (Argument *args) +{ + g_message (args[0].value.pdb_pointer, NULL, NULL); + return procedural_db_return_args (&message_proc, TRUE); +} diff --git a/app/posterize.c b/app/posterize.c index cbe62d893b..16937de503 100644 --- a/app/posterize.c +++ b/app/posterize.c @@ -251,7 +251,7 @@ posterize_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Posterize does not operate on indexed drawables.", NULL, NULL); + g_message ("Posterize does not operate on indexed drawables."); return; } diff --git a/app/regex.c b/app/regex.c index 879d3b601a..a25800d46e 100644 --- a/app/regex.c +++ b/app/regex.c @@ -3,11 +3,11 @@ (Implements POSIX draft P1003.2/D11.2, except for some of the internationalization features.) - Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. the C library, however. The master source lives in /gd/gnu/lib. -NOTE: The canonical source of this file is maintained with the +NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it @@ -21,7 +21,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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, +along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* AIX requires this to be the first thing in the file. */ @@ -46,8 +46,9 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* For platform which support the ISO C amendement 1 functionality we support user defined character classes. */ #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) -# include + /* Solaris 2.5 has a bug: must be included before . */ # include +# include #endif /* This is for other GNU distributions with internationalized messages. */ @@ -188,6 +189,7 @@ init_syntax_once () Defining isascii to 1 should let any compiler worth its salt eliminate the && through constant folding." */ +#undef ISASCII #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) #define ISASCII(c) 1 #else @@ -205,6 +207,7 @@ init_syntax_once () #define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c)) #endif +#undef ISPRINT #define ISPRINT(c) (ISASCII (c) && isprint (c)) #define ISDIGIT(c) (ISASCII (c) && isdigit (c)) #define ISALNUM(c) (ISASCII (c) && isalnum (c)) @@ -1690,7 +1693,7 @@ typedef struct # define IS_CHAR_CLASS(string) wctype (string) #else -# define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */ +# define CHAR_CLASS_MAX_LENGTH 256 /* Namely, `xdigit'. */ # define IS_CHAR_CLASS(string) \ (STREQ (string, "alpha") || STREQ (string, "upper") \ @@ -2165,7 +2168,7 @@ regex_compile (pattern, size, syntax, bufp) for (;;) { PATFETCH (c); - if (c == ':' || c == ']' || p == pend + if ((c == ':' && *p == ']') || p == pend || c1 == CHAR_CLASS_MAX_LENGTH) break; str[c1++] = c; @@ -2378,13 +2381,13 @@ regex_compile (pattern, size, syntax, bufp) if (syntax & RE_NO_BK_PARENS) goto normal_backslash; if (COMPILE_STACK_EMPTY) - { - if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) - goto normal_backslash; - else - FREE_STACK_RETURN (REG_ERPAREN); - } - + { + if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) + goto normal_backslash; + else + FREE_STACK_RETURN (REG_ERPAREN); + } + handle_close: if (fixup_alt_jump) { /* Push a dummy failure point at the end of the @@ -2400,13 +2403,13 @@ regex_compile (pattern, size, syntax, bufp) /* See similar code for backslashed left paren above. */ if (COMPILE_STACK_EMPTY) - { - if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) - goto normal_char; - else - FREE_STACK_RETURN (REG_ERPAREN); - } - + { + if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) + goto normal_char; + else + FREE_STACK_RETURN (REG_ERPAREN); + } + /* Since we just checked for an empty stack above, this ``can't happen''. */ assert (compile_stack.avail != 0); diff --git a/app/regex.h b/app/regex.h index 08272499f3..e86dfb4a2b 100644 --- a/app/regex.h +++ b/app/regex.h @@ -1,10 +1,10 @@ /* Definitions for data structures and routines for the regular expression library, version 0.12. - Copyright (C) 1985,89,90,91,92,93,95,96,97 Free Software Foundation, Inc. + Copyright (C) 1985,89,90,91,92,93,95,96,97, 98 Free Software Foundation, Inc. the C library, however. The master source lives in /gd/gnu/lib. -NOTE: The canonical source of this file is maintained with the +NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it @@ -18,7 +18,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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, +along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _REGEX_H diff --git a/app/regexrepl.c b/app/regexrepl.c index 879d3b601a..a25800d46e 100644 --- a/app/regexrepl.c +++ b/app/regexrepl.c @@ -3,11 +3,11 @@ (Implements POSIX draft P1003.2/D11.2, except for some of the internationalization features.) - Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. the C library, however. The master source lives in /gd/gnu/lib. -NOTE: The canonical source of this file is maintained with the +NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it @@ -21,7 +21,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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, +along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* AIX requires this to be the first thing in the file. */ @@ -46,8 +46,9 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* For platform which support the ISO C amendement 1 functionality we support user defined character classes. */ #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) -# include + /* Solaris 2.5 has a bug: must be included before . */ # include +# include #endif /* This is for other GNU distributions with internationalized messages. */ @@ -188,6 +189,7 @@ init_syntax_once () Defining isascii to 1 should let any compiler worth its salt eliminate the && through constant folding." */ +#undef ISASCII #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) #define ISASCII(c) 1 #else @@ -205,6 +207,7 @@ init_syntax_once () #define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c)) #endif +#undef ISPRINT #define ISPRINT(c) (ISASCII (c) && isprint (c)) #define ISDIGIT(c) (ISASCII (c) && isdigit (c)) #define ISALNUM(c) (ISASCII (c) && isalnum (c)) @@ -1690,7 +1693,7 @@ typedef struct # define IS_CHAR_CLASS(string) wctype (string) #else -# define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */ +# define CHAR_CLASS_MAX_LENGTH 256 /* Namely, `xdigit'. */ # define IS_CHAR_CLASS(string) \ (STREQ (string, "alpha") || STREQ (string, "upper") \ @@ -2165,7 +2168,7 @@ regex_compile (pattern, size, syntax, bufp) for (;;) { PATFETCH (c); - if (c == ':' || c == ']' || p == pend + if ((c == ':' && *p == ']') || p == pend || c1 == CHAR_CLASS_MAX_LENGTH) break; str[c1++] = c; @@ -2378,13 +2381,13 @@ regex_compile (pattern, size, syntax, bufp) if (syntax & RE_NO_BK_PARENS) goto normal_backslash; if (COMPILE_STACK_EMPTY) - { - if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) - goto normal_backslash; - else - FREE_STACK_RETURN (REG_ERPAREN); - } - + { + if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) + goto normal_backslash; + else + FREE_STACK_RETURN (REG_ERPAREN); + } + handle_close: if (fixup_alt_jump) { /* Push a dummy failure point at the end of the @@ -2400,13 +2403,13 @@ regex_compile (pattern, size, syntax, bufp) /* See similar code for backslashed left paren above. */ if (COMPILE_STACK_EMPTY) - { - if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) - goto normal_char; - else - FREE_STACK_RETURN (REG_ERPAREN); - } - + { + if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) + goto normal_char; + else + FREE_STACK_RETURN (REG_ERPAREN); + } + /* Since we just checked for an empty stack above, this ``can't happen''. */ assert (compile_stack.avail != 0); diff --git a/app/regexrepl.h b/app/regexrepl.h index 08272499f3..e86dfb4a2b 100644 --- a/app/regexrepl.h +++ b/app/regexrepl.h @@ -1,10 +1,10 @@ /* Definitions for data structures and routines for the regular expression library, version 0.12. - Copyright (C) 1985,89,90,91,92,93,95,96,97 Free Software Foundation, Inc. + Copyright (C) 1985,89,90,91,92,93,95,96,97, 98 Free Software Foundation, Inc. the C library, however. The master source lives in /gd/gnu/lib. -NOTE: The canonical source of this file is maintained with the +NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it @@ -18,7 +18,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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, +along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _REGEX_H diff --git a/app/temp_buf.c b/app/temp_buf.c index 482e216a54..63b3030a70 100644 --- a/app/temp_buf.c +++ b/app/temp_buf.c @@ -185,7 +185,7 @@ temp_buf_copy (src, dest) if (!src) { - warning ("trying to copy a temp buf which is NULL."); + g_message ("trying to copy a temp buf which is NULL."); return dest; } @@ -195,7 +195,7 @@ temp_buf_copy (src, dest) { new = dest; if (dest->width != src->width || dest->height != src->height) - warning ("In temp_buf_copy, the widths or heights don't match."); + g_message ("In temp_buf_copy, the widths or heights don't match."); /* The temp buf is smart, and can translate between color and gray */ /* (only necessary if not we allocated it */ if (src->bytes != new->bytes) @@ -205,7 +205,7 @@ temp_buf_copy (src, dest) else if (src->bytes == 2) /* grayscale */ temp_buf_to_color (src, new); else - warning ("Cannot convert from indexed color."); + g_message ("Cannot convert from indexed color."); return new; } } @@ -271,7 +271,7 @@ temp_buf_copy_area (src, dest, x, y, w, h, border) if (!src) { - warning ("trying to copy a temp buf which is NULL."); + g_message ("trying to copy a temp buf which is NULL."); return dest; } @@ -295,7 +295,7 @@ temp_buf_copy_area (src, dest, x, y, w, h, border) { new = dest; if (dest->bytes != src->bytes) - warning ("In temp_buf_copy_area, the widths or heights or bytes don't match."); + g_message ("In temp_buf_copy_area, the widths or heights or bytes don't match."); } /* Set the offsets for the dest */ @@ -464,7 +464,7 @@ temp_buf_swap (buf) { if (stat_buf.st_mode & S_IFDIR) { - warning ("Error in temp buf caching: \"%s\" is a directory (cannot overwrite)", + g_message ("Error in temp buf caching: \"%s\" is a directory (cannot overwrite)", filename); g_free (filename); return; @@ -480,7 +480,7 @@ temp_buf_swap (buf) else { perror ("Error in temp buf caching"); - warning ("Cannot write \"%s\"", filename); + g_message ("Cannot write \"%s\"", filename); g_free (filename); return; } @@ -537,7 +537,7 @@ temp_buf_unswap (buf) unlink (buf->filename); } if (!succ) - warning ("Error in temp buf caching: information swapped to disk was lost!"); + g_message ("Error in temp buf caching: information swapped to disk was lost!"); g_free (buf->filename); /* free filename */ buf->filename = NULL; @@ -570,7 +570,7 @@ temp_buf_swap_free (buf) unlink (buf->filename); } else - warning ("Error in temp buf disk swapping: information swapped to disk was lost!"); + g_message ("Error in temp buf disk swapping: information swapped to disk was lost!"); if (buf->filename) g_free (buf->filename); /* free filename */ diff --git a/app/text_tool.c b/app/text_tool.c index c030dcdea5..17b61d6f64 100644 --- a/app/text_tool.c +++ b/app/text_tool.c @@ -293,8 +293,7 @@ text_button_press (Tool *tool, text_get_fonts (); if (nfonts == 0) { - message_box ("Note: No fonts found. Text tool not available.", - NULL, NULL); + g_message ("Note: No fonts found. Text tool not available."); nfonts = -1; return; } @@ -1599,11 +1598,9 @@ text_load_font (TextTool *text_tool) if (gdk_error_code == -1) { - char *buf; - buf = g_malloc (strlen (family_str) + 87); - sprintf(buf, "I'm sorry, but the font %s is corrupt.\nPlease ask the system adminstrator to replace it.", family_str); - message_box (buf, NULL, NULL); - g_free (buf); + g_message ("I'm sorry, but the font %s is corrupt.\n" + "Please ask the system adminstrator to replace it.", + family_str); return FALSE; } @@ -1923,7 +1920,7 @@ text_render (GImage *gimage, { if (newmask) { - warning("text_render: could not allocate image"); + g_message ("text_render: could not allocate image"); tile_manager_destroy (newmask); } layer = NULL; diff --git a/app/threshold.c b/app/threshold.c index 574e5b8d04..8c89bb0193 100644 --- a/app/threshold.c +++ b/app/threshold.c @@ -343,7 +343,7 @@ threshold_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Threshold does not operate on indexed drawables.", NULL, NULL); + g_message ("Threshold does not operate on indexed drawables."); return; } diff --git a/app/tools/bezier_select.c b/app/tools/bezier_select.c index fa7f3934d5..c4c67cd68d 100644 --- a/app/tools/bezier_select.c +++ b/app/tools/bezier_select.c @@ -1133,7 +1133,7 @@ bezier_convert (BezierSelect *bezier_sel, x = (long) list->data; list = list->next; if (!list) - warning ("cannot properly scanline convert bezier curve: %d", i); + g_message ("cannot properly scanline convert bezier curve: %d", i); else { /* bounds checking */ diff --git a/app/tools/blend.c b/app/tools/blend.c index e47b86ae2e..aa1b32e827 100644 --- a/app/tools/blend.c +++ b/app/tools/blend.c @@ -550,7 +550,7 @@ blend_button_press (Tool *tool, switch (drawable_type (gimage_active_drawable (gdisp->gimage))) { case INDEXED_GIMAGE: case INDEXEDA_GIMAGE: - message_box ("Blend: Invalid for indexed images.", NULL, NULL); + g_message ("Blend: Invalid for indexed images."); return; break; @@ -622,7 +622,7 @@ blend_button_release (Tool *tool, if (return_vals[0].value.pdb_int == PDB_SUCCESS) gdisplays_flush (); else - message_box ("Blend operation failed.", NULL, NULL); + g_message ("Blend operation failed."); procedural_db_destroy_args (return_vals, nreturn_vals); } diff --git a/app/tools/brightness_contrast.c b/app/tools/brightness_contrast.c index b8a7db81b8..52b57b3e3d 100644 --- a/app/tools/brightness_contrast.c +++ b/app/tools/brightness_contrast.c @@ -286,7 +286,7 @@ brightness_contrast_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Brightness-Contrast does not operate on indexed drawables.", NULL, NULL); + g_message ("Brightness-Contrast does not operate on indexed drawables."); return; } diff --git a/app/tools/bucket_fill.c b/app/tools/bucket_fill.c index f90c33b376..01bc273f8d 100644 --- a/app/tools/bucket_fill.c +++ b/app/tools/bucket_fill.c @@ -327,7 +327,7 @@ bucket_fill_button_release (tool, bevent, gdisp_ptr) if (return_vals[0].value.pdb_int == PDB_SUCCESS) gdisplays_flush (); else - message_box ("Bucket Fill operation failed.", NULL, NULL); + g_message ("Bucket Fill operation failed."); procedural_db_destroy_args (return_vals, nreturn_vals); } @@ -424,7 +424,7 @@ bucket_fill (gimage, drawable, fill_mode, paint_mode, if (!pattern) { - message_box ("No available patterns for this operation.", NULL, NULL); + g_message ("No available patterns for this operation."); return; } diff --git a/app/tools/clone.c b/app/tools/clone.c index 3964611b9e..9fecd23555 100644 --- a/app/tools/clone.c +++ b/app/tools/clone.c @@ -228,7 +228,7 @@ clone_paint_func (PaintCore *paint_core, if (clone_options->type == PatternClone) if (!get_active_pattern ()) - message_box ("No patterns available for this operation.", NULL, NULL); + g_message ("No patterns available for this operation."); break; case FINISH_PAINT : diff --git a/app/tools/color_balance.c b/app/tools/color_balance.c index 9c355b279e..00e762e34d 100644 --- a/app/tools/color_balance.c +++ b/app/tools/color_balance.c @@ -320,7 +320,7 @@ color_balance_initialize (void *gdisp_ptr) if (! drawable_color (gimage_active_drawable (gdisp->gimage))) { - message_box ("Color balance operates only on RGB color drawables.", NULL, NULL); + g_message ("Color balance operates only on RGB color drawables."); return; } diff --git a/app/tools/curves.c b/app/tools/curves.c index 430df58741..e5c24c8afc 100644 --- a/app/tools/curves.c +++ b/app/tools/curves.c @@ -346,7 +346,7 @@ curves_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Curves for indexed drawables cannot be adjusted.", NULL, NULL); + g_message ("Curves for indexed drawables cannot be adjusted."); return; } diff --git a/app/tools/free_select.c b/app/tools/free_select.c index db852e2b65..6abe0ac4c2 100644 --- a/app/tools/free_select.c +++ b/app/tools/free_select.c @@ -212,7 +212,7 @@ scan_convert (int gimage_ID, int num_pts, FreeSelectPoint *pts, x = (long) list->data; list = g_slist_next(list); if (!list) - warning ("Cannot properly scanline convert polygon!\n"); + g_message ("Cannot properly scanline convert polygon!\n"); else { /* bounds checking */ diff --git a/app/tools/gimpblendtool.c b/app/tools/gimpblendtool.c index e47b86ae2e..aa1b32e827 100644 --- a/app/tools/gimpblendtool.c +++ b/app/tools/gimpblendtool.c @@ -550,7 +550,7 @@ blend_button_press (Tool *tool, switch (drawable_type (gimage_active_drawable (gdisp->gimage))) { case INDEXED_GIMAGE: case INDEXEDA_GIMAGE: - message_box ("Blend: Invalid for indexed images.", NULL, NULL); + g_message ("Blend: Invalid for indexed images."); return; break; @@ -622,7 +622,7 @@ blend_button_release (Tool *tool, if (return_vals[0].value.pdb_int == PDB_SUCCESS) gdisplays_flush (); else - message_box ("Blend operation failed.", NULL, NULL); + g_message ("Blend operation failed."); procedural_db_destroy_args (return_vals, nreturn_vals); } diff --git a/app/tools/gimpbrightnesscontrasttool.c b/app/tools/gimpbrightnesscontrasttool.c index b8a7db81b8..52b57b3e3d 100644 --- a/app/tools/gimpbrightnesscontrasttool.c +++ b/app/tools/gimpbrightnesscontrasttool.c @@ -286,7 +286,7 @@ brightness_contrast_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Brightness-Contrast does not operate on indexed drawables.", NULL, NULL); + g_message ("Brightness-Contrast does not operate on indexed drawables."); return; } diff --git a/app/tools/gimpbucketfilltool.c b/app/tools/gimpbucketfilltool.c index f90c33b376..01bc273f8d 100644 --- a/app/tools/gimpbucketfilltool.c +++ b/app/tools/gimpbucketfilltool.c @@ -327,7 +327,7 @@ bucket_fill_button_release (tool, bevent, gdisp_ptr) if (return_vals[0].value.pdb_int == PDB_SUCCESS) gdisplays_flush (); else - message_box ("Bucket Fill operation failed.", NULL, NULL); + g_message ("Bucket Fill operation failed."); procedural_db_destroy_args (return_vals, nreturn_vals); } @@ -424,7 +424,7 @@ bucket_fill (gimage, drawable, fill_mode, paint_mode, if (!pattern) { - message_box ("No available patterns for this operation.", NULL, NULL); + g_message ("No available patterns for this operation."); return; } diff --git a/app/tools/gimpclonetool.c b/app/tools/gimpclonetool.c index 3964611b9e..9fecd23555 100644 --- a/app/tools/gimpclonetool.c +++ b/app/tools/gimpclonetool.c @@ -228,7 +228,7 @@ clone_paint_func (PaintCore *paint_core, if (clone_options->type == PatternClone) if (!get_active_pattern ()) - message_box ("No patterns available for this operation.", NULL, NULL); + g_message ("No patterns available for this operation."); break; case FINISH_PAINT : diff --git a/app/tools/gimpcolorbalancetool.c b/app/tools/gimpcolorbalancetool.c index 9c355b279e..00e762e34d 100644 --- a/app/tools/gimpcolorbalancetool.c +++ b/app/tools/gimpcolorbalancetool.c @@ -320,7 +320,7 @@ color_balance_initialize (void *gdisp_ptr) if (! drawable_color (gimage_active_drawable (gdisp->gimage))) { - message_box ("Color balance operates only on RGB color drawables.", NULL, NULL); + g_message ("Color balance operates only on RGB color drawables."); return; } diff --git a/app/tools/gimpcurvestool.c b/app/tools/gimpcurvestool.c index 430df58741..e5c24c8afc 100644 --- a/app/tools/gimpcurvestool.c +++ b/app/tools/gimpcurvestool.c @@ -346,7 +346,7 @@ curves_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Curves for indexed drawables cannot be adjusted.", NULL, NULL); + g_message ("Curves for indexed drawables cannot be adjusted."); return; } diff --git a/app/tools/gimpfreeselecttool.c b/app/tools/gimpfreeselecttool.c index db852e2b65..6abe0ac4c2 100644 --- a/app/tools/gimpfreeselecttool.c +++ b/app/tools/gimpfreeselecttool.c @@ -212,7 +212,7 @@ scan_convert (int gimage_ID, int num_pts, FreeSelectPoint *pts, x = (long) list->data; list = g_slist_next(list); if (!list) - warning ("Cannot properly scanline convert polygon!\n"); + g_message ("Cannot properly scanline convert polygon!\n"); else { /* bounds checking */ diff --git a/app/tools/gimphistogramtool.c b/app/tools/gimphistogramtool.c index 7dc4485b57..883c229e8b 100644 --- a/app/tools/gimphistogramtool.c +++ b/app/tools/gimphistogramtool.c @@ -387,7 +387,7 @@ histogram_tool_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Histogram does not operate on indexed drawables.", NULL, NULL); + g_message ("Histogram does not operate on indexed drawables."); return; } diff --git a/app/tools/gimphuesaturationtool.c b/app/tools/gimphuesaturationtool.c index bd2e8ae4be..96df37dcce 100644 --- a/app/tools/gimphuesaturationtool.c +++ b/app/tools/gimphuesaturationtool.c @@ -364,7 +364,7 @@ hue_saturation_initialize (void *gdisp_ptr) if (! drawable_color (gimage_active_drawable (gdisp->gimage))) { - message_box ("Hue-Saturation operates only on RGB color drawables.", NULL, NULL); + g_message ("Hue-Saturation operates only on RGB color drawables."); return; } diff --git a/app/tools/gimpiscissorstool.c b/app/tools/gimpiscissorstool.c index 847ca02376..55d318b437 100644 --- a/app/tools/gimpiscissorstool.c +++ b/app/tools/gimpiscissorstool.c @@ -509,10 +509,6 @@ iscissors_button_press (Tool *tool, iscissors = (Iscissors *) tool->private; drawable = gimage_active_drawable (gdisp->gimage); - /*message_box ("Intelligent Scissors is currently not enabled\nfor use with - the tile-based GIMP\non anything but yosh's computer.", NULL, NULL);*/ - /* return;*/ - gdisplay_untransform_coords (gdisp, bevent->x, bevent->y, &iscissors->x, &iscissors->y, FALSE, TRUE); @@ -1803,7 +1799,7 @@ bezierify_boundary (Tool *tool) if (iscissors->num_pts < 4) { - message_box ("Boundary contains < 4 points! Cannot bezierify.", NULL, NULL); + g_message ("Boundary contains < 4 points! Cannot bezierify."); return; } diff --git a/app/tools/gimplevelstool.c b/app/tools/gimplevelstool.c index c5e307fa13..07719657db 100644 --- a/app/tools/gimplevelstool.c +++ b/app/tools/gimplevelstool.c @@ -425,7 +425,7 @@ levels_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Levels for indexed drawables cannot be adjusted.", NULL, NULL); + g_message ("Levels for indexed drawables cannot be adjusted."); return; } diff --git a/app/tools/gimpposterizetool.c b/app/tools/gimpposterizetool.c index cbe62d893b..16937de503 100644 --- a/app/tools/gimpposterizetool.c +++ b/app/tools/gimpposterizetool.c @@ -251,7 +251,7 @@ posterize_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Posterize does not operate on indexed drawables.", NULL, NULL); + g_message ("Posterize does not operate on indexed drawables."); return; } diff --git a/app/tools/gimpsourcetool.c b/app/tools/gimpsourcetool.c index 3964611b9e..9fecd23555 100644 --- a/app/tools/gimpsourcetool.c +++ b/app/tools/gimpsourcetool.c @@ -228,7 +228,7 @@ clone_paint_func (PaintCore *paint_core, if (clone_options->type == PatternClone) if (!get_active_pattern ()) - message_box ("No patterns available for this operation.", NULL, NULL); + g_message ("No patterns available for this operation."); break; case FINISH_PAINT : diff --git a/app/tools/gimptexttool.c b/app/tools/gimptexttool.c index c030dcdea5..17b61d6f64 100644 --- a/app/tools/gimptexttool.c +++ b/app/tools/gimptexttool.c @@ -293,8 +293,7 @@ text_button_press (Tool *tool, text_get_fonts (); if (nfonts == 0) { - message_box ("Note: No fonts found. Text tool not available.", - NULL, NULL); + g_message ("Note: No fonts found. Text tool not available."); nfonts = -1; return; } @@ -1599,11 +1598,9 @@ text_load_font (TextTool *text_tool) if (gdk_error_code == -1) { - char *buf; - buf = g_malloc (strlen (family_str) + 87); - sprintf(buf, "I'm sorry, but the font %s is corrupt.\nPlease ask the system adminstrator to replace it.", family_str); - message_box (buf, NULL, NULL); - g_free (buf); + g_message ("I'm sorry, but the font %s is corrupt.\n" + "Please ask the system adminstrator to replace it.", + family_str); return FALSE; } @@ -1923,7 +1920,7 @@ text_render (GImage *gimage, { if (newmask) { - warning("text_render: could not allocate image"); + g_message ("text_render: could not allocate image"); tile_manager_destroy (newmask); } layer = NULL; diff --git a/app/tools/gimpthresholdtool.c b/app/tools/gimpthresholdtool.c index 574e5b8d04..8c89bb0193 100644 --- a/app/tools/gimpthresholdtool.c +++ b/app/tools/gimpthresholdtool.c @@ -343,7 +343,7 @@ threshold_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Threshold does not operate on indexed drawables.", NULL, NULL); + g_message ("Threshold does not operate on indexed drawables."); return; } diff --git a/app/tools/histogram_tool.c b/app/tools/histogram_tool.c index 7dc4485b57..883c229e8b 100644 --- a/app/tools/histogram_tool.c +++ b/app/tools/histogram_tool.c @@ -387,7 +387,7 @@ histogram_tool_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Histogram does not operate on indexed drawables.", NULL, NULL); + g_message ("Histogram does not operate on indexed drawables."); return; } diff --git a/app/tools/hue_saturation.c b/app/tools/hue_saturation.c index bd2e8ae4be..96df37dcce 100644 --- a/app/tools/hue_saturation.c +++ b/app/tools/hue_saturation.c @@ -364,7 +364,7 @@ hue_saturation_initialize (void *gdisp_ptr) if (! drawable_color (gimage_active_drawable (gdisp->gimage))) { - message_box ("Hue-Saturation operates only on RGB color drawables.", NULL, NULL); + g_message ("Hue-Saturation operates only on RGB color drawables."); return; } diff --git a/app/tools/iscissors.c b/app/tools/iscissors.c index 847ca02376..55d318b437 100644 --- a/app/tools/iscissors.c +++ b/app/tools/iscissors.c @@ -509,10 +509,6 @@ iscissors_button_press (Tool *tool, iscissors = (Iscissors *) tool->private; drawable = gimage_active_drawable (gdisp->gimage); - /*message_box ("Intelligent Scissors is currently not enabled\nfor use with - the tile-based GIMP\non anything but yosh's computer.", NULL, NULL);*/ - /* return;*/ - gdisplay_untransform_coords (gdisp, bevent->x, bevent->y, &iscissors->x, &iscissors->y, FALSE, TRUE); @@ -1803,7 +1799,7 @@ bezierify_boundary (Tool *tool) if (iscissors->num_pts < 4) { - message_box ("Boundary contains < 4 points! Cannot bezierify.", NULL, NULL); + g_message ("Boundary contains < 4 points! Cannot bezierify."); return; } diff --git a/app/tools/levels.c b/app/tools/levels.c index c5e307fa13..07719657db 100644 --- a/app/tools/levels.c +++ b/app/tools/levels.c @@ -425,7 +425,7 @@ levels_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Levels for indexed drawables cannot be adjusted.", NULL, NULL); + g_message ("Levels for indexed drawables cannot be adjusted."); return; } diff --git a/app/tools/paint_core.c b/app/tools/paint_core.c index 0c1f4dd35b..e69982c8a3 100644 --- a/app/tools/paint_core.c +++ b/app/tools/paint_core.c @@ -385,7 +385,7 @@ paint_core_init (paint_core, drawable, x, y) /* Each buffer is the same size as the maximum bounds of the active brush... */ if (!(brush = get_active_brush ())) { - warning ("No brushes available for use with this tool."); + g_message ("No brushes available for use with this tool."); return FALSE; } diff --git a/app/tools/posterize.c b/app/tools/posterize.c index cbe62d893b..16937de503 100644 --- a/app/tools/posterize.c +++ b/app/tools/posterize.c @@ -251,7 +251,7 @@ posterize_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Posterize does not operate on indexed drawables.", NULL, NULL); + g_message ("Posterize does not operate on indexed drawables."); return; } diff --git a/app/tools/text_tool.c b/app/tools/text_tool.c index c030dcdea5..17b61d6f64 100644 --- a/app/tools/text_tool.c +++ b/app/tools/text_tool.c @@ -293,8 +293,7 @@ text_button_press (Tool *tool, text_get_fonts (); if (nfonts == 0) { - message_box ("Note: No fonts found. Text tool not available.", - NULL, NULL); + g_message ("Note: No fonts found. Text tool not available."); nfonts = -1; return; } @@ -1599,11 +1598,9 @@ text_load_font (TextTool *text_tool) if (gdk_error_code == -1) { - char *buf; - buf = g_malloc (strlen (family_str) + 87); - sprintf(buf, "I'm sorry, but the font %s is corrupt.\nPlease ask the system adminstrator to replace it.", family_str); - message_box (buf, NULL, NULL); - g_free (buf); + g_message ("I'm sorry, but the font %s is corrupt.\n" + "Please ask the system adminstrator to replace it.", + family_str); return FALSE; } @@ -1923,7 +1920,7 @@ text_render (GImage *gimage, { if (newmask) { - warning("text_render: could not allocate image"); + g_message ("text_render: could not allocate image"); tile_manager_destroy (newmask); } layer = NULL; diff --git a/app/tools/threshold.c b/app/tools/threshold.c index 574e5b8d04..8c89bb0193 100644 --- a/app/tools/threshold.c +++ b/app/tools/threshold.c @@ -343,7 +343,7 @@ threshold_initialize (void *gdisp_ptr) if (drawable_indexed (gimage_active_drawable (gdisp->gimage))) { - message_box ("Threshold does not operate on indexed drawables.", NULL, NULL); + g_message ("Threshold does not operate on indexed drawables."); return; } diff --git a/app/tools/transform_core.c b/app/tools/transform_core.c index 5f06dc080b..99050c234d 100644 --- a/app/tools/transform_core.c +++ b/app/tools/transform_core.c @@ -155,7 +155,7 @@ transform_core_button_press (tool, bevent, gdisp_ptr) { if (layer->mask != NULL && GIMP_DRAWABLE(layer->mask)) { - message_box ("Transformations do not work on\nlayers that contain layer masks.", NULL, NULL); + g_message ("Transformations do not work on\nlayers that contain layer masks."); tool->state = INACTIVE; return; } @@ -982,7 +982,7 @@ transform_core_do (gimage, drawable, float_tiles, interpolation, matrix) { /* normalize homogeneous coords */ if (tw == 0.0) - warning ("homogeneous coordinate = 0...\n"); + g_message ("homogeneous coordinate = 0...\n"); else if (tw != 1.0) { ttx = tx / tw; diff --git a/app/transform_core.c b/app/transform_core.c index 5f06dc080b..99050c234d 100644 --- a/app/transform_core.c +++ b/app/transform_core.c @@ -155,7 +155,7 @@ transform_core_button_press (tool, bevent, gdisp_ptr) { if (layer->mask != NULL && GIMP_DRAWABLE(layer->mask)) { - message_box ("Transformations do not work on\nlayers that contain layer masks.", NULL, NULL); + g_message ("Transformations do not work on\nlayers that contain layer masks."); tool->state = INACTIVE; return; } @@ -982,7 +982,7 @@ transform_core_do (gimage, drawable, float_tiles, interpolation, matrix) { /* normalize homogeneous coords */ if (tw == 0.0) - warning ("homogeneous coordinate = 0...\n"); + g_message ("homogeneous coordinate = 0...\n"); else if (tw != 1.0) { ttx = tx / tw; diff --git a/app/widgets/gimpgradienteditor.c b/app/widgets/gimpgradienteditor.c index cf7e311a6c..ba4b1fdd93 100644 --- a/app/widgets/gimpgradienteditor.c +++ b/app/widgets/gimpgradienteditor.c @@ -1312,7 +1312,7 @@ ed_do_new_gradient_callback(GtkWidget *widget, gpointer client_data, gpointer ca gradient_name = (char *) call_data; if (!gradient_name) { - warning("ed_do_new_gradient_callback(): oops, received NULL in call_data"); + g_message ("ed_do_new_gradient_callback(): oops, received NULL in call_data"); return; } /* if */ @@ -1369,7 +1369,7 @@ ed_do_copy_gradient_callback(GtkWidget *widget, gpointer client_data, gpointer c gradient_name = (char *) call_data; if (!gradient_name) { - warning("ed_do_copy_gradient_callback(): oops, received NULL in call_data"); + g_message ("ed_do_copy_gradient_callback(): oops, received NULL in call_data"); return; } /* if */ @@ -1622,7 +1622,7 @@ ed_do_save_pov_callback(GtkWidget *widget, gpointer client_data) file = fopen(filename, "w"); if (!file) - warning("ed_do_save_pov_callback(): oops, could not open \"%s\"", filename); + g_message ("ed_do_save_pov_callback(): oops, could not open \"%s\"", filename); else { fprintf(file, "/* color_map file created by the GIMP */\n"); fprintf(file, "/* http://www.gimp.org/ */\n"); @@ -2189,7 +2189,7 @@ control_do_hint(gint x, gint y) break; default: - warning("control_do_hint: oops, in_handle is true " + g_message ("control_do_hint: oops, in_handle is true " "yet we got handle type %d", (int) handle); break; } /* switch */ @@ -2293,7 +2293,7 @@ control_button_press(gint x, gint y, guint button, guint state) return; default: - warning("control_button_press(): oops, in_handle is true " + g_message ("control_button_press(): oops, in_handle is true " "yet we got handle type %d", (int) handle); return; } /* switch */ @@ -2337,7 +2337,7 @@ control_point_in_handle(gint x, gint y, grad_segment_t *seg, control_drag_mode_t break; default: - warning("control_point_in_handle(): oops, can not handle drag mode %d", + g_message ("control_point_in_handle(): oops, can not handle drag mode %d", (int) handle); return 0; } /* switch */ @@ -5290,7 +5290,7 @@ grad_load_gradient(char *filename) num_segments = atoi(line); if (num_segments < 1) { - warning("grad_load_gradient(): invalid number of segments in \"%s\"", filename); + g_message ("grad_load_gradient(): invalid number of segments in \"%s\"", filename); g_free(grad); return; } /* if */ @@ -5313,9 +5313,9 @@ grad_load_gradient(char *filename) &(seg->r0), &(seg->g0), &(seg->b0), &(seg->a0), &(seg->r1), &(seg->g1), &(seg->b1), &(seg->a1), &type, &color) != 13) { - warning("grad_load_gradient(): badly formatted " - "gradient segment %d in \"%s\" --- bad things may " - "happen soon", i, filename); + g_message ("grad_load_gradient(): badly formatted " + "gradient segment %d in \"%s\" --- bad things may " + "happen soon", i, filename); } else { seg->type = (grad_type_t) type; seg->color = (grad_color_t) color; @@ -5347,13 +5347,13 @@ grad_save_gradient(gradient_t *grad, char *filename) g_assert(grad != NULL); if (!filename) { - warning("grad_save_gradient(): can not save gradient with NULL filename"); + g_message ("grad_save_gradient(): can not save gradient with NULL filename"); return; } /* if */ file = fopen(filename, "w"); if (!file) { - warning("grad_save_gradient(): can't open \"%s\"", filename); + g_message ("grad_save_gradient(): can't open \"%s\"", filename); return; } /* if */ diff --git a/app/widgets/gimppaletteeditor.c b/app/widgets/gimppaletteeditor.c index 70af3ea9ed..ee1f8afbe5 100644 --- a/app/widgets/gimppaletteeditor.c +++ b/app/widgets/gimppaletteeditor.c @@ -608,7 +608,7 @@ palette_entries_save (PaletteEntriesP palette, /* Open the requested file */ if (! (fp = fopen (filename, "w"))) { - warning ("can't save palette \"%s\"\n", filename); + g_message ("can't save palette \"%s\"\n", filename); return; } diff --git a/app/xcf.c b/app/xcf.c index 4552c1a0af..fcd79368d0 100644 --- a/app/xcf.c +++ b/app/xcf.c @@ -333,11 +333,7 @@ xcf_load_invoker (Argument *args) } else { - char message[256]; - sprintf (message, - "XCF error: unsupported XCF file version %d encountered", - info.file_version); - message_box (message, NULL, NULL); + g_message ("XCF error: unsupported XCF file version %d encountered", info.file_version); success = FALSE; } } @@ -1353,9 +1349,9 @@ xcf_load_image_props (XcfInfo *info, if (info->file_version == 0) { int i; - message_box ("XCF warning: version 0 of XCF file format\n" - "did not save indexed colormaps correctly.\n" - "Substituting grayscale map.", NULL, NULL); + g_message ("XCF warning: version 0 of XCF file format\n" + "did not save indexed colormaps correctly.\n" + "Substituting grayscale map."); info->cp += xcf_read_int32 (info->fp, (guint32*) &gimage->num_cols, 1); gimage->cmap = g_new (guchar, gimage->num_cols*3); xcf_seek_pos (info, info->cp + gimage->num_cols); diff --git a/app/xcf/xcf.c b/app/xcf/xcf.c index 4552c1a0af..fcd79368d0 100644 --- a/app/xcf/xcf.c +++ b/app/xcf/xcf.c @@ -333,11 +333,7 @@ xcf_load_invoker (Argument *args) } else { - char message[256]; - sprintf (message, - "XCF error: unsupported XCF file version %d encountered", - info.file_version); - message_box (message, NULL, NULL); + g_message ("XCF error: unsupported XCF file version %d encountered", info.file_version); success = FALSE; } } @@ -1353,9 +1349,9 @@ xcf_load_image_props (XcfInfo *info, if (info->file_version == 0) { int i; - message_box ("XCF warning: version 0 of XCF file format\n" - "did not save indexed colormaps correctly.\n" - "Substituting grayscale map.", NULL, NULL); + g_message ("XCF warning: version 0 of XCF file format\n" + "did not save indexed colormaps correctly.\n" + "Substituting grayscale map."); info->cp += xcf_read_int32 (info->fp, (guint32*) &gimage->num_cols, 1); gimage->cmap = g_new (guchar, gimage->num_cols*3); xcf_seek_pos (info, info->cp + gimage->num_cols); diff --git a/libgimp/gimp.c b/libgimp/gimp.c index 15914e7db4..e0529ee2c3 100644 --- a/libgimp/gimp.c +++ b/libgimp/gimp.c @@ -52,6 +52,7 @@ static void gimp_loop (void); static void gimp_config (GPConfig *config); static void gimp_proc_run (GPProcRun *proc_run); static void gimp_temp_proc_run (GPProcRun *proc_run); +static void gimp_message_func (char *str); int _readfd = 0; @@ -109,6 +110,8 @@ gimp_main (int argc, return 0; } + g_set_message_handler (&gimp_message_func); + temp_proc_ht = g_hash_table_new (&g_str_hash, &g_str_equal); gimp_loop (); @@ -201,6 +204,27 @@ gimp_progress_update (gdouble percentage) } +void +gimp_message (char *message) +{ + GParam *return_vals; + int nreturn_vals; + + return_vals = gimp_run_procedure ("gimp_message", + &nreturn_vals, + PARAM_STRING, message, + PARAM_END); + + gimp_destroy_params (return_vals, nreturn_vals); +} + +static void +gimp_message_func (char *str) +{ + gimp_message (str); +} + + void gimp_query_database (char *name_regexp, char *blurb_regexp, @@ -984,14 +1008,14 @@ gimp_config (GPConfig *config) if (config->version < GP_VERSION) { - g_print ("%s: the gimp is using an older version of the " - "plug-in protocol than this plug-in\n", progname); + g_message ("%s: the gimp is using an older version of the " + "plug-in protocol than this plug-in\n", progname); gimp_quit (); } else if (config->version > GP_VERSION) { - g_print ("%s: the gimp is using a newer version of the " - "plug-in protocol than this plug-in\n", progname); + g_message ("%s: the gimp is using a newer version of the " + "plug-in protocol than this plug-in\n", progname); gimp_quit (); } diff --git a/libgimp/gimp.h b/libgimp/gimp.h index 7ad0d125ee..e70a02fae0 100644 --- a/libgimp/gimp.h +++ b/libgimp/gimp.h @@ -206,6 +206,12 @@ void gimp_progress_init (char *message); void gimp_progress_update (gdouble percentage); +/* Pops up a dialog box with "message". Useful for status and + * error reports. If "message" is NULL, do nothing. + */ +void gimp_message (char *message); + + /* Query the gimp application's procedural database. * The arguments are regular expressions which select * which procedure names will be returned in 'proc_names'. diff --git a/libgimpbase/gimpdatafiles.c b/libgimpbase/gimpdatafiles.c index 5fecda93e1..e53d9ff1c9 100644 --- a/libgimpbase/gimpdatafiles.c +++ b/libgimpbase/gimpdatafiles.c @@ -97,7 +97,7 @@ datafiles_read_directories (char *path_str, dir = opendir(path); if (!dir) - warning("error reading datafiles directory \"%s\"", path); + g_message ("error reading datafiles directory \"%s\"", path); else { while ((dir_ent = readdir(dir))) diff --git a/plug-ins/common/psd.c b/plug-ins/common/psd.c index 366b85d43f..884ec73a17 100644 --- a/plug-ins/common/psd.c +++ b/plug-ins/common/psd.c @@ -99,7 +99,7 @@ /* *** DEFINES *** */ /* set to TRUE if you want debugging, FALSE otherwise */ -#define PSD_DEBUG TRUE +#define PSD_DEBUG FALSE /* the max number of layers that this plugin should try to load */ #define MAX_LAYERS 100 diff --git a/plug-ins/psd/psd.c b/plug-ins/psd/psd.c index 366b85d43f..884ec73a17 100644 --- a/plug-ins/psd/psd.c +++ b/plug-ins/psd/psd.c @@ -99,7 +99,7 @@ /* *** DEFINES *** */ /* set to TRUE if you want debugging, FALSE otherwise */ -#define PSD_DEBUG TRUE +#define PSD_DEBUG FALSE /* the max number of layers that this plugin should try to load */ #define MAX_LAYERS 100 diff --git a/plug-ins/script-fu/regex.c b/plug-ins/script-fu/regex.c index 879d3b601a..a25800d46e 100644 --- a/plug-ins/script-fu/regex.c +++ b/plug-ins/script-fu/regex.c @@ -3,11 +3,11 @@ (Implements POSIX draft P1003.2/D11.2, except for some of the internationalization features.) - Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. the C library, however. The master source lives in /gd/gnu/lib. -NOTE: The canonical source of this file is maintained with the +NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it @@ -21,7 +21,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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, +along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* AIX requires this to be the first thing in the file. */ @@ -46,8 +46,9 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* For platform which support the ISO C amendement 1 functionality we support user defined character classes. */ #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) -# include + /* Solaris 2.5 has a bug: must be included before . */ # include +# include #endif /* This is for other GNU distributions with internationalized messages. */ @@ -188,6 +189,7 @@ init_syntax_once () Defining isascii to 1 should let any compiler worth its salt eliminate the && through constant folding." */ +#undef ISASCII #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) #define ISASCII(c) 1 #else @@ -205,6 +207,7 @@ init_syntax_once () #define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c)) #endif +#undef ISPRINT #define ISPRINT(c) (ISASCII (c) && isprint (c)) #define ISDIGIT(c) (ISASCII (c) && isdigit (c)) #define ISALNUM(c) (ISASCII (c) && isalnum (c)) @@ -1690,7 +1693,7 @@ typedef struct # define IS_CHAR_CLASS(string) wctype (string) #else -# define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */ +# define CHAR_CLASS_MAX_LENGTH 256 /* Namely, `xdigit'. */ # define IS_CHAR_CLASS(string) \ (STREQ (string, "alpha") || STREQ (string, "upper") \ @@ -2165,7 +2168,7 @@ regex_compile (pattern, size, syntax, bufp) for (;;) { PATFETCH (c); - if (c == ':' || c == ']' || p == pend + if ((c == ':' && *p == ']') || p == pend || c1 == CHAR_CLASS_MAX_LENGTH) break; str[c1++] = c; @@ -2378,13 +2381,13 @@ regex_compile (pattern, size, syntax, bufp) if (syntax & RE_NO_BK_PARENS) goto normal_backslash; if (COMPILE_STACK_EMPTY) - { - if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) - goto normal_backslash; - else - FREE_STACK_RETURN (REG_ERPAREN); - } - + { + if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) + goto normal_backslash; + else + FREE_STACK_RETURN (REG_ERPAREN); + } + handle_close: if (fixup_alt_jump) { /* Push a dummy failure point at the end of the @@ -2400,13 +2403,13 @@ regex_compile (pattern, size, syntax, bufp) /* See similar code for backslashed left paren above. */ if (COMPILE_STACK_EMPTY) - { - if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) - goto normal_char; - else - FREE_STACK_RETURN (REG_ERPAREN); - } - + { + if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) + goto normal_char; + else + FREE_STACK_RETURN (REG_ERPAREN); + } + /* Since we just checked for an empty stack above, this ``can't happen''. */ assert (compile_stack.avail != 0); diff --git a/plug-ins/script-fu/regex.h b/plug-ins/script-fu/regex.h index 08272499f3..e86dfb4a2b 100644 --- a/plug-ins/script-fu/regex.h +++ b/plug-ins/script-fu/regex.h @@ -1,10 +1,10 @@ /* Definitions for data structures and routines for the regular expression library, version 0.12. - Copyright (C) 1985,89,90,91,92,93,95,96,97 Free Software Foundation, Inc. + Copyright (C) 1985,89,90,91,92,93,95,96,97, 98 Free Software Foundation, Inc. the C library, however. The master source lives in /gd/gnu/lib. -NOTE: The canonical source of this file is maintained with the +NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it @@ -18,7 +18,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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, +along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _REGEX_H diff --git a/plug-ins/script-fu/regexrepl.c b/plug-ins/script-fu/regexrepl.c index 879d3b601a..a25800d46e 100644 --- a/plug-ins/script-fu/regexrepl.c +++ b/plug-ins/script-fu/regexrepl.c @@ -3,11 +3,11 @@ (Implements POSIX draft P1003.2/D11.2, except for some of the internationalization features.) - Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. the C library, however. The master source lives in /gd/gnu/lib. -NOTE: The canonical source of this file is maintained with the +NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it @@ -21,7 +21,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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, +along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* AIX requires this to be the first thing in the file. */ @@ -46,8 +46,9 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* For platform which support the ISO C amendement 1 functionality we support user defined character classes. */ #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) -# include + /* Solaris 2.5 has a bug: must be included before . */ # include +# include #endif /* This is for other GNU distributions with internationalized messages. */ @@ -188,6 +189,7 @@ init_syntax_once () Defining isascii to 1 should let any compiler worth its salt eliminate the && through constant folding." */ +#undef ISASCII #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) #define ISASCII(c) 1 #else @@ -205,6 +207,7 @@ init_syntax_once () #define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c)) #endif +#undef ISPRINT #define ISPRINT(c) (ISASCII (c) && isprint (c)) #define ISDIGIT(c) (ISASCII (c) && isdigit (c)) #define ISALNUM(c) (ISASCII (c) && isalnum (c)) @@ -1690,7 +1693,7 @@ typedef struct # define IS_CHAR_CLASS(string) wctype (string) #else -# define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */ +# define CHAR_CLASS_MAX_LENGTH 256 /* Namely, `xdigit'. */ # define IS_CHAR_CLASS(string) \ (STREQ (string, "alpha") || STREQ (string, "upper") \ @@ -2165,7 +2168,7 @@ regex_compile (pattern, size, syntax, bufp) for (;;) { PATFETCH (c); - if (c == ':' || c == ']' || p == pend + if ((c == ':' && *p == ']') || p == pend || c1 == CHAR_CLASS_MAX_LENGTH) break; str[c1++] = c; @@ -2378,13 +2381,13 @@ regex_compile (pattern, size, syntax, bufp) if (syntax & RE_NO_BK_PARENS) goto normal_backslash; if (COMPILE_STACK_EMPTY) - { - if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) - goto normal_backslash; - else - FREE_STACK_RETURN (REG_ERPAREN); - } - + { + if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) + goto normal_backslash; + else + FREE_STACK_RETURN (REG_ERPAREN); + } + handle_close: if (fixup_alt_jump) { /* Push a dummy failure point at the end of the @@ -2400,13 +2403,13 @@ regex_compile (pattern, size, syntax, bufp) /* See similar code for backslashed left paren above. */ if (COMPILE_STACK_EMPTY) - { - if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) - goto normal_char; - else - FREE_STACK_RETURN (REG_ERPAREN); - } - + { + if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) + goto normal_char; + else + FREE_STACK_RETURN (REG_ERPAREN); + } + /* Since we just checked for an empty stack above, this ``can't happen''. */ assert (compile_stack.avail != 0); diff --git a/plug-ins/script-fu/regexrepl.h b/plug-ins/script-fu/regexrepl.h index 08272499f3..e86dfb4a2b 100644 --- a/plug-ins/script-fu/regexrepl.h +++ b/plug-ins/script-fu/regexrepl.h @@ -1,10 +1,10 @@ /* Definitions for data structures and routines for the regular expression library, version 0.12. - Copyright (C) 1985,89,90,91,92,93,95,96,97 Free Software Foundation, Inc. + Copyright (C) 1985,89,90,91,92,93,95,96,97, 98 Free Software Foundation, Inc. the C library, however. The master source lives in /gd/gnu/lib. -NOTE: The canonical source of this file is maintained with the +NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it @@ -18,7 +18,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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, +along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _REGEX_H diff --git a/plug-ins/script-fu/script-fu-console.c b/plug-ins/script-fu/script-fu-console.c index 17689b18a9..6204c79d7a 100644 --- a/plug-ins/script-fu/script-fu-console.c +++ b/plug-ins/script-fu/script-fu-console.c @@ -133,7 +133,7 @@ script_fu_console_run (char *name, case RUN_WITH_LAST_VALS: case RUN_NONINTERACTIVE: status = STATUS_CALLING_ERROR; - g_warning ("Script-Fu console mode allows only interactive invocation"); + gimp_message ("Script-Fu console mode allows only interactive invocation"); break; default: @@ -529,11 +529,11 @@ script_fu_open_siod_console () { if (pipe (siod_output_pipe)) { - g_warning ("Unable to open SIOD output pipe"); + gimp_message ("Unable to open SIOD output pipe"); } else if ((siod_output = fdopen (siod_output_pipe [1], "w")) == NULL) { - g_warning ("Unable to open a stream on the SIOD output pipe"); + gimp_message ("Unable to open a stream on the SIOD output pipe"); siod_output = stdout; } else diff --git a/plug-ins/script-fu/script-fu-interface.c b/plug-ins/script-fu/script-fu-interface.c index f3e97d1981..378223b156 100644 --- a/plug-ins/script-fu/script-fu-interface.c +++ b/plug-ins/script-fu/script-fu-interface.c @@ -223,7 +223,7 @@ script_fu_find_scripts () dir = opendir (path); if (!dir) - g_warning("error reading script directory \"%s\"", path); + g_message ("error reading script directory \"%s\"", path); else { while ((dir_ent = readdir (dir))) @@ -726,7 +726,10 @@ static void script_fu_disable_cc (gint err_msg) { if (err_msg) - g_warning ("%s", siod_err_msg); + g_message ("Script-Fu Error\n%s\n" + "If this happens while running a logo script,\n" + "you might not have the font it wants installed on your system", + siod_err_msg); current_command_enabled = FALSE; diff --git a/plug-ins/script-fu/script-fu-scripts.c b/plug-ins/script-fu/script-fu-scripts.c index f3e97d1981..378223b156 100644 --- a/plug-ins/script-fu/script-fu-scripts.c +++ b/plug-ins/script-fu/script-fu-scripts.c @@ -223,7 +223,7 @@ script_fu_find_scripts () dir = opendir (path); if (!dir) - g_warning("error reading script directory \"%s\"", path); + g_message ("error reading script directory \"%s\"", path); else { while ((dir_ent = readdir (dir))) @@ -726,7 +726,10 @@ static void script_fu_disable_cc (gint err_msg) { if (err_msg) - g_warning ("%s", siod_err_msg); + g_message ("Script-Fu Error\n%s\n" + "If this happens while running a logo script,\n" + "you might not have the font it wants installed on your system", + siod_err_msg); current_command_enabled = FALSE; diff --git a/plug-ins/script-fu/script-fu.h b/plug-ins/script-fu/script-fu.h deleted file mode 100644 index 7a592114c7..0000000000 --- a/plug-ins/script-fu/script-fu.h +++ /dev/null @@ -1,2522 +0,0 @@ -/* GIMP header image file format: /home/spencer/src/gimp/plug-ins/script-fu/script-fu.h */ - -static unsigned int logo_width = 512; -static unsigned int logo_height = 80; -static unsigned int logo_bpp = 3; -static unsigned char logo_rle_data[] = -{ - 191, 27, 190, 6, 191, 3, 190, 24, 191, 24, 190, 3, 191, 57, 190, 6, 191, 1, 190, 2, - 191, 1, 190, 1, 186, 1, 195, 1, 192, 1, 172, 1, 199, 1, 193, 1, 161, 1, 191, 2, - 183, 1, 191, 1, 190, 1, 189, 1, 190, 99, 191, 255, 191, 255, 191, 255, 191, 255, 191, 255, - 191, 21, 190, 3, 191, 6, 190, 24, 191, 24, 190, 3, 191, 57, 190, 6, 191, 1, 190, 1, - 187, 1, 195, 1, 191, 1, 172, 1, 219, 1, 196, 1, 100, 1, 227, 1, 196, 1, 76, 1, - 200, 1, 193, 1, 159, 1, 191, 2, 183, 1, 191, 1, 190, 98, 191, 255, 191, 255, 191, 255, - 191, 255, 191, 255, 191, 78, 190, 3, 191, 57, 190, 3, 191, 1, 190, 1, 189, 1, 193, 1, - 191, 1, 178, 1, 212, 1, 194, 1, 123, 1, 238, 1, 191, 1, 43, 1, 240, 1, 189, 1, - 37, 1, 223, 1, 195, 1, 89, 1, 196, 1, 191, 1, 168, 1, 191, 1, 190, 1, 187, 1, - 190, 96, 191, 255, 191, 255, 191, 255, 191, 255, 191, 255, 191, 21, 190, 6, 191, 3, 190, 24, - 191, 10, 190, 2, 191, 1, 190, 2, 191, 1, 190, 2, 191, 1, 190, 2, 191, 3, 190, 3, - 191, 58, 190, 2, 192, 1, 191, 1, 183, 1, 202, 1, 192, 1, 151, 1, 235, 1, 192, 1, - 54, 1, 246, 1, 178, 1, 20, 1, 247, 1, 174, 1, 15, 1, 240, 1, 190, 1, 37, 1, - 211, 1, 194, 1, 124, 1, 193, 1, 191, 1, 178, 1, 191, 1, 190, 1, 189, 1, 190, 93, - 191, 255, 191, 255, 191, 255, 191, 255, 191, 255, 191, 21, 190, 6, 191, 3, 190, 24, 191, 7, - 190, 2, 191, 1, 190, 1, 189, 1, 197, 1, 192, 1, 170, 1, 193, 1, 191, 1, 183, 1, - 191, 1, 190, 1, 186, 1, 191, 1, 190, 1, 189, 1, 190, 3, 191, 55, 190, 2, 191, 1, - 190, 1, 187, 1, 197, 1, 191, 1, 168, 1, 225, 1, 194, 1, 83, 1, 244, 1, 182, 1, - 26, 1, 250, 1, 161, 1, 7, 1, 251, 1, 156, 1, 5, 1, 246, 1, 176, 1, 18, 1, - 234, 1, 193, 1, 57, 1, 201, 1, 192, 1, 154, 1, 191, 2, 184, 1, 191, 1, 190, 92, - 191, 255, 191, 255, 191, 255, 191, 255, 191, 255, 191, 21, 190, 33, 191, 7, 190, 2, 192, 1, - 191, 1, 183, 1, 214, 1, 196, 1, 117, 1, 221, 1, 196, 1, 99, 1, 202, 1, 194, 1, - 155, 1, 194, 1, 192, 1, 179, 1, 191, 1, 190, 1, 187, 1, 191, 1, 190, 2, 191, 49, - 190, 2, 191, 1, 190, 1, 189, 1, 194, 1, 191, 1, 176, 1, 213, 1, 194, 1, 118, 1, - 241, 1, 188, 1, 35, 1, 249, 1, 167, 1, 11, 1, 252, 1, 144, 1, 2, 1, 252, 1, - 140, 1, 1, 1, 250, 1, 162, 1, 7, 1, 244, 1, 184, 1, 27, 1, 222, 1, 195, 1, - 91, 1, 196, 1, 191, 1, 170, 1, 191, 1, 190, 1, 187, 1, 190, 90, 191, 255, 191, 255, - 191, 255, 191, 255, 191, 255, 191, 21, 190, 33, 191, 7, 190, 1, 189, 1, 194, 1, 192, 1, - 178, 1, 216, 1, 196, 1, 112, 1, 237, 1, 191, 1, 49, 1, 235, 1, 194, 1, 57, 1, - 215, 1, 196, 1, 116, 1, 197, 1, 192, 1, 168, 1, 192, 1, 191, 1, 183, 1, 191, 1, - 190, 1, 189, 1, 191, 1, 190, 2, 191, 43, 190, 2, 193, 1, 191, 1, 182, 1, 203, 1, - 192, 1, 148, 1, 236, 1, 192, 1, 51, 1, 247, 1, 174, 1, 17, 1, 251, 1, 151, 1, - 3, 1, 252, 1, 129, 1, 0, 1, 252, 1, 125, 1, 0, 1, 252, 1, 147, 1, 2, 1, - 248, 1, 170, 1, 12, 1, 240, 1, 190, 1, 39, 1, 209, 1, 194, 1, 130, 1, 193, 1, - 191, 1, 179, 1, 191, 1, 190, 1, 189, 1, 190, 48, 191, 1, 190, 1, 189, 1, 191, 2, - 185, 1, 194, 1, 191, 1, 176, 1, 206, 1, 193, 1, 139, 1, 197, 1, 191, 1, 165, 1, - 191, 1, 190, 23, 191, 93, 190, 15, 189, 9, 190, 66, 191, 60, 190, 102, 189, 48, 190, 42, - 191, 45, 190, 12, 189, 45, 190, 33, 189, 45, 190, 51, 191, 33, 190, 12, 189, 123, 190, 12, - 191, 78, 190, 12, 189, 51, 190, 81, 189, 48, 190, 18, 189, 45, 190, 12, 191, 105, 190, 33, - 191, 7, 190, 2, 194, 1, 192, 1, 178, 1, 215, 1, 197, 1, 115, 1, 242, 1, 190, 1, - 33, 1, 245, 1, 179, 1, 24, 1, 240, 1, 188, 1, 36, 1, 227, 1, 195, 1, 75, 1, - 206, 1, 194, 1, 144, 1, 195, 1, 192, 1, 175, 1, 191, 1, 190, 1, 186, 1, 191, 1, - 190, 2, 191, 1, 190, 2, 191, 34, 190, 2, 191, 1, 190, 1, 186, 1, 197, 1, 191, 1, - 166, 1, 226, 1, 194, 1, 80, 1, 244, 1, 181, 1, 24, 1, 250, 1, 159, 1, 6, 1, - 252, 1, 136, 1, 0, 1, 252, 1, 116, 1, 0, 1, 252, 1, 113, 1, 0, 1, 252, 1, - 132, 1, 0, 1, 251, 1, 155, 1, 4, 1, 246, 1, 178, 1, 20, 1, 232, 1, 194, 1, - 63, 1, 200, 1, 192, 1, 158, 1, 191, 2, 184, 1, 191, 1, 190, 38, 191, 1, 190, 2, - 191, 1, 190, 1, 187, 1, 192, 1, 191, 1, 182, 1, 197, 1, 192, 1, 167, 1, 212, 1, - 195, 1, 120, 1, 227, 1, 195, 1, 75, 1, 228, 1, 195, 1, 75, 1, 195, 1, 191, 1, - 171, 1, 191, 1, 190, 1, 189, 1, 190, 21, 191, 84, 190, 6, 189, 9, 188, 81, 189, 6, - 190, 9, 191, 36, 190, 9, 189, 12, 188, 66, 189, 18, 188, 18, 187, 30, 188, 45, 189, 9, - 190, 12, 191, 24, 190, 6, 189, 6, 188, 12, 187, 33, 188, 15, 189, 15, 188, 15, 187, 30, - 188, 57, 189, 9, 190, 27, 189, 6, 188, 15, 187, 12, 188, 12, 187, 78, 188, 18, 189, 6, - 190, 6, 191, 66, 190, 6, 189, 6, 188, 15, 187, 30, 188, 99, 187, 33, 188, 36, 187, 30, - 188, 12, 189, 6, 190, 9, 191, 96, 190, 33, 191, 7, 190, 2, 193, 1, 191, 1, 181, 1, - 211, 1, 196, 1, 128, 1, 243, 1, 192, 1, 31, 1, 250, 1, 172, 1, 11, 1, 250, 1, - 168, 1, 12, 1, 244, 1, 181, 1, 25, 1, 238, 1, 193, 1, 47, 1, 219, 1, 196, 1, - 105, 1, 199, 1, 193, 1, 162, 1, 193, 1, 191, 1, 181, 1, 191, 1, 190, 1, 188, 1, - 191, 1, 190, 2, 191, 28, 190, 2, 191, 1, 190, 1, 188, 1, 195, 1, 192, 1, 175, 1, - 215, 1, 195, 1, 114, 1, 241, 1, 188, 1, 33, 1, 249, 1, 166, 1, 10, 1, 252, 1, - 143, 1, 1, 1, 252, 1, 121, 1, 0, 1, 253, 1, 108, 1, 0, 1, 253, 1, 107, 1, - 0, 1, 252, 1, 119, 1, 0, 1, 252, 1, 141, 1, 1, 1, 250, 1, 164, 1, 8, 1, - 243, 1, 185, 1, 29, 1, 219, 1, 195, 1, 99, 1, 195, 1, 191, 1, 172, 1, 191, 1, - 190, 1, 188, 1, 190, 30, 191, 1, 190, 1, 189, 1, 191, 1, 190, 1, 186, 1, 193, 1, - 191, 1, 179, 1, 199, 1, 193, 1, 160, 1, 215, 1, 195, 1, 111, 1, 232, 1, 195, 1, - 62, 1, 238, 1, 189, 1, 44, 1, 239, 1, 187, 1, 41, 1, 228, 1, 196, 1, 74, 1, - 196, 1, 192, 1, 170, 1, 191, 1, 190, 1, 188, 1, 190, 21, 191, 78, 190, 6, 189, 6, - 188, 9, 187, 3, 186, 24, 187, 12, 186, 12, 185, 18, 186, 6, 187, 6, 188, 9, 189, 3, - 190, 6, 191, 24, 190, 9, 189, 6, 188, 12, 187, 21, 186, 15, 185, 18, 186, 9, 187, 6, - 188, 21, 187, 3, 186, 6, 185, 9, 184, 21, 185, 12, 186, 6, 187, 33, 188, 12, 189, 6, - 190, 9, 191, 12, 190, 6, 189, 6, 188, 6, 187, 3, 186, 3, 185, 12, 184, 21, 185, 12, - 186, 3, 187, 6, 188, 15, 187, 6, 186, 3, 185, 12, 184, 21, 185, 12, 186, 6, 187, 18, - 186, 18, 187, 6, 188, 12, 189, 6, 190, 9, 189, 6, 188, 9, 187, 3, 186, 3, 185, 45, - 184, 33, 185, 42, 186, 3, 187, 6, 188, 6, 189, 3, 190, 6, 191, 60, 190, 6, 189, 3, - 188, 6, 187, 6, 186, 3, 185, 9, 184, 24, 185, 12, 186, 27, 185, 21, 186, 9, 187, 9, - 188, 6, 187, 9, 186, 3, 185, 12, 184, 21, 185, 12, 186, 9, 187, 6, 186, 9, 185, 12, - 184, 18, 185, 12, 186, 3, 187, 3, 188, 9, 189, 3, 190, 6, 191, 93, 190, 3, 191, 6, - 190, 24, 191, 7, 190, 2, 192, 1, 191, 1, 184, 1, 206, 1, 195, 1, 144, 1, 241, 1, - 194, 1, 36, 1, 251, 1, 174, 1, 9, 1, 253, 1, 154, 1, 2, 1, 250, 1, 159, 1, - 6, 1, 248, 1, 174, 1, 16, 1, 243, 1, 187, 1, 32, 1, 231, 1, 195, 1, 67, 1, - 209, 1, 195, 1, 135, 1, 196, 1, 192, 1, 171, 1, 192, 1, 191, 1, 184, 1, 191, 1, - 190, 1, 189, 1, 191, 1, 190, 2, 191, 22, 190, 2, 193, 1, 191, 1, 181, 1, 205, 1, - 194, 1, 145, 1, 237, 1, 193, 1, 49, 1, 247, 1, 174, 1, 16, 1, 252, 1, 151, 1, - 3, 1, 252, 1, 128, 1, 0, 1, 252, 1, 111, 1, 0, 1, 253, 1, 103, 1, 0, 1, - 253, 1, 103, 1, 0, 1, 252, 1, 110, 1, 0, 1, 252, 1, 126, 1, 0, 1, 252, 1, - 149, 1, 2, 1, 248, 1, 172, 1, 13, 1, 238, 1, 191, 1, 42, 1, 206, 1, 193, 1, - 138, 1, 193, 1, 191, 1, 180, 1, 191, 1, 190, 1, 189, 1, 190, 18, 191, 1, 190, 2, - 191, 1, 190, 1, 188, 1, 191, 2, 184, 1, 194, 1, 191, 1, 175, 1, 202, 1, 193, 1, - 153, 1, 218, 1, 196, 1, 102, 1, 234, 1, 194, 1, 55, 1, 240, 1, 188, 1, 36, 1, - 245, 1, 179, 1, 24, 1, 247, 1, 173, 1, 17, 1, 244, 1, 186, 1, 26, 1, 223, 1, - 196, 1, 88, 1, 195, 1, 191, 1, 171, 1, 191, 1, 190, 1, 188, 1, 190, 21, 191, 72, - 190, 6, 189, 6, 188, 6, 186, 3, 185, 6, 184, 3, 183, 6, 182, 9, 183, 6, 184, 15, - 183, 6, 182, 30, 183, 3, 184, 3, 185, 3, 186, 3, 187, 3, 188, 6, 189, 3, 190, 6, - 191, 12, 190, 9, 189, 3, 188, 9, 187, 3, 186, 3, 185, 9, 184, 21, 183, 9, 182, 27, - 183, 3, 184, 3, 185, 9, 186, 9, 185, 6, 184, 3, 183, 3, 182, 6, 181, 6, 180, 3, - 179, 15, 180, 6, 181, 3, 182, 9, 183, 3, 184, 6, 185, 12, 184, 15, 185, 9, 186, 3, - 187, 3, 188, 6, 189, 6, 190, 12, 189, 6, 188, 6, 187, 3, 185, 6, 183, 3, 182, 6, - 181, 3, 180, 6, 179, 15, 180, 6, 181, 3, 182, 6, 183, 3, 184, 3, 185, 9, 186, 3, - 185, 9, 184, 3, 183, 3, 182, 6, 181, 3, 180, 6, 179, 12, 180, 6, 181, 6, 182, 6, - 183, 3, 184, 9, 185, 3, 184, 9, 183, 6, 182, 9, 183, 6, 184, 3, 185, 6, 186, 3, - 187, 3, 188, 21, 187, 3, 186, 3, 185, 3, 184, 3, 183, 3, 182, 9, 181, 33, 180, 6, - 179, 24, 180, 9, 181, 33, 182, 6, 183, 3, 184, 3, 185, 3, 186, 3, 187, 3, 188, 6, - 189, 3, 190, 6, 191, 48, 190, 6, 189, 3, 188, 6, 187, 3, 186, 3, 185, 3, 184, 3, - 183, 3, 182, 3, 181, 6, 180, 3, 179, 15, 180, 6, 181, 6, 182, 9, 183, 6, 184, 6, - 183, 9, 182, 30, 183, 3, 184, 6, 185, 15, 184, 3, 183, 3, 182, 6, 181, 3, 180, 6, - 179, 15, 180, 6, 181, 3, 182, 9, 183, 3, 184, 12, 183, 3, 182, 9, 181, 3, 180, 6, - 179, 12, 180, 6, 181, 3, 182, 6, 183, 3, 184, 3, 185, 3, 186, 3, 187, 3, 188, 3, - 189, 3, 190, 6, 191, 90, 190, 3, 191, 6, 190, 24, 191, 7, 190, 2, 192, 1, 190, 1, - 186, 1, 202, 1, 194, 1, 156, 1, 238, 1, 196, 1, 46, 1, 250, 1, 177, 1, 11, 1, - 253, 1, 155, 1, 1, 1, 252, 1, 140, 1, 0, 1, 253, 1, 150, 1, 3, 1, 251, 1, - 165, 1, 9, 1, 246, 1, 179, 1, 21, 1, 240, 1, 192, 1, 40, 1, 222, 1, 196, 1, - 95, 1, 202, 1, 193, 1, 155, 1, 194, 1, 192, 1, 177, 1, 191, 1, 190, 1, 187, 1, - 191, 1, 190, 2, 191, 1, 190, 2, 191, 13, 190, 2, 192, 1, 190, 1, 185, 1, 199, 1, - 192, 1, 163, 1, 228, 1, 195, 1, 76, 1, 246, 1, 180, 1, 23, 1, 251, 1, 158, 1, - 5, 1, 252, 1, 135, 1, 0, 1, 252, 1, 115, 1, 0, 1, 253, 1, 105, 1, 0, 1, - 253, 1, 98, 1, 0, 1, 253, 1, 98, 1, 0, 1, 253, 1, 105, 1, 0, 1, 252, 1, - 114, 1, 0, 1, 252, 1, 134, 1, 0, 1, 251, 1, 157, 1, 5, 1, 246, 1, 180, 1, - 21, 1, 229, 1, 194, 1, 71, 1, 199, 1, 192, 1, 161, 1, 191, 1, 190, 1, 185, 1, - 190, 12, 191, 1, 190, 1, 189, 1, 191, 1, 190, 1, 187, 1, 192, 1, 191, 1, 180, 1, - 196, 1, 192, 1, 169, 1, 204, 1, 194, 1, 144, 1, 221, 1, 196, 1, 94, 1, 236, 1, - 194, 1, 48, 1, 242, 1, 187, 1, 31, 1, 246, 1, 178, 1, 19, 1, 249, 1, 168, 1, - 10, 1, 251, 1, 159, 1, 5, 1, 250, 1, 169, 1, 7, 1, 243, 1, 190, 1, 27, 1, - 215, 1, 196, 1, 114, 1, 193, 1, 191, 1, 177, 1, 191, 1, 190, 23, 191, 69, 190, 6, - 189, 3, 188, 6, 186, 3, 185, 3, 184, 3, 182, 3, 181, 3, 180, 3, 179, 6, 178, 6, - 179, 9, 180, 15, 179, 9, 178, 3, 177, 6, 176, 9, 177, 3, 178, 3, 179, 6, 181, 3, - 182, 3, 183, 3, 185, 3, 186, 3, 187, 3, 188, 3, 189, 3, 190, 18, 189, 3, 188, 6, - 187, 3, 186, 3, 185, 3, 184, 3, 182, 6, 181, 3, 180, 6, 179, 27, 178, 3, 177, 9, - 176, 6, 177, 6, 178, 3, 179, 3, 180, 3, 181, 3, 182, 6, 183, 9, 182, 6, 181, 3, - 179, 6, 177, 3, 176, 3, 175, 6, 174, 6, 173, 6, 174, 6, 175, 3, 176, 6, 177, 3, - 179, 6, 180, 3, 181, 15, 180, 15, 181, 3, 182, 6, 183, 3, 184, 3, 185, 3, 186, 3, - 187, 3, 188, 6, 189, 9, 188, 6, 187, 3, 185, 6, 183, 3, 181, 3, 179, 3, 178, 3, - 177, 3, 176, 3, 175, 3, 174, 6, 173, 9, 174, 6, 175, 3, 176, 6, 178, 3, 179, 3, - 180, 3, 182, 6, 183, 9, 182, 6, 180, 3, 179, 3, 178, 3, 177, 3, 176, 3, 175, 3, - 174, 6, 173, 6, 174, 6, 175, 3, 176, 6, 177, 3, 178, 3, 179, 3, 180, 6, 181, 9, - 180, 3, 179, 9, 178, 9, 179, 9, 181, 3, 182, 3, 183, 3, 184, 3, 185, 3, 186, 6, - 187, 6, 186, 3, 185, 6, 183, 3, 182, 3, 181, 3, 179, 3, 178, 3, 177, 3, 176, 36, - 175, 3, 174, 9, 173, 15, 174, 6, 175, 6, 176, 33, 177, 3, 178, 3, 179, 3, 180, 3, - 182, 3, 183, 3, 185, 3, 186, 3, 188, 6, 189, 3, 190, 3, 191, 48, 190, 3, 189, 3, - 188, 6, 186, 3, 185, 3, 183, 3, 182, 3, 180, 3, 179, 3, 177, 3, 176, 6, 175, 3, - 174, 6, 173, 6, 174, 6, 175, 3, 176, 6, 177, 3, 178, 3, 179, 9, 180, 6, 179, 9, - 178, 3, 177, 6, 176, 12, 177, 3, 178, 3, 179, 6, 180, 3, 181, 3, 182, 12, 181, 3, - 180, 3, 179, 3, 178, 3, 177, 3, 176, 3, 175, 6, 174, 6, 173, 3, 174, 9, 175, 3, - 176, 6, 178, 3, 179, 6, 180, 12, 179, 6, 178, 3, 176, 6, 175, 3, 174, 18, 175, 3, - 176, 6, 178, 3, 179, 3, 181, 3, 182, 3, 184, 3, 185, 3, 187, 3, 188, 6, 189, 3, - 190, 3, 191, 130, 190, 1, 187, 1, 199, 1, 193, 1, 164, 1, 234, 1, 197, 1, 60, 1, - 249, 1, 180, 1, 15, 1, 253, 1, 158, 1, 2, 1, 252, 1, 136, 1, 0, 1, 254, 1, - 129, 1, 0, 1, 253, 1, 142, 1, 1, 1, 252, 1, 157, 1, 5, 1, 249, 1, 172, 1, - 13, 1, 244, 1, 185, 1, 27, 1, 234, 1, 195, 1, 58, 1, 212, 1, 195, 1, 125, 1, - 198, 1, 193, 1, 167, 1, 193, 1, 191, 1, 182, 1, 191, 1, 190, 1, 188, 1, 191, 1, - 190, 2, 191, 7, 190, 2, 191, 1, 190, 1, 188, 1, 196, 1, 192, 1, 173, 1, 216, 1, - 195, 1, 111, 1, 243, 1, 187, 1, 32, 1, 250, 1, 166, 1, 9, 1, 252, 1, 143, 1, - 1, 1, 252, 1, 121, 1, 0, 1, 253, 1, 108, 1, 0, 1, 253, 1, 101, 1, 0, 1, - 253, 1, 93, 1, 0, 1, 253, 1, 93, 1, 0, 1, 253, 1, 100, 1, 0, 1, 253, 1, - 107, 1, 0, 1, 252, 1, 120, 1, 0, 1, 252, 1, 142, 1, 1, 1, 250, 1, 165, 1, - 8, 1, 242, 1, 187, 1, 31, 1, 216, 1, 194, 1, 110, 1, 195, 1, 191, 1, 173, 1, - 191, 1, 190, 1, 188, 1, 190, 3, 191, 1, 190, 1, 189, 1, 191, 2, 185, 1, 194, 1, - 191, 1, 177, 1, 198, 1, 192, 1, 163, 1, 208, 1, 194, 1, 134, 1, 225, 1, 196, 1, - 84, 1, 238, 1, 193, 1, 42, 1, 244, 1, 186, 1, 26, 1, 247, 1, 176, 1, 15, 1, - 250, 1, 166, 1, 8, 1, 251, 1, 156, 1, 3, 1, 252, 1, 146, 1, 1, 1, 252, 1, - 153, 1, 1, 1, 250, 1, 174, 1, 9, 1, 241, 1, 194, 1, 36, 1, 205, 1, 194, 1, - 143, 1, 192, 1, 191, 1, 182, 1, 190, 24, 191, 66, 190, 6, 189, 3, 188, 3, 187, 3, - 185, 3, 184, 3, 182, 3, 180, 3, 178, 3, 176, 3, 174, 3, 173, 3, 172, 9, 173, 6, - 174, 3, 175, 6, 176, 6, 175, 3, 174, 3, 173, 6, 172, 3, 170, 18, 171, 3, 173, 3, - 174, 3, 176, 3, 178, 3, 179, 3, 182, 3, 184, 3, 185, 3, 187, 3, 188, 6, 189, 12, - 188, 6, 187, 3, 185, 3, 184, 3, 182, 3, 181, 3, 179, 3, 178, 3, 177, 3, 176, 3, - 175, 3, 174, 24, 173, 6, 172, 3, 171, 3, 170, 15, 171, 3, 172, 3, 173, 3, 174, 3, - 176, 3, 177, 3, 179, 15, 177, 3, 176, 3, 174, 3, 172, 3, 170, 3, 169, 3, 167, 6, - 166, 3, 165, 12, 166, 3, 167, 3, 168, 3, 169, 3, 170, 3, 172, 3, 173, 3, 175, 3, - 176, 15, 175, 6, 174, 6, 175, 3, 176, 6, 177, 3, 179, 3, 180, 3, 182, 3, 183, 3, - 185, 3, 186, 3, 187, 3, 188, 9, 187, 3, 186, 3, 185, 3, 183, 3, 181, 3, 179, 3, - 176, 3, 174, 3, 172, 3, 170, 3, 168, 3, 167, 3, 166, 3, 165, 15, 166, 3, 167, 3, - 168, 3, 170, 3, 171, 3, 173, 3, 175, 3, 176, 3, 178, 3, 179, 9, 178, 3, 176, 3, - 175, 3, 173, 3, 171, 3, 170, 3, 168, 3, 167, 3, 166, 3, 165, 12, 166, 3, 167, 6, - 169, 3, 170, 3, 172, 3, 173, 3, 174, 3, 176, 12, 175, 3, 174, 3, 173, 6, 172, 12, - 173, 3, 174, 3, 176, 3, 177, 3, 179, 3, 180, 3, 182, 3, 183, 3, 184, 3, 185, 6, - 184, 3, 183, 3, 182, 3, 179, 3, 178, 3, 176, 3, 173, 3, 172, 3, 170, 6, 169, 3, - 168, 3, 169, 21, 168, 3, 167, 9, 166, 3, 165, 6, 164, 6, 165, 9, 166, 3, 167, 9, - 168, 3, 169, 27, 170, 3, 171, 3, 173, 3, 175, 3, 177, 3, 179, 3, 182, 3, 184, 3, - 185, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 42, 190, 3, 189, 3, 188, 3, 187, 3, - 185, 3, 184, 3, 182, 3, 179, 3, 177, 3, 175, 3, 173, 3, 170, 3, 169, 3, 167, 6, - 166, 3, 165, 12, 166, 3, 167, 6, 169, 3, 170, 3, 171, 3, 173, 6, 174, 3, 175, 6, - 174, 3, 173, 6, 172, 3, 171, 3, 170, 18, 171, 3, 173, 6, 175, 3, 176, 6, 177, 9, - 176, 3, 175, 3, 173, 3, 171, 3, 170, 3, 168, 3, 167, 6, 166, 3, 165, 9, 166, 6, - 167, 3, 168, 3, 170, 3, 171, 3, 172, 3, 173, 3, 174, 3, 175, 6, 174, 3, 173, 3, - 172, 3, 171, 3, 170, 3, 168, 3, 167, 3, 166, 6, 165, 9, 166, 3, 167, 3, 168, 3, - 170, 3, 171, 3, 173, 3, 176, 3, 178, 3, 180, 3, 182, 3, 185, 3, 186, 3, 188, 6, - 190, 6, 191, 127, 190, 1, 189, 1, 197, 1, 193, 1, 171, 1, 228, 1, 197, 1, 75, 1, - 247, 1, 183, 1, 19, 1, 253, 1, 161, 1, 3, 1, 252, 1, 139, 1, 0, 1, 254, 1, - 118, 1, 0, 1, 254, 1, 120, 1, 0, 1, 253, 1, 134, 1, 0, 1, 253, 1, 148, 1, - 2, 1, 251, 1, 163, 1, 7, 1, 248, 1, 178, 1, 18, 1, 242, 1, 190, 1, 35, 1, - 225, 1, 196, 1, 85, 1, 204, 1, 194, 1, 147, 1, 196, 1, 192, 1, 174, 1, 192, 1, - 190, 1, 185, 1, 191, 1, 190, 1, 189, 1, 191, 1, 190, 2, 191, 1, 190, 1, 189, 1, - 193, 1, 191, 1, 180, 1, 207, 1, 194, 1, 141, 1, 238, 1, 192, 1, 46, 1, 249, 1, - 173, 1, 15, 1, 253, 1, 150, 1, 3, 1, 252, 1, 127, 1, 0, 1, 252, 1, 111, 1, - 0, 1, 253, 1, 103, 1, 0, 1, 253, 1, 96, 1, 0, 1, 253, 1, 88, 1, 0, 1, - 253, 1, 87, 1, 0, 1, 253, 1, 95, 1, 0, 1, 253, 1, 102, 1, 0, 1, 252, 1, - 110, 1, 0, 1, 252, 1, 126, 1, 0, 1, 252, 1, 147, 1, 2, 1, 248, 1, 171, 1, - 14, 1, 237, 1, 191, 1, 47, 1, 205, 1, 191, 1, 144, 1, 193, 1, 191, 1, 178, 1, - 192, 1, 191, 1, 181, 1, 195, 1, 192, 1, 172, 1, 201, 1, 193, 1, 155, 1, 211, 1, - 195, 1, 124, 1, 228, 1, 196, 1, 74, 1, 241, 1, 192, 1, 36, 1, 245, 1, 184, 1, - 21, 1, 249, 1, 174, 1, 12, 1, 251, 1, 164, 1, 6, 1, 252, 1, 154, 1, 2, 1, - 252, 1, 143, 1, 0, 1, 252, 1, 133, 1, 0, 1, 252, 1, 136, 1, 0, 1, 252, 1, - 158, 1, 1, 1, 248, 1, 180, 1, 13, 1, 233, 1, 196, 1, 57, 1, 199, 1, 193, 1, - 160, 1, 191, 1, 190, 1, 186, 1, 190, 24, 191, 63, 190, 3, 189, 3, 188, 6, 186, 3, - 185, 3, 182, 3, 179, 3, 177, 3, 174, 3, 172, 3, 169, 3, 167, 3, 165, 3, 164, 12, - 166, 3, 167, 3, 168, 3, 169, 3, 170, 6, 169, 3, 167, 6, 165, 3, 164, 3, 162, 3, - 161, 15, 162, 3, 164, 3, 167, 3, 169, 3, 172, 3, 175, 3, 178, 3, 180, 3, 183, 3, - 185, 3, 186, 3, 188, 15, 187, 3, 185, 3, 184, 3, 182, 3, 180, 3, 179, 3, 176, 3, - 174, 3, 172, 3, 170, 3, 169, 3, 167, 27, 166, 3, 165, 3, 164, 3, 163, 3, 162, 3, - 161, 12, 162, 3, 164, 3, 165, 3, 167, 3, 170, 3, 171, 3, 173, 3, 174, 3, 175, 3, - 174, 3, 173, 3, 172, 3, 170, 3, 167, 3, 164, 3, 162, 3, 160, 3, 158, 3, 157, 3, - 155, 15, 156, 3, 158, 6, 161, 3, 162, 3, 164, 3, 167, 3, 168, 3, 169, 3, 170, 9, - 169, 3, 168, 3, 167, 15, 169, 3, 170, 3, 173, 3, 175, 3, 177, 3, 179, 3, 181, 3, - 183, 3, 185, 6, 186, 6, 185, 3, 184, 3, 182, 3, 179, 3, 177, 3, 174, 3, 170, 3, - 167, 3, 164, 3, 161, 3, 159, 3, 158, 3, 156, 3, 155, 15, 156, 3, 158, 3, 159, 3, - 161, 3, 164, 3, 167, 3, 169, 3, 171, 3, 173, 3, 174, 3, 175, 3, 174, 3, 173, 3, - 171, 3, 169, 3, 167, 3, 164, 3, 161, 3, 159, 3, 158, 3, 156, 3, 155, 12, 156, 3, - 157, 3, 158, 3, 160, 3, 162, 3, 164, 3, 166, 3, 167, 3, 169, 3, 170, 6, 169, 3, - 168, 3, 167, 3, 166, 3, 164, 6, 163, 6, 164, 6, 166, 3, 167, 3, 170, 3, 172, 3, - 175, 3, 177, 3, 179, 3, 180, 3, 181, 9, 179, 3, 178, 3, 175, 3, 173, 3, 170, 3, - 167, 3, 164, 3, 162, 3, 161, 3, 160, 9, 161, 18, 160, 3, 158, 6, 157, 3, 156, 3, - 155, 21, 156, 3, 157, 3, 158, 3, 159, 3, 160, 6, 161, 12, 160, 9, 161, 3, 162, 3, - 164, 3, 166, 3, 169, 3, 172, 3, 175, 3, 179, 3, 181, 3, 184, 3, 185, 3, 188, 6, - 190, 6, 191, 36, 190, 6, 188, 6, 185, 3, 184, 3, 181, 3, 178, 3, 175, 3, 172, 3, - 168, 3, 165, 3, 163, 3, 160, 3, 158, 3, 157, 3, 155, 15, 156, 3, 157, 3, 158, 3, - 160, 3, 162, 3, 164, 3, 165, 3, 167, 3, 168, 12, 167, 3, 166, 3, 164, 3, 163, 3, - 162, 3, 161, 15, 162, 3, 164, 3, 166, 3, 167, 3, 169, 3, 170, 3, 171, 9, 170, 3, - 168, 3, 166, 3, 164, 3, 161, 3, 160, 3, 158, 3, 157, 3, 155, 15, 157, 3, 158, 3, - 159, 3, 161, 3, 163, 3, 165, 3, 167, 6, 168, 6, 167, 6, 165, 3, 163, 3, 161, 3, - 159, 3, 158, 3, 157, 3, 155, 12, 156, 3, 158, 3, 159, 3, 161, 3, 164, 3, 167, 3, - 170, 3, 173, 3, 176, 3, 179, 3, 182, 3, 185, 3, 186, 3, 188, 3, 189, 3, 190, 3, - 191, 127, 190, 1, 189, 1, 195, 1, 192, 1, 176, 1, 223, 1, 197, 1, 92, 1, 246, 1, - 186, 1, 24, 1, 252, 1, 164, 1, 4, 1, 252, 1, 142, 1, 0, 1, 254, 1, 120, 1, - 0, 1, 254, 1, 109, 1, 0, 1, 254, 1, 114, 1, 0, 1, 254, 1, 126, 1, 0, 1, - 253, 1, 140, 1, 1, 1, 252, 1, 155, 1, 3, 1, 250, 1, 169, 1, 10, 1, 246, 1, - 183, 1, 23, 1, 237, 1, 194, 1, 50, 1, 216, 1, 195, 1, 113, 1, 200, 1, 193, 1, - 161, 1, 194, 1, 191, 1, 179, 1, 191, 1, 190, 1, 187, 1, 192, 1, 191, 1, 184, 1, - 200, 1, 192, 1, 161, 1, 230, 1, 194, 1, 72, 1, 246, 1, 178, 1, 21, 1, 252, 1, - 155, 1, 5, 1, 253, 1, 133, 1, 0, 1, 252, 1, 114, 1, 0, 1, 253, 1, 105, 1, - 0, 1, 253, 1, 98, 1, 0, 1, 253, 1, 90, 1, 0, 1, 253, 1, 82, 1, 0, 1, - 253, 1, 82, 1, 0, 1, 253, 1, 89, 1, 0, 1, 253, 1, 97, 1, 0, 1, 253, 1, - 104, 1, 0, 1, 252, 1, 113, 1, 0, 1, 252, 1, 131, 1, 0, 1, 251, 1, 153, 1, - 5, 1, 245, 1, 176, 1, 22, 1, 227, 1, 191, 1, 76, 1, 204, 1, 191, 1, 144, 1, - 205, 1, 193, 1, 143, 1, 215, 1, 195, 1, 112, 1, 231, 1, 195, 1, 65, 1, 243, 1, - 191, 1, 30, 1, 247, 1, 183, 1, 17, 1, 249, 1, 172, 1, 9, 1, 251, 1, 162, 1, - 4, 1, 252, 1, 152, 1, 1, 1, 252, 1, 142, 1, 0, 1, 252, 1, 131, 1, 0, 1, - 252, 1, 121, 1, 0, 1, 252, 1, 121, 1, 0, 1, 252, 1, 141, 1, 0, 1, 252, 1, - 163, 1, 3, 1, 246, 1, 185, 1, 20, 1, 224, 1, 197, 1, 85, 1, 196, 1, 192, 1, - 170, 1, 191, 1, 190, 1, 188, 1, 190, 24, 191, 60, 190, 3, 189, 3, 188, 6, 185, 3, - 184, 3, 181, 3, 178, 3, 175, 3, 171, 3, 167, 3, 173, 3, 181, 3, 183, 3, 191, 6, - 186, 3, 174, 3, 162, 3, 157, 3, 159, 3, 171, 15, 170, 3, 169, 3, 167, 3, 166, 3, - 165, 3, 164, 3, 163, 9, 164, 3, 165, 3, 167, 3, 161, 6, 165, 3, 169, 3, 173, 3, - 176, 3, 180, 3, 182, 3, 185, 3, 186, 3, 187, 9, 186, 3, 185, 3, 183, 3, 181, 3, - 178, 3, 176, 3, 173, 3, 170, 3, 167, 3, 164, 3, 171, 3, 170, 3, 176, 3, 180, 3, - 165, 3, 158, 3, 169, 18, 168, 3, 167, 3, 166, 3, 165, 3, 164, 3, 163, 6, 164, 3, - 165, 3, 166, 3, 163, 3, 159, 3, 161, 3, 164, 3, 167, 3, 168, 3, 169, 3, 178, 3, - 183, 3, 182, 3, 181, 3, 180, 3, 179, 3, 178, 3, 177, 3, 176, 3, 175, 21, 176, 6, - 177, 3, 152, 3, 155, 3, 158, 3, 160, 3, 164, 3, 172, 6, 171, 6, 170, 3, 158, 6, - 157, 3, 158, 6, 160, 3, 162, 3, 165, 3, 167, 3, 170, 3, 173, 3, 176, 3, 179, 3, - 181, 3, 182, 3, 183, 3, 184, 3, 183, 3, 182, 3, 179, 3, 186, 3, 184, 3, 183, 3, - 182, 3, 180, 3, 179, 3, 178, 3, 177, 3, 176, 3, 175, 21, 176, 3, 177, 6, 155, 3, - 158, 3, 161, 3, 164, 3, 167, 3, 169, 6, 183, 6, 182, 3, 181, 3, 180, 3, 179, 3, - 177, 6, 176, 3, 175, 18, 176, 6, 177, 3, 160, 3, 155, 3, 157, 3, 159, 3, 161, 3, - 171, 9, 170, 3, 169, 3, 167, 6, 165, 6, 152, 3, 153, 3, 155, 3, 156, 3, 158, 3, - 161, 3, 164, 3, 167, 3, 170, 3, 173, 3, 176, 6, 177, 3, 176, 3, 178, 3, 185, 3, - 184, 3, 182, 3, 181, 3, 180, 3, 179, 3, 178, 3, 177, 12, 172, 3, 151, 3, 177, 15, - 176, 9, 175, 9, 174, 9, 175, 9, 176, 3, 166, 3, 157, 3, 177, 30, 178, 3, 170, 3, - 158, 3, 161, 3, 166, 3, 170, 3, 174, 3, 178, 3, 181, 3, 184, 3, 186, 3, 188, 3, - 189, 3, 190, 3, 191, 36, 190, 3, 189, 3, 188, 3, 186, 3, 184, 3, 181, 3, 183, 3, - 185, 3, 184, 3, 182, 3, 181, 3, 179, 3, 178, 3, 177, 3, 176, 3, 175, 21, 176, 6, - 177, 3, 152, 3, 155, 3, 164, 3, 169, 3, 171, 9, 170, 3, 169, 6, 167, 3, 166, 3, - 165, 3, 164, 3, 163, 9, 164, 3, 165, 3, 167, 3, 157, 3, 159, 3, 161, 3, 163, 3, - 164, 3, 175, 3, 182, 3, 181, 3, 180, 6, 179, 3, 178, 3, 177, 3, 176, 3, 175, 21, - 176, 3, 177, 3, 168, 3, 153, 3, 156, 3, 158, 3, 160, 3, 174, 3, 181, 3, 180, 6, - 179, 3, 178, 3, 177, 6, 176, 3, 175, 18, 176, 6, 177, 3, 162, 3, 158, 3, 162, 3, - 167, 3, 171, 3, 175, 3, 179, 3, 182, 3, 185, 3, 187, 3, 188, 3, 189, 3, 190, 3, - 191, 124, 190, 2, 194, 1, 191, 1, 180, 1, 217, 1, 197, 1, 108, 1, 244, 1, 188, 1, - 29, 1, 252, 1, 167, 1, 6, 1, 252, 1, 145, 1, 0, 1, 254, 1, 123, 1, 0, 1, - 254, 1, 110, 1, 0, 1, 254, 1, 106, 1, 0, 1, 254, 1, 110, 1, 0, 1, 254, 1, - 119, 1, 0, 1, 253, 1, 132, 1, 0, 1, 253, 1, 147, 1, 1, 1, 252, 1, 161, 1, - 5, 1, 249, 1, 175, 1, 15, 1, 243, 1, 189, 1, 30, 1, 229, 1, 195, 1, 75, 1, - 207, 1, 194, 1, 139, 1, 198, 1, 193, 1, 167, 1, 198, 1, 191, 1, 165, 1, 218, 1, - 192, 1, 106, 1, 244, 1, 183, 1, 30, 1, 251, 1, 160, 1, 8, 1, 253, 1, 137, 1, - 1, 1, 254, 1, 118, 1, 0, 1, 253, 1, 106, 1, 0, 1, 253, 1, 99, 1, 0, 1, - 253, 1, 92, 1, 0, 1, 253, 1, 84, 1, 0, 1, 253, 1, 76, 1, 0, 1, 253, 1, - 76, 1, 0, 1, 253, 1, 83, 1, 0, 1, 253, 1, 91, 1, 0, 1, 253, 1, 98, 1, - 0, 1, 252, 1, 105, 1, 0, 1, 252, 1, 118, 1, 0, 1, 252, 1, 136, 1, 1, 1, - 250, 1, 159, 1, 8, 1, 244, 1, 181, 1, 25, 1, 230, 1, 189, 1, 68, 1, 235, 1, - 194, 1, 53, 1, 244, 1, 190, 1, 24, 1, 248, 1, 181, 1, 14, 1, 250, 1, 171, 1, - 7, 1, 252, 1, 161, 1, 3, 1, 252, 1, 150, 1, 1, 1, 252, 1, 140, 1, 0, 1, - 252, 1, 130, 1, 0, 1, 252, 1, 120, 1, 0, 1, 253, 1, 113, 1, 0, 1, 253, 1, - 111, 1, 0, 1, 252, 1, 124, 1, 0, 1, 252, 1, 146, 1, 0, 1, 251, 1, 169, 1, - 5, 1, 243, 1, 190, 1, 27, 1, 214, 1, 196, 1, 115, 1, 193, 1, 191, 1, 178, 1, - 191, 1, 190, 26, 191, 57, 190, 6, 188, 6, 185, 3, 183, 3, 181, 3, 177, 3, 173, 3, - 171, 3, 178, 3, 191, 24, 150, 3, 147, 3, 149, 3, 178, 3, 191, 48, 161, 3, 152, 3, - 157, 3, 162, 3, 167, 3, 172, 3, 176, 3, 180, 3, 182, 3, 185, 12, 184, 3, 182, 3, - 179, 3, 176, 3, 173, 3, 169, 3, 167, 3, 174, 3, 183, 3, 191, 15, 161, 3, 148, 3, - 167, 3, 191, 45, 175, 3, 149, 3, 152, 3, 156, 3, 159, 3, 161, 3, 162, 3, 181, 3, - 191, 54, 141, 3, 145, 3, 148, 3, 151, 3, 165, 3, 191, 18, 185, 3, 170, 3, 155, 3, - 147, 3, 149, 3, 152, 3, 155, 3, 159, 3, 163, 3, 167, 3, 170, 3, 173, 3, 176, 3, - 179, 3, 180, 6, 179, 3, 178, 3, 175, 3, 191, 57, 143, 3, 148, 3, 152, 3, 157, 3, - 160, 3, 162, 3, 163, 3, 191, 54, 157, 3, 143, 3, 147, 3, 150, 3, 152, 3, 191, 30, - 179, 3, 163, 3, 144, 3, 147, 3, 151, 3, 155, 3, 159, 3, 163, 3, 167, 3, 170, 3, - 171, 3, 172, 3, 171, 3, 177, 3, 191, 33, 162, 3, 140, 3, 191, 54, 172, 3, 136, 3, - 184, 3, 191, 30, 175, 3, 148, 3, 153, 3, 158, 3, 164, 3, 169, 3, 174, 3, 178, 3, - 182, 3, 185, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 30, 190, 3, 189, 3, 188, 3, - 187, 3, 185, 3, 182, 3, 178, 3, 185, 3, 191, 54, 140, 3, 144, 3, 151, 3, 186, 3, - 191, 48, 146, 3, 149, 3, 152, 3, 155, 3, 156, 3, 179, 3, 191, 51, 173, 3, 142, 3, - 146, 3, 148, 3, 150, 3, 178, 3, 191, 51, 159, 3, 148, 3, 154, 3, 159, 3, 165, 3, - 170, 3, 176, 3, 179, 3, 183, 3, 185, 3, 188, 3, 189, 3, 190, 3, 191, 124, 190, 2, - 193, 1, 191, 1, 183, 1, 212, 1, 196, 1, 125, 1, 242, 1, 191, 1, 34, 1, 251, 1, - 170, 1, 8, 1, 252, 1, 148, 1, 0, 1, 254, 1, 126, 1, 0, 1, 255, 1, 111, 1, - 0, 1, 255, 1, 103, 1, 0, 1, 254, 1, 103, 1, 0, 1, 254, 1, 107, 1, 0, 1, - 254, 1, 113, 1, 0, 1, 254, 1, 124, 1, 0, 1, 253, 1, 138, 1, 0, 1, 253, 1, - 153, 1, 2, 1, 251, 1, 167, 1, 8, 1, 247, 1, 181, 1, 20, 1, 239, 1, 193, 1, - 42, 1, 221, 1, 195, 1, 97, 1, 216, 1, 190, 1, 112, 1, 240, 1, 187, 1, 40, 1, - 249, 1, 165, 1, 13, 1, 253, 1, 142, 1, 2, 1, 254, 1, 122, 1, 0, 1, 254, 1, - 108, 1, 0, 1, 253, 1, 100, 1, 0, 1, 253, 1, 93, 1, 0, 1, 253, 1, 85, 1, - 0, 1, 253, 1, 78, 1, 0, 1, 253, 1, 70, 1, 0, 1, 253, 1, 68, 1, 0, 1, - 253, 1, 76, 1, 0, 1, 253, 1, 84, 1, 0, 1, 253, 1, 91, 1, 0, 1, 253, 1, - 98, 1, 0, 1, 252, 1, 106, 1, 0, 1, 252, 1, 119, 1, 0, 1, 252, 1, 137, 1, - 2, 1, 250, 1, 159, 1, 7, 1, 249, 1, 178, 1, 11, 1, 249, 1, 178, 1, 9, 1, - 251, 1, 169, 1, 5, 1, 252, 1, 159, 1, 2, 1, 252, 1, 148, 1, 0, 1, 252, 1, - 138, 1, 0, 1, 252, 1, 128, 1, 0, 1, 253, 1, 118, 1, 0, 1, 253, 1, 112, 1, - 0, 1, 253, 1, 108, 1, 0, 1, 253, 1, 107, 1, 0, 1, 253, 1, 112, 1, 0, 1, - 252, 1, 130, 1, 0, 1, 252, 1, 152, 1, 0, 1, 250, 1, 174, 1, 9, 1, 240, 1, - 194, 1, 37, 1, 205, 1, 194, 1, 143, 1, 191, 2, 183, 1, 190, 27, 191, 54, 190, 6, - 189, 3, 188, 3, 186, 3, 184, 3, 181, 3, 177, 3, 173, 3, 172, 3, 187, 3, 191, 24, - 157, 3, 134, 3, 137, 3, 140, 3, 143, 3, 185, 3, 191, 45, 154, 3, 141, 3, 148, 3, - 155, 3, 161, 3, 167, 3, 172, 3, 176, 3, 180, 3, 182, 3, 183, 6, 182, 3, 180, 3, - 178, 3, 174, 3, 170, 3, 168, 3, 177, 3, 191, 24, 154, 3, 137, 3, 138, 3, 174, 3, - 191, 42, 172, 3, 138, 3, 143, 3, 147, 3, 151, 3, 154, 3, 155, 3, 179, 3, 191, 54, - 129, 3, 134, 3, 137, 3, 141, 3, 159, 3, 191, 27, 184, 3, 160, 3, 140, 3, 143, 3, - 148, 3, 153, 3, 158, 3, 163, 3, 167, 3, 171, 3, 174, 3, 176, 3, 177, 3, 176, 3, - 174, 3, 170, 3, 191, 57, 132, 3, 137, 3, 143, 3, 148, 3, 152, 3, 155, 3, 156, 3, - 191, 54, 149, 3, 132, 3, 137, 3, 140, 3, 143, 3, 191, 36, 184, 3, 146, 3, 139, 3, - 143, 3, 149, 3, 154, 3, 158, 3, 162, 3, 164, 3, 166, 3, 165, 3, 173, 3, 191, 30, - 183, 3, 127, 3, 128, 3, 191, 54, 167, 3, 123, 3, 154, 3, 191, 30, 171, 3, 138, 3, - 144, 3, 150, 3, 157, 3, 164, 3, 170, 3, 175, 3, 179, 3, 183, 3, 186, 3, 188, 3, - 189, 3, 190, 3, 191, 30, 190, 3, 189, 3, 188, 3, 186, 3, 183, 3, 179, 3, 175, 3, - 184, 3, 191, 54, 128, 3, 133, 3, 137, 3, 151, 3, 191, 48, 134, 3, 138, 3, 142, 3, - 145, 3, 147, 3, 176, 3, 191, 51, 169, 3, 131, 3, 134, 3, 138, 3, 140, 3, 174, 3, - 191, 51, 151, 3, 137, 3, 145, 3, 152, 3, 159, 3, 165, 3, 172, 3, 176, 3, 181, 3, - 184, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 121, 190, 2, 192, 1, 190, 1, 185, 1, - 206, 1, 195, 1, 142, 1, 240, 1, 193, 1, 40, 1, 250, 1, 173, 1, 11, 1, 252, 1, - 151, 1, 1, 1, 254, 1, 129, 1, 0, 1, 254, 1, 112, 1, 0, 1, 255, 1, 104, 1, - 0, 1, 255, 1, 98, 1, 0, 1, 254, 1, 100, 1, 0, 1, 254, 1, 105, 1, 0, 1, - 254, 1, 109, 1, 0, 1, 254, 1, 117, 1, 0, 1, 254, 1, 130, 1, 0, 1, 253, 1, - 144, 1, 1, 1, 252, 1, 159, 1, 4, 1, 250, 1, 173, 1, 12, 1, 246, 1, 186, 1, - 22, 1, 244, 1, 186, 1, 28, 1, 249, 1, 168, 1, 14, 1, 252, 1, 145, 1, 4, 1, - 253, 1, 125, 1, 0, 1, 254, 1, 109, 1, 0, 1, 254, 1, 101, 1, 0, 1, 253, 1, - 94, 1, 0, 1, 253, 1, 86, 1, 0, 1, 253, 1, 79, 1, 0, 1, 253, 1, 71, 1, - 0, 1, 253, 1, 63, 1, 0, 1, 253, 1, 61, 1, 0, 1, 253, 1, 68, 1, 0, 1, - 253, 1, 76, 1, 0, 1, 253, 1, 84, 1, 0, 1, 253, 1, 91, 1, 0, 1, 253, 1, - 98, 1, 0, 1, 252, 1, 106, 1, 0, 1, 252, 1, 119, 1, 0, 1, 252, 1, 137, 1, - 0, 1, 252, 1, 155, 1, 1, 1, 252, 1, 156, 1, 1, 1, 252, 1, 147, 1, 0, 1, - 252, 1, 137, 1, 0, 1, 252, 1, 126, 1, 0, 1, 253, 1, 117, 1, 0, 1, 253, 1, - 111, 1, 0, 1, 253, 1, 108, 1, 0, 1, 253, 1, 104, 1, 0, 1, 253, 1, 101, 1, - 0, 1, 253, 1, 106, 1, 0, 1, 253, 1, 115, 1, 0, 1, 252, 1, 135, 1, 0, 1, - 252, 1, 158, 1, 1, 1, 248, 1, 180, 1, 14, 1, 233, 1, 196, 1, 59, 1, 199, 1, - 193, 1, 161, 1, 191, 1, 190, 1, 186, 1, 190, 27, 191, 54, 190, 3, 189, 3, 188, 3, - 186, 3, 184, 3, 181, 3, 177, 3, 172, 3, 175, 3, 191, 30, 126, 3, 121, 3, 125, 3, - 129, 3, 133, 3, 142, 3, 184, 3, 191, 42, 146, 3, 131, 3, 138, 3, 146, 3, 154, 3, - 161, 3, 168, 3, 173, 3, 177, 3, 179, 3, 181, 3, 180, 3, 179, 3, 176, 3, 173, 3, - 168, 3, 175, 3, 191, 30, 145, 3, 125, 3, 128, 3, 129, 3, 184, 3, 191, 39, 167, 3, - 126, 3, 132, 3, 137, 3, 143, 3, 146, 3, 147, 3, 176, 3, 191, 54, 116, 3, 121, 3, - 126, 3, 130, 3, 152, 3, 191, 33, 183, 3, 144, 3, 136, 3, 142, 3, 148, 3, 154, 3, - 159, 3, 164, 3, 168, 3, 171, 3, 172, 6, 170, 3, 166, 3, 191, 57, 119, 3, 126, 3, - 133, 3, 139, 3, 144, 3, 147, 3, 149, 3, 191, 54, 140, 3, 119, 3, 125, 3, 129, 3, - 132, 3, 191, 42, 161, 3, 131, 3, 137, 3, 143, 3, 149, 3, 153, 3, 157, 3, 158, 6, - 167, 3, 191, 30, 148, 3, 115, 3, 116, 3, 191, 54, 162, 3, 109, 3, 112, 3, 182, 3, - 191, 27, 168, 3, 128, 3, 134, 3, 142, 3, 150, 3, 158, 3, 165, 3, 172, 3, 177, 3, - 182, 3, 185, 3, 187, 3, 188, 3, 190, 3, 191, 30, 190, 3, 188, 3, 187, 3, 185, 3, - 182, 3, 177, 3, 172, 3, 182, 3, 191, 54, 116, 3, 121, 3, 126, 3, 131, 3, 153, 3, - 191, 45, 122, 3, 127, 3, 131, 3, 135, 3, 137, 3, 173, 3, 191, 51, 165, 3, 117, 3, - 122, 3, 127, 3, 130, 3, 171, 3, 191, 51, 143, 3, 126, 3, 134, 3, 143, 3, 152, 3, - 160, 3, 167, 3, 173, 3, 179, 3, 182, 3, 185, 3, 188, 3, 189, 3, 190, 3, 191, 124, - 190, 1, 187, 1, 201, 1, 194, 1, 157, 1, 238, 1, 195, 1, 47, 1, 249, 1, 176, 1, - 14, 1, 252, 1, 154, 1, 2, 1, 254, 1, 132, 1, 0, 1, 254, 1, 114, 1, 0, 1, - 255, 1, 105, 1, 0, 1, 255, 1, 97, 1, 0, 1, 255, 1, 93, 1, 0, 1, 255, 1, - 98, 1, 0, 1, 254, 1, 102, 1, 0, 1, 254, 1, 107, 1, 0, 1, 254, 1, 112, 1, - 0, 1, 254, 1, 122, 1, 0, 1, 253, 1, 136, 1, 0, 1, 253, 1, 150, 1, 2, 1, - 252, 1, 164, 1, 4, 1, 252, 1, 164, 1, 5, 1, 253, 1, 144, 1, 3, 1, 253, 1, - 125, 1, 0, 1, 254, 1, 109, 1, 0, 1, 254, 1, 100, 1, 0, 1, 254, 1, 94, 1, - 0, 1, 253, 1, 86, 1, 0, 1, 253, 1, 79, 1, 0, 1, 253, 1, 71, 1, 0, 1, - 253, 1, 63, 1, 0, 1, 253, 1, 55, 1, 0, 1, 245, 1, 53, 1, 4, 1, 160, 1, - 52, 1, 53, 1, 71, 1, 45, 1, 104, 1, 136, 1, 57, 1, 67, 1, 236, 1, 80, 1, - 9, 1, 253, 1, 91, 1, 0, 1, 253, 1, 98, 1, 0, 1, 253, 1, 106, 1, 0, 1, - 253, 1, 119, 1, 0, 1, 253, 1, 134, 1, 0, 1, 253, 1, 134, 1, 0, 1, 253, 1, - 125, 1, 0, 1, 253, 1, 116, 1, 0, 1, 253, 1, 111, 1, 0, 1, 253, 1, 107, 1, - 0, 1, 253, 1, 104, 1, 0, 1, 253, 1, 100, 1, 0, 1, 253, 1, 97, 1, 0, 1, - 253, 1, 100, 1, 0, 1, 253, 1, 108, 1, 0, 1, 253, 1, 119, 1, 0, 1, 252, 1, - 141, 1, 0, 1, 251, 1, 163, 1, 3, 1, 246, 1, 185, 1, 20, 1, 224, 1, 197, 1, - 87, 1, 196, 1, 192, 1, 171, 1, 191, 1, 190, 1, 189, 1, 190, 27, 191, 51, 190, 6, - 188, 3, 187, 3, 185, 3, 182, 3, 178, 3, 173, 3, 175, 3, 191, 33, 123, 3, 108, 3, - 113, 3, 118, 3, 123, 3, 126, 3, 149, 3, 191, 42, 138, 3, 119, 3, 128, 3, 138, 3, - 147, 3, 156, 3, 164, 3, 170, 3, 174, 3, 176, 3, 177, 3, 176, 3, 174, 3, 171, 3, - 168, 3, 184, 3, 191, 33, 137, 3, 113, 3, 116, 3, 119, 3, 129, 3, 183, 3, 191, 36, - 163, 3, 115, 3, 122, 3, 128, 3, 134, 3, 137, 3, 140, 3, 173, 3, 191, 54, 104, 3, - 110, 3, 115, 3, 119, 3, 145, 3, 191, 39, 160, 3, 129, 3, 136, 3, 143, 3, 150, 3, - 156, 3, 161, 3, 165, 3, 167, 6, 164, 3, 161, 3, 191, 57, 107, 3, 116, 3, 123, 3, - 131, 3, 136, 3, 140, 3, 141, 3, 191, 54, 131, 3, 107, 3, 113, 3, 118, 3, 122, 3, - 191, 45, 166, 3, 125, 3, 131, 3, 138, 3, 143, 3, 148, 3, 150, 6, 163, 3, 191, 27, - 180, 3, 103, 3, 104, 3, 105, 3, 191, 54, 158, 3, 96, 3, 100, 3, 132, 3, 191, 27, - 164, 3, 117, 3, 125, 3, 134, 3, 143, 3, 152, 3, 161, 3, 169, 3, 175, 3, 180, 3, - 184, 3, 186, 3, 188, 3, 189, 3, 190, 3, 191, 24, 190, 3, 189, 3, 188, 3, 186, 3, - 184, 3, 180, 3, 175, 3, 168, 3, 181, 3, 191, 54, 104, 3, 110, 3, 116, 3, 122, 3, - 126, 3, 149, 3, 191, 42, 110, 3, 116, 3, 121, 3, 125, 3, 128, 3, 170, 3, 191, 51, - 160, 3, 105, 3, 110, 3, 116, 3, 119, 3, 168, 3, 191, 51, 135, 3, 116, 3, 125, 3, - 135, 3, 146, 3, 155, 3, 164, 3, 170, 3, 176, 3, 182, 3, 185, 3, 187, 3, 188, 3, - 190, 3, 191, 124, 190, 1, 188, 1, 197, 1, 193, 1, 170, 1, 235, 1, 197, 1, 57, 1, - 247, 1, 179, 1, 18, 1, 252, 1, 157, 1, 3, 1, 254, 1, 135, 1, 0, 1, 254, 1, - 115, 1, 0, 1, 255, 1, 106, 1, 0, 1, 255, 1, 98, 1, 0, 1, 255, 1, 91, 1, - 0, 1, 255, 1, 90, 1, 0, 1, 255, 1, 95, 1, 0, 1, 254, 1, 99, 1, 0, 1, - 254, 1, 104, 1, 0, 1, 254, 1, 108, 1, 0, 1, 254, 1, 116, 1, 0, 1, 254, 1, - 128, 1, 0, 1, 254, 1, 141, 1, 0, 1, 254, 1, 142, 1, 0, 1, 254, 1, 124, 1, - 0, 1, 254, 1, 109, 1, 0, 1, 254, 1, 100, 1, 0, 1, 254, 1, 93, 1, 0, 1, - 255, 1, 86, 1, 0, 1, 253, 1, 79, 1, 0, 1, 253, 1, 71, 1, 0, 1, 253, 1, - 63, 1, 0, 1, 244, 1, 55, 1, 4, 1, 160, 1, 45, 1, 53, 1, 63, 1, 41, 1, - 110, 1, 41, 2, 123, 1, 41, 2, 123, 1, 41, 2, 124, 1, 55, 1, 44, 1, 115, 1, - 159, 1, 66, 1, 55, 1, 249, 1, 90, 1, 2, 1, 253, 1, 99, 1, 0, 1, 253, 1, - 107, 1, 0, 1, 253, 1, 117, 1, 0, 1, 253, 1, 116, 1, 0, 1, 253, 1, 110, 1, - 0, 1, 253, 1, 107, 1, 0, 1, 253, 1, 103, 1, 0, 1, 253, 1, 100, 1, 0, 1, - 253, 1, 96, 1, 0, 1, 253, 1, 92, 1, 0, 1, 253, 1, 95, 1, 0, 1, 253, 1, - 102, 1, 0, 1, 253, 1, 110, 1, 0, 1, 253, 1, 124, 1, 0, 1, 252, 1, 147, 1, - 0, 1, 251, 1, 169, 1, 6, 1, 243, 1, 191, 1, 28, 1, 214, 1, 196, 1, 116, 1, - 193, 1, 191, 1, 178, 1, 191, 1, 190, 29, 191, 51, 190, 3, 189, 3, 188, 3, 186, 3, - 183, 3, 179, 3, 174, 3, 170, 3, 187, 3, 191, 33, 146, 3, 96, 3, 102, 3, 108, 3, - 113, 3, 118, 3, 121, 3, 152, 3, 191, 39, 131, 3, 110, 3, 119, 3, 130, 3, 140, 3, - 150, 3, 159, 3, 166, 3, 170, 3, 173, 9, 169, 3, 166, 3, 187, 3, 191, 36, 129, 3, - 102, 3, 107, 3, 110, 3, 113, 3, 132, 3, 191, 36, 160, 3, 104, 3, 112, 3, 119, 3, - 125, 3, 130, 3, 132, 3, 171, 3, 191, 54, 91, 3, 98, 3, 104, 3, 110, 3, 139, 3, - 191, 42, 166, 3, 123, 3, 131, 3, 140, 3, 147, 3, 153, 3, 158, 3, 161, 6, 160, 3, - 155, 3, 191, 57, 96, 3, 105, 3, 114, 3, 122, 3, 128, 3, 133, 3, 134, 3, 191, 54, - 123, 3, 96, 3, 102, 3, 108, 3, 112, 3, 191, 48, 137, 3, 119, 3, 126, 3, 133, 3, - 138, 3, 141, 3, 142, 3, 157, 3, 191, 27, 135, 3, 92, 3, 95, 3, 96, 3, 191, 54, - 154, 3, 85, 3, 89, 3, 92, 3, 169, 3, 191, 24, 161, 3, 107, 3, 116, 3, 126, 3, - 137, 3, 147, 3, 157, 3, 166, 3, 173, 3, 179, 3, 182, 3, 186, 3, 188, 3, 189, 3, - 190, 3, 191, 24, 190, 3, 189, 3, 188, 3, 186, 3, 182, 3, 179, 3, 173, 3, 165, 3, - 179, 3, 191, 54, 92, 3, 100, 3, 107, 3, 113, 3, 119, 3, 122, 3, 153, 3, 191, 39, - 98, 3, 105, 3, 111, 3, 116, 3, 119, 3, 167, 3, 191, 51, 156, 3, 93, 3, 100, 3, - 105, 3, 110, 3, 164, 3, 191, 51, 127, 3, 105, 3, 116, 3, 128, 3, 139, 3, 150, 3, - 160, 3, 168, 3, 175, 3, 180, 3, 184, 3, 187, 3, 188, 3, 190, 6, 191, 75, 190, 45, - 191, 1, 190, 1, 189, 1, 194, 1, 191, 1, 176, 1, 228, 1, 196, 1, 72, 1, 245, 1, - 182, 1, 23, 1, 251, 1, 161, 1, 4, 1, 252, 1, 138, 1, 0, 1, 253, 1, 117, 1, - 0, 1, 253, 1, 107, 1, 0, 1, 253, 1, 99, 1, 0, 1, 253, 1, 92, 1, 0, 1, - 253, 1, 85, 1, 0, 1, 253, 1, 87, 1, 0, 1, 253, 1, 92, 1, 0, 1, 253, 1, - 97, 1, 0, 1, 253, 1, 101, 1, 0, 1, 253, 1, 106, 1, 0, 1, 253, 1, 111, 1, - 0, 1, 253, 1, 121, 1, 0, 1, 253, 1, 123, 1, 0, 1, 253, 1, 110, 1, 0, 1, - 253, 1, 101, 1, 0, 1, 253, 1, 93, 1, 0, 1, 253, 1, 86, 1, 0, 1, 253, 1, - 79, 1, 0, 1, 253, 1, 71, 1, 0, 1, 246, 1, 62, 1, 4, 1, 161, 1, 50, 1, - 53, 1, 63, 1, 42, 1, 110, 1, 41, 2, 124, 1, 41, 2, 124, 1, 41, 2, 125, 1, - 41, 2, 125, 1, 41, 2, 125, 1, 41, 2, 125, 1, 41, 2, 125, 1, 82, 1, 50, 1, - 101, 1, 211, 1, 82, 1, 24, 1, 253, 1, 99, 1, 0, 1, 253, 1, 106, 1, 0, 1, - 253, 1, 106, 1, 0, 1, 253, 1, 103, 1, 0, 1, 253, 1, 99, 1, 0, 1, 253, 1, - 95, 1, 0, 1, 253, 1, 92, 1, 0, 1, 253, 1, 88, 1, 0, 1, 253, 1, 89, 1, - 0, 1, 253, 1, 96, 1, 0, 1, 253, 1, 104, 1, 0, 1, 253, 1, 112, 1, 0, 1, - 252, 1, 129, 1, 0, 1, 252, 1, 152, 1, 1, 1, 249, 1, 174, 1, 9, 1, 240, 1, - 194, 1, 38, 1, 204, 1, 194, 1, 145, 1, 191, 2, 183, 1, 190, 30, 191, 48, 190, 6, - 188, 3, 187, 3, 185, 3, 181, 3, 176, 3, 170, 3, 178, 3, 191, 39, 96, 3, 91, 3, - 98, 3, 104, 3, 110, 3, 114, 3, 115, 3, 165, 3, 191, 36, 123, 3, 100, 3, 111, 3, - 123, 3, 134, 3, 145, 3, 155, 3, 161, 3, 167, 3, 169, 3, 170, 3, 167, 3, 166, 3, - 187, 3, 191, 39, 121, 3, 92, 3, 98, 3, 103, 3, 107, 3, 110, 3, 137, 3, 191, 33, - 156, 3, 95, 3, 103, 3, 111, 3, 118, 3, 123, 3, 125, 3, 169, 3, 191, 54, 80, 3, - 88, 3, 95, 3, 101, 3, 133, 3, 191, 45, 145, 3, 119, 3, 128, 3, 137, 3, 145, 3, - 151, 3, 155, 6, 154, 3, 149, 3, 191, 57, 86, 3, 95, 3, 106, 3, 115, 3, 122, 3, - 127, 3, 128, 3, 191, 54, 115, 3, 86, 3, 92, 3, 99, 3, 103, 3, 191, 51, 115, 3, - 114, 3, 122, 3, 128, 3, 132, 3, 134, 3, 151, 3, 191, 24, 178, 3, 83, 3, 85, 3, - 87, 3, 89, 3, 191, 54, 150, 3, 74, 3, 80, 3, 83, 3, 109, 3, 191, 24, 158, 3, - 100, 3, 109, 3, 120, 3, 131, 3, 143, 3, 153, 3, 163, 3, 170, 3, 177, 3, 182, 3, - 185, 3, 188, 3, 189, 3, 190, 3, 191, 24, 190, 3, 189, 3, 188, 3, 185, 3, 182, 3, - 177, 3, 170, 3, 162, 3, 178, 3, 191, 54, 82, 3, 91, 3, 99, 3, 107, 3, 113, 3, - 117, 3, 119, 3, 166, 3, 191, 36, 89, 3, 95, 3, 102, 3, 107, 3, 111, 3, 165, 3, - 191, 51, 152, 3, 83, 3, 89, 3, 96, 3, 101, 3, 161, 3, 191, 51, 120, 3, 96, 3, - 108, 3, 121, 3, 134, 3, 146, 3, 156, 3, 165, 3, 173, 3, 179, 3, 183, 3, 186, 3, - 188, 3, 189, 3, 190, 3, 191, 121, 190, 2, 194, 1, 191, 1, 180, 1, 224, 1, 197, 1, - 88, 1, 244, 1, 185, 1, 29, 1, 251, 1, 164, 1, 6, 1, 254, 1, 141, 1, 0, 1, - 254, 1, 120, 1, 0, 1, 255, 1, 108, 1, 0, 1, 255, 1, 100, 1, 0, 1, 255, 1, - 93, 1, 0, 1, 255, 1, 85, 1, 0, 1, 255, 1, 81, 1, 0, 1, 255, 1, 84, 1, - 0, 1, 255, 1, 89, 1, 0, 1, 255, 1, 94, 1, 0, 1, 255, 1, 99, 1, 0, 1, - 255, 1, 104, 1, 0, 1, 255, 1, 109, 1, 0, 1, 255, 1, 109, 1, 0, 1, 255, 1, - 101, 1, 0, 1, 255, 1, 94, 1, 0, 1, 255, 1, 86, 1, 0, 1, 255, 1, 79, 1, - 0, 1, 245, 1, 70, 1, 4, 1, 161, 1, 54, 1, 52, 1, 61, 1, 43, 1, 110, 1, - 41, 2, 123, 1, 41, 2, 125, 1, 42, 2, 125, 1, 42, 2, 126, 1, 42, 2, 127, 1, - 42, 2, 127, 1, 42, 2, 127, 1, 42, 2, 127, 1, 42, 2, 127, 1, 42, 2, 127, 1, - 46, 1, 43, 1, 124, 1, 152, 1, 68, 1, 60, 1, 251, 1, 97, 1, 1, 1, 253, 1, - 98, 1, 0, 1, 253, 1, 95, 1, 0, 1, 253, 1, 91, 1, 0, 1, 253, 1, 88, 1, - 0, 1, 253, 1, 84, 1, 0, 1, 253, 1, 84, 1, 0, 1, 253, 1, 91, 1, 0, 1, - 253, 1, 98, 1, 0, 1, 253, 1, 106, 1, 0, 1, 253, 1, 115, 1, 0, 1, 252, 1, - 135, 1, 0, 1, 252, 1, 158, 1, 2, 1, 248, 1, 180, 1, 15, 1, 233, 1, 196, 1, - 60, 1, 198, 1, 192, 1, 162, 1, 191, 1, 190, 1, 187, 1, 190, 30, 191, 48, 190, 3, - 189, 3, 188, 3, 186, 3, 183, 3, 179, 3, 173, 3, 169, 3, 191, 42, 138, 3, 81, 3, - 89, 3, 96, 3, 103, 3, 107, 3, 110, 3, 118, 3, 181, 3, 191, 33, 118, 3, 92, 3, - 104, 3, 116, 3, 129, 3, 140, 3, 150, 3, 158, 3, 163, 3, 165, 3, 164, 6, 187, 3, - 191, 42, 115, 3, 84, 3, 91, 3, 97, 3, 103, 3, 107, 6, 153, 3, 191, 30, 154, 3, - 87, 3, 95, 3, 104, 3, 112, 3, 117, 3, 120, 3, 167, 3, 191, 54, 71, 3, 79, 3, - 86, 3, 92, 3, 128, 3, 191, 48, 125, 3, 117, 3, 127, 3, 136, 3, 143, 3, 148, 3, - 149, 6, 144, 3, 191, 57, 77, 3, 88, 3, 98, 3, 108, 3, 116, 3, 121, 3, 123, 3, - 191, 54, 109, 3, 77, 3, 84, 3, 91, 3, 95, 3, 191, 51, 169, 3, 102, 3, 111, 3, - 118, 3, 122, 3, 125, 3, 146, 3, 191, 24, 127, 3, 77, 3, 80, 3, 83, 3, 84, 3, - 191, 54, 147, 3, 66, 3, 72, 3, 77, 3, 81, 3, 166, 3, 191, 21, 156, 3, 94, 3, - 104, 3, 115, 3, 127, 3, 139, 3, 151, 3, 161, 3, 169, 3, 176, 3, 181, 3, 185, 3, - 187, 3, 189, 3, 190, 3, 191, 24, 190, 3, 189, 3, 187, 3, 185, 3, 181, 3, 176, 3, - 169, 3, 160, 3, 177, 3, 191, 54, 74, 3, 83, 3, 93, 3, 102, 3, 110, 3, 114, 3, - 116, 6, 165, 3, 191, 33, 80, 3, 87, 3, 94, 3, 100, 3, 104, 3, 162, 3, 191, 51, - 149, 3, 74, 3, 81, 3, 88, 3, 93, 3, 159, 3, 191, 51, 114, 3, 88, 3, 101, 3, - 115, 3, 128, 3, 142, 3, 153, 3, 164, 3, 171, 3, 178, 3, 182, 3, 185, 3, 188, 3, - 189, 3, 190, 3, 191, 118, 190, 2, 191, 1, 190, 2, 193, 1, 191, 1, 181, 1, 219, 1, - 196, 1, 103, 1, 242, 1, 186, 1, 33, 1, 250, 1, 165, 1, 8, 1, 254, 1, 142, 1, - 0, 1, 254, 1, 120, 1, 0, 1, 255, 1, 109, 1, 0, 1, 255, 1, 101, 1, 0, 1, - 255, 1, 93, 1, 0, 1, 255, 1, 85, 1, 0, 1, 255, 1, 78, 1, 0, 1, 255, 1, - 77, 1, 0, 1, 255, 1, 82, 1, 0, 1, 255, 1, 86, 1, 0, 1, 255, 1, 91, 1, - 0, 1, 255, 1, 96, 1, 0, 1, 255, 1, 101, 1, 0, 1, 255, 1, 101, 1, 0, 1, - 255, 1, 94, 1, 0, 1, 255, 1, 86, 1, 0, 1, 246, 1, 77, 1, 4, 1, 160, 1, - 58, 1, 52, 1, 62, 1, 43, 1, 108, 1, 41, 2, 122, 1, 41, 2, 124, 1, 41, 2, - 125, 1, 42, 2, 126, 1, 42, 2, 127, 1, 43, 2, 128, 1, 43, 2, 129, 1, 43, 2, - 129, 1, 43, 2, 129, 1, 43, 2, 130, 1, 43, 2, 129, 1, 43, 2, 129, 1, 43, 2, - 128, 1, 43, 1, 42, 1, 127, 1, 104, 1, 57, 1, 89, 1, 239, 1, 87, 1, 8, 1, - 253, 1, 87, 1, 0, 1, 253, 1, 84, 1, 0, 1, 253, 1, 80, 1, 0, 1, 253, 1, - 79, 1, 0, 1, 253, 1, 85, 1, 0, 1, 253, 1, 93, 1, 0, 1, 253, 1, 100, 1, - 0, 1, 253, 1, 108, 1, 0, 1, 253, 1, 119, 1, 0, 1, 252, 1, 141, 1, 0, 1, - 251, 1, 164, 1, 3, 1, 246, 1, 185, 1, 21, 1, 223, 1, 197, 1, 88, 1, 195, 1, - 191, 1, 172, 1, 191, 1, 190, 1, 189, 1, 190, 30, 191, 48, 190, 3, 189, 3, 188, 3, - 185, 3, 182, 3, 176, 3, 170, 3, 174, 3, 191, 45, 111, 3, 80, 3, 89, 3, 96, 3, - 101, 3, 105, 6, 113, 3, 191, 33, 113, 3, 86, 3, 98, 3, 112, 3, 125, 3, 137, 3, - 146, 3, 154, 3, 158, 3, 160, 3, 159, 3, 182, 3, 191, 45, 109, 3, 77, 3, 85, 3, - 93, 3, 100, 3, 104, 3, 107, 6, 162, 3, 191, 27, 152, 3, 81, 3, 90, 3, 99, 3, - 107, 3, 113, 3, 116, 3, 165, 3, 191, 54, 63, 3, 71, 3, 80, 3, 86, 3, 123, 3, - 191, 48, 169, 3, 106, 3, 116, 3, 126, 3, 134, 3, 140, 3, 143, 6, 140, 3, 191, 57, - 69, 3, 81, 3, 92, 3, 103, 3, 111, 3, 116, 3, 119, 3, 191, 54, 103, 3, 69, 3, - 77, 3, 84, 3, 89, 3, 191, 54, 112, 3, 100, 3, 107, 3, 113, 3, 116, 3, 141, 3, - 191, 21, 177, 3, 73, 3, 74, 3, 77, 3, 80, 3, 82, 3, 191, 54, 145, 3, 60, 3, - 67, 3, 73, 3, 78, 3, 104, 3, 191, 21, 154, 3, 89, 3, 99, 3, 111, 3, 123, 3, - 136, 3, 148, 3, 159, 3, 168, 3, 175, 3, 180, 3, 185, 3, 187, 3, 188, 3, 190, 3, - 191, 24, 190, 3, 188, 3, 187, 3, 185, 3, 180, 3, 175, 3, 167, 3, 158, 3, 176, 3, - 191, 54, 67, 3, 78, 3, 89, 3, 98, 3, 107, 3, 113, 3, 116, 6, 113, 3, 172, 3, - 191, 30, 74, 3, 81, 3, 89, 3, 95, 3, 99, 3, 161, 3, 191, 51, 146, 3, 66, 3, - 74, 3, 81, 3, 87, 3, 157, 3, 191, 51, 109, 3, 81, 3, 95, 3, 110, 3, 125, 3, - 138, 3, 151, 3, 161, 3, 170, 3, 177, 3, 182, 3, 185, 3, 188, 3, 189, 3, 190, 3, - 191, 109, 190, 2, 191, 1, 190, 2, 191, 1, 190, 1, 189, 1, 192, 1, 190, 1, 186, 1, - 194, 1, 191, 1, 180, 1, 198, 1, 192, 1, 167, 1, 219, 1, 193, 1, 103, 1, 243, 1, - 183, 1, 32, 1, 250, 1, 160, 1, 8, 1, 253, 1, 137, 1, 0, 1, 254, 1, 117, 1, - 0, 1, 255, 1, 107, 1, 0, 1, 253, 1, 98, 1, 0, 1, 243, 1, 86, 1, 1, 1, - 249, 1, 81, 1, 0, 1, 255, 1, 76, 1, 0, 1, 255, 1, 71, 1, 0, 1, 255, 1, - 74, 1, 0, 1, 255, 1, 79, 1, 0, 1, 255, 1, 84, 1, 0, 1, 255, 1, 88, 1, - 0, 1, 255, 1, 93, 1, 0, 1, 255, 1, 93, 1, 0, 1, 246, 1, 85, 1, 4, 1, - 160, 1, 62, 1, 51, 1, 61, 1, 43, 1, 106, 1, 40, 2, 121, 1, 41, 2, 122, 1, - 41, 2, 124, 1, 41, 2, 125, 1, 42, 2, 126, 1, 42, 2, 128, 1, 43, 2, 129, 1, - 43, 2, 130, 1, 43, 2, 130, 1, 43, 2, 131, 1, 43, 2, 131, 1, 43, 2, 131, 1, - 43, 2, 131, 1, 43, 2, 131, 1, 43, 2, 130, 1, 43, 2, 129, 1, 43, 2, 128, 1, - 77, 1, 49, 1, 106, 1, 228, 1, 75, 1, 14, 1, 253, 1, 76, 1, 0, 1, 253, 1, - 74, 1, 0, 1, 253, 1, 80, 1, 0, 1, 253, 1, 87, 1, 0, 1, 253, 1, 95, 1, - 0, 1, 253, 1, 102, 1, 0, 1, 253, 1, 110, 1, 0, 1, 253, 1, 124, 1, 0, 1, - 252, 1, 147, 1, 0, 1, 250, 1, 169, 1, 6, 1, 243, 1, 191, 1, 29, 1, 213, 1, - 196, 1, 117, 1, 193, 1, 191, 1, 179, 1, 191, 1, 190, 32, 191, 45, 190, 6, 188, 3, - 187, 3, 184, 3, 180, 3, 174, 3, 167, 3, 180, 3, 191, 48, 85, 3, 82, 3, 89, 3, - 96, 3, 101, 3, 102, 3, 101, 3, 129, 3, 191, 30, 111, 3, 82, 3, 94, 3, 107, 3, - 121, 3, 133, 3, 143, 3, 150, 3, 154, 3, 155, 3, 169, 3, 191, 48, 105, 3, 72, 3, - 81, 3, 91, 3, 98, 3, 104, 3, 108, 6, 106, 3, 170, 3, 191, 24, 151, 3, 78, 3, - 86, 3, 95, 3, 104, 3, 109, 3, 112, 3, 164, 3, 191, 54, 57, 3, 66, 3, 74, 3, - 81, 3, 120, 3, 191, 51, 116, 3, 107, 3, 117, 3, 126, 3, 134, 3, 137, 3, 138, 3, - 134, 3, 191, 57, 64, 3, 76, 3, 88, 3, 98, 3, 107, 3, 113, 3, 115, 3, 191, 54, - 100, 3, 64, 3, 72, 3, 79, 3, 84, 3, 191, 54, 141, 3, 89, 3, 98, 3, 104, 3, - 108, 3, 136, 3, 191, 21, 124, 3, 71, 3, 74, 3, 77, 3, 80, 3, 82, 3, 191, 54, - 143, 3, 56, 3, 64, 3, 71, 3, 77, 3, 80, 3, 166, 3, 191, 18, 154, 3, 87, 3, - 97, 3, 108, 3, 121, 3, 134, 3, 146, 3, 158, 3, 167, 3, 174, 3, 180, 3, 184, 3, - 187, 3, 188, 3, 190, 3, 191, 24, 190, 3, 188, 3, 187, 3, 184, 3, 180, 3, 174, 3, - 167, 3, 157, 3, 175, 3, 191, 54, 62, 3, 74, 3, 86, 3, 97, 3, 107, 3, 113, 3, - 118, 3, 119, 3, 116, 3, 119, 3, 181, 3, 191, 27, 70, 3, 77, 3, 84, 3, 90, 3, - 95, 3, 159, 3, 191, 51, 144, 3, 60, 3, 69, 3, 77, 3, 82, 3, 155, 3, 191, 51, - 105, 3, 76, 3, 91, 3, 107, 3, 122, 3, 136, 3, 149, 3, 160, 3, 169, 3, 176, 3, - 182, 3, 185, 3, 188, 3, 189, 3, 190, 3, 191, 100, 190, 2, 191, 1, 190, 2, 191, 1, - 190, 1, 189, 1, 192, 1, 190, 1, 186, 1, 193, 1, 191, 1, 180, 1, 196, 1, 193, 1, - 171, 1, 201, 1, 194, 1, 158, 1, 207, 1, 194, 1, 139, 1, 218, 1, 192, 1, 107, 1, - 234, 1, 188, 1, 58, 1, 247, 1, 173, 1, 19, 1, 248, 1, 148, 1, 4, 1, 236, 1, - 119, 1, 0, 1, 220, 1, 94, 1, 1, 1, 205, 1, 77, 1, 1, 1, 190, 1, 64, 1, - 2, 1, 185, 1, 56, 1, 2, 1, 210, 1, 62, 1, 2, 1, 254, 1, 73, 1, 0, 1, - 255, 1, 66, 1, 0, 1, 255, 1, 66, 1, 0, 1, 255, 1, 71, 1, 0, 1, 255, 1, - 76, 1, 0, 1, 255, 1, 81, 1, 0, 1, 245, 1, 83, 1, 4, 1, 159, 1, 66, 1, - 49, 1, 61, 1, 43, 1, 104, 1, 40, 2, 118, 1, 40, 2, 120, 1, 40, 2, 122, 1, - 41, 2, 123, 1, 41, 2, 125, 1, 42, 2, 126, 1, 43, 2, 128, 1, 43, 2, 129, 1, - 43, 2, 130, 1, 44, 2, 131, 1, 44, 2, 132, 1, 44, 2, 133, 1, 44, 2, 133, 1, - 44, 2, 133, 1, 44, 2, 133, 1, 44, 2, 132, 1, 44, 2, 132, 1, 43, 2, 131, 1, - 43, 2, 130, 1, 43, 2, 128, 1, 67, 1, 46, 1, 112, 1, 225, 1, 66, 1, 16, 1, - 253, 1, 74, 1, 0, 1, 253, 1, 82, 1, 0, 1, 253, 1, 89, 1, 0, 1, 253, 1, - 97, 1, 0, 1, 253, 1, 105, 1, 0, 1, 253, 1, 112, 1, 0, 1, 252, 1, 130, 1, - 0, 1, 252, 1, 153, 1, 1, 1, 249, 1, 175, 1, 10, 1, 240, 1, 194, 1, 39, 1, - 204, 1, 194, 1, 146, 1, 191, 2, 184, 1, 190, 33, 191, 45, 190, 3, 189, 3, 188, 3, - 186, 3, 183, 3, 179, 3, 173, 3, 164, 3, 191, 51, 176, 3, 74, 3, 83, 3, 91, 3, - 96, 3, 99, 3, 100, 3, 97, 3, 146, 3, 191, 27, 109, 3, 79, 3, 92, 3, 105, 3, - 118, 3, 130, 3, 140, 3, 146, 3, 149, 3, 153, 3, 191, 51, 103, 3, 68, 3, 79, 3, - 89, 3, 99, 3, 106, 3, 110, 3, 112, 3, 110, 3, 114, 3, 180, 3, 191, 21, 150, 3, - 77, 3, 85, 3, 94, 3, 101, 3, 107, 3, 110, 3, 164, 3, 191, 54, 53, 3, 62, 3, - 71, 3, 77, 3, 118, 3, 191, 51, 143, 3, 97, 3, 108, 3, 119, 3, 127, 3, 131, 3, - 133, 3, 131, 3, 191, 57, 60, 3, 72, 3, 85, 3, 96, 3, 105, 3, 111, 3, 113, 3, - 191, 54, 97, 3, 59, 3, 68, 3, 76, 3, 80, 3, 191, 57, 80, 3, 89, 3, 96, 3, - 101, 3, 132, 3, 191, 18, 177, 3, 71, 3, 73, 3, 76, 3, 79, 3, 82, 3, 84, 3, - 191, 54, 142, 3, 54, 3, 62, 3, 71, 3, 77, 3, 81, 3, 106, 3, 191, 18, 154, 3, - 86, 3, 96, 3, 107, 3, 120, 3, 133, 3, 146, 3, 157, 3, 167, 3, 174, 3, 179, 3, - 184, 3, 187, 3, 188, 3, 190, 3, 191, 24, 190, 3, 188, 3, 187, 3, 184, 3, 179, 3, - 173, 3, 166, 3, 155, 3, 175, 3, 191, 54, 59, 3, 72, 3, 84, 3, 97, 3, 107, 3, - 116, 3, 120, 3, 122, 3, 120, 3, 116, 3, 118, 3, 180, 3, 191, 24, 68, 3, 75, 3, - 82, 3, 88, 3, 92, 3, 158, 3, 191, 51, 143, 3, 56, 3, 65, 3, 73, 3, 79, 3, - 154, 3, 191, 51, 103, 3, 73, 3, 88, 3, 104, 3, 119, 3, 134, 3, 148, 3, 159, 3, - 168, 3, 176, 3, 181, 3, 185, 3, 188, 3, 189, 3, 190, 3, 191, 91, 190, 2, 191, 1, - 190, 2, 191, 1, 190, 1, 189, 1, 191, 1, 190, 1, 186, 1, 193, 1, 191, 1, 181, 1, - 196, 1, 193, 1, 172, 1, 201, 1, 194, 1, 159, 1, 207, 1, 195, 1, 140, 1, 218, 1, - 196, 1, 107, 1, 230, 1, 197, 1, 71, 1, 236, 1, 190, 1, 39, 1, 223, 1, 165, 1, - 19, 1, 208, 1, 139, 1, 9, 1, 195, 1, 112, 1, 5, 1, 179, 1, 86, 1, 1, 1, - 180, 1, 72, 1, 2, 1, 185, 1, 67, 1, 3, 1, 183, 1, 60, 1, 1, 1, 184, 1, - 57, 1, 2, 1, 186, 1, 53, 1, 3, 1, 189, 1, 49, 1, 3, 1, 236, 1, 60, 1, - 0, 1, 255, 1, 59, 1, 0, 1, 255, 1, 59, 1, 0, 1, 255, 1, 63, 1, 0, 1, - 255, 1, 68, 1, 0, 1, 170, 1, 59, 1, 43, 1, 60, 1, 42, 1, 102, 1, 39, 2, - 115, 1, 39, 2, 117, 1, 40, 2, 119, 1, 40, 2, 121, 1, 41, 2, 123, 1, 42, 2, - 124, 1, 40, 2, 121, 1, 42, 2, 125, 1, 43, 2, 129, 1, 43, 2, 130, 1, 44, 2, - 132, 1, 44, 2, 133, 1, 45, 2, 134, 1, 45, 2, 135, 1, 45, 2, 134, 1, 45, 2, - 135, 1, 45, 2, 135, 1, 45, 2, 134, 1, 44, 2, 133, 1, 44, 2, 132, 1, 43, 2, - 131, 1, 43, 2, 130, 1, 43, 2, 128, 1, 75, 1, 46, 1, 107, 1, 239, 1, 73, 1, - 8, 1, 253, 1, 83, 1, 0, 1, 253, 1, 91, 1, 0, 1, 253, 1, 98, 1, 0, 1, - 253, 1, 106, 1, 0, 1, 253, 1, 116, 1, 0, 1, 252, 1, 135, 1, 0, 1, 252, 1, - 158, 1, 2, 1, 248, 1, 180, 1, 15, 1, 233, 1, 196, 1, 60, 1, 198, 1, 192, 1, - 162, 1, 191, 1, 190, 1, 187, 1, 190, 33, 191, 45, 190, 3, 189, 3, 188, 3, 185, 3, - 182, 3, 177, 3, 170, 3, 162, 3, 191, 54, 150, 3, 77, 3, 86, 3, 92, 3, 96, 3, - 98, 3, 97, 3, 94, 3, 167, 3, 191, 24, 109, 3, 78, 3, 90, 3, 103, 3, 116, 3, - 127, 3, 137, 3, 143, 3, 145, 3, 169, 3, 191, 51, 100, 3, 66, 3, 78, 3, 89, 3, - 100, 3, 108, 3, 114, 3, 116, 6, 111, 3, 114, 3, 180, 3, 191, 18, 151, 3, 77, 3, - 85, 3, 93, 3, 101, 3, 106, 3, 109, 3, 163, 3, 191, 54, 50, 3, 59, 3, 68, 3, - 74, 3, 116, 3, 191, 51, 165, 3, 89, 3, 101, 3, 112, 3, 120, 3, 126, 3, 128, 3, - 126, 3, 191, 57, 56, 3, 69, 3, 82, 3, 94, 3, 103, 3, 109, 3, 111, 3, 191, 54, - 95, 3, 56, 3, 65, 3, 73, 3, 78, 3, 191, 57, 97, 3, 80, 3, 89, 3, 94, 3, - 128, 3, 191, 18, 98, 3, 74, 3, 76, 3, 79, 3, 83, 3, 86, 3, 87, 3, 191, 54, - 141, 3, 53, 3, 62, 3, 71, 3, 78, 3, 83, 3, 86, 3, 167, 3, 191, 15, 154, 3, - 87, 3, 96, 3, 107, 3, 120, 3, 133, 3, 145, 3, 156, 3, 166, 3, 173, 3, 179, 3, - 184, 3, 187, 3, 188, 3, 190, 3, 191, 24, 190, 3, 188, 3, 187, 3, 184, 3, 179, 3, - 173, 3, 165, 3, 155, 3, 174, 3, 191, 54, 57, 3, 70, 3, 83, 3, 97, 3, 108, 3, - 117, 3, 124, 3, 126, 3, 125, 3, 122, 3, 115, 6, 191, 24, 68, 3, 74, 3, 81, 3, - 86, 3, 91, 3, 158, 3, 191, 51, 142, 3, 53, 3, 62, 3, 70, 3, 76, 3, 153, 3, - 191, 51, 101, 3, 70, 3, 85, 3, 101, 3, 118, 3, 133, 3, 146, 3, 158, 3, 168, 3, - 176, 3, 181, 3, 185, 3, 188, 3, 189, 3, 190, 3, 191, 82, 190, 2, 191, 1, 190, 2, - 191, 1, 190, 1, 189, 1, 191, 1, 190, 1, 186, 1, 193, 1, 191, 1, 181, 1, 196, 1, - 192, 1, 173, 1, 200, 1, 194, 1, 160, 1, 207, 1, 195, 1, 140, 1, 218, 1, 196, 1, - 105, 1, 222, 1, 187, 1, 66, 1, 215, 1, 167, 1, 31, 1, 204, 1, 145, 1, 15, 1, - 191, 1, 124, 1, 9, 1, 179, 1, 106, 1, 6, 1, 169, 1, 97, 1, 0, 1, 174, 1, - 94, 1, 2, 1, 177, 1, 84, 1, 2, 1, 178, 1, 71, 1, 1, 1, 185, 1, 67, 1, - 3, 1, 185, 1, 62, 1, 3, 1, 184, 1, 56, 1, 1, 1, 188, 1, 53, 1, 3, 1, - 186, 1, 48, 1, 2, 1, 186, 1, 42, 1, 1, 1, 201, 1, 42, 1, 2, 1, 252, 1, - 51, 1, 0, 1, 255, 1, 51, 1, 0, 1, 255, 1, 56, 1, 0, 1, 246, 1, 60, 1, - 3, 1, 49, 1, 39, 1, 106, 1, 38, 2, 114, 1, 39, 2, 116, 1, 39, 2, 118, 1, - 40, 2, 120, 1, 40, 2, 122, 1, 41, 2, 123, 1, 34, 2, 103, 1, 36, 2, 108, 1, - 43, 2, 128, 1, 43, 2, 130, 1, 44, 2, 132, 1, 44, 2, 133, 1, 45, 2, 135, 1, - 45, 2, 136, 1, 41, 2, 124, 1, 45, 2, 136, 1, 45, 2, 137, 1, 45, 2, 137, 1, - 45, 2, 136, 1, 45, 2, 135, 1, 45, 2, 134, 1, 44, 2, 132, 1, 43, 2, 131, 1, - 43, 2, 129, 1, 42, 2, 127, 1, 106, 1, 53, 1, 87, 1, 253, 1, 84, 1, 0, 1, - 253, 1, 92, 1, 0, 1, 253, 1, 99, 1, 0, 1, 253, 1, 107, 1, 0, 1, 253, 1, - 118, 1, 0, 1, 252, 1, 138, 1, 0, 1, 252, 1, 160, 1, 2, 1, 246, 1, 183, 1, - 18, 1, 226, 1, 195, 1, 81, 1, 197, 1, 192, 1, 165, 1, 191, 1, 190, 1, 186, 1, - 191, 1, 190, 32, 191, 45, 190, 3, 189, 3, 188, 3, 185, 3, 181, 3, 176, 3, 169, 3, - 160, 3, 191, 57, 111, 3, 80, 3, 88, 3, 93, 3, 96, 3, 97, 3, 95, 3, 101, 3, - 178, 3, 191, 21, 109, 3, 78, 3, 90, 3, 102, 3, 114, 3, 125, 3, 134, 3, 139, 3, - 145, 3, 191, 54, 99, 3, 65, 3, 78, 3, 90, 3, 102, 3, 112, 3, 119, 3, 122, 6, - 119, 3, 113, 3, 123, 3, 191, 18, 152, 3, 80, 3, 87, 3, 95, 3, 101, 3, 107, 3, - 109, 3, 163, 3, 191, 54, 48, 3, 57, 3, 66, 3, 73, 3, 115, 3, 191, 54, 81, 3, - 93, 3, 105, 3, 115, 3, 122, 3, 124, 3, 123, 3, 191, 57, 55, 3, 68, 3, 80, 3, - 92, 3, 101, 3, 108, 3, 110, 3, 191, 54, 93, 3, 55, 3, 64, 3, 71, 3, 77, 3, - 191, 57, 120, 3, 74, 3, 82, 3, 88, 3, 125, 3, 191, 15, 165, 3, 76, 3, 77, 3, - 80, 3, 84, 3, 88, 3, 91, 3, 92, 3, 191, 54, 141, 3, 53, 3, 63, 3, 73, 3, - 81, 3, 87, 3, 91, 3, 113, 3, 191, 15, 155, 3, 89, 3, 98, 3, 108, 3, 120, 3, - 133, 3, 146, 3, 156, 3, 166, 3, 173, 3, 179, 3, 184, 3, 187, 3, 188, 3, 190, 3, - 191, 24, 190, 3, 188, 3, 187, 3, 184, 3, 179, 3, 173, 3, 164, 3, 154, 3, 174, 3, - 191, 54, 56, 3, 69, 3, 83, 3, 98, 3, 110, 3, 120, 3, 127, 3, 131, 6, 128, 3, - 122, 3, 113, 3, 133, 3, 191, 21, 70, 3, 76, 3, 82, 3, 87, 3, 90, 3, 158, 3, - 191, 51, 141, 3, 51, 3, 60, 3, 68, 3, 74, 3, 153, 3, 191, 51, 99, 3, 68, 3, - 84, 3, 101, 3, 116, 3, 132, 3, 146, 3, 158, 3, 167, 3, 175, 3, 181, 3, 185, 3, - 188, 3, 189, 3, 190, 3, 191, 79, 190, 2, 191, 1, 190, 1, 187, 1, 193, 1, 191, 1, - 182, 1, 196, 1, 192, 1, 174, 1, 200, 1, 194, 1, 161, 1, 205, 1, 193, 1, 138, 1, - 206, 1, 181, 1, 96, 1, 200, 1, 161, 1, 54, 1, 194, 1, 142, 1, 22, 1, 182, 1, - 120, 1, 8, 1, 176, 1, 107, 1, 5, 1, 176, 1, 103, 1, 4, 1, 174, 1, 98, 1, - 2, 1, 179, 1, 97, 1, 5, 1, 179, 1, 93, 1, 4, 1, 174, 1, 86, 1, 1, 1, - 178, 1, 83, 1, 2, 1, 179, 1, 72, 1, 1, 1, 181, 1, 65, 1, 1, 1, 183, 1, - 60, 1, 1, 1, 184, 1, 56, 1, 1, 1, 185, 1, 52, 1, 1, 1, 184, 1, 47, 1, - 1, 1, 186, 1, 43, 1, 1, 1, 190, 1, 39, 1, 2, 1, 190, 1, 34, 1, 2, 1, - 223, 1, 37, 1, 0, 1, 255, 1, 43, 1, 0, 1, 255, 1, 48, 1, 0, 1, 196, 1, - 48, 1, 29, 1, 38, 2, 113, 1, 39, 2, 115, 1, 39, 2, 117, 1, 40, 2, 119, 1, - 40, 2, 120, 1, 40, 2, 121, 1, 25, 2, 75, 1, 33, 2, 100, 1, 42, 2, 128, 1, - 43, 2, 129, 1, 43, 2, 131, 1, 44, 2, 133, 1, 45, 2, 135, 1, 45, 2, 136, 1, - 45, 2, 136, 1, 37, 2, 112, 1, 46, 2, 139, 1, 46, 2, 139, 1, 46, 2, 138, 1, - 46, 2, 137, 1, 45, 2, 136, 1, 45, 2, 135, 1, 45, 2, 134, 1, 44, 2, 132, 1, - 43, 2, 130, 1, 43, 2, 128, 1, 42, 2, 126, 1, 181, 1, 67, 1, 42, 1, 253, 1, - 87, 1, 0, 1, 253, 1, 95, 1, 0, 1, 253, 1, 103, 1, 0, 1, 253, 1, 111, 1, - 0, 1, 252, 1, 126, 1, 0, 1, 252, 1, 147, 1, 2, 1, 248, 1, 171, 1, 14, 1, - 236, 1, 190, 1, 51, 1, 211, 1, 192, 1, 124, 1, 196, 1, 191, 1, 171, 1, 191, 2, - 184, 1, 191, 1, 190, 1, 189, 1, 190, 27, 191, 45, 190, 3, 189, 3, 187, 3, 185, 3, - 180, 3, 175, 3, 167, 3, 158, 3, 191, 60, 99, 3, 83, 3, 89, 3, 94, 3, 96, 6, - 93, 3, 111, 3, 191, 21, 111, 3, 80, 3, 91, 3, 102, 3, 113, 3, 123, 3, 131, 3, - 135, 3, 166, 3, 191, 54, 98, 3, 65, 3, 78, 3, 92, 3, 104, 3, 115, 3, 122, 3, - 128, 6, 126, 3, 122, 3, 114, 3, 134, 3, 191, 15, 154, 3, 84, 3, 90, 3, 97, 3, - 103, 3, 107, 3, 109, 3, 163, 3, 191, 54, 46, 3, 56, 3, 65, 3, 71, 3, 114, 3, - 191, 54, 74, 3, 88, 3, 100, 3, 110, 3, 117, 3, 121, 3, 120, 3, 191, 57, 53, 3, - 66, 3, 80, 3, 91, 3, 101, 3, 107, 3, 109, 3, 191, 54, 93, 3, 53, 3, 62, 3, - 70, 3, 75, 3, 191, 57, 146, 3, 68, 3, 76, 3, 83, 3, 122, 3, 191, 15, 104, 3, - 80, 3, 83, 3, 86, 3, 90, 3, 94, 3, 97, 6, 191, 54, 141, 3, 53, 3, 64, 3, - 74, 3, 84, 3, 91, 3, 95, 3, 97, 3, 169, 3, 191, 12, 157, 3, 93, 3, 101, 3, - 110, 3, 122, 3, 134, 3, 146, 3, 157, 3, 166, 3, 173, 3, 179, 3, 184, 3, 187, 3, - 188, 3, 190, 3, 191, 24, 190, 3, 188, 3, 186, 3, 183, 3, 179, 3, 173, 3, 164, 3, - 154, 3, 174, 3, 191, 54, 55, 3, 69, 3, 83, 3, 98, 3, 111, 3, 122, 3, 131, 3, - 135, 3, 136, 3, 134, 3, 128, 3, 120, 3, 110, 3, 131, 3, 191, 18, 74, 3, 78, 3, - 83, 3, 88, 3, 91, 3, 158, 3, 191, 51, 140, 3, 50, 3, 59, 3, 67, 3, 73, 3, - 153, 3, 191, 51, 98, 3, 67, 3, 83, 3, 99, 3, 116, 3, 131, 3, 146, 3, 158, 3, - 167, 3, 175, 3, 181, 3, 185, 3, 187, 3, 189, 3, 190, 3, 191, 76, 190, 2, 191, 1, - 190, 1, 186, 1, 196, 1, 192, 1, 173, 1, 205, 1, 195, 1, 144, 1, 219, 1, 197, 1, - 103, 1, 217, 1, 180, 1, 58, 1, 172, 1, 114, 1, 7, 1, 170, 1, 107, 1, 2, 1, - 170, 1, 103, 1, 2, 1, 176, 1, 102, 1, 4, 1, 176, 1, 98, 1, 3, 1, 178, 1, - 95, 1, 3, 1, 178, 1, 92, 1, 3, 1, 180, 1, 89, 1, 4, 1, 178, 1, 83, 1, - 2, 1, 177, 1, 78, 1, 1, 1, 178, 1, 75, 1, 1, 1, 181, 1, 71, 1, 2, 1, - 183, 1, 66, 1, 2, 1, 185, 1, 62, 1, 3, 1, 183, 1, 56, 1, 1, 1, 184, 1, - 52, 1, 1, 1, 185, 1, 47, 1, 1, 1, 186, 1, 43, 1, 2, 1, 190, 1, 40, 1, - 2, 1, 192, 1, 35, 1, 2, 1, 192, 1, 29, 1, 2, 1, 193, 1, 24, 1, 1, 1, - 247, 1, 34, 1, 0, 1, 255, 1, 40, 1, 0, 1, 134, 1, 40, 1, 61, 1, 38, 2, - 113, 1, 39, 2, 115, 1, 39, 2, 117, 1, 40, 2, 119, 1, 36, 2, 108, 1, 15, 2, - 46, 1, 34, 2, 103, 1, 42, 2, 126, 1, 43, 2, 128, 1, 43, 2, 130, 1, 44, 2, - 132, 1, 45, 2, 134, 1, 45, 2, 136, 1, 46, 2, 137, 1, 37, 2, 110, 1, 43, 2, - 130, 1, 47, 2, 141, 1, 47, 2, 141, 1, 47, 2, 140, 1, 47, 2, 139, 1, 46, 2, - 137, 1, 45, 2, 136, 1, 45, 2, 135, 1, 44, 2, 133, 1, 43, 2, 131, 1, 43, 2, - 129, 1, 42, 2, 127, 1, 79, 1, 48, 1, 102, 1, 252, 1, 79, 1, 0, 1, 253, 1, - 87, 1, 0, 1, 253, 1, 95, 1, 0, 1, 253, 1, 102, 1, 0, 1, 252, 1, 110, 1, - 0, 1, 252, 1, 126, 1, 0, 1, 251, 1, 149, 1, 6, 1, 246, 1, 171, 1, 19, 1, - 240, 1, 188, 1, 39, 1, 224, 1, 194, 1, 85, 1, 203, 1, 193, 1, 148, 1, 194, 1, - 191, 1, 177, 1, 191, 1, 190, 1, 186, 1, 191, 1, 190, 23, 191, 45, 190, 3, 188, 3, - 187, 3, 184, 3, 180, 3, 174, 3, 167, 3, 157, 3, 191, 60, 177, 3, 89, 3, 84, 3, - 91, 3, 95, 3, 96, 3, 95, 3, 92, 3, 122, 3, 191, 18, 113, 3, 83, 3, 92, 3, - 103, 3, 113, 3, 122, 3, 128, 3, 131, 3, 191, 57, 97, 3, 64, 3, 78, 3, 93, 3, - 107, 3, 118, 3, 127, 3, 133, 3, 135, 3, 134, 3, 130, 3, 123, 3, 116, 3, 135, 3, - 191, 12, 156, 3, 90, 3, 95, 3, 101, 3, 106, 3, 110, 6, 163, 3, 191, 54, 46, 3, - 55, 3, 64, 3, 71, 3, 113, 3, 191, 54, 70, 3, 83, 3, 95, 3, 106, 3, 114, 3, - 118, 6, 191, 57, 53, 3, 66, 3, 79, 3, 91, 3, 101, 3, 107, 3, 109, 3, 191, 54, - 92, 3, 53, 3, 62, 3, 69, 3, 74, 3, 191, 57, 145, 3, 62, 3, 71, 3, 79, 3, - 119, 3, 191, 12, 167, 3, 84, 3, 86, 3, 88, 3, 92, 3, 97, 3, 101, 3, 103, 6, - 191, 54, 141, 3, 54, 3, 66, 3, 77, 3, 87, 3, 95, 3, 101, 3, 103, 3, 121, 3, - 191, 12, 158, 3, 98, 3, 104, 3, 113, 3, 124, 3, 136, 3, 147, 3, 158, 3, 167, 3, - 174, 3, 179, 3, 184, 3, 187, 3, 188, 3, 190, 3, 191, 24, 190, 3, 188, 3, 186, 3, - 183, 3, 179, 3, 173, 3, 164, 3, 154, 3, 174, 3, 191, 54, 55, 3, 69, 3, 84, 3, - 99, 3, 113, 3, 125, 3, 134, 3, 139, 3, 140, 3, 139, 3, 134, 3, 127, 3, 118, 3, - 108, 3, 129, 3, 191, 15, 78, 3, 82, 3, 86, 3, 91, 3, 93, 3, 158, 3, 191, 51, - 140, 3, 49, 3, 59, 3, 67, 3, 73, 3, 152, 3, 191, 51, 97, 3, 66, 3, 82, 3, - 99, 3, 116, 3, 131, 3, 146, 3, 158, 3, 167, 3, 175, 3, 181, 3, 185, 3, 187, 3, - 189, 3, 190, 3, 191, 76, 190, 2, 193, 1, 191, 1, 180, 1, 220, 1, 197, 1, 101, 1, - 237, 1, 194, 1, 49, 1, 244, 1, 188, 1, 28, 1, 247, 1, 180, 1, 15, 1, 177, 1, - 108, 1, 3, 1, 175, 1, 97, 1, 2, 1, 175, 1, 94, 1, 2, 1, 176, 1, 90, 1, - 2, 1, 179, 1, 87, 1, 3, 1, 180, 1, 84, 1, 3, 1, 181, 1, 80, 1, 3, 1, - 182, 1, 76, 1, 3, 1, 183, 1, 73, 1, 3, 1, 182, 1, 68, 1, 2, 1, 183, 1, - 67, 1, 2, 1, 193, 1, 73, 1, 10, 1, 194, 1, 69, 1, 10, 1, 187, 1, 58, 1, - 4, 1, 185, 1, 52, 1, 1, 1, 187, 1, 48, 1, 2, 1, 188, 1, 43, 1, 2, 1, - 191, 1, 39, 1, 2, 1, 190, 1, 34, 1, 2, 1, 191, 1, 29, 1, 2, 1, 194, 1, - 25, 1, 2, 1, 192, 1, 19, 1, 1, 1, 213, 1, 21, 1, 1, 1, 254, 1, 32, 1, - 0, 1, 72, 1, 37, 1, 93, 1, 38, 2, 114, 1, 39, 2, 115, 1, 39, 2, 117, 1, - 27, 2, 83, 1, 9, 2, 29, 1, 36, 2, 107, 1, 42, 2, 125, 1, 42, 2, 127, 1, - 43, 2, 129, 1, 43, 2, 130, 1, 44, 2, 132, 1, 45, 2, 134, 1, 45, 2, 136, 1, - 46, 2, 138, 1, 29, 2, 88, 1, 47, 2, 141, 1, 48, 2, 142, 1, 48, 2, 143, 1, - 47, 2, 142, 1, 47, 2, 140, 1, 46, 2, 139, 1, 46, 2, 137, 1, 45, 2, 135, 1, - 44, 2, 133, 1, 43, 2, 131, 1, 43, 2, 129, 1, 42, 2, 127, 1, 49, 1, 42, 1, - 121, 1, 245, 1, 71, 1, 4, 1, 253, 1, 80, 1, 0, 1, 253, 1, 87, 1, 0, 1, - 253, 1, 95, 1, 0, 1, 252, 1, 102, 1, 0, 1, 252, 1, 110, 1, 0, 1, 252, 1, - 126, 1, 1, 1, 251, 1, 148, 1, 4, 1, 248, 1, 166, 1, 13, 1, 243, 1, 182, 1, - 27, 1, 236, 1, 193, 1, 49, 1, 217, 1, 195, 1, 106, 1, 199, 1, 192, 1, 162, 1, - 192, 1, 191, 1, 181, 1, 191, 1, 190, 1, 188, 1, 191, 1, 190, 17, 191, 45, 190, 3, - 188, 3, 187, 3, 184, 3, 180, 3, 174, 3, 166, 3, 156, 3, 185, 3, 191, 60, 150, 3, - 79, 3, 86, 3, 92, 3, 95, 3, 96, 3, 95, 3, 92, 3, 156, 3, 191, 15, 117, 3, - 86, 3, 95, 3, 104, 3, 113, 3, 121, 3, 126, 3, 149, 3, 191, 57, 97, 3, 65, 3, - 79, 3, 94, 3, 108, 3, 121, 3, 131, 3, 137, 3, 141, 6, 138, 3, 133, 3, 125, 3, - 118, 3, 145, 3, 191, 9, 159, 3, 98, 3, 101, 3, 106, 3, 110, 3, 113, 6, 164, 3, - 191, 54, 45, 3, 55, 3, 63, 3, 71, 3, 113, 3, 191, 54, 66, 3, 80, 3, 92, 3, - 104, 3, 112, 3, 116, 6, 191, 57, 53, 3, 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, - 108, 3, 191, 54, 91, 3, 52, 3, 61, 3, 68, 3, 74, 3, 191, 57, 143, 3, 59, 3, - 68, 3, 76, 3, 118, 3, 191, 12, 110, 3, 89, 3, 92, 3, 95, 3, 100, 3, 104, 3, - 107, 3, 110, 3, 109, 3, 191, 54, 141, 3, 55, 3, 67, 3, 80, 3, 90, 3, 99, 3, - 105, 3, 108, 3, 109, 3, 172, 3, 191, 9, 160, 3, 103, 3, 108, 3, 116, 3, 127, 3, - 137, 3, 149, 3, 158, 3, 167, 3, 174, 3, 180, 3, 184, 3, 187, 3, 188, 3, 190, 3, - 191, 24, 190, 3, 188, 3, 186, 3, 183, 3, 179, 3, 173, 3, 164, 3, 153, 3, 174, 3, - 191, 54, 54, 3, 69, 3, 84, 3, 100, 3, 114, 3, 126, 3, 135, 3, 141, 3, 143, 6, - 139, 3, 132, 3, 124, 3, 123, 3, 105, 3, 159, 3, 191, 12, 84, 3, 87, 3, 91, 3, - 94, 3, 95, 3, 159, 3, 191, 51, 140, 3, 48, 3, 58, 3, 66, 3, 72, 3, 152, 3, - 191, 51, 97, 3, 65, 3, 82, 3, 98, 3, 116, 3, 131, 3, 145, 3, 158, 3, 167, 3, - 175, 3, 181, 3, 185, 3, 187, 3, 189, 3, 190, 3, 191, 76, 190, 2, 193, 1, 191, 1, - 182, 1, 206, 1, 194, 1, 142, 1, 236, 1, 192, 1, 52, 1, 247, 1, 176, 1, 20, 1, - 251, 1, 161, 1, 6, 1, 197, 1, 113, 1, 2, 1, 179, 1, 86, 1, 3, 1, 179, 1, - 82, 1, 2, 1, 178, 1, 78, 1, 2, 1, 181, 1, 75, 1, 2, 1, 181, 1, 71, 1, - 2, 1, 180, 1, 68, 1, 1, 1, 176, 1, 64, 1, 0, 1, 179, 1, 63, 1, 0, 1, - 182, 1, 63, 1, 1, 1, 183, 1, 63, 1, 2, 1, 181, 1, 60, 1, 1, 1, 183, 1, - 56, 1, 1, 1, 186, 1, 52, 1, 2, 1, 185, 1, 47, 1, 1, 1, 187, 1, 43, 1, - 1, 1, 187, 1, 38, 1, 1, 1, 190, 1, 34, 1, 2, 1, 190, 1, 29, 1, 1, 1, - 193, 1, 25, 1, 2, 1, 194, 1, 19, 1, 2, 1, 195, 1, 15, 1, 2, 1, 194, 1, - 12, 1, 1, 1, 208, 1, 23, 1, 13, 1, 37, 2, 112, 1, 38, 2, 114, 1, 39, 2, - 115, 1, 33, 2, 99, 1, 7, 2, 22, 1, 37, 2, 111, 1, 41, 2, 123, 1, 42, 2, - 125, 1, 42, 2, 127, 1, 43, 2, 129, 1, 43, 2, 131, 1, 44, 2, 133, 1, 45, 2, - 135, 1, 45, 2, 136, 1, 45, 2, 136, 1, 26, 2, 78, 1, 47, 2, 142, 1, 48, 2, - 144, 1, 48, 2, 145, 1, 48, 2, 143, 1, 47, 2, 141, 1, 47, 2, 139, 1, 46, 2, - 137, 1, 45, 2, 136, 1, 45, 2, 134, 1, 43, 2, 131, 1, 43, 2, 130, 1, 43, 2, - 128, 1, 79, 1, 44, 1, 103, 1, 253, 1, 64, 1, 0, 1, 253, 1, 72, 1, 0, 1, - 253, 1, 80, 1, 0, 1, 253, 1, 87, 1, 0, 1, 253, 1, 94, 1, 0, 1, 252, 1, - 102, 1, 0, 1, 252, 1, 111, 1, 0, 1, 252, 1, 126, 1, 0, 1, 252, 1, 143, 1, - 2, 1, 250, 1, 160, 1, 7, 1, 247, 1, 175, 1, 17, 1, 241, 1, 187, 1, 33, 1, - 231, 1, 194, 1, 63, 1, 201, 1, 186, 1, 123, 1, 143, 1, 131, 1, 120, 1, 187, 1, - 185, 1, 179, 1, 191, 1, 190, 1, 189, 1, 190, 12, 191, 45, 190, 3, 188, 3, 187, 3, - 184, 3, 180, 3, 174, 3, 166, 3, 156, 3, 175, 3, 191, 63, 137, 3, 80, 3, 88, 3, - 92, 3, 95, 3, 96, 3, 95, 3, 92, 3, 168, 3, 191, 12, 121, 3, 91, 3, 98, 3, - 107, 3, 114, 3, 120, 3, 125, 3, 169, 3, 191, 57, 97, 3, 65, 3, 80, 3, 95, 3, - 110, 3, 123, 3, 134, 3, 142, 3, 146, 3, 148, 3, 146, 3, 141, 3, 135, 3, 128, 3, - 121, 3, 165, 3, 191, 6, 162, 3, 105, 3, 108, 3, 111, 3, 114, 3, 116, 3, 115, 3, - 164, 3, 191, 54, 45, 3, 55, 3, 63, 3, 71, 3, 113, 3, 191, 54, 65, 3, 78, 3, - 91, 3, 102, 3, 110, 3, 115, 3, 116, 3, 191, 57, 53, 3, 65, 3, 78, 3, 90, 3, - 100, 3, 106, 3, 108, 3, 191, 54, 91, 3, 52, 3, 61, 3, 68, 3, 74, 3, 191, 57, - 143, 3, 56, 3, 66, 3, 74, 3, 117, 3, 191, 9, 168, 3, 93, 3, 95, 3, 98, 3, - 102, 3, 107, 3, 111, 3, 115, 3, 116, 3, 114, 3, 191, 54, 142, 3, 56, 3, 69, 3, - 82, 3, 94, 3, 104, 3, 110, 3, 114, 3, 116, 3, 130, 3, 191, 9, 162, 3, 108, 3, - 113, 3, 121, 3, 130, 3, 140, 3, 150, 3, 160, 3, 168, 3, 175, 3, 180, 3, 184, 3, - 187, 3, 188, 3, 190, 3, 191, 24, 190, 3, 188, 3, 186, 3, 183, 3, 179, 3, 173, 3, - 164, 3, 153, 3, 174, 3, 191, 54, 54, 3, 69, 3, 85, 3, 100, 3, 114, 3, 127, 3, - 137, 3, 143, 3, 146, 3, 145, 3, 142, 3, 136, 3, 170, 3, 143, 3, 111, 3, 104, 3, - 159, 3, 191, 9, 90, 3, 92, 3, 95, 3, 98, 6, 159, 3, 191, 51, 140, 3, 48, 3, - 58, 3, 66, 3, 72, 3, 152, 3, 191, 51, 97, 3, 65, 3, 82, 3, 98, 3, 116, 3, - 131, 3, 145, 3, 158, 3, 167, 3, 175, 3, 181, 3, 185, 3, 187, 3, 189, 3, 190, 3, - 191, 76, 190, 2, 191, 1, 190, 1, 187, 1, 196, 1, 192, 1, 173, 1, 211, 1, 193, 1, - 127, 1, 239, 1, 190, 1, 45, 1, 248, 1, 170, 1, 15, 1, 217, 1, 128, 1, 3, 1, - 174, 1, 79, 1, 1, 1, 181, 1, 72, 1, 2, 1, 180, 1, 67, 1, 1, 1, 183, 1, - 67, 1, 2, 1, 181, 1, 64, 1, 1, 1, 183, 1, 64, 1, 2, 1, 180, 1, 61, 1, - 1, 1, 181, 1, 60, 1, 1, 1, 187, 1, 61, 1, 4, 1, 187, 1, 59, 1, 3, 1, - 185, 1, 57, 1, 2, 1, 183, 1, 51, 1, 1, 1, 187, 1, 48, 1, 2, 1, 194, 1, - 47, 1, 6, 1, 192, 1, 41, 1, 4, 1, 188, 1, 33, 1, 1, 1, 191, 1, 29, 1, - 2, 1, 193, 1, 25, 1, 2, 1, 192, 1, 18, 1, 1, 1, 192, 1, 13, 1, 1, 1, - 195, 1, 9, 1, 1, 1, 195, 1, 7, 1, 1, 1, 129, 1, 20, 1, 45, 1, 37, 2, - 112, 1, 38, 2, 114, 1, 38, 2, 115, 1, 13, 2, 39, 1, 31, 2, 95, 1, 40, 2, - 121, 1, 41, 2, 123, 1, 42, 2, 125, 1, 42, 2, 127, 1, 43, 2, 129, 1, 43, 2, - 131, 1, 44, 2, 133, 1, 45, 2, 135, 1, 45, 2, 136, 1, 37, 2, 110, 1, 31, 2, - 93, 1, 47, 2, 142, 1, 48, 2, 144, 1, 48, 2, 144, 1, 48, 2, 143, 1, 47, 2, - 141, 1, 47, 2, 139, 1, 46, 2, 137, 1, 45, 2, 136, 1, 45, 2, 134, 1, 43, 2, - 131, 1, 43, 2, 130, 1, 43, 2, 128, 1, 168, 1, 46, 1, 50, 1, 253, 1, 56, 1, - 0, 1, 253, 1, 64, 1, 0, 1, 253, 1, 72, 1, 0, 1, 253, 1, 80, 1, 0, 1, - 253, 1, 87, 1, 0, 1, 253, 1, 95, 1, 0, 1, 253, 1, 102, 1, 0, 1, 252, 1, - 110, 1, 0, 1, 252, 1, 121, 1, 0, 1, 252, 1, 137, 1, 1, 1, 237, 1, 142, 1, - 3, 1, 170, 1, 109, 1, 8, 1, 101, 1, 61, 1, 12, 1, 38, 1, 9, 1, 4, 1, - 41, 1, 7, 2, 160, 1, 144, 1, 118, 1, 194, 1, 191, 1, 177, 1, 191, 1, 190, 1, - 186, 1, 191, 1, 190, 8, 191, 45, 190, 3, 188, 3, 187, 3, 184, 3, 180, 3, 174, 3, - 167, 3, 157, 3, 160, 3, 191, 66, 113, 3, 83, 3, 89, 3, 94, 3, 97, 6, 96, 3, - 104, 3, 179, 3, 191, 9, 125, 3, 96, 3, 102, 3, 109, 3, 116, 3, 120, 3, 122, 3, - 191, 60, 97, 3, 65, 3, 80, 3, 96, 3, 112, 3, 125, 3, 137, 3, 146, 3, 151, 3, - 154, 3, 153, 3, 149, 3, 144, 3, 138, 3, 131, 3, 125, 3, 167, 3, 191, 3, 165, 3, - 114, 3, 116, 3, 118, 3, 119, 3, 120, 3, 119, 3, 165, 3, 191, 54, 45, 3, 55, 3, - 63, 3, 71, 3, 113, 3, 191, 51, 144, 3, 64, 3, 77, 3, 90, 3, 101, 3, 110, 3, - 115, 3, 116, 3, 191, 57, 53, 3, 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, - 191, 54, 91, 3, 52, 3, 61, 3, 68, 3, 74, 3, 191, 57, 142, 3, 55, 3, 65, 3, - 74, 3, 117, 3, 191, 9, 116, 3, 98, 3, 101, 3, 105, 3, 110, 3, 114, 3, 119, 3, - 121, 3, 122, 3, 119, 3, 191, 54, 142, 3, 57, 3, 71, 3, 84, 3, 96, 3, 107, 3, - 115, 3, 119, 3, 122, 3, 121, 3, 174, 3, 191, 6, 165, 3, 115, 3, 119, 3, 125, 3, - 134, 3, 143, 3, 152, 3, 161, 3, 169, 3, 176, 3, 180, 3, 185, 3, 187, 3, 188, 3, - 190, 3, 191, 24, 190, 3, 188, 3, 186, 3, 183, 3, 179, 3, 173, 3, 164, 3, 153, 3, - 174, 3, 191, 54, 54, 3, 69, 3, 84, 3, 100, 3, 114, 3, 126, 3, 136, 3, 143, 3, - 146, 6, 148, 3, 173, 3, 191, 3, 145, 3, 116, 3, 109, 3, 103, 3, 160, 3, 191, 6, - 97, 3, 99, 3, 101, 3, 102, 6, 160, 3, 191, 51, 140, 3, 48, 3, 58, 3, 66, 3, - 72, 3, 152, 3, 191, 51, 97, 3, 65, 3, 82, 3, 98, 3, 116, 3, 131, 3, 145, 3, - 158, 3, 167, 3, 175, 3, 181, 3, 185, 3, 187, 3, 189, 3, 190, 3, 191, 79, 190, 2, - 191, 1, 190, 1, 186, 1, 197, 1, 192, 1, 171, 1, 212, 1, 192, 1, 126, 1, 238, 1, - 189, 1, 46, 1, 240, 1, 164, 1, 15, 1, 164, 1, 92, 1, 3, 1, 178, 1, 78, 1, - 2, 1, 187, 1, 72, 1, 5, 1, 185, 1, 65, 1, 3, 1, 179, 1, 59, 1, 0, 1, - 180, 1, 58, 1, 0, 1, 181, 1, 56, 1, 0, 1, 183, 1, 56, 1, 1, 1, 185, 1, - 55, 1, 2, 1, 187, 1, 54, 1, 3, 1, 189, 1, 54, 1, 4, 1, 188, 1, 48, 1, - 2, 1, 193, 1, 48, 1, 6, 1, 193, 1, 41, 1, 5, 1, 193, 1, 35, 1, 3, 1, - 189, 1, 28, 1, 1, 1, 192, 1, 24, 1, 2, 1, 194, 1, 20, 1, 2, 1, 195, 1, - 14, 1, 2, 1, 198, 1, 10, 1, 3, 1, 194, 1, 3, 1, 1, 1, 193, 1, 5, 1, - 7, 1, 65, 1, 27, 1, 80, 1, 37, 2, 112, 1, 38, 2, 114, 1, 28, 2, 84, 1, - 20, 2, 60, 1, 40, 2, 119, 1, 40, 2, 121, 1, 41, 2, 123, 1, 42, 2, 125, 1, - 42, 2, 127, 1, 43, 2, 129, 1, 43, 2, 130, 1, 44, 2, 132, 1, 45, 2, 134, 1, - 45, 2, 136, 1, 29, 2, 86, 1, 36, 2, 107, 1, 47, 2, 141, 1, 47, 2, 142, 1, - 47, 2, 142, 1, 47, 2, 142, 1, 47, 2, 140, 1, 46, 2, 138, 1, 45, 2, 137, 1, - 45, 2, 135, 1, 44, 2, 133, 1, 43, 2, 131, 1, 43, 2, 129, 1, 82, 1, 41, 1, - 103, 1, 249, 1, 41, 1, 2, 1, 253, 1, 49, 1, 0, 1, 253, 1, 56, 1, 0, 1, - 253, 1, 64, 1, 0, 1, 253, 1, 72, 1, 0, 1, 253, 1, 80, 1, 0, 1, 253, 1, - 87, 1, 0, 1, 253, 1, 95, 1, 0, 1, 235, 1, 94, 1, 0, 1, 175, 1, 72, 1, - 4, 1, 114, 1, 47, 1, 12, 1, 42, 1, 9, 1, 4, 1, 30, 1, 2, 2, 31, 1, - 2, 2, 32, 1, 3, 2, 39, 1, 6, 2, 133, 1, 98, 1, 30, 1, 218, 1, 195, 1, - 102, 1, 199, 1, 192, 1, 161, 1, 192, 1, 191, 1, 181, 1, 191, 1, 190, 1, 188, 1, - 190, 3, 191, 45, 190, 3, 189, 3, 187, 3, 185, 3, 181, 3, 175, 3, 167, 3, 158, 3, - 146, 3, 191, 66, 177, 3, 89, 3, 85, 3, 91, 3, 95, 3, 98, 3, 99, 3, 98, 3, - 128, 3, 191, 9, 129, 3, 102, 3, 107, 3, 113, 3, 117, 3, 121, 3, 145, 3, 191, 60, - 97, 3, 65, 3, 81, 3, 97, 3, 113, 3, 127, 3, 139, 3, 149, 3, 155, 3, 158, 3, - 159, 3, 157, 3, 152, 3, 147, 3, 141, 3, 135, 3, 130, 3, 169, 3, 168, 3, 123, 3, - 124, 3, 125, 9, 122, 3, 166, 3, 191, 54, 45, 3, 55, 3, 63, 3, 71, 3, 113, 3, - 191, 51, 113, 3, 65, 3, 79, 3, 92, 3, 102, 3, 110, 3, 116, 6, 191, 57, 53, 3, - 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 91, 3, 52, 3, 61, 3, - 68, 3, 74, 3, 191, 57, 142, 3, 55, 3, 65, 3, 74, 3, 119, 3, 191, 6, 170, 3, - 101, 3, 104, 3, 108, 3, 113, 3, 117, 3, 122, 3, 125, 3, 128, 6, 124, 3, 191, 54, - 142, 3, 58, 3, 71, 3, 86, 3, 99, 3, 110, 3, 119, 3, 125, 3, 128, 6, 140, 3, - 191, 6, 167, 3, 121, 3, 125, 3, 130, 3, 137, 3, 146, 3, 155, 3, 163, 3, 170, 3, - 176, 3, 181, 3, 185, 3, 187, 3, 188, 3, 190, 3, 191, 24, 190, 3, 188, 3, 186, 3, - 183, 3, 179, 3, 173, 3, 164, 3, 153, 3, 174, 3, 191, 54, 54, 3, 68, 3, 83, 3, - 99, 3, 113, 3, 125, 3, 134, 3, 141, 3, 144, 3, 149, 3, 185, 3, 191, 6, 147, 3, - 118, 3, 112, 3, 107, 3, 113, 3, 180, 3, 191, 3, 104, 3, 105, 3, 107, 9, 161, 3, - 191, 51, 140, 3, 48, 3, 58, 3, 66, 3, 72, 3, 152, 3, 191, 51, 97, 3, 65, 3, - 82, 3, 98, 3, 116, 3, 131, 3, 145, 3, 158, 3, 167, 3, 175, 3, 181, 3, 185, 3, - 187, 3, 189, 3, 190, 3, 191, 82, 190, 2, 191, 1, 190, 1, 186, 1, 197, 1, 192, 1, - 171, 1, 211, 1, 192, 1, 128, 1, 238, 1, 189, 1, 47, 1, 171, 1, 116, 1, 7, 1, - 174, 1, 90, 1, 2, 1, 180, 1, 79, 1, 2, 1, 179, 1, 67, 1, 1, 1, 179, 1, - 62, 1, 0, 1, 180, 1, 58, 1, 0, 1, 181, 1, 54, 1, 0, 1, 182, 1, 51, 1, - 0, 1, 188, 1, 52, 1, 3, 1, 190, 1, 51, 1, 4, 1, 188, 1, 48, 1, 2, 1, - 190, 1, 44, 1, 3, 1, 191, 1, 40, 1, 3, 1, 192, 1, 35, 1, 3, 1, 192, 1, - 30, 1, 2, 1, 194, 1, 26, 1, 3, 1, 194, 1, 20, 1, 2, 1, 196, 1, 15, 1, - 2, 1, 196, 1, 10, 1, 2, 1, 195, 1, 3, 1, 1, 1, 198, 1, 6, 2, 104, 1, - 24, 1, 64, 1, 26, 2, 79, 1, 19, 2, 59, 1, 36, 2, 108, 1, 15, 2, 45, 1, - 38, 2, 114, 1, 40, 2, 119, 1, 40, 2, 121, 1, 41, 2, 123, 1, 42, 2, 125, 1, - 42, 2, 126, 1, 43, 2, 128, 1, 43, 2, 130, 1, 44, 2, 132, 1, 45, 2, 134, 1, - 45, 2, 135, 1, 26, 2, 79, 1, 36, 2, 109, 1, 47, 2, 140, 1, 47, 2, 140, 1, - 47, 2, 140, 1, 47, 2, 140, 1, 46, 2, 139, 1, 46, 2, 137, 1, 45, 2, 136, 1, - 45, 2, 134, 1, 44, 2, 133, 1, 43, 2, 131, 1, 50, 1, 42, 1, 125, 1, 212, 1, - 29, 1, 24, 1, 253, 1, 34, 1, 0, 1, 253, 1, 41, 1, 0, 1, 253, 1, 49, 1, - 0, 1, 253, 1, 56, 1, 0, 1, 253, 1, 64, 1, 0, 1, 233, 1, 66, 1, 0, 1, - 169, 1, 52, 1, 3, 1, 95, 1, 28, 1, 3, 1, 46, 1, 10, 1, 7, 1, 38, 1, - 6, 2, 38, 1, 5, 2, 30, 1, 2, 2, 31, 1, 2, 2, 28, 1, 1, 2, 32, 1, - 3, 2, 30, 1, 3, 2, 97, 1, 53, 1, 15, 1, 241, 1, 186, 1, 33, 1, 232, 1, - 194, 1, 61, 1, 211, 1, 194, 1, 125, 1, 194, 1, 191, 1, 176, 1, 191, 1, 190, 1, - 188, 1, 191, 45, 190, 3, 189, 3, 188, 3, 185, 3, 181, 3, 176, 3, 169, 3, 160, 3, - 149, 3, 165, 3, 191, 66, 177, 3, 79, 3, 86, 3, 92, 3, 97, 3, 100, 3, 101, 6, - 140, 3, 191, 6, 133, 3, 108, 3, 112, 3, 116, 3, 119, 3, 122, 3, 152, 3, 191, 60, - 97, 3, 65, 3, 81, 3, 98, 3, 113, 3, 128, 3, 141, 3, 151, 3, 158, 3, 162, 3, - 164, 3, 163, 3, 160, 3, 155, 3, 150, 3, 145, 3, 140, 3, 137, 3, 159, 3, 132, 9, - 131, 3, 129, 3, 125, 3, 167, 3, 191, 54, 44, 3, 54, 3, 63, 3, 71, 3, 113, 3, - 191, 51, 55, 3, 68, 3, 81, 3, 94, 3, 104, 3, 113, 3, 116, 3, 117, 3, 191, 57, - 52, 3, 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 91, 3, 51, 3, - 61, 3, 68, 3, 74, 3, 191, 57, 109, 3, 56, 3, 66, 3, 76, 3, 120, 3, 191, 6, - 122, 3, 107, 3, 111, 3, 115, 3, 119, 3, 125, 3, 129, 3, 132, 3, 134, 3, 132, 3, - 128, 3, 191, 54, 142, 3, 58, 3, 72, 3, 87, 3, 101, 3, 113, 3, 122, 3, 129, 3, - 133, 3, 134, 3, 133, 3, 177, 3, 191, 3, 170, 3, 128, 3, 131, 3, 135, 3, 141, 3, - 149, 3, 157, 3, 164, 3, 171, 3, 176, 3, 181, 3, 185, 3, 187, 3, 188, 3, 189, 3, - 190, 24, 189, 3, 188, 3, 186, 3, 183, 3, 179, 3, 172, 3, 164, 3, 153, 3, 174, 3, - 191, 54, 53, 3, 68, 3, 83, 3, 97, 3, 111, 3, 122, 3, 131, 3, 137, 3, 145, 3, - 185, 3, 191, 9, 146, 3, 119, 3, 114, 3, 111, 3, 110, 3, 118, 3, 181, 3, 110, 3, - 112, 3, 113, 6, 111, 3, 163, 3, 191, 51, 140, 3, 48, 3, 57, 3, 65, 3, 71, 3, - 152, 3, 191, 51, 97, 3, 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, 145, 3, 157, 3, - 167, 3, 175, 3, 180, 3, 185, 3, 187, 3, 189, 3, 190, 3, 191, 85, 190, 2, 191, 1, - 190, 1, 186, 1, 196, 1, 192, 1, 171, 1, 210, 1, 192, 1, 129, 1, 187, 1, 148, 1, - 32, 1, 163, 1, 101, 1, 3, 1, 175, 1, 90, 1, 2, 1, 176, 1, 77, 1, 1, 1, - 177, 1, 67, 1, 0, 1, 179, 1, 62, 1, 0, 1, 181, 1, 58, 1, 0, 1, 183, 1, - 54, 1, 1, 1, 187, 1, 51, 1, 3, 1, 187, 1, 47, 1, 2, 1, 189, 1, 44, 1, - 2, 1, 190, 1, 39, 1, 2, 1, 189, 1, 34, 1, 2, 1, 191, 1, 30, 1, 2, 1, - 197, 1, 28, 1, 5, 1, 200, 1, 25, 1, 7, 1, 194, 1, 15, 1, 2, 1, 194, 1, - 9, 1, 1, 1, 198, 1, 5, 1, 2, 1, 199, 1, 6, 2, 143, 1, 19, 1, 41, 1, - 37, 1, 36, 1, 107, 1, 37, 2, 109, 1, 19, 2, 59, 1, 4, 2, 14, 1, 32, 2, - 96, 1, 39, 2, 116, 1, 40, 2, 118, 1, 40, 2, 120, 1, 41, 2, 122, 1, 41, 2, - 124, 1, 42, 2, 126, 1, 42, 2, 127, 1, 43, 2, 129, 1, 43, 2, 131, 1, 44, 2, - 133, 1, 45, 2, 134, 1, 28, 2, 84, 1, 32, 2, 96, 1, 46, 2, 138, 1, 46, 2, - 138, 1, 46, 2, 138, 1, 46, 2, 138, 1, 46, 2, 137, 1, 45, 2, 136, 1, 45, 2, - 135, 1, 44, 2, 133, 1, 44, 2, 132, 1, 44, 1, 43, 1, 129, 1, 169, 1, 24, 1, - 51, 1, 253, 1, 18, 1, 0, 1, 253, 1, 26, 1, 0, 1, 253, 1, 34, 1, 0, 1, - 242, 1, 39, 1, 0, 1, 167, 1, 34, 1, 5, 1, 87, 1, 17, 1, 3, 1, 40, 1, - 5, 1, 4, 1, 43, 1, 8, 2, 44, 1, 9, 2, 40, 1, 7, 2, 41, 1, 7, 2, - 35, 1, 4, 2, 31, 1, 3, 2, 29, 1, 2, 2, 30, 1, 2, 2, 34, 1, 4, 2, - 33, 1, 4, 2, 50, 1, 14, 1, 10, 1, 242, 1, 160, 1, 10, 1, 245, 1, 179, 1, - 24, 1, 237, 1, 191, 1, 47, 1, 221, 1, 196, 1, 95, 1, 194, 1, 191, 1, 175, 1, - 191, 45, 190, 3, 189, 3, 188, 3, 185, 3, 182, 3, 177, 3, 170, 3, 162, 3, 152, 3, - 144, 3, 183, 3, 191, 66, 151, 3, 81, 3, 89, 3, 95, 3, 99, 3, 103, 3, 105, 3, - 106, 3, 163, 3, 191, 3, 137, 3, 114, 3, 117, 3, 120, 3, 122, 6, 167, 3, 191, 60, - 97, 3, 65, 3, 81, 3, 98, 3, 114, 3, 129, 3, 142, 3, 153, 3, 161, 3, 166, 3, - 168, 6, 166, 3, 163, 3, 158, 3, 154, 3, 149, 3, 146, 3, 143, 3, 142, 3, 140, 6, - 137, 3, 134, 3, 129, 3, 168, 3, 191, 54, 44, 3, 54, 3, 63, 3, 71, 3, 113, 3, - 191, 48, 126, 3, 59, 3, 71, 3, 85, 3, 97, 3, 107, 3, 115, 3, 119, 6, 191, 57, - 52, 3, 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 91, 3, 51, 3, - 61, 3, 68, 3, 74, 3, 191, 57, 78, 3, 57, 3, 68, 3, 79, 3, 123, 3, 191, 3, - 171, 3, 109, 3, 113, 3, 118, 3, 122, 3, 128, 3, 132, 3, 136, 3, 139, 3, 140, 3, - 137, 3, 132, 3, 191, 54, 142, 3, 59, 3, 73, 3, 88, 3, 102, 3, 116, 3, 125, 3, - 134, 3, 137, 3, 140, 3, 139, 3, 148, 3, 191, 3, 172, 3, 134, 3, 137, 3, 140, 3, - 146, 3, 152, 3, 159, 3, 166, 3, 172, 3, 176, 3, 181, 3, 184, 3, 185, 3, 187, 3, - 188, 12, 189, 6, 188, 12, 187, 3, 185, 3, 182, 3, 177, 3, 171, 3, 163, 3, 152, 3, - 174, 3, 191, 54, 52, 3, 66, 3, 80, 3, 95, 3, 108, 3, 119, 3, 128, 3, 139, 3, - 184, 3, 191, 12, 144, 3, 117, 3, 115, 3, 113, 6, 114, 3, 131, 3, 117, 3, 119, 9, - 116, 3, 164, 3, 191, 51, 140, 3, 48, 3, 57, 3, 65, 3, 71, 3, 152, 3, 191, 51, - 97, 3, 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, 145, 3, 157, 3, 167, 3, 175, 3, - 180, 3, 185, 3, 187, 3, 189, 3, 190, 3, 191, 88, 190, 2, 191, 1, 190, 1, 187, 1, - 196, 1, 192, 1, 172, 1, 171, 1, 156, 1, 108, 1, 131, 1, 95, 1, 4, 1, 174, 1, - 102, 1, 3, 1, 175, 1, 90, 1, 2, 1, 176, 1, 78, 1, 1, 1, 179, 1, 68, 1, - 1, 1, 180, 1, 62, 1, 1, 1, 184, 1, 60, 1, 3, 1, 187, 1, 57, 1, 4, 1, - 185, 1, 50, 1, 1, 1, 187, 1, 46, 1, 1, 1, 190, 1, 42, 1, 2, 1, 191, 1, - 38, 1, 3, 1, 190, 1, 32, 1, 2, 1, 188, 1, 26, 1, 0, 1, 189, 1, 21, 1, - 1, 1, 194, 1, 18, 1, 2, 1, 194, 1, 12, 1, 1, 1, 194, 1, 6, 1, 1, 1, - 174, 1, 7, 1, 15, 1, 45, 1, 33, 1, 98, 1, 36, 2, 107, 1, 37, 2, 109, 1, - 36, 2, 110, 1, 29, 2, 88, 1, 38, 2, 114, 1, 39, 2, 116, 1, 39, 2, 118, 1, - 40, 2, 120, 1, 40, 2, 122, 1, 41, 2, 123, 1, 42, 2, 125, 1, 42, 2, 127, 1, - 43, 2, 128, 1, 43, 2, 130, 1, 44, 2, 131, 1, 44, 2, 133, 1, 37, 2, 111, 1, - 24, 2, 72, 1, 45, 2, 136, 1, 45, 2, 137, 1, 45, 2, 137, 1, 45, 2, 136, 1, - 45, 2, 136, 1, 45, 2, 135, 1, 45, 2, 134, 1, 44, 2, 132, 1, 43, 2, 131, 1, - 133, 1, 28, 1, 77, 1, 253, 1, 6, 1, 1, 1, 253, 1, 11, 1, 0, 1, 253, 1, - 18, 1, 0, 1, 224, 1, 24, 1, 1, 1, 92, 1, 7, 1, 2, 1, 35, 1, 3, 2, - 42, 1, 8, 2, 38, 1, 6, 2, 37, 1, 5, 2, 36, 1, 4, 2, 39, 1, 6, 2, - 47, 1, 12, 2, 39, 1, 7, 2, 34, 1, 4, 2, 32, 1, 3, 2, 32, 1, 3, 2, - 33, 1, 3, 2, 47, 1, 13, 2, 39, 1, 6, 2, 197, 1, 120, 1, 4, 1, 248, 1, - 176, 1, 14, 1, 239, 1, 191, 1, 41, 1, 214, 1, 196, 1, 116, 1, 192, 1, 191, 1, - 181, 1, 191, 45, 190, 3, 189, 3, 188, 3, 186, 3, 183, 3, 179, 3, 173, 3, 164, 3, - 155, 3, 143, 3, 142, 3, 191, 69, 113, 3, 83, 3, 91, 3, 98, 3, 102, 3, 107, 3, - 110, 3, 112, 3, 182, 3, 141, 3, 119, 3, 122, 3, 124, 3, 125, 3, 124, 3, 175, 3, - 191, 60, 97, 3, 65, 3, 81, 3, 98, 3, 114, 3, 130, 3, 143, 3, 155, 3, 163, 3, - 168, 3, 172, 3, 173, 3, 171, 3, 169, 3, 166, 3, 162, 3, 158, 3, 155, 3, 152, 3, - 150, 3, 149, 3, 146, 3, 143, 3, 140, 3, 134, 3, 169, 3, 191, 54, 44, 3, 54, 3, - 63, 3, 71, 3, 113, 3, 191, 45, 173, 3, 52, 3, 64, 3, 77, 3, 90, 3, 101, 3, - 112, 3, 119, 3, 122, 3, 121, 3, 191, 57, 52, 3, 65, 3, 78, 3, 90, 3, 100, 3, - 106, 3, 108, 3, 191, 54, 91, 3, 51, 3, 61, 3, 68, 3, 74, 3, 191, 54, 173, 3, - 50, 3, 61, 3, 72, 3, 83, 3, 125, 3, 191, 3, 127, 3, 115, 3, 120, 3, 125, 3, - 130, 3, 135, 3, 139, 3, 143, 3, 145, 3, 144, 3, 141, 3, 135, 3, 191, 54, 142, 3, - 59, 3, 74, 3, 89, 3, 104, 3, 117, 3, 128, 3, 137, 3, 143, 3, 145, 3, 146, 3, - 144, 3, 180, 3, 174, 3, 141, 3, 143, 3, 146, 3, 150, 3, 155, 3, 161, 3, 167, 3, - 172, 3, 176, 3, 180, 3, 182, 3, 184, 3, 185, 3, 186, 12, 187, 9, 186, 6, 185, 6, - 183, 3, 180, 3, 176, 3, 170, 3, 162, 3, 152, 3, 173, 3, 191, 54, 51, 3, 65, 3, - 79, 3, 92, 3, 104, 3, 115, 3, 137, 3, 183, 3, 191, 15, 141, 3, 115, 3, 114, 6, - 116, 3, 118, 3, 121, 3, 123, 3, 125, 6, 124, 3, 121, 3, 165, 3, 191, 51, 140, 3, - 48, 3, 57, 3, 65, 3, 71, 3, 152, 3, 191, 51, 97, 3, 65, 3, 81, 3, 98, 3, - 115, 3, 131, 3, 145, 3, 157, 3, 167, 3, 175, 3, 180, 3, 185, 3, 187, 3, 189, 3, - 190, 3, 191, 91, 190, 2, 191, 1, 190, 1, 187, 1, 191, 1, 187, 1, 169, 1, 41, 1, - 27, 1, 14, 1, 141, 1, 92, 1, 2, 1, 169, 1, 100, 1, 1, 1, 172, 1, 89, 1, - 1, 1, 174, 1, 77, 1, 0, 1, 177, 1, 67, 1, 0, 1, 183, 1, 65, 1, 3, 1, - 185, 1, 60, 1, 3, 1, 186, 1, 55, 1, 2, 1, 187, 1, 51, 1, 2, 1, 185, 1, - 45, 1, 1, 1, 183, 1, 40, 1, 0, 1, 188, 1, 36, 1, 1, 1, 189, 1, 31, 1, - 1, 1, 187, 1, 26, 1, 0, 1, 191, 1, 22, 1, 1, 1, 192, 1, 16, 1, 1, 1, - 191, 1, 13, 1, 4, 1, 70, 1, 28, 1, 80, 1, 35, 2, 105, 1, 35, 2, 106, 1, - 36, 2, 108, 1, 37, 2, 110, 1, 37, 2, 112, 1, 38, 2, 114, 1, 39, 2, 115, 1, - 39, 2, 117, 1, 40, 2, 119, 1, 40, 2, 121, 1, 41, 2, 123, 1, 42, 2, 124, 1, - 42, 2, 126, 1, 42, 2, 127, 1, 43, 2, 129, 1, 43, 2, 130, 1, 44, 2, 132, 1, - 44, 2, 133, 1, 21, 2, 62, 1, 45, 2, 134, 1, 45, 2, 135, 1, 45, 2, 135, 1, - 45, 2, 135, 1, 45, 2, 134, 1, 44, 2, 133, 1, 44, 2, 132, 1, 43, 2, 131, 1, - 110, 1, 33, 1, 92, 1, 251, 1, 8, 2, 253, 1, 3, 1, 0, 1, 253, 1, 8, 1, - 0, 1, 185, 1, 10, 1, 0, 1, 77, 1, 6, 1, 5, 1, 70, 1, 6, 2, 46, 1, - 2, 2, 35, 1, 5, 2, 36, 1, 5, 2, 41, 1, 7, 2, 43, 1, 8, 2, 35, 1, - 4, 2, 38, 1, 6, 2, 33, 1, 4, 2, 34, 1, 4, 2, 30, 1, 2, 2, 28, 1, - 1, 2, 29, 1, 2, 2, 49, 1, 15, 2, 39, 1, 6, 2, 146, 1, 91, 1, 8, 1, - 243, 1, 188, 1, 29, 1, 218, 1, 193, 1, 102, 1, 197, 1, 192, 1, 165, 1, 191, 1, - 190, 1, 186, 1, 191, 48, 190, 3, 188, 3, 187, 3, 184, 3, 180, 3, 174, 3, 167, 3, - 158, 3, 147, 3, 134, 3, 144, 3, 191, 69, 102, 3, 86, 3, 94, 3, 101, 3, 107, 3, - 111, 3, 115, 3, 126, 3, 145, 3, 125, 3, 127, 3, 128, 6, 125, 3, 191, 63, 97, 3, - 65, 3, 81, 3, 98, 3, 115, 3, 130, 3, 144, 3, 155, 3, 164, 3, 170, 3, 174, 3, - 176, 6, 174, 3, 172, 3, 169, 3, 166, 3, 163, 3, 160, 3, 158, 3, 155, 3, 153, 3, - 149, 3, 144, 3, 137, 3, 170, 3, 191, 54, 44, 3, 54, 3, 63, 3, 71, 3, 114, 3, - 191, 45, 79, 3, 59, 3, 71, 3, 83, 3, 96, 3, 107, 3, 116, 3, 122, 3, 125, 3, - 123, 3, 191, 57, 52, 3, 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, - 91, 3, 51, 3, 61, 3, 68, 3, 74, 3, 191, 54, 124, 3, 53, 3, 65, 3, 77, 3, - 88, 3, 129, 3, 172, 3, 116, 3, 122, 3, 128, 3, 133, 3, 137, 3, 142, 3, 146, 3, - 149, 3, 150, 3, 149, 3, 145, 3, 138, 3, 191, 54, 142, 3, 59, 3, 74, 3, 90, 3, - 105, 3, 119, 3, 131, 3, 140, 3, 146, 3, 149, 3, 151, 6, 158, 3, 177, 3, 148, 3, - 149, 3, 152, 3, 155, 3, 159, 3, 164, 3, 168, 3, 173, 3, 176, 3, 179, 3, 181, 3, - 182, 3, 183, 9, 184, 18, 183, 6, 182, 3, 181, 3, 178, 3, 174, 3, 169, 3, 161, 3, - 151, 3, 173, 3, 191, 54, 50, 3, 63, 3, 77, 3, 89, 3, 101, 3, 137, 3, 191, 21, - 137, 3, 111, 3, 112, 3, 114, 3, 118, 3, 122, 3, 125, 3, 129, 3, 131, 6, 130, 3, - 125, 3, 166, 3, 191, 51, 140, 3, 48, 3, 57, 3, 65, 3, 71, 3, 152, 3, 191, 51, - 97, 3, 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, 145, 3, 157, 3, 167, 3, 175, 3, - 180, 3, 185, 3, 187, 3, 189, 3, 190, 3, 191, 94, 190, 2, 191, 1, 190, 1, 187, 1, - 68, 1, 60, 1, 57, 1, 39, 1, 13, 1, 3, 1, 148, 1, 91, 1, 0, 1, 167, 1, - 99, 1, 0, 1, 171, 1, 89, 1, 0, 1, 177, 1, 78, 1, 1, 1, 179, 1, 68, 1, - 1, 1, 182, 1, 64, 1, 2, 1, 184, 1, 60, 1, 2, 1, 183, 1, 54, 1, 1, 1, - 186, 1, 50, 1, 2, 1, 187, 1, 46, 1, 2, 1, 189, 1, 42, 1, 2, 1, 190, 1, - 37, 1, 2, 1, 190, 1, 32, 1, 2, 1, 190, 1, 27, 1, 1, 1, 192, 1, 22, 1, - 1, 1, 107, 1, 26, 1, 54, 1, 34, 2, 102, 1, 35, 2, 104, 1, 35, 2, 106, 1, - 36, 2, 108, 1, 37, 2, 109, 1, 35, 2, 106, 1, 38, 2, 113, 1, 39, 2, 115, 1, - 39, 2, 116, 1, 39, 2, 118, 1, 40, 2, 120, 1, 40, 2, 122, 1, 41, 2, 123, 1, - 41, 2, 125, 1, 42, 2, 126, 1, 42, 2, 128, 1, 43, 2, 129, 1, 43, 2, 130, 1, - 43, 2, 131, 1, 38, 2, 115, 1, 38, 2, 115, 1, 44, 2, 133, 1, 44, 2, 133, 1, - 44, 2, 133, 1, 44, 2, 132, 1, 44, 2, 131, 1, 43, 2, 130, 1, 99, 1, 37, 1, - 100, 1, 245, 1, 12, 1, 15, 1, 253, 1, 2, 1, 1, 1, 249, 1, 5, 1, 0, 1, - 154, 1, 9, 1, 4, 1, 73, 1, 7, 2, 73, 1, 7, 2, 75, 1, 8, 2, 68, 1, - 7, 2, 37, 1, 6, 2, 38, 1, 5, 2, 39, 1, 6, 2, 38, 1, 5, 2, 29, 1, - 2, 2, 31, 1, 2, 2, 31, 1, 2, 2, 28, 1, 2, 2, 29, 1, 2, 2, 31, 1, - 3, 2, 34, 1, 4, 2, 34, 1, 4, 2, 39, 1, 8, 2, 89, 1, 53, 1, 14, 1, - 222, 1, 190, 1, 92, 1, 202, 1, 192, 1, 152, 1, 192, 1, 191, 1, 181, 1, 191, 1, - 190, 2, 191, 48, 190, 3, 189, 3, 188, 3, 185, 3, 182, 3, 176, 3, 170, 3, 162, 3, - 152, 3, 140, 3, 127, 3, 147, 3, 191, 66, 177, 3, 92, 3, 89, 3, 98, 3, 105, 3, - 111, 3, 116, 3, 122, 3, 125, 3, 128, 3, 131, 9, 127, 3, 191, 63, 97, 3, 65, 3, - 81, 3, 98, 3, 115, 3, 131, 3, 144, 3, 156, 3, 165, 3, 172, 3, 176, 3, 179, 6, - 178, 3, 176, 3, 174, 3, 172, 3, 170, 3, 167, 3, 164, 3, 162, 3, 159, 3, 155, 3, - 149, 3, 140, 3, 171, 3, 191, 54, 44, 3, 55, 3, 64, 3, 71, 3, 115, 3, 191, 42, - 95, 3, 56, 3, 68, 3, 80, 3, 92, 3, 104, 3, 114, 3, 122, 3, 128, 6, 126, 3, - 191, 57, 52, 3, 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 91, 3, - 51, 3, 61, 3, 68, 3, 74, 3, 191, 54, 62, 3, 58, 3, 70, 3, 83, 3, 94, 3, - 133, 3, 130, 3, 122, 3, 129, 3, 135, 3, 140, 3, 145, 3, 149, 3, 152, 3, 155, 6, - 153, 3, 148, 3, 140, 3, 191, 54, 142, 3, 59, 3, 74, 3, 91, 3, 106, 3, 121, 3, - 133, 3, 143, 3, 150, 3, 154, 3, 156, 6, 155, 3, 170, 3, 155, 6, 156, 3, 159, 3, - 162, 3, 166, 3, 169, 3, 172, 3, 175, 3, 176, 3, 178, 3, 179, 39, 177, 3, 175, 3, - 172, 3, 167, 3, 159, 3, 149, 3, 173, 3, 191, 54, 49, 3, 61, 3, 74, 3, 86, 3, - 127, 3, 191, 24, 133, 3, 106, 3, 109, 3, 113, 3, 119, 3, 125, 3, 130, 3, 134, 3, - 136, 3, 137, 3, 134, 3, 130, 3, 168, 3, 191, 51, 140, 3, 48, 3, 57, 3, 65, 3, - 71, 3, 152, 3, 191, 51, 97, 3, 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, 145, 3, - 157, 3, 167, 3, 175, 3, 180, 3, 185, 3, 187, 3, 189, 3, 190, 3, 191, 97, 190, 2, - 119, 1, 113, 1, 112, 1, 18, 1, 4, 2, 64, 1, 12, 1, 1, 1, 144, 1, 88, 1, - 0, 1, 168, 1, 100, 1, 0, 1, 173, 1, 90, 1, 1, 1, 179, 1, 79, 1, 2, 1, - 183, 1, 69, 1, 2, 1, 184, 1, 64, 1, 2, 1, 185, 1, 61, 1, 3, 1, 189, 1, - 58, 1, 4, 1, 190, 1, 53, 1, 4, 1, 189, 1, 47, 1, 3, 1, 186, 1, 41, 1, - 1, 1, 186, 1, 36, 1, 0, 1, 188, 1, 31, 1, 1, 1, 148, 1, 29, 1, 28, 1, - 34, 1, 33, 1, 99, 1, 34, 2, 102, 1, 35, 2, 103, 1, 35, 2, 105, 1, 36, 2, - 107, 1, 34, 2, 100, 1, 34, 2, 103, 1, 37, 2, 112, 1, 38, 2, 114, 1, 39, 2, - 115, 1, 39, 2, 117, 1, 40, 2, 119, 1, 40, 2, 120, 1, 41, 2, 122, 1, 41, 2, - 123, 1, 41, 2, 125, 1, 42, 2, 126, 1, 42, 2, 127, 1, 43, 2, 128, 1, 43, 2, - 129, 1, 43, 2, 130, 1, 43, 2, 130, 1, 43, 2, 131, 1, 43, 2, 131, 1, 43, 2, - 131, 1, 43, 2, 130, 1, 43, 2, 130, 1, 96, 1, 37, 1, 102, 1, 244, 1, 15, 1, - 18, 1, 253, 1, 3, 1, 2, 1, 234, 1, 4, 1, 0, 1, 119, 1, 10, 1, 8, 1, - 85, 1, 14, 2, 83, 1, 12, 2, 80, 1, 11, 2, 68, 1, 5, 2, 65, 1, 3, 2, - 46, 1, 4, 2, 44, 1, 9, 2, 39, 1, 6, 2, 42, 1, 7, 2, 34, 1, 4, 2, - 37, 1, 5, 2, 30, 1, 2, 2, 28, 1, 1, 2, 29, 1, 2, 2, 31, 1, 3, 2, - 37, 1, 5, 2, 39, 1, 6, 2, 41, 1, 7, 2, 52, 1, 18, 1, 13, 1, 200, 1, - 186, 1, 136, 1, 194, 1, 191, 1, 177, 1, 191, 1, 190, 1, 189, 1, 190, 3, 191, 48, - 190, 3, 189, 3, 188, 3, 186, 3, 182, 3, 179, 3, 173, 3, 165, 3, 156, 3, 146, 3, - 134, 3, 120, 3, 163, 3, 191, 66, 152, 3, 83, 3, 93, 3, 101, 3, 110, 3, 116, 3, - 122, 3, 128, 3, 131, 3, 134, 6, 132, 3, 134, 3, 191, 63, 97, 3, 65, 3, 81, 3, - 98, 3, 115, 3, 131, 3, 144, 3, 156, 3, 166, 3, 173, 3, 178, 3, 180, 3, 182, 6, - 180, 3, 179, 3, 177, 3, 175, 3, 173, 3, 170, 3, 167, 3, 164, 3, 159, 3, 152, 3, - 143, 3, 171, 3, 191, 54, 45, 3, 55, 3, 64, 3, 72, 3, 115, 3, 191, 36, 174, 3, - 64, 3, 57, 3, 67, 3, 77, 3, 89, 3, 101, 3, 112, 3, 122, 3, 128, 3, 132, 3, - 133, 3, 129, 3, 191, 57, 52, 3, 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, - 191, 54, 91, 3, 51, 3, 61, 3, 68, 3, 74, 3, 191, 51, 123, 3, 52, 3, 64, 3, - 77, 3, 89, 3, 101, 3, 120, 3, 122, 3, 130, 3, 137, 3, 143, 3, 148, 3, 152, 3, - 155, 3, 158, 3, 160, 3, 159, 3, 157, 3, 151, 3, 143, 3, 191, 54, 142, 3, 59, 3, - 75, 3, 91, 3, 107, 3, 122, 3, 134, 3, 145, 3, 153, 3, 158, 3, 161, 9, 164, 3, - 160, 6, 161, 3, 162, 3, 164, 3, 167, 3, 169, 3, 171, 3, 172, 3, 173, 6, 174, 9, - 173, 21, 174, 6, 173, 6, 171, 3, 168, 3, 163, 3, 156, 3, 147, 3, 172, 3, 191, 54, - 47, 3, 59, 3, 71, 3, 118, 3, 191, 27, 129, 3, 101, 3, 106, 3, 113, 3, 119, 3, - 126, 3, 133, 3, 138, 3, 140, 3, 141, 3, 139, 3, 134, 3, 169, 3, 191, 51, 140, 3, - 48, 3, 57, 3, 65, 3, 71, 3, 152, 3, 191, 51, 97, 3, 65, 3, 81, 3, 98, 3, - 115, 3, 131, 3, 145, 3, 157, 3, 167, 3, 175, 3, 180, 3, 185, 3, 187, 3, 189, 3, - 190, 3, 191, 99, 165, 1, 163, 2, 18, 1, 5, 2, 36, 1, 2, 2, 69, 1, 11, 1, - 2, 1, 144, 1, 87, 1, 0, 1, 168, 1, 100, 1, 1, 1, 177, 1, 92, 1, 3, 1, - 180, 1, 80, 1, 3, 1, 182, 1, 69, 1, 2, 1, 183, 1, 64, 1, 2, 1, 188, 1, - 62, 1, 4, 1, 185, 1, 55, 1, 2, 1, 184, 1, 50, 1, 1, 1, 185, 1, 45, 1, - 1, 1, 188, 1, 41, 1, 2, 1, 179, 1, 38, 1, 12, 1, 48, 1, 32, 1, 88, 1, - 33, 2, 99, 1, 33, 2, 101, 1, 34, 2, 103, 1, 35, 2, 104, 1, 34, 2, 102, 1, - 29, 2, 86, 1, 37, 2, 110, 1, 37, 2, 111, 1, 38, 2, 113, 1, 38, 2, 115, 1, - 38, 2, 114, 1, 39, 2, 118, 1, 40, 2, 119, 1, 40, 2, 121, 1, 41, 2, 122, 1, - 41, 2, 123, 1, 41, 2, 125, 1, 42, 2, 126, 1, 42, 2, 127, 1, 43, 2, 128, 1, - 43, 2, 128, 1, 43, 2, 129, 1, 43, 2, 129, 1, 43, 2, 129, 1, 43, 2, 129, 1, - 43, 2, 128, 1, 97, 1, 37, 1, 100, 1, 243, 1, 16, 1, 20, 1, 253, 1, 4, 2, - 209, 1, 4, 1, 1, 1, 93, 1, 7, 1, 6, 1, 73, 1, 7, 2, 83, 1, 12, 2, - 73, 1, 7, 2, 69, 1, 5, 2, 68, 1, 4, 2, 73, 1, 7, 2, 76, 1, 13, 2, - 46, 1, 10, 2, 46, 1, 11, 2, 37, 1, 5, 2, 36, 1, 5, 2, 40, 1, 6, 2, - 32, 1, 3, 2, 29, 1, 2, 2, 29, 1, 2, 2, 28, 1, 2, 2, 37, 1, 6, 2, - 42, 1, 7, 2, 39, 1, 6, 2, 43, 1, 8, 2, 160, 1, 150, 1, 135, 1, 191, 1, - 190, 1, 187, 1, 190, 6, 191, 48, 190, 3, 189, 3, 188, 3, 187, 3, 184, 3, 180, 3, - 176, 3, 169, 3, 161, 3, 151, 3, 140, 3, 128, 3, 114, 3, 161, 3, 191, 66, 127, 3, - 87, 3, 97, 3, 106, 3, 115, 3, 122, 3, 128, 3, 133, 3, 135, 3, 136, 3, 134, 3, - 149, 3, 191, 63, 97, 3, 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, 145, 3, 157, 3, - 166, 3, 173, 3, 179, 3, 182, 3, 183, 3, 184, 3, 183, 3, 182, 3, 181, 3, 179, 3, - 177, 3, 175, 3, 172, 3, 168, 3, 163, 3, 155, 3, 146, 3, 172, 3, 191, 54, 45, 3, - 55, 3, 65, 3, 72, 3, 115, 3, 191, 33, 127, 3, 53, 3, 60, 3, 68, 3, 78, 3, - 89, 3, 99, 3, 110, 3, 120, 3, 129, 3, 135, 3, 137, 6, 132, 3, 191, 57, 52, 3, - 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 91, 3, 52, 3, 61, 3, - 69, 3, 74, 3, 191, 48, 173, 3, 62, 3, 59, 3, 71, 3, 84, 3, 97, 3, 109, 3, - 120, 3, 129, 3, 137, 3, 144, 3, 150, 3, 155, 3, 158, 3, 161, 3, 164, 6, 163, 3, - 160, 3, 153, 3, 144, 3, 191, 54, 142, 3, 59, 3, 75, 3, 92, 3, 107, 3, 123, 3, - 136, 3, 147, 3, 155, 3, 161, 3, 164, 3, 166, 9, 165, 3, 164, 6, 165, 3, 166, 3, - 167, 6, 168, 9, 167, 9, 166, 3, 165, 6, 164, 9, 165, 6, 166, 12, 165, 3, 163, 3, - 158, 3, 152, 3, 144, 3, 172, 3, 191, 54, 46, 3, 57, 3, 136, 3, 191, 30, 125, 3, - 97, 3, 103, 3, 111, 3, 119, 3, 128, 3, 136, 3, 141, 3, 145, 3, 146, 3, 143, 3, - 137, 3, 170, 3, 191, 51, 140, 3, 48, 3, 57, 3, 65, 3, 71, 3, 152, 3, 191, 51, - 97, 3, 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, 145, 3, 157, 3, 167, 3, 175, 3, - 180, 3, 185, 3, 187, 3, 189, 3, 190, 3, 191, 75, 190, 24, 189, 3, 39, 1, 29, 2, - 16, 1, 2, 2, 61, 1, 3, 2, 75, 1, 13, 1, 4, 1, 149, 1, 90, 1, 2, 1, - 184, 1, 111, 1, 12, 1, 183, 1, 97, 1, 8, 1, 183, 1, 81, 1, 4, 1, 186, 1, - 71, 1, 4, 1, 185, 1, 65, 1, 3, 1, 186, 1, 61, 1, 3, 1, 184, 1, 55, 1, - 1, 1, 187, 1, 51, 1, 3, 1, 187, 1, 46, 1, 2, 1, 78, 1, 34, 1, 66, 1, - 32, 2, 97, 1, 32, 2, 98, 1, 33, 2, 100, 1, 34, 2, 102, 1, 34, 2, 103, 1, - 23, 2, 70, 1, 36, 2, 107, 1, 36, 2, 109, 1, 37, 2, 110, 1, 37, 2, 112, 1, - 36, 2, 108, 1, 36, 2, 107, 1, 39, 2, 116, 1, 39, 2, 118, 1, 39, 2, 120, 1, - 40, 2, 121, 1, 41, 2, 122, 1, 41, 2, 123, 1, 41, 2, 124, 1, 41, 2, 125, 1, - 42, 2, 126, 1, 42, 2, 126, 1, 42, 2, 127, 1, 42, 2, 127, 1, 42, 2, 127, 1, - 42, 2, 127, 1, 101, 1, 37, 1, 97, 1, 244, 1, 17, 1, 21, 1, 253, 1, 5, 2, - 183, 1, 13, 1, 11, 1, 96, 1, 22, 2, 83, 1, 12, 2, 83, 1, 12, 2, 79, 1, - 10, 2, 79, 1, 10, 2, 71, 1, 6, 2, 77, 1, 9, 2, 75, 1, 7, 2, 70, 1, - 5, 2, 42, 1, 5, 2, 47, 1, 11, 2, 44, 1, 9, 2, 37, 1, 5, 2, 35, 1, - 4, 2, 29, 1, 2, 2, 26, 1, 1, 2, 31, 1, 3, 2, 36, 1, 5, 2, 48, 1, - 13, 2, 68, 1, 29, 2, 50, 1, 13, 2, 49, 1, 12, 2, 125, 1, 108, 1, 106, 1, - 191, 1, 190, 8, 191, 51, 190, 3, 188, 3, 187, 3, 185, 3, 182, 3, 177, 3, 172, 3, - 164, 3, 156, 3, 146, 3, 134, 3, 122, 3, 118, 3, 180, 3, 191, 66, 117, 3, 91, 3, - 101, 3, 111, 3, 119, 3, 127, 3, 132, 3, 136, 3, 137, 3, 134, 3, 150, 3, 191, 63, - 97, 3, 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, 145, 3, 157, 3, 167, 3, 174, 3, - 179, 3, 182, 3, 185, 12, 184, 3, 182, 3, 181, 3, 178, 3, 175, 3, 171, 3, 165, 3, - 158, 3, 148, 3, 173, 3, 191, 54, 45, 3, 56, 3, 65, 3, 73, 3, 116, 3, 191, 18, - 176, 3, 146, 3, 130, 3, 99, 3, 56, 3, 60, 3, 65, 3, 72, 3, 80, 3, 90, 3, - 100, 3, 110, 3, 120, 3, 129, 3, 137, 3, 141, 3, 143, 3, 141, 3, 135, 3, 191, 57, - 52, 3, 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 91, 3, 52, 3, - 62, 3, 69, 3, 75, 3, 191, 48, 93, 3, 56, 3, 67, 3, 80, 3, 92, 3, 105, 3, - 117, 3, 128, 3, 137, 3, 145, 3, 152, 3, 157, 3, 161, 3, 164, 3, 167, 3, 169, 3, - 168, 3, 167, 3, 162, 3, 155, 3, 146, 3, 191, 54, 142, 3, 60, 3, 75, 3, 92, 3, - 108, 3, 124, 3, 137, 3, 149, 3, 158, 3, 164, 3, 167, 3, 170, 9, 169, 3, 168, 6, - 167, 6, 166, 3, 165, 3, 164, 3, 163, 3, 161, 3, 160, 3, 158, 6, 156, 3, 155, 21, - 156, 3, 157, 3, 158, 9, 156, 3, 153, 3, 148, 3, 140, 3, 171, 3, 191, 54, 44, 3, - 84, 3, 191, 33, 121, 3, 92, 3, 101, 3, 110, 3, 119, 3, 129, 3, 137, 3, 144, 3, - 148, 3, 149, 3, 146, 3, 140, 3, 171, 3, 191, 51, 140, 3, 48, 3, 57, 3, 65, 3, - 71, 3, 152, 3, 191, 51, 97, 3, 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, 145, 3, - 157, 3, 167, 3, 175, 3, 180, 3, 185, 3, 187, 3, 189, 3, 190, 3, 191, 75, 190, 27, - 90, 1, 82, 2, 17, 1, 4, 2, 45, 1, 3, 2, 65, 1, 3, 2, 75, 1, 12, 1, - 4, 1, 153, 1, 91, 1, 4, 1, 172, 1, 101, 1, 2, 1, 173, 1, 90, 1, 1, 1, - 178, 1, 79, 1, 2, 1, 184, 1, 70, 1, 3, 1, 180, 1, 62, 1, 0, 1, 183, 1, - 59, 1, 1, 1, 187, 1, 56, 1, 3, 1, 120, 1, 42, 1, 38, 1, 31, 2, 94, 1, - 32, 2, 96, 1, 32, 2, 98, 1, 33, 2, 99, 1, 34, 2, 101, 1, 23, 2, 71, 1, - 31, 2, 93, 1, 35, 2, 106, 1, 36, 2, 108, 1, 36, 2, 109, 1, 35, 2, 106, 1, - 30, 2, 91, 1, 38, 2, 114, 1, 38, 2, 115, 1, 39, 2, 117, 1, 39, 2, 118, 1, - 39, 2, 119, 1, 40, 2, 120, 1, 40, 2, 122, 1, 41, 2, 123, 1, 41, 2, 123, 1, - 41, 2, 124, 1, 41, 2, 125, 1, 41, 2, 125, 1, 41, 2, 125, 1, 41, 2, 125, 1, - 113, 1, 36, 1, 91, 1, 248, 1, 18, 1, 20, 1, 244, 1, 6, 2, 131, 1, 4, 2, - 76, 1, 8, 2, 72, 1, 6, 2, 66, 1, 4, 2, 70, 1, 5, 2, 78, 1, 9, 2, - 64, 1, 3, 2, 69, 1, 5, 2, 78, 1, 9, 2, 69, 1, 5, 2, 77, 1, 9, 2, - 64, 1, 10, 2, 38, 1, 6, 2, 40, 1, 7, 2, 39, 1, 7, 2, 42, 1, 8, 2, - 39, 1, 6, 2, 31, 1, 3, 2, 31, 1, 3, 2, 31, 1, 3, 2, 39, 1, 6, 2, - 40, 1, 7, 2, 35, 1, 4, 2, 32, 1, 3, 2, 86, 1, 63, 2, 190, 9, 191, 51, - 190, 3, 189, 3, 188, 3, 185, 3, 183, 3, 179, 3, 174, 3, 168, 3, 160, 3, 151, 3, - 141, 3, 129, 3, 117, 3, 113, 3, 191, 66, 177, 3, 95, 6, 106, 3, 116, 3, 124, 3, - 131, 3, 134, 3, 136, 3, 134, 3, 149, 3, 191, 63, 97, 3, 65, 3, 81, 3, 98, 3, - 115, 3, 131, 3, 145, 3, 157, 3, 167, 3, 174, 3, 180, 3, 183, 3, 185, 3, 187, 9, - 186, 3, 185, 3, 183, 3, 181, 3, 178, 3, 173, 3, 167, 3, 160, 3, 149, 3, 173, 3, - 191, 54, 45, 3, 56, 3, 65, 3, 74, 3, 117, 3, 155, 3, 85, 3, 83, 3, 80, 3, - 76, 3, 71, 3, 68, 3, 65, 9, 68, 3, 72, 3, 78, 3, 86, 3, 94, 3, 103, 3, - 112, 3, 122, 3, 131, 3, 138, 3, 144, 3, 148, 6, 145, 3, 138, 3, 191, 57, 52, 3, - 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 91, 3, 52, 3, 62, 3, - 70, 3, 76, 3, 191, 45, 93, 3, 53, 3, 65, 3, 76, 3, 89, 3, 101, 3, 114, 3, - 125, 3, 136, 3, 145, 3, 152, 3, 158, 3, 163, 3, 167, 3, 170, 3, 172, 3, 173, 3, - 172, 3, 169, 3, 164, 3, 157, 3, 146, 3, 191, 54, 142, 3, 60, 3, 76, 3, 92, 3, - 109, 3, 124, 3, 138, 3, 150, 3, 159, 3, 166, 3, 170, 3, 173, 12, 172, 3, 170, 3, - 168, 3, 177, 3, 182, 3, 181, 3, 180, 3, 179, 3, 178, 3, 177, 6, 176, 3, 175, 9, - 174, 9, 175, 9, 176, 6, 167, 3, 149, 6, 146, 3, 143, 3, 136, 3, 169, 3, 191, 54, - 44, 3, 53, 3, 106, 3, 191, 30, 119, 3, 89, 3, 98, 3, 109, 3, 119, 3, 130, 3, - 140, 3, 146, 3, 150, 3, 151, 3, 148, 3, 142, 3, 171, 3, 191, 51, 140, 3, 48, 3, - 57, 3, 65, 3, 71, 3, 152, 3, 191, 51, 97, 3, 65, 3, 81, 3, 98, 3, 115, 3, - 131, 3, 145, 3, 157, 3, 167, 3, 175, 3, 180, 3, 185, 3, 187, 3, 189, 3, 190, 3, - 191, 75, 190, 27, 137, 1, 132, 2, 25, 1, 9, 2, 37, 1, 9, 2, 76, 1, 8, 2, - 77, 1, 9, 2, 95, 1, 23, 1, 15, 1, 159, 1, 95, 1, 8, 1, 170, 1, 101, 1, - 1, 1, 175, 1, 91, 1, 2, 1, 176, 1, 78, 1, 1, 1, 180, 1, 68, 1, 1, 1, - 186, 1, 65, 1, 3, 1, 162, 1, 55, 1, 15, 1, 37, 1, 31, 1, 87, 1, 31, 2, - 93, 1, 31, 2, 95, 1, 32, 2, 97, 1, 32, 2, 98, 1, 27, 2, 81, 1, 23, 2, - 70, 1, 34, 2, 103, 1, 35, 2, 105, 1, 36, 2, 107, 1, 36, 2, 106, 1, 25, 2, - 76, 1, 37, 2, 111, 1, 38, 2, 113, 1, 38, 2, 114, 1, 38, 2, 115, 1, 39, 2, - 116, 1, 39, 2, 118, 1, 39, 2, 119, 1, 40, 2, 120, 1, 40, 2, 121, 1, 40, 2, - 122, 1, 41, 2, 122, 1, 41, 2, 123, 1, 41, 2, 123, 1, 41, 2, 123, 1, 127, 1, - 35, 1, 84, 1, 250, 1, 19, 1, 20, 1, 227, 1, 9, 2, 108, 1, 8, 2, 76, 1, - 8, 2, 88, 1, 16, 2, 90, 1, 17, 2, 68, 1, 5, 2, 72, 1, 6, 2, 68, 1, - 5, 2, 68, 1, 4, 2, 79, 1, 10, 2, 77, 1, 9, 2, 73, 1, 6, 2, 74, 1, - 7, 2, 70, 1, 6, 2, 42, 1, 6, 2, 41, 1, 7, 2, 37, 1, 5, 2, 40, 1, - 7, 2, 39, 1, 6, 2, 43, 1, 8, 2, 45, 1, 9, 2, 40, 1, 7, 2, 49, 1, - 12, 2, 54, 1, 16, 2, 48, 1, 12, 2, 32, 1, 3, 2, 51, 1, 21, 2, 188, 3, - 190, 6, 191, 51, 190, 3, 189, 3, 188, 3, 186, 3, 184, 3, 180, 3, 176, 3, 170, 3, - 164, 3, 155, 3, 146, 3, 136, 3, 125, 3, 113, 3, 131, 3, 191, 66, 165, 3, 88, 3, - 99, 3, 110, 3, 119, 3, 127, 3, 131, 3, 134, 3, 133, 3, 141, 3, 191, 63, 97, 3, - 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, 145, 3, 157, 3, 167, 3, 174, 3, 180, 3, - 184, 3, 186, 3, 188, 9, 187, 3, 186, 3, 185, 3, 182, 3, 179, 3, 175, 3, 169, 3, - 161, 3, 150, 3, 173, 3, 191, 54, 45, 3, 56, 3, 66, 3, 74, 3, 117, 3, 191, 3, - 144, 3, 86, 3, 84, 3, 81, 3, 77, 3, 75, 3, 74, 6, 77, 3, 80, 3, 85, 3, - 92, 3, 99, 3, 107, 3, 116, 3, 125, 3, 133, 3, 140, 3, 147, 3, 152, 3, 153, 3, - 152, 3, 148, 3, 140, 3, 191, 57, 52, 3, 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, - 108, 3, 191, 54, 91, 3, 53, 3, 62, 3, 71, 3, 77, 3, 191, 42, 95, 3, 54, 3, - 64, 3, 74, 3, 86, 3, 99, 3, 111, 3, 123, 3, 134, 3, 144, 3, 152, 3, 159, 3, - 164, 3, 169, 3, 172, 3, 175, 3, 176, 6, 175, 3, 171, 3, 166, 3, 158, 3, 147, 3, - 191, 54, 142, 3, 60, 3, 76, 3, 92, 3, 109, 3, 125, 3, 139, 3, 151, 3, 161, 3, - 167, 3, 173, 3, 176, 12, 173, 3, 171, 3, 169, 3, 182, 3, 191, 57, 173, 3, 139, 3, - 140, 3, 139, 3, 137, 3, 131, 3, 168, 3, 191, 54, 43, 3, 53, 3, 62, 3, 97, 3, - 178, 3, 191, 24, 117, 3, 88, 3, 98, 3, 109, 3, 120, 3, 131, 3, 141, 3, 148, 3, - 152, 3, 153, 3, 150, 3, 143, 3, 172, 3, 191, 51, 140, 3, 48, 3, 57, 3, 65, 3, - 71, 3, 152, 3, 191, 51, 97, 3, 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, 145, 3, - 157, 3, 167, 3, 175, 3, 180, 3, 185, 3, 187, 3, 189, 3, 190, 3, 191, 75, 190, 27, - 181, 3, 27, 1, 12, 2, 27, 1, 10, 2, 70, 1, 11, 2, 73, 1, 7, 2, 79, 1, - 10, 2, 84, 1, 17, 1, 8, 1, 158, 1, 100, 1, 1, 1, 172, 1, 100, 1, 2, 1, - 175, 1, 89, 1, 2, 1, 179, 1, 78, 1, 2, 1, 176, 1, 66, 1, 2, 1, 63, 1, - 37, 1, 69, 1, 30, 2, 91, 1, 30, 2, 92, 1, 31, 2, 94, 1, 32, 2, 96, 1, - 31, 2, 92, 1, 16, 2, 48, 1, 33, 2, 101, 1, 34, 2, 102, 1, 34, 2, 104, 1, - 35, 2, 104, 1, 21, 2, 64, 1, 35, 2, 105, 1, 36, 2, 110, 1, 37, 2, 111, 1, - 38, 2, 113, 1, 38, 2, 114, 1, 38, 2, 115, 1, 39, 2, 116, 1, 39, 2, 117, 1, - 39, 2, 118, 1, 39, 2, 119, 1, 40, 2, 120, 1, 40, 2, 120, 1, 40, 2, 121, 1, - 41, 1, 40, 1, 121, 1, 149, 1, 34, 1, 74, 1, 252, 1, 20, 2, 194, 1, 9, 2, - 90, 1, 9, 2, 81, 1, 11, 2, 74, 1, 7, 2, 79, 1, 10, 2, 76, 1, 8, 2, - 65, 1, 3, 2, 71, 1, 6, 2, 71, 1, 6, 2, 72, 1, 6, 2, 67, 1, 4, 2, - 67, 1, 4, 2, 71, 1, 5, 2, 63, 1, 3, 2, 71, 1, 5, 2, 57, 1, 8, 2, - 40, 1, 6, 2, 39, 1, 6, 2, 39, 1, 6, 2, 45, 1, 9, 2, 41, 1, 7, 2, - 49, 1, 12, 2, 42, 1, 8, 2, 42, 1, 8, 2, 42, 1, 8, 2, 38, 1, 6, 2, - 33, 1, 4, 2, 66, 1, 41, 2, 189, 3, 190, 6, 191, 51, 190, 3, 189, 3, 188, 3, - 186, 3, 184, 3, 181, 3, 179, 3, 174, 3, 165, 3, 158, 3, 150, 3, 140, 3, 131, 3, - 119, 3, 108, 3, 138, 3, 191, 66, 154, 3, 92, 3, 103, 3, 113, 3, 122, 3, 128, 3, - 131, 3, 130, 3, 126, 3, 191, 63, 97, 3, 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, - 145, 3, 157, 3, 167, 3, 175, 3, 180, 3, 184, 3, 186, 3, 188, 12, 186, 3, 185, 3, - 183, 3, 179, 3, 175, 3, 169, 3, 161, 3, 151, 3, 173, 3, 191, 54, 46, 3, 56, 3, - 66, 3, 75, 3, 119, 3, 191, 6, 123, 3, 88, 3, 86, 3, 84, 3, 83, 6, 84, 3, - 87, 3, 92, 3, 98, 3, 104, 3, 112, 3, 120, 3, 128, 3, 136, 3, 143, 3, 149, 3, - 155, 3, 158, 6, 156, 3, 151, 3, 143, 3, 191, 57, 52, 3, 65, 3, 78, 3, 90, 3, - 100, 3, 106, 3, 108, 3, 191, 54, 92, 3, 53, 3, 63, 3, 73, 3, 80, 3, 191, 36, - 158, 3, 66, 3, 58, 3, 65, 3, 75, 3, 86, 3, 98, 3, 109, 3, 121, 3, 132, 3, - 143, 3, 152, 3, 159, 3, 165, 3, 170, 3, 174, 3, 176, 3, 179, 9, 176, 3, 173, 3, - 167, 3, 159, 3, 148, 3, 191, 54, 142, 3, 60, 3, 76, 3, 92, 3, 109, 3, 125, 3, - 140, 3, 152, 3, 161, 3, 169, 3, 174, 3, 177, 3, 179, 6, 177, 3, 175, 3, 172, 3, - 168, 3, 182, 3, 191, 57, 169, 3, 128, 3, 130, 3, 131, 3, 129, 3, 125, 3, 167, 3, - 191, 54, 43, 3, 53, 3, 62, 3, 70, 3, 89, 3, 178, 3, 191, 21, 117, 3, 89, 3, - 98, 3, 110, 3, 121, 3, 133, 3, 143, 3, 150, 3, 154, 3, 155, 3, 152, 3, 145, 3, - 172, 3, 191, 51, 140, 3, 48, 3, 57, 3, 65, 3, 71, 3, 152, 3, 191, 51, 97, 3, - 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, 145, 3, 157, 3, 167, 3, 175, 3, 181, 3, - 185, 3, 187, 3, 189, 3, 190, 3, 191, 75, 190, 30, 66, 1, 54, 2, 26, 1, 10, 2, - 47, 1, 10, 2, 85, 1, 14, 2, 74, 1, 7, 2, 108, 1, 48, 1, 3, 1, 170, 1, - 106, 1, 2, 1, 177, 1, 98, 1, 4, 1, 184, 1, 89, 1, 7, 1, 183, 1, 75, 1, - 4, 1, 108, 1, 48, 1, 41, 1, 29, 2, 88, 1, 30, 2, 90, 1, 30, 2, 92, 1, - 30, 2, 93, 1, 31, 2, 94, 1, 14, 2, 42, 1, 30, 2, 91, 1, 33, 2, 100, 1, - 34, 2, 101, 1, 34, 2, 102, 1, 19, 2, 59, 1, 32, 2, 96, 1, 36, 2, 107, 1, - 36, 2, 108, 1, 36, 2, 110, 1, 37, 2, 111, 1, 37, 2, 112, 1, 38, 2, 114, 1, - 38, 2, 115, 1, 38, 2, 115, 1, 39, 2, 116, 1, 39, 2, 117, 1, 39, 2, 118, 1, - 39, 2, 119, 1, 45, 1, 39, 1, 117, 1, 172, 1, 35, 1, 65, 1, 250, 1, 21, 2, - 158, 1, 10, 2, 80, 1, 9, 2, 80, 1, 10, 2, 79, 1, 10, 2, 86, 1, 14, 2, - 74, 1, 7, 2, 68, 1, 4, 2, 71, 1, 5, 2, 79, 1, 10, 2, 88, 1, 17, 2, - 80, 1, 12, 2, 71, 1, 6, 2, 72, 1, 6, 2, 71, 1, 5, 2, 75, 1, 9, 2, - 81, 1, 11, 2, 73, 1, 9, 2, 42, 1, 7, 2, 32, 1, 3, 2, 41, 1, 7, 2, - 44, 1, 8, 2, 45, 1, 9, 2, 45, 1, 9, 2, 48, 1, 12, 2, 45, 1, 10, 2, - 37, 1, 5, 2, 36, 1, 4, 2, 39, 1, 7, 2, 156, 1, 148, 2, 190, 9, 191, 51, - 190, 3, 189, 3, 188, 3, 186, 3, 184, 3, 181, 6, 184, 3, 166, 3, 160, 3, 152, 3, - 144, 3, 135, 3, 125, 3, 115, 3, 104, 3, 158, 3, 191, 66, 119, 3, 95, 3, 106, 3, - 115, 3, 122, 3, 126, 3, 127, 3, 124, 3, 191, 63, 97, 3, 65, 3, 81, 3, 98, 3, - 115, 3, 131, 3, 145, 3, 157, 3, 167, 3, 174, 3, 180, 3, 184, 3, 186, 3, 188, 9, - 187, 3, 186, 3, 185, 3, 182, 3, 179, 3, 175, 3, 169, 3, 161, 3, 151, 3, 173, 3, - 191, 54, 46, 3, 56, 3, 67, 3, 76, 3, 119, 3, 191, 9, 113, 3, 90, 3, 89, 6, - 91, 3, 93, 3, 98, 3, 103, 3, 109, 3, 116, 3, 124, 3, 131, 3, 139, 3, 146, 3, - 152, 3, 158, 3, 161, 3, 164, 3, 163, 3, 160, 3, 154, 3, 145, 3, 191, 57, 52, 3, - 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 93, 3, 54, 3, 65, 3, - 74, 3, 82, 3, 191, 27, 175, 3, 129, 3, 85, 3, 59, 3, 64, 3, 70, 3, 78, 3, - 88, 3, 98, 3, 109, 3, 120, 3, 131, 3, 141, 3, 150, 3, 158, 3, 165, 3, 170, 3, - 175, 3, 178, 3, 180, 3, 182, 6, 181, 3, 179, 3, 174, 3, 168, 3, 160, 3, 149, 3, - 191, 54, 142, 3, 60, 3, 76, 3, 92, 3, 109, 3, 125, 3, 140, 3, 152, 3, 162, 3, - 170, 3, 176, 3, 179, 3, 180, 6, 179, 3, 176, 3, 172, 3, 167, 3, 181, 3, 191, 57, - 165, 3, 116, 3, 120, 3, 122, 6, 120, 3, 165, 3, 191, 54, 43, 3, 53, 3, 62, 3, - 71, 3, 77, 3, 93, 3, 178, 3, 191, 18, 119, 3, 90, 3, 100, 3, 111, 3, 122, 3, - 134, 3, 144, 3, 151, 3, 155, 3, 156, 3, 153, 3, 146, 3, 172, 3, 191, 51, 140, 3, - 48, 3, 57, 3, 65, 3, 71, 3, 152, 3, 191, 51, 97, 3, 65, 3, 81, 3, 98, 3, - 115, 3, 131, 3, 145, 3, 157, 3, 167, 3, 175, 3, 181, 3, 185, 3, 187, 3, 189, 3, - 190, 3, 191, 75, 190, 30, 125, 1, 119, 2, 24, 1, 8, 2, 25, 1, 8, 2, 65, 1, - 5, 2, 92, 1, 29, 1, 8, 1, 168, 1, 106, 1, 3, 1, 177, 1, 101, 1, 4, 1, - 186, 1, 96, 1, 10, 1, 186, 1, 81, 1, 7, 1, 157, 1, 61, 1, 15, 1, 33, 1, - 29, 1, 83, 1, 29, 2, 87, 1, 29, 2, 89, 1, 30, 2, 91, 1, 30, 2, 92, 1, - 18, 2, 55, 1, 22, 2, 68, 1, 32, 2, 97, 1, 32, 2, 99, 1, 33, 2, 100, 1, - 19, 2, 59, 1, 28, 2, 84, 1, 35, 2, 105, 1, 35, 2, 106, 1, 36, 2, 107, 1, - 36, 2, 108, 1, 32, 2, 96, 1, 37, 2, 111, 1, 37, 2, 112, 1, 38, 2, 113, 1, - 38, 2, 114, 1, 38, 2, 115, 1, 38, 2, 115, 1, 39, 2, 116, 1, 52, 1, 39, 1, - 112, 1, 195, 1, 40, 1, 61, 1, 239, 1, 30, 2, 125, 1, 12, 2, 73, 1, 6, 2, - 76, 1, 8, 2, 76, 1, 8, 2, 76, 1, 9, 2, 68, 1, 5, 2, 74, 1, 8, 2, - 75, 1, 7, 2, 80, 1, 11, 2, 94, 1, 24, 2, 91, 1, 21, 2, 77, 1, 8, 2, - 72, 1, 6, 2, 73, 1, 7, 2, 74, 1, 7, 2, 74, 1, 7, 2, 69, 1, 5, 2, - 73, 1, 6, 2, 52, 1, 8, 2, 41, 1, 8, 2, 41, 1, 7, 2, 40, 1, 7, 2, - 41, 1, 7, 2, 45, 1, 9, 2, 35, 1, 4, 2, 38, 1, 7, 2, 39, 1, 7, 2, - 44, 1, 9, 2, 98, 1, 75, 2, 190, 12, 191, 51, 190, 3, 189, 3, 188, 3, 185, 3, - 183, 3, 180, 3, 181, 3, 191, 3, 179, 3, 159, 3, 152, 3, 146, 3, 137, 3, 129, 3, - 120, 3, 110, 3, 109, 3, 179, 3, 191, 66, 97, 3, 98, 3, 107, 3, 116, 3, 120, 3, - 122, 3, 120, 3, 191, 63, 97, 3, 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, 145, 3, - 157, 3, 167, 3, 174, 3, 180, 3, 184, 3, 186, 3, 187, 3, 188, 3, 187, 3, 186, 3, - 185, 3, 184, 3, 182, 3, 178, 3, 174, 3, 168, 3, 160, 3, 150, 3, 173, 3, 191, 54, - 46, 3, 56, 3, 67, 3, 76, 3, 119, 3, 191, 9, 179, 3, 103, 3, 93, 3, 95, 3, - 97, 3, 101, 3, 106, 3, 112, 3, 119, 3, 126, 3, 134, 3, 141, 3, 149, 3, 155, 3, - 161, 3, 164, 3, 167, 3, 168, 3, 167, 3, 163, 3, 156, 3, 146, 3, 191, 57, 52, 3, - 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 93, 3, 55, 3, 66, 3, - 76, 3, 85, 3, 123, 3, 125, 6, 124, 3, 121, 3, 118, 3, 115, 3, 111, 3, 82, 3, - 67, 6, 68, 3, 72, 3, 77, 3, 84, 3, 92, 3, 101, 3, 110, 3, 121, 3, 131, 3, - 140, 3, 150, 3, 158, 3, 165, 3, 170, 3, 175, 3, 179, 3, 181, 3, 183, 3, 184, 6, - 182, 3, 179, 3, 175, 3, 169, 3, 160, 3, 149, 3, 191, 54, 142, 3, 60, 3, 76, 3, - 92, 3, 110, 3, 125, 3, 140, 3, 152, 3, 163, 3, 170, 3, 176, 3, 179, 3, 181, 6, - 179, 3, 176, 3, 171, 3, 165, 3, 180, 3, 191, 57, 161, 3, 106, 3, 110, 3, 114, 3, - 116, 3, 115, 3, 164, 3, 191, 54, 44, 3, 54, 3, 64, 3, 73, 3, 80, 3, 85, 3, - 98, 3, 156, 3, 191, 15, 121, 3, 93, 3, 103, 3, 113, 3, 125, 3, 136, 3, 146, 3, - 152, 3, 156, 3, 157, 3, 154, 3, 146, 3, 173, 3, 191, 51, 140, 3, 48, 3, 57, 3, - 65, 3, 71, 3, 152, 3, 191, 51, 97, 3, 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, - 145, 3, 157, 3, 167, 3, 175, 3, 181, 3, 185, 3, 187, 3, 189, 3, 190, 3, 191, 75, - 190, 30, 182, 3, 32, 1, 19, 2, 22, 1, 8, 2, 45, 1, 8, 1, 2, 1, 150, 1, - 92, 1, 1, 1, 173, 1, 102, 1, 3, 1, 174, 1, 91, 1, 2, 1, 176, 1, 78, 1, - 1, 1, 177, 1, 67, 1, 2, 1, 63, 1, 36, 1, 63, 1, 28, 2, 85, 1, 28, 2, - 86, 1, 29, 2, 88, 1, 30, 2, 90, 1, 24, 2, 73, 1, 13, 2, 42, 1, 31, 2, - 94, 1, 32, 2, 96, 1, 32, 2, 98, 1, 20, 2, 62, 1, 23, 2, 69, 1, 34, 2, - 102, 1, 34, 2, 103, 1, 35, 2, 105, 1, 35, 2, 105, 1, 27, 2, 82, 1, 36, 2, - 107, 1, 36, 2, 109, 1, 37, 2, 110, 1, 37, 2, 111, 1, 37, 2, 112, 1, 38, 2, - 113, 1, 38, 2, 114, 1, 68, 1, 37, 1, 102, 1, 217, 1, 38, 1, 50, 1, 214, 1, - 32, 2, 94, 1, 9, 2, 72, 1, 6, 2, 71, 1, 6, 2, 77, 1, 8, 2, 73, 1, - 7, 2, 74, 1, 8, 2, 62, 1, 3, 2, 66, 1, 4, 2, 74, 1, 8, 2, 71, 1, - 6, 2, 67, 1, 4, 2, 66, 1, 4, 2, 73, 1, 6, 2, 71, 1, 6, 2, 72, 1, - 6, 2, 64, 1, 3, 2, 78, 1, 9, 2, 73, 1, 7, 2, 73, 1, 7, 2, 62, 1, - 6, 2, 38, 1, 6, 2, 38, 1, 5, 2, 38, 1, 6, 2, 42, 1, 7, 2, 40, 1, - 7, 2, 35, 1, 5, 2, 29, 1, 2, 2, 37, 1, 5, 2, 47, 1, 15, 2, 174, 1, - 171, 2, 190, 12, 191, 48, 190, 3, 189, 3, 188, 3, 187, 3, 185, 3, 182, 3, 179, 6, - 191, 6, 169, 3, 152, 3, 145, 3, 138, 3, 131, 3, 123, 3, 115, 3, 106, 6, 191, 66, - 178, 3, 100, 6, 108, 3, 114, 3, 117, 3, 116, 3, 164, 3, 191, 60, 97, 3, 65, 3, - 81, 3, 98, 3, 115, 3, 131, 3, 145, 3, 157, 3, 167, 3, 174, 3, 179, 3, 183, 3, - 185, 3, 186, 6, 185, 6, 183, 3, 182, 3, 179, 3, 176, 3, 172, 3, 166, 3, 158, 3, - 149, 3, 173, 3, 191, 54, 46, 3, 56, 3, 67, 3, 76, 3, 119, 3, 191, 12, 180, 3, - 95, 3, 98, 3, 101, 3, 105, 3, 111, 3, 119, 3, 126, 3, 134, 3, 142, 3, 149, 3, - 156, 3, 161, 3, 167, 3, 170, 3, 172, 6, 170, 3, 164, 3, 158, 3, 147, 3, 191, 57, - 52, 3, 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 93, 3, 56, 3, - 68, 3, 79, 3, 88, 3, 95, 3, 99, 3, 101, 3, 99, 3, 97, 3, 92, 3, 89, 3, - 85, 3, 83, 3, 81, 6, 83, 3, 87, 3, 92, 3, 98, 3, 106, 3, 114, 3, 123, 3, - 132, 3, 141, 3, 150, 3, 158, 3, 165, 3, 170, 3, 176, 3, 179, 3, 182, 3, 184, 3, - 185, 9, 183, 3, 181, 3, 176, 3, 170, 3, 161, 3, 149, 3, 191, 54, 142, 3, 60, 3, - 76, 3, 92, 3, 110, 3, 125, 3, 140, 3, 153, 3, 163, 3, 171, 3, 176, 3, 180, 3, - 182, 6, 179, 3, 176, 3, 170, 3, 164, 3, 179, 3, 191, 57, 157, 3, 96, 3, 102, 3, - 107, 3, 110, 6, 163, 3, 191, 54, 45, 3, 56, 3, 66, 3, 76, 3, 83, 3, 89, 3, - 92, 6, 158, 3, 191, 12, 125, 3, 98, 3, 107, 3, 117, 3, 128, 3, 138, 3, 147, 3, - 154, 3, 158, 6, 155, 3, 147, 3, 173, 3, 191, 51, 140, 3, 48, 3, 57, 3, 65, 3, - 71, 3, 152, 3, 191, 51, 97, 3, 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, 145, 3, - 157, 3, 167, 3, 175, 3, 181, 3, 185, 3, 187, 3, 189, 3, 190, 3, 191, 75, 190, 30, - 191, 1, 190, 2, 89, 1, 82, 1, 81, 1, 16, 1, 4, 2, 97, 1, 69, 1, 1, 1, - 168, 1, 103, 1, 1, 1, 177, 1, 95, 1, 3, 1, 181, 1, 84, 1, 4, 1, 182, 1, - 71, 1, 2, 1, 119, 1, 49, 1, 32, 1, 27, 2, 82, 1, 28, 2, 84, 1, 28, 2, - 85, 1, 28, 2, 87, 1, 27, 2, 83, 1, 9, 2, 27, 1, 29, 2, 88, 1, 31, 2, - 93, 1, 31, 2, 95, 1, 22, 2, 67, 1, 18, 2, 54, 1, 33, 2, 99, 1, 33, 2, - 101, 1, 34, 2, 102, 1, 34, 2, 103, 1, 24, 2, 72, 1, 34, 2, 102, 1, 36, 2, - 107, 1, 36, 2, 108, 1, 36, 2, 109, 1, 36, 2, 110, 1, 37, 2, 111, 1, 37, 2, - 111, 1, 90, 1, 30, 1, 86, 1, 234, 1, 18, 1, 24, 1, 185, 1, 20, 2, 78, 1, - 7, 2, 72, 1, 6, 2, 75, 1, 7, 2, 72, 1, 7, 2, 71, 1, 6, 2, 64, 1, - 3, 2, 66, 1, 4, 2, 64, 1, 3, 2, 65, 1, 3, 2, 78, 1, 9, 2, 79, 1, - 10, 2, 75, 1, 7, 2, 69, 1, 5, 2, 83, 1, 16, 2, 99, 1, 25, 2, 87, 1, - 16, 2, 67, 1, 5, 2, 72, 1, 6, 2, 78, 1, 9, 2, 74, 1, 7, 2, 71, 1, - 6, 2, 42, 1, 6, 2, 42, 1, 8, 2, 37, 1, 5, 2, 34, 1, 4, 2, 32, 1, - 3, 2, 33, 1, 4, 2, 30, 1, 2, 2, 39, 1, 7, 2, 118, 1, 101, 2, 190, 15, - 191, 48, 190, 3, 189, 3, 188, 3, 186, 3, 184, 3, 181, 3, 176, 3, 178, 3, 191, 9, - 153, 3, 143, 3, 137, 3, 131, 3, 125, 3, 118, 3, 110, 3, 102, 3, 125, 3, 191, 66, - 141, 3, 92, 3, 101, 3, 108, 3, 112, 6, 154, 3, 191, 60, 97, 3, 65, 3, 81, 3, - 98, 3, 115, 3, 131, 3, 145, 3, 157, 3, 167, 3, 174, 3, 179, 3, 182, 3, 184, 3, - 185, 6, 183, 3, 182, 3, 180, 3, 183, 3, 176, 3, 173, 3, 169, 3, 164, 3, 156, 3, - 147, 3, 172, 3, 191, 54, 46, 3, 56, 3, 67, 3, 76, 3, 119, 3, 191, 15, 159, 3, - 98, 3, 102, 3, 107, 3, 114, 3, 122, 3, 131, 3, 139, 3, 147, 3, 155, 3, 161, 3, - 167, 3, 170, 3, 173, 3, 175, 3, 174, 3, 172, 3, 166, 3, 158, 3, 148, 3, 191, 57, - 52, 3, 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 93, 3, 57, 3, - 69, 3, 81, 3, 91, 3, 99, 3, 104, 3, 107, 3, 108, 3, 107, 3, 104, 3, 101, 3, - 98, 3, 97, 3, 96, 3, 97, 3, 99, 3, 102, 3, 107, 3, 113, 3, 120, 3, 128, 3, - 135, 3, 143, 3, 151, 3, 158, 3, 165, 3, 170, 3, 176, 3, 179, 3, 182, 3, 185, 3, - 186, 3, 187, 6, 186, 3, 185, 3, 181, 3, 176, 3, 170, 3, 161, 3, 149, 3, 191, 54, - 142, 3, 60, 3, 76, 3, 92, 3, 110, 3, 125, 3, 140, 3, 153, 3, 164, 3, 171, 3, - 177, 3, 181, 3, 182, 6, 179, 3, 176, 3, 170, 3, 162, 3, 178, 3, 191, 57, 154, 3, - 88, 3, 95, 3, 101, 3, 104, 3, 106, 3, 162, 3, 191, 54, 46, 3, 57, 3, 68, 3, - 79, 3, 88, 3, 94, 3, 98, 3, 99, 6, 160, 3, 191, 9, 129, 3, 105, 3, 113, 3, - 122, 3, 131, 3, 141, 3, 149, 3, 155, 3, 159, 6, 155, 3, 148, 3, 173, 3, 191, 51, - 140, 3, 48, 3, 57, 3, 65, 3, 71, 3, 152, 3, 191, 51, 97, 3, 65, 3, 82, 3, - 98, 3, 115, 3, 131, 3, 145, 3, 157, 3, 167, 3, 175, 3, 181, 3, 185, 3, 187, 3, - 189, 3, 190, 3, 191, 75, 190, 30, 191, 1, 190, 1, 187, 1, 164, 1, 158, 1, 143, 1, - 60, 1, 42, 1, 3, 1, 143, 1, 105, 1, 0, 1, 166, 1, 96, 1, 1, 1, 178, 1, - 86, 1, 2, 1, 182, 1, 75, 1, 3, 1, 175, 1, 65, 1, 9, 1, 39, 1, 29, 1, - 73, 1, 27, 2, 81, 1, 27, 2, 83, 1, 28, 2, 84, 1, 28, 2, 86, 1, 11, 2, - 33, 1, 24, 2, 72, 1, 30, 2, 91, 1, 30, 2, 92, 1, 24, 2, 72, 1, 13, 2, - 40, 1, 32, 2, 96, 1, 32, 2, 98, 1, 33, 2, 99, 1, 33, 2, 100, 1, 22, 2, - 65, 1, 32, 2, 97, 1, 34, 2, 104, 1, 35, 2, 105, 1, 35, 2, 106, 1, 36, 2, - 107, 1, 36, 2, 108, 1, 37, 1, 36, 1, 109, 1, 122, 1, 26, 1, 66, 1, 242, 1, - 7, 1, 4, 1, 148, 1, 9, 1, 8, 1, 75, 1, 7, 2, 75, 1, 8, 2, 77, 1, - 9, 2, 64, 1, 4, 2, 85, 1, 14, 2, 78, 1, 11, 2, 62, 1, 2, 2, 63, 1, - 3, 2, 63, 1, 2, 2, 68, 1, 5, 2, 75, 1, 8, 2, 78, 1, 9, 2, 84, 1, - 13, 2, 82, 1, 12, 2, 83, 1, 12, 2, 78, 1, 10, 2, 80, 1, 10, 2, 75, 1, - 8, 2, 75, 1, 7, 2, 76, 1, 8, 2, 73, 1, 7, 2, 78, 1, 10, 2, 53, 1, - 5, 2, 41, 1, 8, 2, 51, 1, 14, 2, 34, 1, 5, 2, 30, 1, 2, 2, 30, 1, - 2, 2, 32, 1, 3, 2, 56, 1, 29, 2, 184, 1, 183, 2, 190, 15, 191, 48, 190, 3, - 189, 3, 188, 3, 185, 3, 182, 3, 179, 3, 175, 3, 177, 3, 191, 9, 185, 3, 145, 3, - 134, 3, 129, 3, 125, 3, 119, 3, 113, 3, 107, 3, 98, 3, 157, 3, 191, 66, 94, 3, - 93, 3, 101, 3, 106, 3, 108, 3, 134, 3, 191, 60, 97, 3, 65, 3, 81, 3, 98, 3, - 115, 3, 131, 3, 145, 3, 157, 3, 166, 3, 173, 3, 178, 3, 181, 3, 182, 9, 180, 3, - 179, 3, 181, 3, 185, 3, 172, 3, 169, 3, 165, 3, 161, 3, 153, 3, 145, 3, 172, 3, - 191, 54, 46, 3, 56, 3, 66, 3, 76, 3, 119, 3, 191, 18, 138, 3, 101, 3, 107, 3, - 115, 3, 123, 3, 132, 3, 141, 3, 149, 3, 157, 3, 164, 3, 169, 3, 173, 3, 176, 3, - 177, 3, 176, 3, 173, 3, 167, 3, 159, 3, 149, 3, 191, 57, 52, 3, 65, 3, 78, 3, - 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 94, 3, 59, 3, 71, 3, 83, 3, 95, 3, - 104, 3, 111, 3, 116, 3, 117, 6, 116, 3, 114, 3, 113, 3, 112, 3, 111, 3, 113, 3, - 115, 3, 118, 3, 122, 3, 128, 3, 134, 3, 140, 3, 147, 3, 153, 3, 160, 3, 166, 3, - 171, 3, 176, 3, 179, 3, 182, 3, 185, 3, 187, 3, 188, 9, 187, 3, 185, 3, 182, 3, - 176, 3, 170, 3, 161, 3, 149, 3, 191, 54, 142, 3, 60, 3, 76, 3, 92, 3, 110, 3, - 125, 3, 140, 3, 153, 3, 164, 3, 172, 3, 177, 3, 181, 3, 182, 6, 179, 3, 175, 3, - 169, 3, 161, 3, 177, 3, 191, 57, 152, 3, 82, 3, 89, 3, 96, 3, 101, 3, 103, 3, - 161, 3, 191, 54, 47, 3, 59, 3, 71, 3, 83, 3, 92, 3, 100, 3, 105, 3, 107, 9, - 133, 3, 191, 6, 135, 3, 113, 3, 119, 3, 128, 3, 137, 3, 145, 3, 152, 3, 158, 3, - 161, 3, 160, 3, 156, 3, 149, 3, 173, 3, 191, 51, 140, 3, 48, 3, 57, 3, 65, 3, - 71, 3, 152, 3, 191, 51, 97, 3, 65, 3, 82, 3, 98, 3, 115, 3, 131, 3, 145, 3, - 158, 3, 167, 3, 175, 3, 181, 3, 185, 3, 187, 3, 189, 3, 190, 3, 191, 75, 190, 27, - 191, 1, 190, 1, 189, 1, 193, 1, 191, 1, 178, 1, 207, 1, 193, 1, 135, 1, 160, 1, - 124, 1, 13, 1, 146, 1, 98, 1, 0, 1, 158, 1, 87, 1, 1, 1, 180, 1, 78, 1, - 3, 1, 185, 1, 69, 1, 3, 1, 99, 1, 43, 1, 41, 1, 26, 2, 79, 1, 27, 2, - 80, 1, 27, 2, 82, 1, 27, 2, 83, 1, 17, 2, 52, 1, 16, 2, 48, 1, 29, 2, - 88, 1, 29, 2, 90, 1, 25, 2, 77, 1, 10, 2, 31, 1, 30, 2, 91, 1, 31, 2, - 95, 1, 32, 2, 96, 1, 32, 2, 97, 1, 19, 2, 59, 1, 30, 2, 90, 1, 34, 2, - 101, 1, 34, 2, 103, 1, 34, 2, 103, 1, 35, 2, 105, 1, 35, 2, 105, 1, 40, 1, - 35, 1, 104, 1, 160, 1, 30, 1, 45, 1, 237, 1, 19, 1, 3, 1, 131, 1, 21, 1, - 18, 1, 75, 1, 8, 2, 80, 1, 11, 2, 75, 1, 8, 2, 74, 1, 7, 2, 75, 1, - 7, 2, 75, 1, 8, 2, 66, 1, 4, 2, 63, 1, 3, 2, 63, 1, 2, 2, 63, 1, - 2, 2, 66, 1, 4, 2, 72, 1, 8, 2, 81, 1, 11, 2, 75, 1, 7, 2, 77, 1, - 8, 2, 72, 1, 6, 2, 73, 1, 7, 2, 78, 1, 10, 2, 91, 1, 20, 2, 82, 1, - 13, 2, 77, 1, 9, 2, 79, 1, 10, 2, 73, 1, 7, 2, 73, 1, 8, 2, 43, 1, - 7, 2, 37, 1, 5, 2, 31, 1, 3, 2, 30, 1, 2, 2, 29, 1, 2, 2, 33, 1, - 3, 2, 134, 1, 124, 2, 190, 18, 191, 48, 190, 3, 188, 3, 187, 3, 185, 3, 182, 3, - 177, 3, 172, 3, 175, 3, 191, 12, 172, 3, 130, 3, 126, 3, 122, 3, 119, 3, 115, 3, - 110, 3, 103, 3, 95, 3, 179, 3, 191, 63, 126, 3, 86, 3, 95, 3, 101, 3, 104, 3, - 112, 3, 191, 60, 97, 3, 65, 3, 81, 3, 98, 3, 115, 3, 131, 3, 144, 3, 156, 3, - 165, 3, 173, 3, 177, 3, 179, 3, 180, 6, 179, 3, 176, 3, 179, 3, 191, 3, 184, 3, - 167, 3, 164, 3, 161, 3, 156, 3, 150, 3, 142, 3, 171, 3, 191, 54, 45, 3, 56, 3, - 66, 3, 75, 3, 118, 3, 191, 21, 129, 3, 104, 3, 112, 3, 121, 3, 131, 3, 140, 3, - 149, 3, 157, 3, 164, 3, 170, 3, 174, 3, 177, 3, 178, 3, 177, 3, 173, 3, 167, 3, - 159, 3, 149, 3, 191, 57, 52, 3, 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, - 191, 54, 95, 3, 59, 3, 73, 3, 86, 3, 98, 3, 109, 3, 117, 3, 123, 3, 126, 3, - 128, 9, 127, 3, 126, 6, 128, 3, 129, 3, 132, 3, 137, 3, 141, 3, 146, 3, 152, 3, - 157, 3, 162, 3, 167, 3, 173, 3, 176, 3, 180, 3, 183, 3, 185, 3, 187, 3, 188, 6, - 189, 3, 188, 6, 185, 3, 182, 3, 177, 3, 170, 3, 161, 3, 149, 3, 191, 54, 142, 3, - 60, 3, 76, 3, 92, 3, 110, 3, 125, 3, 140, 3, 153, 3, 164, 3, 172, 3, 177, 3, - 181, 3, 182, 6, 179, 3, 175, 3, 169, 3, 161, 3, 177, 3, 191, 57, 150, 3, 79, 3, - 86, 3, 94, 3, 98, 3, 101, 3, 160, 3, 191, 54, 49, 3, 62, 3, 74, 3, 86, 3, - 98, 3, 106, 3, 112, 3, 116, 3, 117, 3, 116, 6, 140, 3, 191, 3, 141, 3, 122, 3, - 127, 3, 134, 3, 142, 3, 149, 3, 155, 3, 160, 3, 162, 3, 161, 3, 157, 3, 149, 3, - 173, 3, 191, 51, 140, 3, 48, 3, 57, 3, 65, 3, 71, 3, 152, 3, 191, 51, 97, 3, - 65, 3, 82, 3, 98, 3, 116, 3, 131, 3, 146, 3, 158, 3, 167, 3, 175, 3, 181, 3, - 185, 3, 187, 3, 189, 3, 190, 3, 191, 75, 190, 24, 191, 1, 190, 2, 191, 2, 183, 1, - 201, 1, 192, 1, 155, 1, 232, 1, 193, 1, 62, 1, 209, 1, 150, 1, 14, 1, 151, 1, - 91, 1, 1, 1, 155, 1, 79, 1, 0, 1, 181, 1, 70, 1, 3, 1, 176, 1, 62, 1, - 4, 1, 36, 1, 28, 1, 70, 1, 25, 2, 78, 1, 26, 2, 79, 1, 27, 2, 81, 1, - 23, 2, 70, 1, 9, 2, 29, 1, 28, 2, 85, 1, 28, 2, 87, 1, 26, 2, 80, 1, - 8, 2, 26, 1, 28, 2, 84, 1, 30, 2, 92, 1, 31, 2, 94, 1, 31, 2, 95, 1, - 18, 2, 53, 1, 28, 2, 83, 1, 33, 2, 99, 1, 33, 2, 100, 1, 33, 2, 101, 1, - 34, 2, 102, 1, 34, 2, 103, 1, 53, 1, 35, 1, 95, 1, 196, 1, 39, 1, 26, 1, - 211, 1, 26, 1, 1, 1, 99, 1, 14, 1, 12, 1, 74, 1, 8, 2, 65, 1, 3, 2, - 74, 1, 7, 2, 78, 1, 9, 2, 72, 1, 6, 2, 80, 1, 11, 2, 74, 1, 7, 2, - 66, 1, 3, 2, 64, 1, 3, 2, 66, 1, 4, 2, 67, 1, 4, 2, 65, 1, 3, 2, - 76, 1, 10, 2, 72, 1, 6, 2, 73, 1, 6, 2, 74, 1, 7, 2, 77, 1, 10, 2, - 75, 1, 9, 2, 83, 1, 14, 2, 80, 1, 11, 2, 67, 1, 5, 2, 68, 1, 4, 2, - 77, 1, 9, 2, 76, 1, 8, 2, 74, 1, 7, 2, 59, 1, 11, 2, 35, 1, 4, 2, - 31, 1, 3, 2, 32, 1, 3, 2, 33, 1, 3, 2, 69, 1, 46, 2, 189, 3, 190, 18, - 191, 45, 190, 3, 189, 3, 188, 3, 187, 3, 184, 3, 180, 3, 176, 3, 170, 3, 172, 3, - 191, 15, 154, 3, 121, 3, 119, 3, 116, 3, 114, 3, 111, 3, 107, 3, 100, 3, 102, 3, - 191, 63, 150, 3, 80, 3, 89, 3, 95, 3, 100, 3, 101, 3, 191, 60, 97, 3, 65, 3, - 81, 3, 98, 3, 115, 3, 130, 3, 144, 3, 155, 3, 164, 3, 171, 3, 175, 3, 177, 6, - 176, 3, 174, 3, 175, 3, 191, 6, 181, 3, 161, 3, 158, 3, 155, 3, 152, 3, 146, 3, - 138, 3, 170, 3, 191, 54, 45, 3, 56, 3, 65, 3, 74, 3, 117, 3, 191, 24, 109, 3, - 107, 3, 116, 3, 126, 3, 137, 3, 146, 3, 155, 3, 163, 3, 169, 3, 173, 3, 176, 3, - 178, 3, 177, 3, 173, 3, 168, 3, 160, 3, 149, 3, 191, 57, 52, 3, 65, 3, 78, 3, - 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 95, 3, 61, 3, 75, 3, 89, 3, 102, 3, - 113, 3, 123, 3, 130, 3, 135, 3, 137, 3, 139, 3, 140, 12, 141, 3, 143, 3, 146, 3, - 149, 3, 152, 3, 157, 3, 161, 3, 166, 3, 170, 3, 174, 3, 178, 3, 181, 3, 183, 3, - 185, 3, 187, 3, 188, 3, 189, 12, 188, 3, 185, 3, 182, 3, 177, 3, 170, 3, 161, 3, - 149, 3, 191, 54, 142, 3, 60, 3, 76, 3, 92, 3, 110, 3, 125, 3, 140, 3, 153, 3, - 164, 3, 172, 3, 178, 3, 181, 3, 182, 6, 179, 3, 175, 3, 169, 3, 161, 3, 177, 3, - 191, 57, 150, 3, 78, 3, 86, 3, 93, 3, 98, 3, 101, 3, 160, 3, 191, 54, 50, 3, - 64, 3, 77, 3, 90, 3, 102, 3, 112, 3, 119, 3, 124, 3, 126, 3, 127, 3, 126, 6, - 147, 3, 149, 3, 131, 3, 135, 3, 141, 3, 147, 3, 154, 3, 159, 3, 163, 3, 164, 3, - 162, 3, 158, 3, 149, 3, 173, 3, 191, 51, 140, 3, 48, 3, 57, 3, 65, 3, 71, 3, - 152, 3, 191, 51, 97, 3, 66, 3, 82, 3, 99, 3, 116, 3, 131, 3, 146, 3, 158, 3, - 167, 3, 175, 3, 181, 3, 185, 3, 187, 3, 189, 3, 190, 3, 191, 75, 190, 24, 191, 1, - 190, 1, 186, 1, 197, 1, 191, 1, 167, 1, 223, 1, 194, 1, 90, 1, 244, 1, 183, 1, - 26, 1, 247, 1, 159, 1, 7, 1, 161, 1, 86, 1, 0, 1, 165, 1, 76, 1, 6, 1, - 176, 1, 68, 1, 5, 1, 171, 1, 58, 1, 8, 1, 28, 1, 25, 1, 73, 1, 25, 2, - 76, 1, 25, 2, 78, 1, 26, 2, 78, 1, 9, 2, 28, 1, 25, 2, 76, 1, 28, 2, - 84, 1, 27, 2, 82, 1, 8, 2, 26, 1, 25, 2, 77, 1, 30, 2, 90, 1, 30, 2, - 91, 1, 30, 2, 92, 1, 17, 2, 53, 1, 25, 2, 76, 1, 32, 2, 96, 1, 32, 2, - 97, 1, 32, 2, 98, 1, 33, 2, 99, 1, 33, 2, 100, 1, 79, 1, 39, 1, 80, 1, - 226, 1, 52, 1, 11, 1, 184, 1, 32, 1, 3, 1, 76, 1, 7, 1, 6, 1, 61, 1, - 2, 2, 67, 1, 4, 2, 80, 1, 11, 2, 72, 1, 6, 2, 70, 1, 5, 2, 74, 1, - 7, 2, 72, 1, 6, 2, 74, 1, 7, 2, 73, 1, 7, 2, 65, 1, 4, 2, 62, 1, - 2, 2, 61, 1, 2, 2, 81, 1, 15, 2, 86, 1, 16, 2, 74, 1, 7, 2, 73, 1, - 7, 2, 78, 1, 9, 2, 71, 1, 7, 2, 76, 1, 9, 2, 64, 1, 3, 2, 62, 1, - 2, 2, 77, 1, 10, 2, 74, 1, 7, 2, 69, 1, 5, 2, 73, 1, 7, 2, 72, 1, - 6, 2, 67, 1, 7, 2, 39, 1, 6, 2, 37, 1, 5, 2, 30, 1, 2, 2, 30, 1, - 3, 2, 155, 1, 149, 2, 190, 21, 191, 45, 190, 3, 189, 3, 188, 3, 186, 3, 183, 3, - 179, 3, 174, 3, 167, 3, 170, 3, 191, 18, 140, 3, 113, 6, 112, 3, 110, 3, 108, 3, - 104, 3, 98, 3, 134, 3, 191, 60, 176, 3, 74, 3, 83, 3, 91, 3, 96, 3, 98, 3, - 159, 3, 191, 57, 97, 3, 65, 3, 81, 3, 98, 3, 114, 3, 130, 3, 143, 3, 155, 3, - 164, 3, 170, 3, 173, 3, 174, 3, 173, 3, 172, 3, 171, 3, 188, 3, 191, 6, 179, 3, - 154, 3, 152, 3, 149, 3, 146, 3, 141, 3, 135, 3, 169, 3, 191, 54, 45, 3, 56, 3, - 65, 3, 74, 3, 117, 3, 191, 24, 179, 3, 110, 6, 120, 3, 131, 3, 141, 3, 151, 3, - 159, 3, 166, 3, 172, 3, 175, 3, 176, 6, 173, 3, 167, 3, 159, 3, 149, 3, 191, 57, - 52, 3, 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 95, 3, 62, 3, - 77, 3, 91, 3, 105, 3, 118, 3, 128, 3, 137, 3, 143, 3, 146, 3, 149, 3, 150, 3, - 151, 3, 152, 6, 153, 3, 155, 3, 157, 3, 160, 3, 163, 3, 166, 3, 170, 3, 173, 3, - 176, 3, 179, 3, 182, 3, 184, 3, 185, 3, 188, 6, 189, 3, 190, 9, 189, 3, 188, 3, - 185, 3, 182, 3, 177, 3, 170, 3, 161, 3, 149, 3, 191, 54, 142, 3, 60, 3, 76, 3, - 92, 3, 110, 3, 125, 3, 140, 3, 153, 3, 164, 3, 172, 3, 178, 3, 182, 3, 183, 3, - 182, 3, 180, 3, 176, 3, 170, 3, 161, 3, 178, 3, 191, 57, 151, 3, 80, 3, 89, 3, - 95, 3, 100, 3, 102, 3, 161, 3, 191, 54, 51, 3, 65, 3, 80, 3, 93, 3, 106, 3, - 117, 3, 125, 3, 131, 3, 134, 3, 136, 3, 137, 3, 136, 3, 137, 6, 140, 3, 143, 3, - 148, 3, 153, 3, 158, 3, 163, 3, 166, 6, 164, 3, 158, 3, 150, 3, 174, 3, 191, 51, - 140, 3, 48, 3, 57, 3, 65, 3, 71, 3, 152, 3, 191, 51, 97, 3, 66, 3, 83, 3, - 99, 3, 116, 3, 131, 3, 146, 3, 158, 3, 167, 3, 175, 3, 181, 3, 185, 3, 188, 3, - 189, 3, 190, 3, 191, 75, 190, 21, 191, 1, 190, 1, 188, 1, 194, 1, 191, 1, 175, 1, - 213, 1, 193, 1, 120, 1, 241, 1, 188, 1, 35, 1, 249, 1, 167, 1, 11, 1, 252, 1, - 144, 1, 2, 1, 199, 1, 96, 1, 0, 1, 159, 1, 65, 1, 0, 1, 163, 1, 61, 1, - 1, 1, 184, 1, 57, 1, 2, 1, 117, 1, 41, 1, 31, 1, 28, 1, 25, 1, 74, 1, - 25, 2, 77, 1, 15, 2, 46, 1, 21, 2, 62, 1, 27, 2, 81, 1, 27, 2, 82, 1, - 10, 2, 32, 1, 23, 2, 68, 1, 28, 2, 87, 1, 29, 2, 88, 1, 30, 2, 90, 1, - 17, 2, 52, 1, 23, 2, 69, 1, 31, 2, 93, 1, 31, 2, 94, 1, 32, 2, 96, 1, - 32, 2, 97, 1, 33, 1, 32, 1, 98, 1, 88, 1, 34, 1, 61, 1, 234, 1, 58, 1, - 3, 1, 217, 1, 52, 1, 0, 1, 62, 1, 2, 1, 1, 1, 74, 1, 7, 2, 70, 1, - 5, 2, 62, 1, 2, 2, 68, 1, 5, 2, 74, 1, 7, 2, 77, 1, 9, 2, 69, 1, - 5, 2, 67, 1, 4, 2, 67, 1, 4, 2, 62, 1, 2, 2, 64, 1, 3, 2, 63, 1, - 2, 2, 63, 1, 2, 2, 61, 1, 2, 2, 67, 1, 4, 2, 72, 1, 6, 2, 75, 1, - 7, 2, 66, 1, 4, 2, 59, 1, 1, 2, 66, 1, 4, 2, 74, 1, 7, 2, 65, 1, - 4, 2, 63, 1, 3, 2, 70, 1, 5, 2, 77, 1, 9, 2, 74, 1, 7, 2, 65, 1, - 3, 2, 69, 1, 5, 2, 38, 1, 3, 2, 30, 1, 2, 2, 31, 1, 2, 2, 85, 1, - 68, 2, 190, 24, 191, 45, 190, 3, 189, 3, 188, 3, 185, 3, 182, 3, 179, 3, 173, 3, - 166, 3, 169, 3, 191, 18, 181, 3, 116, 3, 107, 3, 108, 6, 107, 3, 105, 3, 101, 3, - 95, 3, 156, 3, 191, 60, 68, 3, 79, 3, 88, 3, 94, 3, 97, 3, 138, 3, 191, 57, - 97, 3, 65, 3, 81, 3, 98, 3, 114, 3, 129, 3, 143, 3, 154, 3, 162, 3, 167, 3, - 170, 6, 169, 3, 168, 3, 187, 3, 191, 9, 176, 3, 146, 3, 144, 3, 142, 3, 140, 3, - 137, 3, 131, 3, 168, 3, 191, 54, 45, 3, 55, 3, 65, 3, 73, 3, 116, 3, 191, 27, - 158, 3, 102, 3, 113, 3, 123, 3, 134, 3, 145, 3, 154, 3, 162, 3, 168, 3, 173, 3, - 175, 3, 174, 3, 172, 3, 167, 3, 159, 3, 148, 3, 191, 57, 52, 3, 65, 3, 78, 3, - 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 96, 3, 62, 3, 77, 3, 93, 3, 107, 3, - 121, 3, 133, 3, 142, 3, 149, 3, 154, 3, 158, 3, 159, 3, 161, 6, 163, 3, 164, 3, - 165, 3, 167, 3, 169, 3, 171, 3, 173, 3, 176, 3, 179, 3, 181, 3, 183, 3, 185, 3, - 186, 3, 188, 6, 189, 3, 190, 12, 189, 3, 188, 3, 185, 3, 182, 3, 177, 3, 170, 3, - 161, 3, 149, 3, 191, 54, 142, 3, 60, 3, 76, 3, 92, 3, 110, 3, 125, 3, 140, 3, - 153, 3, 164, 3, 172, 3, 178, 3, 182, 3, 183, 3, 182, 3, 180, 3, 176, 3, 170, 3, - 163, 3, 178, 3, 191, 57, 153, 3, 85, 3, 92, 3, 98, 3, 103, 3, 104, 3, 161, 3, - 191, 54, 53, 3, 67, 3, 82, 3, 96, 3, 110, 3, 122, 3, 131, 3, 138, 3, 143, 3, - 145, 3, 146, 9, 147, 3, 149, 3, 152, 3, 155, 3, 159, 3, 164, 3, 167, 3, 168, 6, - 165, 3, 160, 3, 152, 3, 174, 3, 191, 51, 140, 3, 48, 3, 57, 3, 65, 3, 71, 3, - 152, 3, 191, 51, 98, 3, 67, 3, 83, 3, 100, 3, 116, 3, 132, 3, 146, 3, 158, 3, - 168, 3, 176, 3, 181, 3, 185, 3, 188, 3, 189, 3, 190, 3, 191, 75, 190, 18, 191, 1, - 190, 2, 192, 1, 191, 1, 181, 1, 204, 1, 192, 1, 145, 1, 236, 1, 191, 1, 50, 1, - 247, 1, 173, 1, 16, 1, 252, 1, 151, 1, 3, 1, 252, 1, 128, 1, 0, 1, 238, 1, - 104, 1, 0, 1, 163, 1, 63, 1, 1, 1, 166, 1, 60, 1, 3, 1, 174, 1, 56, 1, - 3, 1, 172, 1, 53, 1, 1, 1, 145, 1, 48, 1, 16, 1, 66, 1, 33, 1, 55, 1, - 20, 1, 19, 1, 58, 1, 26, 2, 79, 1, 26, 2, 80, 1, 14, 2, 42, 1, 20, 2, - 61, 1, 28, 2, 84, 1, 28, 2, 86, 1, 28, 2, 87, 1, 17, 2, 54, 1, 21, 2, - 63, 1, 30, 2, 91, 1, 30, 2, 92, 1, 30, 2, 93, 1, 31, 2, 94, 1, 35, 1, - 31, 1, 92, 1, 120, 1, 36, 1, 40, 1, 186, 1, 44, 1, 1, 1, 237, 1, 65, 1, - 0, 1, 253, 1, 71, 1, 0, 1, 169, 1, 38, 1, 3, 1, 78, 1, 9, 2, 70, 1, - 5, 2, 72, 1, 7, 2, 74, 1, 7, 2, 72, 1, 6, 2, 71, 1, 6, 2, 68, 1, - 5, 2, 62, 1, 2, 2, 66, 1, 3, 2, 62, 1, 2, 2, 61, 1, 2, 2, 61, 1, - 2, 2, 66, 1, 4, 2, 71, 1, 6, 2, 77, 1, 9, 2, 77, 1, 10, 2, 68, 1, - 5, 2, 78, 1, 9, 2, 82, 1, 11, 2, 77, 1, 9, 2, 75, 1, 8, 2, 71, 1, - 6, 2, 73, 1, 7, 2, 72, 1, 6, 2, 71, 1, 5, 2, 74, 1, 7, 2, 61, 1, - 2, 2, 66, 1, 3, 2, 51, 1, 3, 2, 28, 1, 2, 2, 36, 1, 10, 1, 9, 1, - 172, 1, 167, 1, 162, 1, 190, 24, 191, 45, 190, 3, 189, 3, 188, 3, 185, 3, 182, 3, - 177, 3, 171, 3, 164, 3, 167, 3, 191, 21, 180, 3, 101, 3, 103, 3, 105, 3, 106, 6, - 104, 3, 99, 3, 103, 3, 178, 3, 191, 57, 65, 3, 75, 3, 85, 3, 92, 3, 97, 6, - 191, 57, 97, 3, 65, 3, 81, 3, 98, 3, 113, 3, 128, 3, 142, 3, 152, 3, 160, 3, - 164, 3, 167, 3, 166, 3, 164, 3, 180, 3, 191, 12, 173, 3, 137, 3, 136, 3, 135, 3, - 134, 3, 131, 3, 127, 3, 167, 3, 191, 54, 45, 3, 55, 3, 64, 3, 72, 3, 115, 3, - 191, 30, 158, 3, 104, 3, 115, 3, 126, 3, 137, 3, 147, 3, 156, 3, 163, 3, 168, 3, - 171, 3, 172, 3, 170, 3, 166, 3, 158, 3, 148, 3, 191, 57, 52, 3, 65, 3, 78, 3, - 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 96, 3, 63, 3, 79, 3, 95, 3, 110, 3, - 124, 3, 137, 3, 146, 3, 155, 3, 161, 3, 164, 3, 167, 3, 169, 3, 170, 3, 171, 3, - 172, 3, 173, 3, 174, 3, 176, 3, 178, 3, 179, 3, 181, 3, 182, 3, 185, 6, 187, 3, - 188, 3, 189, 3, 190, 6, 191, 9, 190, 3, 189, 3, 188, 3, 185, 3, 182, 3, 177, 3, - 170, 3, 161, 3, 149, 3, 191, 54, 142, 3, 60, 3, 76, 3, 92, 3, 110, 3, 125, 3, - 140, 3, 153, 3, 164, 3, 172, 3, 178, 3, 182, 3, 183, 6, 181, 3, 177, 3, 172, 3, - 165, 3, 156, 3, 146, 3, 134, 3, 123, 3, 112, 3, 101, 3, 91, 3, 83, 3, 76, 3, - 71, 3, 66, 3, 64, 3, 62, 9, 64, 3, 66, 3, 70, 3, 74, 3, 80, 3, 86, 3, - 93, 3, 99, 3, 104, 3, 107, 3, 108, 3, 162, 3, 191, 54, 53, 3, 68, 3, 83, 3, - 98, 3, 113, 3, 125, 3, 136, 3, 144, 3, 149, 3, 152, 3, 154, 3, 155, 6, 156, 3, - 157, 3, 159, 3, 162, 3, 165, 3, 168, 3, 170, 3, 171, 3, 170, 3, 167, 3, 161, 3, - 152, 3, 168, 3, 191, 51, 140, 3, 48, 3, 57, 3, 65, 3, 72, 3, 152, 3, 191, 51, - 99, 3, 68, 3, 84, 3, 101, 3, 117, 3, 133, 3, 147, 3, 158, 3, 168, 3, 176, 3, - 181, 3, 185, 3, 188, 3, 189, 3, 190, 3, 191, 75, 190, 15, 191, 1, 190, 2, 191, 1, - 190, 1, 185, 1, 199, 1, 191, 1, 162, 1, 228, 1, 194, 1, 73, 1, 245, 1, 180, 1, - 23, 1, 251, 1, 157, 1, 6, 1, 252, 1, 134, 1, 0, 1, 252, 1, 115, 1, 0, 1, - 253, 1, 105, 1, 0, 1, 187, 1, 71, 1, 1, 1, 165, 1, 59, 1, 2, 1, 164, 1, - 58, 1, 1, 1, 172, 1, 58, 1, 2, 1, 176, 1, 60, 1, 4, 1, 173, 1, 58, 1, - 3, 1, 142, 1, 51, 1, 16, 1, 83, 1, 38, 1, 45, 1, 30, 1, 22, 1, 55, 1, - 19, 2, 58, 1, 27, 2, 82, 1, 27, 2, 83, 1, 28, 2, 84, 1, 19, 2, 59, 1, - 19, 2, 59, 1, 29, 2, 88, 1, 29, 2, 89, 1, 30, 2, 90, 1, 30, 2, 91, 1, - 50, 1, 31, 1, 80, 1, 145, 1, 35, 1, 20, 1, 175, 1, 41, 1, 1, 1, 241, 1, - 67, 1, 0, 1, 253, 1, 78, 1, 0, 1, 253, 1, 78, 1, 0, 1, 253, 1, 71, 1, - 0, 1, 141, 1, 29, 1, 3, 1, 66, 1, 3, 2, 67, 1, 4, 2, 74, 1, 7, 2, - 81, 1, 11, 2, 77, 1, 8, 2, 73, 1, 6, 2, 73, 1, 6, 2, 68, 1, 5, 2, - 61, 1, 2, 2, 61, 1, 2, 2, 62, 1, 2, 2, 65, 1, 3, 2, 74, 1, 7, 2, - 75, 1, 7, 2, 72, 1, 6, 2, 75, 1, 9, 2, 84, 1, 14, 2, 78, 1, 9, 2, - 78, 1, 9, 2, 66, 1, 3, 2, 67, 1, 4, 2, 69, 1, 5, 2, 82, 1, 12, 2, - 76, 1, 8, 2, 76, 1, 8, 2, 71, 1, 5, 2, 74, 1, 7, 2, 62, 1, 3, 2, - 30, 1, 2, 2, 113, 1, 94, 1, 71, 1, 193, 1, 191, 1, 177, 1, 191, 1, 190, 1, - 189, 1, 190, 21, 191, 45, 190, 3, 189, 3, 188, 3, 185, 3, 182, 3, 176, 3, 170, 3, - 162, 3, 165, 3, 191, 24, 158, 3, 96, 3, 100, 3, 103, 3, 104, 6, 101, 3, 97, 3, - 123, 3, 191, 57, 62, 3, 73, 3, 83, 3, 92, 3, 97, 3, 98, 3, 148, 3, 191, 54, - 97, 3, 65, 3, 81, 3, 98, 3, 113, 3, 128, 3, 140, 3, 150, 3, 157, 3, 161, 3, - 162, 3, 161, 3, 179, 3, 191, 15, 170, 3, 128, 12, 127, 3, 123, 3, 166, 3, 191, 54, - 45, 3, 55, 3, 65, 3, 72, 3, 115, 3, 191, 33, 125, 3, 104, 3, 116, 3, 128, 3, - 139, 3, 149, 3, 157, 3, 164, 3, 167, 3, 169, 3, 168, 3, 164, 3, 157, 3, 147, 3, - 191, 57, 53, 3, 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 97, 3, - 65, 3, 80, 3, 96, 3, 112, 3, 127, 3, 140, 3, 150, 3, 158, 3, 165, 3, 170, 3, - 173, 3, 175, 3, 176, 3, 177, 3, 179, 6, 180, 3, 181, 3, 182, 3, 183, 3, 185, 3, - 186, 3, 187, 3, 188, 6, 189, 3, 190, 6, 191, 12, 190, 3, 189, 3, 188, 3, 185, 3, - 182, 3, 177, 3, 170, 3, 161, 3, 149, 3, 191, 54, 143, 3, 61, 3, 77, 3, 93, 3, - 110, 3, 126, 3, 140, 3, 153, 3, 164, 3, 172, 3, 178, 3, 182, 3, 184, 6, 182, 3, - 179, 3, 174, 3, 167, 3, 160, 3, 150, 3, 140, 3, 130, 3, 119, 3, 110, 3, 101, 3, - 93, 3, 87, 3, 83, 3, 79, 3, 77, 3, 76, 3, 75, 3, 76, 3, 77, 3, 79, 3, - 82, 3, 86, 3, 91, 3, 96, 3, 102, 3, 107, 3, 112, 3, 113, 6, 164, 3, 191, 54, - 54, 3, 69, 3, 85, 3, 101, 3, 116, 3, 129, 3, 140, 3, 149, 3, 155, 3, 159, 3, - 161, 3, 162, 3, 163, 3, 164, 6, 166, 3, 168, 3, 170, 3, 173, 3, 174, 6, 173, 3, - 169, 3, 163, 3, 154, 3, 159, 3, 191, 51, 140, 3, 48, 3, 57, 3, 65, 3, 72, 3, - 152, 3, 191, 51, 99, 3, 69, 3, 86, 3, 102, 3, 119, 3, 134, 3, 148, 3, 159, 3, - 169, 3, 176, 3, 182, 3, 185, 3, 188, 3, 189, 3, 190, 3, 191, 75, 190, 15, 191, 1, - 190, 1, 188, 1, 195, 1, 191, 1, 172, 1, 218, 1, 194, 1, 103, 1, 242, 1, 186, 1, - 30, 1, 249, 1, 164, 1, 9, 1, 252, 1, 141, 1, 1, 1, 252, 1, 119, 1, 0, 1, - 253, 1, 108, 1, 0, 1, 253, 1, 106, 1, 0, 1, 224, 1, 92, 1, 1, 1, 165, 1, - 64, 1, 3, 1, 164, 1, 63, 1, 3, 1, 167, 1, 63, 1, 3, 1, 170, 1, 64, 1, - 4, 1, 166, 1, 62, 1, 2, 1, 165, 1, 60, 1, 1, 1, 168, 1, 60, 1, 1, 1, - 166, 1, 60, 1, 4, 1, 132, 1, 51, 1, 23, 1, 87, 1, 39, 1, 46, 1, 48, 1, - 31, 1, 70, 1, 23, 2, 71, 1, 20, 2, 61, 1, 28, 2, 85, 1, 28, 2, 86, 1, - 29, 2, 88, 1, 29, 2, 89, 1, 74, 1, 30, 1, 62, 1, 169, 1, 37, 1, 9, 1, - 180, 1, 43, 1, 4, 1, 176, 1, 46, 1, 2, 1, 219, 1, 67, 1, 1, 1, 253, 1, - 85, 1, 0, 1, 253, 1, 86, 1, 0, 1, 253, 1, 79, 1, 0, 1, 248, 1, 70, 1, - 0, 1, 120, 1, 22, 1, 4, 1, 82, 1, 12, 2, 78, 1, 10, 2, 80, 1, 11, 2, - 79, 1, 10, 2, 69, 1, 5, 2, 74, 1, 7, 2, 68, 1, 4, 2, 63, 1, 3, 2, - 62, 1, 2, 2, 61, 1, 2, 2, 67, 1, 4, 2, 87, 1, 16, 2, 80, 1, 11, 2, - 77, 1, 9, 2, 79, 1, 10, 2, 83, 1, 12, 2, 76, 1, 8, 2, 67, 1, 4, 2, - 68, 1, 4, 2, 76, 1, 8, 2, 84, 1, 13, 2, 77, 1, 9, 2, 81, 1, 12, 2, - 73, 1, 7, 2, 70, 1, 5, 2, 72, 1, 6, 2, 65, 1, 3, 2, 65, 1, 19, 1, - 4, 1, 209, 1, 186, 1, 97, 1, 197, 1, 192, 1, 167, 1, 191, 1, 190, 1, 188, 1, - 190, 21, 191, 45, 190, 3, 189, 3, 188, 3, 185, 3, 182, 3, 176, 3, 170, 3, 161, 3, - 164, 3, 191, 27, 134, 3, 94, 3, 98, 3, 101, 3, 103, 6, 100, 3, 95, 3, 144, 3, - 191, 54, 60, 3, 72, 3, 83, 3, 92, 3, 98, 3, 101, 3, 109, 3, 191, 54, 97, 3, - 65, 3, 80, 3, 97, 3, 113, 3, 126, 3, 138, 3, 148, 3, 154, 3, 157, 6, 174, 3, - 191, 18, 167, 3, 119, 6, 121, 3, 122, 6, 119, 3, 165, 3, 191, 54, 45, 3, 55, 3, - 64, 3, 71, 3, 115, 3, 191, 36, 116, 3, 107, 3, 119, 3, 131, 3, 141, 3, 150, 3, - 158, 3, 163, 3, 165, 6, 161, 3, 155, 3, 146, 3, 191, 57, 53, 3, 65, 3, 78, 3, - 90, 3, 100, 3, 106, 3, 108, 3, 191, 54, 97, 3, 65, 3, 80, 3, 97, 3, 113, 3, - 128, 3, 141, 3, 152, 3, 161, 3, 168, 3, 173, 3, 177, 3, 179, 3, 181, 3, 182, 6, - 183, 3, 184, 3, 185, 6, 186, 3, 187, 3, 188, 6, 189, 3, 190, 6, 191, 18, 190, 3, - 189, 3, 188, 3, 185, 3, 182, 3, 177, 3, 170, 3, 161, 3, 149, 3, 191, 54, 143, 3, - 61, 3, 77, 3, 93, 3, 110, 3, 126, 3, 140, 3, 153, 3, 164, 3, 172, 3, 178, 3, - 182, 3, 184, 3, 185, 3, 183, 3, 180, 3, 176, 3, 170, 3, 164, 3, 156, 3, 147, 3, - 138, 3, 129, 3, 121, 3, 113, 3, 107, 3, 101, 3, 97, 3, 94, 3, 92, 3, 91, 9, - 92, 3, 94, 3, 96, 3, 100, 3, 104, 3, 108, 3, 113, 3, 117, 3, 119, 3, 120, 3, - 119, 3, 165, 3, 191, 54, 55, 3, 70, 3, 86, 3, 102, 3, 117, 3, 131, 3, 143, 3, - 152, 3, 159, 3, 164, 3, 167, 3, 169, 3, 170, 6, 171, 3, 172, 3, 173, 3, 175, 3, - 176, 3, 177, 3, 176, 3, 175, 3, 170, 3, 164, 3, 155, 3, 159, 3, 191, 51, 140, 3, - 48, 3, 58, 3, 66, 3, 72, 3, 152, 3, 191, 51, 56, 3, 71, 3, 87, 3, 104, 3, - 120, 3, 135, 3, 149, 3, 160, 3, 170, 3, 176, 3, 182, 3, 185, 3, 188, 3, 189, 3, - 190, 3, 191, 75, 190, 12, 191, 1, 190, 1, 189, 1, 193, 1, 191, 1, 179, 1, 209, 1, - 193, 1, 132, 1, 239, 1, 190, 1, 41, 1, 248, 1, 170, 1, 14, 1, 252, 1, 147, 1, - 2, 1, 252, 1, 126, 1, 0, 1, 252, 1, 116, 1, 0, 1, 253, 1, 115, 1, 0, 1, - 253, 1, 115, 1, 0, 1, 252, 1, 115, 1, 0, 1, 176, 1, 76, 1, 6, 1, 163, 1, - 68, 1, 3, 1, 165, 1, 68, 1, 3, 1, 169, 1, 67, 1, 3, 1, 169, 1, 66, 1, - 2, 1, 169, 1, 65, 1, 1, 1, 172, 1, 67, 1, 3, 1, 169, 1, 65, 1, 1, 1, - 168, 1, 62, 1, 1, 1, 170, 1, 58, 1, 1, 1, 175, 1, 57, 1, 4, 1, 152, 1, - 47, 1, 11, 1, 115, 1, 38, 1, 32, 1, 80, 1, 32, 1, 52, 1, 49, 1, 29, 1, - 72, 1, 35, 1, 28, 1, 82, 1, 109, 1, 30, 1, 38, 1, 175, 1, 35, 1, 1, 1, - 177, 1, 42, 1, 2, 1, 182, 1, 51, 1, 8, 1, 176, 1, 51, 1, 3, 1, 193, 1, - 63, 1, 1, 1, 253, 1, 93, 1, 0, 1, 253, 1, 94, 1, 0, 1, 253, 1, 86, 1, - 0, 1, 253, 1, 79, 1, 0, 1, 242, 1, 68, 1, 0, 1, 92, 1, 13, 1, 5, 1, - 69, 1, 5, 2, 72, 1, 7, 2, 82, 1, 12, 2, 69, 1, 5, 2, 67, 1, 4, 2, - 64, 1, 3, 2, 61, 1, 2, 2, 63, 1, 3, 2, 68, 1, 5, 2, 68, 1, 5, 2, - 86, 1, 18, 2, 87, 1, 18, 2, 78, 1, 9, 2, 79, 1, 10, 2, 79, 1, 10, 2, - 74, 1, 8, 2, 71, 1, 6, 2, 81, 1, 11, 2, 72, 1, 6, 2, 69, 1, 5, 2, - 70, 1, 5, 2, 81, 1, 12, 2, 73, 1, 7, 2, 67, 1, 4, 2, 68, 1, 5, 1, - 3, 1, 122, 1, 52, 1, 1, 1, 214, 1, 149, 1, 10, 1, 231, 1, 195, 1, 66, 1, - 202, 1, 193, 1, 153, 1, 191, 2, 184, 1, 190, 21, 191, 45, 190, 3, 189, 3, 188, 3, - 185, 3, 181, 3, 176, 3, 169, 3, 160, 3, 163, 3, 191, 30, 109, 3, 92, 3, 97, 3, - 101, 3, 102, 3, 101, 3, 98, 3, 92, 3, 178, 3, 191, 51, 59, 3, 72, 3, 83, 3, - 93, 3, 101, 3, 104, 6, 140, 3, 191, 51, 97, 3, 65, 3, 80, 3, 96, 3, 111, 3, - 125, 3, 136, 3, 144, 3, 149, 3, 152, 3, 163, 3, 191, 21, 164, 3, 110, 3, 112, 3, - 114, 3, 116, 3, 118, 3, 116, 3, 165, 3, 191, 54, 45, 3, 55, 3, 64, 3, 71, 3, - 114, 3, 191, 36, 178, 3, 106, 3, 108, 3, 121, 3, 132, 3, 143, 3, 151, 3, 157, 3, - 161, 6, 159, 3, 153, 3, 144, 3, 191, 57, 53, 3, 65, 3, 78, 3, 90, 3, 100, 3, - 106, 3, 108, 3, 191, 54, 97, 3, 65, 3, 81, 3, 98, 3, 114, 3, 129, 3, 143, 3, - 155, 3, 164, 3, 171, 3, 176, 3, 180, 3, 182, 3, 184, 3, 185, 3, 186, 3, 187, 6, - 188, 9, 189, 6, 190, 6, 191, 24, 190, 3, 189, 3, 188, 3, 185, 3, 182, 3, 177, 3, - 170, 3, 161, 3, 149, 3, 191, 54, 143, 3, 61, 3, 77, 3, 93, 3, 110, 3, 126, 3, - 140, 3, 153, 3, 164, 3, 172, 3, 178, 3, 182, 3, 185, 6, 184, 3, 182, 3, 179, 3, - 174, 3, 168, 3, 161, 3, 154, 3, 146, 3, 139, 3, 132, 3, 125, 3, 120, 3, 116, 3, - 112, 3, 110, 3, 108, 3, 107, 9, 108, 3, 110, 3, 111, 3, 114, 3, 117, 3, 121, 3, - 125, 3, 127, 3, 128, 6, 124, 3, 166, 3, 191, 54, 55, 3, 70, 3, 86, 3, 103, 3, - 119, 3, 133, 3, 146, 3, 155, 3, 163, 3, 168, 3, 172, 3, 174, 3, 175, 3, 176, 6, - 177, 3, 178, 3, 179, 3, 180, 6, 179, 3, 176, 3, 173, 3, 166, 3, 157, 3, 150, 3, - 191, 51, 140, 3, 48, 3, 58, 3, 66, 3, 72, 3, 152, 3, 191, 48, 174, 3, 58, 3, - 74, 3, 89, 3, 106, 3, 122, 3, 137, 3, 150, 3, 161, 3, 170, 3, 177, 3, 182, 3, - 185, 3, 188, 3, 189, 3, 190, 3, 191, 75, 190, 9, 191, 1, 190, 2, 191, 2, 184, 1, - 201, 1, 192, 1, 154, 1, 233, 1, 193, 1, 60, 1, 246, 1, 176, 1, 20, 1, 251, 1, - 155, 1, 5, 1, 252, 1, 140, 1, 0, 1, 252, 1, 136, 1, 0, 1, 252, 1, 135, 1, - 0, 1, 253, 1, 135, 1, 0, 1, 253, 1, 134, 1, 0, 1, 253, 1, 133, 1, 0, 1, - 204, 1, 103, 1, 1, 1, 155, 1, 74, 1, 0, 1, 161, 1, 75, 1, 1, 1, 167, 1, - 75, 1, 2, 1, 163, 1, 72, 1, 0, 1, 168, 1, 74, 1, 3, 1, 168, 1, 73, 1, - 2, 1, 166, 1, 72, 1, 1, 1, 171, 1, 70, 1, 3, 1, 171, 1, 64, 1, 3, 1, - 169, 1, 58, 1, 1, 1, 172, 1, 56, 1, 3, 1, 174, 1, 51, 1, 2, 1, 177, 1, - 47, 1, 3, 1, 176, 1, 41, 1, 2, 1, 169, 1, 35, 1, 4, 1, 176, 1, 35, 1, - 1, 1, 175, 1, 40, 1, 1, 1, 177, 1, 46, 1, 3, 1, 178, 1, 53, 1, 4, 1, - 172, 1, 54, 1, 2, 1, 170, 1, 58, 1, 0, 1, 248, 1, 98, 1, 0, 1, 253, 1, - 101, 1, 0, 1, 253, 1, 94, 1, 0, 1, 253, 1, 86, 1, 0, 1, 164, 1, 43, 1, - 2, 1, 75, 1, 7, 2, 86, 1, 15, 2, 66, 1, 4, 2, 75, 1, 8, 2, 77, 1, - 9, 2, 79, 1, 10, 2, 78, 1, 10, 2, 72, 1, 6, 2, 65, 1, 3, 2, 69, 1, - 5, 2, 73, 1, 7, 2, 83, 1, 13, 2, 82, 1, 13, 2, 64, 1, 3, 2, 69, 1, - 5, 2, 77, 1, 9, 2, 64, 1, 3, 2, 75, 1, 8, 2, 78, 1, 9, 2, 70, 1, - 5, 2, 80, 1, 10, 2, 77, 1, 11, 2, 69, 1, 5, 2, 79, 1, 10, 1, 9, 1, - 131, 1, 41, 1, 6, 1, 215, 1, 104, 1, 1, 1, 252, 1, 152, 1, 0, 1, 250, 1, - 174, 1, 6, 1, 240, 1, 193, 1, 36, 1, 208, 1, 193, 1, 134, 1, 193, 1, 191, 1, - 178, 1, 191, 1, 190, 20, 191, 45, 190, 3, 189, 3, 188, 3, 185, 3, 181, 3, 176, 3, - 168, 3, 159, 3, 162, 3, 191, 30, 178, 3, 97, 3, 92, 3, 97, 3, 100, 3, 101, 3, - 100, 3, 96, 3, 112, 3, 191, 48, 143, 3, 61, 3, 73, 3, 86, 3, 96, 3, 104, 3, - 108, 3, 110, 3, 107, 3, 180, 3, 191, 48, 97, 3, 65, 3, 80, 3, 95, 3, 110, 3, - 122, 3, 133, 3, 140, 3, 144, 3, 160, 3, 191, 24, 160, 3, 101, 3, 104, 3, 108, 3, - 112, 3, 114, 3, 113, 3, 164, 3, 191, 54, 45, 3, 55, 3, 64, 3, 71, 3, 114, 3, - 191, 39, 179, 3, 98, 3, 110, 3, 123, 3, 134, 3, 143, 3, 150, 3, 155, 3, 157, 3, - 155, 3, 151, 3, 143, 3, 191, 57, 53, 3, 65, 3, 78, 3, 90, 3, 100, 3, 106, 3, - 108, 3, 191, 54, 97, 3, 65, 3, 81, 3, 98, 3, 114, 3, 130, 3, 144, 3, 155, 3, - 165, 3, 173, 3, 178, 3, 182, 3, 185, 3, 186, 3, 187, 3, 188, 9, 189, 6, 190, 9, - 191, 30, 190, 3, 189, 3, 188, 3, 185, 3, 182, 3, 177, 3, 170, 3, 161, 3, 149, 3, - 191, 54, 143, 3, 61, 3, 77, 3, 93, 3, 110, 3, 126, 3, 140, 3, 153, 3, 164, 3, - 173, 3, 179, 3, 182, 3, 185, 9, 184, 3, 181, 3, 177, 3, 173, 3, 167, 3, 161, 3, - 155, 3, 149, 3, 143, 3, 138, 3, 134, 3, 130, 3, 127, 3, 125, 3, 124, 3, 123, 9, - 124, 3, 125, 3, 127, 3, 128, 3, 131, 3, 134, 3, 136, 3, 137, 6, 134, 3, 130, 3, - 168, 3, 191, 54, 55, 3, 71, 3, 86, 3, 104, 3, 119, 3, 134, 3, 147, 3, 158, 3, - 165, 3, 171, 3, 175, 3, 178, 3, 179, 3, 180, 3, 181, 6, 182, 12, 181, 3, 179, 3, - 174, 3, 168, 3, 159, 3, 149, 3, 178, 3, 191, 48, 140, 3, 49, 3, 58, 3, 66, 3, - 72, 3, 152, 3, 191, 48, 127, 3, 62, 3, 77, 3, 92, 3, 109, 3, 125, 3, 140, 3, - 152, 3, 163, 3, 171, 3, 178, 3, 182, 3, 186, 3, 188, 3, 189, 3, 190, 3, 191, 75, - 190, 9, 191, 1, 190, 1, 188, 1, 195, 1, 191, 1, 172, 1, 223, 1, 195, 1, 89, 1, - 243, 1, 184, 1, 30, 1, 249, 1, 168, 1, 10, 1, 251, 1, 161, 1, 3, 1, 252, 1, - 160, 1, 2, 1, 252, 1, 159, 1, 2, 1, 252, 1, 158, 1, 2, 1, 252, 1, 157, 1, - 2, 1, 252, 1, 157, 1, 1, 1, 252, 1, 156, 1, 1, 1, 239, 1, 146, 1, 2, 1, - 154, 1, 88, 1, 1, 1, 156, 1, 87, 1, 2, 1, 160, 1, 85, 1, 1, 1, 161, 1, - 85, 1, 1, 1, 163, 1, 85, 1, 2, 1, 163, 1, 85, 1, 2, 1, 162, 1, 84, 1, - 2, 1, 161, 1, 78, 1, 1, 1, 164, 1, 68, 1, 1, 1, 169, 1, 63, 1, 2, 1, - 171, 1, 59, 1, 2, 1, 171, 1, 54, 1, 1, 1, 173, 1, 50, 1, 1, 1, 175, 1, - 46, 1, 2, 1, 178, 1, 42, 1, 2, 1, 180, 1, 43, 1, 4, 1, 175, 1, 45, 1, - 1, 1, 176, 1, 52, 1, 4, 1, 173, 1, 56, 1, 4, 1, 168, 1, 60, 1, 3, 1, - 197, 1, 77, 1, 0, 1, 242, 1, 103, 1, 0, 1, 253, 1, 109, 1, 0, 1, 253, 1, - 102, 1, 0, 1, 148, 1, 43, 1, 3, 1, 74, 1, 7, 2, 71, 1, 5, 2, 70, 1, - 5, 2, 72, 1, 6, 2, 74, 1, 7, 2, 72, 1, 6, 2, 71, 1, 6, 2, 70, 1, - 5, 2, 80, 1, 10, 2, 82, 1, 11, 2, 80, 1, 10, 2, 74, 1, 7, 2, 86, 1, - 14, 2, 84, 1, 13, 2, 68, 1, 5, 2, 74, 1, 7, 2, 67, 1, 4, 2, 69, 1, - 4, 2, 74, 1, 7, 2, 74, 1, 7, 2, 72, 1, 6, 2, 69, 1, 5, 2, 70, 1, - 6, 1, 5, 1, 125, 1, 35, 1, 5, 1, 216, 1, 83, 1, 1, 1, 253, 1, 109, 1, - 0, 1, 253, 1, 123, 1, 0, 1, 252, 1, 145, 1, 0, 1, 252, 1, 167, 1, 3, 1, - 246, 1, 189, 1, 20, 1, 218, 1, 194, 1, 103, 1, 196, 1, 192, 1, 168, 1, 191, 1, - 190, 1, 188, 1, 190, 18, 191, 45, 190, 3, 189, 3, 188, 3, 185, 3, 181, 3, 176, 3, - 168, 3, 158, 3, 161, 3, 191, 33, 165, 3, 86, 3, 92, 3, 97, 3, 100, 3, 101, 3, - 98, 3, 94, 3, 144, 3, 191, 45, 112, 3, 62, 3, 76, 3, 88, 3, 99, 3, 108, 3, - 113, 3, 115, 3, 113, 3, 116, 3, 191, 48, 97, 3, 65, 3, 79, 3, 94, 3, 107, 3, - 120, 3, 129, 3, 136, 3, 144, 3, 184, 3, 191, 24, 158, 3, 94, 3, 98, 3, 103, 3, - 107, 3, 110, 3, 111, 3, 163, 3, 191, 54, 46, 3, 55, 3, 64, 3, 71, 3, 114, 3, - 191, 42, 156, 3, 101, 3, 113, 3, 125, 3, 135, 3, 143, 3, 149, 3, 152, 6, 148, 3, - 140, 3, 191, 57, 53, 3, 66, 3, 79, 3, 91, 3, 101, 3, 107, 3, 109, 3, 191, 54, - 97, 3, 66, 3, 82, 3, 98, 3, 115, 3, 131, 3, 145, 3, 157, 3, 167, 3, 174, 3, - 179, 3, 183, 3, 186, 3, 188, 6, 189, 3, 190, 9, 191, 42, 190, 3, 189, 3, 188, 3, - 185, 3, 182, 3, 177, 3, 170, 3, 161, 3, 150, 3, 191, 54, 143, 3, 61, 3, 77, 3, - 93, 3, 110, 3, 126, 3, 141, 3, 154, 3, 164, 3, 173, 3, 179, 3, 182, 3, 185, 3, - 186, 6, 185, 3, 183, 3, 180, 3, 176, 3, 173, 3, 167, 3, 163, 3, 158, 3, 154, 3, - 149, 3, 146, 3, 143, 3, 141, 3, 140, 3, 138, 3, 137, 9, 138, 3, 139, 3, 140, 3, - 142, 3, 143, 3, 145, 3, 146, 6, 144, 3, 141, 3, 135, 3, 169, 3, 191, 54, 56, 3, - 71, 3, 87, 3, 104, 3, 120, 3, 135, 3, 148, 3, 159, 3, 167, 3, 173, 3, 178, 3, - 180, 3, 182, 3, 183, 3, 184, 3, 185, 15, 183, 3, 180, 3, 176, 3, 170, 3, 161, 3, - 151, 3, 161, 3, 191, 48, 140, 3, 49, 3, 59, 3, 66, 3, 73, 3, 152, 3, 191, 48, - 67, 3, 65, 3, 80, 3, 97, 3, 113, 3, 128, 3, 142, 3, 155, 3, 164, 3, 173, 3, - 179, 3, 183, 3, 186, 3, 188, 3, 190, 6, 191, 75, 190, 9, 191, 1, 190, 1, 186, 1, - 207, 1, 194, 1, 135, 1, 235, 1, 191, 1, 53, 1, 242, 1, 185, 1, 30, 1, 246, 1, - 184, 1, 20, 1, 247, 1, 183, 1, 18, 1, 247, 1, 181, 1, 17, 1, 247, 1, 180, 1, - 16, 1, 247, 1, 180, 1, 15, 1, 247, 1, 179, 1, 15, 1, 248, 1, 179, 1, 14, 1, - 248, 1, 178, 1, 14, 1, 248, 1, 176, 1, 13, 1, 177, 1, 120, 1, 5, 1, 150, 1, - 98, 1, 2, 1, 157, 1, 98, 1, 2, 1, 160, 1, 98, 1, 2, 1, 155, 1, 96, 1, - 1, 1, 153, 1, 95, 1, 1, 1, 155, 1, 95, 1, 2, 1, 158, 1, 89, 1, 1, 1, - 165, 1, 79, 1, 2, 1, 169, 1, 69, 1, 2, 1, 170, 1, 63, 1, 2, 1, 170, 1, - 58, 1, 1, 1, 173, 1, 55, 1, 2, 1, 175, 1, 51, 1, 3, 1, 176, 1, 46, 1, - 2, 1, 176, 1, 47, 1, 3, 1, 172, 1, 51, 1, 3, 1, 170, 1, 55, 1, 2, 1, - 169, 1, 58, 1, 1, 1, 169, 1, 62, 1, 1, 1, 229, 1, 97, 1, 0, 1, 253, 1, - 122, 1, 0, 1, 253, 1, 122, 1, 0, 1, 253, 1, 109, 1, 0, 1, 223, 1, 86, 1, - 0, 1, 117, 1, 29, 1, 3, 1, 67, 1, 4, 2, 71, 1, 7, 2, 76, 1, 8, 2, - 75, 1, 7, 2, 75, 1, 7, 2, 71, 1, 6, 2, 80, 1, 10, 2, 77, 1, 8, 2, - 79, 1, 10, 2, 80, 1, 10, 2, 79, 1, 10, 2, 75, 1, 8, 2, 72, 1, 6, 2, - 67, 1, 4, 2, 71, 1, 6, 2, 74, 1, 7, 2, 76, 1, 8, 2, 68, 1, 5, 2, - 67, 1, 4, 2, 72, 1, 6, 1, 5, 1, 114, 1, 38, 1, 1, 1, 210, 1, 93, 1, - 1, 1, 253, 1, 111, 1, 0, 1, 253, 1, 108, 1, 0, 1, 253, 1, 108, 1, 0, 1, - 253, 1, 117, 1, 0, 1, 252, 1, 138, 1, 0, 1, 252, 1, 160, 1, 1, 1, 248, 1, - 182, 1, 12, 1, 230, 1, 195, 1, 68, 1, 201, 1, 193, 1, 154, 1, 191, 2, 185, 1, - 190, 18, 191, 45, 190, 3, 189, 3, 187, 3, 185, 3, 181, 3, 175, 3, 168, 3, 158, 3, - 161, 3, 191, 36, 153, 3, 86, 3, 93, 3, 98, 3, 100, 6, 97, 3, 92, 3, 178, 3, - 191, 42, 68, 3, 66, 3, 79, 3, 92, 3, 104, 3, 113, 3, 119, 3, 122, 3, 120, 3, - 115, 3, 135, 3, 191, 45, 98, 3, 65, 3, 79, 3, 92, 3, 106, 3, 117, 3, 125, 3, - 137, 3, 184, 3, 191, 27, 155, 3, 87, 3, 92, 3, 98, 3, 104, 3, 108, 3, 110, 3, - 163, 3, 191, 54, 46, 3, 56, 3, 65, 3, 71, 3, 114, 3, 191, 45, 135, 3, 104, 3, - 116, 3, 126, 3, 135, 3, 143, 3, 146, 3, 147, 3, 144, 3, 137, 3, 191, 57, 53, 3, - 66, 3, 80, 3, 91, 3, 101, 3, 107, 3, 109, 3, 191, 54, 98, 3, 67, 3, 83, 3, - 99, 3, 116, 3, 131, 3, 145, 3, 157, 3, 167, 3, 175, 3, 180, 3, 184, 3, 187, 3, - 188, 3, 189, 3, 190, 3, 191, 51, 190, 3, 189, 3, 188, 3, 185, 3, 182, 3, 177, 3, - 170, 3, 161, 3, 150, 3, 191, 54, 143, 3, 62, 3, 77, 3, 94, 3, 110, 3, 126, 3, - 141, 3, 154, 3, 164, 3, 173, 3, 179, 3, 183, 3, 185, 3, 187, 6, 186, 3, 185, 3, - 182, 3, 180, 3, 177, 3, 173, 3, 170, 3, 166, 3, 163, 3, 160, 3, 157, 3, 155, 3, - 153, 3, 152, 6, 151, 12, 152, 6, 154, 3, 155, 9, 154, 3, 152, 3, 147, 3, 140, 3, - 170, 3, 191, 54, 56, 3, 71, 3, 88, 3, 104, 3, 121, 3, 136, 3, 149, 3, 160, 3, - 169, 3, 175, 3, 179, 3, 182, 3, 185, 6, 186, 3, 187, 12, 186, 3, 185, 3, 182, 3, - 178, 3, 172, 3, 164, 3, 154, 3, 142, 3, 176, 3, 191, 45, 141, 3, 50, 3, 59, 3, - 67, 3, 73, 3, 153, 3, 191, 45, 125, 3, 56, 3, 71, 3, 86, 3, 101, 3, 117, 3, - 131, 3, 145, 3, 157, 3, 167, 3, 174, 3, 180, 3, 184, 3, 187, 3, 188, 3, 190, 3, - 191, 78, 190, 9, 191, 1, 190, 1, 186, 1, 210, 1, 194, 1, 127, 1, 219, 1, 196, 1, - 99, 1, 225, 1, 197, 1, 82, 1, 228, 1, 197, 1, 74, 1, 229, 1, 197, 1, 69, 1, - 231, 1, 197, 1, 65, 1, 232, 1, 196, 1, 60, 1, 234, 1, 196, 1, 55, 1, 236, 1, - 196, 1, 51, 1, 237, 1, 196, 1, 46, 1, 237, 1, 195, 1, 45, 1, 238, 1, 194, 1, - 45, 1, 209, 1, 168, 1, 32, 1, 157, 1, 118, 1, 11, 1, 160, 1, 118, 1, 12, 1, - 152, 1, 109, 1, 4, 1, 151, 1, 107, 1, 2, 1, 155, 1, 107, 1, 2, 1, 156, 1, - 106, 1, 2, 1, 160, 1, 103, 1, 4, 1, 163, 1, 91, 1, 3, 1, 166, 1, 79, 1, - 2, 1, 170, 1, 69, 1, 2, 1, 167, 1, 62, 1, 1, 1, 171, 1, 59, 1, 2, 1, - 172, 1, 55, 1, 2, 1, 173, 1, 51, 1, 3, 1, 174, 1, 51, 1, 3, 1, 174, 1, - 56, 1, 3, 1, 175, 1, 61, 1, 4, 1, 170, 1, 63, 1, 2, 1, 168, 1, 67, 1, - 1, 1, 197, 1, 95, 1, 1, 1, 252, 1, 141, 1, 0, 1, 252, 1, 143, 1, 0, 1, - 252, 1, 123, 1, 0, 1, 252, 1, 109, 1, 0, 1, 251, 1, 100, 1, 0, 1, 187, 1, - 63, 1, 2, 1, 95, 1, 18, 1, 10, 1, 77, 1, 9, 2, 76, 1, 8, 2, 73, 1, - 7, 2, 71, 1, 6, 2, 75, 1, 7, 2, 78, 1, 9, 2, 79, 1, 9, 2, 79, 1, - 10, 2, 82, 1, 11, 2, 80, 1, 11, 2, 70, 1, 5, 2, 71, 1, 5, 2, 94, 1, - 24, 2, 101, 1, 30, 2, 80, 1, 12, 2, 71, 1, 6, 2, 119, 1, 50, 1, 6, 1, - 209, 1, 124, 1, 2, 1, 252, 1, 148, 1, 0, 1, 252, 1, 138, 1, 0, 1, 252, 1, - 128, 1, 0, 1, 253, 1, 119, 1, 0, 1, 253, 1, 112, 1, 0, 1, 253, 1, 113, 1, - 0, 1, 252, 1, 130, 1, 0, 1, 252, 1, 153, 1, 0, 1, 250, 1, 175, 1, 7, 1, - 240, 1, 193, 1, 38, 1, 207, 1, 194, 1, 136, 1, 193, 1, 191, 1, 179, 1, 191, 1, - 190, 17, 191, 45, 190, 3, 189, 3, 188, 3, 185, 3, 181, 3, 175, 3, 168, 3, 158, 3, - 161, 3, 191, 39, 117, 3, 88, 3, 95, 3, 98, 3, 100, 3, 99, 3, 95, 3, 111, 3, - 191, 39, 158, 3, 57, 3, 71, 3, 84, 3, 97, 3, 109, 3, 119, 3, 125, 3, 128, 6, - 123, 3, 116, 3, 135, 3, 191, 42, 99, 3, 65, 3, 78, 3, 92, 3, 104, 3, 113, 3, - 121, 3, 183, 3, 191, 30, 153, 3, 82, 3, 89, 3, 95, 3, 102, 3, 107, 3, 109, 3, - 163, 3, 191, 54, 48, 3, 57, 3, 66, 3, 73, 3, 115, 3, 191, 48, 127, 3, 107, 3, - 118, 3, 128, 3, 136, 3, 140, 3, 143, 3, 140, 3, 135, 3, 191, 57, 55, 3, 68, 3, - 80, 3, 92, 3, 101, 3, 108, 3, 110, 3, 191, 54, 99, 3, 68, 3, 84, 3, 101, 3, - 116, 3, 132, 3, 146, 3, 158, 3, 167, 3, 175, 3, 181, 3, 185, 3, 188, 3, 189, 3, - 190, 3, 191, 54, 190, 3, 189, 3, 188, 3, 186, 3, 182, 3, 177, 3, 170, 3, 161, 3, - 150, 3, 191, 54, 143, 3, 63, 3, 79, 3, 95, 3, 111, 3, 127, 3, 142, 3, 154, 3, - 164, 3, 173, 3, 179, 3, 183, 3, 186, 3, 188, 9, 186, 3, 185, 3, 183, 3, 181, 3, - 178, 3, 176, 3, 173, 3, 170, 3, 168, 3, 167, 3, 165, 3, 164, 3, 163, 3, 162, 6, - 161, 6, 162, 6, 163, 3, 164, 9, 163, 3, 161, 3, 158, 3, 152, 3, 144, 3, 172, 3, - 191, 54, 58, 3, 73, 3, 89, 3, 106, 3, 122, 3, 137, 3, 150, 3, 161, 3, 170, 3, - 176, 3, 181, 3, 184, 3, 186, 3, 187, 3, 188, 15, 187, 3, 185, 3, 183, 3, 179, 3, - 173, 3, 167, 3, 157, 3, 146, 3, 145, 3, 191, 45, 141, 3, 51, 3, 60, 3, 68, 3, - 74, 3, 153, 3, 191, 42, 173, 3, 65, 3, 62, 3, 77, 3, 92, 3, 107, 3, 122, 3, - 136, 3, 149, 3, 160, 3, 169, 3, 176, 3, 181, 3, 185, 3, 187, 3, 189, 3, 190, 3, - 191, 78, 190, 9, 191, 1, 190, 1, 189, 1, 191, 2, 185, 1, 193, 1, 191, 1, 178, 1, - 195, 1, 192, 1, 173, 1, 196, 1, 192, 1, 170, 1, 196, 1, 192, 1, 169, 1, 196, 1, - 192, 1, 169, 1, 197, 1, 192, 1, 168, 1, 197, 1, 192, 1, 167, 1, 197, 1, 192, 1, - 166, 1, 198, 1, 193, 1, 164, 1, 199, 1, 193, 1, 160, 1, 201, 1, 193, 1, 155, 1, - 201, 1, 192, 1, 149, 1, 67, 1, 50, 1, 26, 1, 62, 1, 32, 1, 5, 1, 73, 1, - 38, 1, 5, 1, 75, 1, 42, 1, 4, 1, 81, 1, 47, 1, 4, 1, 86, 1, 52, 1, - 3, 1, 146, 1, 102, 1, 3, 1, 157, 1, 100, 1, 1, 1, 162, 1, 90, 1, 3, 1, - 165, 1, 78, 1, 2, 1, 170, 1, 68, 1, 2, 1, 170, 1, 63, 1, 1, 1, 171, 1, - 58, 1, 1, 1, 173, 1, 54, 1, 2, 1, 173, 1, 55, 1, 2, 1, 167, 1, 57, 1, - 0, 1, 166, 1, 61, 1, 0, 1, 179, 1, 73, 1, 1, 1, 204, 1, 99, 1, 2, 1, - 231, 1, 132, 1, 3, 1, 251, 1, 163, 1, 5, 1, 251, 1, 165, 1, 6, 1, 252, 1, - 145, 1, 2, 1, 252, 1, 124, 1, 0, 1, 252, 1, 109, 1, 0, 1, 253, 1, 101, 1, - 0, 1, 239, 1, 88, 1, 0, 1, 117, 1, 27, 1, 5, 1, 73, 1, 6, 2, 78, 1, - 9, 2, 76, 1, 8, 2, 72, 1, 6, 2, 75, 1, 7, 2, 73, 1, 7, 2, 72, 1, - 7, 2, 61, 1, 2, 2, 64, 1, 3, 2, 72, 1, 6, 2, 78, 1, 11, 2, 73, 1, - 7, 2, 73, 1, 7, 2, 109, 1, 54, 1, 36, 1, 191, 1, 147, 1, 50, 1, 245, 1, - 190, 1, 22, 1, 249, 1, 181, 1, 10, 1, 251, 1, 171, 1, 4, 1, 252, 1, 160, 1, - 1, 1, 252, 1, 150, 1, 0, 1, 252, 1, 140, 1, 0, 1, 252, 1, 130, 1, 0, 1, - 253, 1, 120, 1, 0, 1, 252, 1, 124, 1, 0, 1, 252, 1, 145, 1, 0, 1, 251, 1, - 167, 1, 3, 1, 246, 1, 189, 1, 21, 1, 217, 1, 195, 1, 106, 1, 196, 1, 192, 1, - 170, 1, 191, 1, 190, 1, 188, 1, 190, 15, 191, 45, 190, 3, 189, 3, 188, 3, 185, 3, - 181, 3, 176, 3, 168, 3, 158, 3, 161, 3, 191, 42, 106, 3, 91, 3, 96, 3, 100, 3, - 101, 3, 98, 3, 94, 3, 144, 3, 191, 36, 67, 3, 63, 3, 77, 3, 90, 3, 103, 3, - 115, 3, 125, 3, 131, 3, 135, 6, 131, 3, 125, 3, 116, 3, 133, 3, 191, 39, 100, 3, - 66, 3, 79, 3, 91, 3, 101, 3, 110, 3, 166, 3, 191, 33, 151, 3, 78, 3, 86, 3, - 94, 3, 101, 3, 106, 3, 109, 3, 163, 3, 191, 54, 50, 3, 59, 3, 68, 3, 74, 3, - 116, 3, 191, 51, 108, 3, 110, 3, 120, 3, 128, 3, 134, 3, 137, 6, 132, 3, 191, 57, - 56, 3, 69, 3, 82, 3, 94, 3, 103, 3, 109, 3, 111, 3, 191, 54, 101, 3, 70, 3, - 85, 3, 101, 3, 118, 3, 133, 3, 146, 3, 158, 3, 168, 3, 176, 3, 181, 3, 185, 3, - 188, 3, 189, 3, 190, 3, 191, 54, 190, 3, 189, 3, 188, 3, 186, 3, 182, 3, 178, 3, - 171, 3, 162, 3, 151, 3, 191, 54, 144, 3, 65, 3, 80, 3, 96, 3, 113, 3, 128, 3, - 142, 3, 155, 3, 165, 3, 173, 3, 179, 3, 183, 3, 186, 3, 188, 12, 187, 3, 185, 3, - 184, 3, 182, 3, 181, 3, 179, 3, 177, 3, 176, 3, 174, 3, 173, 6, 172, 3, 171, 15, - 172, 12, 171, 3, 170, 3, 167, 3, 163, 3, 156, 3, 148, 3, 173, 3, 191, 54, 59, 3, - 74, 3, 91, 3, 107, 3, 123, 3, 137, 3, 151, 3, 161, 3, 170, 3, 177, 3, 182, 3, - 185, 3, 187, 3, 188, 3, 189, 15, 188, 3, 187, 3, 185, 3, 181, 3, 176, 3, 169, 3, - 161, 3, 150, 3, 138, 3, 147, 3, 191, 42, 142, 3, 53, 3, 62, 3, 70, 3, 76, 3, - 153, 3, 191, 42, 95, 3, 58, 3, 70, 3, 84, 3, 98, 3, 113, 3, 128, 3, 141, 3, - 153, 3, 163, 3, 171, 3, 177, 3, 182, 3, 185, 3, 188, 3, 189, 3, 190, 3, 191, 78, - 190, 15, 191, 1, 190, 1, 189, 1, 191, 1, 190, 1, 189, 1, 191, 1, 190, 1, 189, 1, - 191, 1, 190, 1, 189, 1, 191, 1, 190, 1, 188, 1, 191, 1, 190, 1, 188, 1, 191, 1, - 190, 1, 188, 1, 191, 1, 190, 1, 188, 1, 191, 1, 190, 1, 188, 1, 191, 1, 190, 1, - 187, 1, 191, 1, 190, 1, 187, 1, 191, 1, 190, 1, 187, 1, 106, 1, 99, 1, 97, 1, - 28, 1, 3, 2, 36, 1, 5, 2, 48, 1, 12, 2, 42, 1, 8, 2, 31, 1, 4, 2, - 128, 1, 91, 1, 4, 1, 155, 1, 103, 1, 2, 1, 159, 1, 91, 1, 2, 1, 163, 1, - 79, 1, 1, 1, 167, 1, 68, 1, 1, 1, 170, 1, 64, 1, 2, 1, 171, 1, 60, 1, - 2, 1, 174, 1, 57, 1, 2, 1, 191, 1, 67, 1, 1, 1, 213, 1, 83, 1, 0, 1, - 237, 1, 101, 1, 0, 1, 252, 1, 122, 1, 0, 1, 252, 1, 143, 1, 2, 1, 249, 1, - 166, 1, 11, 1, 243, 1, 184, 1, 28, 1, 243, 1, 187, 1, 29, 1, 248, 1, 168, 1, - 13, 1, 251, 1, 146, 1, 4, 1, 252, 1, 124, 1, 0, 1, 252, 1, 109, 1, 0, 1, - 238, 1, 94, 1, 0, 1, 86, 1, 13, 1, 5, 1, 70, 1, 5, 2, 71, 1, 5, 2, - 73, 1, 6, 2, 71, 1, 6, 2, 78, 1, 9, 2, 72, 1, 6, 2, 75, 1, 8, 2, - 65, 1, 4, 2, 66, 1, 4, 2, 80, 1, 11, 2, 78, 1, 10, 2, 103, 1, 50, 1, - 41, 1, 162, 1, 142, 1, 127, 1, 199, 1, 192, 1, 161, 1, 206, 1, 193, 1, 138, 1, - 217, 1, 193, 1, 106, 1, 232, 1, 193, 1, 62, 1, 244, 1, 191, 1, 26, 1, 249, 1, - 183, 1, 12, 1, 251, 1, 172, 1, 5, 1, 252, 1, 162, 1, 2, 1, 252, 1, 151, 1, - 0, 1, 252, 1, 141, 1, 0, 1, 252, 1, 131, 1, 0, 1, 252, 1, 138, 1, 0, 1, - 252, 1, 160, 1, 1, 1, 248, 1, 183, 1, 13, 1, 229, 1, 195, 1, 71, 1, 200, 1, - 193, 1, 156, 1, 191, 2, 185, 1, 190, 15, 191, 45, 190, 3, 189, 3, 188, 3, 185, 3, - 181, 3, 176, 3, 168, 3, 159, 3, 162, 3, 191, 42, 178, 3, 98, 3, 94, 3, 99, 3, - 101, 6, 98, 3, 102, 3, 191, 33, 111, 3, 59, 3, 71, 3, 83, 3, 97, 3, 110, 3, - 122, 3, 131, 3, 138, 3, 142, 3, 143, 3, 140, 3, 134, 3, 125, 3, 116, 3, 133, 3, - 179, 3, 191, 33, 102, 3, 68, 3, 80, 3, 90, 3, 100, 3, 163, 3, 191, 36, 150, 3, - 77, 3, 85, 3, 93, 3, 101, 3, 107, 3, 110, 3, 163, 3, 191, 54, 53, 3, 62, 3, - 71, 3, 77, 3, 117, 3, 191, 51, 179, 3, 112, 3, 113, 3, 122, 3, 129, 3, 133, 3, - 134, 3, 130, 3, 191, 57, 60, 3, 72, 3, 85, 3, 96, 3, 105, 3, 111, 3, 113, 3, - 191, 54, 103, 3, 73, 3, 88, 3, 104, 3, 119, 3, 134, 3, 148, 3, 159, 3, 168, 3, - 176, 3, 181, 3, 185, 3, 188, 3, 189, 3, 190, 3, 191, 54, 190, 3, 189, 3, 188, 3, - 186, 3, 182, 3, 178, 3, 171, 3, 163, 3, 152, 3, 191, 54, 145, 3, 68, 3, 83, 3, - 98, 3, 114, 3, 129, 3, 143, 3, 155, 3, 166, 3, 173, 3, 179, 3, 184, 3, 186, 3, - 188, 3, 189, 9, 188, 6, 186, 3, 185, 3, 184, 3, 183, 3, 182, 3, 181, 3, 180, 3, - 179, 9, 178, 24, 177, 3, 176, 3, 175, 3, 171, 3, 167, 3, 160, 3, 151, 3, 174, 3, - 191, 54, 63, 3, 77, 3, 93, 3, 109, 3, 125, 3, 139, 3, 152, 3, 163, 3, 171, 3, - 178, 3, 182, 3, 185, 3, 188, 3, 189, 6, 190, 9, 189, 3, 188, 6, 185, 3, 182, 3, - 178, 3, 172, 3, 164, 3, 155, 3, 144, 3, 131, 3, 142, 3, 191, 39, 143, 3, 56, 3, - 65, 3, 72, 3, 77, 3, 154, 3, 191, 39, 93, 3, 55, 3, 66, 3, 78, 3, 92, 3, - 106, 3, 120, 3, 134, 3, 146, 3, 157, 3, 166, 3, 173, 3, 179, 3, 183, 3, 186, 3, - 188, 3, 189, 3, 190, 3, 191, 78, 190, 51, 172, 1, 171, 2, 26, 1, 10, 2, 52, 1, - 20, 2, 47, 1, 19, 2, 40, 1, 14, 2, 27, 1, 3, 2, 122, 1, 83, 1, 3, 1, - 159, 1, 104, 1, 3, 1, 161, 1, 93, 1, 2, 1, 166, 1, 82, 1, 3, 1, 173, 1, - 72, 1, 1, 1, 198, 1, 79, 1, 1, 1, 222, 1, 84, 1, 0, 1, 246, 1, 91, 1, - 0, 1, 253, 1, 99, 1, 0, 1, 252, 1, 107, 1, 0, 1, 252, 1, 120, 1, 0, 1, - 252, 1, 139, 1, 2, 1, 249, 1, 163, 1, 10, 1, 242, 1, 185, 1, 32, 1, 219, 1, - 190, 1, 101, 1, 216, 1, 191, 1, 109, 1, 238, 1, 188, 1, 42, 1, 247, 1, 169, 1, - 15, 1, 251, 1, 147, 1, 4, 1, 252, 1, 125, 1, 0, 1, 147, 1, 49, 1, 5, 1, - 77, 1, 8, 2, 76, 1, 8, 2, 75, 1, 8, 2, 72, 1, 7, 2, 83, 1, 14, 2, - 78, 1, 11, 2, 62, 1, 2, 2, 64, 1, 3, 2, 64, 1, 3, 2, 68, 1, 5, 1, - 4, 1, 113, 1, 46, 1, 8, 1, 191, 1, 142, 1, 37, 1, 203, 1, 191, 1, 147, 1, - 192, 1, 191, 1, 182, 1, 191, 1, 190, 1, 186, 1, 193, 1, 191, 1, 179, 1, 197, 1, - 192, 1, 165, 1, 204, 1, 193, 1, 144, 1, 215, 1, 194, 1, 114, 1, 229, 1, 194, 1, - 70, 1, 242, 1, 191, 1, 31, 1, 248, 1, 184, 1, 14, 1, 250, 1, 174, 1, 6, 1, - 252, 1, 163, 1, 2, 1, 252, 1, 153, 1, 0, 1, 252, 1, 144, 1, 0, 1, 252, 1, - 154, 1, 0, 1, 250, 1, 176, 1, 7, 1, 239, 1, 194, 1, 40, 1, 206, 1, 193, 1, - 138, 1, 193, 1, 191, 1, 180, 1, 191, 1, 190, 14, 191, 45, 190, 3, 189, 3, 188, 3, - 185, 3, 182, 3, 176, 3, 169, 3, 160, 3, 163, 3, 191, 45, 155, 3, 92, 3, 98, 3, - 102, 3, 103, 3, 101, 3, 97, 3, 191, 30, 144, 3, 57, 3, 67, 3, 79, 3, 92, 3, - 104, 3, 117, 3, 129, 3, 138, 3, 146, 3, 149, 3, 150, 3, 148, 3, 143, 3, 135, 3, - 126, 3, 116, 3, 113, 3, 158, 3, 191, 30, 105, 3, 71, 3, 81, 3, 91, 3, 129, 3, - 191, 39, 150, 3, 77, 3, 85, 3, 94, 3, 102, 3, 108, 3, 111, 3, 164, 3, 191, 54, - 57, 3, 66, 3, 74, 3, 80, 3, 120, 3, 191, 54, 160, 3, 108, 3, 117, 3, 125, 3, - 129, 3, 130, 3, 128, 3, 191, 57, 64, 3, 76, 3, 88, 3, 98, 3, 107, 3, 113, 3, - 115, 3, 191, 54, 105, 3, 76, 3, 91, 3, 107, 3, 122, 3, 136, 3, 149, 3, 160, 3, - 169, 3, 176, 3, 182, 3, 185, 3, 188, 3, 189, 3, 190, 3, 191, 54, 190, 3, 189, 3, - 188, 3, 186, 3, 183, 3, 179, 3, 172, 3, 164, 3, 153, 3, 191, 54, 147, 3, 71, 3, - 86, 3, 101, 3, 116, 3, 131, 3, 145, 3, 157, 3, 167, 3, 174, 3, 180, 3, 184, 3, - 187, 3, 188, 3, 189, 3, 190, 6, 189, 6, 188, 6, 187, 3, 186, 3, 185, 6, 184, 6, - 183, 27, 182, 6, 181, 3, 179, 3, 175, 3, 170, 3, 163, 3, 154, 3, 175, 3, 191, 54, - 67, 3, 80, 3, 96, 3, 111, 3, 127, 3, 140, 3, 153, 3, 164, 3, 172, 3, 178, 3, - 183, 3, 186, 3, 188, 3, 189, 3, 190, 3, 191, 9, 190, 3, 189, 3, 188, 3, 186, 3, - 184, 3, 180, 3, 175, 3, 168, 3, 160, 3, 149, 3, 138, 3, 125, 3, 139, 3, 191, 36, - 145, 3, 60, 3, 68, 3, 75, 3, 81, 3, 155, 3, 191, 33, 173, 3, 95, 3, 55, 3, - 65, 3, 76, 3, 88, 3, 101, 3, 115, 3, 128, 3, 140, 3, 152, 3, 161, 3, 170, 3, - 176, 3, 181, 3, 185, 3, 187, 3, 188, 3, 190, 3, 191, 81, 190, 54, 80, 1, 69, 2, - 36, 1, 11, 2, 43, 1, 9, 2, 43, 1, 8, 2, 44, 1, 9, 2, 117, 1, 77, 1, - 5, 1, 172, 1, 117, 1, 5, 1, 201, 1, 124, 1, 2, 1, 229, 1, 125, 1, 0, 1, - 251, 1, 118, 1, 0, 1, 253, 1, 108, 1, 0, 1, 253, 1, 100, 1, 0, 1, 253, 1, - 99, 1, 0, 1, 252, 1, 106, 1, 0, 1, 252, 1, 118, 1, 0, 1, 252, 1, 137, 1, - 1, 1, 250, 1, 160, 1, 9, 1, 243, 1, 183, 1, 28, 1, 220, 1, 191, 1, 98, 1, - 199, 1, 191, 1, 160, 1, 197, 1, 191, 1, 166, 1, 211, 1, 191, 1, 126, 1, 238, 1, - 189, 1, 44, 1, 247, 1, 169, 1, 16, 1, 211, 1, 116, 1, 5, 1, 80, 1, 10, 1, - 9, 1, 80, 1, 11, 2, 71, 1, 6, 2, 74, 1, 7, 2, 67, 1, 5, 2, 76, 1, - 8, 2, 67, 1, 4, 2, 63, 1, 2, 2, 63, 1, 2, 2, 105, 1, 33, 1, 1, 1, - 200, 1, 116, 1, 2, 1, 248, 1, 180, 1, 11, 1, 233, 1, 196, 1, 60, 1, 200, 1, - 193, 1, 157, 1, 191, 1, 190, 1, 186, 1, 190, 3, 191, 1, 190, 2, 191, 1, 190, 1, - 187, 1, 192, 1, 191, 1, 181, 1, 196, 1, 192, 1, 169, 1, 203, 1, 193, 1, 149, 1, - 212, 1, 193, 1, 121, 1, 227, 1, 194, 1, 77, 1, 241, 1, 192, 1, 36, 1, 247, 1, - 185, 1, 16, 1, 250, 1, 175, 1, 7, 1, 252, 1, 165, 1, 3, 1, 252, 1, 157, 1, - 1, 1, 251, 1, 168, 1, 4, 1, 245, 1, 190, 1, 22, 1, 216, 1, 195, 1, 109, 1, - 195, 1, 192, 1, 171, 1, 191, 1, 190, 1, 189, 1, 190, 12, 191, 45, 190, 3, 189, 3, - 188, 3, 185, 3, 182, 3, 176, 3, 170, 3, 161, 3, 163, 3, 191, 48, 146, 3, 98, 3, - 103, 3, 105, 6, 102, 3, 191, 27, 129, 3, 59, 3, 67, 3, 77, 3, 88, 3, 101, 3, - 113, 3, 125, 3, 136, 3, 146, 3, 152, 3, 156, 3, 157, 3, 155, 3, 151, 3, 144, 3, - 136, 3, 126, 3, 116, 3, 105, 3, 116, 3, 167, 3, 191, 24, 109, 3, 77, 3, 85, 3, - 125, 3, 191, 42, 151, 3, 79, 3, 87, 3, 97, 3, 104, 3, 111, 3, 114, 3, 165, 3, - 191, 54, 63, 3, 71, 3, 79, 3, 85, 3, 123, 3, 191, 57, 162, 3, 114, 3, 122, 3, - 126, 3, 128, 3, 127, 3, 191, 57, 69, 3, 81, 3, 92, 3, 103, 3, 111, 3, 116, 3, - 119, 3, 191, 54, 109, 3, 81, 3, 95, 3, 110, 3, 125, 3, 138, 3, 151, 3, 161, 3, - 170, 3, 177, 3, 182, 3, 185, 3, 188, 3, 189, 3, 190, 3, 191, 54, 190, 6, 188, 3, - 186, 3, 183, 3, 179, 3, 173, 3, 164, 3, 155, 3, 191, 54, 148, 3, 77, 3, 90, 3, - 105, 3, 119, 3, 134, 3, 147, 3, 158, 3, 167, 3, 175, 3, 180, 3, 184, 3, 187, 3, - 188, 3, 189, 3, 190, 12, 189, 6, 188, 9, 187, 6, 186, 27, 185, 9, 183, 3, 181, 3, - 177, 3, 172, 3, 165, 3, 156, 3, 176, 3, 191, 54, 72, 3, 86, 3, 100, 3, 115, 3, - 129, 3, 143, 3, 155, 3, 164, 3, 173, 3, 179, 3, 183, 3, 186, 3, 188, 3, 189, 3, - 190, 3, 191, 12, 190, 3, 189, 3, 188, 3, 185, 3, 182, 3, 177, 3, 172, 3, 164, 3, - 155, 3, 146, 3, 134, 3, 122, 3, 118, 3, 169, 3, 191, 30, 147, 3, 66, 3, 74, 3, - 80, 3, 85, 3, 156, 3, 191, 30, 143, 3, 65, 3, 57, 3, 65, 3, 75, 3, 86, 3, - 98, 3, 111, 3, 124, 3, 136, 3, 147, 3, 157, 3, 166, 3, 173, 3, 179, 3, 182, 3, - 185, 3, 188, 3, 189, 3, 190, 3, 191, 81, 190, 54, 144, 1, 140, 2, 33, 1, 4, 2, - 44, 1, 12, 2, 86, 1, 58, 2, 136, 1, 116, 1, 106, 1, 203, 1, 175, 1, 73, 1, - 245, 1, 185, 1, 22, 1, 251, 1, 163, 1, 3, 1, 252, 1, 141, 1, 0, 1, 253, 1, - 120, 1, 0, 1, 253, 1, 108, 1, 0, 1, 253, 1, 101, 1, 0, 1, 252, 1, 105, 1, - 0, 1, 252, 1, 116, 1, 0, 1, 252, 1, 135, 1, 1, 1, 250, 1, 158, 1, 7, 1, - 244, 1, 180, 1, 24, 1, 225, 1, 192, 1, 82, 1, 199, 1, 191, 1, 159, 1, 192, 1, - 191, 1, 183, 1, 191, 1, 190, 1, 185, 1, 195, 1, 191, 1, 172, 1, 210, 1, 192, 1, - 128, 1, 235, 1, 187, 1, 46, 1, 120, 1, 49, 1, 19, 1, 70, 1, 5, 2, 74, 1, - 7, 2, 80, 1, 10, 2, 74, 1, 7, 2, 74, 1, 7, 2, 74, 1, 7, 2, 67, 1, - 4, 2, 101, 1, 24, 1, 2, 1, 195, 1, 84, 1, 0, 1, 251, 1, 139, 1, 0, 1, - 252, 1, 162, 1, 2, 1, 248, 1, 184, 1, 15, 1, 227, 1, 196, 1, 77, 1, 198, 1, - 192, 1, 164, 1, 191, 1, 190, 1, 187, 1, 190, 9, 191, 1, 190, 2, 191, 1, 190, 1, - 188, 1, 192, 1, 191, 1, 183, 1, 195, 1, 191, 1, 172, 1, 201, 1, 193, 1, 154, 1, - 210, 1, 193, 1, 127, 1, 224, 1, 194, 1, 84, 1, 239, 1, 193, 1, 41, 1, 247, 1, - 187, 1, 18, 1, 250, 1, 177, 1, 9, 1, 251, 1, 169, 1, 6, 1, 247, 1, 183, 1, - 15, 1, 227, 1, 195, 1, 75, 1, 200, 1, 192, 1, 158, 1, 191, 1, 190, 1, 186, 1, - 190, 12, 191, 45, 190, 3, 189, 3, 188, 3, 185, 3, 182, 3, 177, 3, 171, 3, 163, 3, - 165, 3, 191, 51, 130, 3, 105, 3, 108, 3, 110, 3, 153, 3, 191, 21, 162, 3, 90, 3, - 65, 3, 71, 3, 78, 3, 88, 3, 99, 3, 110, 3, 122, 3, 134, 3, 143, 3, 152, 3, - 158, 3, 162, 3, 164, 3, 162, 3, 158, 3, 153, 3, 146, 3, 137, 3, 128, 3, 118, 3, - 107, 3, 98, 3, 111, 3, 141, 3, 177, 3, 191, 15, 115, 3, 83, 3, 112, 3, 191, 45, - 152, 3, 83, 3, 92, 3, 101, 3, 109, 3, 115, 3, 118, 3, 166, 3, 191, 54, 71, 3, - 79, 3, 86, 3, 92, 3, 127, 3, 191, 60, 139, 3, 120, 3, 125, 3, 128, 6, 191, 57, - 77, 3, 88, 3, 98, 3, 108, 3, 116, 3, 121, 3, 123, 3, 191, 54, 114, 3, 88, 3, - 101, 3, 115, 3, 128, 3, 142, 3, 153, 3, 164, 3, 171, 3, 178, 3, 182, 3, 185, 3, - 188, 3, 189, 3, 190, 3, 191, 57, 190, 3, 188, 3, 187, 3, 184, 3, 179, 3, 174, 3, - 167, 3, 157, 3, 191, 54, 151, 3, 83, 3, 97, 3, 110, 3, 124, 3, 137, 3, 149, 3, - 160, 3, 169, 3, 176, 3, 181, 3, 185, 3, 187, 3, 189, 3, 190, 6, 191, 6, 190, 9, - 189, 12, 188, 36, 186, 3, 185, 3, 182, 3, 179, 3, 174, 3, 167, 3, 159, 3, 177, 3, - 191, 54, 80, 3, 92, 3, 106, 3, 119, 3, 133, 3, 146, 3, 157, 3, 167, 3, 174, 3, - 179, 3, 184, 3, 187, 3, 188, 3, 190, 3, 191, 15, 190, 3, 189, 3, 188, 3, 186, 3, - 184, 3, 180, 3, 175, 3, 169, 3, 161, 3, 152, 3, 142, 3, 131, 3, 120, 3, 108, 3, - 117, 3, 156, 3, 191, 24, 149, 3, 74, 3, 80, 3, 86, 3, 91, 3, 158, 3, 191, 24, - 160, 3, 84, 3, 58, 3, 62, 3, 69, 3, 77, 3, 87, 3, 98, 3, 110, 3, 122, 3, - 133, 3, 144, 3, 154, 3, 163, 3, 170, 3, 176, 3, 181, 3, 184, 3, 187, 3, 188, 3, - 189, 3, 190, 3, 191, 81, 190, 54, 189, 1, 188, 2, 146, 1, 135, 2, 182, 1, 180, 2, - 191, 1, 190, 2, 194, 1, 191, 1, 176, 1, 220, 1, 196, 1, 96, 1, 245, 1, 187, 1, - 24, 1, 251, 1, 165, 1, 4, 1, 252, 1, 143, 1, 0, 1, 253, 1, 121, 1, 0, 1, - 253, 1, 108, 1, 0, 1, 252, 1, 105, 1, 0, 1, 252, 1, 113, 1, 0, 1, 252, 1, - 132, 1, 0, 1, 251, 1, 155, 1, 6, 1, 246, 1, 178, 1, 21, 1, 230, 1, 192, 1, - 66, 1, 201, 1, 191, 1, 153, 1, 192, 1, 191, 1, 181, 1, 191, 1, 190, 1, 189, 1, - 190, 3, 191, 1, 190, 1, 187, 1, 195, 1, 191, 1, 173, 1, 208, 1, 191, 1, 131, 1, - 155, 1, 104, 1, 37, 1, 73, 1, 9, 1, 6, 1, 75, 1, 8, 2, 72, 1, 7, 2, - 71, 1, 6, 2, 81, 1, 11, 2, 112, 1, 27, 1, 7, 1, 196, 1, 72, 1, 1, 1, - 253, 1, 109, 1, 0, 1, 253, 1, 122, 1, 0, 1, 252, 1, 143, 1, 0, 1, 252, 1, - 166, 1, 3, 1, 246, 1, 187, 1, 19, 1, 221, 1, 196, 1, 95, 1, 196, 1, 192, 1, - 170, 1, 191, 1, 190, 1, 189, 1, 190, 18, 191, 1, 190, 1, 189, 1, 191, 2, 184, 1, - 194, 1, 191, 1, 175, 1, 200, 1, 193, 1, 158, 1, 208, 1, 193, 1, 134, 1, 222, 1, - 194, 1, 93, 1, 237, 1, 194, 1, 47, 1, 245, 1, 189, 1, 21, 1, 246, 1, 183, 1, - 19, 1, 236, 1, 194, 1, 48, 1, 204, 1, 193, 1, 144, 1, 192, 1, 191, 1, 181, 1, - 190, 12, 191, 45, 190, 3, 189, 3, 188, 3, 186, 3, 183, 3, 179, 3, 173, 3, 164, 3, - 167, 3, 191, 54, 118, 3, 113, 3, 122, 3, 139, 3, 164, 3, 162, 3, 160, 3, 158, 3, - 156, 3, 129, 3, 89, 3, 75, 6, 78, 3, 83, 3, 91, 3, 100, 3, 110, 3, 121, 3, - 132, 3, 142, 3, 151, 3, 158, 3, 164, 3, 168, 3, 169, 3, 168, 3, 166, 3, 161, 3, - 155, 3, 147, 3, 139, 3, 130, 3, 120, 3, 111, 3, 103, 3, 95, 3, 89, 3, 94, 3, - 117, 3, 128, 3, 154, 6, 109, 3, 101, 3, 180, 3, 191, 45, 154, 3, 89, 3, 98, 3, - 107, 3, 114, 3, 120, 3, 123, 3, 153, 3, 167, 3, 165, 3, 163, 3, 160, 3, 157, 3, - 153, 3, 151, 3, 148, 3, 147, 3, 145, 6, 144, 6, 145, 3, 146, 3, 147, 3, 149, 3, - 151, 3, 80, 3, 87, 3, 94, 3, 99, 3, 122, 3, 162, 3, 161, 3, 160, 3, 158, 3, - 156, 3, 153, 3, 151, 3, 149, 3, 147, 3, 146, 9, 147, 3, 148, 3, 149, 3, 151, 3, - 154, 3, 156, 3, 159, 3, 162, 3, 165, 3, 128, 3, 126, 3, 129, 6, 169, 3, 167, 3, - 165, 3, 162, 3, 159, 3, 155, 3, 152, 3, 150, 3, 148, 3, 146, 3, 145, 3, 144, 9, - 145, 3, 146, 3, 148, 3, 150, 3, 153, 3, 86, 3, 95, 3, 106, 3, 115, 3, 122, 3, - 127, 3, 128, 3, 169, 3, 168, 3, 165, 3, 162, 3, 159, 3, 156, 3, 153, 3, 150, 3, - 148, 3, 146, 3, 145, 6, 144, 3, 145, 3, 146, 3, 147, 3, 149, 3, 152, 3, 108, 3, - 96, 3, 108, 3, 121, 3, 134, 3, 146, 3, 156, 3, 165, 3, 173, 3, 179, 3, 183, 3, - 186, 3, 188, 3, 189, 3, 190, 3, 191, 57, 190, 3, 188, 3, 187, 3, 185, 3, 180, 3, - 175, 3, 168, 3, 160, 3, 177, 3, 173, 3, 169, 3, 164, 3, 160, 3, 156, 3, 153, 3, - 150, 3, 148, 3, 146, 3, 145, 3, 144, 6, 145, 6, 147, 3, 149, 3, 151, 3, 129, 3, - 92, 3, 104, 3, 116, 3, 129, 3, 141, 3, 152, 3, 162, 3, 170, 3, 177, 3, 182, 3, - 185, 3, 188, 3, 189, 3, 190, 3, 191, 18, 190, 36, 189, 9, 188, 6, 186, 3, 184, 3, - 181, 3, 176, 3, 170, 3, 162, 3, 169, 3, 174, 3, 170, 3, 166, 3, 162, 3, 158, 3, - 154, 3, 151, 3, 149, 3, 147, 3, 145, 6, 144, 6, 145, 3, 146, 3, 148, 3, 150, 3, - 153, 3, 88, 3, 100, 3, 112, 3, 125, 3, 137, 3, 149, 3, 160, 3, 168, 3, 175, 3, - 180, 3, 185, 3, 187, 3, 188, 3, 190, 3, 191, 18, 190, 3, 189, 3, 188, 3, 185, 3, - 182, 3, 178, 3, 173, 3, 167, 3, 159, 3, 150, 3, 140, 3, 131, 3, 120, 3, 110, 3, - 100, 3, 91, 3, 119, 3, 139, 3, 151, 3, 191, 12, 153, 3, 83, 3, 89, 3, 94, 3, - 98, 3, 160, 3, 191, 15, 152, 3, 124, 3, 81, 3, 66, 3, 68, 3, 71, 3, 76, 3, - 83, 3, 91, 3, 100, 3, 110, 3, 121, 3, 131, 3, 142, 3, 152, 3, 160, 3, 167, 3, - 174, 3, 179, 3, 183, 3, 185, 3, 188, 3, 189, 3, 190, 3, 191, 84, 190, 63, 191, 1, - 190, 2, 193, 1, 191, 1, 178, 1, 218, 1, 197, 1, 104, 1, 244, 1, 188, 1, 25, 1, - 251, 1, 167, 1, 4, 1, 252, 1, 145, 1, 0, 1, 253, 1, 122, 1, 0, 1, 252, 1, - 109, 1, 0, 1, 252, 1, 111, 1, 0, 1, 252, 1, 129, 1, 0, 1, 251, 1, 151, 1, - 4, 1, 247, 1, 174, 1, 18, 1, 235, 1, 191, 1, 54, 1, 205, 1, 192, 1, 143, 1, - 193, 1, 191, 1, 179, 1, 191, 1, 190, 1, 189, 1, 190, 9, 191, 1, 190, 1, 187, 1, - 195, 1, 191, 1, 174, 1, 208, 1, 191, 1, 133, 1, 191, 1, 144, 1, 44, 1, 87, 1, - 23, 1, 8, 1, 76, 1, 8, 2, 109, 1, 31, 1, 7, 1, 192, 1, 77, 1, 1, 1, - 251, 1, 101, 1, 0, 1, 253, 1, 102, 1, 0, 1, 253, 1, 110, 1, 0, 1, 253, 1, - 125, 1, 0, 1, 252, 1, 147, 1, 0, 1, 251, 1, 169, 1, 4, 1, 245, 1, 191, 1, - 24, 1, 215, 1, 196, 1, 113, 1, 194, 1, 191, 1, 176, 1, 191, 1, 190, 1, 189, 1, - 190, 24, 191, 1, 190, 1, 189, 1, 191, 1, 190, 1, 185, 1, 193, 1, 191, 1, 177, 1, - 198, 1, 192, 1, 162, 1, 206, 1, 194, 1, 139, 1, 219, 1, 195, 1, 101, 1, 233, 1, - 195, 1, 59, 1, 237, 1, 194, 1, 46, 1, 209, 1, 194, 1, 132, 1, 193, 1, 191, 1, - 179, 1, 191, 1, 190, 11, 191, 45, 190, 3, 189, 3, 188, 3, 186, 3, 184, 3, 179, 3, - 174, 3, 167, 3, 158, 3, 149, 3, 137, 3, 125, 3, 113, 3, 102, 3, 92, 3, 84, 3, - 77, 3, 74, 3, 71, 6, 73, 3, 77, 3, 81, 3, 87, 3, 95, 3, 101, 3, 108, 3, - 113, 3, 118, 3, 120, 6, 119, 3, 115, 3, 110, 3, 104, 3, 98, 3, 93, 3, 90, 3, - 89, 6, 92, 3, 97, 3, 104, 3, 113, 3, 122, 3, 131, 3, 141, 3, 150, 3, 158, 3, - 165, 3, 170, 3, 173, 3, 174, 6, 172, 3, 167, 3, 163, 3, 156, 3, 149, 3, 141, 3, - 133, 3, 125, 3, 117, 3, 110, 3, 103, 3, 98, 3, 95, 3, 92, 6, 94, 3, 97, 3, - 101, 3, 104, 3, 108, 3, 111, 3, 113, 6, 110, 3, 107, 3, 102, 3, 96, 3, 91, 3, - 86, 3, 82, 3, 80, 3, 79, 3, 80, 3, 85, 3, 90, 3, 98, 3, 106, 3, 114, 3, - 121, 3, 127, 3, 130, 6, 127, 3, 122, 3, 115, 3, 107, 3, 98, 3, 90, 3, 83, 3, - 77, 3, 71, 3, 68, 3, 66, 3, 65, 6, 67, 3, 70, 3, 74, 3, 78, 3, 84, 3, - 91, 3, 98, 3, 104, 3, 108, 3, 111, 3, 113, 3, 111, 3, 107, 3, 102, 3, 96, 3, - 89, 3, 83, 3, 77, 3, 74, 3, 71, 3, 69, 3, 68, 3, 70, 3, 72, 3, 76, 3, - 81, 3, 87, 3, 94, 3, 101, 3, 110, 3, 117, 3, 124, 3, 129, 3, 132, 3, 133, 3, - 131, 3, 126, 3, 120, 3, 112, 3, 104, 3, 95, 3, 87, 3, 80, 3, 74, 3, 70, 3, - 67, 3, 65, 9, 67, 3, 70, 3, 74, 3, 80, 3, 88, 3, 96, 3, 105, 3, 114, 3, - 122, 3, 128, 3, 133, 3, 134, 3, 133, 3, 128, 3, 122, 3, 114, 3, 105, 3, 96, 3, - 88, 3, 80, 3, 74, 3, 71, 3, 68, 3, 66, 3, 65, 3, 67, 3, 69, 3, 74, 3, - 79, 3, 86, 3, 95, 3, 105, 3, 116, 3, 128, 3, 139, 3, 150, 3, 160, 3, 168, 3, - 175, 3, 180, 3, 184, 3, 187, 3, 188, 3, 190, 6, 191, 57, 190, 3, 189, 3, 188, 3, - 185, 3, 182, 3, 176, 3, 170, 3, 163, 3, 153, 3, 143, 3, 131, 3, 120, 3, 109, 3, - 98, 3, 89, 3, 81, 3, 75, 3, 71, 3, 68, 3, 65, 6, 66, 3, 68, 3, 72, 3, - 77, 3, 83, 3, 92, 3, 101, 3, 113, 3, 124, 3, 135, 3, 146, 3, 156, 3, 165, 3, - 173, 3, 179, 3, 182, 3, 186, 3, 188, 3, 189, 3, 190, 3, 191, 51, 190, 12, 189, 3, - 188, 6, 185, 3, 182, 3, 178, 3, 173, 3, 165, 3, 156, 3, 146, 3, 135, 3, 124, 3, - 113, 3, 101, 3, 92, 3, 83, 3, 77, 3, 72, 3, 68, 3, 66, 3, 65, 6, 68, 3, - 71, 3, 75, 3, 81, 3, 89, 3, 98, 3, 109, 3, 120, 3, 131, 3, 143, 3, 153, 3, - 163, 3, 170, 3, 176, 3, 182, 3, 185, 3, 188, 3, 189, 3, 190, 3, 191, 18, 190, 3, - 189, 3, 188, 3, 187, 3, 184, 3, 181, 3, 177, 3, 172, 3, 165, 3, 158, 3, 150, 3, - 141, 3, 131, 3, 122, 3, 113, 3, 104, 3, 97, 3, 91, 3, 86, 3, 83, 3, 81, 3, - 82, 3, 119, 3, 110, 3, 93, 3, 98, 3, 103, 3, 107, 3, 126, 3, 135, 3, 134, 3, - 131, 3, 107, 3, 92, 3, 86, 3, 83, 3, 80, 6, 81, 3, 85, 3, 89, 3, 96, 3, - 104, 3, 113, 3, 122, 3, 132, 3, 142, 3, 151, 3, 159, 3, 166, 3, 173, 3, 178, 3, - 182, 3, 185, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 84, 190, 66, 193, 1, 191, 1, - 179, 1, 216, 1, 196, 1, 111, 1, 244, 1, 189, 1, 27, 1, 251, 1, 167, 1, 5, 1, - 252, 1, 145, 1, 0, 1, 252, 1, 123, 1, 0, 1, 252, 1, 112, 1, 0, 1, 252, 1, - 125, 1, 0, 1, 251, 1, 147, 1, 3, 1, 247, 1, 170, 1, 15, 1, 238, 1, 190, 1, - 44, 1, 209, 1, 192, 1, 131, 1, 194, 1, 191, 1, 176, 1, 191, 1, 190, 1, 188, 1, - 190, 15, 191, 1, 190, 1, 187, 1, 194, 1, 191, 1, 175, 1, 207, 1, 191, 1, 136, 1, - 219, 1, 174, 1, 52, 1, 191, 1, 122, 1, 17, 1, 249, 1, 148, 1, 6, 1, 252, 1, - 127, 1, 1, 1, 252, 1, 111, 1, 0, 1, 252, 1, 105, 1, 0, 1, 253, 1, 111, 1, - 0, 1, 253, 1, 128, 1, 0, 1, 252, 1, 150, 1, 0, 1, 251, 1, 173, 1, 6, 1, - 243, 1, 193, 1, 29, 1, 209, 1, 194, 1, 132, 1, 193, 1, 191, 1, 180, 1, 191, 1, - 190, 32, 191, 1, 190, 1, 189, 1, 191, 1, 190, 1, 186, 1, 193, 1, 191, 1, 179, 1, - 197, 1, 192, 1, 166, 1, 203, 1, 193, 1, 149, 1, 209, 1, 194, 1, 131, 1, 204, 1, - 193, 1, 145, 1, 192, 1, 191, 1, 182, 1, 191, 1, 190, 11, 191, 48, 190, 3, 188, 3, - 187, 3, 185, 3, 181, 3, 176, 3, 170, 3, 162, 3, 153, 3, 143, 3, 133, 3, 122, 3, - 113, 3, 104, 3, 96, 3, 90, 3, 86, 3, 84, 3, 83, 3, 85, 3, 87, 3, 92, 3, - 97, 3, 103, 3, 109, 3, 115, 3, 120, 3, 125, 3, 127, 3, 128, 3, 127, 3, 124, 3, - 119, 3, 115, 3, 110, 3, 107, 3, 104, 3, 103, 3, 104, 3, 107, 3, 111, 3, 117, 3, - 125, 3, 133, 3, 142, 3, 150, 3, 158, 3, 164, 3, 170, 3, 174, 3, 177, 3, 179, 3, - 178, 3, 176, 3, 173, 3, 170, 3, 164, 3, 158, 3, 152, 3, 145, 3, 137, 3, 131, 3, - 124, 3, 118, 3, 113, 3, 109, 3, 107, 3, 106, 3, 107, 3, 109, 3, 111, 3, 114, 3, - 117, 3, 119, 9, 116, 3, 113, 3, 109, 3, 104, 3, 99, 3, 95, 3, 92, 3, 90, 6, - 92, 3, 95, 3, 101, 3, 108, 3, 115, 3, 122, 3, 129, 3, 134, 3, 137, 6, 135, 3, - 131, 3, 125, 3, 117, 3, 110, 3, 102, 3, 95, 3, 90, 3, 86, 3, 83, 3, 81, 3, - 80, 6, 82, 3, 84, 3, 88, 3, 92, 3, 98, 3, 103, 3, 109, 3, 114, 3, 119, 3, - 121, 3, 122, 3, 120, 3, 117, 3, 113, 3, 107, 3, 101, 3, 96, 3, 91, 3, 87, 3, - 85, 3, 83, 9, 85, 3, 88, 3, 92, 3, 97, 3, 103, 3, 110, 3, 116, 3, 123, 3, - 128, 3, 134, 3, 137, 6, 136, 3, 133, 3, 128, 3, 121, 3, 113, 3, 106, 3, 99, 3, - 93, 3, 89, 3, 85, 3, 82, 3, 80, 9, 82, 3, 85, 3, 89, 3, 94, 3, 100, 3, - 107, 3, 116, 3, 123, 3, 131, 3, 136, 3, 140, 3, 141, 3, 140, 3, 136, 3, 131, 3, - 123, 3, 116, 3, 107, 3, 100, 3, 94, 3, 89, 3, 85, 3, 83, 3, 81, 6, 82, 3, - 84, 3, 88, 3, 92, 3, 99, 3, 107, 3, 116, 3, 125, 3, 135, 3, 146, 3, 155, 3, - 164, 3, 170, 3, 176, 3, 182, 3, 185, 3, 187, 3, 188, 3, 190, 3, 191, 60, 190, 3, - 189, 3, 188, 3, 185, 3, 182, 3, 179, 3, 173, 3, 166, 3, 158, 3, 149, 3, 139, 3, - 128, 3, 119, 3, 110, 3, 101, 3, 95, 3, 89, 3, 85, 3, 82, 3, 80, 6, 81, 3, - 83, 3, 86, 3, 91, 3, 97, 3, 104, 3, 113, 3, 122, 3, 132, 3, 142, 3, 152, 3, - 161, 3, 168, 3, 175, 3, 180, 3, 184, 3, 186, 3, 188, 3, 189, 3, 190, 3, 191, 63, - 190, 3, 189, 3, 188, 3, 186, 3, 184, 3, 180, 3, 175, 3, 168, 3, 161, 3, 152, 3, - 142, 3, 132, 3, 122, 3, 113, 3, 104, 3, 97, 3, 91, 3, 86, 3, 83, 3, 81, 3, - 80, 6, 82, 3, 85, 3, 89, 3, 95, 3, 101, 3, 110, 3, 119, 3, 128, 3, 139, 3, - 149, 3, 158, 3, 166, 3, 173, 3, 179, 3, 182, 3, 185, 3, 188, 3, 189, 3, 190, 3, - 191, 21, 190, 3, 189, 3, 188, 3, 186, 3, 183, 3, 180, 3, 176, 3, 171, 3, 165, 3, - 158, 3, 150, 3, 143, 3, 134, 3, 126, 3, 119, 3, 111, 3, 105, 3, 101, 3, 98, 3, - 95, 3, 96, 3, 98, 3, 101, 3, 104, 3, 109, 3, 113, 3, 116, 3, 118, 3, 117, 3, - 116, 3, 112, 3, 107, 3, 103, 3, 99, 3, 95, 3, 94, 6, 96, 3, 99, 3, 104, 3, - 111, 3, 118, 3, 126, 3, 134, 3, 143, 3, 151, 3, 158, 3, 166, 3, 172, 3, 176, 3, - 181, 3, 184, 3, 186, 3, 188, 3, 189, 3, 190, 3, 191, 87, 190, 66, 192, 1, 191, 1, - 180, 1, 213, 1, 196, 1, 118, 1, 243, 1, 190, 1, 29, 1, 251, 1, 169, 1, 6, 1, - 252, 1, 147, 1, 0, 1, 252, 1, 125, 1, 0, 1, 252, 1, 122, 1, 0, 1, 252, 1, - 143, 1, 3, 1, 248, 1, 166, 1, 13, 1, 240, 1, 188, 1, 37, 1, 213, 1, 193, 1, - 117, 1, 195, 1, 191, 1, 173, 1, 191, 1, 190, 1, 187, 1, 190, 21, 191, 1, 190, 1, - 188, 1, 194, 1, 191, 1, 176, 1, 206, 1, 192, 1, 138, 1, 234, 1, 191, 1, 54, 1, - 246, 1, 173, 1, 20, 1, 250, 1, 150, 1, 6, 1, 252, 1, 127, 1, 1, 1, 252, 1, - 112, 1, 0, 1, 252, 1, 112, 1, 0, 1, 252, 1, 131, 1, 0, 1, 252, 1, 154, 1, - 0, 1, 250, 1, 176, 1, 8, 1, 240, 1, 195, 1, 39, 1, 204, 1, 193, 1, 146, 1, - 192, 1, 191, 1, 183, 1, 190, 39, 191, 1, 190, 2, 191, 1, 190, 1, 187, 1, 192, 1, - 191, 1, 182, 1, 193, 1, 191, 1, 179, 1, 192, 1, 191, 1, 182, 1, 191, 1, 190, 1, - 188, 1, 190, 12, 191, 48, 190, 3, 189, 3, 188, 3, 185, 3, 182, 3, 178, 3, 173, 3, - 166, 3, 158, 3, 150, 3, 141, 3, 132, 3, 123, 3, 116, 3, 109, 3, 104, 3, 100, 3, - 98, 3, 97, 3, 98, 3, 100, 3, 104, 3, 107, 3, 113, 3, 118, 3, 123, 3, 128, 3, - 132, 3, 134, 3, 136, 3, 135, 3, 133, 3, 130, 3, 126, 3, 122, 3, 119, 3, 118, 3, - 117, 3, 118, 3, 121, 3, 125, 3, 131, 3, 137, 3, 144, 3, 152, 3, 158, 3, 165, 3, - 170, 3, 175, 3, 179, 3, 181, 3, 182, 6, 181, 3, 179, 3, 175, 3, 171, 3, 166, 3, - 161, 3, 155, 3, 149, 3, 143, 3, 137, 3, 132, 3, 128, 3, 124, 3, 122, 3, 120, 6, - 121, 3, 123, 3, 125, 3, 126, 3, 128, 6, 126, 3, 125, 3, 121, 3, 117, 3, 113, 3, - 109, 3, 106, 3, 104, 3, 102, 3, 103, 3, 104, 3, 108, 3, 113, 3, 119, 3, 125, 3, - 132, 3, 137, 3, 142, 3, 144, 3, 145, 3, 143, 3, 139, 3, 134, 3, 128, 3, 121, 3, - 115, 3, 110, 3, 105, 3, 101, 3, 98, 3, 97, 3, 96, 6, 98, 3, 100, 3, 103, 3, - 107, 3, 110, 3, 116, 3, 121, 3, 125, 3, 129, 3, 131, 3, 132, 3, 131, 3, 128, 3, - 124, 3, 119, 3, 114, 3, 110, 3, 105, 3, 102, 3, 100, 3, 98, 9, 99, 3, 101, 3, - 104, 3, 109, 3, 113, 3, 119, 3, 125, 3, 130, 3, 135, 3, 140, 3, 143, 9, 140, 3, - 136, 3, 130, 3, 124, 3, 118, 3, 112, 3, 107, 3, 103, 3, 100, 3, 98, 3, 96, 9, - 98, 3, 100, 3, 104, 3, 108, 3, 113, 3, 119, 3, 126, 3, 133, 3, 139, 3, 144, 3, - 147, 3, 149, 3, 147, 3, 144, 3, 139, 3, 133, 3, 126, 3, 119, 3, 113, 3, 108, 3, - 104, 3, 100, 3, 98, 3, 97, 6, 98, 3, 99, 3, 103, 3, 107, 3, 112, 3, 119, 3, - 126, 3, 134, 3, 143, 3, 152, 3, 160, 3, 167, 3, 173, 3, 179, 3, 182, 3, 185, 3, - 188, 3, 189, 3, 190, 3, 191, 60, 190, 3, 189, 3, 188, 3, 186, 3, 184, 3, 180, 3, - 176, 3, 170, 3, 163, 3, 155, 3, 146, 3, 137, 3, 129, 3, 121, 3, 114, 3, 108, 3, - 104, 3, 100, 3, 98, 3, 97, 3, 96, 3, 97, 3, 98, 3, 101, 3, 105, 3, 110, 3, - 116, 3, 124, 3, 132, 3, 140, 3, 149, 3, 158, 3, 165, 3, 172, 3, 177, 3, 182, 3, - 185, 3, 187, 3, 188, 3, 190, 3, 191, 69, 190, 3, 188, 3, 187, 3, 185, 3, 182, 3, - 177, 3, 172, 3, 165, 3, 158, 3, 149, 3, 140, 3, 132, 3, 124, 3, 116, 3, 110, 3, - 105, 3, 101, 3, 98, 3, 97, 3, 96, 3, 97, 3, 98, 3, 100, 3, 104, 3, 108, 3, - 114, 3, 121, 3, 129, 3, 137, 3, 146, 3, 155, 3, 163, 3, 170, 3, 176, 3, 180, 3, - 184, 3, 186, 3, 188, 3, 189, 3, 190, 3, 191, 21, 190, 6, 188, 6, 185, 3, 183, 3, - 180, 3, 176, 3, 171, 3, 165, 3, 159, 3, 152, 3, 146, 3, 139, 3, 132, 3, 125, 3, - 120, 3, 116, 3, 113, 3, 110, 6, 111, 3, 113, 3, 117, 3, 120, 3, 124, 3, 126, 3, - 128, 3, 127, 3, 125, 3, 122, 3, 119, 3, 115, 3, 112, 3, 110, 3, 108, 3, 109, 3, - 111, 3, 114, 3, 119, 3, 125, 3, 131, 3, 139, 3, 146, 3, 153, 3, 160, 3, 166, 3, - 171, 3, 176, 3, 180, 3, 183, 3, 186, 3, 188, 3, 189, 3, 190, 6, 191, 87, 190, 66, - 192, 1, 191, 1, 181, 1, 210, 1, 195, 1, 126, 1, 242, 1, 191, 1, 31, 1, 250, 1, - 171, 1, 6, 1, 252, 1, 149, 1, 0, 1, 252, 1, 129, 1, 0, 1, 252, 1, 139, 1, - 2, 1, 249, 1, 162, 1, 11, 1, 242, 1, 185, 1, 32, 1, 219, 1, 193, 1, 100, 1, - 196, 1, 191, 1, 169, 1, 191, 1, 190, 1, 186, 1, 190, 27, 191, 1, 190, 1, 188, 1, - 194, 1, 191, 1, 177, 1, 206, 1, 192, 1, 140, 1, 234, 1, 191, 1, 56, 1, 245, 1, - 173, 1, 21, 1, 250, 1, 150, 1, 6, 1, 252, 1, 128, 1, 1, 1, 252, 1, 117, 1, - 0, 1, 252, 1, 135, 1, 0, 1, 252, 1, 157, 1, 1, 1, 249, 1, 180, 1, 11, 1, - 234, 1, 196, 1, 54, 1, 201, 1, 193, 1, 155, 1, 191, 1, 190, 1, 185, 1, 190, 48, - 191, 1, 190, 2, 191, 1, 190, 17, 191, 48, 190, 3, 189, 3, 188, 3, 186, 3, 184, 3, - 180, 3, 176, 3, 170, 3, 164, 3, 156, 3, 149, 3, 141, 3, 134, 3, 128, 3, 122, 3, - 117, 3, 114, 3, 113, 3, 112, 6, 114, 3, 116, 3, 120, 3, 124, 3, 128, 3, 133, 3, - 137, 3, 140, 3, 143, 3, 144, 6, 143, 3, 141, 3, 138, 3, 135, 3, 133, 3, 131, 6, - 132, 3, 134, 3, 138, 3, 143, 3, 149, 3, 154, 3, 160, 3, 166, 3, 171, 3, 176, 3, - 179, 3, 182, 3, 184, 3, 185, 6, 184, 3, 182, 3, 179, 3, 176, 3, 173, 3, 169, 3, - 164, 3, 159, 3, 154, 3, 149, 3, 145, 3, 140, 3, 137, 3, 135, 3, 134, 12, 136, 3, - 137, 9, 135, 3, 134, 3, 131, 3, 127, 3, 124, 3, 121, 3, 118, 3, 116, 9, 118, 3, - 121, 3, 125, 3, 131, 3, 136, 3, 141, 3, 146, 3, 150, 3, 152, 6, 151, 3, 148, 3, - 144, 3, 139, 3, 134, 3, 128, 3, 124, 3, 120, 3, 117, 3, 115, 3, 113, 9, 114, 3, - 116, 3, 118, 3, 121, 3, 125, 3, 129, 3, 133, 3, 137, 3, 140, 3, 142, 6, 141, 3, - 139, 3, 136, 3, 132, 3, 128, 3, 124, 3, 120, 3, 117, 3, 116, 3, 114, 3, 113, 6, - 115, 3, 116, 3, 119, 3, 122, 3, 125, 3, 130, 3, 134, 3, 139, 3, 143, 3, 146, 3, - 149, 3, 150, 6, 148, 3, 145, 3, 140, 3, 136, 3, 131, 3, 126, 3, 122, 3, 119, 3, - 116, 3, 114, 3, 113, 9, 114, 3, 116, 3, 119, 3, 122, 3, 127, 3, 132, 3, 137, 3, - 143, 3, 148, 3, 152, 3, 155, 3, 156, 3, 155, 3, 152, 3, 148, 3, 143, 3, 137, 3, - 132, 3, 127, 3, 122, 3, 119, 3, 116, 3, 114, 3, 113, 6, 114, 3, 116, 3, 118, 3, - 122, 3, 126, 3, 131, 3, 137, 3, 145, 3, 152, 3, 159, 3, 165, 3, 172, 3, 176, 3, - 181, 3, 184, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 63, 190, 3, 188, 6, 185, 3, - 182, 3, 179, 3, 173, 3, 167, 3, 161, 3, 154, 3, 147, 3, 140, 3, 134, 3, 128, 3, - 123, 3, 119, 3, 116, 3, 114, 3, 113, 9, 115, 3, 117, 3, 120, 3, 125, 3, 129, 3, - 136, 3, 142, 3, 149, 3, 156, 3, 164, 3, 170, 3, 175, 3, 179, 3, 183, 3, 186, 3, - 188, 3, 189, 3, 190, 3, 191, 69, 190, 3, 189, 3, 188, 3, 186, 3, 183, 3, 179, 3, - 175, 3, 170, 3, 164, 3, 156, 3, 149, 3, 142, 3, 136, 3, 129, 3, 125, 3, 120, 3, - 117, 3, 115, 3, 113, 9, 114, 3, 116, 3, 119, 3, 123, 3, 128, 3, 134, 3, 140, 3, - 147, 3, 154, 3, 161, 3, 167, 3, 173, 3, 179, 3, 182, 3, 185, 3, 188, 6, 190, 3, - 191, 27, 190, 3, 189, 3, 188, 3, 187, 3, 185, 3, 183, 3, 180, 3, 176, 3, 172, 3, - 167, 3, 161, 3, 156, 3, 150, 3, 144, 3, 139, 3, 134, 3, 130, 3, 127, 3, 125, 9, - 127, 3, 129, 3, 132, 3, 134, 3, 137, 9, 136, 3, 134, 3, 131, 3, 128, 3, 125, 3, - 123, 6, 124, 3, 125, 3, 129, 3, 133, 3, 138, 3, 144, 3, 150, 3, 156, 3, 162, 3, - 167, 3, 172, 3, 176, 3, 180, 3, 183, 3, 185, 3, 188, 6, 189, 3, 190, 3, 191, 90, - 190, 66, 192, 1, 191, 1, 182, 1, 208, 1, 195, 1, 134, 1, 242, 1, 192, 1, 33, 1, - 250, 1, 172, 1, 7, 1, 252, 1, 150, 1, 0, 1, 252, 1, 139, 1, 1, 1, 250, 1, - 159, 1, 9, 1, 243, 1, 181, 1, 28, 1, 225, 1, 194, 1, 84, 1, 197, 1, 191, 1, - 165, 1, 191, 1, 190, 1, 185, 1, 190, 33, 191, 1, 190, 1, 188, 1, 193, 1, 191, 1, - 178, 1, 205, 1, 191, 1, 143, 1, 233, 1, 191, 1, 59, 1, 245, 1, 173, 1, 22, 1, - 250, 1, 151, 1, 6, 1, 252, 1, 130, 1, 1, 1, 252, 1, 139, 1, 0, 1, 252, 1, - 161, 1, 1, 1, 248, 1, 183, 1, 14, 1, 229, 1, 196, 1, 71, 1, 198, 1, 192, 1, - 162, 1, 191, 1, 190, 1, 187, 1, 190, 69, 191, 48, 190, 6, 188, 3, 187, 3, 185, 3, - 182, 3, 179, 3, 174, 3, 169, 3, 163, 3, 157, 3, 151, 3, 145, 3, 140, 3, 135, 3, - 131, 3, 128, 3, 127, 3, 126, 3, 127, 3, 128, 3, 130, 3, 132, 3, 136, 3, 139, 3, - 143, 3, 146, 3, 149, 3, 152, 6, 153, 3, 152, 3, 150, 3, 149, 3, 146, 3, 145, 3, - 143, 6, 145, 3, 147, 3, 150, 3, 154, 3, 158, 3, 163, 3, 167, 3, 172, 3, 176, 3, - 179, 3, 182, 3, 185, 3, 186, 3, 187, 6, 186, 3, 185, 3, 183, 3, 181, 3, 178, 3, - 175, 3, 171, 3, 167, 3, 164, 3, 160, 3, 156, 3, 152, 3, 149, 3, 148, 3, 146, 24, - 145, 3, 143, 3, 140, 3, 138, 3, 135, 3, 133, 3, 131, 3, 130, 3, 129, 3, 130, 3, - 131, 3, 134, 3, 137, 3, 142, 3, 146, 3, 151, 3, 155, 3, 158, 3, 160, 6, 159, 3, - 156, 3, 153, 3, 149, 3, 145, 3, 140, 3, 137, 3, 134, 3, 131, 3, 130, 3, 128, 9, - 129, 3, 131, 3, 132, 3, 134, 3, 137, 3, 141, 3, 144, 3, 147, 3, 149, 3, 151, 3, - 152, 3, 151, 3, 149, 3, 146, 3, 143, 3, 140, 3, 137, 3, 134, 3, 132, 3, 130, 3, - 129, 3, 128, 6, 129, 3, 131, 3, 132, 3, 134, 3, 137, 3, 140, 3, 144, 3, 148, 3, - 152, 3, 154, 3, 156, 3, 158, 3, 157, 3, 155, 3, 153, 3, 150, 3, 146, 3, 142, 3, - 138, 3, 135, 3, 132, 3, 131, 3, 129, 3, 128, 9, 129, 3, 131, 3, 133, 3, 136, 3, - 140, 3, 143, 3, 148, 3, 152, 3, 157, 3, 160, 3, 162, 3, 163, 3, 162, 3, 160, 3, - 157, 3, 152, 3, 148, 3, 143, 3, 140, 3, 136, 3, 133, 3, 131, 3, 129, 3, 128, 6, - 129, 3, 130, 3, 132, 3, 135, 3, 139, 3, 143, 3, 148, 3, 154, 3, 159, 3, 165, 3, - 170, 3, 176, 3, 179, 3, 183, 3, 185, 3, 188, 3, 189, 3, 190, 3, 191, 66, 190, 3, - 189, 3, 188, 3, 186, 3, 184, 3, 181, 3, 177, 3, 172, 3, 167, 3, 161, 3, 155, 3, - 150, 3, 145, 3, 140, 3, 136, 3, 133, 3, 131, 3, 129, 3, 128, 9, 130, 3, 131, 3, - 134, 3, 137, 3, 141, 3, 146, 3, 152, 3, 158, 3, 163, 3, 169, 3, 173, 3, 178, 3, - 182, 3, 185, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 69, 190, 3, 189, 3, 188, 3, - 187, 3, 185, 3, 182, 3, 178, 3, 173, 3, 169, 3, 163, 3, 158, 3, 152, 3, 146, 3, - 141, 3, 137, 3, 134, 3, 131, 3, 130, 3, 128, 9, 129, 3, 131, 3, 133, 3, 136, 3, - 140, 3, 145, 3, 150, 3, 155, 3, 161, 3, 167, 3, 172, 3, 177, 3, 181, 3, 184, 3, - 186, 3, 188, 3, 189, 3, 190, 3, 191, 30, 190, 3, 189, 3, 188, 3, 187, 3, 185, 3, - 183, 3, 180, 3, 177, 3, 173, 3, 170, 3, 165, 3, 160, 3, 155, 3, 151, 3, 147, 3, - 143, 3, 140, 3, 139, 3, 138, 6, 140, 3, 141, 3, 143, 3, 146, 3, 147, 3, 148, 3, - 147, 3, 146, 3, 144, 3, 142, 3, 140, 3, 138, 3, 137, 9, 139, 3, 142, 3, 146, 3, - 150, 3, 155, 3, 160, 3, 164, 3, 169, 3, 173, 3, 177, 3, 181, 3, 183, 3, 185, 3, - 187, 3, 188, 3, 189, 3, 190, 3, 191, 93, 190, 66, 191, 2, 183, 1, 205, 1, 194, 1, - 141, 1, 241, 1, 193, 1, 35, 1, 250, 1, 174, 1, 8, 1, 252, 1, 152, 1, 2, 1, - 250, 1, 156, 1, 7, 1, 244, 1, 178, 1, 25, 1, 230, 1, 193, 1, 68, 1, 200, 1, - 191, 1, 158, 1, 191, 2, 184, 1, 191, 1, 190, 38, 191, 1, 190, 1, 188, 1, 193, 1, - 191, 1, 178, 1, 205, 1, 191, 1, 144, 1, 233, 1, 191, 1, 59, 1, 245, 1, 174, 1, - 22, 1, 250, 1, 151, 1, 6, 1, 252, 1, 144, 1, 1, 1, 252, 1, 165, 1, 3, 1, - 247, 1, 186, 1, 18, 1, 223, 1, 196, 1, 89, 1, 196, 1, 192, 1, 169, 1, 191, 1, - 190, 1, 188, 1, 190, 69, 191, 51, 190, 3, 189, 3, 188, 3, 186, 3, 184, 3, 182, 3, - 178, 3, 174, 3, 170, 3, 164, 3, 160, 3, 155, 3, 151, 3, 147, 3, 144, 3, 143, 3, - 141, 3, 140, 6, 141, 3, 143, 3, 145, 3, 147, 3, 149, 3, 152, 3, 155, 3, 158, 3, - 160, 3, 161, 9, 160, 3, 158, 3, 157, 3, 155, 9, 156, 3, 158, 3, 161, 3, 164, 3, - 167, 3, 170, 3, 174, 3, 178, 3, 181, 3, 183, 3, 185, 3, 187, 3, 188, 12, 187, 3, - 186, 3, 184, 3, 182, 3, 180, 3, 177, 3, 174, 3, 171, 3, 168, 3, 165, 3, 163, 3, - 161, 3, 158, 3, 157, 3, 156, 18, 155, 3, 154, 3, 152, 3, 151, 3, 149, 3, 146, 3, - 145, 3, 143, 12, 144, 3, 146, 3, 149, 3, 152, 3, 156, 3, 160, 3, 163, 3, 165, 3, - 167, 6, 166, 3, 164, 3, 161, 3, 158, 3, 155, 3, 152, 3, 149, 3, 147, 3, 145, 3, - 143, 15, 144, 3, 146, 3, 148, 3, 150, 3, 152, 3, 155, 3, 158, 3, 159, 3, 161, 6, - 160, 3, 158, 3, 157, 3, 155, 3, 152, 3, 149, 3, 147, 3, 146, 3, 144, 3, 143, 12, - 144, 3, 145, 3, 146, 3, 149, 3, 152, 3, 154, 3, 157, 3, 159, 3, 162, 3, 164, 12, - 161, 3, 159, 3, 156, 3, 153, 3, 150, 3, 148, 3, 146, 3, 144, 3, 143, 15, 144, 3, - 146, 3, 149, 3, 151, 3, 155, 3, 158, 3, 161, 3, 164, 3, 167, 3, 169, 9, 167, 3, - 164, 3, 161, 3, 158, 3, 155, 3, 151, 3, 149, 3, 146, 3, 145, 3, 143, 12, 144, 3, - 146, 3, 148, 3, 151, 3, 154, 3, 158, 3, 162, 3, 167, 3, 171, 3, 175, 3, 179, 3, - 182, 3, 185, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 66, 190, 6, 188, 6, 185, 3, - 183, 3, 180, 3, 176, 3, 173, 3, 168, 3, 164, 3, 159, 3, 155, 3, 152, 3, 149, 3, - 146, 3, 145, 3, 143, 12, 144, 3, 145, 3, 147, 3, 149, 3, 153, 3, 157, 3, 161, 3, - 165, 3, 170, 3, 174, 3, 178, 3, 181, 3, 184, 3, 186, 3, 188, 3, 189, 3, 190, 3, - 191, 75, 190, 3, 189, 3, 188, 3, 186, 3, 184, 3, 181, 3, 178, 3, 174, 3, 170, 3, - 165, 3, 161, 3, 157, 3, 153, 3, 149, 3, 147, 3, 145, 3, 144, 3, 143, 12, 145, 3, - 146, 3, 149, 3, 152, 3, 155, 3, 159, 3, 164, 3, 168, 3, 173, 3, 176, 3, 180, 3, - 183, 3, 185, 3, 188, 6, 190, 6, 191, 33, 190, 3, 189, 3, 188, 3, 187, 3, 185, 3, - 184, 3, 182, 3, 179, 3, 176, 3, 172, 3, 168, 3, 164, 3, 161, 3, 158, 3, 155, 3, - 153, 3, 151, 3, 150, 6, 151, 3, 152, 3, 154, 3, 155, 3, 156, 3, 157, 6, 156, 3, - 155, 3, 152, 3, 151, 3, 149, 12, 152, 3, 154, 3, 157, 3, 161, 3, 164, 3, 168, 3, - 172, 3, 176, 3, 179, 3, 182, 3, 184, 3, 185, 3, 188, 6, 189, 3, 190, 3, 191, 96, - 190, 66, 191, 2, 184, 1, 203, 1, 194, 1, 147, 1, 240, 1, 194, 1, 39, 1, 249, 1, - 175, 1, 10, 1, 250, 1, 159, 1, 7, 1, 245, 1, 174, 1, 22, 1, 234, 1, 192, 1, - 57, 1, 203, 1, 192, 1, 148, 1, 192, 1, 191, 1, 182, 1, 191, 1, 190, 1, 189, 1, - 190, 42, 191, 1, 190, 1, 188, 1, 193, 1, 191, 1, 178, 1, 204, 1, 191, 1, 145, 1, - 232, 1, 191, 1, 61, 1, 245, 1, 174, 1, 22, 1, 250, 1, 156, 1, 7, 1, 251, 1, - 168, 1, 5, 1, 245, 1, 190, 1, 22, 1, 217, 1, 196, 1, 107, 1, 194, 1, 191, 1, - 174, 1, 191, 1, 190, 1, 189, 1, 190, 69, 191, 51, 190, 6, 188, 6, 186, 3, 184, 3, - 181, 3, 178, 3, 175, 3, 171, 3, 167, 3, 164, 3, 161, 3, 158, 3, 156, 3, 154, 3, - 153, 3, 152, 6, 153, 3, 155, 6, 158, 3, 159, 3, 161, 3, 164, 3, 166, 3, 167, 3, - 168, 9, 167, 6, 166, 3, 165, 3, 164, 3, 165, 3, 166, 3, 167, 3, 169, 3, 171, 3, - 174, 3, 176, 3, 179, 3, 182, 3, 184, 3, 185, 3, 187, 3, 188, 3, 189, 12, 188, 6, - 187, 3, 185, 3, 184, 3, 182, 3, 180, 3, 178, 3, 176, 3, 173, 3, 171, 3, 169, 3, - 167, 6, 166, 3, 165, 12, 164, 6, 163, 3, 161, 3, 160, 3, 158, 3, 157, 3, 156, 3, - 155, 3, 154, 6, 155, 6, 158, 3, 160, 3, 162, 3, 165, 3, 167, 3, 170, 3, 172, 3, - 173, 9, 171, 3, 169, 3, 167, 3, 164, 3, 162, 3, 160, 3, 158, 3, 157, 3, 155, 15, - 156, 3, 157, 3, 158, 3, 161, 3, 162, 3, 164, 3, 166, 3, 167, 3, 168, 9, 167, 3, - 165, 3, 164, 3, 161, 3, 160, 3, 158, 3, 157, 3, 156, 3, 155, 15, 157, 3, 158, 3, - 159, 3, 161, 3, 163, 3, 165, 3, 167, 3, 169, 3, 170, 12, 169, 3, 167, 3, 165, 3, - 163, 3, 161, 3, 159, 3, 158, 3, 156, 3, 155, 15, 156, 3, 158, 3, 159, 3, 161, 3, - 164, 3, 167, 3, 169, 3, 171, 3, 173, 3, 174, 3, 175, 3, 174, 3, 173, 3, 171, 3, - 169, 3, 167, 3, 164, 3, 161, 3, 159, 3, 158, 3, 156, 3, 155, 12, 156, 3, 157, 3, - 159, 3, 161, 3, 164, 3, 167, 3, 170, 3, 173, 3, 176, 3, 179, 3, 182, 3, 185, 3, - 186, 3, 188, 3, 189, 3, 190, 3, 191, 72, 190, 3, 189, 3, 188, 3, 187, 3, 185, 3, - 183, 3, 180, 3, 177, 3, 174, 3, 170, 3, 167, 3, 164, 3, 161, 3, 159, 3, 158, 3, - 156, 3, 155, 15, 157, 3, 158, 3, 160, 3, 163, 3, 165, 3, 168, 3, 172, 3, 175, 3, - 178, 3, 181, 3, 184, 3, 185, 3, 188, 6, 190, 6, 191, 75, 190, 6, 188, 6, 185, 3, - 184, 3, 181, 3, 178, 3, 175, 3, 172, 3, 168, 3, 165, 3, 163, 3, 160, 3, 158, 3, - 157, 3, 155, 15, 156, 3, 158, 3, 159, 3, 161, 3, 164, 3, 167, 3, 170, 3, 174, 3, - 177, 3, 180, 3, 183, 3, 185, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 39, 190, 3, - 189, 3, 188, 6, 186, 3, 185, 3, 182, 3, 180, 3, 178, 3, 175, 3, 173, 3, 170, 3, - 167, 3, 165, 3, 163, 3, 161, 12, 162, 3, 163, 3, 164, 3, 165, 9, 164, 6, 162, 3, - 161, 3, 160, 3, 159, 3, 160, 3, 161, 3, 162, 3, 164, 3, 167, 3, 169, 3, 172, 3, - 175, 3, 178, 3, 180, 3, 182, 3, 185, 3, 186, 3, 188, 6, 189, 3, 190, 3, 191, 99, - 190, 66, 191, 2, 185, 1, 202, 1, 193, 1, 153, 1, 238, 1, 195, 1, 43, 1, 247, 1, - 177, 1, 15, 1, 246, 1, 172, 1, 20, 1, 237, 1, 191, 1, 48, 1, 207, 1, 193, 1, - 136, 1, 193, 1, 191, 1, 180, 1, 191, 1, 190, 1, 189, 1, 190, 48, 191, 1, 190, 1, - 188, 1, 193, 1, 191, 1, 179, 1, 204, 1, 191, 1, 146, 1, 232, 1, 191, 1, 61, 1, - 245, 1, 176, 1, 22, 1, 248, 1, 173, 1, 12, 1, 243, 1, 192, 1, 28, 1, 211, 1, - 195, 1, 125, 1, 193, 1, 191, 1, 178, 1, 191, 1, 190, 71, 191, 54, 190, 3, 189, 3, - 188, 6, 185, 3, 184, 3, 182, 3, 179, 3, 176, 3, 174, 3, 171, 3, 169, 3, 167, 3, - 165, 3, 164, 6, 163, 6, 164, 6, 165, 3, 167, 3, 168, 3, 170, 3, 171, 3, 172, 3, - 173, 3, 174, 12, 173, 18, 174, 3, 176, 3, 177, 3, 179, 3, 181, 3, 183, 3, 185, 3, - 186, 3, 188, 6, 189, 3, 190, 15, 189, 3, 188, 6, 186, 3, 185, 3, 184, 3, 182, 3, - 180, 3, 179, 3, 177, 3, 176, 3, 175, 3, 174, 3, 173, 12, 172, 6, 171, 3, 170, 6, - 168, 3, 167, 3, 166, 3, 165, 3, 164, 12, 165, 3, 167, 3, 168, 3, 170, 3, 172, 3, - 174, 3, 176, 3, 177, 3, 178, 9, 176, 6, 173, 3, 172, 3, 170, 3, 169, 3, 167, 6, - 166, 3, 165, 12, 166, 3, 167, 6, 169, 3, 170, 3, 172, 3, 173, 3, 174, 3, 175, 6, - 174, 3, 173, 6, 171, 3, 170, 3, 169, 3, 167, 6, 166, 3, 165, 15, 166, 3, 167, 3, - 168, 3, 169, 3, 170, 3, 172, 3, 173, 3, 175, 3, 176, 12, 175, 3, 173, 3, 172, 3, - 170, 3, 169, 3, 168, 3, 167, 3, 166, 3, 165, 15, 166, 3, 167, 3, 168, 3, 170, 3, - 171, 3, 173, 3, 175, 3, 176, 3, 178, 3, 179, 9, 178, 3, 176, 3, 175, 3, 173, 3, - 171, 3, 170, 3, 168, 3, 167, 3, 166, 3, 165, 12, 166, 3, 167, 3, 168, 3, 170, 3, - 171, 3, 173, 3, 176, 3, 178, 3, 180, 3, 182, 3, 185, 3, 186, 3, 188, 6, 190, 6, - 191, 72, 190, 6, 189, 3, 188, 3, 187, 3, 185, 3, 183, 3, 181, 3, 179, 3, 176, 3, - 174, 3, 172, 3, 170, 3, 168, 3, 167, 3, 166, 3, 165, 12, 166, 3, 167, 6, 169, 3, - 170, 3, 173, 3, 175, 3, 177, 3, 179, 3, 182, 3, 184, 3, 185, 3, 187, 3, 188, 3, - 189, 3, 190, 3, 191, 81, 190, 3, 189, 3, 188, 3, 187, 3, 185, 3, 184, 3, 182, 3, - 179, 3, 177, 3, 175, 3, 173, 3, 170, 3, 169, 3, 167, 6, 166, 3, 165, 12, 166, 3, - 167, 3, 168, 3, 170, 3, 172, 3, 174, 3, 176, 3, 179, 3, 181, 3, 183, 3, 185, 3, - 187, 3, 188, 3, 189, 3, 190, 6, 191, 42, 190, 3, 189, 6, 188, 3, 187, 3, 185, 3, - 184, 3, 182, 3, 180, 3, 179, 3, 176, 3, 175, 3, 173, 3, 171, 3, 170, 15, 171, 6, - 172, 12, 171, 3, 170, 3, 169, 3, 168, 9, 169, 3, 170, 3, 172, 3, 174, 3, 176, 3, - 178, 3, 180, 3, 182, 3, 184, 3, 185, 3, 187, 3, 188, 3, 189, 3, 190, 6, 191, 102, - 190, 66, 191, 1, 190, 1, 186, 1, 200, 1, 193, 1, 158, 1, 235, 1, 196, 1, 53, 1, - 243, 1, 181, 1, 28, 1, 238, 1, 188, 1, 42, 1, 212, 1, 193, 1, 120, 1, 193, 1, - 191, 1, 177, 1, 191, 1, 190, 1, 188, 1, 190, 54, 191, 1, 190, 1, 188, 1, 193, 1, - 191, 1, 179, 1, 204, 1, 191, 1, 146, 1, 232, 1, 191, 1, 63, 1, 243, 1, 183, 1, - 29, 1, 238, 1, 194, 1, 42, 1, 205, 1, 194, 1, 143, 1, 192, 1, 191, 1, 182, 1, - 190, 72, 191, 57, 190, 3, 189, 3, 188, 6, 186, 3, 185, 3, 183, 3, 181, 3, 179, 3, - 178, 3, 176, 3, 175, 3, 173, 9, 172, 9, 173, 6, 174, 3, 175, 3, 176, 3, 177, 3, - 178, 3, 179, 33, 180, 3, 181, 3, 182, 3, 183, 3, 185, 3, 186, 3, 187, 3, 188, 6, - 189, 3, 190, 6, 191, 9, 190, 6, 189, 6, 188, 6, 186, 3, 185, 6, 183, 3, 182, 3, - 181, 3, 180, 3, 179, 15, 178, 6, 177, 3, 176, 6, 175, 3, 174, 3, 173, 21, 174, 3, - 176, 6, 178, 3, 179, 3, 181, 3, 182, 15, 180, 3, 179, 3, 178, 3, 177, 3, 176, 3, - 175, 6, 174, 6, 173, 6, 174, 6, 175, 3, 176, 6, 177, 3, 178, 3, 179, 6, 180, 9, - 179, 6, 178, 3, 177, 3, 176, 6, 175, 3, 174, 6, 173, 9, 174, 6, 175, 3, 176, 6, - 177, 3, 178, 3, 179, 6, 180, 3, 181, 9, 180, 3, 179, 6, 177, 3, 176, 6, 175, 3, - 174, 6, 173, 9, 174, 6, 175, 3, 176, 6, 178, 3, 179, 3, 180, 3, 182, 6, 183, 9, - 182, 6, 180, 3, 179, 3, 178, 3, 177, 3, 176, 3, 175, 3, 174, 6, 173, 6, 174, 6, - 175, 3, 176, 6, 178, 3, 179, 3, 181, 3, 182, 3, 184, 3, 185, 3, 187, 3, 188, 6, - 189, 3, 190, 3, 191, 78, 190, 6, 189, 3, 188, 3, 187, 3, 186, 3, 185, 3, 183, 3, - 181, 3, 179, 3, 178, 3, 177, 3, 176, 3, 175, 3, 174, 6, 173, 6, 174, 6, 175, 3, - 176, 6, 177, 3, 179, 3, 180, 3, 182, 3, 183, 3, 185, 3, 186, 3, 188, 6, 189, 3, - 190, 3, 191, 87, 190, 3, 189, 3, 188, 6, 186, 3, 185, 3, 183, 3, 182, 3, 180, 3, - 179, 3, 177, 3, 176, 6, 175, 3, 174, 6, 173, 6, 174, 6, 175, 3, 176, 3, 177, 3, - 178, 3, 179, 3, 181, 3, 183, 3, 185, 3, 186, 3, 187, 3, 188, 3, 189, 3, 190, 6, - 191, 48, 190, 6, 189, 3, 188, 6, 187, 3, 185, 3, 184, 3, 183, 3, 182, 3, 180, 3, - 179, 3, 178, 3, 177, 3, 176, 9, 177, 6, 178, 15, 177, 3, 176, 18, 177, 3, 178, 3, - 179, 3, 181, 3, 182, 3, 184, 3, 185, 3, 186, 3, 188, 6, 189, 3, 190, 6, 191, 105, - 190, 66, 191, 1, 190, 1, 187, 1, 197, 1, 192, 1, 165, 1, 229, 1, 195, 1, 71, 1, - 236, 1, 189, 1, 49, 1, 218, 1, 194, 1, 105, 1, 194, 1, 191, 1, 175, 1, 191, 1, - 190, 1, 188, 1, 190, 60, 191, 1, 190, 1, 188, 1, 193, 1, 191, 1, 179, 1, 203, 1, - 192, 1, 149, 1, 228, 1, 194, 1, 73, 1, 229, 1, 195, 1, 70, 1, 199, 1, 192, 1, - 160, 1, 191, 2, 185, 1, 190, 72, 191, 60, 190, 3, 189, 3, 188, 6, 187, 3, 185, 6, - 183, 3, 182, 3, 181, 3, 180, 3, 179, 27, 180, 3, 181, 3, 182, 6, 183, 33, 184, 3, - 185, 6, 186, 3, 187, 3, 188, 6, 189, 3, 190, 6, 191, 21, 190, 6, 189, 6, 188, 6, - 187, 3, 186, 3, 185, 9, 184, 3, 183, 9, 182, 15, 181, 3, 180, 6, 179, 21, 180, 3, - 181, 3, 182, 6, 183, 3, 184, 3, 185, 15, 184, 3, 183, 3, 182, 6, 181, 3, 180, 6, - 179, 15, 180, 6, 181, 6, 182, 6, 183, 6, 184, 9, 183, 6, 182, 6, 181, 6, 180, 3, - 179, 21, 180, 6, 181, 3, 182, 6, 183, 6, 184, 15, 183, 3, 182, 9, 181, 3, 180, 6, - 179, 15, 180, 6, 181, 3, 182, 6, 183, 3, 184, 3, 185, 9, 186, 3, 185, 9, 184, 3, - 183, 3, 182, 6, 181, 3, 180, 6, 179, 12, 180, 6, 181, 3, 182, 6, 183, 3, 184, 3, - 185, 3, 186, 3, 187, 3, 188, 3, 189, 3, 190, 6, 191, 84, 190, 6, 189, 3, 188, 6, - 187, 3, 185, 6, 183, 3, 182, 6, 181, 3, 180, 6, 179, 15, 180, 3, 181, 6, 182, 3, - 183, 3, 184, 3, 185, 3, 186, 3, 187, 3, 188, 6, 189, 3, 190, 6, 191, 87, 190, 6, - 189, 3, 188, 6, 187, 3, 186, 3, 185, 3, 184, 3, 183, 3, 182, 3, 181, 6, 180, 3, - 179, 15, 180, 6, 181, 3, 182, 6, 183, 3, 185, 6, 187, 3, 188, 6, 189, 3, 190, 6, - 191, 57, 190, 6, 189, 3, 188, 6, 187, 3, 186, 3, 185, 3, 184, 3, 183, 3, 182, 42, - 181, 12, 182, 6, 183, 3, 184, 3, 185, 6, 187, 3, 188, 6, 189, 3, 190, 6, 191, 111, - 190, 66, 191, 1, 190, 1, 189, 1, 194, 1, 191, 1, 177, 1, 221, 1, 195, 1, 95, 1, - 219, 1, 195, 1, 99, 1, 195, 1, 191, 1, 173, 1, 191, 1, 190, 1, 187, 1, 190, 66, - 191, 1, 190, 1, 188, 1, 193, 1, 191, 1, 180, 1, 199, 1, 192, 1, 161, 1, 210, 1, - 195, 1, 128, 1, 193, 1, 191, 1, 177, 1, 191, 1, 190, 1, 188, 1, 190, 72, 191, 63, - 190, 6, 189, 3, 188, 6, 187, 3, 186, 3, 185, 9, 184, 6, 183, 15, 184, 6, 185, 12, - 186, 33, 187, 6, 188, 6, 189, 6, 190, 6, 191, 33, 190, 9, 189, 6, 188, 9, 187, 9, - 186, 9, 185, 18, 184, 9, 183, 9, 184, 9, 185, 6, 186, 6, 187, 6, 188, 9, 187, 6, - 186, 3, 185, 12, 184, 24, 185, 12, 186, 21, 185, 12, 184, 27, 185, 12, 186, 6, 187, 12, - 186, 6, 185, 15, 184, 21, 185, 12, 186, 3, 187, 6, 188, 15, 187, 6, 186, 3, 185, 12, - 184, 18, 185, 12, 186, 3, 187, 3, 188, 9, 189, 3, 190, 6, 191, 90, 190, 6, 189, 6, - 188, 6, 187, 3, 186, 3, 185, 12, 184, 21, 185, 9, 186, 3, 187, 6, 188, 6, 189, 3, - 190, 6, 191, 99, 190, 6, 189, 3, 188, 6, 187, 6, 186, 3, 185, 9, 184, 21, 185, 12, - 186, 3, 187, 3, 188, 6, 189, 6, 190, 6, 191, 63, 190, 9, 189, 3, 188, 9, 187, 3, - 186, 6, 185, 57, 186, 3, 187, 3, 188, 9, 189, 3, 190, 9, 191, 114, 190, 66, 191, 1, - 190, 2, 191, 1, 190, 1, 186, 1, 208, 1, 194, 1, 134, 1, 194, 1, 191, 1, 177, 1, - 191, 1, 190, 1, 187, 1, 191, 1, 190, 71, 191, 1, 190, 1, 189, 1, 191, 1, 190, 1, - 186, 1, 191, 2, 184, 1, 191, 1, 190, 1, 187, 1, 190, 75, 191, 66, 190, 6, 189, 6, - 188, 9, 187, 9, 186, 21, 187, 9, 188, 42, 189, 6, 190, 9, 191, 48, 190, 9, 189, 9, - 188, 27, 187, 12, 186, 18, 187, 6, 188, 15, 189, 6, 188, 21, 187, 30, 188, 39, 187, 33, - 188, 42, 187, 33, 188, 15, 189, 15, 188, 15, 187, 30, 188, 12, 189, 6, 190, 9, 191, 99, - 190, 6, 189, 6, 188, 12, 187, 30, 188, 15, 189, 6, 190, 6, 191, 105, 190, 6, 189, 6, - 188, 15, 187, 30, 188, 12, 189, 6, 190, 6, 191, 78, 190, 6, 189, 6, 188, 72, 189, 6, - 190, 9, 191, 120, 190, 72, 191, 1, 190, 1, 189, 1, 190, 138, 191, 99, 190, 9, 189, 9, - 188, 33, 189, 21, 190, 30, 191, 66, 190, 21, 189, 21, 188, 30, 189, 9, 190, 24, 189, 51, - 190, 15, 189, 57, 190, 21, 189, 48, 190, 33, 189, 42, 190, 12, 191, 114, 190, 12, 189, 45, - 190, 12, 191, 117, 190, 12, 189, 45, 190, 12, 191, 90, 190, 12, 189, 60, 190, 12, 191, 129, - 190, 213, 191, 108, 190, 54, 191, 132, 190, 54, 191, 255, 191, 255, 191, 255, 191, 18, 190, 48, - 191, 117, -};