commit 598c462af08c152a3bd8e42ac7707b1ddb5f6b5c Author: gnaygnil Date: Sat Nov 30 14:55:40 2019 +0800 xmms: openEuler init diff --git a/xmms-1.2.10-configfile-safe-write.patch b/xmms-1.2.10-configfile-safe-write.patch new file mode 100644 index 0000000..e78af47 --- /dev/null +++ b/xmms-1.2.10-configfile-safe-write.patch @@ -0,0 +1,72 @@ +--- xmms-1.2.10/libxmms/configfile.c.bak 2003-05-20 00:22:07.000000000 +0300 ++++ xmms-1.2.10/libxmms/configfile.c 2006-12-30 15:08:31.045540619 +0200 +@@ -123,12 +123,27 @@ gboolean xmms_cfg_write_file(ConfigFile + GList *section_list, *line_list; + ConfigSection *section; + ConfigLine *line; ++ gchar *tmpfn; ++ int tmpfnfd; + + g_return_val_if_fail(cfg != NULL, FALSE); + g_return_val_if_fail(filename != NULL, FALSE); + +- if (!(file = fopen(filename, "w"))) ++ tmpfn = g_strconcat(filename, ".XXXXXX", NULL); ++ if (!tmpfn) + return FALSE; ++ tmpfnfd = mkstemp(tmpfn); ++ if (tmpfnfd == -1) { ++ free (tmpfn); ++ return FALSE; ++ } ++ file = fdopen(tmpfnfd, "w"); ++ if (!file) { ++ unlink (tmpfn); ++ g_free (tmpfn); ++ close (tmpfnfd); ++ return FALSE; ++ } + + section_list = cfg->sections; + while (section_list) +@@ -136,20 +151,36 @@ gboolean xmms_cfg_write_file(ConfigFile + section = (ConfigSection *) section_list->data; + if (section->lines) + { +- fprintf(file, "[%s]\n", section->name); ++ if (fprintf(file, "[%s]\n", section->name) < 0) ++ goto err; + line_list = section->lines; + while (line_list) + { + line = (ConfigLine *) line_list->data; +- fprintf(file, "%s=%s\n", line->key, line->value); ++ if (fprintf(file, "%s=%s\n", line->key, line->value) < 0) ++ goto err; + line_list = g_list_next(line_list); + } +- fprintf(file, "\n"); ++ if (fprintf(file, "\n") < 0) ++ goto err; + } + section_list = g_list_next(section_list); + } +- fclose(file); ++ if (fflush (file) == EOF) ++ goto err; ++ if (fsync (tmpfnfd) == -1) /* dir not synced */ ++ goto err; ++ if (fclose(file) == EOF) ++ goto err; ++ if (rename (tmpfn, filename) == -1) ++ goto err; + return TRUE; ++ ++err: ++ fclose(file); ++ unlink(tmpfn); ++ g_free (tmpfn); ++ return FALSE; + } + + gboolean xmms_cfg_write_default_file(ConfigFile * cfg) diff --git a/xmms-1.2.10-gcc4.patch b/xmms-1.2.10-gcc4.patch new file mode 100644 index 0000000..ece297d --- /dev/null +++ b/xmms-1.2.10-gcc4.patch @@ -0,0 +1,24 @@ +--- xmms-1.2.10/General/ir/ir.h.orig 2001-03-05 23:17:44.000000000 +1000 ++++ xmms-1.2.10/General/ir/ir.h 2005-03-24 20:48:31.000000000 +1000 +@@ -49,8 +49,6 @@ + } + irConfig; + +-extern pthread_t irapp_thread; +-extern gboolean keepGoing; + extern irConfig ircfg; + extern gboolean irconf_is_going; + +--- xmms-1.2.10/xmms/sm.c.orig 2004-01-11 18:33:00.000000000 +0100 ++++ xmms-1.2.10/xmms/sm.c 2004-04-12 22:44:28.000000000 +0200 +@@ -147,8 +147,9 @@ + + #else + +-void sm_init(int argc, char **argv, const char *previous_session_id) ++const char * sm_init(int argc, char **argv, const char *previous_session_id) + { ++ return NULL; + } + + void sm_cleanup(void) diff --git a/xmms-1.2.10-reposition.patch b/xmms-1.2.10-reposition.patch new file mode 100644 index 0000000..6598ee3 --- /dev/null +++ b/xmms-1.2.10-reposition.patch @@ -0,0 +1,20 @@ +--- xmms-1.2.10/xmms/dock.c.bak 2001-03-08 07:48:38.000000000 +0200 ++++ xmms-1.2.10/xmms/dock.c 2007-01-12 22:32:36.156705327 +0200 +@@ -625,6 +625,17 @@ + + void dock_set_uposition(GtkWidget *w, gint x, gint y) + { ++ gint maxx, maxy; ++ ++ maxx = gdk_screen_width(); ++ maxy = gdk_screen_height(); ++ if ((maxx < (x + 15)) || (maxy < (y + 15))) { ++ x = maxx / 2; ++ y = maxy / 2; ++ g_warning("%s: current screen size %dx%d smaller than " ++ "window position specified in config file, resetting to " ++ "x=%d y=%d\n", __FUNCTION__, maxx, maxy, x, y); ++ } + gtk_widget_set_uposition(w, x, y); + gtk_object_set_data(GTK_OBJECT(w), "window_x", GINT_TO_POINTER(x)); + gtk_object_set_data(GTK_OBJECT(w), "window_y", GINT_TO_POINTER(y)); diff --git a/xmms-1.2.10-ubuntu-CVE-2007-0653.patch b/xmms-1.2.10-ubuntu-CVE-2007-0653.patch new file mode 100644 index 0000000..d5c7185 --- /dev/null +++ b/xmms-1.2.10-ubuntu-CVE-2007-0653.patch @@ -0,0 +1,44 @@ +diff -up xmms-1.2.11-20071117cvs/xmms/bmp.c.CVE-2007-0653 xmms-1.2.11-20071117cvs/xmms/bmp.c +--- xmms-1.2.11-20071117cvs/xmms/bmp.c.CVE-2007-0653 2006-07-10 17:45:11.000000000 -0400 ++++ xmms-1.2.11-20071117cvs/xmms/bmp.c 2011-07-14 15:54:02.497834489 -0400 +@@ -19,6 +19,12 @@ + */ + #include "xmms.h" + ++#if HAVE_STDINT_H ++#include ++#elif !defined(UINT32_MAX) ++#define UINT32_MAX 0xffffffffU ++#endif ++ + struct rgb_quad + { + guchar rgbBlue; +@@ -183,7 +189,7 @@ GdkPixmap *read_bmp(gchar * filename) + } + else if (bitcount != 24 && bitcount != 16 && bitcount != 32) + { +- gint ncols, i; ++ guint32 ncols, i; + + ncols = offset - headSize - 14; + if (headSize == 12) +@@ -201,9 +207,17 @@ GdkPixmap *read_bmp(gchar * filename) + } + } + fseek(file, offset, SEEK_SET); ++ /* verify buffer size */ ++ if (!h || !w || ++ w > (((UINT32_MAX - 3) / 3) / h) || ++ h > (((UINT32_MAX - 3) / 3) / w)) { ++ g_warning("read_bmp(): width(%u)*height(%u) too large", w, h); ++ fclose(file); ++ return NULL; ++ } ++ data = g_malloc0((w * 3 * h) + 3); /* +3 is just for safety */ + buffer = g_malloc(imgsize); + fread(buffer, imgsize, 1, file); +- data = g_malloc0((w * 3 * h) + 3); /* +3 is just for safety */ + + if (bitcount == 1) + read_1b_rgb(buffer, imgsize, data, w, h, rgb_quads); diff --git a/xmms-1.2.11-20071117cvs.patched.tar.bz2 b/xmms-1.2.11-20071117cvs.patched.tar.bz2 new file mode 100644 index 0000000..04a64f4 Binary files /dev/null and b/xmms-1.2.11-20071117cvs.patched.tar.bz2 differ diff --git a/xmms-1.2.11-a-b.patch b/xmms-1.2.11-a-b.patch new file mode 100644 index 0000000..1ad5f36 --- /dev/null +++ b/xmms-1.2.11-a-b.patch @@ -0,0 +1,147 @@ +--- xmms-1.2.11/xmms/about.c.ab 2007-11-16 23:53:41.000000000 +0100 ++++ xmms-1.2.11/xmms/about.c 2007-11-18 20:57:04.000000000 +0100 +@@ -79,6 +79,7 @@ static const char *credit_text[] = + N_("Chris Wilson"), + N_("Dave Yearke"), + N_("Stephan K. Zitz"), ++ N_("Rodrigo Martins de Matos Ventura (the A-B patch)"), + NULL, + N_("Default skin:"), + N_("Leonard \"Blayde\" Tan"), +--- xmms-1.2.11/xmms/main.c.ab 2006-07-16 15:40:04.000000000 +0200 ++++ xmms-1.2.11/xmms/main.c 2007-11-18 21:00:06.000000000 +0100 +@@ -59,7 +59,7 @@ PButton *mainwin_rew, *mainwin_play, *ma + SButton *mainwin_srew, *mainwin_splay, *mainwin_spause, *mainwin_sstop, + *mainwin_sfwd, *mainwin_seject, *mainwin_about; + TButton *mainwin_shuffle, *mainwin_repeat, *mainwin_eq, *mainwin_pl; +-TextBox *mainwin_info, *mainwin_rate_text, *mainwin_freq_text, *mainwin_stime_min, ++TextBox *mainwin_info, *mainwin_rate_text, *mainwin_freq_text, *mainwin_stime_min, *mainwin_ab_text, + *mainwin_stime_sec; + MenuRow *mainwin_menurow; + HSlider *mainwin_volume, *mainwin_balance, *mainwin_position, *mainwin_sposition = NULL; +@@ -83,6 +83,9 @@ static gboolean mainwin_force_redraw = F + static gchar *mainwin_title_text = NULL; + static gboolean mainwin_info_text_locked = FALSE; + ++static int ab_position_a = -1; ++static int ab_position_b = -1; ++ + /* For x11r5 session management */ + static char **restart_argv; + static int restart_argc; +@@ -262,7 +265,8 @@ enum + MAINWIN_GENERAL_STOPFADE, MAINWIN_GENERAL_BACK5SEC, + MAINWIN_GENERAL_FWD5SEC, MAINWIN_GENERAL_START, MAINWIN_GENERAL_BACK10, + MAINWIN_GENERAL_FWD10, MAINWIN_GENERAL_JTT, MAINWIN_GENERAL_JTF, +- MAINWIN_GENERAL_CQUEUE, MAINWIN_GENERAL_EXIT ++ MAINWIN_GENERAL_CQUEUE, MAINWIN_GENERAL_EXIT, ++ MAINWIN_GENERAL_SETAB, MAINWIN_GENERAL_CLEARAB + }; + + void mainwin_general_menu_callback(gpointer cb_data, guint action, GtkWidget * w); +@@ -297,6 +301,9 @@ GtkItemFactoryEntry mainwin_general_menu + {N_("/Playback/-"), NULL, NULL, 0, ""}, + {N_("/Playback/Jump to Time"), "J", mainwin_general_menu_callback, MAINWIN_GENERAL_JTT, ""}, + {N_("/Playback/Jump to File"), "J", mainwin_general_menu_callback, MAINWIN_GENERAL_JTF, ""}, ++ {N_("/Playback/-"), NULL, NULL, 0, ""}, ++ {N_("/Playback/Set A-B"), "A", mainwin_general_menu_callback, MAINWIN_GENERAL_SETAB, ""}, ++ {N_("/Playback/Clear A-B"), "S", mainwin_general_menu_callback, MAINWIN_GENERAL_CLEARAB, ""}, + {N_("/Playback/Clear Queue"), "Q", mainwin_general_menu_callback, MAINWIN_GENERAL_CQUEUE, ""}, + {N_("/Visualization"), NULL, NULL, 0, ""}, + {N_("/-"), NULL, NULL, 0, ""}, +@@ -2521,6 +2528,8 @@ void mainwin_eject_pushed(void) + + void mainwin_play_pushed(void) + { ++ if (-1!=ab_position_a) ++ input_seek(ab_position_a/1000); + if (get_input_paused()) + { + input_pause(); +@@ -3065,6 +3074,25 @@ void mainwin_general_menu_callback(gpoin + case MAINWIN_GENERAL_EXIT: + mainwin_quit_cb(); + break; ++ case MAINWIN_GENERAL_SETAB: ++ if (playlist_get_current_length() != -1) ++ if (-1==ab_position_a) { ++ ab_position_a = input_get_time(); ++ ab_position_b = -1; ++ } else if (-1==ab_position_b) { ++ int time=input_get_time(); ++ if (time>ab_position_a) ab_position_b=time; ++ } else { ++ ab_position_a = input_get_time(); ++ ab_position_b = -1; ++ } ++ break; ++ case MAINWIN_GENERAL_CLEARAB: ++ if (playlist_get_current_length() != -1) { ++ ab_position_a = -1; ++ ab_position_b = -1; ++ } ++ break; + } + } + +@@ -3374,6 +3402,7 @@ static void mainwin_create_widgets(void) + textbox_set_xfont(mainwin_info, cfg.mainwin_use_xfont, cfg.mainwin_font); + mainwin_rate_text = create_textbox(&mainwin_wlist, mainwin_bg, mainwin_gc, 111, 43, 15, 0, SKIN_TEXT); + mainwin_freq_text = create_textbox(&mainwin_wlist, mainwin_bg, mainwin_gc, 156, 43, 10, 0, SKIN_TEXT); ++ mainwin_ab_text = create_textbox(&mainwin_wlist, mainwin_bg, mainwin_gc, 195, 43, 15, 0, SKIN_TEXT); + + mainwin_menurow = create_menurow(&mainwin_wlist, mainwin_bg, mainwin_gc, 10, 22, 304, 0, 304, 44, mainwin_mr_change, mainwin_mr_release, SKIN_TITLEBAR); + mainwin_menurow->mr_doublesize_selected = cfg.doublesize; +@@ -3601,6 +3630,19 @@ gint idle_func(gpointer data) + } + else + { ++ if ( -1!=ab_position_a ) { ++ if ( -1!=ab_position_b ) { ++ textbox_set_text(mainwin_ab_text, "A-B"); ++ if ( time>ab_position_b ) { ++ input_seek(ab_position_a/1000); ++ } ++ } else { ++ textbox_set_text(mainwin_ab_text, "A- "); ++ } ++ } else { ++ textbox_set_text(mainwin_ab_text, " "); ++ } ++ + length = playlist_get_current_length(); + playlistwin_set_time(time, length, cfg.timer_mode); + input_update_vis(time); +@@ -3697,6 +3739,8 @@ gint idle_func(gpointer data) + { + GDK_THREADS_ENTER(); + vis_playback_stop(); ++ if (-1!=ab_position_a) ab_position_a=-1; ++ if (-1!=ab_position_b) ab_position_b=-1; + GDK_THREADS_LEAVE(); + } + +--- xmms-1.2.11/README.ab.ab 2007-11-18 20:57:04.000000000 +0100 ++++ xmms-1.2.11/README.ab 2007-11-18 20:57:04.000000000 +0100 +@@ -0,0 +1,21 @@ ++The A-B feature ++--------------- ++ ++The A-B feature by Rodrigo Martins de Matos Ventura was found here: ++http://lists.xmms.org/pipermail/xmms-devel/2002-January/002282.html ++And was rediffed by Oden Eriksson Tue 18 Nov 2003. ++ ++Here's Rodrigos explaination what it is about: ++ ++"I just did a minor patch to CVS version of xmms, in order to ++add a small but very useful (at least to me) feature: A-B ++repetition. My old CD player has it, and it is extremely useful, ++namely for transcribing music. ++ ++The idea is simple: anytime during play, you press the "A" key ++(marks A point), the music keeps playing, when you press the "A" key ++again (marks B point), it loops endlessly between the two marked ++points, until the "S" key is pressed (clear), or a new A point is ++marked. Morover, whenever a A-B range is defined, the "play" ++button/menu jumps straight to the A position." ++ diff --git a/xmms-1.2.11-alsalib.patch b/xmms-1.2.11-alsalib.patch new file mode 100644 index 0000000..fe5dfd4 --- /dev/null +++ b/xmms-1.2.11-alsalib.patch @@ -0,0 +1,19 @@ +--- xmms-1.2.11-20071117cvs/configure 2008-09-02 19:22:09.000000000 +0100 ++++ xmms-1.2.11-20071117cvs/configure-new 2008-09-02 21:02:33.000000000 +0100 +@@ -30090,8 +30090,6 @@ + #define HAVE_LIBASOUND 1 + _ACEOF + +- LIBS="-lasound $LIBS" +- + else + + alsa_found=no +@@ -30104,7 +30102,6 @@ + have_alsa=yes + LIBS=`echo $LIBS | sed 's/-lasound//g'` + LIBS=`echo $LIBS | sed 's/ //'` +- LIBS="-lasound $LIBS" + fi + if test "x$alsa_found" = "xno" ; then + have_alsa=no diff --git a/xmms-1.2.11-arts.patch b/xmms-1.2.11-arts.patch new file mode 100644 index 0000000..6d5330c --- /dev/null +++ b/xmms-1.2.11-arts.patch @@ -0,0 +1,77 @@ +--- xmms-1.2.11-20071117cvs/xmms/main.c 2008-09-02 19:08:34.000000000 +0100 ++++ xmms-1.2.11-20071117cvs/xmms/main-new.c 2008-09-02 19:16:29.000000000 +0100 +@@ -307,6 +307,40 @@ + sizeof(mainwin_general_menu_entries) / + sizeof(mainwin_general_menu_entries[0]); + ++#include ++#include ++ ++/* dlopen libarts, for seeing if we should use this as the default plugin. */ ++static int arts_running(void) { ++ void *arts_handle; ++ int (*a_init)(void); ++ void (*a_close)(void); ++ int ret = 0; ++ ++ arts_handle = dlopen("libartsc.so.0", RTLD_NOW); ++ if (!arts_handle) ++ return 0; ++ ++ a_init = dlsym(arts_handle, "arts_init"); ++ a_close = dlsym(arts_handle, "arts_free"); ++ if (!a_init || !a_close) { ++ dlclose(arts_handle); ++ return 0; ++ } ++ signal(SIGPIPE, SIG_DFL); ++ if ((*a_init)() == 0) { ++ ret = 1; ++ /* there are problems with library unloading in conjunction with X11, */ ++ /* (Arts::X11GlobalComm), so we don't unload stuff here */ ++ /* (*a_close)(); */ ++ } ++ signal(SIGPIPE, SIG_IGN); ++ dlclose(arts_handle); ++ return ret; ++} ++ ++ ++ + static void make_xmms_dir(void) + { + gchar *filename; +@@ -503,6 +537,19 @@ + cfg.skin = g_strdup("/usr/share/xmms/Skins/Bluecurve-xmms.zip"); + if (cfg.outputplugin == NULL) + { ++ /* If aRts is running and the plugin is there, use that... */ ++ if (arts_running()) ++ { ++ cfg.outputplugin = g_strdup_printf("%s/%s/libarts.so", PLUGIN_DIR, plugin_dir_list[0]); ++ if (access(cfg.outputplugin, X_OK)) ++ { ++ g_free(cfg.outputplugin); ++ cfg.outputplugin = NULL; ++ } ++ } ++ } ++ if (cfg.outputplugin == NULL) ++ { + #ifdef HAVE_OSS + cfg.outputplugin = g_strdup_printf("%s/%s/libALSA.so", PLUGIN_DIR, plugin_dir_list[0]); + #elif defined(sun) +@@ -515,6 +562,13 @@ + cfg.outputplugin = g_strdup(""); + #endif + } ++ /* Migrate users of the previous arts plugin */ ++ if (!strcmp(g_basename(cfg.outputplugin),"libartsout.so")) { ++ if (access(cfg.outputplugin,X_OK)) { ++ g_free(cfg.outputplugin); ++ cfg.outputplugin = g_strdup_printf("%s/%s/libarts.so", PLUGIN_DIR, plugin_dir_list[0]); ++ } ++ } + if (cfg.eqpreset_default_file == NULL) + cfg.eqpreset_default_file = g_strdup("dir_default.preset"); + if (cfg.eqpreset_extension == NULL) diff --git a/xmms-1.2.11-dso.patch b/xmms-1.2.11-dso.patch new file mode 100644 index 0000000..4d00e7d --- /dev/null +++ b/xmms-1.2.11-dso.patch @@ -0,0 +1,24 @@ +--- xmms-1.2.11-20071117cvs/xmms/Makefile.am 2003-12-01 22:45:23.000000000 +0000 ++++ xmms-1.2.11-20071117cvs/xmms/Makefile-new.am 2010-02-20 23:23:26.000000000 +0000 +@@ -6,7 +6,8 @@ + + xmms_LDFLAGS = -export-dynamic + xmms_LDADD = @GTK_LIBS@ @PTHREAD_LIBS@ @SM_LIBS@ @VM_LIBS@ \ +-@POSIX_LIBS@ $(top_builddir)/libxmms/libxmms.la @LTLIBINTL@ ++@POSIX_LIBS@ $(top_builddir)/libxmms/libxmms.la @LTLIBINTL@ \ ++-ldl + + INCLUDES = @GTK_CFLAGS@ @XMMS_DEFINES@ @ARCH_DEFINES@ \ + -I$(top_builddir)/intl -I$(top_srcdir) +--- xmms-1.2.11-20071117cvs/xmms/Makefile.in 2007-11-17 22:45:34.000000000 +0000 ++++ xmms-1.2.11-20071117cvs/xmms/Makefile-new.in 2010-02-20 23:24:28.000000000 +0000 +@@ -307,7 +307,8 @@ + xmmsincludedir = $(includedir)/xmms + xmms_LDFLAGS = -export-dynamic + xmms_LDADD = @GTK_LIBS@ @PTHREAD_LIBS@ @SM_LIBS@ @VM_LIBS@ \ +-@POSIX_LIBS@ $(top_builddir)/libxmms/libxmms.la @LTLIBINTL@ ++@POSIX_LIBS@ $(top_builddir)/libxmms/libxmms.la @LTLIBINTL@ \ ++-ldl + + INCLUDES = @GTK_CFLAGS@ @XMMS_DEFINES@ @ARCH_DEFINES@ \ + -I$(top_builddir)/intl -I$(top_srcdir) diff --git a/xmms-1.2.11-is_quitting.patch b/xmms-1.2.11-is_quitting.patch new file mode 100644 index 0000000..fc8257f --- /dev/null +++ b/xmms-1.2.11-is_quitting.patch @@ -0,0 +1,142 @@ +diff -Naupr xmms-1.2.11.orig/xmms/input.c xmms-1.2.11/xmms/input.c +--- xmms-1.2.11.orig/xmms/input.c 2005-05-15 02:01:21.000000000 +0200 ++++ xmms-1.2.11/xmms/input.c 2009-09-14 22:17:57.756115021 +0200 +@@ -286,6 +286,14 @@ void input_seek(int time) + } + } + ++gboolean input_stopped_for_restart = FALSE; /* crossfade */ ++void input_stop_for_restart() /* crossfade */ ++{ ++ input_stopped_for_restart = TRUE; ++ input_stop(); ++ input_stopped_for_restart = FALSE; ++} ++ + void input_stop(void) + { + if (ip_data->playing && get_current_input_plugin()) +diff -Naupr xmms-1.2.11.orig/xmms/input.h xmms-1.2.11/xmms/input.h +--- xmms-1.2.11.orig/xmms/input.h 2000-02-16 22:05:57.000000000 +0100 ++++ xmms-1.2.11/xmms/input.h 2009-09-14 22:17:57.757114619 +0200 +@@ -34,6 +34,7 @@ InputVisType input_get_vis_type(); + gboolean input_check_file(gchar * filename); + void input_play(char *filename); + void input_stop(void); ++void input_stop_for_restart(void); + void input_pause(void); + int input_get_time(void); + void input_set_eq(int on, float preamp, float *bands); +diff -Naupr xmms-1.2.11.orig/xmms/main.c xmms-1.2.11/xmms/main.c +--- xmms-1.2.11.orig/xmms/main.c 2006-07-16 15:40:04.000000000 +0200 ++++ xmms-1.2.11/xmms/main.c 2009-09-14 22:17:57.759114418 +0200 +@@ -888,8 +888,10 @@ void mainwin_shade_toggle(void) + mainwin_set_shade(!cfg.player_shaded); + } + ++gboolean is_quitting = FALSE; /* crossfade */ + void mainwin_quit_cb(void) + { ++ is_quitting = TRUE; /* crossfade */ + input_stop(); + gtk_widget_hide(equalizerwin); + gtk_widget_hide(playlistwin); +@@ -1540,7 +1542,8 @@ static void mainwin_jump_to_file_real_cb + int *pos; + + if (get_input_playing()) +- input_stop(); ++ input_stop_for_restart(); ++ + pos = gtk_clist_get_row_data(clist, GPOINTER_TO_INT(clist->selection->data)); + playlist_set_position(*pos); + playlist_play(); +diff -Naupr xmms-1.2.11.orig/xmms/playlist.c xmms-1.2.11/xmms/playlist.c +--- xmms-1.2.11.orig/xmms/playlist.c 2007-11-16 22:51:30.000000000 +0100 ++++ xmms-1.2.11/xmms/playlist.c 2009-09-14 22:17:57.763114547 +0200 +@@ -78,9 +78,10 @@ void playlist_clear(void) + { + GList *node; + PlaylistEntry *entry; +- ++ ++ /* always assume that there is another song comming up */ + if (get_input_playing()) +- input_stop(); ++ input_stop_for_restart(); + + PL_LOCK(); + if (playlist) +@@ -142,7 +143,7 @@ void playlist_delete_node(GList *node, g + if (get_input_playing()) + { + PL_UNLOCK(); +- input_stop(); ++ input_stop_for_restart(); + PL_LOCK(); + *restart_playing = TRUE; + } +@@ -583,7 +584,7 @@ void playlist_play(void) + } + + if (get_input_playing()) +- input_stop(); ++ input_stop_for_restart(); + + vis_clear_data(mainwin_vis); + vis_clear_data(playlistwin_vis); +@@ -681,7 +682,7 @@ void playlist_next(void) + { + /* We need to stop before changing playlist_position */ + PL_UNLOCK(); +- input_stop(); ++ input_stop_for_restart(); + PL_LOCK(); + restart_playing = TRUE; + } +@@ -736,7 +737,7 @@ void playlist_prev(void) + { + /* We need to stop before changing playlist_position */ + PL_UNLOCK(); +- input_stop(); ++ input_stop_for_restart(); + PL_LOCK(); + restart_playing = TRUE; + } +@@ -924,7 +925,7 @@ void playlist_set_position(int pos) + { + /* We need to stop before changing playlist_position */ + PL_UNLOCK(); +- input_stop(); ++ input_stop_for_restart(); + PL_LOCK(); + restart_playing = TRUE; + } +@@ -951,11 +952,25 @@ void playlist_set_position(int pos) + void playlist_eof_reached(void) + { + GList *plist_pos_list; +- +- input_stop(); ++ gboolean stop_for_restart = TRUE; + + PL_LOCK(); ++ ++ /* ++ * First, determine if we are going to play another song after ++ * this one and call input_stop() / input_stop_for_restart() ++ * accordingly. ++ */ + plist_pos_list = find_playlist_position_list(); ++ if (!queued_list && !g_list_next(plist_pos_list) && !cfg.repeat) ++ stop_for_restart = FALSE; ++ ++ PL_UNLOCK(); ++ if (stop_for_restart) ++ input_stop_for_restart(); ++ else ++ input_stop(); ++ PL_LOCK(); + + if (cfg.no_playlist_advance) + { diff --git a/xmms-1.2.11-mikmod-fix.patch b/xmms-1.2.11-mikmod-fix.patch new file mode 100644 index 0000000..fa0de37 --- /dev/null +++ b/xmms-1.2.11-mikmod-fix.patch @@ -0,0 +1,19 @@ +diff -up xmms-1.2.11-20071117cvs/Input/mikmod/drv_xmms.c.fix xmms-1.2.11-20071117cvs/Input/mikmod/drv_xmms.c +--- xmms-1.2.11-20071117cvs/Input/mikmod/drv_xmms.c.fix 2014-02-11 10:33:47.944425895 -0500 ++++ xmms-1.2.11-20071117cvs/Input/mikmod/drv_xmms.c 2014-02-11 10:34:39.000359857 -0500 +@@ -124,7 +124,15 @@ MDRIVER drv_xmms = + "xmms output driver v1.0", + 0, 255, + #if (LIBMIKMOD_VERSION > 0x030106) ++/* Alias string */ + "xmms", ++#endif ++#if (LIBMIKMOD_VERSION >= 0x030200) ++/* CmdLineHelp string */ ++ NULL, ++#endif ++#if (LIBMIKMOD_VERSION > 0x030106) ++/* CommandLine proc */ + NULL, + #endif + xmms_IsThere, diff --git a/xmms-1.2.11-mpg123.tar.bz2 b/xmms-1.2.11-mpg123.tar.bz2 new file mode 100644 index 0000000..2b9e64e Binary files /dev/null and b/xmms-1.2.11-mpg123.tar.bz2 differ diff --git a/xmms-1.2.11-multilib.patch b/xmms-1.2.11-multilib.patch new file mode 100644 index 0000000..1b4272c --- /dev/null +++ b/xmms-1.2.11-multilib.patch @@ -0,0 +1,129 @@ +diff -up xmms-1.2.11-20071117cvs/configure.multidevel xmms-1.2.11-20071117cvs/configure +--- xmms-1.2.11-20071117cvs/configure.multidevel 2016-11-18 10:19:19.416318744 -0500 ++++ xmms-1.2.11-20071117cvs/configure 2016-11-18 10:21:42.901379471 -0500 +@@ -33510,7 +33510,7 @@ subdirs="$subdirs libxmms" + + + +- ac_config_files="$ac_config_files Makefile xmms.1 wmxmms.1 xmms.spec xmms-config xmms/Makefile xmms/defskin/Makefile Output/Makefile Output/OSS/Makefile Output/esd/Makefile Output/disk_writer/Makefile Output/solaris/Makefile Output/sun/Makefile Output/alsa/Makefile Input/Makefile Input/wav/Makefile Input/mpg123/Makefile Input/mikmod/Makefile Input/cdaudio/Makefile Input/tonegen/Makefile Input/vorbis/Makefile Effect/Makefile Effect/voice/Makefile Effect/echo_plugin/Makefile Effect/stereo_plugin/Makefile General/Makefile General/ir/Makefile General/joystick/Makefile General/song_change/Makefile Visualization/Makefile Visualization/blur_scope/Makefile Visualization/sanalyzer/Makefile Visualization/opengl_spectrum/Makefile wmxmms/Makefile po/Makefile.in intl/Makefile" ++ ac_config_files="$ac_config_files Makefile xmms.1 wmxmms.1 xmms.spec xmms-config xmms.pc xmms/Makefile xmms/defskin/Makefile Output/Makefile Output/OSS/Makefile Output/esd/Makefile Output/disk_writer/Makefile Output/solaris/Makefile Output/sun/Makefile Output/alsa/Makefile Input/Makefile Input/wav/Makefile Input/mpg123/Makefile Input/mikmod/Makefile Input/cdaudio/Makefile Input/tonegen/Makefile Input/vorbis/Makefile Effect/Makefile Effect/voice/Makefile Effect/echo_plugin/Makefile Effect/stereo_plugin/Makefile General/Makefile General/ir/Makefile General/joystick/Makefile General/song_change/Makefile Visualization/Makefile Visualization/blur_scope/Makefile Visualization/sanalyzer/Makefile Visualization/opengl_spectrum/Makefile wmxmms/Makefile po/Makefile.in intl/Makefile" + ac_config_commands="$ac_config_commands default" + cat >confcache <<\_ACEOF + # This file is a shell script that caches the results of configure +@@ -34178,6 +34178,7 @@ do + "wmxmms.1" ) CONFIG_FILES="$CONFIG_FILES wmxmms.1" ;; + "xmms.spec" ) CONFIG_FILES="$CONFIG_FILES xmms.spec" ;; + "xmms-config" ) CONFIG_FILES="$CONFIG_FILES xmms-config" ;; ++ "xmms.pc" ) CONFIG_FILES="$CONFIG_FILES xmms.pc" ;; + "xmms/Makefile" ) CONFIG_FILES="$CONFIG_FILES xmms/Makefile" ;; + "xmms/defskin/Makefile" ) CONFIG_FILES="$CONFIG_FILES xmms/defskin/Makefile" ;; + "Output/Makefile" ) CONFIG_FILES="$CONFIG_FILES Output/Makefile" ;; +diff -up xmms-1.2.11-20071117cvs/xmms-config.in.multidevel xmms-1.2.11-20071117cvs/xmms-config.in +--- xmms-1.2.11-20071117cvs/xmms-config.in.multidevel 2001-04-05 20:35:49.000000000 -0400 ++++ xmms-1.2.11-20071117cvs/xmms-config.in 2016-11-18 10:19:19.433318634 -0500 +@@ -18,24 +18,6 @@ exec_prefix_set=no + data_dir="@datadir@/@PACKAGE@" + + version="@VERSION@" +-include_dir="@includedir@" +-xmms_include_dir="@includedir@/@PACKAGE@" +-lib_dir="@libdir@" +- +-if ( (gtk-config --version) > /dev/null 2>&1) then +- gtk_libs=`gtk-config --libs` +- gtk_cflags=`gtk-config --cflags` +-else +- gtk_libs="@GTK_LIBS@" +- gtk_cflags="@GTK_CFLAGS@" +-fi +- +-plugin_dir="@plugindir@" +-visualization_plugin_dir="@plugindir@/@VISUALIZATION_PLUGIN_DIR@" +-input_plugin_dir="@plugindir@/@INPUT_PLUGIN_DIR@" +-output_plugin_dir="@plugindir@/@OUTPUT_PLUGIN_DIR@" +-effect_plugin_dir="@plugindir@/@EFFECT_PLUGIN_DIR@" +-general_plugin_dir="@plugindir@/@GENERAL_PLUGIN_DIR@" + + usage() + { +@@ -146,24 +128,12 @@ if test "$echo_exec_prefix" = "yes"; the + echo $exec_prefix + fi + +-if test "$include_dir" != "/usr/include"; then +- cflags="-I$include_dir -I$xmms_include_dir $gtk_cflags" +-else +- cflags="-I$xmms_include_dir $gtk_cflags" +-fi +- +-if test "$lib_dir" != "/usr/lib"; then +- libs="-L$lib_dir $gtk_libs -lxmms" +-else +- libs="$gtk_libs -lxmms" +-fi +- + if test "$echo_cflags" = "yes"; then +- echo $cflags ++ pkg-config xmms --cflags + fi + + if test "$echo_libs" = "yes"; then +- echo $libs ++ pkg-config xmms --libs + fi + + if test "$echo_data_dir" = "yes"; then +@@ -171,25 +141,25 @@ if test "$echo_data_dir" = "yes"; then + fi + + if test "$echo_plugin_dir" = "yes"; then +- echo $plugin_dir ++ pkg-config xmms --variable=plugin_dir + fi + + if test "$echo_visualization_plugin_dir" = "yes"; then +- echo $visualization_plugin_dir ++ pkg-config xmms --variable=visualization_plugin_dir + fi + + if test "$echo_input_plugin_dir" = "yes"; then +- echo $input_plugin_dir ++ pkg-config xmms --variable=input_plugin_dir + fi + + if test "$echo_output_plugin_dir" = "yes"; then +- echo $output_plugin_dir ++ pkg-config xmms --variable=output_plugin_dir + fi + + if test "$echo_general_plugin_dir" = "yes"; then +- echo $general_plugin_dir ++ pkg-config xmms --variable=general_plugin_dir + fi + + if test "$echo_effect_plugin_dir" = "yes"; then +- echo $effect_plugin_dir ++ pkg-config xmms --variable=effect_plugin_dir + fi +diff -up xmms-1.2.11-20071117cvs/xmms.pc.in.multidevel xmms-1.2.11-20071117cvs/xmms.pc.in +--- xmms-1.2.11-20071117cvs/xmms.pc.in.multidevel 2016-11-18 10:19:19.434318627 -0500 ++++ xmms-1.2.11-20071117cvs/xmms.pc.in 2016-11-18 10:19:19.434318627 -0500 +@@ -0,0 +1,18 @@ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++data_dir=@datadir@ ++plugin_dir=@plugindir@ ++visualization_plugin_dir=${plugin_dir}/@VISUALIZATION_PLUGIN_DIR@ ++input_plugin_dir=${plugin_dir}/@INPUT_PLUGIN_DIR@ ++output_plugin_dir=${plugin_dir}/@OUTPUT_PLUGIN_DIR@ ++effect_plugin_dir=${plugin_dir}/@EFFECT_PLUGIN_DIR@ ++general_plugin_dir=${plugin_dir}/@GENERAL_PLUGIN_DIR@ ++ ++Name: XMMS ++Description: The X MultiMedia System, a media player ++Version: @VERSION@ ++Requires: gtk+ ++Libs: -L${libdir} -lxmms ++Cflags: -I${includedir} -I${includedir}/@PACKAGE@ diff --git a/xmms-1.2.6-audio.patch b/xmms-1.2.6-audio.patch new file mode 100644 index 0000000..c9b87dd --- /dev/null +++ b/xmms-1.2.6-audio.patch @@ -0,0 +1,32 @@ +--- xmms-1.2.4/xmms/main.c.audio Mon Nov 20 10:45:10 2000 ++++ xmms-1.2.4/xmms/main.c Tue Nov 28 19:39:51 2000 +@@ -469,7 +469,7 @@ + if (cfg.outputplugin == NULL) + { + #ifdef HAVE_OSS +- cfg.outputplugin = g_strdup_printf("%s/%s/libOSS.so", PLUGIN_DIR, plugin_dir_list[0]); ++ cfg.outputplugin = g_strdup_printf("%s/%s/libALSA.so", PLUGIN_DIR, plugin_dir_list[0]); + #elif defined(sun) + cfg.outputplugin = g_strdup_printf("%s/%s/libSolaris.so", PLUGIN_DIR, plugin_dir_list[0]); + #else +--- xmms-1.2.4/Output/OSS/audio.c.audio Fri Jul 28 20:19:41 2000 ++++ xmms-1.2.4/Output/OSS/audio.c Tue Nov 28 19:36:19 2000 +@@ -592,7 +592,7 @@ + else + device_name = g_strdup(DEV_DSP); + } +- fd = open(device_name, O_WRONLY); ++ fd = open(device_name, O_WRONLY|O_NONBLOCK); + if (fd == -1) + { + g_warning("oss_open(): Failed to open audio device (%s): %s", +@@ -600,7 +600,8 @@ + g_free(device_name); + return 0; + } +- ++ fcntl(fd,F_SETFL,fcntl(fd,F_GETFL) &~ O_NONBLOCK); ++ + input.format.xmms = fmt; + input.frequency = rate; + input.channels = nch; diff --git a/xmms-1.2.6-lazy.patch b/xmms-1.2.6-lazy.patch new file mode 100644 index 0000000..4d4a033 --- /dev/null +++ b/xmms-1.2.6-lazy.patch @@ -0,0 +1,11 @@ +--- xmms-1.2.6/xmms/pluginenum.c.lazy Tue Jan 15 17:14:24 2002 ++++ xmms-1.2.6/xmms/pluginenum.c Tue Jan 15 17:14:33 2002 +@@ -229,7 +229,7 @@ + */ + return shl_load(filename, BIND_DEFERRED, 0); + #else +- return dlopen(filename, RTLD_NOW); ++ return dlopen(filename, RTLD_LAZY); + #endif + } + diff --git a/xmms-1.2.8-default-skin.patch b/xmms-1.2.8-default-skin.patch new file mode 100644 index 0000000..c9feb0d --- /dev/null +++ b/xmms-1.2.8-default-skin.patch @@ -0,0 +1,11 @@ +--- xmms-1.2.8/xmms/main.c.foo 2003-09-08 15:07:13.000000000 -0400 ++++ xmms-1.2.8/xmms/main.c 2003-09-08 15:07:55.000000000 -0400 +@@ -495,6 +495,8 @@ + cfg.mainwin_font = g_strdup("-adobe-helvetica-medium-r-*-*-8-*"); + if (cfg.gentitle_format == NULL) + cfg.gentitle_format = g_strdup("%p - %t"); ++ if (cfg.skin == NULL && !cfgfile && !access("/usr/share/xmms/Skins/Bluecurve-xmms.zip",R_OK)) ++ cfg.skin = g_strdup("/usr/share/xmms/Skins/Bluecurve-xmms.zip"); + if (cfg.outputplugin == NULL) + { + #ifdef HAVE_OSS diff --git a/xmms-alsa-fix-loop.patch b/xmms-alsa-fix-loop.patch new file mode 100644 index 0000000..716fdaa --- /dev/null +++ b/xmms-alsa-fix-loop.patch @@ -0,0 +1,72 @@ +diff -up xmms-1.2.11-20071117cvs/Output/alsa/audio.c.fix-loop xmms-1.2.11-20071117cvs/Output/alsa/audio.c +--- xmms-1.2.11-20071117cvs/Output/alsa/audio.c.fix-loop 2006-07-25 17:45:08.000000000 -0400 ++++ xmms-1.2.11-20071117cvs/Output/alsa/audio.c 2011-07-15 16:05:55.805328775 -0400 +@@ -807,7 +807,7 @@ static void *alsa_loop(void *arg) + unsigned short *revents; + + if (npfds <= 0) +- goto _error; ++ goto _cleanup; + pfds = alloca(sizeof(*pfds) * npfds); + revents = alloca(sizeof(*revents) * npfds); + while (going && alsa_pcm) +@@ -828,16 +828,34 @@ static void *alsa_loop(void *arg) + int i; + snd_pcm_poll_descriptors_revents(alsa_pcm, pfds, + npfds, revents); +- for (i = 0; i < npfds; i++) ++ for (i = 0; i < npfds; i++) ++ { + if (revents[i] & POLLOUT) + { ++ debug("calling alsa_write_out_thread_data()"); + alsa_write_out_thread_data(); ++ debug("done with alsa_write_out_thread_data, break!"); + break; +- } ++ } ++ debug("Still in the for loop"); ++ } ++ debug("Out of the for loop, but still in the if poll."); + } ++ debug("Still in the not-paused not-prebuffer conditional"); + } + else +- xmms_usleep(10000); ++ { ++ if (paused) ++ debug("Sorry, I'm paused. Taking a little nap."); ++ if (prebuffer) ++ debug("Buffering like Real Player."); ++ if (paused || prebuffer) { ++ xmms_usleep(10000); ++ } else { ++ debug("All done!"); ++ goto _cleanup; ++ } ++ } + + if (pause_request != paused) + alsa_do_pause(pause_request); +@@ -850,11 +868,12 @@ static void *alsa_loop(void *arg) + } + } + +- _error: ++ _cleanup: + alsa_close_pcm(); + g_free(thread_buffer); + thread_buffer = NULL; + pthread_exit(NULL); ++ return; + } + + /* open callback */ +@@ -901,6 +920,7 @@ int alsa_open(AFormat fmt, int rate, int + flush_request = -1; + + pthread_create(&audio_thread, NULL, alsa_loop, NULL); ++ debug("Do we get here?"); + return 1; + } + diff --git a/xmms-cd-mountpoint.patch b/xmms-cd-mountpoint.patch new file mode 100644 index 0000000..4d5df7d --- /dev/null +++ b/xmms-cd-mountpoint.patch @@ -0,0 +1,11 @@ +--- xmms-1.2.11-20071117cvs/Input/cdaudio/cdaudio.c~ 2004-01-28 01:09:39.000000000 +0200 ++++ xmms-1.2.11-20071117cvs/Input/cdaudio/cdaudio.c 2005-04-30 18:39:04.000000000 +0300 +@@ -78,7 +78,7 @@ + # define CDDA_DIRECTORY "/cdrom/cdrom0" + # endif + # else +-# define CDDA_DIRECTORY "/mnt/cdrom" ++# define CDDA_DIRECTORY "/media/cdrecorder" + # endif + #endif + diff --git a/xmms-play.patch b/xmms-play.patch new file mode 100644 index 0000000..4bc3206 --- /dev/null +++ b/xmms-play.patch @@ -0,0 +1,11 @@ +--- xmms-1.2.11-20071117cvs/xmms/xmms.desktop 2002-02-11 23:15:56.000000000 +0000 ++++ xmms-1.2.11-20071117cvs/xmms/xmms.desktop-new 2009-09-02 14:19:57.000000000 +0100 +@@ -14,7 +14,7 @@ + comment[tr]=X Multimedya Sistem + comment[zh_TW]=X ¦h´CÅé¨t²Î + Encoding=Legacy-Mixed +-Exec=xmms ++Exec=xmms -e -p %F + Icon=xmms_mini.xpm + MimeType=audio/x-scpls;audio/x-mpegurl;audio/mpegurl;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/x-wav;application/x-ogg + Terminal=0 diff --git a/xmms.desktop b/xmms.desktop new file mode 100644 index 0000000..0d9c324 --- /dev/null +++ b/xmms.desktop @@ -0,0 +1,147 @@ +[Desktop Entry] +Name=XMMS +Comment=Play Ogg Vorbis and other audio files +Comment[af]=Speel Ogg Vorbis en ander klanklêers +Comment[am]=Ogg Vorbisን እና ሌሎች የድáˆáŒ½ á‹á‹­áˆŽá‰½áŠ• አጫá‹á‰µ +Comment[ar]=تشغيل Ogg Ùوربس Ùˆ Ù…Ù„ÙØ§Øª أخري +Comment[as]=Ogg Vorbis আৰৠঅনà§à¦¯à¦¾à¦¨à§à¦¯ শà§à§°à§±à¦£ নথি-পতà§à§° বজাওক +Comment[be]=Прайграе Ogg Vorbis Ñ– Ñ–Ð½ÑˆÑ‹Ñ Ð°ÑžÐ´Ñ‹Ñ‘ файлы +Comment[bg]=ПроÑвирване на Ogg Vorbis и други музикални файлове +Comment[bn]=Ogg Vorvis à¦à¦¬à¦‚ অনà§à¦¯à¦¾à¦¨à§à¦¯ অডিও ফাইলগà§à¦²à§‹ চালাও +Comment[bn_IN]=Ogg Vorvis à¦à¦¬à¦‚ অনà§à¦¯à¦¾à¦¨à§à¦¯ অডিও ফাইল বাজান +Comment[ca]=Reproduïu fitxers Ogg Vorbis i d'altres formats de so +Comment[cs]=PÅ™ehrát zvukové soubory Ogg Vorbis a další +Comment[cy]=Gwrando ar Ogg Vorbis a ffeiliau sain eraill +Comment[da]=Afspil Ogg Vorbis og andre lydfiler +Comment[de]=Ogg Vorbis und andere Audio-Dateien wiedergeben +Comment[el]=ΑναπαÏαγωγή Ogg Vorbis και άλλων αÏχείων ήχου +Comment[en_GB]=Play Ogg Vorbis and other audio files +Comment[es]=Reproducir Ogg Vorbis y otros ficheros de audio +Comment[et]=Erinevate helifailide esitamine +Comment[fa]=پخش اÙÚ¯â€ŒÙˆÙØ±Ø¨ÛŒØ³ Ùˆ پرونده‌های صوتی دیگر +Comment[fi]=Soita mm. Ogg Vorbis -äänitiedostoja +Comment[fr]=Lire les Ogg Vorbis et autres fichiers audio +Comment[gl]=Reproduza Ogg Vorbis e outros ficheiros de audio +Comment[gu]=ઓગ વોરબીસ અને બીજી ઓડિયો ફાઈલો વગાડો +Comment[he]=נגן קבצי Ogg Vorbis וקבצי קול × ×•×¡×¤×™× +Comment[hi]=Ogg Vorbis और अनà¥à¤¯ शà¥à¤°à¤µà¥à¤¯ फाइल चलाà¤à¤ +Comment[hr]=Pokretanje Ogg Vorbis i ostalih datoteka zvuka +Comment[hu]=Ogg Vorbis és más hangfájlok lejátszása +Comment[hy]=Õ†Õ¾Õ¡Õ£Õ¥Õ¬ Ogg Vorbis Ö‡ Õ¡ÕµÕ¬ Õ¿Õ«ÕºÕ« Õ±Õ¡ÕµÕ¶Õ¡ÕµÕ«Õ¶ Ö†Õ¡ÕµÕ¬Õ¥Ö€ +Comment[id]=Mainkan Ogg Vorbis dan berkas audio lainnya +Comment[ilo]=Patugtogen ti Ogg Vorbis ken sabsabali pay nga intar ti paguni +Comment[is]=Spila Ogg Vorbis og fleiri tónlistaskrár +Comment[it]=Riproduce Ogg Vorbis e altri file audio +Comment[ja]=Ogg VorbisåŠã³ä»–ã®ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªãƒ•ァイルをå†ç”Ÿ +Comment[ka]=Ogg Vorbis დრსხვრáƒáƒ£áƒ“იáƒáƒ¤áƒáƒ˜áƒšáƒ”ბის დáƒáƒ™áƒ•რრ+Comment[kn]=Ogg Vorbis ಇತà³à²¯à²¾à²¦à²¿ ಧà³à²µà²¨à²¿à²•ಡತಗಳನà³à²¨à³ ಚಾಲಿಸಿ +Comment[ko]=Ogg Vorbis와 그외 오디오 íŒŒì¼ ìž¬ìƒ +Comment[lt]=Groja Ogg Vorbis ir kitas audio bylas +Comment[lv]=SpÄ“lÄ“t Ogg Vorbis un citas audio datnes +Comment[mk]=Пушта Ogg Vorbis и други аудио датотеки +Comment[ml]=Ogg Vorbisàµà´‚ മറàµà´±àµ ഓഡിയോ ഫൈലàµà´•à´³àµà´‚ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´• +Comment[mr]=Ogg Vorbis आणि इतर धà¥à¤µà¤¨à¥€ फाइलà¥à¤¸ वाजवा +Comment[ms]=Main fail audio Ogg Vorbis dan lain-lain +Comment[nb]=Spill av Ogg Vorbis og andre lydfiler +Comment[nl]=Ogg Vorbis en andere audiobestanden afspelen +Comment[no]=Spill av Ogg Vorbis og andre lydfiler +Comment[nso]=Bapala Ogg Vorbis le difaele tÅ¡e dingwe tÅ¡eo di nago le modumo +Comment[or]=ଓଗୠଭରବିଶ କିମà­à¬¬à¬¾ ଅନà­à¬¯à¬¾à¬¨à­à¬¯ ଅଡିଓ ପାଇଲ ମାନଙà­à¬•ୠଚଲାନà­à¬¤à­ +Comment[pa]=Ogg Vorbis ਅਤੇ ਹੋਰ ਸੰਗੀਤ ਫਾਇਲਾਂ ਚਲਾਓ +Comment[pl]=Odtwarzanie Ogg Vorbis i innych plików dźwiÄ™kowych +Comment[pt]=Toque ficheiros Ogg Vorbis e outros formatos de áudio +Comment[pt_BR]=Toque Ogg Vorbis e outros arquivos de áudio +Comment[ro]=Redă fiÅŸiere audio precum Ogg Vorbis +Comment[ru]=ВоÑпроизводит файлы Ogg Vorbis и другие звуковые файлы +Comment[si]=Ogg Vorbis සහ අනෙකුත් à·à·€à·Šâ€à¶º ගොනු à·€à·à¶¯à¶±à¶º කරන්න +Comment[sk]=HraÅ¥ Ogg Vorbis a ostatné zvukové súbory +Comment[sl]=Predvaja Ogg Vorbis in druge zvoÄne datoteke +Comment[sr]=Пуштање Ogg Vorbis и оÑталих аудио датотека +Comment[sr@latin]=PuÅ¡tanje Ogg Vorbis i ostalih audio datoteka +Comment[sv]=Spela Ogg Vorbis-filer och andra ljudfiler +Comment[ta]=Ogg Vorbis மறà¯à®±à¯à®®à¯ மறà¯à®± கேடà¯à®ªà¯Šà®²à®¿ கோபà¯à®ªà¯à®•ளை இயகà¯à®•வà¯à®®à¯ +Comment[te]=Ogg Vorbis మరియూ ఇతర à°¶à±à°°à°µà°£ ఫైళà±à°²à°¨à°¿ వాడౠ+Comment[th]=เล่นà¹à¸Ÿà¹‰à¸¡ Ogg Vorbis à¹à¸¥à¸°à¹à¸Ÿà¹‰à¸¡à¹€à¸ªà¸µà¸¢à¸‡à¸­à¸·à¹ˆà¸™à¹† +Comment[tr]=Ogg Vorbis ve diÄŸer iÅŸitsel dosyaları çalar +Comment[uk]=Ð’Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² Ogg Vorbis та інших звукових файлів +Comment[ur]=اور دو سری Ø¢ Úˆ یو ÙØ§ ٔیلز چلا یں Ogg Vorbis +Comment[vi]=ChÆ¡i tập tin nhạc Ogg Vorbis và các tập tin khác +Comment[zh_CN]=播放 Ogg Vorbis åŠå…¶å®ƒéŸ³é¢‘文件 +Comment[zh_TW]=播放 Ogg Vorbis 以åŠå…¶ä»–音效檔案 +Comment[zu]=Dlala i- Ogg Vorbis kanye namafayela okuzwa +Exec=xmms -e -p %F +Icon=xmms +MimeType=audio/x-mp3;audio/x-it;audio/x-mod;audio/x-s3m;audio/x-stm;audio/x-wav;audio/x-mpegurl;audio/mpegurl;audio/x-scpls;application/x-ogg;application/ogg; +GenericName=Audio Player +GenericName[af]=Klankspeler +GenericName[am]=የድáˆáŒ½ ማጫወቻ +GenericName[ar]=Ù…ÙØ´ØºÙّل الصّوتيّات +GenericName[as]=শà§à§°à§±à¦£ কà§à§°à§€à§œà¦• +GenericName[be]=Ðўдыё прайгравач +GenericName[bg]=Музикален плейър +GenericName[bn]=অডিও পà§à¦²à§‡à§Ÿà¦¾à¦° +GenericName[bn_IN]=অডিও পà§à¦²à§‡à§Ÿà¦¾à¦° +GenericName[ca]=Reproductor de so +GenericName[cs]=PÅ™ehrávaÄ zvuku +GenericName[cy]=Chwaraewr Sain +GenericName[da]=Lydafspiller +GenericName[de]=Audio-Player +GenericName[el]=ΑναπαÏαγωγέας Audio +GenericName[en_GB]=Audio Player +GenericName[es]=Reproductor de audio +GenericName[et]=Audio mängijad +GenericName[fa]=پخش‌کنندهٔ صدا +GenericName[fi]=Äänisoitin +GenericName[fr]=Lecteur audio +GenericName[gl]=Reproductor de audio +GenericName[gu]=ઓડિયો વગાડનાર +GenericName[he]=נגן ×¦×œ×™×œ×™× +GenericName[hi]=शà¥à¤°à¤µà¥à¤¯ चालक +GenericName[hr]=SviraÄ zvuka +GenericName[hu]=Hanglejátszó +GenericName[hy]=ÕÕ¡ÕµÕ¶Õ¡Ö€Õ¯Õ«Õ¹ +GenericName[id]=Audio Player +GenericName[ilo]=Pagpatokar iti Uni +GenericName[is]=Hljóðspilari +GenericName[it]=Lettore audio +GenericName[ja]=オーディオプレーヤー +GenericName[ka]=áƒáƒ£áƒ“იáƒáƒ“áƒáƒ›áƒ™áƒ•რელი +GenericName[kn]=ಧà³à²µà²¨à²¿ ನಿರೂಪಕ +GenericName[ko]=오디오 재ìƒê¸° +GenericName[lt]=Audio Grotuvas +GenericName[lv]=Audio atskaņotÄjs +GenericName[mk]=Ðудио пуштач +GenericName[ml]=ഓഡിയോ à´ªàµà´²àµ†à´¯à´°àµâ€ +GenericName[mr]=धà¥à¤µà¤¨à¥€à¤µà¤¾à¤¦à¤• +GenericName[ms]=Pemain Audio +GenericName[nb]=Lydavspiller +GenericName[nl]=Geluidsspeler +GenericName[no]=Lydavspiller +GenericName[nso]=Sebapadi se nago le Modumo +GenericName[or]=ଅଡିଓ ଚାଳକ +GenericName[pa]=ਆਡੀਓ ਪਲੇਅਰ +GenericName[pl]=Odtwarzacz dźwiÄ™ku +GenericName[pt]=Reprodutor Ãudio +GenericName[pt_BR]=Reprodutor de Ãudio +GenericName[ro]=Player audio +GenericName[ru]=Звуковой проигрыватель +GenericName[si]=à·à·Šâ€à¶»à·€à·Šâ€à¶º à·€à·à¶¯à¶šà¶º +GenericName[sk]=PrehrávaÄ zvuku +GenericName[sl]=Predvajalnik zvoka +GenericName[sr]=Ðудио програм +GenericName[sr@latin]=Audio program +GenericName[sv]=Ljudspelare +GenericName[ta]=கேடà¯à®ªà¯Šà®²à®¿ இயகà¯à®•ி +GenericName[te]=Audio Player +GenericName[th]=ตัวเล่นà¹à¸Ÿà¹‰à¸¡à¹€à¸ªà¸µà¸¢à¸‡ +GenericName[tr]=Sesçalar +GenericName[uk]=Програвач звуку +GenericName[ur]=Player Ø¢ Úˆ یو +GenericName[vi]=Bá»™ chÆ¡i nhạc +GenericName[zh_CN]=音频播放器 +GenericName[zh_TW]=音效播放器 +GenericName[zu]=Umdlali Ozwakalayo +Terminal=false +Type=Application +MapNotify=false +Categories=AudioVideo; diff --git a/xmms.sh b/xmms.sh new file mode 100644 index 0000000..685306b --- /dev/null +++ b/xmms.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +# https://bugzilla.redhat.com/213172 +if [ -z "$XLIB_SKIP_ARGB_VISUALS" ] ; then + exec env XLIB_SKIP_ARGB_VISUALS=1 /usr/libexec/xmms "$@" +else + exec /usr/libexec/xmms "$@" +fi diff --git a/xmms.spec b/xmms.spec new file mode 100644 index 0000000..1a23e03 --- /dev/null +++ b/xmms.spec @@ -0,0 +1,102 @@ +Name: xmms +Epoch: 1 +Version: 1.2.11 +Release: 36.20071117cvs +License: GPLv2+ +Summary: XMMS is a legacy GTK+1 music player modeled after Winamp +URL: http://legacy.xmms2.org/ +Source0: xmms-%{version}-20071117cvs.patched.tar.bz2 +Source1: xmms.sh +Source2: xmms.xpm +Source3: xmms-1.2.11-mpg123.tar.bz2 +Source4: xmms.desktop +Provides: xmms-esd = 1:%{version}-%{release} xmms-gui bundled(libmpg123) xmms-mp3 = %{version}-%{release} xmms-libs = 1:%{version}-%{release} +Obsoletes: xmms-esd < 1:18.20071117cvs xmms-mp3 < 1.2.11-8 xmms-libs < 1:%{version}-%{release} +BuildRequires: gtk+-devel alsa-lib-devel libogg-devel libvorbis-devel mikmod-devel gettext-devel +BuildRequires: zlib-devel libGL-devel libXt-devel libSM-devel libXxf86vm-devel desktop-file-utils +Requires: unzip libcanberra-gtk2 gtk2 +Requires(post): desktop-file-utils +Requires(postun): desktop-file-utils + +Patch0001: xmms-1.2.6-audio.patch +Patch0002: xmms-1.2.6-lazy.patch +Patch0003: xmms-1.2.8-default-skin.patch +Patch0004: xmms-1.2.11-alsalib.patch +Patch0005: xmms-cd-mountpoint.patch +Patch0006: xmms-1.2.11-multilib.patch +Patch0007: xmms-1.2.11-is_quitting.patch +Patch0008: xmms-1.2.10-configfile-safe-write.patch +Patch0009: xmms-1.2.10-reposition.patch +Patch0010: xmms-play.patch +Patch0011: xmms-1.2.11-dso.patch +Patch0012: xmms-1.2.10-ubuntu-CVE-2007-0653.patch +Patch0013: xmms-alsa-fix-loop.patch +Patch0014: xmms-1.2.11-mikmod-fix.patch +Patch0015: xmms-1.2.11-a-b.patch + +%description +XMMS is a legacy GTK+1 music player similar to Winamp's. XMMS supports +playlists and streaming content and has a configurable interface. + +%package devel +Summary: Files required for XMMS plug-in development +Requires: gtk+-devel pkgconfig + +%description devel +Files needed for building plug-ins for XMMS. + +%package help +Summary: Help document for XMMS +Buildarch: noarch + +%description help +Help document for XMMS. + +%prep +%autosetup -n xmms-%{version}-20071117cvs -a3 -p1 +sed -i -e 's|"/lib /usr/lib"|"/%{_lib} %{_libdir}"|' configure +%build +%configure --disable-dependency-tracking --enable-kanji --enable-texthack --enable-ipv6 --with-pic --disable-esd +%make_build +%install +%make_install +install -dm 755 %{buildroot}%{_datadir}/xmms/Skins +%delete_la_and_a +mv %{buildroot}/%{_datadir}/locale/sr@Latn %{buildroot}/%{_datadir}/locale/sr@latin +for bin in xmms wmxmms ; do + install -Dpm 755 %{buildroot}%{_bindir}/$bin %{buildroot}%{_libexecdir}/$bin + sed -e "s|/usr/libexec/xmms|%{_libexecdir}/$bin|" %{SOURCE1} > %{buildroot}%{_bindir}/$bin + chmod 755 %{buildroot}%{_bindir}/$bin +done +desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE4} +install -Dpm 644 %{SOURCE2} %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/xmms.xpm +install -Dpm 644 xmms.pc %{buildroot}%{_libdir}/pkgconfig/xmms.pc +%find_lang xmms +%post +/sbin/ldconfig +%postun +/sbin/ldconfig + +%files -f xmms.lang +%doc COPYING AUTHORS ChangeLog FAQ NEWS TODO README README.ab +%{_bindir}/{xmms,wmxmms} +%{_libexecdir}/{xmms,wmxmms} +%{_datadir}/applications/xmms.desktop +%{_datadir}/icons/hicolor/*x*/apps/xmms.xpm +%{_datadir}/xmms +%{_libdir}/libxmms.so.* +%{_libdir}/xmms/{Effect,General,Input,Output,Visualization} + +%files devel +%{_bindir}/xmms-config +%{_includedir}/xmms/ +%{_libdir}/libxmms.so +%{_datadir}/aclocal/xmms.m4 +%{_libdir}/pkgconfig/xmms.pc + +%files help +%{_mandir}/man1/*xmms.1* + +%changelog +* Fri Nov 29 2019 Ling Yang - 1:1.2.11-36.20071117cvs +- Package init diff --git a/xmms.xpm b/xmms.xpm new file mode 100644 index 0000000..d1b442f --- /dev/null +++ b/xmms.xpm @@ -0,0 +1,1778 @@ +/* XPM */ +static char * xmms2_xpm[] = { +"48 48 1727 2", +" c None", +". c #252852", +"+ c #242752", +"@ c #242652", +"# c #262955", +"$ c #272A56", +"% c #282B58", +"& c #2B2E5B", +"* c #2C2F5D", +"= c #2B2E5D", +"- c #2B2E5E", +"; c #2B2F5F", +"> c #2E3161", +", c #303364", +"' c #333668", +") c #36396B", +"! c #373A6D", +"~ c #383C6F", +"{ c #393C70", +"] c #373A6F", +"^ c #35396D", +"/ c #32366B", +"( c #31346A", +"_ c #34376E", +": c #363A70", +"< c #393D74", +"[ c #373A72", +"} c #32366D", +"| c #2D3169", +"1 c #292D65", +"2 c #2A2D66", +"3 c #292C66", +"4 c #292D66", +"5 c #2E326C", +"6 c #343872", +"7 c #3C407A", +"8 c #3C407B", +"9 c #3D407B", +"0 c #3C3F7A", +"a c #3A3E79", +"b c #383C77", +"c c #363A75", +"d c #353974", +"e c #333772", +"f c #323671", +"g c #262953", +"h c #262954", +"i c #262854", +"j c #252854", +"k c #262956", +"l c #2A2D5B", +"m c #2E315F", +"n c #2D305F", +"o c #2C2F5F", +"p c #2D3060", +"q c #2C2F60", +"r c #2D3062", +"s c #2F3364", +"t c #323567", +"u c #35386B", +"v c #373B6E", +"w c #393C71", +"x c #3A3E72", +"y c #393D72", +"z c #373A70", +"A c #35386F", +"B c #32366C", +"C c #363971", +"D c #393D75", +"E c #3A3E76", +"F c #353871", +"G c #30336D", +"H c #2B2F68", +"I c #2A2E68", +"J c #292D67", +"K c #2A2D68", +"L c #2E326D", +"M c #343873", +"N c #3D417D", +"O c #3B3F7C", +"P c #3A3D7A", +"Q c #383C78", +"R c #363A76", +"S c #353975", +"T c #333773", +"U c #272A55", +"V c #282A56", +"W c #252855", +"X c #272A57", +"Y c #282B59", +"Z c #292C5B", +"` c #2A2D5C", +" . c #2B2E5F", +".. c #2E3264", +"+. c #303466", +"@. c #323669", +"#. c #34386C", +"$. c #363A6E", +"%. c #373B70", +"&. c #373B71", +"*. c #353870", +"=. c #34376F", +"-. c #33376F", +";. c #353971", +">. c #363A73", +",. c #363973", +"'. c #343771", +"). c #30346E", +"!. c #2D316B", +"~. c #2B2F6A", +"{. c #2A2E69", +"]. c #2A2E6A", +"^. c #2D316E", +"/. c #323673", +"(. c #373B77", +"_. c #3A3E7B", +":. c #3B3F7D", +"<. c #3B3E7C", +"[. c #393D7B", +"}. c #383C79", +"|. c #373A78", +"1. c #353977", +"2. c #343876", +"3. c #292B57", +"4. c #292C58", +"5. c #262957", +"6. c #272A58", +"7. c #2A2D5D", +"8. c #2D3163", +"9. c #2F3366", +"0. c #313568", +"a. c #33376B", +"b. c #35386D", +"c. c #36396F", +"d. c #373A71", +"e. c #363A71", +"f. c #353972", +"g. c #353973", +"h. c #353873", +"i. c #343772", +"j. c #323570", +"k. c #2F326E", +"l. c #2D306B", +"m. c #2B2F6B", +"n. c #2B2F6C", +"o. c #2C306E", +"p. c #313573", +"q. c #3C3F7E", +"r. c #3B3E7D", +"s. c #3A3E7D", +"t. c #393C7C", +"u. c #373B7B", +"v. c #353979", +"w. c #282B57", +"x. c #2A2D59", +"y. c #2C2F5E", +"z. c #2E3263", +"A. c #2F3265", +"B. c #313468", +"C. c #33366A", +"D. c #37396F", +"E. c #383B71", +"F. c #393B72", +"G. c #393B73", +"H. c #383B73", +"I. c #373A73", +"J. c #373973", +"K. c #363974", +"L. c #363875", +"M. c #343672", +"N. c #32346F", +"O. c #2D306C", +"P. c #2C306C", +"Q. c #2C306F", +"R. c #313572", +"S. c #363977", +"T. c #3A3D7C", +"U. c #3D407F", +"V. c #3D3F80", +"W. c #3B3F7F", +"X. c #3A3E7F", +"Y. c #393D7E", +"Z. c #383C7D", +"`. c #373B7C", +" + c #292B58", +".+ c #292B59", +"++ c #2A2C5A", +"@+ c #2B2E5C", +"#+ c #2D2F5C", +"$+ c #2E315E", +"%+ c #2F325F", +"&+ c #303361", +"*+ c #303362", +"=+ c #313467", +"-+ c #343669", +";+ c #36396C", +">+ c #383B6F", +",+ c #3A3C71", +"'+ c #3C3D73", +")+ c #3C3D74", +"!+ c #3C3D75", +"~+ c #3B3C74", +"{+ c #393B75", +"]+ c #373B75", +"^+ c #383B75", +"/+ c #393A75", +"(+ c #3A3976", +"_+ c #393873", +":+ c #363670", +"<+ c #31346D", +"[+ c #2E326B", +"}+ c #2D316D", +"|+ c #383A76", +"1+ c #3C3E7F", +"2+ c #3F4081", +"3+ c #404181", +"4+ c #3F4182", +"5+ c #3E4082", +"6+ c #3C3F82", +"7+ c #3A3E81", +"8+ c #383C7F", +"9+ c #2B2B5A", +"0+ c #2C2C5A", +"a+ c #2E2D5A", +"b+ c #2D2E59", +"c+ c #2C2D59", +"d+ c #2D2C59", +"e+ c #2D2E5A", +"f+ c #2D2F5B", +"g+ c #2F315C", +"h+ c #32345D", +"i+ c #34355F", +"j+ c #343560", +"k+ c #333561", +"l+ c #343664", +"m+ c #343565", +"n+ c #363767", +"o+ c #393B6B", +"p+ c #3B3D70", +"q+ c #3F3E72", +"r+ c #403E72", +"s+ c #413E75", +"t+ c #413E76", +"u+ c #403D76", +"v+ c #3D3D76", +"w+ c #3A3C77", +"x+ c #393C76", +"y+ c #3D3C74", +"z+ c #403B74", +"A+ c #413A75", +"B+ c #3B396F", +"C+ c #36366B", +"D+ c #313369", +"E+ c #34366C", +"F+ c #3A3B73", +"G+ c #433E7D", +"H+ c #454080", +"I+ c #464282", +"J+ c #444284", +"K+ c #404285", +"L+ c #3E4185", +"M+ c #3C4084", +"N+ c #3B3F83", +"O+ c #393D81", +"P+ c #282A5A", +"Q+ c #2F2C5D", +"R+ c #3E2E60", +"S+ c #402F5E", +"T+ c #41305B", +"U+ c #423159", +"V+ c #433257", +"W+ c #443458", +"X+ c #47365A", +"Y+ c #48375B", +"Z+ c #49375A", +"`+ c #49385C", +" @ c #4C395D", +".@ c #4B395E", +"+@ c #4E3C60", +"@@ c #4E3C61", +"#@ c #4E3C62", +"$@ c #4F3D63", +"%@ c #513F65", +"&@ c #534167", +"*@ c #524066", +"=@ c #523F66", +"-@ c #533F68", +";@ c #513F6D", +">@ c #403F75", +",@ c #3D3F7E", +"'@ c #3C3E7B", +")@ c #4D3E6F", +"!@ c #4E3D6C", +"~@ c #4C3C69", +"{@ c #4C3B66", +"]@ c #4A3A62", +"^@ c #45385F", +"/@ c #45375F", +"(@ c #44385F", +"_@ c #483A62", +":@ c #4C3C67", +"<@ c #4F3E6B", +"[@ c #51406E", +"}@ c #524273", +"|@ c #474488", +"1@ c #434489", +"2@ c #404388", +"3@ c #3E4287", +"4@ c #3D4187", +"5@ c #3B3F85", +"6@ c #242755", +"7@ c #252857", +"8@ c #2B2A5D", +"9@ c #4A2C6F", +"0@ c #4D3066", +"a@ c #513163", +"b@ c #523460", +"c@ c #503559", +"d@ c #4D3654", +"e@ c #4C3854", +"f@ c #4D3954", +"g@ c #4E3A54", +"h@ c #4F3B54", +"i@ c #503C54", +"j@ c #523D54", +"k@ c #533E54", +"l@ c #523E54", +"m@ c #533F54", +"n@ c #543F54", +"o@ c #544054", +"p@ c #564056", +"q@ c #574057", +"r@ c #564057", +"s@ c #524059", +"t@ c #43427B", +"u@ c #424285", +"v@ c #62429B", +"w@ c #5A4066", +"x@ c #594062", +"y@ c #59405F", +"z@ c #563F5C", +"A@ c #523D57", +"B@ c #4F3C54", +"C@ c #4C3B54", +"D@ c #4E3C55", +"E@ c #523F58", +"F@ c #57405C", +"G@ c #56405C", +"H@ c #52415C", +"I@ c #49468C", +"J@ c #45468D", +"K@ c #42458C", +"L@ c #40448B", +"M@ c #3E438A", +"N@ c #3C4188", +"O@ c #252856", +"P@ c #2A295B", +"Q@ c #552B7B", +"R@ c #5D2E7F", +"S@ c #613180", +"T@ c #643380", +"U@ c #593669", +"V@ c #563957", +"W@ c #523A54", +"X@ c #513A54", +"Y@ c #503B54", +"Z@ c #513C54", +"`@ c #533D54", +" # c #543E54", +".# c #553F54", +"+# c #554054", +"@# c #564054", +"## c #564055", +"$# c #7C4EA2", +"%# c #8B50BD", +"&# c #454683", +"*# c #464583", +"=# c #454689", +"-# c #7B49B4", +";# c #7845AE", +"># c #7948AA", +",# c #6B4691", +"'# c #62447B", +")# c #58405B", +"!# c #513E54", +"~# c #513E58", +"{# c #554164", +"]# c #644687", +"^# c #734FA4", +"/# c #4B4991", +"(# c #4A4A93", +"_# c #464992", +":# c #444891", +"<# c #424790", +"[# c #40458E", +"}# c #3E438C", +"|# c #272859", +"1# c #2E2A5F", +"2# c #372C67", +"3# c #3F2F6E", +"4# c #5C3283", +"5# c #663782", +"6# c #593B61", +"7# c #563C54", +"8# c #543D54", +"9# c #5A4360", +"0# c #474885", +"a# c #47498C", +"b# c #46488A", +"c# c #47488E", +"d# c #46488D", +"e# c #47448D", +"f# c #5A489A", +"g# c #6749A5", +"h# c #794DAD", +"i# c #604475", +"j# c #4F3E58", +"k# c #553E7A", +"l# c #4E418F", +"m# c #514694", +"n# c #4D4A96", +"o# c #4D4C98", +"p# c #494C97", +"q# c #474B96", +"r# c #454A95", +"s# c #434893", +"t# c #424792", +"u# c #404590", +"v# c #252858", +"w# c #252859", +"x# c #26295A", +"y# c #272B5C", +"z# c #2E2D60", +"A# c #403071", +"B# c #65358A", +"C# c #633C79", +"D# c #573C5B", +"E# c #563D54", +"F# c #594775", +"G# c #484889", +"H# c #494A8C", +"I# c #474A8E", +"J# c #46498E", +"K# c #44488D", +"L# c #43458B", +"M# c #4D4895", +"N# c #6B4CA6", +"O# c #63467C", +"P# c #564059", +"Q# c #503F59", +"R# c #513E7D", +"S# c #393B7F", +"T# c #383C87", +"U# c #404591", +"V# c #484B97", +"W# c #4A4D9A", +"X# c #4A4E9B", +"Y# c #494E9B", +"Z# c #474C99", +"`# c #454A98", +" $ c #434896", +".$ c #414694", +"+$ c #262959", +"@$ c #25285A", +"#$ c #26295B", +"$$ c #272A5C", +"%$ c #282B5E", +"&$ c #312E65", +"*$ c #4B337A", +"=$ c #69388C", +"-$ c #5E3B6A", +";$ c #563C57", +">$ c #553D54", +",$ c #534054", +"'$ c #514B85", +")$ c #4B4A8E", +"!$ c #4A4B90", +"~$ c #484B91", +"{$ c #464A91", +"]$ c #444890", +"^$ c #484891", +"/$ c #674CA0", +"($ c #5B456A", +"_$ c #55405D", +":$ c #50407D", +"<$ c #3B3E82", +"[$ c #373C85", +"}$ c #363B88", +"|$ c #3F4491", +"1$ c #4A4E9D", +"2$ c #4B509F", +"3$ c #494E9E", +"4$ c #474C9C", +"5$ c #464B9B", +"6$ c #444999", +"7$ c #252959", +"8$ c #26295C", +"9$ c #272A5D", +"0$ c #282B5F", +"a$ c #292C61", +"b$ c #352F6A", +"c$ c #5C3589", +"d$ c #693A89", +"e$ c #583C5F", +"f$ c #553E54", +"g$ c #554460", +"h$ c #514C8C", +"i$ c #4E4D93", +"j$ c #4B4E95", +"k$ c #4A4C94", +"l$ c #484A93", +"m$ c #47488C", +"n$ c #5B467B", +"o$ c #564060", +"p$ c #58487D", +"q$ c #42438A", +"r$ c #3A3F8A", +"s$ c #393E8B", +"t$ c #393E8D", +"u$ c #3F4494", +"v$ c #4B51A1", +"w$ c #4E53A4", +"x$ c #4D52A4", +"y$ c #4C51A3", +"z$ c #4A4FA1", +"A$ c #484D9F", +"B$ c #454A9C", +"C$ c #292C5C", +"D$ c #272A5E", +"E$ c #292C62", +"F$ c #2B2E64", +"G$ c #3E3173", +"H$ c #693793", +"I$ c #633C7B", +"J$ c #563C5A", +"K$ c #563E54", +"L$ c #554055", +"M$ c #594874", +"N$ c #4F5093", +"O$ c #505098", +"P$ c #504F9A", +"Q$ c #4C4B93", +"R$ c #5F4A8E", +"S$ c #5A487B", +"T$ c #504E98", +"U$ c #474893", +"V$ c #3E4392", +"W$ c #3B4191", +"X$ c #3A3F91", +"Y$ c #3E4396", +"Z$ c #464C9E", +"`$ c #4E53A6", +" % c #4F54A7", +".% c #4F54A8", +"+% c #4D53A7", +"@% c #4C51A6", +"#% c #4B50A4", +"$% c #484DA2", +"%% c #2D3061", +"&% c #2B2F60", +"*% c #292C5F", +"=% c #272B5E", +"-% c #282B60", +";% c #2B2E65", +">% c #312F69", +",% c #4F3480", +"'% c #6D3997", +")% c #5E3C6C", +"!% c #563E57", +"~% c #564058", +"{% c #594E88", +"]% c #52529A", +"^% c #54529C", +"/% c #5E4F9A", +"(% c #564061", +"_% c #564469", +":% c #534C94", +"<% c #5052A1", +"[% c #4A4D9D", +"}% c #434999", +"|% c #3C4295", +"1% c #3F4498", +"2% c #4A4FA5", +"3% c #5055AA", +"4% c #5157AC", +"5% c #5156AD", +"6% c #5055AC", +"7% c #4E54AB", +"8% c #4D53AA", +"9% c #4A50A7", +"0% c #313466", +"a% c #303365", +"b% c #2D3063", +"c% c #2B2E62", +"d% c #292D62", +"e% c #2A2D63", +"f% c #2A2E65", +"g% c #2C2F68", +"h% c #35306F", +"i% c #623892", +"j% c #6F3E95", +"k% c #58405D", +"l% c #574564", +"m% c #595194", +"n% c #5A549D", +"o% c #5A466B", +"p% c #56415F", +"q% c #544D97", +"r% c #4E519F", +"s% c #5154A7", +"t% c #5256A8", +"u% c #4A4EA3", +"v% c #444A9B", +"w% c #454A9D", +"x% c #6567AF", +"y% c #585CAC", +"z% c #5459AE", +"A% c #5459B2", +"B% c #5359B2", +"C% c #5258B2", +"D% c #5157B1", +"E% c #5055AF", +"F% c #4D53AC", +"G% c #373A6C", +"H% c #2E3166", +"I% c #2D3065", +"J% c #2C2F65", +"K% c #2B2E66", +"L% c #2E316A", +"M% c #3E3478", +"N% c #7742A6", +"O% c #704F8C", +"P% c #675367", +"Q% c #574155", +"R% c #634F62", +"S% c #5C4B75", +"T% c #624C7B", +"U% c #564260", +"V% c #5E5495", +"W% c #5254A4", +"X% c #565BAF", +"Y% c #5F62B6", +"Z% c #6B6EBB", +"`% c #9896CB", +" & c #B9B4D7", +".& c #7476B7", +"+& c #5A5EAF", +"@& c #555AB1", +"#& c #555BB6", +"$& c #555BB7", +"%& c #5359B6", +"&& c #5258B5", +"*& c #4E54B1", +"=& c #393D70", +"-& c #34376B", +";& c #323569", +">& c #313469", +",& c #30336A", +"'& c #2E3169", +")& c #2D3168", +"!& c #343372", +"~& c #5D4592", +"{& c #B4A5D3", +"]& c #A498A5", +"^& c #584357", +"/& c #756374", +"(& c #827280", +"_& c #574255", +":& c #665593", +"<& c #5C62B0", +"[& c #5B60B2", +"}& c #595CB0", +"|& c #9797D1", +"1& c #CCC7E1", +"2& c #DBD4DC", +"3& c #D7D3E0", +"4& c #BCBBD6", +"5& c #585EAE", +"6& c #4B51AB", +"7& c #5359B5", +"8& c #585EBC", +"9& c #585EBD", +"0& c #565CBD", +"a& c #555BBC", +"b& c #5158B8", +"c& c #34386D", +"d& c #35386E", +"e& c #363970", +"f& c #373B72", +"g& c #8F8AB3", +"h& c #333770", +"i& c #353874", +"j& c #8181B5", +"k& c #DCD7E0", +"l& c #D0C8D5", +"m& c #594458", +"n& c #594357", +"o& c #C3BCC3", +"p& c #877886", +"q& c #584256", +"r& c #5E5EAF", +"s& c #7679C3", +"t& c #B7B4E1", +"u& c #D7D1E3", +"v& c #E4DFE3", +"w& c #E4E1E4", +"x& c #E4E2E5", +"y& c #CECDDD", +"z& c #5F63B3", +"A& c #494FAC", +"B& c #474DAD", +"C& c #5157B8", +"D& c #595FC1", +"E& c #5A61C3", +"F& c #5A60C4", +"G& c #5960C3", +"H& c #585FC2", +"I& c #545BBE", +"J& c #33376A", +"K& c #36396E", +"L& c #35396E", +"M& c #3A3D74", +"N& c #3C4077", +"O& c #8687BC", +"P& c #D7D2DE", +"Q& c #3D3F77", +"R& c #464883", +"S& c #CDC9E3", +"T& c #E9E6EA", +"U& c #DDD6E3", +"V& c #674980", +"W& c #665265", +"X& c #867684", +"Y& c #564154", +"Z& c #998C98", +"`& c #E8E5E8", +" * c #897A87", +".* c #695A90", +"+* c #A7A8ED", +"@* c #E3DFE8", +"#* c #EAE8EA", +"$* c #ECEAEC", +"%* c #E7E5E7", +"&* c #BEBEDD", +"** c #6167C2", +"=* c #4F56B5", +"-* c #484EB1", +";* c #474DB1", +">* c #5258BD", +",* c #5B62C8", +"'* c #5E64CB", +")* c #5D63CA", +"!* c #5B62C9", +"~* c #575EC5", +"{* c #3B3E76", +"]* c #4D5089", +"^* c #CBC8EE", +"/* c #E7E5E8", +"(* c #A29DC3", +"_* c #3E427B", +":* c #AFACD9", +"<* c #E5E2E6", +"[* c #EBE9EB", +"}* c #DCD6E4", +"|* c #8447B9", +"1* c #59425F", +"2* c #978A96", +"3* c #A79CA6", +"4* c #665365", +"5* c #D9D5D9", +"6* c #EBE8EB", +"7* c #574157", +"8* c #A7A4D7", +"9* c #E6E4ED", +"0* c #ECEAEE", +"a* c #EBE9EC", +"b* c #E8E6E8", +"c* c #B1B2E0", +"d* c #676CCF", +"e* c #545BC0", +"f* c #4C53B9", +"g* c #4A50B8", +"h* c #535AC3", +"i* c #5D63CD", +"j* c #6168D2", +"k* c #6067D2", +"l* c #5B62CD", +"m* c #6C6EA8", +"n* c #DDD9E7", +"o* c #E2DDE5", +"p* c #7072AE", +"q* c #DFDBE4", +"r* c #E5E1E6", +"s* c #7B46B6", +"t* c #7245A2", +"u* c #B9B0B8", +"v* c #EAE6EA", +"w* c #8A7A88", +"x* c #5C4866", +"y* c #BABDFA", +"z* c #E9E7ED", +"A* c #E9E7EA", +"B* c #DCD9E4", +"C* c #7075D8", +"D* c #5D64CD", +"E* c #4F56C0", +"F* c #4E55C0", +"G* c #535AC7", +"H* c #5C63D1", +"I* c #636BD9", +"J* c #646BDA", +"K* c #636ADA", +"L* c #5F66D6", +"M* c #313569", +"N* c #33366C", +"O* c #33376D", +"P* c #373B74", +"Q* c #9597D3", +"R* c #E7E4E7", +"S* c #EDEBED", +"T* c #E0D9E5", +"U* c #EAE8EC", +"V* c #4A3F8E", +"W* c #7F47BB", +"X* c #654882", +"Y* c #E9E6E9", +"Z* c #AA9FA9", +"`* c #796878", +" = c #72659F", +".= c #CED0F8", +"+= c #EBE9ED", +"@= c #A3A4E5", +"#= c #6A6FD7", +"$= c #565ECC", +"%= c #5158C8", +"&= c #535ACB", +"*= c #5D64D6", +"== c #676EE1", +"-= c #676FE2", +";= c #686FE3", +">= c #636ADF", +",= c #303469", +"'= c #32356C", +")= c #33366E", +"!= c #383B74", +"~= c #CCCAF2", +"{= c #EEECEF", +"]= c #EBE8EC", +"^= c #424589", +"/= c #6244A5", +"(= c #8E69CF", +"_= c #948696", +":= c #8381D7", +"<= c #CDCFF8", +"[= c #EBE9EF", +"}= c #E9E7EB", +"|= c #CFCBE6", +"1= c #797FE0", +"2= c #6067D8", +"3= c #565DD1", +"4= c #545BD0", +"5= c #5F66DB", +"6= c #676FE5", +"7= c #6B72E9", +"8= c #6C74EB", +"9= c #6D75EE", +"0= c #676FE8", +"a= c #31356B", +"b= c #343871", +"c= c #6668A3", +"d= c #DAD6EA", +"e= c #DCDBF4", +"f= c #EDEBEF", +"g= c #DDDCF0", +"h= c #ECEAEF", +"i= c #E7E5EA", +"j= c #4B4F93", +"k= c #454891", +"l= c #9D8DE2", +"m= c #D5CFDB", +"n= c #C8C2C8", +"o= c #CCC6CC", +"p= c #E9E7E9", +"q= c #CAC4CA", +"r= c #B9AFB8", +"s= c #5C4867", +"t= c #A4AAFE", +"u= c #DADBF1", +"v= c #DDDAE9", +"w= c #9A9DEA", +"x= c #6E75E1", +"y= c #5B62DB", +"z= c #575FDA", +"A= c #6169E1", +"B= c #6A73E9", +"C= c #6F76ED", +"D= c #7179F1", +"E= c #727AF9", +"F= c #6C74F3", +"G= c #353872", +"H= c #8485BE", +"I= c #E3E0E7", +"J= c #ABAAC4", +"K= c #C3C3FE", +"L= c #EEECEE", +"M= c #8F91BC", +"N= c #CDCDF8", +"O= c #ECEBEF", +"P= c #E5E4E9", +"Q= c #585B9F", +"R= c #51559C", +"S= c #B2B1EB", +"T= c #D3CED8", +"U= c #827182", +"V= c #90808E", +"W= c #E2DEE2", +"X= c #D3CED3", +"Y= c #6F5D6E", +"Z= c #AAA0A9", +"`= c #B8AFB7", +" - c #6E61A0", +".- c #AEB2F8", +"+- c #E1DEE9", +"@- c #E2E0EA", +"#- c #BFBDEA", +"$- c #7F85EB", +"%- c #636BE5", +"&- c #5D65E4", +"*- c #656DE7", +"=- c #6E76EC", +"-- c #747CF1", +";- c #767FF6", +">- c #7780FF", +",- c #7179FE", +"'- c #393D76", +")- c #BDBAED", +"!- c #E6E4E9", +"~- c #4C4F85", +"{- c #8587C6", +"]- c #D0CEE7", +"^- c #BABAD0", +"/- c #434789", +"(- c #B2B3F6", +"_- c #E8E5ED", +":- c #E3E1E8", +"<- c #5A5FA1", +"[- c #6D70B5", +"}- c #ACA5C2", +"|- c #BBB4C2", +"1- c #705986", +"2- c #736284", +"3- c #C8C1CA", +"4- c #5D475B", +"5- c #7B6A7A", +"6- c #B7AEB6", +"7- c #C2B9C7", +"8- c #E3E1EA", +"9- c #D4D1EC", +"0- c #8D93EE", +"a- c #6F77EB", +"b- c #626BEB", +"c- c #656EEC", +"d- c #7179F0", +"e- c #7A83F4", +"f- c #7D85F9", +"g- c #7E87FF", +"h- c #767FFF", +"i- c #3B3F76", +"j- c #3B3F77", +"k- c #3B3E77", +"l- c #5B5D97", +"m- c #C7C4E2", +"n- c #C4C2D4", +"o- c #383C7A", +"p- c #575A9A", +"q- c #6D70A3", +"r- c #50538D", +"s- c #414588", +"t- c #8789CC", +"u- c #D6D5EE", +"v- c #DFDDE6", +"w- c #5D5E9F", +"x- c #847CBB", +"y- c #9E94A9", +"z- c #8D7D99", +"A- c #8162BA", +"B- c #8B70C9", +"C- c #85728B", +"D- c #5E495D", +"E- c #614B5F", +"F- c #D0C9D0", +"G- c #B5ACB4", +"H- c #897987", +"I- c #DCD8DC", +"J- c #EAE8EB", +"K- c #CBCBEE", +"L- c #8B94EF", +"M- c #7A82EE", +"N- c #6972EF", +"O- c #6871F0", +"P- c #757EF3", +"Q- c #818AF6", +"R- c #838DFA", +"S- c #868FFF", +"T- c #7D86FF", +"U- c #3A3D75", +"V- c #3D4179", +"W- c #40447D", +"X- c #7D7FB8", +"Y- c #CFCCDF", +"Z- c #646797", +"`- c #3D417F", +" ; c #3C4180", +".; c #3C4081", +"+; c #3C4083", +"@; c #3E4286", +"#; c #5E62A6", +"$; c #C1C1F1", +"%; c #D9D7E4", +"&; c #6A60A0", +"*; c #675776", +"=; c #A198AD", +"-; c #6A61A4", +";; c #6660B6", +">; c #8B65D5", +",; c #775BA8", +"'; c #5B435F", +"); c #5C475A", +"!; c #A296A1", +"~; c #B1A7B0", +"{; c #594457", +"]; c #EEEBEE", +"^; c #CFCCD9", +"/; c #A9AAEE", +"(; c #8B94F2", +"_; c #8A93F0", +":; c #8089F0", +"<; c #737CF1", +"[; c #6E78F3", +"}; c #7B85F5", +"|; c #8791F7", +"1; c #8B95FB", +"2; c #8D97FF", +"3; c #848EFF", +"4; c #34386F", +"5; c #8889C7", +"6; c #C0BED5", +"7; c #424684", +"8; c #404484", +"9; c #3F4485", +"0; c #3F4386", +"a; c #3F4488", +"b; c #454A8F", +"c; c #A6A7EB", +"d; c #CFCCDC", +"e; c #6D5A7C", +"f; c #685872", +"g; c #8A81AB", +"h; c #575BA7", +"i; c #595BAE", +"j; c #6E5FC1", +"k; c #8C66D6", +"l; c #685188", +"m; c #58405A", +"n; c #786777", +"o; c #ACA1AB", +"p; c #988B97", +"q; c #EFEDEF", +"r; c #DDD9DD", +"s; c #A99EA8", +"t; c #574256", +"u; c #8785CE", +"v; c #8C95F0", +"w; c #8A93F1", +"x; c #7F89F2", +"y; c #7580F4", +"z; c #808AF6", +"A; c #8E99F8", +"B; c #949FFB", +"C; c #97A1FF", +"D; c #8C96FF", +"E; c #2F336B", +"F; c #32356F", +"G; c #393C75", +"H; c #9998C4", +"I; c #7072A2", +"J; c #404482", +"K; c #3E4281", +"L; c #404485", +"M; c #404486", +"N; c #414589", +"O; c #44488C", +"P; c #484C93", +"Q; c #807FC4", +"R; c #A197AF", +"S; c #67556C", +"T; c #857998", +"U; c #5557A0", +"V; c #5053A5", +"W; c #5157AB", +"X; c #5A5CB4", +"Y; c #7860CE", +"Z; c #8262C7", +"`; c #5F4870", +" > c #574158", +".> c #5E485C", +"+> c #594557", +"@> c #C5BFC5", +"#> c #C7C1C7", +"$> c #5F4D68", +"%> c #999FEB", +"&> c #8F96F0", +"*> c #9099F0", +"=> c #8A94F2", +"-> c #7F8AF4", +";> c #828DF7", +">> c #96A1F9", +",> c #A0ABFC", +"'> c #A0ACFF", +")> c #95A0FF", +"!> c #2C3068", +"~> c #2D316A", +"{> c #575994", +"]> c #9C9ABB", +"^> c #383B77", +"/> c #3A3E7E", +"(> c #3D4182", +"_> c #3F4486", +":> c #43488C", +"<> c #48498E", +"[> c #4D5092", +"}> c #705E9D", +"|> c #76657D", +"1> c #81748F", +"2> c #918FBB", +"3> c #5256A1", +"4> c #4D52A5", +"5> c #5056AB", +"6> c #5359B1", +"7> c #605EBE", +"8> c #7F62D6", +"9> c #755CB0", +"0> c #594261", +"a> c #5C465C", +"b> c #887887", +"c> c #5B4659", +"d> c #A0959F", +"e> c #776576", +"f> c #78709F", +"g> c #9DA6EA", +"h> c #98A2EF", +"i> c #9DA9F1", +"j> c #8B96F4", +"k> c #8B96F7", +"l> c #9EAAF9", +"m> c #AAB6FC", +"n> c #ACB8FF", +"o> c #9EAAFF", +"p> c #2D3069", +"q> c #555892", +"r> c #646691", +"s> c #333776", +"t> c #363A7A", +"u> c #393D7F", +"v> c #3C4082", +"w> c #414386", +"x> c #47468A", +"y> c #5B4B94", +"z> c #564360", +"A> c #5B4A66", +"B> c #8584B3", +"C> c #7577B1", +"D> c #5156A5", +"E> c #4F54AB", +"F> c #5258B1", +"G> c #575CB8", +"H> c #6A5FC7", +"I> c #8364D9", +"J> c #69548E", +"K> c #5C4660", +"L> c #796778", +"M> c #715E6F", +"N> c #7D6D7B", +"O> c #584356", +"P> c #574159", +"Q> c #9597C5", +"R> c #A1ABE9", +"S> c #A7B3F1", +"T> c #9EAAF3", +"U> c #95A1F6", +"V> c #A6B2F9", +"W> c #B5C2FB", +"X> c #BAC7FF", +"Y> c #AAB7FF", +"Z> c #2D306A", +"`> c #2F336E", +" , c #303470", +"., c #323674", +"+, c #333777", +"@, c #34387B", +"#, c #4B4284", +"$, c #524261", +"%, c #54405C", +"&, c #5A5081", +"*, c #575B9E", +"=, c #565CA8", +"-, c #565BAA", +";, c #5258AC", +">, c #5358B0", +",, c #5359B3", +"', c #565CB9", +"), c #5B5FC0", +"!, c #7462D5", +"~, c #8063D6", +"{, c #614A76", +"], c #59445B", +"^, c #564155", +"/, c #64556E", +"(, c #B1BAE1", +"_, c #ADB8ED", +":, c #B4C0F3", +"<, c #A1AFF5", +"[, c #ADBAF7", +"}, c #C2CFFB", +"|, c #CBD8FF", +"1, c #B7C5FF", +"2, c #2F326D", +"3, c #2F336F", +"4, c #303471", +"5, c #313571", +"6, c #323672", +"7, c #333774", +"8, c #343976", +"9, c #463E79", +"0, c #4F3F60", +"a, c #504056", +"b, c #50405B", +"c, c #474886", +"d, c #4C4F97", +"e, c #4E53A0", +"f, c #5155A8", +"g, c #565BB1", +"h, c #565CB5", +"i, c #575DB9", +"j, c #5A5FBE", +"k, c #5A60C2", +"l, c #5F62C8", +"m, c #7C65DC", +"n, c #7760C0", +"o, c #594363", +"p, c #88829E", +"q, c #BAC3E6", +"r, c #C6D2F1", +"s, c #B1BFF3", +"t, c #B3C0F4", +"u, c #D1DFF8", +"v, c #DEEDFF", +"w, c #C6D5FF", +"x, c #323670", +"y, c #363870", +"z, c #393A72", +"A, c #4A3C6F", +"B, c #4F3D5F", +"C, c #503E54", +"D, c #513F54", +"E, c #4F4058", +"F, c #46447D", +"G, c #43478B", +"H, c #474C95", +"I, c #4D509D", +"J, c #5254A8", +"K, c #5559B3", +"L, c #5C62BF", +"M, c #5D63C3", +"N, c #5F64C6", +"O, c #6564CA", +"P, c #6C65D2", +"Q, c #7F68DD", +"R, c #685598", +"S, c #56405B", +"T, c #5A495D", +"U, c #B9B9C5", +"V, c #C5CEE4", +"W, c #C2CCEA", +"X, c #B9C4ED", +"Y, c #E0E7F3", +"Z, c #F5FFFF", +"`, c #D9E9FF", +" ' c #383B78", +".' c #453B71", +"+' c #473B6A", +"@' c #4D3C67", +"#' c #4E3D5E", +"$' c #4F3E56", +"%' c #524056", +"&' c #514161", +"*' c #4E4378", +"=' c #4F467F", +"-' c #504882", +";' c #504D91", +">' c #4E52A5", +",' c #5358B4", +"'' c #585DBD", +")' c #6562B9", +"!' c #675AAC", +"~' c #6A5AAD", +"{' c #6A57A3", +"]' c #5B4767", +"^' c #6C5A6B", +"/' c #A6A4AF", +"(' c #AAA6B2", +"_' c #A8A9C6", +":' c #E1E2E8", +"<' c #FFFFFF", +"[' c #EEFFFF", +"}' c #3D417B", +"|' c #3D417C", +"1' c #3F3F7E", +"2' c #504089", +"3' c #564065", +"4' c #584062", +"5' c #584060", +"6' c #58405F", +"7' c #57405F", +"8' c #584061", +"9' c #574061", +"0' c #574063", +"a' c #574066", +"b' c #564165", +"c' c #564161", +"d' c #514164", +"e' c #494FA0", +"f' c #4B51AF", +"g' c #5057B9", +"h' c #5E5AC1", +"i' c #635292", +"j' c #5B4670", +"k' c #5B4770", +"l' c #5B476E", +"m' c #5B4766", +"n' c #5A4561", +"o' c #594560", +"p' c #59445F", +"q' c #584460", +"r' c #58445E", +"s' c #59455F", +"t' c #5A485F", +"u' c #5C485E", +"v' c #5B475E", +"w' c #5A465D", +"x' c #59465C", +"y' c #5A455B", +"z' c #59465A", +"A' c #5A4759", +"B' c #614E60", +"C' c #685868", +"D' c #706272", +"E' c #817284", +"F' c #E2E0E5", +"G' c #3E427E", +"H' c #424281", +"I' c #7447A8", +"J' c #6B4893", +"K' c #69478E", +"L' c #6A488F", +"M' c #6A4A90", +"N' c #69498F", +"O' c #684A91", +"P' c #674A91", +"Q' c #674B92", +"R' c #664A92", +"S' c #664B95", +"T' c #654995", +"U' c #644998", +"V' c #624A97", +"W' c #524D94", +"X' c #4A50A3", +"Y' c #4C52AF", +"Z' c #4F55B8", +"`' c #6156C7", +" ) c #6855BA", +".) c #6453AB", +"+) c #6654AE", +"@) c #6858B0", +"#) c #6C5FAE", +"$) c #7066AE", +"%) c #6D65AC", +"&) c #6B64AD", +"*) c #6A63A9", +"=) c #6C65A8", +"-) c #6E6AA8", +";) c #7675A8", +">) c #8381A8", +",) c #8280A7", +"') c #8580A7", +")) c #8882A9", +"!) c #8A8BA7", +"~) c #9595A7", +"{) c #A29FA9", +"]) c #AAA2AA", +"^) c #AAA3AA", +"/) c #AEA6AE", +"() c #C3BEC4", +"_) c #E3E5E6", +":) c #3B3E79", +"<) c #3C407C", +"[) c #404280", +"}) c #51448F", +"|) c #564592", +"1) c #564693", +"2) c #584796", +"3) c #58489A", +"4) c #59499C", +"5) c #5B4B9E", +"6) c #5E4EA1", +"7) c #5D4EA3", +"8) c #5C4CA4", +"9) c #5C4DA7", +"0) c #5C4CA9", +"a) c #5B4DAC", +"b) c #584EAB", +"c) c #514FA5", +"d) c #4F51AA", +"e) c #4F54B2", +"f) c #5056BA", +"g) c #5A57BF", +"h) c #5F58C0", +"i) c #6159C3", +"j) c #625CC5", +"k) c #655FCD", +"l) c #6865D1", +"m) c #6C6AD7", +"n) c #6F6FD9", +"o) c #757AD8", +"p) c #7B81D7", +"q) c #7B82D3", +"r) c #7F84D3", +"s) c #8891D8", +"t) c #939ED8", +"u) c #A6B1D7", +"v) c #BBC3D6", +"w) c #AFB5D8", +"x) c #B4B8DB", +"y) c #C5CEDA", +"z) c #D7D8DB", +"A) c #D9D9DB", +"B) c #DDDCDD", +"C) c #E0DFE0", +"D) c #E6E6E6", +"E) c #EEEEEE", +"F) c #3A3D78", +"G) c #3A3E7A", +"H) c #3C407E", +"I) c #414384", +"J) c #434488", +"K) c #44458B", +"L) c #46478F", +"M) c #484993", +"N) c #4A4A97", +"O) c #4C4C9B", +"P) c #4F4C9F", +"Q) c #514DA3", +"R) c #544DA5", +"S) c #564EA8", +"T) c #564FAB", +"U) c #5450AC", +"V) c #5251AD", +"W) c #5153B0", +"X) c #5255B5", +"Y) c #5558BC", +"Z) c #595AC1", +"`) c #5D5CC5", +" ! c #5D5EC9", +".! c #5F62CE", +"+! c #6166D2", +"@! c #666BD7", +"#! c #6A70DB", +"$! c #7076DD", +"%! c #767DDD", +"&! c #7C84DE", +"*! c #838CDD", +"=! c #8F9ADE", +"-! c #94A0DF", +";! c #A0ABE0", +">! c #AEBADF", +",! c #BDC9E0", +"'! c #D0D7E2", +")! c #D7DDE4", +"!! c #D8DCE5", +"~! c #E5E6E6", +"{! c #E9E9E9", +"]! c #ECECEC", +"^! c #F0F0F0", +"/! c #F6F6F6", +"(! c #3C407D", +"_! c #3D4180", +":! c #3E4182", +"~ c #F0F1F3", +",~ c #F3F3F4", +"'~ c #F8F8F8", +")~ c #FBFBFB", +"!~ c #414580", +"~~ c #434783", +"{~ c #3B3F7E", +"]~ c #3B3F80", +"^~ c #3E4186", +"/~ c #40428A", +"(~ c #42448E", +"_~ c #444692", +":~ c #464896", +"<~ c #484999", +"[~ c #4A4B9D", +"}~ c #4C4DA2", +"|~ c #4E4FA6", +"1~ c #5154AF", +"2~ c #5357B4", +"3~ c #565ABA", +"4~ c #595DC0", +"5~ c #5C61C7", +"6~ c #6064CE", +"7~ c #6469D5", +"8~ c #696EDC", +"9~ c #6E73E2", +"0~ c #7379E7", +"a~ c #7880EB", +"b~ c #7F87EE", +"c~ c #868FEF", +"d~ c #8D97F0", +"e~ c #949FF1", +"f~ c #9CA7F1", +"g~ c #A6B1F2", +"h~ c #B1BDF2", +"i~ c #BBC8F2", +"j~ c #C2CEF3", +"k~ c #D1DCF3", +"l~ c #DFE7F4", +"m~ c #E8ECF4", +"n~ c #EEF0F5", +"o~ c #F2F3F6", +"p~ c #F4F5F7", +"q~ c #F7F7F8", +"r~ c #F9F9F9", +"s~ c #FAFAFB", +"t~ c #FCFCFD", +"u~ c #3A3E7C", +"v~ c #393D7D", +"w~ c #3B3F82", +"x~ c #3D4085", +"y~ c #3F4289", +"z~ c #41448D", +"A~ c #434691", +"B~ c #454895", +"C~ c #474A99", +"D~ c #494C9D", +"E~ c #4B4FA2", +"F~ c #4D51A6", +"G~ c #5053AB", +"H~ c #5256B1", +"I~ c #5559B7", +"J~ c #5B61C4", +"K~ c #5F65CB", +"L~ c #6369D3", +"M~ c #686EDC", +"N~ c #6D73E4", +"O~ c #7379EC", +"P~ c #7980F1", +"Q~ c #7F87F4", +"R~ c #8790F6", +"S~ c #8F99F6", +"T~ c #99A3F7", +"U~ c #A2ADF7", +"V~ c #AAB5F8", +"W~ c #B6C2F8", +"X~ c #C4D0F8", +"Y~ c #D0DCF8", +"Z~ c #DCE5F8", +"`~ c #E6ECF9", +" { c #EDF1F9", +".{ c #F2F5F9", +"+{ c #F5F7F9", +"@{ c #F8F9FA", +"#{ c #F9FAFA", +"${ c #FAFBFB", +"%{ c #FCFCFC", +"&{ c #FDFDFD", +"*{ c #FEFEFE", +"={ c #363A78", +"-{ c #3E4288", +";{ c #40458C", +">{ c #444994", +",{ c #464B99", +"'{ c #4B50A2", +"){ c #4E53A7", +"!{ c #5056AD", +"~{ c #5459B3", +"{{ c #5A60C1", +"]{ c #5E65C8", +"^{ c #6269D0", +"/{ c #686FDA", +"({ c #6C73E3", +"_{ c #7279ED", +":{ c #7880F9", +"<{ c #7F87FF", +"[{ c #8F98FF", +"}{ c #9AA3FF", +"|{ c #A4AEFF", +"1{ c #B2BCFF", +"2{ c #C0CCFF", +"3{ c #CCD8FF", +"4{ c #D9E6FF", +"5{ c #E7F4FF", +"6{ c #F7FFFF", +"7{ c #303472", +"8{ c #313575", +"9{ c #323677", +"0{ c #35397D", +"a{ c #363A80", +"b{ c #383D84", +"c{ c #393E87", +"d{ c #3B408B", +"e{ c #3C418F", +"f{ c #3E4393", +"g{ c #404597", +"h{ c #43489D", +"i{ c #444AA1", +"j{ c #474DA6", +"k{ c #484EAB", +"l{ c #4B52B2", +"m{ c #4E55B8", +"n{ c #5158BF", +"o{ c #545BC6", +"p{ c #575ECE", +"q{ c #5B62D7", +"r{ c #5F67E0", +"s{ c #646CEB", +"t{ c #6971F6", +"u{ c #6D76FF", +"v{ c #747DFF", +"w{ c #7A84FF", +"x{ c #818BFF", +"y{ c #8A95FF", +"z{ c #929EFF", +"A{ c #9DAAFF", +"B{ c #A9B7FF", +"C{ c #B7C6FF", +"D{ c #C8D8FF", +"E{ c #DCEEFF", +"F{ c #F4FFFF", +". . + @ # $ % & * * * = - ; > , ' ) ! ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f ", +"g h i j j k % l = m n o p q r s t u v { w x y z A B _ C D E F G H I J K L M 8 N N N O P Q R S T ", +"U V # W W k X Y Z ` = - .q r ..+.@.#.$.] %.&.: *.=.-.;.>.,.'.).!.~.{.].^./.(._.O :.<.[.}.|.1.2.", +"3.4.$ k k k 5.6.Y Z ` 7.- q r 8.9.0.a.b.c.z d.d.e.;.F f.g.h.i.j.k.l.m.n.o.p.1.[.:.q.r.s.t.u.u.v.", +"w.x.X X X X X 6.Y Z ` = y.p > z.A.B.C.b.D.E.F.G.H.I.J.,.K.K.L.M.N.L O.P.Q.R.S.T.q.U.V.W.X.Y.Z.`.", +"$ % % % + + +% .+++@+#+$+%+&+*+, =+-+;+>+,+'+)+!+~+{+]+^+/+(+_+:+<+[+!.}+j.|+1+2+3+4+5+6+7+7+8+", +"W % .+9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+C+B.B.D+E+F+G+H+I+J+K+L+M+N+O+", +"W 6.P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@4@5@", +"6@7@8@9@0@a@b@c@d@e@e@f@g@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@A@B@C@C@D@E@F@G@H@I@J@K@L@M@N@", +"6@O@P@Q@R@S@T@U@V@W@X@Y@Z@Z@j@`@ #.#+#+#@#@###$#%#&#*#=#-#;#>#,#'#)#n@!#!#~#{#]#^#/#(#_#:#<#[#}#", +"O@7@|#1#2#3#4#5#6#7#8#`@`@`@k@ #.#+#@#@#@#@#@#9#0#a#b#c#d#e#f#g#h#i#p@m@j#k#l#m#n#o#p#q#r#s#t#u#", +"7@v#w#x#y#z#A#B#C#D#E#8#`@`@k@ #.#+#@#@#@#+#@#o@F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#`# $.$", +"v#+$@$#$$$%$&$*$=$-$;$>$ # # # #.#+#@#@#@#+#+#+#,$'$)$!$~${$]$^$/$($_$:$<$[$}$|$`#1$2$2$3$4$5$6$", +"7$x##$8$9$0$a$b$c$d$e$E#f$ # # #.#+#@#@#@#+#+#+#o@g$h$i$j$k$l$m$n$o$p$q$r$s$t$u$5$v$w$x$y$z$A$B$", +"C$$$$$9$D$0$E$F$G$H$I$J$K$f$ # #.#+#@#@#@#+#+#+#+#L$M$N$O$P$Q$R$o$S$T$U$V$W$X$Y$Z$`$ %.%+%@%#%$%", +"%%&%*%=%0$-%E$;%>%,%'%)%!%.#.#.#.#+#@#@#@#+#+#+#+#@#~%{%]%^%/%(%_%:%<%[%}%Y$|%1%2%3%4%5%6%7%8%9%", +"0%a%b%c%a$d%e%f%g%h%i%j%k%@#@#.#+#+#@#@#@#+#+#+#@#@###l%m%n%o%p%q%r%s%t%u%v%w%x%y%z%A%B%C%D%E%F%", +"G%u B.H%I%J%f%K%g%L%M%N%O%P%Q%@#@#@#@#@#@#@#@#@#Q%R%@#p@S%T%U%V%W%+%X%Y%Z%`% &.&+&@&#&$&$&%&&&*&", +"! =&-&;&>&,&'&)&[+!.!&~&{&]&^&@#@#@#@#@#@#@#@#Q%/&(&_&@#@#P#:&<&[&}&|&1&2&3&4&5&6&7&8&9&9&0&a&b&", +"u >+b.c&d&e&f&g&h&L i&j&k&l&m&@#@#@#@#@#@#@#@#n&o&p&q&@#@#~%r&s&t&u&v&w&x&y&z&A&B&C&D&E&F&G&H&I&", +"J&K&L&c.M&N&O&P&Q&h.R&S&T&U&V&@#@#@#W&X&@#@#Y&Z&`& *_&@#@###.*+*@*#*$*%*&***=*-*;*>*,*'*'*)*!*~*", +";&#.d&d.{*]*^*/*(*_*:*<*[*}*|*1*@#@#2*3*@#@#4*5*6* *Q%@#@#@#7*8*9*0*a*b*c*d*e*f*g*h*i*j*k*k*k*l*", +">&/ _ C D m*n*[*o*p*q*[*[*r*s*t*##Q%u*v*W&@#u*$*#*w*Q%@#@#@#@#x*y*z*0*A*B*C*D*E*F*G*H*I*J*J*K*L*", +"M*N*O**.P*Q*R*S*$*T*[*S*S*U*V*W*X*m&Y*$*Z*`*[*$*$*u*@#@#@#@#@#@# =.=S*+=/*@=#=$=%=&=*===-=;=;=>=", +",='=)=;.!=~=[*{=S*]=$*0*0*A*^=/=(=_=`&[*#*5*[*$*[*u*@#@#@#@#@#@#@#:=<=[=}=|=1=2=3=4=5=6=7=8=9=0=", +"( a=)=b=c=d=$*e=f=$*$*g=h=i=j=k=l=m=n=o=#*p=q=o=#*r=Q%@#@#@#@#@#@#s=t=u=z*v=w=x=y=z=A=B=C=D=E=F=", +"_ _ -.G=H=I=J=K=L=S*M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z=b*`=Q%@#@#@#@#@#@#@# -.-+-@-#-$-%-&-*-=---;->-,-", +"&.[ >.'-)-!-~-{-]-^-/-(-_-:-<-[-}-|-1-2-3-w*4-5-w&6-q&@#@#@#@#@#@#@###7-R*8-9-0-a-b-c-d-e-f-g-h-", +"i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z-A-B-C-D-Q%E-F-G-q&@#@#@#@#@#@#@#H-I-J-@-K-L-M-N-O-P-Q-R-S-T-", +"U-V-W-X-Y-Z-`- ;.;+;@;#;$;%;&;*;=;-;;;>;,;';@#);!;~;{;@#@#@#@#@#W&o=];[*^;/;(;_;:;<;[;};|;1;2;3;", +"4;!=7 5;6;7;7;8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;m;n&n;o;{;@#@#@#@#p;q;r;s;4*t;u;v;w;w;x;y;z;A;B;C;D;", +"E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;`; >.>2*+>@#@#W&@>#>H-@#@#@#@#$>%>&>*>=>->;>>>,>'>)>", +"!>~>{>]>^>[./>(>_>:><>[>}>|>1>2>3>4>5>6>7>8>9>0>a>b>c>Q%V=d>e>Q%@#@#@#@#@#@#f>g>h>i>j>k>l>m>n>o>", +"p>!.q>r>R.s>t>u>v>w>x>y>z>A>B>C>D>+%E>F>G>H>I>J>K>L>M>N>O>Y&@#@#@#@#@#@#@#@#P>Q>R>S>T>U>V>W>X>Y>", +"Z>5 `> ,p..,+,@,Z.:.#,$,%,&,*,=,-,;,>,,,',),!,~,{,],n&Y&@#@#@#@#@#@#@#@#@#@#^,/,(,_,:,<,[,},|,1,", +"[+2,3,4,5,6,7,8,(.9,0,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,##@#@#@#@#@#@#@#@#@#@#@#@#t;p,q,r,s,t,u,v,w,", +"x,e 6,6,f =.y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,@#@#@#@#@#@#@#@#@#@#@#@#@#T,U,V,W,X,Y,Z,`,", +"]+b ']+.'+'@'#'$'l@n@m@%'&'*'='-';'>','''N,)'!'~'{']'@#@#@#@#@#@#@#@#@#@#@#@#@#Q%^'/'('_':'<'['", +"}'|'1'2'3'4'5'6'7'7'8'5'9'0'a'b'c'd'e'f'g'h'i'j'k'l'm'n'o'p'q'r's't'u'v'w'x'y'z'A'B'C'D'E'F'<'<'", +"8 G'H'I'J'K'L'M'N'O'P'Q'R'S'T'U'V'W'X'Y'Z'`' ).)+)@)#)$)%)&)*)=)-);)>),)')))!)~){)])^)/)()_)<'<'", +":)<)[)})|)1)2)3)4)5)6)7)8)9)0)a)b)c)d)e)f)g)h)i)j)k)l)m)n)o)p)q)r)s)t)u)v)w)x)y)z)A)B)C)D)E)<'<'", +"F)G)H)K;I)J)K)L)M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)`) !.!+!@!#!$!%!&!*!=!-!;!>!,!'!)!!!~!{!{!]!^!/!<'<'", +"8 (!H)_!:!~,~/!'~)~<'<'", +"!~~~H){~]~+;^~/~(~_~:~<~[~}~|~d)1~2~3~4~5~6~7~8~9~0~a~b~c~d~e~f~g~h~i~j~k~l~m~n~o~p~q~r~s~t~<'<'", +"a <)u~v~X.w~x~y~z~A~B~C~D~E~F~G~H~I~''J~K~L~M~N~O~P~Q~R~S~T~U~V~W~X~Y~Z~`~ {.{+{@{#{${%{&{*{<'<'", +"M S ={u.Y.w~M+-{;{<#>{,{3$'{){!{~{',{{]{^{/{({_{:{<{S-[{}{|{1{2{3{4{5{6{<'<'<'<'<'<'<'<'<'<'<'<'", +"L 3,7{8{9{@,0{a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{r{s{t{u{v{w{x{y{z{A{B{C{D{E{F{<'<'<'<'<'<'<'<'<'"};